@next-bricks/visual-builder 1.36.16 → 1.36.17
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 +7 -7
- package/dist/chunks/5832.d2b22565.js +3 -0
- package/dist/chunks/5832.d2b22565.js.map +1 -0
- package/dist/chunks/{main.9e9d79b0.js → main.80931bec.js} +2 -2
- package/dist/chunks/{main.9e9d79b0.js.map → main.80931bec.js.map} +1 -1
- package/dist/chunks/workbench-history-action.c0f3b4f9.js +3 -0
- package/dist/chunks/workbench-history-action.c0f3b4f9.js.map +1 -0
- package/dist/index.14f39395.js +2 -0
- package/dist/{index.0f3c8f40.js.map → index.14f39395.js.map} +1 -1
- package/dist/manifest.json +29 -29
- package/dist/types.json +5 -5
- package/package.json +2 -2
- package/dist/chunks/5832.b5f07eff.js +0 -3
- package/dist/chunks/5832.b5f07eff.js.map +0 -1
- package/dist/chunks/workbench-history-action.ddf7d5f6.js +0 -3
- package/dist/chunks/workbench-history-action.ddf7d5f6.js.map +0 -1
- package/dist/index.0f3c8f40.js +0 -2
- /package/dist/chunks/{5832.b5f07eff.js.LICENSE.txt → 5832.d2b22565.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{workbench-history-action.ddf7d5f6.js.LICENSE.txt → workbench-history-action.c0f3b4f9.js.LICENSE.txt} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"chunks/5832.b5f07eff.js","mappings":";oVAkBA,MAAMA,GAAcC,EAAAA,EAAAA,WAAyC,YAEvD,cAAEC,EAAa,SAAEC,EAAUC,MAAKA,IAAKC,EAAAA,EAAAA,oBAAmB,IAAAC,EAAA,IAAAC,EAAA,IAAAC,QAAAC,EAAA,IAAAD,QAAAE,EAAA,IAAAF,QAAAG,EAAA,IAAAH,QAAAI,EAAA,IAAAC,QAAAC,EAAA,IAAAN,QAAAO,EAAA,IAAAP,QAAAQ,EAAA,IAAAR,QAa9D,MAAAS,UAG4BC,EAAAA,iBAAiBC,WAAAA,GAAA,SAAAC,YAAAC,EAAAA,EAAAA,GAAA,KAAAT,IAAAU,EAAAA,EAAAA,GAAA,KAAAf,EAAAgB,EAAA,QAAAD,EAAAA,EAAAA,GAAA,KAAAb,GAAAe,EAAA,MAAAC,EAAA,SAAAH,EAAAA,EAAAA,GAAA,KAAAZ,GAAAgB,EAAA,MAAAC,EAAA,SAAAL,EAAAA,EAAAA,GAAA,KAAAX,GAAAiB,EAAA,MAAAC,EAAA,SAS3CP,EAAAA,EAAAA,GAAA,KAAAR,GAAmBgB,EAAA,MAAIC,IACjBA,IAAWC,KAAKD,SAClBC,KAAKD,OAASA,GACdE,EAAAA,EAAAA,GAAArB,EAAAoB,KAAKE,GAAmBC,KAAKJ,GAC/B,KACAT,EAAAA,EAAAA,GAAA,KAAAP,EAAAqB,EAAA,QAKFd,EAAAA,EAAAA,GAAA,KAAAN,GAA2BqB,EAAA,MAAG,MAC5BJ,EAAAA,EAAAA,GAAArB,EAAAoB,KAAKM,GAA2BH,MAAM,GACtC,eApBmBI,GAAU,OAAAC,EAAAA,EAAAA,GAAAjC,EAAA,oBAAVgC,CAAUE,IAAAC,EAAAA,EAAAA,GAAAnC,EAAA,KAAAkC,EAAA,WAEOV,GAAM,OAAAS,EAAAA,EAAAA,GAAA/B,EAAA,gBAANsB,CAAMU,IAAAC,EAAAA,EAAAA,GAAAjC,EAAA,KAAAgC,EAAA,UAEPE,GAAK,OAAAH,EAAAA,EAAAA,GAAA9B,EAAA,eAALiC,CAAKF,IAAAC,EAAAA,EAAAA,GAAAhC,EAAA,KAAA+B,EAAA,CAkB1CG,MAAAA,GACE,OACEC,IAAAA,cAACC,EAAsB,CACrBP,WAAYP,KAAKO,WACjBR,OAAQC,KAAKD,OACbY,MAAOX,KAAKW,MACZI,gBAAgBP,EAAAA,EAAAA,GAAK1B,EAALkB,MAChBgB,kBAAkBR,EAAAA,EAAAA,GAAKxB,EAALgB,OAGxB,EAGF,SAASc,EAAsBG,GAMR,IANS,WAC9BV,EAAU,OACVR,EAAM,MACNY,EAAK,eACLI,EAAc,iBACdC,GACmBC,EACnB,MAAOC,EAAgBC,IAAqBC,EAAAA,EAAAA,UAAkBrB,IACvDsB,EAAeC,IAAoBF,EAAAA,EAAAA,WAAS,IAEnDG,EAAAA,EAAAA,YAAU,KACRJ,EAAkBpB,EAAO,GACxB,CAACA,KAEJwB,EAAAA,EAAAA,YAAU,KACRR,SAAAA,EAAiBG,EAAe,GAC/B,CAACA,EAAgBH,IAEpB,MAAMS,GAAcC,EAAAA,EAAAA,cAAY,KAC9BN,GAAmBO,IAAoBA,IAClCL,GAAkBH,IACrBI,GAAiB,GACjBN,SAAAA,IACF,GACC,CAACK,EAAeH,EAAgBF,IAE7BW,GAAgBC,EAAAA,EAAAA,WAEfC,EAAUC,IAAeV,EAAAA,EAAAA,WAAS,GAEnCW,GAAeC,EAAAA,EAAAA,UACnB,IClGG,SACLC,GAGA,IAAIC,EAEJ,MAAMC,EAASA,IAAMC,qBAAqBF,GAGpCG,EAAO,WAAkB,QAAAC,EAAAlD,UAAAmD,OAAdC,EAAM,IAAAC,MAAAH,GAAAI,EAAA,EAAAA,EAAAJ,EAAAI,IAANF,EAAME,GAAAtD,UAAAsD,GAEjBR,GACFC,IAIFD,EAAQS,uBAAsB,KDmFH,MACvBb,EAAYH,EAAciB,QAAQC,UAAY,EAAE,EClFlDZ,IAAMO,EAAO,GAEjB,EAIA,OAFAH,EAAKF,OAASA,EAEPE,CACT,CD0EMS,IAGF,IAGF,OACEjC,IAAAA,cAAA,OACEkC,UAAWC,IAAW,OAAQ,CAC5BnB,cAGFhB,IAAAA,cAAA,OAAKkC,UAAU,cAAcE,SAAU,EAAGC,QAAS1B,GACjDX,IAAAA,cAAA,OAAKkC,UAAU,cACblC,IAAAA,cAAA,QAAMkC,UAAU,cACb7B,EACCL,IAAAA,cAAC7C,EAAW,CAACmF,IAAI,OAAOC,MAAM,WAAWC,KAAK,SAE9CxC,IAAAA,cAAC7C,EAAW,CAACmF,IAAI,OAAOC,MAAM,WAAWC,KAAK,WAGlDxC,IAAAA,cAAA,OAAKkC,UAAU,eAAexC,GAC9BM,IAAAA,cAAA,QAAMyC,KAAK,WAEbzC,IAAAA,cAAA,QAAMyC,KAAK,YACV3C,GAASE,IAAAA,cAAA,OAAKkC,UAAU,SAASpC,GAClCE,IAAAA,cAAA,OAAKkC,UAAU,wBAEjBlC,IAAAA,cAAA,OACEkC,UAAU,uCACVQ,SAAUxB,EACVyB,IAAK7B,GAELd,IAAAA,cAAA,YACEA,IAAAA,cAAA,OACE4C,MAAO,CACLC,QAAS,YACTC,MAAO,gCAEV,gBAOX,CAhFCC,EAAA3E,IAAA4E,GAAAtE,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAK,EAAA4D,EAAAhE,EAAAM,EAAAE,EAAAyD,EAAA1D,GAAA2D,GAAA1F,EAAA2F,KAAAC,EAAAA,EAAAA,GAAAN,EAAA,CArCA1F,EAAc,gCAAiC,CAC9CiG,WAAY,CAACC,EAAAA,EAAWC,EAAAA,MACxB,EAEClG,IAAU,iBAEVA,EAAS,CAAEmG,KAAMC,UAAU,aAE3BpG,EAAS,CAAEmG,KAAME,SAAS,YAE1BpG,EAAM,CAAEkG,KAAM,kBAAkB,sBAAAG,IAAAjE,EAAAA,EAAAA,GAAA7B,EAAA8F,GAAA,CAAAA,EAAAhE,KAAAC,EAAAA,EAAAA,GAAA/B,EAAA8F,EAAAhE,IAAA,CAShCrC,EAAM,CAAEkG,KAAM,0BAA0B,8BAAAG,IAAAjE,EAAAA,EAAAA,GAAAzB,EAAA0F,GAAA,CAAAA,EAAAhE,KAAAC,EAAAA,EAAAA,GAAA3B,EAAA0F,EAAAhE,KAAA,GAAAiE,GAAA1F,EAAA2F,KAAAC,EAAAA,EAAAA,GAAAF,KAhBfxF,EAAAA,mBAAgB+E,yCEtB5C,MAAQ/F,cAAa,GAAEC,SAAQA,KAAKE,EAAAA,EAAAA,oBAEpC,IAAAwG,GAAA,IAAAtG,GAAA,IAAAC,QAAAsG,GAAA,IAAAtG,QAAAuG,GAAA,IAAAvG,QAAAwG,GAAA,IAAAxG,QAGA,MAAAyG,WAG+B/F,EAAAA,iBAAiBC,WAAAA,GAAA,SAAAC,YAAAE,EAAAA,EAAAA,GAAA,KAAAf,GAAAgB,EAAA,QAG9CD,EAAAA,EAAAA,GAAA,KAAAwF,IAAYtF,GAAA,MAAG,KAAuB,IAAA0F,EACpC,OAAsB,QAAtBA,EAAOlF,KAAKmF,kBAAU,IAAAD,OAAA,EAAfA,EAAiBE,cAAc,mBAAmB,KAG3D9F,EAAAA,EAAAA,GAAA,KAAAyF,IAAe,KACb,MACMM,GADO7E,EAAAA,EAAAA,GAAKsE,GAAL9E,MAAiBsF,KAAjBtF,MACMuF,gBAEnB,IAAK,MAAMC,KAAQH,EACbG,EAAKzF,OACPyF,EAAK/B,MAAMgC,KAAOC,OAAOF,EAAKG,YAAc,KAE5CH,EAAK/B,MAAMgC,KAAO,SAEtB,KAGFnG,EAAAA,EAAAA,GAAA,KAAA0F,IAAsB5G,IACpB,MACMiH,EADOjH,EAAMwH,OACAL,gBACnB,IAAK,MAAMC,KAAQH,EACjBG,EAAKK,iBAAiB,iBAAiBrF,EAAAA,EAAAA,GAAKuE,GAAL/E,MACzC,KACA8F,EAAAA,EAAAA,GAAA,oBAEY,MACZtF,EAAAA,EAAAA,GAAKuE,GAAL/E,MAAiBsF,KAAjBtF,MACA,MAAM+F,GAAavF,EAAAA,EAAAA,GAAKsE,GAAL9E,MAAiBsF,KAAjBtF,MAEnB+F,SAAAA,EAAYF,iBAAiB,cAAehC,KAC1CrD,EAAAA,EAAAA,GAAKwE,GAALhF,MAAuBsF,KAAvBtF,KAAwB6D,EAAE,GAC1B,GACH,eAlCoBtD,GAAU,OAAAC,EAAAA,EAAAA,GAAAjC,GAAA,oBAAVgC,CAAUE,IAAAC,EAAAA,EAAAA,GAAAnC,GAAA,KAAAkC,EAAA,CAoC/BG,MAAAA,GACE,OACEC,IAAAA,cAACmF,GAAyB,CACxBzF,WAAYP,KAAKO,WACjB0F,YAAajG,KAAKiG,aAGxB,EAGF,SAASD,GAAyB/E,GAGR,IAHS,WACjCV,EAAU,YACV0F,GACsBhF,EACtB,OACEJ,IAAAA,cAAA,OAAKkC,UAAU,UAAUS,IAAKyC,GAC5BpF,IAAAA,cAAA,OAAKkC,UAAU,mBACblC,IAAAA,cAAA,OAAKkC,UAAU,eAAexC,GAC9BM,IAAAA,cAAA,QAAMyC,KAAK,kBAEbzC,IAAAA,cAAA,OAAKkC,UAAU,kBACblC,IAAAA,cAAA,cAIR,CAjBCqF,EAAAjB,KAAApB,GAAAtE,EAAAC,IAAAwE,GAAAa,GAAAZ,KAAAC,EAAAA,EAAAA,GAAAgC,EAAA,CAhDAhI,GAAc,mCAAoC,CACjDiG,WAAY,CAACC,EAAAA,MACb,EAECjG,KAAU,0BADkBe,EAAAA,mBAAgB+E,sJCX3CkC,GAAU,CAAC,EAEfA,GAAQC,kBAAoB,KAC5BD,GAAQE,cAAgB,KACxBF,GAAQG,OAAS,UAAc,KAAM,QACrCH,GAAQI,OAAS,KACjBJ,GAAQK,mBAAqB,KAEhB,KAAI,KAASL,IAKJ,MAAW,KAAQM,QAAS,KAAQA,oECX1D,MAAQvI,cAAa,GAAEC,SAAQA,KAAKE,EAAAA,EAAAA,oBAE9BqI,IAAWzI,EAAAA,EAAAA,WAA2B,WACtCD,IAAcC,EAAAA,EAAAA,WAAyC,WACvD0I,IAAiB1I,EAAAA,EAAAA,WAAmC,cAAc,IAAA2I,GAAA,IAAArI,GAAA,IAAAC,QAAAC,GAAA,IAAAD,QAAAE,GAAA,IAAAF,QAAAG,GAAA,IAAAH,QAAAO,GAAA,IAAAP,QAAAqI,GAAA,IAAArI,QAexE,MAAAsI,WAG8B5H,EAAAA,iBAAiBC,WAAAA,GAAA,SAAAC,YAAAE,EAAAA,EAAAA,GAAA,KAAAf,GAAAwI,GAAA,QAAAzH,EAAAA,EAAAA,GAAA,KAAAb,IAAAuI,GAAA,MAAAC,GAAA,SAAA3H,EAAAA,EAAAA,GAAA,KAAAZ,IAAAwI,GAAA,MAAAzH,GAAA,SAAAH,EAAAA,EAAAA,GAAA,KAAAX,IAAAe,GAAA,MAAAyH,GAAA,SAAA7H,EAAAA,EAAAA,GAAA,KAAAP,IAAAqI,GAAA,MAAAC,GAAA,SAAA/H,EAAAA,EAAAA,GAAA,KAAAuH,IAAAS,GAAA,MAAAC,GAAA,QAAAC,GAAA,cAIpCnE,GAAI,OAAA7C,EAAAA,EAAAA,GAAAjC,GAAA,cAAJ8E,CAAI5C,IAAAC,EAAAA,EAAAA,GAAAnC,GAAA,KAAAkC,EAAA,OAEQgH,GAAE,OAAAjH,EAAAA,EAAAA,GAAA/B,GAAA,YAAFgJ,CAAEhH,IAAAC,EAAAA,EAAAA,GAAAjC,GAAA,KAAAgC,EAAA,WAKdV,GAAM,OAAAS,EAAAA,EAAAA,GAAA9B,GAAA,gBAANqB,CAAMU,IAAAC,EAAAA,EAAAA,GAAAhC,GAAA,KAAA+B,EAAA,SAEMiH,GAAI,OAAAlH,EAAAA,EAAAA,GAAA7B,GAAA,cAAJ+I,CAAIjH,IAAAC,EAAAA,EAAAA,GAAA/B,GAAA,KAAA8B,EAAA,WAEJmF,GAAM,OAAApF,EAAAA,EAAAA,GAAAzB,GAAA,gBAAN6G,CAAMnF,IAAAC,EAAAA,EAAAA,GAAA3B,GAAA,KAAA0B,EAAA,YAENkH,GAAO,OAAAnH,EAAAA,EAAAA,GAAAqG,GAAA,iBAAPc,CAAOlH,IAAAC,EAAAA,EAAAA,GAAAmG,GAAA,KAAApG,EAAA,CAE5BG,MAAAA,GACE,OACEC,IAAAA,cAAC+G,GAAwB,CACvBH,GAAIzH,KAAKyH,GACTpE,KAAMrD,KAAKqD,KACXtD,OAAQC,KAAKD,OACb2H,KAAM1H,KAAK0H,KACX9B,OAAQ5F,KAAK4F,OACb+B,QAAS3H,KAAK2H,SAGpB,EAGF,SAASC,GAAwB3G,GAOR,IAPS,KAChCoC,EAAI,GACJoE,EAAE,OACF1H,EAAM,KACN2H,EAAI,OACJ9B,EAAM,QACN+B,GACqB1G,EACrB,OACEJ,IAAAA,cAAC8F,GAAc,CAACkB,QAASF,EAASG,UAAU,SAC1CjH,IAAAA,cAAC6F,GAAQ,CACP3D,UAAWC,IAAW,SAAU,CAAEjD,WAClCgI,IAAKN,EACLC,KAAMA,EACN9B,OAAQA,GAER/E,IAAAA,cAAC7C,GAAgBqF,IAIzB,CAtBC2E,GAAAlB,KAAAjD,GAAAkD,GAAAC,GAAAC,GAAAC,GAAAzH,GAAAC,GAAAyH,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,IAAAxD,GAAA4C,GAAA3C,MAAAC,EAAAA,EAAAA,GAAA8D,GAAA,CAlCA9J,GAAc,kCAAmC,CAChDiG,WAAY,CAACC,GAAAA,MACb,EAECjG,GAAS,CACR8J,WAAW,IACX,WAGD9J,KAAU,SAEVA,GAAS,CACRmG,KAAMC,UACN,aAGDpG,KAAU,WAEVA,KAAU,aAEVA,KAAU,uBAjBiBe,EAAAA,mBAAgB+E,0CCbvC,SAASiE,GACdC,EACAC,EACAC,EACAC,GAMA,MAAMC,EAAyB,GACzBC,EAAuB,GACvBC,EAAwB,GAE9B,IAAIC,EAAS,EAmCb,OAlCAP,GACEA,EAAUQ,SAASC,IAIjB,GAFAA,EAAKC,IACc,KAAjBP,EAAsB,GAAGI,IAAW,GAAGJ,KAAgBI,IAhCxD,SAAiBE,GACtB,MAAqB,UAAdA,EAAKtE,IACd,CA+BUwE,CAAQF,IA7BX,SACLA,EACAG,GAEA,OAAOxE,QACS,YAAdqE,EAAKtE,WAwBkB0E,EAtB3B,CAsB2BA,CAAUJ,GAAO,CACpC,MAAMK,EAAMf,GACVU,EAAKM,MACLd,EACAC,EACAO,EAAKC,KAEPN,EAAaY,QAAQF,EAAIV,eACrBU,EAAIV,aAAahG,QAAUqG,EAAKQ,kBAClCZ,EAAWW,KAAKP,EAAKC,KAEvBL,EAAWW,QAAQF,EAAIT,YACvBC,EAAYU,QAAQF,EAAIR,YAC1B,MACE,GAqCD,SACLG,EACAR,EACAC,GAEA,IAAKO,EAAKnB,GAAI,OAAO,EACrB,MAAMA,EAAwB,iBAAZmB,EAAKnB,GAAkBmB,EAAKnB,IAAK4B,EAAAA,GAAAA,WAAUT,EAAKnB,IAG5D6B,EAAc7B,EAAGW,SAAUmB,QAAQ,4BAA6B,QAEtE,IAAIC,KAAUC,EAAAA,GAAAA,WAAUrB,EAAU,CAChCsB,KAAMJ,EACNK,MAAOf,EAAKe,QAOd,GAJIH,GAASZ,EAAKgB,oBAChBJ,EAAQK,GAAiBxB,EAAQZ,EAAGY,UAGjCmB,GAAS/G,MAAMqH,QAAQlB,EAAKmB,gBAC/B,IAAK,MAAMC,KAAWpB,EAAKmB,eAAgB,CACzC,IAAIE,EACAN,GAA6B,GAE7BO,EAAAA,GAAAA,UAASF,IACXC,EAAQxH,MAAMqH,QAAQE,EAAQN,MAAQM,EAAQN,KAAO,CAACM,EAAQN,MAC9DC,EAAQK,EAAQL,OAEhBM,EAAQ,CAACD,GAGX,IAAK,MAAMN,KAAQO,EAAO,KAAAE,EACxB,IAAIC,EACJ,MAAMC,EAAYX,EAAKY,SAAS,KAchC,GAZID,IACFD,GAAaf,EAAAA,GAAAA,WAAUK,IAEzBF,KAAUC,EAAAA,GAAAA,WAAUrB,EAAU,CAC5BsB,KAAMW,EAAYD,EAAYhC,SAAWsB,EACzCC,UAGEH,GAAmB,QAAdW,EAAIC,SAAU,IAAAD,GAAVA,EAAY9B,SACvBmB,EAAQK,GAAiBxB,EAAQ+B,EAAW/B,SAG1CmB,EACF,KAEJ,CAEA,GAAIA,EACF,KAEJ,CAGF,GAAIA,GAAS/G,MAAMqH,QAAQlB,EAAK2B,gBAC9B,IAAK,MAAMP,KAAWpB,EAAK2B,eAAgB,CACzC,IAAIN,EACAN,GAA6B,GAE7BO,EAAAA,GAAAA,UAASF,IACXC,EAAQxH,MAAMqH,QAAQE,EAAQN,MAAQM,EAAQN,KAAO,CAACM,EAAQN,MAC9DC,EAAQK,EAAQL,OAEhBM,EAAQ,CAACD,GAGX,IAAK,MAAMN,KAAQO,EAMjB,GALAT,IAASC,EAAAA,GAAAA,WAAUrB,EAAU,CAC3BsB,OACAC,WAGGH,EACH,MAIJ,IAAKA,EACH,KAEJ,CAGF,OAAOA,CACT,CA9HYgB,CAAc5B,EAAMR,EAAUC,GAAS,CACzCE,EAAaY,KAAKzD,OAAOkD,EAAKC,MAE9B,MAAM4B,EAAU7B,EAAKC,IAAI6B,MAAM,KAE/B,IAAK,IAAIC,EAAI,EAAGA,EAAIF,EAAQlI,OAAQoI,IAClClC,EAAYU,KAAKsB,EAAQG,MAAM,EAAGD,EAAI,GAAGE,KAAK,KAElD,CAEFnC,GAAU,CAAC,IAEXH,EAAahG,QAA2B,KAAjB+F,GACzBE,EAAWW,KAAKb,GAEX,CACLC,aAAcA,EACdC,WAAYA,EACZC,YAAaA,EAEjB,CAEA,SAASoB,GACPiB,EACAC,GAEA,MAAMnI,EAAU,IAAIoI,gBAAgBF,GAC9BrD,EAAK,IAAIuD,gBAAgBD,GAC/B,IAAK,MAAOlC,EAAKoC,KAAUxD,EAAGyD,UAE5B,IAAKtI,EAAQuI,IAAItC,IAAQ,MAAQoC,EAC/B,OAAO,EAGX,OAAO,CACT,eChFI,GAAU,CAAC,EAEf,GAAQ7E,kBAAoB,KAC5B,GAAQC,cAAgB,KACxB,GAAQC,OAAS,UAAc,KAAM,QACrC,GAAQC,OAAS,KACjB,GAAQC,mBAAqB,KAEhB,KAAI,KAAS,IAKJ,MAAW,KAAQC,QAAS,KAAQA,4CCD1D,MAAM2E,IAAyBnN,EAAAA,EAAAA,WAC7B,oCAGMC,cAAa,GAAEC,SAAQA,KAAKE,EAAAA,EAAAA,oBAAmB,IAAAgN,GAAA,IAAA9M,GAAA,IAAAC,QAAAC,GAAA,IAAAD,QAUvD,MAAA8M,WAGkCpM,EAAAA,iBAAiBC,WAAAA,GAAA,SAAAC,YAAAE,EAAAA,EAAAA,GAAA,KAAAf,GAAAgN,GAAA,QAAAjM,EAAAA,EAAAA,GAAA,KAAAb,IAAA+M,GAAA,MAAAC,GAAA,QAAAC,GAAA,eAC5BC,GAAK,OAAAnL,EAAAA,EAAAA,GAAAjC,GAAA,eAALoN,CAAKlL,IAAAC,EAAAA,EAAAA,GAAAnC,GAAA,KAAAkC,EAAA,SAKjBmL,GAAI,OAAApL,EAAAA,EAAAA,GAAA/B,GAAA,cAAJmN,CAAInL,IAAAC,EAAAA,EAAAA,GAAAjC,GAAA,KAAAgC,EAAA,CAEbG,MAAAA,GACE,OAAOC,IAAAA,cAACgL,GAA4B,CAACF,MAAO3L,KAAK2L,MAAOC,KAAM5L,KAAK4L,MACrE,EAGF,IAAIE,GAFHC,GAAAT,KAAAzH,GAAA0H,GAAAC,GAAAC,GAAAC,IAAA1H,GAAAqH,GAAApH,MAAAC,EAAAA,EAAAA,GAAA6H,GAAA,CAdA7N,GAAc,uCAAwC,CACrDiG,WAAY,CAACC,GAAAA,MACb,EAECjG,KAAU,YAEVA,GAAS,CACR8J,WAAW,IACX,oBAL8B/I,EAAAA,mBAAgB+E,KAclD,MAAM+H,GAAa,IAAIC,IAEhB,SAASJ,GAA4B5K,GAGf,IAAAiL,EAAA,IAHgB,MAC3CP,EAAK,KACLC,GACyB3K,EACzB,MAAMkL,GAAUC,EAAAA,GAAAA,eACTC,EAAaC,IAAkBlL,EAAAA,EAAAA,aAC/BmL,EAAUC,IAAepL,EAAAA,EAAAA,UAAS+K,EAAQI,UAwCjD,OAtCAhL,EAAAA,EAAAA,YAAU,KACR,MAAMkL,EAAWN,EAAQO,QAAQH,IAC/BC,EAAYD,EAAS,IAEvB,OAAOE,CAAQ,GACd,CAACN,KAEJ5K,EAAAA,EAAAA,YAAU,KACHuK,KAAcA,GAAeH,GAC9BG,KAAiBH,IACnBK,GAAWW,QACXb,GAAeH,EACjB,GACC,CAACA,KAEJpK,EAAAA,EAAAA,YAAU,KACR,MAAM,SAAE6G,EAAQ,OAAEC,GAAWkE,GAEvB,aAAEhE,GAAiBL,IACvB0D,aAAI,EAAJA,EAAMzD,YAAa,GACnBC,EACAC,EACA,IAEFiE,EAAe9H,OAAO+D,EAAa,IAAI,GACtC,CAACqD,EAAMW,IAcR1L,IAAAA,cAAAA,IAAAA,SAAA,KACG+K,SAAe,QAAXM,EAAJN,EAAMzD,iBAAS,IAAA+D,OAAA,EAAfA,EACGU,KAAI,CAAChE,EAAMiE,KACX,GATNjE,IAEqB,YAAdA,EAAKtE,OAAuBsE,EAAKtE,KAO9BwI,CAAiBlE,GAAO,CAC1B,IAAIb,EAAMa,EAAKnB,GAIf,OAHI4E,IAAgBQ,GAASb,GAAWrH,IAAIkI,KAC1C9E,EAAMiE,GAAWb,IAAI0B,IAGrBhM,IAAAA,cAACuK,GAAsB,CACrBvC,IAAKgE,EACLxJ,KAAMuF,EAAKvF,KACXoE,GAAIM,EACJL,KAAMkB,EAAKlB,KACX9B,OAAQgD,EAAKhD,OACb+B,QAASiB,EAAKmE,KACdhN,OAAQsM,IAAgBQ,EACxB3J,QAASA,IA7BE0F,KAClBA,EAA+BlB,MACpCsE,GAAWgB,IAAIX,EAAa,GAAGE,EAASnE,WAAWmE,EAASlE,SAAS,EA2B1C4E,CAAgBrE,IAGrC,KAEDsE,OAAO3I,SAGhB,wPC5GA,SAAS4I,GAAsBC,GAC7B,OAAOA,EAAKvE,GACd,SAEA,MAAQ3K,cAAa,GAAEC,SAAQ,GAAEC,MAAKA,KAAKC,EAAAA,EAAAA,oBAE3C,IAAAgP,GAAA,IAAA9O,GAAA,IAAAC,QAAAC,GAAA,IAAAD,QAAAE,GAAA,IAAAF,QAAAG,GAAA,IAAAH,QAAAO,GAAA,IAAAP,QAAAqI,GAAA,IAAArI,QAAA8O,GAAA,IAAA9O,QAAA+O,GAAA,IAAA/O,QAAAgP,GAAA,IAAAhP,QAAAiP,GAAA,IAAAjP,QAAAkP,GAAA,IAAAlP,QAAAmP,GAAA,IAAAnP,QAAAoP,GAAA,IAAApP,QAAAqP,GAAA,IAAArP,QAAAsP,GAAA,IAAAtP,QAAAuP,GAAA,IAAAvP,QAAAwP,GAAA,IAAAxP,QAAAyP,GAAA,IAAAzP,QAAA0P,GAAA,IAAA1P,QAAA2P,GAAA,IAAAtP,QAAAuP,GAAA,IAAA5P,QAAA6P,GAAA,IAAA7P,QAAA8P,GAAA,IAAA9P,QAAA+P,GAAA,IAAA/P,QAAAgQ,GAAA,IAAAhQ,QAAAiQ,GAAA,IAAAjQ,QAAAkQ,GAAA,IAAAlQ,QAAAmQ,GAAA,IAAAnQ,QAAAoQ,GAAA,IAAApQ,QASA,MAAAqQ,WAGmC3P,EAAAA,iBAAiBC,WAAAA,GAAA,SAAAC,YAAAC,EAAAA,EAAAA,GAAA,KAAA8O,KAAA7O,EAAAA,EAAAA,GAAA,KAAAf,GAAAuQ,GAAA,QAAAxP,EAAAA,EAAAA,GAAA,KAAAb,IAAAsQ,GAAA,MAAAC,GAAA,SAAA1P,EAAAA,EAAAA,GAAA,KAAAZ,IAAAuQ,GAAA,MAAAC,GAAA,SAAA5P,EAAAA,EAAAA,GAAA,KAAAX,IAAAwQ,GAAA,MAAAC,GAAA,SAAA9P,EAAAA,EAAAA,GAAA,KAAAP,IAAAsQ,GAAA,MAAAC,GAAA,SAAAhQ,EAAAA,EAAAA,GAAA,KAAAuH,IAAA0I,GAAA,MAAAC,GAAA,SAAAlQ,EAAAA,EAAAA,GAAA,KAAAgO,IAAAmC,GAAA,MAAAC,GAAA,SAAApQ,EAAAA,EAAAA,GAAA,KAAAiO,IAAAoC,GAAA,MAAAC,GAAA,SAAAtQ,EAAAA,EAAAA,GAAA,KAAAkO,IAAAqC,GAAA,MAAAC,GAAA,SAAAxQ,EAAAA,EAAAA,GAAA,KAAAmO,IAAAsC,GAAA,MAAAC,GAAA,SAAA1Q,EAAAA,EAAAA,GAAA,KAAAoO,IAAAuC,GAAA,MAAAC,GAAA,SAAA5Q,EAAAA,EAAAA,GAAA,KAAAqO,IAAAwC,GAAA,MAAAC,GAAA,SAAA9Q,EAAAA,EAAAA,GAAA,KAAAsO,IAAAyC,GAAA,MAAAC,GAAA,SAAAhR,EAAAA,EAAAA,GAAA,KAAAuO,IAAA0C,GAAA,MAAAC,GAAA,SAAAlR,EAAAA,EAAAA,GAAA,KAAAwO,IAAA2C,GAAA,MAAAC,GAAA,SAAApR,EAAAA,EAAAA,GAAA,KAAAyO,IAAA4C,GAAA,MAAAC,GAAA,SAAAtR,EAAAA,EAAAA,GAAA,KAAA0O,IAAA6C,GAAA,MAAAC,GAAA,SAAAxR,EAAAA,EAAAA,GAAA,KAAA2O,IAAA8C,GAAA,MAAAC,GAAA,SAAA1R,EAAAA,EAAAA,GAAA,KAAA4O,IAAA+C,GAAA,MAAAC,GAAA,SA0DlD5R,EAAAA,EAAAA,GAAA,KAAA8O,IAAkB+C,GAAA,MAAIC,KACpBnR,EAAAA,EAAAA,GAAAkO,GAAAnO,KAAKqR,IAAkBlR,KAAKiR,EAAO,KACnC9R,EAAAA,EAAAA,GAAA,KAAA+O,GAAAiD,GAAA,QAKFhS,EAAAA,EAAAA,GAAA,KAAAgP,IAAiBiD,GAAA,MAAInE,GAA4B,MAC/CnN,EAAAA,EAAAA,GAAAkO,GAAAnO,KAAKwR,IAAgBrR,KAAKiN,EAAKqE,KAAK,KACpCnS,EAAAA,EAAAA,GAAA,KAAAiP,GAAAmD,GAAA,QAKFpS,EAAAA,EAAAA,GAAA,KAAAkP,IAAemD,GAAA,MAAIP,KACjBnR,EAAAA,EAAAA,GAAAkO,GAAAnO,KAAK4R,IAAezR,KAAKiR,EAAO,KAChC9R,EAAAA,EAAAA,GAAA,KAAAmP,GAAAoD,GAAA,QAKFvS,EAAAA,EAAAA,GAAA,KAAAoP,IAAmBoD,GAAA,MAAI1E,GAA6BvJ,IAClDA,EAAEkO,kBACF9R,EAAAA,EAAAA,GAAAkO,GAAAnO,KAAKgS,IAAsB7R,KAAK,CAC9BJ,QAAQ,EACRqN,KAAMA,aAAI,EAAJA,EAAMqE,KACZQ,EAAGpO,EAAEqO,QACLC,EAAGtO,EAAEuO,SACL,KACF9S,EAAAA,EAAAA,GAAA,KAAAqP,GAAA0D,GAAA,QAQF/S,EAAAA,EAAAA,GAAA,KAAAsP,IAAiB0D,GAAA,MAAG,CAACC,EAAgBC,MACnCvS,EAAAA,EAAAA,GAAAkO,GAAAnO,KAAKyS,IAAiBtS,KAAK,CAAEoS,SAAQC,aAAY,GACjD,UA/FOE,GAAK,OAAAlS,EAAAA,EAAAA,GAAAjC,GAAA,eAALmU,CAAKjS,IAAAC,EAAAA,EAAAA,GAAAnC,GAAA,KAAAkC,EAAA,YAGLkS,GAAO,OAAAnS,EAAAA,EAAAA,GAAA/B,GAAA,iBAAPkU,CAAOlS,IAAAC,EAAAA,EAAAA,GAAAjC,GAAA,KAAAgC,EAAA,kBAGPmS,GAAa,OAAApS,EAAAA,EAAAA,GAAA9B,GAAA,uBAAbkU,CAAanS,IAAAC,EAAAA,EAAAA,GAAAhC,GAAA,KAAA+B,EAAA,gBAGboS,GAAW,OAAArS,EAAAA,EAAAA,GAAA7B,GAAA,qBAAXkU,CAAWpS,IAAAC,EAAAA,EAAAA,GAAA/B,GAAA,KAAA8B,EAAA,oBAGXqS,GAAe,OAAAtS,EAAAA,EAAAA,GAAAzB,GAAA,yBAAf+T,CAAerS,IAAAC,EAAAA,EAAAA,GAAA3B,GAAA,KAAA0B,EAAA,sBAGfsS,GAAiB,OAAAvS,EAAAA,EAAAA,GAAAqG,GAAA,2BAAjBkM,CAAiBtS,IAAAC,EAAAA,EAAAA,GAAAmG,GAAA,KAAApG,EAAA,aAGjBuS,GAAQ,OAAAxS,EAAAA,EAAAA,GAAA8M,GAAA,kBAAR0F,CAAQvS,IAAAC,EAAAA,EAAAA,GAAA4M,GAAA,KAAA7M,EAAA,cAGRwS,GAAS,OAAAzS,EAAAA,EAAAA,GAAA+M,GAAA,mBAAT0F,CAASxS,IAAAC,EAAAA,EAAAA,GAAA6M,GAAA,KAAA9M,EAAA,wBAGTyS,GAAmB,OAAA1S,EAAAA,EAAAA,GAAAgN,GAAA,6BAAnB0F,CAAmBzS,IAAAC,EAAAA,EAAAA,GAAA8M,GAAA,KAAA/M,EAAA,wBAGnB0S,GAAmB,OAAA3S,EAAAA,EAAAA,GAAAiN,GAAA,6BAAnB0F,CAAmB1S,IAAAC,EAAAA,EAAAA,GAAA+M,GAAA,KAAAhN,EAAA,oBAGnB2S,GAAe,OAAA5S,EAAAA,EAAAA,GAAAkN,GAAA,yBAAf0F,CAAe3S,IAAAC,EAAAA,EAAAA,GAAAgN,GAAA,KAAAjN,EAAA,gBAGf4S,GAAW,OAAA7S,EAAAA,EAAAA,GAAAmN,GAAA,qBAAX0F,CAAW5S,IAAAC,EAAAA,EAAAA,GAAAiN,GAAA,KAAAlN,EAAA,mBAGX6S,GAAc,OAAA9S,EAAAA,EAAAA,GAAAoN,GAAA,wBAAd0F,CAAc7S,IAAAC,EAAAA,EAAAA,GAAAkN,GAAA,KAAAnN,EAAA,cAGd8S,GAAS,OAAA/S,EAAAA,EAAAA,GAAAqN,GAAA,mBAAT0F,CAAS9S,IAAAC,EAAAA,EAAAA,GAAAmN,GAAA,KAAApN,EAAA,oBAGT+S,GAAe,OAAAhT,EAAAA,EAAAA,GAAAsN,GAAA,yBAAf0F,CAAe/S,IAAAC,EAAAA,EAAAA,GAAAoN,GAAA,KAAArN,EAAA,sBAGfgT,GAAiB,OAAAjT,EAAAA,EAAAA,GAAAuN,GAAA,2BAAjB0F,CAAiBhT,IAAAC,EAAAA,EAAAA,GAAAqN,GAAA,KAAAtN,EAAA,YAGjBiT,GAAO,OAAAlT,EAAAA,EAAAA,GAAAwN,GAAA,iBAAP0F,CAAOjT,IAAAC,EAAAA,EAAAA,GAAAsN,GAAA,KAAAvN,EAAA,eAGPkT,GAAU,OAAAnT,EAAAA,EAAAA,GAAAyN,GAAA,oBAAV0F,CAAUlT,IAAAC,EAAAA,EAAAA,GAAAuN,GAAA,KAAAxN,EAAA,CA8CnBG,MAAAA,GACE,OACEC,IAAAA,cAAC+S,GAAAA,EAAwBC,SAAQ,CAC/B5I,MAAO,CACL0H,QAAS3S,KAAK2S,QACdC,cAAe5S,KAAK4S,cACpBkB,eAAetT,EAAAA,EAAAA,GAAK4N,GAALpO,QAGjBa,IAAAA,cAACkT,GAAAA,EAAqBF,SAAQ,CAC5B5I,MAAO,CACLgI,UAAWjT,KAAKiT,UAChBe,gBAAiB,EACjBd,oBAAqBlT,KAAKkT,oBAC1BJ,gBAAiB9S,KAAK8S,gBACtBM,gBAAiBpT,KAAKoT,gBACtBM,QAAS1T,KAAK0T,QACdL,YAAarT,KAAKqT,YAClBC,eAAgBtT,KAAKsT,eACrBW,eAAgB9G,GAChB+G,cAAc1T,EAAAA,EAAAA,GAAKoO,GAAL5O,MACd2T,WAAY3T,KAAK2T,WACjBQ,cAAc3T,EAAAA,EAAAA,GAAK8N,GAALtO,MACdoU,oBAAoB5T,EAAAA,EAAAA,GAAKkO,GAAL1O,MACpBqU,UAAWA,CAACjH,EAAMkH,KAAiB,IAAAC,EAAA,OACjCC,EAAAA,GAAAA,GAAUpH,EAAK9J,KAAMgR,MACM,QAAzBC,EAACvU,KAAKmT,2BAAmB,IAAAoB,IAAxBA,EAA0BhS,UAC3BiS,EAAAA,GAAAA,GAC+B,MAA7BxU,KAAKmT,oBACD/F,EAAKqE,MACLgD,EAAAA,GAAAA,MAAKrH,EAAKqE,KAAMzR,KAAKmT,qBACzBmB,EACA,IAGRzT,IAAAA,cAAC6T,GAAAA,GAAa,CACZhC,MAAO1S,KAAK0S,MACZG,YAAa7S,KAAK6S,YAClBE,kBAAmB/S,KAAK+S,kBACxBC,SAAUhT,KAAKgT,SACf2B,UAAUnU,EAAAA,EAAAA,GAAKgO,GAALxO,MACVuT,UAAWvT,KAAKuT,UAChBE,kBAAmBzT,KAAKyT,kBACxBD,gBAAiBxT,KAAKwT,mBAKhC,EACDoB,GAAA/F,KAAAhL,GAAAiL,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,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAG,GAAAwD,GAAA1D,GAAAG,GAAAE,GAAAsD,GAAAvD,GAAAG,GAAAE,GAAAmD,GAAApD,GAAAE,GAAAG,GAAAgD,GAAAlD,GAAAO,GAAAI,GAAAwC,GAAA3C,IAAAtO,GAAAqJ,GAAApJ,MAAAC,EAAAA,EAAAA,GAAA0Q,GAAA,CAvJA1W,GAAc,gCAAiC,CAC9CiG,WAAY,CAAC+Q,GAAAA,EAAeC,GAAAA,MAC5B,EAEChX,GAAS,CAAE8J,WAAW,IAAQ,YAG9B9J,GAAS,CAAE8J,WAAW,IAAQ,cAG9B9J,GAAS,CAAEmG,KAAMC,UAAU,oBAG3BpG,KAAU,kBAGVA,GAAS,CAAEmG,KAAMC,UAAU,sBAG3BpG,KAAU,wBAGVA,GAAS,CAAEmG,KAAMC,UAAU,eAG3BpG,GAAS,CAAE8J,WAAW,IAAQ,gBAG9B9J,GAAS,CAAEmG,KAAMC,UAAU,0BAG3BpG,GAAS,CAAE8J,WAAW,IAAQ,0BAG9B9J,GAAS,CAAE8J,WAAW,IAAQ,sBAG9B9J,GAAS,CAAEmG,KAAMC,UAAU,kBAG3BpG,GAAS,CAAE8J,WAAW,IAAQ,qBAG9B9J,GAAS,CAAEmG,KAAMC,UAAU,gBAG3BpG,GAAS,CAAEmG,KAAMC,UAAU,sBAG3BpG,GAAS,CAAEmG,KAAMC,UAAU,wBAG3BpG,GAAS,CAAEmG,KAAMoB,SAAS,cAG1BvH,GAAS,CAAEmG,KAAMC,UAAU,iBAG3BnG,GAAM,CAAEkG,KAAM,iBAAiB,qBAAAG,IAAAjE,EAAAA,EAAAA,GAAA0N,GAAAzJ,GAAA,CAAAA,EAAAhE,KAAAC,EAAAA,EAAAA,GAAAwN,GAAAzJ,EAAAhE,IAAA,CAO/BrC,GAAM,CAAEkG,KAAM,eAAe,mBAAAG,IAAAjE,EAAAA,EAAAA,GAAA6N,GAAA5J,GAAA,CAAAA,EAAAhE,KAAAC,EAAAA,EAAAA,GAAA2N,GAAA5J,EAAAhE,IAAA,CAO7BrC,GAAM,CAAEkG,KAAM,cAAc,kBAAAG,IAAAjE,EAAAA,EAAAA,GAAA+N,GAAA9J,GAAA,CAAAA,EAAAhE,KAAAC,EAAAA,EAAAA,GAAA6N,GAAA9J,EAAAhE,IAAA,CAO5BrC,GAAM,CAAEkG,KAAM,iBAAiB,yBAAAG,IAAAjE,EAAAA,EAAAA,GAAAiO,GAAAhK,GAAA,CAAAA,EAAAhE,KAAAC,EAAAA,EAAAA,GAAA+N,GAAAhK,EAAAhE,IAAA,CAa/BrC,GAAM,CAAEkG,KAAM,gBAAgB,oBAAAG,IAAAjE,EAAAA,EAAAA,GAAAmO,GAAAlK,GAAA,CAAAA,EAAAhE,KAAAC,EAAAA,EAAAA,GAAAiO,GAAAlK,EAAAhE,KAAA,GAAAiE,GAAAkK,GAAAjK,KAAAC,EAAAA,EAAAA,GAAAF,KAzFExF,EAAAA,mBAAgB+E,oDCtC5C,IAAKmR,GAAC,SAADA,GAAC,OAADA,EAAC,sBAADA,EAAC,kBAADA,EAAC,kBAADA,EAAC,YAADA,EAAC,UAADA,EAAC,YAADA,EAAC,gBAADA,EAAC,gBAADA,EAAC,cAADA,EAAC,kCAADA,EAAC,kCAADA,EAAC,kCAADA,EAAC,oBAADA,EAAC,4BAADA,EAAC,oBAADA,EAAC,sBAADA,EAAC,0BAADA,EAAC,0BAADA,EAAC,wBAADA,EAAC,4CAADA,EAAC,4CAADA,EAAC,4CAADA,EAAC,8BAADA,EAAC,sCAADA,EAAC,kBAADA,EAAC,YAADA,EAAC,wBAADA,EAAC,cAADA,EAAC,cAADA,EAAC,oBAADA,EAAC,kBAADA,EAAC,YAADA,EAAC,cAADA,EAAC,oBAADA,EAAC,YAADA,EAAC,sBAADA,EAAC,oBAADA,CAAC,MA0Cb,MA4FaC,GAAK,qFC/HPC,GAA6C,WACtD,IAAIrU,GAAO,SAAkB,UAAW0K,EAAOnJ,EAAQ2D,GACrD,aAA0F,GAAAoP,KAAKpK,IAAI,qFAAqFqK,OAAO7J,EAAO,aAAa,SAAc,QAAc,CAAC,EAAGxF,GAAU,CAAC,EAAG,CAC7P3D,aAEJ,IACF,IACA,OAAO,SAAuCiT,EAAIC,EAAKC,GACrD,OAAO1U,EAAK2U,MAAM5V,KAAMZ,UAC1B,CACF,CAVwD,cCHxD,MAAMyW,GAA2C,CAC/CC,IAAK,GAAGT,MAAMD,GAAEW,MAChBC,KAAM,GAAGX,MAAMD,GAAEa,OACjBC,OAAQ,GAAGb,MAAMD,GAAEe,SACnBC,aAAc,GAAGf,MAAMD,GAAEe,SACzBE,OAAQ,GAAGhB,MAAMD,GAAEkB,SACnBC,MAAO,GAAGlB,MAAMD,GAAEoB,QAClBC,gBAAiB,GAAGpB,MAAMD,GAAEsB,kBAC5BC,gBAAiB,GAAGtB,MAAMD,GAAEwB,kBAC5BC,gBAAiB,GAAGxB,MAAMD,GAAE0B,kBAC5BC,SAAU,GAAG1B,MAAMD,GAAE4B,WACrBC,aAAc,GAAG5B,MAAMD,GAAE8B,gBAGrBC,GAA+C,CACnDrB,IAAK,GAAGT,MAAMD,GAAEgC,WAChBpB,KAAM,GAAGX,MAAMD,GAAEiC,YACjBnB,OAAQ,GAAGb,MAAMD,GAAEkC,cACnBlB,aAAc,GAAGf,MAAMD,GAAEkC,cACzBjB,OAAQ,GAAGhB,MAAMD,GAAEmC,cACnBhB,MAAO,GAAGlB,MAAMD,GAAEoC,aAClBf,gBAAiB,GAAGpB,MAAMD,GAAEqC,uBAC5Bd,gBAAiB,GAAGtB,MAAMD,GAAEsC,uBAC5Bb,gBAAiB,GAAGxB,MAAMD,GAAEuC,uBAC5BZ,SAAU,GAAG1B,MAAMD,GAAEwC,gBACrBX,aAAc,GAAG5B,MAAMD,GAAEyC,qBAGrBC,GAA6C,CACjDC,QAAS,GAAG1C,MAAMD,GAAE4C,UACpBC,UAAW,GAAG5C,MAAMD,GAAE8C,OACtBC,WAAY,GAAG9C,MAAMD,GAAEgD,aACvBC,MAAO,GAAGhD,MAAMD,GAAEkD,QAClBC,MAAO,GAAGlD,MAAMD,GAAEoD,QAClBC,SAAU,GAAGpD,MAAMD,GAAEsD,WACrBC,QAAS,GAAGtD,MAAMD,GAAEwD,UACpBC,KAAM,GAAGxD,MAAMD,GAAE0D,OACjBC,MAAO,GAAG1D,MAAMD,GAAE4D,QAClBC,SAAU,GAAG5D,MAAMD,GAAE8D,WACrBtN,KAAM,GAAGyJ,MAAMD,GAAE+D,OACjBC,SAAU,GAAG/D,MAAMD,GAAEiE,YACrBC,SAAU,GAAGjE,MAAMD,GAAEmE,YAGjBC,GAA0C,CAC9CC,kBAAmB,GAAGpE,MAAMD,GAAE4C,UAC9B,+BAAgC,GAAG3C,MAAMD,GAAE8C,OAC3CwB,8BAA+B,GAAGrE,MAAMD,GAAEgD,aAC1CuB,iBAAkB,GAAGtE,MAAMD,GAAEkD,QAC7BsB,iBAAkB,GAAGvE,MAAMD,GAAEoD,QAC7BqB,oBAAqB,GAAGxE,MAAMD,GAAEsD,WAChCoB,mBAAoB,GAAGzE,MAAMD,GAAEwD,UAC/BmB,gBAAiB,GAAG1E,MAAMD,GAAE0D,OAC5BkB,yBAA0B,GAAG3E,MAAMD,GAAE4D,QACrCiB,oBAAqB,GAAG5E,MAAMD,GAAE8D,WAChCgB,wBAAyB,GAAG7E,MAAMD,GAAE+D,OACpCgB,6BAA8B,GAAG9E,MAAMD,GAAEiE,YACzC,uBAAwB,GAAGhE,MAAMD,GAAEmE,YAG9B,SAASa,GACdjO,GACwB,IAAAkO,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EACxB,MAAMC,EACe,aAAnB9O,EAAQ+O,QAA0B/O,EAAQgP,eAEtChP,EAAQ+O,OADR,eAGAE,EAAWvC,GAAAA,KAAKwC,EACpBvD,GAAmB3L,EAAQiP,WAAajP,EAAQiP,UAE5CF,EAASrC,GAAAA,KAAKwC,EAAExF,GAAiBoF,IAAkBA,GACnDK,EAAezC,GAAAA,KAAKwC,EACxB7B,GAAgC,QAAjBa,EAAClO,EAAQoP,gBAAQ,IAAAlB,OAAA,EAAhBA,EAAkBiB,gBAChB,QAD6BhB,EAC7CnO,EAAQoP,gBAAQ,IAAAjB,OAAA,EAAhBA,EAAkBgB,eAEhBE,EAAgB3C,GAAAA,KAAKwC,EACzB7B,GAAgC,QAAjBe,EAACpO,EAAQoP,gBAAQ,IAAAhB,OAAA,EAAhBA,EAAkBiB,iBAChB,QAD8BhB,EAC9CrO,EAAQoP,gBAAQ,IAAAf,OAAA,EAAhBA,EAAkBgB,gBAEhB9I,EAAQ+I,GACI,QADUhB,EAC1BtO,EAAQoP,gBAAQ,IAAAd,OAAA,EAAhBA,EAAkB/H,MACF,QADOgI,EACvBvO,EAAQoP,gBAAQ,IAAAb,OAAA,EAAhBA,EAAkBgB,YAEdC,EAAYF,GACA,QADcd,EAC9BxO,EAAQoP,gBAAQ,IAAAZ,OAAA,EAAhBA,EAAkBgB,UACF,QADWf,EAC3BzO,EAAQoP,gBAAQ,IAAAX,OAAA,EAAhBA,EAAkBgB,gBAEdC,EAAaJ,GACD,QADeZ,EAC/B1O,EAAQoP,gBAAQ,IAAAV,OAAA,EAAhBA,EAAkBgB,WACF,QADYf,EAC5B3O,EAAQoP,gBAAQ,IAAAT,OAAA,EAAhBA,EAAkBgB,iBAEdC,EACc,aAAlBd,EACIb,GAAiBjO,EAAQgP,gBAAgBI,SACzC,KAiBN,MAAO,CACLH,WACAF,SACAI,eACAE,gBACA9I,QACAiJ,YACAE,aACAN,SAvBe1C,GAAAA,KAAKwC,EACpBlE,GAAqB8D,IAAkBA,EACvC,CACEG,WACA1I,QACAiJ,YACAE,aACAG,YAA6B,QAAlBjB,EAAE5O,EAAQoP,gBAAQ,IAAAR,GAAa,QAAbA,EAAhBA,EAAkBiB,mBAAW,IAAAjB,OAAA,EAA7BA,EAA+BlQ,KAAK,MACjDoR,gBAAiC,QAAlBjB,EAAE7O,EAAQoP,gBAAQ,IAAAP,GAAiB,QAAjBA,EAAhBA,EAAkBiB,uBAAe,IAAAjB,OAAA,EAAjCA,EAAmCnQ,KAAK,MACzDyQ,eACAE,gBACAO,qBAaFA,mBAEJ,CAEA,SAASN,KAAsE,IAAvD/I,EAAetT,UAAAmD,OAAA,QAAA2Z,IAAA9c,UAAA,GAAAA,UAAA,GAAG,GAAI+c,EAAa/c,UAAAmD,OAAA,EAAAnD,UAAA,QAAA8c,EAAEE,EAAShd,UAAAmD,OAAA,QAAA2Z,IAAA9c,UAAA,GAAAA,UAAA,GAAG,KACvE,OAAOyZ,GAAAA,KAAKwC,EAAE,GAAGhG,MAAMD,GAAEiH,OAAQ,CAC/B3J,MAAOA,EAAM7H,KAAKuR,GAClBE,QAASH,EAAQzJ,EAAMnQ,OAAS,gBAAa2Z,EAC7CK,MAAOJ,GAEX,gECxGAK,EAAAA,GAAAA,qBAAoBnH,GHyGG,CAAEoH,GA9FN,CACjBC,UAAW,YACXC,QAAS,UACTC,QAAS,UACTP,KAAM,cACNQ,cAAe,iDAEf9G,IAAK,WACLE,KAAM,YACNE,OAAQ,cACRG,OAAQ,oBACRE,MAAO,aACPE,gBAAiB,kBACjBE,gBAAiB,kBACjBE,gBAAiB,kBACjBE,SAAU,WACVE,aAAc,0BACdE,SAAU,mCACVC,UAAW,yDACXC,YAAa,sCACbC,YAAa,4CACbC,WAAY,qCACZC,qBACE,8GACFC,qBACE,8GACFC,qBACE,8GACFC,cAAe,uCACfC,kBAAmB,0BAEnBG,QAAS,UACTE,KAAM,aACNE,WAAY,aACZE,MAAO,QACPE,MAAO,QACPE,SAAU,WACVE,QAAS,UACTE,KAAM,OACNE,MAAO,QACPE,SAAU,WACVC,KAAM,OACNE,UAAW,YACXE,SAAU,YAmDiBuD,GAhDV,CACjBJ,UAAW,OACXC,QAAS,MACTC,QAAS,OACTP,KAAM,cACNQ,cAAe,4BAEf9G,IAAK,OACLE,KAAM,OACNE,OAAQ,OACRG,OAAQ,SACRE,MAAO,OACPE,gBAAiB,OACjBE,gBAAiB,OACjBE,gBAAiB,OACjBE,SAAU,KACVE,aAAc,SACdE,SAAU,gCACVC,UAAW,mDACXC,YAAa,gCACbC,YAAa,kCACbC,WAAY,gCACZC,qBACE,iFACFC,qBACE,iFACFC,qBACE,iFACFC,cAAe,8BACfC,kBAAmB,SAEnBG,QAAS,KACTE,KAAM,MACNE,WAAY,MACZE,MAAO,KACPE,MAAO,KACPE,SAAU,KACVE,QAAS,KACTE,KAAM,MACNE,MAAO,KACPE,SAAU,KACVC,KAAM,KACNE,UAAW,MACXE,SAAU,SGlGZ,MAAQrb,cAAa,GAAEC,SAAQ,GAAEC,MAAKA,KAAKC,EAAAA,EAAAA,oBAErC0e,IAAgB9e,EAAAA,EAAAA,WAA+B,aAC/C+e,IAAc/e,EAAAA,EAAAA,WAA2B,WACzCD,IAAcC,EAAAA,EAAAA,WAAyC,WACvDgf,IAAuBhf,EAAAA,EAAAA,WAC3B,qBAEIif,IAAiBjf,EAAAA,EAAAA,WAKrB,aAAc,CACdkf,gBAAiB,iBACjBC,oBAAqB,0BACpB,IAAAC,GAAA,IAAA9e,GAAA,IAAAC,QAAAC,GAAA,IAAAD,QAAAE,GAAA,IAAAF,QAAA8e,GAAA,IAAAze,QAAA0e,GAAA,IAAA/e,QAAAG,GAAA,IAAAH,QAAAgf,GAAA,IAAAhf,QAAAO,GAAA,IAAAP,QAAAif,GAAA,IAAAjf,QAiBH,MAAAkf,WAIUxe,EAAAA,iBAEVC,WAAAA,GAAA,SAAAC,YAAAC,EAAAA,EAAAA,GAAA,KAAAie,KAAAhe,EAAAA,EAAAA,GAAA,KAAAf,GAAAgN,GAAA,QAAAjM,EAAAA,EAAAA,GAAA,KAAAb,IAAA+M,GAAA,MAAAmS,GAAA,SAOEre,EAAAA,EAAAA,GAAA,KAAAZ,IAAAkf,GAAA,MAAAC,GAAA,SAOAve,EAAAA,EAAAA,GAAA,KAAAie,IAAuBO,GAAA,MACrBrM,KAEAxR,EAAAA,EAAAA,GAAAqd,GAAAtd,KAAK+d,IAAuB5d,KAAKsR,EAAK,KAGxCnS,EAAAA,EAAAA,GAAA,KAAAX,GAAAqf,GAAA,QAKA1e,EAAAA,EAAAA,GAAA,KAAAke,IAAeS,GAAA,MAAIxM,KACjBxR,EAAAA,EAAAA,GAAAqd,GAAAtd,KAAKke,IAAe/d,KAAKsR,EAAK,KAGhCnS,EAAAA,EAAAA,GAAA,KAAAP,GAAAof,GAAA,QAKA7e,EAAAA,EAAAA,GAAA,KAAAme,IAAkBW,GAAA,MAAG,MACnBne,EAAAA,EAAAA,GAAAqd,GAAAtd,KAAKqe,IAAkBle,MAAM,GAC7B,UAlCOwL,GAAK,OAAAnL,EAAAA,EAAAA,GAAAjC,GAAA,eAALoN,CAAKlL,IAAAC,EAAAA,EAAAA,GAAAnC,GAAA,KAAAkC,EAAA,cAGL6d,GAAS,OAAA9d,EAAAA,EAAAA,GAAA/B,GAAA,mBAAT6f,CAAS7d,IAAAC,EAAAA,EAAAA,GAAAjC,GAAA,KAAAgC,EAAA,CAiClBG,MAAAA,GACE,OACEC,IAAAA,cAAC0d,GAA+B,CAC9B5S,MAAO3L,KAAK2L,MACZ2S,UAAWte,KAAKse,UAChBE,oBAAoBhe,EAAAA,EAAAA,GAAK+c,GAALvd,MACpBye,YAAYje,EAAAA,EAAAA,GAAKgd,GAALxd,MACZ0e,eAAele,EAAAA,EAAAA,GAAKid,GAALzd,OAGrB,EAYK,SAASue,GACdI,GAEA,MAAM,MAAEhT,EAAK,mBAAE6S,EAAkB,WAAEC,EAAU,cAAEC,GAAkBC,GAC3D,EAAEtD,IAAMuD,EAAAA,GAAAA,gBAAevJ,KAEtBwJ,EAASC,IAAc1d,EAAAA,EAAAA,WAAS,IAChC2d,EAAcC,IAAmB5d,EAAAA,EAAAA,WAAS,IAC1C6d,EAAWC,IAAgB9d,EAAAA,EAAAA,WAAS,IACpC+d,EAAaC,IAAkBhe,EAAAA,EAAAA,UAAwB,IACxDie,GAASzd,EAAAA,EAAAA,QAAe,IAExB0d,EAAkBC,IACtBT,GAAW,GACXxJ,GAA8B3J,EAAO,CAAE6T,GAAIH,EAAOzc,QAAS6c,MAAO,KAC/DC,MAAMC,IACLP,GAAgBQ,IACd,MAAMC,EAAOF,EAAOE,KAAKjT,KAAKnM,IAAC,IAC1BA,EACHqf,YAAa1F,GAAiB3Z,OAEhC,OAAO8e,EAAUM,EAAOD,EAAIpK,OAAOqK,EAAK,IAE1CR,EAAOzc,QAAU+c,EAAOH,GACxBN,EAAaS,EAAOE,KAAKtd,OAAS,IAClCyc,EAAgBW,EAAOE,KAAKtd,OAAS,GAAG,IAEzCwd,OAAOC,KACNC,EAAAA,GAAAA,iBAAgBD,EAAM,IAEvBE,SAAQ,KACPpB,GAAW,EAAM,GACjB,EAaN,OACEje,IAAAA,cAACqc,GAAc,CACbpV,UAAU,SACVqY,QAAQ,QACRC,OAAO,EACPC,WAAW,mCACXjD,oBAhB+BvZ,IAC7BA,EAAEuN,SACJ4N,GAAgB,GAChBE,GAAa,GACbE,EAAe,IACfC,EAAOzc,QAAU,GACjB0c,GAAe,GACjB,GAWEze,IAAAA,cAACkc,GAAa,CACZuD,KAAK,SACLC,MAAM,SACNxd,UAAU,iBACVM,KAAM,CACJF,IAAK,OACLE,KAAM,UACND,MAAO,cAGXvC,IAAAA,cAAA,WACEA,IAAAA,cAAA,OAAKkC,UAAU,iBAAgB,WAC/BlC,IAAAA,cAAA,OAAKkC,UAAU,gBACZoc,EAAY5c,OACX1B,IAAAA,cAAAA,IAAAA,SAAA,KACGse,EAAYvS,KAAI,CAACnM,EAAGkK,IAEjB9J,IAAAA,cAAC2f,GAAW,CACV3X,IAAK,GAAGpI,EAAEggB,aAAahgB,EAAE+e,KACzB/N,KAAMhR,EACNigB,eAAsB,IAAN/V,GAAwB,aAAblK,EAAEya,OAC7BtY,QAAe,IAAN+H,EACT6T,mBAAoBA,EACpBC,WAAYA,OAIhBM,GACAle,IAAAA,cAAA,QAAMkC,UAAU,uBACdlC,IAAAA,cAACmc,GAAW,CACVja,UAAU,YACV4d,SAAU9B,EACV3b,QAASA,IAAMoc,KAEdjE,EAAEjG,GAAEsH,aAIVuC,GACCpe,IAAAA,cAAA,QAAMkC,UAAU,iBAAgB,UAE9BlC,IAAAA,cAAC7C,GAAW,CACV+E,UAAU,eACVI,IAAI,OACJE,KAAK,WACLD,MAAM,WACNF,QAASA,IAAMwb,QAMvB7d,IAAAA,cAAA,OAAKkC,UAAU,SAAmBsY,EAAVwD,EAAYzJ,GAAEuH,QAAavH,GAAEwH,WAIzD/b,IAAAA,cAAA,cAIR,CAYA,SAAS2f,GAAY7B,GACnB,MAAM,KAAElN,EAAI,eAAEiP,EAAc,QAAE9d,EAAO,mBAAE4b,EAAkB,WAAEC,GACzDE,EAEIa,EAAKoB,KAAOpc,OAAOiN,EAAK+N,IAAM,KAC9BqB,EAAWD,KAAAA,SAAgBpB,EAAGsB,KAAKF,SACnCG,EACJF,EAASG,SAAW,EAChBxB,EAAGyB,OAAO,uBACVJ,EAASK,UAAS,EAAM,CAAEC,GAAI,EAAGC,EAAG,GAAIC,EAAG,GAAIC,EAAG,KAExD,OACEzgB,IAAAA,cAAA,OAAKkC,UAAU,kBACblC,IAAAA,cAAA,OAAKkC,UAAU,cACblC,IAAAA,cAAA,OACEkC,UAAU,aACVG,QAASA,IAAMsb,EAAmB,IAAK/M,EAAMiP,oBAE7C7f,IAAAA,cAAA,OAAKkC,UAAU,QAAQwe,MAAO9P,EAAKqO,YAAYvE,UAC5C9J,EAAKqO,YAAYvE,UAEnB3Y,GAAW/B,IAAAA,cAAA,OAAKkC,UAAU,UAAS,cAEtClC,IAAAA,cAAA,OAAKkC,UAAU,eACZ2d,GACC7f,IAAAA,cAAC7C,GAAW,CACV+E,UAAU,WACVI,IAAI,OACJE,KAAK,WACLD,MAAM,WACNF,QAASA,IAAMub,EAAWhN,OAKlC5Q,IAAAA,cAAA,OAAKkC,UAAU,aACblC,IAAAA,cAACoc,GAAoB,CACnBla,UAAU,SACVye,iBAAkB/P,EAAKgQ,KACvBC,KAAK,OAEP7gB,IAAAA,cAAA,OAAKkC,UAAU,QAAQge,GACvBlgB,IAAAA,cAAA,OAAKkC,UAAU,YAAY0O,EAAKgQ,OAIxC,CAtLCE,GAAAjE,KAAA7Z,GAAA0H,GAAAC,GAAAmS,GAAAC,GAAAC,GAAAE,GAAA6D,GAAA9D,GAAAE,GAAAE,GAAA2D,GAAA5D,GAAAE,GAAAE,GAAAyD,GAAA1D,IAAApa,GAAAqZ,GAAApZ,MAAAC,EAAAA,EAAAA,GAAAyd,GAAA,CAvDAzjB,GAAc,0CAA2C,CACxDiG,WAAY,CAACC,GAAAA,MACb,EAKCjG,KAAU,YAGVA,KAAU,gBAMVC,GAAM,CAAEkG,KAAM,uBAAuB,0BAAAG,IAAAjE,EAAAA,EAAAA,GAAA9B,GAAA+F,GAAA,CAAAA,EAAAhE,KAAAC,EAAAA,EAAAA,GAAAhC,GAAA+F,EAAAhE,IAAA,CAarCrC,GAAM,CAAEkG,KAAM,aAAa,kBAAAG,IAAAjE,EAAAA,EAAAA,GAAA7B,GAAA8F,GAAA,CAAAA,EAAAhE,KAAAC,EAAAA,EAAAA,GAAA/B,GAAA8F,EAAAhE,IAAA,CAS3BrC,GAAM,CAAEkG,KAAM,iBAAiB,qBAAAG,IAAAjE,EAAAA,EAAAA,GAAAzB,GAAA0F,GAAA,CAAAA,EAAAhE,KAAAC,EAAAA,EAAAA,GAAA3B,GAAA0F,EAAAhE,KAAA,GAAAiE,GAAA+Y,GAAA9Y,KAAAC,EAAAA,EAAAA,GAAAF,KAlCxBxF,EAAAA,mBAAgB+E,0LC1D1B,MAAQ/F,cAAa,GAAEC,SAAQ,GAAEC,MAAKA,KAAKC,EAAAA,EAAAA,oBAErCL,IAAcC,EAAAA,EAAAA,WAAyC,WACvD0I,IAAiB1I,EAAAA,EAAAA,WAAmC,cAEpD8jB,GAAkB,IAAIC,IAAc,IAAAC,GAAA,IAAA1jB,GAAA,IAAAC,QAAAC,GAAA,IAAAD,QAAAE,GAAA,IAAAF,QAAAG,GAAA,IAAAH,QAAAO,GAAA,IAAAP,QAAAqI,GAAA,IAAArI,QAAA8O,GAAA,IAAA9O,QAAA+O,GAAA,IAAA/O,QAAAgP,GAAA,IAAAhP,QAAA0jB,GAAA,IAAArjB,QAAAsjB,GAAA,IAAA3jB,QAAAiP,GAAA,IAAAjP,QAAA4jB,GAAA,IAAA5jB,QAAAkP,GAAA,IAAAlP,QAAA6jB,GAAA,IAAA7jB,QAAAmP,GAAA,IAAAnP,QAAA8jB,GAAA,IAAA9jB,QAAAoP,GAAA,IAAApP,QAAA+jB,GAAA,IAAA/jB,QAAAqP,GAAA,IAAArP,QAAAgkB,GAAA,IAAAhkB,QAAAsP,GAAA,IAAAtP,QAAAikB,GAAA,IAAAjkB,QAAAuP,GAAA,IAAAvP,QAAAkkB,GAAA,IAAAlkB,QAAAwP,GAAA,IAAAxP,QAAAmkB,GAAA,IAAAnkB,QAiC1C,MAAAokB,WAG2B1jB,EAAAA,iBAA8CC,WAAAA,GAAA,SAAAC,YAAAC,EAAAA,EAAAA,GAAA,KAAA6iB,KAAA5iB,EAAAA,EAAAA,GAAA,KAAAf,GAAAskB,GAAA,QAAAvjB,EAAAA,EAAAA,GAAA,KAAAb,IAAAqkB,GAAA,MAAAC,GAAA,SAAAzjB,EAAAA,EAAAA,GAAA,KAAAZ,IAAAskB,GAAA,MAAAC,GAAA,SAAA3jB,EAAAA,EAAAA,GAAA,KAAAX,IAAAukB,GAAA,MAAAC,GAAA,SAcvE7jB,EAAAA,EAAAA,GAAA,KAAAP,IAAAqkB,GAAA,MAAA3jB,GAAA,SAAAH,EAAAA,EAAAA,GAAA,KAAAuH,IAAAnH,GAAA,MAAA2jB,GAAA,SAAA/jB,EAAAA,EAAAA,GAAA,KAAAgO,IAAAgW,GAAA,MAAAC,GAAA,SAAAjkB,EAAAA,EAAAA,GAAA,KAAAiO,IAAAiW,GAAA,MAAAC,GAAA,SAAAnkB,EAAAA,EAAAA,GAAA,KAAAkO,IAAAkW,GAAA,MAAAC,GAAA,SAiBArkB,EAAAA,EAAAA,GAAA,KAAA6iB,IAAyByB,GAAA,MAAI3Y,KAC3BhL,EAAAA,EAAAA,GAAAiiB,GAAAliB,KAAK6jB,IAAoB1jB,KAAK8K,EAAM,KACpC3L,EAAAA,EAAAA,GAAA,KAAAmO,GAAAqW,GAAA,QAKFxkB,EAAAA,EAAAA,GAAA,KAAA8iB,IAAkB2B,GAAA,MAAI9Y,KACpBhL,EAAAA,EAAAA,GAAAiiB,GAAAliB,KAAKgkB,IAAa7jB,KAAK8K,EAAM,KAC7B3L,EAAAA,EAAAA,GAAA,KAAAoO,GAAAuW,GAAA,QAKF3kB,EAAAA,EAAAA,GAAA,KAAA+iB,IAAgB6B,GAAA,MAAG,MACjBjkB,EAAAA,EAAAA,GAAAiiB,GAAAliB,KAAKmkB,IAAWhkB,MAAM,KACtBb,EAAAA,EAAAA,GAAA,KAAAqO,GAAAyW,GAAA,QAKF9kB,EAAAA,EAAAA,GAAA,KAAAgjB,IAAsB+B,GAAA,MAAG,MACvBpkB,EAAAA,EAAAA,GAAAiiB,GAAAliB,KAAKskB,IAAiBnkB,MAAM,KAC5Bb,EAAAA,EAAAA,GAAA,KAAAsO,GAAA2W,GAAA,QAKFjlB,EAAAA,EAAAA,GAAA,KAAAijB,IAAsBiC,GAAA,MAAI/S,KACxBxR,EAAAA,EAAAA,GAAAiiB,GAAAliB,KAAKykB,IAAiBtkB,KAAKsR,EAAK,KAChCnS,EAAAA,EAAAA,GAAA,KAAAuO,GAAA6W,GAAA,QAKFplB,EAAAA,EAAAA,GAAA,KAAAkjB,IAAkBmC,GAAA,MAAG,MACnB1kB,EAAAA,EAAAA,GAAAiiB,GAAAliB,KAAK4kB,IAAazkB,MAAM,KACxBb,EAAAA,EAAAA,GAAA,KAAAwO,GAAA+W,GAAA,QAKFvlB,EAAAA,EAAAA,GAAA,KAAAmjB,IAAoBqC,GAAA,MAAIrT,KACtBxR,EAAAA,EAAAA,GAAAiiB,GAAAliB,KAAK+kB,IAAe5kB,KAAKsR,EAAK,KAC9BnS,EAAAA,EAAAA,GAAA,KAAAyO,GAAAiX,GAAA,QAKF1lB,EAAAA,EAAAA,GAAA,KAAAojB,IAAyBuC,GAAA,MAAIxT,KAC3BxR,EAAAA,EAAAA,GAAAiiB,GAAAliB,KAAKklB,IAAoB/kB,KAAKsR,EAAK,KACnCnS,EAAAA,EAAAA,GAAA,KAAA0O,GAAAmX,GAAA,QAKF7lB,EAAAA,EAAAA,GAAA,KAAAqjB,IAAyByC,GAAA,MAAI3T,KAC3BxR,EAAAA,EAAAA,GAAAiiB,GAAAliB,KAAKqlB,IAAoBllB,KAAKsR,EAAK,GACnC,UAvFO6T,GAAK,OAAA9kB,EAAAA,EAAAA,GAAAjC,GAAA,eAAL+mB,CAAK7kB,IAAAC,EAAAA,EAAAA,GAAAnC,GAAA,KAAAkC,EAAA,SAGL6D,GAAI,OAAA9D,EAAAA,EAAAA,GAAA/B,GAAA,cAAJ6F,CAAI7D,IAAAC,EAAAA,EAAAA,GAAAjC,GAAA,KAAAgC,EAAA,aAGJ8kB,GAAQ,OAAA/kB,EAAAA,EAAAA,GAAA9B,GAAA,kBAAR6mB,CAAQ9kB,IAAAC,EAAAA,EAAAA,GAAAhC,GAAA,KAAA+B,EAAA,aAGR+kB,GAAQ,OAAAhlB,EAAAA,EAAAA,GAAA7B,GAAA,kBAAR6mB,CAAQ/kB,IAAAC,EAAAA,EAAAA,GAAA/B,GAAA,KAAA8B,EAAA,WAMRV,GAAM,OAAAS,EAAAA,EAAAA,GAAAzB,GAAA,gBAANgB,CAAMU,IAAAC,EAAAA,EAAAA,GAAA3B,GAAA,KAAA0B,EAAA,cAGNglB,GAAS,OAAAjlB,EAAAA,EAAAA,GAAAqG,GAAA,mBAAT4e,CAAShlB,IAAAC,EAAAA,EAAAA,GAAAmG,GAAA,KAAApG,EAAA,uBAGTilB,GAAkB,OAAAllB,EAAAA,EAAAA,GAAA8M,GAAA,4BAAlBoY,CAAkBjlB,IAAAC,EAAAA,EAAAA,GAAA4M,GAAA,KAAA7M,EAAA,kBAGlBklB,GAAa,OAAAnlB,EAAAA,EAAAA,GAAA+M,GAAA,uBAAboY,CAAallB,IAAAC,EAAAA,EAAAA,GAAA6M,GAAA,KAAA9M,EAAA,CAiEtBG,MAAAA,GACE,OACEC,IAAAA,cAAC+kB,GAAqB,CACpBN,MAAOtlB,KAAKslB,MACZhhB,KAAMtE,KAAKsE,KACXihB,SAAUvlB,KAAKulB,SACfC,SAAUxlB,KAAKwlB,SACfG,cAAe3lB,KAAK2lB,cACpBE,sBAAsBrlB,EAAAA,EAAAA,GAAK2hB,GAALniB,MACtB8lB,eAAetlB,EAAAA,EAAAA,GAAK4hB,GAALpiB,MACf+lB,aAAavlB,EAAAA,EAAAA,GAAK6hB,GAALriB,MACbgmB,mBAAmBxlB,EAAAA,EAAAA,GAAK8hB,GAALtiB,MACnBimB,mBAAmBzlB,EAAAA,EAAAA,GAAK+hB,GAALviB,MACnBkmB,eAAe1lB,EAAAA,EAAAA,GAAKgiB,GAALxiB,MACfmmB,iBAAiB3lB,EAAAA,EAAAA,GAAKiiB,GAALziB,MACjBomB,sBAAsB5lB,EAAAA,EAAAA,GAAKkiB,GAAL1iB,MACtBqmB,sBAAsB7lB,EAAAA,EAAAA,GAAKmiB,GAAL3iB,OAG5B,EAeK,SAAS4lB,GAAqB3kB,GAeN,IAfO,MACpCqkB,EACAhhB,KAAMgiB,EAAK,SACXf,EAAQ,SACRC,EAAQ,cACRG,EAAa,qBACbE,EAAoB,cACpBC,EAAa,YACbC,EAAW,kBACXC,EAAiB,kBACjBC,EAAiB,cACjBC,EAAa,gBACbC,EAAe,qBACfC,EAAoB,qBACpBC,GAC2BplB,EAC3B,MAAMqD,EAAiB,UAAVgiB,EAAoB,QAAU,QACpCC,EAAcC,IAAmBplB,EAAAA,EAAAA,UAASkkB,IAC1CmB,EAAcC,IAAmBtlB,EAAAA,EAAAA,WAAS,GAC3CulB,GAA0B/kB,EAAAA,EAAAA,SAAO,IAChCglB,EAAuBC,IAA4BzlB,EAAAA,EAAAA,WAAS,GAC7D0lB,GAAgBllB,EAAAA,EAAAA,QAAyB,OAE/CL,EAAAA,EAAAA,YAAU,KACRilB,EAAgBlB,EAAM,GACrB,CAACA,IAEJ,MAAMyB,GAAkBtlB,EAAAA,EAAAA,cAAaoC,IACnCA,EAAEkO,iBACFlO,EAAEmjB,kBACFN,GAAgB,EAAK,GACpB,KAEHnlB,EAAAA,EAAAA,YAAU,KACJokB,IAAkB5D,GAAgBpd,IAAIghB,KACxC5D,GAAgBjM,IAAI6P,GACpBsB,YAAW,KACTP,GAAgB,EAAK,GACpB,GACL,GACC,CAACf,KAEJpkB,EAAAA,EAAAA,YAAU,KACU,IAAA2lB,EAAAC,EAAdV,IAGmB,QAArBS,EAAAJ,EAAclkB,eAAO,IAAAskB,GAArBA,EAAuBE,MAAM,CAAEC,eAAe,IACzB,QAArBF,EAAAL,EAAclkB,eAAO,IAAAukB,GAArBA,EAAuBG,SACzB,GACC,CAACb,KAEJllB,EAAAA,EAAAA,YAAU,KACJolB,EAAwB/jB,QAC1BijB,SAAAA,EAAuBY,GAEvBE,EAAwB/jB,SAAU,CACpC,GACC,CAAC6jB,EAAcZ,IAElB,MAAM0B,GAAoB9lB,EAAAA,EAAAA,cACvBrD,IACCooB,EAAgBpoB,EAAMwH,OAAOqF,MAAM,GAErC,IAGIuc,GAAqB/lB,EAAAA,EAAAA,cAAarD,IACtC,MAAMyK,EACJzK,EAAMyK,KACoCzK,EAAMqpB,SACNrpB,EAAMspB,MACf,IAAAC,EAAvB,UAAR9e,GAA2B,KAARA,GACA,QAArB8e,EAAAb,EAAclkB,eAAO,IAAA+kB,GAArBA,EAAuBC,MACzB,GACC,IAEGC,GAAkBpmB,EAAAA,EAAAA,cAAY,KAClCilB,GAAgB,GAChBG,GAAyB,EAAK,GAC7B,KAEHtlB,EAAAA,EAAAA,YAAU,KACJqlB,IACFd,SAAAA,EAAgBS,GAChBM,GAAyB,GAC3B,GACC,CAACN,EAAcT,EAAec,IAEjC,MAAMkB,GAAoBrmB,EAAAA,EAAAA,cACvBoC,IACCA,EAAEmjB,kBACFd,SAAAA,GAAiB,GAEnB,CAACA,IAGG6B,GAAsBtmB,EAAAA,EAAAA,cACzBoC,IACCA,EAAEmjB,kBACFb,SAAAA,EAAkBZ,EAAS,GAE7B,CAACA,EAAUY,IAGPa,GAAkBvlB,EAAAA,EAAAA,cAAaoC,IACnCA,EAAEmjB,iBAAiB,GAClB,IAGGgB,EAAqE,GAAvDC,KAAKC,IAAI,EAAGD,KAAKE,QAAO3C,aAAQ,EAARA,EAAUjjB,SAAU,GAAK,IAErE,OACE1B,IAAAA,cAAAA,IAAAA,SAAA,KACEA,IAAAA,cAAA,OACEkC,UAAWC,IAAW,OAAQsB,EAAM,CAAE,gBAAiBmiB,IACvDhjB,MAAO,CAAE2kB,OAAiB,UAAT9jB,EAAmB,GAAK,IAAM0jB,GAC/C9kB,QAAS6iB,EACTsC,cAAerC,EACfsC,cAAgBzkB,IACdA,EAAEmjB,kBACFnjB,EAAEkO,iBACFkU,SAAAA,EAAoB,CAClB/T,QAASrO,EAAEqO,QACXE,QAASvO,EAAEuO,SACX,GAGJvR,IAAAA,cAAA,SACEkC,UAAU,cACVkI,MAAOsb,EACP/iB,IAAKsjB,EACLyB,SAAUhB,EACViB,UAAWhB,EACXiB,OAAQZ,EACRQ,cAAerB,EACfsB,cAAetB,EACf0B,YAAa1B,IAEfnmB,IAAAA,cAAA,OACEkC,UAAU,QACVslB,cAAetB,EACf2B,YAAa1B,GAEZT,GAEO,UAATjiB,EACCzD,IAAAA,cAAA,OAAKkC,UAAU,kBACblC,IAAAA,cAAC7C,GAAW,CAACmF,IAAI,OAAOE,KAAK,oBAG/BxC,IAAAA,cAAA,OACEkC,UAAU,sBACVU,MAAO,CACL2kB,OAAQ,GAAKJ,IAGfnnB,IAAAA,cAAA,OAAKkC,UAAU,yBACblC,IAAAA,cAAC7C,GAAW,CAACmF,IAAI,OAAOE,KAAK,cAE9BkiB,GACC1kB,IAAAA,cAAA,OACEkC,UAAU,WACVG,QAAS6kB,EACTM,cAAerB,EACf0B,YAAa1B,GAEbnmB,IAAAA,cAAC7C,GAAW,CAACmF,IAAI,OAAOE,KAAK,YAC7BxC,IAAAA,cAAA,QAAMkC,UAAU,kBAAkBwiB,EAASD,QAG9CE,SAAAA,EAAUjjB,OACT1B,IAAAA,cAAA,OAAKkC,UAAU,aACZyiB,EAAS5Y,KAAK+b,GACb9nB,IAAAA,cAAC+nB,GAAO,CACN/f,IAAK8f,EAAQE,GACbF,QAASA,EACTvC,qBAAsBA,EACtBC,qBAAsBA,OAI1B,OAIVxlB,IAAAA,cAAA,OACEkC,UAAU,aACV+lB,KAAK,SACL5lB,QAAS4kB,EACTY,YAAa1B,GAEbnmB,IAAAA,cAAC7C,GAAW,CAACmF,IAAI,KAAKE,KAAK,UAInC,CAQA,SAASulB,GAAOG,GAIC,IAJA,QACfJ,EAAO,qBACPvC,EAAoB,qBACpBC,GACa0C,EACb,OACEloB,IAAAA,cAAC8F,GAAc,CAACkC,IAAK8f,EAAQE,GAAIhhB,QAAS8gB,EAAQrD,OAChDzkB,IAAAA,cAAA,OACEkC,UAAU,WACVslB,cAAgBxkB,IACdA,EAAEmjB,kBACFZ,SAAAA,EAAuBuC,EAAQ,EAEjCL,cAAgBzkB,IACdA,EAAEmjB,kBACFnjB,EAAEkO,iBACFsU,SAAAA,EAAuB,CACrBjZ,KAAMub,EACNzW,QAASrO,EAAEqO,QACXE,QAASvO,EAAEuO,SACX,GAGJvR,IAAAA,cAAA,OAAKkC,UAAU,4BACflC,IAAAA,cAAA,OAAKkC,UAAU,8BACflC,IAAAA,cAAA,OAAKkC,UAAU,8BAIvB,CAtPCimB,GAAApG,KAAA/e,GAAAgf,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAA3jB,GAAAC,GAAA2jB,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAE,GAAAoF,GAAArF,GAAAE,GAAAE,GAAAkF,GAAAnF,GAAAE,GAAAE,GAAAgF,GAAAjF,GAAAE,GAAAE,GAAA8E,GAAA/E,GAAAE,GAAAE,GAAA4E,GAAA7E,GAAAE,GAAAE,GAAA0E,GAAA3E,GAAAE,GAAAE,GAAAwE,GAAAzE,GAAAE,GAAAE,GAAAsE,GAAAvE,GAAAE,GAAAE,GAAAoE,GAAArE,IAAAphB,GAAAie,GAAAhe,MAAAC,EAAAA,EAAAA,GAAA8kB,GAAA,CAlHA9qB,GAAc,gCAAiC,CAC9CiG,WAAY,CAACC,GAAAA,MACb,EAECjG,KAAU,YAGVA,KAAU,WAGVA,GAAS,CAAE8J,WAAW,IAAQ,eAG9B9J,GAAS,CAAE8J,WAAW,IAAQ,eAM9B9J,GAAS,CAAEmG,KAAMC,QAAS3D,QAAQ,IAAQ,aAG1CzC,GAAS,CAAEmG,KAAMC,QAAS3D,QAAQ,IAAQ,gBAG1CzC,GAAS,CAAEmG,KAAMC,QAAS3D,QAAQ,IAAQ,yBAG1CzC,KAAU,oBAGVC,GAAM,CAAEkG,KAAM,yBAAyB,uBAAAG,IAAAjE,EAAAA,EAAAA,GAAAgN,GAAA/I,GAAA,CAAAA,EAAAhE,KAAAC,EAAAA,EAAAA,GAAA8M,GAAA/I,EAAAhE,IAAA,CAOvCrC,GAAM,CAAEkG,KAAM,iBAAiB,gBAAAG,IAAAjE,EAAAA,EAAAA,GAAAiN,GAAAhJ,GAAA,CAAAA,EAAAhE,KAAAC,EAAAA,EAAAA,GAAA+M,GAAAhJ,EAAAhE,IAAA,CAO/BrC,GAAM,CAAEkG,KAAM,eAAe,cAAAG,IAAAjE,EAAAA,EAAAA,GAAAkN,GAAAjJ,GAAA,CAAAA,EAAAhE,KAAAC,EAAAA,EAAAA,GAAAgN,GAAAjJ,EAAAhE,IAAA,CAO7BrC,GAAM,CAAEkG,KAAM,kBAAkB,oBAAAG,IAAAjE,EAAAA,EAAAA,GAAAmN,GAAAlJ,GAAA,CAAAA,EAAAhE,KAAAC,EAAAA,EAAAA,GAAAiN,GAAAlJ,EAAAhE,IAAA,CAOhCrC,GAAM,CAAEkG,KAAM,qBAAqB,oBAAAG,IAAAjE,EAAAA,EAAAA,GAAAoN,GAAAnJ,GAAA,CAAAA,EAAAhE,KAAAC,EAAAA,EAAAA,GAAAkN,GAAAnJ,EAAAhE,IAAA,CAOnCrC,GAAM,CAAEkG,KAAM,iBAAiB,gBAAAG,IAAAjE,EAAAA,EAAAA,GAAAqN,GAAApJ,GAAA,CAAAA,EAAAhE,KAAAC,EAAAA,EAAAA,GAAAmN,GAAApJ,EAAAhE,IAAA,CAO/BrC,GAAM,CAAEkG,KAAM,mBAAmB,kBAAAG,IAAAjE,EAAAA,EAAAA,GAAAsN,GAAArJ,GAAA,CAAAA,EAAAhE,KAAAC,EAAAA,EAAAA,GAAAoN,GAAArJ,EAAAhE,IAAA,CAOjCrC,GAAM,CAAEkG,KAAM,qBAAqB,uBAAAG,IAAAjE,EAAAA,EAAAA,GAAAuN,GAAAtJ,GAAA,CAAAA,EAAAhE,KAAAC,EAAAA,EAAAA,GAAAqN,GAAAtJ,EAAAhE,IAAA,CAOnCrC,GAAM,CAAEkG,KAAM,wBAAwB,uBAAAG,IAAAjE,EAAAA,EAAAA,GAAAwN,GAAAvJ,GAAA,CAAAA,EAAAhE,KAAAC,EAAAA,EAAAA,GAAAsN,GAAAvJ,EAAAhE,KAAA,GAAAiE,GAAAie,GAAAhe,KAAAC,EAAAA,EAAAA,GAAAF,KApFdxF,EAAAA,mBAAgB+E,6CCpD5B,SAASylB,GAAoBtI,EAAGuI,EAAGC,EAAGvO,GACnD,OAAOsO,GAAE,EAAAE,GAAA,GAAiBzI,EAAGwI,GAAIvO,GAAIA,CACvC,gCCEA,MAAM,OAAEyO,GAAQ3rB,SAAQA,KAAKE,EAAAA,EAAAA,oBAAmB,IAAAE,GAAA,IAAAC,QAAAurB,GAAA,IAAAlrB,QAAAJ,GAAA,IAAAD,QAAAE,GAAA,IAAAF,QAAAG,GAAA,IAAAH,QAAAO,GAAA,IAAAP,QAAAqI,GAAA,IAAArI,QAAA8O,GAAA,IAAA9O,QAEzC,MAAewrB,WAA4B9qB,EAAAA,iBAAiBC,WAAAA,GAAA,SAAAC,YAAAC,EAAAA,EAAAA,GAAA,KAAA0qB,KAAAzqB,EAAAA,EAAAA,GAAA,KAAAf,IAAA0rB,GAAA,OAC1C,KAAK3qB,EAAAA,EAAAA,GAAA,KAAAb,GACP,WAAQa,EAAAA,EAAAA,GAAA,KAAAZ,IACJ,IAAKY,EAAAA,EAAAA,GAAA,KAAAX,GAAAurB,GAAA,QAAA5qB,EAAAA,EAAAA,GAAA,KAAAP,IAAAorB,GAAA,MAAAC,GAAA,SAAA9qB,EAAAA,EAAAA,GAAA,KAAAuH,IAAAwjB,GAAA,MAAAC,GAAA,SAAAhrB,EAAAA,EAAAA,GAAA,KAAAgO,IAAAid,GAAA,MAAAC,GAAA,QAAAC,GAAA,MAE9B,qBAAIC,GACF,OAAO,CACT,CAEA,iBAAIC,CAAc1f,GAChBye,GAAAK,GAAKa,GAAL5qB,KAAiBiL,GACjBjL,KAAK6qB,SACP,CACA,iBAAIF,GACF,OAAO1qB,EAAAA,EAAAA,GAAA8pB,GAAA/pB,KAAK8qB,GACd,CAOA,aAAIC,CAAU9f,GACZjL,KAAKgrB,OAAS/f,EACdye,GAAAK,GAAKkB,GAALjrB,KAAmBiL,GACnBjL,KAAK6qB,SACP,CACA,aAAIE,GACF,OAAO9qB,EAAAA,EAAAA,GAAA8pB,GAAA/pB,KAAKkrB,GACd,CAEA,iBAAIC,GACF,OAAOlrB,EAAAA,EAAAA,GAAA8pB,GAAA/pB,KAAKorB,GACd,CACA,iBAAID,CAAclgB,GAChBye,GAAAK,GAAKsB,GAALrrB,KAAqBiL,GACrBjL,KAAK6qB,SACP,CAAC,aAKQS,GAAS,OAAA9qB,EAAAA,EAAAA,GAAA7B,GAAA,mBAAT2sB,CAAS7qB,IAAAC,EAAAA,EAAAA,GAAA/B,GAAA,KAAA8B,EAAA,eAOT8qB,GAAU,OAAA/qB,EAAAA,EAAAA,GAAAzB,GAAA,oBAAVwsB,CAAU9qB,IAAAC,EAAAA,EAAAA,GAAA3B,GAAA,KAAA0B,EAAA,aAOV+qB,GAAQ,OAAAhrB,EAAAA,EAAAA,GAAAqG,GAAA,kBAAR2kB,CAAQ/qB,IAAAC,EAAAA,EAAAA,GAAAmG,GAAA,KAAApG,EAAA,eAKRgrB,GAAU,OAAAjrB,EAAAA,EAAAA,GAAA8M,GAAA,oBAAVme,CAAUhrB,IAAAC,EAAAA,EAAAA,GAAA4M,GAAA,KAAA7M,EAAA,CAGnBirB,YAAAA,CAAazgB,GACXjL,KAAK+qB,UAAY9f,CACnB,CAGA0gB,cAAAA,GAEE,IAAIC,EAA+B5rB,KACnC,MAAQ4rB,EAAUA,EAAQC,aACnBD,IAAWA,EAAQE,gBAI1B,OAAOF,CACT,EA9EuC,SAAAV,GAAAa,GAAA,OAAAvrB,EAAAA,EAAAA,GAAAjC,GAAAwtB,EAAA,UAAAd,GAAAe,EAAAvrB,IAAAC,EAAAA,EAAAA,GAAAnC,GAAAytB,EAAAvrB,EAAA,UAAAqqB,GAAAmB,GAAA,OAAAzrB,EAAAA,EAAAA,GAAA/B,GAAAwtB,EAAA,UAAArB,GAAAsB,EAAAzrB,IAAAC,EAAAA,EAAAA,GAAAjC,GAAAytB,EAAAzrB,EAAA,UAAA2qB,GAAAe,GAAA,OAAA3rB,EAAAA,EAAAA,GAAA9B,GAAAytB,EAAA,UAAAd,GAAAe,EAAA3rB,IAAAC,EAAAA,EAAAA,GAAAhC,GAAA0tB,EAAA3rB,EAAA,CA+ExC4rB,GA/EqBrC,IAAmBE,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAR,KAAA/lB,EAAAA,EAAAA,GAAAmoB,GAAA,KAuCtCluB,GAAS,CACR8J,WAAW,IACX,gBAKD9J,GAAS,CACR8J,WAAW,IACX,iBAKD9J,GAAS,CACR8J,WAAW,IACX,eAGD9J,GAAS,CACR8J,WAAW,IACX,iBAGD6hB,KAAQ,mBAKRA,KAAQ,8BApEuC5qB,EAAAA,kBAAgB2E,ECD3D,IAAIyoB,GAAgD,WACzD,IAAIrrB,GAAO,SAAkB,UAAWwQ,EAAMtL,GAC5C,aAA8F,GAAAoP,KAAKgX,KAAK,iFAAkF9a,EAAMtL,IAChM,IACF,IACA,OAAO,SAA0CsP,EAAIC,GACnD,OAAOzU,EAAK2U,MAAM5V,KAAMZ,UAC1B,CACF,CAR2D,GCNpD,IAAKgW,GAAC,SAADA,GAAC,OAADA,EAAC,4DAADA,EAAC,4DAADA,EAAC,sDAADA,CAAC,MAMb,MAaaC,GAAK,wCAELmX,GAAU,CAAE/P,GAfN,CACjBgQ,6BAA8B,iBAC9BC,6BACE,sDACFC,0BAA2B,6CAWA7P,GARV,CACjB2P,6BAA8B,OAC9BC,6BAA8B,YAC9BC,0BAA2B,gBCJ7BnQ,EAAAA,GAAAA,qBAAoBnH,GAAImX,IACxB,MAAMxuB,IAAcC,EAAAA,EAAAA,WAAyC,WACvD2uB,IAAe3uB,EAAAA,EAAAA,WACnB,WACA,CACEsqB,SAAU,WAUP,SAASsE,GAAWlO,GACzB,MAAM,WAAEmO,EAAa,GAAE,OAAErE,GAAW9J,GAC7BpC,EAAOwQ,IAAY3rB,EAAAA,EAAAA,UAAS0rB,IAC7B,EAAEzR,IAAMuD,EAAAA,GAAAA,gBAAevJ,KACtBW,EAAMgX,IAAW5rB,EAAAA,EAAAA,WAAS,GAejC,OACEP,IAAAA,cAAA,OAAKkC,UAAU,eAAeud,KAAM3B,EAAM2B,MACvCjF,EAAEjG,GAAEqX,8BAA+B,IACnCzW,EACCnV,IAAAA,cAAC+rB,GAAY,CACXK,WAAW,EACXC,WAAY,CAAEC,MAAO,IACrBliB,MAAOvF,OAAO6W,GACdkM,OAbW2E,KACjBJ,GAAQ,GACRvE,SAAAA,EAASlM,EAAM,EAYTgM,SAtBc1kB,IACpBkpB,EAASvoB,OAAOX,EAAEuN,QAAQ,IAwBtBvQ,IAAAA,cAAA,YACG0b,EAAM,IAAC1b,IAAAA,cAAC7C,GAAW,CAACqF,KAAK,OAAOF,IAAI,OAAOD,QAtBhC1B,KAClBwrB,GAAQ,EAAK,KAuBR,IACF3R,EAAEjG,GAAEsX,8BAGX,0DC3CAlQ,EAAAA,GAAAA,qBAAoBnH,GAAImX,IAExB,MAAQtuB,cAAa,GAAEC,SAAQ,GAAEC,MAAKA,KAAKC,EAAAA,EAAAA,oBAErCgvB,IAAkBpvB,EAAAA,EAAAA,WAAmC,gBAErDqvB,IAAsBrvB,EAAAA,EAAAA,WAK1B,mBAAoB,CACpBsqB,SAAU,WAGZ,IAAAgF,GAAA,IAAAhvB,GAAA,IAAAC,QAAAC,GAAA,IAAAD,QAAAE,GAAA,IAAAF,QAAAG,GAAA,IAAAH,QAAAO,GAAA,IAAAP,QAAAqI,GAAA,IAAArI,QAAAgvB,GAAA,IAAA3uB,QA8EA,SAAS4uB,GAAcxiB,GACrB,GAAqB,iBAAVA,EACT,MAAO,CACL3H,KAAM,GACNoqB,QAAS,IAEb,MAAOpqB,EAAMoqB,GAAWziB,EAAMP,MAAM,KACpC,MAAO,CACLpH,OACAoqB,UAEJ,CAEA,SAASC,GAAcrqB,GACrB,MAAO,sBAAsBsqB,KAAKtqB,EACpC,CAEO,SAASuqB,GAAkB5iB,GAChC,OAAK6iB,EAAAA,GAAAA,OAAM7iB,IAAW0iB,GAAc1iB,GAG7B,GAFE4N,GAAAA,KAAKwC,EAAE,GAAGhG,MAAMD,GAAEuX,4BAG7B,CAEO,SAASoB,GAAyB9sB,GAMf,IANgB,MACxCgK,EAAK,WACLiiB,EAAU,cACVvC,EAAa,OACbqD,EAAM,SACNzF,GACsBtnB,EACtB,MAAOgtB,EAAGC,IAAQ9sB,EAAAA,EAAAA,aACX+sB,EAAUC,IAAehtB,EAAAA,EAAAA,UAAS,IACnCitB,ECvID,SAAwBptB,GAGK,IAHJ,SAC9BktB,EAAW,GAAE,EACbF,EAAI,IACWhtB,EACf,MAAOotB,EAAcC,IAAmBltB,EAAAA,EAAAA,UAA0B,KAC3DmtB,EAAOL,IAAQ9sB,EAAAA,EAAAA,UAAiB6sB,IAChC1R,EAAOwQ,IAAY3rB,EAAAA,EAAAA,UAAS+sB,GAiCnC,OA/BA5sB,EAAAA,EAAAA,YAAU,KACR2sB,EAAKD,EAAE,GACN,CAACA,KAEJ1sB,EAAAA,EAAAA,YAAU,KACRwrB,EAASoB,EAAS,GACjB,CAACA,KAEJ5sB,EAAAA,EAAAA,YAAU,KACR,WACE,IACE,MAAM,KAAEse,SAAeyM,GACrB,CACEkC,KAAM,EACNL,SAAU5R,EACVkS,iBAAkBF,GAEpB,CACEG,kBAAmB,CAAEC,kBAAkB,KAI3CL,EAAgBzO,EAClB,CAAE,MAAO+O,GAEPC,QAAQ7O,MAAM4O,GACdN,EAAgB,GAClB,CACD,EAnBD,EAmBI,GACH,CAACC,EAAOhS,IAEJ8R,CACT,CD+FuBS,CAAgB,CAAEb,IAAGE,cACnCY,EAAYC,IAAiB5tB,EAAAA,EAAAA,UAASqsB,GAAcxiB,KACpDgkB,EAAgBC,IAAqB9tB,EAAAA,EAAAA,UAAS,KAErDG,EAAAA,EAAAA,YAAU,KACRytB,EAAcvB,GAAcxiB,GAAO,GAClC,CAACA,IAEJ,MAAMkkB,GAAgBntB,EAAAA,EAAAA,UACpB,KACEotB,EAAAA,GAAAA,WAAUnkB,IACRijB,EAAKjjB,EAAM,GACV,MACL,IAmCF,OACEpK,IAAAA,cAAA,OAAKkC,UAAU,oBACblC,IAAAA,cAACysB,GAAmB,CAClBvqB,UAAU,oBACVoD,QAASkoB,aAAY,EAAZA,EAAczhB,KAAKhE,IAAI,CAC9BqC,MAAOrC,EAAK6lB,iBACZnJ,MAAO1c,EAAK6lB,qBAEdxjB,MAAO8jB,EAAWzrB,KAClB4pB,WAAYA,EACZvC,cAAeA,EACfpC,SA3CqBnqB,IACzB,MAAMkF,EAAOlF,EAAMgT,OAEnB,GAAIuc,GAAcrqB,GAChB0rB,EAAcvB,GAAcnqB,IAC5BilB,SAAAA,EAAWjlB,OACN,KAAA+rB,EACL,MAAMC,EAEL,QAFgBD,EAAGhB,EAAakB,MAC9B3mB,GAASA,EAAK6lB,mBAAqBnrB,WACrC,IAAA+rB,OAAA,EAFmBA,EAEjB3B,QAEG8B,GAAkBF,aAAW,EAAXA,EAAc,KAAM,GAC5CJ,EAAkBI,GAClBN,EAAc,CACZ1rB,OACAoqB,QAAS8B,IAEXjH,SAAAA,EAAW,GAAGjlB,KAAQksB,IACxB,CACAL,EAAc7rB,EAAK,GA0BfzC,IAAAA,cAACgsB,GAAU,CACTpE,OAAS0F,GAAaC,EAAYD,GAClC7N,KAAK,qBAGTzf,IAAAA,cAACysB,GAAmB,CAClBvqB,UAAU,mBACVkI,MAAO8jB,EAAWrB,QAClB/C,cAAeA,EACfxkB,QAAS8oB,aAAc,EAAdA,EAAgBriB,KAAKnM,IAAC,CAAQwK,MAAOxK,EAAG6kB,MAAO7kB,MACxD8nB,SAjCuBnqB,IAC3B,MAAMsvB,EAAUtvB,EAAMgT,OACtB4d,EAAc,CACZ1rB,KAAMyrB,EAAWzrB,KACjBoqB,YAGFnF,SAAAA,EAAW,GAAGwG,EAAWzrB,QAAQoqB,IAAU,IA4BxCM,SAAAA,EAAQyB,SACP5uB,IAAAA,cAAC6uB,GAAAA,uBAA2B1B,GAC1B,KAGV,CA/HC2B,GA1DD,cAG+B3F,GAAoB7qB,WAAAA,GAAA,SAAAC,YAAAC,EAAAA,EAAAA,GAAA,KAAAmuB,KAAAluB,EAAAA,EAAAA,GAAA,KAAAf,GAAAqxB,GAAA,QAAAtwB,EAAAA,EAAAA,GAAA,KAAAb,IAAAoxB,GAAA,MAAAC,GAAA,SAAAxwB,EAAAA,EAAAA,GAAA,KAAAZ,IAAAqxB,GAAA,MAAAlN,GAAA,SAAAvjB,EAAAA,EAAAA,GAAA,KAAAX,IAAAmkB,GAAA,MAAAkN,GAAA,SAAA1wB,EAAAA,EAAAA,GAAA,KAAAP,IAAAkxB,GAAA,MAAAC,GAAA,SAAA5wB,EAAAA,EAAAA,GAAA,KAAAuH,IAAAspB,GAAA,MAAAC,GAAA,SAAAtqB,EAAAA,EAAAA,GAAA,qBAAAuqB,GAAA,MA2BjC5vB,KACdR,EAAAA,EAAAA,GAAAutB,GAAAxtB,KAAKswB,IAAanwB,KAAKM,EAAE,GAC1B,SA3BQ6C,GAAI,OAAA9C,EAAAA,EAAAA,GAAAjC,GAAA,cAAJ+E,CAAI7C,IAAAC,EAAAA,EAAAA,GAAAnC,GAAA,KAAAkC,EAAA,aAKJ8vB,GAAQ,OAAA/vB,EAAAA,EAAAA,GAAA/B,GAAA,kBAAR8xB,CAAQ9vB,IAAAC,EAAAA,EAAAA,GAAAjC,GAAA,KAAAgC,EAAA,UAGR6kB,GAAK,OAAA9kB,EAAAA,EAAAA,GAAA9B,GAAA,eAAL4mB,CAAK7kB,IAAAC,EAAAA,EAAAA,GAAAhC,GAAA,KAAA+B,EAAA,UAKLwK,GAAK,OAAAzK,EAAAA,EAAAA,GAAA7B,GAAA,eAALsM,CAAKxK,IAAAC,EAAAA,EAAAA,GAAA/B,GAAA,KAAA8B,EAAA,WAKLutB,GAAM,OAAAxtB,EAAAA,EAAAA,GAAAzB,GAAA,gBAANivB,CAAMvtB,IAAAC,EAAAA,EAAAA,GAAA3B,GAAA,KAAA0B,EAAA,CAWfG,MAAAA,GACE,OACEC,IAAAA,cAACwsB,GAAe,CACdmD,YAAY,UACZC,WAAYzwB,KACZ0wB,YAAa1wB,KAAK2rB,iBAClBroB,KAAMtD,KAAKsD,KACXgiB,MAAOtlB,KAAKslB,MACZiL,SAAUvwB,KAAKuwB,SACfhF,WAAYvrB,KAAKurB,WACjBD,UAAWtrB,KAAKsrB,UAChBP,UAAW/qB,KAAK+qB,UAChB5K,QAAQ,eACRwQ,UAAW9C,IAEXhtB,IAAAA,cAACktB,GAAyB,CACxB9iB,MAAOjL,KAAKiL,MACZ+iB,OAAQhuB,KAAKguB,OACbrD,cAAe3qB,KAAK2qB,cACpBpC,SAAUvoB,KAAK4wB,eAIvB,KACD/sB,GAAA+rB,GAAAC,GAAAC,GAAAC,GAAAlN,GAAAC,GAAAkN,GAAAC,GAAAC,GAAAC,GAAAC,GAAAE,GAAAO,GAAAR,IAAArsB,GAAAupB,GAAAtpB,MAAAC,EAAAA,EAAAA,GAAAyrB,GAAA,CA1DAzxB,GAAc,iCAAkC,CAC/CiG,WAAY,CAACC,GAAAA,MACb,EAECjG,KAAU,WAGVA,GAAS,CACRmG,KAAMC,UACN,eAGDpG,KAAU,YAGVA,GAAS,CACR8J,WAAW,IACX,YAGD9J,GAAS,CACR8J,WAAW,IACX,aAKD7J,GAAM,CAAEkG,KAAM,WAAW,gBAAAG,IAAAjE,EAAAA,EAAAA,GAAAqG,GAAApC,GAAA,CAAAA,EAAAhE,KAAAC,EAAAA,EAAAA,GAAAmG,GAAApC,EAAAhE,KAAA,GAAAiE,GAAA8oB,GAAA7oB,KAAAC,EAAAA,EAAAA,GAAAF,KAxBGslB,KAAmB/lB,0FEhClD,MAAM6sB,IAAc7yB,EAAAA,EAAAA,WAAyB,WACvC8yB,IAAkB9yB,EAAAA,EAAAA,WAAwC,gBAC1D0I,IAAiB1I,EAAAA,EAAAA,WAAmC,cACpD+yB,IAAiBC,EAAAA,GAAAA,gBACrB,2BAMFzU,EAAAA,GAAAA,qBChBkB,uDAEK,CAAEC,GANN,CAAC,EAMSK,GAJV,CAAC,IDoBpB,MAAQ5e,cAAa,GAAEC,SAAQ,GAAEC,MAAK,GAAE0rB,OAAMA,KAAKzrB,EAAAA,EAAAA,oBAEzB,IAAA6yB,GAAA,IAAA3yB,GAAA,IAAAC,QAAAC,GAAA,IAAAD,QAAAE,GAAA,IAAAF,QAAAG,GAAA,IAAAH,QAAA2yB,GAAA,IAAAtyB,QAAAE,GAAA,IAAAP,QAAA4yB,GAAA,IAAA5yB,QAAA6yB,GAAA,IAAA7yB,QAgC1B,MAAA8yB,WAG0CpyB,EAAAA,iBAAiBC,WAAAA,GAAA,SAAAC,YAAAC,EAAAA,EAAAA,GAAA,KAAA8xB,KAAA7xB,EAAAA,EAAAA,GAAA,KAAAf,IAAA0rB,GAAA,MAAAsH,GAAA,SAAAjyB,EAAAA,EAAAA,GAAA,KAAAb,IAAA+yB,GAAA,MAAA/xB,GAAA,SAAAH,EAAAA,EAAAA,GAAA,KAAAZ,IAAAgB,GAAA,MAAA+xB,GAAA,SAAAnyB,EAAAA,EAAAA,GAAA,KAAAX,IAAA+yB,GAAA,MAAAC,GAAA,SAAAryB,EAAAA,EAAAA,GAAA,KAAAP,IAAA6yB,GAAA,MAAAC,GAAA,SAgCzDvyB,EAAAA,EAAAA,GAAA,KAAA8xB,IAAoBU,GAAA,MAAI5W,KACtBjb,EAAAA,EAAAA,GAAAkxB,GAAAnxB,KAAK+xB,IAAoB5xB,KAAK+a,EAAO,KAGvC5b,EAAAA,EAAAA,GAAA,KAAA+xB,IAAsBnW,KACpBjb,EAAAA,EAAAA,GAAAkxB,GAAAnxB,KAAKgyB,IAAkB7xB,KAAK+a,EAAO,GACnC,YAlCO/U,GAAO,OAAA3F,EAAAA,EAAAA,GAAAjC,GAAA,iBAAP4H,CAAO1F,IAAAC,EAAAA,EAAAA,GAAAnC,GAAA,KAAAkC,EAAA,WAKPV,GAAM,OAAAS,EAAAA,EAAAA,GAAA/B,GAAA,gBAANsB,CAAMU,IAAAC,EAAAA,EAAAA,GAAAjC,GAAA,KAAAgC,EAAA,aAGNwxB,GAAQ,OAAAzxB,EAAAA,EAAAA,GAAA9B,GAAA,kBAARuzB,CAAQxxB,IAAAC,EAAAA,EAAAA,GAAAhC,GAAA,KAAA+B,EAAA,CASjByxB,IAAAA,CAAIjxB,GAAyB,IAAxB,SAAEgxB,GAAoBhxB,EACzBjB,KAAKD,QAAS,EACdC,KAAKiyB,SAAWA,CAClB,CAGAE,KAAAA,GACEnyB,KAAKD,QAAS,EACdC,KAAKiyB,cAAW/V,CAClB,CAUAkW,oBAAAA,GACEC,MAAMD,uBACNpB,GAAehxB,MAAM,EACvB,CAEAY,MAAAA,GACE,OACEC,IAAAA,cAACyxB,GAAoC,CACnCvyB,OAAQC,KAAKD,OACb6rB,QAAS5rB,KACTiyB,SAAUjyB,KAAKiyB,SACfM,iBAAiB/xB,EAAAA,EAAAA,GAAK4wB,GAALpxB,MACjBwyB,eAAehyB,EAAAA,EAAAA,GAAK6wB,GAALrxB,MACfmG,QAASnG,KAAKmG,SAGpB,EAYK,SAASmsB,GAAoCvJ,GAOf,IAAA0J,EAAAC,EAAA,IAPgB,QACnD9G,EAAO,OACP7rB,EAAM,cACNyyB,EAAa,gBACbD,EAAe,QACfpsB,EAAO,SACP8rB,GACiClJ,EACjC,MAAO4J,EAAUC,IAAexxB,EAAAA,EAAAA,WAAS,GACnCyxB,GAAejxB,EAAAA,EAAAA,QAAY,OAC1BkxB,EAAeC,IAAoB3xB,EAAAA,EAAAA,UAA0B,MAE9D4xB,GAAkBvxB,EAAAA,EAAAA,cACrBoC,IACCA,EAAEkO,iBACF6Z,SAAAA,EAASuG,OAAO,GAElB,CAACvG,IAGGqH,GAAkBxxB,EAAAA,EAAAA,cACtB,CAACoC,EAAoB4N,KAGA,IAAAyhB,EAFnBN,GAAY,GAERnhB,EAAK0hB,WACO,QAAdD,EAAArvB,EAAEuvB,oBAAY,IAAAF,GAAdA,EAAgBG,QACd5hB,EAAK0hB,SAASlS,OACdqS,KAAKC,UAAU9hB,EAAK0hB,SAAS1hB,QAGhC5N,EAAE+B,OAAuB4tB,UAAU1d,IAAI,YACxCyc,SAAAA,EAAkB9gB,EAAK,GAEzB,CAAC8gB,IAGGkB,GAAoBhyB,EAAAA,EAAAA,cACxB,CAACoC,EAAoB4N,KACnBmhB,GAAY,GACX/uB,EAAE+B,OAAuB4tB,UAAUE,OAAO,YAC3C9H,SAAAA,EAASuG,QACTK,SAAAA,EAAgB/gB,EAAK,GAEvB,CAACma,EAAS4G,IA0BZ,OAvBAjxB,EAAAA,EAAAA,YAAU,KACRyvB,GAAepF,EAAU7rB,EAAO,GAC/B,CAACA,EAAQ6rB,KAEZrqB,EAAAA,EAAAA,YAAU,KACR,GAAIxB,GAAU8yB,EAAajwB,SAAWqvB,EAAU,CAC9C,MAAM0B,EAAOd,EAAajwB,QAAQgxB,wBAC5BzG,EAAQwG,EAAKxG,MA5JD,EA6JZ/E,EAASuL,EAAKvL,OA7JF,GA8JZ,YAAEyL,EAAW,aAAEC,GAAiBC,SAASC,gBACzCC,EAAQ,IAAIhC,GACd4B,EAAc1G,GAAS8E,EAAS,GAAK9E,EAAQ0G,IAC/CI,EAAM,GAAKhC,EAAS,GAAK9E,GAEvB2G,EAAe1L,GAAU6J,EAAS,GAAK7J,EAAS0L,IAClDG,EAAM,GAAKH,EAAe1L,GAE5B2K,EAAiBkB,EACnB,MACElB,EAAiB,KACnB,GACC,CAAChzB,EAAQkyB,IAGVpxB,IAAAA,cAAAA,IAAAA,SAAA,MACI8xB,GACA9xB,IAAAA,cAAA,OACEkC,UAAU,OACVG,QAAS8vB,EACT1K,cAAe0K,IAGnBnyB,IAAAA,cAAA,OACEkC,UAAU,YACVS,IAAKqvB,EACLpvB,MAAO,CACLywB,KAAgC,QAA5BzB,EAAGK,GAAiBb,SAAQ,IAAAQ,OAAA,EAA1BA,EAA8B,GACpC0B,IAA+B,QAA5BzB,EAAGI,GAAiBb,SAAQ,IAAAS,OAAA,EAA1BA,EAA8B,GACnC0B,WAAYtB,EAAgB,UAAY,WAGzC3sB,aAAO,EAAPA,EAASyG,KAAI,CAACynB,EAAIxnB,KAAK,IAAAynB,EAAAC,EAAA,OACtB1zB,IAAAA,cAAA,OAAKgI,IAAKgE,GACRhM,IAAAA,cAAA,OAAKkC,UAAU,SAASsxB,EAAG9S,QACf,QAAX+S,EAAAD,EAAGG,gBAAQ,IAAAF,OAAA,EAAXA,EAAa/xB,SACZ1B,IAAAA,cAACiwB,GAAW,KACE,QADFyD,EACTF,EAAGG,gBAAQ,IAAAD,OAAA,EAAXA,EAAa3nB,KAAI,CAAChE,EAAM6rB,IAErB5zB,IAAAA,cAAC8F,GAAc,CACbkB,QAASe,EAAKjB,QACd+sB,OAAK,EACL5sB,UAAU,OACVe,IAAK4rB,GAEL5zB,IAAAA,cAACkwB,GAAe,CACdpQ,SAAU/X,EAAK+X,SACftd,KAAMuF,EAAKvF,KACXsxB,WAAY/rB,EAAK+X,SACjBiU,YAAc/wB,GACZovB,EAAgBpvB,EAAG+E,GAErBisB,UAAYhxB,GACV4vB,EAAkB5vB,EAAG+E,IAGtBA,EAAKmE,UAOd,KAKhB,CAtIC+nB,GAAAxD,KAAAztB,GAAA0tB,GAAAC,GAAA/xB,GAAAC,GAAA+xB,GAAAC,GAAAC,GAAAI,GAAAgD,GAAAnD,GAAAC,GAAAG,GAAAgD,GAAAlD,GAAA7H,IAAAjmB,GAAAktB,GAAAjtB,MAAAC,EAAAA,EAAAA,GAAA4wB,GAAA,CA5DA52B,GAAc,gDAAiD,CAC9DiG,WAAY,CAACC,GAAAA,MACb,EAECjG,GAAS,CACR8J,WAAW,IACX,cAGD9J,GAAS,CACRmG,KAAMC,UACN,aAGDpG,GAAS,CAAE8J,WAAW,IAAQ,eAG9B7J,GAAM,CAAEkG,KAAM,oBAAoB,uBAAAG,IAAAjE,EAAAA,EAAAA,GAAA7B,GAAA8F,GAAA,CAAAA,EAAAhE,KAAAC,EAAAA,EAAAA,GAAA/B,GAAA8F,EAAAhE,IAAA,CAGlCrC,GAAM,CAAEkG,KAAM,kBAAkB,qBAAAG,IAAAjE,EAAAA,EAAAA,GAAAzB,GAAA0F,GAAA,CAAAA,EAAAhE,KAAAC,EAAAA,EAAAA,GAAA3B,GAAA0F,EAAAhE,IAAA,CAGhCqpB,KAAQ,WAMRA,KAAQ,eAAAplB,GAAA2sB,GAAA1sB,KAAAC,EAAAA,EAAAA,GAAAF,KA1B+BxF,EAAAA,mBAAgB+E,iGExDnD,SAASgxB,KACd,SAASC,EACP9nB,EACA+nB,EACAC,GAEA,IAAKA,GAA6B,QAAnBA,EAAOC,SAAsC,SAAjBjoB,EAAKioB,QAC9C,OAGF,MAAMC,EAuBV,SAAqBloB,GACnB,MAAMrK,EAAaqK,EAAKmoB,WAAWxyB,WAA0B,GAE7D,IAAK,MAAMyyB,KAAiBzyB,EAC1B,GAAkC,cAA9ByyB,EAAc5qB,MAAM,EAAG,GACzB,OAAO4qB,EAAc5qB,MAAM,GAAG6qB,cAIlC,OAAO,IACT,CAjCiBC,CAAYtoB,GAEzB,GAAa,OAATkoB,EACF,OAGF,IAAI3V,EACJ,IACEyV,EAAOG,WAAWxyB,WACfqyB,EAAOG,WAAWxyB,WAA0B,IAC7CyS,OAAO,YAAc8f,GACvB3V,EAASgW,GAAAA,EAAUC,WAAUC,EAAAA,GAAAA,GAASzoB,GAAOkoB,EAC/C,CAAE,MACA,MACF,CAEAloB,EAAKonB,SAAW7U,EAAO6U,QACzB,CACA,OAAQsB,KACNC,EAAAA,GAAAA,IAAMD,EAAM,UAAWZ,EAAQ,CAEnC,CC5BA,MAAMc,GAAa,CAAEC,SAAQ,YAAEC,IAAG,OAAEC,KAAIA,GAAAA,MAOjC,SAASC,GAAiBn1B,GAAsC,IAArC,QAAE4G,GAAiC5G,EACnE,MAAOo1B,EAAcC,IAAmBl1B,EAAAA,EAAAA,UAA6B,MA2BrE,OAzBAG,EAAAA,EAAAA,YAAU,KACR,IAAIg1B,GAAS,EAmBb,OAlBAC,EAAAA,GAAAA,KACGC,IAAIC,GAAAA,GACJD,IAAIE,GAAAA,GACJF,IAAI,CAACxB,KACLwB,IAAIG,GAAAA,EAAaZ,IACjBa,QAAQhvB,GACR6X,MAAMoX,IACAP,GACHD,EAAgBQ,EAAMnX,OACxB,IAEDI,OAAOC,IACDuW,IAEH1H,QAAQ7O,MAAM,2BAA4BA,GAC1CsW,EAAgB,MAClB,IAEG,KACLC,GAAS,CAAI,CACd,GACA,CAAC1uB,IAEGwuB,CACT,CCrCA,MAAMU,IAAgB94B,EAAAA,EAAAA,WAAiC,aA4BhD,SAAS+4B,GAAgB/1B,GAAqC,IAApC,QAAEg2B,GAAgCh2B,EACjE,MAAMi2B,GAAgBl1B,EAAAA,EAAAA,UAAQ,KAC5B,MAAMm1B,EAAyB,GAE/B,GAAqB,cAAjBF,EAAQnO,KAAsB,CAChC,MAAMsO,EACJ,uDAEF,IAAI5tB,EACA6tB,EAAY,EAChB,KAAQ7tB,EAAQ4tB,EAAYE,KAAKL,EAAQpvB,UAAW,CAClD,MAAO0vB,EAAWC,EAAS3vB,GAAW2B,EAChCiuB,EAAQjuB,EAAMqD,MACd6qB,EAAeT,EAAQpvB,QAAQ+C,MAAMysB,EAAWI,GAAOE,OACzDD,EAAan1B,OAAS,GACxB40B,EAAOhuB,KAAK,CACV7E,KAAM,WACNuD,QAAS6vB,IAGbP,EAAOhuB,KAAK,CACV7E,KAAM,UACNkzB,UACA3vB,QAASA,EAAQ8vB,OACjBC,IAAKL,IAEPF,EAAYD,EAAYC,SAC1B,CACA,MAAMQ,EAAWZ,EAAQpvB,QAAQ+C,MAAMysB,GAAWM,OAC9CE,EAASt1B,OAAS,GACpB40B,EAAOhuB,KAAK,CACV7E,KAAM,WACNuD,QAASgwB,GAGf,MACEV,EAAOhuB,KAAK,CACV7E,KAAM,QACNuD,QAASovB,EAAQpvB,UAIrB,OAAOsvB,CAAM,GACZ,CAACF,EAAQpvB,QAASovB,EAAQnO,OAEvBgP,GAAal2B,EAAAA,EAAAA,QAAuB,MA6C1C,OA5CAL,EAAAA,EAAAA,YAAU,KACR,MAAMw2B,EAAiBD,EAAWl1B,QAC7Bm1B,GAGL9Q,YAAW,KACT,MAAM+Q,EACJD,EAAeE,cAAcC,iBAAiB,YAChD,IAAK,MAAMtM,KAAWoM,EACpBpM,EAAQ4H,UAAUE,OAAO,WAE3B,IAAKuD,EAAQkB,QACX,OAIF,IAAIv1B,EAAUm1B,EACd,KAAOn1B,GAAS,CACd,MAAMw1B,EAAYx1B,EAAQw1B,UAC1B,IACEA,aAAS,EAATA,EAAWC,YAAaC,KAAKC,cACY,aAAvCH,aAAS,EAATA,EAA2B/C,WAC1B+C,EAAiClG,KAG/B,KAAAsG,EAIL,IACEJ,aAAS,EAATA,EAAWC,YAAaC,KAAKG,WACW,IAAxCL,EAAUM,YAAYf,OAAOp1B,SACJ,QAAzBi2B,EAAAJ,EAAUO,uBAAe,IAAAH,OAAA,EAAzBA,EAA2BH,YAAaC,KAAKC,aAI7C,MAFA31B,EAAUw1B,EAAUO,eAIxB,MAdE/1B,EAAUw1B,CAed,CACAx1B,EAAQ4wB,UAAU1d,IAAI,UAAU,GAC/B,EAAE,GACJ,CAACmhB,EAAQkB,QAASlB,EAAQpvB,UAG3BhH,IAAAA,cAAA,OAAKkC,UAAWC,IAAW,UAAW,CAAE41B,OAAQ3B,EAAQ2B,UACtD/3B,IAAAA,cAAA,OAAKkC,UAAU,UACblC,IAAAA,cAACk2B,GAAa,CACZ1zB,KAAM,CACJF,IAAK,UACLE,KAAuB,cAAjB4zB,EAAQnO,KAAuB,QAAU,WAEjDpH,KAAK,QACL3e,UAAW,QAAQk0B,EAAQnO,UAG/BjoB,IAAAA,cAAA,OAAKkC,UAAU,QACblC,IAAAA,cAAA,OAAKkC,UAAU,SACK,cAAjBk0B,EAAQnO,KAAuB,YAAc,OAEhDjoB,IAAAA,cAAA,OAAKkC,UAAU,UAAUS,IAAKs0B,GAC3BZ,EAActqB,KAAI,CAACisB,EAAOhsB,IACzBhM,IAAAA,cAACi4B,GAAqB,CAACjwB,IAAKgE,EAAOgsB,MAAOA,QAMtD,CAEA,SAASC,GAAqB/P,GAAqC,IAApC,MAAE8P,GAAgC9P,EAC/D,OACEloB,IAAAA,cAAAA,IAAAA,SAAA,KACkB,aAAfg4B,EAAMv0B,KACLzD,IAAAA,cAAA,OAAKkC,UAAU,YACblC,IAAAA,cAACu1B,GAAiB,CAACvuB,QAASgxB,EAAMhxB,WAEnB,YAAfgxB,EAAMv0B,KACRzD,IAAAA,cAAAA,IAAAA,SAAA,KACEA,IAAAA,cAAA,WAASkC,UAAU,WACjBlC,IAAAA,cAAA,eAAS,MAAIg4B,EAAMrB,SACnB32B,IAAAA,cAAA,WACEA,IAAAA,cAAA,YAAOg4B,EAAMhxB,YAKnBhH,IAAAA,cAAA,OAAKkC,UAAU,SAAS81B,EAAMhxB,SAItC,kDCpKA,MAAQ3J,cAAa,GAAEC,SAAQ,GAAEC,MAAKA,KAAKC,EAAAA,EAAAA,oBAAmB,IAAA06B,GAAA,IAAAx6B,GAAA,IAAAC,QAAAC,GAAA,IAAAD,QAAAE,GAAA,IAAAF,QAAAw6B,GAAA,IAAAn6B,QAAAo6B,GAAA,IAAAz6B,QAoC9D,MAAA06B,WAIUh6B,EAAAA,iBAEVC,WAAAA,GAAA,SAAAC,YAAAC,EAAAA,EAAAA,GAAA,KAAA25B,KAAA15B,EAAAA,EAAAA,GAAA,KAAAf,GAAA46B,GAAA,QAAA75B,EAAAA,EAAAA,GAAA,KAAAb,IAAA26B,GAAA,MAAAC,GAAA,SAAA/5B,EAAAA,EAAAA,GAAA,KAAAZ,IAAA46B,GAAA,MAAAC,GAAA,SAUEj6B,EAAAA,EAAAA,GAAA,KAAA25B,IAAuBO,GAAA,MAAIC,KACzBx5B,EAAAA,EAAAA,GAAA+4B,GAAAh5B,KAAK05B,IAAkBv5B,KAAKs5B,EAAW,GACvC,aAVOE,GAAQ,OAAAn5B,EAAAA,EAAAA,GAAAjC,GAAA,kBAARo7B,CAAQl5B,IAAAC,EAAAA,EAAAA,GAAAnC,GAAA,KAAAkC,EAAA,kBAGRm5B,GAAa,OAAAp5B,EAAAA,EAAAA,GAAA/B,GAAA,uBAAbm7B,CAAan5B,IAAAC,EAAAA,EAAAA,GAAAjC,GAAA,KAAAgC,EAAA,CAStBG,MAAAA,GACE,OACEC,IAAAA,cAACg5B,GAAyB,CACxBC,KAAM95B,KACN25B,SAAU35B,KAAK25B,SACfC,cAAe55B,KAAK45B,cACpBG,oBAAoBv5B,EAAAA,EAAAA,GAAKy4B,GAALj5B,OAG1B,EAQK,SAAS65B,GAAyB54B,GAKN,IALO,SACxC04B,EAAQ,KACRG,EAAI,cACJF,EAAa,mBACbG,GAC+B94B,EAC/B,MAAMm2B,GAAcp1B,EAAAA,EAAAA,UAClB,IACE,6EACF,IAEIg4B,GAAkBp4B,EAAAA,EAAAA,QAAO,IAAIqK,MAC5BkrB,EAAQ8C,IAAa74B,EAAAA,EAAAA,UAA4B,IAClD84B,GAAoBt4B,EAAAA,EAAAA,SAAO,IAEjCL,EAAAA,EAAAA,YAAU,KACR,IAAK,MAAM01B,KAAW0C,GAAY,GAAI,CACpC,GAAqB,cAAjB1C,EAAQnO,KACV,SAGF,IAAItf,EADJ4tB,EAAYC,UAAY2C,EAAgBp3B,QAAQuI,IAAI8rB,EAAQpuB,MAAQ,EAEpE,MAAMsxB,EAA+B,GACrC,IAAIC,GAAU,EACd,KAAQ5wB,EAAQ4tB,EAAYE,KAAKL,EAAQpvB,UAAW,CAClDmyB,EAAgBp3B,QAAQoK,IAAIiqB,EAAQpuB,IAAKuuB,EAAYC,WACrD,MAAO,CAAE/yB,EAAMuD,GAAW2B,EAC1B,IACE,MAAM6wB,EAAS/G,KAAKgH,MAAMzyB,GACb,SAATvD,GACF81B,GAAU,EACVD,EAAUhxB,QACJkxB,IAGNF,EAAUhxB,KAAK,IACTkxB,EACJ/1B,KAAM,QAGZ,CAAE,MAAOT,GAEPgrB,QAAQ7O,MAAM,2BAA4Bnc,EAC5C,CACF,CACIu2B,EACFH,EAAUE,GACDA,EAAU53B,OAAS,GAC5B03B,GAAWM,GAAS,IAAIA,KAASJ,IAErC,IACC,CAAC/C,EAAauC,IAEjB,MAAOF,EAAYe,IAAiBp5B,EAAAA,EAAAA,UAAsB,KAE1DG,EAAAA,EAAAA,YAAU,KACR,MAAMk5B,EAAS,GACTC,EAAgB,IAAIzuB,IAC1B,IAAK,MAAM4sB,KAAS1B,EACC,UAAf0B,EAAMv0B,KACRm2B,EAAOtxB,KAAK0vB,GACHA,EAAMY,YACfiB,EAAc1tB,IAAI6rB,EAAM8B,KAAM9B,EAAMY,YAKxCgB,EAAOG,MAAK,CAAChR,EAAGiR,IAAMjR,EAAEkR,IAAMD,EAAEC,MAEhC,MAAMC,EAA2B,CAC/B1iB,MAAO,oBACPmc,SAAU,IAENwG,EAAkB,CACtB3iB,MAAO,eACPmc,SAAU,CACR,CACEnc,MAAO,gBACPiI,KAAM,YACNiV,WAAY,CACV0F,UAAW,WAMnB,IAAIC,GAAa,EACjB,IAAK,MAAMC,KAASV,EAElB,GAAmB,UAAfU,EAAM73B,KACR,IAAK,MAAM83B,KAASD,EAAM3G,SAAU,CAClC,MAAM6G,EAAaX,EAAcvvB,IAAIiwB,GACjCC,IACFL,EAAKxG,SAASrrB,KAAK,IACdkyB,EACH9F,WAAY,IACP8F,EAAW9F,WACdjV,UAAMpE,GAER0d,gBACAtZ,KAAM,UACNgb,IAAK,QAAQF,IACbG,KAAM,CACJj3B,KAAM,OACNq2B,KAAMS,EACND,MAAO,CACLR,KAAMQ,EAAMR,KACZr3B,KAAM63B,EAAM73B,SAIlB43B,GAAa,EAEjB,KACK,CACL,MAAMM,EAAWd,EAAcvvB,IAAIgwB,EAAMR,MACzC,GAAIa,EAAU,CACZ,MAAMnjB,EAAmB,IACpBmjB,EACHhH,SAAU,GACVoF,gBACA0B,IAAK,SAASH,EAAMR,OACpBY,KAAM,CACJj3B,KAAM,QACNq2B,KAAMQ,EAAMR,KACZr3B,KAAM63B,EAAM73B,OAGhB43B,GAAa,EACbH,EAAcvG,SAASrrB,KAAKkP,GAC5B,IAAK,MAAM+iB,KAASD,EAAM3G,SAAU,CAClC,MAAM6G,EAAaX,EAAcvvB,IAAIiwB,GACjCC,GACFhjB,EAAMmc,SAASrrB,KAAK,IACfkyB,EACHzB,gBACA0B,IAAK,QAAQF,IACbG,KAAM,CACJj3B,KAAM,OACNq2B,KAAMS,IAId,CACF,MAAO,IAAKD,EAAMM,aAChB,IAAK,MAAML,KAASD,EAAM3G,SAAU,CAClC,MAAM6G,EAAaX,EAAcvvB,IAAIiwB,GACjCC,IACFN,EAAcvG,SAASrrB,KAAK,IACvBkyB,EACHzB,gBACA0B,IAAK,QAAQF,IACbG,KAAM,CACJj3B,KAAM,OACNq2B,KAAMS,KAGVF,GAAa,EAEjB,CAEJ,CAGFF,EAAKxG,SAASrrB,KAAK4xB,GAEnBP,GAAeD,GACbW,EAAa,CAACF,GAAwB,IAAhBT,EAAKh4B,OAAeg4B,EAAO,IAClD,GACA,CAACpD,EAAQyC,KAEZr4B,EAAAA,EAAAA,YAAU,KACRw4B,SAAAA,EAAqBN,EAAW,GAC/B,CAACM,EAAoBN,IAExB,MAAMiC,GAAuB15B,EAAAA,EAAAA,UAAQ,KAEnC,IAAIY,EAAUk3B,EACd,KAAOl3B,GAAS,CACd,MAAM+4B,EAAYC,iBAAiBh5B,EAAS,MAAMi5B,iBAChD,cAEF,GAAkB,SAAdF,GAAsC,WAAdA,EAC1B,OAAO/4B,EAET,GAAIA,EAAQipB,sBAAsBiQ,WAChCl5B,EAAUA,EAAQipB,WAAWiO,SACxB,MAAIl3B,EAAQipB,sBAAsBkQ,SAGvC,MAFAn5B,EAAUA,EAAQipB,UAGpB,CACF,CACA,OAAOkI,SAASiI,kBAAoBjI,SAASC,eAAe,GAC3D,CAAC8F,IA0BJ,OAxBAv4B,EAAAA,EAAAA,YAAU,KACJ24B,EAAkBt3B,SAGtBqkB,YAAW,KAETyU,EAAqBO,SAAS,EAAGP,EAAqBQ,aAAc,GACnE,EAAE,GACJ,CAACvC,EAAU+B,KAEdn6B,EAAAA,EAAAA,YAAU,KACR,MAAMQ,EAAeA,KACnBm4B,EAAkBt3B,QAChB84B,EAAqB74B,UACnB64B,EAAqB5H,aACrB,EACF4H,EAAqBQ,YAAY,EAGrC,OADAR,EAAqB71B,iBAAiB,SAAU9D,GACzC,KACL25B,EAAqBS,oBAAoB,SAAUp6B,EAAa,CACjE,GACA,CAAC25B,IAGF76B,IAAAA,cAAAA,IAAAA,SAAA,KACG84B,aAAQ,EAARA,EAAU/sB,KAAI,CAACqqB,EAASpqB,IACvBhM,IAAAA,cAACm2B,GAAgB,CACfnuB,IAAKouB,EAAQpuB,KAAO,SAASgE,IAC7BoqB,QAASA,MAKnB,CA7OCmF,GAAAlD,KAAAr1B,GAAAs1B,GAAAC,GAAAC,GAAAC,GAAAC,GAAAG,GAAA2C,GAAA7C,IAAAx1B,GAAA+0B,GAAA90B,MAAAC,EAAAA,EAAAA,GAAAk4B,GAAA,CA9BAl+B,GAAc,mCAAoC,CACjDiG,WAAY,CAACC,GAAAA,MACb,EAKCjG,GAAS,CAAE8J,WAAW,IAAQ,eAG9B9J,GAAS,CAAEmG,KAAMC,UAAU,oBAG3BnG,GAAM,CAAEkG,KAAM,sBAAsB,qBAAAG,IAAAjE,EAAAA,EAAAA,GAAA9B,GAAA+F,GAAA,CAAAA,EAAAhE,KAAAC,EAAAA,EAAAA,GAAAhC,GAAA+F,EAAAhE,KAAA,GAAAiE,GAAAu0B,GAAAt0B,KAAAC,EAAAA,EAAAA,GAAAF,KAT7BxF,EAAAA,mBAAgB+E,+BCzCnB,SAASq4B,GAAuBr7B,GAOc,IAPb,QACtCs7B,EAAO,MACPpP,EAAK,OACL/E,EAAM,KACN8L,EAAI,IACJC,EAAG,MACH7O,GAC6BrkB,EAE7B,OACEJ,IAAAA,cAAA,OACEkC,UAAW,WAAaw5B,EACxB94B,MAAO,CACL0pB,MAAOA,EAAQqP,EACfpU,OAAQA,EAASoU,EACjBtI,KAAMA,EAPQ,EAQdC,IAAKA,EARS,IAWhBtzB,IAAAA,cAAA,OAAKkC,UAAU,SAASuiB,GAG9B,uECPA,MAAQpnB,cAAa,GAAEC,SAAQ,GAAEC,MAAK,GAAE0rB,OAAMA,KAAKzrB,EAAAA,EAAAA,oBAAmB,IAAAo+B,GAAA,IAAAl+B,GAAA,IAAAC,QAAAC,GAAA,IAAAD,QAAAE,GAAA,IAAAF,QAAAG,GAAA,IAAAH,QAAAO,GAAA,IAAAP,QAAAqI,GAAA,IAAArI,QAAAk+B,GAAA,IAAA79B,QAAA89B,GAAA,IAAAn+B,QActE,MAAAo+B,WAG0B19B,EAAAA,iBAAiBC,WAAAA,GAAA,SAAAC,YAAAC,EAAAA,EAAAA,GAAA,KAAAq9B,KAAAp9B,EAAAA,EAAAA,GAAA,KAAAf,IAAA0rB,GAAA,MAAA4S,GAAA,SAAAv9B,EAAAA,EAAAA,GAAA,KAAAb,IAAAq+B,GAAA,MAAAC,GAAA,SAAAz9B,EAAAA,EAAAA,GAAA,KAAAZ,IAAAs+B,GAAA,MAAAC,GAAA,SAAA39B,EAAAA,EAAAA,GAAA,KAAAX,IAAAu+B,GAAA,MAAAC,GAAA,SAAA79B,EAAAA,EAAAA,GAAA,KAAAP,IAAAq+B,GAAA,MAAAC,GAAA,SAAA/9B,EAAAA,EAAAA,GAAA,KAAAuH,IAAAy2B,GAAA,MAAAC,GAAA,SAkBzCj+B,EAAAA,EAAAA,GAAA,KAAAq9B,IAAyBa,GAAA,MAAI53B,KAC3B3F,EAAAA,EAAAA,GAAAy8B,GAAA18B,KAAKy9B,IAAyBt9B,KAAKyF,EAAO,GAC1C,eAlBO6zB,GAAU,OAAAj5B,EAAAA,EAAAA,GAAAjC,GAAA,oBAAVk7B,CAAUh5B,IAAAC,EAAAA,EAAAA,GAAAnC,GAAA,KAAAkC,EAAA,UAGV2C,GAAK,OAAA5C,EAAAA,EAAAA,GAAA/B,GAAA,eAAL2E,CAAK3C,IAAAC,EAAAA,EAAAA,GAAAjC,GAAA,KAAAgC,EAAA,cAGLi9B,GAAS,OAAAl9B,EAAAA,EAAAA,GAAA9B,GAAA,mBAATg/B,CAASj9B,IAAAC,EAAAA,EAAAA,GAAAhC,GAAA,KAAA+B,EAAA,QAGTk9B,GAAG,OAAAn9B,EAAAA,EAAAA,GAAA7B,GAAA,aAAHg/B,CAAGl9B,IAAAC,EAAAA,EAAAA,GAAA/B,GAAA,KAAA8B,EAAA,eAGHm9B,GAAU,OAAAp9B,EAAAA,EAAAA,GAAAzB,GAAA,oBAAV6+B,CAAUn9B,IAAAC,EAAAA,EAAAA,GAAA3B,GAAA,KAAA0B,EAAA,CASnB6mB,MAAAA,CAAOuW,GAA0B,IAAA34B,EAC/B,MAAM44B,EAA2B,QAAlB54B,EAAGlF,KAAKmF,kBAAU,IAAAD,GAAyB,QAAzBA,EAAfA,EAAiBE,cAAc,iBAAS,IAAAF,OAAA,EAAxCA,EAA0C64B,cAC5DD,SAAAA,EAAWE,YACT,CACEC,QAAS,eACT35B,KAAM,SACNu5B,WAEFtxB,SAAS2xB,OAEb,CAEAt9B,MAAAA,GACE,OACEC,IAAAA,cAACs9B,GAAoB,CACnB1E,WAAYz5B,KAAKy5B,WACjBr2B,MAAOpD,KAAKoD,MACZs6B,UAAW19B,KAAK09B,UAChBC,IAAK39B,KAAK29B,IACVC,WAAY59B,KAAK49B,WACjBQ,sBAAsB59B,EAAAA,EAAAA,GAAKm8B,GAAL38B,OAG5B,EAOK,SAASm+B,GAAoBl9B,GAON,IAPO,WACnCw4B,EAAU,MACVr2B,EAAK,UACLs6B,EAAS,IACTC,EAAG,WACHC,EAAU,qBACVQ,GAC0Bn9B,EAC1B,MAAMo9B,GAAYz8B,EAAAA,EAAAA,WACX08B,EAAOC,IAAYn9B,EAAAA,EAAAA,WAAS,IAC5Bo9B,EAAaC,IAAkBr9B,EAAAA,EAAAA,WAAS,IACxCs9B,EAAQC,IAAav9B,EAAAA,EAAAA,UAAS,CAAE6Q,EAAG,EAAGE,EAAG,KACzCysB,EAAeC,IAAoBz9B,EAAAA,EAAAA,UAA2B,KAC9D09B,EAAgBC,IAAqB39B,EAAAA,EAAAA,UAA2B,KAChE49B,EAAuBC,IAA4B79B,EAAAA,EAAAA,UAExD,KACK89B,EAAwBC,IAA6B/9B,EAAAA,EAAAA,UAE1D,IAEIg+B,GAAmB39B,EAAAA,EAAAA,cAAY,KACnC,MAAM49B,EAAQA,KAAM,IAAAC,EAClB,MAAMxB,EAA6B,QAApBwB,EAAGjB,EAAUz7B,eAAO,IAAA08B,OAAA,EAAjBA,EAAmBvB,cACjCD,SAAAA,EAAWyB,qBACbhB,GAAS,GAETtX,WAAWoY,EAAO,IACpB,EAEFA,GAAO,GACN,KAEH99B,EAAAA,EAAAA,YAAU,KAAM,IAAAi+B,EACd,IAAKlB,EACH,OAEF,MAAMmB,EAAMC,GAAAA,mBAAmBC,qBAC7B,yBAEF,IAAKF,EACH,MAAM,IAAIG,MACR,6DAG6B,QAArBJ,EAAInB,EAAUz7B,eAAO,IAAA48B,GAAe,QAAfA,EAAjBA,EAAmBzB,qBAAa,IAAAyB,OAAA,EAAjCA,EACXK,sBACG,2CAA4C,IAC9CJ,EACHK,SAAU,GAAGvzB,SAAS2xB,UAAS6B,EAAAA,GAAAA,iBAC7BC,OAAOC,aAAe,KACrBR,EAAIK,YACP,GACD,CAACxB,KAEJ/8B,EAAAA,EAAAA,YAAU,KAAM,IAAA2+B,EACd,IAAK5B,EACH,OAEF,MAAM19B,EAA2B,QAArBs/B,EAAI7B,EAAUz7B,eAAO,IAAAs9B,GAAe,QAAfA,EAAjBA,EAAmBnC,qBAAa,IAAAmC,OAAA,EAAjCA,EACXX,qBACC3+B,GAGLA,EACE,OACA,CACEu/B,MAAMC,EAAAA,GAAAA,UAAS3G,EAAY,CACzB4G,OAAQC,GAAAA,YACRC,aAAa,EACbC,QAAQ,EACRC,cAAc,KAGlB,CACE9C,MACAv6B,QACAs6B,aAEH,GACA,CAACC,EAAKW,EAAO7E,EAAYr2B,EAAOs6B,IAEnC,MAAMgD,GAAiB1+B,EAAAA,EAAAA,UAAQ,KAC7B,GAAKw8B,EAGL,MAAO,KAGLvX,YAAW,KACT+Y,OAAOhC,YAAY,CACjBC,QAAS,eACT35B,KAAM,gBACNu5B,QAAS,CAAE8C,SAAU,KACrB,GACD,IAAI,CACR,GACA,CAACnC,KAEJj9B,EAAAA,EAAAA,YAAU,KACR,MAAMq/B,EAAYxiC,IAAwB,IAAAyiC,EACxC,GAA4B,kBAAd,QAAVA,EAAAziC,EAAMqT,YAAI,IAAAovB,OAAA,EAAVA,EAAY5C,SACd,OAAQ7/B,EAAMqT,KAAKnN,MACjB,IAAK,cACHm6B,GAAe,GACf,MACF,IAAK,gBACHI,EAAiBzgC,EAAMqT,KAAKosB,QAAQ8C,UACpC,MACF,IAAK,SACHhC,EAAUvgC,EAAMqT,KAAKosB,SACrB,MACF,IAAK,iBACHkB,EAAkB3gC,EAAMqT,KAAKosB,QAAQ8C,UAG3C,EAGF,OADAX,OAAOn6B,iBAAiB,UAAW+6B,GAC5B,KACLZ,OAAO7D,oBAAoB,UAAWyE,EAAS,CAChD,GACA,KAEHr/B,EAAAA,EAAAA,YAAU,KAAM,IAAAu/B,EACTtC,IAGY,QAAjBsC,EAAAzC,EAAUz7B,eAAO,IAAAk+B,GAAe,QAAfA,EAAjBA,EAAmB/C,qBAAa,IAAA+C,GAAhCA,EAAkC9C,YAChC,CACEC,QAAS,eACT35B,KAAM,oBACNu5B,QAAS,CACPD,eAGJrxB,SAAS2xB,QACV,GACA,CAACM,EAAaZ,IAEjB,MAAMmD,GAAiBt/B,EAAAA,EAAAA,cACpBk/B,GACQA,EAAS/zB,KAAKo0B,IAAY,IAAAC,EAAAC,EAC/B,MACMC,GAAa9C,SAAkB,QAAT4C,EAAT5C,EAAWz7B,eAAO,IAAAq+B,OAAA,EAAlBA,EAAoBE,aAAc,EAC/CC,GAAY/C,SAAkB,QAAT6C,EAAT7C,EAAWz7B,eAAO,IAAAs+B,OAAA,EAAlBA,EAAoBE,YAAa,GAC7C,MAAEjU,EAAK,OAAE/E,EAAM,KAAE8L,EAAI,IAAEC,KAAQkN,GAASL,EAC9C,MAAO,CACL7T,MALe,EAKRA,EACP/E,OANe,EAMPA,EACR8L,KAPe,GAORA,EAAOwK,EAAOzsB,GAAgBkvB,EACrChN,IARe,GAQTA,EAAMuK,EAAOvsB,GAAgBivB,KAChCC,EACJ,KAGL,CAAC3C,EAAOzsB,EAAGysB,EAAOvsB,IAepB,OAZA5Q,EAAAA,EAAAA,YAAU,KACR68B,EAAqBU,EAAe,GAAG,GACtC,CAACA,EAAgBV,KAEpB78B,EAAAA,EAAAA,YAAU,KACR49B,EAA0B4B,EAAejC,GAAgB,GACxD,CAACA,EAAgBiC,KAEpBx/B,EAAAA,EAAAA,YAAU,KACR09B,EAAyB8B,EAAenC,GAAe,GACtD,CAACA,EAAemC,IAGjBlgC,IAAAA,cAAA,OAAKkC,UAAWC,IAAW,YAAa,CAAE46B,gBACxC/8B,IAAAA,cAAA,UACE2C,IAAK66B,EACLiD,IAAK,IAAGvB,EAAAA,GAAAA,4CACRlhB,QAAQ,OACR0iB,OAAQnC,EACRoC,WAAYd,IAEb1B,EAAsBpyB,KAAI,CAACo0B,EAASn0B,IACnChM,IAAAA,cAACy7B,IAAuBmF,EAAAA,GAAAA,GAAA,CAAC54B,IAAKgE,EAAO0vB,QAAQ,SAAYyE,MAE1D9B,EAAuBtyB,KAAI,CAACo0B,EAASn0B,IACpChM,IAAAA,cAACy7B,IAAuBmF,EAAAA,GAAAA,GAAA,CAAC54B,IAAKgE,EAAO0vB,QAAQ,UAAayE,MAIlE,CAlMCU,GAAA9E,KAAA/4B,GAAAg5B,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAE,GAAAkE,GAAAnE,GAAAvT,IAAAjmB,GAAAy4B,GAAAx4B,MAAAC,EAAAA,EAAAA,GAAAw9B,GAAA,CAlDAxjC,GAAc,8BAA+B,CAC5CiG,WAAY,CAACC,GAAAA,MACb,EAECjG,GAAS,CAAE8J,WAAW,IAAQ,iBAG9B9J,KAAU,YAGVA,KAAU,gBAGVA,KAAU,UAGVA,GAAS,CAAEmG,KAAMC,UAAU,iBAG3BnG,GAAM,CAAEkG,KAAM,wBAAwB,4BAAAG,IAAAjE,EAAAA,EAAAA,GAAAqG,GAAApC,GAAA,CAAAA,EAAAhE,KAAAC,EAAAA,EAAAA,GAAAmG,GAAApC,EAAAhE,IAAA,CAMtCqpB,KAAQ,gBAAAplB,GAAAi4B,GAAAh4B,KAAAC,EAAAA,EAAAA,GAAAF,KAtBexF,EAAAA,mBAAgB+E,KC9B1C,IAAI29B,IAAe,EACnB,MAAMC,GAAkB,QACxB,IAAIC,GAAsC,KAoE1C,SAAS5+B,GAAQ9E,GACfA,EAAM2T,iBACN3T,EAAM4oB,kBA4DR,SAAuB5oB,GACrB,MAAM2jC,EAAUC,GAAwB5jC,EAAM6jC,gBAC9CjC,OAAO5K,OAAO4I,YACZ,CACEC,QAAS,eACT35B,KAAM,iBACNu5B,QAAS,CACP8C,SAAUoB,EAAQn1B,IAAIs1B,MAG1B31B,SAAS2xB,OAEb,CAvEEiE,CAAc/jC,EAChB,CAEA,SAASgkC,GAAahkC,GACpBA,EAAM2T,iBACN3T,EAAM4oB,iBACR,CAEA,MAAMqb,IAAgBjT,EAAAA,GAAAA,WACpB,CAACkT,EAA6BpwB,EAAiBE,KAC7C,IAAI2vB,EAAUC,GAAwBM,GACtC,GAAuB,IAAnBP,EAAQx/B,OACV,IAAK,MAAMqpB,KAAW0W,EACpB,GAAI1W,aAAmB2W,aAAe3W,EAAQzmB,WAAY,CACxD48B,EAAUC,GACRpW,EAAQzmB,WAAWq9B,kBAAkBtwB,EAASE,IAEhD,KACF,CAGJ,MAAMqwB,EAAeV,EAAQx/B,OAAS,EAAIw/B,EAAQ,GAAGnW,QAAU,KAC3D6W,IAAiBX,KACnBA,GAAsBW,EACtBzC,OAAO5K,OAAO4I,YACZ,CACEC,QAAS,eACT35B,KAAM,gBACNu5B,QAAS,CACP8C,SAAUoB,EAAQn1B,IAAIs1B,MAG1B31B,SAAS2xB,QAEb,GAEF,GACA,CAAEwE,SAAS,IAGb,SAASC,GAAcvkC,GAErBikC,GAAcjkC,EAAM6jC,eAAgB7jC,EAAM8T,QAAS9T,EAAMgU,QAC3D,CAEA,SAASwwB,GAAexkC,GACtBA,EAAM2T,iBACN3T,EAAM4oB,kBACN8a,GAAsB,KACtB9B,OAAO5K,OAAO4I,YACZ,CACEC,QAAS,eACT35B,KAAM,gBACNu5B,QAAS,CAAE8C,SAAU,KAEvBp0B,SAAS2xB,OAEb,CAgBA,SAAS8D,GAAwBM,GAC/B,MAAMO,EAAkC,GAkBxC,OAjBAP,EAAa35B,SAASC,IACpB,IAAI0yB,EACJ,GACG1yB,EAAcyvB,WAAaC,KAAKC,cACjC3vB,aAAgB25B,cACfjH,EAAM1yB,EAAKk6B,QAAQxH,MACpBA,EAAIyH,WAAWlB,IACf,CACA,MAAMlH,EAAOW,EAAI0H,UAAUnB,GAAgBt/B,QAC3CsgC,EAAe15B,KAAK,CAClB7E,KAAM,OACNq2B,OACArV,MAAO2d,GAASr6B,GAChBgjB,QAAShjB,GAEb,KAEKi6B,CACT,CAEA,SAASX,GAAiBt8B,GACxB,MAAM,QAAEgmB,EAAO,KAAEtnB,EAAI,KAAEq2B,EAAI,MAAErV,GAAU1f,GACjC,MAAEunB,EAAK,OAAE/E,EAAM,KAAE8L,EAAI,IAAEC,GAAQvI,EAAQgI,wBAC7C,MAAO,CACLzG,QACA/E,SACA8L,KAAMA,EAAO8L,OAAOkD,QACpB/O,IAAKA,EAAM6L,OAAOmD,QAClB7+B,OACAq2B,OACArV,QAEJ,CAEA,SAAS2d,GAASrX,GAChB,OAAOA,EAAQyJ,QAAQI,cAAc/qB,MAAM,KAAK04B,KAClD,CC9LA,IAAIC,IAAW,EAmCf,SAASC,GAAYrM,GACnB+I,OAAO5K,OAAO4I,YACZ,CACEC,QAAS,kBACNhH,GAEL1qB,SAAS2xB,OAEb,CAEAqF,eAAeC,OACb,4CACAC,EAAAA,GAAAA,sBA7CKC,iBACDL,KAGJA,IAAW,EACX,+BAEAC,GAAY,CAAEh/B,KAAM,gBAEpB07B,OAAOn6B,iBAAiB,WAAYhC,IAAM,IAAA8/B,EACxC,GAAwB,kBAAd,QAANA,EAAA9/B,EAAE4N,YAAI,IAAAkyB,OAAA,EAANA,EAAQ1F,SACV,OAAQp6B,EAAE4N,KAAKnN,MACb,IAAK,qBDJN,SAA0Bs5B,GAC/B,GAAIgE,KAAiBhE,EACnB,OAEFgE,GAAehE,EAEf,MAAM9T,EAAS8T,EAAa,mBAAqB,sBAEjDoC,OAAOlW,GAAQ,QAAS5mB,IAA0B,GAClD88B,OAAOlW,GAAQ,YAAasY,IAA+B,GAC3DpC,OAAOlW,GAAQ,YAAasY,IAA+B,GAC3DpC,OAAOlW,GAAQ,UAAWsY,IAA+B,GACzDpC,OAAOlW,GAAQ,cAAesY,IAA+B,GAC7DpC,OAAOlW,GAAQ,cAAesY,IAA+B,GAC7DpC,OAAOlW,GAAQ,YAAasY,IAA+B,GAC3DpC,OAAOlW,GAAQ,eAAgB8Y,IAAiC,GAChE5C,OAAOlW,GAAQ,cAAe6Y,IAAgC,EAChE,CCZUiB,CAAiB//B,EAAE4N,KAAKosB,QAAQD,YAChC,MACF,IAAK,UD0CN,SAAgBiG,GACrB,MACMC,EAhCR,SACExI,EACAyI,GAEA,MAAMD,EAA0B,GAuBhC,OArBA,SAASE,EAAKC,GACZ,MAAMC,EAAaD,EAAK/L,iBACP,cAAcoD,OAK/B,GAHAwI,EAAS36B,QAAQ+6B,KAGbD,IAASlQ,UAAYmQ,EAAW3hC,OAAS,GAK7C,IAAK,MAAMqG,KAAQq7B,EAAK/L,iBAAiB,KACnCtvB,EAAKzD,YACP6+B,EAAKp7B,EAAKzD,WAGhB,CAEA6+B,CAAKjQ,UAEE+P,CACT,CAImBK,CADL,GAAGN,EAASv/B,QAAQu/B,EAASlJ,QAEzCqF,OAAO5K,OAAO4I,YACZ,CACEC,QAAS,eACT35B,KAAM,iBACNu5B,QAAS,CACP8C,SAAUmD,EAASl3B,KAAKgf,GACtBsW,GAAiB,IAAK2B,EAAUjY,UAAStG,MAAO2d,GAASrX,SAI/Drf,SAAS2xB,OAEb,CCxDU5W,CAAOzjB,EAAE4N,KAAKosB,SAGpB,IAGFmC,OAAOn6B,iBAAiB,UAAU,KAChCy9B,GAAY,CACVh/B,KAAM,SACNu5B,QAAS,CACP5rB,EAAG+tB,OAAOkD,QACV/wB,EAAG6tB,OAAOmD,UAEZ,IAEN,uECvBA,MAAQjlC,cAAa,GAAEC,SAAQA,KAAKE,EAAAA,EAAAA,oBAAmB,IAAA+lC,GAAA,IAAA7lC,GAAA,IAAAC,QAAAC,GAAA,IAAAD,QAAAE,GAAA,IAAAF,QAAAG,GAAA,IAAAH,QAAAO,GAAA,IAAAP,QAoCvD,MAAA6lC,WAGkCnlC,EAAAA,iBAAiBC,WAAAA,GAAA,SAAAC,YAAAE,EAAAA,EAAAA,GAAA,KAAAf,GAAA+lC,GAAA,QAIjDhlC,EAAAA,EAAAA,GAAA,KAAAb,IAAA8lC,GAAA,MAAAC,GAAA,SAAAllC,EAAAA,EAAAA,GAAA,KAAAZ,IAAA+lC,GAAA,MAAA1H,GAAA,SAAAz9B,EAAAA,EAAAA,GAAA,KAAAX,IAAAq+B,GAAA,MAAAC,GAAA,SAAA39B,EAAAA,EAAAA,GAAA,KAAAP,IAAAm+B,GAAA,MAAAC,GAAA,QAAAC,GAAA,qBAFSsH,GAAW,OAAAlkC,EAAAA,EAAAA,GAAAjC,GAAA,qBAAXmmC,CAAWjkC,IAAAC,EAAAA,EAAAA,GAAAnC,GAAA,KAAAkC,EAAA,aAMX2a,GAAQ,OAAA5a,EAAAA,EAAAA,GAAA/B,GAAA,kBAAR2c,CAAQ3a,IAAAC,EAAAA,EAAAA,GAAAjC,GAAA,KAAAgC,EAAA,UAGR2C,GAAK,OAAA5C,EAAAA,EAAAA,GAAA9B,GAAA,eAAL0E,CAAK3C,IAAAC,EAAAA,EAAAA,GAAAhC,GAAA,KAAA+B,EAAA,cAGLi9B,GAAS,OAAAl9B,EAAAA,EAAAA,GAAA7B,GAAA,mBAAT++B,CAASj9B,IAAAC,EAAAA,EAAAA,GAAA/B,GAAA,KAAA8B,EAAA,QAGTk9B,GAAG,OAAAn9B,EAAAA,EAAAA,GAAAzB,GAAA,aAAH4+B,CAAGl9B,IAAAC,EAAAA,EAAAA,GAAA3B,GAAA,KAAA0B,EAAA,CAEZG,MAAAA,GACE,OACEC,IAAAA,cAAC8jC,GAA4B,CAC3BD,YAAa1kC,KAAK0kC,YAClBtpB,SAAUpb,KAAKob,SACfhY,MAAOpD,KAAKoD,MACZs6B,UAAW19B,KAAK09B,UAChBC,IAAK39B,KAAK29B,KAGhB,EAQK,SAASgH,GAA4B1jC,GAMN,IANO,YAC3CyjC,EAAW,SACXtpB,EAAQ,MACRhY,EAAK,UACLs6B,EAAS,IACTC,GACkC18B,EAClC,MAAMo9B,GAAYz8B,EAAAA,EAAAA,WACX08B,EAAOC,IAAYn9B,EAAAA,EAAAA,WAAS,IAC5BiiC,EAAUuB,IAAexjC,EAAAA,EAAAA,WAAS,GAEnCg+B,GAAmB39B,EAAAA,EAAAA,cAAY,KACnC,MAAM49B,EAAQA,KAAM,IAAAC,EAClB,MAAMxB,EAA6B,QAApBwB,EAAGjB,EAAUz7B,eAAO,IAAA08B,OAAA,EAAjBA,EAAmBvB,cACjCD,SAAAA,EAAWyB,qBACbhB,GAAS,GAETtX,WAAWoY,EAAO,IACpB,EAEFA,GAAO,GACN,IAidH,OA/cA99B,EAAAA,EAAAA,YAAU,KACR,IAAK+8B,EACH,OAEF,MAAMmB,EAAMC,GAAAA,mBAAmBC,qBAC7B,yBAEF,IAAKF,EACH,MAAM,IAAIG,MACR,4DAGJ,MAAMiF,EAAUxG,EAAUz7B,QAASm7B,cAChC8B,qBAEGiF,EAAW,IACZrF,EACHK,SAAU,GAAGvzB,SAAS2xB,UAAS6B,EAAAA,GAAAA,iBAC7BC,OAAOC,aAAe,KACrBR,EAAIK,YAGTiF,QAAQC,WACN,CACE,0CACA,0CACAp4B,KAAKyL,GAAUwsB,EAAOxsB,EAAOysB,OAAU5oB,GAAW,MACpDwD,MAAK,KACLklB,GAAY,EAAK,GACjB,GACD,CAACtG,KAEJ/8B,EAAAA,EAAAA,YAAU,KAAM,IAAAi+B,EACd,IAAK6D,EACH,OAEF,MAAMziC,EAA2B,QAArB4+B,EAAInB,EAAUz7B,eAAO,IAAA48B,GAAe,QAAfA,EAAjBA,EAAmBzB,qBAAa,IAAAyB,OAAA,EAAjCA,EACXD,qBACJ,IAAK3+B,EACH,OAGF,MAAMqkC,EAAgB,IAAIh5B,IAIpBi5B,EAAW,IAAIj5B,IAErB,IAAK,MAAMk5B,KAAcT,EAAa,CACpC,IAAIU,EAA4BH,EAAc95B,IAAIg6B,EAAWE,YACxDD,GACHH,EAAcj4B,IACZm4B,EAAWE,WACVD,EAA4B,IAAIn5B,KAGrC,IAAIq5B,EAA2BF,EAA0Bj6B,IACvDg6B,EAAWI,QAERD,GACHF,EAA0Bp4B,IACxBm4B,EAAWI,OACVD,EAA2B,IAAIr5B,KAGpCq5B,EAAyBt4B,IAAIm4B,EAAWK,cAAgB,EAAGL,GAE3DD,EAASl4B,IAAIm4B,EAAWE,WAAYF,EAAWM,SACjD,CAEA,MAAMC,EAA6B,CACjC,CACErtB,MAAO,MACPkd,WAAY,CACVmD,YAAa,KACb31B,UAAW,cAGf,CACEsV,MAAO,MACPkd,WAAY,CACVmD,YAAa,KACb31B,UAAW,cAGf,CACEsV,MAAO,MACPkd,WAAY,CACVmD,YAAa,OACb31B,UAAW,0BACXU,MAAO,CACLkiC,WAAY,SACZC,UAAW,aAKbC,EAAmB,CACvBxtB,MAAO,0CACPkd,WAAY,CACV9xB,MAAO,CACLqiC,oBAAqB,8BAGzBtR,SAAUkR,GAGZ,IAAIK,EAAgB,EACpB,IAAK,MAAOV,EAAYD,KAA8BH,EAAe,CACnE,IAAIe,EAAqB,EACzB,MAAMC,EAAiBF,IAAkBd,EAAcvjB,KAAO,EAC9D,IAAK,MAAO6jB,EAAQrB,KAAekB,EAA2B,CAC5D,GAA2B,IAAvBY,EAA0B,CAC5B,IAAIE,EAEJ,IAAK,MAAMC,KAAajC,EAAWkC,SAAU,CAC3CF,EAAeC,EAAUD,cAAgBb,EACzC,KACF,CAEAK,EAAcv8B,KAAK,CACjBkP,MAAO,MACPkd,WAAY,CACVmD,YAAawN,EACbnjC,UAAWC,IAAW,YAAa,CACjC,gBAAiBijC,IAEnBxiC,MAAO,CACL4iC,QAAS,QAAQjB,EAA0B1jB,UAInD,CAEA,MAAM4kB,EACJL,GACAD,IAAuBZ,EAA0B1jB,KAAO,EAE1DgkB,EAAcv8B,KAAK,CACjBkP,MAAO,MACPkd,WAAY,CACVmD,YAAa6M,EACbxiC,UAAWC,IAAW,YAAa,CAAE,gBAAiBsjC,OAI1D,IAAK,IAAI37B,GAAK,EAAGA,EAAI,EAAGA,IAAK,KAAA47B,EAC3B,MAAMJ,EAAYjC,EAAW/4B,IAAIR,GAC3B67B,GAAoBL,aAAS,EAATA,EAAW/qB,WAAYA,EAEjD,IAAIqrB,EACJ,GAAIN,SAAmB,QAAVI,EAATJ,EAAWV,gBAAQ,IAAAc,GAAnBA,EAAqBhkC,OAAQ,CAC/B,MAAMmkC,EACJP,EAAUV,SACRxd,KAAKE,MAAMF,KAAK0e,SAAWR,EAAUV,SAASljC,SAElD,OAAQikC,GACN,IAAK,cACL,IAAK,YACL,IAAK,YACHC,EAAa,CACX,CAACpB,GAAaqB,GAEhB,MACF,IAAK,eACHD,EAAa,CACXG,SAAUF,GAGlB,CAEA,MAAMG,EAAoB,GACvBrxB,QAAO2wB,aAAS,EAATA,EAAW1M,aAAc,IAChCvsB,QAAQmL,MACFnO,EAAAA,GAAAA,UAASmO,KAEZwW,QAAQ7O,MAAM,wCAAyC3H,IAChD,KAMb,IAAIyuB,EACJ,OAHAD,EAAkBl+B,QAAQo+B,IAGlBP,GACN,IAAK,YACHM,EAAY,CACVzuB,MAAO,UACPkd,WAAY,CACVyR,OAAQ,SACRZ,OAAQK,EACR1jC,UAAW,kBAEbyxB,SAAUqS,EAAkBj6B,KAAKwuB,IAAK,IACjCA,EACHxB,eAAe,OAGnB,MACF,IAAK,YACHkN,EAAY,CACVzuB,MAAO,WACPouB,WAAY,CAACA,GACbjS,SAAUqS,EAAkBj6B,KAAKwuB,IAAK,IACjCA,EACHxB,eAAe,OAGnB,MACF,QACEkN,EAAY,CACVzuB,MAAO,yCACPkd,WAAY,CACV9F,SAAUoX,EACVJ,cAEF7M,eAAe,GAIrB8L,EAAcv8B,KAAK,CACjBkP,MAAO,MACPkd,WAAY,CACVxyB,UAAWC,IAAW,YAAa,CACjC,gBAAuB,IAAN2H,EACjB,gBAAiB27B,KAGrB9R,SAAU,CACR,IACKsS,EACHlN,eAAe,KAIvB,CAEAoM,GACF,CAEAD,GACF,CA0HAnlC,EACE,OACA,CACEu/B,MAAMC,EAAAA,GAAAA,UAASyF,EAAO,CACpBxF,OAAQC,GAAAA,YACRC,aAAa,EACbC,QAAQ,EACRC,cAAc,KAGlB,CACE9C,MACAv6B,QACAs6B,YACAt5B,UAAW6iC,GAAAA,GAEd,GACA,CAACtJ,EAAK0F,EAAUqB,EAAathC,EAAOs6B,EAAWtiB,IAoFhDva,IAAAA,cAAA,OAAKkC,UAAWC,IAAW,cACzBnC,IAAAA,cAAA,UACE2C,IAAK66B,EACLiD,IAAK,IAAGvB,EAAAA,GAAAA,4CACRlhB,QAAQ,OACR0iB,OAAQnC,IAIhB,CAEA,SAAS2H,GAAa1uB,GAAkB,IAAA6uB,EAClB,QAApBA,EAAI7uB,EAAMkd,kBAAU,IAAA2R,GAAhBA,EAAkBC,SAEpBtY,QAAQ7O,MAAM,+CAAgD3H,UACvDA,EAAMkd,WAAW4R,OAE5B,CA/fCC,GAAA/C,KAAAxgC,GAAAygC,GAAAC,GAAAC,GAAAC,GAAA1H,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,IAAAp5B,GAAAogC,GAAAngC,MAAAC,EAAAA,EAAAA,GAAAkjC,GAAA,CAjCAlpC,GAAc,uCAAwC,CACrDiG,WAAY,CAACC,GAAAA,MACb,EAECjG,GAAS,CAAE8J,WAAW,IAAQ,kBAM9B9J,KAAU,eAGVA,KAAU,YAGVA,KAAU,gBAGVA,KAAU,mBAhBqBe,EAAAA,mBAAgB+E,8BC9ClD,MAAQ/F,cAAaA,KAAKG,EAAAA,EAAAA,oBAE1B,IAAAgpC,GAMA,MAAAC,WAGoCpoC,EAAAA,iBAClC0B,MAAAA,GACE,OAAOC,IAAAA,cAAC0mC,GAA8B,KACxC,EAGK,SAASA,KACd,OAAO1mC,IAAAA,cAAA,YACT,CAJC2mC,GAAAF,IAAAD,GAAApjC,KAAAC,EAAAA,EAAAA,GAAAsjC,GAAA,CAPAtpC,GAAc,0CAA2C,CACxDiG,WAAY,CAACC,GAAAA,MACb,YACkClF,EAAAA,kBAAgB8E,EAAAC,0CCTpD,MAAQ/F,cAAa,GAAEC,SAAQA,KAAKE,EAAAA,EAAAA,oBAEpC,IAAAopC,GAAA,IAAAlpC,GAAA,IAAAC,QAAAC,GAAA,IAAAD,QAMA,MAAAkpC,WAGoCxoC,EAAAA,iBAAiBC,WAAAA,GAAA,SAAAC,YAAAE,EAAAA,EAAAA,GAAA,KAAAf,GAAAopC,GAAA,QAAAroC,EAAAA,EAAAA,GAAA,KAAAb,IAAAmpC,GAAA,MAAAC,GAAA,QAAAC,GAAA,kBAE1CrY,GAAQ,OAAAjvB,EAAAA,EAAAA,GAAAjC,GAAA,kBAARkxB,CAAQhvB,IAAAC,EAAAA,EAAAA,GAAAnC,GAAA,KAAAkC,EAAA,eAGRgmC,GAAU,OAAAjmC,EAAAA,EAAAA,GAAA/B,GAAA,oBAAVgoC,CAAUhmC,IAAAC,EAAAA,EAAAA,GAAAjC,GAAA,KAAAgC,EAAA,CAEnBG,MAAAA,GACE,OACEC,IAAAA,cAACknC,GAA8B,CAC7BtY,SAAUzvB,KAAKyvB,SACfgX,WAAYzmC,KAAKymC,YAGvB,EAQK,SAASsB,GAA8B9mC,GAGf,IAHgB,SAC7CwuB,EAAQ,WACRgX,GAC2BxlC,EAC3B,OACEJ,IAAAA,cAAC6uB,GAAAA,uBAAsB,CACrBD,SAAUA,EACVhe,KAAMg1B,EACN7M,eAAa,GAGnB,CAlBCoO,GAAAN,KAAA7jC,GAAA8jC,GAAAC,GAAAC,GAAAC,IAAA9jC,GAAAyjC,GAAAxjC,MAAAC,EAAAA,EAAAA,GAAA8jC,GAAA,CAlBA9pC,GAAc,yCAA0C,CACvDiG,WAAY,CAACC,GAAAA,MACb,EAECjG,GAAS,CAAE8J,WAAW,IAAQ,eAG9B9J,GAAS,CAAE8J,WAAW,IAAQ,0BAJG/I,EAAAA,mBAAgB+E,aCLpDs/B,eAAeC,OACb,uCACAC,EAAAA,GAAAA,sBAbKC,eAAiCpgC,GACtC,UACQo8B,GAAAA,mBAAmBuI,YAAY,CAAC3kC,GACxC,CAAE,MACA,OAAO,CACT,CAGA,QAFe4kC,GAAAA,cAAc/8B,IAAI7H,EAGnC,oBCRO,SAAS6kC,GACdC,EACAC,GAEA,MAAMC,EAAU,IAAIr8B,IAEpB,IAAK,MAAMs8B,KAAeH,EAAc,CACtC,MAAMI,GAAQC,EAAAA,GAAAA,oBACZ,CAACF,EAAYG,GAAIH,EAAYt9B,MAAOs9B,EAAYI,SAChDN,GAEFC,EAAQt7B,IAAIu7B,EAAaC,EAC3B,CAEA,OAAOF,CACT,CCcA,SAASM,GAAgBC,EAAsB1iC,GAC7C0iC,EAASlgC,SAASyE,KAKpB,SAAyB07B,EAAoB3iC,GAAsB,IAAA4iC,EACjE,MAAM,eAAEC,EAAc,SAAEH,EAAQ,QAAEI,EAAO,OAAEtpB,GAAWxZ,EAEhDsL,GAAOy3B,EAAAA,GAAAA,WAAUJ,GACvBnpB,EAAOxW,KAAKsI,GAEZ,MAAM8d,EAAOyZ,EAAezZ,MAAM4Z,GAAQA,EAAI/7B,KAAKvE,MAAQ4I,EAAK5I,MAEhE,GAAa,QAATkgC,EAAAxZ,EAAK6Z,YAAI,IAAAL,GAATA,EAAWxmC,SAAW0mC,EAAQI,MAAMzgC,GAASA,EAAKC,MAAQ4I,EAAK5I,MAAM,CACvE,MAAM2rB,EAAY/iB,EAAK+iB,SAAW,IAUtC,SAAyB8U,EAAoBnjC,GAC3C,MAAMojC,EAAW,GAEjBD,EAASF,KAAKzgC,SAASrF,IAErB,MAAMkmC,EAAUrjC,EAAQ0iC,SAAS37B,QAAQtE,GAASA,EAAKtF,OAASA,IAChEimC,EAASpgC,QAAQqgC,EAAQ,IAG3BZ,GAAgBW,EAAUpjC,EAC5B,CAnBIsjC,CAAgBla,EAAM,CACpByZ,iBACAH,WACAI,QAAS,IAAIA,EAASx3B,GACtBkO,OAAQ6U,GAEZ,CACF,CArBIkV,CAAgBt8B,EAAM,IAAKjH,EAAS0iC,YAAW,GAEnD,CChCO,SAASc,GACdC,EACAC,GAEA,MAAMC,EAAe,IAAIxW,KAAKC,UAAUsW,MACxC,IAAIE,EAEJ,OAAQH,EAAOI,SACb,IAAK,OACL,IAAK,OACHD,EAAYE,GAAcL,EAAQE,GACd,gBAAhBF,EAAOtlC,MAA2BslC,EAAOM,UAMf,SAAnBN,EAAOI,UAChBD,EAAY,CACV1xB,MAAO,UACPuhB,eAAe,EACfpF,SAAU,CAACuV,KATbA,EAAY,CACV1xB,MAAO,SACPuhB,eAAe,EACfpF,SAAU,CAACuV,IASf,MAEF,IAAK,MAAO,KAAAI,EAAAC,EAAAC,EAAAC,EAAAC,EACV,MAAMC,EACsB,gBAAd,QAAZL,EAAAP,EAAOnmC,aAAK,IAAA0mC,OAAA,EAAZA,EAAc5N,SAA2B,WAAa,GAClDkO,EAAgBC,GAAiBd,EAAQE,GAC/CC,EAAY,CACV1xB,MAAO,SACPuhB,eAAe,EACfrE,WAAY,CACVmD,YAAa,MAAM+R,OACnB/oB,KAAMipB,GAAuB,QAAbP,EAACR,EAAOnmC,aAAK,IAAA2mC,OAAA,EAAZA,EAAc1oB,MAC/B/d,MAAmB,QAAZ0mC,EAAAT,EAAOnmC,aAAK,IAAA4mC,GAAZA,EAAcO,WACjB,GAAGhB,EAAOnmC,MAAMmnC,aAAaJ,IACjB,QAAZF,EAAAV,EAAOnmC,aAAK,IAAA6mC,GAAZA,EAAcO,QACZ,YAAYvX,KAAKC,UAAUqW,EAAOnmC,MAAMonC,aAAaJ,gBAA4BD,SACjF,OAAOA,IACbxJ,QAAmC,aAAd,QAAZuJ,EAAAX,EAAOnmC,aAAK,IAAA8mC,OAAA,EAAZA,EAAchO,WAG3B,KACF,CACA,IAAK,OACHwN,EAAYe,GAAalB,EAAQE,GACjC,MAEF,IAAK,YAGHC,EAAY,CACV1xB,MAAO,OACPuhB,eAAe,EACfrE,WAAY,CACV9xB,MAAO,CACLumC,QAAS,cACTe,WAAY,SACZC,IAAK,UAGTxW,SAAU,CAZMsW,GAAalB,EAAQE,GACrBG,GAAcL,EAAQE,KAaxC,MAEF,QACE,OAAO,KAGX,GAAoB,gBAAhBF,EAAOtlC,MAA0BslC,EAAOM,UAC1C,OAAOH,EAGT,MAAMkB,EAAWzmC,OAAOolC,EAAOqB,WAAa,EAC5C,MAAO,CACL5yB,MAAO,OACPuhB,eAAe,EACfrE,WAAY,CACV9xB,MAAO,CACLumC,QAAS,cACTe,WAAY,SACZC,IAAK,UAGTxW,SAAU,CACR,CACEnc,MAAO,WACPouB,WAAY,UAAUqD,cAAyBmB,QAC/CzW,SAAU,CAACuV,IAEb,CACE1xB,MAAO,UACPqwB,GAAI,UAAUoB,cAAyBmB,OACvC1V,WAAY,CACVmD,YAAa,iBAAiBoR,cAAyBmB,aAKjE,CAEA,SAASH,GAAalB,EAAsBE,GAC1C,GAAoB,YAAhBF,EAAOtlC,KAAoB,KAAA4mC,EAAAC,EAAAC,EAAAC,EAC7B,MAAMZ,EAAgBC,GAAiBd,EAAQE,GACzCwB,GAAsB,QAAXJ,EAAAtB,EAAO2B,YAAI,IAAAL,OAAA,EAAXA,EAAa7nC,OAAQ,QAChCmoC,GAAwB,QAAZL,EAAAvB,EAAO6B,aAAK,IAAAN,OAAA,EAAZA,EAAc9nC,OAAQ,QAClCqoC,EAAYC,GAAyB,QAAZP,EAACxB,EAAO2B,YAAI,IAAAH,OAAA,EAAXA,EAAa3nC,OACvCmoC,EAAaD,GAA0B,QAAbN,EAACzB,EAAO6B,aAAK,IAAAJ,OAAA,EAAZA,EAAc5nC,OAC/C,MAAO,CACL4U,MAAO,UACPuhB,eAAe,EACfrE,WAAY,CACVpyB,IAAK,KACLgkC,OAAQ,MACR9jC,KAAM,MAAMonC,OAAmBnX,KAAKC,UAAU+X,QAAehY,KAAKC,UAAUiY,QAC5E/nC,MAAO,MAAMgnC,OAAmBnX,KAAKC,UAAUmY,QAAgBpY,KAAKC,UAAUqY,SAGpF,CACA,MAAO,CACLvzB,MAAO,UACPuhB,eAAe,EACfrE,WAAY,CACVpyB,IAAK,KACLgkC,OAAQ,MACR9jC,KAAMumC,EAAOvmC,KACbI,MAAOkoC,GAAc/B,EAAOnmC,QAGlC,CAEA,SAASwmC,GAAcL,EAAsBE,GAAiC,IAAA+B,EAC5E,GAAoB,gBAAhBjC,EAAOtlC,MAA0BslC,EAAOM,UAC1C,MAAO,CACL7xB,MAAO,OACPkd,WAAY,CACVmD,YAAa,eAAeoR,mBAKlC,MAAMW,EAAgBC,GAAiBd,EAAQE,GACzC7+B,EAAQ,MAAMw/B,OACpB,OAAwB,QAAxBoB,EAAQjC,EAAOkC,iBAAS,IAAAD,OAAA,EAAhBA,EAAkBvnC,MACxB,IAAK,SACH,MAAO,CACL+T,MAAO,sBACPuhB,eAAe,EACfrE,WAAY,CACVtqB,QACA3G,KAAMslC,EAAOkC,UAAU7qB,WACpBxM,EAAAA,GAAAA,MAAKm1B,EAAOkC,UAAW,CACxB,WAEA,eACA,WACA,uBAEFroC,MAAOkoC,GAAc/B,EAAOnmC,SAGlC,IAAK,OACL,IAAK,YACH,MAAO,CACL4U,MAAO,mBACPuhB,eAAe,EACfrE,WAAY,CACVtqB,QACA3G,KAAsB,SAAhBslC,EAAOtlC,KAAkB,YAAS4X,EACxC4vB,UAAWlC,EAAOkC,UAAU7qB,OAC5Bxd,MAAOkoC,GAAc/B,EAAOnmC,SAGlC,IAAK,YACH,MAAO,CACL4U,MAAO,mBACPuhB,eAAe,EACfrE,WAAY,CACVtqB,QACA8gC,YAAY,EACZtoC,MAAOkoC,GAAc/B,EAAOnmC,SAGlC,QAAS,CACP,IAAIi1B,EACAj1B,EACJ,GAAoB,YAAhBmmC,EAAOtlC,KAAoB,KAAA0nC,EAAAC,EAAAC,EAAAC,EAC7B,MAAMC,GAAyB,QAAXJ,EAAApC,EAAO2B,YAAI,IAAAS,OAAA,EAAXA,EAAaj/B,OAAQ,MACnCs/B,GAA2B,QAAZJ,EAAArC,EAAO6B,aAAK,IAAAQ,OAAA,EAAZA,EAAcl/B,OAAQ,KACrC2+B,EAAYC,GAAyB,QAAZO,EAACtC,EAAO2B,YAAI,IAAAW,OAAA,EAAXA,EAAazoC,OACvCmoC,EAAaD,GAA0B,QAAbQ,EAACvC,EAAO6B,aAAK,IAAAU,OAAA,EAAZA,EAAc1oC,OAC/Ci1B,EAAc,MAAM+R,OAAmBnX,KAAKC,UAAU6Y,QAAkB9Y,KAAKC,UAAU8Y,QACvF5oC,EAAQ,MAAMgnC,OAAmBnX,KAAKC,UAAUmY,QAAgBpY,KAAKC,UAAUqY,OACjF,MACElT,EAAcztB,EACdxH,EAAQkoC,GAAc/B,EAAOnmC,OAE/B,MAAO,CACL4U,MAAO,OACPuhB,eAAe,EACfrE,WAAY,CACVmD,cACAj1B,SAGN,EAEJ,CAEA,SAASinC,GAAiBd,EAAsBE,GAC9C,MACmB,WAAhBF,EAAOtlC,MAAqC,gBAAhBslC,EAAOtlC,OACpCslC,EAAO0C,MAIF,OAAOxC,IAFL,GAAmB,WAAhBF,EAAOtlC,KAAoB,OAAOwlC,IAAiB,UAAUxW,KAAKC,UAAUqW,EAAO0C,SAGjG,CAEA,SAAS3B,GAAWjpB,GAClB,OAAQA,GACN,IAAK,QACL,IAAK,SACL,IAAK,QACH,OAAOA,EACT,IAAK,UACH,MAAO,QAIb,CAEA,SAASiqB,GACPY,GAEA,IAAKA,EACH,OAEF,MAAM9oC,EAAuB,CAAC,EAC9B,OAAQ8oC,EAAY7qB,MAElB,IAAK,QACHje,EAAM+oC,SAAW,mCACjB,MACF,IAAK,SACH/oC,EAAM+oC,SAAW,0BACjB,MACF,IAAK,QACH/oC,EAAM+oC,SAAW,8BACjB,MACF,IAAK,UACH/oC,EAAM+oC,SAAW,gCAGrB,OAAQD,EAAYE,YAClB,IAAK,OACL,IAAK,SACHhpC,EAAMgpC,WAAaF,EAAYE,WAKnC,OAHIF,EAAY5oC,QACdF,EAAME,MAAQ4oC,EAAY5oC,OAErBF,CACT,CFzPA8/B,eAAeC,OACb,gCACAC,EAAAA,GAAAA,qBAAoB0E,KC8EtB5E,eAAeC,OACb,sCACAC,EAAAA,GAAAA,sBAjCK,SACLiJ,EACAvmC,GAIA,MAAM0iC,EAAW6D,EACXC,EAAgBxE,GACpBU,EAASj8B,KAAKhE,GAASA,EAAK6I,OAC5BtL,EAAQymC,UAGJ5D,EAAiB,GACvB,IAAK,MAAO6D,EAAS5hC,KAAU0hC,EAC7B3D,EAAe7/B,KAAK,CAClBigC,KAAM3mC,MAAMqqC,KAAK7hC,EAAM8hC,gBACvB3/B,KAAMy7B,EAAStZ,MAAMniB,GAASA,EAAKqE,OAASo7B,MAIhD,MAAMltB,EAAS,GAQf,OANAipB,GAAgBC,EAAU,CACxBlpB,SACAqpB,iBACAC,QAAS,KAGJtpB,CACT,6HErFA,MAAQzhB,cAAa,GAAEC,SAAQ,GAAEC,MAAKA,KAAKC,EAAAA,EAAAA,oBAAmB,IAAA2uC,GAAA,IAAAzuC,GAAA,IAAAC,QAAAC,GAAA,IAAAD,QAAAE,GAAA,IAAAF,QAAAG,GAAA,IAAAH,QAAAO,GAAA,IAAAP,QAAAqI,GAAA,IAAArI,QAAA8O,GAAA,IAAA9O,QAAA+O,GAAA,IAAA/O,QAAAgP,GAAA,IAAAhP,QAAAyuC,GAAA,IAAApuC,QAAAquC,GAAA,IAAA1uC,QAAAiP,GAAA,IAAAjP,QAAA2uC,GAAA,IAAA3uC,QAAAkP,GAAA,IAAAlP,QAAA4uC,GAAA,IAAA5uC,QA8F9D,MAAA6uC,WAG6BnuC,EAAAA,iBAAiBC,WAAAA,GAAA,SAAAC,YAAAC,EAAAA,EAAAA,GAAA,KAAA4tC,KAAA3tC,EAAAA,EAAAA,GAAA,KAAAf,GAAA+uC,GAAA,QAAAhuC,EAAAA,EAAAA,GAAA,KAAAb,IAAA8uC,GAAA,MAAAjJ,GAAA,SAAAhlC,EAAAA,EAAAA,GAAA,KAAAZ,IAAA6lC,GAAA,MAAAiJ,GAAA,SAAAluC,EAAAA,EAAAA,GAAA,KAAAX,IAAA8uC,GAAA,MAAAC,GAAA,SAa5CpuC,EAAAA,EAAAA,GAAA,KAAAP,IAAA4uC,GAAA,MAAAnJ,GAAA,SAAAllC,EAAAA,EAAAA,GAAA,KAAAuH,IAAA49B,GAAA,MAAA1H,GAAA,SAAAz9B,EAAAA,EAAAA,GAAA,KAAAgO,IAAA0vB,GAAA,MAAAC,GAAA,SAAA39B,EAAAA,EAAAA,GAAA,KAAAiO,IAAA2vB,GAAA,MAAAC,GAAA,SAAA79B,EAAAA,EAAAA,GAAA,KAAAkO,IAAA4vB,GAAA,MAAAwQ,GAAA,SAkBAtuC,EAAAA,EAAAA,GAAA,KAAA4tC,IAAcW,GAAA,MAAIz8B,KAChBnR,EAAAA,EAAAA,GAAAgtC,GAAAjtC,KAAK8tC,IAAc3tC,KAAKiR,EAAO,KAC/B9R,EAAAA,EAAAA,GAAA,KAAAmO,GAAAsgC,GAAA,QAKFzuC,EAAAA,EAAAA,GAAA,KAAA6tC,IAAca,GAAA,MAAI58B,KAChBnR,EAAAA,EAAAA,GAAAgtC,GAAAjtC,KAAKiuC,IAAc9tC,KAAKiR,EAAO,KAC/B9R,EAAAA,EAAAA,GAAA,KAAAoO,GAAAwgC,GAAA,QAKF5uC,EAAAA,EAAAA,GAAA,KAAA8tC,IAAqBe,GAAA,MAAI/8B,KACvBnR,EAAAA,EAAAA,GAAAgtC,GAAAjtC,KAAKouC,IAAqBjuC,KAAKiR,EAAO,GACtC,eA7COi9B,GAAU,OAAA7tC,EAAAA,EAAAA,GAAAjC,GAAA,oBAAV8vC,CAAU5tC,IAAAC,EAAAA,EAAAA,GAAAnC,GAAA,KAAAkC,EAAA,gBAGVikC,GAAW,OAAAlkC,EAAAA,EAAAA,GAAA/B,GAAA,qBAAXimC,CAAWjkC,IAAAC,EAAAA,EAAAA,GAAAjC,GAAA,KAAAgC,EAAA,UAGX6tC,GAAK,OAAA9tC,EAAAA,EAAAA,GAAA9B,GAAA,eAAL4vC,CAAK7tC,IAAAC,EAAAA,EAAAA,GAAAhC,GAAA,KAAA+B,EAAA,SAGL8tC,GAAI,OAAA/tC,EAAAA,EAAAA,GAAA7B,GAAA,cAAJ4vC,CAAI9tC,IAAAC,EAAAA,EAAAA,GAAA/B,GAAA,KAAA8B,EAAA,aAMJ2a,GAAQ,OAAA5a,EAAAA,EAAAA,GAAAzB,GAAA,kBAARqc,CAAQ3a,IAAAC,EAAAA,EAAAA,GAAA3B,GAAA,KAAA0B,EAAA,UAGR2C,GAAK,OAAA5C,EAAAA,EAAAA,GAAAqG,GAAA,eAALzD,CAAK3C,IAAAC,EAAAA,EAAAA,GAAAmG,GAAA,KAAApG,EAAA,cAGLi9B,GAAS,OAAAl9B,EAAAA,EAAAA,GAAA8M,GAAA,mBAATowB,CAASj9B,IAAAC,EAAAA,EAAAA,GAAA4M,GAAA,KAAA7M,EAAA,QAGTk9B,GAAG,OAAAn9B,EAAAA,EAAAA,GAAA+M,GAAA,aAAHowB,CAAGl9B,IAAAC,EAAAA,EAAAA,GAAA6M,GAAA,KAAA9M,EAAA,CAuBZG,MAAAA,GACE,OACEC,IAAAA,cAAC2tC,GAAuB,CACtBH,WAAYruC,KAAKquC,WACjB3J,YAAa1kC,KAAK0kC,YAClB4J,MAAOtuC,KAAKsuC,MACZC,KAAMvuC,KAAKuuC,KACXnzB,SAAUpb,KAAKob,SACfhY,MAAOpD,KAAKoD,MACZs6B,UAAW19B,KAAK09B,UAChBC,IAAK39B,KAAK29B,IACV8Q,WAAWjuC,EAAAA,EAAAA,GAAK0sC,GAALltC,MACX0uC,WAAWluC,EAAAA,EAAAA,GAAK2sC,GAALntC,MACX2uC,kBAAkBnuC,EAAAA,EAAAA,GAAK4sC,GAALptC,OAGxB,EASK,SAASwuC,GAAuBvtC,GAYN,IAZO,WACtCotC,EAAU,YACV3J,EAAW,MACX4J,EAAK,KACLC,EAAI,SACJnzB,EAAQ,MACRhY,EAAK,UACLs6B,EAAS,IACTC,EAAG,UACH8Q,EAAS,UACTC,EAAS,iBACTC,GAC6B1tC,EAC7B,MAAMo9B,GAAYz8B,EAAAA,EAAAA,WACX08B,EAAOC,IAAYn9B,EAAAA,EAAAA,WAAS,IAC5BiiC,EAAUuB,IAAexjC,EAAAA,EAAAA,WAAS,GACnCwtC,GAAyBhtC,EAAAA,EAAAA,QAAiB,IAC1CitC,GAAyBjtC,EAAAA,EAAAA,QAAiB,IAC1CktC,GAA0BltC,EAAAA,EAAAA,QAAiB,KAEjDL,EAAAA,EAAAA,YAAU,KACRutC,EAAwBlsC,SACtB8hC,aAAW,EAAXA,EACIx3B,QAAQi4B,GAAeA,EAAW4J,WACnCniC,KAAKu4B,GAAeA,EAAWE,eAAe,EAAE,GACpD,CAACX,IAEJ,MAAMtF,GAAmB39B,EAAAA,EAAAA,cAAY,KACnC,MAAM49B,EAAQA,KAAM,IAAAC,EAClB,MAAMxB,EAA6B,QAApBwB,EAAGjB,EAAUz7B,eAAO,IAAA08B,OAAA,EAAjBA,EAAmBvB,cACjCD,SAAAA,EAAWyB,qBACbhB,GAAS,GAETtX,WAAWoY,EAAO,IACpB,EAEFA,GAAO,GACN,IAylBH,OAvlBA99B,EAAAA,EAAAA,YAAU,KACJ+8B,GACgBD,EAAUz7B,QAASm7B,cAC3BC,YACR,CACEC,QAAS,mBACT35B,KAAM,OACNu5B,QAAS0Q,GAEXhiC,SAAS2xB,OAEb,GACC,CAACqQ,EAAMjQ,KAEV/8B,EAAAA,EAAAA,YAAU,KACR,GAAI+8B,EAAO,CACT,MAAMR,EAAYO,EAAUz7B,QAASm7B,cAC/BiR,EAAYjmB,IAA4C,IAA3C,KAAEtX,GAAoCsX,EACvD,GAAsB,sBAAlBtX,aAAI,EAAJA,EAAMwsB,SACR,OAAQxsB,EAAKnN,MACX,IAAK,UACHmqC,EAAUh9B,EAAKosB,SACf,MACF,IAAK,UACH6Q,EAAUj9B,EAAKosB,SACf,MACF,IAAK,iBACH8Q,EAAiBl9B,EAAKosB,SACtB,MACF,IAAK,4BACH+Q,EAAuBhsC,QAAU6O,EAAKosB,QACtC,MACF,IAAK,4BACHgR,EAAuBjsC,QAAU6O,EAAKosB,QACtC,MACF,IAAK,6BACHiR,EAAwBlsC,QAAU6O,EAAKosB,QAG7C,EAGF,OADAC,EAAUj4B,iBAAiB,UAAWmpC,GAC/B,KACLlR,EAAU3B,oBAAoB,UAAW6S,EAAU,CAEvD,IACC,CAACN,EAAWD,EAAWnQ,KAE1B/8B,EAAAA,EAAAA,YAAU,KACR,IAAK+8B,EACH,OAEF,MAAMmB,EAAMC,GAAAA,mBAAmBC,qBAC7B,yBAEF,IAAKF,EACH,MAAM,IAAIG,MACR,4DAGJ,MAAMiF,EAAUxG,EAAUz7B,QAASm7B,cAChC8B,qBAEGiF,EAAW,IACZrF,EACHK,SAAUuO,EACN,IAAIY,IAAIxP,EAAIK,SAAU,IAAImP,IAAIZ,EAAY9hC,SAAS2xB,SAASrI,WAC5D,GAAGtpB,SAAS2xB,UAAS6B,EAAAA,GAAAA,iBACnBC,OAAOC,aAAe,KACrBR,EAAIK,YAGbiF,QAAQC,WACN,CACE,0CACA,0CACAp4B,KAAKyL,GAAUwsB,EAAOxsB,EAAOysB,OAAU5oB,GAAW,MACpDwD,MAAK,KACLklB,GAAY,EAAK,GACjB,GACD,CAACyJ,EAAY/P,KAEhB/8B,EAAAA,EAAAA,YAAU,KAAM,IAAAi+B,EACd,IAAK6D,EACH,OAEF,MAAMziC,EAA2B,QAArB4+B,EAAInB,EAAUz7B,eAAO,IAAA48B,GAAe,QAAfA,EAAjBA,EAAmBzB,qBAAa,IAAAyB,OAAA,EAAjCA,EACXD,qBACJ,IAAK3+B,EACH,OAGF,MAAM8kC,EAA6B,CACjC,CACErtB,MAAO,MACPkd,WAAY,CACVmD,YAAa,KACb31B,UAAW,cAGf,CACEsV,MAAO,MACPkd,WAAY,CACVmD,YAAa,GACb31B,UAAW,cAGf,CACEsV,MAAO,MACPkd,WAAY,CACVmD,YAAa,KACb31B,UAAW,cAGf,CACEsV,MAAO,MACPkd,WAAY,CACVmD,YAAa,OACb31B,UAAW,cAGf,CACEsV,MAAO,MACPkd,WAAY,CACVmD,YAAa,cACb31B,UAAW,YACXU,MAAO,CACLkiC,WAAY,SACZC,UAAW,YAIjB,CACEvtB,MAAO,MACPkd,WAAY,CACVmD,YAAa,KACb31B,UAAW,cAGf,CACEsV,MAAO,MACPkd,WAAY,CACVxyB,UAAW,2BAEbyxB,SAAU,CACR,CACEnc,MAAO,OACPkd,WAAY,CACVmD,YAAa,OAGjB,CACErgB,MAAO,OACPkd,WAAY,CACVxyB,UAAW,OACX21B,YAAa,kCAMjBmN,EAAiD,CACrDxtB,MAAO,0CACPiE,QAAS,CACP,CACEhZ,KAAM,sBACN2H,MAAO2jC,EAAuBhsC,QAC9B2lB,SAAU,CACRrN,OAAQ,qBACRg0B,KAAM,CACJ,CACEjR,QAAS,mBACT35B,KAAM,4BACNu5B,QAAS,oCAKjB,CACEv6B,KAAM,sBACN2H,MAAO4jC,EAAuBjsC,QAC9B2lB,SAAU,CACRrN,OAAQ,qBACRg0B,KAAM,CACJ,CACEjR,QAAS,mBACT35B,KAAM,4BACNu5B,QAAS,oCAKjB,CACEv6B,KAAM,uBACN2H,MAAO6jC,EAAwBlsC,QAC/B2lB,SAAU,CACRrN,OAAQ,qBACRg0B,KAAM,CACJ,CACEjR,QAAS,mBACT35B,KAAM,6BACNu5B,QAAS,qCAKjB,CACEv6B,KAAM,SAGViyB,WAAY,CACV9xB,MAAO,CACLqiC,oBACE,2DAGNtR,SAAUkR,GAGZ,IAAK,IAAI/6B,EAAI,EAAG+W,EAAOgjB,EAAYniC,OAAQoI,EAAI+W,EAAM/W,IAAK,KAAAwkC,EACxD,MAAMhK,EAAaT,EAAY/5B,GACzB27B,EAAY37B,IAAM+W,EAAO,EAEzB0tB,EAA2B,IAAInjC,IACrC,IAAK,MAAMk6B,KAAahB,EAAWjB,YAAc,GAC/CkL,EAAyBpiC,IAAIm5B,EAAUkJ,cAAgB,EAAGlJ,GAG5DT,EAAcv8B,KACZ,CACEkP,MAAO,MACPkd,WAAY,CACVxyB,UAAWC,IAAW,YAAa,CACjC,gBAAiBsjC,KAGrB9R,SAAU,CACR,CACEnc,MAAO,OACPkd,WAAY,CACVmD,YAAa,GAAGyM,EAAWe,cAAgBf,EAAWE,eAG1D,CAEEhtB,MAAO,YACPkd,WAAY,CACVxyB,UAAW,aACXuB,KAAM,OACNjB,KAAM,4JAIuCiwB,KAAKC,UAAU4R,EAAWE,0FAIzEiK,OAAQ,CACNC,MAAO,CACLr0B,OAAQ,kBACRg0B,KAAM,CACJ,sBACA,8DACqC5b,KAAKC,UAAU4R,EAAWE,yFACT/R,KAAKC,UAAU4R,EAAWE,0EACzC/R,KAAKC,UAAU4R,EAAWE,6CAQ7E,CAEEhtB,MAAO,MACPkd,WAAY,CACVxyB,UAAWC,IAAW,YAAa,CACjC,gBAAiBsjC,KAGrB9R,SAA+B,QAArB2a,EAAAhK,EAAWjB,kBAAU,IAAAiL,GAArBA,EAAuB5sC,OAC7B,CACE,CACE8V,MAAO,UACPkd,WAAY,CACVpyB,IAAK,KACLgkC,OAAQ,MACR9jC,KAAM,SACNI,MAAO,CACLE,MAAOwhC,EAAWqK,aACd,yBACA,wBACJC,gBAAiB,gBACjBC,UAAW,sBAKnBxzB,GAEN,CACE7D,MAAO,MACPkd,WAAY,CACVxyB,UAAWC,IAAW,YAAa,CACjC,gBAAiBsjC,KAGrB9R,SAAU,CACR,CACEnc,MAAO,UACPkd,WAAY,CACVjxB,KAAM,OACNo0B,YAAayM,EAAWwK,cAE1BL,OAAQ,CACNC,MAAO,CACLr0B,OAAQ,qBACRg0B,KAAM,CACJ,CACEjR,QAAS,mBACT35B,KAAM,iBACNu5B,QAASsH,UAUzB,IAAIiB,EAASjB,EAAWyK,eACxB,IAAKxJ,EAAQ,CACX,MAAMyJ,GAAY1K,EAAWM,UAAY6I,GAAS,IAAI1jC,QACtDilC,EAASjV,MAAK,CAACkV,EAAIC,KACjB,MAAMnmB,EAAIkmB,aAAE,EAAFA,EAAK3K,EAAWE,YACpBxK,EAAIkV,aAAE,EAAFA,EAAK5K,EAAWE,YACpB2K,EAAWvtC,MAAMqH,QAAQ8f,GACzBqmB,EAAWxtC,MAAMqH,QAAQ+wB,GAC/B,GAAImV,GAAYC,EACd,OAAQA,EAAWpV,EAAEt4B,QAAU,IAAMytC,EAAWpmB,EAAErnB,QAAU,GAE9D,MAAM2tC,EAAc,MAALtmB,EACTumB,EAAc,MAALtV,EACf,GAAIqV,GAAUC,EACZ,OAAQA,EAAS,EAAI,IAAMD,EAAS,EAAI,GAG1C,MAAME,EAAwB,iBAANxmB,GAA+B,IAAbA,EAAErnB,OACtC8tC,EAAwB,iBAANxV,GAA+B,IAAbA,EAAEt4B,OAC5C,OAAI6tC,GAAYC,GACNA,EAAW,EAAI,IAAMD,EAAW,EAAI,GAEvC,CAAC,IAEVhK,EAASyJ,EAASjjC,KAAK0jC,GAASA,EAAKnL,EAAWE,aAClD,CAGAK,EAAcv8B,KAAK,CACjBkP,MAAO,MACPkd,WAAY,CACVxyB,UAAWC,IAAW,YAAa,CACjC,gBAAiBsjC,KAGrB9R,SAAU,CACR,CACEnc,MAAO,MACPkd,WAAY,CACVxyB,UAAW,QAEbyxB,SAAU4R,EAAOx5B,KAAI,CAAC0jC,EAAMzjC,KAAU,CACpCwL,MAAO,MACPqwB,GACY,IAAV77B,GAEI,wCAAwCymB,KAAKC,UAAU4R,EAAWE,kBACxE9P,WAAY,CACVxyB,UAAW,yDAAyDuwB,KAAKC,UAAU4R,EAAWE,uCAC9F3M,iBACWxc,IAATo0B,EACI,GACgB,iBAATA,EACLA,EACAhd,KAAKC,UAAU+c,EAAM,KAAM,SAIzC,CAEEj4B,MAAO,YACPkd,WAAY,CACVxyB,UAAW,aACXuB,KAAM,OACNjB,KAAM,oJAIuCiwB,KAAKC,UAAU4R,EAAWE,sFAIzEiK,OAAQ,CACNC,MAAO,CACLr0B,OAAQ,kBACRg0B,KAAM,CACJ,sBACA,4DACqC5b,KAAKC,UAAU4R,EAAWE,uFACT/R,KAAKC,UAAU4R,EAAWE,wEACzC/R,KAAKC,UAAU4R,EAAWE,4CAU7E,IAAK,IAAI16B,GAAK,EAAGA,EAAI,EAAGA,IAAK,CAC3B,MAAMw7B,EAAYiJ,EAAyBjkC,IAAIR,GAE/C,IAAI0N,EACA8tB,IACF9tB,EAAQsxB,GAAoBxD,EAAWhB,EAAWE,aAGpDK,EAAcv8B,KAAK,CACjBkP,MAAO,MACPkd,WAAY,CACVxyB,UAAWC,IAAW,YAAa,CACjC,gBAAiBsjC,KAGrB9R,SAAU,CACR,CACEnc,MAAO,MACPkd,WAAY,CACVxyB,UAAW,QAEbyxB,SAAUnc,EACN+tB,EAAOx5B,KAAI,CAAC0jC,EAAMzjC,KAAU,CAC1BwL,MAAO,yCACPqwB,GACY,IAAV77B,GAEI,wCAAwCymB,KAAKC,UAAU4R,EAAWE,kBACxE9P,WAAY,CACV9F,SAAU,CAACpX,GACXouB,WAAY,CACV,CAACtB,EAAWE,YAAaiL,IAG7B1W,eAAe,WAEjB1d,KAIZ,CAEAwpB,EAAcv8B,KACZ,CAEEkP,MAAO,MACPkd,WAAY,CACVxyB,UAAWC,IAAW,YAAa,CACjC,gBAAiBsjC,KAGrB9R,SAAU2Q,EAAWjB,WACjB,CACE,CACE7rB,MAAO,cACPkd,WAAY,CACVtqB,MAAO,yCAAyCqoB,KAAKC,UAAU4R,EAAWE,sCAC1El/B,QAAS,CAAC,CAAEmf,MAAO,GAAIra,MAAO,aAC9B0V,SAAU,mBAEZ2uB,OAAQ,CACNiB,OAAQ,CACN,CACEr1B,OAAQ,qBACRg0B,KAAM,CACJ,CACEjR,QAAS,mBACT35B,KAAM,UACNu5B,QAAS,CACPkR,SAAU,gCACVyB,mBAAoBrL,EAAWqL,uBAKvC,CACEt1B,OAAQ,kBACRg0B,KAAM,CACJ,uBACA,4HAEwC5b,KAAKC,UAAU4R,EAAWE,gGACX/R,KAAKC,UAAU4R,EAAWE,wDAQ7FnpB,GAEN,CAEE7D,MAAO,MACPkd,WAAY,CACVxyB,UAAWC,IAAW,YAAa,CACjC,iBAAiB,EACjB,gBAAiBsjC,KAGrB9R,SAAU2Q,EAAWjB,WACjB,CACE,CACE7rB,MAAO,cACPkd,WAAY,CACVtqB,MAAOk6B,EAAWsL,QACd,MAAMnd,KAAKC,UAAU4R,EAAWsL,mBAChCv0B,EACJw0B,UAAU,EACVjtC,MAAO,CACL0pB,MAAO,QAETxM,SAAU,qDAAqD2S,KAAKC,UAAU4R,EAAWE,mBAE3FiK,OAAQ,CACNqB,QAAS,CACPjI,GAAI,mEACJxtB,OAAQ,qBACRg0B,KAAM,CACJ,CACEjR,QAAS,mBACT35B,KAAM,UACNu5B,QAAS,CACP4S,QAAS,2BACTD,mBAAoBrL,EAAWqL,+BAQ7Ct0B,GAGV,CAEAtb,EACE,OACA,CACEu/B,MAAMC,EAAAA,GAAAA,UACJ,CACEyF,EACA,CACExtB,MAAO,sBACPkd,WAAY,CACVqb,YAAY,GAEdtB,OAAQ,CACNrY,QAAS,CACPyR,GAAI,+FACJxtB,OAAQ,kBACRg0B,KAAM,CAAC,OAAQ,qCAGnB2B,QAAQ,EACRjX,eAAe,IAGnB,CACEyG,OAAQC,GAAAA,YACRC,aAAa,EACbC,QAAQ,EACRC,cAAc,KAIpB,CACE9C,MACAv6B,QACAs6B,YACAt5B,UAAW6iC,GAAAA,GAEd,GACA,CAACtJ,EAAK0F,EAAUqB,EAAathC,EAAOs6B,EAAWtiB,EAAUkzB,IAG1DztC,IAAAA,cAAA,OAAKkC,UAAWC,IAAW,cACzBnC,IAAAA,cAAA,UACE2C,IAAK66B,EACLiD,IAAK+M,GAAc,IAAGtO,EAAAA,GAAAA,4CACtBlhB,QAAQ,OACR0iB,OAAQnC,IAIhB,CAhpBC0R,GAAAzD,KAAAxpC,GAAAypC,GAAAC,GAAAjJ,GAAAC,GAAAiJ,GAAAC,GAAAC,GAAAC,GAAAnJ,GAAAC,GAAA1H,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAwQ,GAAAE,GAAAiD,GAAAlD,GAAAE,GAAAE,GAAA+C,GAAAhD,GAAAE,GAAAE,GAAA6C,GAAA9C,IAAAnqC,GAAAgpC,GAAA/oC,MAAAC,EAAAA,EAAAA,GAAA4sC,GAAA,CArEA5yC,GAAc,kCAAmC,CAChDiG,WAAY,CAACC,GAAAA,MACb,EAECjG,KAAU,iBAGVA,GAAS,CAAE8J,WAAW,IAAQ,kBAG9B9J,GAAS,CAAE8J,WAAW,IAAQ,YAG9B9J,GAAS,CAAEmG,KAAMC,UAAU,WAM3BpG,KAAU,eAGVA,KAAU,YAGVA,KAAU,gBAGVA,KAAU,UAGVC,GAAM,CAAEkG,KAAM,YAAY,iBAAAG,IAAAjE,EAAAA,EAAAA,GAAAgN,GAAA/I,GAAA,CAAAA,EAAAhE,KAAAC,EAAAA,EAAAA,GAAA8M,GAAA/I,EAAAhE,IAAA,CAO1BrC,GAAM,CAAEkG,KAAM,YAAY,iBAAAG,IAAAjE,EAAAA,EAAAA,GAAAiN,GAAAhJ,GAAA,CAAAA,EAAAhE,KAAAC,EAAAA,EAAAA,GAAA+M,GAAAhJ,EAAAhE,IAAA,CAO1BrC,GAAM,CAAEkG,KAAM,qBAAqB,wBAAAG,IAAAjE,EAAAA,EAAAA,GAAAkN,GAAAjJ,GAAA,CAAAA,EAAAhE,KAAAC,EAAAA,EAAAA,GAAAgN,GAAAjJ,EAAAhE,KAAA,GAAAiE,GAAA0oC,GAAAzoC,KAAAC,EAAAA,EAAAA,GAAAF,KA1CTxF,EAAAA,mBAAgB+E,mBCzF7Cs/B,eAAeC,OACb,6BACAC,EAAAA,GAAAA,sBAdKC,eAAyBh6B,EAAcvD,GAC5C,MAEM+qC,EAAc,GAGpB,MAAO,CACLC,QAHaC,EAAAA,GAAAA,IAAa1nC,EAAMwnC,GAAMG,EAAAA,GAAAA,UAASlrC,EAH3B,CAAEmrC,KAAK,EAAOC,QAAQ,EAAOC,WAAW,KAO5DN,OAEJ,KCXO,IAAIO,GAA0C,WACnD,IAAIxwC,GAAO,SAAkB,UAAWywC,EAAUjgC,EAAMtL,GACtD,aAA+E,GAAAoP,KAAKgX,KAAK,sDAAsD/W,OAAOk8B,EAAU,aAAcjgC,EAAMtL,IACpL,IACF,IACA,OAAO,SAAoCsP,EAAIC,EAAKC,GAClD,OAAO1U,EAAK2U,MAAM5V,KAAMZ,UAC1B,CACF,CARqD,GCgBrDmkC,eAAeC,OACb,uDACAC,EAAAA,GAAAA,sBAfKC,eACLgB,GAEA,OAAOK,QAAQC,WACbN,EAAY93B,KAAI3L,IAAA,IAAC,eAAE0wC,KAAmBhzB,GAAO1d,EAAA,OAC3CwwC,GAA2B,kCAAmC,IACzD9yB,EACHkrB,KAAM,CAAC8H,IACP,IAGR,sFCDApO,eAAeC,OACb,8CACAC,EAAAA,GAAAA,sBAdK,WACL,MAAO,CACLmO,QAASC,GACT,YAAaC,GACbC,KAAMC,GACNC,OAAQC,GACRC,OAAQC,GACR,cAAeC,GACfC,OAAQC,GAEZ,whBC6CA,MAAM,cAAEr0C,GAAa,SAAEC,GAAQ,OAAE2rB,GAAM,MAAE1rB,KAAUC,EAAAA,EAAAA,oBAE7Cm0C,GAA0B3xC,IAAAA,WAAiB4xC,IAEpCC,GAAoB,gBACpBC,GAAsB,qBAEtBC,IAAcC,EAAAA,EAAAA,IAAkB,CAC3CC,WAAY,CACVC,WAAU,KACVC,MAAK,KACLC,SAAUC,EAAAA,EACVC,wBAAyBF,EAAAA,GACzBG,aAAY,KACZC,aAAY,KACZC,MAAK,KACLC,OAAM,KACNC,OAAM,KACNC,cAAa,IACbC,WAAYC,EAAAA,EACZC,WAAYC,EAAAA,EACZC,YAAaC,EAAAA,EACbC,kBAAmBC,EAAAA,EACnBC,aAAcC,EAAAA,EACdC,cAAeC,EAAAA,EACfC,eAAgBC,EAAAA,EAChBC,cAAeC,EAAAA,EACfC,QAASC,EAAAA,EACTC,UAASA,EAAAA,KAMb,IAAIC,GAEJC,GAAA,IAAAC,GAAA,IAAAv2C,QAAAD,GAAA,IAAAC,QAAAC,GAAA,IAAAD,QAAAE,GAAA,IAAAF,QAAAG,GAAA,IAAAH,QAAAO,GAAA,IAAAP,QAAAqI,GAAA,IAAArI,QAAA8O,GAAA,IAAA9O,QAAA+O,GAAA,IAAA/O,QAAAgP,GAAA,IAAAhP,QAAAw2C,GAAA,IAAAn2C,QAAA4O,GAAA,IAAAjP,QAAAkP,GAAA,IAAAlP,QAAAy2C,GAAA,IAAAz2C,QAAAmP,GAAA,IAAAnP,QAAA02C,GAAA,IAAA12C,QAAA22C,GAAA,IAAA32C,QAAA42C,GAAA,IAAA52C,QAAAoP,GAAA,IAAApP,QAAA62C,GAAA,IAAA72C,QAAA82C,GAAA,IAAA92C,QAIA,MAAA+2C,WAM6Br2C,EAAAA,iBAAiBC,WAAAA,GAAA,SAAAC,YAAAC,EAAAA,EAAAA,GAAA,KAAA21C,KAC5C11C,EAAAA,EAAAA,GAAA,KAAAy1C,IAAQ9qB,EAAA,OAAGurB,EAAAA,EAAAA,gBAEXl2C,EAAAA,EAAAA,GAAA,KAAAf,GAAAk3C,EAAA,QAIAn2C,EAAAA,EAAAA,GAAA,KAAAb,IAAAi3C,EAAA,MAAAC,EAAA,SAMAr2C,EAAAA,EAAAA,GAAA,KAAAZ,IAAAk3C,EAAA,MAAAC,EAAA,SAAAv2C,EAAAA,EAAAA,GAAA,KAAAX,IAAAm3C,EAAA,MAAAC,EAAA,SAAAz2C,EAAAA,EAAAA,GAAA,KAAAP,IAAAi3C,EAAA,MAAAC,EAAA,SAAA32C,EAAAA,EAAAA,GAAA,KAAAuH,IAAAqvC,EAAA,MAAAC,EAAA,SAAA72C,EAAAA,EAAAA,GAAA,KAAAgO,IAAA8oC,EAAA,MAAAC,EAAA,SAAA/2C,EAAAA,EAAAA,GAAA,KAAAiO,IAAA+oC,EAAA,MAAAC,GAAA,SA+BAj3C,EAAAA,EAAAA,GAAA,KAAAkO,IAAAgpC,GAAA,MAAAC,GAAA,SAMAn3C,EAAAA,EAAAA,GAAA,KAAAmO,IAAAipC,GAAA,MAAAC,GAAA,SAAAr3C,EAAAA,EAAAA,GAAA,KAAAoO,IAAAkpC,GAAA,MAAAC,GAAA,SA8BAv3C,EAAAA,EAAAA,GAAA,KAAA21C,IAAmB6B,GAAA,MAAI7rC,KACrBhL,EAAAA,EAAAA,GAAA+0C,GAAAh1C,KAAK+2C,IAAmB52C,KAAK8K,EAAM,KACnC3L,EAAAA,EAAAA,GAAA,KAAAqO,GAAAqpC,GAAA,QAKF13C,EAAAA,EAAAA,GAAA,KAAA41C,IAAiB+B,GAAA,MAAIhsC,KACnBhL,EAAAA,EAAAA,GAAA+0C,GAAAh1C,KAAKk3C,IAAY/2C,KAAK8K,EAAM,KAG9B3L,EAAAA,EAAAA,GAAA,KAAA61C,QAAY,IAEZ71C,EAAAA,EAAAA,GAAA,KAAA81C,IAAkB+B,EAAAA,EAAAA,IAChBzE,IACA,CAACtM,EAAQgR,IAAUxW,KACjBlgC,EAAAA,EAAAA,GAAKy0C,GAALn1C,KAAoB4gC,EAASwF,EAAQgR,GAApB,MAEnB93C,EAAAA,EAAAA,GAAA,KAAAsO,GAAAypC,GAAA,QAKF/3C,EAAAA,EAAAA,GAAA,KAAA+1C,IAAoBiC,GAAA,MAAIp8B,KACtBjb,EAAAA,EAAAA,GAAA+0C,GAAAh1C,KAAKu3C,IAAoBp3C,KAAK+a,EAAO,KAGvC5b,EAAAA,EAAAA,GAAA,KAAAg2C,IAAe7jC,IACb,MAAM+lC,EACY,iBAAT/lC,GAA8B,cAATA,OACxByK,GACAu7B,EAAAA,EAAAA,MAAKhmC,EAAa,CAAC,mBACnBimC,EAAqB,IAC3BC,EAAAA,EAAAA,SAAQH,aAAa,EAAbA,EAAe1U,UAAY4U,EAAmBvuC,KAAK,YAC3DwuC,EAAAA,EAAAA,SAAQH,aAAa,EAAbA,EAAe/zC,QAAUi0C,EAAmBvuC,KAAK,SAEzD,MAAMyuC,GAAaH,EAAAA,EAAAA,MAAKD,EAAeE,GACvC,KAAIC,EAAAA,EAAAA,SAAQC,GAGZ,OAAOA,CAAU,GACjB,eApHOC,GAAU,OAAAr3C,EAAAA,EAAAA,GAAAjC,GAAA,oBAAVs5C,CAAUp3C,IAAAC,EAAAA,EAAAA,GAAAnC,GAAA,KAAAkC,EAAA,WAMV2lC,GAAM,OAAA5lC,EAAAA,EAAAA,GAAA/B,GAAA,gBAAN2nC,CAAM3lC,IAAAC,EAAAA,EAAAA,GAAAjC,GAAA,KAAAgC,EAAA,iBAMNq3C,GAAY,OAAAt3C,EAAAA,EAAAA,GAAA9B,GAAA,sBAAZo5C,CAAYr3C,IAAAC,EAAAA,EAAAA,GAAAhC,GAAA,KAAA+B,EAAA,aAKZs3C,GAAQ,OAAAv3C,EAAAA,EAAAA,GAAA7B,GAAA,kBAARo5C,CAAQt3C,IAAAC,EAAAA,EAAAA,GAAA/B,GAAA,KAAA8B,EAAA,mBAKRu3C,GAAc,OAAAx3C,EAAAA,EAAAA,GAAAzB,GAAA,wBAAdi5C,CAAcv3C,IAAAC,EAAAA,EAAAA,GAAA3B,GAAA,KAAA0B,EAAA,UAKdw3C,GAAK,OAAAz3C,EAAAA,EAAAA,GAAAqG,GAAA,eAALoxC,CAAKx3C,IAAAC,EAAAA,EAAAA,GAAAmG,GAAA,KAAApG,EAAA,cAKLy3C,GAAS,OAAA13C,EAAAA,EAAAA,GAAA8M,GAAA,mBAAT4qC,CAASz3C,IAAAC,EAAAA,EAAAA,GAAA4M,GAAA,KAAA7M,EAAA,eAKT03C,GAAU,OAAA33C,EAAAA,EAAAA,GAAA+M,GAAA,oBAAV4qC,CAAU13C,IAAAC,EAAAA,EAAAA,GAAA6M,GAAA,KAAA9M,EAAA,CAcnB23C,QAAAA,GAAW,IAAAC,EACT,MAAMjB,EAAkC,QAAxBiB,GAAG73C,EAAAA,EAAAA,GAAKu0C,GAAL/0C,MAAc4C,eAAO,IAAAy1C,OAAA,EAArBA,EAAuBC,mBAC1C53C,EAAAA,EAAAA,GAAKy0C,GAALn1C,KAAoB,MAEpBo3C,EACGgB,WACA14B,MAAK,KACJ,GAAI1f,KAAK83C,cAEP73C,EAAAA,EAAAA,GAAA+0C,GAAAh1C,KAAKu4C,IAAcp4C,KAAKi3C,EAAKhR,OAAOoS,EAAAA,SAC/B,CACL,MAAMvtC,EAAQvG,IAAAA,KAAO0yC,EAAKhR,OAAQ,CAACoS,EAAAA,KACnCpB,EAAKqB,OAAO/F,GAAmBznC,IAC/BhL,EAAAA,EAAAA,GAAA+0C,GAAAh1C,KAAKu4C,IAAcp4C,MAAKK,EAAAA,EAAAA,GAAK20C,GAALn1C,OAAqBiL,EAC/C,KAED8U,OAAO6O,KACN3uB,EAAAA,EAAAA,GAAA+0C,GAAAh1C,KAAK04C,IAAYv4C,KAAKyuB,EAAI,GAEhC,CAgDAhuB,MAAAA,GACE,OACEC,IAAAA,cAAC2xC,GAAuB,CACtBhvC,KAAKhD,EAAAA,EAAAA,GAAKu0C,GAAL/0C,MACL63C,WAAY73C,KAAK63C,WACjBzR,QAAQ5lC,EAAAA,EAAAA,GAAK80C,GAALt1C,MAAgBsF,KAAhBtF,KAAiBA,KAAKomC,QAC9B0R,aAAc93C,KAAK83C,aACnBC,SAAU/3C,KAAK+3C,SACfG,UAAWl4C,KAAKk4C,UAChBD,MAAOj4C,KAAKi4C,MACZE,WAAYn4C,KAAKm4C,WACjBH,eAAgBh4C,KAAKg4C,eACrBW,oBAAoBn4C,EAAAA,EAAAA,GAAKy0C,GAALj1C,MACpB44C,kBAAkBp4C,EAAAA,EAAAA,GAAK00C,GAALl1C,MAClB64C,qBAAqBr4C,EAAAA,EAAAA,GAAK60C,GAALr1C,MACrB84C,gBAAgBt4C,EAAAA,EAAAA,GAAK40C,GAALp1C,OAGtB,EAkBK,SAASyyC,GAAoBxxC,EAelCuC,GACA,IAfA,aACEs0C,EAAY,OACZ1R,EAAM,WACNyR,EAAU,SACVE,EAAQ,eACRC,EAAc,UACdE,EAAS,WACTC,EAAU,MACVF,EAAK,mBACLU,EAAkB,iBAClBC,EAAgB,oBAChBC,EAAmB,eACnBC,GACoB73C,EAGtB,MAAO83C,EAAQC,IAAa53C,EAAAA,EAAAA,UAE1ByzC,IACIoE,GAAeC,EAAAA,EAAAA,mBACfC,GAAQn3C,EAAAA,EAAAA,UAAQ,KAAMo3C,EAAAA,EAAAA,OAAe,IAErChC,GAAOp1C,EAAAA,EAAAA,UAAQ,KAAMq3C,EAAAA,EAAAA,OAAc,CAACN,IACpCO,GAAoB13C,EAAAA,EAAAA,QAAY,MAChC23C,GAAoB33C,EAAAA,EAAAA,SAAgB,GAEpC43C,GAAyBx3C,EAAAA,EAAAA,UAC7B,KACEm1C,EAAAA,EAAAA,IACExE,IACA,CAACmF,EAAcV,IAAUxW,IACvB,MAAMwF,GACH0R,GAAgBV,EAAKhR,OAAOoS,EAAAA,IACzBpB,EAAKhR,OAAOoS,EAAAA,IACZpB,EAAKhR,OACXkT,EAAkB12C,QAAUg+B,EAASkX,EAAcV,EAAMhR,EAAO,KAGtE,KAGFqT,EAAAA,EAAAA,qBAAoBj2C,GAAK,KAAM,CAC7B80C,gBAAiBA,IAAMlB,MAGzB,MAAMsC,GAAOj4C,EAAAA,EAAAA,cAAYiiC,UAEnBwE,EAAAA,cAAc/8B,IAAI0sC,GACpBmB,GAAU,SAAAW,EAAA,OAAmC,QAAnCA,EAAMzR,EAAAA,cAAc/8B,IAAI0sC,UAAW,IAAA8B,OAAA,EAA7BA,EAAgC94C,IAAM,WAGlD6+B,EAAAA,mBAAmBuI,YAAY,CAAC4P,GAAaG,GACnDnD,GAAoBA,KAAA,IAAA+E,EAAA,OAAmC,QAAnCA,EAAM1R,EAAAA,cAAc/8B,IAAI0sC,UAAW,IAAA+B,OAAA,EAA7BA,EAAgC/4C,IAAM,EAChEm4C,EAAUnE,IAAyB,GAClC,CAACgD,EAAYG,IAEV6B,GAAmBp4C,EAAAA,EAAAA,cAAY,CAAC2kC,EAAa0R,KACjD,GAAIA,EAAc,CAChB,MAAMgC,EAAcp1C,IAAAA,KAAO0hC,EAAQ,CAACoS,EAAAA,KACpC,MAAO,CACL,CAACA,EAAAA,IAAoB9zC,IAAAA,QAAUo1C,GAAe,GAAKA,EAEvD,CACA,OAAO1T,EAAOoS,EAAAA,KAAsBpS,CAAM,GACzC,IA4CH,OA1CA7kC,EAAAA,EAAAA,YAAU,KACRm4C,GAAM,GACL,CAACA,KAEJn4C,EAAAA,EAAAA,YAAU,KACJw3C,GACF3B,EAAK2C,iBAAiB3T,EAAQ,YAChC,GACC,CAAC2S,EAAQ3B,KAEZ71C,EAAAA,EAAAA,YAAU,KACRg4C,EAAkB32C,SAAU,EAC5B02C,EAAkB12C,QAAU,KAE5Bw0C,EAAKqB,OAAO9F,GAAqBmF,GAEjCV,EAAK7oB,MAAMyrB,EAAAA,IAAiBC,MAAM3N,IAChCA,EAAMtC,QAAW8N,EAA2B,SAAZ,SAAoB,IAEtDV,EAAK7oB,MAAMiqB,EAAAA,IAAmByB,MAAM3N,IAClCA,EAAMtC,QAAU8N,EAAe,UAAY,QAAQ,IAGrD,MAAMoC,EAAa9C,EAAK+C,WAAW/T,OAC7BgU,EAAWP,EACfP,EAAkB12C,SAAWs3C,EAC7BpC,GAGFV,EAAKiD,UAAUD,EAAU,aACzBb,EAAkB32C,SAAU,CAAK,GAChC,CAACk1C,EAAcV,EAAMyC,EAAkBd,KAE1Cx3C,EAAAA,EAAAA,YAAU,KACR61C,EAAKkD,WAAW,iBAAiB,MAC/BC,EAAAA,EAAAA,KAAoBnD,IACdmC,EAAkB32C,SACtB+1C,EAAmBvB,EAAKhR,OAAO,GAC/B,GACF,GACD,CAACgR,EAAMuB,IAELI,EAGHl4C,IAAAA,cAAA,OAAKkC,UAAU,yBACblC,IAAAA,cAAC25C,EAAAA,GAAc,CACbC,UAAU,SACVr3C,MAAO,CACLs3C,UACmB,YAAjBzB,EACI71C,EAAAA,EAAMu3C,cACNv3C,EAAAA,EAAMw3C,iBACZ9H,WAAY,CAKV+H,YAAa,CACXC,eAAe,KAIrBC,kBAAoB56B,GAAYA,GAEhCtf,IAAAA,cAACm6C,EAAAA,GAAa,CAAC7B,MAAOA,GACpBt4C,IAAAA,cAACo6C,EAAAA,GAAY,CAAC7D,KAAMA,GAClBv2C,IAAAA,cAACk4C,EAAM,CACLjB,aAAcA,EACdoD,qBAAsBtI,GACtBwE,KAAMA,EACN+D,MAAO,CACLpD,WACAD,eACAK,aACAD,YACAD,QACAmD,WAAah9C,GACXw6C,EAAiBx6C,EAAMgT,QACzBiqC,cAAexC,GAEjByC,QAAS,CACPC,YAAW,KACXC,mBAAkB,KAClBC,0BAAyB,KACzBC,0BAAyB,KACzBC,sBAAqB,KACrBpB,mBAAkB,KAClBqB,SAAU9C,EACV+C,iBAAkBrC,GAEpBsC,uBAAwBA,EAAAA,SAjDhB,IAwDtB,CAtLCC,EAAAxG,KAAA1xC,GAAA4xC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,GAAAC,GAAAC,GAAA8B,GAAAyD,GAAAtF,GAAAC,GAAA+B,GAAAuD,GAAArF,GAAAC,GAAAE,GAAAmF,GAAApF,GAAAE,GAAAE,GAAAiF,GAAAlF,GAAAI,GAAAE,GAAA6E,GAAA9E,GAAArtB,GAAAjmB,GAAA8wC,GAAA7wC,KAAAC,EAAAA,EAAAA,GAAA63C,EAAA,CApJA79C,GAAc,iCAAkC,CAG/Cm+C,eAAe,EACfC,aAAc,CAAC,iBAAkB,iBAAkB,iBACnD,EAKCn+C,KAAU,iBAIVA,GAAS,CACR8J,WAAW,IACX,aAID9J,GAAS,CACRmG,KAAMC,UACN,mBAGDpG,GAAS,CACR8J,WAAW,IACX,eAGD9J,GAAS,CACR8J,WAAW,IACX,qBAGD9J,GAAS,CACR8J,WAAW,IACX,YAGD9J,GAAS,CACR8J,WAAW,IACX,gBAGD9J,GAAS,CACR8J,WAAW,IACX,iBAMD7J,GAAM,CAAEkG,KAAM,qBAAqB,iBAAAG,IAAAjE,EAAAA,EAAAA,GAAAgN,GAAA/I,GAAA,CAAAA,EAAAhE,KAAAC,EAAAA,EAAAA,GAAA8M,GAAA/I,EAAAhE,IAAA,CAMnCrC,GAAM,CAAEkG,KAAM,mBAAmB,eAAAG,IAAAjE,EAAAA,EAAAA,GAAAiN,GAAAhJ,GAAA,CAAAA,EAAAhE,KAAAC,EAAAA,EAAAA,GAAA+M,GAAAhJ,EAAAhE,IAAA,CAEjCqpB,KAAQ,eAsBR1rB,GAAM,CAAEkG,KAAM,kBAAkB,sBAAAG,IAAAjE,EAAAA,EAAAA,GAAAkN,GAAAjJ,GAAA,CAAAA,EAAAhE,KAAAC,EAAAA,EAAAA,GAAAgN,GAAAjJ,EAAAhE,IAAA,CAOhCrC,GAAM,CAAEkG,KAAM,gBAAgB,eAAAG,IAAAjE,EAAAA,EAAAA,GAAAmN,GAAAlJ,GAAA,CAAAA,EAAAhE,KAAAC,EAAAA,EAAAA,GAAAiN,GAAAlJ,EAAAhE,IAAA,CAgB9BrC,GAAM,CAAEkG,KAAM,mBAAmB,uBAAAG,IAAAjE,EAAAA,EAAAA,GAAAoN,GAAAnJ,GAAA,CAAAA,EAAAhE,KAAAC,EAAAA,EAAAA,GAAAkN,GAAAnJ,EAAAhE,KAAA,GAAAiE,GAAA4wC,GAAA3wC,KAAAC,EAAAA,EAAAA,GAAAF,KApGPxF,EAAAA,mBAAgB+E,oEC5GzCs4C,QAA0B,GAA4B,KAE1DA,EAAwBpzC,KAAK,CAACqzC,EAAO3zB,GAAI,0JACmC,KAE5E,2ECLI0zB,QAA0B,GAA4B,KAE1DA,EAAwBpzC,KAAK,CAACqzC,EAAO3zB,GAAI,wUAC8H,KAEvK,8FCJI0zB,EAA0B,IAA4B,KAC1DA,EAAwB5xC,EAAE,KAE1B4xC,EAAwBpzC,KAAK,CAACqzC,EAAO3zB,GAAI,2iCACqJ,KAE9L,QAAe0zB,EAAwB1mB,4ECPnC0mB,QAA0B,GAA4B,KAE1DA,EAAwBpzC,KAAK,CAACqzC,EAAO3zB,GAAI,y3BAC0vB,KAEnyB,QAAe0zB,EAAwB1mB,4ECLnC0mB,QAA0B,GAA4B,KAE1DA,EAAwBpzC,KAAK,CAACqzC,EAAO3zB,GAAI,yPAA0P,KAEnS,QAAe0zB,EAAwB1mB,4ECJnC0mB,QAA0B,GAA4B,KAE1DA,EAAwBpzC,KAAK,CAACqzC,EAAO3zB,GAAI,o9BAEovB,KAE7xB,QAAe0zB,EAAwB1mB,4ECNnC0mB,QAA0B,GAA4B,KAE1DA,EAAwBpzC,KAAK,CAACqzC,EAAO3zB,GAAI,63GAS6H,KAEtK,QAAe0zB,EAAwB1mB,4ECbnC0mB,QAA0B,GAA4B,KAE1DA,EAAwBpzC,KAAK,CAACqzC,EAAO3zB,GAAI,2DAA4D,KAErG,QAAe0zB,EAAwB1mB,4ECJnC0mB,QAA0B,GAA4B,KAE1DA,EAAwBpzC,KAAK,CAACqzC,EAAO3zB,GAAI,gdACmJ,KAE5L,QAAe0zB,EAAwB1mB,4ECLnC0mB,QAA0B,GAA4B,KAE1DA,EAAwBpzC,KAAK,CAACqzC,EAAO3zB,GAAI,2RAC4J,KAErM,QAAe0zB,EAAwB1mB,4ECLnC0mB,QAA0B,GAA4B,KAE1DA,EAAwBpzC,KAAK,CAACqzC,EAAO3zB,GAAI,wOAAyO,KAElR,QAAe0zB,EAAwB1mB,4ECJnC0mB,QAA0B,GAA4B,KAE1DA,EAAwBpzC,KAAK,CAACqzC,EAAO3zB,GAAI,41BAC+hB,KAExkB,QAAe0zB,EAAwB1mB,4ECLnC0mB,QAA0B,GAA4B,KAE1DA,EAAwBpzC,KAAK,CAACqzC,EAAO3zB,GAAI,2RAC4J,KAErM,QAAe0zB,EAAwB1mB,4ECLnC0mB,QAA0B,GAA4B,KAE1DA,EAAwBpzC,KAAK,CAACqzC,EAAO3zB,GAAI,uhBAAwhB,KAEjkB,QAAe0zB,EAAwB1mB,4ECJnC0mB,QAA0B,GAA4B,KAE1DA,EAAwBpzC,KAAK,CAACqzC,EAAO3zB,GAAI,sLAAuL,KAEhO,QAAe0zB,EAAwB1mB,4ECJnC0mB,QAA0B,GAA4B,KAE1DA,EAAwBpzC,KAAK,CAACqzC,EAAO3zB,GAAI,2bAC2B,KAEpE,QAAe0zB,EAAwB1mB,4ECLnC0mB,QAA0B,GAA4B,KAE1DA,EAAwBpzC,KAAK,CAACqzC,EAAO3zB,GAAI,+gDAE8N,KAEvQ,QAAe0zB,EAAwB1mB,4ECNnC0mB,QAA0B,GAA4B,KAE1DA,EAAwBpzC,KAAK,CAACqzC,EAAO3zB,GAAI,q8CAGytC,KAElwC,QAAe0zB,EAAwB1mB,4ECPnC0mB,QAA0B,GAA4B,KAE1DA,EAAwBpzC,KAAK,CAACqzC,EAAO3zB,GAAI,k+BAGmd,KAE5f,QAAe0zB,EAAwB1mB,+FCNnC0mB,EAA0B,IAA4B,KAC1DA,EAAwB5xC,EAAE,KAE1B4xC,EAAwBpzC,KAAK,CAACqzC,EAAO3zB,GAAI,GAAI,KAE7C,QAAe0zB,EAAwB1mB,0BC8RvC,SAAS4mB,EAAaC,GAClB,OAAOA,EAAInzC,QAAQ,4BAA6B,OACpD,CAIA,SAASozC,EAAMx2C,GACX,OAAOA,GAAWA,EAAQqrC,UAAY,GAAK,GAC/C,CAiCA,SAASoL,EAAelzC,EAAMwnC,EAAM/qC,GAChC,OAKG,SAAwB02C,EAAQ3L,EAAM/qC,QACzB,IAAZA,IAAsBA,EAAU,CAAC,GAMrC,IALA,IAAI22C,EAAK32C,EAAQorC,OAAQA,OAAgB,IAAPuL,GAAwBA,EAAIC,EAAK52C,EAAQsxB,MAAOA,OAAe,IAAPslB,GAAuBA,EAAIC,EAAK72C,EAAQmrC,IAAKA,OAAa,IAAP0L,GAAuBA,EAAIC,EAAK92C,EAAQ+2C,OAAQA,OAAgB,IAAPD,EAAgB,SAAUhrC,GAAK,OAAOA,CAAG,EAAIgrC,EAAIE,EAAKh3C,EAAQi3C,UAAWA,OAAmB,IAAPD,EAAgB,MAAQA,EAAIE,EAAKl3C,EAAQm3C,SAChUC,EAAa,IAAI/nC,OAAOinC,OADoU,IAAPY,EAAgB,GAAKA,GAC1T,OAChDG,EAAc,IAAIhoC,OAAOinC,EAAaW,GAAY,KAClD7kC,EAAQkf,EAAQ,IAAM,GAEjBgmB,EAAK,EAAGC,EAAWb,EAAQY,EAAKC,EAASn7C,OAAQk7C,IAAM,CAC5D,IAAIE,EAAQD,EAASD,GACrB,GAAqB,iBAAVE,EACPplC,GAASkkC,EAAaS,EAAOS,QAE5B,CACD,IAAIxW,EAASsV,EAAaS,EAAOS,EAAMxW,SACnCnZ,EAASyuB,EAAaS,EAAOS,EAAM3vB,SACvC,GAAI2vB,EAAMC,QAGN,GAFI1M,GACAA,EAAK/nC,KAAKw0C,GACVxW,GAAUnZ,EACV,GAAuB,MAAnB2vB,EAAME,UAAuC,MAAnBF,EAAME,SAAkB,CAClD,IAAIC,EAAyB,MAAnBH,EAAME,SAAmB,IAAM,GACzCtlC,GAAS,MAAM/C,OAAO2xB,EAAQ,QAAQ3xB,OAAOmoC,EAAMC,QAAS,QAAQpoC,OAAOwY,GAAQxY,OAAO2xB,EAAQ,OAAO3xB,OAAOmoC,EAAMC,QAAS,QAAQpoC,OAAOwY,EAAQ,KAAKxY,OAAOsoC,EACtK,MAEIvlC,GAAS,MAAM/C,OAAO2xB,EAAQ,KAAK3xB,OAAOmoC,EAAMC,QAAS,KAAKpoC,OAAOwY,EAAQ,KAAKxY,OAAOmoC,EAAME,cAGlG,CACD,GAAuB,MAAnBF,EAAME,UAAuC,MAAnBF,EAAME,SAChC,MAAM,IAAIE,UAAU,mBAAoBvoC,OAAOmoC,EAAMr6C,KAAM,kCAE/DiV,GAAS,IAAI/C,OAAOmoC,EAAMC,QAAS,KAAKpoC,OAAOmoC,EAAME,SACzD,MAGAtlC,GAAS,MAAM/C,OAAO2xB,GAAQ3xB,OAAOwY,EAAQ,KAAKxY,OAAOmoC,EAAME,SAEvE,CACJ,CACA,GAAIvM,EACKC,IACDh5B,GAAS,GAAG/C,OAAOgoC,EAAa,MACpCjlC,GAAUpS,EAAQm3C,SAAiB,MAAM9nC,OAAO+nC,EAAY,KAA/B,QAE5B,CACD,IAAIS,EAAWnB,EAAOA,EAAOt6C,OAAS,GAClC07C,EAAqC,iBAAbD,EACtBR,EAAYU,QAAQF,EAASA,EAASz7C,OAAS,KAAO,OACzC2Z,IAAb8hC,EACDzM,IACDh5B,GAAS,MAAM/C,OAAOgoC,EAAa,OAAOhoC,OAAO+nC,EAAY,QAE5DU,IACD1lC,GAAS,MAAM/C,OAAOgoC,EAAa,KAAKhoC,OAAO+nC,EAAY,KAEnE,CACA,OAAO,IAAIY,OAAO5lC,EAAOokC,EAAMx2C,GACnC,CA9DWi4C,CArPJ,SAAe1B,EAAKv2C,QACP,IAAZA,IAAsBA,EAAU,CAAC,GA4CrC,IA3CA,IAAI02C,EA3FR,SAAeH,GAGX,IAFA,IAAIG,EAAS,GACTlyC,EAAI,EACDA,EAAI+xC,EAAIn6C,QAAQ,CACnB,IAAI87C,EAAO3B,EAAI/xC,GACf,GAAa,MAAT0zC,GAAyB,MAATA,GAAyB,MAATA,EAIpC,GAAa,OAATA,EAIJ,GAAa,MAATA,EAIJ,GAAa,MAATA,EAIJ,GAAa,MAATA,EAyBJ,GAAa,MAATA,EAmCJxB,EAAO1zC,KAAK,CAAE7E,KAAM,OAAQuI,MAAOlC,EAAGM,MAAOyxC,EAAI/xC,WAnCjD,CACI,IAAI4R,EAAQ,EACRqhC,EAAU,GAEd,GAAe,MAAXlB,EADA4B,EAAI3zC,EAAI,GAER,MAAM,IAAIozC,UAAU,oCAAsCvoC,OAAO8oC,IAErE,KAAOA,EAAI5B,EAAIn6C,QACX,GAAe,OAAXm6C,EAAI4B,GAAR,CAIA,GAAe,MAAX5B,EAAI4B,IAEJ,GAAc,KADd/hC,EACiB,CACb+hC,IACA,KACJ,OAEC,GAAe,MAAX5B,EAAI4B,KACT/hC,IACmB,MAAfmgC,EAAI4B,EAAI,IACR,MAAM,IAAIP,UAAU,uCAAuCvoC,OAAO8oC,IAG1EV,GAAWlB,EAAI4B,IAdf,MAFIV,GAAWlB,EAAI4B,KAAO5B,EAAI4B,KAkBlC,GAAI/hC,EACA,MAAM,IAAIwhC,UAAU,yBAAyBvoC,OAAO7K,IACxD,IAAKizC,EACD,MAAM,IAAIG,UAAU,sBAAsBvoC,OAAO7K,IACrDkyC,EAAO1zC,KAAK,CAAE7E,KAAM,UAAWuI,MAAOlC,EAAGM,MAAO2yC,IAChDjzC,EAAI2zC,CAER,KA3DA,CAGI,IAFA,IAAIh7C,EAAO,GACPg7C,EAAI3zC,EAAI,EACL2zC,EAAI5B,EAAIn6C,QAAQ,CACnB,IAAIg8C,EAAO7B,EAAI8B,WAAWF,GAC1B,KAECC,GAAQ,IAAMA,GAAQ,IAElBA,GAAQ,IAAMA,GAAQ,IAEtBA,GAAQ,IAAMA,GAAQ,KAEd,KAATA,GAIJ,MAHIj7C,GAAQo5C,EAAI4B,IAIpB,CACA,IAAKh7C,EACD,MAAM,IAAIy6C,UAAU,6BAA6BvoC,OAAO7K,IAC5DkyC,EAAO1zC,KAAK,CAAE7E,KAAM,OAAQuI,MAAOlC,EAAGM,MAAO3H,IAC7CqH,EAAI2zC,CAER,MA3BIzB,EAAO1zC,KAAK,CAAE7E,KAAM,QAASuI,MAAOlC,EAAGM,MAAOyxC,EAAI/xC,YAJlDkyC,EAAO1zC,KAAK,CAAE7E,KAAM,OAAQuI,MAAOlC,EAAGM,MAAOyxC,EAAI/xC,YAJjDkyC,EAAO1zC,KAAK,CAAE7E,KAAM,eAAgBuI,MAAOlC,IAAKM,MAAOyxC,EAAI/xC,YAJ3DkyC,EAAO1zC,KAAK,CAAE7E,KAAM,WAAYuI,MAAOlC,EAAGM,MAAOyxC,EAAI/xC,MA4E7D,CAEA,OADAkyC,EAAO1zC,KAAK,CAAE7E,KAAM,MAAOuI,MAAOlC,EAAGM,MAAO,KACrC4xC,CACX,CAMiB4B,CAAM/B,GACfI,EAAK32C,EAAQu4C,SAAUA,OAAkB,IAAP5B,EAAgB,KAAOA,EAAIC,EAAK52C,EAAQi3C,UAAWA,OAAmB,IAAPL,EAAgB,MAAQA,EACzHp9B,EAAS,GACT9W,EAAM,EACN8B,EAAI,EACJjB,EAAO,GACPi1C,EAAa,SAAUr6C,GACvB,GAAIqG,EAAIkyC,EAAOt6C,QAAUs6C,EAAOlyC,GAAGrG,OAASA,EACxC,OAAOu4C,EAAOlyC,KAAKM,KAC3B,EACI2zC,EAAc,SAAUt6C,GACxB,IAAI2G,EAAQ0zC,EAAWr6C,GACvB,QAAc4X,IAAVjR,EACA,OAAOA,EACX,IAAI6xC,EAAKD,EAAOlyC,GAAIk0C,EAAW/B,EAAGx4C,KAAMuI,EAAQiwC,EAAGjwC,MACnD,MAAM,IAAIkxC,UAAU,cAAcvoC,OAAOqpC,EAAU,QAAQrpC,OAAO3I,EAAO,eAAe2I,OAAOlR,GACnG,EACIw6C,EAAc,WAGd,IAFA,IACI7zC,EADA0U,EAAS,GAEL1U,EAAQ0zC,EAAW,SAAWA,EAAW,iBAC7Ch/B,GAAU1U,EAEd,OAAO0U,CACX,EASIo/B,EAAc,SAAU5X,GACxB,IAAI5M,EAAO5a,EAAOA,EAAOpd,OAAS,GAC9By8C,EAAW7X,IAAW5M,GAAwB,iBAATA,EAAoBA,EAAO,IACpE,GAAIA,IAASykB,EACT,MAAM,IAAIjB,UAAU,8DAA+DvoC,OAAO+kB,EAAKj3B,KAAM,MAEzG,OAAK07C,GAdI,SAAU/zC,GACnB,IAAK,IAAIwyC,EAAK,EAAGwB,EAAc7B,EAAWK,EAAKwB,EAAY18C,OAAQk7C,IAAM,CACrE,IAAIY,EAAOY,EAAYxB,GACvB,GAAIxyC,EAAMizC,QAAQG,IAAS,EACvB,OAAO,CACf,CACA,OAAO,CACX,CAOqBa,CAAOF,GACb,KAAKxpC,OAAOinC,EAAaW,GAAY,OACzC,SAAS5nC,OAAOinC,EAAauC,GAAW,OAAOxpC,OAAOinC,EAAaW,GAAY,OAC1F,EACOzyC,EAAIkyC,EAAOt6C,QAAQ,CACtB,IAAI87C,EAAOM,EAAW,QAClBr7C,EAAOq7C,EAAW,QAClBf,EAAUe,EAAW,WACzB,GAAIr7C,GAAQs6C,EAAZ,CACI,IAAIzW,EAASkX,GAAQ,IACa,IAA9BK,EAASR,QAAQ/W,KACjBz9B,GAAQy9B,EACRA,EAAS,IAETz9B,IACAiW,EAAOxW,KAAKO,GACZA,EAAO,IAEXiW,EAAOxW,KAAK,CACR7F,KAAMA,GAAQuF,IACds+B,OAAQA,EACRnZ,OAAQ,GACR4vB,QAASA,GAAWmB,EAAY5X,GAChC0W,SAAUc,EAAW,aAAe,IAG5C,KAlBA,CAmBA,IAAI1zC,EAAQozC,GAAQM,EAAW,gBAC/B,GAAI1zC,EACAvB,GAAQuB,OAQZ,GALIvB,IACAiW,EAAOxW,KAAKO,GACZA,EAAO,IAEAi1C,EAAW,QACtB,CACQxX,EAAS2X,IAAb,IACIK,EAASR,EAAW,SAAW,GAC/BS,EAAYT,EAAW,YAAc,GACrC3wB,EAAS8wB,IACbF,EAAY,SACZj/B,EAAOxW,KAAK,CACR7F,KAAM67C,IAAWC,EAAYv2C,IAAQ,IACrC+0C,QAASuB,IAAWC,EAAYL,EAAY5X,GAAUiY,EACtDjY,OAAQA,EACRnZ,OAAQA,EACR6vB,SAAUc,EAAW,aAAe,IAG5C,MACAC,EAAY,MA1BZ,CA2BJ,CACA,OAAOj/B,CACX,CAqJ0B2a,CAAM5wB,EAAMvD,GAAU+qC,EAAM/qC,EACtD,CAqEO,SAASirC,EAAa1nC,EAAMwnC,EAAM/qC,GACrC,OAAIuD,aAAgBy0C,OArGxB,SAAwBz0C,EAAMwnC,GAC1B,IAAKA,EACD,OAAOxnC,EAIX,IAHA,IAAI21C,EAAc,0BACdxyC,EAAQ,EACRyyC,EAAaD,EAAY/nB,KAAK5tB,EAAK61C,QAChCD,GACHpO,EAAK/nC,KAAK,CAEN7F,KAAMg8C,EAAW,IAAMzyC,IACvBs6B,OAAQ,GACRnZ,OAAQ,GACR6vB,SAAU,GACVD,QAAS,KAEb0B,EAAaD,EAAY/nB,KAAK5tB,EAAK61C,QAEvC,OAAO71C,CACX,CAoFe81C,CAAe91C,EAAMwnC,GAC5BzuC,MAAMqH,QAAQJ,GAjFtB,SAAuBO,EAAOinC,EAAM/qC,GAChC,IAAIs5C,EAAQx1C,EAAM2C,KAAI,SAAUlD,GAAQ,OAAO0nC,EAAa1nC,EAAMwnC,EAAM/qC,GAASo5C,MAAQ,IACzF,OAAO,IAAIpB,OAAO,MAAM3oC,OAAOiqC,EAAM50C,KAAK,KAAM,KAAM8xC,EAAMx2C,GAChE,CA+Eeu5C,CAAch2C,EAAMwnC,EAAM/qC,GAC9By2C,EAAelzC,EAAMwnC,EAAM/qC,EACtC","sources":["webpack:///./src/workbench-pane/index.tsx","webpack:///../../src/debounceByAnimationFrame.ts","webpack:///./src/workbench-sidebar/index.tsx","webpack:///./src/workbench-action/host-context.css?4509","webpack:///./src/workbench-action/index.tsx","webpack:///../../src/menu.ts","webpack:///./src/workbench-action-list/host-context.css?28ab","webpack:///./src/workbench-action-list/index.tsx","webpack:///./src/workbench-tree/index.tsx","webpack:///./src/workbench-history-action/i18n.ts","webpack:///../../node_modules/@next-api-sdk/next-builder-sdk/dist/esm/api/next_builder/workspace/getChangeHistory.js","webpack:///./src/workbench-history-action/utils.ts","webpack:///./src/workbench-history-action/index.tsx","webpack:///./src/page-arch-node/index.tsx","webpack:///../../node_modules/@babel/runtime/helpers/esm/classPrivateSetter.js","webpack:///../../src/FormItemElement.tsx","webpack:///../../node_modules/@next-api-sdk/next-builder-sdk/dist/esm/api/next_builder/contract_center/searchContract.js","webpack:///./src/contract-select/i18n.ts","webpack:///./src/contract-select/more-option/MoreOption.tsx","webpack:///./src/contract-select/index.tsx","webpack:///./src/contract-select/useContractList.ts","webpack:///./src/generate-snippets-context-menu/index.tsx","webpack:///./src/generate-snippets-context-menu/i18n.ts","webpack:///../../src/rehypePrism.ts","webpack:///../../src/MarkdownComponent.tsx","webpack:///./src/chat-conversation/MessageComponent.tsx","webpack:///./src/chat-conversation/index.tsx","webpack:///./src/chat-preview/InspectOutlineComponent.tsx","webpack:///./src/chat-preview/index.tsx","webpack:///./src/data-providers/chat-preview/inspector.ts","webpack:///./src/data-providers/inject-chat-preview-agent.ts","webpack:///./src/pre-generated-preview/index.tsx","webpack:///./src/pre-generated-table-view/index.tsx","webpack:///./src/pre-generated-container/index.tsx","webpack:///./src/data-providers/check-editor-by-name.ts","webpack:///./src/data-providers/get-data-dependency.ts","webpack:///./src/data-providers/get-dependency-tree.ts","webpack:///./src/raw-data-preview/convert.ts","webpack:///./src/raw-data-preview/index.tsx","webpack:///./src/data-providers/parse-path.ts","webpack:///../../node_modules/@next-api-sdk/cmdb-sdk/dist/esm/api/cmdb/instance/createInstance.js","webpack:///./src/data-providers/batch-update-raw-data-generated-view.ts","webpack:///./src/data-providers/get-raw-data-system-prompts.ts","webpack:///./src/property-editor/index.tsx","webpack:///./src/workbench-action-list/host-context.css","webpack:///./src/workbench-action/host-context.css","webpack:///./src/chat-conversation/styles.shadow.css","webpack:///./src/chat-preview/styles.shadow.css","webpack:///./src/contract-select/styles.shadow.css","webpack:///./src/generate-snippets-context-menu/styles.shadow.css","webpack:///./src/page-arch-node/styles.shadow.css","webpack:///./src/pre-generated-container/styles.shadow.css","webpack:///./src/pre-generated-preview/preview.shadow.css","webpack:///./src/pre-generated-preview/styles.shadow.css","webpack:///./src/pre-generated-table-view/styles.shadow.css","webpack:///./src/raw-data-preview/preview.shadow.css","webpack:///./src/raw-data-preview/styles.shadow.css","webpack:///./src/shared/scrollbar.shadow.css","webpack:///./src/workbench-action-list/workbench-action-list.shadow.css","webpack:///./src/workbench-action/workbench-action.shadow.css","webpack:///./src/workbench-history-action/styles.shadow.css","webpack:///./src/workbench-pane/workbench-pane.shadow.css","webpack:///./src/workbench-sidebar/workbench-sidebar.shadow.css","webpack:///../../shared/markdown/dist/esm/prism-tomorrow.css","webpack:///../../node_modules/path-to-regexp/dist.es2015/index.js"],"sourcesContent":["import React, {\n useEffect,\n useRef,\n useState,\n useCallback,\n useMemo,\n} from \"react\";\nimport { createDecorators, EventEmitter } from \"@next-core/element\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport styleText from \"./workbench-pane.shadow.css\";\nimport sharedStyle from \"../shared/scrollbar.shadow.css\";\nimport { debounceByAnimationFrame } from \"@next-shared/general/debounceByAnimationFrame\";\nimport classNames from \"classnames\";\n\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\n\nconst { defineElement, property, event } = createDecorators();\n\nexport interface WorkbenchPaneProps {\n titleLabel?: string;\n active?: boolean;\n badge?: number;\n onActiveChange?(active: boolean): void;\n onFirstActivated?(): void;\n}\n\n/**\n * @insider\n */\n@defineElement(\"visual-builder.workbench-pane\", {\n styleTexts: [styleText, sharedStyle],\n})\nclass WorkbenchPane extends ReactNextElement {\n @property() accessor titleLabel: string | undefined;\n\n @property({ type: Boolean }) accessor active: boolean | undefined;\n\n @property({ type: Number }) accessor badge: number | undefined;\n\n @event({ type: \"active.change\" })\n accessor #activeChangeEvent: EventEmitter<boolean>;\n #handleActiveChange = (active: boolean): void => {\n if (active !== this.active) {\n this.active = active;\n this.#activeChangeEvent.emit(active);\n }\n };\n\n @event({ type: \"active.firstActivated\" })\n accessor #activeFirstActivatedEvent: EventEmitter<void>;\n\n #handleActiveFirstActivated = (): void => {\n this.#activeFirstActivatedEvent.emit();\n };\n\n render() {\n return (\n <WorkbenchPaneComponent\n titleLabel={this.titleLabel}\n active={this.active}\n badge={this.badge}\n onActiveChange={this.#handleActiveChange}\n onFirstActivated={this.#handleActiveFirstActivated}\n />\n );\n }\n}\n\nfunction WorkbenchPaneComponent({\n titleLabel,\n active,\n badge,\n onActiveChange,\n onFirstActivated,\n}: WorkbenchPaneProps) {\n const [internalActive, setInternalActive] = useState<boolean>(active);\n const [activatedOnce, setActivatedOnce] = useState(false);\n\n useEffect(() => {\n setInternalActive(active);\n }, [active]);\n\n useEffect(() => {\n onActiveChange?.(internalActive);\n }, [internalActive, onActiveChange]);\n\n const handleClick = useCallback(() => {\n setInternalActive((previousActive) => !previousActive);\n if (!activatedOnce && !internalActive) {\n setActivatedOnce(true);\n onFirstActivated?.();\n }\n }, [activatedOnce, internalActive, onFirstActivated]);\n\n const scrollBodyRef = useRef<HTMLDivElement>();\n\n const [scrolled, setScrolled] = useState(false);\n\n const handleScroll = useMemo(\n () =>\n debounceByAnimationFrame((): void => {\n setScrolled(scrollBodyRef.current.scrollTop > 0);\n }),\n []\n );\n\n return (\n <div\n className={classNames(\"pane\", {\n scrolled,\n })}\n >\n <div className=\"pane-header\" tabIndex={0} onClick={handleClick}>\n <div className=\"pane-title\">\n <span className=\"title-icon\">\n {internalActive ? (\n <WrappedIcon lib=\"antd\" theme=\"outlined\" icon=\"down\" />\n ) : (\n <WrappedIcon lib=\"antd\" theme=\"outlined\" icon=\"right\" />\n )}\n </span>\n <div className=\"title-label\">{titleLabel}</div>\n <slot name=\"title\" />\n </div>\n <slot name=\"actions\" />\n {badge && <div className=\"badge\">{badge}</div>}\n <div className=\"pane-scroll-shadow\"></div>\n </div>\n <div\n className=\"pane-body custom-scrollbar-container\"\n onScroll={handleScroll}\n ref={scrollBodyRef}\n >\n <slot>\n <div\n style={{\n padding: \"10px 20px\",\n color: \"var(--text-color-secondary)\",\n }}\n >\n No content\n </div>\n </slot>\n </div>\n </div>\n );\n}\n\nexport { WorkbenchPane };\n","export type SimpleFunction<P extends unknown[] = unknown[], R = unknown> = (\n ...args: P\n) => R;\n\n// The debounce function receives our function as a parameter\nexport function debounceByAnimationFrame<P extends unknown[]>(\n fn: SimpleFunction<P, void>\n): SimpleFunction<P, void> & { cancel: () => void } {\n // This holds the requestAnimationFrame reference, so we can cancel it if we wish\n let frame: number;\n\n const cancel = () => cancelAnimationFrame(frame);\n\n // The debounce function returns a new function that can receive a variable number of arguments\n const func = (...params: P) => {\n // If the frame variable has been defined, clear it now, and queue for next frame\n if (frame) {\n cancel();\n }\n\n // Queue our function call for the next frame\n frame = requestAnimationFrame(() => {\n // Call our function and pass any params we received\n fn(...params);\n });\n };\n\n func.cancel = cancel;\n\n return func;\n}\n","import React from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport styleText from \"./workbench-sidebar.shadow.css\";\n\ninterface WorkbenchSidebarProps {\n titleLabel: string;\n refCallback: (element: HTMLDivElement) => void;\n}\ninterface WorkbenchSidebarChildElement extends HTMLElement {\n active?: boolean;\n activeFlex?: string;\n}\n\nconst { defineElement, property } = createDecorators();\n\n/**\n * @insider\n */\n@defineElement(\"visual-builder.workbench-sidebar\", {\n styleTexts: [styleText],\n})\nclass WorkbenchSidebar extends ReactNextElement {\n @property() accessor titleLabel: string | undefined;\n\n #getPaneSlot = (): HTMLSlotElement => {\n return this.shadowRoot?.querySelector(\"slot:not([name])\");\n };\n\n #reflowPanes = (): void => {\n const slot = this.#getPaneSlot();\n const panes = slot.assignedNodes() as WorkbenchSidebarChildElement[];\n\n for (const pane of panes) {\n if (pane.active) {\n pane.style.flex = String(pane.activeFlex ?? \"1\");\n } else {\n pane.style.flex = \"initial\";\n }\n }\n };\n\n #onPanesSlotChange = (event: Event): void => {\n const slot = event.target as HTMLSlotElement;\n const panes = slot.assignedNodes();\n for (const pane of panes) {\n pane.addEventListener(\"active.change\", this.#reflowPanes);\n }\n };\n\n refCallback = () => {\n this.#reflowPanes();\n const panesSlots = this.#getPaneSlot();\n\n panesSlots?.addEventListener(\"slotchange\", (e) => {\n this.#onPanesSlotChange(e);\n });\n };\n\n render() {\n return (\n <WorkbenchSidebarComponent\n titleLabel={this.titleLabel}\n refCallback={this.refCallback}\n />\n );\n }\n}\n\nfunction WorkbenchSidebarComponent({\n titleLabel,\n refCallback,\n}: WorkbenchSidebarProps) {\n return (\n <div className=\"sidebar\" ref={refCallback}>\n <div className=\"title-container\">\n <div className=\"title-label\">{titleLabel}</div>\n <slot name=\"titleToolbar\" />\n </div>\n <div className=\"pane-container\">\n <slot />\n </div>\n </div>\n );\n}\n\nexport { WorkbenchSidebar };\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[0].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./host-context.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[0].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./host-context.css\";\n export default content && content.locals ? content.locals : undefined;\n","import React from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport type { Link, LinkProps } from \"@next-bricks/basic/link\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport type { EoTooltip, ToolTipProps } from \"@next-bricks/basic/tooltip\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport classNames from \"classnames\";\nimport \"./host-context.css\";\nimport styleText from \"./workbench-action.shadow.css\";\n\nconst { defineElement, property } = createDecorators();\n\nconst WrapLink = wrapBrick<Link, LinkProps>(\"eo-link\");\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nconst WrappedTooltip = wrapBrick<EoTooltip, ToolTipProps>(\"eo-tooltip\");\n\nexport interface WorkbenchActionProps {\n icon?: GeneralIconProps;\n to?: string;\n target?: string;\n active?: boolean;\n href?: string;\n tooltip?: string;\n}\n\n/**\n * @insider\n */\nexport\n@defineElement(\"visual-builder.workbench-action\", {\n styleTexts: [styleText],\n})\nclass WorkbenchAction extends ReactNextElement {\n @property({\n attribute: false,\n })\n accessor icon: GeneralIconProps | undefined;\n\n @property() accessor to: string | undefined;\n\n @property({\n type: Boolean,\n })\n accessor active: boolean | undefined;\n\n @property() accessor href: string | undefined;\n\n @property() accessor target: string | undefined;\n\n @property() accessor tooltip: string | undefined;\n\n render(): React.ReactNode {\n return (\n <WorkbenchActionComponent\n to={this.to}\n icon={this.icon}\n active={this.active}\n href={this.href}\n target={this.target}\n tooltip={this.tooltip}\n />\n );\n }\n}\n\nfunction WorkbenchActionComponent({\n icon,\n to,\n active,\n href,\n target,\n tooltip,\n}: WorkbenchActionProps) {\n return (\n <WrappedTooltip content={tooltip} placement=\"right\">\n <WrapLink\n className={classNames(\"action\", { active })}\n url={to}\n href={href}\n target={target as LinkProps[\"target\"]}\n >\n <WrappedIcon {...icon} />\n </WrapLink>\n </WrappedTooltip>\n );\n}\n","import { Location, parsePath } from \"history\";\nimport { matchPath } from \"@next-core/runtime\";\nimport type {\n SidebarMenuSimpleItem,\n SidebarMenuItem,\n SidebarMenuGroup,\n} from \"./types.js\";\nimport { isObject } from \"lodash\";\n\nexport function isGroup(item: SidebarMenuItem): item is SidebarMenuGroup {\n return item.type === \"group\";\n}\n\nexport function isSubMenu(\n item: SidebarMenuItem,\n groupAsSubMenu?: boolean\n): item is SidebarMenuGroup {\n return Boolean(\n item.type === \"subMenu\" || (groupAsSubMenu && item.type === \"group\")\n );\n}\n\nexport function initMenuItemAndMatchCurrentPathKeys(\n menuItems: SidebarMenuItem[],\n pathname: string,\n search: string,\n parentCursor: string\n): {\n selectedKeys: string[];\n openedKeys: string[];\n matchedKeys: string[];\n} {\n const selectedKeys: string[] = [];\n const openedKeys: string[] = [];\n const matchedKeys: string[] = [];\n\n let cursor = 0;\n menuItems &&\n menuItems.forEach((item) => {\n // key的格式最终为0,1,2,0.1,0.2,0.1.1,0.1.2\n item.key =\n parentCursor === \"\" ? `${cursor}` : `${parentCursor}.${cursor}`;\n if (isGroup(item) || isSubMenu(item)) {\n const tmp = initMenuItemAndMatchCurrentPathKeys(\n item.items,\n pathname,\n search,\n item.key\n );\n selectedKeys.push(...tmp.selectedKeys);\n if (tmp.selectedKeys.length || item.defaultExpanded) {\n openedKeys.push(item.key);\n }\n openedKeys.push(...tmp.openedKeys);\n matchedKeys.push(...tmp.matchedKeys);\n } else {\n if (matchMenuItem(item, pathname, search)) {\n selectedKeys.push(String(item.key));\n\n const keyPath = item.key.split(\".\");\n\n for (let i = 0; i < keyPath.length; i++) {\n matchedKeys.push(keyPath.slice(0, i + 1).join(\".\"));\n }\n }\n }\n cursor += 1;\n });\n if (selectedKeys.length && parentCursor !== \"\") {\n openedKeys.push(parentCursor);\n }\n return {\n selectedKeys: selectedKeys,\n openedKeys: openedKeys,\n matchedKeys: matchedKeys,\n };\n}\n\nfunction getMatchOfSearch(\n currentSearch: string,\n toSearch: string | undefined\n): boolean {\n const current = new URLSearchParams(currentSearch);\n const to = new URLSearchParams(toSearch);\n for (const [key, value] of to.entries()) {\n // Allow `?k=` to match `?` (when `k` doesn't exist)\n if ((current.get(key) ?? \"\") !== value) {\n return false;\n }\n }\n return true;\n}\n\nexport function matchMenuItem(\n item: SidebarMenuSimpleItem,\n pathname: string,\n search: string\n): boolean {\n if (!item.to) return false;\n const to = typeof item.to === \"object\" ? item.to : parsePath(item.to);\n\n // Regex taken from: https://github.com/pillarjs/path-to-regexp/blob/master/index.js#L202\n const escapedPath = to.pathname!.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, \"\\\\$1\");\n\n let match = !!matchPath(pathname, {\n path: escapedPath,\n exact: item.exact,\n });\n\n if (match && item.activeMatchSearch) {\n match = getMatchOfSearch(search, to.search);\n }\n\n if (!match && Array.isArray(item.activeIncludes)) {\n for (const include of item.activeIncludes) {\n let paths: string[];\n let exact: boolean | undefined = true;\n\n if (isObject(include)) {\n paths = Array.isArray(include.path) ? include.path : [include.path];\n exact = include.exact;\n } else {\n paths = [include];\n }\n\n for (const path of paths) {\n let parsedPath: Location | undefined;\n const hasSearch = path.includes(\"?\");\n\n if (hasSearch) {\n parsedPath = parsePath(path);\n }\n match = !!matchPath(pathname, {\n path: hasSearch ? parsedPath!.pathname : path,\n exact,\n });\n\n if (match && parsedPath?.search) {\n match = getMatchOfSearch(search, parsedPath.search);\n }\n\n if (match) {\n break;\n }\n }\n\n if (match) {\n break;\n }\n }\n }\n\n if (match && Array.isArray(item.activeExcludes)) {\n for (const include of item.activeExcludes) {\n let paths: string[];\n let exact: boolean | undefined = true;\n\n if (isObject(include)) {\n paths = Array.isArray(include.path) ? include.path : [include.path];\n exact = include.exact;\n } else {\n paths = [include];\n }\n\n for (const path of paths) {\n match = !matchPath(pathname, {\n path,\n exact,\n });\n\n if (!match) {\n break;\n }\n }\n\n if (!match) {\n break;\n }\n }\n }\n\n return match;\n}\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[0].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./host-context.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[0].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./host-context.css\";\n export default content && content.locals ? content.locals : undefined;\n","import React, { useState, useEffect } from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { getHistory } from \"@next-core/runtime\";\nimport {\n WorkbenchAction,\n WorkbenchActionProps,\n} from \"../workbench-action/index.js\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport { initMenuItemAndMatchCurrentPathKeys } from \"@next-shared/general/menu\";\nimport {\n SidebarMenuSimpleItem,\n SidebarMenuItem,\n} from \"@next-shared/general/types\";\nimport { GeneralIconProps } from \"@next-bricks/icons/general-icon\";\nimport \"./host-context.css\";\nimport styleText from \"./workbench-action-list.shadow.css\";\n\nexport interface SidebarMenu {\n title?: string;\n icon?: GeneralIconProps;\n menuItems?: SidebarMenuItem[];\n}\n\nconst WrapperWorkbenchAction = wrapBrick<WorkbenchAction, WorkbenchActionProps>(\n \"visual-builder.workbench-action\"\n);\n\nconst { defineElement, property } = createDecorators();\n\ninterface WorkbenchActionListProps {\n appId?: string;\n menu: SidebarMenu;\n}\n\n/**\n * @insider\n */\n@defineElement(\"visual-builder.workbench-action-list\", {\n styleTexts: [styleText],\n})\nclass WorkbenchActionList extends ReactNextElement {\n @property() accessor appId: string | undefined;\n\n @property({\n attribute: false,\n })\n accessor menu!: SidebarMenu;\n\n render(): React.ReactNode {\n return <WorkbenchActionListComponent appId={this.appId} menu={this.menu} />;\n }\n}\n\nlet currentAppId: string;\nconst historyMap = new Map<number, string>();\n\nexport function WorkbenchActionListComponent({\n appId,\n menu,\n}: WorkbenchActionListProps) {\n const history = getHistory();\n const [activeIndex, setActiveIndex] = useState<number>();\n const [location, setLocation] = useState(history.location);\n\n useEffect(() => {\n const unlisten = history.listen((location) => {\n setLocation(location);\n });\n return unlisten;\n }, [history]);\n\n useEffect(() => {\n if (!currentAppId) currentAppId = appId;\n if (currentAppId !== appId) {\n historyMap.clear();\n currentAppId = appId;\n }\n }, [appId]);\n\n useEffect(() => {\n const { pathname, search } = location;\n\n const { selectedKeys } = initMenuItemAndMatchCurrentPathKeys(\n menu?.menuItems ?? [],\n pathname,\n search,\n \"\"\n );\n setActiveIndex(Number(selectedKeys[0]));\n }, [menu, location]);\n\n const handleLinkClick = (item: SidebarMenuItem): void => {\n if ((item as SidebarMenuSimpleItem).href) return;\n historyMap.set(activeIndex, `${location.pathname}${location.search}`);\n };\n\n const isSimpleMenuItem = (\n item: SidebarMenuItem\n ): item is SidebarMenuSimpleItem => {\n return item.type === \"default\" || !item.type;\n };\n\n return (\n <>\n {menu?.menuItems\n ?.map((item, index) => {\n if (isSimpleMenuItem(item)) {\n let url = item.to;\n if (activeIndex !== index && historyMap.has(index)) {\n url = historyMap.get(index);\n }\n return (\n <WrapperWorkbenchAction\n key={index}\n icon={item.icon}\n to={url as string}\n href={item.href}\n target={item.target}\n tooltip={item.text}\n active={activeIndex === index}\n onClick={() => handleLinkClick(item)}\n />\n );\n }\n })\n .filter(Boolean)}\n </>\n );\n}\n\nexport { WorkbenchActionList };\n","import React from \"react\";\nimport { pick } from \"lodash\";\nimport { EventEmitter, createDecorators } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport type {\n ActionClickDetail,\n WorkbenchNodeData,\n WorkbenchTreeAction,\n} from \"../interfaces.js\";\nimport { WorkbenchActionsContext } from \"../shared/workbench/WorkbenchActionsContext.js\";\nimport {\n WorkbenchTree,\n dropEmitProps,\n} from \"../shared/workbench/WorkbenchTree.js\";\nimport { WorkbenchTreeContext } from \"../shared/workbench/WorkbenchTreeContext.js\";\nimport { deepMatch } from \"../utils/deepMatch.js\";\nimport treeStyleText from \"./WorkbenchTree.shadow.css\";\nimport actionStyleText from \"../shared/workbench-mini-action-bar/WorkbenchMiniActionBar.shadow.css\";\nimport \"@next-core/theme\";\n\nfunction defaultGetCollapsedId(node: WorkbenchNodeData): string | number {\n return node.key;\n}\n\nconst { defineElement, property, event } = createDecorators();\n\n/**\n * @id next-builder.workbench-tree\n * @author steve\n * @history\n * 1.x.0: 新增构件 `next-builder.workbench-tree`\n * @docKind brick\n * @noInheritDoc\n * @insider\n */\n@defineElement(\"visual-builder.workbench-tree\", {\n styleTexts: [treeStyleText, actionStyleText],\n})\nclass WorkbenchTreeElement extends ReactNextElement {\n @property({ attribute: false })\n accessor nodes: WorkbenchNodeData[];\n\n @property({ attribute: false })\n accessor actions: WorkbenchTreeAction[];\n\n @property({ type: Boolean })\n accessor actionsHidden: boolean;\n\n @property()\n accessor placeholder: string;\n\n @property({ type: Boolean })\n accessor isTransformName: boolean;\n\n @property()\n accessor searchPlaceholder: string;\n\n @property({ type: Boolean })\n accessor noSearch: boolean;\n\n @property({ attribute: false })\n accessor activeKey: string | number;\n\n @property({ type: Boolean })\n accessor showMatchedNodeOnly: boolean;\n\n @property({ attribute: false })\n accessor matchNodeDataFields: string | string[];\n\n @property({ attribute: false })\n accessor fixedActionsFor: Record<string, unknown> | Record<string, unknown>[];\n\n @property({ type: Boolean })\n accessor collapsible: boolean;\n\n @property({ attribute: false })\n accessor collapsedNodes: string[];\n\n @property({ type: Boolean })\n accessor allowDrag: boolean;\n\n @property({ type: Boolean })\n accessor allowDragToRoot: boolean;\n\n @property({ type: Boolean })\n accessor allowDragToInside: boolean;\n\n @property({ type: String })\n accessor nodeKey: string;\n\n @property({ type: Boolean })\n accessor skipNotify: boolean;\n\n @event({ type: \"action.click\" })\n accessor #actionClickEvent!: EventEmitter<ActionClickDetail>;\n\n #handleActionClick = (detail: ActionClickDetail): void => {\n this.#actionClickEvent.emit(detail);\n };\n\n @event({ type: \"node.click\" })\n accessor #nodeClickEvent: EventEmitter<unknown>;\n\n #nodeClickFactory = (node: WorkbenchNodeData) => () => {\n this.#nodeClickEvent.emit(node.data);\n };\n\n @event({ type: \"node.drop\" })\n accessor #nodeDropEvent: EventEmitter<any>;\n\n #handleNodeDrop = (detail: dropEmitProps): void => {\n this.#nodeDropEvent.emit(detail);\n };\n\n @event({ type: \"context.menu\" })\n accessor #nodeContextMenuEvent: EventEmitter<unknown>;\n\n #contextMenuFactory = (node: WorkbenchNodeData) => (e: React.MouseEvent) => {\n e.preventDefault();\n this.#nodeContextMenuEvent.emit({\n active: true,\n node: node?.data,\n x: e.clientX,\n y: e.clientY,\n });\n };\n\n @event({ type: \"node.toggle\" })\n accessor #nodeToggleEvent: EventEmitter<{\n nodeId: string;\n collapsed: boolean;\n }>;\n\n #handleNodeToggle = (nodeId: string, collapsed: boolean): void => {\n this.#nodeToggleEvent.emit({ nodeId, collapsed });\n };\n\n render() {\n return (\n <WorkbenchActionsContext.Provider\n value={{\n actions: this.actions,\n actionsHidden: this.actionsHidden,\n onActionClick: this.#handleActionClick,\n }}\n >\n <WorkbenchTreeContext.Provider\n value={{\n activeKey: this.activeKey,\n basePaddingLeft: 5,\n showMatchedNodeOnly: this.showMatchedNodeOnly,\n isTransformName: this.isTransformName,\n fixedActionsFor: this.fixedActionsFor,\n nodeKey: this.nodeKey,\n collapsible: this.collapsible,\n collapsedNodes: this.collapsedNodes,\n getCollapsedId: defaultGetCollapsedId,\n onNodeToggle: this.#handleNodeToggle,\n skipNotify: this.skipNotify,\n clickFactory: this.#nodeClickFactory,\n contextMenuFactory: this.#contextMenuFactory,\n matchNode: (node, lowerTrimmedQuery) =>\n deepMatch(node.name, lowerTrimmedQuery) ||\n (!!this.matchNodeDataFields?.length &&\n deepMatch(\n this.matchNodeDataFields === \"*\"\n ? node.data\n : pick(node.data, this.matchNodeDataFields),\n lowerTrimmedQuery\n )),\n }}\n >\n <WorkbenchTree\n nodes={this.nodes}\n placeholder={this.placeholder}\n searchPlaceholder={this.searchPlaceholder}\n noSearch={this.noSearch}\n dropEmit={this.#handleNodeDrop}\n allowDrag={this.allowDrag}\n allowDragToInside={this.allowDragToInside}\n allowDragToRoot={this.allowDragToRoot}\n />\n </WorkbenchTreeContext.Provider>\n </WorkbenchActionsContext.Provider>\n );\n }\n}\n\nexport { WorkbenchTreeElement };\n","export enum K {\n LOAD_MORE = \"LOAD_MORE\",\n LOADING = \"LOADING\",\n NO_DATA = \"NO_DATA\",\n NODE = \"NODE\",\n // action\n ADD = \"ADD\",\n EDIT = \"EDIT\",\n DELETE = \"DELETE\",\n IMPORT = \"IMPORT\",\n CLONE = \"CLONE\",\n APPEND_RELATION = \"APPEND_RELATION\",\n UPDATE_RELATION = \"UPDATE_RELATION\",\n REMOVE_RELATION = \"REMOVE_RELATION\",\n ROLLBACK = \"ROLLBACK\",\n ROLLBACK_ALL = \"ROLLBACK_ALL\",\n ADD_FULL = \"ADD_FULL\",\n EDIT_FULL = \"EDIT_FULL\",\n DELETE_FULL = \"DELETE_FULL\",\n IMPORT_FULL = \"IMPORT_FULL\",\n CLONE_FULL = \"CLONE_FULL\",\n APPEND_RELATION_FULL = \"APPEND_RELATION_FULL\",\n UPDATE_RELATION_FULL = \"UPDATE_RELATION_FULL\",\n REMOVE_RELATION_FULL = \"REMOVE_RELATION_FULL\",\n ROLLBACK_FULL = \"ROLLBACK_FULL\",\n ROLLBACK_ALL_FULL = \"ROLLBACK_ALL_FULL\",\n // category\n PROJECT = \"PROJECT\",\n USER = \"USER\",\n PERMISSION = \"PERMISSION\",\n BRICK = \"BRICK\",\n ROUTE = \"ROUTE\",\n TEMPLATE = \"TEMPLATE\",\n SNIPPET = \"SNIPPET\",\n I18N = \"I18N\",\n IMAGE = \"IMAGE\",\n FUNCTION = \"FUNCTION\",\n MENU = \"MENU\",\n MENU_ITEM = \"MENU_ITEM\",\n WORKFLOW = \"WORKFLOW\",\n}\n\nconst en: Locale = {\n LOAD_MORE: \"Load more\",\n LOADING: \"Loading\",\n NO_DATA: \"No data\",\n NODE: \"{{ nodes }}\",\n NODE_ellipsis: \"{{ nodes }} etc., a total of {{ count }} items\",\n // action\n ADD: \"Add node\",\n EDIT: \"Edit node\",\n DELETE: \"Delete node\",\n IMPORT: \"Batch import node\",\n CLONE: \"Clone node\",\n APPEND_RELATION: \"Append Relation\",\n UPDATE_RELATION: \"Update Relation\",\n REMOVE_RELATION: \"Remove Relation\",\n ROLLBACK: \"Rollback\",\n ROLLBACK_ALL: \"Rollback all operations\",\n ADD_FULL: \"Add {{ category }} ({{ nodes }})\",\n EDIT_FULL: \"Edit {{ nodeChanges }} of {{ category }} ({{ nodes }})\",\n DELETE_FULL: \"Delete {{ category }} ({{ nodes }})\",\n IMPORT_FULL: \"Batch Import {{ category }} ({{ nodes }})\",\n CLONE_FULL: \"Clone {{ category }} ({{ nodes }})\",\n APPEND_RELATION_FULL:\n \"Append the relation between {{ leftObjectId }} ({{ leftNodes }}) and {{ rightObjectId }} ({{ rightNodes }})\",\n UPDATE_RELATION_FULL:\n \"Update the relation between {{ leftObjectId }} ({{ leftNodes }}) and {{ rightObjectId }} ({{ rightNodes }})\",\n REMOVE_RELATION_FULL:\n \"Remove the relation between {{ leftObjectId }} ({{ leftNodes }}) and {{ rightObjectId }} ({{ rightNodes }})\",\n ROLLBACK_FULL: \"Rollback to [{{ rollbackAbstract }}]\",\n ROLLBACK_ALL_FULL: \"Rollback all operations\",\n // category\n PROJECT: \"Project\",\n USER: \"User Group\",\n PERMISSION: \"Permission\",\n BRICK: \"Brick\",\n ROUTE: \"Route\",\n TEMPLATE: \"Template\",\n SNIPPET: \"Snippet\",\n I18N: \"I18N\",\n IMAGE: \"Image\",\n FUNCTION: \"Function\",\n MENU: \"Menu\",\n MENU_ITEM: \"Menu item\",\n WORKFLOW: \"Workflow\",\n};\n\nconst zh: Locale = {\n LOAD_MORE: \"加载更多\",\n LOADING: \"加载中\",\n NO_DATA: \"没有数据\",\n NODE: \"{{ nodes }}\",\n NODE_ellipsis: \"{{ nodes }}等共{{ count }}项\",\n // action\n ADD: \"新增节点\",\n EDIT: \"编辑节点\",\n DELETE: \"删除节点\",\n IMPORT: \"批量导入节点\",\n CLONE: \"克隆节点\",\n APPEND_RELATION: \"添加关系\",\n UPDATE_RELATION: \"更新关系\",\n REMOVE_RELATION: \"移除关系\",\n ROLLBACK: \"回滚\",\n ROLLBACK_ALL: \"回滚全部操作\",\n ADD_FULL: \"新增{{ category }}({{ nodes }})\",\n EDIT_FULL: \"编辑{{ category }}({{ nodes }})的 {{ nodeChanges }}\",\n DELETE_FULL: \"删除{{ category }}({{ nodes }})\",\n IMPORT_FULL: \"批量导入{{ category }}({{ nodes }})\",\n CLONE_FULL: \"克隆{{ category }}({{ nodes }})\",\n APPEND_RELATION_FULL:\n \"添加{{ leftObjectId }}({{ leftNodes }})和{{ rightObjectId }}({{ rightNodes }})的关系\",\n UPDATE_RELATION_FULL:\n \"更新{{ leftObjectId }}({{ leftNodes }})和{{ rightObjectId }}({{ rightNodes }})的关系\",\n REMOVE_RELATION_FULL:\n \"移除{{ leftObjectId }}({{ leftNodes }})和{{ rightObjectId }}({{ rightNodes }})的关系\",\n ROLLBACK_FULL: \"回滚到【{{ rollbackAbstract }}】\",\n ROLLBACK_ALL_FULL: \"回滚全部操作\",\n // category\n PROJECT: \"项目\",\n USER: \"用户组\",\n PERMISSION: \"权限点\",\n BRICK: \"构件\",\n ROUTE: \"路由\",\n TEMPLATE: \"模版\",\n SNIPPET: \"片段\",\n I18N: \"国际化\",\n IMAGE: \"图片\",\n FUNCTION: \"函数\",\n MENU: \"菜单\",\n MENU_ITEM: \"菜单项\",\n WORKFLOW: \"工作流\",\n};\n\nexport const NS = \"bricks/visual-builder/workbench-history-action\";\n\nexport const locales = { en, zh };\n\ntype Locale = { [k in K]: string } & {\n [k in K as `${k}_plural`]?: string;\n} & { NODE_ellipsis: string };\n","import _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/asyncToGenerator\";\nimport { http } from \"@next-core/http\";\n/**\n * @description 获取变更历史(从上一次commit开始)\n * @endpoint GET /api/v1/next-builder/workspace/:appId/changes\n */\nexport var WorkspaceApi_getChangeHistory = /*#__PURE__*/function () {\n var _ref = _asyncToGenerator(function* (appId, params, options) {\n return (/**! @contract easyops.api.next_builder.workspace.GetChangeHistory@1.0.0 */(yield http.get(\"api/gateway/next_builder.workspace.GetChangeHistory/api/v1/next-builder/workspace/\".concat(appId, \"/changes\"), _objectSpread(_objectSpread({}, options), {}, {\n params\n }))).data\n );\n });\n return function WorkspaceApi_getChangeHistory(_x, _x2, _x3) {\n return _ref.apply(this, arguments);\n };\n}();\n//# sourceMappingURL=getChangeHistory.js.map","import { NS, K } from \"./i18n.js\";\nimport { i18n } from \"@next-core/i18n\";\nimport { NextBuilderModels } from \"@next-api-sdk/next-builder-sdk\";\n\nconst actionI18nKeyMap: Record<string, string> = {\n add: `${NS}:${K.ADD}`,\n edit: `${NS}:${K.EDIT}`,\n delete: `${NS}:${K.DELETE}`,\n batch_delete: `${NS}:${K.DELETE}`,\n import: `${NS}:${K.IMPORT}`,\n clone: `${NS}:${K.CLONE}`,\n append_relation: `${NS}:${K.APPEND_RELATION}`,\n update_relation: `${NS}:${K.UPDATE_RELATION}`,\n remove_relation: `${NS}:${K.REMOVE_RELATION}`,\n rollback: `${NS}:${K.ROLLBACK}`,\n rollback_all: `${NS}:${K.ROLLBACK_ALL}`,\n};\n\nconst fullActionI18nKeyMap: Record<string, string> = {\n add: `${NS}:${K.ADD_FULL}`,\n edit: `${NS}:${K.EDIT_FULL}`,\n delete: `${NS}:${K.DELETE_FULL}`,\n batch_delete: `${NS}:${K.DELETE_FULL}`,\n import: `${NS}:${K.IMPORT_FULL}`,\n clone: `${NS}:${K.CLONE_FULL}`,\n append_relation: `${NS}:${K.APPEND_RELATION_FULL}`,\n update_relation: `${NS}:${K.UPDATE_RELATION_FULL}`,\n remove_relation: `${NS}:${K.REMOVE_RELATION_FULL}`,\n rollback: `${NS}:${K.ROLLBACK_FULL}`,\n rollback_all: `${NS}:${K.ROLLBACK_ALL_FULL}`,\n};\n\nconst categoryI18nKeyMap: Record<string, string> = {\n project: `${NS}:${K.PROJECT}`,\n userGroup: `${NS}:${K.USER}`,\n permission: `${NS}:${K.PERMISSION}`,\n brick: `${NS}:${K.BRICK}`,\n route: `${NS}:${K.ROUTE}`,\n template: `${NS}:${K.TEMPLATE}`,\n snippet: `${NS}:${K.SNIPPET}`,\n i18n: `${NS}:${K.I18N}`,\n image: `${NS}:${K.IMAGE}`,\n function: `${NS}:${K.FUNCTION}`,\n menu: `${NS}:${K.MENU}`,\n menuItem: `${NS}:${K.MENU_ITEM}`,\n workflow: `${NS}:${K.WORKFLOW}`,\n};\n\nconst modelI18nKeyMap: Record<string, string> = {\n PROJECT_MICRO_APP: `${NS}:${K.PROJECT}`,\n \"MICRO_APP_USER_GROUP@EASYOPS\": `${NS}:${K.USER}`,\n MICRO_APP_RESOURCE_PERMISSION: `${NS}:${K.PERMISSION}`,\n STORYBOARD_BRICK: `${NS}:${K.BRICK}`,\n STORYBOARD_ROUTE: `${NS}:${K.ROUTE}`,\n STORYBOARD_TEMPLATE: `${NS}:${K.TEMPLATE}`,\n STORYBOARD_SNIPPET: `${NS}:${K.SNIPPET}`,\n STORYBOARD_I18N: `${NS}:${K.I18N}`,\n MICRO_APP_RESOURCE_IMAGE: `${NS}:${K.IMAGE}`,\n STORYBOARD_FUNCTION: `${NS}:${K.FUNCTION}`,\n MICRO_APP_RESOURCE_MENU: `${NS}:${K.MENU}`,\n MICRO_APP_RESOURCE_MENU_ITEM: `${NS}:${K.MENU_ITEM}`,\n \"WORKFLOW_DEF@EASYOPS\": `${NS}:${K.WORKFLOW}`,\n};\n\nexport function translateHistory(\n history: Partial<NextBuilderModels.ModelWorkspaceChangeHistory>\n): Record<string, string> {\n const historyAction =\n history.action === \"rollback\" && !history.rollBackIdInfo\n ? \"rollback_all\"\n : history.action;\n\n const category = i18n.t(\n categoryI18nKeyMap[history.category] ?? history.category\n );\n const action = i18n.t(actionI18nKeyMap[historyAction] ?? historyAction);\n const leftObjectId = i18n.t(\n modelI18nKeyMap[history.abstract?.leftObjectId] ??\n history.abstract?.leftObjectId\n );\n const rightObjectId = i18n.t(\n modelI18nKeyMap[history.abstract?.rightObjectId] ??\n history.abstract?.rightObjectId\n );\n const nodes = translateNodes(\n history.abstract?.nodes,\n history.abstract?.nodesCount\n );\n const leftNodes = translateNodes(\n history.abstract?.leftNodes,\n history.abstract?.leftNodesCount\n );\n const rightNodes = translateNodes(\n history.abstract?.rightNodes,\n history.abstract?.rightNodesCount\n );\n const rollbackAbstract =\n historyAction === \"rollback\"\n ? translateHistory(history.rollBackIdInfo).abstract\n : null;\n\n const abstract = i18n.t(\n fullActionI18nKeyMap[historyAction] ?? historyAction,\n {\n category,\n nodes,\n leftNodes,\n rightNodes,\n nodeChanges: history.abstract?.nodeChanges?.join(\", \"),\n relationChanges: history.abstract?.relationChanges?.join(\", \"),\n leftObjectId,\n rightObjectId,\n rollbackAbstract,\n }\n );\n\n return {\n category,\n action,\n leftObjectId,\n rightObjectId,\n nodes,\n leftNodes,\n rightNodes,\n abstract,\n rollbackAbstract,\n };\n}\n\nfunction translateNodes(nodes: string[] = [], total: number, separator = \", \") {\n return i18n.t(`${NS}:${K.NODE}`, {\n nodes: nodes.join(separator),\n context: total > nodes.length ? \"ellipsis\" : undefined,\n count: total,\n });\n}\n","import React, { useRef, useState } from \"react\";\nimport { EventEmitter, createDecorators } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport { handleHttpError } from \"@next-core/runtime\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport type { Button, ButtonProps } from \"@next-bricks/basic/button\";\nimport type {\n EoEasyopsAvatar,\n EoEasyopsAvatarProps,\n} from \"@next-bricks/basic/easyops-avatar\";\nimport type {\n Popover,\n PopoverProps,\n PopoverEvents,\n PopoverEventsMapping,\n} from \"@next-bricks/basic/popover\";\nimport type { Link, LinkProps } from \"@next-bricks/basic/link\";\nimport \"@next-core/theme\";\nimport moment from \"moment\";\nimport styleText from \"./styles.shadow.css\";\nimport { useTranslation, initializeReactI18n } from \"@next-core/i18n/react\";\nimport { K, NS, locales } from \"./i18n.js\";\nimport {\n WorkspaceApi_getChangeHistory,\n NextBuilderModels,\n} from \"@next-api-sdk/next-builder-sdk\";\nimport { translateHistory } from \"./utils.js\";\n\ninitializeReactI18n(NS, locales);\n\nconst { defineElement, property, event } = createDecorators();\n\nconst WrappedButton = wrapBrick<Button, ButtonProps>(\"eo-button\");\nconst WrappedLink = wrapBrick<Link, LinkProps>(\"eo-link\");\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nconst WrappedEasyopsAvatar = wrapBrick<EoEasyopsAvatar, EoEasyopsAvatarProps>(\n \"eo-easyops-avatar\"\n);\nconst WrappedPopover = wrapBrick<\n Popover,\n PopoverProps,\n PopoverEvents,\n PopoverEventsMapping\n>(\"eo-popover\", {\n onVisibleChange: \"visible.change\",\n beforeVisibleChange: \"before.visible.change\",\n});\n\ninterface HistoryData\n extends Partial<NextBuilderModels.ModelWorkspaceChangeHistory> {\n translation: Record<string, string>;\n}\n\nexport interface WorkbenchHistoryActionProps {\n appId: string;\n projectId: string;\n}\n\n/**\n * 项目变更历史\n * @insider\n */\nexport\n@defineElement(\"visual-builder.workbench-history-action\", {\n styleTexts: [styleText],\n})\nclass WorkbenchHistoryAction\n extends ReactNextElement\n implements WorkbenchHistoryActionProps\n{\n @property()\n accessor appId: string;\n\n @property()\n accessor projectId: string;\n\n /**\n * 点击历史项标题触发\n */\n @event({ type: \"history.item.click\" })\n accessor #historyItemClickEvent!: EventEmitter<\n HistoryData & { enableRollback: boolean }\n >;\n #handleHistoryItemClick = (\n data: HistoryData & { enableRollback: boolean }\n ): void => {\n this.#historyItemClickEvent.emit(data);\n };\n\n /**\n * 点击回滚触发\n */\n @event({ type: \"rollback\" })\n accessor #rollbackEvent!: EventEmitter<HistoryData>;\n #handleRollback = (data: HistoryData): void => {\n this.#rollbackEvent.emit(data);\n };\n\n /**\n * 回滚全部\n */\n @event({ type: \"rollback.all\" })\n accessor #rollbackAllEvent!: EventEmitter<void>;\n #handleRollbackAll = (): void => {\n this.#rollbackAllEvent.emit();\n };\n\n render() {\n return (\n <WorkbenchHistoryActionComponent\n appId={this.appId}\n projectId={this.projectId}\n onHistoryItemClick={this.#handleHistoryItemClick}\n onRollback={this.#handleRollback}\n onRollbackAll={this.#handleRollbackAll}\n />\n );\n }\n}\n\ninterface WorkbenchHistoryActionComponentProps\n extends WorkbenchHistoryActionProps {\n onHistoryItemClick?: (\n data: HistoryData & { enableRollback: boolean }\n ) => void;\n onRollback?: (data: HistoryData) => void;\n onRollbackAll?: () => void;\n}\n\nexport function WorkbenchHistoryActionComponent(\n props: WorkbenchHistoryActionComponentProps\n) {\n const { appId, onHistoryItemClick, onRollback, onRollbackAll } = props;\n const { t } = useTranslation(NS);\n\n const [loading, setLoading] = useState(false);\n const [hideLoadMore, setHideLoadMore] = useState(true);\n const [allLoaded, setAllLoaded] = useState(false);\n const [historyList, setHistoryList] = useState<HistoryData[]>([]);\n const lastTs = useRef<string>(\"\");\n\n const handleLoadList = (isFirst?: boolean) => {\n setLoading(true);\n WorkspaceApi_getChangeHistory(appId, { ts: lastTs.current, limit: 20 })\n .then((result) => {\n setHistoryList((pre) => {\n const list = result.list.map((v) => ({\n ...v,\n translation: translateHistory(v),\n }));\n return isFirst ? list : pre.concat(list);\n });\n lastTs.current = result.ts;\n setAllLoaded(result.list.length < 20);\n setHideLoadMore(result.list.length < 20);\n })\n .catch((error) => {\n handleHttpError(error);\n })\n .finally(() => {\n setLoading(false);\n });\n };\n\n const handleBeforeVisibleChange = (e: CustomEvent<boolean>) => {\n if (e.detail) {\n setHideLoadMore(true);\n setAllLoaded(false);\n setHistoryList([]);\n lastTs.current = \"\";\n handleLoadList(true);\n }\n };\n\n return (\n <WrappedPopover\n placement=\"bottom\"\n trigger=\"click\"\n arrow={true}\n arrowColor=\"var(--color-fill-bg-container-4)\"\n beforeVisibleChange={handleBeforeVisibleChange}\n >\n <WrappedButton\n slot=\"anchor\"\n shape=\"circle\"\n className=\"history-action\"\n icon={{\n lib: \"antd\",\n icon: \"history\",\n theme: \"outlined\",\n }}\n />\n <div>\n <div className=\"history-title\">History</div>\n <div className=\"history-list\">\n {historyList.length ? (\n <>\n {historyList.map((v, i) => {\n return (\n <HistoryItem\n key={`${v.uniqueKey}-${v.ts}`}\n data={v}\n enableRollback={i !== 0 && v.action !== \"rollback\"}\n current={i === 0}\n onHistoryItemClick={onHistoryItemClick}\n onRollback={onRollback}\n />\n );\n })}\n {!hideLoadMore && (\n <span className=\"load-more-container\">\n <WrappedLink\n className=\"load-more\"\n disabled={loading}\n onClick={() => handleLoadList()}\n >\n {t(K.LOAD_MORE)}\n </WrappedLink>\n </span>\n )}\n {allLoaded && (\n <span className=\"end-container\">\n The End\n <WrappedIcon\n className=\"rollback-all\"\n lib=\"antd\"\n icon=\"rollback\"\n theme=\"outlined\"\n onClick={() => onRollbackAll()}\n />\n </span>\n )}\n </>\n ) : (\n <div className=\"empty\">{loading ? t(K.LOADING) : t(K.NO_DATA)}</div>\n )}\n </div>\n {/* 点击历史详情会打开 modal 来展示,这里提供一个 slot,编排将 modal 放置在这里,使其成为 popover 的 children,才能防止用户在操作 modal 过程中意外关闭 popover */}\n <slot />\n </div>\n </WrappedPopover>\n );\n}\n\ninterface HistoryItemProps {\n data: HistoryData;\n enableRollback?: boolean;\n current?: boolean;\n onHistoryItemClick?: (\n data: HistoryData & { enableRollback: boolean }\n ) => void;\n onRollback?: (data: HistoryData) => void;\n}\n\nfunction HistoryItem(props: HistoryItemProps) {\n const { data, enableRollback, current, onHistoryItemClick, onRollback } =\n props;\n\n const ts = moment(Number(data.ts) / 1000000);\n const duration = moment.duration(ts.diff(moment()));\n const humanizedTime =\n duration.days() <= -1\n ? ts.format(\"YYYY-MM-DD HH:mm:ss\")\n : duration.humanize(true, { ss: 0, s: 60, m: 60, h: 24 });\n\n return (\n <div className=\"item-container\">\n <div className=\"item-title\">\n <div\n className=\"title-left\"\n onClick={() => onHistoryItemClick({ ...data, enableRollback })}\n >\n <div className=\"topic\" title={data.translation.abstract}>\n {data.translation.abstract}\n </div>\n {current && <div className=\"branch\">(current)</div>}\n </div>\n <div className=\"title-right\">\n {enableRollback && (\n <WrappedIcon\n className=\"rollback\"\n lib=\"antd\"\n icon=\"rollback\"\n theme=\"outlined\"\n onClick={() => onRollback(data)}\n />\n )}\n </div>\n </div>\n <div className=\"item-info\">\n <WrappedEasyopsAvatar\n className=\"avatar\"\n nameOrInstanceId={data.user}\n size=\"xs\"\n />\n <div className=\"time\">{humanizedTime}</div>\n <div className=\"operator\">{data.user}</div>\n </div>\n </div>\n );\n}\n","import React, { useCallback, useEffect, useRef, useState } from \"react\";\nimport { EventEmitter, 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 classNames from \"classnames\";\nimport styleText from \"./styles.shadow.css\";\n\nconst { defineElement, property, event } = createDecorators();\n\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nconst WrappedTooltip = wrapBrick<EoTooltip, ToolTipProps>(\"eo-tooltip\");\n\nconst autoFocusedSets = new Set<string>();\n\nexport interface PageArchNodeProps {\n label?: string;\n type?: PageArchNodeType;\n active?: boolean;\n external?: ExtraNodeData;\n subNodes?: ExtraNodeData[];\n autoFocusOnce?: string;\n notSynced?: boolean;\n disableChildAppend?: boolean;\n}\n\nexport interface ExtraNodeData {\n label: string;\n id: string;\n}\n\nexport interface SubNodeContextMenuData extends ContextMenuDetail {\n node: ExtraNodeData;\n}\n\nexport interface ContextMenuDetail {\n clientX: number;\n clientY: number;\n}\n\nexport type PageArchNodeType = \"page\" | \"board\";\n\n/**\n * 构件 `visual-builder.page-arch-node`\n */\nexport\n@defineElement(\"visual-builder.page-arch-node\", {\n styleTexts: [styleText],\n})\nclass PageArchNode extends ReactNextElement implements PageArchNodeProps {\n @property()\n accessor label: string | undefined;\n\n @property()\n accessor type: PageArchNodeType | undefined;\n\n @property({ attribute: false })\n accessor external: ExtraNodeData | undefined;\n\n @property({ attribute: false })\n accessor subNodes: ExtraNodeData[] | undefined;\n\n // @property()\n // accessor thumbnail: string | undefined;\n\n @property({ type: Boolean, render: false })\n accessor active: boolean | undefined;\n\n @property({ type: Boolean, render: false })\n accessor notSynced: boolean | undefined;\n\n @property({ type: Boolean, render: false })\n accessor disableChildAppend: boolean | undefined;\n\n @property()\n accessor autoFocusOnce: string | undefined;\n\n @event({ type: \"label.editing.change\" })\n accessor #labelEditingChange: EventEmitter<boolean>;\n\n #handleLabelEditingChange = (value: boolean) => {\n this.#labelEditingChange.emit(value);\n };\n\n @event({ type: \"label.change\" })\n accessor #labelChange: EventEmitter<string>;\n\n #handleLabelChange = (value: string) => {\n this.#labelChange.emit(value);\n };\n\n @event({ type: \"node.click\" })\n accessor #nodeClick: EventEmitter<void>;\n\n #handleNodeClick = () => {\n this.#nodeClick.emit();\n };\n\n @event({ type: \"node.dblclick\" })\n accessor #nodeDoubleClick: EventEmitter<void>;\n\n #handleNodeDoubleClick = () => {\n this.#nodeDoubleClick.emit();\n };\n\n @event({ type: \"node.contextmenu\" })\n accessor #nodeContextMenu: EventEmitter<ContextMenuDetail>;\n\n #handleNodeContextMenu = (data: ContextMenuDetail) => {\n this.#nodeContextMenu.emit(data);\n };\n\n @event({ type: \"child.append\" })\n accessor #childAppend: EventEmitter<void>;\n\n #handleChildAppend = () => {\n this.#childAppend.emit();\n };\n\n @event({ type: \"external.click\" })\n accessor #externalClick: EventEmitter<ExtraNodeData>;\n\n #handleExternalClick = (data: ExtraNodeData) => {\n this.#externalClick.emit(data);\n };\n\n @event({ type: \"subNode.dblclick\" })\n accessor #subNodeDoubleClick: EventEmitter<ExtraNodeData>;\n\n #handleSubNodeDoubleClick = (data: ExtraNodeData) => {\n this.#subNodeDoubleClick.emit(data);\n };\n\n @event({ type: \"subNode.contextmenu\" })\n accessor #subNodeContextMenu: EventEmitter<SubNodeContextMenuData>;\n\n #handleSubNodeContextMenu = (data: SubNodeContextMenuData) => {\n this.#subNodeContextMenu.emit(data);\n };\n\n render() {\n return (\n <PageArchNodeComponent\n label={this.label}\n type={this.type}\n external={this.external}\n subNodes={this.subNodes}\n autoFocusOnce={this.autoFocusOnce}\n onLabelEditingChange={this.#handleLabelEditingChange}\n onLabelChange={this.#handleLabelChange}\n onNodeClick={this.#handleNodeClick}\n onNodeDoubleClick={this.#handleNodeDoubleClick}\n onNodeContextMenu={this.#handleNodeContextMenu}\n onChildAppend={this.#handleChildAppend}\n onExternalClick={this.#handleExternalClick}\n onSubNodeDoubleClick={this.#handleSubNodeDoubleClick}\n onSubNodeContextMenu={this.#handleSubNodeContextMenu}\n />\n );\n }\n}\n\nexport interface PageArchNodeComponentProps extends PageArchNodeProps {\n onLabelEditingChange?(value: boolean): void;\n onLabelChange?(value: string): void;\n onNodeClick?(): void;\n onNodeDoubleClick?(): void;\n onNodeContextMenu?(data: ContextMenuDetail): void;\n onChildAppend?(): void;\n onExternalClick?(data: ExtraNodeData): void;\n onSubNodeDoubleClick?(data: ExtraNodeData): void;\n onSubNodeContextMenu?(data: SubNodeContextMenuData): void;\n}\n\nexport function PageArchNodeComponent({\n label,\n type: _type,\n external,\n subNodes,\n autoFocusOnce,\n onLabelEditingChange,\n onLabelChange,\n onNodeClick,\n onNodeDoubleClick,\n onNodeContextMenu,\n onChildAppend,\n onExternalClick,\n onSubNodeDoubleClick,\n onSubNodeContextMenu,\n}: PageArchNodeComponentProps) {\n const type = _type === \"board\" ? \"board\" : \"page\";\n const [currentLabel, setCurrentLabel] = useState(label);\n const [editingLabel, setEditingLabel] = useState(false);\n const editingLabelInitialized = useRef(false);\n const [shouldEmitLabelChange, setShouldEmitLabelChange] = useState(false);\n const labelInputRef = useRef<HTMLInputElement>(null);\n\n useEffect(() => {\n setCurrentLabel(label);\n }, [label]);\n\n const handleEditLabel = useCallback((e: React.MouseEvent) => {\n e.preventDefault();\n e.stopPropagation();\n setEditingLabel(true);\n }, []);\n\n useEffect(() => {\n if (autoFocusOnce && !autoFocusedSets.has(autoFocusOnce)) {\n autoFocusedSets.add(autoFocusOnce);\n setTimeout(() => {\n setEditingLabel(true);\n }, 1);\n }\n }, [autoFocusOnce]);\n\n useEffect(() => {\n if (editingLabel) {\n // Prevent scroll when focusing.\n // Otherwise the diagram svg may be clipped in Chrome.\n labelInputRef.current?.focus({ preventScroll: true });\n labelInputRef.current?.select();\n }\n }, [editingLabel]);\n\n useEffect(() => {\n if (editingLabelInitialized.current) {\n onLabelEditingChange?.(editingLabel);\n } else {\n editingLabelInitialized.current = true;\n }\n }, [editingLabel, onLabelEditingChange]);\n\n const handleInputChange = useCallback(\n (event: React.ChangeEvent<HTMLInputElement>) => {\n setCurrentLabel(event.target.value);\n },\n []\n );\n\n const handleInputKeydown = useCallback((event: React.KeyboardEvent) => {\n const key =\n event.key ||\n /* istanbul ignore next: compatibility */ event.keyCode ||\n /* istanbul ignore next: compatibility */ event.which;\n if (key === \"Enter\" || key === 13) {\n labelInputRef.current?.blur();\n }\n }, []);\n\n const handleInputBlur = useCallback(() => {\n setEditingLabel(false);\n setShouldEmitLabelChange(true);\n }, []);\n\n useEffect(() => {\n if (shouldEmitLabelChange) {\n onLabelChange?.(currentLabel);\n setShouldEmitLabelChange(false);\n }\n }, [currentLabel, onLabelChange, shouldEmitLabelChange]);\n\n const handleChildAppend = useCallback(\n (e: React.MouseEvent) => {\n e.stopPropagation();\n onChildAppend?.();\n },\n [onChildAppend]\n );\n\n const handleExternalClick = useCallback(\n (e: React.MouseEvent) => {\n e.stopPropagation();\n onExternalClick?.(external);\n },\n [external, onExternalClick]\n );\n\n const stopPropagation = useCallback((e: React.MouseEvent) => {\n e.stopPropagation();\n }, []);\n\n // 32 + 8\n const extraHeight = Math.max(0, Math.floor((subNodes?.length ?? 0) - 3)) * 38;\n\n return (\n <>\n <div\n className={classNames(\"node\", type, { \"editing-label\": editingLabel })}\n style={{ height: type === \"board\" ? 70 : 130 + extraHeight }}\n onClick={onNodeClick}\n onDoubleClick={onNodeDoubleClick}\n onContextMenu={(e) => {\n e.stopPropagation();\n e.preventDefault();\n onNodeContextMenu?.({\n clientX: e.clientX,\n clientY: e.clientY,\n });\n }}\n >\n <input\n className=\"label-input\"\n value={currentLabel}\n ref={labelInputRef}\n onChange={handleInputChange}\n onKeyDown={handleInputKeydown}\n onBlur={handleInputBlur}\n onDoubleClick={stopPropagation}\n onContextMenu={stopPropagation}\n onMouseDown={stopPropagation}\n />\n <div\n className=\"label\"\n onDoubleClick={handleEditLabel}\n onMouseDown={stopPropagation}\n >\n {currentLabel}\n </div>\n {type === \"board\" ? (\n <div className=\"icon-container\">\n <WrappedIcon lib=\"antd\" icon=\"unordered-list\" />\n </div>\n ) : (\n <div\n className=\"thumbnail-container\"\n style={{\n height: 98 + extraHeight,\n }}\n >\n <div className=\"thumbnail-placeholder\">\n <WrappedIcon lib=\"antd\" icon=\"ellipsis\" />\n </div>\n {external && (\n <div\n className=\"external\"\n onClick={handleExternalClick}\n onDoubleClick={stopPropagation}\n onMouseDown={stopPropagation}\n >\n <WrappedIcon lib=\"antd\" icon=\"desktop\" />\n <span className=\"external-label\">{external.label}</span>\n </div>\n )}\n {subNodes?.length ? (\n <div className=\"sub-nodes\">\n {subNodes.map((subNode) => (\n <SubNode\n key={subNode.id}\n subNode={subNode}\n onSubNodeDoubleClick={onSubNodeDoubleClick}\n onSubNodeContextMenu={onSubNodeContextMenu}\n />\n ))}\n </div>\n ) : null}\n </div>\n )}\n </div>\n <div\n className=\"add-button\"\n role=\"button\"\n onClick={handleChildAppend}\n onMouseDown={stopPropagation}\n >\n <WrappedIcon lib=\"fa\" icon=\"plus\" />\n </div>\n </>\n );\n}\n\nexport interface SubNodeProps {\n subNode: ExtraNodeData;\n onSubNodeDoubleClick?(data: ExtraNodeData): void;\n onSubNodeContextMenu?(data: SubNodeContextMenuData): void;\n}\n\nfunction SubNode({\n subNode,\n onSubNodeDoubleClick,\n onSubNodeContextMenu,\n}: SubNodeProps) {\n return (\n <WrappedTooltip key={subNode.id} content={subNode.label}>\n <div\n className=\"sub-node\"\n onDoubleClick={(e) => {\n e.stopPropagation();\n onSubNodeDoubleClick?.(subNode);\n }}\n onContextMenu={(e) => {\n e.stopPropagation();\n e.preventDefault();\n onSubNodeContextMenu?.({\n node: subNode,\n clientX: e.clientX,\n clientY: e.clientY,\n });\n }}\n >\n <div className=\"sub-node-skeleton-title\"></div>\n <div className=\"sub-node-skeleton-content\"></div>\n <div className=\"sub-node-skeleton-button\"></div>\n </div>\n </WrappedTooltip>\n );\n}\n","import assertClassBrand from \"./assertClassBrand.js\";\nexport default function _classPrivateSetter(s, r, a, t) {\n return r(assertClassBrand(s, a), t), t;\n}","import { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport type { AbstractForm, ColProps } from \"./Form.js\";\nimport { UseSingleBrickConf } from \"@next-core/types\";\n\nconst { method, property } = createDecorators();\n\nexport abstract class FormItemElementBase extends ReactNextElement {\n accessor #_notRender = false;\n accessor #validate = \"normal\";\n accessor #bindFormItem = false;\n\n get isFormItemElement(): true {\n return true;\n }\n\n set validateState(value: string) {\n this.#validate = value;\n this._render();\n }\n get validateState() {\n return this.#validate;\n }\n\n /**\n * 控制该表单项是否隐藏\n * @default false\n * @group ui\n */\n set notRender(value: boolean) {\n this.hidden = value;\n this.#_notRender = value;\n this._render();\n }\n get notRender(): boolean {\n return this.#_notRender;\n }\n\n get $bindFormItem() {\n return this.#bindFormItem;\n }\n set $bindFormItem(value: boolean) {\n this.#bindFormItem = value;\n this._render();\n }\n\n @property({\n attribute: false,\n })\n accessor helpBrick:\n | { useBrick: UseSingleBrickConf | UseSingleBrickConf[] }\n | undefined;\n\n @property({\n attribute: false,\n })\n accessor labelBrick:\n | { useBrick: UseSingleBrickConf | UseSingleBrickConf[] }\n | undefined;\n\n @property({\n attribute: false,\n })\n accessor labelCol: ColProps | undefined;\n\n @property({\n attribute: false,\n })\n accessor wrapperCol: ColProps | undefined;\n\n @method()\n setNotRender(value: boolean) {\n this.notRender = value;\n }\n\n @method()\n getFormElement(): AbstractForm | null {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n let element: AbstractForm | null = this as unknown as AbstractForm;\n while ((element = element.parentNode as AbstractForm | null)) {\n if (!element || element.isFormElement) {\n break;\n }\n }\n return element as AbstractForm | null;\n }\n}\n","import _asyncToGenerator from \"@babel/runtime/helpers/asyncToGenerator\";\nimport { http } from \"@next-core/http\";\n/**\n * @description 契约搜索\n * @endpoint POST /api/v1/contract/search\n */\nexport var ContractCenterApi_searchContract = /*#__PURE__*/function () {\n var _ref = _asyncToGenerator(function* (data, options) {\n return (/**! @contract easyops.api.next_builder.contract_center.SearchContract@1.0.0 */(yield http.post(\"api/gateway/next_builder.contract_center.SearchContract/api/v1/contract/search\", data, options)).data\n );\n });\n return function ContractCenterApi_searchContract(_x, _x2) {\n return _ref.apply(this, arguments);\n };\n}();\n//# sourceMappingURL=searchContract.js.map","export enum K {\n CONTRACT_OPTIONS_TIPS_PREFIX = \"CONTRACT_OPTIONS_TIPS_PREFIX\",\n CONTRACT_OPTIONS_TIPS_SUFFIX = \"CONTRACT_OPTIONS_TIPS_SUFFIX\",\n CONTRACT_VALIDATE_MESSAGE = \"CONTRACT_VALIDATE_MESSAGE\",\n}\n\nconst en: Locale = {\n CONTRACT_OPTIONS_TIPS_PREFIX: \"Only the first\",\n CONTRACT_OPTIONS_TIPS_SUFFIX:\n \"items are displayed, please search for more results\",\n CONTRACT_VALIDATE_MESSAGE: \"Please fill in the correct contract name \",\n};\n\nconst zh: Locale = {\n CONTRACT_OPTIONS_TIPS_PREFIX: \"仅展示前\",\n CONTRACT_OPTIONS_TIPS_SUFFIX: \"项,更多结果请搜索\",\n CONTRACT_VALIDATE_MESSAGE: \"请填写正确的契约名称\",\n};\n\nexport const NS = \"bricks/visual-builder/contract-select\";\n\nexport const locales = { en, zh };\n\ntype Locale = { [k in K]: string } & {\n [k in K as `${k}_plural`]?: string;\n};\n","import React, { useState } from \"react\";\nimport { K, NS, locales } from \"../i18n.js\";\nimport { initializeReactI18n, useTranslation } from \"@next-core/i18n/react\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport { GeneralIcon, GeneralIconProps } from \"@next-bricks/icons/general-icon\";\nimport {\n Input,\n InputEvents,\n InputEventsMap,\n InputProps,\n} from \"@next-bricks/form/input\";\n\ninitializeReactI18n(NS, locales);\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nconst WrappedInput = wrapBrick<Input, InputProps, InputEvents, InputEventsMap>(\n \"eo-input\",\n {\n onChange: \"change\",\n }\n);\n\nexport interface MoreOptionProps {\n slot?: string;\n itemsCount?: number;\n onBlur?(itemsCount: number): void;\n}\n\nexport function MoreOption(props: MoreOptionProps): React.ReactElement {\n const { itemsCount = 20, onBlur } = props;\n const [count, setCount] = useState(itemsCount);\n const { t } = useTranslation(NS);\n const [edit, setEdit] = useState(false);\n\n const handleChange = (e: CustomEvent<string>): void => {\n setCount(Number(e.detail));\n };\n\n const handleClick = (): void => {\n setEdit(true);\n };\n\n const handleBlur = (): void => {\n setEdit(false);\n onBlur?.(count);\n };\n\n return (\n <div className=\"options-tips\" slot={props.slot}>\n {t(K.CONTRACT_OPTIONS_TIPS_PREFIX)}{\" \"}\n {edit ? (\n <WrappedInput\n autoFocus={true}\n inputStyle={{ width: 65 }}\n value={String(count)}\n onBlur={handleBlur}\n onChange={handleChange as any}\n />\n ) : (\n <span>\n {count} <WrappedIcon icon=\"edit\" lib=\"antd\" onClick={handleClick} />\n </span>\n )}{\" \"}\n {t(K.CONTRACT_OPTIONS_TIPS_SUFFIX)}\n </div>\n );\n}\n","import React, { useEffect, useMemo, useState } from \"react\";\nimport { createDecorators, EventEmitter } from \"@next-core/element\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport { ReactUseMultipleBricks } from \"@next-core/react-runtime\";\nimport \"@next-core/theme\";\nimport styleText from \"./styles.shadow.css\";\nimport type {\n AutoComplete,\n AutoCompleteProps,\n AutoCompleteEvents,\n AutoCompleteEventsMap,\n} from \"@next-bricks/form/auto-complete\";\nimport { debounce, isNil } from \"lodash\";\nimport { FormItemElementBase } from \"@next-shared/form\";\nimport { useContractList } from \"./useContractList.js\";\nimport { FormItem, FormItemProps } from \"@next-bricks/form/form-item\";\nimport { K, NS, locales } from \"./i18n.js\";\nimport { initializeReactI18n } from \"@next-core/i18n/react\";\nimport { i18n } from \"@next-core/i18n\";\nimport { MoreOption } from \"./more-option/MoreOption\";\nimport { UseSingleBrickConf } from \"@next-core/types\";\n\ninitializeReactI18n(NS, locales);\n\nconst { defineElement, property, event } = createDecorators();\n\nconst WrappedFormItem = wrapBrick<FormItem, FormItemProps>(\"eo-form-item\");\n\nconst WrappedAutoComplete = wrapBrick<\n AutoComplete,\n AutoCompleteProps,\n AutoCompleteEvents,\n AutoCompleteEventsMap\n>(\"eo-auto-complete\", {\n onChange: \"change\",\n});\n\n/**\n * 契约选择构件\n */\nexport\n@defineElement(\"visual-builder.contract-select\", {\n styleTexts: [styleText],\n})\nclass EoContractSelect extends FormItemElementBase {\n @property()\n accessor name: string | undefined;\n\n @property({\n type: Boolean,\n })\n accessor required: boolean | undefined;\n\n @property()\n accessor label: string | undefined;\n\n @property({\n attribute: false,\n })\n accessor value: any | undefined;\n\n @property({\n attribute: false,\n })\n accessor suffix:\n | { useBrick: UseSingleBrickConf | UseSingleBrickConf[] }\n | undefined;\n\n @event({ type: \"change\" })\n accessor #changeEvent: EventEmitter<string>;\n\n handleChange = (v: string) => {\n this.#changeEvent.emit(v);\n };\n\n render() {\n return (\n <WrappedFormItem\n exportparts=\"message\"\n curElement={this}\n formElement={this.getFormElement()}\n name={this.name}\n label={this.label}\n required={this.required}\n labelBrick={this.labelBrick}\n helpBrick={this.helpBrick}\n notRender={this.notRender}\n trigger=\"handleChange\"\n validator={checkContractRule}\n >\n <EoContractSelectComponent\n value={this.value}\n suffix={this.suffix}\n validateState={this.validateState}\n onChange={this.handleChange}\n />\n </WrappedFormItem>\n );\n }\n}\n\nexport interface EoContractSelectProps {\n value?: string;\n validateState?: string;\n placeholder?: string;\n inputStyle?: React.CSSProperties;\n suffix?: { useBrick: UseSingleBrickConf | UseSingleBrickConf[] };\n onChange?(value: string): void;\n}\n\ninterface ProcessedContractField {\n name: string;\n version: string;\n}\n\nfunction splitContract(value: string): ProcessedContractField {\n if (typeof value !== \"string\")\n return {\n name: \"\",\n version: \"\",\n };\n const [name, version] = value.split(\":\");\n return {\n name,\n version,\n };\n}\n\nfunction isContractApi(name: string): boolean {\n return /.*@.*:\\d+\\.\\d+\\.\\d+/.test(name);\n}\n\nexport function checkContractRule(value: any): string {\n if (!isNil(value) && !isContractApi(value)) {\n return i18n.t(`${NS}:${K.CONTRACT_VALIDATE_MESSAGE}`);\n }\n return \"\";\n}\n\nexport function EoContractSelectComponent({\n value,\n inputStyle,\n validateState,\n suffix,\n onChange,\n}: EoContractSelectProps) {\n const [q, setQ] = useState<string>();\n const [pageSize, setPageSize] = useState(20);\n const contractList = useContractList({ q, pageSize });\n const [mixedValue, setMixedValue] = useState(splitContract(value));\n const [versionOptions, setVersionOptions] = useState([]);\n\n useEffect(() => {\n setMixedValue(splitContract(value));\n }, [value]);\n\n const handlerSearch = useMemo(\n () =>\n debounce((value) => {\n setQ(value);\n }, 200),\n []\n );\n\n const handlerNameChange = (event: CustomEvent<string>): void => {\n const name = event.detail;\n // 直接 copy 契约全名\n if (isContractApi(name)) {\n setMixedValue(splitContract(name));\n onChange?.(name);\n } else {\n const versionList = contractList.find(\n (item) => item.fullContractName === name\n )?.version;\n\n const autofillVersion = versionList?.[0] ?? \"\";\n setVersionOptions(versionList);\n setMixedValue({\n name,\n version: autofillVersion,\n });\n onChange?.(`${name}:${autofillVersion}`);\n }\n handlerSearch(name);\n };\n\n const handleVersionChange = (event: CustomEvent<string>): void => {\n const version = event.detail;\n setMixedValue({\n name: mixedValue.name,\n version,\n });\n\n onChange?.(`${mixedValue.name}:${version}`);\n };\n\n return (\n <div className=\"contract-wrapper\">\n <WrappedAutoComplete\n className=\"contract-selector\"\n options={contractList?.map((item) => ({\n value: item.fullContractName,\n label: item.fullContractName,\n }))}\n value={mixedValue.name}\n inputStyle={inputStyle}\n validateState={validateState}\n onChange={handlerNameChange as any}\n >\n <MoreOption\n onBlur={(pageSize) => setPageSize(pageSize)}\n slot=\"options-toolbar\"\n />\n </WrappedAutoComplete>\n <WrappedAutoComplete\n className=\"version-selector\"\n value={mixedValue.version}\n validateState={validateState}\n options={versionOptions?.map((v) => ({ value: v, label: v }))}\n onChange={handleVersionChange as any}\n ></WrappedAutoComplete>\n {suffix?.useBrick ? (\n <ReactUseMultipleBricks {...suffix}></ReactUseMultipleBricks>\n ) : null}\n </div>\n );\n}\n","import { useEffect, useState } from \"react\";\nimport { ContractCenterApi_searchContract } from \"@next-api-sdk/next-builder-sdk\";\n\ninterface ContractParams {\n pageSize?: number;\n q?: string;\n}\n\ninterface ContractField {\n fullContractName?: string;\n version: string[];\n}\n\nexport function useContractList({\n pageSize = 20,\n q = \"\",\n}: ContractParams): ContractField[] {\n const [contractList, setContractList] = useState<ContractField[]>([]);\n const [query, setQ] = useState<string>(q);\n const [count, setCount] = useState(pageSize);\n\n useEffect(() => {\n setQ(q);\n }, [q]);\n\n useEffect(() => {\n setCount(pageSize);\n }, [pageSize]);\n\n useEffect(() => {\n (async () => {\n try {\n const { list } = await ContractCenterApi_searchContract(\n {\n page: 1,\n pageSize: count,\n fullContractName: query,\n },\n {\n interceptorParams: { ignoreLoadingBar: true },\n }\n );\n\n setContractList(list as ContractField[]);\n } catch (err) {\n // eslint-disable-next-line no-console\n console.error(err);\n setContractList([]);\n }\n })();\n }, [query, count]);\n\n return contractList;\n}\n","import React, { useState, useCallback, useRef, useEffect } from \"react\";\nimport { createDecorators, EventEmitter } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport { unwrapProvider } from \"@next-core/utils/general\";\nimport \"@next-core/theme\";\nimport { initializeReactI18n } from \"@next-core/i18n/react\";\nimport { GeneralIconProps } from \"@next-bricks/icons/general-icon\";\nimport { Menu } from \"@next-bricks/basic/menu\";\nimport { MenuItem, MenuComponentProps } from \"@next-bricks/basic/menu-item\";\nimport { EoTooltip, ToolTipProps } from \"@next-bricks/basic/tooltip\";\nimport type { lockBodyScroll as _lockBodyScroll } from \"@next-bricks/basic/data-providers/lock-body-scroll/lock-body-scroll\";\n\nconst WrappedMenu = wrapBrick<Menu, unknown>(\"eo-menu\");\nconst WrappedMenuItem = wrapBrick<MenuItem, MenuComponentProps>(\"eo-menu-item\");\nconst WrappedTooltip = wrapBrick<EoTooltip, ToolTipProps>(\"eo-tooltip\");\nconst lockBodyScroll = unwrapProvider<typeof _lockBodyScroll>(\n \"basic.lock-body-scroll\"\n);\n\nimport { NS, locales } from \"./i18n.js\";\nimport styleText from \"./styles.shadow.css\";\n\ninitializeReactI18n(NS, locales);\n\nconst { defineElement, property, event, method } = createDecorators();\n\nconst MINIMAL_PADDING = 8;\n\nexport type Position = [x: number, y: number];\n\nexport interface OpenInfo {\n /**\n * 通常设为 `[EVENT.clientX, EVENT.clientY]`\n */\n position: Position;\n}\n\nexport interface SnippetItem {\n text: string;\n icon?: GeneralIconProps;\n disabled?: boolean;\n hidden?: boolean;\n tooltip?: string;\n dragConf?: {\n format: string;\n data: unknown;\n };\n}\n\nexport interface SnippetOption {\n title?: string;\n children?: SnippetItem[];\n}\n\n/**\n * 构件 `visual-builder.generate-snippets-context-menu`\n */\nexport\n@defineElement(\"visual-builder.generate-snippets-context-menu\", {\n styleTexts: [styleText],\n})\nclass GenerateSnippetsContextMenu extends ReactNextElement {\n @property({\n attribute: false,\n })\n accessor options: SnippetOption[] | undefined;\n\n @property({\n type: Boolean,\n })\n accessor active: boolean | undefined;\n\n @property({ attribute: false })\n accessor position: Position | undefined;\n\n @event({ type: \"item.drag.start\" })\n accessor #itemDragStartEvent!: EventEmitter<SnippetItem>;\n\n @event({ type: \"item.drag.end\" })\n accessor #itemDragEndEvent!: EventEmitter<SnippetItem>;\n\n @method()\n open({ position }: OpenInfo) {\n this.active = true;\n this.position = position;\n }\n\n @method()\n close() {\n this.active = false;\n this.position = undefined;\n }\n\n #handleItemDragStart = (action: SnippetItem): void => {\n this.#itemDragStartEvent.emit(action);\n };\n\n #handleItemDragEnd = (action: SnippetItem): void => {\n this.#itemDragEndEvent.emit(action);\n };\n\n disconnectedCallback() {\n super.disconnectedCallback();\n lockBodyScroll(this, false);\n }\n\n render() {\n return (\n <GenerateSnippetsContextMenuComponent\n active={this.active}\n element={this}\n position={this.position}\n onItemDragStart={this.#handleItemDragStart}\n onItemDragEnd={this.#handleItemDragEnd}\n options={this.options}\n />\n );\n }\n}\n\nexport interface GenerateSnippetsContextMenuProps {\n options?: SnippetOption[];\n active?: boolean;\n position?: Position;\n element?: GenerateSnippetsContextMenu;\n onItemDragStart?: (data: SnippetItem) => void;\n onItemDragEnd?: (data: SnippetItem) => void;\n}\n\nexport function GenerateSnippetsContextMenuComponent({\n element,\n active,\n onItemDragEnd,\n onItemDragStart,\n options,\n position,\n}: GenerateSnippetsContextMenuProps) {\n const [dragging, setDragging] = useState(false);\n const containerRef = useRef<any>(null);\n const [fixedPosition, setFixedPosition] = useState<Position | null>(null);\n\n const handleMaskClick = useCallback(\n (e: React.MouseEvent) => {\n e.preventDefault();\n element?.close();\n },\n [element]\n );\n\n const handleItemStart = useCallback(\n (e: React.DragEvent, data: SnippetItem) => {\n setDragging(true);\n\n if (data.dragConf) {\n e.dataTransfer?.setData(\n data.dragConf.format,\n JSON.stringify(data.dragConf.data)\n );\n }\n (e.target as HTMLElement).classList.add(\"dragging\");\n onItemDragStart?.(data);\n },\n [onItemDragStart]\n );\n\n const handleItemDragEnd = useCallback(\n (e: React.DragEvent, data: SnippetItem) => {\n setDragging(false);\n (e.target as HTMLElement).classList.remove(\"dragging\");\n element?.close();\n onItemDragEnd?.(data);\n },\n [element, onItemDragEnd]\n );\n\n useEffect(() => {\n lockBodyScroll(element!, active);\n }, [active, element]);\n\n useEffect(() => {\n if (active && containerRef.current && position) {\n const rect = containerRef.current.getBoundingClientRect();\n const width = rect.width + MINIMAL_PADDING;\n const height = rect.height + MINIMAL_PADDING;\n const { clientWidth, clientHeight } = document.documentElement;\n const fixed = [...position] as Position;\n if (clientWidth > width && position[0] + width > clientWidth) {\n fixed[0] = position[0] - width;\n }\n if (clientHeight > height && position[1] + height > clientHeight) {\n fixed[1] = clientHeight - height;\n }\n setFixedPosition(fixed);\n } else {\n setFixedPosition(null);\n }\n }, [active, position]);\n\n return (\n <>\n {!dragging && (\n <div\n className=\"mask\"\n onClick={handleMaskClick}\n onContextMenu={handleMaskClick}\n />\n )}\n <div\n className=\"container\"\n ref={containerRef}\n style={{\n left: (fixedPosition ?? position)?.[0],\n top: (fixedPosition ?? position)?.[1],\n visibility: fixedPosition ? \"visible\" : \"hidden\",\n }}\n >\n {options?.map((op, index) => (\n <div key={index}>\n <div className=\"title\">{op.title}</div>\n {op.children?.length && (\n <WrappedMenu>\n {op.children?.map((item, itemIndex) => {\n return (\n <WrappedTooltip\n content={item.tooltip}\n hoist\n placement=\"left\"\n key={itemIndex}\n >\n <WrappedMenuItem\n disabled={item.disabled}\n icon={item.icon}\n draggable={!item.disabled}\n onDragStart={(e: React.DragEvent) =>\n handleItemStart(e, item)\n }\n onDragEnd={(e: React.DragEvent) =>\n handleItemDragEnd(e, item)\n }\n >\n {item.text}\n </WrappedMenuItem>\n </WrappedTooltip>\n );\n })}\n </WrappedMenu>\n )}\n </div>\n ))}\n </div>\n </>\n );\n}\n","export enum K {}\n\nconst en: Locale = {};\n\nconst zh: Locale = {};\n\nexport const NS = \"bricks/visual-builder/generate-snippets-context-menu\";\n\nexport const locales = { en, zh };\n\ntype Locale = { [k in K]: string } & {\n [k in K as `${k}_plural`]?: string;\n};\n","import { visit } from \"unist-util-visit\";\nimport { toString } from \"hast-util-to-string\";\nimport { refractor, type RefractorElement } from \"refractor\";\n\n// Reference https://github.com/mapbox/rehype-prism\nexport function rehypePrism() {\n function visitor(\n node: RefractorElement,\n _index: number | undefined,\n parent: RefractorElement | undefined\n ) {\n if (!parent || parent.tagName !== \"pre\" || node.tagName !== \"code\") {\n return;\n }\n\n const lang = getLanguage(node);\n\n if (lang === null) {\n return;\n }\n\n let result;\n try {\n parent.properties.className = (\n (parent.properties.className as string[]) || []\n ).concat(\"language-\" + lang);\n result = refractor.highlight(toString(node), lang);\n } catch {\n return;\n }\n\n node.children = result.children;\n }\n return (tree: RefractorElement) => {\n visit(tree, \"element\", visitor);\n };\n}\n\nfunction getLanguage(node: RefractorElement) {\n const className = (node.properties.className as string[]) || [];\n\n for (const classListItem of className) {\n if (classListItem.slice(0, 9) === \"language-\") {\n return classListItem.slice(9).toLowerCase();\n }\n }\n\n return null;\n}\n","import { useEffect, useState } from \"react\";\nimport { Fragment, jsx, jsxs } from \"react/jsx-runtime\";\nimport { unified } from \"unified\";\nimport remarkParse from \"remark-parse\";\nimport remarkToRehype from \"remark-rehype\";\nimport rehypeReact, { Options as RehypeReactOptions } from \"rehype-react\";\nimport { rehypePrism } from \"./rehypePrism.js\";\n\nconst production = { Fragment, jsx, jsxs };\n\nexport interface MarkdownComponentProps {\n content?: string;\n}\n\n// Reference https://github.com/remarkjs/react-remark/blob/39553e5f5c9e9b903bebf261788ff45130668de0/src/index.ts\nexport function MarkdownComponent({ content }: MarkdownComponentProps) {\n const [reactContent, setReactContent] = useState<JSX.Element | null>(null);\n\n useEffect(() => {\n let ignore = false;\n unified()\n .use(remarkParse)\n .use(remarkToRehype)\n .use([rehypePrism])\n .use(rehypeReact, production as RehypeReactOptions)\n .process(content)\n .then((vFile) => {\n if (!ignore) {\n setReactContent(vFile.result);\n }\n })\n .catch((error) => {\n if (!ignore) {\n // eslint-disable-next-line no-console\n console.error(\"Convert markdown failed:\", error);\n setReactContent(null);\n }\n });\n return () => {\n ignore = true;\n };\n }, [content]);\n\n return reactContent;\n}\n","import React, { useEffect, useMemo, useRef } from \"react\";\nimport classNames from \"classnames\";\nimport { MarkdownComponent } from \"@next-shared/markdown\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport type { AvatarProps, EoAvatar } from \"@next-bricks/basic/avatar\";\nimport type { Message } from \"./index\";\n\nconst WrappedAvatar = wrapBrick<EoAvatar, AvatarProps>(\"eo-avatar\");\n\nexport interface MessageComponentProps {\n message: Message;\n}\n\ntype MessageChunk =\n | MessageChunkPlain\n | MessageChunkMarkdown\n | MessageChunkCommand;\n\ninterface MessageChunkPlain {\n type: \"plain\";\n content: string;\n}\n\ninterface MessageChunkMarkdown {\n type: \"markdown\";\n content: string;\n}\n\ninterface MessageChunkCommand {\n type: \"command\";\n command: string;\n content: string;\n raw: string;\n}\n\nexport function MessageComponent({ message }: MessageComponentProps) {\n const messageChunks = useMemo(() => {\n const chunks: MessageChunk[] = [];\n\n if (message.role === \"assistant\") {\n const chunkRegExp =\n /(?:^|\\n)```(easy_cmd_\\S+)\\n([\\s\\S]*?)\\n```(?:$|\\n)/gm;\n\n let match: RegExpExecArray | null;\n let lastIndex = 0;\n while ((match = chunkRegExp.exec(message.content))) {\n const [fullMatch, command, content] = match;\n const start = match.index;\n const previousText = message.content.slice(lastIndex, start).trim();\n if (previousText.length > 0) {\n chunks.push({\n type: \"markdown\",\n content: previousText,\n });\n }\n chunks.push({\n type: \"command\",\n command,\n content: content.trim(),\n raw: fullMatch,\n });\n lastIndex = chunkRegExp.lastIndex;\n }\n const lastText = message.content.slice(lastIndex).trim();\n if (lastText.length > 0) {\n chunks.push({\n type: \"markdown\",\n content: lastText,\n });\n }\n } else {\n chunks.push({\n type: \"plain\",\n content: message.content,\n });\n }\n\n return chunks;\n }, [message.content, message.role]);\n\n const contentRef = useRef<HTMLDivElement>(null);\n useEffect(() => {\n const contentElement = contentRef.current;\n if (!contentElement) {\n return;\n }\n setTimeout(() => {\n const textingElements =\n contentElement.parentElement.querySelectorAll(\".texting\");\n for (const element of textingElements) {\n element.classList.remove(\"texting\");\n }\n if (!message.partial) {\n return;\n }\n // Find the last text element descendant of the message element,\n // and apply a texting effect to it.\n let current = contentElement as HTMLElement;\n while (current) {\n const lastChild = current.lastChild;\n if (\n lastChild?.nodeType === Node.ELEMENT_NODE &&\n ((lastChild as HTMLElement)?.tagName !== \"DETAILS\" ||\n (lastChild as HTMLDetailsElement).open)\n ) {\n current = lastChild as HTMLElement;\n } else {\n // Handle a special case: the last child is a text node without any\n // non-whitespace content. In such case, we should apply the texting\n // effect to the previous sibling element.\n if (\n lastChild?.nodeType === Node.TEXT_NODE &&\n lastChild.textContent.trim().length === 0 &&\n lastChild.previousSibling?.nodeType === Node.ELEMENT_NODE\n ) {\n current = lastChild.previousSibling as HTMLElement;\n } else {\n break;\n }\n }\n }\n current.classList.add(\"texting\");\n }, 1);\n }, [message.partial, message.content]);\n\n return (\n <div className={classNames(\"message\", { failed: message.failed })}>\n <div className=\"avatar\">\n <WrappedAvatar\n icon={{\n lib: \"easyops\",\n icon: message.role === \"assistant\" ? \"robot\" : \"account\",\n }}\n size=\"small\"\n className={`role-${message.role}`}\n />\n </div>\n <div className=\"main\">\n <div className=\"label\">\n {message.role === \"assistant\" ? \"Assistant\" : \"You\"}\n </div>\n <div className=\"content\" ref={contentRef}>\n {messageChunks.map((chunk, index) => (\n <MessageChunkComponent key={index} chunk={chunk} />\n ))}\n </div>\n </div>\n </div>\n );\n}\n\nfunction MessageChunkComponent({ chunk }: { chunk: MessageChunk }) {\n return (\n <>\n {chunk.type === \"markdown\" ? (\n <div className=\"markdown\">\n <MarkdownComponent content={chunk.content} />\n </div>\n ) : chunk.type === \"command\" ? (\n <>\n <details className=\"command\">\n <summary>```{chunk.command}</summary>\n <pre>\n <code>{chunk.content}</code>\n </pre>\n </details>\n </>\n ) : (\n <div className=\"plain\">{chunk.content}</div>\n )}\n </>\n );\n}\n","import React, { useEffect, useMemo, useRef, useState } from \"react\";\nimport { createDecorators, type EventEmitter } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport type { BrickConf } from \"@next-core/types\";\nimport { MessageComponent } from \"./MessageComponent\";\nimport styleText from \"./styles.shadow.css\";\n\nconst { defineElement, property, event } = createDecorators();\n\nexport interface Message {\n role: \"user\" | \"assistant\";\n content: string;\n key: number;\n partial?: boolean;\n failed?: boolean;\n}\n\nexport interface ChatConversationProps {\n messages?: Message[];\n errorBoundary?: boolean;\n}\n\ntype StoryboardChunk = StoryboardChunkBlock | StoryboardChunkBlockItem;\n\ninterface StoryboardChunkBlock {\n type: \"block\";\n uuid: string;\n children: string[];\n name: string;\n seq: number;\n hasContainer?: boolean;\n}\n\ninterface StoryboardChunkBlockItem {\n type: \"item\";\n uuid: string;\n storyboard?: BrickConf;\n}\n\n/**\n * 用于 Visual Builder 的智能聊天对话列表\n */\nexport\n@defineElement(\"visual-builder.chat-conversation\", {\n styleTexts: [styleText],\n})\nclass ChatConversation\n extends ReactNextElement\n implements ChatConversationProps\n{\n @property({ attribute: false })\n accessor messages: Message[] | undefined;\n\n @property({ type: Boolean })\n accessor errorBoundary: boolean | undefined;\n\n @event({ type: \"storyboard.update\" })\n accessor #storyboardUpdate!: EventEmitter<BrickConf[]>;\n\n #handleStoryboardUpdate = (storyboard: BrickConf[]) => {\n this.#storyboardUpdate.emit(storyboard);\n };\n\n render() {\n return (\n <ChatConversationComponent\n host={this}\n messages={this.messages}\n errorBoundary={this.errorBoundary}\n onStoryboardUpdate={this.#handleStoryboardUpdate}\n />\n );\n }\n}\n\nexport interface ChatConversationComponentProps extends ChatConversationProps {\n host: Element;\n onStoryboardUpdate?: (storyboard: BrickConf[]) => void;\n}\n\nexport function ChatConversationComponent({\n messages,\n host,\n errorBoundary,\n onStoryboardUpdate,\n}: ChatConversationComponentProps) {\n const chunkRegExp = useMemo(\n () =>\n /(?:^|\\n)```easy_cmd_vb_block_(page|storyboard)\\n([\\s\\S]*?)\\n```(?:$|\\n)/gm,\n []\n );\n const lastIndexMapRef = useRef(new Map<number, number>());\n const [chunks, setChunks] = useState<StoryboardChunk[]>([]);\n const manualScrolledRef = useRef(false);\n\n useEffect(() => {\n for (const message of messages ?? []) {\n if (message.role !== \"assistant\") {\n continue;\n }\n chunkRegExp.lastIndex = lastIndexMapRef.current.get(message.key) ?? 0;\n let match: RegExpExecArray | null;\n const newChunks: StoryboardChunk[] = [];\n let newPage = false;\n while ((match = chunkRegExp.exec(message.content))) {\n lastIndexMapRef.current.set(message.key, chunkRegExp.lastIndex);\n const [, type, content] = match;\n try {\n const parsed = JSON.parse(content) as unknown;\n if (type === \"page\") {\n newPage = true;\n newChunks.push(\n ...(parsed as (StoryboardChunkBlock | StoryboardChunkBlockItem)[])\n );\n } else {\n newChunks.push({\n ...(parsed as StoryboardChunkBlockItem),\n type: \"item\",\n });\n }\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error(\"parse storyboard failed:\", e);\n }\n }\n if (newPage) {\n setChunks(newChunks);\n } else if (newChunks.length > 0) {\n setChunks((prev) => [...prev, ...newChunks]);\n }\n }\n }, [chunkRegExp, messages]);\n\n const [storyboard, setStoryboard] = useState<BrickConf[]>([]);\n\n useEffect(() => {\n const blocks = [];\n const storyboardMap = new Map<string, BrickConf>();\n for (const chunk of chunks) {\n if (chunk.type === \"block\") {\n blocks.push(chunk);\n } else if (chunk.storyboard) {\n storyboardMap.set(chunk.uuid, chunk.storyboard);\n }\n }\n\n // Sort by seq ascent\n blocks.sort((a, b) => a.seq - b.seq);\n\n const contentLayout: BrickConf = {\n brick: \"eo-content-layout\",\n children: [],\n };\n const main: BrickConf = {\n brick: \"eo-main-view\",\n children: [\n {\n brick: \"eo-page-title\",\n slot: \"pageTitle\",\n properties: {\n pageTitle: \"测试页面\",\n },\n },\n ],\n };\n\n let hasContent = false;\n for (const block of blocks) {\n // No container\n if (block.name === \"全局操作区\") {\n for (const child of block.children) {\n const childBrick = storyboardMap.get(child);\n if (childBrick) {\n main.children.push({\n ...childBrick,\n properties: {\n ...childBrick.properties,\n slot: undefined,\n },\n errorBoundary,\n slot: \"toolbar\",\n iid: `item:${child}`,\n meta: {\n type: \"item\",\n uuid: child,\n block: {\n uuid: block.uuid,\n name: block.name,\n },\n },\n } as BrickConf);\n hasContent = true;\n }\n }\n } else {\n const rawBrick = storyboardMap.get(block.uuid);\n if (rawBrick) {\n const brick: BrickConf = {\n ...rawBrick,\n children: [],\n errorBoundary,\n iid: `block:${block.uuid}`,\n meta: {\n type: \"block\",\n uuid: block.uuid,\n name: block.name,\n },\n } as BrickConf;\n hasContent = true;\n contentLayout.children.push(brick);\n for (const child of block.children) {\n const childBrick = storyboardMap.get(child);\n if (childBrick) {\n brick.children.push({\n ...childBrick,\n errorBoundary,\n iid: `item:${child}`,\n meta: {\n type: \"item\",\n uuid: child,\n },\n } as BrickConf);\n }\n }\n } else if (!block.hasContainer) {\n for (const child of block.children) {\n const childBrick = storyboardMap.get(child);\n if (childBrick) {\n contentLayout.children.push({\n ...childBrick,\n errorBoundary,\n iid: `item:${child}`,\n meta: {\n type: \"item\",\n uuid: child,\n },\n } as BrickConf);\n hasContent = true;\n }\n }\n }\n }\n }\n\n main.children.push(contentLayout);\n\n setStoryboard((prev) =>\n hasContent ? [main] : prev.length === 0 ? prev : []\n );\n }, [chunks, errorBoundary]);\n\n useEffect(() => {\n onStoryboardUpdate?.(storyboard);\n }, [onStoryboardUpdate, storyboard]);\n\n const verticalScrollParent = useMemo(() => {\n // Lookup the nearest scrollable parent (on axis y)\n let current = host;\n while (current) {\n const overflowY = getComputedStyle(current, null).getPropertyValue(\n \"overflow-y\"\n );\n if (overflowY === \"auto\" || overflowY === \"scroll\") {\n return current;\n }\n if (current.parentNode instanceof ShadowRoot) {\n current = current.parentNode.host;\n } else if (current.parentNode instanceof Element) {\n current = current.parentNode;\n } else {\n break;\n }\n }\n return document.scrollingElement || document.documentElement;\n }, [host]);\n\n useEffect(() => {\n if (manualScrolledRef.current) {\n return;\n }\n setTimeout(() => {\n // eslint-disable-next-line @typescript-eslint/no-non-null-asserted-optional-chain\n verticalScrollParent.scrollTo(0, verticalScrollParent.scrollHeight!);\n }, 1);\n }, [messages, verticalScrollParent]);\n\n useEffect(() => {\n const handleScroll = () => {\n manualScrolledRef.current =\n verticalScrollParent.scrollTop +\n verticalScrollParent.clientHeight! +\n 6 <\n verticalScrollParent.scrollHeight;\n };\n verticalScrollParent.addEventListener(\"scroll\", handleScroll);\n return () => {\n verticalScrollParent.removeEventListener(\"scroll\", handleScroll);\n };\n }, [verticalScrollParent]);\n\n return (\n <>\n {messages?.map((message, index) => (\n <MessageComponent\n key={message.key ?? `index-${index}`}\n message={message}\n />\n ))}\n </>\n );\n}\n","import React from \"react\";\nimport { InspectOutline } from \"../data-providers/chat-preview/interfaces.js\";\n\nexport interface InspectOutlineComponentProps extends InspectOutline {\n variant: \"hover\" | \"active\";\n}\n\nexport function InspectOutlineComponent({\n variant,\n width,\n height,\n left,\n top,\n label,\n}: InspectOutlineComponentProps): React.ReactElement {\n const borderWidth = 4;\n return (\n <div\n className={\"outline \" + variant}\n style={{\n width: width + borderWidth * 2,\n height: height + borderWidth * 2,\n left: left - borderWidth,\n top: top - borderWidth,\n }}\n >\n <div className=\"label\">{label}</div>\n </div>\n );\n}\n","import React, {\n useCallback,\n useEffect,\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 { __secret_internals, getBasePath } from \"@next-core/runtime\";\nimport type { BrickConf, MicroApp } from \"@next-core/types\";\nimport { JSON_SCHEMA, safeDump } from \"js-yaml\";\nimport type { PreviewWindow } from \"@next-core/preview/types\";\nimport classNames from \"classnames\";\nimport type {\n InspectOutline,\n InspectSelector,\n} from \"../data-providers/chat-preview/interfaces\";\nimport { InspectOutlineComponent } from \"./InspectOutlineComponent\";\nimport styleText from \"./styles.shadow.css\";\n\nconst { defineElement, property, event, method } = createDecorators();\n\nexport interface ChatPreviewProps {\n storyboard?: BrickConf | BrickConf[];\n theme?: string;\n uiVersion?: string;\n app?: MicroApp;\n inspecting?: boolean;\n}\n\n/**\n * 构件 `visual-builder.chat-preview`\n */\nexport\n@defineElement(\"visual-builder.chat-preview\", {\n styleTexts: [styleText],\n})\nclass ChatPreview extends ReactNextElement {\n @property({ attribute: false })\n accessor storyboard: BrickConf | BrickConf[] | undefined;\n\n @property()\n accessor theme: string | undefined;\n\n @property()\n accessor uiVersion: string | undefined;\n\n @property()\n accessor app: MicroApp | undefined;\n\n @property({ type: Boolean })\n accessor inspecting: boolean | undefined;\n\n @event({ type: \"activeTarget.change\" })\n accessor #activeTargetChangeEvent!: EventEmitter<InspectSelector | undefined>;\n #handleActiveTargetChange = (target: InspectSelector | undefined) => {\n this.#activeTargetChangeEvent.emit(target);\n };\n\n @method()\n select(payload: InspectSelector) {\n const iframeWin = this.shadowRoot?.querySelector(\"iframe\")?.contentWindow;\n iframeWin?.postMessage(\n {\n channel: \"chat-preview\",\n type: \"select\",\n payload,\n },\n location.origin\n );\n }\n\n render() {\n return (\n <ChatPreviewComponent\n storyboard={this.storyboard}\n theme={this.theme}\n uiVersion={this.uiVersion}\n app={this.app}\n inspecting={this.inspecting}\n onActiveTargetChange={this.#handleActiveTargetChange}\n />\n );\n }\n}\n\nexport interface ChatPreviewComponentProps extends ChatPreviewProps {\n onActiveTargetChange?(target: InspectSelector | undefined): void;\n}\n\nexport function ChatPreviewComponent({\n storyboard,\n theme,\n uiVersion,\n app,\n inspecting,\n onActiveTargetChange,\n}: ChatPreviewComponentProps) {\n const iframeRef = useRef<HTMLIFrameElement>();\n const [ready, setReady] = useState(false);\n const [initialized, setInitialized] = useState(false);\n const [scroll, setScroll] = useState({ x: 0, y: 0 });\n const [hoverOutlines, setHoverOutlines] = useState<InspectOutline[]>([]);\n const [activeOutlines, setActiveOutlines] = useState<InspectOutline[]>([]);\n const [adjustedHoverOutlines, setAdjustedHoverOutlines] = useState<\n InspectOutline[]\n >([]);\n const [adjustedActiveOutlines, setAdjustedActiveOutlines] = useState<\n InspectOutline[]\n >([]);\n\n const handleIframeLoad = useCallback(() => {\n const check = () => {\n const iframeWin = iframeRef.current?.contentWindow as PreviewWindow;\n if (iframeWin?._preview_only_render) {\n setReady(true);\n } else {\n setTimeout(check, 100);\n }\n };\n check();\n }, []);\n\n useEffect(() => {\n if (!ready) {\n return;\n }\n const pkg = __secret_internals.getBrickPackagesById(\n \"bricks/visual-builder\"\n );\n if (!pkg) {\n throw new Error(\n \"Cannot find preview agent package: bricks/visual-builder\"\n );\n }\n const inject = (iframeRef.current?.contentWindow as PreviewWindow)\n ?._preview_only_inject;\n inject(\"visual-builder.inject-chat-preview-agent\", {\n ...pkg,\n filePath: `${location.origin}${getBasePath()}${\n window.PUBLIC_ROOT ?? \"\"\n }${pkg.filePath}`,\n });\n }, [ready]);\n\n useEffect(() => {\n if (!ready) {\n return;\n }\n const render = (iframeRef.current?.contentWindow as PreviewWindow)\n ?._preview_only_render;\n if (!render) {\n return;\n }\n render(\n \"yaml\",\n {\n yaml: safeDump(storyboard, {\n schema: JSON_SCHEMA,\n skipInvalid: true,\n noRefs: true,\n noCompatMode: true,\n }),\n },\n {\n app,\n theme,\n uiVersion,\n }\n );\n }, [app, ready, storyboard, theme, uiVersion]);\n\n const handleMouseOut = useMemo(() => {\n if (!initialized) {\n return;\n }\n return () => {\n // Delay posting message to allow iframe inner hovering message be sent before\n // mouse out from iframe itself.\n setTimeout(() => {\n window.postMessage({\n channel: \"chat-preview\",\n type: \"inspect-hover\",\n payload: { outlines: [] },\n });\n }, 100);\n };\n }, [initialized]);\n\n useEffect(() => {\n const listener = (event: MessageEvent) => {\n if (event.data?.channel === \"chat-preview\") {\n switch (event.data.type) {\n case \"initialized\":\n setInitialized(true);\n break;\n case \"inspect-hover\":\n setHoverOutlines(event.data.payload.outlines);\n break;\n case \"scroll\":\n setScroll(event.data.payload);\n break;\n case \"inspect-active\":\n setActiveOutlines(event.data.payload.outlines);\n break;\n }\n }\n };\n window.addEventListener(\"message\", listener);\n return () => {\n window.removeEventListener(\"message\", listener);\n };\n }, []);\n\n useEffect(() => {\n if (!initialized) {\n return;\n }\n iframeRef.current?.contentWindow?.postMessage(\n {\n channel: \"chat-preview\",\n type: \"toggle-inspecting\",\n payload: {\n inspecting,\n },\n },\n location.origin\n );\n }, [initialized, inspecting]);\n\n const adjustOutlines = useCallback(\n (outlines: InspectOutline[]): InspectOutline[] => {\n return outlines.map((outline) => {\n const minScale = 1;\n const offsetLeft = iframeRef?.current?.offsetLeft ?? 0;\n const offsetTop = iframeRef?.current?.offsetTop ?? 0;\n const { width, height, left, top, ...rest } = outline;\n return {\n width: width * minScale,\n height: height * minScale,\n left: (left - scroll.x) * minScale + offsetLeft,\n top: (top - scroll.y) * minScale + offsetTop,\n ...rest,\n };\n });\n },\n [scroll.x, scroll.y]\n );\n\n useEffect(() => {\n onActiveTargetChange(activeOutlines[0]);\n }, [activeOutlines, onActiveTargetChange]);\n\n useEffect(() => {\n setAdjustedActiveOutlines(adjustOutlines(activeOutlines));\n }, [activeOutlines, adjustOutlines]);\n\n useEffect(() => {\n setAdjustedHoverOutlines(adjustOutlines(hoverOutlines));\n }, [hoverOutlines, adjustOutlines]);\n\n return (\n <div className={classNames(\"container\", { inspecting })}>\n <iframe\n ref={iframeRef}\n src={`${getBasePath()}_brick-preview-v3_/preview/`}\n loading=\"lazy\"\n onLoad={handleIframeLoad}\n onMouseOut={handleMouseOut}\n />\n {adjustedHoverOutlines.map((outline, index) => (\n <InspectOutlineComponent key={index} variant=\"hover\" {...outline} />\n ))}\n {adjustedActiveOutlines.map((outline, index) => (\n <InspectOutlineComponent key={index} variant=\"active\" {...outline} />\n ))}\n </div>\n );\n}\n","// istanbul ignore file: working in progress\n// https://github.com/facebook/react/blob/cae635054e17a6f107a39d328649137b83f25972/packages/react-devtools-shared/src/backend/views/Highlighter/index.js\nimport { debounce } from \"lodash\";\nimport type {\n InspectOutline,\n InspectSelector,\n InspectTarget,\n} from \"./interfaces.js\";\n\nlet isInspecting = false;\nconst IID_ITEM_PREFIX = \"item:\";\nlet currentHoverElement: Element | null = null;\n\nexport function toggleInspecting(inspecting: boolean): void {\n if (isInspecting === inspecting) {\n return;\n }\n isInspecting = inspecting;\n\n const method = inspecting ? \"addEventListener\" : \"removeEventListener\";\n\n window[method](\"click\", onClick as EventListener, true);\n window[method](\"mousedown\", onMouseEvent as EventListener, true);\n window[method](\"mouseover\", onMouseEvent as EventListener, true);\n window[method](\"mouseup\", onMouseEvent as EventListener, true);\n window[method](\"pointerdown\", onMouseEvent as EventListener, true);\n window[method](\"pointerover\", onMouseEvent as EventListener, true);\n window[method](\"pointerup\", onMouseEvent as EventListener, true);\n window[method](\"pointerleave\", onPointerLeave as EventListener, true);\n window[method](\"pointermove\", onPointerMove as EventListener, true);\n}\n\nfunction getElementsIncludingInShadowDOM(\n iid: string,\n isRoot?: boolean\n): HTMLElement[] {\n const elements: HTMLElement[] = [];\n\n function walk(root: Document | ShadowRoot) {\n const candidates = root.querySelectorAll<HTMLElement>(\n isRoot ? iid : `[data-iid=\"${iid}\"]`\n );\n elements.push(...candidates);\n\n // If elements are found in the document, we should stop searching in shadow DOM.\n if (root === document && candidates.length > 0) {\n return;\n }\n\n // These useBrick in v3 bricks will be inside shadow DOM.\n for (const item of root.querySelectorAll(\"*\")) {\n if (item.shadowRoot) {\n walk(item.shadowRoot);\n }\n }\n }\n\n walk(document);\n\n return elements;\n}\n\nexport function select(selector: InspectSelector) {\n const iid = `${selector.type}:${selector.uuid}`;\n const elements = getElementsIncludingInShadowDOM(iid);\n window.parent.postMessage(\n {\n channel: \"chat-preview\",\n type: \"inspect-active\",\n payload: {\n outlines: elements.map((element) =>\n getTargetOutline({ ...selector, element, label: getLabel(element) })\n ),\n },\n },\n location.origin\n );\n}\n\nfunction onClick(event: MouseEvent): void {\n event.preventDefault();\n event.stopPropagation();\n selectByClick(event);\n}\n\nfunction onMouseEvent(event: MouseEvent): void {\n event.preventDefault();\n event.stopPropagation();\n}\n\nconst hoverOnTarget = debounce(\n (eventTargets: EventTarget[], clientX: number, clientY: number) => {\n let targets = getPossibleBrickTargets(eventTargets);\n if (targets.length === 0) {\n for (const element of eventTargets) {\n if (element instanceof HTMLElement && element.shadowRoot) {\n targets = getPossibleBrickTargets(\n element.shadowRoot.elementsFromPoint(clientX, clientY)\n );\n break;\n }\n }\n }\n const hoverElement = targets.length > 0 ? targets[0].element : null;\n if (hoverElement !== currentHoverElement) {\n currentHoverElement = hoverElement;\n window.parent.postMessage(\n {\n channel: \"chat-preview\",\n type: \"inspect-hover\",\n payload: {\n outlines: targets.map(getTargetOutline),\n },\n },\n location.origin\n );\n }\n },\n 20,\n { leading: true }\n);\n\nfunction onPointerMove(event: MouseEvent): void {\n // `event.composedPath()` will be unavailable in debounced callback\n hoverOnTarget(event.composedPath(), event.clientX, event.clientY);\n}\n\nfunction onPointerLeave(event: MouseEvent): void {\n event.preventDefault();\n event.stopPropagation();\n currentHoverElement = null;\n window.parent.postMessage(\n {\n channel: \"chat-preview\",\n type: \"inspect-hover\",\n payload: { outlines: [] },\n },\n location.origin\n );\n}\n\nfunction selectByClick(event: MouseEvent): void {\n const targets = getPossibleBrickTargets(event.composedPath());\n window.parent.postMessage(\n {\n channel: \"chat-preview\",\n type: \"inspect-active\",\n payload: {\n outlines: targets.map(getTargetOutline),\n },\n },\n location.origin\n );\n}\n\nfunction getPossibleBrickTargets(eventTargets: EventTarget[]) {\n const inspectTargets: InspectTarget[] = [];\n eventTargets.forEach((item) => {\n let iid: string | undefined;\n if (\n (item as Node).nodeType === Node.ELEMENT_NODE &&\n item instanceof HTMLElement &&\n (iid = item.dataset.iid) &&\n iid.startsWith(IID_ITEM_PREFIX)\n ) {\n const uuid = iid.substring(IID_ITEM_PREFIX.length);\n inspectTargets.push({\n type: \"item\",\n uuid,\n label: getLabel(item),\n element: item,\n });\n }\n });\n return inspectTargets;\n}\n\nfunction getTargetOutline(target: InspectTarget): InspectOutline {\n const { element, type, uuid, label } = target;\n const { width, height, left, top } = element.getBoundingClientRect();\n return {\n width,\n height,\n left: left + window.scrollX,\n top: top + window.scrollY,\n type,\n uuid,\n label,\n };\n}\n\nfunction getLabel(element: Element) {\n return element.tagName.toLowerCase().split(\".\").pop();\n}\n","import { createProviderClass } from \"@next-core/utils/general\";\nimport { select, toggleInspecting } from \"./chat-preview/inspector\";\n\nlet injected = false;\n\nexport async function injectChatPreviewAgent(): Promise<unknown> {\n if (injected) {\n return;\n }\n injected = true;\n import(\"./chat-preview/styles.css\");\n\n sendMessage({ type: \"initialized\" });\n\n window.addEventListener(\"message\", (e) => {\n if (e.data?.channel === \"chat-preview\") {\n switch (e.data.type) {\n case \"toggle-inspecting\":\n toggleInspecting(e.data.payload.inspecting);\n break;\n case \"select\":\n select(e.data.payload);\n break;\n }\n }\n });\n\n window.addEventListener(\"scroll\", () => {\n sendMessage({\n type: \"scroll\",\n payload: {\n x: window.scrollX,\n y: window.scrollY,\n },\n });\n });\n}\n\nfunction sendMessage(message: object) {\n window.parent.postMessage(\n {\n channel: \"chat-preview\",\n ...message,\n },\n location.origin\n );\n}\n\ncustomElements.define(\n \"visual-builder.inject-chat-preview-agent\",\n createProviderClass(injectChatPreviewAgent)\n);\n","import React, { useCallback, useEffect, useRef, useState } from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport type { BrickConf, MicroApp } from \"@next-core/types\";\nimport classNames from \"classnames\";\nimport { __secret_internals, getBasePath } from \"@next-core/runtime\";\nimport type { PreviewWindow } from \"@next-core/preview/types\";\nimport { JSON_SCHEMA, safeDump } from \"js-yaml\";\nimport { isObject } from \"@next-core/utils/general\";\nimport styleText from \"./styles.shadow.css\";\nimport previewStyleText from \"./preview.shadow.css\";\n\nconst { defineElement, property } = createDecorators();\n\nexport interface PreGeneratedPreviewProps {\n generations?: AttributeGeneration[];\n category?: PreviewCategory;\n theme?: string;\n uiVersion?: string;\n app?: MicroApp;\n}\n\nexport interface AttributeGeneration {\n instanceId: string;\n objectId: string;\n propertyId: string;\n propertyName: string;\n displayLevel: number;\n rwType: string;\n category: PreviewCategory;\n storyboard: BrickConf | BrickConf[];\n mockData: unknown[];\n}\n\nexport type PreviewCategory =\n | \"detail-item\"\n | \"form-item\"\n | \"table-column\"\n | \"card-item\"\n | \"metric-item\"\n | \"value\";\n\n/**\n * 构件 `visual-builder.pre-generated-preview`\n *\n * @internal\n */\nexport\n@defineElement(\"visual-builder.pre-generated-preview\", {\n styleTexts: [styleText],\n})\nclass PreGeneratedPreview extends ReactNextElement {\n @property({ attribute: false })\n accessor generations: AttributeGeneration[] | undefined;\n\n /**\n * @default \"value\"\n */\n @property()\n accessor category: PreviewCategory | undefined;\n\n @property()\n accessor theme: string | undefined;\n\n @property()\n accessor uiVersion: string | undefined;\n\n @property()\n accessor app: MicroApp | undefined;\n\n render() {\n return (\n <PreGeneratedPreviewComponent\n generations={this.generations}\n category={this.category}\n theme={this.theme}\n uiVersion={this.uiVersion}\n app={this.app}\n />\n );\n }\n}\n\nexport interface PreGeneratedPreviewComponentProps\n extends PreGeneratedPreviewProps {\n //\n}\n\nexport function PreGeneratedPreviewComponent({\n generations,\n category,\n theme,\n uiVersion,\n app,\n}: PreGeneratedPreviewComponentProps) {\n const iframeRef = useRef<HTMLIFrameElement>();\n const [ready, setReady] = useState(false);\n const [injected, setInjected] = useState(false);\n\n const handleIframeLoad = useCallback(() => {\n const check = () => {\n const iframeWin = iframeRef.current?.contentWindow as PreviewWindow;\n if (iframeWin?._preview_only_render) {\n setReady(true);\n } else {\n setTimeout(check, 100);\n }\n };\n check();\n }, []);\n\n useEffect(() => {\n if (!ready) {\n return;\n }\n const pkg = __secret_internals.getBrickPackagesById(\n \"bricks/visual-builder\"\n );\n if (!pkg) {\n throw new Error(\n \"Cannot find preview agent package: bricks/visual-builder\"\n );\n }\n const inject = (iframeRef.current!.contentWindow as PreviewWindow)!\n ._preview_only_inject;\n\n const fixedPkg = {\n ...pkg,\n filePath: `${location.origin}${getBasePath()}${\n window.PUBLIC_ROOT ?? \"\"\n }${pkg.filePath}`,\n };\n\n Promise.allSettled(\n [\n \"visual-builder.pre-generated-table-view\",\n \"visual-builder.pre-generated-container\",\n ].map((brick) => inject(brick, fixedPkg, undefined, true))\n ).then(() => {\n setInjected(true);\n });\n }, [ready]);\n\n useEffect(() => {\n if (!injected) {\n return;\n }\n const render = (iframeRef.current?.contentWindow as PreviewWindow)\n ?._preview_only_render;\n if (!render) {\n return;\n }\n\n const candidatesMap = new Map<\n string,\n Map<string, Map<number, AttributeGeneration>>\n >();\n const mocksMap = new Map<string, unknown[]>();\n\n for (const generation of generations) {\n let candidatesByReadWriteType = candidatesMap.get(generation.propertyId);\n if (!candidatesByReadWriteType) {\n candidatesMap.set(\n generation.propertyId,\n (candidatesByReadWriteType = new Map())\n );\n }\n let candidatesByDisplayLevel = candidatesByReadWriteType.get(\n generation.rwType\n );\n if (!candidatesByDisplayLevel) {\n candidatesByReadWriteType.set(\n generation.rwType,\n (candidatesByDisplayLevel = new Map())\n );\n }\n candidatesByDisplayLevel.set(generation.displayLevel ?? 0, generation);\n\n mocksMap.set(generation.propertyId, generation.mockData);\n }\n\n const tableChildren: BrickConf[] = [\n {\n brick: \"div\",\n properties: {\n textContent: \"属性\",\n className: \"head-cell\",\n },\n },\n {\n brick: \"div\",\n properties: {\n textContent: \"类别\",\n className: \"head-cell\",\n },\n },\n {\n brick: \"div\",\n properties: {\n textContent: \"展示等级\",\n className: \"head-cell last-col-cell\",\n style: {\n gridColumn: \"span 5\",\n textAlign: \"center\",\n },\n },\n },\n ];\n const table: BrickConf = {\n brick: \"visual-builder.pre-generated-table-view\",\n properties: {\n style: {\n gridTemplateColumns: \"120px 80px repeat(5, 1fr)\",\n },\n },\n children: tableChildren,\n };\n\n let propertyIndex = 0;\n for (const [propertyId, candidatesByReadWriteType] of candidatesMap) {\n let readWriteTypeIndex = 0;\n const isLastProperty = propertyIndex === candidatesMap.size - 1;\n for (const [rwType, candidates] of candidatesByReadWriteType) {\n if (readWriteTypeIndex === 0) {\n let propertyName: string | undefined;\n\n for (const candidate of candidates.values()) {\n propertyName = candidate.propertyName ?? propertyId;\n break;\n }\n\n tableChildren.push({\n brick: \"div\",\n properties: {\n textContent: propertyName,\n className: classNames(\"body-cell\", {\n \"last-row-cell\": isLastProperty,\n }),\n style: {\n gridRow: `span ${candidatesByReadWriteType.size}`,\n },\n },\n });\n }\n\n const isLastRow =\n isLastProperty &&\n readWriteTypeIndex === candidatesByReadWriteType.size - 1;\n\n tableChildren.push({\n brick: \"div\",\n properties: {\n textContent: rwType,\n className: classNames(\"body-cell\", { \"last-row-cell\": isLastRow }),\n },\n });\n\n for (let i = -2; i < 3; i++) {\n const candidate = candidates.get(i);\n const candidateCategory = candidate?.category ?? category;\n\n let dataSource: unknown;\n if (candidate?.mockData?.length) {\n const mockValue =\n candidate.mockData[\n Math.floor(Math.random() * candidate.mockData.length)\n ];\n switch (candidateCategory) {\n case \"detail-item\":\n case \"form-item\":\n case \"card-item\":\n dataSource = {\n [propertyId]: mockValue,\n };\n break;\n case \"table-column\":\n dataSource = {\n cellData: mockValue,\n };\n }\n }\n\n const candidateChildren = []\n .concat(candidate?.storyboard ?? [])\n .filter((brick) => {\n if (!isObject(brick)) {\n // eslint-disable-next-line no-console\n console.error(\"Unexpected type of storyboard:\", typeof brick);\n return false;\n }\n return true;\n });\n candidateChildren.forEach(fixBrickConf);\n\n let container: BrickConf;\n switch (candidateCategory) {\n case \"form-item\":\n container = {\n brick: \"eo-form\",\n properties: {\n layout: \"inline\",\n values: dataSource,\n className: \"form-container\",\n },\n children: candidateChildren.map((child) => ({\n ...child,\n errorBoundary: true,\n })),\n };\n break;\n case \"card-item\":\n container = {\n brick: \":forEach\",\n dataSource: [dataSource],\n children: candidateChildren.map((child) => ({\n ...child,\n errorBoundary: true,\n })),\n };\n break;\n default:\n container = {\n brick: \"visual-builder.pre-generated-container\",\n properties: {\n useBrick: candidateChildren,\n dataSource,\n },\n errorBoundary: true,\n };\n }\n\n tableChildren.push({\n brick: \"div\",\n properties: {\n className: classNames(\"body-cell\", {\n \"last-col-cell\": i === 2,\n \"last-row-cell\": isLastRow,\n }),\n },\n children: [\n {\n ...container,\n errorBoundary: true,\n },\n ],\n });\n }\n\n readWriteTypeIndex++;\n }\n\n propertyIndex++;\n }\n\n // const tbodyChildren: BrickConf[] = [];\n // const table: BrickConf = {\n // brick: \"table\",\n // properties: {\n // className: \"preview-table\",\n // },\n // children: [\n // {\n // brick: \"thead\",\n // children: [\n // {\n // brick: \"tr\",\n // slot: \"head\",\n // children: [\n // {\n // brick: \"th\",\n // properties: {\n // textContent: \"属性\",\n // },\n // },\n // {\n // brick: \"th\",\n // properties: {\n // textContent: \"类别\",\n // },\n // },\n // {\n // brick: \"th\",\n // properties: {\n // textContent: \"展示等级\",\n // colSpan: 5,\n // style: {\n // textAlign: \"center\",\n // }\n // },\n // },\n // ],\n // }\n // ]\n // },\n // {\n // brick: \"tbody\",\n // children: tbodyChildren,\n // },\n // ],\n // };\n\n // for (const [propertyId, candidatesByReadWriteType] of candidatesMap) {\n // let readWriteTypeIndex = 0;\n // for (const [rwType, candidates] of candidatesByReadWriteType) {\n\n // const row: BrickConf[] = []\n\n // if (readWriteTypeIndex === 0) {\n // let propertyName: string | undefined;\n\n // for (const candidate of candidates.values()) {\n // propertyName = candidate.propertyName ?? propertyId;\n // break;\n // }\n\n // row.push({\n // brick: \"td\",\n // properties: {\n // textContent: propertyName,\n // rowSpan: candidatesByReadWriteType.size,\n // },\n // })\n // }\n\n // row.push({\n // brick: \"td\",\n // properties: {\n // textContent: rwType,\n // },\n // });\n\n // for (let i = -2; i < 3; i++) {\n // const candidate = candidates.get(i);\n\n // let dataSource: unknown;\n // if (candidate?.mockData?.length) {\n // const mockValue = candidate.mockData[\n // Math.floor(Math.random() * candidate.mockData.length)\n // ];\n // switch (candidate.category ?? category) {\n // case \"detail-item\":\n // dataSource = {\n // [propertyId]: mockValue\n // };\n // break;\n // case \"table-column\":\n // dataSource = {\n // cellData: mockValue\n // };\n // }\n // }\n\n // row.push({\n // brick: \"td\",\n // children: [\n // {\n // brick: \"visual-builder.pre-generated-container\",\n // properties: {\n // useBrick: candidate?.storyboard ?? [],\n // dataSource,\n // }\n // }\n // ],\n // });\n // }\n // tbodyChildren.push({\n // brick: \"tr\",\n // children: row,\n // });\n\n // readWriteTypeIndex++;\n // }\n // }\n\n render(\n \"yaml\",\n {\n yaml: safeDump(table, {\n schema: JSON_SCHEMA,\n skipInvalid: true,\n noRefs: true,\n noCompatMode: true,\n }),\n },\n {\n app,\n theme,\n uiVersion,\n styleText: previewStyleText,\n }\n );\n }, [app, injected, generations, theme, uiVersion, category]);\n\n // useEffect(() => {\n // if (!injected) {\n // return;\n // }\n // const render = (iframeRef.current?.contentWindow as PreviewWindow)\n // ?._preview_only_render;\n // if (!render) {\n // return;\n // }\n\n // const candidatesMap = new Map<string, AttributeCandidate[]>();\n // const mocksMap = new Map<string, unknown[]>();\n // let maxCandidatesCount = 0;\n\n // for (const generation of generations) {\n // candidatesMap.set(generation.id, generation.candidates);\n // mocksMap.set(generation.id, generation.mocks);\n // maxCandidatesCount = Math.max(\n // maxCandidatesCount,\n // generation.candidates.length\n // );\n // }\n\n // const storyboards: BrickConf[] = [];\n\n // for (let i = 0; i < maxCandidatesCount; i++) {\n // const brick: BrickConf = {\n // brick: \"eo-descriptions\",\n // properties: {\n // column: 1,\n // dataSource: Object.fromEntries(\n // Array.from(mocksMap.entries()).map(([id, mocks]) => [\n // id,\n // mocks[\n // i < mocks.length ? i : Math.floor(Math.random() * mocks.length)\n // ],\n // ])\n // ),\n // list: generations.map((generation) => ({\n // label: generation.name,\n // useChildren: `[${generation.id}]`,\n // })),\n // },\n // children: Array.from(candidatesMap.entries()).flatMap(\n // ([id, candidates]) => {\n // const children = ([] as BrickConf[]).concat(\n // candidates[\n // i < candidates.length\n // ? i\n // : Math.floor(Math.random() * candidates.length)\n // ].storyboard\n // );\n // return children.map((child) => ({\n // ...child,\n // slot: `[${id}]`,\n // }));\n // }\n // ),\n // };\n // storyboards.push(brick);\n // }\n\n // render(\n // \"yaml\",\n // {\n // yaml: safeDump(storyboards, {\n // schema: JSON_SCHEMA,\n // skipInvalid: true,\n // noRefs: true,\n // noCompatMode: true,\n // }),\n // },\n // {\n // app,\n // theme,\n // uiVersion,\n // styleText: `#preview-root { display: flex; flex-wrap: wrap; gap: 2em; }`,\n // }\n // );\n // }, [app, injected, generations, theme, uiVersion]);\n\n return (\n <div className={classNames(\"container\")}>\n <iframe\n ref={iframeRef}\n src={`${getBasePath()}_brick-preview-v3_/preview/`}\n loading=\"lazy\"\n onLoad={handleIframeLoad}\n />\n </div>\n );\n}\n\nfunction fixBrickConf(brick: BrickConf) {\n if (brick.properties?.prefix) {\n // eslint-disable-next-line no-console\n console.error(\"Unexpected readonly property of 'prefix' in:\", brick);\n delete brick.properties.prefix;\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 * 构件 `visual-builder.pre-generated-table-view`\n *\n * @internal\n */\nexport\n@defineElement(\"visual-builder.pre-generated-table-view\", {\n styleTexts: [styleText],\n})\nclass PreGeneratedTableView extends ReactNextElement {\n render() {\n return <PreGeneratedTableViewComponent />;\n }\n}\n\nexport function PreGeneratedTableViewComponent() {\n return <slot />;\n}\n","import React from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport { ReactUseMultipleBricks } from \"@next-core/react-runtime\";\nimport type { UseBrickConf } from \"@next-core/types\";\nimport \"@next-core/theme\";\nimport styleText from \"./styles.shadow.css\";\n\nconst { defineElement, property } = createDecorators();\n\n/**\n * 构件 `visual-builder.pre-generated-container`\n *\n * @internal\n */\nexport\n@defineElement(\"visual-builder.pre-generated-container\", {\n styleTexts: [styleText],\n})\nclass PreGeneratedContainer extends ReactNextElement {\n @property({ attribute: false })\n accessor useBrick: UseBrickConf | undefined;\n\n @property({ attribute: false })\n accessor dataSource: unknown | undefined;\n\n render() {\n return (\n <PreGeneratedContainerComponent\n useBrick={this.useBrick}\n dataSource={this.dataSource}\n />\n );\n }\n}\n\nexport interface PreGeneratedContainerProps {\n useBrick?: UseBrickConf;\n dataSource?: unknown;\n}\n\nexport function PreGeneratedContainerComponent({\n useBrick,\n dataSource,\n}: PreGeneratedContainerProps) {\n return (\n <ReactUseMultipleBricks\n useBrick={useBrick}\n data={dataSource}\n errorBoundary\n />\n );\n}\n","import { __secret_internals, customEditors } from \"@next-core/runtime\";\nimport { createProviderClass } from \"@next-core/utils/general\";\n\nexport async function checkEditorByName(name: string): Promise<boolean> {\n try {\n await __secret_internals.loadEditors([name]);\n } catch {\n return false;\n }\n const editor = customEditors.get(name);\n\n return !!editor;\n}\n\ncustomElements.define(\n \"visual-builder.check-editor-by-name\",\n createProviderClass(checkEditorByName)\n);\n","import { createProviderClass } from \"@next-core/utils/general\";\nimport { collectMemberUsage, MemberUsage } from \"@next-core/utils/storyboard\";\nimport { ContextConf } from \"@next-core/types\";\n\nexport function getDataDependency(\n contextConfs: ContextConf[],\n keyword: string\n): Map<ContextConf, MemberUsage> {\n const depsMap = new Map<ContextConf, MemberUsage>();\n\n for (const contextConf of contextConfs) {\n const stats = collectMemberUsage(\n [contextConf.if, contextConf.value, contextConf.resolve],\n keyword\n );\n depsMap.set(contextConf, stats);\n }\n\n return depsMap;\n}\n\ncustomElements.define(\n \"visual-builder.get-data-deps\",\n createProviderClass(getDataDependency)\n);\n","import { ContextConf } from \"@next-core/types\";\nimport { createProviderClass } from \"@next-core/utils/general\";\nimport { MenuIcon } from \"@next-shared/general/types\";\nimport { getDataDependency } from \"./get-data-dependency\";\nimport { cloneDeep } from \"lodash\";\n\ninterface DataItem extends ContextConf {\n $key?: string;\n path?: string;\n}\n\ninterface NodeItem {\n name: string;\n key: string;\n path?: string;\n icon?: MenuIcon;\n data?: DataItem;\n unreachable?: boolean;\n children?: NodeItem[];\n}\n\ninterface DepsItem {\n deps: string[];\n node: NodeItem;\n}\n\ninterface DepsOptions {\n nodeList?: NodeItem[];\n dependencyList: DepsItem[];\n parents?: NodeItem[];\n result?: NodeItem[];\n}\n\nfunction processNodeList(nodeList: NodeItem[], options: DepsOptions) {\n nodeList.forEach((node) => {\n processNodeItem(node, { ...options, nodeList });\n });\n}\n\nfunction processNodeItem(nodeItem: NodeItem, options: DepsOptions) {\n const { dependencyList, nodeList, parents, result } = options;\n\n const data = cloneDeep(nodeItem);\n result.push(data);\n\n const find = dependencyList.find((dep) => dep.node.key === data.key);\n\n if (find.deps?.length && !parents.some((item) => item.key === data.key)) {\n const children = (data.children = []) as NodeItem[];\n processDataDeps(find, {\n dependencyList,\n nodeList,\n parents: [...parents, data],\n result: children,\n });\n }\n}\n\nfunction processDataDeps(depsData: DepsItem, options: DepsOptions) {\n const collects = [] as NodeItem[];\n\n depsData.deps.forEach((name) => {\n // 有可能存在同名的两个数据,一起展示\n const matches = options.nodeList.filter((item) => item.name === name);\n collects.push(...matches);\n });\n\n processNodeList(collects, options);\n}\n\nexport function getDependencyTree(\n nodeDataList: NodeItem[],\n options: {\n dataType: string;\n }\n): NodeItem[] {\n const nodeList = nodeDataList;\n const dependencyMap = getDataDependency(\n nodeList.map((item) => item.data),\n options.dataType\n );\n\n const dependencyList = [] as DepsItem[];\n for (const [curData, value] of dependencyMap) {\n dependencyList.push({\n deps: Array.from(value.usedProperties),\n node: nodeList.find((node) => node.data === curData),\n });\n }\n\n const result = [] as NodeItem[];\n\n processNodeList(nodeList, {\n result,\n dependencyList,\n parents: [],\n });\n\n return result;\n}\n\ncustomElements.define(\n \"visual-builder.get-dependency-tree\",\n createProviderClass(getDependencyTree)\n);\n","import type { BrickConf } from \"@next-core/types\";\nimport { pick } from \"lodash\";\nimport type { CSSProperties } from \"react\";\nimport type { VisualConfig, VisualStyle } from \"./raw-data-interfaces\";\n\nexport function convertToStoryboard(\n config: VisualConfig,\n attr: string\n): BrickConf | null {\n const attrAccessor = `[${JSON.stringify(attr)}]`;\n let brickItem: BrickConf;\n\n switch (config.display) {\n case \"link\":\n case \"text\": {\n brickItem = getPlainBrick(config, attrAccessor);\n if (config.type === \"struct-list\" && !config.countOnly) {\n brickItem = {\n brick: \"eo-tag\",\n errorBoundary: true,\n children: [brickItem],\n };\n } else if (config.display === \"link\") {\n brickItem = {\n brick: \"eo-link\",\n errorBoundary: true,\n children: [brickItem],\n };\n }\n break;\n }\n case \"tag\": {\n const colorSuffix =\n config.style?.variant === \"background\" ? \"-inverse\" : \"\";\n const valueAccessor = getValueAccessor(config, attrAccessor);\n brickItem = {\n brick: \"eo-tag\",\n errorBoundary: true,\n properties: {\n textContent: `<% ${valueAccessor} %>`,\n size: getTagSize(config.style?.size),\n color: config.style?.background\n ? `${config.style.background}${colorSuffix}`\n : config.style?.palette\n ? `<% \\`\\${(${JSON.stringify(config.style.palette)})[${valueAccessor}] ?? \"gray\"}${colorSuffix}\\` %>`\n : `gray${colorSuffix}`,\n outline: config.style?.variant === \"outline\",\n },\n };\n break;\n }\n case \"icon\": {\n brickItem = getIconBrick(config, attrAccessor);\n break;\n }\n case \"icon+text\": {\n const iconBrick = getIconBrick(config, attrAccessor);\n const textBrick = getPlainBrick(config, attrAccessor);\n brickItem = {\n brick: \"span\",\n errorBoundary: true,\n properties: {\n style: {\n display: \"inline-flex\",\n alignItems: \"center\",\n gap: \"0.5em\",\n },\n },\n children: [iconBrick, textBrick],\n };\n break;\n }\n default:\n return null;\n }\n\n if (config.type !== \"struct-list\" || config.countOnly) {\n return brickItem;\n }\n\n const maxItems = Number(config.maxItems) || 3;\n return {\n brick: \"span\",\n errorBoundary: true,\n properties: {\n style: {\n display: \"inline-flex\",\n alignItems: \"center\",\n gap: \"0.5em\",\n },\n },\n children: [\n {\n brick: \":forEach\",\n dataSource: `<% DATA${attrAccessor}.slice(0, ${maxItems}) %>`,\n children: [brickItem],\n },\n {\n brick: \"eo-link\",\n if: `<% DATA${attrAccessor}.length > ${maxItems} %>`,\n properties: {\n textContent: `<% \\`+ \\${DATA${attrAccessor}.length - ${maxItems}}\\` %>`,\n },\n },\n ],\n };\n}\n\nfunction getIconBrick(config: VisualConfig, attrAccessor: string): BrickConf {\n if (config.type === \"boolean\") {\n const valueAccessor = getValueAccessor(config, attrAccessor);\n const trueIcon = config.true?.icon ?? \"check\";\n const falseIcon = config.false?.icon ?? \"xmark\";\n const trueStyle = getPlainStyle(config.true?.style);\n const falseStyle = getPlainStyle(config.false?.style);\n return {\n brick: \"eo-icon\",\n errorBoundary: true,\n properties: {\n lib: \"fa\",\n prefix: \"fas\",\n icon: `<% ${valueAccessor} ? ${JSON.stringify(trueIcon)} : ${JSON.stringify(falseIcon)} %>`,\n style: `<% ${valueAccessor} ? ${JSON.stringify(trueStyle)} : ${JSON.stringify(falseStyle)} %>`,\n },\n };\n }\n return {\n brick: \"eo-icon\",\n errorBoundary: true,\n properties: {\n lib: \"fa\",\n prefix: \"fas\",\n icon: config.icon,\n style: getPlainStyle(config.style),\n },\n };\n}\n\nfunction getPlainBrick(config: VisualConfig, attrAccessor: string): BrickConf {\n if (config.type === \"struct-list\" && config.countOnly) {\n return {\n brick: \"span\",\n properties: {\n textContent: `<% \\`\\${DATA${attrAccessor}.length}\\` %>`,\n },\n };\n }\n\n const valueAccessor = getValueAccessor(config, attrAccessor);\n const value = `<% ${valueAccessor} %>`;\n switch (config.formatter?.type) {\n case \"number\":\n return {\n brick: \"eo-formatter-number\",\n errorBoundary: true,\n properties: {\n value,\n type: config.formatter.format,\n ...pick(config.formatter, [\n \"currency\",\n // \"unit\",\n \"originalUnit\",\n \"decimals\",\n \"thousandsSeparator\",\n ]),\n style: getPlainStyle(config.style),\n },\n };\n case \"date\":\n case \"date-time\":\n return {\n brick: \"eo-humanize-time\",\n errorBoundary: true,\n properties: {\n value,\n type: config.type === \"date\" ? \"date\" : undefined,\n formatter: config.formatter.format,\n style: getPlainStyle(config.style),\n },\n };\n case \"cost-time\":\n return {\n brick: \"eo-humanize-time\",\n errorBoundary: true,\n properties: {\n value,\n isCostTime: true,\n style: getPlainStyle(config.style),\n },\n };\n default: {\n let textContent: string | undefined;\n let style: CSSProperties | string | undefined;\n if (config.type === \"boolean\") {\n const trueContent = config.true?.text ?? \"Yes\";\n const falseContent = config.false?.text ?? \"No\";\n const trueStyle = getPlainStyle(config.true?.style);\n const falseStyle = getPlainStyle(config.false?.style);\n textContent = `<% ${valueAccessor} ? ${JSON.stringify(trueContent)} : ${JSON.stringify(falseContent)} %>`;\n style = `<% ${valueAccessor} ? ${JSON.stringify(trueStyle)} : ${JSON.stringify(falseStyle)} %>`;\n } else {\n textContent = value;\n style = getPlainStyle(config.style);\n }\n return {\n brick: \"span\",\n errorBoundary: true,\n properties: {\n textContent,\n style,\n },\n };\n }\n }\n}\n\nfunction getValueAccessor(config: VisualConfig, attrAccessor: string): string {\n if (\n (config.type === \"struct\" || config.type === \"struct-list\") &&\n config.field\n ) {\n return `${config.type === \"struct\" ? `DATA${attrAccessor}` : \"ITEM\"}[${JSON.stringify(config.field)}]`;\n }\n return `DATA${attrAccessor}`;\n}\n\nfunction getTagSize(size: VisualStyle[\"size\"]): string | undefined {\n switch (size) {\n case \"large\":\n case \"medium\":\n case \"small\":\n return size;\n case \"x-large\":\n return \"large\";\n // case \"x-small\":\n // return \"xs\";\n }\n}\n\nfunction getPlainStyle(\n configStyle: VisualStyle | undefined\n): CSSProperties | undefined {\n if (!configStyle) {\n return;\n }\n const style: CSSProperties = {};\n switch (configStyle.size) {\n // case \"x-small\":\n case \"small\":\n style.fontSize = \"var(--sub-title-font-size-small)\";\n break;\n case \"medium\":\n style.fontSize = \"var(--normal-font-size)\";\n break;\n case \"large\":\n style.fontSize = \"var(--card-title-font-size)\";\n break;\n case \"x-large\":\n style.fontSize = \"var(--title-font-size-larger)\";\n break;\n }\n switch (configStyle.fontWeight) {\n case \"bold\":\n case \"normal\":\n style.fontWeight = configStyle.fontWeight;\n }\n if (configStyle.color) {\n style.color = configStyle.color;\n }\n return style;\n}\n","import React, { useCallback, useEffect, useRef, useState } from \"react\";\nimport { createDecorators, type EventEmitter } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport type { BrickConf, ContextConf, MicroApp } from \"@next-core/types\";\nimport classNames from \"classnames\";\nimport { __secret_internals, getBasePath } from \"@next-core/runtime\";\nimport type { PreviewWindow } from \"@next-core/preview/types\";\nimport { JSON_SCHEMA, safeDump } from \"js-yaml\";\nimport type { VisualConfig } from \"./raw-data-interfaces\";\nimport { convertToStoryboard } from \"./convert\";\nimport styleText from \"./styles.shadow.css\";\nimport previewStyleText from \"./preview.shadow.css\";\n\nconst { defineElement, property, event } = createDecorators();\n\nexport interface RawPreviewProps {\n previewUrl?: string;\n generations?: AttributeGeneration[];\n mocks?: Record<string, unknown>[];\n busy?: boolean;\n category?: PreviewCategory;\n theme?: string;\n uiVersion?: string;\n app?: MicroApp;\n}\n\nexport interface AttributeGeneration {\n generationId?: string;\n objectId: string;\n objectName: string;\n propertyId: string;\n propertyName: string;\n propertyType?: string;\n propertyValues?: unknown[];\n propertyInstanceId?: string;\n comment?: string;\n approved?: boolean;\n candidates: VisualConfig[] | null;\n mockData: Record<string, unknown>[];\n}\n\nexport interface CommentDetail {\n comment: string;\n propertyInstanceId?: string;\n}\n\nexport interface ApproveDetail {\n approved: boolean;\n propertyInstanceId?: string;\n}\n\ninterface BasePreviewMessage {\n channel: \"raw-data-preview\";\n}\n\ninterface CommentMessage extends BasePreviewMessage {\n type: \"comment\";\n payload: CommentDetail;\n}\n\ninterface ApproveMessage extends BasePreviewMessage {\n type: \"approve\";\n payload: ApproveDetail;\n}\n\ninterface ViewAttrPromptMessage extends BasePreviewMessage {\n type: \"viewAttrPrompt\";\n payload: AttributeGeneration;\n}\n\ninterface UpdatePropertyToggleStateMessage extends BasePreviewMessage {\n type: \"updatePropertyToggleState\";\n payload: string[];\n}\n\ninterface UpdatePropertyExpandStateMessage extends BasePreviewMessage {\n type: \"updatePropertyExpandState\";\n payload: string[];\n}\n\ninterface UpdatePropertyApproveStateMessage extends BasePreviewMessage {\n type: \"updatePropertyApproveState\";\n payload: string[];\n}\n\ntype PreviewMessage =\n | CommentMessage\n | ApproveMessage\n | ViewAttrPromptMessage\n | UpdatePropertyToggleStateMessage\n | UpdatePropertyExpandStateMessage\n | UpdatePropertyApproveStateMessage;\n\nexport type PreviewCategory =\n | \"detail-item\"\n | \"form-item\"\n | \"table-column\"\n | \"card-item\"\n | \"metric-item\"\n | \"value\";\n\n/**\n * 构件 `visual-builder.raw-data-preview`\n *\n * @internal\n */\nexport\n@defineElement(\"visual-builder.raw-data-preview\", {\n styleTexts: [styleText],\n})\nclass RawDataPreview extends ReactNextElement {\n @property()\n accessor previewUrl: string | undefined;\n\n @property({ attribute: false })\n accessor generations: AttributeGeneration[] | undefined;\n\n @property({ attribute: false })\n accessor mocks: Record<string, unknown>[] | undefined;\n\n @property({ type: Boolean })\n accessor busy: boolean | undefined;\n\n /**\n * @default \"value\"\n */\n @property()\n accessor category: PreviewCategory | undefined;\n\n @property()\n accessor theme: string | undefined;\n\n @property()\n accessor uiVersion: string | undefined;\n\n @property()\n accessor app: MicroApp | undefined;\n\n @event({ type: \"comment\" })\n accessor #commentEvent: EventEmitter<CommentDetail>;\n\n #handleComment = (detail: CommentDetail) => {\n this.#commentEvent.emit(detail);\n };\n\n @event({ type: \"approve\" })\n accessor #approveEvent: EventEmitter<ApproveDetail>;\n\n #handleApprove = (detail: ApproveDetail) => {\n this.#approveEvent.emit(detail);\n };\n\n @event({ type: \"view.attr.prompt\" })\n accessor #viewAttrPromptEvent: EventEmitter<AttributeGeneration>;\n\n #handleViewAttrPrompt = (detail: AttributeGeneration) => {\n this.#viewAttrPromptEvent.emit(detail);\n };\n\n render() {\n return (\n <RawDataPreviewComponent\n previewUrl={this.previewUrl}\n generations={this.generations}\n mocks={this.mocks}\n busy={this.busy}\n category={this.category}\n theme={this.theme}\n uiVersion={this.uiVersion}\n app={this.app}\n onComment={this.#handleComment}\n onApprove={this.#handleApprove}\n onViewAttrPrompt={this.#handleViewAttrPrompt}\n />\n );\n }\n}\n\nexport interface RawDataPreviewComponentProps extends RawPreviewProps {\n onComment: (detail: CommentDetail) => void;\n onApprove: (detail: ApproveDetail) => void;\n onViewAttrPrompt: (detail: AttributeGeneration) => void;\n}\n\nexport function RawDataPreviewComponent({\n previewUrl,\n generations,\n mocks,\n busy,\n category,\n theme,\n uiVersion,\n app,\n onComment,\n onApprove,\n onViewAttrPrompt,\n}: RawDataPreviewComponentProps) {\n const iframeRef = useRef<HTMLIFrameElement>();\n const [ready, setReady] = useState(false);\n const [injected, setInjected] = useState(false);\n const propertyToggleStateRef = useRef<string[]>([]);\n const propertyExpandStateRef = useRef<string[]>([]);\n const propertyApproveStateRef = useRef<string[]>([]);\n\n useEffect(() => {\n propertyApproveStateRef.current =\n generations\n ?.filter((generation) => generation.approved)\n .map((generation) => generation.propertyId) ?? [];\n }, [generations]);\n\n const handleIframeLoad = useCallback(() => {\n const check = () => {\n const iframeWin = iframeRef.current?.contentWindow as PreviewWindow;\n if (iframeWin?._preview_only_render) {\n setReady(true);\n } else {\n setTimeout(check, 100);\n }\n };\n check();\n }, []);\n\n useEffect(() => {\n if (ready) {\n const iframeWin = iframeRef.current!.contentWindow as PreviewWindow;\n iframeWin.postMessage(\n {\n channel: \"raw-data-preview\",\n type: \"busy\",\n payload: busy,\n },\n location.origin\n );\n }\n }, [busy, ready]);\n\n useEffect(() => {\n if (ready) {\n const iframeWin = iframeRef.current!.contentWindow as PreviewWindow;\n const onMessage = ({ data }: MessageEvent<PreviewMessage>) => {\n if (data?.channel === \"raw-data-preview\") {\n switch (data.type) {\n case \"comment\":\n onComment(data.payload);\n break;\n case \"approve\":\n onApprove(data.payload);\n break;\n case \"viewAttrPrompt\":\n onViewAttrPrompt(data.payload);\n break;\n case \"updatePropertyToggleState\":\n propertyToggleStateRef.current = data.payload;\n break;\n case \"updatePropertyExpandState\":\n propertyExpandStateRef.current = data.payload;\n break;\n case \"updatePropertyApproveState\":\n propertyApproveStateRef.current = data.payload;\n break;\n }\n }\n };\n iframeWin.addEventListener(\"message\", onMessage);\n return () => {\n iframeWin.removeEventListener(\"message\", onMessage);\n };\n }\n }, [onApprove, onComment, ready]);\n\n useEffect(() => {\n if (!ready) {\n return;\n }\n const pkg = __secret_internals.getBrickPackagesById(\n \"bricks/visual-builder\"\n );\n if (!pkg) {\n throw new Error(\n \"Cannot find preview agent package: bricks/visual-builder\"\n );\n }\n const inject = (iframeRef.current!.contentWindow as PreviewWindow)!\n ._preview_only_inject;\n\n const fixedPkg = {\n ...pkg,\n filePath: previewUrl\n ? new URL(pkg.filePath, new URL(previewUrl, location.origin)).toString()\n : `${location.origin}${getBasePath()}${\n window.PUBLIC_ROOT ?? \"\"\n }${pkg.filePath}`,\n };\n\n Promise.allSettled(\n [\n \"visual-builder.pre-generated-table-view\",\n \"visual-builder.pre-generated-container\",\n ].map((brick) => inject(brick, fixedPkg, undefined, true))\n ).then(() => {\n setInjected(true);\n });\n }, [previewUrl, ready]);\n\n useEffect(() => {\n if (!injected) {\n return;\n }\n const render = (iframeRef.current?.contentWindow as PreviewWindow)\n ?._preview_only_render;\n if (!render) {\n return;\n }\n\n const tableChildren: BrickConf[] = [\n {\n brick: \"div\",\n properties: {\n textContent: \"属性\",\n className: \"head-cell\",\n },\n },\n {\n brick: \"div\",\n properties: {\n textContent: \"\",\n className: \"head-cell\",\n },\n },\n {\n brick: \"div\",\n properties: {\n textContent: \"类型\",\n className: \"head-cell\",\n },\n },\n {\n brick: \"div\",\n properties: {\n textContent: \"原始数据\",\n className: \"head-cell\",\n },\n },\n {\n brick: \"div\",\n properties: {\n textContent: \"视觉重量 (由低至高)\",\n className: \"head-cell\",\n style: {\n gridColumn: \"span 4\",\n textAlign: \"center\",\n },\n },\n },\n {\n brick: \"div\",\n properties: {\n textContent: \"确认\",\n className: \"head-cell\",\n },\n },\n {\n brick: \"div\",\n properties: {\n className: \"head-cell last-col-cell\",\n },\n children: [\n {\n brick: \"span\",\n properties: {\n textContent: \"批注\",\n },\n },\n {\n brick: \"span\",\n properties: {\n className: \"tips\",\n textContent: \"(补充提示词,按住 ⌘ 或 ctrl + 回车提交)\",\n },\n },\n ],\n },\n ];\n const table: BrickConf & { context?: ContextConf[] } = {\n brick: \"visual-builder.pre-generated-table-view\",\n context: [\n {\n name: \"propertyToggleState\",\n value: propertyToggleStateRef.current,\n onChange: {\n action: \"window.postMessage\",\n args: [\n {\n channel: \"raw-data-preview\",\n type: \"updatePropertyToggleState\",\n payload: \"<% CTX.propertyToggleState %>\",\n },\n ],\n },\n },\n {\n name: \"propertyExpandState\",\n value: propertyExpandStateRef.current,\n onChange: {\n action: \"window.postMessage\",\n args: [\n {\n channel: \"raw-data-preview\",\n type: \"updatePropertyExpandState\",\n payload: \"<% CTX.propertyExpandState %>\",\n },\n ],\n },\n },\n {\n name: \"propertyApproveState\",\n value: propertyApproveStateRef.current,\n onChange: {\n action: \"window.postMessage\",\n args: [\n {\n channel: \"raw-data-preview\",\n type: \"updatePropertyApproveState\",\n payload: \"<% CTX.propertyApproveState %>\",\n },\n ],\n },\n },\n {\n name: \"busy\",\n },\n ],\n properties: {\n style: {\n gridTemplateColumns:\n \"minmax(120px, 0.5fr) 32px auto repeat(5, 1fr) auto 1fr\",\n },\n },\n children: tableChildren,\n };\n\n for (let i = 0, size = generations.length; i < size; i++) {\n const generation = generations[i];\n const isLastRow = i === size - 1;\n\n const candidatesByVisualWeight = new Map<number, VisualConfig>();\n for (const candidate of generation.candidates ?? []) {\n candidatesByVisualWeight.set(candidate.visualWeight ?? 0, candidate);\n }\n\n tableChildren.push(\n {\n brick: \"div\",\n properties: {\n className: classNames(\"body-cell\", {\n \"last-row-cell\": isLastRow,\n }),\n },\n children: [\n {\n brick: \"span\",\n properties: {\n textContent: `${generation.propertyName ?? generation.propertyId}`,\n },\n },\n {\n // 多个示例的展开/收起按钮\n brick: \"eo-button\",\n properties: {\n className: \"btn-toggle\",\n type: \"text\",\n icon: `<%=\n {\n lib: \"fa\",\n prefix: \"fas\",\n icon: CTX.propertyToggleState.includes(${JSON.stringify(generation.propertyId)}) ? \"chevron-up\" : \"chevron-down\",\n }\n %>`,\n },\n events: {\n click: {\n action: \"context.replace\",\n args: [\n \"propertyToggleState\",\n `<%\n CTX.propertyToggleState.includes(${JSON.stringify(generation.propertyId)})\n ? CTX.propertyToggleState.filter((id) => id !== ${JSON.stringify(generation.propertyId)})\n : CTX.propertyToggleState.concat(${JSON.stringify(generation.propertyId)})\n %>`,\n ],\n },\n },\n },\n ],\n },\n {\n // 绿色圆点表示已生成\n brick: \"div\",\n properties: {\n className: classNames(\"body-cell\", {\n \"last-row-cell\": isLastRow,\n }),\n },\n children: generation.candidates?.length\n ? [\n {\n brick: \"eo-icon\",\n properties: {\n lib: \"fa\",\n prefix: \"fas\",\n icon: \"circle\",\n style: {\n color: generation.generationId\n ? \"var(--palette-green-6)\"\n : \"var(--palette-gray-6)\",\n transformOrigin: \"center center\",\n transform: \"scale(0.5)\",\n },\n },\n },\n ]\n : undefined,\n },\n {\n brick: \"div\",\n properties: {\n className: classNames(\"body-cell\", {\n \"last-row-cell\": isLastRow,\n }),\n },\n children: [\n {\n brick: \"eo-link\",\n properties: {\n type: \"text\",\n textContent: generation.propertyType,\n },\n events: {\n click: {\n action: \"window.postMessage\",\n args: [\n {\n channel: \"raw-data-preview\",\n type: \"viewAttrPrompt\",\n payload: generation,\n },\n ],\n },\n },\n },\n ],\n }\n );\n\n let values = generation.propertyValues;\n if (!values) {\n const mockList = (generation.mockData ?? mocks ?? []).slice();\n mockList.sort((ma, mb) => {\n const a = ma?.[generation.propertyId];\n const b = mb?.[generation.propertyId];\n const aIsArray = Array.isArray(a);\n const bIsArray = Array.isArray(b);\n if (aIsArray || bIsArray) {\n return (bIsArray ? b.length : -1) - (aIsArray ? a.length : -1);\n }\n const aIsNil = a == null;\n const bIsNil = b == null;\n if (aIsNil || bIsNil) {\n return (bIsNil ? 0 : 1) - (aIsNil ? 0 : 1);\n }\n\n const aIsEmpty = typeof a === \"string\" && a.length === 0;\n const bIsEmpty = typeof b === \"string\" && b.length === 0;\n if (aIsEmpty || bIsEmpty) {\n return (bIsEmpty ? 0 : 1) - (aIsEmpty ? 0 : 1);\n }\n return 0;\n });\n values = mockList.map((mock) => mock[generation.propertyId]);\n }\n\n // 原始数据\n tableChildren.push({\n brick: \"div\",\n properties: {\n className: classNames(\"body-cell\", {\n \"last-row-cell\": isLastRow,\n }),\n },\n children: [\n {\n brick: \"div\",\n properties: {\n className: \"list\",\n },\n children: values.map((mock, index) => ({\n brick: \"div\",\n if:\n index === 0\n ? true\n : `<%= CTX.propertyToggleState.includes(${JSON.stringify(generation.propertyId)}) %>`,\n properties: {\n className: `<%= \\`raw-content\\${ CTX.propertyExpandState.includes(${JSON.stringify(generation.propertyId)}) ? \" expand\" : \"\" }\\` %>`,\n textContent:\n mock === undefined\n ? \"\"\n : typeof mock === \"string\"\n ? mock\n : JSON.stringify(mock, null, 2),\n },\n })),\n },\n {\n // 原始数据的展开/收起按钮\n brick: \"eo-button\",\n properties: {\n className: \"btn-toggle\",\n type: \"text\",\n icon: `<%=\n {\n lib: \"fa\",\n prefix: \"fas\",\n icon: CTX.propertyExpandState.includes(${JSON.stringify(generation.propertyId)}) ? \"chevron-up\" : \"chevron-down\",\n }\n %>`,\n },\n events: {\n click: {\n action: \"context.replace\",\n args: [\n \"propertyExpandState\",\n `<%\n CTX.propertyExpandState.includes(${JSON.stringify(generation.propertyId)})\n ? CTX.propertyExpandState.filter((id) => id !== ${JSON.stringify(generation.propertyId)})\n : CTX.propertyExpandState.concat(${JSON.stringify(generation.propertyId)})\n %>`,\n ],\n },\n },\n },\n ],\n });\n\n // 生成的编排\n for (let i = -1; i < 3; i++) {\n const candidate = candidatesByVisualWeight.get(i);\n\n let brick: BrickConf;\n if (candidate) {\n brick = convertToStoryboard(candidate, generation.propertyId);\n }\n\n tableChildren.push({\n brick: \"div\",\n properties: {\n className: classNames(\"body-cell\", {\n \"last-row-cell\": isLastRow,\n }),\n },\n children: [\n {\n brick: \"div\",\n properties: {\n className: \"list\",\n },\n children: brick\n ? values.map((mock, index) => ({\n brick: \"visual-builder.pre-generated-container\",\n if:\n index === 0\n ? true\n : `<%= CTX.propertyToggleState.includes(${JSON.stringify(generation.propertyId)}) %>`,\n properties: {\n useBrick: [brick],\n dataSource: {\n [generation.propertyId]: mock,\n },\n },\n errorBoundary: true,\n }))\n : undefined,\n },\n ],\n });\n }\n\n tableChildren.push(\n {\n // 确认 checkbox\n brick: \"div\",\n properties: {\n className: classNames(\"body-cell\", {\n \"last-row-cell\": isLastRow,\n }),\n },\n children: generation.candidates\n ? [\n {\n brick: \"eo-checkbox\",\n properties: {\n value: `<%= CTX.propertyApproveState.includes(${JSON.stringify(generation.propertyId)}) ? [\"approved\"] : [] %>`,\n options: [{ label: \"\", value: \"approved\" }],\n disabled: \"<%= CTX.busy %>\",\n },\n events: {\n change: [\n {\n action: \"window.postMessage\",\n args: [\n {\n channel: \"raw-data-preview\",\n type: \"approve\",\n payload: {\n approved: \"<% EVENT.detail.length > 0 %>\",\n propertyInstanceId: generation.propertyInstanceId,\n },\n },\n ],\n },\n {\n action: \"context.replace\",\n args: [\n \"propertyApproveState\",\n `<%\n EVENT.detail.length > 0\n ? CTX.propertyApproveState.concat(${JSON.stringify(generation.propertyId)})\n : CTX.propertyApproveState.filter((id) => id !== ${JSON.stringify(generation.propertyId)})\n %>`,\n ],\n },\n ],\n },\n },\n ]\n : undefined,\n },\n {\n // 批注 textarea\n brick: \"div\",\n properties: {\n className: classNames(\"body-cell\", {\n \"last-col-cell\": true,\n \"last-row-cell\": isLastRow,\n }),\n },\n children: generation.candidates\n ? [\n {\n brick: \"eo-textarea\",\n properties: {\n value: generation.comment\n ? `<% ${JSON.stringify(generation.comment)} %>`\n : undefined,\n autoSize: true,\n style: {\n width: \"100%\",\n },\n disabled: `<%= CTX.busy || CTX.propertyApproveState.includes(${JSON.stringify(generation.propertyId)}) %>`,\n },\n events: {\n keydown: {\n if: \"<% EVENT.code === 'Enter' && (EVENT.metaKey || EVENT.ctrlKey) %>\",\n action: \"window.postMessage\",\n args: [\n {\n channel: \"raw-data-preview\",\n type: \"comment\",\n payload: {\n comment: \"<% EVENT.target.value %>\",\n propertyInstanceId: generation.propertyInstanceId,\n },\n },\n ],\n },\n },\n },\n ]\n : undefined,\n }\n );\n }\n\n render(\n \"yaml\",\n {\n yaml: safeDump(\n [\n table,\n {\n brick: \"eo-message-listener\",\n properties: {\n sameOrigin: true,\n },\n events: {\n message: {\n if: \"<% EVENT.detail.data?.channel === 'raw-data-preview' && EVENT.detail.data.type === 'busy' %>\",\n action: \"context.replace\",\n args: [\"busy\", \"<% EVENT.detail.data.payload %>\"],\n },\n },\n portal: true,\n errorBoundary: true,\n },\n ],\n {\n schema: JSON_SCHEMA,\n skipInvalid: true,\n noRefs: true,\n noCompatMode: true,\n }\n ),\n },\n {\n app,\n theme,\n uiVersion,\n styleText: previewStyleText,\n }\n );\n }, [app, injected, generations, theme, uiVersion, category, mocks]);\n\n return (\n <div className={classNames(\"container\")}>\n <iframe\n ref={iframeRef}\n src={previewUrl ?? `${getBasePath()}_brick-preview-v3_/preview/`}\n loading=\"lazy\"\n onLoad={handleIframeLoad}\n />\n </div>\n );\n}\n","import { createProviderClass } from \"@next-core/utils/general\";\nimport { defaults } from \"lodash\";\nimport { pathToRegexp, Key } from \"path-to-regexp\";\n\ninterface Option {\n end?: boolean;\n strict?: boolean;\n sensitive?: boolean;\n}\n\nexport async function parsePath(path: string, options?: Option) {\n const defaultParams = { end: false, strict: false, sensitive: true };\n\n const keys: Key[] = [];\n const regexp = pathToRegexp(path, keys, defaults(options, defaultParams));\n\n return {\n regexp,\n keys,\n };\n}\n\ncustomElements.define(\n \"visual-builder.parse-path\",\n createProviderClass(parsePath)\n);\n","import _asyncToGenerator from \"@babel/runtime/helpers/asyncToGenerator\";\nimport { http } from \"@next-core/http\";\n\n/** 创建实例 */\n\n/**\n * @description 创建实例 (body为实例信息,字段限制参考模型定义,支持关系创建)\n * @endpoint POST /v2/object/:objectId/instance\n */\nexport var InstanceApi_createInstance = /*#__PURE__*/function () {\n var _ref = _asyncToGenerator(function* (objectId, data, options) {\n return (/**! @contract easyops.api.cmdb.instance.CreateInstance@1.1.0 */(yield http.post(\"api/gateway/cmdb.instance.CreateInstance/v2/object/\".concat(objectId, \"/instance\"), data, options)).data\n );\n });\n return function InstanceApi_createInstance(_x, _x2, _x3) {\n return _ref.apply(this, arguments);\n };\n}();\n//# sourceMappingURL=createInstance.js.map","import { createProviderClass } from \"@next-core/utils/general\";\nimport { InstanceApi_createInstance } from \"@next-api-sdk/cmdb-sdk\";\n\nexport interface GeneratedView {\n attrInstanceId: string;\n input: string;\n output: string;\n list: unknown[];\n defaultVisualWeight?: number;\n systemPromptVersion?: string;\n}\n\nexport async function batchUpdateRawDataGeneratedView(\n generations: GeneratedView[]\n): Promise<unknown> {\n return Promise.allSettled(\n generations.map(({ attrInstanceId, ...props }) =>\n InstanceApi_createInstance(\"RAW_DATA_GENERATED_VIEW@EASYOPS\", {\n ...props,\n attr: [attrInstanceId],\n })\n )\n );\n}\n\ncustomElements.define(\n \"visual-builder.batch-update-raw-data-generated-view\",\n createProviderClass(batchUpdateRawDataGeneratedView)\n);\n","// istanbul ignore file\nimport { createProviderClass } from \"@next-core/utils/general\";\nimport promptOfBoolean from \"./prompts/raw-data-boolean.md\";\nimport promptOfDateTime from \"./prompts/raw-data-date-time.md\";\nimport promptOfEnum from \"./prompts/raw-data-enum.md\";\nimport promptOfNumber from \"./prompts/raw-data-number.md\";\nimport promptOfOthers from \"./prompts/raw-data-others.md\";\nimport promptOfStructList from \"./prompts/raw-data-struct-list.md\";\nimport promptOfStruct from \"./prompts/raw-data-struct.md\";\n\nexport function getRawDataSystemPrompts(): Record<string, string> {\n return {\n boolean: promptOfBoolean,\n \"date-time\": promptOfDateTime,\n enum: promptOfEnum,\n number: promptOfNumber,\n others: promptOfOthers,\n \"struct-list\": promptOfStructList,\n struct: promptOfStruct,\n };\n}\n\ncustomElements.define(\n \"visual-builder.get-raw-data-system-prompts\",\n createProviderClass(getRawDataSystemPrompts)\n);\n","import React, {\n useEffect,\n useImperativeHandle,\n useMemo,\n createRef,\n useState,\n useCallback,\n useRef,\n} from \"react\";\nimport { createDecorators, EventEmitter } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport {\n createForm,\n Form,\n onFieldValueChange,\n onFieldInit,\n onFieldInitialValueChange,\n onFormInitialValuesChange,\n onFormValidateSuccess,\n onFormValuesChange,\n createEffectHook,\n} from \"@formily/core\";\nimport { createSchemaField, FormProvider } from \"@formily/react\";\nimport { ConfigProvider, theme } from \"antd\";\nimport { StyleProvider, createCache } from \"@ant-design/cssinjs\";\nimport {\n FormCollapse,\n FormItem,\n FormLayout,\n Input,\n NumberPicker,\n Radio,\n Select,\n Switch,\n} from \"@formily/antd-v5\";\nimport { useCurrentTheme } from \"@next-core/react-runtime\";\nimport {\n EditorComponentProps,\n DataItem,\n SelectOptions,\n} from \"@next-shared/property-editor\";\nimport { CategoryTitle } from \"./components/CategoryTitle\";\nimport { AdvancedFormItem } from \"./components/AdvancedFormItem\";\nimport { CodeEditorComponent } from \"./components/common/CodeEditorComponent\";\nimport { IconSelectComponent } from \"./components/common/IconSelectComponent\";\nimport { ColorPickerComponent } from \"./components/common/ColorPickerComponent\";\nimport { InputWithUrlComponent } from \"./components/common/InputWithUrlComponent\";\nimport { TextAlignRadioComponent } from \"./components/common/TextAlignRadioComponent\";\nimport { InputWithUnitComponent } from \"./components/common/InputWithUnitComponent\";\nimport { UseChildrenSelectComponent } from \"./components/common/UseChildrenSelectComponent\";\nimport { BoxSizeComponent } from \"./components/common/BoxSizeComponent\";\nimport { CustomOptionsComponent } from \"./components/common/CustomOptionsComponent\";\nimport { CustomTab } from \"./components/common/CustomTab\";\nimport { __secret_internals, customEditors } from \"@next-core/runtime\";\nimport {\n ADVANCED_FORM_KEY,\n DataNode,\n formilySchemaFormatter,\n} from \"./utils/formilySchemaFormatter\";\nimport \"./style.css\";\nimport _, { isEmpty, omit } from \"lodash\";\nimport { BrickPackage } from \"@next-core/types\";\nimport { NORMAL_FORM_KEY } from \"./utils/formilySchemaFormatter\";\n\nconst { defineElement, property, method, event } = createDecorators();\n\nconst PropertyEditorComponent = React.forwardRef(LegacyPropertyEditor);\n\nexport const BEFORE_SUBMIT_KEY = \"before_submit\";\nexport const ADVANCED_CHANGE_KEY = \"on_advanced_change\";\n\nexport const SchemaField = createSchemaField({\n components: {\n FormLayout,\n Input,\n FormItem: AdvancedFormItem,\n FormItemWithoutAdvanced: FormItem,\n FormCollapse,\n NumberPicker,\n Radio,\n Select,\n Switch,\n CategoryTitle,\n CodeEditor: CodeEditorComponent,\n IconSelect: IconSelectComponent,\n ColorPicker: ColorPickerComponent,\n UseChildrenSelect: UseChildrenSelectComponent,\n InputWithUrl: InputWithUrlComponent,\n InputWithUnit: InputWithUnitComponent,\n TextAlignRadio: TextAlignRadioComponent,\n CustomOptions: CustomOptionsComponent,\n BoxSize: BoxSizeComponent,\n CustomTab,\n },\n});\n\nexport type { DataNode };\n\nlet cacheCustomEditor: Function;\n\n/**\n * 构件 `visual-builder.property-editor`\n */\nexport\n@defineElement(\"visual-builder.property-editor\", {\n // styleTexts: [styleText],\n // 因为有使用 vs.code-editor,需要把 shadowOptions 设置成 false\n shadowOptions: false,\n dependencies: [\"eo-icon-select\", \"vs.code-editor\", \"eo-tooltip\"],\n})\nclass PropertyEditor extends ReactNextElement {\n #formRef = createRef<any>();\n\n /** 构件名称 */\n @property()\n accessor editorName: string | undefined;\n\n /** 值 */\n @property({\n attribute: false,\n })\n accessor values: any | undefined;\n\n /** 高级模式 */\n @property({\n type: Boolean,\n })\n accessor advancedMode: boolean | undefined;\n\n @property({\n attribute: false,\n })\n accessor dataList: DataItem[];\n\n @property({\n attribute: false,\n })\n accessor editorPackages: BrickPackage[];\n\n @property({\n attribute: false,\n })\n accessor links: any;\n\n @property({\n attribute: false,\n })\n accessor extraLibs: SelectOptions;\n\n @property({\n attribute: false,\n })\n accessor childSlots: SelectOptions;\n\n /**\n * 表单验证成功时触发事件\n */\n @event({ type: \"validate.success\" }) accessor #successEvent!: EventEmitter<\n Record<string, unknown>\n >;\n /**\n * 表单验证报错时触发事件\n */\n @event({ type: \"validate.error\" }) accessor #errorEvent!: EventEmitter<any[]>;\n\n @method()\n validate() {\n const form: Form = this.#formRef.current?.getFormInstance();\n this.#submitValue = null;\n\n form\n .validate()\n .then(() => {\n if (this.advancedMode) {\n // 高级模式直接输出 form.values[ADVANCED_FORM_KEY]\n this.#successEvent.emit(form.values[ADVANCED_FORM_KEY]);\n } else {\n const value = _.omit(form.values, [ADVANCED_FORM_KEY]);\n form.notify(BEFORE_SUBMIT_KEY, value);\n this.#successEvent.emit(this.#submitValue ?? value);\n }\n })\n .catch((err: any[]) => {\n this.#errorEvent.emit(err);\n });\n }\n\n @event({ type: \"values.change\" })\n accessor #valuesChangeEvent!: EventEmitter<any>;\n\n #handleValuesChange = (value: any) => {\n this.#valuesChangeEvent.emit(value);\n };\n\n @event({ type: \"token.click\" })\n accessor #tokenClick!: EventEmitter<string>;\n\n #handleTokenClick = (value: string): void => {\n this.#tokenClick.emit(value);\n };\n\n #submitValue: any;\n\n #onSubmitEffect = createEffectHook(\n BEFORE_SUBMIT_KEY,\n (values, form) => (listener) => {\n this.#submitValue = listener(values, form);\n }\n );\n\n @event({ type: \"trigger.action\" })\n accessor #triggerActionEvent!: EventEmitter<string>;\n\n #handleTriggerAction = (action: string) => {\n this.#triggerActionEvent.emit(action);\n };\n\n #filterData = (data?: Record<string, any> | string) => {\n const transformData =\n typeof data === \"string\" && data === \"undefined\"\n ? undefined\n : omit(data as any, [\"dataset.testid\"]);\n const shouldFilterFields = [];\n isEmpty(transformData?.dataset) && shouldFilterFields.push(\"dataset\");\n isEmpty(transformData?.style) && shouldFilterFields.push(\"style\");\n\n const filterData = omit(transformData, shouldFilterFields);\n if (isEmpty(filterData)) {\n return undefined;\n }\n return filterData;\n };\n\n render() {\n return (\n <PropertyEditorComponent\n ref={this.#formRef}\n editorName={this.editorName}\n values={this.#filterData(this.values)}\n advancedMode={this.advancedMode}\n dataList={this.dataList}\n extraLibs={this.extraLibs}\n links={this.links}\n childSlots={this.childSlots}\n editorPackages={this.editorPackages}\n handleValuesChange={this.#handleValuesChange}\n handleTokenClick={this.#handleTokenClick}\n handleTriggerAction={this.#handleTriggerAction}\n onSubmitEffect={this.#onSubmitEffect}\n />\n );\n }\n}\n\nexport interface PropertyEditorProps {\n values: any;\n editorName: string;\n advancedMode?: boolean;\n childSlots?: SelectOptions;\n extraLibs: SelectOptions;\n dataList: DataItem[];\n links: any;\n editorPackages: BrickPackage[];\n handleValuesChange: (value: any) => void;\n handleTokenClick: (token: string) => void;\n handleTriggerAction: (action: string) => void;\n onSubmitEffect: (listener: (value: any, form: Form) => any) => void;\n}\n\nexport function LegacyPropertyEditor(\n {\n advancedMode,\n values,\n editorName,\n dataList,\n editorPackages,\n extraLibs,\n childSlots,\n links,\n handleValuesChange,\n handleTokenClick,\n handleTriggerAction,\n onSubmitEffect,\n }: PropertyEditorProps,\n ref: any\n) {\n const [Editor, setEditor] = useState<\n (props: EditorComponentProps<typeof SchemaField>) => React.ReactElement\n >(cacheCustomEditor as any);\n const currentTheme = useCurrentTheme();\n const cache = useMemo(() => createCache(), []);\n // should update form instance when Editor change\n const form = useMemo(() => createForm(), [Editor]);\n const transformValueRef = useRef<any>(null);\n const advancedChangeRef = useRef<boolean>(false);\n\n const onAdvancedChangeEffect = useMemo(\n () =>\n createEffectHook(\n ADVANCED_CHANGE_KEY,\n (advancedMode, form) => (listener) => {\n const values =\n !advancedMode && form.values[ADVANCED_FORM_KEY]\n ? form.values[ADVANCED_FORM_KEY]\n : form.values;\n transformValueRef.current = listener(advancedMode, form, values);\n }\n ),\n []\n );\n\n useImperativeHandle(ref, () => ({\n getFormInstance: () => form,\n }));\n\n const load = useCallback(async () => {\n // TODO: cache editors\n if (customEditors.get(editorName)) {\n setEditor(() => customEditors.get(editorName)?.(React) as any);\n return;\n }\n await __secret_internals.loadEditors([editorName], editorPackages);\n cacheCustomEditor = () => customEditors.get(editorName)?.(React);\n setEditor(cacheCustomEditor as any);\n }, [editorName, editorPackages]);\n\n const defaultTransform = useCallback((values: any, advancedMode: boolean) => {\n if (advancedMode) {\n const filterValue = _.omit(values, [ADVANCED_FORM_KEY]);\n return {\n [ADVANCED_FORM_KEY]: _.isEmpty(filterValue) ? \"\" : filterValue,\n };\n }\n return values[ADVANCED_FORM_KEY] ?? values;\n }, []);\n\n useEffect(() => {\n load();\n }, [load]);\n\n useEffect(() => {\n if (Editor) {\n form.setInitialValues(values, \"overwrite\");\n }\n }, [Editor, form]);\n\n useEffect(() => {\n advancedChangeRef.current = true;\n transformValueRef.current = null;\n\n form.notify(ADVANCED_CHANGE_KEY, advancedMode);\n\n form.query(NORMAL_FORM_KEY).take((field) => {\n field.display = !advancedMode ? \"visible\" : \"hidden\";\n });\n form.query(ADVANCED_FORM_KEY).take((field) => {\n field.display = advancedMode ? \"visible\" : \"hidden\";\n });\n\n const formValues = form.getState().values;\n const formData = defaultTransform(\n transformValueRef.current ?? formValues,\n advancedMode\n );\n\n form.setValues(formData, \"overwrite\");\n advancedChangeRef.current = false;\n }, [advancedMode, form, defaultTransform, Editor]);\n\n useEffect(() => {\n form.addEffects(\"onValueChange\", () => {\n onFormValuesChange((form) => {\n if (advancedChangeRef.current) return;\n handleValuesChange(form.values);\n });\n });\n }, [form, handleValuesChange]);\n\n if (!Editor) return null;\n\n return (\n <div className=\"property-form-wrapper\">\n <ConfigProvider\n prefixCls=\"antdV5\"\n theme={{\n algorithm:\n currentTheme === \"dark-v2\"\n ? theme.darkAlgorithm\n : theme.defaultAlgorithm,\n components: {\n // Form: {\n // not work\n // itemMarginBottom: 10,\n // }\n InputNumber: {\n handleVisible: true,\n },\n },\n }}\n getPopupContainer={(trigger) => trigger!}\n >\n <StyleProvider cache={cache}>\n <FormProvider form={form}>\n <Editor\n advancedMode={advancedMode}\n SchemaFieldComponent={SchemaField}\n form={form}\n scope={{\n dataList,\n advancedMode,\n childSlots,\n extraLibs,\n links,\n tokenClick: (event: CustomEvent<string>) =>\n handleTokenClick(event.detail),\n triggerAction: handleTriggerAction,\n }}\n effects={{\n onFieldInit,\n onFieldValueChange,\n onFieldInitialValueChange,\n onFormInitialValuesChange,\n onFormValidateSuccess,\n onFormValuesChange,\n onSubmit: onSubmitEffect,\n onAdvancedChange: onAdvancedChangeEffect,\n }}\n formilySchemaFormatter={formilySchemaFormatter}\n />\n </FormProvider>\n </StyleProvider>\n </ConfigProvider>\n </div>\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, `:root{--vb-workbench-action-list-background:#f8f8f8}html[data-theme=\"dark\"],\nhtml[data-theme=\"dark-v2\"]{--vb-workbench-action-list-background:#323237}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\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, `:root{--vb-workbench-action-color:#616161;--vb-workbench-action-active-color:#1f1f1f;--vb-workbench-action-active-border-color:#005fb8}html[data-theme=\"dark\"],\nhtml[data-theme=\"dark-v2\"]{--vb-workbench-action-color:rgba(255,255,255,0.4);--vb-workbench-action-active-color:#fff;--vb-workbench-action-active-border-color:#fff}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\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_AT_RULE_IMPORT_0___ from \"-!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[0]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!../../../../shared/markdown/dist/esm/prism-tomorrow.css\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block}:host([hidden]){display:none}*{box-sizing:border-box}.message{display:flex;gap:8px}.main{flex:1;min-width:0}.label{font-weight:bold;line-height:28px}.message:not(:last-child){margin-bottom:2em}.invisible-dots{opacity:0}.failed .content{color:var(--color-error)}.command:not(:first-child){margin-top:1em}.command:not(:last-child){margin-bottom:1em}pre{white-space:pre-wrap;background-color:var(--palette-gray-3);border-radius:6px;padding:1em}.markdown > :first-child{margin-top:0}.markdown > :last-child{margin-bottom:0}.avatar{align-self:flex-start;display:flex;align-items:center;justify-content:center}.texting::after{content:\" \";animation:texting 2s infinite;white-space:pre}@keyframes texting{0%{content:\" \"}25%{content:\". \"}50%{content:\".. \"}75%{content:\"...\"}100%{content:\" \"}}pre[class*=\"language-\"]{overflow:visible}pre[class*=\"language-\"],\ncode[class*=\"language-\"]{white-space:pre-wrap}eo-avatar.role-assistant::part(avatar-icon){background-color:var(--palette-blue-5)}.content{word-wrap:break-word}.plain{white-space:pre-wrap}`, \"\"]);\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}.container,\niframe{width:100%;height:100%;border-radius:4px}.container{position:relative;box-shadow:rgba(204,204,204,0.2) 0px 0px 0px 1px}iframe{display:block;border:none;margin:0;padding:0;transform-origin:0% 0%;-webkit-user-select:none;user-select:none}.outline{position:absolute;border-style:solid;border-width:2px;border-radius:0 4px 4px;pointer-events:none}.label{position:absolute;left:-2px;top:-20px;height:18px;line-height:16px;padding:2px 5px 0;font-size:12px;border-radius:4px 4px 0 0;white-space:nowrap}.outline.hover{border-color:rgba(var(--palette-blue-6-channel),0.3)}.outline.hover .label{background:rgba(var(--palette-blue-6-channel),0.3)}.outline.active{border-color:var(--palette-blue-6)}.outline.active .label{background:var(--palette-blue-6)}.container:not(.inspecting) .outline{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\";\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}.contract-wrapper{display:flex;gap:4px}.contract-selector{flex:1}.version-selector{width:100px}.options-tips{padding:0px 10px;font-weight:400;color:#999;white-space:nowrap;font-style:italic}`, \"\"]);\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}.mask,\n.container{display:none;position:fixed;z-index:1}.mask{top:0;bottom:0;left:0;right:0;z-index:1}:host([active]) .mask,\n:host([active]) .container{display:block}.container{background:var(--antd-dropdown-menu-bg);border-radius:var(--medius-border-radius);padding:5px}.container .title{padding:5px 12px;cursor:default;color:var(--color-secondary-text);border-bottom:1px solid var(--color-text-divider-line)}.container eo-menu{border:none;padding:5px 0}:is(.container eo-menu) eo-menu-item:not([disabled]):hover::part(menu-item){background-color:var(--left-sidebar-item-hover-bg)}:is(.container eo-menu) eo-menu-item[disabled]::part(menu-item){cursor:not-allowed}:is(.container eo-menu) eo-menu-item::part(menu-item){cursor:grab;padding:5px 12px;border-radius:var(--medius-border-radius);min-width:max-content}:is(.container eo-menu) eo-menu-item.dragging{opacity:0.5}:is(.container eo-menu) eo-tooltip{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\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{--local-node-outline-style:solid;display:block}:host([hidden]){display:none}:host([not-synced]){--local-node-outline-style:dashed}*{box-sizing:border-box}.node{width:168px;max-width:none;height:130px;position:relative;display:flex;flex-direction:column;justify-content:space-between;align-items:center;cursor:pointer;-webkit-user-select:none;user-select:none}.node.board{height:70px;max-width:168px;width:-moz-fit-content;width:fit-content;padding-bottom:4px}.label,\n.label-input{width:100%;height:24px;padding:3px;border:none;line-height:18px;font-size:var(--sub-title-font-size-small);color:var(--color-header-text);font-weight:var(--font-weight-500);text-align:center;font-family:inherit;cursor:text;-webkit-user-select:text;user-select:text}.label{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.node.editing-label .label{height:0}.node:not(.editing-label) .label-input{display:none}.add-button,\n.icon-container,\n.thumbnail-container,\n.thumbnail-placeholder{display:flex;align-items:center;justify-content:center}.thumbnail-container{height:98px;outline:1px var(--local-node-outline-style) var(--palette-gray-4);opacity:1;border:4px solid transparent;border-radius:4px;width:100%;position:relative;flex-direction:column}.thumbnail-placeholder{color:var(--palette-gray-5);font-size:36px;flex:1}.icon-container{font-size:20px;background-color:var(--palette-teal-6);color:var(--palette-gray-4);width:36px;height:36px;border-radius:50%;outline-offset:4px}:host([active]) .thumbnail-container,\n:host([active]) .icon-container{outline:2px var(--local-node-outline-style) var(--palette-blue-3)}:host(:not([active])) .node:hover .thumbnail-container,\n:host(:not([active])) .node:hover .icon-container{outline:1px var(--local-node-outline-style) var(--palette-blue-3)}.add-button{position:absolute;bottom:-26px;left:calc(50% - 12px);width:24px;height:24px;background:var(--palette-gray-3);color:var(--palette-gray-6);border-radius:50%;cursor:pointer}:host([not-synced]) .add-button,\n:host([disable-child-append]) .add-button,\n:host(:not([active])) .add-button{display:none}.add-button:hover{background:var(--palette-blue-5);color:var(--palette-gray-2)}.external{position:absolute;top:4px;left:4px;padding:0 10px;display:flex;align-items:center;gap:6px;background:var(--palette-purple-4);font-size:12px;line-height:20px;height:22px;cursor:pointer;color:var(--palette-gray-1);border-radius:9999px;right:4px;max-width:-moz-fit-content;max-width:fit-content}.external-label{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.external:hover{background:var(--palette-purple-5)}.sub-nodes{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px;width:100%}.sub-node{background-color:var(--palette-gray-2);border-radius:4px;padding:6px;display:flex;flex-direction:column;justify-content:space-between;height:32px}.sub-node-skeleton-title{width:18px;height:4px;border-radius:2px;align-self:flex-start;background-color:var(--palette-gray-4)}.sub-node-skeleton-content{width:100%;height:4px;border-radius:2px;background-color:var(--palette-gray-4)}.sub-node-skeleton-button{width:18px;height:4px;border-radius:2px;align-self:flex-end;background-color:var(--palette-blue-3)}.sub-node:hover{background-color:var(--palette-gray-3)}.sub-node:hover .sub-node-skeleton-title,\n.sub-node:hover .sub-node-skeleton-content{background-color:var(--palette-gray-5)}.sub-node:hover .sub-node-skeleton-button{background-color:var(--palette-blue-4)}`, \"\"]);\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}`, \"\"]);\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, `body{background-color:transparent}#preview-root{padding:0;height:auto;max-height:100vh;overflow-y:auto;border:1px solid var(--theme-gray-border-color);border-radius:4px;background:var(--body-background)}.head-cell{position:sticky;top:0;z-index:1;font-weight:bold}.head-cell,\n.body-cell{background:var(--body-background)}.last-col-cell{border-right-color:transparent}.last-row-cell{border-bottom-color:transparent}.form-container > ::part(message){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\";\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}.container,\niframe{width:100%;height:100%;border-radius:4px}.container{position:relative}iframe{display:block;border:none;margin:0;padding:0;transform-origin:0% 0%;-webkit-user-select:none;user-select: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\";\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:grid;width:100%}:host([hidden]){display:none}::slotted(*){padding:4px 8px;border:1px solid var(--theme-gray-border-color);border-left-color:transparent;border-top-color:transparent;min-width:0;word-break:break-word}`, \"\"]);\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, `body{background-color:transparent}#preview-root{padding:0;height:auto;max-height:100vh;overflow-y:auto;border:1px solid var(--theme-gray-border-color);border-radius:4px;background:var(--body-background)}.head-cell{position:sticky;top:0;z-index:1;font-weight:bold}.head-cell,\n.body-cell{background:var(--body-background)}.body-cell{display:flex;align-items:center;justify-content:space-between}.last-col-cell{border-right-color:transparent}.last-row-cell{border-bottom-color:transparent}.form-container > ::part(message){display:none}.list{display:flex;flex-direction:column;gap:8px;overflow:hidden}.raw-content{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text-color-secondary)}.raw-content.expand{white-space:pre-wrap}.tips{color:var(--text-color-secondary);font-weight:normal}.body-cell:not(:hover) .btn-toggle{visibility: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\";\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}.container,\niframe{width:100%;height:100%;border-radius:4px}.container{position:relative}iframe{display:block;border:none;margin:0;padding:0;transform-origin:0% 0%;-webkit-user-select:none;user-select: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\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.custom-scrollbar-container{scrollbar-width:thin;scrollbar-color:rgba(255,255,255,0.15) rgba(255,255,255,0.03)}.custom-scrollbar-container::-webkit-scrollbar{width:8px;height:8px;background-color:transparent;position:absolute}.custom-scrollbar-container::-webkit-scrollbar-thumb{background-color:rgba(255,255,255,0);border-radius:4px}.custom-scrollbar-container:hover::-webkit-scrollbar-track{background-color:rgba(255,255,255,0.03)}.custom-scrollbar-container:hover::-webkit-scrollbar-thumb{background-color:rgba(255,255,255,0.15)}`, \"\"]);\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;height:100%;overflow-y:auto;scrollbar-width:none;background-color:var(--vb-workbench-action-list-background)}: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\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.action::part(link){display:flex;justify-content:center;align-items:center;width:48px;height:48px;font-size:24px;color:var(--vb-workbench-action-color);position:relative;transition:none}.action.active::part(link)::before{content:\"\";position:absolute;top:0;bottom:0;left:0;width:2px;background-color:var(--vb-workbench-action-active-border-color)}.action.active::part(link),\n.action::part(link):hover{color:var(--vb-workbench-active-color)}`, \"\"]);\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}eo-popover::part(popup){width:800px;max-width:60vw;padding:10px;background:var(--color-fill-bg-container-4);border-radius:var(--medius-border-radius);box-shadow:var(--feedback-container-shadow);z-index:1000}.history-title{font-size:var(--title-font-size);font-weight:var(--font-weight-500);color:var(--color-strong-text);margin-bottom:5px}.history-list{max-height:500px;overflow-y:auto}.item-container{padding:10px 0;display:flex;flex-direction:column;gap:5px}.empty{padding:5px 0 10px 0;font-size:14px;color:var(--text-color-secondary);text-align:center}.item-container:not(:last-of-type){border-bottom:1px solid var(--color-border-divider-line)}.item-title{display:flex;align-items:center;justify-content:space-between;gap:5px}.title-left,\n.title-right{display:flex;align-items:center}.title-left{cursor:pointer;overflow:hidden;gap:5px}.topic{font-size:14px;color:var(--text-color-title);font-weight:var(--font-weight-500);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.branch{font-size:14px;color:var(--text-color-secondary)}.rollback{margin-right:5px;font-size:14px;color:var(--text-color-secondary);cursor:pointer}.rollback:hover{color:var(--color-brand)}.item-info{display:flex;align-items:center;gap:5px}.time,\n.operator{font-size:14px;color:var(--text-color-secondary)}.load-more-container{display:block;text-align:center}.end-container{display:flex;align-items:center;justify-content:center;gap:10px;font-size:16px;color:var(--color-brand)}.rollback-all{cursor:pointer}`, \"\"]);\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;--pane-color:#595959}:host-context(html[data-theme=\"dark-v2\"]),\n:host-context([data-override-theme=\"dark-v2\"]){--pane-color:#ccc}:host([hidden]){display:none}*,\n*::before,\n*::after{box-sizing:border-box}.pane{display:flex;flex-direction:column;color:var(--pane-color);height:100%}.pane-header{display:flex;align-items:center;cursor:pointer;border-top:1px solid transparent;position:relative}.pane-header:focus{outline-width:1px;outline-style:solid;outline-offset:-1px;outline-color:#007fd4}:host(:not(:first-child)) .pane-header{border-top-color:rgba(204,204,204,0.2)}.pane-scroll-shadow{display:none;position:absolute;bottom:-3px;left:0;right:0;height:3px;box-shadow:#000000 0 6px 6px -6px inset;z-index:1}.scrolled .pane-scroll-shadow{display:block}.pane-title{display:flex;align-items:center;font-size:13px;line-height:24px;height:25px;min-width:0;flex:1}.title-icon{display:flex;justify-content:center;align-items:center;width:24px;padding-right:2px;line-height:1;flex-shrink:0}.title-label{text-transform:uppercase;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pane-body{flex-grow:1;min-height:0;display:none;overflow:hidden;overflow-y:auto;overflow-y:overlay}:host([active]) .pane-body{display:initial}:host(:not(:hover)) ::slotted([slot=\"actions\"]){display:none}.badge{background-color:rgb(77,77,77);color:rgb(255,255,255);border-radius:11px;height:18px;padding:3px 6px;line-height:13px;margin:0 3px;font-size:12px}`, \"\"]);\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{--sidebar-background:#fff;--title-container-background:#fff;--title-container-color:#595959;display:block;outline-color:rgba(83,89,93,0.5);background-color:var(--sidebar-background);height:100%}:host-context(html[data-theme=\"dark-v2\"]),\n:host-context([data-override-theme=\"dark-v2\"]){--sidebar-background:#181818;--title-container-background:#181818;--title-container-color:rgb(187,187,187);background-color:var(--sidebar-background)}:host([hidden]){display:none}*,\n*::before,\n*::after{box-sizing:border-box}.sidebar{display:flex;flex-direction:column;height:100%}.title-container{display:flex;padding:0 8px 8px 8px;color:var(--title-container-color);background:var(--title-container-background)}.title-label{font-weight:300;line-height:44px;padding-left:12px;text-transform:uppercase;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pane-container{flex-grow:1;min-height:0;display:flex;flex-direction:column}::slotted([slot=\"panes\"]){transition:flex 0.2s;min-height:25px}`, \"\"]);\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_AT_RULE_IMPORT_0___ from \"-!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[0]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!../../../../node_modules/prismjs/themes/prism-tomorrow.css\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, ``, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","/**\n * Tokenize input string.\n */\nfunction lexer(str) {\n var tokens = [];\n var i = 0;\n while (i < str.length) {\n var char = str[i];\n if (char === \"*\" || char === \"+\" || char === \"?\") {\n tokens.push({ type: \"MODIFIER\", index: i, value: str[i++] });\n continue;\n }\n if (char === \"\\\\\") {\n tokens.push({ type: \"ESCAPED_CHAR\", index: i++, value: str[i++] });\n continue;\n }\n if (char === \"{\") {\n tokens.push({ type: \"OPEN\", index: i, value: str[i++] });\n continue;\n }\n if (char === \"}\") {\n tokens.push({ type: \"CLOSE\", index: i, value: str[i++] });\n continue;\n }\n if (char === \":\") {\n var name = \"\";\n var j = i + 1;\n while (j < str.length) {\n var code = str.charCodeAt(j);\n if (\n // `0-9`\n (code >= 48 && code <= 57) ||\n // `A-Z`\n (code >= 65 && code <= 90) ||\n // `a-z`\n (code >= 97 && code <= 122) ||\n // `_`\n code === 95) {\n name += str[j++];\n continue;\n }\n break;\n }\n if (!name)\n throw new TypeError(\"Missing parameter name at \".concat(i));\n tokens.push({ type: \"NAME\", index: i, value: name });\n i = j;\n continue;\n }\n if (char === \"(\") {\n var count = 1;\n var pattern = \"\";\n var j = i + 1;\n if (str[j] === \"?\") {\n throw new TypeError(\"Pattern cannot start with \\\"?\\\" at \".concat(j));\n }\n while (j < str.length) {\n if (str[j] === \"\\\\\") {\n pattern += str[j++] + str[j++];\n continue;\n }\n if (str[j] === \")\") {\n count--;\n if (count === 0) {\n j++;\n break;\n }\n }\n else if (str[j] === \"(\") {\n count++;\n if (str[j + 1] !== \"?\") {\n throw new TypeError(\"Capturing groups are not allowed at \".concat(j));\n }\n }\n pattern += str[j++];\n }\n if (count)\n throw new TypeError(\"Unbalanced pattern at \".concat(i));\n if (!pattern)\n throw new TypeError(\"Missing pattern at \".concat(i));\n tokens.push({ type: \"PATTERN\", index: i, value: pattern });\n i = j;\n continue;\n }\n tokens.push({ type: \"CHAR\", index: i, value: str[i++] });\n }\n tokens.push({ type: \"END\", index: i, value: \"\" });\n return tokens;\n}\n/**\n * Parse a string for the raw tokens.\n */\nexport function parse(str, options) {\n if (options === void 0) { options = {}; }\n var tokens = lexer(str);\n var _a = options.prefixes, prefixes = _a === void 0 ? \"./\" : _a, _b = options.delimiter, delimiter = _b === void 0 ? \"/#?\" : _b;\n var result = [];\n var key = 0;\n var i = 0;\n var path = \"\";\n var tryConsume = function (type) {\n if (i < tokens.length && tokens[i].type === type)\n return tokens[i++].value;\n };\n var mustConsume = function (type) {\n var value = tryConsume(type);\n if (value !== undefined)\n return value;\n var _a = tokens[i], nextType = _a.type, index = _a.index;\n throw new TypeError(\"Unexpected \".concat(nextType, \" at \").concat(index, \", expected \").concat(type));\n };\n var consumeText = function () {\n var result = \"\";\n var value;\n while ((value = tryConsume(\"CHAR\") || tryConsume(\"ESCAPED_CHAR\"))) {\n result += value;\n }\n return result;\n };\n var isSafe = function (value) {\n for (var _i = 0, delimiter_1 = delimiter; _i < delimiter_1.length; _i++) {\n var char = delimiter_1[_i];\n if (value.indexOf(char) > -1)\n return true;\n }\n return false;\n };\n var safePattern = function (prefix) {\n var prev = result[result.length - 1];\n var prevText = prefix || (prev && typeof prev === \"string\" ? prev : \"\");\n if (prev && !prevText) {\n throw new TypeError(\"Must have text between two parameters, missing text after \\\"\".concat(prev.name, \"\\\"\"));\n }\n if (!prevText || isSafe(prevText))\n return \"[^\".concat(escapeString(delimiter), \"]+?\");\n return \"(?:(?!\".concat(escapeString(prevText), \")[^\").concat(escapeString(delimiter), \"])+?\");\n };\n while (i < tokens.length) {\n var char = tryConsume(\"CHAR\");\n var name = tryConsume(\"NAME\");\n var pattern = tryConsume(\"PATTERN\");\n if (name || pattern) {\n var prefix = char || \"\";\n if (prefixes.indexOf(prefix) === -1) {\n path += prefix;\n prefix = \"\";\n }\n if (path) {\n result.push(path);\n path = \"\";\n }\n result.push({\n name: name || key++,\n prefix: prefix,\n suffix: \"\",\n pattern: pattern || safePattern(prefix),\n modifier: tryConsume(\"MODIFIER\") || \"\",\n });\n continue;\n }\n var value = char || tryConsume(\"ESCAPED_CHAR\");\n if (value) {\n path += value;\n continue;\n }\n if (path) {\n result.push(path);\n path = \"\";\n }\n var open = tryConsume(\"OPEN\");\n if (open) {\n var prefix = consumeText();\n var name_1 = tryConsume(\"NAME\") || \"\";\n var pattern_1 = tryConsume(\"PATTERN\") || \"\";\n var suffix = consumeText();\n mustConsume(\"CLOSE\");\n result.push({\n name: name_1 || (pattern_1 ? key++ : \"\"),\n pattern: name_1 && !pattern_1 ? safePattern(prefix) : pattern_1,\n prefix: prefix,\n suffix: suffix,\n modifier: tryConsume(\"MODIFIER\") || \"\",\n });\n continue;\n }\n mustConsume(\"END\");\n }\n return result;\n}\n/**\n * Compile a string to a template function for the path.\n */\nexport function compile(str, options) {\n return tokensToFunction(parse(str, options), options);\n}\n/**\n * Expose a method for transforming tokens into the path function.\n */\nexport function tokensToFunction(tokens, options) {\n if (options === void 0) { options = {}; }\n var reFlags = flags(options);\n var _a = options.encode, encode = _a === void 0 ? function (x) { return x; } : _a, _b = options.validate, validate = _b === void 0 ? true : _b;\n // Compile all the tokens into regexps.\n var matches = tokens.map(function (token) {\n if (typeof token === \"object\") {\n return new RegExp(\"^(?:\".concat(token.pattern, \")$\"), reFlags);\n }\n });\n return function (data) {\n var path = \"\";\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n if (typeof token === \"string\") {\n path += token;\n continue;\n }\n var value = data ? data[token.name] : undefined;\n var optional = token.modifier === \"?\" || token.modifier === \"*\";\n var repeat = token.modifier === \"*\" || token.modifier === \"+\";\n if (Array.isArray(value)) {\n if (!repeat) {\n throw new TypeError(\"Expected \\\"\".concat(token.name, \"\\\" to not repeat, but got an array\"));\n }\n if (value.length === 0) {\n if (optional)\n continue;\n throw new TypeError(\"Expected \\\"\".concat(token.name, \"\\\" to not be empty\"));\n }\n for (var j = 0; j < value.length; j++) {\n var segment = encode(value[j], token);\n if (validate && !matches[i].test(segment)) {\n throw new TypeError(\"Expected all \\\"\".concat(token.name, \"\\\" to match \\\"\").concat(token.pattern, \"\\\", but got \\\"\").concat(segment, \"\\\"\"));\n }\n path += token.prefix + segment + token.suffix;\n }\n continue;\n }\n if (typeof value === \"string\" || typeof value === \"number\") {\n var segment = encode(String(value), token);\n if (validate && !matches[i].test(segment)) {\n throw new TypeError(\"Expected \\\"\".concat(token.name, \"\\\" to match \\\"\").concat(token.pattern, \"\\\", but got \\\"\").concat(segment, \"\\\"\"));\n }\n path += token.prefix + segment + token.suffix;\n continue;\n }\n if (optional)\n continue;\n var typeOfMessage = repeat ? \"an array\" : \"a string\";\n throw new TypeError(\"Expected \\\"\".concat(token.name, \"\\\" to be \").concat(typeOfMessage));\n }\n return path;\n };\n}\n/**\n * Create path match function from `path-to-regexp` spec.\n */\nexport function match(str, options) {\n var keys = [];\n var re = pathToRegexp(str, keys, options);\n return regexpToFunction(re, keys, options);\n}\n/**\n * Create a path match function from `path-to-regexp` output.\n */\nexport function regexpToFunction(re, keys, options) {\n if (options === void 0) { options = {}; }\n var _a = options.decode, decode = _a === void 0 ? function (x) { return x; } : _a;\n return function (pathname) {\n var m = re.exec(pathname);\n if (!m)\n return false;\n var path = m[0], index = m.index;\n var params = Object.create(null);\n var _loop_1 = function (i) {\n if (m[i] === undefined)\n return \"continue\";\n var key = keys[i - 1];\n if (key.modifier === \"*\" || key.modifier === \"+\") {\n params[key.name] = m[i].split(key.prefix + key.suffix).map(function (value) {\n return decode(value, key);\n });\n }\n else {\n params[key.name] = decode(m[i], key);\n }\n };\n for (var i = 1; i < m.length; i++) {\n _loop_1(i);\n }\n return { path: path, index: index, params: params };\n };\n}\n/**\n * Escape a regular expression string.\n */\nfunction escapeString(str) {\n return str.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, \"\\\\$1\");\n}\n/**\n * Get the flags for a regexp from the options.\n */\nfunction flags(options) {\n return options && options.sensitive ? \"\" : \"i\";\n}\n/**\n * Pull out keys from a regexp.\n */\nfunction regexpToRegexp(path, keys) {\n if (!keys)\n return path;\n var groupsRegex = /\\((?:\\?<(.*?)>)?(?!\\?)/g;\n var index = 0;\n var execResult = groupsRegex.exec(path.source);\n while (execResult) {\n keys.push({\n // Use parenthesized substring match if available, index otherwise\n name: execResult[1] || index++,\n prefix: \"\",\n suffix: \"\",\n modifier: \"\",\n pattern: \"\",\n });\n execResult = groupsRegex.exec(path.source);\n }\n return path;\n}\n/**\n * Transform an array into a regexp.\n */\nfunction arrayToRegexp(paths, keys, options) {\n var parts = paths.map(function (path) { return pathToRegexp(path, keys, options).source; });\n return new RegExp(\"(?:\".concat(parts.join(\"|\"), \")\"), flags(options));\n}\n/**\n * Create a path regexp from string input.\n */\nfunction stringToRegexp(path, keys, options) {\n return tokensToRegexp(parse(path, options), keys, options);\n}\n/**\n * Expose a function for taking tokens and returning a RegExp.\n */\nexport function tokensToRegexp(tokens, keys, options) {\n if (options === void 0) { options = {}; }\n var _a = options.strict, strict = _a === void 0 ? false : _a, _b = options.start, start = _b === void 0 ? true : _b, _c = options.end, end = _c === void 0 ? true : _c, _d = options.encode, encode = _d === void 0 ? function (x) { return x; } : _d, _e = options.delimiter, delimiter = _e === void 0 ? \"/#?\" : _e, _f = options.endsWith, endsWith = _f === void 0 ? \"\" : _f;\n var endsWithRe = \"[\".concat(escapeString(endsWith), \"]|$\");\n var delimiterRe = \"[\".concat(escapeString(delimiter), \"]\");\n var route = start ? \"^\" : \"\";\n // Iterate over the tokens and create our regexp string.\n for (var _i = 0, tokens_1 = tokens; _i < tokens_1.length; _i++) {\n var token = tokens_1[_i];\n if (typeof token === \"string\") {\n route += escapeString(encode(token));\n }\n else {\n var prefix = escapeString(encode(token.prefix));\n var suffix = escapeString(encode(token.suffix));\n if (token.pattern) {\n if (keys)\n keys.push(token);\n if (prefix || suffix) {\n if (token.modifier === \"+\" || token.modifier === \"*\") {\n var mod = token.modifier === \"*\" ? \"?\" : \"\";\n route += \"(?:\".concat(prefix, \"((?:\").concat(token.pattern, \")(?:\").concat(suffix).concat(prefix, \"(?:\").concat(token.pattern, \"))*)\").concat(suffix, \")\").concat(mod);\n }\n else {\n route += \"(?:\".concat(prefix, \"(\").concat(token.pattern, \")\").concat(suffix, \")\").concat(token.modifier);\n }\n }\n else {\n if (token.modifier === \"+\" || token.modifier === \"*\") {\n throw new TypeError(\"Can not repeat \\\"\".concat(token.name, \"\\\" without a prefix and suffix\"));\n }\n route += \"(\".concat(token.pattern, \")\").concat(token.modifier);\n }\n }\n else {\n route += \"(?:\".concat(prefix).concat(suffix, \")\").concat(token.modifier);\n }\n }\n }\n if (end) {\n if (!strict)\n route += \"\".concat(delimiterRe, \"?\");\n route += !options.endsWith ? \"$\" : \"(?=\".concat(endsWithRe, \")\");\n }\n else {\n var endToken = tokens[tokens.length - 1];\n var isEndDelimited = typeof endToken === \"string\"\n ? delimiterRe.indexOf(endToken[endToken.length - 1]) > -1\n : endToken === undefined;\n if (!strict) {\n route += \"(?:\".concat(delimiterRe, \"(?=\").concat(endsWithRe, \"))?\");\n }\n if (!isEndDelimited) {\n route += \"(?=\".concat(delimiterRe, \"|\").concat(endsWithRe, \")\");\n }\n }\n return new RegExp(route, flags(options));\n}\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n */\nexport function pathToRegexp(path, keys, options) {\n if (path instanceof RegExp)\n return regexpToRegexp(path, keys);\n if (Array.isArray(path))\n return arrayToRegexp(path, keys, options);\n return stringToRegexp(path, keys, options);\n}\n//# sourceMappingURL=index.js.map"],"names":["WrappedIcon","wrapBrick","defineElement","property","event","createDecorators","_WorkbenchPane","_A","WeakMap","_B","_C","_D","_WorkbenchPane_brand","WeakSet","_handleActiveChange","_E","_handleActiveFirstActivated","WorkbenchPane","ReactNextElement","constructor","arguments","_classPrivateMethodInitSpec","_classPrivateFieldInitSpec","_init_titleLabel","_init_extra_titleLabel","_init_active","_init_extra_active","_init_badge","_init_extra_badge","_init_activeChangeEvent","_init_extra_activeChangeEvent","active","this","_classPrivateGetter","_get_activeChangeEvent","emit","_init_activeFirstActivatedEvent","_init_extra_activeFirstActivatedEvent","_get_activeFirstActivatedEvent","titleLabel","_classPrivateFieldGet","v","_classPrivateFieldSet","badge","render","React","WorkbenchPaneComponent","onActiveChange","onFirstActivated","_ref","internalActive","setInternalActive","useState","activatedOnce","setActivatedOnce","useEffect","handleClick","useCallback","previousActive","scrollBodyRef","useRef","scrolled","setScrolled","handleScroll","useMemo","fn","frame","cancel","cancelAnimationFrame","func","_len","length","params","Array","_key","requestAnimationFrame","current","scrollTop","debounceByAnimationFrame","className","classNames","tabIndex","onClick","lib","theme","icon","name","onScroll","ref","style","padding","color","_WorkbenchPane2","e","_set_activeChangeEvent","_set_activeFirstActivatedEvent","c","_initClass","_applyDecs","styleTexts","styleText","sharedStyle","type","Boolean","Number","o","_","has","_checkInRHS","_WorkbenchSidebar","_getPaneSlot","_reflowPanes","_onPanesSlotChange","WorkbenchSidebar","_this$shadowRoot","shadowRoot","querySelector","panes","call","assignedNodes","pane","flex","String","activeFlex","target","addEventListener","_defineProperty","panesSlots","WorkbenchSidebarComponent","refCallback","_WorkbenchSidebar2","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","WrapLink","WrappedTooltip","_WorkbenchAction","_F","WorkbenchAction","_init_icon","_init_extra_icon","_init_to","_init_extra_to","_init_href","_init_extra_href","_init_target","_init_extra_target","_init_tooltip","_init_extra_tooltip","to","href","tooltip","WorkbenchActionComponent","content","placement","url","_WorkbenchAction2","attribute","initMenuItemAndMatchCurrentPathKeys","menuItems","pathname","search","parentCursor","selectedKeys","openedKeys","matchedKeys","cursor","forEach","item","key","isGroup","groupAsSubMenu","isSubMenu","tmp","items","push","defaultExpanded","parsePath","escapedPath","replace","match","matchPath","path","exact","activeMatchSearch","getMatchOfSearch","isArray","activeIncludes","include","paths","isObject","_parsedPath","parsedPath","hasSearch","includes","activeExcludes","matchMenuItem","keyPath","split","i","slice","join","currentSearch","toSearch","URLSearchParams","value","entries","get","WrapperWorkbenchAction","_WorkbenchActionList","WorkbenchActionList","_init_appId","_init_extra_appId","_init_menu","_init_extra_menu","appId","menu","WorkbenchActionListComponent","currentAppId","_WorkbenchActionList2","historyMap","Map","_menu$menuItems","history","getHistory","activeIndex","setActiveIndex","location","setLocation","unlisten","listen","clear","map","index","isSimpleMenuItem","text","set","handleLinkClick","filter","defaultGetCollapsedId","node","_WorkbenchTreeElement","_G","_H","_I","_J","_K","_L","_M","_N","_O","_P","_Q","_R","_S","_WorkbenchTreeElement_brand","_handleActionClick","_T","_nodeClickFactory","_U","_handleNodeDrop","_V","_contextMenuFactory","_W","_handleNodeToggle","WorkbenchTreeElement","_init_nodes","_init_extra_nodes","_init_actions","_init_extra_actions","_init_actionsHidden","_init_extra_actionsHidden","_init_placeholder","_init_extra_placeholder","_init_isTransformName","_init_extra_isTransformName","_init_searchPlaceholder","_init_extra_searchPlaceholder","_init_noSearch","_init_extra_noSearch","_init_activeKey","_init_extra_activeKey","_init_showMatchedNodeOnly","_init_extra_showMatchedNodeOnly","_init_matchNodeDataFields","_init_extra_matchNodeDataFields","_init_fixedActionsFor","_init_extra_fixedActionsFor","_init_collapsible","_init_extra_collapsible","_init_collapsedNodes","_init_extra_collapsedNodes","_init_allowDrag","_init_extra_allowDrag","_init_allowDragToRoot","_init_extra_allowDragToRoot","_init_allowDragToInside","_init_extra_allowDragToInside","_init_nodeKey","_init_extra_nodeKey","_init_skipNotify","_init_extra_skipNotify","_init_actionClickEvent","_init_extra_actionClickEvent","detail","_get_actionClickEvent","_init_nodeClickEvent","_init_extra_nodeClickEvent","_get_nodeClickEvent","data","_init_nodeDropEvent","_init_extra_nodeDropEvent","_get_nodeDropEvent","_init_nodeContextMenuEvent","_init_extra_nodeContextMenuEvent","preventDefault","_get_nodeContextMenuEvent","x","clientX","y","clientY","_init_nodeToggleEvent","_init_extra_nodeToggleEvent","nodeId","collapsed","_get_nodeToggleEvent","nodes","actions","actionsHidden","placeholder","isTransformName","searchPlaceholder","noSearch","activeKey","showMatchedNodeOnly","matchNodeDataFields","fixedActionsFor","collapsible","collapsedNodes","allowDrag","allowDragToRoot","allowDragToInside","nodeKey","skipNotify","WorkbenchActionsContext","Provider","onActionClick","WorkbenchTreeContext","basePaddingLeft","getCollapsedId","onNodeToggle","clickFactory","contextMenuFactory","matchNode","lowerTrimmedQuery","_this$matchNodeDataFi","deepMatch","pick","WorkbenchTree","dropEmit","_WorkbenchTreeElement2","_set_actionClickEvent","_set_nodeClickEvent","_set_nodeDropEvent","_set_nodeContextMenuEvent","_set_nodeToggleEvent","treeStyleText","actionStyleText","K","NS","WorkspaceApi_getChangeHistory","http","concat","_x","_x2","_x3","apply","actionI18nKeyMap","add","ADD","edit","EDIT","delete","DELETE","batch_delete","import","IMPORT","clone","CLONE","append_relation","APPEND_RELATION","update_relation","UPDATE_RELATION","remove_relation","REMOVE_RELATION","rollback","ROLLBACK","rollback_all","ROLLBACK_ALL","fullActionI18nKeyMap","ADD_FULL","EDIT_FULL","DELETE_FULL","IMPORT_FULL","CLONE_FULL","APPEND_RELATION_FULL","UPDATE_RELATION_FULL","REMOVE_RELATION_FULL","ROLLBACK_FULL","ROLLBACK_ALL_FULL","categoryI18nKeyMap","project","PROJECT","userGroup","USER","permission","PERMISSION","brick","BRICK","route","ROUTE","template","TEMPLATE","snippet","SNIPPET","i18n","I18N","image","IMAGE","function","FUNCTION","MENU","menuItem","MENU_ITEM","workflow","WORKFLOW","modelI18nKeyMap","PROJECT_MICRO_APP","MICRO_APP_RESOURCE_PERMISSION","STORYBOARD_BRICK","STORYBOARD_ROUTE","STORYBOARD_TEMPLATE","STORYBOARD_SNIPPET","STORYBOARD_I18N","MICRO_APP_RESOURCE_IMAGE","STORYBOARD_FUNCTION","MICRO_APP_RESOURCE_MENU","MICRO_APP_RESOURCE_MENU_ITEM","translateHistory","_history$abstract","_history$abstract2","_history$abstract3","_history$abstract4","_history$abstract5","_history$abstract6","_history$abstract7","_history$abstract8","_history$abstract9","_history$abstract10","_history$abstract11","_history$abstract12","historyAction","action","rollBackIdInfo","category","t","leftObjectId","abstract","rightObjectId","translateNodes","nodesCount","leftNodes","leftNodesCount","rightNodes","rightNodesCount","rollbackAbstract","nodeChanges","relationChanges","undefined","total","separator","NODE","context","count","initializeReactI18n","en","LOAD_MORE","LOADING","NO_DATA","NODE_ellipsis","zh","WrappedButton","WrappedLink","WrappedEasyopsAvatar","WrappedPopover","onVisibleChange","beforeVisibleChange","_WorkbenchHistoryActi","_WorkbenchHistoryAction_brand","_handleHistoryItemClick","_handleRollback","_handleRollbackAll","WorkbenchHistoryAction","_init_projectId","_init_extra_projectId","_init_historyItemClickEvent","_init_extra_historyItemClickEvent","_get_historyItemClickEvent","_init_rollbackEvent","_init_extra_rollbackEvent","_get_rollbackEvent","_init_rollbackAllEvent","_init_extra_rollbackAllEvent","_get_rollbackAllEvent","projectId","WorkbenchHistoryActionComponent","onHistoryItemClick","onRollback","onRollbackAll","props","useTranslation","loading","setLoading","hideLoadMore","setHideLoadMore","allLoaded","setAllLoaded","historyList","setHistoryList","lastTs","handleLoadList","isFirst","ts","limit","then","result","pre","list","translation","catch","error","handleHttpError","finally","trigger","arrow","arrowColor","slot","shape","HistoryItem","uniqueKey","enableRollback","disabled","moment","duration","diff","humanizedTime","days","format","humanize","ss","s","m","h","title","nameOrInstanceId","user","size","_WorkbenchHistoryAction","_set_historyItemClickEvent","_set_rollbackEvent","_set_rollbackAllEvent","autoFocusedSets","Set","_PageArchNode","_PageArchNode_brand","_handleLabelEditingChange","_handleLabelChange","_handleNodeClick","_handleNodeDoubleClick","_handleNodeContextMenu","_handleChildAppend","_handleExternalClick","_handleSubNodeDoubleClick","_handleSubNodeContextMenu","PageArchNode","_init_label","_init_extra_label","_init_type","_init_extra_type","_init_external","_init_extra_external","_init_subNodes","_init_extra_subNodes","_init_notSynced","_init_extra_notSynced","_init_disableChildAppend","_init_extra_disableChildAppend","_init_autoFocusOnce","_init_extra_autoFocusOnce","_init_labelEditingChange","_init_extra_labelEditingChange","_get_labelEditingChange","_init_labelChange","_init_extra_labelChange","_get_labelChange","_init_nodeClick","_init_extra_nodeClick","_get_nodeClick","_init_nodeDoubleClick","_init_extra_nodeDoubleClick","_get_nodeDoubleClick","_init_nodeContextMenu","_init_extra_nodeContextMenu","_get_nodeContextMenu","_init_childAppend","_init_extra_childAppend","_get_childAppend","_init_externalClick","_init_extra_externalClick","_get_externalClick","_init_subNodeDoubleClick","_init_extra_subNodeDoubleClick","_get_subNodeDoubleClick","_init_subNodeContextMenu","_init_extra_subNodeContextMenu","_get_subNodeContextMenu","label","external","subNodes","notSynced","disableChildAppend","autoFocusOnce","PageArchNodeComponent","onLabelEditingChange","onLabelChange","onNodeClick","onNodeDoubleClick","onNodeContextMenu","onChildAppend","onExternalClick","onSubNodeDoubleClick","onSubNodeContextMenu","_type","currentLabel","setCurrentLabel","editingLabel","setEditingLabel","editingLabelInitialized","shouldEmitLabelChange","setShouldEmitLabelChange","labelInputRef","handleEditLabel","stopPropagation","setTimeout","_labelInputRef$curren","_labelInputRef$curren2","focus","preventScroll","select","handleInputChange","handleInputKeydown","keyCode","which","_labelInputRef$curren3","blur","handleInputBlur","handleChildAppend","handleExternalClick","extraHeight","Math","max","floor","height","onDoubleClick","onContextMenu","onChange","onKeyDown","onBlur","onMouseDown","subNode","SubNode","id","role","_ref2","_PageArchNode2","_set_labelEditingChange","_set_labelChange","_set_nodeClick","_set_nodeDoubleClick","_set_nodeContextMenu","_set_childAppend","_set_externalClick","_set_subNodeDoubleClick","_set_subNodeContextMenu","_classPrivateSetter","r","a","assertClassBrand","method","_FormItemElementBase_brand","FormItemElementBase","_initProto","_init_helpBrick","_init_extra_helpBrick","_init_labelBrick","_init_extra_labelBrick","_init_labelCol","_init_extra_labelCol","_init_wrapperCol","_init_extra_wrapperCol","isFormItemElement","validateState","_set_validate","_render","_get_validate","notRender","hidden","_set__notRender","_get__notRender","$bindFormItem","_get_bindFormItem","_set_bindFormItem","helpBrick","labelBrick","labelCol","wrapperCol","setNotRender","getFormElement","element","parentNode","isFormElement","_this","_this2","_this3","_this4","_this5","_this6","_FormItemElementBase","ContractCenterApi_searchContract","post","locales","CONTRACT_OPTIONS_TIPS_PREFIX","CONTRACT_OPTIONS_TIPS_SUFFIX","CONTRACT_VALIDATE_MESSAGE","WrappedInput","MoreOption","itemsCount","setCount","setEdit","autoFocus","inputStyle","width","handleBlur","WrappedFormItem","WrappedAutoComplete","_EoContractSelect","_EoContractSelect_brand","splitContract","version","isContractApi","test","checkContractRule","isNil","EoContractSelectComponent","suffix","q","setQ","pageSize","setPageSize","contractList","setContractList","query","page","fullContractName","interceptorParams","ignoreLoadingBar","err","console","useContractList","mixedValue","setMixedValue","versionOptions","setVersionOptions","handlerSearch","debounce","_contractList$find","versionList","find","autofillVersion","useBrick","ReactUseMultipleBricks","_EoContractSelect2","_init_name","_init_extra_name","_init_required","_init_extra_required","_init_value","_init_extra_value","_init_suffix","_init_extra_suffix","_init_changeEvent","_init_extra_changeEvent","_get_changeEvent","required","exportparts","curElement","formElement","validator","handleChange","_set_changeEvent","WrappedMenu","WrappedMenuItem","lockBodyScroll","unwrapProvider","_GenerateSnippetsCont","_GenerateSnippetsContextMenu_brand","_handleItemDragStart","_handleItemDragEnd","GenerateSnippetsContextMenu","_init_options","_init_extra_options","_init_position","_init_extra_position","_init_itemDragStartEvent","_init_extra_itemDragStartEvent","_init_itemDragEndEvent","_init_extra_itemDragEndEvent","_get_itemDragStartEvent","_get_itemDragEndEvent","position","open","close","disconnectedCallback","super","GenerateSnippetsContextMenuComponent","onItemDragStart","onItemDragEnd","_ref3","_ref4","dragging","setDragging","containerRef","fixedPosition","setFixedPosition","handleMaskClick","handleItemStart","_e$dataTransfer","dragConf","dataTransfer","setData","JSON","stringify","classList","handleItemDragEnd","remove","rect","getBoundingClientRect","clientWidth","clientHeight","document","documentElement","fixed","left","top","visibility","op","_op$children","_op$children2","children","itemIndex","hoist","draggable","onDragStart","onDragEnd","_GenerateSnippetsContextMenu","_set_itemDragStartEvent","_set_itemDragEndEvent","rehypePrism","visitor","_index","parent","tagName","lang","properties","classListItem","toLowerCase","getLanguage","refractor","highlight","toString","tree","visit","production","Fragment","jsx","jsxs","MarkdownComponent","reactContent","setReactContent","ignore","unified","use","remarkParse","remarkToRehype","rehypeReact","process","vFile","WrappedAvatar","MessageComponent","message","messageChunks","chunks","chunkRegExp","lastIndex","exec","fullMatch","command","start","previousText","trim","raw","lastText","contentRef","contentElement","textingElements","parentElement","querySelectorAll","partial","lastChild","nodeType","Node","ELEMENT_NODE","_lastChild$previousSi","TEXT_NODE","textContent","previousSibling","failed","chunk","MessageChunkComponent","_ChatConversation","_ChatConversation_brand","_handleStoryboardUpdate","ChatConversation","_init_messages","_init_extra_messages","_init_errorBoundary","_init_extra_errorBoundary","_init_storyboardUpdate","_init_extra_storyboardUpdate","storyboard","_get_storyboardUpdate","messages","errorBoundary","ChatConversationComponent","host","onStoryboardUpdate","lastIndexMapRef","setChunks","manualScrolledRef","newChunks","newPage","parsed","parse","prev","setStoryboard","blocks","storyboardMap","uuid","sort","b","seq","contentLayout","main","pageTitle","hasContent","block","child","childBrick","iid","meta","rawBrick","hasContainer","verticalScrollParent","overflowY","getComputedStyle","getPropertyValue","ShadowRoot","Element","scrollingElement","scrollTo","scrollHeight","removeEventListener","_ChatConversation2","_set_storyboardUpdate","InspectOutlineComponent","variant","borderWidth","_ChatPreview","_ChatPreview_brand","_handleActiveTargetChange","ChatPreview","_init_storyboard","_init_extra_storyboard","_init_theme","_init_extra_theme","_init_uiVersion","_init_extra_uiVersion","_init_app","_init_extra_app","_init_inspecting","_init_extra_inspecting","_init_activeTargetChangeEvent","_init_extra_activeTargetChangeEvent","_get_activeTargetChangeEvent","uiVersion","app","inspecting","payload","iframeWin","contentWindow","postMessage","channel","origin","ChatPreviewComponent","onActiveTargetChange","iframeRef","ready","setReady","initialized","setInitialized","scroll","setScroll","hoverOutlines","setHoverOutlines","activeOutlines","setActiveOutlines","adjustedHoverOutlines","setAdjustedHoverOutlines","adjustedActiveOutlines","setAdjustedActiveOutlines","handleIframeLoad","check","_iframeRef$current","_preview_only_render","_iframeRef$current2","pkg","__secret_internals","getBrickPackagesById","Error","_preview_only_inject","filePath","getBasePath","window","PUBLIC_ROOT","_iframeRef$current3","yaml","safeDump","schema","JSON_SCHEMA","skipInvalid","noRefs","noCompatMode","handleMouseOut","outlines","listener","_event$data","_iframeRef$current4","adjustOutlines","outline","_iframeRef$current5","_iframeRef$current6","offsetLeft","offsetTop","rest","src","onLoad","onMouseOut","_extends","_ChatPreview2","_set_activeTargetChangeEvent","isInspecting","IID_ITEM_PREFIX","currentHoverElement","targets","getPossibleBrickTargets","composedPath","getTargetOutline","selectByClick","onMouseEvent","hoverOnTarget","eventTargets","HTMLElement","elementsFromPoint","hoverElement","leading","onPointerMove","onPointerLeave","inspectTargets","dataset","startsWith","substring","getLabel","scrollX","scrollY","pop","injected","sendMessage","customElements","define","createProviderClass","async","_e$data","toggleInspecting","selector","elements","isRoot","walk","root","candidates","getElementsIncludingInShadowDOM","_PreGeneratedPreview","PreGeneratedPreview","_init_generations","_init_extra_generations","_init_category","_init_extra_category","generations","PreGeneratedPreviewComponent","setInjected","inject","fixedPkg","Promise","allSettled","candidatesMap","mocksMap","generation","candidatesByReadWriteType","propertyId","candidatesByDisplayLevel","rwType","displayLevel","mockData","tableChildren","gridColumn","textAlign","table","gridTemplateColumns","propertyIndex","readWriteTypeIndex","isLastProperty","propertyName","candidate","values","gridRow","isLastRow","_candidate$mockData","candidateCategory","dataSource","mockValue","random","cellData","candidateChildren","container","fixBrickConf","layout","previewStyleText","_brick$properties","prefix","_PreGeneratedPreview2","_PreGeneratedTableVie","PreGeneratedTableView","PreGeneratedTableViewComponent","_PreGeneratedTableView","_PreGeneratedContaine","PreGeneratedContainer","_init_useBrick","_init_extra_useBrick","_init_dataSource","_init_extra_dataSource","PreGeneratedContainerComponent","_PreGeneratedContainer","loadEditors","customEditors","getDataDependency","contextConfs","keyword","depsMap","contextConf","stats","collectMemberUsage","if","resolve","processNodeList","nodeList","nodeItem","_find$deps","dependencyList","parents","cloneDeep","dep","deps","some","depsData","collects","matches","processDataDeps","processNodeItem","convertToStoryboard","config","attr","attrAccessor","brickItem","display","getPlainBrick","countOnly","_config$style","_config$style2","_config$style3","_config$style4","_config$style5","colorSuffix","valueAccessor","getValueAccessor","getTagSize","background","palette","getIconBrick","alignItems","gap","maxItems","_config$true","_config$false","_config$true2","_config$false2","trueIcon","true","falseIcon","false","trueStyle","getPlainStyle","falseStyle","_config$formatter","formatter","isCostTime","_config$true3","_config$false3","_config$true4","_config$false4","trueContent","falseContent","field","configStyle","fontSize","fontWeight","nodeDataList","dependencyMap","dataType","curData","from","usedProperties","_RawDataPreview","_RawDataPreview_brand","_handleComment","_handleApprove","_handleViewAttrPrompt","RawDataPreview","_init_previewUrl","_init_extra_previewUrl","_init_mocks","_init_extra_mocks","_init_busy","_init_extra_busy","_init_commentEvent","_init_extra_commentEvent","_get_commentEvent","_init_approveEvent","_init_extra_approveEvent","_get_approveEvent","_init_viewAttrPromptEvent","_init_extra_viewAttrPromptEvent","_get_viewAttrPromptEvent","previewUrl","mocks","busy","RawDataPreviewComponent","onComment","onApprove","onViewAttrPrompt","propertyToggleStateRef","propertyExpandStateRef","propertyApproveStateRef","approved","onMessage","URL","args","_generation$candidate","candidatesByVisualWeight","visualWeight","events","click","generationId","transformOrigin","transform","propertyType","propertyValues","mockList","ma","mb","aIsArray","bIsArray","aIsNil","bIsNil","aIsEmpty","bIsEmpty","mock","change","propertyInstanceId","comment","autoSize","keydown","sameOrigin","portal","_RawDataPreview2","_set_commentEvent","_set_approveEvent","_set_viewAttrPromptEvent","keys","regexp","pathToRegexp","defaults","end","strict","sensitive","InstanceApi_createInstance","objectId","attrInstanceId","boolean","promptOfBoolean","promptOfDateTime","enum","promptOfEnum","number","promptOfNumber","others","promptOfOthers","promptOfStructList","struct","promptOfStruct","PropertyEditorComponent","LegacyPropertyEditor","BEFORE_SUBMIT_KEY","ADVANCED_CHANGE_KEY","SchemaField","createSchemaField","components","FormLayout","Input","FormItem","AdvancedFormItem","FormItemWithoutAdvanced","FormCollapse","NumberPicker","Radio","Select","Switch","CategoryTitle","CodeEditor","CodeEditorComponent","IconSelect","IconSelectComponent","ColorPicker","ColorPickerComponent","UseChildrenSelect","UseChildrenSelectComponent","InputWithUrl","InputWithUrlComponent","InputWithUnit","InputWithUnitComponent","TextAlignRadio","TextAlignRadioComponent","CustomOptions","CustomOptionsComponent","BoxSize","BoxSizeComponent","CustomTab","cacheCustomEditor","_PropertyEditor","_formRef","_PropertyEditor_brand","_handleValuesChange","_handleTokenClick","_submitValue","_onSubmitEffect","_handleTriggerAction","_filterData","PropertyEditor","createRef","_init_editorName","_init_extra_editorName","_init_values","_init_extra_values","_init_advancedMode","_init_extra_advancedMode","_init_dataList","_init_extra_dataList","_init_editorPackages","_init_extra_editorPackages","_init_links","_init_extra_links","_init_extraLibs","_init_extra_extraLibs","_init_childSlots","_init_extra_childSlots","_init_successEvent","_init_extra_successEvent","_init_errorEvent","_init_extra_errorEvent","_init_valuesChangeEvent","_init_extra_valuesChangeEvent","_get_valuesChangeEvent","_init_tokenClick","_init_extra_tokenClick","_get_tokenClick","createEffectHook","form","_init_triggerActionEvent","_init_extra_triggerActionEvent","_get_triggerActionEvent","transformData","omit","shouldFilterFields","isEmpty","filterData","editorName","advancedMode","dataList","editorPackages","links","extraLibs","childSlots","validate","_classPrivateFieldGet2","getFormInstance","_get_successEvent","ADVANCED_FORM_KEY","notify","_get_errorEvent","handleValuesChange","handleTokenClick","handleTriggerAction","onSubmitEffect","Editor","setEditor","currentTheme","useCurrentTheme","cache","createCache","createForm","transformValueRef","advancedChangeRef","onAdvancedChangeEffect","useImperativeHandle","load","_customEditors$get","_customEditors$get2","defaultTransform","filterValue","setInitialValues","NORMAL_FORM_KEY","take","formValues","getState","formData","setValues","addEffects","onFormValuesChange","ConfigProvider","prefixCls","algorithm","darkAlgorithm","defaultAlgorithm","InputNumber","handleVisible","getPopupContainer","StyleProvider","FormProvider","SchemaFieldComponent","scope","tokenClick","triggerAction","effects","onFieldInit","onFieldValueChange","onFieldInitialValueChange","onFormInitialValuesChange","onFormValidateSuccess","onSubmit","onAdvancedChange","formilySchemaFormatter","_PropertyEditor2","_set_successEvent","_set_errorEvent","_set_valuesChangeEvent","_set_tokenClick","_set_triggerActionEvent","shadowOptions","dependencies","___CSS_LOADER_EXPORT___","module","escapeString","str","flags","stringToRegexp","tokens","_a","_b","_c","_d","encode","_e","delimiter","_f","endsWith","endsWithRe","delimiterRe","_i","tokens_1","token","pattern","modifier","mod","TypeError","endToken","isEndDelimited","indexOf","RegExp","tokensToRegexp","char","j","code","charCodeAt","lexer","prefixes","tryConsume","mustConsume","nextType","consumeText","safePattern","prevText","delimiter_1","isSafe","name_1","pattern_1","groupsRegex","execResult","source","regexpToRegexp","parts","arrayToRegexp"],"sourceRoot":""}
|