All Downloads are FREE. Search and download functionalities are using the official Maven repository.

web-interface.assets.ShowViewPage.e3bf67c5aa42ea3bdc0b.js.map Maven / Gradle / Ivy

There is a newer version: 6.1.4
Show newest version
{"version":3,"file":"ShowViewPage.e3bf67c5aa42ea3bdc0b.js","mappings":"0fAwBA,QAF4B,CAAC,CAAE,KAAAA,CAAK,IAAa,gBAAC,SAAE,MAAIA,EAAK,YAAY,EAAE,WAAS,ECW9EC,EAAO,UAAO;AAAA;AAAA;AAAA,EAKdC,EAAY,UAAO;AAAA;AAAA;AAAA;AAAA,EAMnBC,EAAiB,UAAO;AAAA;AAAA;AAAA;AAAA;AAAA,EAOxBC,EAAuB,OAAMC,EAAA,GAAe,GAAuB,EAiFzE,EA/E8B,IAAM,CAClC,MAAMC,KAAWC,EAAA,GAAe,EAC1B,CAAE,aAAAC,CAAa,KAAIC,EAAA,GAA+B,EAClDC,EAAoBN,EAAqB,EAEzCO,KAAkB,WAAQ,IAAM,IAAI,IAAIH,EAAa,IAAKI,GAAQ,CACtE,GAAGA,EAAI,QAAQ,GAAGA,EAAI,IAAI,GAAGA,EAAI,KAAK,GAAIA,CAC5C,CAAC,CAAC,EAAG,CAACJ,CAAY,CAAC,EAEbK,KAAc,eAAY,CAAC,CAAE,KAAAC,EAAM,SAAAC,EAAU,UAAAC,CAAU,IAAM,CACjE,GAAIF,EACFR,KAAS,MAAuBQ,EAAM,CAAE,MAAO,KAAY,OAAOC,CAAQ,CAAE,CAAC,CAAC,MACzE,CACL,KAAM,CAAE,MAAAE,EAAO,SAAAC,EAAU,KAAAC,CAAK,EAAIR,EAAgB,IAAIK,CAAS,EAE/DV,KAAS,MAAwB,CAC/B,CACE,MAAAW,EACA,MAAOC,EACP,SAAO,MAAY,EACnB,UAAW,IAAsBC,CAAI,CACvC,CACF,CAAC,CAAC,CACJ,CACF,EAAG,CAACR,EAAiBL,CAAQ,CAAC,EAExBc,KAA0B,WAAuC,IAAM,CAC3E,MAAMC,EAAU,IAAI,IAA8Bb,EAAa,IAC7D,CAAC,CAAE,SAAAU,EAAU,MAAAD,EAAO,KAAAE,CAAK,IAAM,CAC7B,GAAGD,CAAQ,GAAGC,CAAI,GAAGF,CAAK,GAAI,MAChC,CACF,CAAC,EAED,OAAOP,EAAkB,OAAO,CAACY,EAAKR,IAAS,CAtFnD,MAuFM,KAAM,CAAE,MAAAS,EAAO,MAAAN,EAAO,UAAAD,CAAU,EAAIF,EAC9BK,IAAO,QAAqB,cAAGH,CAAS,EAC9C,IAAIQ,GAASF,EAEb,GAAIH,GAAM,CACR,MAAMM,GAAM,GAAGF,CAAK,GAAGJ,EAAI,GAAGF,CAAK,GAE/BK,EAAI,IAAIG,EAAG,IACbD,GAASA,GAAO,IAAIC,GAAKX,CAAI,EAEjC,CAEA,OAAOU,EACT,EAAGH,CAAO,CACZ,EAAG,CAACb,EAAcE,CAAiB,CAAC,EAEpC,OAAOU,GAAA,MAAAA,EAAyB,KAC9B,gBAACnB,EAAA,KACE,MAAM,KAAKmB,CAAuB,EAAE,IAAI,CAAC,CAACJ,EAAWF,CAAI,IAAM,CAC9D,MAAMY,EAAQZ,GAAA,YAAAA,EAAM,MACda,EAAWD,GAAA,YAAAA,EAAO,MAExB,OACE,gBAACxB,EAAA,CAAU,MAAOc,EAAW,IAAKA,CAAA,EAChC,gBAAC,MAAmB,GAAG,wBACH,UAAU,QACV,MAAOW,EACP,OAAQ,KAA+B,IAAKC,GAAM,CAACA,CAAC,CAAC,EACrD,YACE,gBAACzB,EAAA,CAAe,MAAO,CAAE,gBAAiBwB,CAAS,GAChD,CAACA,GAAY,gBAAC,KAAI,CAAC,KAAK,SAAS,KAAK,IAAK,EAC9C,EAEF,SAAU,CAACZ,EAAUc,EAAGC,IAAgB,CACtCA,EAAY,EACZjB,EAAY,CAAE,SAAAE,EAAU,KAAAD,EAAM,UAAAE,CAAU,CAAC,CAC3C,EAAG,EACvB,gBAAC,YAAMA,CAAU,CACnB,CAEJ,CAAC,CACH,EACE,gBAAC,EAAmB,CAAC,KAAK,wBAAyB,EACzD,E,qCCvEA,SAjCsB,IAAM,CAC1B,KAAM,CAAE,gBAAAe,CAAgB,KAAItB,EAAA,GAA+B,EAErDuB,KAAmB,KAASC,GAAA,EAAyB,CAAC,CAAE,IAAAC,CAAI,IAAMA,EAAI,OAAO,CAACC,EAAKC,KACvFD,EAAIC,EAAI,EAAE,EAAIA,EAEPD,GACN,CAAC,CAAC,CAAC,EAEAE,KAAmB,WAAQ,IAAMN,EAAgB,cAAc,OAAO,CAACI,EAAKC,KAC5EJ,EAAiBI,EAAI,eAAe,GACtCD,EAAI,KAAMH,EAAiBI,EAAI,eAAe,CAAE,EAG3CD,GACN,CAAC,CAAC,EAAG,CAACJ,EAAiBC,CAAgB,CAAC,EAE3C,OAAOK,EAAiB,OACtB,gCACGA,EAAiB,IAAI,CAAC,CAAE,GAAAC,EAAI,MAAAC,CAAM,EAAGC,IAAU,CAC9C,MAAMC,EAASD,EAAQ,EAAI,KAAO,GAElC,OACE,gBAAC,QAAK,IAAKF,CAAA,EACRG,EACD,gBAAC,IAAI,CAAC,OAAO,SAAS,GAAIC,EAAA,GAAO,OAAO,cAAc,KAAKJ,CAAE,GAAIC,CAAM,CACzE,CAEJ,CAAC,CACH,EACE,gBAAC,EAAmB,CAAC,KAAK,eAAgB,EAChD,ECzBMI,MAAiB,WAAO,IAAS,EAAE,CAAC,CAAE,MAAAC,CAAM,OAAM;AAAA,WAC7CA,EAAM,OAAO,QAAQ,OAAO,OAAO;AAAA,CAC7C,EAgED,GA9D+B,IAAM,CACnC,KAAM,CAAE,UAAAC,EAAW,gBAAAd,EAAiB,kBAAAe,CAAkB,KAAIrC,EAAA,GAA+B,EAEzF,SAAO,WAAQ,IAAM,CACnB,GAAI,CAACsB,EACH,MAAO,CACL,CAAE,MAAO,YAAa,QAAS,gBAAC,KAAS,CAAC,SAAUc,GAAA,YAAAA,EAAW,UAAW,EAAI,KAAM,CAACC,CAAkB,CACzG,EAGF,MAAMC,KAAe,KAAuBhB,EAAgB,OAAO,iBAAkB,IAAU,EACzFiB,KAAe,KAAuBjB,EAAgB,OAAO,iBAAkB,IAAU,EACzFkB,EAAwB,CAACH,GAAqB,IAAOf,EAAgB,UAAU,EAAE,KAAKc,EAAU,SAAS,EAAI,EAEnH,MAAO,CACL,CAAE,MAAO,YAAa,QAAS,gBAAC,KAAS,CAAC,SAAUA,GAAA,YAAAA,EAAW,UAAW,EAAI,KAAM,CAACC,CAAkB,EACvG,CACE,MAAO,8BACP,QACE,gCACE,gBAACH,GAAA,CAAe,SAAUZ,EAAgB,WAAY,EACtD,gBAAC,KAAY,CAAC,kBAAiB,GAAC,SAAS,MAAK,oBAC3B,gBAAC,SAAGA,EAAgB,KAAM,EAAI,iHAEjD,CACF,EAEF,KAAMkB,CACR,EACA,CACE,MAAO,mBACP,QACE,gBAAC,KAAK,OAAO,SACP,GAAIP,EAAA,GAAO,OAAO,YAAY,KAAKX,EAAgB,EAAE,GACxDA,EAAgB,KACnB,EAEF,KAAM,CAACe,CACT,EACA,CACE,MAAO,WACP,QAAS,IAAWI,EAAA,EAA4B,WAAWnB,EAAgB,QAAQ,EAAE,IAAI,CAC3F,EACA,CAAE,MAAO,uBAAwB,SAASiB,GAAA,YAAAA,EAAc,YAAYA,GAAA,YAAAA,EAAc,OAAQ,GAAGA,EAAa,QAAQ,IAAIA,EAAa,KAAK,YAAY,CAAC,EAAG,EACxJ,CAAE,MAAO,gBAAiB,SAASD,GAAA,YAAAA,EAAc,YAAYA,GAAA,YAAAA,EAAc,OAAQ,GAAGA,EAAa,QAAQ,IAAIA,EAAa,KAAK,YAAY,CAAC,EAAG,EACjJ,CAAE,MAAO,cAAe,QAAShB,EAAgB,WAAY,EAC7D,CACE,MAAO,gBACP,QAAS,gBAAC,GAAa,IAAC,CAC1B,EACA,CACE,MAAO,yBACP,QAAS,gBAAC,EAAqB,IAAC,CAClC,CACF,CACF,EAAG,CACDc,GAAA,YAAAA,EAAW,UACXd,EACAe,CACF,CAAC,CACH,ECrEMK,EAAS,UAAO;AAAA;AAAA;AAAA;AAAA;AAAA,EAOhBC,EAAO,UAAO;AAAA;AAAA;AAAA;AAAA,EAMdC,EAAY,UAAO;AAAA;AAAA;AAAA;AAAA,EAMnBC,EAAM,UAAO;AAAA;AAAA;AAAA;AAAA,EAMbC,EAAQ,UAAO;AAAA;AAAA,EA+CrB,EA3CqB,IAAM,CACzB,KAAM,CAAE,kBAAAT,EAAmB,QAAAU,EAAS,QAAAC,CAAQ,KAAIhD,EAAA,GAA+B,EACzE,CAACiD,EAAMC,CAAO,KAAI,YAAkB,EAAI,EAExCC,KAAa,eAAaC,GAAsB,CACpDA,EAAE,gBAAgB,EAClBF,EAASvB,GAAQ,CAACA,CAAG,CACvB,EAAG,CAAC,CAAC,EAEC0B,EAAiB,GAAuB,EAExCC,KAAkB,WAAQ,IAC1BjB,EAA0B,mBAC1BW,EAAgB,QAChBD,EAAgB,QAEb,GACN,CAACC,EAASD,EAASV,CAAiB,CAAC,EAExC,OACE,gBAAC,KAAc,KACb,gBAACK,EAAA,KACC,gBAAC,SAAM,CAAC,QAAQ,OAAO,UAAU,WAAW,OAAO,SAAS,QAASS,CAAA,EACnE,gBAAC,KAAI,CAAC,KAAM,SAASF,EAAO,YAAc,OAAO,GAAI,EAAE,OACtDA,EAAO,QAAQK,CAAe,WAAa,QAAQA,CAAe,UACrE,CACF,EACCL,GACD,gBAACL,EAAA,CAAU,cAAY,kBACrB,gBAACC,EAAA,KACEQ,EAAe,IAAI,CAAC,CAAE,MAAAvB,EAAO,QAAAyB,EAAS,KAAAC,CAAK,IAAOA,IAAS,IAC1D,gBAACb,EAAA,CAAK,IAAKb,CAAA,EACT,gBAAC,SAAGA,EAAM,IAAE,EACZ,gBAACgB,EAAA,CAAM,MAAAhB,CAAA,EAAeyB,GAAW,gBAAC,EAAmB,CAAC,KAAMzB,CAAA,CAAO,CAAG,CACxE,CACD,CACH,CACF,CAEF,CAEJ,C,4JC9DO,MAAM2B,EAAkBC,MAAyB,MAAW,uBAAuBA,CAAY,EAAE,EAElGC,EAA8B,CAAC,CAAE,OAAAC,EAAQ,WAAAC,CAAW,IAAyC,CACjG,MAAMnC,EAAM,CAAC,EAEPoC,EAAOC,GAAe,CAC1B,GAAI,CAACA,EACH,MAAO,0BAGT,OAAQA,EAAW,KAAM,CACvB,IAAK,SACH,MAAQ,CAAE,MAAOA,EAAW,KAAM,EACpC,IAAK,aAEH,MAAMC,EAAkBJ,EAAO,KAAMK,GAAMA,EAAE,KAAOF,EAAW,GAAG,EAElE,OAAQC,GAAA,MAAAA,EAAiB,KACrB,CAAE,MAAO,GAAGA,EAAgB,IAAI,IAAIA,EAAgB,OAAS,EAAE,GAAI,EACnE,KACN,IAAK,KACL,IAAK,KACH,MAAO,CAACF,EAAIC,EAAW,IAAI,EAAGD,EAAIC,EAAW,KAAK,CAAC,EACrD,IAAK,QACH,MAAO,CAACD,EAAIC,EAAW,KAAK,CAAC,EAC/B,IAAK,IACL,IAAK,KACL,IAAK,IACL,IAAK,KACL,IAAK,KAEH,KAAM,CAAE,IAAAG,CAAI,EAAIH,EAAW,KAErBI,EAAiBP,EAAO,KAAMK,GAAMA,EAAE,KAAOC,CAAG,EAEhDzD,EAAW0D,GAAA,MAAAA,EAAgB,KAAO,GAAGA,EAAe,IAAI,IAAIA,EAAe,OAAS,EAAE,IAAM,OAClG,OAAAzC,EAAI,KAAK,CAAE,KAAMqC,EAAW,KAAM,MAAOA,EAAW,MAAM,MAAO,SAAUI,GAAA,YAAAA,EAAgB,KAAM,SAAA1D,EAAU,MAAO0D,GAAA,YAAAA,EAAgB,KAAM,CAAC,EAElI,CAACL,EAAIC,EAAW,IAAI,EAAGD,EAAIC,EAAW,KAAK,CAAC,EACrD,QACE,OAAO,IACX,CACF,EAEA,OAAAD,EAAID,EAAW,UAAU,EAElBnC,CACT,EAEM0C,EAA6BC,GAA6G,CApFhJ,QAoFoJ,OAClJ,gBAAiBA,EACjB,cAAe,EAAAA,GAAA,YAAAA,EAAM,SAAN,QAAc,UAAU,EAAAA,GAAA,YAAAA,EAAM,SAAN,QAAc,YACjD,IAASV,EAA4B,CAAE,OAAQU,EAAK,OAAO,OAAQ,WAAYA,EAAK,OAAO,UAAW,CAAC,EAAG,GAAO,EACjH,CAAC,CACP,GAEMC,EAAmBZ,MAAyB,MAAM,MAAOD,EAAeC,CAAY,CAAC,EAAE,KAAKU,CAAyB,EAmC3H,EAjC2B,CAACV,EAAsB,CAAE,eAAAa,CAAe,EAA+C,CAAC,IAK9G,CACH,KAAM,CAAE,KAAAF,EAAM,QAAAG,EAAS,UAAAC,EAAW,UAAAC,CAAU,KAAI,YAC9C,CAAC,yBAA0BhB,CAAY,EACvC,IAAMY,EAAgBZ,CAAY,EAClC,CACE,QAAUiB,GAA4B,CAChCJ,GAAgBA,EAAeI,CAAW,EAE9C,IAAiB,MAAM,gDAAgDA,CAAW,GAChF,iCAAiC,CACrC,EACA,iBAAkB,GAClB,QAAS,CAAC,CAACjB,EACX,YAAa,CACX,gBAAiB,KACjB,aAAc,CAAC,CACjB,CACF,CACF,EAEA,MAAQ,CACN,KAAAW,EACA,QAAAG,EACA,UAAAC,EACA,UAAAC,CACF,CACF,C,mGCtFA,QAViC,CAAC,CAAE,SAAAE,EAAU,MAAApE,CAAM,IAAa,CAC/D,MAAMqE,KAAe,WAAQ,IAAM,IAAM,CAAC,EAAG,KAAerE,CAAK,EAAG,CAACA,CAAK,CAAC,EAE3E,OACE,gBAAC,KAAwB,SAAxB,CAAiC,MAAOqE,CAAA,EACtCD,CACH,CAEJ,C,0ECTA,QANyBE,MAA+B,WAAQ,IAAMA,EAAY,KAAK,MAAOC,IAC5F,QAAM,KAAaA,EAAM,MAAM,EAExBA,EACR,EAAG,CAACD,CAAW,CAAC,C,8CCLV,MAAME,EAAqD,CAChE,IAAK,OACL,KAAM,aACN,KAAM,gBACN,IAAK,UACL,KAAM,OACR,EAEaC,EAAqD,CAChE,KAAM,IACN,WAAY,KACZ,cAAe,KACf,QAAS,IACT,MAAO,IACT,C,wdCeA,MAAMC,EAA4B,EAErBC,EAAuB,CAAC,CAAE,UAAAC,EAAW,SAAA3E,EAAU,KAAA4E,EAAO,CAAC,CAAE,IAIhE,IAAkB,QAAQ,EAC7B,MAAG,KAAW,CAAC,EACf,OACC,IAAwB,QAAQ,EAC7B,aAAa,CAAC,CAAC,EACf,UAAUD,CAAS,EACnB,OAAO3E,CAAQ,EACf,KAAK4E,CAAI,EACT,cAAc,OAAO,EACrB,OAAO,EAAI,EACX,MAAM,CACX,EACC,MAAM,EAEHC,EAAqB,CAAC,CAAE,MAAAvD,EAAO,kBAAAwD,CAAkB,IAAM,CAE3D,MAAMC,GADUzD,EAAQ,GAAK,IAAM,EACd,EAAI,EACnB0D,EAAe1D,GAAS,EAAImD,EAA4B,EACxDQ,EAAM,KAAK,MAAM3D,EAAQ,GAAK,CAAC,EAAI0D,EAAeF,EAExD,OAAO,IAAI,IAAeC,EAAKE,EAAKR,EAA2B,CAAC,CAClE,EAEMS,EAAmB,CAAC,CAAE,MAAA7E,EAAO,QAAA8E,EAAS,SAAAnF,EAAU,KAAAC,CAAK,IAAM,CAC/D,MAAMmF,EAAkB,IAAK,CAAC/E,EAAO,GAAG8E,CAAO,EAAE,OAAQE,GAAM,CAAC,CAACA,CAAC,CAAC,EAC7DV,EAAYS,EAAgB,OAAS,IAAC,KAAcA,EAAiB,IAAI,KAAU,QAAS,CAAC,EAAG,CAAC,CAAC,CAAC,CAAC,EAAI,CAAC,EACzGE,EAAkB,KAAO,YAAYtF,CAAQ,EAC7CuF,EAAY,CAAC,IAAK,KAAM,IAAI,EAAE,SAAStF,CAAI,EAAI,IAAU,WAAa,IAAU,UAChF2E,EAAO,CAAC,IAAI,IAAW,IAAW,YAAa5E,EAAUuF,CAAS,CAAC,EAEzE,OAAOb,EAAqB,CAAE,UAAAC,EAAW,SAAU,CAACW,CAAe,EAAG,KAAAV,CAAK,CAAC,CAC9E,EAEMY,GAAwB,CAAC,CAAE,aAAAlG,EAAc,QAAA6F,CAAQ,IAAM,CAC3D,KAAM,CAAE,gBAAAM,EAAiB,iBAAAC,EAAkB,aAAAC,CAAa,EAAIrG,EAAa,OAAO,CAAC2B,EAAK,CAAE,MAAAZ,EAAO,MAAAN,EAAO,KAAAE,EAAM,SAAAD,CAAS,IAAM,CACzH,MAAM4F,EAAc,GAAG5F,CAAQ,IAAIC,CAAI,IAAIF,CAAK,GAChD,OAAAkB,EAAI,gBAAgB,KAAKjB,CAAQ,EAC7BK,GAAOY,EAAI,iBAAiB,KAAKZ,CAAK,EAC1CY,EAAI,aAAe,GAAGA,EAAI,YAAY,IAAI2E,CAAW,GAE9C3E,CACT,EAAG,CACD,gBAAiB,CAAC,EAClB,iBAAkB,CAAC,EACnB,aAAc,WAChB,CAAC,EAEK4E,EAAgBnB,EAAqB,CACzC,UAAW,IAAC,KAAc,IAAK,CAAC,GAAGgB,EAAkB,GAAGP,CAAO,CAAC,EAAG,IAAI,KAAU,QAAS,CAAC,EAAG,CAAC,CAAC,CAAC,CAAC,EAClG,SAAUM,EAAgB,IAAKjC,GAAM,KAAO,YAAYA,CAAC,CAAC,CAC5D,CAAC,EAED,MAAQ,CACN,aAAAmC,EACA,cAAAE,EACA,gBAAiB,IAAI,IAAe,EAAG,EAAGpB,EAA2B,GAAQ,CAC/E,CACF,EAEaqB,GAAmB,MAAO,CAAE,QAAAC,EAAS,aAAAzG,EAAc,QAAA6F,CAAQ,IAAM,CAC5E,MAAMa,EAAa,MAAM,IAAkB,KAAK,EAC1CC,KAAa,KAAuBF,CAAO,EAC3CG,EAAmBF,GAAA,MAAAA,EAAY,OAASA,EAAW,OAAOC,CAAU,EAAI,CAAC,EACzEE,KAAY,MAAgB,EAC5BC,KAAe,MAAiB,OAAWF,CAAgB,EAC3DG,EAA2B/G,EAAa,OAAS,EACjDwF,EAAoBuB,EAA2B5B,EAA4B,EAC3E,CAAE,mBAAA6B,EAAoB,kBAAAC,EAAmB,qBAAAC,CAAqB,EAAIlH,EAAa,OAAO,CAAC2B,EAAK,CAAE,MAAAZ,EAAO,MAAAN,EAAO,KAAAE,EAAM,SAAAD,EAAS,EAAGsB,KAAU,CAC5I,MAAMmF,GAASvB,EAAiB,CAAE,SAAAlF,GAAU,MAAAK,EAAO,QAAA8E,EAAS,KAAAlF,CAAK,CAAC,EAClE,OAAAgB,EAAI,mBAAmB,KAAKwF,EAAM,EAClCxF,EAAI,kBAAkBwF,GAAO,EAAE,EAAI,GAAGzG,EAAQ,IAAIC,CAAI,IAAIF,CAAK,GAC/DkB,EAAI,qBAAqBwF,GAAO,EAAE,EAAI5B,EAAmB,CAAE,MAAAvD,GAAO,kBAAAwD,CAAkB,CAAC,EAE9E7D,CACT,EAAG,CAAE,kBAAmB,CAAC,EAAG,mBAAoB,CAAC,EAAG,qBAAsB,CAAC,CAAE,CAAC,EAExEyF,EAAU,CACd,GAAGJ,EACHH,EACAC,CACF,EAEMO,EAAS,CACb,OAAQ,CACN,GAAGJ,EACH,CAACJ,EAAU,EAAE,EAAG,gBAChB,CAACC,EAAa,EAAE,EAAG,cACrB,CACF,EAEMQ,EAAY,CAChB,GAAGJ,EACH,CAACL,EAAU,EAAE,EAAG,IAAI,IAAe,EAAG1B,EAA4B6B,EAAmB,OAAS,EAAIxB,EAAmB,EAAG,GAAQ,EAChI,CAACsB,EAAa,EAAE,EAAG,IAAI,IAAe,EAAG3B,EAA4B6B,EAAmB,OAAS,EAAIxB,EAAmB,EAAG,GAAQ,CACrI,EAEA,GAAIuB,EAA0B,CAC5B,KAAM,CAAE,aAAAV,EAAc,cAAAE,EAAe,gBAAAgB,CAAgB,EAAIrB,GAAsB,CAAE,aAAAlG,EAAc,QAAA6F,CAAQ,CAAC,EACxGuB,EAAQ,KAAKb,CAAa,EAC1Bc,EAAO,OAAOd,EAAc,EAAE,EAAIF,EAClCiB,EAAUf,EAAc,EAAE,EAAIgB,CAChC,CAEA,MAAO,CAAE,OAAAF,EAAQ,QAAAD,EAAS,UAAAE,CAAU,CACtC,EAEaE,GAAqB,MAAO,CAAE,QAAAf,EAAS,aAAAzG,EAAc,QAAA6F,CAAQ,IAAkG,CAC1K,KAAM,CAAE,OAAAwB,EAAQ,QAAAD,EAAS,UAAAE,CAAU,EAAI,MAAMd,GAAiB,CAAE,QAAAC,EAAS,aAAAzG,EAAc,QAAA6F,CAAQ,CAAC,EAE1F4B,EAAiBzH,GAAA,YAAAA,EAAc,IAAI,CAAC,CAAE,SAAAU,EAAU,MAAAD,EAAO,KAAAE,CAAK,IAAM,KAAiB,OAAOD,EAAUD,EAAO,IAAsBE,CAAI,GAAK,WAAS,MAAY,CAAC,CAAC,EAEvK,OAAO,IAAU,OAAO,EACrB,UAAU,EACV,OAAO0G,CAAM,EACb,QAAQ,OAAeD,CAAO,CAAC,EAC/B,gBAAgBE,CAAS,EACzB,WAAW,IAAmB,OAAOG,CAAc,CAAC,EACpD,MAAM,CACX,EAEaC,GAAgB,MAAO,CAClC,QAAAjB,EACA,UAAAkB,EACA,YAAAC,EACA,aAAA5H,EACA,QAAA6F,EACA,gBAAAgC,EACA,cAAAC,CACF,IAQM,CACJ,MAAMC,KAAQ,KAAetB,EAAS,OAAWkB,EAAWC,EAAcE,GAAiB,CAAC,CAAE,EACxFE,EAAS,IAAO,OAAO,EAAE,UAAU,EAAE,QAAQ,CAACD,CAAK,CAAC,EAAE,WAAWF,EAAgB,IAAKI,GAAU,IAAU,SAASA,CAAK,CAAC,CAAC,EAC7H,MAAM,EACHC,EAAY,MAAMV,GAAmB,CAAE,QAAAf,EAAS,aAAAzG,EAAc,QAAA6F,CAAQ,CAAC,EAEvEsC,EAAO,IAAK,OAAO,EACtB,UAAU,EACV,MAAM,EACN,KAAK,IAAK,KAAK,MAAM,EACrB,MAAM,CAAE,CAACJ,EAAM,EAAE,EAAGG,CAAU,CAAC,EAC/B,OAAOF,CAAM,EACb,MAAM,EAET,SAAO,KAAuBG,CAAI,CACpC,EA+BA,GA7BqC,CACnC,CAAE,UAAA9F,EAAW,gBAAAd,EAAiB,aAAAvB,CAAa,IACxC,CAlNL,kBAmNE,MAAMoI,KAA0B,MAAmB,OAAO,QAAQ/F,EAAU,eAAe,EAAE,IAAI,CAAC,CAACtB,EAAON,CAAK,IAAM,GAAGM,CAAK,OAAI,MAAON,CAAK,CAAC,EAAE,EAAG,CAAE,aAAc,EAAM,CAAC,EACpK4H,IAAmB,EAAAhG,GAAA,YAAAA,EAAW,cAAX,cAAwB,QAAS,GACpD,CAAE,QAAAoE,CAAQ,EAAIpE,EAAU,YACxBsF,EAA+B,CACnC,KAAM,WACN,MAAM,EAAAtF,GAAA,YAAAA,EAAW,cAAX,cAAwB,gBAC9B,IAAI,EAAAA,GAAA,YAAAA,EAAW,cAAX,cAAwB,aAC9B,EACMuF,EAAwC,CAC5C,KAAM,gBACN,gBAAc,MAAmB,CAACS,EAAkBD,CAAuB,CAAC,CAC9E,EAEMP,IAAkB,EAAAtG,GAAA,YAAAA,EAAiB,SAAjB,cAAyB,mBAAoB,CAAC,EAEhEsE,GAAU,KAAAtE,GAAA,YAAAA,EAAiB,SAAjB,cAAyB,WAAzB,OAAqC,CAAC,EAEhDuG,GAAgB,EAAAvG,EAAgB,SAAhB,cAAwB,QAE9C,SAAO,WACL,IAAMmG,GAAc,CAAE,QAAAjB,EAAS,UAAAkB,EAAW,YAAAC,EAAa,aAAA5H,EAAc,QAAA6F,EAAS,gBAAAgC,EAAiB,cAAAC,CAAc,CAAC,EAE9G,CAAC,CACH,CACF,C,4MCtLA,QA7BwC,CACtC,CACE,gBAAAvG,EACA,aAAAvB,CACF,IACG,CA7BL,wBA8BE,MAAMyG,IAAU,KAAAlF,GAAA,YAAAA,EAAiB,SAAjB,cAAyB,UAAzB,OAAoC,CAAC,EAC/CoG,GAAwC,CAC5C,KAAM,WACN,QAAQ,KAAApG,GAAA,YAAAA,EAAiB,SAAjB,cAAyB,mBAAzB,OAA6C,GAAK,GAC5D,EACMqG,GAAwC,CAC5C,KAAM,gBACN,eAAc,EAAArG,GAAA,YAAAA,EAAiB,SAAjB,cAAyB,QAAS,EAClD,EAEMsG,KAAkB,EAAAtG,GAAA,YAAAA,EAAiB,SAAjB,cAAyB,mBAAoB,CAAC,EAEhEsE,IAAU,KAAAtE,GAAA,YAAAA,EAAiB,SAAjB,cAAyB,WAAzB,OAAqC,CAAC,EAEhDuG,IAAgB,KAAAvG,GAAA,YAAAA,EAAiB,SAAjB,cAAyB,UAAzB,OAAoC,CAAC,EAE3D,SAAO,WACL,OAAM,MAAc,CAAE,QAAAkF,GAAS,UAAAkB,GAAW,YAAAC,GAAa,aAAA5H,EAAc,QAAA6F,GAAS,gBAAAgC,GAAiB,cAAAC,EAAc,CAAC,EAE9G,CAAC,CACH,CACF,E,oFCnBA,MAAMQ,EAAY,IAAM,CACtB,KAAM,CAAE,gBAAA/G,EAAiB,aAAAvB,CAAa,KAAIC,EAAA,GAA+B,EACnE+E,EAAQ,EAAgC,CAAE,gBAAAzD,EAAiB,aAAAvB,CAAa,CAAC,EACzEmI,KAAOI,EAAA,GAAgBvD,CAAK,EAC5BwD,KAAmB,WAAQ,KAAO,CACtC,QAAS,CAAE,UAAWC,EAAA,CAAa,CACrC,GAAI,CAAC,CAAC,EAEN,OACE,gBAACC,EAAA,EAAwB,CAAC,MAAOF,CAAA,EAC/B,gBAACG,EAAA,GAAW,KAAAR,EACA,MAAK,GAAC,CACpB,CAEJ,EAEa3D,EAAkBoE,GAAU,CACnCA,EAAM,SAAW,KACnBC,EAAA,EAAc,UAAO,MAAqBD,CAAK,CAAC,CAEpD,EAgBA,EAdwC,IAAM,CAC5C,KAAM,CAACE,EAAsBC,CAAuB,KAAI,YAAS,EAAK,EAChE,CAAE,aAAApF,CAAa,KAAIqF,EAAA,GAAqC,EACxD,CAAE,UAAWC,EAAa,UAAWC,CAAY,KAAIC,EAAA,GAAmBxF,EAAc,CAAE,eAAAa,CAAe,CAAC,EAE9G,sBAAU,IAAM,CACd,IAA0B,QAAQ,EAAE,KAAK,IAAMuE,EAAwB,EAAI,CAAC,CAC9E,EAAG,CAACA,CAAuB,CAAC,EAEVE,GAAe,CAACC,GAAe,CAACJ,EAE/B,gBAAC,KAAO,IAAC,EAAK,gBAACR,EAAA,IAAU,CAC9C,C,4SCjCA,MAAMA,EAAY,IAAM,CACtB,KAAM,CAAE,UAAAjG,EAAW,gBAAAd,EAAiB,aAAAvB,CAAa,KAAI,KAA+B,EAC9EgF,KAAQ,MAAsB,CAAE,UAAA3C,EAAW,gBAAAd,EAAiB,aAAAvB,CAAa,CAAC,EAC1EmI,KAAO,KAAgBnD,CAAK,EAC5BwD,KAAmB,WAAQ,KAAO,CACtC,QAAS,CAAE,UAAW,GAAa,CACrC,GAAI,CAAC,CAAC,EAEN,OACE,gBAAC,IAAwB,CAAC,MAAOA,CAAA,EAC/B,gBAAC,KAAW,KAAAL,EACA,MAAK,GAAC,CACpB,CAEJ,EAEa3D,EAAkBoE,GAAU,CACnCA,EAAM,SAAW,KACnB,IAAc,UAAO,MAAqBA,CAAK,CAAC,CAEpD,EAiBA,EAf8B,IAAM,CAClC,KAAM,CAACE,EAAsBC,CAAuB,KAAI,YAAS,EAAK,EAChE,CAAE,QAAAK,CAAQ,KAAI,KAAgC,EAC9C,CAAE,KAAM/G,EAAW,UAAWgH,EAAgB,UAAWC,CAAe,KAAI,KAAaF,EAAS,CAAE,eAAA5E,CAAe,CAAC,EACpH,CAAE,UAAWyE,EAAa,UAAWC,CAAY,KAAI,KAAmB7G,GAAA,YAAAA,EAAW,mBAAmB,EAE5G,sBAAU,IAAM,CACd,IAA0B,QAAQ,EAAE,KAAK,IAAM0G,EAAwB,EAAI,CAAC,CAC9E,EAAG,CAACA,CAAuB,CAAC,EAEVM,GAAkBJ,GAAe,CAACK,GAAkB,CAACJ,GAAe,CAACJ,EAEpE,gBAAC,KAAO,IAAC,EAAK,gBAACR,EAAA,IAAU,CAC9C,C","sources":["webpack://graylog-web-interface/./src/components/event-definitions/replay-search/NoAttributeProvided.tsx","webpack://graylog-web-interface/./src/components/event-definitions/replay-search/AggreagtionConditions.tsx","webpack://graylog-web-interface/./src/components/event-definitions/replay-search/Notifications.tsx","webpack://graylog-web-interface/./src/components/event-definitions/replay-search/hooks/useAttributeComponents.tsx","webpack://graylog-web-interface/./src/components/event-definitions/replay-search/EventInfoBar.tsx","webpack://graylog-web-interface/./src/hooks/useEventDefinition.tsx","webpack://graylog-web-interface/./src/views/components/contexts/SearchPageLayoutProvider.tsx","webpack://graylog-web-interface/./src/views/hooks/useCreateSearch.tsx","webpack://graylog-web-interface/./src/views/logic/ExpressionConditionMappers.tsx","webpack://graylog-web-interface/./src/views/logic/views/UseCreateViewForEvent.ts","webpack://graylog-web-interface/./src/views/logic/views/UseCreateViewForEventDefinition.ts","webpack://graylog-web-interface/./src/views/pages/EventDefinitionReplaySearchPage.tsx","webpack://graylog-web-interface/./src/views/pages/EventReplaySearchPage.tsx"],"sourcesContent":["/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport React from 'react';\n\ntype Props = {\n  name: string\n}\n\nconst NoAttributeProvided = ({ name }: Props) => No {name.toLowerCase()} provided;\n\nexport default NoAttributeProvided;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport styled from 'styled-components';\nimport { useMemo, useCallback } from 'react';\n\nimport { StaticColor } from 'views/logic/views/formatting/highlighting/HighlightingColor';\nimport { ColorPickerPopover, Icon } from 'components/common';\nimport { DEFAULT_CUSTOM_HIGHLIGHT_RANGE } from 'views/Constants';\nimport type HighlightingRule from 'views/logic/views/formatting/highlighting/HighlightingRule';\nimport { conditionToExprMapper, exprToConditionMapper } from 'views/logic/ExpressionConditionMappers';\nimport useAppSelector from 'stores/useAppSelector';\nimport { selectHighlightingRules } from 'views/logic/slices/highlightSelectors';\nimport useAlertAndEventDefinitionData from 'hooks/useAlertAndEventDefinitionData';\nimport { updateHighlightingRule, createHighlightingRules } from 'views/logic/slices/highlightActions';\nimport { randomColor } from 'views/logic/views/formatting/highlighting/HighlightingRule';\nimport useAppDispatch from 'stores/useAppDispatch';\nimport NoAttributeProvided from 'components/event-definitions/replay-search/NoAttributeProvided';\n\nconst List = styled.div`\n  display: flex;\n  gap: 5px;\n`;\n\nconst Condition = styled.div`\n  display: flex;\n  gap: 5px;\n  align-items: center;\n`;\n\nconst ColorComponent = styled.div`\n  width: 13px;\n  height: 13px;\n  border-radius: 2px;\n  cursor: pointer;\n`;\n\nconst useHighlightingRules = () => useAppSelector(selectHighlightingRules);\n\nconst AggregationConditions = () => {\n  const dispatch = useAppDispatch();\n  const { aggregations } = useAlertAndEventDefinitionData();\n  const highlightingRules = useHighlightingRules();\n\n  const aggregationsMap = useMemo(() => new Map(aggregations.map((agg) => [\n    `${agg.fnSeries}${agg.expr}${agg.value}`, agg,\n  ])), [aggregations]);\n\n  const changeColor = useCallback(({ rule, newColor, condition }) => {\n    if (rule) {\n      dispatch(updateHighlightingRule(rule, { color: StaticColor.create(newColor) }));\n    } else {\n      const { value, fnSeries, expr } = aggregationsMap.get(condition);\n\n      dispatch(createHighlightingRules([\n        {\n          value,\n          field: fnSeries,\n          color: randomColor(),\n          condition: exprToConditionMapper[expr],\n        },\n      ]));\n    }\n  }, [aggregationsMap, dispatch]);\n\n  const highlightedAggregations = useMemo>(() => {\n    const initial = new Map(aggregations.map(\n      ({ fnSeries, value, expr }) => [\n        `${fnSeries}${expr}${value}`, undefined,\n      ],\n    ));\n\n    return highlightingRules.reduce((acc, rule) => {\n      const { field, value, condition } = rule;\n      const expr = conditionToExprMapper?.[condition];\n      let result = acc;\n\n      if (expr) {\n        const key = `${field}${expr}${value}`;\n\n        if (acc.has(key)) {\n          result = result.set(key, rule);\n        }\n      }\n\n      return result;\n    }, initial);\n  }, [aggregations, highlightingRules]);\n\n  return highlightedAggregations?.size ? (\n    \n      {Array.from(highlightedAggregations).map(([condition, rule]) => {\n        const color = rule?.color as StaticColor;\n        const hexColor = color?.color;\n\n        return (\n          \n             [c])}\n                                triggerNode={(\n                                  \n                                    {!hexColor && }\n                                  \n                                )}\n                                onChange={(newColor, _, hidePopover) => {\n                                  hidePopover();\n                                  changeColor({ newColor, rule, condition });\n                                }} />\n            {condition}\n          \n        );\n      })}\n    \n  ) : ;\n};\n\nexport default AggregationConditions;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport { useMemo } from 'react';\n\nimport { Link } from 'components/common/router';\nimport Routes from 'routing/Routes';\nimport { useStore } from 'stores/connect';\nimport { EventNotificationsStore } from 'stores/event-notifications/EventNotificationsStore';\nimport useAlertAndEventDefinitionData from 'hooks/useAlertAndEventDefinitionData';\nimport NoAttributeProvided from 'components/event-definitions/replay-search/NoAttributeProvided';\n\nconst Notifications = () => {\n  const { eventDefinition } = useAlertAndEventDefinitionData();\n\n  const allNotifications = useStore(EventNotificationsStore, ({ all }) => all.reduce((res, cur) => {\n    res[cur.id] = cur;\n\n    return res;\n  }, {}));\n\n  const notificationList = useMemo(() => eventDefinition.notifications.reduce((res, cur) => {\n    if (allNotifications[cur.notification_id]) {\n      res.push((allNotifications[cur.notification_id]));\n    }\n\n    return res;\n  }, []), [eventDefinition, allNotifications]);\n\n  return notificationList.length ? (\n    <>\n      {notificationList.map(({ id, title }, index) => {\n        const prefix = index > 0 ? ', ' : '';\n\n        return (\n          \n            {prefix}\n            {title}\n          \n        );\n      })}\n    \n  ) : ;\n};\n\nexport default Notifications;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport React, { useMemo } from 'react';\nimport moment from 'moment/moment';\nimport styled, { css } from 'styled-components';\nimport upperFirst from 'lodash/upperFirst';\n\nimport { TIME_UNITS } from 'components/event-definitions/event-definition-types/FilterForm';\nimport EventDefinitionPriorityEnum from 'logic/alerts/EventDefinitionPriorityEnum';\nimport useAlertAndEventDefinitionData from 'hooks/useAlertAndEventDefinitionData';\nimport { extractDurationAndUnit } from 'components/common/TimeUnitInput';\nimport { Timestamp, HoverForHelp } from 'components/common';\nimport { Link } from 'components/common/router';\nimport Routes from 'routing/Routes';\n\nimport AggregationConditions from '../AggreagtionConditions';\nimport Notifications from '../Notifications';\n\nconst AlertTimestamp = styled(Timestamp)(({ theme }) => css`\n  color: ${theme.colors.variant.darker.warning};\n`);\n\nconst useAttributeComponents = () => {\n  const { eventData, eventDefinition, isEventDefinition } = useAlertAndEventDefinitionData();\n\n  return useMemo(() => {\n    if (!eventDefinition) {\n      return [\n        { title: 'Timestamp', content: , show: !isEventDefinition },\n      ];\n    }\n\n    const searchWithin = extractDurationAndUnit(eventDefinition.config.search_within_ms, TIME_UNITS);\n    const executeEvery = extractDurationAndUnit(eventDefinition.config.execute_every_ms, TIME_UNITS);\n    const isEDUpdatedAfterEvent = !isEventDefinition && moment(eventDefinition.updated_at).diff(eventData.timestamp) > 0;\n\n    return [\n      { title: 'Timestamp', content: , show: !isEventDefinition },\n      {\n        title: 'Event definition updated at',\n        content: (\n          <>\n            \n            \n              Event definition {eventDefinition.title} was edited after this event happened.\n              Some of aggregations widgets might not be representative for this event.\n            \n          \n        ),\n        show: isEDUpdatedAfterEvent,\n      },\n      {\n        title: 'Event definition',\n        content: (\n          \n            {eventDefinition.title}\n          \n        ),\n        show: !isEventDefinition,\n      },\n      {\n        title: 'Priority',\n        content: upperFirst(EventDefinitionPriorityEnum.properties[eventDefinition.priority].name),\n      },\n      { title: 'Execute search every', content: executeEvery?.duration && executeEvery?.unit && `${executeEvery.duration} ${executeEvery.unit.toLowerCase()}` },\n      { title: 'Search within', content: searchWithin?.duration && searchWithin?.unit && `${searchWithin.duration} ${searchWithin.unit.toLowerCase()}` },\n      { title: 'Description', content: eventDefinition.description },\n      {\n        title: 'Notifications',\n        content: ,\n      },\n      {\n        title: 'Aggregation conditions',\n        content: ,\n      },\n    ];\n  }, [\n    eventData?.timestamp,\n    eventDefinition,\n    isEventDefinition,\n  ]);\n};\n\nexport default useAttributeComponents;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\n\nimport type { SyntheticEvent } from 'react';\nimport React, { useCallback, useMemo, useState } from 'react';\nimport styled from 'styled-components';\n\nimport { Button } from 'components/bootstrap';\nimport { FlatContentRow, Icon } from 'components/common';\nimport useAlertAndEventDefinitionData from 'hooks/useAlertAndEventDefinitionData';\nimport useAttributeComponents from 'components/event-definitions/replay-search/hooks/useAttributeComponents';\nimport NoAttributeProvided from 'components/event-definitions/replay-search/NoAttributeProvided';\n\nconst Header = styled.div`\n  display: flex;\n  align-items: center;\n  user-select: none;\n  gap: 5px;\n`;\n\nconst Item = styled.div`\n  display: flex;\n  gap: 5px;\n  align-items: flex-end;\n`;\n\nconst Container = styled.div`\n  display: flex;\n  flex-direction: column;\n  gap: 5px;\n`;\n\nconst Row = styled.div`\n  display: flex;\n  gap: 8px;\n  flex-wrap: wrap;\n`;\n\nconst Value = styled.div`\n  display: flex;\n`;\n\nconst EventInfoBar = () => {\n  const { isEventDefinition, isEvent, isAlert } = useAlertAndEventDefinitionData();\n  const [open, setOpen] = useState(true);\n\n  const toggleOpen = useCallback((e: SyntheticEvent) => {\n    e.stopPropagation();\n    setOpen((cur) => !cur);\n  }, []);\n\n  const infoAttributes = useAttributeComponents();\n\n  const currentTypeText = useMemo(() => {\n    if (isEventDefinition) return 'event definition';\n    if (isAlert) return 'alert';\n    if (isEvent) return 'event';\n\n    return '';\n  }, [isAlert, isEvent, isEventDefinition]);\n\n  return (\n    \n      
\n \n
\n {open && (\n \n \n {infoAttributes.map(({ title, content, show }) => (show !== false) && (\n \n {title}: \n {content || }\n \n ))}\n \n \n )}\n
\n );\n};\n\nexport default EventInfoBar;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport { useQuery } from '@tanstack/react-query';\nimport uniqWith from 'lodash/uniqWith';\nimport isEqual from 'lodash/isEqual';\n\nimport UserNotification from 'util/UserNotification';\nimport fetch from 'logic/rest/FetchProvider';\nimport { qualifyUrl } from 'util/URLUtils';\nimport type { EventDefinition } from 'components/event-definitions/event-definitions-types';\nimport type FetchError from 'logic/errors/FetchError';\n\nexport type ValueExpr = '>' | '<' | '>=' | '<=' | '==';\n\nexport type EventDefinitionAggregation = {\n expr: ValueExpr,\n value: number,\n function: string,\n fnSeries: string,\n field?: string\n}\nexport const definitionsUrl = (definitionId: string) => qualifyUrl(`/events/definitions/${definitionId}`);\n\nconst transformExpressionsToArray = ({ series, conditions }): Array => {\n const res = [];\n\n const rec = (expression) => {\n if (!expression) {\n return 'No condition configured';\n }\n\n switch (expression.expr) {\n case 'number':\n return ({ value: expression.value });\n case 'number-ref':\n // eslint-disable-next-line no-case-declarations\n const numberRefSeries = series.find((s) => s.id === expression.ref);\n\n return (numberRefSeries?.type\n ? { field: `${numberRefSeries.type}(${numberRefSeries.field || ''})` }\n : null);\n case '&&':\n case '||':\n return [rec(expression.left), rec(expression.right)];\n case 'group':\n return [rec(expression.child)];\n case '<':\n case '<=':\n case '>':\n case '>=':\n case '==':\n // eslint-disable-next-line no-case-declarations\n const { ref } = expression.left;\n // eslint-disable-next-line no-case-declarations\n const selectedSeries = series.find((s) => s.id === ref);\n // eslint-disable-next-line no-case-declarations\n const fnSeries = selectedSeries?.type ? `${selectedSeries.type}(${selectedSeries.field || ''})` : undefined;\n res.push({ expr: expression.expr, value: expression.right.value, function: selectedSeries?.type, fnSeries, field: selectedSeries?.field });\n\n return [rec(expression.left), rec(expression.right)];\n default:\n return null;\n }\n };\n\n rec(conditions.expression);\n\n return res;\n};\n\nconst eventDefinitionDataMapper = (data: EventDefinition): { eventDefinition: EventDefinition, aggregations: Array} => ({\n eventDefinition: data,\n aggregations: (data?.config?.series && data?.config?.conditions)\n ? uniqWith(transformExpressionsToArray({ series: data.config.series, conditions: data.config.conditions }), isEqual)\n : [],\n});\n\nconst fetchDefinition = (definitionId: string) => fetch('GET', definitionsUrl(definitionId)).then(eventDefinitionDataMapper);\n\nconst useEventDefinition = (definitionId: string, { onErrorHandler }: { onErrorHandler?: (e: FetchError)=>void} = {}): {\n data: { eventDefinition: EventDefinition, aggregations: Array },\n refetch: () => void,\n isLoading: boolean,\n isFetched: boolean\n} => {\n const { data, refetch, isLoading, isFetched } = useQuery(\n ['event-definition-by-id', definitionId],\n () => fetchDefinition(definitionId),\n {\n onError: (errorThrown: FetchError) => {\n if (onErrorHandler) onErrorHandler(errorThrown);\n\n UserNotification.error(`Loading event definition failed with status: ${errorThrown}`,\n 'Could not load event definition');\n },\n keepPreviousData: true,\n enabled: !!definitionId,\n initialData: {\n eventDefinition: null,\n aggregations: [],\n },\n },\n );\n\n return ({\n data,\n refetch,\n isLoading,\n isFetched,\n });\n};\n\nexport default useEventDefinition;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport { useMemo } from 'react';\nimport merge from 'lodash/merge';\n\nimport type { LayoutState } from './SearchPageLayoutContext';\nimport SearchPageLayoutContext, { DEFAULT_STATE } from './SearchPageLayoutContext';\n\ntype Props = {\n children: React.ReactNode,\n value: Partial,\n};\n\nconst SearchPageLayoutProvider = ({ children, value }: Props) => {\n const contextValue = useMemo(() => merge({}, DEFAULT_STATE, value), [value]);\n\n return (\n \n {children}\n \n );\n};\n\nexport default SearchPageLayoutProvider;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport { useMemo } from 'react';\n\nimport createSearch from 'views/logic/slices/createSearch';\nimport type View from 'views/logic/views/View';\n\nconst useCreateSearch = (viewPromise: Promise) => useMemo(() => viewPromise.then(async (_view) => {\n await createSearch(_view.search);\n\n return _view;\n}), [viewPromise]);\n\nexport default useCreateSearch;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\n\nimport type { ValueExpr } from 'hooks/useEventDefinition';\nimport type { Condition } from 'views/logic/views/formatting/highlighting/HighlightingRule';\n\nexport const exprToConditionMapper: {[name: string]: Condition} = {\n '<': 'less',\n '<=': 'less_equal',\n '>=': 'greater_equal',\n '>': 'greater',\n '==': 'equal',\n};\n\nexport const conditionToExprMapper: {[name: string]: ValueExpr} = {\n less: '<',\n less_equal: '<=',\n greater_equal: '>=',\n greater: '>',\n equal: '==',\n};\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport { useMemo } from 'react';\nimport * as Immutable from 'immutable';\nimport uniq from 'lodash/uniq';\n\nimport View from 'views/logic/views/View';\nimport type { AbsoluteTimeRange, ElasticsearchQueryString, RelativeTimeRangeStartOnly } from 'views/logic/queries/Query';\nimport type { Event } from 'components/events/events/types';\nimport type { EventDefinition, SearchFilter } from 'components/event-definitions/event-definitions-types';\nimport QueryGenerator from 'views/logic/queries/QueryGenerator';\nimport Search from 'views/logic/search/Search';\nimport { matchesDecoratorStream } from 'views/logic/views/ViewStateGenerator';\nimport UpdateSearchForWidgets from 'views/logic/views/UpdateSearchForWidgets';\nimport ViewState from 'views/logic/views/ViewState';\nimport { allMessagesTable, resultHistogram } from 'views/logic/Widgets';\nimport WidgetPosition from 'views/logic/widgets/WidgetPosition';\nimport { DecoratorsActions } from 'stores/decorators/DecoratorsStore';\nimport generateId from 'logic/generateId';\nimport pivotForField from 'views/logic/searchtypes/aggregation/PivotGenerator';\nimport FieldType from 'views/logic/fieldtypes/FieldType';\nimport AggregationWidget from 'views/logic/aggregationbuilder/AggregationWidget';\nimport AggregationWidgetConfig from 'views/logic/aggregationbuilder/AggregationWidgetConfig';\nimport Series from 'views/logic/aggregationbuilder/Series';\nimport type Pivot from 'views/logic/aggregationbuilder/Pivot';\nimport type { EventDefinitionAggregation } from 'hooks/useEventDefinition';\nimport SortConfig from 'views/logic/aggregationbuilder/SortConfig';\nimport Direction from 'views/logic/aggregationbuilder/Direction';\nimport type { ParameterJson } from 'views/logic/parameters/Parameter';\nimport Parameter from 'views/logic/parameters/Parameter';\nimport { concatQueryStrings, escape } from 'views/logic/queries/QueryHelper';\nimport HighlightingRule, { randomColor } from 'views/logic/views/formatting/highlighting/HighlightingRule';\nimport { exprToConditionMapper } from 'views/logic/ExpressionConditionMappers';\nimport FormattingSettings from 'views/logic/views/formatting/FormattingSettings';\n\nconst AGGREGATION_WIDGET_HEIGHT = 3;\n\nexport const getAggregationWidget = ({ rowPivots, fnSeries, sort = [] }: {\n rowPivots: Array,\n fnSeries: Array,\n sort?: Array\n}) => AggregationWidget.builder()\n .id(generateId())\n .config(\n AggregationWidgetConfig.builder()\n .columnPivots([])\n .rowPivots(rowPivots)\n .series(fnSeries)\n .sort(sort)\n .visualization('table')\n .rollup(true)\n .build(),\n )\n .build();\n\nconst createViewPosition = ({ index, SUMMARY_ROW_DELTA }) => {\n const isEven = (index + 1) % 2 === 0;\n const col = isEven ? 7 : 1;\n const HEIGHT_DELTA = index >= 2 ? AGGREGATION_WIDGET_HEIGHT : 0;\n const row = Math.ceil((index + 1) / 2) + HEIGHT_DELTA + SUMMARY_ROW_DELTA;\n\n return new WidgetPosition(col, row, AGGREGATION_WIDGET_HEIGHT, 6);\n};\n\nconst createViewWidget = ({ field, groupBy, fnSeries, expr }) => {\n const uniqPivotFields = uniq([field, ...groupBy].filter((v) => !!v));\n const rowPivots = uniqPivotFields.length ? [pivotForField(uniqPivotFields, new FieldType('value', [], []))] : [];\n const fnSeriesForFunc = Series.forFunction(fnSeries);\n const direction = ['>', '>=', '=='].includes(expr) ? Direction.Descending : Direction.Ascending;\n const sort = [new SortConfig(SortConfig.SERIES_TYPE, fnSeries, direction)];\n\n return getAggregationWidget({ rowPivots, fnSeries: [fnSeriesForFunc], sort });\n};\n\nconst getSummaryAggregation = ({ aggregations, groupBy }) => {\n const { summaryFnSeries, summaryRowPivots, summaryTitle } = aggregations.reduce((res, { field, value, expr, fnSeries }) => {\n const concatTitle = `${fnSeries} ${expr} ${value}`;\n res.summaryFnSeries.push(fnSeries);\n if (field) res.summaryRowPivots.push(field);\n res.summaryTitle = `${res.summaryTitle} ${concatTitle}`;\n\n return res;\n }, {\n summaryFnSeries: [],\n summaryRowPivots: [],\n summaryTitle: 'Summary: ',\n });\n\n const summaryWidget = getAggregationWidget({\n rowPivots: [pivotForField(uniq([...summaryRowPivots, ...groupBy]), new FieldType('value', [], []))],\n fnSeries: summaryFnSeries.map((s) => Series.forFunction(s)),\n });\n\n return ({\n summaryTitle,\n summaryWidget,\n summaryPosition: new WidgetPosition(1, 1, AGGREGATION_WIDGET_HEIGHT, Infinity),\n });\n};\n\nexport const WidgetsGenerator = async ({ streams, aggregations, groupBy }) => {\n const decorators = await DecoratorsActions.list();\n const byStreamId = matchesDecoratorStream(streams);\n const streamDecorators = decorators?.length ? decorators.filter(byStreamId) : [];\n const histogram = resultHistogram();\n const messageTable = allMessagesTable(undefined, streamDecorators);\n const needsSummaryAggregations = aggregations.length > 1;\n const SUMMARY_ROW_DELTA = needsSummaryAggregations ? AGGREGATION_WIDGET_HEIGHT : 0;\n const { aggregationWidgets, aggregationTitles, aggregationPositions } = aggregations.reduce((res, { field, value, expr, fnSeries }, index) => {\n const widget = createViewWidget({ fnSeries, field, groupBy, expr });\n res.aggregationWidgets.push(widget);\n res.aggregationTitles[widget.id] = `${fnSeries} ${expr} ${value}`;\n res.aggregationPositions[widget.id] = createViewPosition({ index, SUMMARY_ROW_DELTA });\n\n return res;\n }, { aggregationTitles: {}, aggregationWidgets: [], aggregationPositions: {} });\n\n const widgets = [\n ...aggregationWidgets,\n histogram,\n messageTable,\n ];\n\n const titles = {\n widget: {\n ...aggregationTitles,\n [histogram.id]: 'Message Count',\n [messageTable.id]: 'All Messages',\n },\n };\n\n const positions = {\n ...aggregationPositions,\n [histogram.id]: new WidgetPosition(1, AGGREGATION_WIDGET_HEIGHT * aggregationWidgets.length + 1 + SUMMARY_ROW_DELTA, 2, Infinity),\n [messageTable.id]: new WidgetPosition(1, AGGREGATION_WIDGET_HEIGHT * aggregationWidgets.length + 3 + SUMMARY_ROW_DELTA, 6, Infinity),\n };\n\n if (needsSummaryAggregations) {\n const { summaryTitle, summaryWidget, summaryPosition } = getSummaryAggregation({ aggregations, groupBy });\n widgets.push(summaryWidget);\n titles.widget[summaryWidget.id] = summaryTitle;\n positions[summaryWidget.id] = summaryPosition;\n }\n\n return { titles, widgets, positions };\n};\n\nexport const ViewStateGenerator = async ({ streams, aggregations, groupBy }: {groupBy: Array, streams: string | string[] | undefined, aggregations: Array}) => {\n const { titles, widgets, positions } = await WidgetsGenerator({ streams, aggregations, groupBy });\n\n const highlightRules = aggregations?.map(({ fnSeries, value, expr }) => HighlightingRule.create(fnSeries, value, exprToConditionMapper[expr] || 'equal', randomColor()));\n\n return ViewState.create()\n .toBuilder()\n .titles(titles)\n .widgets(Immutable.List(widgets))\n .widgetPositions(positions)\n .formatting(FormattingSettings.create(highlightRules))\n .build();\n};\n\nexport const ViewGenerator = async ({\n streams,\n timeRange,\n queryString,\n aggregations,\n groupBy,\n queryParameters,\n searchFilters,\n}: {\n streams: string | string[] | undefined | null,\n timeRange: AbsoluteTimeRange | RelativeTimeRangeStartOnly,\n queryString: ElasticsearchQueryString,\n aggregations: Array\n groupBy: Array,\n queryParameters: Array,\n searchFilters?: Array,\n}) => {\n const query = QueryGenerator(streams, undefined, timeRange, queryString, (searchFilters || []));\n const search = Search.create().toBuilder().queries([query]).parameters(queryParameters.map((param) => Parameter.fromJSON(param)))\n .build();\n const viewState = await ViewStateGenerator({ streams, aggregations, groupBy });\n\n const view = View.create()\n .toBuilder()\n .newId()\n .type(View.Type.Search)\n .state({ [query.id]: viewState })\n .search(search)\n .build();\n\n return UpdateSearchForWidgets(view);\n};\n\nexport const UseCreateViewForEvent = (\n { eventData, eventDefinition, aggregations }: { eventData: Event, eventDefinition: EventDefinition, aggregations: Array },\n) => {\n const queryStringFromGrouping = concatQueryStrings(Object.entries(eventData.group_by_fields).map(([field, value]) => `${field}:${escape(value)}`), { withBrackets: false });\n const eventQueryString = eventData?.replay_info?.query || '';\n const { streams } = eventData.replay_info;\n const timeRange: AbsoluteTimeRange = {\n type: 'absolute',\n from: eventData?.replay_info?.timerange_start,\n to: eventData?.replay_info?.timerange_end,\n };\n const queryString: ElasticsearchQueryString = {\n type: 'elasticsearch',\n query_string: concatQueryStrings([eventQueryString, queryStringFromGrouping]),\n };\n\n const queryParameters = eventDefinition?.config?.query_parameters || [];\n\n const groupBy = eventDefinition?.config?.group_by ?? [];\n\n const searchFilters = eventDefinition.config?.filters;\n\n return useMemo(\n () => ViewGenerator({ streams, timeRange, queryString, aggregations, groupBy, queryParameters, searchFilters }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [],\n );\n};\n\nexport default UseCreateViewForEvent;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\n\nimport { useMemo } from 'react';\n\nimport type { EventDefinition } from 'components/event-definitions/event-definitions-types';\nimport type { EventDefinitionAggregation } from 'hooks/useEventDefinition';\nimport type { ElasticsearchQueryString, RelativeTimeRangeStartOnly } from 'views/logic/queries/Query';\nimport { ViewGenerator } from 'views/logic/views/UseCreateViewForEvent';\n\nconst useCreateViewForEventDefinition = (\n {\n eventDefinition,\n aggregations,\n }: { eventDefinition: EventDefinition, aggregations: Array },\n) => {\n const streams = eventDefinition?.config?.streams ?? [];\n const timeRange: RelativeTimeRangeStartOnly = {\n type: 'relative',\n range: (eventDefinition?.config?.search_within_ms ?? 0) / 1000,\n };\n const queryString: ElasticsearchQueryString = {\n type: 'elasticsearch',\n query_string: eventDefinition?.config?.query || '',\n };\n\n const queryParameters = eventDefinition?.config?.query_parameters || [];\n\n const groupBy = eventDefinition?.config?.group_by ?? [];\n\n const searchFilters = eventDefinition?.config?.filters ?? [];\n\n return useMemo(\n () => ViewGenerator({ streams, timeRange, queryString, aggregations, groupBy, queryParameters, searchFilters }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [],\n );\n};\n\nexport default useCreateViewForEventDefinition;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\n\nimport React, { useEffect, useState, useMemo } from 'react';\n\nimport useParams from 'routing/useParams';\nimport useEventDefinition from 'hooks/useEventDefinition';\nimport { Spinner } from 'components/common';\nimport SearchPage from 'views/pages/SearchPage';\nimport { EventNotificationsActions } from 'stores/event-notifications/EventNotificationsStore';\nimport useAlertAndEventDefinitionData from 'hooks/useAlertAndEventDefinitionData';\nimport useCreateViewForEventDefinition from 'views/logic/views/UseCreateViewForEventDefinition';\nimport EventInfoBar from 'components/event-definitions/replay-search/EventInfoBar';\nimport { createFromFetchError } from 'logic/errors/ReportedErrors';\nimport ErrorsActions from 'actions/errors/ErrorsActions';\nimport useCreateSearch from 'views/hooks/useCreateSearch';\nimport SearchPageLayoutProvider from 'views/components/contexts/SearchPageLayoutProvider';\n\nconst EventView = () => {\n const { eventDefinition, aggregations } = useAlertAndEventDefinitionData();\n const _view = useCreateViewForEventDefinition({ eventDefinition, aggregations });\n const view = useCreateSearch(_view);\n const searchPageLayout = useMemo(() => ({\n infoBar: { component: EventInfoBar },\n }), []);\n\n return (\n \n \n \n );\n};\n\nexport const onErrorHandler = (error) => {\n if (error.status === 404) {\n ErrorsActions.report(createFromFetchError(error));\n }\n};\n\nconst EventDefinitionReplaySearchPage = () => {\n const [isNotificationLoaded, setIsNotificationLoaded] = useState(false);\n const { definitionId } = useParams<{ definitionId?: string }>();\n const { isLoading: EDIsLoading, isFetched: EDIsFetched } = useEventDefinition(definitionId, { onErrorHandler });\n\n useEffect(() => {\n EventNotificationsActions.listAll().then(() => setIsNotificationLoaded(true));\n }, [setIsNotificationLoaded]);\n\n const isLoading = EDIsLoading || !EDIsFetched || !isNotificationLoaded;\n\n return isLoading ? : ;\n};\n\nexport default EventDefinitionReplaySearchPage;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\n\nimport React, { useEffect, useState, useMemo } from 'react';\n\nimport useParams from 'routing/useParams';\nimport useEventById from 'hooks/useEventById';\nimport useEventDefinition from 'hooks/useEventDefinition';\nimport { Spinner } from 'components/common';\nimport SearchPage from 'views/pages/SearchPage';\nimport { EventNotificationsActions } from 'stores/event-notifications/EventNotificationsStore';\nimport useCreateViewForEvent from 'views/logic/views/UseCreateViewForEvent';\nimport useAlertAndEventDefinitionData from 'hooks/useAlertAndEventDefinitionData';\nimport EventInfoBar from 'components/event-definitions/replay-search/EventInfoBar';\nimport { createFromFetchError } from 'logic/errors/ReportedErrors';\nimport ErrorsActions from 'actions/errors/ErrorsActions';\nimport useCreateSearch from 'views/hooks/useCreateSearch';\nimport SearchPageLayoutProvider from 'views/components/contexts/SearchPageLayoutProvider';\n\nconst EventView = () => {\n const { eventData, eventDefinition, aggregations } = useAlertAndEventDefinitionData();\n const _view = useCreateViewForEvent({ eventData, eventDefinition, aggregations });\n const view = useCreateSearch(_view);\n const searchPageLayout = useMemo(() => ({\n infoBar: { component: EventInfoBar },\n }), []);\n\n return (\n \n \n \n );\n};\n\nexport const onErrorHandler = (error) => {\n if (error.status === 404) {\n ErrorsActions.report(createFromFetchError(error));\n }\n};\n\nconst EventReplaySearchPage = () => {\n const [isNotificationLoaded, setIsNotificationLoaded] = useState(false);\n const { alertId } = useParams<{ alertId?: string }>();\n const { data: eventData, isLoading: eventIsLoading, isFetched: eventIsFetched } = useEventById(alertId, { onErrorHandler });\n const { isLoading: EDIsLoading, isFetched: EDIsFetched } = useEventDefinition(eventData?.event_definition_id);\n\n useEffect(() => {\n EventNotificationsActions.listAll().then(() => setIsNotificationLoaded(true));\n }, [setIsNotificationLoaded]);\n\n const isLoading = eventIsLoading || EDIsLoading || !eventIsFetched || !EDIsFetched || !isNotificationLoaded;\n\n return isLoading ? : ;\n};\n\nexport default EventReplaySearchPage;\n"],"names":["name","List","Condition","ColorComponent","useHighlightingRules","useAppSelector","dispatch","useAppDispatch","aggregations","useAlertAndEventDefinitionData","highlightingRules","aggregationsMap","agg","changeColor","rule","newColor","condition","value","fnSeries","expr","highlightedAggregations","initial","acc","field","result","key","color","hexColor","c","_","hidePopover","eventDefinition","allNotifications","EventNotificationsStore","all","res","cur","notificationList","id","title","index","prefix","Routes","AlertTimestamp","theme","eventData","isEventDefinition","searchWithin","executeEvery","isEDUpdatedAfterEvent","EventDefinitionPriorityEnum","Header","Item","Container","Row","Value","isEvent","isAlert","open","setOpen","toggleOpen","e","infoAttributes","currentTypeText","content","show","definitionsUrl","definitionId","transformExpressionsToArray","series","conditions","rec","expression","numberRefSeries","s","ref","selectedSeries","eventDefinitionDataMapper","data","fetchDefinition","onErrorHandler","refetch","isLoading","isFetched","errorThrown","children","contextValue","viewPromise","_view","exprToConditionMapper","conditionToExprMapper","AGGREGATION_WIDGET_HEIGHT","getAggregationWidget","rowPivots","sort","createViewPosition","SUMMARY_ROW_DELTA","col","HEIGHT_DELTA","row","createViewWidget","groupBy","uniqPivotFields","v","fnSeriesForFunc","direction","getSummaryAggregation","summaryFnSeries","summaryRowPivots","summaryTitle","concatTitle","summaryWidget","WidgetsGenerator","streams","decorators","byStreamId","streamDecorators","histogram","messageTable","needsSummaryAggregations","aggregationWidgets","aggregationTitles","aggregationPositions","widget","widgets","titles","positions","summaryPosition","ViewStateGenerator","highlightRules","ViewGenerator","timeRange","queryString","queryParameters","searchFilters","query","search","param","viewState","view","queryStringFromGrouping","eventQueryString","EventView","useCreateSearch","searchPageLayout","EventInfoBar","SearchPageLayoutProvider","SearchPage","error","ErrorsActions","isNotificationLoaded","setIsNotificationLoaded","useParams","EDIsLoading","EDIsFetched","useEventDefinition","alertId","eventIsLoading","eventIsFetched"],"sourceRoot":""}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy