@ssa-ui-kit/infra-dash 0.4.1 → 0.4.2-canary-d213a33-20251219
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/index.js.map +1 -1
- package/package.json +18 -18
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;;UCVA;UACA;;;;;WCDA;WACA;WACA;WACA;WACA;WACA,iCAAiC,WAAW;WAC5C;WACA;;;;;WCPA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA;;;;;WCPA;;;;;WCAA;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACNA,MAAM,6CAA4B;;ACAlC,MAAM,oBAA4B;;ACAlC,MAAM,2BAA4B;;;ACA3B,MAAMA,SAAS,GAAGA,CAAA,KACvBC,oCAAA;EACEC,KAAK,EAAC,IAAI;EACVC,MAAM,EAAC,IAAI;EACXC,OAAO,EAAC,WAAW;EACnBC,IAAI,EAAC,MAAM;EACXC,KAAK,EAAC,4BAA4B;EAAAC,QAAA,GAClCC,mCAAA;IAAQC,EAAE,EAAC,IAAI;IAACC,EAAE,EAAC,IAAI;IAACC,CAAC,EAAC,IAAI;IAACN,IAAI,EAAC;EAAS,CAAE,CAAC,EAChDG,mCAAA;IACEI,QAAQ,EAAC,SAAS;IAClBC,QAAQ,EAAC,SAAS;IAClBC,CAAC,EAAC,iUAAiU;IACnUT,IAAI,EAAC;EAA+B,CACrC,CAAC,EACFG,mCAAA;IACEI,QAAQ,EAAC,SAAS;IAClBC,QAAQ,EAAC,SAAS;IAClBC,CAAC,EAAC,uQAAuQ;IACzQT,IAAI,EAAC;EAA+B,CACrC,CAAC,EACFG,mCAAA;IACEI,QAAQ,EAAC,SAAS;IAClBC,QAAQ,EAAC,SAAS;IAClBC,CAAC,EAAC,6TAA6T;IAC/TT,IAAI,EAAC;EAA+B,CACrC,CAAC,EACFG,mCAAA;IACEI,QAAQ,EAAC,SAAS;IAClBC,QAAQ,EAAC,SAAS;IAClBC,CAAC,EAAC,iUAAiU;IACnUT,IAAI,EAAC;EAA+B,CACrC,CAAC,EACFG,mCAAA;IACEI,QAAQ,EAAC,SAAS;IAClBC,QAAQ,EAAC,SAAS;IAClBC,CAAC,EAAC,iUAAiU;IACnUT,IAAI,EAAC;EAA+B,CACrC,CAAC,EACFG,mCAAA;IACEI,QAAQ,EAAC,SAAS;IAClBC,QAAQ,EAAC,SAAS;IAClBC,CAAC,EAAC,+TAA+T;IACjUT,IAAI,EAAC;EAA+B,CACrC,CAAC,EACFG,mCAAA;IACEI,QAAQ,EAAC,SAAS;IAClBC,QAAQ,EAAC,SAAS;IAClBC,CAAC,EAAC,mFAAmF;IACrFT,IAAI,EAAC;EAA+B,CACrC,CAAC,EACFG,mCAAA;IACEI,QAAQ,EAAC,SAAS;IAClBC,QAAQ,EAAC,SAAS;IAClBC,CAAC,EAAC,2DAA2D;IAC7DT,IAAI,EAAC;EAA+B,CACrC,CAAC,EACFG,mCAAA;IACEI,QAAQ,EAAC,SAAS;IAClBC,QAAQ,EAAC,SAAS;IAClBC,CAAC,EAAC,gTAAgT;IAClTT,IAAI,EAAC;EAA+B,CACrC,CAAC,EACFG,mCAAA;IACEI,QAAQ,EAAC,SAAS;IAClBC,QAAQ,EAAC,SAAS;IAClBC,CAAC,EAAC,gTAAgT;IAClTT,IAAI,EAAC;EAA+B,CACrC,CAAC,EACFG,mCAAA;IACEI,QAAQ,EAAC,SAAS;IAClBC,QAAQ,EAAC,SAAS;IAClBC,CAAC,EAAC,4SAA4S;IAC9ST,IAAI,EAAC;EAAgC,CACtC,CAAC,EACFG,mCAAA;IACEI,QAAQ,EAAC,SAAS;IAClBC,QAAQ,EAAC,SAAS;IAClBC,CAAC,EAAC,+SAA+S;IACjTT,IAAI,EAAC;EAAgC,CACtC,CAAC,EACFG,mCAAA;IACEI,QAAQ,EAAC,SAAS;IAClBC,QAAQ,EAAC,SAAS;IAClBC,CAAC,EAAC,8SAA8S;IAChTT,IAAI,EAAC;EAAgC,CACtC,CAAC,EACFG,mCAAA;IACEI,QAAQ,EAAC,SAAS;IAClBC,QAAQ,EAAC,SAAS;IAClBC,CAAC,EAAC,6SAA6S;IAC/ST,IAAI,EAAC;EAAgC,CACtC,CAAC,EACFG,mCAAA;IACEI,QAAQ,EAAC,SAAS;IAClBC,QAAQ,EAAC,SAAS;IAClBC,CAAC,EAAC,6SAA6S;IAC/ST,IAAI,EAAC;EAAgC,CACtC,CAAC,EACFG,mCAAA;IACEI,QAAQ,EAAC,SAAS;IAClBC,QAAQ,EAAC,SAAS;IAClBC,CAAC,EAAC,2SAA2S;IAC7ST,IAAI,EAAC;EAAgC,CACtC,CAAC,EACFG,mCAAA;IACEI,QAAQ,EAAC,SAAS;IAClBC,QAAQ,EAAC,SAAS;IAClBC,CAAC,EAAC,+SAA+S;IACjTT,IAAI,EAAC;EAAgC,CACtC,CAAC,EACFG,mCAAA;IACEI,QAAQ,EAAC,SAAS;IAClBC,QAAQ,EAAC,SAAS;IAClBC,CAAC,EAAC,2EAA2E;IAC7ET,IAAI,EAAC;EAAgC,CACtC,CAAC,EACFG,mCAAA;IACEI,QAAQ,EAAC,SAAS;IAClBC,QAAQ,EAAC,SAAS;IAClBC,CAAC,EAAC,2EAA2E;IAC7ET,IAAI,EAAC;EAAgC,CACtC,CAAC,EACFG,mCAAA;IACEI,QAAQ,EAAC,SAAS;IAClBC,QAAQ,EAAC,SAAS;IAClBC,CAAC,EAAC,wNAAwN;IAC1NT,IAAI,EAAC;EAAgC,CACtC,CAAC,EACFJ,oCAAA;IAAAM,QAAA,GACEN,oCAAA;MACEc,EAAE,EAAC,yBAAyB;MAC5BC,EAAE,EAAC,SAAS;MACZC,EAAE,EAAC,SAAS;MACZC,EAAE,EAAC,SAAS;MACZC,EAAE,EAAC,SAAS;MACZC,aAAa,EAAC,gBAAgB;MAAAb,QAAA,GAC9BC,mCAAA;QAAMa,SAAS,EAAC;MAAS,CAAE,CAAC,EAC5Bb,mCAAA;QAAMc,MAAM,EAAC,GAAG;QAACD,SAAS,EAAC;MAAS,CAAE,CAAC;IAAA,CACzB,CAAC,EACjBpB,oCAAA;MACEc,EAAE,EAAC,yBAAyB;MAC5BC,EAAE,EAAC,SAAS;MACZC,EAAE,EAAC,SAAS;MACZC,EAAE,EAAC,SAAS;MACZC,EAAE,EAAC,SAAS;MACZC,aAAa,EAAC,gBAAgB;MAAAb,QAAA,GAC9BC,mCAAA;QAAMa,SAAS,EAAC;MAAS,CAAE,CAAC,EAC5Bb,mCAAA;QAAMc,MAAM,EAAC,GAAG;QAACD,SAAS,EAAC;MAAS,CAAE,CAAC;IAAA,CACzB,CAAC,EACjBpB,oCAAA;MACEc,EAAE,EAAC,yBAAyB;MAC5BC,EAAE,EAAC,SAAS;MACZC,EAAE,EAAC,QAAQ;MACXC,EAAE,EAAC,SAAS;MACZC,EAAE,EAAC,SAAS;MACZC,aAAa,EAAC,gBAAgB;MAAAb,QAAA,GAC9BC,mCAAA;QAAMa,SAAS,EAAC;MAAS,CAAE,CAAC,EAC5Bb,mCAAA;QAAMc,MAAM,EAAC,GAAG;QAACD,SAAS,EAAC;MAAS,CAAE,CAAC;IAAA,CACzB,CAAC,EACjBpB,oCAAA;MACEc,EAAE,EAAC,yBAAyB;MAC5BC,EAAE,EAAC,SAAS;MACZC,EAAE,EAAC,SAAS;MACZC,EAAE,EAAC,SAAS;MACZC,EAAE,EAAC,SAAS;MACZC,aAAa,EAAC,gBAAgB;MAAAb,QAAA,GAC9BC,mCAAA;QAAMa,SAAS,EAAC;MAAS,CAAE,CAAC,EAC5Bb,mCAAA;QAAMc,MAAM,EAAC,GAAG;QAACD,SAAS,EAAC;MAAS,CAAE,CAAC;IAAA,CACzB,CAAC,EACjBpB,oCAAA;MACEc,EAAE,EAAC,yBAAyB;MAC5BC,EAAE,EAAC,SAAS;MACZC,EAAE,EAAC,SAAS;MACZC,EAAE,EAAC,SAAS;MACZC,EAAE,EAAC,SAAS;MACZC,aAAa,EAAC,gBAAgB;MAAAb,QAAA,GAC9BC,mCAAA;QAAMa,SAAS,EAAC;MAAS,CAAE,CAAC,EAC5Bb,mCAAA;QAAMc,MAAM,EAAC,GAAG;QAACD,SAAS,EAAC;MAAS,CAAE,CAAC;IAAA,CACzB,CAAC,EACjBpB,oCAAA;MACEc,EAAE,EAAC,yBAAyB;MAC5BC,EAAE,EAAC,SAAS;MACZC,EAAE,EAAC,SAAS;MACZC,EAAE,EAAC,SAAS;MACZC,EAAE,EAAC,SAAS;MACZC,aAAa,EAAC,gBAAgB;MAAAb,QAAA,GAC9BC,mCAAA;QAAMa,SAAS,EAAC;MAAS,CAAE,CAAC,EAC5Bb,mCAAA;QAAMc,MAAM,EAAC,GAAG;QAACD,SAAS,EAAC;MAAS,CAAE,CAAC;IAAA,CACzB,CAAC,EACjBpB,oCAAA;MACEc,EAAE,EAAC,yBAAyB;MAC5BC,EAAE,EAAC,SAAS;MACZC,EAAE,EAAC,SAAS;MACZC,EAAE,EAAC,SAAS;MACZC,EAAE,EAAC,SAAS;MACZC,aAAa,EAAC,gBAAgB;MAAAb,QAAA,GAC9BC,mCAAA;QAAMa,SAAS,EAAC;MAAS,CAAE,CAAC,EAC5Bb,mCAAA;QAAMc,MAAM,EAAC,GAAG;QAACD,SAAS,EAAC;MAAS,CAAE,CAAC;IAAA,CACzB,CAAC,EACjBpB,oCAAA;MACEc,EAAE,EAAC,yBAAyB;MAC5BC,EAAE,EAAC,SAAS;MACZC,EAAE,EAAC,SAAS;MACZC,EAAE,EAAC,SAAS;MACZC,EAAE,EAAC,SAAS;MACZC,aAAa,EAAC,gBAAgB;MAAAb,QAAA,GAC9BC,mCAAA;QAAMa,SAAS,EAAC;MAAS,CAAE,CAAC,EAC5Bb,mCAAA;QAAMc,MAAM,EAAC,GAAG;QAACD,SAAS,EAAC;MAAS,CAAE,CAAC;IAAA,CACzB,CAAC,EACjBpB,oCAAA;MACEc,EAAE,EAAC,yBAAyB;MAC5BC,EAAE,EAAC,SAAS;MACZC,EAAE,EAAC,SAAS;MACZC,EAAE,EAAC,SAAS;MACZC,EAAE,EAAC,SAAS;MACZC,aAAa,EAAC,gBAAgB;MAAAb,QAAA,GAC9BC,mCAAA;QAAMa,SAAS,EAAC;MAAS,CAAE,CAAC,EAC5Bb,mCAAA;QAAMc,MAAM,EAAC,GAAG;QAACD,SAAS,EAAC;MAAS,CAAE,CAAC;IAAA,CACzB,CAAC,EACjBpB,oCAAA;MACEc,EAAE,EAAC,yBAAyB;MAC5BC,EAAE,EAAC,SAAS;MACZC,EAAE,EAAC,SAAS;MACZC,EAAE,EAAC,SAAS;MACZC,EAAE,EAAC,SAAS;MACZC,aAAa,EAAC,gBAAgB;MAAAb,QAAA,GAC9BC,mCAAA;QAAMa,SAAS,EAAC;MAAS,CAAE,CAAC,EAC5Bb,mCAAA;QAAMc,MAAM,EAAC,GAAG;QAACD,SAAS,EAAC;MAAS,CAAE,CAAC;IAAA,CACzB,CAAC,EACjBpB,oCAAA;MACEc,EAAE,EAAC,0BAA0B;MAC7BC,EAAE,EAAC,SAAS;MACZC,EAAE,EAAC,SAAS;MACZC,EAAE,EAAC,SAAS;MACZC,EAAE,EAAC,SAAS;MACZC,aAAa,EAAC,gBAAgB;MAAAb,QAAA,GAC9BC,mCAAA;QAAMa,SAAS,EAAC;MAAS,CAAE,CAAC,EAC5Bb,mCAAA;QAAMc,MAAM,EAAC,GAAG;QAACD,SAAS,EAAC;MAAS,CAAE,CAAC;IAAA,CACzB,CAAC,EACjBpB,oCAAA;MACEc,EAAE,EAAC,0BAA0B;MAC7BC,EAAE,EAAC,SAAS;MACZC,EAAE,EAAC,SAAS;MACZC,EAAE,EAAC,SAAS;MACZC,EAAE,EAAC,SAAS;MACZC,aAAa,EAAC,gBAAgB;MAAAb,QAAA,GAC9BC,mCAAA;QAAMa,SAAS,EAAC;MAAS,CAAE,CAAC,EAC5Bb,mCAAA;QAAMc,MAAM,EAAC,GAAG;QAACD,SAAS,EAAC;MAAS,CAAE,CAAC;IAAA,CACzB,CAAC,EACjBpB,oCAAA;MACEc,EAAE,EAAC,0BAA0B;MAC7BC,EAAE,EAAC,SAAS;MACZC,EAAE,EAAC,SAAS;MACZC,EAAE,EAAC,SAAS;MACZC,EAAE,EAAC,SAAS;MACZC,aAAa,EAAC,gBAAgB;MAAAb,QAAA,GAC9BC,mCAAA;QAAMa,SAAS,EAAC;MAAS,CAAE,CAAC,EAC5Bb,mCAAA;QAAMc,MAAM,EAAC,GAAG;QAACD,SAAS,EAAC;MAAS,CAAE,CAAC;IAAA,CACzB,CAAC,EACjBpB,oCAAA;MACEc,EAAE,EAAC,0BAA0B;MAC7BC,EAAE,EAAC,SAAS;MACZC,EAAE,EAAC,SAAS;MACZC,EAAE,EAAC,SAAS;MACZC,EAAE,EAAC,SAAS;MACZC,aAAa,EAAC,gBAAgB;MAAAb,QAAA,GAC9BC,mCAAA;QAAMa,SAAS,EAAC;MAAS,CAAE,CAAC,EAC5Bb,mCAAA;QAAMc,MAAM,EAAC,GAAG;QAACD,SAAS,EAAC;MAAS,CAAE,CAAC;IAAA,CACzB,CAAC,EACjBpB,oCAAA;MACEc,EAAE,EAAC,0BAA0B;MAC7BC,EAAE,EAAC,SAAS;MACZC,EAAE,EAAC,SAAS;MACZC,EAAE,EAAC,SAAS;MACZC,EAAE,EAAC,SAAS;MACZC,aAAa,EAAC,gBAAgB;MAAAb,QAAA,GAC9BC,mCAAA;QAAMa,SAAS,EAAC;MAAS,CAAE,CAAC,EAC5Bb,mCAAA;QAAMc,MAAM,EAAC,GAAG;QAACD,SAAS,EAAC;MAAS,CAAE,CAAC;IAAA,CACzB,CAAC,EACjBpB,oCAAA;MACEc,EAAE,EAAC,0BAA0B;MAC7BC,EAAE,EAAC,SAAS;MACZC,EAAE,EAAC,SAAS;MACZC,EAAE,EAAC,SAAS;MACZC,EAAE,EAAC,SAAS;MACZC,aAAa,EAAC,gBAAgB;MAAAb,QAAA,GAC9BC,mCAAA;QAAMa,SAAS,EAAC;MAAS,CAAE,CAAC,EAC5Bb,mCAAA;QAAMc,MAAM,EAAC,GAAG;QAACD,SAAS,EAAC;MAAS,CAAE,CAAC;IAAA,CACzB,CAAC,EACjBpB,oCAAA;MACEc,EAAE,EAAC,0BAA0B;MAC7BC,EAAE,EAAC,SAAS;MACZC,EAAE,EAAC,SAAS;MACZC,EAAE,EAAC,SAAS;MACZC,EAAE,EAAC,SAAS;MACZC,aAAa,EAAC,gBAAgB;MAAAb,QAAA,GAC9BC,mCAAA;QAAMa,SAAS,EAAC;MAAS,CAAE,CAAC,EAC5Bb,mCAAA;QAAMc,MAAM,EAAC,GAAG;QAACD,SAAS,EAAC;MAAS,CAAE,CAAC;IAAA,CACzB,CAAC,EACjBpB,oCAAA;MACEc,EAAE,EAAC,0BAA0B;MAC7BC,EAAE,EAAC,SAAS;MACZC,EAAE,EAAC,SAAS;MACZC,EAAE,EAAC,QAAQ;MACXC,EAAE,EAAC,SAAS;MACZC,aAAa,EAAC,gBAAgB;MAAAb,QAAA,GAC9BC,mCAAA;QAAMa,SAAS,EAAC;MAAS,CAAE,CAAC,EAC5Bb,mCAAA;QAAMc,MAAM,EAAC,GAAG;QAACD,SAAS,EAAC;MAAS,CAAE,CAAC;IAAA,CACzB,CAAC,EACjBpB,oCAAA;MACEc,EAAE,EAAC,0BAA0B;MAC7BC,EAAE,EAAC,SAAS;MACZC,EAAE,EAAC,SAAS;MACZC,EAAE,EAAC,QAAQ;MACXC,EAAE,EAAC,SAAS;MACZC,aAAa,EAAC,gBAAgB;MAAAb,QAAA,GAC9BC,mCAAA;QAAMa,SAAS,EAAC;MAAS,CAAE,CAAC,EAC5Bb,mCAAA;QAAMc,MAAM,EAAC,GAAG;QAACD,SAAS,EAAC;MAAS,CAAE,CAAC;IAAA,CACzB,CAAC,EACjBpB,oCAAA;MACEc,EAAE,EAAC,0BAA0B;MAC7BC,EAAE,EAAC,SAAS;MACZC,EAAE,EAAC,SAAS;MACZC,EAAE,EAAC,SAAS;MACZC,EAAE,EAAC,SAAS;MACZC,aAAa,EAAC,gBAAgB;MAAAb,QAAA,GAC9BC,mCAAA;QAAMa,SAAS,EAAC;MAAS,CAAE,CAAC,EAC5Bb,mCAAA;QAAMc,MAAM,EAAC,GAAG;QAACD,SAAS,EAAC;MAAS,CAAE,CAAC;IAAA,CACzB,CAAC;EAAA,CACb,CAAC;AAAA,CACJ,CACN;;;AC3U0C;AAED;AAAA;AAAA,IAAAK,IAAA,GAAAC,KAAA;EAAAG,IAAA;EAAAC,MAAA;AAAA;AAAA,IAAAG,KAAA,GAAAP,KAAA;EAAAG,IAAA;EAAAC,MAAA;AAAA;AAMnC,MAAMI,cAAc,GAAGA,CAAC;EAAE5B;AAA8B,CAAC,KAC9DN,oCAAA,CAACsB,4BAAO;EACNa,SAAS,EAAC,QAAQ;EAClBC,GAAG,EAAAX,IAA+C;EAAAnB,QAAA,GAClDC,mCAAA,CAACR,SAAS,IAAE,CAAC,EACbQ,mCAAA;IAAK6B,GAAG,EAAAH,KAA6C;IAAA3B,QAAA,EAClDA,QAAQ,IAAI;EAA+C,CACzD,CAAC;AAAA,CACC,CACV;;ACjBD,MAAM,mBAA4B;;ACAlC,MAAM,qBAA4B;;;ACAC;AACO;AACwB;AAAA;AAAA,IAAAmB,oBAAA,GAAAC,KAAA;EAAAG,IAAA;EAAAC,MAAA;AAAA;AAAA,IAAAG,qBAAA,GAAAP,KAAA;EAAAG,IAAA;EAAAC,MAAA;AAAA;AAM3D,MAAMS,gBAAgB,GAAGA,CAAC;EAAEjC;AAAgC,CAAC,KAAK;EACvE,MAAMkC,KAAK,GAAGH,kCAAQ,CAAC,CAAU;EACjC,OACErC,oCAAA,CAACsB,4BAAO;IACNa,SAAS,EAAC,QAAQ;IAClBC,GAAG,EAAAX,oBAA+C;IAAAnB,QAAA,GAClDC,mCAAA,CAAC+B,mCAAc;MACbG,UAAU,EAAE;QACVC,KAAK,eAAEN,2BAAG,CAAC;AACrB;AACA,WAAW,EAAAV,KAAA,WAAAA,KAAA,UAAC;QACFiB,KAAK,eAAEP,2BAAG,CAAC;AACrB;AACA,iCAAiCI,KAAK,CAACI,MAAM,CAACC,WAAW;AACzD,WAAW,EAAAnB,KAAA,WAAAA,KAAA;MACH,CAAE;MACFoB,YAAY,EAAE,CAAE;MAChBC,GAAG,EAAE,EAAG;MACRC,IAAI,EAAE,GAAI;MACVC,KAAK,EAAC,MAAM;MACZC,IAAI,EAAC;IAAU,CAChB,CAAC,EACD5C,QAAQ,IACPC,mCAAA;MAAK6B,GAAG,EAAAH,qBAA6C;MAAA3B,QAAA,EAAEA;IAAQ,CAAM,CACtE;EAAA,CACM,CAAC;AAEd,CAAC;;ACnCD,MAAM,8BAA4B;;ACG3B,MAAM6C,OAAO,GAAIC,QAAgC,IAAK;EAC3D,OAAOC,IAAI,CAACC,SAAS,CAACF,QAAQ,CAAC;AACjC,CAAC;AAGD;AACO,SAASG,eAAeA,CAACC,CAAM,EAAEC,CAAM,EAAW;EACvD,IAAID,CAAC,KAAKC,CAAC,EAAE;IACX,OAAO,IAAI;EACb;EACA,IAAI,OAAOD,CAAC,KAAK,OAAOC,CAAC,EAAE;IACzB,OAAO,KAAK;EACd;EACA,IAAID,CAAC,IAAIC,CAAC,IAAI,OAAOD,CAAC,KAAK,QAAQ,IAAI,OAAOC,CAAC,KAAK,QAAQ,EAAE;IAC5D,OAAOC,MAAM,CAACC,IAAI,CAACF,CAAC,CAAC,CAACG,KAAK,CAAEC,GAAG,IAAKN,eAAe,CAACC,CAAC,CAACK,GAAG,CAAC,EAAEJ,CAAC,CAACI,GAAG,CAAC,CAAC,CAAC;EACvE;EACA,OAAO,KAAK;AACd;;ACpBA,MAAM,qBAA4B;;ACAoB;AAa/C,MAAM,CAACE,yBAAyB,EAAEC,mBAAmB,CAAC,GAC3DF,2CAAiB,CACf,6DACF,CAAC;;AChBgE;AAGzB;AAEO;AAE1C,MAAMM,cAAc,GAAGA,CAAA,KAAM;EAClC,MAAM;IAAEC;EAAY,CAAC,GAAGL,mBAAmB,CAAC,CAAC;EAC7C,OAAOK,WAAW;AACpB,CAAC;AAEM,MAAMC,QAAQ,GAAGA,CACtBT,GAAa,EACbU,OAAmB,EACnBC,OAAsB,KACnB;EACH,MAAMH,WAAW,GAAGD,cAAc,CAAC,CAAC;EAEpC,MAAMK,OAAO,GAAGP,0CAAO,CAAC,MAAMf,OAAO,CAACU,GAAG,CAAC,EAAE,CAACA,GAAG,CAAC,CAAC;EAClD,MAAMa,KAAK,GAAGR,0CAAO,CACnB,MAAMG,WAAW,CAACM,UAAU,CAAId,GAAG,EAAEU,OAAO,EAAEC,OAAO,CAAkB,EACvE,CAACC,OAAO,CACV,CAAC;EAEDC,KAAK,CAACE,YAAY,CAACL,OAAO,EAAEC,OAAO,CAAC;EAEpC,MAAMK,SAAS,GAAGZ,8CAAW,CAC1Ba,aAAyB,IAAK;IAC7B,OAAOJ,KAAK,CAACG,SAAS,CAAC,MAAM;MAC3BC,aAAa,CAAC,CAAC;IACjB,CAAC,CAAC;EACJ,CAAC,EACD,CAACJ,KAAK,CACR,CAAC;EAED,MAAMK,WAAW,GAAGA,CAAA,KAAqB;IACvC,OAAOL,KAAK,CAACM,KAAK;EACpB,CAAC;EACD,MAAMC,iBAAiB,GAAGF,WAAW;EAErC,MAAMC,KAAK,GAAGb,uDAAoB,CAACU,SAAS,EAAEE,WAAW,EAAEE,iBAAiB,CAAC;EAE7E,OAAO;IACL,GAAGD,KAAK;IACRE,OAAO,EAAEA,CAAA,KAAMb,WAAW,CAACc,iBAAiB,CAAC;MAAEtB,GAAG;MAAEuB,KAAK,EAAE;IAAK,CAAC;EACnE,CAAC;AACH,CAAC;;AC/CkE;AAQtB;AAEI;AAE1C,MAAMC,iBAAiB,GAAGA,CAAA,KAAM;EACrC,MAAM;IAAEC;EAAe,CAAC,GAAGtB,mBAAmB,CAAC,CAAC;EAChD,OAAOsB,cAAc;AACvB,CAAC;AAEM,MAAMC,WAAW,GAAGA,CACzB1B,GAAgB,EAChB2B,UAA4B,EAC5BhB,OAA+B,KAC5B;EACH,MAAMc,cAAc,GAAGD,iBAAiB,CAAC,CAAC;EAE1C,MAAMZ,OAAO,GAAGP,0CAAO,CAAC,MAAMf,OAAO,CAACU,GAAG,CAAC,EAAE,CAACA,GAAG,CAAC,CAAC;EAClD,MAAMa,KAAK,GAAGR,0CAAO,CACnB,MACEoB,cAAc,CAACG,aAAa,CAC1B5B,GAAG,EACH2B,UAAU,EACVhB,OACF,CAAwB,EAC1B,CAACC,OAAO,CACV,CAAC;EAEDC,KAAK,CAACE,YAAY,CAACY,UAAU,EAAEhB,OAAO,CAAC;EAEvC,MAAMK,SAAS,GAAGZ,8CAAW,CAC1Ba,aAAyB,IAAK;IAC7B,OAAOJ,KAAK,CAACG,SAAS,CAAC,MAAM;MAC3BC,aAAa,CAAC,CAAC;IACjB,CAAC,CAAC;EACJ,CAAC,EACD,CAACJ,KAAK,CACR,CAAC;EAED,MAAMK,WAAW,GAAGA,CAAA,KAAwB;IAC1C,OAAOL,KAAK,CAACM,KAAK;EACpB,CAAC;EACD,MAAMC,iBAAiB,GAAGF,WAAW;EAErC,MAAMC,KAAK,GAAGb,uDAAoB,CAACU,SAAS,EAAEE,WAAW,EAAEE,iBAAiB,CAAC;EAE7E,MAAMS,MAAM,GAAGzB,8CAAW,CACxB,CAAC,GAAG0B,IAAqC,KAAK;IAC5C,OAAOjB,KAAK,CAACgB,MAAM,CAAC,GAAGC,IAAI,CAAC;EAC9B,CAAC,EACD,CAACjB,KAAK,CACR,CAAC;EAED,MAAMkB,KAAK,GAAG3B,8CAAW,CAAC,MAAM;IAC9BS,KAAK,CAACkB,KAAK,CAAC,CAAC;EACf,CAAC,EAAE,CAAClB,KAAK,CAAC,CAAC;EAEX,MAAMmB,MAAM,GAAG5B,8CAAW,CAAC,MAAM;IAC/BS,KAAK,CAACmB,MAAM,CAAC,CAAC;EAChB,CAAC,EAAE,CAACnB,KAAK,CAAC,CAAC;EAEX,OAAO;IACLgB,MAAM;IACNI,IAAI,EAAEd,KAAK,CAACc,IAAI;IAChBC,KAAK,EAAEf,KAAK,CAACe,KAAK;IAClBC,SAAS,EAAEhB,KAAK,CAACgB,SAAS;IAC1BJ,KAAK;IACLC;EACF,CAAC;AACH,CAAC;;AC1EgD;AAE1C,MAAMI,YAAY,GAAIC,SAA8B,IAAK;EAC9D,MAAM;IAAEA,SAAS,EAAEC;EAAiB,CAAC,GAAGnC,mBAAmB,CAAC,CAAC;EAC7D,OAAOkC,SAAS,IAAIC,gBAAgB;AACtC,CAAC;;ACFsB;AAMI;AAUpB,MAAMC,aAAa,GAAI5B,OAAkB,IAAK;EACnD,MAAM;IAAE0B,SAAS;IAAE,GAAGG;EAAa,CAAC,GAAG7B,OAAO,IAAI,CAAC,CAAC;EACpD,MAAM8B,UAAU,GAAGL,YAAY,CAACC,SAAS,CAAC;EAC1C,MAAMK,MAAM,GAAGjC,QAAQ,CACrB,CAAC,YAAY,CAAC,EACd,MAAOkC,MAAM,IAAK;IAChB,OAAO,MAAMF,UAAU,CAACG,aAAa,CAACD,MAAM,CAAC;EAC/C,CAAC,EACDH,YACF,CAAC;EACD,OAAOE,MAAM;AACf,CAAC;AAEM,MAAMG,YAAY,GAAGA,CAACC,WAAmB,EAAEnC,OAAkB,KAAK;EACvE,MAAM;IAAE0B,SAAS;IAAE,GAAGG;EAAa,CAAC,GAAG7B,OAAO,IAAI,CAAC,CAAC;EACpD,MAAM8B,UAAU,GAAGL,YAAY,CAACC,SAAS,CAAC;EAC1C,MAAMK,MAAM,GAAGjC,QAAQ,CACrB,CAAC,YAAY,EAAEqC,WAAW,CAAC,EAC3B,MAAOH,MAAM,IAAK;IAChB,OAAO,MAAMF,UAAU,CAACM,YAAY,CAACD,WAAW,EAAEH,MAAM,CAAC;EAC3D,CAAC,EACDH,YACF,CAAC;EACD,OAAOE,MAAM;AACf,CAAC;AAEM,MAAMM,sBAAsB,GAAIrC,OAAkB,IAAK;EAC5D,MAAM;IAAE0B,SAAS;IAAE,GAAGG;EAAa,CAAC,GAAG7B,OAAO,IAAI,CAAC,CAAC;EACpD,MAAM8B,UAAU,GAAGL,YAAY,CAACC,SAAS,CAAC;EAC1C,MAAMK,MAAM,GAAGjC,QAAQ,CACrB,CAAC,YAAY,EAAE,WAAW,CAAC,EAC3B,MAAOkC,MAAM,IAAK;IAChB,OAAO,MAAMF,UAAU,CAACQ,sBAAsB,CAACN,MAAM,CAAC;EACxD,CAAC,EACDH,YACF,CAAC;EACD,OAAOE,MAAM;AACf,CAAC;AAEM,MAAMQ,kBAAkB,GAC7BvC,OAAmD,IAChD;EACH,MAAM;IAAE0B,SAAS;IAAE,GAAGc;EAAgB,CAAC,GAAGxC,OAAO,IAAI,CAAC,CAAC;EACvD,MAAM8B,UAAU,GAAGL,YAAY,CAACC,SAAS,CAAC;EAC1C,MAAMK,MAAM,GAAGhB,WAAW,CACxB,CAAC,kBAAkB,CAAC,EACpB,OAAO0B,OAA+B,EAAET,MAAoB,KAAK;IAC/D,MAAMU,MAAM,GAAGD,OAAO,CAACC,MAAM,CAACC,GAAG,CAAEC,KAAK,KAAM;MAC5CC,eAAe,EAAED,KAAK,CAACC,eAAe;MACtCC,MAAM,EAAEF,KAAK,CAACE;IAChB,CAAC,CAAC,CAAC;IACH,MAAMC,aAAa,GAAG,IAAIC,GAAG,CAC3BN,MAAM,CAACC,GAAG,CAAEC,KAAK,IAAKA,KAAK,CAACE,MAAM,CAACG,YAAY,CACjD,CAAC;IACD,IAAI,CAACF,aAAa,CAACvE,IAAI,EAAE;MACvB,MAAM,IAAI0E,KAAK,CAAC,qCAAqC,CAAC;IACxD;IACA,OAAO,MAAMpB,UAAU,CAACqB,eAAe,CACrC;MACEC,KAAK,EAAEX,OAAO,CAACW,KAAK;MACpBC,SAAS,EAAEZ,OAAO,CAACY,SAAS;MAC5BC,mBAAmB,EAAEb,OAAO,CAACa,mBAAmB;MAChDZ;IACF,CAAC,EACDV,MACF,CAAC;EACH,CAAC,EACDQ,eACF,CAAC;EACD,OAAOT,MAAM;AACf,CAAC;AAEM,MAAMwB,kBAAkB,GAAGA,CAChCpB,WAAmB,EACnBnC,OAAwE,KACrE;EACH,MAAM;IAAE0B,SAAS;IAAE,GAAGc;EAAgB,CAAC,GAAGxC,OAAO,IAAI,CAAC,CAAC;EACvD,MAAM8B,UAAU,GAAGL,YAAY,CAACC,SAAS,CAAC;EAC1C,MAAMK,MAAM,GAAGhB,WAAW,CACxB,CAAC,kBAAkB,EAAEoB,WAAW,CAAC,EACjC,OAAOM,OAAO,EAAET,MAAO,KAAK;IAC1B,MAAMU,MAAM,GAAGD,OAAO,CAACC,MAAM,CAACC,GAAG,CAAEC,KAAK,KAAM;MAC5CC,eAAe,EAAED,KAAK,CAACC,eAAe;MACtCC,MAAM,EAAEF,KAAK,CAACE;IAChB,CAAC,CAAC,CAAC;IACH,MAAMC,aAAa,GAAG,IAAIC,GAAG,CAC3BN,MAAM,CAACC,GAAG,CAAEC,KAAK,IAAKA,KAAK,CAACE,MAAM,CAACG,YAAY,CACjD,CAAC;IACD,IAAI,CAACF,aAAa,CAACvE,IAAI,EAAE;MACvB,MAAM,IAAI0E,KAAK,CAAC,qCAAqC,CAAC;IACxD;IACA,OAAO,MAAMpB,UAAU,CAAC0B,eAAe,CACrC;MACEJ,KAAK,EAAEX,OAAO,CAACW,KAAK;MACpBC,SAAS,EAAEZ,OAAO,CAACY,SAAS;MAC5BC,mBAAmB,EAAEb,OAAO,CAACa,mBAAmB;MAChDZ,MAAM;MACNP;IACF,CAAC,EACDH,MACF,CAAC;EACH,CAAC,EACDQ,eACF,CAAC;EACD,OAAOT,MAAM;AACf,CAAC;AAEM,MAAM0B,kBAAkB,GAAGA,CAChCtB,WAAmB,EACnBnC,OAAsC,KACnC;EACH,MAAM;IAAE0B,SAAS;IAAE,GAAGc;EAAgB,CAAC,GAAGxC,OAAO,IAAI,CAAC,CAAC;EACvD,MAAM8B,UAAU,GAAGL,YAAY,CAACC,SAAS,CAAC;EAC1C,MAAMK,MAAM,GAAGhB,WAAW,CACxB,CAAC,kBAAkB,EAAEoB,WAAW,CAAC,EACjC,OAAOuB,CAAS,EAAE1B,MAAoB,KAAK;IACzC,OAAO,MAAMF,UAAU,CAAC6B,eAAe,CAACxB,WAAW,EAAEH,MAAM,CAAC;EAC9D,CAAC,EACDQ,eACF,CAAC;EACD,OAAOT,MAAM;AACf,CAAC;;AC3ID;AACA;AACA;AACA;;AAeA;AACA;AACA;AACA;;AAiBA;AACA;AACA;AACA;;AAKA;AACA;AACA;AACA;;AAaA;AACA;AACA;AACA;AACO,MAAM6B,iBAAiB,GAAG;EAC/BC,OAAO,EAAE;AACX,CAAU;AAIV;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,oBAAoB,GAAGA,CAClChB,MAAuB,EACvBiB,QAEC,KACW;EACZ,QAAQjB,MAAM;IACZ,KAAKc,iBAAiB,CAACC,OAAO;MAC5B,OAAOE,QAAQ,CAACC,OAAO,CAAC,CAAC;IAC3B;MAAS;QACP;QACA,MAAMN,CAAQ,GAAGZ,MAAM;QACvB,MAAM,IAAII,KAAK,CAAC,kCAAkCJ,MAAM,EAAE,CAAC;MAC7D;EACF;AACF,CAAC;;AAED;AACA;AACA;AACA;;AAQO,MAAMmB,iBAAiB,GAAG;EAC/BC,SAAS,EAAE,CAAC;EACZC,YAAY,EAAE,CAAC;EACfC,aAAa,EAAE,CAAC;EAChBC,WAAW,EAAE,CAAC;EACdC,YAAY,EAAE;AAChB,CAAU;;ACpH6D;AAEJ;AAQ5D,MAAME,2BAA2B,GAAGA,CAAC;EAC1CC,aAAa;EACbC,MAAM,EAAEC,cAAc;EACtBC;AACkC,CAAC,GAAG,CAAC,CAAC,KAAK;EAC7C,MAAM,CAACF,MAAM,EAAEG,YAAY,CAAC,GAAGN,yCAAe,CAAC;IAC7CO,KAAK,EAAEH,cAAc;IACrBI,YAAY,EAAEN,aAAa;IAC3BO,UAAU,EAAEf,iBAAiB,CAACC,SAAS;IACvCe,QAAQ,EAAEL;EACZ,CAAC,CAAC;EAEF,OAAO;IACLF,MAAM;IACNG;EACF,CAAC;AACH,CAAC;AAMM,MAAM,CACXK,gCAAgC,EAChCC,kCAAkC,CACnC,GAAG7F,2CAAiB,CACnB,2FACF,CAAC;;ACrCD,MAAM,0CAA4B;;;;ACAS;AAAA;AAAA,IAAArC,aAAA,GAAAC,KAAA;EAAAG,IAAA;EAAAC,MAAA;AAAA;AAMpC,MAAM8H,SAAS,GAAGA,CAAC;EAAEtJ;AAAqB,CAAC,KAChDC,mCAAA,CAACe,4BAAO;EACNuI,UAAU,EAAC,QAAQ;EACnB1H,SAAS,EAAC,QAAQ;EAClBC,GAAG,EAAAX,aAAyC;EAAAnB,QAAA,EAC3CA;AAAQ,CACF,CACV;;;ACbkC;AACW;AAEJ;AAAA;AAAA,IAAAmB,cAAA,GAAAC,KAAA;EAAAG,IAAA;EAAAC,MAAA;AAAA;AAOnC,MAAMiI,UAAU,GAAGA,CAAC;EAAEnC,KAAK;EAAEtH;AAA0B,CAAC,KAAK;EAClE,OACEN,oCAAA,CAAC8J,+BAAU;IACTlC,KAAK,EAAEA,KAAM;IACboC,gBAAgB,eAAE5H,2BAAG,CAAAV,KAAA;MAAAG,IAAA;MAAAC,MAAA;IAAA,MAGnB;IAAAxB,QAAA,GACFC,mCAAA,CAACR,SAAS,IAAE,CAAC,EACbQ,mCAAA;MAAK6B,GAAG,EAAAX,cAA6C;MAAAnB,QAAA,EAClDA,QAAQ,IAAI;IAA2C,CACrD,CAAC;EAAA,CACI,CAAC;AAEjB,CAAC;;ACxBD,MAAM,0BAA4B;;ACAlC,MAAM,uDAA4B;;;ACAY;AACT;AACkC;AAC5B;AACU;AAEH;AACE;AAGE;AAEZ;AACF;AAAA;AAAA,IAAA2B,uBAAA,GAAAP,KAAA;EAAAG,IAAA;EAAAC,MAAA;AAAA;AAAA,IAAAyI,KAAA,GAAA7I,KAAA;EAAAG,IAAA;EAAAC,MAAA;AAAA;AAoBjC,MAAM0I,kBAAkB,GAAGA,CAAC;EACjCC,SAAS;EACTC,MAAM;EACNC,IAAI,GAAG,EAAE;EACTC,SAAS,GAAG,EAAE;EACdC,SAAS,GAAG,KAAK;EACjBC,SAAS,GAAG,KAAK;EACjBC,iBAAiB,GAAG,KAAK;EAAE;EAC3BC,cAAc;EACdC,WAAW;EACXC,aAAa;EACbC,kBAAkB;EAClB,GAAGC;AACoB,CAAC,KAAK;EAC7B,MAAM;IAAEC,GAAG;IAAEpL;EAAM,CAAC,GAAGkK,wCAAc,CAAiB,CAAC;EACvD,MAAMmB,OAAO,GAAGlB,4CAAkB,CAAC,CAAC;EACpC,MAAM;IAAEmB,aAAa;IAAElH;EAAY,CAAC,GAAGL,mBAAmB,CAAC,CAAC;EAE5DkG,4CAAS,CAAC,MAAM;IACd,IAAIa,iBAAiB,EAAE;MACrB1G,WAAW,CAACc,iBAAiB,CAAC;QAAEtB,GAAG,EAAE,CAAC,YAAY,CAAC;QAAE2H,IAAI,EAAE;MAAS,CAAC,CAAC;MACtE,MAAMC,UAAU,GAAGC,WAAW,CAAC,MAAM;QACnCrH,WAAW,CAACc,iBAAiB,CAAC;UAAEtB,GAAG,EAAE,CAAC,YAAY,CAAC;UAAE2H,IAAI,EAAE;QAAS,CAAC,CAAC;MACxE,CAAC,EAAET,iBAAiB,CAAC;MACrB,OAAO,MAAMY,aAAa,CAACF,UAAU,CAAC;IACxC;EACF,CAAC,EAAE,CAACV,iBAAiB,CAAC,CAAC;;EAEvB;EACA;EACA,MAAMa,YAAY,GAAG,CAAC,GAAGnB,SAAS,CAACvD,MAAM,CAAC,CAAC2E,IAAI,CAAC,CAACrI,CAAC,EAAEC,CAAC,KAAK;IACxD,MAAMqI,IAAI,GAAGtI,CAAC,CAAC6D,eAAe,CAAC0E,OAAO;IACtC,MAAMC,IAAI,GAAGvI,CAAC,CAAC4D,eAAe,CAAC0E,OAAO;IACtC,IAAID,IAAI,CAACG,CAAC,KAAKD,IAAI,CAACC,CAAC,EAAE;MACrB,OAAOH,IAAI,CAACG,CAAC,GAAGD,IAAI,CAACC,CAAC,CAAC,CAAC;IAC1B;IACA,OAAOH,IAAI,CAACI,CAAC,GAAGF,IAAI,CAACE,CAAC,CAAC,CAAC;EAC1B,CAAC,CAAC;EAEF,MAAMC,MAAM,GAAGP,YAAY,CAACzE,GAAG,CAC7B,CAAC;IAAErG,EAAE;IAAEuG,eAAe,EAAE;MAAE0E;IAAQ;EAAE,CAAC,EAAEK,KAAK,KAAK;IAC/C,IAAI,CAACd,OAAO,EAAE;MACZ;MACA,OAAO;QACLe,CAAC,EAAEvL,EAAE,CAACiB,QAAQ,CAAC,CAAC;QAChBmK,CAAC,EAAE,CAAC;QACJD,CAAC,EAAEG,KAAK,GAAGL,OAAO,CAACO,CAAC;QACpBC,CAAC,EAAE5B,IAAI;QACP2B,CAAC,EAAEP,OAAO,CAACO;MACb,CAAC;IACH;IACA,OAAO;MACLD,CAAC,EAAEvL,EAAE,CAACiB,QAAQ,CAAC,CAAC;MAChB,GAAGgK;IACL,CAAC;EACH,CACF,CAAC;EAED,MAAMS,WAAW,GAAIpF,KAAY,IAAK;IACpC,MAAMqF,WAAW,GAAGlB,aAAa,CAACmB,cAAc,CAC9CtF,KAAK,CAACC,eAAe,CAACsF,SAAS,CAAC7L,EAClC,CAAC;IACD,IAAI2L,WAAW,EAAE;MACf,OACElM,mCAAA,CAAC+J,2DAAa;QAACsC,QAAQ,EAAErM,mCAAA,CAACwJ,UAAU,IAAE,CAAE;QAAAzJ,QAAA,EACtCC,mCAAA,CAACqJ,SAAS;UAAAtJ,QAAA,EACRC,mCAAA,CAACkM,WAAW,CAACI,SAAS;YACpBzF,KAAK,EAAEA,KAAM;YAAA,GACTA,KAAK,CAACC,eAAe,CAACsF,SAAS,CAACG;UAAK,CAC1C;QAAC,CACO;MAAC,CACC,CAAC;IAEpB;IACA,OACE9M,oCAAA,CAAC4J,SAAS;MAAAtJ,QAAA,GAAC,0BAAwB,EAAC8G,KAAK,CAAC2F,WAAW,CAACvB,IAAI;IAAA,CAAY,CAAC;EAE3E,CAAC;EAED,MAAMwB,OAAO,GAAG,OAAOtC,MAAM,KAAK,UAAU,GAAGA,MAAM,CAACD,SAAS,CAAC,GAAGC,MAAM;EAEzE,OACE1K,oCAAA;IACEqL,GAAG,EAAEA,GAAI;IACTjJ,GAAG,EAAAH,uBAYD;IAAA,GACEmJ,QAAQ;IAAA9K,QAAA,GACX0M,OAAO,EACP/M,KAAK,IACJM,mCAAA,CAAC8J,sCAAU;MACT4C,QAAQ;MACRd,MAAM,EAAEA,MAAO;MACfxB,IAAI,EAAEA,IAAK;MACXC,SAAS,EAAEA,SAAU;MACrBsC,gBAAgB,EAAE,CAAC,CAAC,EAAE,CAAC,CAAE;MACzBC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAE;MACflN,KAAK,EAAEA;MACP;MAAA;MACAmN,WAAW,EAAE9B,OAAO,IAAIT,SAAU;MAClCwC,WAAW,EAAE/B,OAAO,IAAIR,SAAU;MAClCE,cAAc,EAAEM,OAAO,GAAGN,cAAc,GAAGsC,SAAU;MACrDrC,WAAW,EAAEA,WAAY;MACzBC,aAAa,EAAEA,aAAc;MAAA5K,QAAA,EAC5BmK,SAAS,CAACvD,MAAM,CAACC,GAAG,CAAEC,KAAK,IAC1BpH,oCAAA,CAACuN,QAAQ;QAAAjN,QAAA,GACN6K,kBAAkB;QACjB;QACA5K,mCAAA;UACE6B,GAAG,EAAAmI,KAAkD;UACrDiD,WAAW,EAAGC,CAAC,IAAKA,CAAC,CAACC,eAAe,CAAC,CAAE;UAAApN,QAAA,EACvC6K,kBAAkB,CAAC/D,KAAK;QAAC,CACvB,CACN,EACAoF,WAAW,CAACpF,KAAK,CAAC;MAAA,GATNA,KAAK,CAACtG,EAAE,CAACiB,QAAQ,CAAC,CAUvB,CACX;IAAC,CACQ,CACb;EAAA,CACE,CAAC;AAEV,CAAC;AAAC,IAAAN,sBAAA,GAAAC,KAAA;EAAAG,IAAA;EAAAC,MAAA;AAAA;AAMF,MAAMyL,QAAQ,gBAAGtD,6CAAU,CAAgC,SAASsD,QAAQA,CAC1E;EAAEjN,QAAQ;EAAE,GAAGwM;AAAM,CAAC,EACtBzB,GAAG,EACH;EACA,OACE9K,mCAAA;IACE8K,GAAG,EAAEA,GAAI;IACTjJ,GAAG,EAAAX,sBASD;IAAA,GACEqL,KAAK;IAAAxM,QAAA,EACRA;EAAQ,CACN,CAAC;AAEV,CAAC,CAAC;;AC/LmD;AAEO;AACI;AACb;AAM1B;AAKkB;AAAA;AAQpC,MAAMqN,eAAe,GAAGA,CAAC;EAC9BlD,SAAS;EACT9D,WAAW;EACX,GAAGmG;AACiB,CAAC,KAAK;EAC1B,MAAMc,aAAa,GAAGlH,YAAY,CAACC,WAAW,IAAI,CAAC,CAAC,EAAE;IACpDkH,OAAO,EAAE,CAAC,CAAClH,WAAW,IAAI,CAAC8D;EAC7B,CAAC,CAAC;EAEF,MAAMqD,gBAEJ,GAAGA,CAAC;IAAErD;EAAU,CAAC,KAAK;IACtB,MAAMsD,eAAe,GAAG/E,2BAA2B,CAAC;MAAE,GAAG8D;IAAM,CAAC,CAAC;IACjE,OACEvM,mCAAA,CAACmJ,gCAAgC;MAACJ,KAAK,EAAEyE,eAAgB;MAAAzN,QAAA,EACvDC,mCAAA,CAAC+J,2DAAa;QACZsC,QAAQ,EAAErM,mCAAA,CAAC2B,cAAc;UAAA5B,QAAA,EAAC;QAAoB,CAAgB,CAAE;QAAAA,QAAA,EAChEC,mCAAA,CAACiK,kBAAkB;UAAA,GAAKsC,KAAK;UAAErC,SAAS,EAAEA;QAAU,CAAE;MAAC,CAC1C;IAAC,CACgB,CAAC;EAEvC,CAAC;EAED,IAAIA,SAAS,EAAE;IACb,OAAOlK,mCAAA,CAACuN,gBAAgB;MAACrD,SAAS,EAAEA;IAAU,CAAE,CAAC;EACnD;EACA,IAAI,CAACmD,aAAa,CAACI,QAAQ,EAAE;IAC3B,OAAOzN,mCAAA,CAACgC,gBAAgB,IAAE,CAAC;EAC7B;EACA,IAAIqL,aAAa,CAAC7H,KAAK,EAAE;IACvB,OAAOxF,mCAAA,CAAC2B,cAAc,IAAE,CAAC;EAC3B;EACA,OAAO3B,mCAAA,CAACuN,gBAAgB;IAACrD,SAAS,EAAEmD,aAAa,CAAC9H;EAAK,CAAE,CAAC;AAC5D,CAAC;;;;AExDD,MAAM,oBAA4B;;;;ACCa;AACa;AAES;AACF;AAAA;AAEnE,MAAMqI,YAAY,gBAAGC,cAAA,CAAOH,mCAAc,EAAAvM,KAAA;EAAA2M,MAAA;AAAA,MAAC,0NAa3B,CAAC;EAAEE,QAAQ;EAAE/L;AAAM,CAAC,KAChC+L,QAAQ,GAAG/L,KAAK,CAACI,MAAM,CAAC4L,WAAW,GAAGhM,KAAK,CAACI,MAAM,CAAC6L,KAAK,sDAAA/M,KAAA,WAI3D;AAEM,MAAMgN,cAAc,GAAGA,CAAA,KAAM;EAClC,MAAMlM,KAAK,GAAGH,kCAAQ,CAAC,CAAC;EACxB,MAAM;IAAE6G,MAAM;IAAEG;EAAa,CAAC,GAAGM,kCAAkC,CAAC,CAAC;EAErE,MAAMgF,kBAAkB,GAAIzF,MAAuB,IAAK;IACtDG,YAAY,CAACH,MAAM,CAAC;EACtB,CAAC;EAED,MAAM0F,KAAK,GAAG,CACZ;IAAEtF,KAAK,EAAEb,iBAAiB,CAACC,SAAS;IAAE4F,KAAK,EAAE;EAAY,CAAC,EAC1D;IAAEhF,KAAK,EAAEb,iBAAiB,CAACE,YAAY;IAAE2F,KAAK,EAAE;EAAe,CAAC,EAChE;IAAEhF,KAAK,EAAEb,iBAAiB,CAACG,aAAa;IAAE0F,KAAK,EAAE;EAAgB,CAAC,EAClE;IAAEhF,KAAK,EAAEb,iBAAiB,CAACI,WAAW;IAAEyF,KAAK,EAAE;EAAc,CAAC,EAC9D;IAAEhF,KAAK,EAAEb,iBAAiB,CAACK,YAAY;IAAEwF,KAAK,EAAE;EAAe,CAAC,CACjE;EAED,OACE/N,mCAAA,CAAC2N,6BAAQ;IACPW,YAAY,EAAED,KAAK,CAACE,IAAI,CAAEC,IAAI,IAAKA,IAAI,CAACzF,KAAK,KAAKJ,MAAM,CAAE;IAC1DO,QAAQ,EAAGsF,IAAI,IAAKJ,kBAAkB,CAACI,IAAI,CAACzF,KAAK,CAAE;IACnDlH,GAAG,eAAEA,6BAAG,6FAKQI,KAAK,CAACI,MAAM,CAAC6L,KAAK,wBACZjM,KAAK,CAACI,MAAM,CAACoM,IAAI,yBAEzBxM,KAAK,CAACI,MAAM,CAACqM,UAAU,6BAGjBzM,KAAK,CAACI,MAAM,CAACsM,YAAY,2BAG3B1M,KAAK,CAACI,MAAM,CAAC6L,KAAK,oBAChBjM,KAAK,CAACI,MAAM,CAACuM,SAAS,8DAM1B3M,KAAK,CAACI,MAAM,CAACqM,UAAU,4DAKrBzM,KAAK,CAACI,MAAM,CAAC6L,KAAK,wBACZjM,KAAK,CAACI,MAAM,CAACuM,SAAS,+BAAAzN,KAAA,YAAAA,KAAA,UAG5C;IAAApB,QAAA,EACDsO,KAAK,CAACzH,GAAG,CAAE4H,IAAI,IACdxO,mCAAA,CAAC4N,YAAY;MAAkB7E,KAAK,EAAEyF,IAAI,CAACzF,KAAM;MAACgF,KAAK,EAAES,IAAI,CAACT,KAAM;MAAAhO,QAAA,EACjEyO,IAAI,CAACT;IAAK,GADMS,IAAI,CAACzF,KAEV,CACf;EAAC,CACM,CAAC;AAEf,CAAC;;;ACnFM,MAAM8F,aAAa,GAAGA,CAAC;EAC5BhP,IAAI,GAAG,SAAS;EAChB4C,IAAI,GAAG,EAAE;EACTqM,OAAO,GAAG,WAAW;EACrB,GAAGvC;AACK,CAAC,KACT9M,oCAAA;EACEC,KAAK,EAAE,GAAG+C,IAAI,IAAK;EACnB9C,MAAM,EAAE,GAAG8C,IAAI,IAAK;EACpB7C,OAAO,EAAC,WAAW;EACnBC,IAAI,EAAC,MAAM;EACXC,KAAK,EAAC,4BAA4B;EAAA,GAC9ByM,KAAK;EAAAxM,QAAA,GACTC,mCAAA;IAAAD,QAAA,EAAQ+O;EAAO,CAAQ,CAAC,EACxB9O,mCAAA;IACEM,CAAC,EAAC,y/DAAy/D;IAC3/DT,IAAI,EAAEA;EAAK,CACZ,CAAC;AAAA,CACC,CACN;;;ACrByC;AACmC;AAE/B;AAAA;AAAA,IAAAqB,2BAAA,GAAAC,KAAA;EAAAG,IAAA;EAAAC,MAAA;AAAA;AAAA,IAAAG,4BAAA,GAAAP,KAAA;EAAAG,IAAA;EAAAC,MAAA;AAAA;AAAA,IAAAyI,4BAAA,GAAA7I,KAAA;EAAAG,IAAA;EAAAC,MAAA;AAAA;AAOvC,MAAM2N,uBAAuB,GAAGA,CAAC;EACtCC,MAAM;EACNpP;AAC4B,CAAC,KAAK;EAClC,MAAMkC,KAAK,GAAGH,kCAAQ,CAAC,CAAU;EACjC,OACE9B,mCAAA,CAACiP,2BAAM,CAACG,IAAI;IAACC,KAAK,EAAEF,MAAO;IAAApP,QAAA,EACzBC,mCAAA,CAACiP,2BAAM,CAACK,OAAO;MACbzN,GAAG,EAAAX,2BAAuD;MAAAnB,QAAA,EAC1DN,oCAAA,CAACsB,4BAAO;QAACa,SAAS,EAAC,QAAQ;QAAC0H,UAAU,EAAC,OAAO;QAACzH,GAAG,EAAAH,4BAAqB;QAAA3B,QAAA,GACrEN,oCAAA,CAACwP,2BAAM,CAACM,MAAM;UAAC1N,GAAG,EAAAmI,4BAAoB;UAAAjK,QAAA,GACpCC,mCAAA,CAACiP,2BAAM,CAACO,KAAK;YAAAzP,QAAA,EAAC;UAAkB,CAAc,CAAC,EAC/CC,mCAAA,CAACgP,2BAAM;YACLS,OAAO,EAAC,WAAW;YACnB5N,GAAG,eAAAkN,6BAAA,CAAE;cACH,QAAQ,EAAE;gBACRW,UAAU,EAAEzN,KAAK,CAACI,MAAM,CAACsN;cAC3B,CAAC;cACDjQ,KAAK,EAAE,MAAM;cACbC,MAAM,EAAE,MAAM;cACdiQ,OAAO,EAAE,KAAK;cACdF,UAAU,EAAEzN,KAAK,CAACI,MAAM,CAACsN;YAC3B,CAAC,EAAAxO,KAAA,WAAAA,KAAA,UAAC;YACF0O,OAAO,EAAEA,CAAA,KAAMV,MAAM,CAACW,MAAM,CAAC,KAAK,CAAE;YAAA/P,QAAA,EACpCC,mCAAA,CAAC6O,aAAa;cAAChP,IAAI,EAAEoC,KAAK,CAACI,MAAM,CAAC6L;YAAM,CAAE;UAAC,CACrC,CAAC;QAAA,CACI,CAAC,EACfnO,QAAQ;MAAA,CACF;IAAC,CACI;EAAC,CACN,CAAC;AAElB,CAAC;;;ACxCM,MAAMgQ,WAAW,GAAGA,CAAC;EAC1BlQ,IAAI,GAAG,SAAS;EAChB4C,IAAI,GAAG,EAAE;EACTqM,OAAO,GAAG,SAAS;EACnB,GAAGvC;AACK,CAAC,KACT9M,oCAAA;EACEC,KAAK,EAAE,GAAG+C,IAAI,IAAK;EACnB9C,MAAM,EAAE,GAAG8C,IAAI,IAAK;EACpB7C,OAAO,EAAC,WAAW;EACnBC,IAAI,EAAC,MAAM;EACXC,KAAK,EAAC,4BAA4B;EAAA,GAC9ByM,KAAK;EAAAxM,QAAA,GACTC,mCAAA;IAAAD,QAAA,EAAQ+O;EAAO,CAAQ,CAAC,EACxB9O,mCAAA;IACEM,CAAC,EAAC,6iBAA6iB;IAC/iBT,IAAI,EAAEA;EAAK,CACZ,CAAC;AAAA,CACC,CACN;;;ACrByC;AAC0B;AAExB;AAAA;AAAA,IAAAqB,uBAAA,GAAAC,KAAA;EAAAG,IAAA;EAAAC,MAAA;AAAA;AAAA,IAAAG,wBAAA,GAAAP,KAAA;EAAAG,IAAA;EAAAC,MAAA;AAAA;AAOrC,MAAMyO,mBAAmB,GAAGA,CAAC;EAClCb,MAAM;EACNpP;AACwB,CAAC,KAAK;EAC9B,MAAMkC,KAAK,GAAGH,kCAAQ,CAAC,CAAU;EACjC,OACE9B,mCAAA,CAACiP,2BAAM,CAACG,IAAI;IAACC,KAAK,EAAEF,MAAO;IAAApP,QAAA,EACzBC,mCAAA,CAACiP,2BAAM,CAACgB,OAAO;MAAAlQ,QAAA,EACbN,oCAAA,CAACwP,2BAAM,CAACK,OAAO;QACbzN,GAAG,EAAAX,uBAA0D;QAAAnB,QAAA,GAC7DN,oCAAA,CAACwP,2BAAM,CAACM,MAAM;UAAC1N,GAAG,EAAAH,wBAAoB;UAAA3B,QAAA,GACpCC,mCAAA,CAACiP,2BAAM,CAACO,KAAK;YAAAzP,QAAA,EAAC;UAAc,CAAc,CAAC,EAC3CC,mCAAA,CAACgP,2BAAM;YACLS,OAAO,EAAC,WAAW;YACnB5N,GAAG,eAAAkN,6BAAA,CAAE;cACH,QAAQ,EAAE;gBACRW,UAAU,EAAEzN,KAAK,CAACI,MAAM,CAACsN;cAC3B,CAAC;cACDjQ,KAAK,EAAE,MAAM;cACbC,MAAM,EAAE,MAAM;cACdiQ,OAAO,EAAE,KAAK;cACdF,UAAU,EAAEzN,KAAK,CAACI,MAAM,CAACsN;YAC3B,CAAC,EAAAxO,KAAA,WAAAA,KAAA,UAAC;YACF0O,OAAO,EAAEA,CAAA,KAAMV,MAAM,CAACW,MAAM,CAAC,KAAK,CAAE;YAAA/P,QAAA,EACpCC,mCAAA,CAAC+P,WAAW;cAAClQ,IAAI,EAAEoC,KAAK,CAACI,MAAM,CAAC6L;YAAM,CAAE;UAAC,CACnC,CAAC;QAAA,CACI,CAAC,EACfnO,QAAQ;MAAA,CACK;IAAC,CACH;EAAC,CACN,CAAC;AAElB,CAAC;;AC1CsD;AACc;AAM9D,MAAMmQ,oBAAoB,GAAIjM,OAAiB,IAAK;EACzD,MAAM;IAAE0B,SAAS;IAAE,GAAGG;EAAa,CAAC,GAAG7B,OAAO,IAAI,CAAC,CAAC;EACpD,MAAM8B,UAAU,GAAGL,YAAY,CAACC,SAAS,CAAC;EAC1C,MAAMK,MAAM,GAAGjC,QAAQ,CACrB,CAAC,oBAAoB,CAAC,EACtB,MAAOkC,MAAM,IAAK;IAChB,OAAO,MAAMF,UAAU,CAACoK,oBAAoB,CAAClK,MAAM,CAAC;EACtD,CAAC,EACDH,YACF,CAAC;EACD,OAAOE,MAAM;AACf,CAAC;;AClBsD;AACc;AAM9D,MAAMoK,gBAAgB,GAAGA,CAC9BC,mBAA2B,EAC3BpM,OAAiB,KACd;EACH,MAAM;IAAE0B,SAAS;IAAE,GAAGG;EAAa,CAAC,GAAG7B,OAAO,IAAI,CAAC,CAAC;EACpD,MAAM8B,UAAU,GAAGL,YAAY,CAACC,SAAS,CAAC;EAC1C,MAAMK,MAAM,GAAGjC,QAAQ,CACrB,CAAC,gBAAgB,EAAEsM,mBAAmB,CAAC,EACvC,MAAOpK,MAAM,IAAK;IAChB,MAAMU,MAAM,GAAG,MAAMZ,UAAU,CAACuK,gBAAgB,CAC9CD,mBAAmB,EACnBpK,MACF,CAAC;IACD,OAAOU,MAAM,CAAC4J,OAAO,CAAE1J,KAAK,IAAK;MAC/B,IAAI,CAACA,KAAK,CAAC2F,WAAW,IAAI3F,KAAK,CAAC2F,WAAW,CAACvB,IAAI,KAAK,KAAK,EAAE;QAC1D,OAAOpE,KAAK,CAAC2J,SAAS,IAAI,EAAE;MAC9B;MACA,OAAO3J,KAAK;IACd,CAAC,CAAC;EACJ,CAAC,EACDf,YACF,CAAC;EACD,OAAOE,MAAM;AACf,CAAC;;;;AC9BgC;AACE;AACO;AAYhB;AAEyC;AACR;AACjB;AAEY;AAAA;AAAA,IAAA9E,0BAAA,GAAAC,KAAA;EAAAG,IAAA;EAAAC,MAAA;AAAA;AAAA,IAAAG,2BAAA,GAAAP,KAAA;EAAAG,IAAA;EAAAC,MAAA;AAAA;AAAA,IAAAyI,2BAAA,GAAA7I,KAAA;EAAAG,IAAA;EAAAC,MAAA;AAAA;AAUtD,MAAM0P,iBAAiB,GAAGA,CAAC;EACzB/G,SAAS;EACTvD,MAAM;EACN8G,QAAQ;EACRjI,KAAK;EACL0L;AACsB,CAAC,KAAK;EAC5B,MAAMjP,KAAK,GAAGH,kCAAQ,CAAC,CAAU;EACjC,IAAI,CAAC2L,QAAQ,EAAE;IACb,OACEzN,mCAAA,CAACe,4BAAO;MACNa,SAAS,EAAC,QAAQ;MAClBC,GAAG,EAAAX,0BAA+D;MAAAnB,QAAA,EAClEC,mCAAA,CAAC+B,mCAAc;QACbG,UAAU,EAAE;UACVC,KAAK,eAAEN,2BAAG,CAAC;AACvB;AACA,WAAW,EAAAV,KAAA,WAAAA,KAAA,UAAC;UACAiB,KAAK,eAAEP,2BAAG,CAAC;AACvB;AACA,iCAAiCI,KAAK,CAACI,MAAM,CAACC,WAAW;AACzD,WAAW,EAAAnB,KAAA,WAAAA,KAAA;QACD,CAAE;QACFoB,YAAY,EAAE,CAAE;QAChBC,GAAG,EAAE,EAAG;QACRC,IAAI,EAAE,EAAG;QACTC,KAAK,EAAC,MAAM;QACZC,IAAI,EAAC;MAAU,CAChB;IAAC,CACK,CAAC;EAEd;EACA,IAAI6C,KAAK,EAAE;IACT,OACE/F,oCAAA,CAACsB,4BAAO;MACNa,SAAS,EAAC,QAAQ;MAClBC,GAAG,EAAAH,2BAA+C;MAAA3B,QAAA,GAClDC,mCAAA,CAACR,SAAS,IAAE,CAAC,EACbC,oCAAA;QAAAM,QAAA,GAAG,4BAA0B,EAACmK,SAAS,CAAC7C,KAAK;MAAA,CAAI,CAAC;IAAA,CAC3C,CAAC;EAEd;EACA,IAAI,CAACV,MAAM,CAACwK,MAAM,EAAE;IAClB,OACE1R,oCAAA,CAACsB,4BAAO;MACNa,SAAS,EAAC,QAAQ;MAClBC,GAAG,EAAAmI,2BAA+C;MAAAjK,QAAA,GAClDC,mCAAA,CAACR,SAAS,IAAE,CAAC,EACbC,oCAAA;QAAAM,QAAA,GAAG,sBAAoB,EAACmK,SAAS,CAAC7C,KAAK;MAAA,CAAI,CAAC;IAAA,CACrC,CAAC;EAEd;EAEA,OACErH,mCAAA,CAAAgR,oCAAA;IAAAjR,QAAA,EACG4G,MAAM,CAACC,GAAG,CAAEC,KAAK,IAChBpH,oCAAA,CAACuP,2BAAM;MAELS,OAAO,EAAC,UAAU;MAClB2B,SAAS,eAAEvP,2BAAG,8IASEI,KAAK,CAACI,MAAM,CAACqM,UAAU,8BAAAvN,KAAA,YAAAA,KAAA,UAIrC;MACF0O,OAAO,EAAEA,CAAA,KAAMqB,YAAY,GAAGhH,SAAS,EAAErD,KAAK,CAAE;MAAA9G,QAAA,GAC/C8G,KAAK,CAACQ,KAAK,EACZrH,mCAAA,CAAC6Q,yBAAI;QAACvP,IAAI,EAAC,MAAM;QAACmB,IAAI,EAAE;MAAG,CAAE,CAAC;IAAA,GAlBzBoE,KAAK,CAACtG,EAmBL,CACT;EAAC,CACF,CAAC;AAEP,CAAC;AAQD,MAAM8Q,sBAAsB,GAAGA,CAAC;EAC9BnH,SAAS;EACToH,MAAM;EACNJ,YAAY;EACZ,GAAGK;AACwB,CAAC,KAAK;EACjC,MAAMtP,KAAK,GAAGH,kCAAQ,CAAC,CAAU;EACjC,MAAM;IAAEkJ;EAAc,CAAC,GAAGvH,mBAAmB,CAAC,CAAC;EAC/C,MAAM+N,WAAW,GAAGpB,gBAAgB,CAAClG,SAAS,CAAC3J,EAAE,CAAC;EAElD,MAAMkR,YAAY,GAAGD,WAAW,CAACjM,IAAI,IAAI,EAAE;EAC3C,MAAMmM,eAAe,GAAGD,YAAY,CAACE,MAAM,CAAE9K,KAAK,IAAK;IACrD,IAAI,CAACA,KAAK,CAAC2F,WAAW,EAAEvB,IAAI,EAAE;MAC5B,OAAO,KAAK;IACd;IACA,IAAIqG,MAAM,IAAI,CAACzK,KAAK,CAACQ,KAAK,CAACuK,WAAW,CAAC,CAAC,CAACC,QAAQ,CAACP,MAAM,CAACM,WAAW,CAAC,CAAC,CAAC,EAAE;MACvE,OAAO,KAAK;IACd;IACA,MAAME,mBAAmB,GAAG9G,aAAa,CAAC+G,sBAAsB,CAC9DlL,KAAK,CAAC2F,WAAW,CAACvB,IACpB,CAAC;IACD,OAAO6G,mBAAmB,CAACX,MAAM,GAAG,CAAC;EACvC,CAAC,CAAC;EAEF,IAAIG,MAAM,IAAIE,WAAW,CAAC/D,QAAQ,IAAI,CAACiE,eAAe,CAACP,MAAM,EAAE;IAC7D,OAAO,IAAI;EACb;EAEA,OACEnR,mCAAA,CAAC0Q,8BAAS;IAERnQ,EAAE,EAAE2J,SAAS,CAAC3J,EAAG;IACjB8G,KAAK,EAAE6C,SAAS,CAAC7C,KAAM;IACvB+J,SAAS,eAAEvP,2BAAG,CAAAV,KAAA;MAAAG,IAAA;MAAAC,MAAA;IAAA,MAGZ;IACFyQ,WAAW,EAAEA,CAAC;MAAE3K,KAAK;MAAE4K,QAAQ;MAAEpC;IAAQ,CAAC,KACxC7P,mCAAA,CAACgP,2BAAM;MACLa,OAAO,EAAEA,OAAQ;MACjBJ,OAAO,EAAC,UAAU;MAClB2B,SAAS,eAAEvP,2BAAG,uGAQEI,KAAK,CAACI,MAAM,CAACqM,UAAU,8BAAAvN,KAAA,YAAAA,KAAA,UAIrC;MACF+Q,SAAS,EACPD,QAAQ,GACNjS,mCAAA,CAAC6Q,yBAAI;QAACvP,IAAI,EAAC,aAAa;QAACmB,IAAI,EAAE;MAAG,CAAE,CAAC,GAErCzC,mCAAA,CAAC6Q,yBAAI;QAACvP,IAAI,EAAC,cAAc;QAACmB,IAAI,EAAE;MAAG,CAAE,CAExC;MAAA1C,QAAA,EACAsH;IAAK,CACA,CACR;IACF8K,aAAa,EAAEA,CAAC;MAAEF;IAAS,CAAC,KAC1BjS,mCAAA;MACE6B,GAAG,eAAAkN,6BAAA,CAAE;QACHrP,KAAK,EAAE,MAAM;QACb0S,OAAO,EAAEH,QAAQ,GAAG,OAAO,GAAG,MAAM;QACpCI,UAAU,EAAE,GAAG;QACfC,QAAQ,EAAE;MACZ,CAAC,EAAAnR,KAAA,WAAAA,KAAA,UAAC;MAAApB,QAAA,EACFC,mCAAA,CAACiR,iBAAiB;QAChBtK,MAAM,EAAE+K,eAAgB;QACxBjE,QAAQ,EAAE+D,WAAW,CAAC/D,QAAS;QAC/BjI,KAAK,EAAEgM,WAAW,CAAChM,KAAM;QACzB0E,SAAS,EAAEA,SAAU;QACrBgH,YAAY,EAAEA;MAAa,CAC5B;IAAC,CACC,CACL;IAAA,GACEK;EAAc,GAnDbrH,SAAS,CAAC3J,EAoDhB,CAAC;AAEN,CAAC;AAAC,IAAAgS,KAAA,GAAApR,KAAA;EAAAG,IAAA;EAAAC,MAAA;AAAA;AAAA,IAAAiR,KAAA,GAAArR,KAAA;EAAAG,IAAA;EAAAC,MAAA;AAAA;AAAA,IAAAkR,KAAA,GAAAtR,KAAA;EAAAG,IAAA;EAAAC,MAAA;AAAA;AAAA,IAAAmR,KAAA,GAAAvR,KAAA;EAAAG,IAAA;EAAAC,MAAA;AAAA;AAAA,IAAAoR,KAAA,GAAAxR,KAAA;EAAAG,IAAA;EAAAC,MAAA;AAAA;AAMK,MAAMqR,sBAAsB,GAAGA,CAAC;EACrC1B,YAAY;EACZ,GAAGrG;AACwB,CAAC,KAAK;EACjC,MAAM5I,KAAK,GAAGH,kCAAQ,CAAC,CAAU;EACjC,MAAM,CAACwP,MAAM,EAAEuB,SAAS,CAAC,GAAGpC,2CAAQ,CAAC,EAAE,CAAC;EACxC,MAAMqC,eAAe,GAAG5C,oBAAoB,CAAC,CAAC;EAE9C,IAAI,CAAC4C,eAAe,CAACrF,QAAQ,EAAE;IAC7B,OACEzN,mCAAA,CAACe,4BAAO;MACNa,SAAS,EAAC,QAAQ;MAClBC,GAAG,EAAA0Q,KAA+C;MAAA,GAC9C1H,QAAQ;MAAA9K,QAAA,EACZC,mCAAA,CAAC+B,mCAAc;QACbG,UAAU,EAAE;UACVC,KAAK,eAAEN,2BAAG,CAAC;AACvB;AACA,WAAW,EAAAV,KAAA,WAAAA,KAAA,UAAC;UACAiB,KAAK,eAAEP,2BAAG,CAAC;AACvB;AACA,iCAAiCI,KAAK,CAACI,MAAM,CAACC,WAAW;AACzD,WAAW,EAAAnB,KAAA,WAAAA,KAAA;QACD,CAAE;QACFoB,YAAY,EAAE,CAAE;QAChBC,GAAG,EAAE,EAAG;QACRC,IAAI,EAAE,EAAG;QACTC,KAAK,EAAC,MAAM;QACZC,IAAI,EAAC;MAAU,CAChB;IAAC,CACK,CAAC;EAEd;EACA,IAAImQ,eAAe,CAACtN,KAAK,EAAE;IACzB,OACE/F,oCAAA,CAACsB,4BAAO;MACNa,SAAS,EAAC,QAAQ;MAClBC,GAAG,EAAA2Q,KAA+C;MAAA,GAC9C3H,QAAQ;MAAA9K,QAAA,GACZC,mCAAA,CAACR,SAAS,IAAE,CAAC,EACbQ,mCAAA;QAAAD,QAAA,EAAG;MAAkC,CAAG,CAAC;IAAA,CAClC,CAAC;EAEd;EACA,IAAI,CAAC+S,eAAe,CAACvN,IAAI,CAAC4L,MAAM,EAAE;IAChC,OACE1R,oCAAA,CAACsB,4BAAO;MACNa,SAAS,EAAC,QAAQ;MAClBC,GAAG,EAAA4Q,KAA+C;MAAA,GAC9C5H,QAAQ;MAAA9K,QAAA,GACZC,mCAAA,CAACR,SAAS,IAAE,CAAC,EACbQ,mCAAA;QAAAD,QAAA,EAAG;MAA4B,CAAG,CAAC;IAAA,CAC5B,CAAC;EAEd;EAEA,OACEN,oCAAA,CAAAuR,oCAAA;IAAAjR,QAAA,GACEC,mCAAA,CAAC8Q,0BAAK;MACJxP,IAAI,EAAC,cAAc;MACnByR,WAAW,EAAC,WAAW;MACvBC,UAAU,EAAE;QACVjK,KAAK,EAAEuI,MAAM;QACbpI,QAAQ,EAAGgE,CAAC,IAAK2F,SAAS,CAAC3F,CAAC,CAACY,MAAM,CAAC/E,KAAK;MAC3C,CAAE;MACFlH,GAAG,EAAA6Q;IAAwB,CAC5B,CAAC,EACF1S,mCAAA,CAAC4Q,kDAA6B;MAAA7Q,QAAA,EAC5BC,mCAAA,CAAC2Q,mCAAc;QACblO,IAAI,EAAC,OAAO;QACZZ,GAAG,EAAA8Q,KAAsC;QAAA,GACrC9H,QAAQ;QAAA9K,QAAA,EACX+S,eAAe,CAACvN,IAAI,CAACqB,GAAG,CAAEsD,SAAS,IAClClK,mCAAA,CAACqR;QACC;QAAA;UACA9Q,EAAE,EAAE2J,SAAS,CAAC3J,EAAG;UAEjB2J,SAAS,EAAEA,SAAU;UACrBoH,MAAM,EAAEA,MAAO;UACfJ,YAAY,EAAEA;QAAa,GAHtBhH,SAAS,CAAC3J,EAIhB,CACF;MAAC,CACY;IAAC,CACY,CAAC;EAAA,CAChC,CAAC;AAEP,CAAC;;ACpS2D;AAYrD,MAAM0S,WAAW,GAAIC,MAAyB,IAAK;EACxD,MAAM;IAAEhJ,SAAS;IAAEc,aAAa;IAAEjE;EAAO,CAAC,GAAGmM,MAAM;EACnD,MAAMC,KAAK,GAAGjJ,SAAS,CAACvD,MAAM,CAACyM,MAAM,CACnC,CAACC,IAAI,EAAE;IAAEvM,eAAe,EAAE;MAAE0E;IAAQ;EAAE,CAAC,KACrC8H,IAAI,CAAC9Q,GAAG,CAAC6Q,IAAI,EAAE7H,OAAO,CAACE,CAAC,GAAGF,OAAO,CAACO,CAAC,CAAC,EACvC,CACF,CAAC;EAED,MAAMwH,QAAQ,GAAGxL,oBAAoB,CAAChB,MAAM,CAACkE,IAAI,EAAE;IACjDhD,OAAO,EAAEA,CAAA,KAAM;MACb,MAAM;QAAEuL,gBAAgB;QAAEC;MAAa,CAAC,GAAG1M,MAAM;MACjD,IAAI,CAAC0M,YAAY,CAACjH,WAAW,EAAE;QAC7B,OAAO,CAAC;MACV;MACA,MAAM,CAACkH,sBAAsB,CAAC,GAAG1I,aAAa,CAAC+G,sBAAsB,CACnE0B,YAAY,CAACjH,WAAW,CAACvB,IAC3B,CAAC;MACD,MAAMsI,QAAe,GAAG;QACtBhT,EAAE,EAAE,CAACoT,IAAI,CAACC,GAAG,CAAC,CAAC;QAAE;QACjB7M,MAAM,EAAE;UACNkE,IAAI,EAAE,SAAS;UACf/D,YAAY,EAAEsM,gBAAgB,CAACjT,EAAE;UACjCsT,OAAO,EAAEJ,YAAY,CAAClT;QACxB,CAAC;QACDuG,eAAe,EAAE;UACfgN,OAAO,EAAE,CAAC;UACV1H,SAAS,EAAE;YACT7L,EAAE,EAAEmT,sBAAsB,CAACK,WAAW;YACtCxH,KAAK,EAAE,CAAC;UACV,CAAC;UACDf,OAAO,EAAE;YACPG,CAAC,EAAE,CAAC;YACJD,CAAC,EAAEyH,KAAK;YACRnH,CAAC,EAAE,EAAE;YACLD,CAAC,EAAE;UACL;QACF,CAAC;QACDS,WAAW,EAAEiH,YAAY,CAACjH,WAAW;QACrCnF,KAAK,EAAEoM,YAAY,CAACpM;MACtB,CAAC;MACD,OAAOkM,QAAQ;IACjB;EACF,CAAC,CAAC;EAEF,IAAI,CAACA,QAAQ,EAAE;IACb,OAAOrJ,SAAS,CAAC,CAAC;EACpB;EAEA,OAAO;IACL,GAAGA,SAAS;IACZvD,MAAM,EAAE,CAAC,IAAIuD,SAAS,CAACvD,MAAM,IAAI,EAAE,CAAC,EAAE4M,QAAQ;EAChD,CAAC;AACH,CAAC;AAOM,MAAMS,WAAW,GAAGA,CAAC;EAAE9J,SAAS;EAAErD;AAAyB,CAAC,KAAK;EACtE,MAAMoN,SAAS,GAAG/J,SAAS,CAACvD,MAAM,CAACC,GAAG,CAAEsN,CAAC,IACvCA,CAAC,CAAC3T,EAAE,KAAKsG,KAAK,CAACtG,EAAE,GAAG;IAAE,GAAG2T,CAAC;IAAE,GAAGrN;EAAM,CAAC,GAAGqN,CAC3C,CAAC;EACD,OAAO;IACL,GAAGhK,SAAS;IACZvD,MAAM,EAAEsN;EACV,CAAC;AACH,CAAC;AAOM,MAAME,WAAW,GAAGA,CAAC;EAAEjK,SAAS;EAAErD;AAAyB,CAAC,KAAK;EACtE,MAAMoN,SAAS,GAAG/J,SAAS,CAACvD,MAAM,CAACgL,MAAM,CAAEuC,CAAC,IAAKA,CAAC,CAAC3T,EAAE,KAAKsG,KAAK,CAACtG,EAAE,CAAC;EACnE,OAAO;IACL,GAAG2J,SAAS;IACZvD,MAAM,EAAEsN;EACV,CAAC;AACH,CAAC;AAOM,MAAMG,cAAc,GAAGA,CAAC;EAC7BlK,SAAS;EACTmK;AACoB,CAAC,KAAK;EAC1B,MAAMC,YAAY,GAAGD,SAAS,CAACjB,MAAM,CACnC,CAACxM,GAAG,EAAE;IAAEkF,CAAC;IAAEH,CAAC;IAAED,CAAC;IAAEM,CAAC;IAAED;EAAE,CAAC,MAAM;IAC3B,GAAGnF,GAAG;IACN,CAACkF,CAAC,GAAG;MAAEH,CAAC;MAAED,CAAC;MAAEM,CAAC;MAAED;IAAE;EACpB,CAAC,CAAC,EACF,CAAC,CACH,CAAC;EAED,MAAMwI,YAAY,GAAG;IACnB,GAAGrK,SAAS;IACZvD,MAAM,EAAEuD,SAAS,CAACvD,MAAM,CAACC,GAAG,CAAEC,KAAK,IAAK;MACtC,MAAM2N,UAAU,GAAGF,YAAY,CAACzN,KAAK,CAACtG,EAAE,CAACiB,QAAQ,CAAC,CAAC,CAAC;MACpD,IAAI,CAACgT,UAAU,EAAE;QACf,MAAM,IAAIrN,KAAK,CAAC,8BAA8BN,KAAK,CAACtG,EAAE,YAAY,CAAC;MACrE;MACA,OAAO;QACL,GAAGsG,KAAK;QACRC,eAAe,EAAE;UACf,GAAGD,KAAK,CAACC,eAAe;UACxB0E,OAAO,EAAEgJ;QACX;MACF,CAAC;IACH,CAAC;EACH,CAAC;EAED,OAAOD,YAAY;AACrB,CAAC;;;ACnIyC;AAShB;AAAA;AAAA,IAAArT,gBAAA,GAAAC,KAAA;EAAAG,IAAA;EAAAC,MAAA;AAAA;AAAA,IAAAG,iBAAA,GAAAP,KAAA;EAAAG,IAAA;EAAAC,MAAA;AAAA;AAUnB,MAAMsT,mBAAmB,GAAGA,CAAC;EAClChO,KAAK;EACLiO,MAAM;EACNC;AACiB,CAAC,KAAK;EACvB,MAAM9S,KAAK,GAAGH,kCAAQ,CAAC,CAAU;EACjC,MAAMkT,OAAO,GAAGJ,0CAAiB,CAAC,CAAC;EAEnC,MAAMK,WAAW,GAAGA,CAAA,KAAM;IACxBD,OAAO,CAACE,OAAO,CAAC,KAAK,CAAC;EACxB,CAAC;EAED,OACEzV,oCAAA,CAACiV,mCAAc;IACb7S,GAAG,eAAAkN,6BAAA,CAAE;MACHoG,GAAG,EAAE,EAAE;MACP7L,UAAU,EAAE,OAAO;MACnB8L,MAAM,EAAE,aAAanT,KAAK,CAACI,MAAM,CAACC,WAAW,EAAE;MAC/C+S,eAAe,EAAEpT,KAAK,CAACI,MAAM,CAAC6L,KAAK;MACnCoH,YAAY,EAAE,EAAE;MAChB1F,OAAO,EAAE;IACX,CAAC,EAAAzO,KAAA,WAAAA,KAAA,UAAC;IAAApB,QAAA,GACFC,mCAAA,CAACgP,2BAAM;MACLS,OAAO,EAAC,UAAU;MAClB5N,GAAG,EAAAX,gBAA4B;MAC/B2O,OAAO,EAAEA,CAAA,KAAM;QACbiF,MAAM,GAAGjO,KAAK,CAAC;QACfoO,WAAW,CAAC,CAAC;MACf,CAAE;MACF/C,SAAS,EAAElS,mCAAA,CAAC6Q,yBAAI;QAACvP,IAAI,EAAC,MAAM;QAACmB,IAAI,EAAE;MAAG,CAAE,CAAE;MAAA1C,QAAA,EAAC;IAE7C,CAAQ,CAAC,EACTC,mCAAA,CAACgP,2BAAM;MACLS,OAAO,EAAC,UAAU;MAClB5N,GAAG,EAAAH,iBAA4B;MAC/BmO,OAAO,EAAEA,CAAA,KAAM;QACbkF,QAAQ,GAAGlO,KAAK,CAAC;QACjBoO,WAAW,CAAC,CAAC;MACf,CAAE;MACF/C,SAAS,EAAElS,mCAAA,CAAC6Q,yBAAI;QAACvP,IAAI,EAAC,KAAK;QAACmB,IAAI,EAAE;MAAG,CAAE,CAAE;MAAA1C,QAAA,EAAC;IAE5C,CAAQ,CAAC;EAAA,CACK,CAAC;AAErB,CAAC;AAAC,IAAAiK,iBAAA,GAAA7I,KAAA;EAAAG,IAAA;EAAAC,MAAA;AAAA;AAEK,MAAMgU,YAAY,GAAIhJ,KAAwB,IAAK;EACxD,OACE9M,oCAAA,CAACgV,4BAAO;IAAA1U,QAAA,GACNC,mCAAA,CAAC2U,mCAAc;MAAClF,OAAO,EAAC,UAAU;MAAC5N,GAAG,EAAAmI,iBAAmC;MAAAjK,QAAA,EACvEC,mCAAA,CAAC6Q,yBAAI;QAACvP,IAAI,EAAC,eAAe;QAACmB,IAAI,EAAE;MAAG,CAAE;IAAC,CACzB,CAAC,EACjBzC,mCAAA,CAAC6U,mBAAmB;MAAA,GAAKtI;IAAK,CAAG,CAAC;EAAA,CAC3B,CAAC;AAEd,CAAC;;AC1ED,MAAM,8BAA4B;;;;ACAkB;AACjB;AAMT;AACmB;AAES;AAAA;AAAA,IAAArL,iBAAA,GAAAC,KAAA;EAAAG,IAAA;EAAAC,MAAA;AAAA;AAAA,IAAAG,kBAAA,GAAAP,KAAA;EAAAG,IAAA;EAAAC,MAAA;AAAA;AAS/C,MAAMsU,aAAa,GAAGA,CAAC;EAC5BhP,KAAK;EACLqC,QAAQ;EACR4M;AACkB,CAAC,KAAK;EACxB,MAAM;IAAE9K;EAAc,CAAC,GAAGvH,mBAAmB,CAAC,CAAC;EAC/C,MAAM,CAACsS,aAAa,EAAEC,gBAAgB,CAAC,GAAGvF,2CAAQ,CAAQ5J,KAAK,CAAC;EAChE,MAAMoP,QAAQ,GAAGT,yCAAM,CAAC,KAAK,CAAC;EAE9B,IAAI3O,KAAK,CAACtG,EAAE,KAAKwV,aAAa,CAACxV,EAAE,EAAE;IACjCyV,gBAAgB,CAACnP,KAAK,CAAC;EACzB;;EAEA;EACA8C,4CAAS,CAAC,MAAM;IACd,OAAO,MAAM;MACX,IAAIsM,QAAQ,CAACC,OAAO,EAAE;QACpBD,QAAQ,CAACC,OAAO,GAAG,KAAK;QACxB;MACF;MACAhN,QAAQ,GAAG6M,aAAa,CAAC;IAC3B,CAAC;EACH,CAAC,EAAE,CAACA,aAAa,CAAC,CAAC;EAEnB,MAAMI,cAAc,GAAGtP,KAAK,CAACC,eAAe,CAACsF,SAAS;EAEtD,MAAM;IAAEgK,WAAW;IAAEC;EAAS,CAAC,GAAGrL,aAAa,CAACmB,cAAc,CAC5DgK,cAAc,CAAC5V,EACjB,CAAC;EACD,MAAMuR,mBAAmB,GAAG9G,aAAa,CAAC+G,sBAAsB,CAC9DlL,KAAK,CAAC2F,WAAW,CAACvB,IACpB,CAAC;EAED,MAAMqL,qBAAqB,GAAIvC,WAAmB,IAAK;IACrD,MAAMwC,iBAAiB,GAAGR,aAAa,CAACjP,eAAe,CAACsF,SAAS;IACjE,MAAMG,KAAK,GACTgK,iBAAiB,CAAChW,EAAE,KAAKwT,WAAW,GAAGwC,iBAAiB,CAAChK,KAAK,GAAG,CAAC,CAAC;IAErE,MAAMgH,QAAe,GAAG;MACtB,GAAG1M,KAAK;MACRC,eAAe,EAAE;QACf,GAAGD,KAAK,CAACC,eAAe;QACxBsF,SAAS,EAAE;UAAE7L,EAAE,EAAEwT,WAAW;UAAExH;QAAM;MACtC;IACF,CAAC;IACDrD,QAAQ,GAAGqK,QAAQ,CAAC;EACtB,CAAC;EAED,MAAMiD,iBAAiB,GAAIjK,KAA8B,IAAK;IAC5D,MAAMgH,QAAe,GAAG;MACtB,GAAG1M,KAAK;MACRC,eAAe,EAAE;QACf,GAAGD,KAAK,CAACC,eAAe;QACxBsF,SAAS,EAAE;UACT,GAAG+J,cAAc;UACjB5J,KAAK,EAAEA;QACT;MACF;IACF,CAAC;IACDrD,QAAQ,GAAGqK,QAAQ,CAAC;EACtB,CAAC;EAED,MAAMkD,eAAe,GAAGA,CAAA,KAAM;IAC5BR,QAAQ,CAACC,OAAO,GAAG,IAAI;IACvBF,gBAAgB,CAACnP,KAAK,CAAC;IACvBiP,MAAM,GAAG,CAAC;EACZ,CAAC;EAED,OACErW,oCAAA,CAAAuR,oCAAA;IAAAjR,QAAA,GACEC,mCAAA,CAAC0V,8BAAS;MACR3H,KAAK,EAAC,iBAAiB;MACvB2I,gBAAgB,eAAE7U,2BAAG,CAAAV,KAAA;QAAAG,IAAA;QAAAC,MAAA;MAAA,MAGnB;MACFoV,aAAa,EAAE,KAAM;MACrBC,aAAa,EAAE,CAACT,cAAc,CAAC5V,EAAE,CAAE;MACnC2I,QAAQ,EAAG6K,WAAW,IACpBuC,qBAAqB,CAACvC,WAAqB,CAC5C;MAAAhU,QAAA,EACA+R,mBAAmB,CAAClL,GAAG,CAAEwF,SAAS,IACjCpM,mCAAA,CAAC2V,oCAAe;QAEd5M,KAAK,EAAEqD,SAAS,CAAC2H,WAAY;QAC7BhG,KAAK,EAAE3B,SAAS,CAAC9K,IAAK;QAAAvB,QAAA,EACrBqM,SAAS,CAAC9K;MAAI,GAHV8K,SAAS,CAAC2H,WAIA,CAClB;IAAC,CACO,CAAC,EACXqC,WAAW,IACVpW,mCAAA,CAACyV,+BAAU,CAACoB,IAAI;MACdC,QAAQ,EAAC,2BAA2B;MACpC5N,QAAQ,EAAEA,CAAC;QAAE6N;MAAS,CAAC,KACrBP,iBAAiB,CAACO,QAAmC,CACtD;MACDlV,GAAG,EAAAX,iBAAwB;MAC3B6V,QAAQ,EAAEZ,cAAc,CAAC5J,KAAM;MAC/ByK,MAAM,EAAEZ,WAAY;MACpBC,QAAQ,EAAE;QACR,wBAAwB,EAAE;UAAEY,QAAQ,EAAE;QAAK,CAAC;QAC5C,GAAGZ;MACL,CAAE;MACFT,SAAS,EAAEA,0BAASA;IAAC,CACtB,CACF,EACD5V,mCAAA,CAACgP,2BAAM;MACLnN,GAAG,EAAAH,kBAAwB;MAC3B+N,OAAO,EAAC,MAAM;MACdI,OAAO,EAAE4G,eAAgB;MAAA1W,QAAA,EAAC;IAE5B,CAAQ,CAAC;EAAA,CACT,CAAC;AAEP,CAAC;;;ACrI2C;AAGS;AAC0B;AAC3B;AAKd;AAKT;AAC+B;AACA;AACI;AAGlB;AACW;AAMhC;AAEsD;AACR;AACM;AAM1D;AACsC;AACE;AAAA;AAAA,IAAAmB,mBAAA,GAAAC,KAAA;EAAAG,IAAA;EAAAC,MAAA;AAAA;AAAA,IAAAG,oBAAA,GAAAP,KAAA;EAAAG,IAAA;EAAAC,MAAA;AAAA;AAAA,IAAAyI,oBAAA,GAAA7I,KAAA;EAAAG,IAAA;EAAAC,MAAA;AAAA;AAAA,IAAAgR,oBAAA,GAAApR,KAAA;EAAAG,IAAA;EAAAC,MAAA;AAAA;AAAA,IAAAiR,oBAAA,GAAArR,KAAA;EAAAG,IAAA;EAAAC,MAAA;AAAA;AAAA,IAAAkR,oBAAA,GAAAtR,KAAA;EAAAG,IAAA;EAAAC,MAAA;AAAA;AAAA,IAAAmR,oBAAA,GAAAvR,KAAA;EAAAG,IAAA;EAAAC,MAAA;AAAA;AAAA,IAAAoR,oBAAA,GAAAxR,KAAA;EAAAG,IAAA;EAAAC,MAAA;AAAA;AAAA,IAAA6V,KAAA,GAAAjW,KAAA;EAAAG,IAAA;EAAAC,MAAA;AAAA;AAYpD,MAAM8V,uBAAuB,GAAGA,CAAC;EACtCnN,SAAS,EAAEoN,mBAAmB;EAC9BC,gBAAgB;EAChBC,SAAS;EACTtO,QAAQ;EACRuO,OAAO;EACPC,QAAQ;EACRC,OAAO;EACP,GAAG9M;AACiB,CAAC,KAAK;EAC1B,MAAM,CAAC+M,eAAe,EAAEC,kBAAkB,CAAC,GAAGpH,2CAAQ,CAAgB,IAAI,CAAC;EAC3E,MAAM;IAAEzF;EAAc,CAAC,GAAGvH,mBAAmB,CAAC,CAAC;EAC/C,MAAMqU,wBAAwB,GAAGX,kCAAS,CAAC,CAAC,CAAC,CAAC;EAC9C,MAAMY,mBAAmB,GAAGZ,kCAAS,CAAC;IACpCa,QAAQ,EAAE,OAAO;IACjBC,YAAY,EAAGC,IAAI,IAAK;MACtB,IAAI,CAACA,IAAI,IAAIN,eAAe,KAAK,IAAI,EAAE;QACrCC,kBAAkB,CAAC,IAAI,CAAC;MAC1B;IACF;EACF,CAAC,CAAC;EACF,MAAM,CAAC3N,SAAS,EAAEiO,YAAY,CAAC,GAAG3P,yCAAe,CAAC;IAChDO,KAAK,EAAEuO,mBAAmB;IAC1BtO,YAAY,EAAEuO,gBAAgB;IAC9BtO,UAAU,EAAE;MACV1B,mBAAmB,EAAE;QAAEuM,OAAO,EAAE;MAAE,CAAC;MACnCvT,EAAE,EAAE,CAAC,CAAC;MACNoG,MAAM,EAAE,EAAE;MACVW,SAAS,EAAE,KAAK;MAChBD,KAAK,EAAE;IACT,CAAC;IACD6B;EACF,CAAC,CAAC;EAEFS,4CAAS,CAAC,MAAM;IACd;IACA,IAAI4N,gBAAgB,IAAIrN,SAAS,CAAC3J,EAAE,KAAKgX,gBAAgB,CAAChX,EAAE,EAAE;MAC5D4X,YAAY,CAACZ,gBAAgB,CAAC;IAChC;EACF,CAAC,EAAE,CAACrN,SAAS,CAAC3J,EAAE,EAAEgX,gBAAgB,EAAEhX,EAAE,CAAC,CAAC;EAExC,MAAM;IAAE4E,MAAM,EAAEsC,eAAe;IAAEhC,SAAS,EAAE2S;EAAW,CAAC,GAAG5Q,kBAAkB,CAC3E0C,SAAS,CAAC3J,EACZ,CAAC;EACD,MAAM;IAAE4E,MAAM,EAAEiC,eAAe;IAAE3B,SAAS,EAAE4S;EAAW,CAAC,GACtD7R,kBAAkB,CAAC,CAAC;EAEtB,MAAM8R,cAAc,GAAGA,CACrB9E,gBAAkC,EAClCC,YAA0B,KACvB;IACH,MAAMc,YAAY,GAAGtB,WAAW,CAAC;MAC/B/I,SAAS;MACTc,aAAa;MACbjE,MAAM,EAAE;QACNkE,IAAI,EAAEpD,iBAAiB,CAACC,OAAO;QAC/B0L,gBAAgB;QAChBC;MACF;IACF,CAAC,CAAC;IACF0E,YAAY,CAAC5D,YAAY,CAAC;EAC5B,CAAC;EAED,MAAMgE,kBAAkB,GAAIlE,SAAmC,IAAK;IAClE8D,YAAY,CAAC/D,cAAc,CAAC;MAAElK,SAAS;MAAEmK;IAAU,CAAC,CAAC,CAAC;EACxD,CAAC;EAED,MAAMmE,eAAe,GAAI3R,KAAY,IAAK;IACxCgR,kBAAkB,CAAChR,KAAK,CAACtG,EAAE,CAAC;IAC5BwX,mBAAmB,CAACjI,MAAM,CAAC,IAAI,CAAC;EAClC,CAAC;EAED,MAAM2I,iBAAiB,GAAI5R,KAAY,IAAK;IAC1CsR,YAAY,CAACnE,WAAW,CAAC;MAAE9J,SAAS;MAAErD;IAAM,CAAC,CAAC,CAAC;EACjD,CAAC;EAED,MAAM6R,iBAAiB,GAAI7R,KAAY,IAAK;IAC1CsR,YAAY,CAAChE,WAAW,CAAC;MAAEjK,SAAS;MAAErD;IAAM,CAAC,CAAC,CAAC;EACjD,CAAC;EAED,MAAM8R,sBAAsB,GAAGA,CAAA,KAAM;IACnC,IAAIzO,SAAS,CAAC3J,EAAE,GAAG,CAAC,EAAE;MACpBkH,eAAe,CAACyC,SAAS,CAAC,CACvB0O,IAAI,CAAC,MAAMnB,OAAO,GAAGvN,SAAS,CAAC,CAAC,CAChC2O,KAAK,CAAErT,KAAK,IAAKmS,OAAO,GAAGnS,KAAK,CAAC,CAAC;IACvC,CAAC,MAAM;MACL4B,eAAe,CAAC8C,SAAS,CAAC,CACvB0O,IAAI,CAAC,MAAMlB,QAAQ,GAAG,CAAC,CAAC,CACxBmB,KAAK,CAAErT,KAAK,IAAKmS,OAAO,GAAGnS,KAAK,CAAC,CAAC;IACvC;EACF,CAAC;EAED,MAAMsT,aAAa,GACjBlB,eAAe,KAAK,IAAI,GACpB1N,SAAS,CAACvD,MAAM,CAAC4H,IAAI,CAAE2F,CAAC,IAAKA,CAAC,CAAC3T,EAAE,KAAKqX,eAAe,CAAC,GACtD,IAAI;EAEV,MAAMmB,aAAa,GAAGV,UAAU,IAAID,UAAU,IAAI,CAAClO,SAAS,CAACvD,MAAM,CAACwK,MAAM;EAE1E,OACE1R,oCAAA,CAACsB,4BAAO;IACNuI,UAAU,EAAC,OAAO;IAClBzH,GAAG,EAAAX,mBAA2C;IAAA,GAC1C2J,QAAQ;IAAA9K,QAAA,GACZC,mCAAA,CAACkP,uBAAuB;MAACC,MAAM,EAAE2I,wBAAyB;MAAA/X,QAAA,EACxDC,mCAAA,CAAC4S,sBAAsB;QACrB/Q,GAAG,EAAAH,oBAAwB;QAC3BwP,YAAY,EAAEoH;MAAe,CAC9B;IAAC,CACqB,CAAC,EAC1B7Y,oCAAA,CAACsB,4BAAO;MACNa,SAAS,EAAC,QAAQ;MAClB0H,UAAU,EAAC,OAAO;MAClBzH,GAAG,EAAAmI,oBAAwD;MAAAjK,QAAA,GAC3DN,oCAAA,CAACsB,4BAAO;QAACc,GAAG,EAAA0Q,oBAAkB;QAAAxS,QAAA,GAC3B,CAAC+X,wBAAwB,CAACkB,MAAM,IAC/B,CAAClB,wBAAwB,CAACmB,UAAU,CAACC,SAAS,IAC5ClZ,mCAAA,CAACgP,2BAAM;UACLS,OAAO,EAAC,WAAW;UACnB5N,GAAG,EAAA2Q,oBAAoD;UACvD3C,OAAO,EAAEA,CAAA,KAAMiI,wBAAwB,CAAChI,MAAM,CAAC,IAAI,CAAE;UAAA/P,QAAA,EACrDC,mCAAA,CAAC6O,aAAa,IAAE;QAAC,CACX,CACT,EACH7O,mCAAA;UACE6B,GAAG,EAAA4Q,oBAKD;UAAA1S,QAAA,EAAC;QAEL,CAAI,CAAC,EACLC,mCAAA,CAAC8Q,0BAAK;UACJxP,IAAI,EAAC,gBAAgB;UACrByR,WAAW,EAAC,gBAAgB;UAC5BC,UAAU,EAAE;YACVjK,KAAK,EAAEmB,SAAS,CAAC7C,KAAK;YACtB6B,QAAQ,EAAGgE,CAAC,IACViL,YAAY,CAAC;cAAE,GAAGjO,SAAS;cAAE7C,KAAK,EAAE6F,CAAC,CAACY,MAAM,CAAC/E;YAAM,CAAC;UACxD,CAAE;UACFlH,GAAG,EAAA6Q,oBAAAA;QAAwB,CAC5B,CAAC,EACF1S,mCAAA,CAACkX,6BAAQ;UACPiC,IAAI,EAAC,SAAS;UACdC,YAAY,EAAElP,SAAS,CAAC5C,SAAU;UAClC4B,QAAQ,EAAG5B,SAAS,IAAK6Q,YAAY,CAAC;YAAE,GAAGjO,SAAS;YAAE5C;UAAU,CAAC;QAAE,CACpE,CAAC,EACFtH,mCAAA,CAACmO,cAAc,IAAE,CAAC,EAClBnO,mCAAA,CAACgP,2BAAM;UACLS,OAAO,EAAC,MAAM;UACd5N,GAAG,EAAA8Q,oBAAqB;UACxB0G,UAAU,EAAEN,aAAc;UAC1BlJ,OAAO,EAAE8I,sBAAuB;UAAA5Y,QAAA,EAC/BmK,SAAS,CAAC3J,EAAE,GAAG,CAAC,GAAG,MAAM,GAAG;QAAQ,CAC/B,CAAC;MAAA,CACF,CAAC,EACVP,mCAAA,CAACiK,kBAAkB;QACjBM,SAAS;QACTD,SAAS;QACTJ,SAAS,EAAEA,SAAU;QACrBrI,GAAG,EAAAuV,KAA0D;QAC7D3M,cAAc,EAAE8N,kBAAmB;QACnC7N,WAAW,EAAEA,CAAA,KAAMqN,mBAAmB,CAACjI,MAAM,CAAC,KAAK,CAAE;QACrDnF,aAAa,EAAEA,CAAA,KAAMoN,mBAAmB,CAACjI,MAAM,CAAC,KAAK,CAAE;QACvDlF,kBAAkB,EAAG/D,KAAK,IACxB7G,mCAAA,CAACuV,YAAY;UACX1O,KAAK,EAAEA,KAAM;UACbiO,MAAM,EAAEA,CAAA,KAAM0D,eAAe,CAAC3R,KAAK,CAAE;UACrCkO,QAAQ,EAAEA,CAAA,KAAM2D,iBAAiB,CAAC7R,KAAK;QAAE,CAC1C,CACD;QAAA,GACE2Q;MAAS,CACd,CAAC;IAAA,CACK,CAAC,EACVxX,mCAAA,CAACgQ,mBAAmB;MAACb,MAAM,EAAE4I,mBAAoB;MAAAhY,QAAA,EAC9C+Y,aAAa,IACZ9Y,mCAAA,CAAC6V,aAAa;QACZhP,KAAK,EAAEiS,aAAc;QACrB5P,QAAQ,EAAEuP,iBAAkB;QAC5B3C,MAAM,EAAEA,CAAA,KAAMiC,mBAAmB,CAACjI,MAAM,CAAC,KAAK;MAAE,CACjD;IACF,CACkB,CAAC;EAAA,CACf,CAAC;AAEd,CAAC;AAEM,MAAMwJ,eAAe,GAAGA,CAAC;EAC9BlT,WAAW;EACX,GAAGmG;AAGgC,CAAC,KAAK;EACzC,MAAM;IAAErC,SAAS;IAAEqN;EAAiB,CAAC,GAAGhL,KAAK;EAE7C,MAAMc,aAAa,GAAGlH,YAAY,CAACC,WAAW,IAAI,CAAC,CAAC,EAAE;IACpDkH,OAAO,EAAE,CAAC,CAAClH,WAAW,IAAI,CAAC8D,SAAS,IAAI,CAACqN;EAC3C,CAAC,CAAC;EAEF,MAAMhK,gBAAgD,GAAIgM,WAAW,IAAK;IACxE,MAAM/L,eAAe,GAAG/E,2BAA2B,CAAC;MAClD,GAAG8D;IACL,CAAC,CAAC;IAEF,OACEvM,mCAAA,CAACmJ,gCAAgC;MAACJ,KAAK,EAAEyE,eAAgB;MAAAzN,QAAA,EACvDC,mCAAA,CAAC+J,2DAAa;QACZsC,QAAQ,EAAErM,mCAAA,CAAC2B,cAAc;UAAA5B,QAAA,EAAC;QAAoB,CAAgB,CAAE;QAAAA,QAAA,EAChEC,mCAAA,CAACqX,uBAAuB;UAAA,GAAKkC;QAAW,CAAG;MAAC,CAC/B;IAAC,CACgB,CAAC;EAEvC,CAAC;EAED,IAAI,CAACnT,WAAW,EAAE;IAChB,OAAOpG,mCAAA,CAACuN,gBAAgB;MAAA,GAAKhB;IAAK,CAAG,CAAC;EACxC;EACA,IAAI,CAACc,aAAa,CAACI,QAAQ,EAAE;IAC3B,OAAOzN,mCAAA,CAACgC,gBAAgB,IAAE,CAAC;EAC7B;EACA,IAAIqL,aAAa,CAAC7H,KAAK,EAAE;IACvB,OAAOxF,mCAAA,CAAC2B,cAAc,IAAE,CAAC;EAC3B;EACA,OAAO3B,mCAAA,CAACuN,gBAAgB;IAAA,GAAKhB,KAAK;IAAEgL,gBAAgB,EAAElK,aAAa,CAAC9H;EAAK,CAAE,CAAC;AAC9E,CAAC;;;;AErRM,MAAMiU,QAAQ,GAAG,MAAqBC,OAAuB,IAAK;EACvE,IAAI;IACF,MAAMlU,IAAI,GAAG,MAAMkU,OAAO;IAC1B,OAAO,CAAC,IAAI,EAAElU,IAAI,CAAC;EACrB,CAAC,CAAC,OAAOC,KAAK,EAAE;IACd,OAAO,CAACA,KAAK,EAAO,IAAI,CAAC;EAC3B;AACF,CAAC;;ACNuC;AAcjC,MAAMkU,sBAAsB,CAA+B;EAKhEC,WAAWA,CAAC;IACVC,OAAO;IACPC,cAAc;IACdC;EAC4B,CAAC,EAAE;IAC/B,IAAI,CAACF,OAAO,EAAE;MACZ,MAAM,IAAIzS,KAAK,CAAC,iDAAiD,CAAC;IACpE;IACA,IAAI,CAACyS,OAAO,GAAGA,OAAO;IACtB,IAAI,CAACC,cAAc,GAAGA,cAAc;IACpC,IAAI,CAACC,cAAc,GAAGA,cAAc;EACtC;EAEAC,MAAMA,CAACC,IAAY,EAAU;IAC3B,OAAO,GAAG,IAAI,CAACJ,OAAO,GAAGI,IAAI,EAAE;EACjC;EAEA,MAAMC,gBAAgBA,CAACC,OAAgB,EAAE;IACvC,IAAI,IAAI,CAACL,cAAc,EAAE;MACvB,OAAO,MAAM,IAAI,CAACA,cAAc,CAACK,OAAO,CAAC;IAC3C;IACA,OAAOA,OAAO;EAChB;;EAEA;EACA,MAAgBC,WAAWA,CACzBD,OAAgB,EAChBE,aAAa,GAAG,IAAI,EACR;IACZ,MAAMC,gBAAgB,GAAG,MAAM,IAAI,CAACJ,gBAAgB,CAACC,OAAO,CAAC;IAC7D,MAAM,CAAC1U,KAAK,EAAE8U,QAAQ,CAAC,GAAG,MAAMd,QAAQ,CAACe,KAAK,CAACF,gBAAgB,CAAC,CAAC;IACjE,IAAI7U,KAAK,IAAI,CAAC8U,QAAQ,CAACE,EAAE,EAAE;MACzB,MAAM,IAAIrT,KAAK,CACb,WAAWkT,gBAAgB,CAACI,GAAG,YAAYjV,KAAK,EAAEkV,OAAO,IAAIJ,QAAQ,EAAEK,UAAU,EACnF,CAAC;IACH;IACA,IAAI,CAACP,aAAa,EAAE;MAClB,OAAOE,QAAQ;IACjB;IACA,MAAMM,IAAI,GAAG,MAAMN,QAAQ,CAACM,IAAI,CAAC,CAAC;IAClC,IAAI5U,MAAM,GAAG4U,IAAS;IACtB,IAAI,IAAI,CAACd,cAAc,EAAE;MACvB9T,MAAM,GAAG,MAAM,IAAI,CAAC8T,cAAc,CAAIc,IAAI,CAAC;IAC7C;IACA,OAAO5U,MAAM;EACf;EAEA,MAAMmK,oBAAoBA,CAAClK,MAAoB,EAAE;IAC/C,MAAMiU,OAAO,GAAG,IAAIW,OAAO,CAAC,IAAI,CAACd,MAAM,CAAC,qBAAqB,CAAC,EAAE;MAC9De,MAAM,EAAE,KAAK;MACb7U;IACF,CAAC,CAAC;IACF,OAAO,MAAM,IAAI,CAACkU,WAAW,CAAqBD,OAAO,CAAC;EAC5D;EAEA,MAAM5J,gBAAgBA,CAACD,mBAA2B,EAAEpK,MAAoB,EAAE;IACxE,MAAMiU,OAAO,GAAG,IAAIW,OAAO,CACzB,IAAI,CAACd,MAAM,CAAC,uBAAuB1J,mBAAmB,EAAE,CAAC,EACzD;MACEyK,MAAM,EAAE,KAAK;MACb7U;IACF,CACF,CAAC;IACD,OAAO,MAAM,IAAI,CAACkU,WAAW,CAAiBD,OAAO,CAAC;EACxD;EAEA,MAAMa,mBAAmBA,CACvB;IACE7T,YAAY;IACZ2M,OAAO;IACPlL;EAKF,CAAC,EACD1C,MAAoB,EACpB;IACA,MAAMiU,OAAO,GAAG,IAAIW,OAAO,CACzB,IAAI,CAACd,MAAM,CACT,uBAAuB7S,YAAY,UAAU2M,OAAO,WAAWlL,MAAM,IAAI,CAAC,EAC5E,CAAC,EACD;MACEmS,MAAM,EAAE,MAAM;MACd7U;IACF,CACF,CAAC;IACD,OAAO,MAAM,IAAI,CAACkU,WAAW,CAAmBD,OAAO,CAAC;EAC1D;EAEA,MAAMhU,aAAaA,CAACD,MAAoB,EAAE;IACxC,MAAMiU,OAAO,GAAG,IAAIW,OAAO,CAAC,IAAI,CAACd,MAAM,CAAC,aAAa,CAAC,EAAE;MACtDe,MAAM,EAAE,KAAK;MACb7U;IACF,CAAC,CAAC;IACF,OAAO,MAAM,IAAI,CAACkU,WAAW,CAAoCD,OAAO,CAAC;EAC3E;EAEA,MAAM3T,sBAAsBA,CAACN,MAAoB,EAAE;IACjD,MAAMiU,OAAO,GAAG,IAAIW,OAAO,CAAC,IAAI,CAACd,MAAM,CAAC,uBAAuB,CAAC,EAAE;MAChEe,MAAM,EAAE,KAAK;MACb7U;IACF,CAAC,CAAC;IACF,OAAO,MAAM,IAAI,CAACkU,WAAW,CAAoCD,OAAO,CAAC;EAC3E;EAEA,MAAM7T,YAAYA,CAACa,YAAoB,EAAEjB,MAAoB,EAAE;IAC7D,MAAMiU,OAAO,GAAG,IAAIW,OAAO,CAAC,IAAI,CAACd,MAAM,CAAC,eAAe7S,YAAY,EAAE,CAAC,EAAE;MACtE4T,MAAM,EAAE,KAAK;MACb7U;IACF,CAAC,CAAC;IACF,OAAO,MAAM,IAAI,CAACkU,WAAW,CAAYD,OAAO,CAAC;EACnD;EAEA,MAAM9S,eAAeA,CAACV,OAA+B,EAAET,MAAoB,EAAE;IAC3E,MAAMiU,OAAO,GAAG,IAAIW,OAAO,CAAC,IAAI,CAACd,MAAM,CAAC,aAAa,CAAC,EAAE;MACtDe,MAAM,EAAE,MAAM;MACdE,IAAI,EAAElY,IAAI,CAACC,SAAS,CAAC2D,OAAO,CAAC;MAC7BuU,OAAO,EAAE;QACP,cAAc,EAAE;MAClB,CAAC;MACDhV;IACF,CAAC,CAAC;IACF,OAAO,MAAM,IAAI,CAACkU,WAAW,CAACD,OAAO,EAAE,KAAK,CAAC;EAC/C;EAEA,MAAMzS,eAAeA,CAACf,OAA+B,EAAET,MAAoB,EAAE;IAC3E,MAAM;MAAEG,WAAW;MAAE,GAAG4U;IAAK,CAAC,GAAGtU,OAAO;IACxC,MAAMwT,OAAO,GAAG,IAAIW,OAAO,CAAC,IAAI,CAACd,MAAM,CAAC,eAAe3T,WAAW,EAAE,CAAC,EAAE;MACrE0U,MAAM,EAAE,MAAM;MACdE,IAAI,EAAElY,IAAI,CAACC,SAAS,CAACiY,IAAI,CAAC;MAC1BC,OAAO,EAAE;QACP,cAAc,EAAE;MAClB,CAAC;MACDhV;IACF,CAAC,CAAC;IACF,OAAO,MAAM,IAAI,CAACkU,WAAW,CAACD,OAAO,EAAE,KAAK,CAAC;EAC/C;EAEA,MAAMtS,eAAeA,CAACxB,WAAmB,EAAEH,MAAoB,EAAE;IAC/D,MAAMiU,OAAO,GAAG,IAAIW,OAAO,CAAC,IAAI,CAACd,MAAM,CAAC,eAAe3T,WAAW,EAAE,CAAC,EAAE;MACrE0U,MAAM,EAAE,QAAQ;MAChB7U;IACF,CAAC,CAAC;IACF,OAAO,MAAM,IAAI,CAACkU,WAAW,CAACD,OAAO,EAAE,KAAK,CAAC;EAC/C;AACF;;ACtKgC;AACA;;;;;AED2B;AAcpD,MAAMgB,UAAU,CAAI;EAIzBzW,KAAK,GAAkB;IACrBc,IAAI,EAAEwH,SAAS;IACfvH,KAAK,EAAE,IAAI;IACXiI,QAAQ,EAAE,KAAK;IACf0N,UAAU,EAAE;EACd,CAAC;EACD1B,OAAO,GAAkC,IAAI;EAC7C2B,WAAW,GAAuB,IAAInU,GAAG,CAAC,CAAC;EAEnCoU,UAAU,GAA2B,IAAI;EAEjD1B,WAAWA,CAACrW,GAAa,EAAEU,OAAmB,EAAEC,OAAsB,EAAE;IACtE,IAAI,CAACX,GAAG,GAAGA,GAAG;IACd,IAAI,CAACU,OAAO,GAAGA,OAAO;IACtB,IAAI,CAACC,OAAO,GAAG;MAAEqJ,OAAO,EAAErJ,OAAO,EAAEqJ,OAAO,IAAI;IAAK,CAAC;EACtD;EAEQgO,MAAMA,CAAA,EAAG;IACf;IACAC,cAAc,CAAC,MAAM;MACnB,KAAK,MAAMC,GAAG,IAAI,IAAI,CAACJ,WAAW,EAAE;QAClCI,GAAG,CAAC,IAAI,CAAC/W,KAAK,CAAC;MACjB;IACF,CAAC,CAAC;EACJ;EAEAuJ,QAAQA,CAAA,EAAG;IACT,OAAO,IAAI,CAACoN,WAAW,CAAC3Y,IAAI,IAAI,IAAI,CAACwB,OAAO,CAACqJ,OAAO;EACtD;EAEAjJ,YAAYA,CAACL,OAAmB,EAAEC,OAAsB,EAAiB;IACvE,IAAI,CAACD,OAAO,GAAGA,OAAO;IACtB,IAAI,CAACC,OAAO,GAAG;MAAE,GAAG,IAAI,CAACA,OAAO;MAAE,GAAGA;IAAQ,CAAC;IAC9C,IAAI,CAACsW,KAAK,CAAC,CAAC,CAAC,CAAC;IACd,OAAO,IAAI;EACb;EAEAA,KAAKA,CAAA,EAAG;IACN,IAAI,CAAC,IAAI,CAACtW,OAAO,CAACqJ,OAAO,EAAE;MACzB,IAAI,IAAI,CAAC7I,KAAK,CAACgJ,QAAQ,IAAI,IAAI,CAAChJ,KAAK,CAAC0W,UAAU,EAAE;QAChD,IAAI,CAAC1W,KAAK,GAAG;UACX,GAAG,IAAI,CAACA,KAAK;UACbc,IAAI,EAAEwH,SAAS;UACfvH,KAAK,EAAE,IAAI;UACXiI,QAAQ,EAAE,KAAK;UACf0N,UAAU,EAAE;QACd,CAAC;QACD,IAAI,CAAC7V,MAAM,CAAC,CAAC;QACb,IAAI,CAACgW,MAAM,CAAC,CAAC;MACf;MACA,OAAOG,OAAO,CAACC,OAAO,CAAC,IAAI,CAACjX,KAAK,CAACc,IAAI,CAAC;IACzC;;IAEA;IACA,IAAI,IAAI,CAACkU,OAAO,IAAI,CAAC,IAAI,CAAC4B,UAAU,EAAEpV,MAAM,CAAC0V,OAAO,EAAE;MACpD,OAAO,IAAI,CAAClC,OAAO;IACrB;IAEA,IAAI,IAAI,CAAChV,KAAK,CAACgJ,QAAQ,IAAI,CAAC,IAAI,CAAChJ,KAAK,CAAC0W,UAAU,EAAE;MACjD,OAAOM,OAAO,CAACC,OAAO,CAAC,IAAI,CAACjX,KAAK,CAACc,IAAI,CAAC;IACzC;IAEA,IAAI,CAACd,KAAK,GAAG;MACX,GAAG,IAAI,CAACA,KAAK;MACb0W,UAAU,EAAE;IACd,CAAC;IACD,IAAI,CAACG,MAAM,CAAC,CAAC;IAEb,IAAI,CAACD,UAAU,GAAG,IAAIO,eAAe,CAAC,CAAC;IACvC,MAAM3V,MAAM,GAAG,IAAI,CAACoV,UAAU,CAACpV,MAAM;IAErC,IAAI,CAACwT,OAAO,GAAG,IAAI,CAACzV,OAAO,CAACiC,MAAM,CAAC,CAChC2S,IAAI,CAAErT,IAAI,IAAK;MACd,IAAI,CAACd,KAAK,GAAG;QAAEc,IAAI;QAAEC,KAAK,EAAE,IAAI;QAAEiI,QAAQ,EAAE,IAAI;QAAE0N,UAAU,EAAE;MAAM,CAAC;MACrE,OAAO5V,IAAI;IACb,CAAC,CAAC,CACDsT,KAAK,CAAErT,KAAK,IAAK;MAChB,IAAIS,MAAM,CAAC0V,OAAO,EAAE;QAClB,OAAO5O,SAAS;MAClB;MACA,IAAI,CAACtI,KAAK,GAAG;QACXc,IAAI,EAAEwH,SAAS;QACfvH,KAAK;QACLiI,QAAQ,EAAE,IAAI;QACd0N,UAAU,EAAE;MACd,CAAC;MACD,OAAOpO,SAAS;IAClB,CAAC,CAAC,CACD8O,OAAO,CAAC,MAAM;MACb,IAAI,CAACpC,OAAO,GAAG,IAAI;MACnB,IAAI,CAAC6B,MAAM,CAAC,CAAC;IACf,CAAC,CAAC;IAEJ,OAAO,IAAI,CAAC7B,OAAO;EACrB;EAEAnV,SAASA,CAACkX,GAAkB,EAAc;IACxC,IAAI,CAACJ,WAAW,CAACU,GAAG,CAACN,GAAG,CAAC;IACzBA,GAAG,CAAC,IAAI,CAAC/W,KAAK,CAAC;IACf,OAAO,MAAM;MACX,IAAI,CAAC2W,WAAW,CAACW,MAAM,CAACP,GAAG,CAAC;MAC5BQ,UAAU,CAAC,MAAM;QACf,IAAI,CAAC,IAAI,CAACZ,WAAW,CAAC3Y,IAAI,EAAE;UAC1B,IAAI,CAAC6C,MAAM,CAAC,CAAC;QACf;MACF,CAAC,CAAC;IACJ,CAAC;EACH;EAEA2W,OAAOA,CAAC1W,IAAO,EAAE;IACf,IAAI,CAACd,KAAK,GAAG;MACX,GAAG,IAAI,CAACA,KAAK;MACbgJ,QAAQ,EAAE,IAAI;MACd0N,UAAU,EAAE,KAAK;MACjB3V,KAAK,EAAE,IAAI;MACXD;IACF,CAAC;IACD,IAAI,CAAC+V,MAAM,CAAC,CAAC;EACf;EAEAY,UAAUA,CAAC7W,KAAK,GAAG,KAAK,EAAE;IACxB,IAAIA,KAAK,EAAE;MACT;MACA,IAAI,CAACZ,KAAK,GAAG;QACXc,IAAI,EAAEwH,SAAS;QACfvH,KAAK,EAAE,IAAI;QACXiI,QAAQ,EAAE,KAAK;QACf0N,UAAU,EAAE;MACd,CAAC;IACH;IACA;IACA,IAAI,CAAC1W,KAAK,CAAC0W,UAAU,GAAG,IAAI;IAC5B,IAAI,CAAC7V,MAAM,CAAC,CAAC;IACb,IAAI,CAACiV,KAAK,CAAC,CAAC;EACd;EAEAjV,MAAMA,CAAA,EAAG;IACP,IAAI,IAAI,CAAC+V,UAAU,EAAE;MACnB,IAAI,CAACA,UAAU,CAACc,KAAK,CAAC,iBAAiB,CAAC;MACxC,IAAI,CAACd,UAAU,GAAG,IAAI;IACxB;EACF;AACF;AAEO,MAAMe,WAAW,CAAC;EACfC,KAAK,GAAG,IAAIC,GAAG,CAA8B,CAAC;EAEtDC,GAAGA,CAAIjZ,GAAa,EAA6B;IAC/C,OAAO,IAAI,CAAC+Y,KAAK,CAACE,GAAG,CAAC3Z,OAAO,CAACU,GAAG,CAAC,CAAC;EACrC;EAEAc,UAAUA,CACRd,GAAa,EACbU,OAAmB,EACnBC,OAAsB,EACP;IACf,MAAMC,OAAO,GAAGtB,OAAO,CAACU,GAAG,CAAC;IAC5B,IAAIa,KAAK,GAAG,IAAI,CAACkY,KAAK,CAACE,GAAG,CAACrY,OAAO,CAA8B;IAChE,IAAI,CAACC,KAAK,EAAE;MACVA,KAAK,GAAG,IAAI+W,UAAU,CAAI5X,GAAG,EAAEU,OAAO,EAAEC,OAAO,CAAC;MAChD,IAAI,CAACoY,KAAK,CAACG,GAAG,CAACtY,OAAO,EAAEC,KAA4B,CAAC;IACvD;IACAA,KAAK,CAACoW,KAAK,CAAC,CAAC,CAAC,CAAC;IACf,OAAOpW,KAAK;EACd;EAEAS,iBAAiBA,CAAC;IAChBtB,GAAG;IACHuB,KAAK;IACLQ,KAAK;IACL4F,IAAI,GAAG;EAMT,CAAC,EAAE;IACD,MAAMwR,eAAsC,GAAG,EAAE;IACjD,KAAK,MAAM,CAACC,IAAI,EAAEvY,KAAK,CAAC,IAAI,IAAI,CAACkY,KAAK,CAACM,OAAO,CAAC,CAAC,EAAE;MAChD,IAAI1R,IAAI,KAAK,KAAK,EAAE;QAClB,MAAM2R,MAAM,GAAGzY,KAAK,CAAC6J,QAAQ,CAAC,CAAC;QAC/B,IAAK/C,IAAI,KAAK,QAAQ,IAAI,CAAC2R,MAAM,IAAM3R,IAAI,KAAK,UAAU,IAAI2R,MAAO,EAAE;UACrE,SAAS,CAAC;QACZ;MACF;MACA,IAAI/X,KAAK,EAAE;QACT,IAAI6X,IAAI,KAAK9Z,OAAO,CAACU,GAAG,CAAC,EAAE;UACzBmZ,eAAe,CAACI,IAAI,CAAC1Y,KAAK,CAAC;QAC7B;MACF,CAAC,MAAM;QACL,IAAInB,eAAe,CAACmB,KAAK,CAACb,GAAG,EAAEA,GAAG,CAAC,EAAE;UACnCmZ,eAAe,CAACI,IAAI,CAAC1Y,KAAK,CAAC;QAC7B;MACF;IACF;IACA,KAAK,MAAMA,KAAK,IAAIsY,eAAe,EAAE;MACnCtY,KAAK,CAAC+X,UAAU,CAAC7W,KAAK,CAAC;IACzB;EACF;EAEAyX,YAAYA,CAAIxZ,GAAa,EAAEiC,IAAO,EAAE;IACtC,MAAMrB,OAAO,GAAGtB,OAAO,CAACU,GAAG,CAAC;IAC5B,MAAMyZ,QAAQ,GAAG,IAAI,CAACV,KAAK,CAACE,GAAG,CAACrY,OAAO,CAA8B;IACrE,IAAI6Y,QAAQ,EAAE;MACZA,QAAQ,CAACd,OAAO,CAAC1W,IAAI,CAAC;IACxB,CAAC,MAAM;MACL,MAAMyX,QAAQ,GAAG,IAAI9B,UAAU,CAAI5X,GAAG,EAAE,MAAMmY,OAAO,CAACC,OAAO,CAACnW,IAAI,CAAC,CAAC;MACpEyX,QAAQ,CAACf,OAAO,CAAC1W,IAAI,CAAC;MACtB,IAAI,CAAC8W,KAAK,CAACG,GAAG,CAACtY,OAAO,EAAE8Y,QAA+B,CAAC;IAC1D;EACF;AACF;AAEO,MAAMlZ,WAAW,GAAG,IAAIsY,WAAW,CAAC,CAAC;;ACvOC;AAyBtC,MAAMa,aAAa,CAAO;EAI/BxY,KAAK,GAAqB;IACxBc,IAAI,EAAEwH,SAAS;IACfvH,KAAK,EAAEuH,SAAS;IAChBtH,SAAS,EAAE;EACb,CAAC;EACDgU,OAAO,GAAkC,IAAI;EAC7C2B,WAAW,GAAuB,IAAInU,GAAG,CAAC,CAAC;EAEnCoU,UAAU,GAA2B,IAAI;EAEjD1B,WAAWA,CACTrW,GAAgB,EAChB2B,UAA4B,EAC5BhB,OAA+B,EAC/B;IACA,IAAI,CAACX,GAAG,GAAGA,GAAG;IACd,IAAI,CAAC2B,UAAU,GAAGA,UAAU;IAC5B,IAAI,CAAChB,OAAO,GAAGA,OAAO;EACxB;EAEQqX,MAAMA,CAAA,EAAG;IACf,KAAK,MAAME,GAAG,IAAI,IAAI,CAACJ,WAAW,EAAE;MAClCI,GAAG,CAAC,IAAI,CAAC/W,KAAK,CAAC;IACjB;EACF;EAEAJ,YAAYA,CACVY,UAA4B,EAC5BhB,OAA+B,EACzB;IACN,IAAI,CAACgB,UAAU,GAAGA,UAAU;IAC5B,IAAIhB,OAAO,KAAK8I,SAAS,EAAE;MACzB,IAAI,CAAC9I,OAAO,GAAGA,OAAO;IACxB;EACF;EAEAkB,MAAMA,CAAC,GAAGC,IAAoC,EAA0B;IACtE,MAAM8X,SAAS,GAAG9X,IAAI,CAAC,CAAC,CAAM;;IAE9B;IACA,IAAI,IAAI,CAACiW,UAAU,EAAE;MACnB,IAAI,CAACA,UAAU,CAACc,KAAK,CAAC,CAAC;IACzB;IACA,IAAI,CAACd,UAAU,GAAG,IAAIO,eAAe,CAAC,CAAC;IACvC,MAAM3V,MAAM,GAAG,IAAI,CAACoV,UAAU,CAACpV,MAAM;IAErC,IAAI,CAACxB,KAAK,GAAG;MAAE,GAAG,IAAI,CAACA,KAAK;MAAEgB,SAAS,EAAE;IAAK,CAAC;IAC/C,IAAI,CAAC6V,MAAM,CAAC,CAAC;IAEb,MAAM;MAAE6B,SAAS;MAAExF,OAAO;MAAEyF;IAAU,CAAC,GAAG,IAAI,CAACnZ,OAAO,IAAI,CAAC,CAAC;IAE5D,IAAI,CAACwV,OAAO,GAAG,IAAI,CAACxU,UAAU,CAACiY,SAAS,EAAEjX,MAAM,CAAC,CAC9C2S,IAAI,CAAErT,IAAI,IAAK;MACd,IAAI,CAACd,KAAK,GAAG;QAAEc,IAAI;QAAEC,KAAK,EAAEuH,SAAS;QAAEtH,SAAS,EAAE;MAAM,CAAC;MACzD,IAAI,CAAC6V,MAAM,CAAC,CAAC;MACb,IAAI6B,SAAS,EAAE;QACb,IAAI;UACFA,SAAS,CAAC5X,IAAI,EAAE2X,SAAS,CAAC;QAC5B,CAAC,CAAC,OAAOG,GAAG,EAAE;UACZC,OAAO,CAAC9X,KAAK,CAAC,8BAA8B,EAAE6X,GAAG,CAAC;QACpD;MACF;MACA,IAAID,SAAS,EAAE;QACb,IAAI;UACFA,SAAS,CAACrQ,SAAS,EAAExH,IAAI,EAAE2X,SAAS,CAAC;QACvC,CAAC,CAAC,OAAOG,GAAG,EAAE;UACZC,OAAO,CAAC9X,KAAK,CAAC,wCAAwC,EAAE6X,GAAG,CAAC;QAC9D;MACF;MACA,OAAO9X,IAAI;IACb,CAAC,CAAC,CACDsT,KAAK,CAAErT,KAAK,IAAK;MAChB,IAAIS,MAAM,CAAC0V,OAAO,EAAE;QAClB,OAAO5O,SAAS;MAClB;MACA,IAAI,CAACtI,KAAK,GAAG;QAAEc,IAAI,EAAEwH,SAAS;QAAEvH,KAAK;QAAEC,SAAS,EAAE;MAAM,CAAC;MACzD,IAAI,CAAC6V,MAAM,CAAC,CAAC;MACb,IAAI3D,OAAO,EAAE;QACX,IAAI;UACFA,OAAO,CAACnS,KAAK,EAAE0X,SAAS,CAAC;QAC3B,CAAC,CAAC,OAAOG,GAAG,EAAE;UACZC,OAAO,CAAC9X,KAAK,CAAC,4BAA4B,EAAE6X,GAAG,CAAC;QAClD;MACF;MACA,IAAID,SAAS,EAAE;QACb,IAAI;UACFA,SAAS,CAAC5X,KAAK,EAAEuH,SAAS,EAAEmQ,SAAS,CAAC;QACxC,CAAC,CAAC,OAAOG,GAAG,EAAE;UACZC,OAAO,CAAC9X,KAAK,CAAC,sCAAsC,EAAE6X,GAAG,CAAC;QAC5D;MACF;MACA,MAAM7X,KAAK;IACb,CAAC,CAAC,CACDqW,OAAO,CAAC,MAAM;MACb,IAAI,CAACpC,OAAO,GAAG,IAAI;IACrB,CAAC,CAAC;IAEJ,OAAO,IAAI,CAACA,OAAO;EACrB;EAEAnV,SAASA,CAACkX,GAAkB,EAAc;IACxC,IAAI,CAACJ,WAAW,CAACU,GAAG,CAACN,GAAG,CAAC;IACzBA,GAAG,CAAC,IAAI,CAAC/W,KAAK,CAAC;IACf,OAAO,MAAM;MACX,IAAI,CAAC2W,WAAW,CAACW,MAAM,CAACP,GAAG,CAAC;IAC9B,CAAC;EACH;EAEAlW,MAAMA,CAAA,EAAG;IACP,IAAI,IAAI,CAAC+V,UAAU,EAAE;MACnB,IAAI,CAACA,UAAU,CAACc,KAAK,CAAC,CAAC;IACzB;EACF;EAEA9W,KAAKA,CAAA,EAAG;IACN,IAAI,CAACZ,KAAK,GAAG;MAAEc,IAAI,EAAEwH,SAAS;MAAEvH,KAAK,EAAEuH,SAAS;MAAEtH,SAAS,EAAE;IAAM,CAAC;IACpE,IAAI,CAAC6V,MAAM,CAAC,CAAC;IACb,IAAI,CAAChW,MAAM,CAAC,CAAC;EACf;AACF;AAEO,MAAMiY,cAAc,CAAC;EAClBlB,KAAK,GAAG,IAAIC,GAAG,CAA0C,CAAC;EAElEpX,aAAaA,CACX5B,GAAgB,EAChB2B,UAA4B,EAC5BhB,OAA+B,EACV;IACrB,MAAMC,OAAO,GAAGtB,OAAO,CAACU,GAAG,CAAC;IAC5B,IAAIa,KAAK,GAAG,IAAI,CAACkY,KAAK,CAACE,GAAG,CAACrY,OAAO,CAAoC;IACtE,IAAI,CAACC,KAAK,EAAE;MACVA,KAAK,GAAG,IAAI8Y,aAAa,CAAO3Z,GAAG,EAAE2B,UAAU,EAAEhB,OAAO,CAAC;MACzD,IAAI,CAACoY,KAAK,CAACG,GAAG,CAACtY,OAAO,EAAEC,KAAwC,CAAC;IACnE;IACA,OAAOA,KAAK;EACd;AACF;AAEO,MAAMY,cAAc,GAAG,IAAIwY,cAAc,CAAC,CAAC;;ACpK3C,MAAMC,aAAa,CAAC;EACjB7W,MAAM,GAAuC,IAAI2V,GAAG,CAAC,CAAC;EAE9DmB,aAAaA,CAACvR,WAAkC,EAAE;IAChD,IAAI,IAAI,CAACvF,MAAM,CAAC+W,GAAG,CAACxR,WAAW,CAAC6H,WAAW,CAAC,EAAE;MAC5C,MAAM,IAAI5M,KAAK,CACb,iBAAiB+E,WAAW,CAAC6H,WAAW,yBAC1C,CAAC;IACH;IACA,IAAI,CAACpN,MAAM,CAAC6V,GAAG,CAACtQ,WAAW,CAAC6H,WAAW,EAAE7H,WAAW,CAAC;EACvD;EAEAC,cAAcA,CAAC4H,WAAmB,EAAE;IAClC,MAAMlN,KAAK,GAAG,IAAI,CAACF,MAAM,CAAC4V,GAAG,CAACxI,WAAW,CAAC;IAC1C,IAAI,CAAClN,KAAK,EAAE;MACV,MAAM,IAAIM,KAAK,CAAC,iBAAiB4M,WAAW,qBAAqB,CAAC;IACpE;IACA,OAAOlN,KAAK;EACd;EAEAkL,sBAAsBA,CAAC9G,IAAY,EAA2B;IAC5D,OAAO0S,KAAK,CAACC,IAAI,CAAC,IAAI,CAACjX,MAAM,CAACkX,MAAM,CAAC,CAAC,CAAC,CAAClM,MAAM,CAAE9K,KAAK,IACnDA,KAAK,CAACiX,cAAc,CAACjM,QAAQ,CAAC5G,IAAI,CACpC,CAAC;EACH;AACF;;;AC7BmC;AAC2B;AAAA;AAAA,IAAA/J,gBAAA,GAAAC,KAAA;EAAAG,IAAA;EAAAC,MAAA;AAAA;AAOvD,MAAMwc,YAAY,GAAGA,CAAC;EAAE1W,KAAK;EAAEtH;AAA4B,CAAC,KAAK;EACtE,OACEN,oCAAA,CAAC8J,+BAAU;IACTlC,KAAK,EAAEA,KAAM;IACboC,gBAAgB,eAAE5H,2BAAG,CAAAV,KAAA;MAAAG,IAAA;MAAAC,MAAA;IAAA,MAGnB;IAAAxB,QAAA,GACFC,mCAAA,CAAC+B,mCAAc;MACbQ,YAAY,EAAE,CAAE;MAChBC,GAAG,EAAE,EAAG;MACRC,IAAI,EAAE,EAAG;MACTC,KAAK,EAAC,MAAM;MACZC,IAAI,EAAC;IAAU,CAChB,CAAC,EACD5C,QAAQ,IACPC,mCAAA;MAAK6B,GAAG,EAAAX,gBAA6C;MAAAnB,QAAA,EAAEA;IAAQ,CAAM,CACtE;EAAA,CACS,CAAC;AAEjB,CAAC;;AC5BoE;AACD;AACb;AACc;AAM9D,MAAMie,YAAY,GAAGA,CAACnX,KAAY,EAAE5C,OAAgB,GAAG,CAAC,CAAC,KAAK;EACnE,MAAM8B,UAAU,GAAGL,YAAY,CAACzB,OAAO,EAAE0B,SAAS,CAAC;EACnD,MAAM;IAAEgD;EAAO,CAAC,GAAGS,kCAAkC,CAAC,CAAC;EACvD,MAAM6U,WAAW,GAAGpX,KAAK,CAACE,MAAM;EAEhC,MAAMf,MAAM,GAAGjC,QAAQ,CACrB,CAAC,YAAY,EAAE;IAAEka,WAAW;IAAEtV;EAAO,CAAC,CAAC,EACvC,MAAO1C,MAAM,IAAK;IAChB,IAAIgY,WAAW,CAAChT,IAAI,KAAKpD,iBAAiB,CAACC,OAAO,EAAE;MAClD,MAAM;QAAEZ,YAAY;QAAE2M;MAAQ,CAAC,GAAGoK,WAAW;MAC7C,MAAM1Y,IAAI,GAAG,MAAMQ,UAAU,CAACgV,mBAAmB,CAC/C;QAAE7T,YAAY;QAAE2M,OAAO;QAAElL;MAAO,CAAC,EACjC1C,MACF,CAAC;MACD,OAAO;QAAEc,MAAM,EAAEc,iBAAiB,CAACC,OAAO;QAAEvC;MAAK,CAAC;IACpD;IACA,MAAM,IAAI4B,KAAK,CAAC,kCAAkC8W,WAAW,EAAE,CAAC;EAClE,CAAC,EACDha,OACF,CAAC;EAED,OAAO+B,MAAM;AACf,CAAC;;AC/ByB;AAE8B;AACJ;AAGN;AAAA;AAavC,SAASmY,aAAaA,CAC3BC,OAA2C,EAC3C;EAAEC,gBAAgB;EAAEC;AAAqC,CAAC,GAAG,CAAC,CAAC,EACnB;EAG5C,MAAMC,QAA4B,GAAGA,CAAC;IACpC1X,KAAK;IACLQ,KAAK,EAAEmX,aAAa;IACpB,GAAGC;EACL,CAAC,KAAK;IACJ,MAAMpX,KAAK,GAAGmX,aAAa,IAAI3X,KAAK,CAACQ,KAAK;IAC1C,MAAMqX,KAAK,GAAGV,YAAY,CAACnX,KAAK,CAAC;IAEjC,IAAI,CAAC6X,KAAK,CAACjR,QAAQ,EAAE;MACnB,OAAO4Q,gBAAgB,GACrBre,mCAAA,CAACqe,gBAAgB;QAAChX,KAAK,EAAEA;MAAM,CAAE,CAAC,GAElCrH,mCAAA,CAAC+d,YAAY;QAAC1W,KAAK,EAAEA;MAAM,CAAE,CAC9B;IACH;IACA,IAAIqX,KAAK,CAAClZ,KAAK,EAAE;MACf,OAAO8Y,cAAc,GACnBte,mCAAA,CAACse,cAAc;QAACjX,KAAK,EAAEA;MAAM,CAAE,CAAC,GAEhCrH,mCAAA,CAACwJ,UAAU;QAACnC,KAAK,EAAEA;MAAM,CAAE,CAC5B;IACH;IAEA,MAAMsX,aAA4B,GAAG;MACnC,GAAGF,IAAI;MACP5X,KAAK;MACLQ,KAAK;MACLuX,SAAS,EAAEF,KAAK,CAACnZ;IACnB,CAAC;IAED,OAAOvF,mCAAA,CAACoe,OAAO;MAAA,GAAKO;IAAa,CAAG,CAAC;EACvC,CAAC;EAED,OAAOJ,QAAQ;AACjB;;AC3DA,MAAM,oBAA4B;;ACAa;AAKxC,MAAMO,kBAAkB,GAAGA,CAAC;EACjCjY,KAAK;EACLtB;AACoC,CAAC,KAAK;EAC1C,MAAM;IAAEwZ;EAAQ,CAAC,GAAGxZ,IAAI,CAACA,IAAI;EAE7B,MAAMyZ,MAAM,GAAG,CAAC;EAChB,MAAMC,MAAM,GAAG,CAAC;EAEhB,MAAMC,MAAM,GAAG/b,MAAM,CAAC0a,MAAM,CAACkB,OAAO,CAAC,CAACxO,OAAO,CAAEvK,MAAM,IAAKA,MAAM,CAACkZ,MAAM,CAAC;EACxE,MAAMC,kBAAkB,GAAGtY,KAAK,CAAC2F,WAAW,EAAE4S,WAAW,EAAEC,QAAQ;EAEnE,MAAMC,IAAI,GACRJ,MAAM,CAAC,CAAC,CAAC,EAAElI,MAAM,EAAEuI,MAAM,GAAGN,MAAM,CAAC,EAAEO,MAAM,EAAEF,IAAI,IACjDH,kBAAkB,EAAEG,IAAI;EAC1B,MAAMG,cAAc,GAAGZ,uCAAc,CAACS,IAAI,CAAC,CAAC,CAAC,CAAC;EAE9C,MAAMI,MAAM,GAAGR,MAAM,CAACtY,GAAG,CAAE+Y,KAAK,IAAK;IACnC,MAAM9B,MAAM,GAAG8B,KAAK,EAAEpa,IAAI,EAAEsY,MAAM,IAAI,EAAE;IACxC,MAAMlS,CAAC,GAAGkS,MAAM,CAACmB,MAAM,CAAC,IAAI,EAAE;IAC9B,MAAMtT,CAAC,GAAGmS,MAAM,CAACoB,MAAM,CAAC,IAAI,EAAE;IAC9B,MAAMW,MAAM,GAAGD,KAAK,CAAC3I,MAAM,EAAEuI,MAAM,GAAGN,MAAM,CAAC;IAC7C,MAAMvc,KAAK,GAAGyc,kBAAkB,EAAEzc,KAAK,EAAEmd,UAAU;IACnD,MAAMve,IAAI,GACRse,MAAM,EAAEJ,MAAM,EAAEM,WAAW,IAC3BF,MAAM,EAAEJ,MAAM,EAAEO,iBAAiB,IACjCH,MAAM,EAAEte,IAAI,IACZqe,KAAK,CAAC3I,MAAM,EAAEgJ,KAAK;IACrB,OAAO;MACLrU,CAAC,EAAEA,CAAa;MAChBD,CAAC,EAAEA,CAAa;MAChBpK,IAAI;MACJ2e,MAAM,EAAE;QACNvd,KAAK,EAAEA;MACT,CAAC;MACDwd,QAAQ,EAAE,IAAI;MACdC,UAAU,EAAE,IAAI;MAChBlV,IAAI,EAAE,SAAkB;MACxBmV,aAAa,EAAE,GAAG9e,IAAI,KAAKme,cAAc,CAACY,MAAM,IAAI,EAAE,QAAQZ,cAAc,CAACa,MAAM,IAAI,EAAE;IAC3F,CAAC;EACH,CAAC,CAAC;EAEF,OAAO;IACLZ,MAAM;IACNa,WAAW,EAAEd,cAAc,CAACY,MAAM;IAClCG,WAAW,EAAEf,cAAc,CAACa;EAC9B,CAAC;AACH,CAAC;;ACpDsD;AACJ;AAEH;AAMzB;AAEsC;AAAA;AAatD,MAAMI,eAAe,GAAGA,CAAC;EAC9B7Z,KAAK;EACL+X,SAAS;EACTvX,KAAK,EAAEmX,aAAa;EACpBmC,gBAAgB;EAChBC,UAAU,GAAG;AACO,CAAC,KAAK;EAC1B,MAAM;IAAE9V,GAAG;IAAEpL;EAAM,CAAC,GAAGkK,wCAAc,CAAiB,CAAC;EACvD,MAAMvC,KAAK,GAAGmX,aAAa,IAAI3X,KAAK,CAACQ,KAAK;EAE1C,MAAM;IAAEqY,MAAM;IAAEa,WAAW;IAAEC;EAAY,CAAC,GAAGzY,oBAAoB,CAC/D6W,SAAS,CAAC7X,MAAM,EAChB;IACEkB,OAAO,EAAEA,CAAA,KAAM6W,kBAAkB,CAAC;MAAEjY,KAAK;MAAEtB,IAAI,EAAEqZ,SAAS,CAACrZ;IAAK,CAAC;EACnE,CACF,CAAC;EAED,OACEvF,mCAAA;IAAK8K,GAAG,EAAEA,GAAI;IAAC+V,KAAK,EAAE;MAAEnhB,KAAK,EAAE,MAAM;MAAEC,MAAM,EAAE;IAAO,CAAE;IAAAI,QAAA,EACtDC,mCAAA,CAACygB,wCAAmB;MAClB/gB,KAAK,EAAC,MAAM;MACZC,MAAM,EAAC,MAAM;MACbmhB,QAAQ,EAAE,CAAC,QAAQ,CAAE;MACrBC,oBAAoB,EAAE,EAAG;MACzBC,SAAS,EAAE;QACT3Z;MACF,CAAE;MACFuE,MAAM,EAAE;QACNqV,QAAQ,EAAE,IAAI;QACdvhB,KAAK,EAAEA,KAAK;QACZkN,MAAM,EAAE;UAAEzM,CAAC,EAAEygB;QAAW,CAAC;QACzBM,KAAK,EAAE;UACLC,QAAQ,EAAE,MAAM;UAChBC,WAAW,EAAET;QACf,CAAC;QACDU,MAAM,EAAE;UACNC,UAAU,EAAEd,WAAW;UACvBe,UAAU,EAAEhB,WAAW;UACvBY,QAAQ,EAAE;QACZ;MACF,CAAE;MACF5b,IAAI,EAAEma;IAAO,CACd;EAAC,CACC,CAAC;AAEV,CAAC;AAEM,MAAMxT,WAA8C,GAAG;EAC5D6H,WAAW,EAAE,oBAAoB;EACjCzS,IAAI,EAAE,kBAAkB;EACxBgL,SAAS,EAAE6R,aAAa,CAACuC,eAAe,CAAC;EACzC5C,cAAc,EAAE,CAAC,YAAY,EAAE,UAAU,CAAC;EAC1C1H,WAAW,EAAE;IACXnL,IAAI,EAAE,QAAQ;IACduW,UAAU,EAAE;MACVna,KAAK,EAAE;QACL4D,IAAI,EAAE,QAAQ;QACd5D,KAAK,EAAE;MACT,CAAC;MACDsZ,gBAAgB,EAAE;QAChB1V,IAAI,EAAE,QAAQ;QACd5D,KAAK,EAAE,qBAAqB;QAC5Boa,OAAO,EAAE;MACX,CAAC;MACDb,UAAU,EAAE;QACV3V,IAAI,EAAE,QAAQ;QACd5D,KAAK,EAAE,aAAa;QACpBoa,OAAO,EAAE;MACX;IACF;EACF,CAAC;EACDpL,QAAQ,EAAE;IACRhP,KAAK,EAAE;MACL,SAAS,EAAE,kCAAkC;MAC7C,gBAAgB,EAAE;IACpB,CAAC;IACDsZ,gBAAgB,EAAE;MAChB,SAAS,EAAE,qCAAqC;MAChD,gBAAgB,EAAE;IACpB,CAAC;IACDC,UAAU,EAAE;MACV,SAAS,EAAE,6CAA6C;MACxD,gBAAgB,EAAE;IACpB;EACF;AACF,CAAC;;AC7G8C;AAK/C,MAAMc,WAAW,GAAGA,CAAC7D,MAAgB,EAAEyB,IAAa,KAAK;EACvD,IAAIA,IAAI,KAAK,SAAS,EAAE;IACtB,OAAO;MAAEqC,GAAG,EAAE,CAAC;MAAEnf,GAAG,EAAE;IAAI,CAAC;EAC7B;EACA,IAAI8c,IAAI,KAAK,aAAa,EAAE;IAC1B,OAAO;MAAEqC,GAAG,EAAE,CAAC;MAAEnf,GAAG,EAAE;IAAE,CAAC;EAC3B;EACA,IAAI,CAACqb,MAAM,CAAC1M,MAAM,EAAE;IAClB,OAAO;MAAEwQ,GAAG,EAAE,CAAC;MAAEnf,GAAG,EAAE;IAAI,CAAC;EAC7B;EACA,OAAO;IACLmf,GAAG,EAAErO,IAAI,CAACqO,GAAG,CAAC,GAAG9D,MAAM,CAAC;IACxBrb,GAAG,EAAE8Q,IAAI,CAAC9Q,GAAG,CAAC,GAAGqb,MAAM;EACzB,CAAC;AACH,CAAC;AAEM,MAAMiB,0BAAkB,GAAGA,CAAC;EACjCjY,KAAK;EACLtB;AACoC,CAAC,KAAK;EAC1C,MAAM;IAAEwZ;EAAQ,CAAC,GAAGxZ,IAAI,CAACA,IAAI;EAE7B,MAAM0Z,MAAM,GAAG,CAAC;EAEhB,MAAMC,MAAM,GAAG/b,MAAM,CAAC0a,MAAM,CAACkB,OAAO,CAAC,CAACxO,OAAO,CAAEvK,MAAM,IAAKA,MAAM,CAACkZ,MAAM,CAAC;EACxE,MAAMC,kBAAkB,GAAGtY,KAAK,CAAC2F,WAAW,EAAE4S,WAAW,EAAEC,QAAQ;EACnE,IAAIH,MAAM,CAAC/N,MAAM,GAAG,CAAC,EAAE;IACrB,MAAM,IAAIhK,KAAK,CACb,sDAAsD+X,MAAM,CAAC/N,MAAM,UACrE,CAAC;EACH;EAEA,MAAMyQ,SAAS,GAAG1C,MAAM,CAAC,CAAC,CAAC;EAC3B,MAAMrB,MAAM,GAAI+D,SAAS,EAAErc,IAAI,EAAEsY,MAAM,GAAGoB,MAAM,CAAC,IAAI,EAAe;EACpE,MAAMlW,KAAK,GAAI8U,MAAM,EAAEgE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAe,CAAC;EAC7C,MAAMvC,IAAI,GACRsC,SAAS,EAAE5K,MAAM,EAAEuI,MAAM,GAAGN,MAAM,CAAC,EAAEO,MAAM,EAAEF,IAAI,IACjDH,kBAAkB,EAAEG,IAAI;EAC1B,MAAMG,cAAc,GAAGZ,uCAAc,CAACS,IAAI,CAAC,CAACvW,KAAK,CAAC;EAElD,MAAM;IAAE4Y,GAAG;IAAEnf;EAAI,CAAC,GAAGkf,WAAW,CAAC7D,MAAM,EAAEyB,IAAI,CAAC;EAE9C,MAAMwC,UAAU,GACd3C,kBAAkB,EAAE2C,UAAU,EAAEC,KAAK,EAAEnb,GAAG,CAAC,CAAC;IAAElE,KAAK;IAAEqG;EAAM,CAAC,MAAM;IAChErG,KAAK;IACLqG,KAAK,EAAEA,KAAK,IAAI;EAClB,CAAC,CAAC,CAAC,IAAI,EAAE;EAEX,MAAMiZ,QAAQ,GAAGF,UAAU,CAAClb,GAAG,CAAC,CAACqb,SAAS,EAAEpW,KAAK,MAAM;IACrDnJ,KAAK,EAAEuf,SAAS,CAACvf,KAAK;IACtBqG,KAAK,EAAE+Y,UAAU,CAACjW,KAAK,GAAG,CAAC,CAAC,EAAE9C,KAAK,IAAI,GAAG,CAAE;EAC9C,CAAC,CAAC,CAAC;EAEH,OAAO;IACL4Y,GAAG;IACHnf,GAAG;IACHsf,UAAU;IACVE,QAAQ;IACRjZ,KAAK;IACLyX,WAAW,EAAEf,cAAc,CAACa,MAAM;IAClCC,WAAW,EAAEd,cAAc,CAACY;EAC9B,CAAC;AACH,CAAC;;;ACnE6C;AACX;AAEa;AAMzB;AAEsC;AAAA;AAStD,MAAM8B,UAAU,GAAGA,CAAC;EACzBtb,KAAK;EACL+X,SAAS;EACTvX,KAAK,EAAEmX;AACQ,CAAC,KAAK;EACrB,MAAMnX,KAAK,GAAGmX,aAAa,IAAI3X,KAAK,CAACQ,KAAK;EAC1C,MAAM;IAAEsa,GAAG;IAAEnf,GAAG;IAAEuG,KAAK;IAAEwX,WAAW;IAAEC,WAAW;IAAEwB;EAAS,CAAC,GAC3Dja,oBAAoB,CAAC6W,SAAS,CAAC7X,MAAM,EAAE;IACrCkB,OAAO,EAAEA,CAAA,KAAM6W,0BAAkB,CAAC;MAAEjY,KAAK;MAAEtB,IAAI,EAAEqZ,SAAS,CAACrZ;IAAK,CAAC;EACnE,CAAC,CAAC;EACJ,OACEvF,mCAAA,CAACkiB,+BAAU;IACTpB,QAAQ,EAAE,CAAC,QAAQ,CAAE;IACrBsB,cAAc,EAAE;MAAEhR,SAAS,eAAEvP,2BAAG,CAAAV,KAAA;QAAAG,IAAA;QAAAC,MAAA;MAAA,KAAkC;IAAE,CAAE;IACtE8F,KAAK,EAAEA,KAAM;IACbgb,SAAS,EAAE7B,WAAY;IACvB8B,QAAQ,EAAE9f,GAAI;IACd+f,QAAQ,EAAEZ,GAAI;IACda,QAAQ,EAAE,GAAGjC,WAAW,IAAI,EAAE,GAAGoB,GAAG,GAAGnB,WAAW,IAAI,EAAE,EAAG;IAC3DiC,QAAQ,EAAE,GAAGlC,WAAW,IAAI,EAAE,GAAG/d,GAAG,GAAGge,WAAW,IAAI,EAAE,EAAG;IAC3DzX,KAAK,EAAEA,KAAM;IACbiZ,QAAQ,EAAEA;EAAS,CACpB,CAAC;AAEN,CAAC;AAEM,MAAM9V,sBAAyC,GAAG;EACvD6H,WAAW,EAAE,eAAe;EAC5BzS,IAAI,EAAE,aAAa;EACnBgL,SAAS,EAAE6R,aAAa,CAACgE,UAAU,CAAC;EACpCrE,cAAc,EAAE,CAAC,OAAO,CAAC;EACzB1H,WAAW,EAAE;IACXnL,IAAI,EAAE,QAAQ;IACduW,UAAU,EAAE;MACVna,KAAK,EAAE;QACL4D,IAAI,EAAE,QAAQ;QACd5D,KAAK,EAAE;MACT;IACF;EACF,CAAC;EACDgP,QAAQ,EAAE;IACRhP,KAAK,EAAE;MACL,SAAS,EAAE,kCAAkC;MAC7C,gBAAgB,EAAE;IACpB;EACF;AACF,CAAC;;;;AClE8C;AAAA;AAAA,IAAAnG,WAAA,GAAAC,KAAA;EAAAG,IAAA;EAAAC,MAAA;AAAA;AAAA,IAAAG,YAAA,GAAAP,KAAA;EAAAG,IAAA;EAAAC,MAAA;AAAA;AAMxC,MAAMud,wCAAkB,GAAGA,CAAC;EACjCjY,KAAK;EACLtB,IAAI;EACJqb;AAC6D,CAAC,KAAK;EACnE,MAAMhC,SAAS,GAAGrZ,IAAI,CAACA,IAAI;EAE3B,MAAM0Z,MAAM,GAAG,CAAC;EAEhB,MAAME,kBAAkB,GAAGtY,KAAK,CAAC2F,WAAW,EAAE4S,WAAW,EAAEC,QAAQ;EAEnE,MAAMyC,UAAU,GACd3C,kBAAkB,EAAE2C,UAAU,EAAEC,KAAK,EAAEnb,GAAG,CAAC,CAAC;IAAElE,KAAK;IAAEqG;EAAM,CAAC,MAAM;IAChErG,KAAK;IACLqG,KAAK,EAAEA,KAAK,IAAI;EAClB,CAAC,CAAC,CAAC,IAAI,EAAE;EAEX,MAAMmW,MAAM,GAAG/b,MAAM,CAAC0a,MAAM,CAACe,SAAS,CAACG,OAAO,CAAC,CAACxO,OAAO,CACpDvK,MAAM,IAAKA,MAAM,CAACkZ,MACrB,CAAC;EAED,MAAMI,IAAI,GACRJ,MAAM,CAAC,CAAC,CAAC,EAAElI,MAAM,EAAEuI,MAAM,GAAGN,MAAM,CAAC,EAAEO,MAAM,EAAEF,IAAI,IACjDH,kBAAkB,EAAEG,IAAI;EAC1B,MAAMoD,WAAW,GAAG7D,uCAAc,CAACS,IAAI,CAAC;EAExC,MAAMqD,cAAsC,GAAGA,CAACC,CAAC,EAAElgB,KAAK,KAAK;IAC3D,MAAM+c,cAAc,GAAGiD,WAAW,CAACE,CAAC,CAAC;IACrC,OACEnjB,oCAAA;MACEoC,GAAG,eAAAkN,6BAAA,CAAE;QAAErM,KAAK;QAAEmgB,SAAS,EAAE;MAAQ,CAAC,EAAA1hB,KAAA,WAAAA,KAAA,UAAC;MACnC0f,KAAK,EAAE;QAAEnhB,KAAK,EAAE,GAAGkhB,UAAU;MAAK,CAAE;MAAA7gB,QAAA,GACnC0f,cAAc,CAACY,MAAM,IACpBrgB,mCAAA;QAAM6B,GAAG,EAAAX,WAAuB;QAAAnB,QAAA,EAAE0f,cAAc,CAACY;MAAM,CAAO,CAC/D,EACAZ,cAAc,CAACtG,IAAI,EAAE,GAAG,EACxBsG,cAAc,CAACa,MAAM,IACpBtgB,mCAAA;QAAM6B,GAAG,EAAAH,YAAuB;QAAA3B,QAAA,EAAE0f,cAAc,CAACa;MAAM,CAAO,CAC/D;IAAA,CACE,CAAC;EAEV,CAAC;EAED,MAAMwC,IAAI,GAAG5D,MAAM,CAChBtY,GAAG,CAAE+Y,KAAK,IAAK;IACd,MAAMjU,CAAC,GAAGiU,KAAK,CAACpa,IAAI,EAAEsY,MAAM,GAAGoB,MAAM,CAAC,IAAI,EAAE;IAC5C,MAAMlW,KAAK,GAAI2C,CAAC,CAACmW,EAAE,CAAC,CAAC,CAAC,CAAC,IAAe,CAAC;IACvC,MAAMjC,MAAM,GAAGD,KAAK,CAAC3I,MAAM,EAAEuI,MAAM,GAAGN,MAAM,CAAC;IAC7C,OAAO;MACL5X,KAAK,EACHuY,MAAM,EAAEJ,MAAM,EAAEM,WAAW,IAC3BF,MAAM,EAAEJ,MAAM,EAAEO,iBAAiB,IACjCH,MAAM,EAAEte,IAAI,IACZqe,KAAK,CAAC3I,MAAM,EAAEgJ,KAAK;MACrBjX,KAAK,EAAEga,MAAM,CAACha,KAAK,CAACia,OAAO,CAAC,CAAC,CAAC,CAAC;MAC/BL,cAAc;MACdb;IACF,CAAC;EACH,CAAC,CAAC,CACDnQ,MAAM,CAAEsR,GAAG,IAAKA,GAAG,CAACla,KAAK,KAAKgE,SAAS,CAAC;EAE3C,OAAO;IAAE+V;EAAK,CAAC;AACjB,CAAC;;;ACpEkC;AACc;AAED;AAMzB;AAEsC;AAAA;AAWtD,MAAMK,oBAAoB,GAAGA,CAAC;EACnCtc,KAAK;EACL+X,SAAS;EACTvX,KAAK,EAAEmX,aAAa;EACpBoC,UAAU,GAAG;AACK,CAAC,KAAK;EACxB,MAAMvZ,KAAK,GAAGmX,aAAa,IAAI3X,KAAK,CAACQ,KAAK;EAC1C,MAAM;IAAEyb;EAAK,CAAC,GAAG/a,oBAAoB,CAAC6W,SAAS,CAAC7X,MAAM,EAAE;IACtDkB,OAAO,EAAEA,CAAA,KACP6W,wCAAkB,CAAC;MAAEjY,KAAK;MAAEtB,IAAI,EAAEqZ,SAAS,CAACrZ,IAAI;MAAEqb;IAAW,CAAC;EAClE,CAAC,CAAC;EACF,OACE5gB,mCAAA,CAACkjB,kCAAa;IACZpC,QAAQ,EAAE,CAAC,QAAQ,CAAE;IACrBzZ,KAAK,EAAEA,KAAM;IACbyb,IAAI,EAAEA,IAAK;IACXM,eAAe,EAAE;MACf3Z,gBAAgB,eAAE5H,2BAAG,CAAAV,KAAA;QAAAG,IAAA;QAAAC,MAAA;MAAA,KAAqB;IAC5C,CAAE;IACF8hB,YAAY,EAAE;MACZjS,SAAS,eAAEvP,2BAAG,CAAAV,KAAA;QAAAG,IAAA;QAAAC,MAAA;MAAA,KAA0B;IAC1C;EAAE,CACH,CAAC;AAEN,CAAC;AAEM,MAAM2K,yBAA4C,GAAG;EAC1D6H,WAAW,EAAE,kBAAkB;EAC/BzS,IAAI,EAAE,iBAAiB;EACvBgL,SAAS,EAAE6R,aAAa,CAACgF,oBAAoB,CAAC;EAC9CrF,cAAc,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC;EACrC1H,WAAW,EAAE;IACXnL,IAAI,EAAE,QAAQ;IACduW,UAAU,EAAE;MACVna,KAAK,EAAE;QACL4D,IAAI,EAAE,QAAQ;QACd5D,KAAK,EAAE;MACT,CAAC;MACDuZ,UAAU,EAAE;QACV3V,IAAI,EAAE,QAAQ;QACd5D,KAAK,EAAE,aAAa;QACpBoa,OAAO,EAAE,EAAE;QACX6B,WAAW,EAAE;MACf;IACF;EACF,CAAC;EACDjN,QAAQ,EAAE;IACRhP,KAAK,EAAE;MACL,SAAS,EAAE,kCAAkC;MAC7C,gBAAgB,EAAE;IACpB,CAAC;IACDuZ,UAAU,EAAE;MACV,SAAS,EAAE,sCAAsC;MACjD,gBAAgB,EAAE;IACpB;EACF;AACF,CAAC;;AC9EqD;AAE0B;AACV;AACM;AAE5E,MAAM5V,aAAa,GAAG,IAAIwS,aAAa,CAAC,CAAC;AACzCxS,aAAa,CAACyS,aAAa,CAAC8F,WAA4B,CAAC;AACzDvY,aAAa,CAACyS,aAAa,CAAC+F,sBAAuB,CAAC;AACpDxY,aAAa,CAACyS,aAAa,CAACgG,yBAA0B,CAAC;;;ACTK;AAOrC;AAGkB;AAAA;AAUlC,MAAMC,iBAAiB,GAAGA,CAAC;EAChC3jB,QAAQ;EACR4F,SAAS;EACT7B,WAAW,EAAE6f,mBAAmB;EAChC5e,cAAc,EAAE6e,sBAAsB;EACtC5Y,aAAa,EAAE6Y;AACO,CAAC,KAAK;EAC5B,OACE7jB,mCAAA,CAACwD,yBAAyB;IACxBuF,KAAK,EAAE;MACLpD,SAAS;MACT7B,WAAW,EAAE6f,mBAAmB,IAAI7f,WAAW;MAC/CiB,cAAc,EAAE6e,sBAAsB,IAAI7e,cAAc;MACxDiG,aAAa,EAAE6Y,qBAAqB,IAAI7Y,aAAaA;IACvD,CAAE;IAAAjL,QAAA,EACDA;EAAQ,CACgB,CAAC;AAEhC,CAAC;;ACrCyC;AACA;AACL;AACF;AACS;AAIlB;AACyC","sources":["webpack://SSAInfraDash/webpack/universalModuleDefinition","webpack://SSAInfraDash/webpack/bootstrap","webpack://SSAInfraDash/webpack/runtime/compat get default export","webpack://SSAInfraDash/webpack/runtime/define property getters","webpack://SSAInfraDash/webpack/runtime/hasOwnProperty shorthand","webpack://SSAInfraDash/webpack/runtime/make namespace object","webpack://SSAInfraDash/external commonjs \"react-error-boundary\"","webpack://SSAInfraDash/external commonjs \"@ssa-ui-kit/core\"","webpack://SSAInfraDash/external commonjs \"@emotion/react/jsx-runtime\"","webpack://SSAInfraDash/./src/shared/icons/ErrorIcon.tsx","webpack://SSAInfraDash/./src/components/DashboardError/DashboardError.tsx","webpack://SSAInfraDash/external commonjs \"@emotion/css\"","webpack://SSAInfraDash/external commonjs \"@emotion/react\"","webpack://SSAInfraDash/./src/components/LoadingDashboard/LoadingDashboard.tsx","webpack://SSAInfraDash/external commonjs \"react\"","webpack://SSAInfraDash/./src/shared/query/key.ts","webpack://SSAInfraDash/external commonjs \"@ssa-ui-kit/hooks\"","webpack://SSAInfraDash/./src/shared/context/root.ts","webpack://SSAInfraDash/./src/shared/query/useQuery.ts","webpack://SSAInfraDash/./src/shared/query/useMutation.ts","webpack://SSAInfraDash/./src/shared/transport/useTransport.ts","webpack://SSAInfraDash/./src/entities/dashboard/index.ts","webpack://SSAInfraDash/./src/shared/panel.ts","webpack://SSAInfraDash/./src/shared/context/panelDataPeriod.ts","webpack://SSAInfraDash/external commonjs \"react-grid-layout\"","webpack://SSAInfraDash/./src/components/BasePanel/BasePanel.tsx","webpack://SSAInfraDash/./src/components/ErrorPanel/ErrorPanel.tsx","webpack://SSAInfraDash/external commonjs \"react-grid-layout/css/styles.css\"","webpack://SSAInfraDash/external commonjs \"react-resizable/css/styles.css\"","webpack://SSAInfraDash/./src/features/DashboardPanelGrid.tsx","webpack://SSAInfraDash/./src/widgets/DashboardViewer/DashboardViewer.tsx","webpack://SSAInfraDash/./src/widgets/DashboardViewer/index.ts","webpack://SSAInfraDash/external commonjs \"@emotion/styled/base\"","webpack://SSAInfraDash/./src/components/PeriodSelector/PeriodSelector.tsx","webpack://SSAInfraDash/./src/shared/icons/DashboardIcon.tsx","webpack://SSAInfraDash/./src/widgets/DashboardEditor/components/DashboardSelectorDrawer.tsx","webpack://SSAInfraDash/./src/shared/icons/SidebarIcon.tsx","webpack://SSAInfraDash/./src/widgets/DashboardEditor/components/PanelSettingsDrawer.tsx","webpack://SSAInfraDash/./src/entities/grafana-dashboard/index.ts","webpack://SSAInfraDash/./src/entities/grafana-panel/index.ts","webpack://SSAInfraDash/./src/widgets/DashboardEditor/components/ExternalDashboardsList.tsx","webpack://SSAInfraDash/./src/widgets/DashboardEditor/helpers.ts","webpack://SSAInfraDash/./src/widgets/DashboardEditor/components/PanelControl.tsx","webpack://SSAInfraDash/external commonjs \"@rjsf/validator-ajv8\"","webpack://SSAInfraDash/./src/widgets/DashboardEditor/components/PanelSettings.tsx","webpack://SSAInfraDash/./src/widgets/DashboardEditor/DashboardEditor.tsx","webpack://SSAInfraDash/./src/widgets/DashboardEditor/index.ts","webpack://SSAInfraDash/./src/shared/exception.ts","webpack://SSAInfraDash/./src/shared/transport/restTransport.ts","webpack://SSAInfraDash/./src/shared/transport/index.ts","webpack://SSAInfraDash/./src/components/PeriodSelector/index.ts","webpack://SSAInfraDash/./src/shared/query/query.ts","webpack://SSAInfraDash/./src/shared/query/mutation.ts","webpack://SSAInfraDash/./src/shared/panelRegistry.ts","webpack://SSAInfraDash/./src/components/LoadingPanel/LoadingPanel.tsx","webpack://SSAInfraDash/./src/entities/panel/usePanelData.ts","webpack://SSAInfraDash/./src/entities/panel/withPanelData.tsx","webpack://SSAInfraDash/external commonjs \"@grafana/data\"","webpack://SSAInfraDash/./src/panels/TimeseriesPanel/data-adapters/grafana.tsx","webpack://SSAInfraDash/./src/panels/TimeseriesPanel/TimeseriesPanel.tsx","webpack://SSAInfraDash/./src/panels/GaugePanel/data-adapters/grafana.tsx","webpack://SSAInfraDash/./src/panels/GaugePanel/GaugePanel.tsx","webpack://SSAInfraDash/./src/panels/BarGaugePanel/data-adapters/grafana.tsx","webpack://SSAInfraDash/./src/panels/BarGaugePanel/BarGaugePanel.tsx","webpack://SSAInfraDash/./src/panels/index.ts","webpack://SSAInfraDash/./src/provider.tsx","webpack://SSAInfraDash/./src/index.ts"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"SSAInfraDash\"] = factory();\n\telse\n\t\troot[\"SSAInfraDash\"] = factory();\n})(self, () => {\nreturn ","// The require scope\nvar __webpack_require__ = {};\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"react-error-boundary\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@ssa-ui-kit/core\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@emotion/react/jsx-runtime\");","export const ErrorIcon = () => (\n <svg\n width=\"80\"\n height=\"80\"\n viewBox=\"0 0 80 80\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"40\" cy=\"40\" r=\"40\" fill=\"#EEF1F7\" />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M56.9165 39.6055H24.4165V54.6465C24.4165 55.3639 24.8869 55.9968 25.5743 56.2032C28.8398 57.1823 38.0226 59.9375 40.1993 60.5907C40.504 60.6817 40.829 60.6817 41.1337 60.5907C43.3104 59.9375 52.4933 57.1823 55.7587 56.2032C56.4461 55.9968 56.9165 55.3639 56.9165 54.6465C56.9165 50.8797 56.9165 39.6055 56.9165 39.6055Z\"\n fill=\"url(#paint0_linear_175_25229)\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M56.9162 39.6055H40.6662C40.6662 39.6055 40.5086 60.659 40.6662 60.659C40.8239 60.659 40.9807 60.6362 41.1334 60.5907C43.3101 59.9375 52.493 57.1823 55.7584 56.2032C56.4458 55.9968 56.9162 55.3639 56.9162 54.6465C56.9162 50.8797 56.9162 39.6055 56.9162 39.6055Z\"\n fill=\"url(#paint1_linear_175_25229)\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M40.6665 44.8778L24.4165 39.6055C24.4165 39.6055 21.567 43.8305 20.293 45.7187C20.15 45.9308 20.1151 46.1965 20.198 46.4378C20.2817 46.6791 20.4726 46.8668 20.7155 46.9464C23.8022 47.949 32.9396 50.9179 35.3365 51.6963C35.6802 51.8084 36.0572 51.6792 36.2603 51.3794C37.3498 49.7715 40.6665 44.8778 40.6665 44.8778Z\"\n fill=\"url(#paint2_linear_175_25229)\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M56.9165 39.6055L40.6665 44.8778C40.6665 44.8778 43.9831 49.7715 45.0727 51.3794C45.2758 51.6792 45.6528 51.8084 45.9965 51.6963C48.3934 50.9179 57.5308 47.949 60.6174 46.9464C60.8604 46.8668 61.0513 46.6791 61.135 46.4378C61.2179 46.1965 61.1829 45.9308 61.0399 45.7187C59.7659 43.8305 56.9165 39.6055 56.9165 39.6055Z\"\n fill=\"url(#paint3_linear_175_25229)\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M36.7329 28.5303C36.5298 28.2321 36.1536 28.1029 35.8099 28.215C33.4147 28.9926 24.2749 31.9623 21.1882 32.9657C20.9452 33.0445 20.7535 33.2322 20.6706 33.4735C20.5877 33.7148 20.6227 33.9813 20.7657 34.1926C21.9389 35.933 24.4162 39.6055 24.4162 39.6055L40.6662 34.3153C40.6662 34.3153 37.7477 30.0228 36.7329 28.5303Z\"\n fill=\"url(#paint4_linear_175_25229)\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M60.5671 34.1926C60.7101 33.9813 60.745 33.7148 60.6621 33.4735C60.5793 33.2322 60.3875 33.0445 60.1446 32.9657C57.0579 31.9623 47.9181 28.9926 45.5228 28.215C45.1791 28.1029 44.8029 28.2321 44.5998 28.5303C43.585 30.0228 40.6665 34.3153 40.6665 34.3153L56.9165 39.6055C56.9165 39.6055 59.3938 35.933 60.5671 34.1926Z\"\n fill=\"url(#paint5_linear_175_25229)\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M56.9165 39.6055L40.6665 34.3153L24.4165 39.6055L40.6665 44.8778L56.9165 39.6055Z\"\n fill=\"url(#paint6_linear_175_25229)\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M40.6665 44.8778V34.3153L24.4165 39.6055L40.6665 44.8778Z\"\n fill=\"url(#paint7_linear_175_25229)\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M37.4019 36.6488C37.0639 36.4278 36.7592 36.1913 36.4886 35.9435C36.1588 35.6405 35.6445 35.6624 35.3406 35.9931C35.0375 36.323 35.0595 36.8373 35.3901 37.1403C35.7225 37.4458 36.097 37.7367 36.513 38.0089C36.8884 38.2543 37.3921 38.1486 37.6375 37.7733C37.8829 37.3979 37.7773 36.8941 37.4019 36.6488Z\"\n fill=\"url(#paint8_linear_175_25229)\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M34.8703 34.1528C34.629 33.8253 34.4251 33.4963 34.2577 33.1672C34.0546 32.7675 33.5646 32.6082 33.1649 32.8113C32.7651 33.0145 32.6059 33.5044 32.809 33.9042C33.0154 34.3088 33.2656 34.7142 33.5622 35.1164C33.8279 35.4772 34.3365 35.5543 34.6981 35.2887C35.0588 35.0222 35.136 34.5135 34.8703 34.1528Z\"\n fill=\"url(#paint9_linear_175_25229)\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M33.6824 30.837C33.6905 30.5095 33.7384 30.1918 33.8262 29.8872C33.9497 29.4565 33.7002 29.0056 33.2688 28.8821C32.8382 28.7586 32.3872 29.008 32.2637 29.4395C32.1394 29.875 32.0695 30.3292 32.0574 30.7963C32.0468 31.2448 32.401 31.6178 32.8495 31.6283C33.298 31.6397 33.671 31.2855 33.6824 30.837Z\"\n fill=\"url(#paint10_linear_175_25229)\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M34.9318 28.1232C35.1406 27.9299 35.3746 27.7511 35.6305 27.5894C36.0099 27.3497 36.1237 26.8476 35.8848 26.469C35.6451 26.0895 35.143 25.9758 34.7636 26.2147C34.4199 26.4316 34.1079 26.6713 33.8276 26.9313C33.4985 27.236 33.479 27.7503 33.7837 28.0794C34.0884 28.4084 34.6027 28.4279 34.9318 28.1232Z\"\n fill=\"url(#paint11_linear_175_25229)\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M37.9535 26.7216C38.3622 26.6461 38.7953 26.5973 39.2519 26.5786C39.7004 26.5591 40.0481 26.1797 40.0295 25.732C40.0108 25.2843 39.6313 24.9358 39.1828 24.9545C38.6466 24.9772 38.138 25.0349 37.6578 25.1235C37.2174 25.2055 36.9249 25.6296 37.007 26.07C37.0882 26.5112 37.5123 26.8029 37.9535 26.7216Z\"\n fill=\"url(#paint12_linear_175_25229)\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M42.1886 26.6737C42.8816 26.6818 43.5267 26.6575 44.1256 26.6047C44.5724 26.5648 44.9031 26.17 44.8633 25.7231C44.8235 25.277 44.4286 24.9463 43.9817 24.9862C43.4333 25.0341 42.8426 25.0568 42.2072 25.0487C41.7587 25.0438 41.3907 25.4038 41.3858 25.8515C41.3801 26.3 41.7401 26.6688 42.1886 26.6737Z\"\n fill=\"url(#paint13_linear_175_25229)\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M46.796 26.1066C47.6003 25.8604 48.2796 25.5452 48.8483 25.1836C49.2261 24.9423 49.3383 24.4402 49.097 24.0615C48.8565 23.6837 48.3535 23.5716 47.9749 23.8129C47.5175 24.1038 46.969 24.354 46.3206 24.5523C45.8925 24.6839 45.6503 25.1381 45.782 25.5671C45.9128 25.9961 46.3678 26.2374 46.796 26.1066Z\"\n fill=\"url(#paint14_linear_175_25229)\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M50.9315 22.9094C51.315 22.1164 51.4621 21.2779 51.4247 20.4695C51.4036 20.021 51.0225 19.6748 50.5749 19.696C50.1272 19.7171 49.7802 20.0973 49.8014 20.545C49.8274 21.0943 49.7282 21.6638 49.4682 22.2025C49.2732 22.6063 49.4422 23.093 49.846 23.288C50.2499 23.483 50.7365 23.3132 50.9315 22.9094Z\"\n fill=\"url(#paint15_linear_175_25229)\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M50.4143 17.5965C49.822 16.7962 49.0184 16.2388 48.1425 16.0592C47.703 15.9698 47.2732 16.2526 47.183 16.6922C47.0936 17.1317 47.3772 17.5615 47.8159 17.6517C48.3213 17.7549 48.7665 18.1018 49.1086 18.5642C49.3759 18.9241 49.8853 18.9997 50.2453 18.7332C50.606 18.4658 50.6816 17.9564 50.4143 17.5965Z\"\n fill=\"url(#paint16_linear_175_25229)\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M39.7993 16.2168C40.6784 11.2386 48.2973 11.5604 43.8618 16.2168H39.7993Z\"\n fill=\"url(#paint17_linear_175_25229)\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M39.7993 17.4778C40.6784 22.4552 48.2973 22.1343 43.8618 17.4778H39.7993Z\"\n fill=\"url(#paint18_linear_175_25229)\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M39.7266 17.668H45.1671C45.6156 17.668 45.9796 17.304 45.9796 16.8555C45.9796 16.407 45.6156 16.043 45.1671 16.043H39.7266C39.2789 16.043 38.9141 16.407 38.9141 16.8555C38.9141 17.304 39.2789 17.668 39.7266 17.668Z\"\n fill=\"url(#paint19_linear_175_25229)\"\n />\n <defs>\n <linearGradient\n id=\"paint0_linear_175_25229\"\n x1=\"24.4165\"\n y1=\"50.1322\"\n x2=\"56.9165\"\n y2=\"50.1322\"\n gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"#CADCF0\" />\n <stop offset=\"1\" stopColor=\"#A4BBDB\" />\n </linearGradient>\n <linearGradient\n id=\"paint1_linear_175_25229\"\n x1=\"40.5964\"\n y1=\"50.1322\"\n x2=\"56.9162\"\n y2=\"50.1322\"\n gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"#A4BBDB\" />\n <stop offset=\"1\" stopColor=\"#8DA3BE\" />\n </linearGradient>\n <linearGradient\n id=\"paint2_linear_175_25229\"\n x1=\"24.5245\"\n y1=\"39.599\"\n x2=\"26.7957\"\n y2=\"54.6248\"\n gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"#E9F3FC\" />\n <stop offset=\"1\" stopColor=\"#CADCF0\" />\n </linearGradient>\n <linearGradient\n id=\"paint3_linear_175_25229\"\n x1=\"40.7323\"\n y1=\"44.8225\"\n x2=\"57.8628\"\n y2=\"54.6748\"\n gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"#E9F3FC\" />\n <stop offset=\"1\" stopColor=\"#CADCF0\" />\n </linearGradient>\n <linearGradient\n id=\"paint4_linear_175_25229\"\n x1=\"22.2891\"\n y1=\"36.4521\"\n x2=\"24.7405\"\n y2=\"24.8965\"\n gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"#E9F3FC\" />\n <stop offset=\"1\" stopColor=\"#CADCF0\" />\n </linearGradient>\n <linearGradient\n id=\"paint5_linear_175_25229\"\n x1=\"45.0166\"\n y1=\"28.0192\"\n x2=\"45.8932\"\n y2=\"42.2824\"\n gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"#E9F3FC\" />\n <stop offset=\"1\" stopColor=\"#CADCF0\" />\n </linearGradient>\n <linearGradient\n id=\"paint6_linear_175_25229\"\n x1=\"24.4165\"\n y1=\"39.5965\"\n x2=\"56.9165\"\n y2=\"39.5965\"\n gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"#CADCF0\" />\n <stop offset=\"1\" stopColor=\"#A4BBDB\" />\n </linearGradient>\n <linearGradient\n id=\"paint7_linear_175_25229\"\n x1=\"42.3305\"\n y1=\"34.0788\"\n x2=\"42.6807\"\n y2=\"47.2032\"\n gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"#A4BBDB\" />\n <stop offset=\"1\" stopColor=\"#8DA3BE\" />\n </linearGradient>\n <linearGradient\n id=\"paint8_linear_175_25229\"\n x1=\"31.7217\"\n y1=\"16.2168\"\n x2=\"47.7475\"\n y2=\"35.1261\"\n gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"#559AFF\" />\n <stop offset=\"1\" stopColor=\"#2E69EF\" />\n </linearGradient>\n <linearGradient\n id=\"paint9_linear_175_25229\"\n x1=\"31.7219\"\n y1=\"16.2168\"\n x2=\"47.7476\"\n y2=\"35.1261\"\n gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"#559AFF\" />\n <stop offset=\"1\" stopColor=\"#2E69EF\" />\n </linearGradient>\n <linearGradient\n id=\"paint10_linear_175_25229\"\n x1=\"31.7218\"\n y1=\"16.2168\"\n x2=\"47.7475\"\n y2=\"35.1262\"\n gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"#559AFF\" />\n <stop offset=\"1\" stopColor=\"#2E69EF\" />\n </linearGradient>\n <linearGradient\n id=\"paint11_linear_175_25229\"\n x1=\"31.7216\"\n y1=\"16.2169\"\n x2=\"47.7473\"\n y2=\"35.1262\"\n gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"#559AFF\" />\n <stop offset=\"1\" stopColor=\"#2E69EF\" />\n </linearGradient>\n <linearGradient\n id=\"paint12_linear_175_25229\"\n x1=\"31.7217\"\n y1=\"16.2168\"\n x2=\"47.7474\"\n y2=\"35.1261\"\n gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"#559AFF\" />\n <stop offset=\"1\" stopColor=\"#2E69EF\" />\n </linearGradient>\n <linearGradient\n id=\"paint13_linear_175_25229\"\n x1=\"31.7219\"\n y1=\"16.2168\"\n x2=\"47.7477\"\n y2=\"35.1262\"\n gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"#559AFF\" />\n <stop offset=\"1\" stopColor=\"#2E69EF\" />\n </linearGradient>\n <linearGradient\n id=\"paint14_linear_175_25229\"\n x1=\"31.7217\"\n y1=\"16.2168\"\n x2=\"47.7474\"\n y2=\"35.1262\"\n gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"#559AFF\" />\n <stop offset=\"1\" stopColor=\"#2E69EF\" />\n </linearGradient>\n <linearGradient\n id=\"paint15_linear_175_25229\"\n x1=\"31.7216\"\n y1=\"16.2168\"\n x2=\"47.7474\"\n y2=\"35.1261\"\n gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"#559AFF\" />\n <stop offset=\"1\" stopColor=\"#2E69EF\" />\n </linearGradient>\n <linearGradient\n id=\"paint16_linear_175_25229\"\n x1=\"31.7219\"\n y1=\"16.2168\"\n x2=\"47.7476\"\n y2=\"35.1262\"\n gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"#559AFF\" />\n <stop offset=\"1\" stopColor=\"#2E69EF\" />\n </linearGradient>\n <linearGradient\n id=\"paint17_linear_175_25229\"\n x1=\"39.7993\"\n y1=\"14.4098\"\n x2=\"45.239\"\n y2=\"14.4098\"\n gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"#E9F3FC\" />\n <stop offset=\"1\" stopColor=\"#CADCF0\" />\n </linearGradient>\n <linearGradient\n id=\"paint18_linear_175_25229\"\n x1=\"39.7993\"\n y1=\"19.2848\"\n x2=\"45.239\"\n y2=\"19.2848\"\n gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"#E9F3FC\" />\n <stop offset=\"1\" stopColor=\"#CADCF0\" />\n </linearGradient>\n <linearGradient\n id=\"paint19_linear_175_25229\"\n x1=\"31.7218\"\n y1=\"16.2168\"\n x2=\"47.7476\"\n y2=\"35.1262\"\n gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"#559AFF\" />\n <stop offset=\"1\" stopColor=\"#2E69EF\" />\n </linearGradient>\n </defs>\n </svg>\n);\n","import { Wrapper } from '@ssa-ui-kit/core';\n\nimport { ErrorIcon } from '@shared/icons';\n\nexport type DashboardErrorProps = {\n children?: React.ReactNode;\n};\n\nexport const DashboardError = ({ children }: DashboardErrorProps) => (\n <Wrapper\n direction=\"column\"\n css={{ justifyContent: 'center', height: '100%' }}>\n <ErrorIcon />\n <div css={{ marginTop: '12px', textAlign: 'center' }}>\n {children ?? 'An error occurred while loading the dashboard'}\n </div>\n </Wrapper>\n);\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@emotion/css\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@emotion/react\");","import { css } from '@emotion/css';\nimport { useTheme } from '@emotion/react';\nimport { ProgressCircle, Wrapper, Theme } from '@ssa-ui-kit/core';\n\nexport type LoadingDashboardProps = {\n children?: React.ReactNode;\n};\n\nexport const LoadingDashboard = ({ children }: LoadingDashboardProps) => {\n const theme = useTheme() as Theme;\n return (\n <Wrapper\n direction=\"column\"\n css={{ justifyContent: 'center', height: '100%' }}>\n <ProgressCircle\n classnames={{\n inner: css(`\n background: none !important;\n `),\n outer: css(`\n background: none !important;\n border: 12px solid ${theme.colors.greyLighter};\n `),\n }}\n currentValue={3}\n max={10}\n size={120}\n color=\"blue\"\n mode=\"infinite\"\n />\n {children && (\n <div css={{ marginTop: '12px', textAlign: 'center' }}>{children}</div>\n )}\n </Wrapper>\n );\n};\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"react\");","export type MutationKey = unknown[];\nexport type QueryKey = unknown[];\n\nexport const hashKey = (queryKey: QueryKey | MutationKey) => {\n return JSON.stringify(queryKey);\n};\n\nexport function partialMatchKey(a: QueryKey, b: QueryKey): boolean;\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function partialMatchKey(a: any, b: any): boolean {\n if (a === b) {\n return true;\n }\n if (typeof a !== typeof b) {\n return false;\n }\n if (a && b && typeof a === 'object' && typeof b === 'object') {\n return Object.keys(b).every((key) => partialMatchKey(a[key], b[key]));\n }\n return false;\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@ssa-ui-kit/hooks\");","import { createSafeContext } from '@ssa-ui-kit/hooks';\n\nimport { PanelRegistry } from '@shared/panelRegistry';\nimport { MutationClient, QueryClient } from '@shared/query';\nimport { InfraDashTransport } from '@shared/transport';\n\nexport interface InfraDashContextValue {\n transport: InfraDashTransport;\n queryClient: QueryClient;\n mutationClient: MutationClient;\n panelRegistry: PanelRegistry;\n}\n\nexport const [InfraDashInternalProvider, useInfraDashContext] =\n createSafeContext<InfraDashContextValue>(\n 'useInfraDashContext must be used within a InfraDashProvider',\n );\n","import { useCallback, useMemo, useSyncExternalStore } from 'react';\n\nimport { Fetcher, QueryEntry, QueryOptions, QueryState } from './query';\nimport { hashKey, QueryKey } from './key';\n\nimport { useInfraDashContext } from '../context';\n\nexport const useQueryClient = () => {\n const { queryClient } = useInfraDashContext();\n return queryClient;\n};\n\nexport const useQuery = <T>(\n key: QueryKey,\n fetcher: Fetcher<T>,\n options?: QueryOptions,\n) => {\n const queryClient = useQueryClient();\n\n const keyHash = useMemo(() => hashKey(key), [key]);\n const entry = useMemo(\n () => queryClient.fetchQuery<T>(key, fetcher, options) as QueryEntry<T>,\n [keyHash],\n );\n\n entry.updateEntity(fetcher, options);\n\n const subscribe = useCallback(\n (onStoreChange: () => void) => {\n return entry.subscribe(() => {\n onStoreChange();\n });\n },\n [entry],\n );\n\n const getSnapshot = (): QueryState<T> => {\n return entry.state;\n };\n const getServerSnapshot = getSnapshot;\n\n const state = useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);\n\n return {\n ...state,\n refetch: () => queryClient.invalidateQueries({ key, exact: true }),\n };\n};\n","import { useCallback, useMemo, useSyncExternalStore } from 'react';\n\nimport {\n MutationEntry,\n MutationFn,\n MutationOptions,\n MutationState,\n} from './mutation';\nimport { hashKey, MutationKey } from './key';\n\nimport { useInfraDashContext } from '../context';\n\nexport const useMutationClient = () => {\n const { mutationClient } = useInfraDashContext();\n return mutationClient;\n};\n\nexport const useMutation = <T, V = unknown>(\n key: MutationKey,\n mutationFn: MutationFn<T, V>,\n options?: MutationOptions<T, V>,\n) => {\n const mutationClient = useMutationClient();\n\n const keyHash = useMemo(() => hashKey(key), [key]);\n const entry = useMemo(\n () =>\n mutationClient.fetchMutation<T, V>(\n key,\n mutationFn,\n options,\n ) as MutationEntry<T, V>,\n [keyHash],\n );\n\n entry.updateEntity(mutationFn, options);\n\n const subscribe = useCallback(\n (onStoreChange: () => void) => {\n return entry.subscribe(() => {\n onStoreChange();\n });\n },\n [entry],\n );\n\n const getSnapshot = (): MutationState<T> => {\n return entry.state;\n };\n const getServerSnapshot = getSnapshot;\n\n const state = useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);\n\n const mutate = useCallback(\n (...args: Parameters<typeof entry.mutate>) => {\n return entry.mutate(...args);\n },\n [entry],\n );\n\n const reset = useCallback(() => {\n entry.reset();\n }, [entry]);\n\n const cancel = useCallback(() => {\n entry.cancel();\n }, [entry]);\n\n return {\n mutate,\n data: state.data,\n error: state.error,\n isLoading: state.isLoading,\n reset,\n cancel,\n };\n};\n","import { InfraDashTransport } from './baseTransport';\n\nimport { useInfraDashContext } from '../context';\n\nexport const useTransport = (transport?: InfraDashTransport) => {\n const { transport: contextTransport } = useInfraDashContext();\n return transport ?? contextTransport;\n};\n","import {\n useQuery,\n useMutation,\n QueryOptions,\n MutationOptions,\n} from '@shared/query';\nimport {\n CreateDashboardPayload,\n InfraDashTransport,\n UpdateDashboardPayload,\n useTransport,\n} from '@shared/transport';\n\ntype QOptions = QueryOptions & {\n transport?: InfraDashTransport;\n};\n\ntype MOptions<T, V> = MutationOptions<T, V> & {\n transport?: InfraDashTransport;\n};\n\nexport const useDashboards = (options?: QOptions) => {\n const { transport, ...queryOptions } = options || {};\n const _transport = useTransport(transport);\n const result = useQuery(\n ['dashboards'],\n async (signal) => {\n return await _transport.getDashboards(signal);\n },\n queryOptions,\n );\n return result;\n};\n\nexport const useDashboard = (dashboardId: number, options?: QOptions) => {\n const { transport, ...queryOptions } = options || {};\n const _transport = useTransport(transport);\n const result = useQuery(\n ['dashboards', dashboardId],\n async (signal) => {\n return await _transport.getDashboard(dashboardId, signal);\n },\n queryOptions,\n );\n return result;\n};\n\nexport const usePublishedDashboards = (options?: QOptions) => {\n const { transport, ...queryOptions } = options || {};\n const _transport = useTransport(transport);\n const result = useQuery(\n ['dashboards', 'published'],\n async (signal) => {\n return await _transport.getPublishedDashboards(signal);\n },\n queryOptions,\n );\n return result;\n};\n\nexport const useCreateDashboard = (\n options?: MOptions<unknown, CreateDashboardPayload>,\n) => {\n const { transport, ...mutationOptions } = options || {};\n const _transport = useTransport(transport);\n const result = useMutation(\n ['create-dashboard'],\n async (payload: CreateDashboardPayload, signal?: AbortSignal) => {\n const panels = payload.panels.map((panel) => ({\n panelDefinition: panel.panelDefinition,\n source: panel.source,\n }));\n const dashboardsUid = new Set(\n panels.map((panel) => panel.source.dashboardUid),\n );\n if (!dashboardsUid.size) {\n throw new Error('At least one panel must be provided');\n }\n return await _transport.createDashboard(\n {\n title: payload.title,\n published: payload.published,\n dashboardDefinition: payload.dashboardDefinition,\n panels,\n },\n signal,\n );\n },\n mutationOptions,\n );\n return result;\n};\n\nexport const useUpdateDashboard = (\n dashboardId: number,\n options?: MOptions<unknown, Omit<UpdateDashboardPayload, 'dashboardId'>>,\n) => {\n const { transport, ...mutationOptions } = options || {};\n const _transport = useTransport(transport);\n const result = useMutation(\n ['update-dashboard', dashboardId],\n async (payload, signal?) => {\n const panels = payload.panels.map((panel) => ({\n panelDefinition: panel.panelDefinition,\n source: panel.source,\n }));\n const dashboardsUid = new Set(\n panels.map((panel) => panel.source.dashboardUid),\n );\n if (!dashboardsUid.size) {\n throw new Error('At least one panel must be provided');\n }\n return await _transport.updateDashboard(\n {\n title: payload.title,\n published: payload.published,\n dashboardDefinition: payload.dashboardDefinition,\n panels,\n dashboardId,\n },\n signal,\n );\n },\n mutationOptions,\n );\n return result;\n};\n\nexport const useDeleteDashboard = (\n dashboardId: number,\n options?: MOptions<unknown, undefined>,\n) => {\n const { transport, ...mutationOptions } = options || {};\n const _transport = useTransport(transport);\n const result = useMutation(\n ['delete-dashboard', dashboardId],\n async (_?: never, signal?: AbortSignal) => {\n return await _transport.deleteDashboard(dashboardId, signal);\n },\n mutationOptions,\n );\n return result;\n};\n","import { RJSFSchema, UiSchema } from '@rjsf/utils';\nimport { GrafanaPanelData, GrafanaPanelSchema } from './grafana';\n\n/**\n * Defines the configuration and positioning information for a dashboard panel.\n * Contains both the component configuration and grid layout positioning.\n */\nexport type PanelDefinition = {\n component: {\n /** Unique identifier for the component type */\n id: string;\n /** Dynamic properties passed to the component instance */\n props: Record<string, unknown>;\n };\n /** Grid positioning and sizing information */\n gridPos: Record<'h' | 'w' | 'x' | 'y', number>;\n\n /** Version of the panel definition schema */\n version: 1;\n};\n\n/**\n * Represents a complete dashboard panel with its metadata, schema, and definition.\n * Combines panel identity, display information, data schema, and component configuration.\n */\nexport type Panel = {\n /** Unique numeric identifier for the panel */\n id: number;\n /** Display title shown in the panel header */\n title: string;\n /** Grafana-specific panel schema configuration */\n panelSchema: GrafanaPanelSchema;\n /** Component and layout definition for the panel */\n panelDefinition: PanelDefinition;\n source: {\n type: typeof PANEL_DATA_SOURCE.GRAFANA;\n dashboardUid: string;\n panelId: number;\n };\n};\n\n/**\n * Optional schema defining the structure of props this component expects.\n * Used for validation and form generation in configuration UIs.\n */\ntype PanelConfigProps<T> = object extends T\n ? { defaultProps?: T; propsSchema?: RJSFSchema } // all props are optional → defaultProps stays optional\n : { defaultProps: T; propsSchema: RJSFSchema };\n\n/**\n * Configuration object for registering a panel component type.\n * Defines how a specific component should be rendered and what panel types it supports.\n */\nexport type PanelConfig<T extends Record<string, unknown> | undefined> = {\n /** Unique identifier for this component type */\n componentId: string;\n /** React component that will render the panel */\n Component: React.ComponentType<{ panel: Panel }>;\n /** Human-readable name for this panel type */\n name: string;\n /** Array of Grafana panel types this component can handle */\n supportedTypes: string[];\n uiSchema?: UiSchema;\n} & PanelConfigProps<Omit<T, 'panel' | 'panelData'>>;\n\n/**\n * Constant object defining available panel data sources.\n * Currently only supports Grafana as a data source.\n */\nexport const PANEL_DATA_SOURCE = {\n GRAFANA: 'grafana',\n} as const;\nexport type PanelDataSource =\n (typeof PANEL_DATA_SOURCE)[keyof typeof PANEL_DATA_SOURCE];\n\n/**\n * Pattern matching utility function for handling different panel data sources.\n * Provides type-safe way to handle operations based on the data source type.\n *\n * @param source - The panel data source to match against\n * @param handlers - Object containing handler functions for each data source type\n */\nexport const matchPanelDataSource = <Grafana>(\n source: PanelDataSource,\n handlers: {\n grafana: () => Grafana;\n },\n): Grafana => {\n switch (source) {\n case PANEL_DATA_SOURCE.GRAFANA:\n return handlers.grafana();\n default: {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const _: never = source;\n throw new Error(`Unsupported panel data source: ${source}`);\n }\n }\n};\n\n/**\n * Represents panel data with its source and associated data.\n * Currently only supports Grafana as a data source.\n */\nexport type PanelData = {\n /** The data source type identifier */\n source: typeof PANEL_DATA_SOURCE.GRAFANA;\n /** The actual panel data from Grafana */\n data: GrafanaPanelData;\n};\n\nexport const PANEL_DATA_PERIOD = {\n LAST_HOUR: 0,\n LAST_6_HOURS: 1,\n LAST_24_HOURS: 2,\n LAST_7_DAYS: 3,\n LAST_30_DAYS: 4,\n} as const;\nexport type PanelDataPeriod =\n (typeof PANEL_DATA_PERIOD)[keyof typeof PANEL_DATA_PERIOD];\n","import { createSafeContext, useUncontrolled } from '@ssa-ui-kit/hooks';\n\nimport { PANEL_DATA_PERIOD, PanelDataPeriod } from '@shared/panel';\n\nexport interface UseInfraDashPanelDataPeriodOptions {\n defaultPeriod?: PanelDataPeriod;\n period?: PanelDataPeriod;\n onPeriodChange?: (period: PanelDataPeriod) => void;\n}\n\nexport const useInfraDashPanelDataPeriod = ({\n defaultPeriod,\n period: providedPeriod,\n onPeriodChange,\n}: UseInfraDashPanelDataPeriodOptions = {}) => {\n const [period, changePeriod] = useUncontrolled({\n value: providedPeriod,\n defaultValue: defaultPeriod,\n finalValue: PANEL_DATA_PERIOD.LAST_HOUR,\n onChange: onPeriodChange,\n });\n\n return {\n period,\n changePeriod,\n };\n};\n\nexport type InfraDashPanelDataPeriodStore = ReturnType<\n typeof useInfraDashPanelDataPeriod\n>;\n\nexport const [\n InfraDashPanelDataPeriodProvider,\n useInfraDashPanelDataPeriodContext,\n] = createSafeContext<InfraDashPanelDataPeriodStore>(\n 'useInfraDashPanelDataPeriodContext must be used within a InfraDashPanelDataPeriodProvider',\n);\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"react-grid-layout\");","import { Wrapper } from '@ssa-ui-kit/core';\n\nexport type PanelProps = {\n children: React.ReactNode;\n};\n\nexport const BasePanel = ({ children }: PanelProps) => (\n <Wrapper\n alignItems=\"center\"\n direction=\"column\"\n css={{ height: '100%', overflow: 'hidden' }}>\n {children}\n </Wrapper>\n);\n","import { css } from '@emotion/css';\nimport { WidgetCard } from '@ssa-ui-kit/core';\n\nimport { ErrorIcon } from '@shared/icons';\n\nexport type ErrorPanelProps = {\n title?: string;\n children?: React.ReactNode;\n};\n\nexport const ErrorPanel = ({ title, children }: ErrorPanelProps) => {\n return (\n <WidgetCard\n title={title}\n contentClassName={css`\n align-items: center !important;\n justify-content: center !important;\n `}>\n <ErrorIcon />\n <div css={{ marginTop: '12px', textAlign: 'center' }}>\n {children ?? 'An error occurred while loading the panel'}\n </div>\n </WidgetCard>\n );\n};\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"react-grid-layout/css/styles.css\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"react-resizable/css/styles.css\");","import { forwardRef, useEffect } from 'react';\nimport { css } from '@emotion/react';\nimport { useElementSize, useMinMDMediaQuery } from '@ssa-ui-kit/hooks';\nimport GridLayout from 'react-grid-layout';\nimport { ErrorBoundary } from 'react-error-boundary';\n\nimport { BasePanel } from '@components/BasePanel';\nimport { ErrorPanel } from '@components/ErrorPanel';\nimport { Dashboard } from '@shared/dashboard';\nimport { Panel } from '@shared/panel';\nimport { useInfraDashContext } from '@shared/context';\n\nimport 'react-grid-layout/css/styles.css';\nimport 'react-resizable/css/styles.css';\n\nexport type DashboardPanelGridProps = {\n dashboard: Dashboard;\n header?: React.ReactNode | ((dashboard: Dashboard) => React.ReactNode);\n cols?: number;\n rowHeight?: number;\n draggable?: boolean;\n resizable?: boolean;\n /*\n If 0 the panel-data will not be refetch\n Default is 60000 (60 seconds)\n */\n refetchIntervalMs?: number;\n onLayoutChange?: (layout: GridLayout.Layout[]) => void;\n onDragStart?: GridLayout.ItemCallback;\n onResizeStart?: GridLayout.ItemCallback;\n renderPanelControl?: (panel: Panel) => React.ReactNode;\n} & Omit<React.HTMLAttributes<HTMLDivElement>, 'onDrag'>;\n\nexport const DashboardPanelGrid = ({\n dashboard,\n header,\n cols = 12,\n rowHeight = 50,\n draggable = false,\n resizable = false,\n refetchIntervalMs = 60000, // 60 seconds\n onLayoutChange,\n onDragStart,\n onResizeStart,\n renderPanelControl,\n ...divProps\n}: DashboardPanelGridProps) => {\n const { ref, width } = useElementSize<HTMLDivElement>();\n const isMinMD = useMinMDMediaQuery();\n const { panelRegistry, queryClient } = useInfraDashContext();\n\n useEffect(() => {\n if (refetchIntervalMs) {\n queryClient.invalidateQueries({ key: ['panel-data'], type: 'active' });\n const intervalId = setInterval(() => {\n queryClient.invalidateQueries({ key: ['panel-data'], type: 'active' });\n }, refetchIntervalMs);\n return () => clearInterval(intervalId);\n }\n }, [refetchIntervalMs]);\n\n // sort panels by their grid position\n // for mobile view it will ensure they are stacked vertically in the right order\n const sortedPanels = [...dashboard.panels].sort((a, b) => {\n const aPos = a.panelDefinition.gridPos;\n const bPos = b.panelDefinition.gridPos;\n if (aPos.y !== bPos.y) {\n return aPos.y - bPos.y; // top to bottom\n }\n return aPos.x - bPos.x; // left to right within the same row\n });\n\n const layout = sortedPanels.map(\n ({ id, panelDefinition: { gridPos } }, index) => {\n if (!isMinMD) {\n // single column layout for mobile\n return {\n i: id.toString(),\n x: 0,\n y: index * gridPos.h,\n w: cols,\n h: gridPos.h,\n };\n }\n return {\n i: id.toString(),\n ...gridPos,\n };\n },\n );\n\n const renderPanel = (panel: Panel) => {\n const panelConfig = panelRegistry.getPanelConfig(\n panel.panelDefinition.component.id,\n );\n if (panelConfig) {\n return (\n <ErrorBoundary fallback={<ErrorPanel />}>\n <BasePanel>\n <panelConfig.Component\n panel={panel}\n {...panel.panelDefinition.component.props}\n />\n </BasePanel>\n </ErrorBoundary>\n );\n }\n return (\n <BasePanel>Unsupported panel type: {panel.panelSchema.type}</BasePanel>\n );\n };\n\n const _header = typeof header === 'function' ? header(dashboard) : header;\n\n return (\n <div\n ref={ref}\n css={css`\n width: 100%;\n /* stylelint-disable-next-line selector-class-pattern */\n .react-grid-item.cssTransforms {\n transition-property: none;\n }\n .react-grid-layout {\n transition: none;\n }\n .react-grid-item.react-grid-placeholder {\n background-color: transparent;\n }\n `}\n {...divProps}>\n {_header}\n {width && (\n <GridLayout\n autoSize\n layout={layout}\n cols={cols}\n rowHeight={rowHeight}\n containerPadding={[0, 0]}\n margin={[8, 8]}\n width={width}\n // disable interaction for mobile view\n isDraggable={isMinMD && draggable}\n isResizable={isMinMD && resizable}\n onLayoutChange={isMinMD ? onLayoutChange : undefined}\n onDragStart={onDragStart}\n onResizeStart={onResizeStart}>\n {dashboard.panels.map((panel) => (\n <GridItem key={panel.id.toString()}>\n {renderPanelControl && (\n // eslint-disable-next-line jsx-a11y/no-static-element-interactions\n <div\n css={{ position: 'absolute', zIndex: 100, right: 0 }}\n onMouseDown={(e) => e.stopPropagation()}>\n {renderPanelControl(panel)}\n </div>\n )}\n {renderPanel(panel)}\n </GridItem>\n ))}\n </GridLayout>\n )}\n </div>\n );\n};\n\ninterface GridItemProps extends React.HTMLAttributes<HTMLDivElement> {\n children: React.ReactNode;\n}\n\nconst GridItem = forwardRef<HTMLDivElement, GridItemProps>(function GridItem(\n { children, ...props },\n ref,\n) {\n return (\n <div\n ref={ref}\n css={css`\n .react-resizable-handle-se {\n z-index: 1;\n padding: 0;\n ::after {\n right: 0;\n bottom: 0;\n }\n }\n `}\n {...props}>\n {children}\n </div>\n );\n});\n","import { ErrorBoundary } from 'react-error-boundary';\n\nimport { DashboardError } from '@components/DashboardError';\nimport { LoadingDashboard } from '@components/LoadingDashboard';\nimport { useDashboard } from '@entities/dashboard';\nimport { Dashboard } from '@shared/dashboard';\nimport {\n InfraDashPanelDataPeriodProvider,\n useInfraDashPanelDataPeriod,\n UseInfraDashPanelDataPeriodOptions,\n} from '@shared/context';\n\nimport {\n DashboardPanelGrid,\n DashboardPanelGridProps,\n} from '../../features/DashboardPanelGrid';\n\nexport type DashboardViewerProps = {\n dashboardId?: number;\n dashboard?: Dashboard;\n} & Omit<DashboardPanelGridProps, 'dashboard'> &\n UseInfraDashPanelDataPeriodOptions;\n\nexport const DashboardViewer = ({\n dashboard,\n dashboardId,\n ...props\n}: DashboardViewerProps) => {\n const dashboardById = useDashboard(dashboardId ?? -1, {\n enabled: !!dashboardId && !dashboard,\n });\n\n const DashboardWrapper: React.FC<{\n dashboard: Dashboard;\n }> = ({ dashboard }) => {\n const panelDataPeriod = useInfraDashPanelDataPeriod({ ...props });\n return (\n <InfraDashPanelDataPeriodProvider value={panelDataPeriod}>\n <ErrorBoundary\n fallback={<DashboardError>Something went wrong</DashboardError>}>\n <DashboardPanelGrid {...props} dashboard={dashboard} />\n </ErrorBoundary>\n </InfraDashPanelDataPeriodProvider>\n );\n };\n\n if (dashboard) {\n return <DashboardWrapper dashboard={dashboard} />;\n }\n if (!dashboardById.isLoaded) {\n return <LoadingDashboard />;\n }\n if (dashboardById.error) {\n return <DashboardError />;\n }\n return <DashboardWrapper dashboard={dashboardById.data} />;\n};\n","export * from './DashboardViewer';\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@emotion/styled/base\");","import styled from '@emotion/styled';\nimport { css, useTheme } from '@emotion/react';\nimport { DropdownOption, Dropdown } from '@ssa-ui-kit/core';\n\nimport { useInfraDashPanelDataPeriodContext } from '@shared/context';\nimport { PANEL_DATA_PERIOD, PanelDataPeriod } from '@shared/panel';\n\nconst CustomOption = styled(DropdownOption)`\n display: flex;\n align-items: center;\n border: none;\n cursor: pointer;\n font-size: 14px;\n gap: 8px;\n padding: 10px 12px;\n min-height: 40px;\n line-height: 20px;\n justify-content: space-between;\n overflow: hidden;\n text-overflow: ellipsis;\n background: ${({ isActive, theme }) =>\n isActive ? theme.colors.blueRoyal12 : theme.colors.white};\n &:hover {\n background: rgba(72, 125, 225, 0.06);\n }\n`;\n\nexport const PeriodSelector = () => {\n const theme = useTheme();\n const { period, changePeriod } = useInfraDashPanelDataPeriodContext();\n\n const handlePeriodSelect = (period: PanelDataPeriod) => {\n changePeriod(period);\n };\n\n const items = [\n { value: PANEL_DATA_PERIOD.LAST_HOUR, label: 'Last Hour' },\n { value: PANEL_DATA_PERIOD.LAST_6_HOURS, label: 'Last 6 Hours' },\n { value: PANEL_DATA_PERIOD.LAST_24_HOURS, label: 'Last 24 Hours' },\n { value: PANEL_DATA_PERIOD.LAST_7_DAYS, label: 'Last 7 Days' },\n { value: PANEL_DATA_PERIOD.LAST_30_DAYS, label: 'Last 30 Days' },\n ];\n\n return (\n <Dropdown\n selectedItem={items.find((item) => item.value === period)}\n onChange={(item) => handlePeriodSelect(item.value)}\n css={css`\n min-width: 135px;\n height: 44px;\n justify-content: space-between;\n white-space: nowrap;\n background: ${theme.colors.white};\n border: 1px solid ${theme.colors.grey};\n & svg path {\n stroke: ${theme.colors.greyDarker};\n }\n &:hover {\n border-color: ${theme.colors.greyDarker80};\n }\n &:focus {\n background: ${theme.colors.white};\n border-color: ${theme.colors.blueRoyal};\n box-shadow: none;\n &::before {\n border: none;\n }\n svg path {\n stroke: ${theme.colors.greyDarker};\n }\n }\n &[aria-expanded='true'] {\n box-shadow: none;\n background: ${theme.colors.white};\n border: 1px solid ${theme.colors.blueRoyal} !important;\n color: #000;\n }\n `}>\n {items.map((item) => (\n <CustomOption key={item.value} value={item.value} label={item.label}>\n {item.label}\n </CustomOption>\n ))}\n </Dropdown>\n );\n};\n","import { SVGProps } from '@ssa-ui-kit/core';\n\nexport const DashboardIcon = ({\n fill = '#2B2D31',\n size = 18,\n tooltip = 'Dashboard',\n ...props\n}: SVGProps) => (\n <svg\n width={`${size}px`}\n height={`${size}px`}\n viewBox=\"0 0 18 18\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}>\n <title>{tooltip}</title>\n <path\n d=\"M6.4541 11.2607C7.46278 11.363 8.25 12.2143 8.25 13.25V13.75L8.23926 13.9541C8.1438 14.8957 7.39565 15.6438 6.4541 15.7393L6.25 15.75H4.25L4.0459 15.7393C3.10435 15.6438 2.3562 14.8957 2.26074 13.9541L2.25 13.75V13.25C2.25 12.2143 3.03722 11.363 4.0459 11.2607L4.25 11.25H6.25L6.4541 11.2607ZM13.9541 8.26074C14.9628 8.363 15.75 9.21435 15.75 10.25V13.75L15.7393 13.9541C15.6438 14.8957 14.8957 15.6438 13.9541 15.7393L13.75 15.75H11.75L11.5459 15.7393C10.6043 15.6438 9.8562 14.8957 9.76074 13.9541L9.75 13.75V10.25C9.75 9.21435 10.5372 8.363 11.5459 8.26074L11.75 8.25H13.75L13.9541 8.26074ZM11.75 9.65039C11.4186 9.65039 11.1504 9.91863 11.1504 10.25V13.75C11.1504 14.0814 11.4186 14.3496 11.75 14.3496H13.75C14.0814 14.3496 14.3496 14.0814 14.3496 13.75V10.25C14.3496 9.91863 14.0814 9.65039 13.75 9.65039H11.75ZM4.25 12.6504C3.91863 12.6504 3.65039 12.9186 3.65039 13.25V13.75C3.65039 14.0814 3.91863 14.3496 4.25 14.3496H6.25C6.58137 14.3496 6.84961 14.0814 6.84961 13.75V13.25C6.84961 12.9186 6.58137 12.6504 6.25 12.6504H4.25ZM6.4541 2.26074C7.46278 2.363 8.25 3.21435 8.25 4.25V7.75L8.23926 7.9541C8.1438 8.89565 7.39565 9.6438 6.4541 9.73926L6.25 9.75H4.25L4.0459 9.73926C3.10435 9.6438 2.3562 8.89565 2.26074 7.9541L2.25 7.75V4.25C2.25 3.21435 3.03722 2.363 4.0459 2.26074L4.25 2.25H6.25L6.4541 2.26074ZM4.25 3.65039C3.91863 3.65039 3.65039 3.91863 3.65039 4.25V7.75C3.65039 8.08137 3.91863 8.34961 4.25 8.34961H6.25C6.58137 8.34961 6.84961 8.08137 6.84961 7.75V4.25C6.84961 3.91863 6.58137 3.65039 6.25 3.65039H4.25ZM13.9541 2.26074C14.9628 2.363 15.75 3.21435 15.75 4.25V4.75L15.7393 4.9541C15.6438 5.89565 14.8957 6.6438 13.9541 6.73926L13.75 6.75H11.75L11.5459 6.73926C10.6043 6.6438 9.8562 5.89565 9.76074 4.9541L9.75 4.75V4.25C9.75 3.21435 10.5372 2.363 11.5459 2.26074L11.75 2.25H13.75L13.9541 2.26074ZM11.75 3.65039C11.4186 3.65039 11.1504 3.91863 11.1504 4.25V4.75C11.1504 5.08137 11.4186 5.34961 11.75 5.34961H13.75C14.0814 5.34961 14.3496 5.08137 14.3496 4.75V4.25C14.3496 3.91863 14.0814 3.65039 13.75 3.65039H11.75Z\"\n fill={fill}\n />\n </svg>\n);\n","import { useTheme } from '@emotion/react';\nimport { Button, Drawer, Theme, useDrawer, Wrapper } from '@ssa-ui-kit/core';\n\nimport { DashboardIcon } from '@shared/icons';\n\nexport type DashboardSelectorDrawerProps = {\n drawer: ReturnType<typeof useDrawer>;\n children?: React.ReactNode;\n};\n\nexport const DashboardSelectorDrawer = ({\n drawer,\n children,\n}: DashboardSelectorDrawerProps) => {\n const theme = useTheme() as Theme;\n return (\n <Drawer.Root store={drawer}>\n <Drawer.Content\n css={{ width: '400px', padding: '24px 32px', zIndex: 10 }}>\n <Wrapper direction=\"column\" alignItems=\"start\" css={{ height: '100%' }}>\n <Drawer.Header css={{ width: '100%' }}>\n <Drawer.Title>Dashboard Selector</Drawer.Title>\n <Button\n variant=\"secondary\"\n css={{\n ':hover': {\n background: theme.colors.greyDropdownFocused,\n },\n width: '36px',\n height: '36px',\n padding: '8px',\n background: theme.colors.greyDropdownFocused,\n }}\n onClick={() => drawer.toggle(false)}>\n <DashboardIcon fill={theme.colors.white} />\n </Button>\n </Drawer.Header>\n {children}\n </Wrapper>\n </Drawer.Content>\n </Drawer.Root>\n );\n};\n","import { SVGProps } from '@ssa-ui-kit/core';\n\nexport const SidebarIcon = ({\n fill = '#2B2D31',\n size = 18,\n tooltip = 'Sidebar',\n ...props\n}: SVGProps) => (\n <svg\n width={`${size}px`}\n height={`${size}px`}\n viewBox=\"0 0 18 18\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}>\n <title>{tooltip}</title>\n <path\n d=\"M12.7061 2.25488C14.8194 2.36211 16.5 4.10996 16.5 6.25V11.75L16.4951 11.9561C16.3913 14.0012 14.7512 15.6413 12.7061 15.7451L12.5 15.75H5.5L5.29395 15.7451C3.2488 15.6413 1.60865 14.0012 1.50488 11.9561L1.5 11.75V6.25C1.5 4.10996 3.18056 2.36211 5.29395 2.25488L5.5 2.25H12.5L12.7061 2.25488ZM5.5 3.65039C4.06406 3.65039 2.90039 4.81406 2.90039 6.25V11.75C2.90039 13.1859 4.06406 14.3496 5.5 14.3496H10.9248V3.65039H5.5ZM12.3252 14.3496H12.5C13.9359 14.3496 15.0996 13.1859 15.0996 11.75V6.25C15.0996 4.81406 13.9359 3.65039 12.5 3.65039H12.3252V14.3496Z\"\n fill={fill}\n />\n </svg>\n);\n","import { useTheme } from '@emotion/react';\nimport { Button, Drawer, Theme, useDrawer } from '@ssa-ui-kit/core';\n\nimport { SidebarIcon } from '@shared/icons';\n\nexport type PanelSettingsDrawerProps = {\n drawer: ReturnType<typeof useDrawer>;\n children?: React.ReactNode;\n};\n\nexport const PanelSettingsDrawer = ({\n drawer,\n children,\n}: PanelSettingsDrawerProps) => {\n const theme = useTheme() as Theme;\n return (\n <Drawer.Root store={drawer}>\n <Drawer.Overlay>\n <Drawer.Content\n css={{ maxWidth: '400px', padding: '24px 32px', zIndex: 10 }}>\n <Drawer.Header css={{ width: '100%' }}>\n <Drawer.Title>Panel Settings</Drawer.Title>\n <Button\n variant=\"secondary\"\n css={{\n ':hover': {\n background: theme.colors.greyDropdownFocused,\n },\n width: '36px',\n height: '36px',\n padding: '8px',\n background: theme.colors.greyDropdownFocused,\n }}\n onClick={() => drawer.toggle(false)}>\n <SidebarIcon fill={theme.colors.white} />\n </Button>\n </Drawer.Header>\n {children}\n </Drawer.Content>\n </Drawer.Overlay>\n </Drawer.Root>\n );\n};\n","import { QueryOptions, useQuery } from '@shared/query';\nimport { InfraDashTransport, useTransport } from '@shared/transport';\n\ntype Options = QueryOptions & {\n transport?: InfraDashTransport;\n};\n\nexport const useGrafanaDashboards = (options?: Options) => {\n const { transport, ...queryOptions } = options || {};\n const _transport = useTransport(transport);\n const result = useQuery(\n ['grafana-dashboards'],\n async (signal) => {\n return await _transport.getGrafanaDashboards(signal);\n },\n queryOptions,\n );\n return result;\n};\n","import { useQuery, QueryOptions } from '@shared/query';\nimport { InfraDashTransport, useTransport } from '@shared/transport';\n\ntype Options = QueryOptions & {\n transport?: InfraDashTransport;\n};\n\nexport const useGrafanaPanels = (\n grafanaDashboardUid: string,\n options?: Options,\n) => {\n const { transport, ...queryOptions } = options || {};\n const _transport = useTransport(transport);\n const result = useQuery(\n ['grafana-panels', grafanaDashboardUid],\n async (signal) => {\n const panels = await _transport.getGrafanaPanels(\n grafanaDashboardUid,\n signal,\n );\n return panels.flatMap((panel) => {\n if (!panel.panelSchema || panel.panelSchema.type === 'row') {\n return panel.subPanels || [];\n }\n return panel;\n });\n },\n queryOptions,\n );\n return result;\n};\n","import { useState } from 'react';\nimport { css } from '@emotion/css';\nimport { useTheme } from '@emotion/react';\nimport {\n Accordion,\n AccordionGroup,\n AccordionGroupContextProvider,\n AccordionViewProps,\n Button,\n Icon,\n Input,\n ProgressCircle,\n Theme,\n Wrapper,\n} from '@ssa-ui-kit/core';\n\nimport { useGrafanaDashboards } from '@entities/grafana-dashboard';\nimport { useGrafanaPanels } from '@entities/grafana-panel';\nimport { ErrorIcon } from '@shared/icons';\nimport { GrafanaDashboard, GrafanaPanel } from '@shared/grafana';\nimport { useInfraDashContext } from '@shared/context';\n\ntype ExternalPanelListProps = {\n dashboard: GrafanaDashboard;\n panels: GrafanaPanel[];\n isLoaded: boolean;\n error: Error | null;\n onPanelClick?: (dashboard: GrafanaDashboard, panel: GrafanaPanel) => void;\n};\n\nconst ExternalPanelList = ({\n dashboard,\n panels,\n isLoaded,\n error,\n onPanelClick,\n}: ExternalPanelListProps) => {\n const theme = useTheme() as Theme;\n if (!isLoaded) {\n return (\n <Wrapper\n direction=\"column\"\n css={{ justifyContent: 'center', height: '100%', padding: '8px' }}>\n <ProgressCircle\n classnames={{\n inner: css(`\n background: none !important;\n `),\n outer: css(`\n background: none !important;\n border: 12px solid ${theme.colors.greyLighter};\n `),\n }}\n currentValue={3}\n max={10}\n size={20}\n color=\"blue\"\n mode=\"infinite\"\n />\n </Wrapper>\n );\n }\n if (error) {\n return (\n <Wrapper\n direction=\"column\"\n css={{ justifyContent: 'center', height: '100%' }}>\n <ErrorIcon />\n <p>Failed to load panels for {dashboard.title}</p>\n </Wrapper>\n );\n }\n if (!panels.length) {\n return (\n <Wrapper\n direction=\"column\"\n css={{ justifyContent: 'center', height: '100%' }}>\n <ErrorIcon />\n <p>No panels found for {dashboard.title}</p>\n </Wrapper>\n );\n }\n\n return (\n <>\n {panels.map((panel) => (\n <Button\n key={panel.id}\n variant=\"tertiary\"\n className={css`\n width: 100%;\n min-height: 34px;\n gap: 8px;\n padding: 8px 14px 8px 34px !important;\n justify-content: space-between;\n text-align: left;\n & svg {\n & path {\n stroke: ${theme.colors.greyDarker};\n stroke-width: 1.4px;\n }\n }\n `}\n onClick={() => onPanelClick?.(dashboard, panel)}>\n {panel.title}\n <Icon name=\"plus\" size={12} />\n </Button>\n ))}\n </>\n );\n};\n\ntype DashboardAccordionItemProps = {\n dashboard: GrafanaDashboard;\n search: string;\n onPanelClick?: (dashboard: GrafanaDashboard, panel: GrafanaPanel) => void;\n} & Partial<AccordionViewProps>;\n\nconst DashboardAccordionItem = ({\n dashboard,\n search,\n onPanelClick,\n ...accordionProps\n}: DashboardAccordionItemProps) => {\n const theme = useTheme() as Theme;\n const { panelRegistry } = useInfraDashContext();\n const panelsQuery = useGrafanaPanels(dashboard.id);\n\n const loadedPanels = panelsQuery.data ?? [];\n const availablePanels = loadedPanels.filter((panel) => {\n if (!panel.panelSchema?.type) {\n return false;\n }\n if (search && !panel.title.toLowerCase().includes(search.toLowerCase())) {\n return false;\n }\n const availableComponents = panelRegistry.findPanelConfigsByType(\n panel.panelSchema.type,\n );\n return availableComponents.length > 0;\n });\n\n if (search && panelsQuery.isLoaded && !availablePanels.length) {\n return null;\n }\n\n return (\n <Accordion\n key={dashboard.id}\n id={dashboard.id}\n title={dashboard.title}\n className={css`\n padding: 0 !important;\n align-items: start !important;\n `}\n renderTitle={({ title, isOpened, onClick }) => (\n <Button\n onClick={onClick}\n variant=\"tertiary\"\n className={css`\n width: 100%;\n min-height: 34px;\n gap: 8px;\n padding: 8px 14px !important;\n text-align: left;\n & svg {\n & path {\n stroke: ${theme.colors.greyDarker};\n stroke-width: 1.4px;\n }\n }\n `}\n startIcon={\n isOpened ? (\n <Icon name=\"carrot-down\" size={12} />\n ) : (\n <Icon name=\"carrot-right\" size={12} />\n )\n }>\n {title}\n </Button>\n )}\n renderContent={({ isOpened }) => (\n <div\n css={{\n width: '100%',\n display: isOpened ? 'block' : 'none',\n fontWeight: 500,\n fontSize: '14px',\n }}>\n <ExternalPanelList\n panels={availablePanels}\n isLoaded={panelsQuery.isLoaded}\n error={panelsQuery.error}\n dashboard={dashboard}\n onPanelClick={onPanelClick}\n />\n </div>\n )}\n {...accordionProps}\n />\n );\n};\n\nexport type ExternalDashboardsListProps = {\n onPanelClick?: (dashboard: GrafanaDashboard, panel: GrafanaPanel) => void;\n} & React.HTMLAttributes<HTMLDivElement>;\n\nexport const ExternalDashboardsList = ({\n onPanelClick,\n ...divProps\n}: ExternalDashboardsListProps) => {\n const theme = useTheme() as Theme;\n const [search, setSearch] = useState('');\n const dashboardsQuery = useGrafanaDashboards();\n\n if (!dashboardsQuery.isLoaded) {\n return (\n <Wrapper\n direction=\"column\"\n css={{ justifyContent: 'center', height: '100%' }}\n {...divProps}>\n <ProgressCircle\n classnames={{\n inner: css(`\n background: none !important;\n `),\n outer: css(`\n background: none !important;\n border: 12px solid ${theme.colors.greyLighter};\n `),\n }}\n currentValue={3}\n max={10}\n size={64}\n color=\"blue\"\n mode=\"infinite\"\n />\n </Wrapper>\n );\n }\n if (dashboardsQuery.error) {\n return (\n <Wrapper\n direction=\"column\"\n css={{ justifyContent: 'center', height: '100%' }}\n {...divProps}>\n <ErrorIcon />\n <p>Failed to load external dashboards</p>\n </Wrapper>\n );\n }\n if (!dashboardsQuery.data.length) {\n return (\n <Wrapper\n direction=\"column\"\n css={{ justifyContent: 'center', height: '100%' }}\n {...divProps}>\n <ErrorIcon />\n <p>No external dashboards found</p>\n </Wrapper>\n );\n }\n\n return (\n <>\n <Input\n name=\"panel-search\"\n placeholder=\"Search...\"\n inputProps={{\n value: search,\n onChange: (e) => setSearch(e.target.value),\n }}\n css={{ marginTop: '24px' }}\n />\n <AccordionGroupContextProvider>\n <AccordionGroup\n size=\"small\"\n css={{ overflow: 'auto', width: '100%' }}\n {...divProps}>\n {dashboardsQuery.data.map((dashboard) => (\n <DashboardAccordionItem\n // id is required by AccordionGroup logic\n id={dashboard.id}\n key={dashboard.id}\n dashboard={dashboard}\n search={search}\n onPanelClick={onPanelClick}\n />\n ))}\n </AccordionGroup>\n </AccordionGroupContextProvider>\n </>\n );\n};\n","import { Dashboard } from '@shared/dashboard';\nimport { GrafanaDashboard, GrafanaPanel } from '@shared/grafana';\nimport { matchPanelDataSource, Panel } from '@shared/panel';\nimport { PanelRegistry } from '@shared/panelRegistry';\n\nexport type AppendPanelParams = {\n dashboard: Dashboard;\n panelRegistry: PanelRegistry;\n source: {\n type: 'grafana';\n grafanaDashboard: GrafanaDashboard;\n grafanaPanel: GrafanaPanel;\n };\n};\nexport const appendPanel = (params: AppendPanelParams) => {\n const { dashboard, panelRegistry, source } = params;\n const nextY = dashboard.panels.reduce(\n (maxY, { panelDefinition: { gridPos } }) =>\n Math.max(maxY, gridPos.y + gridPos.h),\n 0,\n );\n\n const newPanel = matchPanelDataSource(source.type, {\n grafana: () => {\n const { grafanaDashboard, grafanaPanel } = source;\n if (!grafanaPanel.panelSchema) {\n return; // no schema, cannot append panel\n }\n const [defaultComponentConfig] = panelRegistry.findPanelConfigsByType(\n grafanaPanel.panelSchema.type,\n );\n const newPanel: Panel = {\n id: -Date.now(), // use a negative ID to indicate a new panel\n source: {\n type: 'grafana',\n dashboardUid: grafanaDashboard.id,\n panelId: grafanaPanel.id,\n },\n panelDefinition: {\n version: 1,\n component: {\n id: defaultComponentConfig.componentId,\n props: {},\n },\n gridPos: {\n x: 0,\n y: nextY,\n w: 12,\n h: 6,\n },\n },\n panelSchema: grafanaPanel.panelSchema,\n title: grafanaPanel.title,\n };\n return newPanel;\n },\n });\n\n if (!newPanel) {\n return dashboard; // no new panel created, return original dashboard\n }\n\n return {\n ...dashboard,\n panels: [...(dashboard.panels || []), newPanel],\n };\n};\n\nexport type UpdatePanelParams = {\n dashboard: Dashboard;\n panel: Panel;\n};\n\nexport const updatePanel = ({ dashboard, panel }: UpdatePanelParams) => {\n const newPanels = dashboard.panels.map((p) =>\n p.id === panel.id ? { ...p, ...panel } : p,\n );\n return {\n ...dashboard,\n panels: newPanels,\n };\n};\n\nexport type RemovePanelParams = {\n dashboard: Dashboard;\n panel: Panel;\n};\n\nexport const removePanel = ({ dashboard, panel }: RemovePanelParams) => {\n const newPanels = dashboard.panels.filter((p) => p.id !== panel.id);\n return {\n ...dashboard,\n panels: newPanels,\n };\n};\n\nexport type ApplyNewLayoutParams = {\n dashboard: Dashboard;\n newLayout: ReactGridLayout.Layout[];\n};\n\nexport const applyNewLayout = ({\n dashboard,\n newLayout,\n}: ApplyNewLayoutParams) => {\n const newLayoutMap = newLayout.reduce(\n (map, { i, x, y, w, h }) => ({\n ...map,\n [i]: { x, y, w, h },\n }),\n {} as Record<string, Omit<ReactGridLayout.Layout, 'i'>>,\n );\n\n const newDashboard = {\n ...dashboard,\n panels: dashboard.panels.map((panel) => {\n const newGridPos = newLayoutMap[panel.id.toString()];\n if (!newGridPos) {\n throw new Error(`New position for the panel ${panel.id} not found`);\n }\n return {\n ...panel,\n panelDefinition: {\n ...panel.panelDefinition,\n gridPos: newGridPos,\n },\n };\n }),\n };\n\n return newDashboard;\n};\n","import { useTheme } from '@emotion/react';\nimport {\n Button,\n Icon,\n Popover,\n PopoverContent,\n PopoverTrigger,\n Theme,\n usePopoverContext,\n} from '@ssa-ui-kit/core';\n\nimport { Panel } from '@shared/panel';\n\nexport type PanelControlProps = {\n panel: Panel;\n onRemove?: (panel: Panel) => void;\n onEdit?: (panel: Panel) => void;\n};\n\nexport const PanelControlContent = ({\n panel,\n onEdit,\n onRemove,\n}: PanelControlProps) => {\n const theme = useTheme() as Theme;\n const popover = usePopoverContext();\n\n const handleClose = () => {\n popover.setOpen(false);\n };\n\n return (\n <PopoverContent\n css={{\n gap: 15,\n alignItems: 'start',\n border: `2px solid ${theme.colors.greyLighter}`,\n backgroundColor: theme.colors.white,\n borderRadius: 15,\n padding: 15,\n }}>\n <Button\n variant=\"tertiary\"\n css={{ gap: 5, width: '100%' }}\n onClick={() => {\n onEdit?.(panel);\n handleClose();\n }}\n startIcon={<Icon name=\"edit\" size={14} />}>\n Edit\n </Button>\n <Button\n variant=\"tertiary\"\n css={{ gap: 5, width: '100%' }}\n onClick={() => {\n onRemove?.(panel);\n handleClose();\n }}\n startIcon={<Icon name=\"bin\" size={14} />}>\n Remove\n </Button>\n </PopoverContent>\n );\n};\n\nexport const PanelControl = (props: PanelControlProps) => {\n return (\n <Popover>\n <PopoverTrigger variant=\"tertiary\" css={{ marginRight: 5, marginTop: 5 }}>\n <Icon name=\"more-vertical\" size={14} />\n </PopoverTrigger>\n <PanelControlContent {...props} />\n </Popover>\n );\n};\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@rjsf/validator-ajv8\");","import { useEffect, useRef, useState } from 'react';\nimport { css } from '@emotion/css';\nimport {\n Button,\n JsonSchema,\n Typeahead,\n TypeaheadOption,\n} from '@ssa-ui-kit/core';\nimport validator from '@rjsf/validator-ajv8';\n\nimport { useInfraDashContext } from '@shared/context';\nimport { Panel } from '@shared/panel';\n\nexport type PanelSettingsProps = {\n panel: Panel;\n onChange?: (panel: Panel) => void;\n onSave?: () => void;\n};\n\nexport const PanelSettings = ({\n panel,\n onChange,\n onSave,\n}: PanelSettingsProps) => {\n const { panelRegistry } = useInfraDashContext();\n const [originalPanel, setOriginalPanel] = useState<Panel>(panel);\n const savedRef = useRef(false);\n\n if (panel.id !== originalPanel.id) {\n setOriginalPanel(panel);\n }\n\n // cleanup function to reset the original panel when the component unmounts or panel changes\n useEffect(() => {\n return () => {\n if (savedRef.current) {\n savedRef.current = false;\n return;\n }\n onChange?.(originalPanel);\n };\n }, [originalPanel]);\n\n const panelComponent = panel.panelDefinition.component;\n\n const { propsSchema, uiSchema } = panelRegistry.getPanelConfig(\n panelComponent.id,\n );\n const availableComponents = panelRegistry.findPanelConfigsByType(\n panel.panelSchema.type,\n );\n\n const handleComponentChange = (componentId: string) => {\n const originalComponent = originalPanel.panelDefinition.component;\n const props =\n originalComponent.id === componentId ? originalComponent.props : {};\n\n const newPanel: Panel = {\n ...panel,\n panelDefinition: {\n ...panel.panelDefinition,\n component: { id: componentId, props },\n },\n };\n onChange?.(newPanel);\n };\n\n const handlePropsChange = (props: Record<string, unknown>) => {\n const newPanel: Panel = {\n ...panel,\n panelDefinition: {\n ...panel.panelDefinition,\n component: {\n ...panelComponent,\n props: props,\n },\n },\n };\n onChange?.(newPanel);\n };\n\n const handlePanelSave = () => {\n savedRef.current = true;\n setOriginalPanel(panel);\n onSave?.();\n };\n\n return (\n <>\n <Typeahead\n label=\"Panel Component\"\n wrapperClassName={css`\n margin-top: 20px;\n width: 100% !important;\n `}\n filterOptions={false}\n selectedItems={[panelComponent.id]}\n onChange={(componentId) =>\n handleComponentChange(componentId as string)\n }>\n {availableComponents.map((component) => (\n <TypeaheadOption\n key={component.componentId}\n value={component.componentId}\n label={component.name}>\n {component.name}\n </TypeaheadOption>\n ))}\n </Typeahead>\n {propsSchema && (\n <JsonSchema.Form\n idPrefix=\"infra-dash-panel-settings\"\n onChange={({ formData }) =>\n handlePropsChange(formData as Record<string, unknown>)\n }\n css={{ marginTop: '20px' }}\n formData={panelComponent.props}\n schema={propsSchema}\n uiSchema={{\n 'ui:submitButtonOptions': { norender: true },\n ...uiSchema,\n }}\n validator={validator}\n />\n )}\n <Button\n css={{ marginTop: '20px' }}\n variant=\"info\"\n onClick={handlePanelSave}>\n Save\n </Button>\n </>\n );\n};\n","import { useEffect, useState } from 'react';\n\nimport ReactGridLayout from 'react-grid-layout';\nimport { ErrorBoundary } from 'react-error-boundary';\nimport { Button, Checkbox, Input, useDrawer, Wrapper } from '@ssa-ui-kit/core';\nimport { useUncontrolled } from '@ssa-ui-kit/hooks';\n\nimport {\n DashboardPanelGrid,\n DashboardPanelGridProps,\n} from '@features/DashboardPanelGrid';\nimport {\n useCreateDashboard,\n useDashboard,\n useUpdateDashboard,\n} from '@entities/dashboard';\nimport { PeriodSelector } from '@components/PeriodSelector';\nimport { DashboardError } from '@components/DashboardError';\nimport { LoadingDashboard } from '@components/LoadingDashboard';\nimport { GrafanaDashboard, GrafanaPanel } from '@shared/grafana';\nimport { Dashboard } from '@shared/dashboard';\nimport { DashboardIcon } from '@shared/icons';\nimport { Panel, PANEL_DATA_SOURCE } from '@shared/panel';\nimport {\n InfraDashPanelDataPeriodProvider,\n useInfraDashContext,\n useInfraDashPanelDataPeriod,\n UseInfraDashPanelDataPeriodOptions,\n} from '@shared/context';\n\nimport { DashboardSelectorDrawer } from './components/DashboardSelectorDrawer';\nimport { PanelSettingsDrawer } from './components/PanelSettingsDrawer';\nimport { ExternalDashboardsList } from './components/ExternalDashboardsList';\nimport {\n appendPanel,\n applyNewLayout,\n removePanel,\n updatePanel,\n} from './helpers';\nimport { PanelControl } from './components/PanelControl';\nimport { PanelSettings } from './components/PanelSettings';\n\nexport type DashboardEditorProps = {\n dashboard?: Dashboard;\n defaultDashboard?: Dashboard;\n gridProps?: DashboardPanelGridProps;\n onChange?: (dashboard: Dashboard) => void;\n onSaved?: (dashboard: Dashboard) => void;\n onCreate?: () => void;\n onError?: (error: Error) => void;\n} & Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange' | 'onError'>;\n\nexport const DashboardEditorInternal = ({\n dashboard: controlledDashboard,\n defaultDashboard,\n gridProps,\n onChange,\n onSaved,\n onCreate,\n onError,\n ...divProps\n}: DashboardEditorProps) => {\n const [selectedPanelId, setSelectedPanelId] = useState<number | null>(null);\n const { panelRegistry } = useInfraDashContext();\n const dashboardsSelectorDrawer = useDrawer({});\n const panelSettingsDrawer = useDrawer({\n position: 'right',\n onOpenChange: (open) => {\n if (!open && selectedPanelId !== null) {\n setSelectedPanelId(null);\n }\n },\n });\n const [dashboard, setDashboard] = useUncontrolled({\n value: controlledDashboard,\n defaultValue: defaultDashboard,\n finalValue: {\n dashboardDefinition: { version: 1 },\n id: -1,\n panels: [],\n published: false,\n title: 'New Dashboard',\n },\n onChange,\n });\n\n useEffect(() => {\n // if the default dashboard changes, update the current dashboard\n if (defaultDashboard && dashboard.id !== defaultDashboard.id) {\n setDashboard(defaultDashboard);\n }\n }, [dashboard.id, defaultDashboard?.id]);\n\n const { mutate: updateDashboard, isLoading: isUpdating } = useUpdateDashboard(\n dashboard.id,\n );\n const { mutate: createDashboard, isLoading: isCreating } =\n useCreateDashboard();\n\n const handleAddPanel = (\n grafanaDashboard: GrafanaDashboard,\n grafanaPanel: GrafanaPanel,\n ) => {\n const newDashboard = appendPanel({\n dashboard,\n panelRegistry,\n source: {\n type: PANEL_DATA_SOURCE.GRAFANA,\n grafanaDashboard,\n grafanaPanel,\n },\n });\n setDashboard(newDashboard);\n };\n\n const handleLayoutChange = (newLayout: ReactGridLayout.Layout[]) => {\n setDashboard(applyNewLayout({ dashboard, newLayout }));\n };\n\n const handlePanelEdit = (panel: Panel) => {\n setSelectedPanelId(panel.id);\n panelSettingsDrawer.toggle(true);\n };\n\n const handlePanelUpdate = (panel: Panel) => {\n setDashboard(updatePanel({ dashboard, panel }));\n };\n\n const handlePanelRemove = (panel: Panel) => {\n setDashboard(removePanel({ dashboard, panel }));\n };\n\n const handlePersistDashboard = () => {\n if (dashboard.id > 0) {\n updateDashboard(dashboard)\n .then(() => onSaved?.(dashboard))\n .catch((error) => onError?.(error));\n } else {\n createDashboard(dashboard)\n .then(() => onCreate?.())\n .catch((error) => onError?.(error));\n }\n };\n\n const selectedPanel =\n selectedPanelId !== null\n ? dashboard.panels.find((p) => p.id === selectedPanelId)\n : null;\n\n const cannotPersist = isCreating || isUpdating || !dashboard.panels.length;\n\n return (\n <Wrapper\n alignItems=\"start\"\n css={{ height: '100%', position: 'relative' }}\n {...divProps}>\n <DashboardSelectorDrawer drawer={dashboardsSelectorDrawer}>\n <ExternalDashboardsList\n css={{ marginTop: '20px' }}\n onPanelClick={handleAddPanel}\n />\n </DashboardSelectorDrawer>\n <Wrapper\n direction=\"column\"\n alignItems=\"start\"\n css={{ flexGrow: 1, padding: '24px 32px', height: '100%' }}>\n <Wrapper css={{ gap: '24px' }}>\n {!dashboardsSelectorDrawer.opened &&\n !dashboardsSelectorDrawer.transition.isMounted && (\n <Button\n variant=\"secondary\"\n css={{ width: '36px', height: '36px', padding: '8px' }}\n onClick={() => dashboardsSelectorDrawer.toggle(true)}>\n <DashboardIcon />\n </Button>\n )}\n <h2\n css={{\n flexShrink: 0,\n fontWeight: 600,\n fontSize: '20px',\n textAlign: 'center',\n }}>\n Dashboard Editor\n </h2>\n <Input\n name=\"dashboard-name\"\n placeholder=\"Dashboard Name\"\n inputProps={{\n value: dashboard.title,\n onChange: (e) =>\n setDashboard({ ...dashboard, title: e.target.value }),\n }}\n css={{ maxWidth: '250px' }}\n />\n <Checkbox\n text=\"Publish\"\n initialState={dashboard.published}\n onChange={(published) => setDashboard({ ...dashboard, published })}\n />\n <PeriodSelector />\n <Button\n variant=\"info\"\n css={{ height: '46px' }}\n isDisabled={cannotPersist}\n onClick={handlePersistDashboard}>\n {dashboard.id > 0 ? 'Save' : 'Create'}\n </Button>\n </Wrapper>\n <DashboardPanelGrid\n resizable\n draggable\n dashboard={dashboard}\n css={{ marginTop: '20px', overflow: 'auto', height: '100%' }}\n onLayoutChange={handleLayoutChange}\n onDragStart={() => panelSettingsDrawer.toggle(false)}\n onResizeStart={() => panelSettingsDrawer.toggle(false)}\n renderPanelControl={(panel) => (\n <PanelControl\n panel={panel}\n onEdit={() => handlePanelEdit(panel)}\n onRemove={() => handlePanelRemove(panel)}\n />\n )}\n {...gridProps}\n />\n </Wrapper>\n <PanelSettingsDrawer drawer={panelSettingsDrawer}>\n {selectedPanel && (\n <PanelSettings\n panel={selectedPanel}\n onChange={handlePanelUpdate}\n onSave={() => panelSettingsDrawer.toggle(false)}\n />\n )}\n </PanelSettingsDrawer>\n </Wrapper>\n );\n};\n\nexport const DashboardEditor = ({\n dashboardId,\n ...props\n}: DashboardEditorProps & {\n dashboardId?: number;\n} & UseInfraDashPanelDataPeriodOptions) => {\n const { dashboard, defaultDashboard } = props;\n\n const dashboardById = useDashboard(dashboardId ?? -1, {\n enabled: !!dashboardId && !dashboard && !defaultDashboard,\n });\n\n const DashboardWrapper: React.FC<DashboardEditorProps> = (editorProps) => {\n const panelDataPeriod = useInfraDashPanelDataPeriod({\n ...props,\n });\n\n return (\n <InfraDashPanelDataPeriodProvider value={panelDataPeriod}>\n <ErrorBoundary\n fallback={<DashboardError>Something went wrong</DashboardError>}>\n <DashboardEditorInternal {...editorProps} />\n </ErrorBoundary>\n </InfraDashPanelDataPeriodProvider>\n );\n };\n\n if (!dashboardId) {\n return <DashboardWrapper {...props} />;\n }\n if (!dashboardById.isLoaded) {\n return <LoadingDashboard />;\n }\n if (dashboardById.error) {\n return <DashboardError />;\n }\n return <DashboardWrapper {...props} defaultDashboard={dashboardById.data} />;\n};\n","export * from './DashboardEditor';\n","export const tryCatch = async <T, E = Error>(promise: T | Promise<T>) => {\n try {\n const data = await promise;\n return [null, data] as const;\n } catch (error) {\n return [error as E, null] as const;\n }\n};\n","import { Dashboard } from '../dashboard';\nimport { tryCatch } from '../exception';\nimport { GrafanaDashboard, GrafanaPanel, GrafanaPanelData } from '../grafana';\nimport {\n CreateDashboardPayload,\n InfraDashTransport,\n UpdateDashboardPayload,\n} from './baseTransport';\n\nexport type RestInfraDashTransportConfig = {\n baseUrl: string;\n authMiddleware?: (request: Request) => Promise<Request> | Request;\n unwrapResponse?: <T>(response: unknown) => Promise<T> | T;\n};\n\nexport class RestInfraDashTransport implements InfraDashTransport {\n protected baseUrl: string;\n protected authMiddleware?: (request: Request) => Promise<Request> | Request;\n protected unwrapResponse?: <T>(response: unknown) => Promise<T> | T;\n\n constructor({\n baseUrl,\n authMiddleware,\n unwrapResponse,\n }: RestInfraDashTransportConfig) {\n if (!baseUrl) {\n throw new Error('Base URL is required for RestInfraDashTransport');\n }\n this.baseUrl = baseUrl;\n this.authMiddleware = authMiddleware;\n this.unwrapResponse = unwrapResponse;\n }\n\n getUrl(path: string): string {\n return `${this.baseUrl}${path}`;\n }\n\n async applyMiddlewares(request: Request) {\n if (this.authMiddleware) {\n return await this.authMiddleware(request);\n }\n return request;\n }\n\n // TODO: add validation schema support\n protected async makeRequest<T = unknown>(\n request: Request,\n parseResponse = true,\n ): Promise<T> {\n const finalizedRequest = await this.applyMiddlewares(request);\n const [error, response] = await tryCatch(fetch(finalizedRequest));\n if (error || !response.ok) {\n throw new Error(\n `Request ${finalizedRequest.url} failed: ${error?.message ?? response?.statusText}`,\n );\n }\n if (!parseResponse) {\n return response as unknown as T;\n }\n const json = await response.json();\n let result = json as T;\n if (this.unwrapResponse) {\n result = await this.unwrapResponse<T>(json);\n }\n return result;\n }\n\n async getGrafanaDashboards(signal?: AbortSignal) {\n const request = new Request(this.getUrl('/grafana/dashboards'), {\n method: 'GET',\n signal,\n });\n return await this.makeRequest<GrafanaDashboard[]>(request);\n }\n\n async getGrafanaPanels(grafanaDashboardUid: string, signal?: AbortSignal) {\n const request = new Request(\n this.getUrl(`/grafana/dashboards/${grafanaDashboardUid}`),\n {\n method: 'GET',\n signal,\n },\n );\n return await this.makeRequest<GrafanaPanel[]>(request);\n }\n\n async getGrafanaPanelData(\n {\n dashboardUid,\n panelId,\n period,\n }: {\n dashboardUid: string;\n panelId: number;\n period?: number;\n },\n signal?: AbortSignal,\n ) {\n const request = new Request(\n this.getUrl(\n `/grafana/dashboards/${dashboardUid}/panel/${panelId}?period=${period ?? 0}`,\n ),\n {\n method: 'POST',\n signal,\n },\n );\n return await this.makeRequest<GrafanaPanelData>(request);\n }\n\n async getDashboards(signal?: AbortSignal) {\n const request = new Request(this.getUrl(`/dashboards`), {\n method: 'GET',\n signal,\n });\n return await this.makeRequest<Pick<Dashboard, 'id' | 'title'>[]>(request);\n }\n\n async getPublishedDashboards(signal?: AbortSignal) {\n const request = new Request(this.getUrl(`/dashboards/published`), {\n method: 'GET',\n signal,\n });\n return await this.makeRequest<Pick<Dashboard, 'id' | 'title'>[]>(request);\n }\n\n async getDashboard(dashboardUid: number, signal?: AbortSignal) {\n const request = new Request(this.getUrl(`/dashboards/${dashboardUid}`), {\n method: 'GET',\n signal,\n });\n return await this.makeRequest<Dashboard>(request);\n }\n\n async createDashboard(payload: CreateDashboardPayload, signal?: AbortSignal) {\n const request = new Request(this.getUrl(`/dashboards`), {\n method: 'POST',\n body: JSON.stringify(payload),\n headers: {\n 'Content-Type': 'application/json',\n },\n signal,\n });\n return await this.makeRequest(request, false);\n }\n\n async updateDashboard(payload: UpdateDashboardPayload, signal?: AbortSignal) {\n const { dashboardId, ...body } = payload;\n const request = new Request(this.getUrl(`/dashboards/${dashboardId}`), {\n method: 'POST',\n body: JSON.stringify(body),\n headers: {\n 'Content-Type': 'application/json',\n },\n signal,\n });\n return await this.makeRequest(request, false);\n }\n\n async deleteDashboard(dashboardId: number, signal?: AbortSignal) {\n const request = new Request(this.getUrl(`/dashboards/${dashboardId}`), {\n method: 'DELETE',\n signal,\n });\n return await this.makeRequest(request, false);\n }\n}\n","export * from './baseTransport';\nexport * from './restTransport';\nexport * from './useTransport';\n","export * from './PeriodSelector';\n","import { hashKey, partialMatchKey, QueryKey } from './key';\n\nexport type QueryState<T> =\n | { isLoaded: false; isFetching: boolean; data: undefined; error: null }\n | { isLoaded: true; isFetching: boolean; data: T; error: null }\n | { isLoaded: true; isFetching: boolean; data: undefined; error: Error };\n\ntype Subscriber<T> = (state: QueryState<T>) => void;\n\nexport type Fetcher<T> = (signal: AbortSignal) => Promise<T>;\nexport type QueryOptions = {\n enabled?: boolean;\n};\n\nexport class QueryEntry<T> {\n key: QueryKey;\n fetcher: Fetcher<T>;\n options: QueryOptions;\n state: QueryState<T> = {\n data: undefined,\n error: null,\n isLoaded: false,\n isFetching: false,\n };\n promise: Promise<T | undefined> | null = null;\n subscribers: Set<Subscriber<T>> = new Set();\n\n private controller: AbortController | null = null;\n\n constructor(key: QueryKey, fetcher: Fetcher<T>, options?: QueryOptions) {\n this.key = key;\n this.fetcher = fetcher;\n this.options = { enabled: options?.enabled ?? true };\n }\n\n private notify() {\n // ensure subscribers are notified after the current call stack\n queueMicrotask(() => {\n for (const sub of this.subscribers) {\n sub(this.state);\n }\n });\n }\n\n isActive() {\n return this.subscribers.size && this.options.enabled;\n }\n\n updateEntity(fetcher: Fetcher<T>, options?: QueryOptions): QueryEntry<T> {\n this.fetcher = fetcher;\n this.options = { ...this.options, ...options };\n this.fetch(); // re-trigger fetch with new fetcher\n return this;\n }\n\n fetch() {\n if (!this.options.enabled) {\n if (this.state.isLoaded || this.state.isFetching) {\n this.state = {\n ...this.state,\n data: undefined,\n error: null,\n isLoaded: false,\n isFetching: false,\n };\n this.cancel();\n this.notify();\n }\n return Promise.resolve(this.state.data);\n }\n\n // dedupe in-flight fetches\n if (this.promise && !this.controller?.signal.aborted) {\n return this.promise;\n }\n\n if (this.state.isLoaded && !this.state.isFetching) {\n return Promise.resolve(this.state.data);\n }\n\n this.state = {\n ...this.state,\n isFetching: true,\n };\n this.notify();\n\n this.controller = new AbortController();\n const signal = this.controller.signal;\n\n this.promise = this.fetcher(signal)\n .then((data) => {\n this.state = { data, error: null, isLoaded: true, isFetching: false };\n return data;\n })\n .catch((error) => {\n if (signal.aborted) {\n return undefined;\n }\n this.state = {\n data: undefined,\n error,\n isLoaded: true,\n isFetching: false,\n };\n return undefined;\n })\n .finally(() => {\n this.promise = null;\n this.notify();\n });\n\n return this.promise;\n }\n\n subscribe(sub: Subscriber<T>): () => void {\n this.subscribers.add(sub);\n sub(this.state);\n return () => {\n this.subscribers.delete(sub);\n setTimeout(() => {\n if (!this.subscribers.size) {\n this.cancel();\n }\n });\n };\n }\n\n setData(data: T) {\n this.state = {\n ...this.state,\n isLoaded: true,\n isFetching: false,\n error: null,\n data,\n };\n this.notify();\n }\n\n invalidate(reset = false) {\n if (reset) {\n // if reset is true, we reset the state to initial\n this.state = {\n data: undefined,\n error: null,\n isLoaded: false,\n isFetching: false,\n };\n }\n // kick off a new fetch\n this.state.isFetching = true;\n this.cancel();\n this.fetch();\n }\n\n cancel() {\n if (this.controller) {\n this.controller.abort('Query cancelled');\n this.controller = null;\n }\n }\n}\n\nexport class QueryClient {\n private cache = new Map<string, QueryEntry<unknown>>();\n\n get<T>(key: QueryKey): QueryEntry<T> | undefined {\n return this.cache.get(hashKey(key)) as QueryEntry<T> | undefined;\n }\n\n fetchQuery<T>(\n key: QueryKey,\n fetcher: Fetcher<T>,\n options?: QueryOptions,\n ): QueryEntry<T> {\n const keyHash = hashKey(key);\n let entry = this.cache.get(keyHash) as QueryEntry<T> | undefined;\n if (!entry) {\n entry = new QueryEntry<T>(key, fetcher, options);\n this.cache.set(keyHash, entry as QueryEntry<unknown>);\n }\n entry.fetch(); // trigger network (or return cached in-flight promise)\n return entry;\n }\n\n invalidateQueries({\n key,\n exact,\n reset,\n type = 'all',\n }: {\n key: QueryKey;\n exact?: boolean;\n reset?: boolean;\n type?: 'active' | 'inactive' | 'all';\n }) {\n const matchingEntries: QueryEntry<unknown>[] = [];\n for (const [hash, entry] of this.cache.entries()) {\n if (type !== 'all') {\n const active = entry.isActive();\n if ((type === 'active' && !active) || (type === 'inactive' && active)) {\n continue; // skip entries that don't match the type\n }\n }\n if (exact) {\n if (hash === hashKey(key)) {\n matchingEntries.push(entry);\n }\n } else {\n if (partialMatchKey(entry.key, key)) {\n matchingEntries.push(entry);\n }\n }\n }\n for (const entry of matchingEntries) {\n entry.invalidate(reset);\n }\n }\n\n setQueryData<T>(key: QueryKey, data: T) {\n const keyHash = hashKey(key);\n const existing = this.cache.get(keyHash) as QueryEntry<T> | undefined;\n if (existing) {\n existing.setData(data);\n } else {\n const newEntry = new QueryEntry<T>(key, () => Promise.resolve(data));\n newEntry.setData(data);\n this.cache.set(keyHash, newEntry as QueryEntry<unknown>);\n }\n }\n}\n\nexport const queryClient = new QueryClient();\n","import { hashKey, MutationKey } from './key';\n\nexport type MutationState<T> = {\n data?: T;\n error?: unknown;\n isLoading: boolean;\n};\n\ntype Subscriber<T> = (state: MutationState<T>) => void;\n\nexport type MutationFn<T, V> = (\n variables: V,\n signal: AbortSignal,\n) => Promise<T>;\n\nexport type MutationOptions<T, V> = {\n onSuccess?: (data: T, variables: V) => void;\n onError?: (error: unknown, variables: V) => void;\n onSettled?: (\n error: unknown | undefined,\n data: T | undefined,\n variables: V,\n ) => void;\n};\n\nexport class MutationEntry<T, V> {\n key: MutationKey;\n mutationFn: MutationFn<T, V>;\n options: MutationOptions<T, V> | undefined;\n state: MutationState<T> = {\n data: undefined,\n error: undefined,\n isLoading: false,\n };\n promise: Promise<T | undefined> | null = null;\n subscribers: Set<Subscriber<T>> = new Set();\n\n private controller: AbortController | null = null;\n\n constructor(\n key: MutationKey,\n mutationFn: MutationFn<T, V>,\n options?: MutationOptions<T, V>,\n ) {\n this.key = key;\n this.mutationFn = mutationFn;\n this.options = options;\n }\n\n private notify() {\n for (const sub of this.subscribers) {\n sub(this.state);\n }\n }\n\n updateEntity(\n mutationFn: MutationFn<T, V>,\n options?: MutationOptions<T, V>,\n ): void {\n this.mutationFn = mutationFn;\n if (options !== undefined) {\n this.options = options;\n }\n }\n\n mutate(...args: V extends undefined ? [] : [V]): Promise<T | undefined> {\n const variables = args[0] as V;\n\n // abort any existing in-flight mutation\n if (this.controller) {\n this.controller.abort();\n }\n this.controller = new AbortController();\n const signal = this.controller.signal;\n\n this.state = { ...this.state, isLoading: true };\n this.notify();\n\n const { onSuccess, onError, onSettled } = this.options || {};\n\n this.promise = this.mutationFn(variables, signal)\n .then((data) => {\n this.state = { data, error: undefined, isLoading: false };\n this.notify();\n if (onSuccess) {\n try {\n onSuccess(data, variables);\n } catch (err) {\n console.error('Error in onSuccess callback:', err);\n }\n }\n if (onSettled) {\n try {\n onSettled(undefined, data, variables);\n } catch (err) {\n console.error('Error in onSettled callback (success):', err);\n }\n }\n return data;\n })\n .catch((error) => {\n if (signal.aborted) {\n return undefined;\n }\n this.state = { data: undefined, error, isLoading: false };\n this.notify();\n if (onError) {\n try {\n onError(error, variables);\n } catch (err) {\n console.error('Error in onError callback:', err);\n }\n }\n if (onSettled) {\n try {\n onSettled(error, undefined, variables);\n } catch (err) {\n console.error('Error in onSettled callback (error):', err);\n }\n }\n throw error;\n })\n .finally(() => {\n this.promise = null;\n });\n\n return this.promise;\n }\n\n subscribe(sub: Subscriber<T>): () => void {\n this.subscribers.add(sub);\n sub(this.state);\n return () => {\n this.subscribers.delete(sub);\n };\n }\n\n cancel() {\n if (this.controller) {\n this.controller.abort();\n }\n }\n\n reset() {\n this.state = { data: undefined, error: undefined, isLoading: false };\n this.notify();\n this.cancel();\n }\n}\n\nexport class MutationClient {\n private cache = new Map<string, MutationEntry<unknown, unknown>>();\n\n fetchMutation<T, V>(\n key: MutationKey,\n mutationFn: MutationFn<T, V>,\n options?: MutationOptions<T, V>,\n ): MutationEntry<T, V> {\n const keyHash = hashKey(key);\n let entry = this.cache.get(keyHash) as MutationEntry<T, V> | undefined;\n if (!entry) {\n entry = new MutationEntry<T, V>(key, mutationFn, options);\n this.cache.set(keyHash, entry as MutationEntry<unknown, unknown>);\n }\n return entry;\n }\n}\n\nexport const mutationClient = new MutationClient();\n","import { PanelConfig } from './panel';\n\ntype AnyProps = Record<string, unknown> | undefined;\n\nexport class PanelRegistry {\n private panels: Map<string, PanelConfig<AnyProps>> = new Map();\n\n registerPanel(panelConfig: PanelConfig<AnyProps>) {\n if (this.panels.has(panelConfig.componentId)) {\n throw new Error(\n `Panel with id ${panelConfig.componentId} is already registered.`,\n );\n }\n this.panels.set(panelConfig.componentId, panelConfig);\n }\n\n getPanelConfig(componentId: string) {\n const panel = this.panels.get(componentId);\n if (!panel) {\n throw new Error(`Panel with id ${componentId} is not registered.`);\n }\n return panel;\n }\n\n findPanelConfigsByType(type: string): PanelConfig<AnyProps>[] {\n return Array.from(this.panels.values()).filter((panel) =>\n panel.supportedTypes.includes(type),\n );\n }\n}\n","import { css } from '@emotion/css';\nimport { ProgressCircle, WidgetCard } from '@ssa-ui-kit/core';\n\nexport type LoadingPanelProps = {\n title?: string;\n children?: React.ReactNode;\n};\n\nexport const LoadingPanel = ({ title, children }: LoadingPanelProps) => {\n return (\n <WidgetCard\n title={title}\n contentClassName={css`\n align-items: center !important;\n justify-content: center !important;\n `}>\n <ProgressCircle\n currentValue={3}\n max={10}\n size={64}\n color=\"blue\"\n mode=\"infinite\"\n />\n {children && (\n <div css={{ marginTop: '12px', textAlign: 'center' }}>{children}</div>\n )}\n </WidgetCard>\n );\n};\n","import { useInfraDashPanelDataPeriodContext } from '@shared/context';\nimport { Panel, PANEL_DATA_SOURCE, PanelData } from '@shared/panel';\nimport { QueryOptions, useQuery } from '@shared/query';\nimport { InfraDashTransport, useTransport } from '@shared/transport';\n\ntype Options = QueryOptions & {\n transport?: InfraDashTransport;\n};\n\nexport const usePanelData = (panel: Panel, options: Options = {}) => {\n const _transport = useTransport(options?.transport);\n const { period } = useInfraDashPanelDataPeriodContext();\n const panelSource = panel.source;\n\n const result = useQuery(\n ['panel-data', { panelSource, period }],\n async (signal) => {\n if (panelSource.type === PANEL_DATA_SOURCE.GRAFANA) {\n const { dashboardUid, panelId } = panelSource;\n const data = await _transport.getGrafanaPanelData(\n { dashboardUid, panelId, period },\n signal,\n );\n return { source: PANEL_DATA_SOURCE.GRAFANA, data } satisfies PanelData;\n }\n throw new Error(`Unsupported panel data source: ${panelSource}`);\n },\n options,\n );\n\n return result;\n};\n","import React from 'react';\n\nimport { LoadingPanel } from '@components/LoadingPanel';\nimport { ErrorPanel } from '@components/ErrorPanel';\nimport { Panel, PanelData } from '@shared/panel';\n\nimport { usePanelData } from './usePanelData';\n\ntype WithPanelDataOptions = {\n LoadingComponent?: React.ComponentType<{ title: string }>;\n ErrorComponent?: React.ComponentType<{ title: string }>;\n};\n\ntype InnerProps<D> = {\n panel: Panel;\n title?: string;\n panelData: D;\n};\n\nexport function withPanelData<D extends PanelData>(\n Wrapped: React.ComponentType<InnerProps<D>>,\n { LoadingComponent, ErrorComponent }: WithPanelDataOptions = {},\n): React.FC<Omit<InnerProps<D>, 'panelData'>> {\n type HocProps = Omit<InnerProps<D>, 'panelData'>;\n\n const Enhanced: React.FC<HocProps> = ({\n panel,\n title: providedTitle,\n ...rest\n }) => {\n const title = providedTitle ?? panel.title;\n const query = usePanelData(panel);\n\n if (!query.isLoaded) {\n return LoadingComponent ? (\n <LoadingComponent title={title} />\n ) : (\n <LoadingPanel title={title} />\n );\n }\n if (query.error) {\n return ErrorComponent ? (\n <ErrorComponent title={title} />\n ) : (\n <ErrorPanel title={title} />\n );\n }\n\n const injectedProps: InnerProps<D> = {\n ...rest,\n panel,\n title,\n panelData: query.data as D,\n };\n\n return <Wrapped {...injectedProps} />;\n };\n\n return Enhanced;\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@grafana/data\");","import { getValueFormat } from '@grafana/data';\n\nimport { DataAdapterOptions } from '@shared/dataAdapter';\nimport { GrafanaPanelData } from '@shared/grafana';\n\nexport const grafanaDataAdapter = ({\n panel,\n data,\n}: DataAdapterOptions<GrafanaPanelData>) => {\n const { results } = data.data;\n\n const xIndex = 0;\n const yIndex = 1;\n\n const frames = Object.values(results).flatMap((result) => result.frames);\n const defaultFieldConfig = panel.panelSchema?.fieldConfig?.defaults;\n\n const unit =\n frames[0]?.schema?.fields?.[yIndex]?.config?.unit ??\n defaultFieldConfig?.unit;\n const formattedValue = getValueFormat(unit)(0);\n\n const series = frames.map((frame) => {\n const values = frame?.data?.values ?? [];\n const x = values[xIndex] ?? [];\n const y = values[yIndex] ?? [];\n const yField = frame.schema?.fields?.[yIndex];\n const color = defaultFieldConfig?.color?.fixedColor;\n const name =\n yField?.config?.displayName ??\n yField?.config?.displayNameFromDS ??\n yField?.name ??\n frame.schema?.refId;\n return {\n x: x as number[],\n y: y as number[],\n name,\n marker: {\n color: color,\n },\n selected: true,\n showlegend: true,\n type: 'scatter' as const,\n hovertemplate: `${name}: ${formattedValue.prefix ?? ''}%{y:}${formattedValue.suffix ?? ''}<extra></extra>`,\n };\n });\n\n return {\n series,\n valuePrefix: formattedValue.prefix,\n valueSuffix: formattedValue.suffix,\n };\n};\n","import { BarLineComplexChart } from '@ssa-ui-kit/core';\nimport { useElementSize } from '@ssa-ui-kit/hooks';\n\nimport { withPanelData } from '@entities/panel';\nimport {\n matchPanelDataSource,\n Panel,\n PanelConfig,\n PanelData,\n} from '@shared/panel';\n\nimport { grafanaDataAdapter } from './data-adapters/grafana';\n\nexport type TimeseriesPanelProps = {\n panel: Panel;\n panelData: PanelData;\n /** Optional title for the panel, defaults to panel.title */\n title?: string;\n /** Optional hover format for the x axis */\n xAxisHoverFormat?: string;\n /** Optional label width for the y axis, defaults to 50 */\n labelWidth?: number;\n};\n\nexport const TimeseriesPanel = ({\n panel,\n panelData,\n title: providedTitle,\n xAxisHoverFormat,\n labelWidth = 50,\n}: TimeseriesPanelProps) => {\n const { ref, width } = useElementSize<HTMLDivElement>();\n const title = providedTitle ?? panel.title;\n\n const { series, valuePrefix, valueSuffix } = matchPanelDataSource(\n panelData.source,\n {\n grafana: () => grafanaDataAdapter({ panel, data: panelData.data }),\n },\n );\n\n return (\n <div ref={ref} style={{ width: '100%', height: '100%' }}>\n <BarLineComplexChart\n width=\"100%\"\n height=\"100%\"\n features={['header']}\n systemModeBarButtons={[]}\n cardProps={{\n title,\n }}\n layout={{\n autosize: true,\n width: width,\n margin: { r: labelWidth },\n xaxis: {\n tickmode: 'auto',\n hoverformat: xAxisHoverFormat,\n },\n yaxis2: {\n ticksuffix: valueSuffix,\n tickprefix: valuePrefix,\n tickmode: 'auto',\n },\n }}\n data={series}\n />\n </div>\n );\n};\n\nexport const panelConfig: PanelConfig<TimeseriesPanelProps> = {\n componentId: 'timeseries-default',\n name: 'Timeseries Panel',\n Component: withPanelData(TimeseriesPanel),\n supportedTypes: ['timeseries', 'bargauge'],\n propsSchema: {\n type: 'object',\n properties: {\n title: {\n type: 'string',\n title: 'Panel Title',\n },\n xAxisHoverFormat: {\n type: 'string',\n title: 'X Axis Hover Format',\n default: '%H:%M, %d %b',\n },\n labelWidth: {\n type: 'number',\n title: 'Label Width',\n default: 50,\n },\n },\n },\n uiSchema: {\n title: {\n 'ui:help': 'Override the default panel title',\n 'ui:placeholder': 'Panel Title',\n },\n xAxisHoverFormat: {\n 'ui:help': 'Format for the x-axis hover tooltip',\n 'ui:placeholder': 'X Axis Hover Format (e.g., %H:%M, %d %b)',\n },\n labelWidth: {\n 'ui:help': 'Set the width of the y axis label in pixels',\n 'ui:placeholder': 'Label Width',\n },\n },\n};\n","import { getValueFormat } from '@grafana/data';\n\nimport { DataAdapterOptions } from '@shared/dataAdapter';\nimport { GrafanaPanelData } from '@shared/grafana';\n\nconst inferMinMax = (values: number[], unit?: string) => {\n if (unit === 'percent') {\n return { min: 0, max: 100 };\n }\n if (unit === 'percentunit') {\n return { min: 0, max: 1 };\n }\n if (!values.length) {\n return { min: 0, max: 100 };\n }\n return {\n min: Math.min(...values),\n max: Math.max(...values),\n };\n};\n\nexport const grafanaDataAdapter = ({\n panel,\n data,\n}: DataAdapterOptions<GrafanaPanelData>) => {\n const { results } = data.data;\n\n const yIndex = 1;\n\n const frames = Object.values(results).flatMap((result) => result.frames);\n const defaultFieldConfig = panel.panelSchema?.fieldConfig?.defaults;\n if (frames.length > 1) {\n throw new Error(\n `Expected a single frame for gauge panel, but found ${frames.length} frames.`,\n );\n }\n\n const dataFrame = frames[0];\n const values = (dataFrame?.data?.values?.[yIndex] ?? []) as number[];\n const value = (values?.at(-1) as number) ?? 0;\n const unit =\n dataFrame?.schema?.fields?.[yIndex]?.config?.unit ??\n defaultFieldConfig?.unit;\n const formattedValue = getValueFormat(unit)(value);\n\n const { min, max } = inferMinMax(values, unit);\n\n const thresholds =\n defaultFieldConfig?.thresholds?.steps?.map(({ color, value }) => ({\n color,\n value: value ?? 0,\n })) ?? [];\n\n const segments = thresholds.map((threshold, index) => ({\n color: threshold.color,\n value: thresholds[index + 1]?.value ?? 100, // use next threshold value or default to 100\n }));\n\n return {\n min,\n max,\n thresholds,\n segments,\n value,\n valueSuffix: formattedValue.suffix,\n valuePrefix: formattedValue.prefix,\n };\n};\n","import { GaugeChart } from '@ssa-ui-kit/core';\nimport { css } from '@emotion/css';\n\nimport { withPanelData } from '@entities/panel';\nimport {\n matchPanelDataSource,\n Panel,\n PanelConfig,\n PanelData,\n} from '@shared/panel';\n\nimport { grafanaDataAdapter } from './data-adapters/grafana';\n\nexport type GaugePanelProps = {\n panel: Panel;\n panelData: PanelData;\n /** Optional title for the panel, defaults to panel.title */\n title?: string;\n};\n\nexport const GaugePanel = ({\n panel,\n panelData,\n title: providedTitle,\n}: GaugePanelProps) => {\n const title = providedTitle ?? panel.title;\n const { min, max, value, valuePrefix, valueSuffix, segments } =\n matchPanelDataSource(panelData.source, {\n grafana: () => grafanaDataAdapter({ panel, data: panelData.data }),\n });\n return (\n <GaugeChart\n features={['header']}\n containerProps={{ className: css({ width: '100%', height: '100%' }) }}\n title={title}\n unitLabel={valueSuffix}\n maxValue={max}\n minValue={min}\n minLabel={`${valuePrefix ?? ''}${min}${valueSuffix ?? ''}`}\n maxLabel={`${valuePrefix ?? ''}${max}${valueSuffix ?? ''}`}\n value={value}\n segments={segments}\n />\n );\n};\n\nexport const panelConfig: PanelConfig<GaugePanelProps> = {\n componentId: 'gauge-default',\n name: 'Gauge Panel',\n Component: withPanelData(GaugePanel),\n supportedTypes: ['gauge'],\n propsSchema: {\n type: 'object',\n properties: {\n title: {\n type: 'string',\n title: 'Panel Title',\n },\n },\n },\n uiSchema: {\n title: {\n 'ui:help': 'Override the default panel title',\n 'ui:placeholder': 'Panel Title',\n },\n },\n};\n","import { getValueFormat } from '@grafana/data';\nimport { GaugeBarValueFormatter } from '@ssa-ui-kit/core';\n\nimport { DataAdapterOptions } from '@shared/dataAdapter';\nimport { GrafanaPanelData } from '@shared/grafana';\n\nexport const grafanaDataAdapter = ({\n panel,\n data,\n labelWidth,\n}: DataAdapterOptions<GrafanaPanelData> & { labelWidth: number }) => {\n const panelData = data.data;\n\n const yIndex = 1;\n\n const defaultFieldConfig = panel.panelSchema?.fieldConfig?.defaults;\n\n const thresholds =\n defaultFieldConfig?.thresholds?.steps?.map(({ color, value }) => ({\n color,\n value: value ?? 0,\n })) ?? [];\n\n const frames = Object.values(panelData.results).flatMap(\n (result) => result.frames,\n );\n\n const unit =\n frames[0]?.schema?.fields?.[yIndex]?.config?.unit ??\n defaultFieldConfig?.unit;\n const valueFormat = getValueFormat(unit);\n\n const valueFormatter: GaugeBarValueFormatter = (v, color) => {\n const formattedValue = valueFormat(v);\n return (\n <div\n css={{ color, textAlign: 'right' }}\n style={{ width: `${labelWidth}px` }}>\n {formattedValue.prefix && (\n <span css={{ fontSize: '14px' }}>{formattedValue.prefix}</span>\n )}\n {formattedValue.text}{' '}\n {formattedValue.suffix && (\n <span css={{ fontSize: '14px' }}>{formattedValue.suffix}</span>\n )}\n </div>\n );\n };\n\n const bars = frames\n .map((frame) => {\n const y = frame.data?.values?.[yIndex] ?? [];\n const value = (y.at(-1) as number) ?? 0;\n const yField = frame.schema?.fields?.[yIndex];\n return {\n title:\n yField?.config?.displayName ??\n yField?.config?.displayNameFromDS ??\n yField?.name ??\n frame.schema?.refId,\n value: Number(value.toFixed(2)),\n valueFormatter,\n thresholds,\n };\n })\n .filter((bar) => bar.value !== undefined);\n\n return { bars };\n};\n","import { css } from '@emotion/css';\nimport { BarGaugeChart } from '@ssa-ui-kit/core';\n\nimport { withPanelData } from '@entities/panel';\nimport {\n matchPanelDataSource,\n Panel,\n PanelConfig,\n PanelData,\n} from '@shared/panel';\n\nimport { grafanaDataAdapter } from './data-adapters/grafana';\n\nexport type BarGaugePanelProps = {\n panel: Panel;\n panelData: PanelData;\n /** Optional title for the panel, defaults to panel.title */\n title?: string;\n /** Optional label width for the bar gauge, defaults to 80 */\n labelWidth?: number;\n};\n\nexport const GrafanaBarGaugePanel = ({\n panel,\n panelData,\n title: providedTitle,\n labelWidth = 80,\n}: BarGaugePanelProps) => {\n const title = providedTitle ?? panel.title;\n const { bars } = matchPanelDataSource(panelData.source, {\n grafana: () =>\n grafanaDataAdapter({ panel, data: panelData.data, labelWidth }),\n });\n return (\n <BarGaugeChart\n features={['header']}\n title={title}\n bars={bars}\n widgetCardProps={{\n contentClassName: css({ overflow: 'auto' }),\n }}\n wrapperProps={{\n className: css({ gap: '2px !important' }),\n }}\n />\n );\n};\n\nexport const panelConfig: PanelConfig<BarGaugePanelProps> = {\n componentId: 'bargauge-default',\n name: 'Bar Gauge Panel',\n Component: withPanelData(GrafanaBarGaugePanel),\n supportedTypes: ['bargauge', 'gauge'],\n propsSchema: {\n type: 'object',\n properties: {\n title: {\n type: 'string',\n title: 'Panel Title',\n },\n labelWidth: {\n type: 'number',\n title: 'Label Width',\n default: 80,\n description: 'Width of the label in pixels',\n },\n },\n },\n uiSchema: {\n title: {\n 'ui:help': 'Override the default panel title',\n 'ui:placeholder': 'Panel Title',\n },\n labelWidth: {\n 'ui:help': 'Set the width of the label in pixels',\n 'ui:placeholder': 'Label Width',\n },\n },\n};\n","import { PanelRegistry } from '@shared/panelRegistry';\n\nimport { panelConfig as grafanaTimeseriesPanelConfig } from './TimeseriesPanel';\nimport { panelConfig as grafanaGaugePanelConfig } from './GaugePanel';\nimport { panelConfig as grafanaBarGaugePanelConfig } from './BarGaugePanel';\n\nconst panelRegistry = new PanelRegistry();\npanelRegistry.registerPanel(grafanaTimeseriesPanelConfig);\npanelRegistry.registerPanel(grafanaGaugePanelConfig);\npanelRegistry.registerPanel(grafanaBarGaugePanelConfig);\n\nexport { panelRegistry };\n","import { InfraDashInternalProvider } from '@shared/context';\nimport { PanelRegistry } from '@shared/panelRegistry';\nimport {\n mutationClient,\n MutationClient,\n queryClient,\n QueryClient,\n} from '@shared/query';\nimport { InfraDashTransport } from '@shared/transport';\n\nimport { panelRegistry } from './panels';\n\nexport type InfraDashProviderProps = {\n transport: InfraDashTransport;\n children: React.ReactNode;\n queryClient?: QueryClient;\n mutationClient?: MutationClient;\n panelRegistry?: PanelRegistry;\n};\n\nexport const InfraDashProvider = ({\n children,\n transport,\n queryClient: providedQueryClient,\n mutationClient: providedMutationClient,\n panelRegistry: providedPanelRegistry,\n}: InfraDashProviderProps) => {\n return (\n <InfraDashInternalProvider\n value={{\n transport,\n queryClient: providedQueryClient ?? queryClient,\n mutationClient: providedMutationClient ?? mutationClient,\n panelRegistry: providedPanelRegistry ?? panelRegistry,\n }}>\n {children}\n </InfraDashInternalProvider>\n );\n};\n","export type * from './types/emotion.d';\nexport * from './widgets/DashboardViewer';\nexport * from './widgets/DashboardEditor';\nexport * from './entities/dashboard';\nexport * from './shared/transport';\nexport * from './components/PeriodSelector';\nexport {\n useInfraDashContext,\n useInfraDashPanelDataPeriodContext,\n} from './shared/context';\nexport { useQueryClient, useMutationClient } from './shared/query';\n\nexport * from './provider';\n"],"names":["ErrorIcon","_jsxs","width","height","viewBox","fill","xmlns","children","_jsx","cx","cy","r","fillRule","clipRule","d","id","x1","y1","x2","y2","gradientUnits","stopColor","offset","Wrapper","jsx","jsxs","_ref","process","env","NODE_ENV","name","styles","toString","_EMOTION_STRINGIFIED_CSS_ERROR__","_ref2","DashboardError","direction","css","useTheme","ProgressCircle","LoadingDashboard","theme","classnames","inner","outer","colors","greyLighter","currentValue","max","size","color","mode","hashKey","queryKey","JSON","stringify","partialMatchKey","a","b","Object","keys","every","key","createSafeContext","InfraDashInternalProvider","useInfraDashContext","useCallback","useMemo","useSyncExternalStore","useQueryClient","queryClient","useQuery","fetcher","options","keyHash","entry","fetchQuery","updateEntity","subscribe","onStoreChange","getSnapshot","state","getServerSnapshot","refetch","invalidateQueries","exact","useMutationClient","mutationClient","useMutation","mutationFn","fetchMutation","mutate","args","reset","cancel","data","error","isLoading","useTransport","transport","contextTransport","useDashboards","queryOptions","_transport","result","signal","getDashboards","useDashboard","dashboardId","getDashboard","usePublishedDashboards","getPublishedDashboards","useCreateDashboard","mutationOptions","payload","panels","map","panel","panelDefinition","source","dashboardsUid","Set","dashboardUid","Error","createDashboard","title","published","dashboardDefinition","useUpdateDashboard","updateDashboard","useDeleteDashboard","_","deleteDashboard","PANEL_DATA_SOURCE","GRAFANA","matchPanelDataSource","handlers","grafana","PANEL_DATA_PERIOD","LAST_HOUR","LAST_6_HOURS","LAST_24_HOURS","LAST_7_DAYS","LAST_30_DAYS","useUncontrolled","useInfraDashPanelDataPeriod","defaultPeriod","period","providedPeriod","onPeriodChange","changePeriod","value","defaultValue","finalValue","onChange","InfraDashPanelDataPeriodProvider","useInfraDashPanelDataPeriodContext","BasePanel","alignItems","WidgetCard","ErrorPanel","contentClassName","forwardRef","useEffect","useElementSize","useMinMDMediaQuery","GridLayout","ErrorBoundary","_ref3","DashboardPanelGrid","dashboard","header","cols","rowHeight","draggable","resizable","refetchIntervalMs","onLayoutChange","onDragStart","onResizeStart","renderPanelControl","divProps","ref","isMinMD","panelRegistry","type","intervalId","setInterval","clearInterval","sortedPanels","sort","aPos","gridPos","bPos","y","x","layout","index","i","h","w","renderPanel","panelConfig","getPanelConfig","component","fallback","Component","props","panelSchema","_header","autoSize","containerPadding","margin","isDraggable","isResizable","undefined","GridItem","onMouseDown","e","stopPropagation","DashboardViewer","dashboardById","enabled","DashboardWrapper","panelDataPeriod","isLoaded","DropdownOption","Dropdown","CustomOption","_styled","target","label","isActive","blueRoyal12","white","PeriodSelector","handlePeriodSelect","items","selectedItem","find","item","grey","greyDarker","greyDarker80","blueRoyal","DashboardIcon","tooltip","_css","Button","Drawer","DashboardSelectorDrawer","drawer","Root","store","Content","Header","Title","variant","background","greyDropdownFocused","padding","onClick","toggle","SidebarIcon","PanelSettingsDrawer","Overlay","useGrafanaDashboards","getGrafanaDashboards","useGrafanaPanels","grafanaDashboardUid","getGrafanaPanels","flatMap","subPanels","useState","Accordion","AccordionGroup","AccordionGroupContextProvider","Icon","Input","Fragment","_Fragment","ExternalPanelList","onPanelClick","length","className","DashboardAccordionItem","search","accordionProps","panelsQuery","loadedPanels","availablePanels","filter","toLowerCase","includes","availableComponents","findPanelConfigsByType","renderTitle","isOpened","startIcon","renderContent","display","fontWeight","fontSize","_ref4","_ref5","_ref6","_ref7","_ref8","ExternalDashboardsList","setSearch","dashboardsQuery","placeholder","inputProps","appendPanel","params","nextY","reduce","maxY","Math","newPanel","grafanaDashboard","grafanaPanel","defaultComponentConfig","Date","now","panelId","version","componentId","updatePanel","newPanels","p","removePanel","applyNewLayout","newLayout","newLayoutMap","newDashboard","newGridPos","Popover","PopoverContent","PopoverTrigger","usePopoverContext","PanelControlContent","onEdit","onRemove","popover","handleClose","setOpen","gap","border","backgroundColor","borderRadius","PanelControl","useRef","JsonSchema","Typeahead","TypeaheadOption","validator","PanelSettings","onSave","originalPanel","setOriginalPanel","savedRef","current","panelComponent","propsSchema","uiSchema","handleComponentChange","originalComponent","handlePropsChange","handlePanelSave","wrapperClassName","filterOptions","selectedItems","Form","idPrefix","formData","schema","norender","Checkbox","useDrawer","_ref9","DashboardEditorInternal","controlledDashboard","defaultDashboard","gridProps","onSaved","onCreate","onError","selectedPanelId","setSelectedPanelId","dashboardsSelectorDrawer","panelSettingsDrawer","position","onOpenChange","open","setDashboard","isUpdating","isCreating","handleAddPanel","handleLayoutChange","handlePanelEdit","handlePanelUpdate","handlePanelRemove","handlePersistDashboard","then","catch","selectedPanel","cannotPersist","opened","transition","isMounted","text","initialState","isDisabled","DashboardEditor","editorProps","tryCatch","promise","RestInfraDashTransport","constructor","baseUrl","authMiddleware","unwrapResponse","getUrl","path","applyMiddlewares","request","makeRequest","parseResponse","finalizedRequest","response","fetch","ok","url","message","statusText","json","Request","method","getGrafanaPanelData","body","headers","QueryEntry","isFetching","subscribers","controller","notify","queueMicrotask","sub","Promise","resolve","aborted","AbortController","finally","add","delete","setTimeout","setData","invalidate","abort","QueryClient","cache","Map","get","set","matchingEntries","hash","entries","active","push","setQueryData","existing","newEntry","MutationEntry","variables","onSuccess","onSettled","err","console","MutationClient","PanelRegistry","registerPanel","has","Array","from","values","supportedTypes","LoadingPanel","usePanelData","panelSource","React","withPanelData","Wrapped","LoadingComponent","ErrorComponent","Enhanced","providedTitle","rest","query","injectedProps","panelData","getValueFormat","grafanaDataAdapter","results","xIndex","yIndex","frames","defaultFieldConfig","fieldConfig","defaults","unit","fields","config","formattedValue","series","frame","yField","fixedColor","displayName","displayNameFromDS","refId","marker","selected","showlegend","hovertemplate","prefix","suffix","valuePrefix","valueSuffix","BarLineComplexChart","TimeseriesPanel","xAxisHoverFormat","labelWidth","style","features","systemModeBarButtons","cardProps","autosize","xaxis","tickmode","hoverformat","yaxis2","ticksuffix","tickprefix","properties","default","inferMinMax","min","dataFrame","at","thresholds","steps","segments","threshold","GaugeChart","GaugePanel","containerProps","unitLabel","maxValue","minValue","minLabel","maxLabel","valueFormat","valueFormatter","v","textAlign","bars","Number","toFixed","bar","BarGaugeChart","GrafanaBarGaugePanel","widgetCardProps","wrapperProps","description","grafanaTimeseriesPanelConfig","grafanaGaugePanelConfig","grafanaBarGaugePanelConfig","InfraDashProvider","providedQueryClient","providedMutationClient","providedPanelRegistry"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"index.js","mappings":"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","sources":["webpack://SSAInfraDash/webpack/universalModuleDefinition","webpack://SSAInfraDash/webpack/bootstrap","webpack://SSAInfraDash/webpack/runtime/compat get default export","webpack://SSAInfraDash/webpack/runtime/define property getters","webpack://SSAInfraDash/webpack/runtime/hasOwnProperty shorthand","webpack://SSAInfraDash/webpack/runtime/make namespace object","webpack://SSAInfraDash/external commonjs \"react-error-boundary\"","webpack://SSAInfraDash/external commonjs \"@ssa-ui-kit/core\"","webpack://SSAInfraDash/external commonjs \"@emotion/react/jsx-runtime\"","webpack://SSAInfraDash/./src/shared/icons/ErrorIcon.tsx","webpack://SSAInfraDash/./src/components/DashboardError/DashboardError.tsx","webpack://SSAInfraDash/external commonjs \"@emotion/css\"","webpack://SSAInfraDash/external commonjs \"@emotion/react\"","webpack://SSAInfraDash/./src/components/LoadingDashboard/LoadingDashboard.tsx","webpack://SSAInfraDash/external commonjs \"react\"","webpack://SSAInfraDash/./src/shared/query/key.ts","webpack://SSAInfraDash/external commonjs \"@ssa-ui-kit/hooks\"","webpack://SSAInfraDash/./src/shared/context/root.ts","webpack://SSAInfraDash/./src/shared/query/useQuery.ts","webpack://SSAInfraDash/./src/shared/query/useMutation.ts","webpack://SSAInfraDash/./src/shared/transport/useTransport.ts","webpack://SSAInfraDash/./src/entities/dashboard/index.ts","webpack://SSAInfraDash/./src/shared/panel.ts","webpack://SSAInfraDash/./src/shared/context/panelDataPeriod.ts","webpack://SSAInfraDash/external commonjs \"react-grid-layout\"","webpack://SSAInfraDash/./src/components/BasePanel/BasePanel.tsx","webpack://SSAInfraDash/./src/components/ErrorPanel/ErrorPanel.tsx","webpack://SSAInfraDash/external commonjs \"react-grid-layout/css/styles.css\"","webpack://SSAInfraDash/external commonjs \"react-resizable/css/styles.css\"","webpack://SSAInfraDash/./src/features/DashboardPanelGrid.tsx","webpack://SSAInfraDash/./src/widgets/DashboardViewer/DashboardViewer.tsx","webpack://SSAInfraDash/./src/widgets/DashboardViewer/index.ts","webpack://SSAInfraDash/external commonjs \"@emotion/styled/base\"","webpack://SSAInfraDash/./src/components/PeriodSelector/PeriodSelector.tsx","webpack://SSAInfraDash/./src/shared/icons/DashboardIcon.tsx","webpack://SSAInfraDash/./src/widgets/DashboardEditor/components/DashboardSelectorDrawer.tsx","webpack://SSAInfraDash/./src/shared/icons/SidebarIcon.tsx","webpack://SSAInfraDash/./src/widgets/DashboardEditor/components/PanelSettingsDrawer.tsx","webpack://SSAInfraDash/./src/entities/grafana-dashboard/index.ts","webpack://SSAInfraDash/./src/entities/grafana-panel/index.ts","webpack://SSAInfraDash/./src/widgets/DashboardEditor/components/ExternalDashboardsList.tsx","webpack://SSAInfraDash/./src/widgets/DashboardEditor/helpers.ts","webpack://SSAInfraDash/./src/widgets/DashboardEditor/components/PanelControl.tsx","webpack://SSAInfraDash/external commonjs \"@rjsf/validator-ajv8\"","webpack://SSAInfraDash/./src/widgets/DashboardEditor/components/PanelSettings.tsx","webpack://SSAInfraDash/./src/widgets/DashboardEditor/DashboardEditor.tsx","webpack://SSAInfraDash/./src/widgets/DashboardEditor/index.ts","webpack://SSAInfraDash/./src/shared/exception.ts","webpack://SSAInfraDash/./src/shared/transport/restTransport.ts","webpack://SSAInfraDash/./src/shared/transport/index.ts","webpack://SSAInfraDash/./src/components/PeriodSelector/index.ts","webpack://SSAInfraDash/./src/shared/query/query.ts","webpack://SSAInfraDash/./src/shared/query/mutation.ts","webpack://SSAInfraDash/./src/shared/panelRegistry.ts","webpack://SSAInfraDash/./src/components/LoadingPanel/LoadingPanel.tsx","webpack://SSAInfraDash/./src/entities/panel/usePanelData.ts","webpack://SSAInfraDash/./src/entities/panel/withPanelData.tsx","webpack://SSAInfraDash/external commonjs \"@grafana/data\"","webpack://SSAInfraDash/./src/panels/TimeseriesPanel/data-adapters/grafana.tsx","webpack://SSAInfraDash/./src/panels/TimeseriesPanel/TimeseriesPanel.tsx","webpack://SSAInfraDash/./src/panels/GaugePanel/data-adapters/grafana.tsx","webpack://SSAInfraDash/./src/panels/GaugePanel/GaugePanel.tsx","webpack://SSAInfraDash/./src/panels/BarGaugePanel/data-adapters/grafana.tsx","webpack://SSAInfraDash/./src/panels/BarGaugePanel/BarGaugePanel.tsx","webpack://SSAInfraDash/./src/panels/index.ts","webpack://SSAInfraDash/./src/provider.tsx","webpack://SSAInfraDash/./src/index.ts"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"SSAInfraDash\"] = factory();\n\telse\n\t\troot[\"SSAInfraDash\"] = factory();\n})(self, () => {\nreturn ","// The require scope\nvar __webpack_require__ = {};\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"react-error-boundary\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@ssa-ui-kit/core\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@emotion/react/jsx-runtime\");","export const ErrorIcon = () => (\n <svg\n width=\"80\"\n height=\"80\"\n viewBox=\"0 0 80 80\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"40\" cy=\"40\" r=\"40\" fill=\"#EEF1F7\" />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M56.9165 39.6055H24.4165V54.6465C24.4165 55.3639 24.8869 55.9968 25.5743 56.2032C28.8398 57.1823 38.0226 59.9375 40.1993 60.5907C40.504 60.6817 40.829 60.6817 41.1337 60.5907C43.3104 59.9375 52.4933 57.1823 55.7587 56.2032C56.4461 55.9968 56.9165 55.3639 56.9165 54.6465C56.9165 50.8797 56.9165 39.6055 56.9165 39.6055Z\"\n fill=\"url(#paint0_linear_175_25229)\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M56.9162 39.6055H40.6662C40.6662 39.6055 40.5086 60.659 40.6662 60.659C40.8239 60.659 40.9807 60.6362 41.1334 60.5907C43.3101 59.9375 52.493 57.1823 55.7584 56.2032C56.4458 55.9968 56.9162 55.3639 56.9162 54.6465C56.9162 50.8797 56.9162 39.6055 56.9162 39.6055Z\"\n fill=\"url(#paint1_linear_175_25229)\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M40.6665 44.8778L24.4165 39.6055C24.4165 39.6055 21.567 43.8305 20.293 45.7187C20.15 45.9308 20.1151 46.1965 20.198 46.4378C20.2817 46.6791 20.4726 46.8668 20.7155 46.9464C23.8022 47.949 32.9396 50.9179 35.3365 51.6963C35.6802 51.8084 36.0572 51.6792 36.2603 51.3794C37.3498 49.7715 40.6665 44.8778 40.6665 44.8778Z\"\n fill=\"url(#paint2_linear_175_25229)\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M56.9165 39.6055L40.6665 44.8778C40.6665 44.8778 43.9831 49.7715 45.0727 51.3794C45.2758 51.6792 45.6528 51.8084 45.9965 51.6963C48.3934 50.9179 57.5308 47.949 60.6174 46.9464C60.8604 46.8668 61.0513 46.6791 61.135 46.4378C61.2179 46.1965 61.1829 45.9308 61.0399 45.7187C59.7659 43.8305 56.9165 39.6055 56.9165 39.6055Z\"\n fill=\"url(#paint3_linear_175_25229)\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M36.7329 28.5303C36.5298 28.2321 36.1536 28.1029 35.8099 28.215C33.4147 28.9926 24.2749 31.9623 21.1882 32.9657C20.9452 33.0445 20.7535 33.2322 20.6706 33.4735C20.5877 33.7148 20.6227 33.9813 20.7657 34.1926C21.9389 35.933 24.4162 39.6055 24.4162 39.6055L40.6662 34.3153C40.6662 34.3153 37.7477 30.0228 36.7329 28.5303Z\"\n fill=\"url(#paint4_linear_175_25229)\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M60.5671 34.1926C60.7101 33.9813 60.745 33.7148 60.6621 33.4735C60.5793 33.2322 60.3875 33.0445 60.1446 32.9657C57.0579 31.9623 47.9181 28.9926 45.5228 28.215C45.1791 28.1029 44.8029 28.2321 44.5998 28.5303C43.585 30.0228 40.6665 34.3153 40.6665 34.3153L56.9165 39.6055C56.9165 39.6055 59.3938 35.933 60.5671 34.1926Z\"\n fill=\"url(#paint5_linear_175_25229)\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M56.9165 39.6055L40.6665 34.3153L24.4165 39.6055L40.6665 44.8778L56.9165 39.6055Z\"\n fill=\"url(#paint6_linear_175_25229)\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M40.6665 44.8778V34.3153L24.4165 39.6055L40.6665 44.8778Z\"\n fill=\"url(#paint7_linear_175_25229)\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M37.4019 36.6488C37.0639 36.4278 36.7592 36.1913 36.4886 35.9435C36.1588 35.6405 35.6445 35.6624 35.3406 35.9931C35.0375 36.323 35.0595 36.8373 35.3901 37.1403C35.7225 37.4458 36.097 37.7367 36.513 38.0089C36.8884 38.2543 37.3921 38.1486 37.6375 37.7733C37.8829 37.3979 37.7773 36.8941 37.4019 36.6488Z\"\n fill=\"url(#paint8_linear_175_25229)\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M34.8703 34.1528C34.629 33.8253 34.4251 33.4963 34.2577 33.1672C34.0546 32.7675 33.5646 32.6082 33.1649 32.8113C32.7651 33.0145 32.6059 33.5044 32.809 33.9042C33.0154 34.3088 33.2656 34.7142 33.5622 35.1164C33.8279 35.4772 34.3365 35.5543 34.6981 35.2887C35.0588 35.0222 35.136 34.5135 34.8703 34.1528Z\"\n fill=\"url(#paint9_linear_175_25229)\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M33.6824 30.837C33.6905 30.5095 33.7384 30.1918 33.8262 29.8872C33.9497 29.4565 33.7002 29.0056 33.2688 28.8821C32.8382 28.7586 32.3872 29.008 32.2637 29.4395C32.1394 29.875 32.0695 30.3292 32.0574 30.7963C32.0468 31.2448 32.401 31.6178 32.8495 31.6283C33.298 31.6397 33.671 31.2855 33.6824 30.837Z\"\n fill=\"url(#paint10_linear_175_25229)\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M34.9318 28.1232C35.1406 27.9299 35.3746 27.7511 35.6305 27.5894C36.0099 27.3497 36.1237 26.8476 35.8848 26.469C35.6451 26.0895 35.143 25.9758 34.7636 26.2147C34.4199 26.4316 34.1079 26.6713 33.8276 26.9313C33.4985 27.236 33.479 27.7503 33.7837 28.0794C34.0884 28.4084 34.6027 28.4279 34.9318 28.1232Z\"\n fill=\"url(#paint11_linear_175_25229)\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M37.9535 26.7216C38.3622 26.6461 38.7953 26.5973 39.2519 26.5786C39.7004 26.5591 40.0481 26.1797 40.0295 25.732C40.0108 25.2843 39.6313 24.9358 39.1828 24.9545C38.6466 24.9772 38.138 25.0349 37.6578 25.1235C37.2174 25.2055 36.9249 25.6296 37.007 26.07C37.0882 26.5112 37.5123 26.8029 37.9535 26.7216Z\"\n fill=\"url(#paint12_linear_175_25229)\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M42.1886 26.6737C42.8816 26.6818 43.5267 26.6575 44.1256 26.6047C44.5724 26.5648 44.9031 26.17 44.8633 25.7231C44.8235 25.277 44.4286 24.9463 43.9817 24.9862C43.4333 25.0341 42.8426 25.0568 42.2072 25.0487C41.7587 25.0438 41.3907 25.4038 41.3858 25.8515C41.3801 26.3 41.7401 26.6688 42.1886 26.6737Z\"\n fill=\"url(#paint13_linear_175_25229)\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M46.796 26.1066C47.6003 25.8604 48.2796 25.5452 48.8483 25.1836C49.2261 24.9423 49.3383 24.4402 49.097 24.0615C48.8565 23.6837 48.3535 23.5716 47.9749 23.8129C47.5175 24.1038 46.969 24.354 46.3206 24.5523C45.8925 24.6839 45.6503 25.1381 45.782 25.5671C45.9128 25.9961 46.3678 26.2374 46.796 26.1066Z\"\n fill=\"url(#paint14_linear_175_25229)\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M50.9315 22.9094C51.315 22.1164 51.4621 21.2779 51.4247 20.4695C51.4036 20.021 51.0225 19.6748 50.5749 19.696C50.1272 19.7171 49.7802 20.0973 49.8014 20.545C49.8274 21.0943 49.7282 21.6638 49.4682 22.2025C49.2732 22.6063 49.4422 23.093 49.846 23.288C50.2499 23.483 50.7365 23.3132 50.9315 22.9094Z\"\n fill=\"url(#paint15_linear_175_25229)\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M50.4143 17.5965C49.822 16.7962 49.0184 16.2388 48.1425 16.0592C47.703 15.9698 47.2732 16.2526 47.183 16.6922C47.0936 17.1317 47.3772 17.5615 47.8159 17.6517C48.3213 17.7549 48.7665 18.1018 49.1086 18.5642C49.3759 18.9241 49.8853 18.9997 50.2453 18.7332C50.606 18.4658 50.6816 17.9564 50.4143 17.5965Z\"\n fill=\"url(#paint16_linear_175_25229)\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M39.7993 16.2168C40.6784 11.2386 48.2973 11.5604 43.8618 16.2168H39.7993Z\"\n fill=\"url(#paint17_linear_175_25229)\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M39.7993 17.4778C40.6784 22.4552 48.2973 22.1343 43.8618 17.4778H39.7993Z\"\n fill=\"url(#paint18_linear_175_25229)\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M39.7266 17.668H45.1671C45.6156 17.668 45.9796 17.304 45.9796 16.8555C45.9796 16.407 45.6156 16.043 45.1671 16.043H39.7266C39.2789 16.043 38.9141 16.407 38.9141 16.8555C38.9141 17.304 39.2789 17.668 39.7266 17.668Z\"\n fill=\"url(#paint19_linear_175_25229)\"\n />\n <defs>\n <linearGradient\n id=\"paint0_linear_175_25229\"\n x1=\"24.4165\"\n y1=\"50.1322\"\n x2=\"56.9165\"\n y2=\"50.1322\"\n gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"#CADCF0\" />\n <stop offset=\"1\" stopColor=\"#A4BBDB\" />\n </linearGradient>\n <linearGradient\n id=\"paint1_linear_175_25229\"\n x1=\"40.5964\"\n y1=\"50.1322\"\n x2=\"56.9162\"\n y2=\"50.1322\"\n gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"#A4BBDB\" />\n <stop offset=\"1\" stopColor=\"#8DA3BE\" />\n </linearGradient>\n <linearGradient\n id=\"paint2_linear_175_25229\"\n x1=\"24.5245\"\n y1=\"39.599\"\n x2=\"26.7957\"\n y2=\"54.6248\"\n gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"#E9F3FC\" />\n <stop offset=\"1\" stopColor=\"#CADCF0\" />\n </linearGradient>\n <linearGradient\n id=\"paint3_linear_175_25229\"\n x1=\"40.7323\"\n y1=\"44.8225\"\n x2=\"57.8628\"\n y2=\"54.6748\"\n gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"#E9F3FC\" />\n <stop offset=\"1\" stopColor=\"#CADCF0\" />\n </linearGradient>\n <linearGradient\n id=\"paint4_linear_175_25229\"\n x1=\"22.2891\"\n y1=\"36.4521\"\n x2=\"24.7405\"\n y2=\"24.8965\"\n gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"#E9F3FC\" />\n <stop offset=\"1\" stopColor=\"#CADCF0\" />\n </linearGradient>\n <linearGradient\n id=\"paint5_linear_175_25229\"\n x1=\"45.0166\"\n y1=\"28.0192\"\n x2=\"45.8932\"\n y2=\"42.2824\"\n gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"#E9F3FC\" />\n <stop offset=\"1\" stopColor=\"#CADCF0\" />\n </linearGradient>\n <linearGradient\n id=\"paint6_linear_175_25229\"\n x1=\"24.4165\"\n y1=\"39.5965\"\n x2=\"56.9165\"\n y2=\"39.5965\"\n gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"#CADCF0\" />\n <stop offset=\"1\" stopColor=\"#A4BBDB\" />\n </linearGradient>\n <linearGradient\n id=\"paint7_linear_175_25229\"\n x1=\"42.3305\"\n y1=\"34.0788\"\n x2=\"42.6807\"\n y2=\"47.2032\"\n gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"#A4BBDB\" />\n <stop offset=\"1\" stopColor=\"#8DA3BE\" />\n </linearGradient>\n <linearGradient\n id=\"paint8_linear_175_25229\"\n x1=\"31.7217\"\n y1=\"16.2168\"\n x2=\"47.7475\"\n y2=\"35.1261\"\n gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"#559AFF\" />\n <stop offset=\"1\" stopColor=\"#2E69EF\" />\n </linearGradient>\n <linearGradient\n id=\"paint9_linear_175_25229\"\n x1=\"31.7219\"\n y1=\"16.2168\"\n x2=\"47.7476\"\n y2=\"35.1261\"\n gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"#559AFF\" />\n <stop offset=\"1\" stopColor=\"#2E69EF\" />\n </linearGradient>\n <linearGradient\n id=\"paint10_linear_175_25229\"\n x1=\"31.7218\"\n y1=\"16.2168\"\n x2=\"47.7475\"\n y2=\"35.1262\"\n gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"#559AFF\" />\n <stop offset=\"1\" stopColor=\"#2E69EF\" />\n </linearGradient>\n <linearGradient\n id=\"paint11_linear_175_25229\"\n x1=\"31.7216\"\n y1=\"16.2169\"\n x2=\"47.7473\"\n y2=\"35.1262\"\n gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"#559AFF\" />\n <stop offset=\"1\" stopColor=\"#2E69EF\" />\n </linearGradient>\n <linearGradient\n id=\"paint12_linear_175_25229\"\n x1=\"31.7217\"\n y1=\"16.2168\"\n x2=\"47.7474\"\n y2=\"35.1261\"\n gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"#559AFF\" />\n <stop offset=\"1\" stopColor=\"#2E69EF\" />\n </linearGradient>\n <linearGradient\n id=\"paint13_linear_175_25229\"\n x1=\"31.7219\"\n y1=\"16.2168\"\n x2=\"47.7477\"\n y2=\"35.1262\"\n gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"#559AFF\" />\n <stop offset=\"1\" stopColor=\"#2E69EF\" />\n </linearGradient>\n <linearGradient\n id=\"paint14_linear_175_25229\"\n x1=\"31.7217\"\n y1=\"16.2168\"\n x2=\"47.7474\"\n y2=\"35.1262\"\n gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"#559AFF\" />\n <stop offset=\"1\" stopColor=\"#2E69EF\" />\n </linearGradient>\n <linearGradient\n id=\"paint15_linear_175_25229\"\n x1=\"31.7216\"\n y1=\"16.2168\"\n x2=\"47.7474\"\n y2=\"35.1261\"\n gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"#559AFF\" />\n <stop offset=\"1\" stopColor=\"#2E69EF\" />\n </linearGradient>\n <linearGradient\n id=\"paint16_linear_175_25229\"\n x1=\"31.7219\"\n y1=\"16.2168\"\n x2=\"47.7476\"\n y2=\"35.1262\"\n gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"#559AFF\" />\n <stop offset=\"1\" stopColor=\"#2E69EF\" />\n </linearGradient>\n <linearGradient\n id=\"paint17_linear_175_25229\"\n x1=\"39.7993\"\n y1=\"14.4098\"\n x2=\"45.239\"\n y2=\"14.4098\"\n gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"#E9F3FC\" />\n <stop offset=\"1\" stopColor=\"#CADCF0\" />\n </linearGradient>\n <linearGradient\n id=\"paint18_linear_175_25229\"\n x1=\"39.7993\"\n y1=\"19.2848\"\n x2=\"45.239\"\n y2=\"19.2848\"\n gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"#E9F3FC\" />\n <stop offset=\"1\" stopColor=\"#CADCF0\" />\n </linearGradient>\n <linearGradient\n id=\"paint19_linear_175_25229\"\n x1=\"31.7218\"\n y1=\"16.2168\"\n x2=\"47.7476\"\n y2=\"35.1262\"\n gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"#559AFF\" />\n <stop offset=\"1\" stopColor=\"#2E69EF\" />\n </linearGradient>\n </defs>\n </svg>\n);\n","import { Wrapper } from '@ssa-ui-kit/core';\n\nimport { ErrorIcon } from '@shared/icons';\n\nexport type DashboardErrorProps = {\n children?: React.ReactNode;\n};\n\nexport const DashboardError = ({ children }: DashboardErrorProps) => (\n <Wrapper\n direction=\"column\"\n css={{ justifyContent: 'center', height: '100%' }}>\n <ErrorIcon />\n <div css={{ marginTop: '12px', textAlign: 'center' }}>\n {children ?? 'An error occurred while loading the dashboard'}\n </div>\n </Wrapper>\n);\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@emotion/css\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@emotion/react\");","import { css } from '@emotion/css';\nimport { useTheme } from '@emotion/react';\nimport { ProgressCircle, Wrapper, Theme } from '@ssa-ui-kit/core';\n\nexport type LoadingDashboardProps = {\n children?: React.ReactNode;\n};\n\nexport const LoadingDashboard = ({ children }: LoadingDashboardProps) => {\n const theme = useTheme() as Theme;\n return (\n <Wrapper\n direction=\"column\"\n css={{ justifyContent: 'center', height: '100%' }}>\n <ProgressCircle\n classnames={{\n inner: css(`\n background: none !important;\n `),\n outer: css(`\n background: none !important;\n border: 12px solid ${theme.colors.greyLighter};\n `),\n }}\n currentValue={3}\n max={10}\n size={120}\n color=\"blue\"\n mode=\"infinite\"\n />\n {children && (\n <div css={{ marginTop: '12px', textAlign: 'center' }}>{children}</div>\n )}\n </Wrapper>\n );\n};\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"react\");","export type MutationKey = unknown[];\nexport type QueryKey = unknown[];\n\nexport const hashKey = (queryKey: QueryKey | MutationKey) => {\n return JSON.stringify(queryKey);\n};\n\nexport function partialMatchKey(a: QueryKey, b: QueryKey): boolean;\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function partialMatchKey(a: any, b: any): boolean {\n if (a === b) {\n return true;\n }\n if (typeof a !== typeof b) {\n return false;\n }\n if (a && b && typeof a === 'object' && typeof b === 'object') {\n return Object.keys(b).every((key) => partialMatchKey(a[key], b[key]));\n }\n return false;\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@ssa-ui-kit/hooks\");","import { createSafeContext } from '@ssa-ui-kit/hooks';\n\nimport { PanelRegistry } from '@shared/panelRegistry';\nimport { MutationClient, QueryClient } from '@shared/query';\nimport { InfraDashTransport } from '@shared/transport';\n\nexport interface InfraDashContextValue {\n transport: InfraDashTransport;\n queryClient: QueryClient;\n mutationClient: MutationClient;\n panelRegistry: PanelRegistry;\n}\n\nexport const [InfraDashInternalProvider, useInfraDashContext] =\n createSafeContext<InfraDashContextValue>(\n 'useInfraDashContext must be used within a InfraDashProvider',\n );\n","import { useCallback, useMemo, useSyncExternalStore } from 'react';\n\nimport { Fetcher, QueryEntry, QueryOptions, QueryState } from './query';\nimport { hashKey, QueryKey } from './key';\n\nimport { useInfraDashContext } from '../context';\n\nexport const useQueryClient = () => {\n const { queryClient } = useInfraDashContext();\n return queryClient;\n};\n\nexport const useQuery = <T>(\n key: QueryKey,\n fetcher: Fetcher<T>,\n options?: QueryOptions,\n) => {\n const queryClient = useQueryClient();\n\n const keyHash = useMemo(() => hashKey(key), [key]);\n const entry = useMemo(\n () => queryClient.fetchQuery<T>(key, fetcher, options) as QueryEntry<T>,\n [keyHash],\n );\n\n entry.updateEntity(fetcher, options);\n\n const subscribe = useCallback(\n (onStoreChange: () => void) => {\n return entry.subscribe(() => {\n onStoreChange();\n });\n },\n [entry],\n );\n\n const getSnapshot = (): QueryState<T> => {\n return entry.state;\n };\n const getServerSnapshot = getSnapshot;\n\n const state = useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);\n\n return {\n ...state,\n refetch: () => queryClient.invalidateQueries({ key, exact: true }),\n };\n};\n","import { useCallback, useMemo, useSyncExternalStore } from 'react';\n\nimport {\n MutationEntry,\n MutationFn,\n MutationOptions,\n MutationState,\n} from './mutation';\nimport { hashKey, MutationKey } from './key';\n\nimport { useInfraDashContext } from '../context';\n\nexport const useMutationClient = () => {\n const { mutationClient } = useInfraDashContext();\n return mutationClient;\n};\n\nexport const useMutation = <T, V = unknown>(\n key: MutationKey,\n mutationFn: MutationFn<T, V>,\n options?: MutationOptions<T, V>,\n) => {\n const mutationClient = useMutationClient();\n\n const keyHash = useMemo(() => hashKey(key), [key]);\n const entry = useMemo(\n () =>\n mutationClient.fetchMutation<T, V>(\n key,\n mutationFn,\n options,\n ) as MutationEntry<T, V>,\n [keyHash],\n );\n\n entry.updateEntity(mutationFn, options);\n\n const subscribe = useCallback(\n (onStoreChange: () => void) => {\n return entry.subscribe(() => {\n onStoreChange();\n });\n },\n [entry],\n );\n\n const getSnapshot = (): MutationState<T> => {\n return entry.state;\n };\n const getServerSnapshot = getSnapshot;\n\n const state = useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);\n\n const mutate = useCallback(\n (...args: Parameters<typeof entry.mutate>) => {\n return entry.mutate(...args);\n },\n [entry],\n );\n\n const reset = useCallback(() => {\n entry.reset();\n }, [entry]);\n\n const cancel = useCallback(() => {\n entry.cancel();\n }, [entry]);\n\n return {\n mutate,\n data: state.data,\n error: state.error,\n isLoading: state.isLoading,\n reset,\n cancel,\n };\n};\n","import { InfraDashTransport } from './baseTransport';\n\nimport { useInfraDashContext } from '../context';\n\nexport const useTransport = (transport?: InfraDashTransport) => {\n const { transport: contextTransport } = useInfraDashContext();\n return transport ?? contextTransport;\n};\n","import {\n useQuery,\n useMutation,\n QueryOptions,\n MutationOptions,\n} from '@shared/query';\nimport {\n CreateDashboardPayload,\n InfraDashTransport,\n UpdateDashboardPayload,\n useTransport,\n} from '@shared/transport';\n\ntype QOptions = QueryOptions & {\n transport?: InfraDashTransport;\n};\n\ntype MOptions<T, V> = MutationOptions<T, V> & {\n transport?: InfraDashTransport;\n};\n\nexport const useDashboards = (options?: QOptions) => {\n const { transport, ...queryOptions } = options || {};\n const _transport = useTransport(transport);\n const result = useQuery(\n ['dashboards'],\n async (signal) => {\n return await _transport.getDashboards(signal);\n },\n queryOptions,\n );\n return result;\n};\n\nexport const useDashboard = (dashboardId: number, options?: QOptions) => {\n const { transport, ...queryOptions } = options || {};\n const _transport = useTransport(transport);\n const result = useQuery(\n ['dashboards', dashboardId],\n async (signal) => {\n return await _transport.getDashboard(dashboardId, signal);\n },\n queryOptions,\n );\n return result;\n};\n\nexport const usePublishedDashboards = (options?: QOptions) => {\n const { transport, ...queryOptions } = options || {};\n const _transport = useTransport(transport);\n const result = useQuery(\n ['dashboards', 'published'],\n async (signal) => {\n return await _transport.getPublishedDashboards(signal);\n },\n queryOptions,\n );\n return result;\n};\n\nexport const useCreateDashboard = (\n options?: MOptions<unknown, CreateDashboardPayload>,\n) => {\n const { transport, ...mutationOptions } = options || {};\n const _transport = useTransport(transport);\n const result = useMutation(\n ['create-dashboard'],\n async (payload: CreateDashboardPayload, signal?: AbortSignal) => {\n const panels = payload.panels.map((panel) => ({\n panelDefinition: panel.panelDefinition,\n source: panel.source,\n }));\n const dashboardsUid = new Set(\n panels.map((panel) => panel.source.dashboardUid),\n );\n if (!dashboardsUid.size) {\n throw new Error('At least one panel must be provided');\n }\n return await _transport.createDashboard(\n {\n title: payload.title,\n published: payload.published,\n dashboardDefinition: payload.dashboardDefinition,\n panels,\n },\n signal,\n );\n },\n mutationOptions,\n );\n return result;\n};\n\nexport const useUpdateDashboard = (\n dashboardId: number,\n options?: MOptions<unknown, Omit<UpdateDashboardPayload, 'dashboardId'>>,\n) => {\n const { transport, ...mutationOptions } = options || {};\n const _transport = useTransport(transport);\n const result = useMutation(\n ['update-dashboard', dashboardId],\n async (payload, signal?) => {\n const panels = payload.panels.map((panel) => ({\n panelDefinition: panel.panelDefinition,\n source: panel.source,\n }));\n const dashboardsUid = new Set(\n panels.map((panel) => panel.source.dashboardUid),\n );\n if (!dashboardsUid.size) {\n throw new Error('At least one panel must be provided');\n }\n return await _transport.updateDashboard(\n {\n title: payload.title,\n published: payload.published,\n dashboardDefinition: payload.dashboardDefinition,\n panels,\n dashboardId,\n },\n signal,\n );\n },\n mutationOptions,\n );\n return result;\n};\n\nexport const useDeleteDashboard = (\n dashboardId: number,\n options?: MOptions<unknown, undefined>,\n) => {\n const { transport, ...mutationOptions } = options || {};\n const _transport = useTransport(transport);\n const result = useMutation(\n ['delete-dashboard', dashboardId],\n async (_?: never, signal?: AbortSignal) => {\n return await _transport.deleteDashboard(dashboardId, signal);\n },\n mutationOptions,\n );\n return result;\n};\n","import { RJSFSchema, UiSchema } from '@rjsf/utils';\nimport { GrafanaPanelData, GrafanaPanelSchema } from './grafana';\n\n/**\n * Defines the configuration and positioning information for a dashboard panel.\n * Contains both the component configuration and grid layout positioning.\n */\nexport type PanelDefinition = {\n component: {\n /** Unique identifier for the component type */\n id: string;\n /** Dynamic properties passed to the component instance */\n props: Record<string, unknown>;\n };\n /** Grid positioning and sizing information */\n gridPos: Record<'h' | 'w' | 'x' | 'y', number>;\n\n /** Version of the panel definition schema */\n version: 1;\n};\n\n/**\n * Represents a complete dashboard panel with its metadata, schema, and definition.\n * Combines panel identity, display information, data schema, and component configuration.\n */\nexport type Panel = {\n /** Unique numeric identifier for the panel */\n id: number;\n /** Display title shown in the panel header */\n title: string;\n /** Grafana-specific panel schema configuration */\n panelSchema: GrafanaPanelSchema;\n /** Component and layout definition for the panel */\n panelDefinition: PanelDefinition;\n source: {\n type: typeof PANEL_DATA_SOURCE.GRAFANA;\n dashboardUid: string;\n panelId: number;\n };\n};\n\n/**\n * Optional schema defining the structure of props this component expects.\n * Used for validation and form generation in configuration UIs.\n */\ntype PanelConfigProps<T> = object extends T\n ? { defaultProps?: T; propsSchema?: RJSFSchema } // all props are optional → defaultProps stays optional\n : { defaultProps: T; propsSchema: RJSFSchema };\n\n/**\n * Configuration object for registering a panel component type.\n * Defines how a specific component should be rendered and what panel types it supports.\n */\nexport type PanelConfig<T extends Record<string, unknown> | undefined> = {\n /** Unique identifier for this component type */\n componentId: string;\n /** React component that will render the panel */\n Component: React.ComponentType<{ panel: Panel }>;\n /** Human-readable name for this panel type */\n name: string;\n /** Array of Grafana panel types this component can handle */\n supportedTypes: string[];\n uiSchema?: UiSchema;\n} & PanelConfigProps<Omit<T, 'panel' | 'panelData'>>;\n\n/**\n * Constant object defining available panel data sources.\n * Currently only supports Grafana as a data source.\n */\nexport const PANEL_DATA_SOURCE = {\n GRAFANA: 'grafana',\n} as const;\nexport type PanelDataSource =\n (typeof PANEL_DATA_SOURCE)[keyof typeof PANEL_DATA_SOURCE];\n\n/**\n * Pattern matching utility function for handling different panel data sources.\n * Provides type-safe way to handle operations based on the data source type.\n *\n * @param source - The panel data source to match against\n * @param handlers - Object containing handler functions for each data source type\n */\nexport const matchPanelDataSource = <Grafana>(\n source: PanelDataSource,\n handlers: {\n grafana: () => Grafana;\n },\n): Grafana => {\n switch (source) {\n case PANEL_DATA_SOURCE.GRAFANA:\n return handlers.grafana();\n default: {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const _: never = source;\n throw new Error(`Unsupported panel data source: ${source}`);\n }\n }\n};\n\n/**\n * Represents panel data with its source and associated data.\n * Currently only supports Grafana as a data source.\n */\nexport type PanelData = {\n /** The data source type identifier */\n source: typeof PANEL_DATA_SOURCE.GRAFANA;\n /** The actual panel data from Grafana */\n data: GrafanaPanelData;\n};\n\nexport const PANEL_DATA_PERIOD = {\n LAST_HOUR: 0,\n LAST_6_HOURS: 1,\n LAST_24_HOURS: 2,\n LAST_7_DAYS: 3,\n LAST_30_DAYS: 4,\n} as const;\nexport type PanelDataPeriod =\n (typeof PANEL_DATA_PERIOD)[keyof typeof PANEL_DATA_PERIOD];\n","import { createSafeContext, useUncontrolled } from '@ssa-ui-kit/hooks';\n\nimport { PANEL_DATA_PERIOD, PanelDataPeriod } from '@shared/panel';\n\nexport interface UseInfraDashPanelDataPeriodOptions {\n defaultPeriod?: PanelDataPeriod;\n period?: PanelDataPeriod;\n onPeriodChange?: (period: PanelDataPeriod) => void;\n}\n\nexport const useInfraDashPanelDataPeriod = ({\n defaultPeriod,\n period: providedPeriod,\n onPeriodChange,\n}: UseInfraDashPanelDataPeriodOptions = {}) => {\n const [period, changePeriod] = useUncontrolled({\n value: providedPeriod,\n defaultValue: defaultPeriod,\n finalValue: PANEL_DATA_PERIOD.LAST_HOUR,\n onChange: onPeriodChange,\n });\n\n return {\n period,\n changePeriod,\n };\n};\n\nexport type InfraDashPanelDataPeriodStore = ReturnType<\n typeof useInfraDashPanelDataPeriod\n>;\n\nexport const [\n InfraDashPanelDataPeriodProvider,\n useInfraDashPanelDataPeriodContext,\n] = createSafeContext<InfraDashPanelDataPeriodStore>(\n 'useInfraDashPanelDataPeriodContext must be used within a InfraDashPanelDataPeriodProvider',\n);\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"react-grid-layout\");","import { Wrapper } from '@ssa-ui-kit/core';\n\nexport type PanelProps = {\n children: React.ReactNode;\n};\n\nexport const BasePanel = ({ children }: PanelProps) => (\n <Wrapper\n alignItems=\"center\"\n direction=\"column\"\n css={{ height: '100%', overflow: 'hidden' }}>\n {children}\n </Wrapper>\n);\n","import { css } from '@emotion/css';\nimport { WidgetCard } from '@ssa-ui-kit/core';\n\nimport { ErrorIcon } from '@shared/icons';\n\nexport type ErrorPanelProps = {\n title?: string;\n children?: React.ReactNode;\n};\n\nexport const ErrorPanel = ({ title, children }: ErrorPanelProps) => {\n return (\n <WidgetCard\n title={title}\n contentClassName={css`\n align-items: center !important;\n justify-content: center !important;\n `}>\n <ErrorIcon />\n <div css={{ marginTop: '12px', textAlign: 'center' }}>\n {children ?? 'An error occurred while loading the panel'}\n </div>\n </WidgetCard>\n );\n};\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"react-grid-layout/css/styles.css\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"react-resizable/css/styles.css\");","import { forwardRef, useEffect } from 'react';\nimport { css } from '@emotion/react';\nimport { useElementSize, useMinMDMediaQuery } from '@ssa-ui-kit/hooks';\nimport GridLayout from 'react-grid-layout';\nimport { ErrorBoundary } from 'react-error-boundary';\n\nimport { BasePanel } from '@components/BasePanel';\nimport { ErrorPanel } from '@components/ErrorPanel';\nimport { Dashboard } from '@shared/dashboard';\nimport { Panel } from '@shared/panel';\nimport { useInfraDashContext } from '@shared/context';\n\nimport 'react-grid-layout/css/styles.css';\nimport 'react-resizable/css/styles.css';\n\nexport type DashboardPanelGridProps = {\n dashboard: Dashboard;\n header?: React.ReactNode | ((dashboard: Dashboard) => React.ReactNode);\n cols?: number;\n rowHeight?: number;\n draggable?: boolean;\n resizable?: boolean;\n /*\n If 0 the panel-data will not be refetch\n Default is 60000 (60 seconds)\n */\n refetchIntervalMs?: number;\n onLayoutChange?: (layout: GridLayout.Layout[]) => void;\n onDragStart?: GridLayout.ItemCallback;\n onResizeStart?: GridLayout.ItemCallback;\n renderPanelControl?: (panel: Panel) => React.ReactNode;\n} & Omit<React.HTMLAttributes<HTMLDivElement>, 'onDrag'>;\n\nexport const DashboardPanelGrid = ({\n dashboard,\n header,\n cols = 12,\n rowHeight = 50,\n draggable = false,\n resizable = false,\n refetchIntervalMs = 60000, // 60 seconds\n onLayoutChange,\n onDragStart,\n onResizeStart,\n renderPanelControl,\n ...divProps\n}: DashboardPanelGridProps) => {\n const { ref, width } = useElementSize<HTMLDivElement>();\n const isMinMD = useMinMDMediaQuery();\n const { panelRegistry, queryClient } = useInfraDashContext();\n\n useEffect(() => {\n if (refetchIntervalMs) {\n queryClient.invalidateQueries({ key: ['panel-data'], type: 'active' });\n const intervalId = setInterval(() => {\n queryClient.invalidateQueries({ key: ['panel-data'], type: 'active' });\n }, refetchIntervalMs);\n return () => clearInterval(intervalId);\n }\n }, [refetchIntervalMs]);\n\n // sort panels by their grid position\n // for mobile view it will ensure they are stacked vertically in the right order\n const sortedPanels = [...dashboard.panels].sort((a, b) => {\n const aPos = a.panelDefinition.gridPos;\n const bPos = b.panelDefinition.gridPos;\n if (aPos.y !== bPos.y) {\n return aPos.y - bPos.y; // top to bottom\n }\n return aPos.x - bPos.x; // left to right within the same row\n });\n\n const layout = sortedPanels.map(\n ({ id, panelDefinition: { gridPos } }, index) => {\n if (!isMinMD) {\n // single column layout for mobile\n return {\n i: id.toString(),\n x: 0,\n y: index * gridPos.h,\n w: cols,\n h: gridPos.h,\n };\n }\n return {\n i: id.toString(),\n ...gridPos,\n };\n },\n );\n\n const renderPanel = (panel: Panel) => {\n const panelConfig = panelRegistry.getPanelConfig(\n panel.panelDefinition.component.id,\n );\n if (panelConfig) {\n return (\n <ErrorBoundary fallback={<ErrorPanel />}>\n <BasePanel>\n <panelConfig.Component\n panel={panel}\n {...panel.panelDefinition.component.props}\n />\n </BasePanel>\n </ErrorBoundary>\n );\n }\n return (\n <BasePanel>Unsupported panel type: {panel.panelSchema.type}</BasePanel>\n );\n };\n\n const _header = typeof header === 'function' ? header(dashboard) : header;\n\n return (\n <div\n ref={ref}\n css={css`\n width: 100%;\n /* stylelint-disable-next-line selector-class-pattern */\n .react-grid-item.cssTransforms {\n transition-property: none;\n }\n .react-grid-layout {\n transition: none;\n }\n .react-grid-item.react-grid-placeholder {\n background-color: transparent;\n }\n `}\n {...divProps}>\n {_header}\n {width && (\n <GridLayout\n autoSize\n layout={layout}\n cols={cols}\n rowHeight={rowHeight}\n containerPadding={[0, 0]}\n margin={[8, 8]}\n width={width}\n // disable interaction for mobile view\n isDraggable={isMinMD && draggable}\n isResizable={isMinMD && resizable}\n onLayoutChange={isMinMD ? onLayoutChange : undefined}\n onDragStart={onDragStart}\n onResizeStart={onResizeStart}>\n {dashboard.panels.map((panel) => (\n <GridItem key={panel.id.toString()}>\n {renderPanelControl && (\n // eslint-disable-next-line jsx-a11y/no-static-element-interactions\n <div\n css={{ position: 'absolute', zIndex: 100, right: 0 }}\n onMouseDown={(e) => e.stopPropagation()}>\n {renderPanelControl(panel)}\n </div>\n )}\n {renderPanel(panel)}\n </GridItem>\n ))}\n </GridLayout>\n )}\n </div>\n );\n};\n\ninterface GridItemProps extends React.HTMLAttributes<HTMLDivElement> {\n children: React.ReactNode;\n}\n\nconst GridItem = forwardRef<HTMLDivElement, GridItemProps>(function GridItem(\n { children, ...props },\n ref,\n) {\n return (\n <div\n ref={ref}\n css={css`\n .react-resizable-handle-se {\n z-index: 1;\n padding: 0;\n ::after {\n right: 0;\n bottom: 0;\n }\n }\n `}\n {...props}>\n {children}\n </div>\n );\n});\n","import { ErrorBoundary } from 'react-error-boundary';\n\nimport { DashboardError } from '@components/DashboardError';\nimport { LoadingDashboard } from '@components/LoadingDashboard';\nimport { useDashboard } from '@entities/dashboard';\nimport { Dashboard } from '@shared/dashboard';\nimport {\n InfraDashPanelDataPeriodProvider,\n useInfraDashPanelDataPeriod,\n UseInfraDashPanelDataPeriodOptions,\n} from '@shared/context';\n\nimport {\n DashboardPanelGrid,\n DashboardPanelGridProps,\n} from '../../features/DashboardPanelGrid';\n\nexport type DashboardViewerProps = {\n dashboardId?: number;\n dashboard?: Dashboard;\n} & Omit<DashboardPanelGridProps, 'dashboard'> &\n UseInfraDashPanelDataPeriodOptions;\n\nexport const DashboardViewer = ({\n dashboard,\n dashboardId,\n ...props\n}: DashboardViewerProps) => {\n const dashboardById = useDashboard(dashboardId ?? -1, {\n enabled: !!dashboardId && !dashboard,\n });\n\n const DashboardWrapper: React.FC<{\n dashboard: Dashboard;\n }> = ({ dashboard }) => {\n const panelDataPeriod = useInfraDashPanelDataPeriod({ ...props });\n return (\n <InfraDashPanelDataPeriodProvider value={panelDataPeriod}>\n <ErrorBoundary\n fallback={<DashboardError>Something went wrong</DashboardError>}>\n <DashboardPanelGrid {...props} dashboard={dashboard} />\n </ErrorBoundary>\n </InfraDashPanelDataPeriodProvider>\n );\n };\n\n if (dashboard) {\n return <DashboardWrapper dashboard={dashboard} />;\n }\n if (!dashboardById.isLoaded) {\n return <LoadingDashboard />;\n }\n if (dashboardById.error) {\n return <DashboardError />;\n }\n return <DashboardWrapper dashboard={dashboardById.data} />;\n};\n","export * from './DashboardViewer';\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@emotion/styled/base\");","import styled from '@emotion/styled';\nimport { css, useTheme } from '@emotion/react';\nimport { DropdownOption, Dropdown } from '@ssa-ui-kit/core';\n\nimport { useInfraDashPanelDataPeriodContext } from '@shared/context';\nimport { PANEL_DATA_PERIOD, PanelDataPeriod } from '@shared/panel';\n\nconst CustomOption = styled(DropdownOption)`\n display: flex;\n align-items: center;\n border: none;\n cursor: pointer;\n font-size: 14px;\n gap: 8px;\n padding: 10px 12px;\n min-height: 40px;\n line-height: 20px;\n justify-content: space-between;\n overflow: hidden;\n text-overflow: ellipsis;\n background: ${({ isActive, theme }) =>\n isActive ? theme.colors.blueRoyal12 : theme.colors.white};\n &:hover {\n background: rgba(72, 125, 225, 0.06);\n }\n`;\n\nexport const PeriodSelector = () => {\n const theme = useTheme();\n const { period, changePeriod } = useInfraDashPanelDataPeriodContext();\n\n const handlePeriodSelect = (period: PanelDataPeriod) => {\n changePeriod(period);\n };\n\n const items = [\n { value: PANEL_DATA_PERIOD.LAST_HOUR, label: 'Last Hour' },\n { value: PANEL_DATA_PERIOD.LAST_6_HOURS, label: 'Last 6 Hours' },\n { value: PANEL_DATA_PERIOD.LAST_24_HOURS, label: 'Last 24 Hours' },\n { value: PANEL_DATA_PERIOD.LAST_7_DAYS, label: 'Last 7 Days' },\n { value: PANEL_DATA_PERIOD.LAST_30_DAYS, label: 'Last 30 Days' },\n ];\n\n return (\n <Dropdown\n selectedItem={items.find((item) => item.value === period)}\n onChange={(item) => handlePeriodSelect(item.value)}\n css={css`\n min-width: 135px;\n height: 44px;\n justify-content: space-between;\n white-space: nowrap;\n background: ${theme.colors.white};\n border: 1px solid ${theme.colors.grey};\n & svg path {\n stroke: ${theme.colors.greyDarker};\n }\n &:hover {\n border-color: ${theme.colors.greyDarker80};\n }\n &:focus {\n background: ${theme.colors.white};\n border-color: ${theme.colors.blueRoyal};\n box-shadow: none;\n &::before {\n border: none;\n }\n svg path {\n stroke: ${theme.colors.greyDarker};\n }\n }\n &[aria-expanded='true'] {\n box-shadow: none;\n background: ${theme.colors.white};\n border: 1px solid ${theme.colors.blueRoyal} !important;\n color: #000;\n }\n `}>\n {items.map((item) => (\n <CustomOption key={item.value} value={item.value} label={item.label}>\n {item.label}\n </CustomOption>\n ))}\n </Dropdown>\n );\n};\n","import { SVGProps } from '@ssa-ui-kit/core';\n\nexport const DashboardIcon = ({\n fill = '#2B2D31',\n size = 18,\n tooltip = 'Dashboard',\n ...props\n}: SVGProps) => (\n <svg\n width={`${size}px`}\n height={`${size}px`}\n viewBox=\"0 0 18 18\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}>\n <title>{tooltip}</title>\n <path\n d=\"M6.4541 11.2607C7.46278 11.363 8.25 12.2143 8.25 13.25V13.75L8.23926 13.9541C8.1438 14.8957 7.39565 15.6438 6.4541 15.7393L6.25 15.75H4.25L4.0459 15.7393C3.10435 15.6438 2.3562 14.8957 2.26074 13.9541L2.25 13.75V13.25C2.25 12.2143 3.03722 11.363 4.0459 11.2607L4.25 11.25H6.25L6.4541 11.2607ZM13.9541 8.26074C14.9628 8.363 15.75 9.21435 15.75 10.25V13.75L15.7393 13.9541C15.6438 14.8957 14.8957 15.6438 13.9541 15.7393L13.75 15.75H11.75L11.5459 15.7393C10.6043 15.6438 9.8562 14.8957 9.76074 13.9541L9.75 13.75V10.25C9.75 9.21435 10.5372 8.363 11.5459 8.26074L11.75 8.25H13.75L13.9541 8.26074ZM11.75 9.65039C11.4186 9.65039 11.1504 9.91863 11.1504 10.25V13.75C11.1504 14.0814 11.4186 14.3496 11.75 14.3496H13.75C14.0814 14.3496 14.3496 14.0814 14.3496 13.75V10.25C14.3496 9.91863 14.0814 9.65039 13.75 9.65039H11.75ZM4.25 12.6504C3.91863 12.6504 3.65039 12.9186 3.65039 13.25V13.75C3.65039 14.0814 3.91863 14.3496 4.25 14.3496H6.25C6.58137 14.3496 6.84961 14.0814 6.84961 13.75V13.25C6.84961 12.9186 6.58137 12.6504 6.25 12.6504H4.25ZM6.4541 2.26074C7.46278 2.363 8.25 3.21435 8.25 4.25V7.75L8.23926 7.9541C8.1438 8.89565 7.39565 9.6438 6.4541 9.73926L6.25 9.75H4.25L4.0459 9.73926C3.10435 9.6438 2.3562 8.89565 2.26074 7.9541L2.25 7.75V4.25C2.25 3.21435 3.03722 2.363 4.0459 2.26074L4.25 2.25H6.25L6.4541 2.26074ZM4.25 3.65039C3.91863 3.65039 3.65039 3.91863 3.65039 4.25V7.75C3.65039 8.08137 3.91863 8.34961 4.25 8.34961H6.25C6.58137 8.34961 6.84961 8.08137 6.84961 7.75V4.25C6.84961 3.91863 6.58137 3.65039 6.25 3.65039H4.25ZM13.9541 2.26074C14.9628 2.363 15.75 3.21435 15.75 4.25V4.75L15.7393 4.9541C15.6438 5.89565 14.8957 6.6438 13.9541 6.73926L13.75 6.75H11.75L11.5459 6.73926C10.6043 6.6438 9.8562 5.89565 9.76074 4.9541L9.75 4.75V4.25C9.75 3.21435 10.5372 2.363 11.5459 2.26074L11.75 2.25H13.75L13.9541 2.26074ZM11.75 3.65039C11.4186 3.65039 11.1504 3.91863 11.1504 4.25V4.75C11.1504 5.08137 11.4186 5.34961 11.75 5.34961H13.75C14.0814 5.34961 14.3496 5.08137 14.3496 4.75V4.25C14.3496 3.91863 14.0814 3.65039 13.75 3.65039H11.75Z\"\n fill={fill}\n />\n </svg>\n);\n","import { useTheme } from '@emotion/react';\nimport { Button, Drawer, Theme, useDrawer, Wrapper } from '@ssa-ui-kit/core';\n\nimport { DashboardIcon } from '@shared/icons';\n\nexport type DashboardSelectorDrawerProps = {\n drawer: ReturnType<typeof useDrawer>;\n children?: React.ReactNode;\n};\n\nexport const DashboardSelectorDrawer = ({\n drawer,\n children,\n}: DashboardSelectorDrawerProps) => {\n const theme = useTheme() as Theme;\n return (\n <Drawer.Root store={drawer}>\n <Drawer.Content\n css={{ width: '400px', padding: '24px 32px', zIndex: 10 }}>\n <Wrapper direction=\"column\" alignItems=\"start\" css={{ height: '100%' }}>\n <Drawer.Header css={{ width: '100%' }}>\n <Drawer.Title>Dashboard Selector</Drawer.Title>\n <Button\n variant=\"secondary\"\n css={{\n ':hover': {\n background: theme.colors.greyDropdownFocused,\n },\n width: '36px',\n height: '36px',\n padding: '8px',\n background: theme.colors.greyDropdownFocused,\n }}\n onClick={() => drawer.toggle(false)}>\n <DashboardIcon fill={theme.colors.white} />\n </Button>\n </Drawer.Header>\n {children}\n </Wrapper>\n </Drawer.Content>\n </Drawer.Root>\n );\n};\n","import { SVGProps } from '@ssa-ui-kit/core';\n\nexport const SidebarIcon = ({\n fill = '#2B2D31',\n size = 18,\n tooltip = 'Sidebar',\n ...props\n}: SVGProps) => (\n <svg\n width={`${size}px`}\n height={`${size}px`}\n viewBox=\"0 0 18 18\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}>\n <title>{tooltip}</title>\n <path\n d=\"M12.7061 2.25488C14.8194 2.36211 16.5 4.10996 16.5 6.25V11.75L16.4951 11.9561C16.3913 14.0012 14.7512 15.6413 12.7061 15.7451L12.5 15.75H5.5L5.29395 15.7451C3.2488 15.6413 1.60865 14.0012 1.50488 11.9561L1.5 11.75V6.25C1.5 4.10996 3.18056 2.36211 5.29395 2.25488L5.5 2.25H12.5L12.7061 2.25488ZM5.5 3.65039C4.06406 3.65039 2.90039 4.81406 2.90039 6.25V11.75C2.90039 13.1859 4.06406 14.3496 5.5 14.3496H10.9248V3.65039H5.5ZM12.3252 14.3496H12.5C13.9359 14.3496 15.0996 13.1859 15.0996 11.75V6.25C15.0996 4.81406 13.9359 3.65039 12.5 3.65039H12.3252V14.3496Z\"\n fill={fill}\n />\n </svg>\n);\n","import { useTheme } from '@emotion/react';\nimport { Button, Drawer, Theme, useDrawer } from '@ssa-ui-kit/core';\n\nimport { SidebarIcon } from '@shared/icons';\n\nexport type PanelSettingsDrawerProps = {\n drawer: ReturnType<typeof useDrawer>;\n children?: React.ReactNode;\n};\n\nexport const PanelSettingsDrawer = ({\n drawer,\n children,\n}: PanelSettingsDrawerProps) => {\n const theme = useTheme() as Theme;\n return (\n <Drawer.Root store={drawer}>\n <Drawer.Overlay>\n <Drawer.Content\n css={{ maxWidth: '400px', padding: '24px 32px', zIndex: 10 }}>\n <Drawer.Header css={{ width: '100%' }}>\n <Drawer.Title>Panel Settings</Drawer.Title>\n <Button\n variant=\"secondary\"\n css={{\n ':hover': {\n background: theme.colors.greyDropdownFocused,\n },\n width: '36px',\n height: '36px',\n padding: '8px',\n background: theme.colors.greyDropdownFocused,\n }}\n onClick={() => drawer.toggle(false)}>\n <SidebarIcon fill={theme.colors.white} />\n </Button>\n </Drawer.Header>\n {children}\n </Drawer.Content>\n </Drawer.Overlay>\n </Drawer.Root>\n );\n};\n","import { QueryOptions, useQuery } from '@shared/query';\nimport { InfraDashTransport, useTransport } from '@shared/transport';\n\ntype Options = QueryOptions & {\n transport?: InfraDashTransport;\n};\n\nexport const useGrafanaDashboards = (options?: Options) => {\n const { transport, ...queryOptions } = options || {};\n const _transport = useTransport(transport);\n const result = useQuery(\n ['grafana-dashboards'],\n async (signal) => {\n return await _transport.getGrafanaDashboards(signal);\n },\n queryOptions,\n );\n return result;\n};\n","import { useQuery, QueryOptions } from '@shared/query';\nimport { InfraDashTransport, useTransport } from '@shared/transport';\n\ntype Options = QueryOptions & {\n transport?: InfraDashTransport;\n};\n\nexport const useGrafanaPanels = (\n grafanaDashboardUid: string,\n options?: Options,\n) => {\n const { transport, ...queryOptions } = options || {};\n const _transport = useTransport(transport);\n const result = useQuery(\n ['grafana-panels', grafanaDashboardUid],\n async (signal) => {\n const panels = await _transport.getGrafanaPanels(\n grafanaDashboardUid,\n signal,\n );\n return panels.flatMap((panel) => {\n if (!panel.panelSchema || panel.panelSchema.type === 'row') {\n return panel.subPanels || [];\n }\n return panel;\n });\n },\n queryOptions,\n );\n return result;\n};\n","import { useState } from 'react';\nimport { css } from '@emotion/css';\nimport { useTheme } from '@emotion/react';\nimport {\n Accordion,\n AccordionGroup,\n AccordionGroupContextProvider,\n AccordionViewProps,\n Button,\n Icon,\n Input,\n ProgressCircle,\n Theme,\n Wrapper,\n} from '@ssa-ui-kit/core';\n\nimport { useGrafanaDashboards } from '@entities/grafana-dashboard';\nimport { useGrafanaPanels } from '@entities/grafana-panel';\nimport { ErrorIcon } from '@shared/icons';\nimport { GrafanaDashboard, GrafanaPanel } from '@shared/grafana';\nimport { useInfraDashContext } from '@shared/context';\n\ntype ExternalPanelListProps = {\n dashboard: GrafanaDashboard;\n panels: GrafanaPanel[];\n isLoaded: boolean;\n error: Error | null;\n onPanelClick?: (dashboard: GrafanaDashboard, panel: GrafanaPanel) => void;\n};\n\nconst ExternalPanelList = ({\n dashboard,\n panels,\n isLoaded,\n error,\n onPanelClick,\n}: ExternalPanelListProps) => {\n const theme = useTheme() as Theme;\n if (!isLoaded) {\n return (\n <Wrapper\n direction=\"column\"\n css={{ justifyContent: 'center', height: '100%', padding: '8px' }}>\n <ProgressCircle\n classnames={{\n inner: css(`\n background: none !important;\n `),\n outer: css(`\n background: none !important;\n border: 12px solid ${theme.colors.greyLighter};\n `),\n }}\n currentValue={3}\n max={10}\n size={20}\n color=\"blue\"\n mode=\"infinite\"\n />\n </Wrapper>\n );\n }\n if (error) {\n return (\n <Wrapper\n direction=\"column\"\n css={{ justifyContent: 'center', height: '100%' }}>\n <ErrorIcon />\n <p>Failed to load panels for {dashboard.title}</p>\n </Wrapper>\n );\n }\n if (!panels.length) {\n return (\n <Wrapper\n direction=\"column\"\n css={{ justifyContent: 'center', height: '100%' }}>\n <ErrorIcon />\n <p>No panels found for {dashboard.title}</p>\n </Wrapper>\n );\n }\n\n return (\n <>\n {panels.map((panel) => (\n <Button\n key={panel.id}\n variant=\"tertiary\"\n className={css`\n width: 100%;\n min-height: 34px;\n gap: 8px;\n padding: 8px 14px 8px 34px !important;\n justify-content: space-between;\n text-align: left;\n & svg {\n & path {\n stroke: ${theme.colors.greyDarker};\n stroke-width: 1.4px;\n }\n }\n `}\n onClick={() => onPanelClick?.(dashboard, panel)}>\n {panel.title}\n <Icon name=\"plus\" size={12} />\n </Button>\n ))}\n </>\n );\n};\n\ntype DashboardAccordionItemProps = {\n dashboard: GrafanaDashboard;\n search: string;\n onPanelClick?: (dashboard: GrafanaDashboard, panel: GrafanaPanel) => void;\n} & Partial<AccordionViewProps>;\n\nconst DashboardAccordionItem = ({\n dashboard,\n search,\n onPanelClick,\n ...accordionProps\n}: DashboardAccordionItemProps) => {\n const theme = useTheme() as Theme;\n const { panelRegistry } = useInfraDashContext();\n const panelsQuery = useGrafanaPanels(dashboard.id);\n\n const loadedPanels = panelsQuery.data ?? [];\n const availablePanels = loadedPanels.filter((panel) => {\n if (!panel.panelSchema?.type) {\n return false;\n }\n if (search && !panel.title.toLowerCase().includes(search.toLowerCase())) {\n return false;\n }\n const availableComponents = panelRegistry.findPanelConfigsByType(\n panel.panelSchema.type,\n );\n return availableComponents.length > 0;\n });\n\n if (search && panelsQuery.isLoaded && !availablePanels.length) {\n return null;\n }\n\n return (\n <Accordion\n key={dashboard.id}\n id={dashboard.id}\n title={dashboard.title}\n className={css`\n padding: 0 !important;\n align-items: start !important;\n `}\n renderTitle={({ title, isOpened, onClick }) => (\n <Button\n onClick={onClick}\n variant=\"tertiary\"\n className={css`\n width: 100%;\n min-height: 34px;\n gap: 8px;\n padding: 8px 14px !important;\n text-align: left;\n & svg {\n & path {\n stroke: ${theme.colors.greyDarker};\n stroke-width: 1.4px;\n }\n }\n `}\n startIcon={\n isOpened ? (\n <Icon name=\"carrot-down\" size={12} />\n ) : (\n <Icon name=\"carrot-right\" size={12} />\n )\n }>\n {title}\n </Button>\n )}\n renderContent={({ isOpened }) => (\n <div\n css={{\n width: '100%',\n display: isOpened ? 'block' : 'none',\n fontWeight: 500,\n fontSize: '14px',\n }}>\n <ExternalPanelList\n panels={availablePanels}\n isLoaded={panelsQuery.isLoaded}\n error={panelsQuery.error}\n dashboard={dashboard}\n onPanelClick={onPanelClick}\n />\n </div>\n )}\n {...accordionProps}\n />\n );\n};\n\nexport type ExternalDashboardsListProps = {\n onPanelClick?: (dashboard: GrafanaDashboard, panel: GrafanaPanel) => void;\n} & React.HTMLAttributes<HTMLDivElement>;\n\nexport const ExternalDashboardsList = ({\n onPanelClick,\n ...divProps\n}: ExternalDashboardsListProps) => {\n const theme = useTheme() as Theme;\n const [search, setSearch] = useState('');\n const dashboardsQuery = useGrafanaDashboards();\n\n if (!dashboardsQuery.isLoaded) {\n return (\n <Wrapper\n direction=\"column\"\n css={{ justifyContent: 'center', height: '100%' }}\n {...divProps}>\n <ProgressCircle\n classnames={{\n inner: css(`\n background: none !important;\n `),\n outer: css(`\n background: none !important;\n border: 12px solid ${theme.colors.greyLighter};\n `),\n }}\n currentValue={3}\n max={10}\n size={64}\n color=\"blue\"\n mode=\"infinite\"\n />\n </Wrapper>\n );\n }\n if (dashboardsQuery.error) {\n return (\n <Wrapper\n direction=\"column\"\n css={{ justifyContent: 'center', height: '100%' }}\n {...divProps}>\n <ErrorIcon />\n <p>Failed to load external dashboards</p>\n </Wrapper>\n );\n }\n if (!dashboardsQuery.data.length) {\n return (\n <Wrapper\n direction=\"column\"\n css={{ justifyContent: 'center', height: '100%' }}\n {...divProps}>\n <ErrorIcon />\n <p>No external dashboards found</p>\n </Wrapper>\n );\n }\n\n return (\n <>\n <Input\n name=\"panel-search\"\n placeholder=\"Search...\"\n inputProps={{\n value: search,\n onChange: (e) => setSearch(e.target.value),\n }}\n css={{ marginTop: '24px' }}\n />\n <AccordionGroupContextProvider>\n <AccordionGroup\n size=\"small\"\n css={{ overflow: 'auto', width: '100%' }}\n {...divProps}>\n {dashboardsQuery.data.map((dashboard) => (\n <DashboardAccordionItem\n // id is required by AccordionGroup logic\n id={dashboard.id}\n key={dashboard.id}\n dashboard={dashboard}\n search={search}\n onPanelClick={onPanelClick}\n />\n ))}\n </AccordionGroup>\n </AccordionGroupContextProvider>\n </>\n );\n};\n","import { Dashboard } from '@shared/dashboard';\nimport { GrafanaDashboard, GrafanaPanel } from '@shared/grafana';\nimport { matchPanelDataSource, Panel } from '@shared/panel';\nimport { PanelRegistry } from '@shared/panelRegistry';\n\nexport type AppendPanelParams = {\n dashboard: Dashboard;\n panelRegistry: PanelRegistry;\n source: {\n type: 'grafana';\n grafanaDashboard: GrafanaDashboard;\n grafanaPanel: GrafanaPanel;\n };\n};\nexport const appendPanel = (params: AppendPanelParams) => {\n const { dashboard, panelRegistry, source } = params;\n const nextY = dashboard.panels.reduce(\n (maxY, { panelDefinition: { gridPos } }) =>\n Math.max(maxY, gridPos.y + gridPos.h),\n 0,\n );\n\n const newPanel = matchPanelDataSource(source.type, {\n grafana: () => {\n const { grafanaDashboard, grafanaPanel } = source;\n if (!grafanaPanel.panelSchema) {\n return; // no schema, cannot append panel\n }\n const [defaultComponentConfig] = panelRegistry.findPanelConfigsByType(\n grafanaPanel.panelSchema.type,\n );\n const newPanel: Panel = {\n id: -Date.now(), // use a negative ID to indicate a new panel\n source: {\n type: 'grafana',\n dashboardUid: grafanaDashboard.id,\n panelId: grafanaPanel.id,\n },\n panelDefinition: {\n version: 1,\n component: {\n id: defaultComponentConfig.componentId,\n props: {},\n },\n gridPos: {\n x: 0,\n y: nextY,\n w: 12,\n h: 6,\n },\n },\n panelSchema: grafanaPanel.panelSchema,\n title: grafanaPanel.title,\n };\n return newPanel;\n },\n });\n\n if (!newPanel) {\n return dashboard; // no new panel created, return original dashboard\n }\n\n return {\n ...dashboard,\n panels: [...(dashboard.panels || []), newPanel],\n };\n};\n\nexport type UpdatePanelParams = {\n dashboard: Dashboard;\n panel: Panel;\n};\n\nexport const updatePanel = ({ dashboard, panel }: UpdatePanelParams) => {\n const newPanels = dashboard.panels.map((p) =>\n p.id === panel.id ? { ...p, ...panel } : p,\n );\n return {\n ...dashboard,\n panels: newPanels,\n };\n};\n\nexport type RemovePanelParams = {\n dashboard: Dashboard;\n panel: Panel;\n};\n\nexport const removePanel = ({ dashboard, panel }: RemovePanelParams) => {\n const newPanels = dashboard.panels.filter((p) => p.id !== panel.id);\n return {\n ...dashboard,\n panels: newPanels,\n };\n};\n\nexport type ApplyNewLayoutParams = {\n dashboard: Dashboard;\n newLayout: ReactGridLayout.Layout[];\n};\n\nexport const applyNewLayout = ({\n dashboard,\n newLayout,\n}: ApplyNewLayoutParams) => {\n const newLayoutMap = newLayout.reduce(\n (map, { i, x, y, w, h }) => ({\n ...map,\n [i]: { x, y, w, h },\n }),\n {} as Record<string, Omit<ReactGridLayout.Layout, 'i'>>,\n );\n\n const newDashboard = {\n ...dashboard,\n panels: dashboard.panels.map((panel) => {\n const newGridPos = newLayoutMap[panel.id.toString()];\n if (!newGridPos) {\n throw new Error(`New position for the panel ${panel.id} not found`);\n }\n return {\n ...panel,\n panelDefinition: {\n ...panel.panelDefinition,\n gridPos: newGridPos,\n },\n };\n }),\n };\n\n return newDashboard;\n};\n","import { useTheme } from '@emotion/react';\nimport {\n Button,\n Icon,\n Popover,\n PopoverContent,\n PopoverTrigger,\n Theme,\n usePopoverContext,\n} from '@ssa-ui-kit/core';\n\nimport { Panel } from '@shared/panel';\n\nexport type PanelControlProps = {\n panel: Panel;\n onRemove?: (panel: Panel) => void;\n onEdit?: (panel: Panel) => void;\n};\n\nexport const PanelControlContent = ({\n panel,\n onEdit,\n onRemove,\n}: PanelControlProps) => {\n const theme = useTheme() as Theme;\n const popover = usePopoverContext();\n\n const handleClose = () => {\n popover.setOpen(false);\n };\n\n return (\n <PopoverContent\n css={{\n gap: 15,\n alignItems: 'start',\n border: `2px solid ${theme.colors.greyLighter}`,\n backgroundColor: theme.colors.white,\n borderRadius: 15,\n padding: 15,\n }}>\n <Button\n variant=\"tertiary\"\n css={{ gap: 5, width: '100%' }}\n onClick={() => {\n onEdit?.(panel);\n handleClose();\n }}\n startIcon={<Icon name=\"edit\" size={14} />}>\n Edit\n </Button>\n <Button\n variant=\"tertiary\"\n css={{ gap: 5, width: '100%' }}\n onClick={() => {\n onRemove?.(panel);\n handleClose();\n }}\n startIcon={<Icon name=\"bin\" size={14} />}>\n Remove\n </Button>\n </PopoverContent>\n );\n};\n\nexport const PanelControl = (props: PanelControlProps) => {\n return (\n <Popover>\n <PopoverTrigger variant=\"tertiary\" css={{ marginRight: 5, marginTop: 5 }}>\n <Icon name=\"more-vertical\" size={14} />\n </PopoverTrigger>\n <PanelControlContent {...props} />\n </Popover>\n );\n};\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@rjsf/validator-ajv8\");","import { useEffect, useRef, useState } from 'react';\nimport { css } from '@emotion/css';\nimport {\n Button,\n JsonSchema,\n Typeahead,\n TypeaheadOption,\n} from '@ssa-ui-kit/core';\nimport validator from '@rjsf/validator-ajv8';\n\nimport { useInfraDashContext } from '@shared/context';\nimport { Panel } from '@shared/panel';\n\nexport type PanelSettingsProps = {\n panel: Panel;\n onChange?: (panel: Panel) => void;\n onSave?: () => void;\n};\n\nexport const PanelSettings = ({\n panel,\n onChange,\n onSave,\n}: PanelSettingsProps) => {\n const { panelRegistry } = useInfraDashContext();\n const [originalPanel, setOriginalPanel] = useState<Panel>(panel);\n const savedRef = useRef(false);\n\n if (panel.id !== originalPanel.id) {\n setOriginalPanel(panel);\n }\n\n // cleanup function to reset the original panel when the component unmounts or panel changes\n useEffect(() => {\n return () => {\n if (savedRef.current) {\n savedRef.current = false;\n return;\n }\n onChange?.(originalPanel);\n };\n }, [originalPanel]);\n\n const panelComponent = panel.panelDefinition.component;\n\n const { propsSchema, uiSchema } = panelRegistry.getPanelConfig(\n panelComponent.id,\n );\n const availableComponents = panelRegistry.findPanelConfigsByType(\n panel.panelSchema.type,\n );\n\n const handleComponentChange = (componentId: string) => {\n const originalComponent = originalPanel.panelDefinition.component;\n const props =\n originalComponent.id === componentId ? originalComponent.props : {};\n\n const newPanel: Panel = {\n ...panel,\n panelDefinition: {\n ...panel.panelDefinition,\n component: { id: componentId, props },\n },\n };\n onChange?.(newPanel);\n };\n\n const handlePropsChange = (props: Record<string, unknown>) => {\n const newPanel: Panel = {\n ...panel,\n panelDefinition: {\n ...panel.panelDefinition,\n component: {\n ...panelComponent,\n props: props,\n },\n },\n };\n onChange?.(newPanel);\n };\n\n const handlePanelSave = () => {\n savedRef.current = true;\n setOriginalPanel(panel);\n onSave?.();\n };\n\n return (\n <>\n <Typeahead\n label=\"Panel Component\"\n wrapperClassName={css`\n margin-top: 20px;\n width: 100% !important;\n `}\n filterOptions={false}\n selectedItems={[panelComponent.id]}\n onChange={(componentId) =>\n handleComponentChange(componentId as string)\n }>\n {availableComponents.map((component) => (\n <TypeaheadOption\n key={component.componentId}\n value={component.componentId}\n label={component.name}>\n {component.name}\n </TypeaheadOption>\n ))}\n </Typeahead>\n {propsSchema && (\n <JsonSchema.Form\n idPrefix=\"infra-dash-panel-settings\"\n onChange={({ formData }) =>\n handlePropsChange(formData as Record<string, unknown>)\n }\n css={{ marginTop: '20px' }}\n formData={panelComponent.props}\n schema={propsSchema}\n uiSchema={{\n 'ui:submitButtonOptions': { norender: true },\n ...uiSchema,\n }}\n validator={validator}\n />\n )}\n <Button\n css={{ marginTop: '20px' }}\n variant=\"info\"\n onClick={handlePanelSave}>\n Save\n </Button>\n </>\n );\n};\n","import { useEffect, useState } from 'react';\n\nimport ReactGridLayout from 'react-grid-layout';\nimport { ErrorBoundary } from 'react-error-boundary';\nimport { Button, Checkbox, Input, useDrawer, Wrapper } from '@ssa-ui-kit/core';\nimport { useUncontrolled } from '@ssa-ui-kit/hooks';\n\nimport {\n DashboardPanelGrid,\n DashboardPanelGridProps,\n} from '@features/DashboardPanelGrid';\nimport {\n useCreateDashboard,\n useDashboard,\n useUpdateDashboard,\n} from '@entities/dashboard';\nimport { PeriodSelector } from '@components/PeriodSelector';\nimport { DashboardError } from '@components/DashboardError';\nimport { LoadingDashboard } from '@components/LoadingDashboard';\nimport { GrafanaDashboard, GrafanaPanel } from '@shared/grafana';\nimport { Dashboard } from '@shared/dashboard';\nimport { DashboardIcon } from '@shared/icons';\nimport { Panel, PANEL_DATA_SOURCE } from '@shared/panel';\nimport {\n InfraDashPanelDataPeriodProvider,\n useInfraDashContext,\n useInfraDashPanelDataPeriod,\n UseInfraDashPanelDataPeriodOptions,\n} from '@shared/context';\n\nimport { DashboardSelectorDrawer } from './components/DashboardSelectorDrawer';\nimport { PanelSettingsDrawer } from './components/PanelSettingsDrawer';\nimport { ExternalDashboardsList } from './components/ExternalDashboardsList';\nimport {\n appendPanel,\n applyNewLayout,\n removePanel,\n updatePanel,\n} from './helpers';\nimport { PanelControl } from './components/PanelControl';\nimport { PanelSettings } from './components/PanelSettings';\n\nexport type DashboardEditorProps = {\n dashboard?: Dashboard;\n defaultDashboard?: Dashboard;\n gridProps?: DashboardPanelGridProps;\n onChange?: (dashboard: Dashboard) => void;\n onSaved?: (dashboard: Dashboard) => void;\n onCreate?: () => void;\n onError?: (error: Error) => void;\n} & Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange' | 'onError'>;\n\nexport const DashboardEditorInternal = ({\n dashboard: controlledDashboard,\n defaultDashboard,\n gridProps,\n onChange,\n onSaved,\n onCreate,\n onError,\n ...divProps\n}: DashboardEditorProps) => {\n const [selectedPanelId, setSelectedPanelId] = useState<number | null>(null);\n const { panelRegistry } = useInfraDashContext();\n const dashboardsSelectorDrawer = useDrawer({});\n const panelSettingsDrawer = useDrawer({\n position: 'right',\n onOpenChange: (open) => {\n if (!open && selectedPanelId !== null) {\n setSelectedPanelId(null);\n }\n },\n });\n const [dashboard, setDashboard] = useUncontrolled({\n value: controlledDashboard,\n defaultValue: defaultDashboard,\n finalValue: {\n dashboardDefinition: { version: 1 },\n id: -1,\n panels: [],\n published: false,\n title: 'New Dashboard',\n },\n onChange,\n });\n\n useEffect(() => {\n // if the default dashboard changes, update the current dashboard\n if (defaultDashboard && dashboard.id !== defaultDashboard.id) {\n setDashboard(defaultDashboard);\n }\n }, [dashboard.id, defaultDashboard?.id]);\n\n const { mutate: updateDashboard, isLoading: isUpdating } = useUpdateDashboard(\n dashboard.id,\n );\n const { mutate: createDashboard, isLoading: isCreating } =\n useCreateDashboard();\n\n const handleAddPanel = (\n grafanaDashboard: GrafanaDashboard,\n grafanaPanel: GrafanaPanel,\n ) => {\n const newDashboard = appendPanel({\n dashboard,\n panelRegistry,\n source: {\n type: PANEL_DATA_SOURCE.GRAFANA,\n grafanaDashboard,\n grafanaPanel,\n },\n });\n setDashboard(newDashboard);\n };\n\n const handleLayoutChange = (newLayout: ReactGridLayout.Layout[]) => {\n setDashboard(applyNewLayout({ dashboard, newLayout }));\n };\n\n const handlePanelEdit = (panel: Panel) => {\n setSelectedPanelId(panel.id);\n panelSettingsDrawer.toggle(true);\n };\n\n const handlePanelUpdate = (panel: Panel) => {\n setDashboard(updatePanel({ dashboard, panel }));\n };\n\n const handlePanelRemove = (panel: Panel) => {\n setDashboard(removePanel({ dashboard, panel }));\n };\n\n const handlePersistDashboard = () => {\n if (dashboard.id > 0) {\n updateDashboard(dashboard)\n .then(() => onSaved?.(dashboard))\n .catch((error) => onError?.(error));\n } else {\n createDashboard(dashboard)\n .then(() => onCreate?.())\n .catch((error) => onError?.(error));\n }\n };\n\n const selectedPanel =\n selectedPanelId !== null\n ? dashboard.panels.find((p) => p.id === selectedPanelId)\n : null;\n\n const cannotPersist = isCreating || isUpdating || !dashboard.panels.length;\n\n return (\n <Wrapper\n alignItems=\"start\"\n css={{ height: '100%', position: 'relative' }}\n {...divProps}>\n <DashboardSelectorDrawer drawer={dashboardsSelectorDrawer}>\n <ExternalDashboardsList\n css={{ marginTop: '20px' }}\n onPanelClick={handleAddPanel}\n />\n </DashboardSelectorDrawer>\n <Wrapper\n direction=\"column\"\n alignItems=\"start\"\n css={{ flexGrow: 1, padding: '24px 32px', height: '100%' }}>\n <Wrapper css={{ gap: '24px' }}>\n {!dashboardsSelectorDrawer.opened &&\n !dashboardsSelectorDrawer.transition.isMounted && (\n <Button\n variant=\"secondary\"\n css={{ width: '36px', height: '36px', padding: '8px' }}\n onClick={() => dashboardsSelectorDrawer.toggle(true)}>\n <DashboardIcon />\n </Button>\n )}\n <h2\n css={{\n flexShrink: 0,\n fontWeight: 600,\n fontSize: '20px',\n textAlign: 'center',\n }}>\n Dashboard Editor\n </h2>\n <Input\n name=\"dashboard-name\"\n placeholder=\"Dashboard Name\"\n inputProps={{\n value: dashboard.title,\n onChange: (e) =>\n setDashboard({ ...dashboard, title: e.target.value }),\n }}\n css={{ maxWidth: '250px' }}\n />\n <Checkbox\n text=\"Publish\"\n initialState={dashboard.published}\n onChange={(published) => setDashboard({ ...dashboard, published })}\n />\n <PeriodSelector />\n <Button\n variant=\"info\"\n css={{ height: '46px' }}\n isDisabled={cannotPersist}\n onClick={handlePersistDashboard}>\n {dashboard.id > 0 ? 'Save' : 'Create'}\n </Button>\n </Wrapper>\n <DashboardPanelGrid\n resizable\n draggable\n dashboard={dashboard}\n css={{ marginTop: '20px', overflow: 'auto', height: '100%' }}\n onLayoutChange={handleLayoutChange}\n onDragStart={() => panelSettingsDrawer.toggle(false)}\n onResizeStart={() => panelSettingsDrawer.toggle(false)}\n renderPanelControl={(panel) => (\n <PanelControl\n panel={panel}\n onEdit={() => handlePanelEdit(panel)}\n onRemove={() => handlePanelRemove(panel)}\n />\n )}\n {...gridProps}\n />\n </Wrapper>\n <PanelSettingsDrawer drawer={panelSettingsDrawer}>\n {selectedPanel && (\n <PanelSettings\n panel={selectedPanel}\n onChange={handlePanelUpdate}\n onSave={() => panelSettingsDrawer.toggle(false)}\n />\n )}\n </PanelSettingsDrawer>\n </Wrapper>\n );\n};\n\nexport const DashboardEditor = ({\n dashboardId,\n ...props\n}: DashboardEditorProps & {\n dashboardId?: number;\n} & UseInfraDashPanelDataPeriodOptions) => {\n const { dashboard, defaultDashboard } = props;\n\n const dashboardById = useDashboard(dashboardId ?? -1, {\n enabled: !!dashboardId && !dashboard && !defaultDashboard,\n });\n\n const DashboardWrapper: React.FC<DashboardEditorProps> = (editorProps) => {\n const panelDataPeriod = useInfraDashPanelDataPeriod({\n ...props,\n });\n\n return (\n <InfraDashPanelDataPeriodProvider value={panelDataPeriod}>\n <ErrorBoundary\n fallback={<DashboardError>Something went wrong</DashboardError>}>\n <DashboardEditorInternal {...editorProps} />\n </ErrorBoundary>\n </InfraDashPanelDataPeriodProvider>\n );\n };\n\n if (!dashboardId) {\n return <DashboardWrapper {...props} />;\n }\n if (!dashboardById.isLoaded) {\n return <LoadingDashboard />;\n }\n if (dashboardById.error) {\n return <DashboardError />;\n }\n return <DashboardWrapper {...props} defaultDashboard={dashboardById.data} />;\n};\n","export * from './DashboardEditor';\n","export const tryCatch = async <T, E = Error>(promise: T | Promise<T>) => {\n try {\n const data = await promise;\n return [null, data] as const;\n } catch (error) {\n return [error as E, null] as const;\n }\n};\n","import { Dashboard } from '../dashboard';\nimport { tryCatch } from '../exception';\nimport { GrafanaDashboard, GrafanaPanel, GrafanaPanelData } from '../grafana';\nimport {\n CreateDashboardPayload,\n InfraDashTransport,\n UpdateDashboardPayload,\n} from './baseTransport';\n\nexport type RestInfraDashTransportConfig = {\n baseUrl: string;\n authMiddleware?: (request: Request) => Promise<Request> | Request;\n unwrapResponse?: <T>(response: unknown) => Promise<T> | T;\n};\n\nexport class RestInfraDashTransport implements InfraDashTransport {\n protected baseUrl: string;\n protected authMiddleware?: (request: Request) => Promise<Request> | Request;\n protected unwrapResponse?: <T>(response: unknown) => Promise<T> | T;\n\n constructor({\n baseUrl,\n authMiddleware,\n unwrapResponse,\n }: RestInfraDashTransportConfig) {\n if (!baseUrl) {\n throw new Error('Base URL is required for RestInfraDashTransport');\n }\n this.baseUrl = baseUrl;\n this.authMiddleware = authMiddleware;\n this.unwrapResponse = unwrapResponse;\n }\n\n getUrl(path: string): string {\n return `${this.baseUrl}${path}`;\n }\n\n async applyMiddlewares(request: Request) {\n if (this.authMiddleware) {\n return await this.authMiddleware(request);\n }\n return request;\n }\n\n // TODO: add validation schema support\n protected async makeRequest<T = unknown>(\n request: Request,\n parseResponse = true,\n ): Promise<T> {\n const finalizedRequest = await this.applyMiddlewares(request);\n const [error, response] = await tryCatch(fetch(finalizedRequest));\n if (error || !response.ok) {\n throw new Error(\n `Request ${finalizedRequest.url} failed: ${error?.message ?? response?.statusText}`,\n );\n }\n if (!parseResponse) {\n return response as unknown as T;\n }\n const json = await response.json();\n let result = json as T;\n if (this.unwrapResponse) {\n result = await this.unwrapResponse<T>(json);\n }\n return result;\n }\n\n async getGrafanaDashboards(signal?: AbortSignal) {\n const request = new Request(this.getUrl('/grafana/dashboards'), {\n method: 'GET',\n signal,\n });\n return await this.makeRequest<GrafanaDashboard[]>(request);\n }\n\n async getGrafanaPanels(grafanaDashboardUid: string, signal?: AbortSignal) {\n const request = new Request(\n this.getUrl(`/grafana/dashboards/${grafanaDashboardUid}`),\n {\n method: 'GET',\n signal,\n },\n );\n return await this.makeRequest<GrafanaPanel[]>(request);\n }\n\n async getGrafanaPanelData(\n {\n dashboardUid,\n panelId,\n period,\n }: {\n dashboardUid: string;\n panelId: number;\n period?: number;\n },\n signal?: AbortSignal,\n ) {\n const request = new Request(\n this.getUrl(\n `/grafana/dashboards/${dashboardUid}/panel/${panelId}?period=${period ?? 0}`,\n ),\n {\n method: 'POST',\n signal,\n },\n );\n return await this.makeRequest<GrafanaPanelData>(request);\n }\n\n async getDashboards(signal?: AbortSignal) {\n const request = new Request(this.getUrl(`/dashboards`), {\n method: 'GET',\n signal,\n });\n return await this.makeRequest<Pick<Dashboard, 'id' | 'title'>[]>(request);\n }\n\n async getPublishedDashboards(signal?: AbortSignal) {\n const request = new Request(this.getUrl(`/dashboards/published`), {\n method: 'GET',\n signal,\n });\n return await this.makeRequest<Pick<Dashboard, 'id' | 'title'>[]>(request);\n }\n\n async getDashboard(dashboardUid: number, signal?: AbortSignal) {\n const request = new Request(this.getUrl(`/dashboards/${dashboardUid}`), {\n method: 'GET',\n signal,\n });\n return await this.makeRequest<Dashboard>(request);\n }\n\n async createDashboard(payload: CreateDashboardPayload, signal?: AbortSignal) {\n const request = new Request(this.getUrl(`/dashboards`), {\n method: 'POST',\n body: JSON.stringify(payload),\n headers: {\n 'Content-Type': 'application/json',\n },\n signal,\n });\n return await this.makeRequest(request, false);\n }\n\n async updateDashboard(payload: UpdateDashboardPayload, signal?: AbortSignal) {\n const { dashboardId, ...body } = payload;\n const request = new Request(this.getUrl(`/dashboards/${dashboardId}`), {\n method: 'POST',\n body: JSON.stringify(body),\n headers: {\n 'Content-Type': 'application/json',\n },\n signal,\n });\n return await this.makeRequest(request, false);\n }\n\n async deleteDashboard(dashboardId: number, signal?: AbortSignal) {\n const request = new Request(this.getUrl(`/dashboards/${dashboardId}`), {\n method: 'DELETE',\n signal,\n });\n return await this.makeRequest(request, false);\n }\n}\n","export * from './baseTransport';\nexport * from './restTransport';\nexport * from './useTransport';\n","export * from './PeriodSelector';\n","import { hashKey, partialMatchKey, QueryKey } from './key';\n\nexport type QueryState<T> =\n | { isLoaded: false; isFetching: boolean; data: undefined; error: null }\n | { isLoaded: true; isFetching: boolean; data: T; error: null }\n | { isLoaded: true; isFetching: boolean; data: undefined; error: Error };\n\ntype Subscriber<T> = (state: QueryState<T>) => void;\n\nexport type Fetcher<T> = (signal: AbortSignal) => Promise<T>;\nexport type QueryOptions = {\n enabled?: boolean;\n};\n\nexport class QueryEntry<T> {\n key: QueryKey;\n fetcher: Fetcher<T>;\n options: QueryOptions;\n state: QueryState<T> = {\n data: undefined,\n error: null,\n isLoaded: false,\n isFetching: false,\n };\n promise: Promise<T | undefined> | null = null;\n subscribers: Set<Subscriber<T>> = new Set();\n\n private controller: AbortController | null = null;\n\n constructor(key: QueryKey, fetcher: Fetcher<T>, options?: QueryOptions) {\n this.key = key;\n this.fetcher = fetcher;\n this.options = { enabled: options?.enabled ?? true };\n }\n\n private notify() {\n // ensure subscribers are notified after the current call stack\n queueMicrotask(() => {\n for (const sub of this.subscribers) {\n sub(this.state);\n }\n });\n }\n\n isActive() {\n return this.subscribers.size && this.options.enabled;\n }\n\n updateEntity(fetcher: Fetcher<T>, options?: QueryOptions): QueryEntry<T> {\n this.fetcher = fetcher;\n this.options = { ...this.options, ...options };\n this.fetch(); // re-trigger fetch with new fetcher\n return this;\n }\n\n fetch() {\n if (!this.options.enabled) {\n if (this.state.isLoaded || this.state.isFetching) {\n this.state = {\n ...this.state,\n data: undefined,\n error: null,\n isLoaded: false,\n isFetching: false,\n };\n this.cancel();\n this.notify();\n }\n return Promise.resolve(this.state.data);\n }\n\n // dedupe in-flight fetches\n if (this.promise && !this.controller?.signal.aborted) {\n return this.promise;\n }\n\n if (this.state.isLoaded && !this.state.isFetching) {\n return Promise.resolve(this.state.data);\n }\n\n this.state = {\n ...this.state,\n isFetching: true,\n };\n this.notify();\n\n this.controller = new AbortController();\n const signal = this.controller.signal;\n\n this.promise = this.fetcher(signal)\n .then((data) => {\n this.state = { data, error: null, isLoaded: true, isFetching: false };\n return data;\n })\n .catch((error) => {\n if (signal.aborted) {\n return undefined;\n }\n this.state = {\n data: undefined,\n error,\n isLoaded: true,\n isFetching: false,\n };\n return undefined;\n })\n .finally(() => {\n this.promise = null;\n this.notify();\n });\n\n return this.promise;\n }\n\n subscribe(sub: Subscriber<T>): () => void {\n this.subscribers.add(sub);\n sub(this.state);\n return () => {\n this.subscribers.delete(sub);\n setTimeout(() => {\n if (!this.subscribers.size) {\n this.cancel();\n }\n });\n };\n }\n\n setData(data: T) {\n this.state = {\n ...this.state,\n isLoaded: true,\n isFetching: false,\n error: null,\n data,\n };\n this.notify();\n }\n\n invalidate(reset = false) {\n if (reset) {\n // if reset is true, we reset the state to initial\n this.state = {\n data: undefined,\n error: null,\n isLoaded: false,\n isFetching: false,\n };\n }\n // kick off a new fetch\n this.state.isFetching = true;\n this.cancel();\n this.fetch();\n }\n\n cancel() {\n if (this.controller) {\n this.controller.abort('Query cancelled');\n this.controller = null;\n }\n }\n}\n\nexport class QueryClient {\n private cache = new Map<string, QueryEntry<unknown>>();\n\n get<T>(key: QueryKey): QueryEntry<T> | undefined {\n return this.cache.get(hashKey(key)) as QueryEntry<T> | undefined;\n }\n\n fetchQuery<T>(\n key: QueryKey,\n fetcher: Fetcher<T>,\n options?: QueryOptions,\n ): QueryEntry<T> {\n const keyHash = hashKey(key);\n let entry = this.cache.get(keyHash) as QueryEntry<T> | undefined;\n if (!entry) {\n entry = new QueryEntry<T>(key, fetcher, options);\n this.cache.set(keyHash, entry as QueryEntry<unknown>);\n }\n entry.fetch(); // trigger network (or return cached in-flight promise)\n return entry;\n }\n\n invalidateQueries({\n key,\n exact,\n reset,\n type = 'all',\n }: {\n key: QueryKey;\n exact?: boolean;\n reset?: boolean;\n type?: 'active' | 'inactive' | 'all';\n }) {\n const matchingEntries: QueryEntry<unknown>[] = [];\n for (const [hash, entry] of this.cache.entries()) {\n if (type !== 'all') {\n const active = entry.isActive();\n if ((type === 'active' && !active) || (type === 'inactive' && active)) {\n continue; // skip entries that don't match the type\n }\n }\n if (exact) {\n if (hash === hashKey(key)) {\n matchingEntries.push(entry);\n }\n } else {\n if (partialMatchKey(entry.key, key)) {\n matchingEntries.push(entry);\n }\n }\n }\n for (const entry of matchingEntries) {\n entry.invalidate(reset);\n }\n }\n\n setQueryData<T>(key: QueryKey, data: T) {\n const keyHash = hashKey(key);\n const existing = this.cache.get(keyHash) as QueryEntry<T> | undefined;\n if (existing) {\n existing.setData(data);\n } else {\n const newEntry = new QueryEntry<T>(key, () => Promise.resolve(data));\n newEntry.setData(data);\n this.cache.set(keyHash, newEntry as QueryEntry<unknown>);\n }\n }\n}\n\nexport const queryClient = new QueryClient();\n","import { hashKey, MutationKey } from './key';\n\nexport type MutationState<T> = {\n data?: T;\n error?: unknown;\n isLoading: boolean;\n};\n\ntype Subscriber<T> = (state: MutationState<T>) => void;\n\nexport type MutationFn<T, V> = (\n variables: V,\n signal: AbortSignal,\n) => Promise<T>;\n\nexport type MutationOptions<T, V> = {\n onSuccess?: (data: T, variables: V) => void;\n onError?: (error: unknown, variables: V) => void;\n onSettled?: (\n error: unknown | undefined,\n data: T | undefined,\n variables: V,\n ) => void;\n};\n\nexport class MutationEntry<T, V> {\n key: MutationKey;\n mutationFn: MutationFn<T, V>;\n options: MutationOptions<T, V> | undefined;\n state: MutationState<T> = {\n data: undefined,\n error: undefined,\n isLoading: false,\n };\n promise: Promise<T | undefined> | null = null;\n subscribers: Set<Subscriber<T>> = new Set();\n\n private controller: AbortController | null = null;\n\n constructor(\n key: MutationKey,\n mutationFn: MutationFn<T, V>,\n options?: MutationOptions<T, V>,\n ) {\n this.key = key;\n this.mutationFn = mutationFn;\n this.options = options;\n }\n\n private notify() {\n for (const sub of this.subscribers) {\n sub(this.state);\n }\n }\n\n updateEntity(\n mutationFn: MutationFn<T, V>,\n options?: MutationOptions<T, V>,\n ): void {\n this.mutationFn = mutationFn;\n if (options !== undefined) {\n this.options = options;\n }\n }\n\n mutate(...args: V extends undefined ? [] : [V]): Promise<T | undefined> {\n const variables = args[0] as V;\n\n // abort any existing in-flight mutation\n if (this.controller) {\n this.controller.abort();\n }\n this.controller = new AbortController();\n const signal = this.controller.signal;\n\n this.state = { ...this.state, isLoading: true };\n this.notify();\n\n const { onSuccess, onError, onSettled } = this.options || {};\n\n this.promise = this.mutationFn(variables, signal)\n .then((data) => {\n this.state = { data, error: undefined, isLoading: false };\n this.notify();\n if (onSuccess) {\n try {\n onSuccess(data, variables);\n } catch (err) {\n console.error('Error in onSuccess callback:', err);\n }\n }\n if (onSettled) {\n try {\n onSettled(undefined, data, variables);\n } catch (err) {\n console.error('Error in onSettled callback (success):', err);\n }\n }\n return data;\n })\n .catch((error) => {\n if (signal.aborted) {\n return undefined;\n }\n this.state = { data: undefined, error, isLoading: false };\n this.notify();\n if (onError) {\n try {\n onError(error, variables);\n } catch (err) {\n console.error('Error in onError callback:', err);\n }\n }\n if (onSettled) {\n try {\n onSettled(error, undefined, variables);\n } catch (err) {\n console.error('Error in onSettled callback (error):', err);\n }\n }\n throw error;\n })\n .finally(() => {\n this.promise = null;\n });\n\n return this.promise;\n }\n\n subscribe(sub: Subscriber<T>): () => void {\n this.subscribers.add(sub);\n sub(this.state);\n return () => {\n this.subscribers.delete(sub);\n };\n }\n\n cancel() {\n if (this.controller) {\n this.controller.abort();\n }\n }\n\n reset() {\n this.state = { data: undefined, error: undefined, isLoading: false };\n this.notify();\n this.cancel();\n }\n}\n\nexport class MutationClient {\n private cache = new Map<string, MutationEntry<unknown, unknown>>();\n\n fetchMutation<T, V>(\n key: MutationKey,\n mutationFn: MutationFn<T, V>,\n options?: MutationOptions<T, V>,\n ): MutationEntry<T, V> {\n const keyHash = hashKey(key);\n let entry = this.cache.get(keyHash) as MutationEntry<T, V> | undefined;\n if (!entry) {\n entry = new MutationEntry<T, V>(key, mutationFn, options);\n this.cache.set(keyHash, entry as MutationEntry<unknown, unknown>);\n }\n return entry;\n }\n}\n\nexport const mutationClient = new MutationClient();\n","import { PanelConfig } from './panel';\n\ntype AnyProps = Record<string, unknown> | undefined;\n\nexport class PanelRegistry {\n private panels: Map<string, PanelConfig<AnyProps>> = new Map();\n\n registerPanel(panelConfig: PanelConfig<AnyProps>) {\n if (this.panels.has(panelConfig.componentId)) {\n throw new Error(\n `Panel with id ${panelConfig.componentId} is already registered.`,\n );\n }\n this.panels.set(panelConfig.componentId, panelConfig);\n }\n\n getPanelConfig(componentId: string) {\n const panel = this.panels.get(componentId);\n if (!panel) {\n throw new Error(`Panel with id ${componentId} is not registered.`);\n }\n return panel;\n }\n\n findPanelConfigsByType(type: string): PanelConfig<AnyProps>[] {\n return Array.from(this.panels.values()).filter((panel) =>\n panel.supportedTypes.includes(type),\n );\n }\n}\n","import { css } from '@emotion/css';\nimport { ProgressCircle, WidgetCard } from '@ssa-ui-kit/core';\n\nexport type LoadingPanelProps = {\n title?: string;\n children?: React.ReactNode;\n};\n\nexport const LoadingPanel = ({ title, children }: LoadingPanelProps) => {\n return (\n <WidgetCard\n title={title}\n contentClassName={css`\n align-items: center !important;\n justify-content: center !important;\n `}>\n <ProgressCircle\n currentValue={3}\n max={10}\n size={64}\n color=\"blue\"\n mode=\"infinite\"\n />\n {children && (\n <div css={{ marginTop: '12px', textAlign: 'center' }}>{children}</div>\n )}\n </WidgetCard>\n );\n};\n","import { useInfraDashPanelDataPeriodContext } from '@shared/context';\nimport { Panel, PANEL_DATA_SOURCE, PanelData } from '@shared/panel';\nimport { QueryOptions, useQuery } from '@shared/query';\nimport { InfraDashTransport, useTransport } from '@shared/transport';\n\ntype Options = QueryOptions & {\n transport?: InfraDashTransport;\n};\n\nexport const usePanelData = (panel: Panel, options: Options = {}) => {\n const _transport = useTransport(options?.transport);\n const { period } = useInfraDashPanelDataPeriodContext();\n const panelSource = panel.source;\n\n const result = useQuery(\n ['panel-data', { panelSource, period }],\n async (signal) => {\n if (panelSource.type === PANEL_DATA_SOURCE.GRAFANA) {\n const { dashboardUid, panelId } = panelSource;\n const data = await _transport.getGrafanaPanelData(\n { dashboardUid, panelId, period },\n signal,\n );\n return { source: PANEL_DATA_SOURCE.GRAFANA, data } satisfies PanelData;\n }\n throw new Error(`Unsupported panel data source: ${panelSource}`);\n },\n options,\n );\n\n return result;\n};\n","import React from 'react';\n\nimport { LoadingPanel } from '@components/LoadingPanel';\nimport { ErrorPanel } from '@components/ErrorPanel';\nimport { Panel, PanelData } from '@shared/panel';\n\nimport { usePanelData } from './usePanelData';\n\ntype WithPanelDataOptions = {\n LoadingComponent?: React.ComponentType<{ title: string }>;\n ErrorComponent?: React.ComponentType<{ title: string }>;\n};\n\ntype InnerProps<D> = {\n panel: Panel;\n title?: string;\n panelData: D;\n};\n\nexport function withPanelData<D extends PanelData>(\n Wrapped: React.ComponentType<InnerProps<D>>,\n { LoadingComponent, ErrorComponent }: WithPanelDataOptions = {},\n): React.FC<Omit<InnerProps<D>, 'panelData'>> {\n type HocProps = Omit<InnerProps<D>, 'panelData'>;\n\n const Enhanced: React.FC<HocProps> = ({\n panel,\n title: providedTitle,\n ...rest\n }) => {\n const title = providedTitle ?? panel.title;\n const query = usePanelData(panel);\n\n if (!query.isLoaded) {\n return LoadingComponent ? (\n <LoadingComponent title={title} />\n ) : (\n <LoadingPanel title={title} />\n );\n }\n if (query.error) {\n return ErrorComponent ? (\n <ErrorComponent title={title} />\n ) : (\n <ErrorPanel title={title} />\n );\n }\n\n const injectedProps: InnerProps<D> = {\n ...rest,\n panel,\n title,\n panelData: query.data as D,\n };\n\n return <Wrapped {...injectedProps} />;\n };\n\n return Enhanced;\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@grafana/data\");","import { getValueFormat } from '@grafana/data';\n\nimport { DataAdapterOptions } from '@shared/dataAdapter';\nimport { GrafanaPanelData } from '@shared/grafana';\n\nexport const grafanaDataAdapter = ({\n panel,\n data,\n}: DataAdapterOptions<GrafanaPanelData>) => {\n const { results } = data.data;\n\n const xIndex = 0;\n const yIndex = 1;\n\n const frames = Object.values(results).flatMap((result) => result.frames);\n const defaultFieldConfig = panel.panelSchema?.fieldConfig?.defaults;\n\n const unit =\n frames[0]?.schema?.fields?.[yIndex]?.config?.unit ??\n defaultFieldConfig?.unit;\n const formattedValue = getValueFormat(unit)(0);\n\n const series = frames.map((frame) => {\n const values = frame?.data?.values ?? [];\n const x = values[xIndex] ?? [];\n const y = values[yIndex] ?? [];\n const yField = frame.schema?.fields?.[yIndex];\n const color = defaultFieldConfig?.color?.fixedColor;\n const name =\n yField?.config?.displayName ??\n yField?.config?.displayNameFromDS ??\n yField?.name ??\n frame.schema?.refId;\n return {\n x: x as number[],\n y: y as number[],\n name,\n marker: {\n color: color,\n },\n selected: true,\n showlegend: true,\n type: 'scatter' as const,\n hovertemplate: `${name}: ${formattedValue.prefix ?? ''}%{y:}${formattedValue.suffix ?? ''}<extra></extra>`,\n };\n });\n\n return {\n series,\n valuePrefix: formattedValue.prefix,\n valueSuffix: formattedValue.suffix,\n };\n};\n","import { BarLineComplexChart } from '@ssa-ui-kit/core';\nimport { useElementSize } from '@ssa-ui-kit/hooks';\n\nimport { withPanelData } from '@entities/panel';\nimport {\n matchPanelDataSource,\n Panel,\n PanelConfig,\n PanelData,\n} from '@shared/panel';\n\nimport { grafanaDataAdapter } from './data-adapters/grafana';\n\nexport type TimeseriesPanelProps = {\n panel: Panel;\n panelData: PanelData;\n /** Optional title for the panel, defaults to panel.title */\n title?: string;\n /** Optional hover format for the x axis */\n xAxisHoverFormat?: string;\n /** Optional label width for the y axis, defaults to 50 */\n labelWidth?: number;\n};\n\nexport const TimeseriesPanel = ({\n panel,\n panelData,\n title: providedTitle,\n xAxisHoverFormat,\n labelWidth = 50,\n}: TimeseriesPanelProps) => {\n const { ref, width } = useElementSize<HTMLDivElement>();\n const title = providedTitle ?? panel.title;\n\n const { series, valuePrefix, valueSuffix } = matchPanelDataSource(\n panelData.source,\n {\n grafana: () => grafanaDataAdapter({ panel, data: panelData.data }),\n },\n );\n\n return (\n <div ref={ref} style={{ width: '100%', height: '100%' }}>\n <BarLineComplexChart\n width=\"100%\"\n height=\"100%\"\n features={['header']}\n systemModeBarButtons={[]}\n cardProps={{\n title,\n }}\n layout={{\n autosize: true,\n width: width,\n margin: { r: labelWidth },\n xaxis: {\n tickmode: 'auto',\n hoverformat: xAxisHoverFormat,\n },\n yaxis2: {\n ticksuffix: valueSuffix,\n tickprefix: valuePrefix,\n tickmode: 'auto',\n },\n }}\n data={series}\n />\n </div>\n );\n};\n\nexport const panelConfig: PanelConfig<TimeseriesPanelProps> = {\n componentId: 'timeseries-default',\n name: 'Timeseries Panel',\n Component: withPanelData(TimeseriesPanel),\n supportedTypes: ['timeseries', 'bargauge'],\n propsSchema: {\n type: 'object',\n properties: {\n title: {\n type: 'string',\n title: 'Panel Title',\n },\n xAxisHoverFormat: {\n type: 'string',\n title: 'X Axis Hover Format',\n default: '%H:%M, %d %b',\n },\n labelWidth: {\n type: 'number',\n title: 'Label Width',\n default: 50,\n },\n },\n },\n uiSchema: {\n title: {\n 'ui:help': 'Override the default panel title',\n 'ui:placeholder': 'Panel Title',\n },\n xAxisHoverFormat: {\n 'ui:help': 'Format for the x-axis hover tooltip',\n 'ui:placeholder': 'X Axis Hover Format (e.g., %H:%M, %d %b)',\n },\n labelWidth: {\n 'ui:help': 'Set the width of the y axis label in pixels',\n 'ui:placeholder': 'Label Width',\n },\n },\n};\n","import { getValueFormat } from '@grafana/data';\n\nimport { DataAdapterOptions } from '@shared/dataAdapter';\nimport { GrafanaPanelData } from '@shared/grafana';\n\nconst inferMinMax = (values: number[], unit?: string) => {\n if (unit === 'percent') {\n return { min: 0, max: 100 };\n }\n if (unit === 'percentunit') {\n return { min: 0, max: 1 };\n }\n if (!values.length) {\n return { min: 0, max: 100 };\n }\n return {\n min: Math.min(...values),\n max: Math.max(...values),\n };\n};\n\nexport const grafanaDataAdapter = ({\n panel,\n data,\n}: DataAdapterOptions<GrafanaPanelData>) => {\n const { results } = data.data;\n\n const yIndex = 1;\n\n const frames = Object.values(results).flatMap((result) => result.frames);\n const defaultFieldConfig = panel.panelSchema?.fieldConfig?.defaults;\n if (frames.length > 1) {\n throw new Error(\n `Expected a single frame for gauge panel, but found ${frames.length} frames.`,\n );\n }\n\n const dataFrame = frames[0];\n const values = (dataFrame?.data?.values?.[yIndex] ?? []) as number[];\n const value = (values?.at(-1) as number) ?? 0;\n const unit =\n dataFrame?.schema?.fields?.[yIndex]?.config?.unit ??\n defaultFieldConfig?.unit;\n const formattedValue = getValueFormat(unit)(value);\n\n const { min, max } = inferMinMax(values, unit);\n\n const thresholds =\n defaultFieldConfig?.thresholds?.steps?.map(({ color, value }) => ({\n color,\n value: value ?? 0,\n })) ?? [];\n\n const segments = thresholds.map((threshold, index) => ({\n color: threshold.color,\n value: thresholds[index + 1]?.value ?? 100, // use next threshold value or default to 100\n }));\n\n return {\n min,\n max,\n thresholds,\n segments,\n value,\n valueSuffix: formattedValue.suffix,\n valuePrefix: formattedValue.prefix,\n };\n};\n","import { GaugeChart } from '@ssa-ui-kit/core';\nimport { css } from '@emotion/css';\n\nimport { withPanelData } from '@entities/panel';\nimport {\n matchPanelDataSource,\n Panel,\n PanelConfig,\n PanelData,\n} from '@shared/panel';\n\nimport { grafanaDataAdapter } from './data-adapters/grafana';\n\nexport type GaugePanelProps = {\n panel: Panel;\n panelData: PanelData;\n /** Optional title for the panel, defaults to panel.title */\n title?: string;\n};\n\nexport const GaugePanel = ({\n panel,\n panelData,\n title: providedTitle,\n}: GaugePanelProps) => {\n const title = providedTitle ?? panel.title;\n const { min, max, value, valuePrefix, valueSuffix, segments } =\n matchPanelDataSource(panelData.source, {\n grafana: () => grafanaDataAdapter({ panel, data: panelData.data }),\n });\n return (\n <GaugeChart\n features={['header']}\n containerProps={{ className: css({ width: '100%', height: '100%' }) }}\n title={title}\n unitLabel={valueSuffix}\n maxValue={max}\n minValue={min}\n minLabel={`${valuePrefix ?? ''}${min}${valueSuffix ?? ''}`}\n maxLabel={`${valuePrefix ?? ''}${max}${valueSuffix ?? ''}`}\n value={value}\n segments={segments}\n />\n );\n};\n\nexport const panelConfig: PanelConfig<GaugePanelProps> = {\n componentId: 'gauge-default',\n name: 'Gauge Panel',\n Component: withPanelData(GaugePanel),\n supportedTypes: ['gauge'],\n propsSchema: {\n type: 'object',\n properties: {\n title: {\n type: 'string',\n title: 'Panel Title',\n },\n },\n },\n uiSchema: {\n title: {\n 'ui:help': 'Override the default panel title',\n 'ui:placeholder': 'Panel Title',\n },\n },\n};\n","import { getValueFormat } from '@grafana/data';\nimport { GaugeBarValueFormatter } from '@ssa-ui-kit/core';\n\nimport { DataAdapterOptions } from '@shared/dataAdapter';\nimport { GrafanaPanelData } from '@shared/grafana';\n\nexport const grafanaDataAdapter = ({\n panel,\n data,\n labelWidth,\n}: DataAdapterOptions<GrafanaPanelData> & { labelWidth: number }) => {\n const panelData = data.data;\n\n const yIndex = 1;\n\n const defaultFieldConfig = panel.panelSchema?.fieldConfig?.defaults;\n\n const thresholds =\n defaultFieldConfig?.thresholds?.steps?.map(({ color, value }) => ({\n color,\n value: value ?? 0,\n })) ?? [];\n\n const frames = Object.values(panelData.results).flatMap(\n (result) => result.frames,\n );\n\n const unit =\n frames[0]?.schema?.fields?.[yIndex]?.config?.unit ??\n defaultFieldConfig?.unit;\n const valueFormat = getValueFormat(unit);\n\n const valueFormatter: GaugeBarValueFormatter = (v, color) => {\n const formattedValue = valueFormat(v);\n return (\n <div\n css={{ color, textAlign: 'right' }}\n style={{ width: `${labelWidth}px` }}>\n {formattedValue.prefix && (\n <span css={{ fontSize: '14px' }}>{formattedValue.prefix}</span>\n )}\n {formattedValue.text}{' '}\n {formattedValue.suffix && (\n <span css={{ fontSize: '14px' }}>{formattedValue.suffix}</span>\n )}\n </div>\n );\n };\n\n const bars = frames\n .map((frame) => {\n const y = frame.data?.values?.[yIndex] ?? [];\n const value = (y.at(-1) as number) ?? 0;\n const yField = frame.schema?.fields?.[yIndex];\n return {\n title:\n yField?.config?.displayName ??\n yField?.config?.displayNameFromDS ??\n yField?.name ??\n frame.schema?.refId,\n value: Number(value.toFixed(2)),\n valueFormatter,\n thresholds,\n };\n })\n .filter((bar) => bar.value !== undefined);\n\n return { bars };\n};\n","import { css } from '@emotion/css';\nimport { BarGaugeChart } from '@ssa-ui-kit/core';\n\nimport { withPanelData } from '@entities/panel';\nimport {\n matchPanelDataSource,\n Panel,\n PanelConfig,\n PanelData,\n} from '@shared/panel';\n\nimport { grafanaDataAdapter } from './data-adapters/grafana';\n\nexport type BarGaugePanelProps = {\n panel: Panel;\n panelData: PanelData;\n /** Optional title for the panel, defaults to panel.title */\n title?: string;\n /** Optional label width for the bar gauge, defaults to 80 */\n labelWidth?: number;\n};\n\nexport const GrafanaBarGaugePanel = ({\n panel,\n panelData,\n title: providedTitle,\n labelWidth = 80,\n}: BarGaugePanelProps) => {\n const title = providedTitle ?? panel.title;\n const { bars } = matchPanelDataSource(panelData.source, {\n grafana: () =>\n grafanaDataAdapter({ panel, data: panelData.data, labelWidth }),\n });\n return (\n <BarGaugeChart\n features={['header']}\n title={title}\n bars={bars}\n widgetCardProps={{\n contentClassName: css({ overflow: 'auto' }),\n }}\n wrapperProps={{\n className: css({ gap: '2px !important' }),\n }}\n />\n );\n};\n\nexport const panelConfig: PanelConfig<BarGaugePanelProps> = {\n componentId: 'bargauge-default',\n name: 'Bar Gauge Panel',\n Component: withPanelData(GrafanaBarGaugePanel),\n supportedTypes: ['bargauge', 'gauge'],\n propsSchema: {\n type: 'object',\n properties: {\n title: {\n type: 'string',\n title: 'Panel Title',\n },\n labelWidth: {\n type: 'number',\n title: 'Label Width',\n default: 80,\n description: 'Width of the label in pixels',\n },\n },\n },\n uiSchema: {\n title: {\n 'ui:help': 'Override the default panel title',\n 'ui:placeholder': 'Panel Title',\n },\n labelWidth: {\n 'ui:help': 'Set the width of the label in pixels',\n 'ui:placeholder': 'Label Width',\n },\n },\n};\n","import { PanelRegistry } from '@shared/panelRegistry';\n\nimport { panelConfig as grafanaTimeseriesPanelConfig } from './TimeseriesPanel';\nimport { panelConfig as grafanaGaugePanelConfig } from './GaugePanel';\nimport { panelConfig as grafanaBarGaugePanelConfig } from './BarGaugePanel';\n\nconst panelRegistry = new PanelRegistry();\npanelRegistry.registerPanel(grafanaTimeseriesPanelConfig);\npanelRegistry.registerPanel(grafanaGaugePanelConfig);\npanelRegistry.registerPanel(grafanaBarGaugePanelConfig);\n\nexport { panelRegistry };\n","import { InfraDashInternalProvider } from '@shared/context';\nimport { PanelRegistry } from '@shared/panelRegistry';\nimport {\n mutationClient,\n MutationClient,\n queryClient,\n QueryClient,\n} from '@shared/query';\nimport { InfraDashTransport } from '@shared/transport';\n\nimport { panelRegistry } from './panels';\n\nexport type InfraDashProviderProps = {\n transport: InfraDashTransport;\n children: React.ReactNode;\n queryClient?: QueryClient;\n mutationClient?: MutationClient;\n panelRegistry?: PanelRegistry;\n};\n\nexport const InfraDashProvider = ({\n children,\n transport,\n queryClient: providedQueryClient,\n mutationClient: providedMutationClient,\n panelRegistry: providedPanelRegistry,\n}: InfraDashProviderProps) => {\n return (\n <InfraDashInternalProvider\n value={{\n transport,\n queryClient: providedQueryClient ?? queryClient,\n mutationClient: providedMutationClient ?? mutationClient,\n panelRegistry: providedPanelRegistry ?? panelRegistry,\n }}>\n {children}\n </InfraDashInternalProvider>\n );\n};\n","export type * from './types/emotion.d';\nexport * from './widgets/DashboardViewer';\nexport * from './widgets/DashboardEditor';\nexport * from './entities/dashboard';\nexport * from './shared/transport';\nexport * from './components/PeriodSelector';\nexport {\n useInfraDashContext,\n useInfraDashPanelDataPeriodContext,\n} from './shared/context';\nexport { useQueryClient, useMutationClient } from './shared/query';\n\nexport * from './provider';\n"],"names":["ErrorIcon","_jsxs","width","height","viewBox","fill","xmlns","children","_jsx","cx","cy","r","fillRule","clipRule","d","id","x1","y1","x2","y2","gradientUnits","stopColor","offset","Wrapper","jsx","jsxs","_ref","process","env","NODE_ENV","name","styles","toString","_EMOTION_STRINGIFIED_CSS_ERROR__","_ref2","DashboardError","direction","css","useTheme","ProgressCircle","LoadingDashboard","theme","classnames","inner","outer","colors","greyLighter","currentValue","max","size","color","mode","hashKey","queryKey","JSON","stringify","partialMatchKey","a","b","Object","keys","every","key","createSafeContext","InfraDashInternalProvider","useInfraDashContext","useCallback","useMemo","useSyncExternalStore","useQueryClient","queryClient","useQuery","fetcher","options","keyHash","entry","fetchQuery","updateEntity","subscribe","onStoreChange","getSnapshot","state","getServerSnapshot","refetch","invalidateQueries","exact","useMutationClient","mutationClient","useMutation","mutationFn","fetchMutation","mutate","args","reset","cancel","data","error","isLoading","useTransport","transport","contextTransport","useDashboards","queryOptions","_transport","result","signal","getDashboards","useDashboard","dashboardId","getDashboard","usePublishedDashboards","getPublishedDashboards","useCreateDashboard","mutationOptions","payload","panels","map","panel","panelDefinition","source","dashboardsUid","Set","dashboardUid","Error","createDashboard","title","published","dashboardDefinition","useUpdateDashboard","updateDashboard","useDeleteDashboard","_","deleteDashboard","PANEL_DATA_SOURCE","GRAFANA","matchPanelDataSource","handlers","grafana","PANEL_DATA_PERIOD","LAST_HOUR","LAST_6_HOURS","LAST_24_HOURS","LAST_7_DAYS","LAST_30_DAYS","useUncontrolled","useInfraDashPanelDataPeriod","defaultPeriod","period","providedPeriod","onPeriodChange","changePeriod","value","defaultValue","finalValue","onChange","InfraDashPanelDataPeriodProvider","useInfraDashPanelDataPeriodContext","BasePanel","alignItems","WidgetCard","ErrorPanel","contentClassName","forwardRef","useEffect","useElementSize","useMinMDMediaQuery","GridLayout","ErrorBoundary","_ref3","DashboardPanelGrid","dashboard","header","cols","rowHeight","draggable","resizable","refetchIntervalMs","onLayoutChange","onDragStart","onResizeStart","renderPanelControl","divProps","ref","isMinMD","panelRegistry","type","intervalId","setInterval","clearInterval","sortedPanels","sort","aPos","gridPos","bPos","y","x","layout","index","i","h","w","renderPanel","panelConfig","getPanelConfig","component","fallback","Component","props","panelSchema","_header","autoSize","containerPadding","margin","isDraggable","isResizable","undefined","GridItem","onMouseDown","e","stopPropagation","DashboardViewer","dashboardById","enabled","DashboardWrapper","panelDataPeriod","isLoaded","DropdownOption","Dropdown","CustomOption","_styled","target","label","isActive","blueRoyal12","white","PeriodSelector","handlePeriodSelect","items","selectedItem","find","item","grey","greyDarker","greyDarker80","blueRoyal","DashboardIcon","tooltip","_css","Button","Drawer","DashboardSelectorDrawer","drawer","Root","store","Content","Header","Title","variant","background","greyDropdownFocused","padding","onClick","toggle","SidebarIcon","PanelSettingsDrawer","Overlay","useGrafanaDashboards","getGrafanaDashboards","useGrafanaPanels","grafanaDashboardUid","getGrafanaPanels","flatMap","subPanels","useState","Accordion","AccordionGroup","AccordionGroupContextProvider","Icon","Input","Fragment","_Fragment","ExternalPanelList","onPanelClick","length","className","DashboardAccordionItem","search","accordionProps","panelsQuery","loadedPanels","availablePanels","filter","toLowerCase","includes","availableComponents","findPanelConfigsByType","renderTitle","isOpened","startIcon","renderContent","display","fontWeight","fontSize","_ref4","_ref5","_ref6","_ref7","_ref8","ExternalDashboardsList","setSearch","dashboardsQuery","placeholder","inputProps","appendPanel","params","nextY","reduce","maxY","Math","newPanel","grafanaDashboard","grafanaPanel","defaultComponentConfig","Date","now","panelId","version","componentId","updatePanel","newPanels","p","removePanel","applyNewLayout","newLayout","newLayoutMap","newDashboard","newGridPos","Popover","PopoverContent","PopoverTrigger","usePopoverContext","PanelControlContent","onEdit","onRemove","popover","handleClose","setOpen","gap","border","backgroundColor","borderRadius","PanelControl","useRef","JsonSchema","Typeahead","TypeaheadOption","validator","PanelSettings","onSave","originalPanel","setOriginalPanel","savedRef","current","panelComponent","propsSchema","uiSchema","handleComponentChange","originalComponent","handlePropsChange","handlePanelSave","wrapperClassName","filterOptions","selectedItems","Form","idPrefix","formData","schema","norender","Checkbox","useDrawer","_ref9","DashboardEditorInternal","controlledDashboard","defaultDashboard","gridProps","onSaved","onCreate","onError","selectedPanelId","setSelectedPanelId","dashboardsSelectorDrawer","panelSettingsDrawer","position","onOpenChange","open","setDashboard","isUpdating","isCreating","handleAddPanel","handleLayoutChange","handlePanelEdit","handlePanelUpdate","handlePanelRemove","handlePersistDashboard","then","catch","selectedPanel","cannotPersist","opened","transition","isMounted","text","initialState","isDisabled","DashboardEditor","editorProps","tryCatch","promise","RestInfraDashTransport","constructor","baseUrl","authMiddleware","unwrapResponse","getUrl","path","applyMiddlewares","request","makeRequest","parseResponse","finalizedRequest","response","fetch","ok","url","message","statusText","json","Request","method","getGrafanaPanelData","body","headers","QueryEntry","isFetching","subscribers","controller","notify","queueMicrotask","sub","Promise","resolve","aborted","AbortController","finally","add","delete","setTimeout","setData","invalidate","abort","QueryClient","cache","Map","get","set","matchingEntries","hash","entries","active","push","setQueryData","existing","newEntry","MutationEntry","variables","onSuccess","onSettled","err","console","MutationClient","PanelRegistry","registerPanel","has","Array","from","values","supportedTypes","LoadingPanel","usePanelData","panelSource","React","withPanelData","Wrapped","LoadingComponent","ErrorComponent","Enhanced","providedTitle","rest","query","injectedProps","panelData","getValueFormat","grafanaDataAdapter","results","xIndex","yIndex","frames","defaultFieldConfig","fieldConfig","defaults","unit","fields","config","formattedValue","series","frame","yField","fixedColor","displayName","displayNameFromDS","refId","marker","selected","showlegend","hovertemplate","prefix","suffix","valuePrefix","valueSuffix","BarLineComplexChart","TimeseriesPanel","xAxisHoverFormat","labelWidth","style","features","systemModeBarButtons","cardProps","autosize","xaxis","tickmode","hoverformat","yaxis2","ticksuffix","tickprefix","properties","default","inferMinMax","min","dataFrame","at","thresholds","steps","segments","threshold","GaugeChart","GaugePanel","containerProps","unitLabel","maxValue","minValue","minLabel","maxLabel","valueFormat","valueFormatter","v","textAlign","bars","Number","toFixed","bar","BarGaugeChart","GrafanaBarGaugePanel","widgetCardProps","wrapperProps","description","grafanaTimeseriesPanelConfig","grafanaGaugePanelConfig","grafanaBarGaugePanelConfig","InfraDashProvider","providedQueryClient","providedMutationClient","providedPanelRegistry"],"ignoreList":[],"sourceRoot":""}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ssa-ui-kit/infra-dash",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.2-canary-d213a33-20251219",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"types": "dist/index.d.ts",
|
|
6
6
|
"private": false,
|
|
@@ -28,30 +28,30 @@
|
|
|
28
28
|
"not op_mini all"
|
|
29
29
|
],
|
|
30
30
|
"dependencies": {
|
|
31
|
-
"@grafana/data": "
|
|
32
|
-
"react-error-boundary": "
|
|
33
|
-
"react-grid-layout": "
|
|
34
|
-
"react-resizable": "
|
|
35
|
-
"@rjsf/validator-ajv8": "
|
|
36
|
-
"@rjsf/utils": "
|
|
37
|
-
"@ssa-ui-kit/core": "^2.
|
|
38
|
-
"@ssa-ui-kit/hooks": "^2.
|
|
31
|
+
"@grafana/data": "12.0.1",
|
|
32
|
+
"react-error-boundary": "6.0.0",
|
|
33
|
+
"react-grid-layout": "1.5.1",
|
|
34
|
+
"react-resizable": "3.0.5",
|
|
35
|
+
"@rjsf/validator-ajv8": "5.24.11",
|
|
36
|
+
"@rjsf/utils": "5.24.11",
|
|
37
|
+
"@ssa-ui-kit/core": "^2.32.0-canary-d213a33-20251219",
|
|
38
|
+
"@ssa-ui-kit/hooks": "^2.32.0-canary-d213a33-20251219"
|
|
39
39
|
},
|
|
40
40
|
"devDependencies": {
|
|
41
|
-
"@emotion/css": "
|
|
42
|
-
"@emotion/jest": "
|
|
43
|
-
"@emotion/react": "
|
|
44
|
-
"@emotion/styled": "
|
|
45
|
-
"@playwright/test": "
|
|
46
|
-
"@grafana/schema": "
|
|
47
|
-
"@types/react-grid-layout": "
|
|
41
|
+
"@emotion/css": "11.13.5",
|
|
42
|
+
"@emotion/jest": "11.14.2",
|
|
43
|
+
"@emotion/react": "11.14.0",
|
|
44
|
+
"@emotion/styled": "11.14.0",
|
|
45
|
+
"@playwright/test": "1.57.0",
|
|
46
|
+
"@grafana/schema": "12.0.1",
|
|
47
|
+
"@types/react-grid-layout": "1.3.5"
|
|
48
48
|
},
|
|
49
49
|
"peerDependencies": {
|
|
50
50
|
"@emotion/css": "^11.13.5",
|
|
51
51
|
"@emotion/react": "^11.14.0",
|
|
52
52
|
"@emotion/styled": "^11.14.0",
|
|
53
|
-
"react": "18.x",
|
|
54
|
-
"react-dom": "18.x"
|
|
53
|
+
"react": "18.x || 19.x",
|
|
54
|
+
"react-dom": "18.x || 19.x"
|
|
55
55
|
},
|
|
56
56
|
"peerDependenciesMeta": {
|
|
57
57
|
"@types/react": {
|