@ytsaurus/ui 1.83.0 → 1.84.0

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.
Files changed (94) hide show
  1. package/dist/public/build/assets-manifest.json +61 -61
  2. package/dist/public/build/css/{2209.ee64dbab.chunk.css → 2209.b618d964.chunk.css} +2 -2
  3. package/dist/public/build/css/2209.b618d964.chunk.css.map +1 -0
  4. package/dist/public/build/css/components.6375c10d.chunk.css +2 -0
  5. package/dist/public/build/css/components.6375c10d.chunk.css.map +1 -0
  6. package/dist/public/build/css/{navigation.d170ba80.chunk.css → navigation.b6f988cd.chunk.css} +2 -2
  7. package/dist/public/build/css/navigation.b6f988cd.chunk.css.map +1 -0
  8. package/dist/public/build/css/{query-tracker.94d91868.chunk.css → query-tracker.7c9d0851.chunk.css} +2 -2
  9. package/dist/public/build/css/{query-tracker.94d91868.chunk.css.map → query-tracker.7c9d0851.chunk.css.map} +1 -1
  10. package/dist/public/build/js/{1604.72f6d465.chunk.js → 1604.7b5c7976.chunk.js} +3 -3
  11. package/dist/public/build/js/1604.7b5c7976.chunk.js.map +1 -0
  12. package/dist/public/build/js/{1983.e3e6d5e8.chunk.js → 1983.034a4de9.chunk.js} +2 -2
  13. package/dist/public/build/js/1983.034a4de9.chunk.js.map +1 -0
  14. package/dist/public/build/js/{3724.f72a2691.chunk.js → 3724.1674ced1.chunk.js} +2 -2
  15. package/dist/public/build/js/3724.1674ced1.chunk.js.map +1 -0
  16. package/dist/public/build/js/3751.147f6dd9.chunk.js +2 -0
  17. package/dist/public/build/js/3751.147f6dd9.chunk.js.map +1 -0
  18. package/dist/public/build/js/4319.3407fde8.chunk.js +3 -0
  19. package/dist/public/build/js/4319.3407fde8.chunk.js.map +1 -0
  20. package/dist/public/build/js/5088.bee0a42a.chunk.js +2 -0
  21. package/dist/public/build/js/5088.bee0a42a.chunk.js.map +1 -0
  22. package/dist/public/build/js/{5653.45eec4e2.chunk.js → 5653.cff8909f.chunk.js} +2 -2
  23. package/dist/public/build/js/5653.cff8909f.chunk.js.map +1 -0
  24. package/dist/public/build/js/{acl.614f12c4.chunk.js → acl.f6256b52.chunk.js} +2 -2
  25. package/dist/public/build/js/{acl.614f12c4.chunk.js.map → acl.f6256b52.chunk.js.map} +1 -1
  26. package/dist/public/build/js/{app-navigation.7629fe5d.chunk.js → app-navigation.e7dd869b.chunk.js} +2 -2
  27. package/dist/public/build/js/{app-navigation.7629fe5d.chunk.js.map → app-navigation.e7dd869b.chunk.js.map} +1 -1
  28. package/dist/public/build/js/cluster-menu.68f5e677.chunk.js +2 -0
  29. package/dist/public/build/js/{cluster-menu.381d4a48.chunk.js.map → cluster-menu.68f5e677.chunk.js.map} +1 -1
  30. package/dist/public/build/js/cluster-page-wrapper.e42322f0.chunk.js +2 -0
  31. package/dist/public/build/js/{cluster-page-wrapper.b70c30d4.chunk.js.map → cluster-page-wrapper.e42322f0.chunk.js.map} +1 -1
  32. package/dist/public/build/js/components.1ea8e03b.chunk.js +2 -0
  33. package/dist/public/build/js/components.1ea8e03b.chunk.js.map +1 -0
  34. package/dist/public/build/js/{dashboard.a63eef8c.chunk.js → dashboard.303faf7e.chunk.js} +2 -2
  35. package/dist/public/build/js/{dashboard.a63eef8c.chunk.js.map → dashboard.303faf7e.chunk.js.map} +1 -1
  36. package/dist/public/build/js/default-subject-link.f30c100a.chunk.js +2 -0
  37. package/dist/public/build/js/default-subject-link.f30c100a.chunk.js.map +1 -0
  38. package/dist/public/build/js/job.47f7b4c0.chunk.js +2 -0
  39. package/dist/public/build/js/job.47f7b4c0.chunk.js.map +1 -0
  40. package/dist/public/build/js/main.4f383c25.js +3 -0
  41. package/dist/public/build/js/main.4f383c25.js.map +1 -0
  42. package/dist/public/build/js/navigation.5512d9c6.chunk.js +2 -0
  43. package/dist/public/build/js/navigation.5512d9c6.chunk.js.map +1 -0
  44. package/dist/public/build/js/odin.96cec50a.chunk.js +2 -0
  45. package/dist/public/build/js/odin.96cec50a.chunk.js.map +1 -0
  46. package/dist/public/build/js/{operations.3535a692.chunk.js → operations.1a486c6e.chunk.js} +2 -2
  47. package/dist/public/build/js/operations.1a486c6e.chunk.js.map +1 -0
  48. package/dist/public/build/js/{query-tracker.d266354f.chunk.js → query-tracker.028a8ccf.chunk.js} +2 -2
  49. package/dist/public/build/js/query-tracker.028a8ccf.chunk.js.map +1 -0
  50. package/dist/public/build/js/{runtime.948c8e30.js → runtime.ad8a9439.js} +2 -2
  51. package/dist/public/build/js/{runtime.948c8e30.js.map → runtime.ad8a9439.js.map} +1 -1
  52. package/dist/public/build/js/{tablet.4e3852cc.chunk.js → tablet.68f185b6.chunk.js} +2 -2
  53. package/dist/public/build/js/{tablet.4e3852cc.chunk.js.map → tablet.68f185b6.chunk.js.map} +1 -1
  54. package/dist/public/build/js/{yt-df-dialog.63cfd34a.chunk.js → yt-df-dialog.bbf72b55.chunk.js} +2 -2
  55. package/dist/public/build/js/{yt-df-dialog.63cfd34a.chunk.js.map → yt-df-dialog.bbf72b55.chunk.js.map} +1 -1
  56. package/dist/public/build/js/yt-monaco-editor.72350aca.chunk.js +2 -0
  57. package/dist/public/build/js/yt-monaco-editor.72350aca.chunk.js.map +1 -0
  58. package/dist/public/build/manifest.json +56 -56
  59. package/package.json +2 -2
  60. package/dist/public/build/css/2209.ee64dbab.chunk.css.map +0 -1
  61. package/dist/public/build/css/components.fd2fa23a.chunk.css +0 -2
  62. package/dist/public/build/css/components.fd2fa23a.chunk.css.map +0 -1
  63. package/dist/public/build/css/navigation.d170ba80.chunk.css.map +0 -1
  64. package/dist/public/build/js/1604.72f6d465.chunk.js.map +0 -1
  65. package/dist/public/build/js/1983.e3e6d5e8.chunk.js.map +0 -1
  66. package/dist/public/build/js/3724.f72a2691.chunk.js.map +0 -1
  67. package/dist/public/build/js/3745.aa320ee5.chunk.js +0 -2
  68. package/dist/public/build/js/3745.aa320ee5.chunk.js.map +0 -1
  69. package/dist/public/build/js/4319.20f80209.chunk.js +0 -3
  70. package/dist/public/build/js/4319.20f80209.chunk.js.map +0 -1
  71. package/dist/public/build/js/5088.91897d9a.chunk.js +0 -2
  72. package/dist/public/build/js/5088.91897d9a.chunk.js.map +0 -1
  73. package/dist/public/build/js/5653.45eec4e2.chunk.js.map +0 -1
  74. package/dist/public/build/js/cluster-menu.381d4a48.chunk.js +0 -2
  75. package/dist/public/build/js/cluster-page-wrapper.b70c30d4.chunk.js +0 -2
  76. package/dist/public/build/js/components.4b381a1a.chunk.js +0 -2
  77. package/dist/public/build/js/components.4b381a1a.chunk.js.map +0 -1
  78. package/dist/public/build/js/default-subject-link.17448a19.chunk.js +0 -2
  79. package/dist/public/build/js/default-subject-link.17448a19.chunk.js.map +0 -1
  80. package/dist/public/build/js/job.c5cdc8c6.chunk.js +0 -2
  81. package/dist/public/build/js/job.c5cdc8c6.chunk.js.map +0 -1
  82. package/dist/public/build/js/main.03147e02.js +0 -3
  83. package/dist/public/build/js/main.03147e02.js.map +0 -1
  84. package/dist/public/build/js/navigation.1f7a0ea4.chunk.js +0 -2
  85. package/dist/public/build/js/navigation.1f7a0ea4.chunk.js.map +0 -1
  86. package/dist/public/build/js/odin.45cc399f.chunk.js +0 -2
  87. package/dist/public/build/js/odin.45cc399f.chunk.js.map +0 -1
  88. package/dist/public/build/js/operations.3535a692.chunk.js.map +0 -1
  89. package/dist/public/build/js/query-tracker.d266354f.chunk.js.map +0 -1
  90. package/dist/public/build/js/yt-monaco-editor.ba383e90.chunk.js +0 -2
  91. package/dist/public/build/js/yt-monaco-editor.ba383e90.chunk.js.map +0 -1
  92. /package/dist/public/build/js/{1604.72f6d465.chunk.js.LICENSE.txt → 1604.7b5c7976.chunk.js.LICENSE.txt} +0 -0
  93. /package/dist/public/build/js/{4319.20f80209.chunk.js.LICENSE.txt → 4319.3407fde8.chunk.js.LICENSE.txt} +0 -0
  94. /package/dist/public/build/js/{main.03147e02.js.LICENSE.txt → main.4f383c25.js.LICENSE.txt} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"js/tablet.4e3852cc.chunk.js","mappings":"yUA8DA,SAFkBA,EAAAA,EAAAA,IAAQ,KAAM,CAACC,oBAAAA,EAAAA,IAEjC,EAvCA,SAAkCC,GAaY,IAZ1CC,EAAKD,EAALC,MAAKC,EAAAF,EACLG,aAAAA,OAAY,IAAAD,EAAG,WACX,MAAO,CAAC,CACZ,EAACA,EACDE,EAAIJ,EAAJI,KACAC,EAASL,EAATK,UACAC,EAASN,EAATM,UACAC,EAAUP,EAAVO,WACAR,EAAmBC,EAAnBD,oBAAmBS,EAAAR,EACnBS,YAAAA,OAAW,IAAAD,GAAOA,EAAAE,EAAAV,EAClBW,aAAAA,OAAY,IAAAD,EAAG,CAACE,UAAW,aAAcC,QAAS,mBAAkBH,EACjEI,GAAIC,EAAAA,EAAAA,GAAAf,EAAAgB,GAEP,OACIC,EAAAA,EAAAA,KAACC,EAAAA,GAAgBC,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACTL,GAAI,IACRH,aAAcA,EACdF,YAAaA,EACbW,QAAS,WACL,IAAMC,GAASF,EAAAA,EAAAA,GAAA,CACXf,KAAAA,EACAC,UAAAA,GACGF,KAGPJ,GAAmBoB,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAC,CAChBlB,MAAAA,GACGoB,GAAS,IACZf,UAAAA,EACAC,WAAAA,IAER,IAGZ,G,0HClDMe,GAAQC,EAAAA,EAAAA,GAAG,oBA2BV,SAASC,EAAeC,GAC3B,IACIC,EAaAD,EAbAC,SACAC,EAYAF,EAZAE,SACAC,EAWAH,EAXAG,KACAC,EAUAJ,EAVAI,UACAC,EASAL,EATAK,aACAC,EAQAN,EARAM,KACAC,EAOAP,EAPAO,YACAC,EAMAR,EANAQ,cACAC,EAKAT,EALAS,YACAC,EAIAV,EAJAU,aACAC,EAGAX,EAHAW,aAAYC,EAGZZ,EAFAa,eAAAA,OAAc,IAAAD,EAAG,SAAQA,EAAAE,EAEzBd,EADAe,iBAAAA,OAAgB,IAAAD,EAAG,SAAQA,EAE/BE,EAAgCC,EAAAA,UAAe,GAAMC,GAAAC,EAAAA,EAAAA,GAAAH,EAAA,GAA9CI,EAAQF,EAAA,GAAEG,EAAWH,EAAA,GAC5BI,EAA0BL,EAAAA,SAAed,GAAQ,IAAGoB,GAAAJ,EAAAA,EAAAA,GAAAG,EAAA,GAA7CE,EAAKD,EAAA,GAAEE,EAAQF,EAAA,IAEtBG,EAAAA,EAAAA,YAAU,WACND,EAAStB,GAAQ,GACrB,GAAG,CAACA,IAEJ,IAAMwB,GAAmBC,EAAAA,EAAAA,cACrB,SAACC,GACOlB,GAAcA,EAAakB,GAC/BR,EAAYQ,EAChB,GACA,CAAClB,IAGCmB,EAAgBb,EAAAA,aAAkB,WACpCU,GAAiB,GACbnB,GAAeiB,EAAStB,GAAQ,GACxC,GAAG,CAACK,EAAemB,EAAkBxB,IAE/B4B,GAAgBH,EAAAA,EAAAA,cAAY,WAC9BD,GAAiB,EACrB,GAAG,CAACA,IAQEK,EAAef,EAAAA,aAAkB,SAACgB,GAAY,OAAKR,EAASQ,QAAAA,EAAO,GAAG,GAAE,CAACR,IAEzES,GAAaN,EAAAA,EAAAA,cAAY,WAC3BD,GAAiB,GACjBzB,EAASsB,EACb,GAAG,CAACtB,EAAUyB,EAAkBH,IAE1BW,GAAqBP,EAAAA,EAAAA,cAAY,WACnCD,GAAiB,GACjBF,EAAStB,GAAQ,GACrB,GAAG,CAACwB,EAAkBxB,IAEhBiC,GAAUR,EAAAA,EAAAA,cACZ,SAACS,GACGV,GAAiB,GACjBzB,EAASmC,EACb,GACA,CAACV,EAAkBzB,IAGjBoC,EAAgBrB,EAAAA,aAClB,SAACsB,GACmB,UAAZA,EAAIC,KACJN,IAEY,WAAZK,EAAIC,KACJL,GAER,GACA,CAACD,EAAYC,IAGXM,EAAcnC,GAAc,IAElC,OACId,EAAAA,EAAAA,KAAA,OACIY,UAAWP,EAAM,KAAM,CAACO,GAAa,GAAIgB,EAAW,OAAS,KAC7DzB,QA3CgB,YACfyB,GAAYX,GACbsB,GAER,EAuCiC9B,SAExBmB,GACGsB,EAAAA,EAAAA,MAAAC,EAAAA,SAAA,CAAA1C,SAAA,CACKS,EACGA,EAAa,CACT2B,MAAOb,EACPtB,SAAU8B,EACV5B,UAAWP,EAAM,WACjB+C,OAAQd,EACRM,QAAAA,KAGJ5C,EAAAA,EAAAA,KAACqD,EAAAA,EAAS,CACNzC,UAAWP,EAAM,WACjBiD,WAAS,EACTxC,KAAMmC,EACNJ,MAAOb,EACPuB,SAAUf,EACVgB,UAAWV,EACXM,OAAQd,IAGfzB,IACGqC,EAAAA,EAAAA,MAAAC,EAAAA,SAAA,CAAA1C,SAAA,EACIT,EAAAA,EAAAA,KAACyD,EAAAA,EAAM,CACH7C,UAAWP,EAAM,WACjBqD,KAAMrC,EACNsC,WAAY,CAACC,YAAalB,GAC1B5B,KAAMmC,EAAYxC,UAElBT,EAAAA,EAAAA,KAAC6D,EAAAA,EAAI,CAACC,QAAS,QAAShD,KAAMmC,OAElCjD,EAAAA,EAAAA,KAACyD,EAAAA,EAAM,CACH7C,UAAWP,EAAM,WACjBqD,KAAMnC,EACNoC,WAAY,CAACC,YAAajB,GAC1B7B,KAAMmC,EAAYxC,UAElBT,EAAAA,EAAAA,KAAC6D,EAAAA,EAAI,CAACC,QAAS,QAAShD,KAAMmC,aAM9CC,EAAAA,EAAAA,MAACzB,EAAAA,SAAc,CAAAhB,SAAA,CACVA,GACCM,IACEf,EAAAA,EAAAA,KAACyD,EAAAA,EAAM,CACH7C,UAAWP,EAAM,UAAW,CAAC0D,KAAM,SACnCL,KAAK,WACLvD,QAASoC,EACTzB,KAAMmC,EAAYxC,UAElBT,EAAAA,EAAAA,KAAC6D,EAAAA,EAAI,CAACC,QAAS,SAAUhD,KAAMmC,UAO3D,CAEO,SAASe,EAAUjF,GAMtB,IALAoB,EAAOpB,EAAPoB,QAAO8D,EAAAlF,EACP+B,KAAAA,OAAI,IAAAmD,EAAG,IAAGA,EAKV,OACIjE,EAAAA,EAAAA,KAACyD,EAAAA,EAAM,CAAC7C,UAAWP,EAAM,YAAaF,QAASA,EAASW,KAAMA,EAAKL,UAC/DT,EAAAA,EAAAA,KAAC6D,EAAAA,EAAI,CAACC,QAAS,YAG3B,C,8KC9LMI,EAAe,SAACC,EAAO3D,GAAK,OAAKA,EAAM4D,SAAU,EAE1CC,EAAqB,WAAH,OAC3BC,EAAAA,EAAAA,IAAeJ,GAAc,SAACE,GAAS,OAAKG,EAAAA,EAAOC,KAAKC,UAAUL,EAAUM,KAAK,GAAE,EAE1EC,EAAe,WAAH,OACrBL,EAAAA,EAAAA,IAAeJ,GAAc,SAACE,GAAS,OAAKG,EAAAA,EAAOC,KAAKI,IAAIR,EAAUM,KAAK,GAAE,EAEpEG,EAAgB,WAAH,OACtBP,EAAAA,EAAAA,IAAe,CAACJ,EAAcS,MAAiB,SAACP,EAAWQ,GACvD,IAAME,EAAOP,EAAAA,EAAOC,KAAKM,KAAKV,EAAUM,MAYxC,OATAI,EAAKC,MAAMC,QAAQ,CACfC,EAAGL,EAAIM,IACPC,EAAG,IAEPL,EAAKC,MAAMK,KAAK,CACZH,EAAGL,EAAIM,IAAMN,EAAIS,aAAeT,EAAIU,WACpCH,EAAG,MAGAL,CACX,GAAG,E,gECYP,SAASS,EAAcxG,GAA2E,IAAzE6B,EAAS7B,EAAT6B,UAAWgE,EAAG7F,EAAH6F,IAAKE,EAAI/F,EAAJ+F,KAAMU,EAAMzG,EAANyG,OAAQC,EAAQ1G,EAAR0G,SAAUC,EAAQ3G,EAAR2G,SACvDC,EAAWlE,EAAAA,SAAc,WAC3B,IAAMmE,EAAqB,UAAXJ,EAAqBK,EAAAA,EAAUC,MAAQD,EAAAA,EAAUE,OACjEC,EAAiCN,EA8IzC,SAAwBO,EAAAC,GAGa,IAITC,EANvBjB,EAAGe,EAAHf,IAAKkB,EAAOH,EAAPG,QAASd,EAAUW,EAAVX,WACdP,EAAKmB,EAALnB,MAEKsB,EAA0B,CAACnB,EAAM,GAAMI,GACvCZ,EAAsB,CAAC4B,KAAKC,GAAAC,EAAAA,EAAAA,GAEfzB,GAAK,IAAxB,IAAAwB,EAAAE,MAAAN,EAAAI,EAAAG,KAAAC,MAA0B,CAAC,IAAhBC,EAAIT,EAAAtD,MACXwD,EAASjB,KAAKyB,EAAKD,IACnBlC,EAAKU,KAAK0B,EAAKF,GACnB,CAAC,OAAAG,GAAAR,EAAAS,EAAAD,EAAA,SAAAR,EAAAU,GAAA,CAaD,OAXAZ,EAASjB,KAAKF,GAAO,GAAMI,GAAcc,EAAQc,QACjDxC,EAAKU,KAAKkB,KAUH,CACHD,SAAAA,EACAc,OAVgC,CAChC,CACIpD,KAAM,OACNW,KAAAA,EACA0C,OAAOC,EAAAA,EAAAA,GAAc,KAOzBC,KAAMhB,IAEd,CAzKciB,CAAgB3C,EAAKE,GA+EnC,SAAsB0C,EAAAC,GAQlB,IALwC,IAFvCrB,EAAOoB,EAAPpB,QAASlB,EAAGsC,EAAHtC,IAAKI,EAAUkC,EAAVlC,WACdP,EAAK0C,EAAL1C,MAEKsB,EAAW,CAACnB,EAAM,GAAMI,GACxBZ,EAAsB,MAACgD,GACvBC,EAA0B,MAACD,GAC7BE,EAAI,EACCC,EAAI,EAAGA,EAAIzB,EAAQc,SAAUW,EAAG,CACrC,IAAAC,GAAAnG,EAAAA,EAAAA,GAAeyE,EAAQyB,GAAE,GAAlB5C,EAAC6C,EAAA,GAAE3C,EAAC2C,EAAA,GACLC,EAAQ9C,EAAIK,EAAa,EAG/B,IAFAZ,EAAKU,KAAKD,GACVkB,EAASjB,KAAK2C,GACPH,EAAI7C,EAAMmC,QAAQ,CACrB,IAAMN,EAAO7B,EAAM6C,GACbI,EAAQnB,EAAKD,GACnB,GAAIoB,IAAUD,EAAO,CACjBJ,EAASE,EAAI,GAAKI,MAAMC,QAAQtB,GAAQA,EAAK,GAAKA,EAAKzB,EACvD,KACJ,CAAO,UAAcuC,IAAVM,GAAuBA,EAAQD,GAAnC,CAIHJ,EAASE,EAAI,GAAKM,EACdJ,EACAhD,EAAMqD,KAAKlD,IAAIH,EAAMmC,OAAS,EAAGU,EAAI,IACrC7C,EAAM6C,IAEV,KACJ,GATMA,CAUV,CACJ,CAwBA,OAvBAvB,EAASjB,KAAKF,GAAO,GAAMI,GAAcc,EAAQc,QACjDxC,EAAKU,UAAKsC,GACVC,EAASvC,UAAKsC,GAqBP,CACHP,OApB2B,CAC3B,CACIpD,KAAM,OACNW,KAAMiD,EACNU,MAAO,KACPjB,OAAOC,EAAAA,EAAAA,GAAc,KACxBnH,EAAAA,EAAAA,GAAA,CAEG6D,KAAM,SACNW,KAAAA,EACA0C,OAAOC,EAAAA,EAAAA,GAAc,IAClB,CACCiB,cAAe,CACXxH,KAAM,CAAC,GACPyH,IAAK,MAOjBlC,SAAAA,EACAiB,KAAMhC,EAEd,CA1IckD,CAAc5D,EAAKE,GAFlBuB,EAAQL,EAARK,SAAUc,EAAMnB,EAANmB,OAAQG,EAAItB,EAAJsB,KAGnBmB,EAAsB,CACxB/D,KAAM,CACF2B,SAAAA,EACAc,OAAAA,GAEJuB,cAAe,CACXC,KAAM,CACF1D,EAAG,CACC2D,OAAQ,SAACC,EAAI5D,GAAC,OAAKA,EAAE6D,IAAIlD,EAAQ,EACjCmD,KAAM,SACNC,KAAM,CACFC,MAAM,IAGdC,GAAI,CACAH,KAAM,QACNE,MAAM,GAEV9D,EAAG,CACC4D,KAAM,OACNE,MAAM,IAGdE,OAAQ,CACJD,GAAI,CACAhE,IAAK,EACLkE,IAAK,KAETjE,EAAG,CACCD,IAAK,IAGbmE,QAAS,CACLC,OAAQ,SAACC,GAAiB,IAADC,EAAAC,EAAAC,EAAAC,EAEjB1E,EAEAsE,EAFAtE,EAAC2E,GAAAjI,EAAAA,EAAAA,GAED4H,EADAJ,OAAM,GAAGU,EAAKD,EAAA,GAAEE,EAAMF,EAAA,GAEpBG,EAAcrE,GAAuBmE,SAAW,QAANL,EAALK,EAAOG,YAAI,IAAAR,GAAK,QAALA,EAAXA,EAAc,UAAE,IAAAA,OAA5B9B,EAAY8B,EAAkBS,cACvDC,EAAYxE,EACZmE,SAAW,QAANJ,EAALI,EAAOG,YAAI,IAAAP,GAAK,QAALA,EAAXA,EAAc,UAAE,IAAAA,OAAA,EAAhBA,EAAkBQ,cAClBH,SAAY,QAANJ,EAANI,EAAQE,YAAI,IAAAN,GAAK,QAALA,EAAZA,EAAe,UAAE,IAAAA,OAAA,EAAjBA,EAAmBO,cAEzB,OAeM,QAfNN,EA8HxB,SAA6BQ,GAgBzB,IAfAC,EAAQD,EAARC,SACAC,EAAKF,EAALE,MACAC,EAAKH,EAALG,MACAJ,EAASC,EAATD,UACAK,EAAKJ,EAALI,MACA9E,EAAQ0E,EAAR1E,SAWM+E,EAVEL,EAARzE,SAUsB,GAAK,IAC3B,OAAO+E,IAAS,MACC/C,IAAb0C,EAAsB,MAAAM,OACVN,EAAQ,6CAAAM,OAA4CL,EAAK,eAAAK,OAAcJ,EAAK,WAAAI,OAAUjF,QAC5FiC,OACQA,IAAdwC,EAAuB,MAAAQ,OACXF,GAAEE,OAAGR,EAAS,+BAAAQ,OAA8BF,GAAEE,OAAGH,EAAK,qBAC5D7C,IACPiD,KAAK,QACZ,CAvJ4BC,CAAqB,CACjBR,cACoB1C,IAAhBqC,EACMlE,EAAAA,EAAUE,OAAOgE,QACjBrC,EACV2C,MAAOzE,EAAQX,EAAIqC,EAAO,GAC1BgD,MAAO1E,EAAQX,EAAIqC,EAAO,GAC1B4C,eACkBxC,IAAdwC,EACMrE,EAAAA,EAAUE,OAAOmE,EAAW,CAACW,OAAQ,IAAM,SAC3CnD,EACV6C,MAAO3E,EAAQX,GACfQ,SAAAA,EACAC,SAAAA,WACF,IAAAiE,EAAAA,EAAI,GAEd,IAGRmB,QAAS,CAAC,GAEd,OAAOrC,CACX,GAAG,CAAC7D,EAAKE,EAAMU,EAAQE,IAEvB,OACI1F,EAAAA,EAAAA,KAAA,OAAKY,UAAWA,EAAUH,UACtBT,EAAAA,EAAAA,KAAC+K,EAAAA,EAAY,CAAChH,KAAM,OAAQW,KAAMiB,KAG9C,CAEA,QAAelE,EAAAA,KAAW8D,GA0H1B,SAASsB,EAAKmE,GACV,OAAO/C,MAAMC,QAAQ8C,GAAKA,EAAE,GAAKA,aAAC,EAADA,EAAG/F,CACxC,CAEA,SAAS6B,EAAKkE,GACV,OAAO/C,MAAMC,QAAQ8C,GAAKA,EAAE,GAAKA,aAAC,EAADA,EAAG7F,CACxC,CAEA,SAASgD,EAAUJ,EAAekD,EAAWC,GACzC,IAAMC,EAAKrE,EAAKmE,GACVG,EAAKtE,EAAKoE,GAChB,QAAWxD,IAAPyD,EACA,OAAOC,EAGX,QAAW1D,IAAP0D,EACA,OAAOD,EAGX,IAAME,EAAKxE,EAAKoE,GAIhB,OAAOE,GAFIpD,EAAQsD,IADRxE,EAAKqE,GACiBG,IAEhBD,EAAKD,EAC1B,C,0BCrPM9K,GAAQC,EAAAA,EAAAA,GAAG,aA+CjB,SAASgL,EAAU9K,GACf,IAAO+K,EAA0D/K,EAA1D+K,gBAAiBC,EAAyChL,EAAzCgL,sBAAuBC,EAAkBjL,EAAlBiL,eACxCrH,EAA+C5D,EAA/C4D,UAAWK,EAAoCjE,EAApCiE,UAAWG,EAAyBpE,EAAzBoE,IAAKE,EAAoBtE,EAApBsE,KAAM4G,EAAclL,EAAdkL,WAElCC,GAAMzL,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAAOkE,GAAS,IAAEQ,IAAAA,EAAKE,KAAAA,IAEnCtD,EAAsCC,EAAAA,UAAe,GAAMC,GAAAC,EAAAA,EAAAA,GAAAH,EAAA,GAApDoK,EAAclK,EAAA,GAAEmK,EAAWnK,EAAA,GAElC,OACIwB,EAAAA,EAAAA,MAAA,OAAKtC,UAAWP,IAAQI,SAAA,EACpByC,EAAAA,EAAAA,MAAA,OAAKtC,UAAWP,EAAM,WAAWI,SAAA,EAC7BT,EAAAA,EAAAA,KAAC8L,EAAAA,EAAM,CACHjJ,MAAO,CAAC0I,GACRhI,SAAU,SAACqF,GAAM,OAAK4C,EAAsB5C,EAAO,GAAG,EACtDmD,QAASC,IAAKC,IAAMR,IAAiB,SAAC5I,GAClC,MAAO,CAACA,MAAAA,EAAOjD,QAASiD,EAC5B,IACAqJ,MAAM,SAEVlM,EAAAA,EAAAA,KAACmM,EAAAA,EAAQ,CACLvL,UAAWP,EAAM,YACjB+L,QAASR,EACTrI,SAAUsI,EAAYpL,SACzB,qBAKJiL,GACG1L,EAAAA,EAAAA,KAACuF,GAAcrF,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,CAACU,UAAWP,EAAM,UAAcsL,GAAM,IAAEjG,SAAUkG,MAEjE5L,EAAAA,EAAAA,KAAA,OAAKY,UAAWP,EAAM,YAAYI,UAC9BT,EAAAA,EAAAA,KAAA,KAAGY,UAAWP,EAAM,oBAAoBI,SAAC,2DAMjDyC,EAAAA,EAAAA,MAAA,MAAItC,UAAWP,EAAM,aAAaI,SAAA,EAC9ByC,EAAAA,EAAAA,MAAA,MAAItC,UAAWP,EAAM,kBAAkBI,SAAA,CAAC,QAC9B,KACNT,EAAAA,EAAAA,KAAA,QAAMY,UAAWP,EAAM,mBAAmBI,SACrC8D,EAAAA,EAAOiB,OAAOpB,EAAUoB,QAAQf,EAAUS,WAGnDhC,EAAAA,EAAAA,MAAA,MAAItC,UAAWP,EAAM,kBAAkBI,SAAA,CAAC,SAC7B,KACPT,EAAAA,EAAAA,KAAA,QAAMY,UAAWP,EAAM,mBAAmBI,SACrC8D,EAAAA,EAAOiB,OAAOpB,EAAUoB,QAAQf,EAAU4H,WAGnDnJ,EAAAA,EAAAA,MAAA,MAAItC,UAAWP,EAAM,kBAAkBI,SAAA,CAAC,SAC7B,KACPT,EAAAA,EAAAA,KAAA,QAAMY,UAAWP,EAAM,mBAAmBI,SACrC8D,EAAAA,EAAOiB,OAAOpB,EAAUoB,QAAQf,EAAU6H,WAGnDpJ,EAAAA,EAAAA,MAAA,MAAItC,UAAWP,EAAM,kBAAkBI,SAAA,CAAC,SAC7B,KACPT,EAAAA,EAAAA,KAAA,QAAMY,UAAWP,EAAM,mBAAmBI,SACrC8D,EAAAA,EAAOiB,OAAOpB,EAAUoB,QAAQf,EAAU8H,WAGnDrJ,EAAAA,EAAAA,MAAA,MAAItC,UAAWP,EAAM,kBAAkBI,SAAA,CAAC,QAC9B,KACNT,EAAAA,EAAAA,KAAA,QAAMY,UAAWP,EAAM,mBAAmBI,SACrC8D,EAAAA,EAAOiB,OAAOpB,EAAUoB,QAAQf,EAAU2E,eAMnE,CArHAkC,EAAUkB,eAAiBC,IAAAA,MAAgB,CACvCvH,IAAKuH,IAAAA,OACLJ,IAAKI,IAAAA,OACLH,IAAKG,IAAAA,OACLF,IAAKE,IAAAA,OACLrD,IAAKqD,IAAAA,SAGTnB,EAAUoB,SAAWD,IAAAA,MAAgB,CACjCpH,aAAcoH,IAAAA,OACdnH,WAAYmH,IAAAA,OACZrD,IAAKqD,IAAAA,OACLvH,IAAKuH,IAAAA,OACLE,SAAUF,IAAAA,OACVG,SAAUH,IAAAA,OACVhI,UAAW6G,EAAUkB,eACrBpG,QAASqG,IAAAA,QAGbnB,EAAUuB,UAAYJ,IAAAA,MAAgB,CAClCvH,IAAKuH,IAAAA,OACLrD,IAAKqD,IAAAA,OACL1H,MAAO0H,IAAAA,QAkHX,SAAe5N,EAAAA,EAAAA,KAhBa,WACxB,IAAMiO,EAAezI,IACf0I,EAASpI,IACTqI,EAAUnI,IACVoI,GFrHN3I,EAAAA,EAAAA,IACI,CAACK,IAAgBE,IAAiBR,MAClC,SAAC6I,EAASC,EAAU1I,GAChB,OAAIyI,EAAQhI,MAAQgI,EAAQ9D,OAGjB+D,EAASpI,MAAMmC,OAAS,IAGxBzC,EAAU8H,IAAM9H,EAAU4H,KAAQ,CAMjD,IEwGJ,OAAO,SAAClI,EAAO3D,GAMX,MAAO,CAACiE,UALUqI,EAAa3I,EAAO3D,GAKnBoE,IAJPmI,EAAO5I,EAAO3D,GAIFsE,KAHXkI,EAAQ7I,EAAO3D,GAGEkL,WAFXuB,EAAc9I,EAAO3D,GAG5C,CACJ,GAEA,CAA4C8K,E,qJCrJtC8B,EAAU,IAAIC,EAAAA,EAUCC,EAAe,SAAAC,IAAAC,EAAAA,EAAAA,GAAAF,EAAAC,GAAA,IAAAE,GAAAC,EAAAA,EAAAA,GAAAJ,GAAA,SAAAA,IAAA,OAAAK,EAAAA,EAAAA,GAAA,KAAAL,GAAAG,EAAAG,MAAA,KAAAC,UAAA,CA+B/B,OA/B+BC,EAAAA,EAAAA,GAAAR,EAAA,EAAAtK,IAAA,qBAAAH,MAChC,WACI,IAAAkL,EAAmCC,KAAKxN,MAAjCyN,EAAKF,EAALE,MAAOC,EAAMH,EAANG,OAAQC,EAASJ,EAATI,UAElBF,GAASC,GACTd,EAAQgB,IAAI,CACRC,MAAO,SACPC,KAAM,UACNC,WAAY,IACZvP,MAAO,8BACPY,QAASuO,EAAaA,EAAsBK,QAAUjK,EAAAA,EAAOiB,OAAOiJ,SACpEC,QAAS,CACL,CACIC,MAAO,QACPxO,QAAS,kBAAMyO,EAAAA,EAAAA,IAAeT,EAAqB,KAKvE,GAAC,CAAAnL,IAAA,SAAAH,MAED,WACI,IAAAgM,EAAsEb,KAAKxN,MAAKsO,EAAAD,EAAzEE,gBAAAA,OAAe,IAAAD,GAAQA,EAAEb,EAAKY,EAALZ,MAAOE,EAASU,EAATV,UAAWD,EAAMW,EAANX,OAAQzN,EAAQoO,EAARpO,SAI1D,OAAIwN,IAAUc,GAFUb,EAMjBzN,GAHIT,EAAAA,EAAAA,KAACgP,EAAAA,EAAK,CAACf,MAAOE,GAI7B,KAACb,CAAA,CA/B+B,CAAS2B,EAAAA,U,iHChBtC,MAAMC,EAAY,O,eCAlB,MAAMC,UAAsB,YAC/B,WAAAC,GACIC,SAASxB,WACTG,KAAK7J,MAAQ,CACT8J,WAAOvG,GAEXsG,KAAKsB,WAAa,KACVtB,KAAK7J,MAAM8J,OACXD,KAAKuB,SAAS,CAAEtB,WAAOvG,GAC3B,CAER,CACA,+BAAO8H,CAAyBvB,GAC5B,MAAO,CAAEA,QACb,CACA,iBAAAwB,GACI,IAAIC,EAAIC,EACR,MAAM,MAAE1B,GAAUD,KAAK7J,MACnB8J,IACqC,QAApC0B,GAAMD,EAAK1B,KAAKxN,OAAOoP,eAA4B,IAAPD,GAAyBA,EAAGE,KAAKH,EAAI,CAAEzB,UAE5F,CACA,kBAAA6B,CAAmBC,GACf,GAAIA,EAAUrL,OAASsJ,KAAKxN,MAAMkE,KAAM,CACpC,MAAM,MAAEuJ,GAAUD,KAAK7J,MACnB8J,GAAS,SAAUA,GAASA,EAAM+B,OAAS,KAAoBC,SAC/DjC,KAAKsB,YAEb,CACJ,CACA,MAAAhG,GACI,MAAM,MAAE2E,GAAUD,KAAK7J,MACvB,GAAI8J,EAAO,CACP,MAAMO,ECnCX,SAAyBP,GAC5B,MAAM+B,EAAO,SAAU/B,GAASA,EAAM+B,KACtC,OAAQ/B,EAAMO,SAAWwB,IAAQ,EAAAE,EAAA,GAAK,QAAS,wBAAwBC,UAC3E,CDgC4BC,CAAgBnC,GAChC,OAAID,KAAKxN,MAAM6P,YACJrC,KAAKxN,MAAM6P,YAAY,CAC1BpC,QACAO,UACAc,WAAYtB,KAAKsB,aAGlB,gBAAoB,MAAO,KAAMd,EAC5C,CACA,OAAOR,KAAKxN,MAAMC,QACtB,E,eE1CJ,MAAM6P,GAAI,OAAM,UACH,EAAUZ,IACnB,IAAI,mBAAEa,GAAuBb,EAAIlP,GAAQ,QAAOkP,EAAI,CAAC,uBACrD,MAAMc,EAAeD,aAA+D,EAASA,IAE7F,YAA4B,IAAjBC,EACAA,EAEH,gBAAoB,MAAO,CAAE5P,UAAW0P,KAC5C,gBAAoB,IAAYG,OAAOC,OAAO,CAAC,EAAGlQ,IAAS,ECL7D,GAAI,EAAAF,EAAAA,IAAG,YACPqQ,EAAqBnQ,IACvB,MAAMoQ,EAAY,YACZ,YAAEC,EAAaC,GAAIC,EAAO,KAAEhN,EAAI,SAAEiN,EAAQ,mBAAET,GAAuB/P,EAAOyQ,GAAY,QAAOzQ,EAAO,CAAC,cAAe,KAAM,OAAQ,WAAY,uBAC9I0Q,EAAO,WAAc,KAAM,UAAiB,IAC5CJ,EAAKC,GAAWG,EAChBC,EAAOC,EAAA,EAASC,IAAI,QAEpBC,EADUF,EAAA,EAASC,IAAI,WACNE,MAAMC,GAAmBA,EAAezN,OAASA,IACxE,IAAKuN,EACD,MAAM,IAAI,IAAc,CACpBtB,KAAM,KAAoByB,eAC1BjD,SAAS,EAAA0B,EAAA,GAAK,QAAS,uBAAwB,CAAEnM,WAGzD,MAAM2N,EAAiBJ,EAAOK,SAS9B,OARA,sBAA0Bd,GAAa,KAAM,CACzC,MAAAe,CAAOC,GACH,IAAInC,GAC6B,QAA5BA,EAAKkB,EAAUkB,eAA4B,IAAPpC,OAAgB,EAASA,EAAGkC,SACjEhB,EAAUkB,QAAQF,OAAOC,EAEjC,KACA,IACI,gBAAoB,WAAgB,CAAEE,SAAU,gBAAoB,EAAQ,CAAExB,mBAAoBA,KACtG,gBAAoB,MAAO,CAAE3P,UAAW,EAAE,CAAEoR,OAAQhB,GAAY,0BAC5D,gBAAoBU,EAAgBjB,OAAOC,OAAO,CAAEuB,IAAKrB,EAAWE,GAAIA,EAAIK,KAAMA,GAAQF,KAAc,EC9BpH,EDoCwB/B,EAJmB,cAAiB,SAA4C1O,EAAOyR,GAC3G,OAAQ,gBAAoB9C,EAAe,CAAES,QAASpP,EAAMoP,QAASlL,KAAMlE,EAAMkE,KAAM2L,YAAa7P,EAAM6P,aACtG,gBAAoBM,EAAmBF,OAAOC,OAAO,CAAEG,YAAaoB,GAAOzR,IACnF,KEtCa0R,EAAa,CACtBnO,KAAM,OACN4N,SAAU,QAAW,IAAM,4D,SCE/BP,EAAAA,EAASe,IAAI,CAACC,QAAS,CAACF,KAExB,IAAMG,EAAS,CAAC,oBAAqB,qBAE9B,SAAShL,EAAciL,GAC1B,OAAOD,EAAOC,EAAaD,EAAOnL,OACtC,CAEA,S,wMC2BO,SAASqL,EAAW5R,GAAsB,IAAhByQ,EAAQvD,UAAA3G,OAAA,QAAAQ,IAAAmG,UAAA,GAAAA,UAAA,GAAG,CAAC,EACrCjN,GAAYP,EAAAA,EAAAA,GAAM,iBAGlBO,EADAwQ,EAASoB,IACG5R,GACR,GACAP,EAAAA,EAAAA,GAAM+Q,EAASoB,IAAInS,MAAnBA,CAA0B+Q,EAASoB,IAAIC,MAAIvS,EAAAA,EAAAA,GAAA,GACpCkR,EAASoB,IAAIE,QAIZ9R,IAGhB,IAAM+R,EA3BV,SAA0BhS,EAAMiS,GAC5B,IAAMpS,EAAQ,CAAC,EASf,OAPIoS,EAEApS,EAAMqS,wBAA0B,CAACC,OAAQnS,GAEzCH,EAAMC,SAAWsS,EAAAA,EAAQC,OAAOC,OAAOtS,IAGpCH,CACX,CAgBsB0S,CAAiBvS,EAAMyQ,EAASwB,QAE5C5T,EAAQoS,EAASpS,OAAS2B,EAEhC,OAAOX,EAAAA,EAAAA,KAAA,QAAAE,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAAUyS,GAAS,IAAE3T,MAAOA,EAAO4B,UAAWA,IACzD,CAYO,SAASuS,EAAgCvM,EAAMwM,GAClD,IAAMC,EAASrF,KAAKsF,UAAUF,GAC9B,OAAO7O,EAAAA,EAAOiB,OAAqB,aAAE6N,EAAOhC,IAAIzK,GAAO,CACnDpB,OAAQ,gBAEhB,CAEO,SAAS+N,EAA2B3M,EAAMwM,GAC7C,IAAMC,EAASrF,KAAKsF,UAAUF,GAC9B,OACIpT,EAAAA,EAAAA,KAAA,QAAMY,UAAU,oBAAmBH,SAC9B8D,EAAAA,EAAOiB,OAAsB,cAAE6N,EAAOhC,IAAIzK,KAGvD,CAEO,SAAS4M,EAAkB5M,EAAMwM,GACpC,IAAMvQ,EAAQmL,YAAAA,KAAMsF,UAAYtF,KAAKsF,UAAUF,GAAY/B,IAAIzK,GAAQA,EAAKwM,GAC5E,OAAOpT,EAAAA,EAAAA,KAACyT,EAAY,CAAC5Q,MAAOA,GAChC,CAEO,SAAS4Q,EAAY1U,GAAW,IAAT8D,EAAK9D,EAAL8D,MAC1B,OACI7C,EAAAA,EAAAA,KAAA,QAAMY,UAAU,oBAAmBH,SAC9B8D,EAAAA,EAAOiB,OAAiB,SAAE3C,EAAO,CAAC2C,OAAQ,UAGvD,CAEO,SAASkO,EAAmBzF,GAI/B,MAAwB,YAAjB0F,EAAAA,EAAAA,GAAO1F,IACVjO,EAAAA,EAAAA,KAAC4T,EAAAA,EAAI,CAACvF,MAAM,QAAQlO,QAJN,YACdyO,EAAAA,EAAAA,IAAeX,EAAO,CAAC4F,aAAa,GACxC,EAE2CpT,SAAC,SAIxC8D,EAAAA,EAAOiB,OAAOiJ,QAEtB,CAOO,SAASqF,EAASlN,EAAMwM,GAC3B,OAAO7O,EAAAA,EAAOiB,OAAe,OAAEoB,EAAKwM,GACxC,CAEA,SACIW,YApGJ,SAAyBnN,EAAMwM,GAC3B,OAAOH,OAAO1O,EAAAA,EAAOiB,OAAuB,eAAEoB,EAAKwM,IACvD,EAmGIY,WAAY,CAAC,EACb5F,IAAK,SAAU6F,EAAYC,GACvBlG,KAAKgG,WAAWC,GApHxB,SAA2BC,GACvB,OAAOzD,OAAO0D,KAAKD,GAAWE,QAAO,SAACC,EAAcrR,GAGhD,OAFAqR,EAAarR,GAAOkR,EAAUlR,GAEvBqR,CACX,GAAG,CAAC,EACR,CA8GsCC,CAAkBJ,EACpD,EACA7C,IAAK,SAAU4C,GACX,OAAOjG,KAAKgG,WAAWC,IAAe,CAAC,CAC3C,E,idC/HiBM,GAASzG,EAAAA,EAAAA,IAC1B,SAAAyG,EAAY7P,IAAMiJ,EAAAA,EAAAA,GAAA,KAAA4G,GACdvG,KAAKwG,OAAS9P,EAAK+P,MACnBzG,KAAK0G,YAAchQ,EAEnBsJ,KAAKyG,MAAQ/P,EAAK+P,MAClBzG,KAAK2G,SAAWC,IAAAA,SAAelQ,EAAM,cACrCsJ,KAAK6G,OAASD,IAAAA,SAAelQ,EAAM,WAEnCsJ,KAAK7J,MAAQyQ,IAAAA,SAAelQ,EAAM,UAClCsJ,KAAK8G,WAAa/O,OAAO6O,IAAAA,SAAelQ,EAAM,0BAC9CsJ,KAAK+G,aAAehP,OAAO6O,IAAAA,SAAelQ,EAAM,4BAChDsJ,KAAKgH,aAAejP,OAAO6O,IAAAA,SAAelQ,EAAM,wBAChDsJ,KAAKiH,eAAiBlP,OAAO6O,IAAAA,SAAelQ,EAAM,sBAElD,IAAIwQ,EAASN,IAAAA,SAAelQ,EAAM,WAClCwQ,EAASA,EAASjJ,IAAMiJ,GAAU,GAElClH,KAAKkH,OAASA,EACdlH,KAAKmH,WAAaD,EAAOhO,MAC7B,ICnBSuE,EAAiB,CAC1B2J,mBAAoB,CAChB5P,OAAQ,UAEZ6P,uBAAwB,CACpB5P,SAAU,QACVD,OAAQ,SAEZ8P,YAAa,CACT9P,OAAQ,W,sECCV+P,EAAW,IAAIC,EAAAA,EAErB,SAASC,EAAc1W,GAAiE,IAA/D2W,EAAe3W,EAAf2W,gBAAiBC,EAAU5W,EAAV4W,WAAYC,EAAqB7W,EAArB6W,sBAA0B/V,GAAIC,EAAAA,EAAAA,GAAAf,EAAAgB,GAChF,OAAI2V,EACOG,EAAAA,GACFxE,IAAIyE,EAAAA,GAAQC,iBAAkB,CAC3B5W,KAAMwW,EACNK,cAAeC,EAAAA,KAElBC,MAAK,SAACxR,GACH,IAAMyR,EAAWvB,IAAAA,SAAelQ,EAAM,IAChC0R,EAAexB,IAAAA,SAAelQ,EAAM,YAAc,GAClD2R,EAAoBzB,IAAAA,SAAelQ,EAAM,wBAA0B,CAAC,EAEpEiQ,EAAWwB,EAASG,UACpBC,EAAeJ,EAASK,eACxBC,EAAab,EAAwB,GDbpD,SAA2BO,GAC9B,IAAMM,EAAazK,IAAKmK,EAASM,YAAY,SAACC,EAAWjC,GAGrD,OAFAiC,EAAUpX,WAAamR,OAAOC,OAAO,CAAC,EAAGgG,GACzCA,EAAUjC,MAAQA,EACX,IAAIF,EAAUmC,EACzB,IAEMC,EAAO,IAAIpC,EACbqC,IACI,CACI/B,QAAQ,EACRJ,OAAQ,EACRnV,WAAYsX,IAAQ,CAAC,EAAGT,EAASQ,OAErCR,EAASQ,OAMjB,OAFAF,EAAWzR,QAAQ2R,GAEZF,CACX,CCRgEI,CAAkBV,GAE5D1N,GAAGvI,EAAAA,EAAAA,GAAA,CACLyU,SAAAA,EACA4B,aAAAA,EACAE,WAAAA,EACAL,aAAAA,EACAC,kBAAAA,EACAV,WAAAA,EACAD,gBAAAA,EACAE,sBAAAA,GACG/V,GAEP,IAAK+V,EACD,OAAOnN,EAGX,IAAMqO,EAAU,GAAApM,OAAMiL,EAAU,WAChC,OAAOE,EAAAA,GACFxE,IAAIyE,EAAAA,GAAQiB,aAAc,CACvB5X,KAAM2X,EACNd,cAAeC,EAAAA,KAElBC,MAAK,SAAChB,GACH,OAAAhV,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAAWuI,GAAG,IAAEyM,OAAAA,GACpB,GACR,IAAE,OACK,SAACjH,GACJ,OAAO+I,QAAQC,OAAO,CAClBzI,QACI,iDAAmD0I,EAAAA,GACvDrF,QAAS5D,GAEjB,IAEG+I,QAAQC,OAAO,CAClBzI,QAAS,2DACTqD,QAAS,CAAC,GAGtB,CAEA,SAASsF,EAAkBnR,GAAsD,IAApD8K,EAAE9K,EAAF8K,GAAIxR,EAAU0G,EAAV1G,WAAY8X,EAASpR,EAAToR,UAAWxB,EAAqB5P,EAArB4P,sBACpD,OAAItW,EAAW+X,QACJxB,EAAAA,GACFxE,IAAIyE,EAAAA,GAAQwB,qBAAsB,CAC/BnY,KAAM,sBAAwBG,EAAW+X,QAAU,OAEtDnB,MAAK,SAACoB,GACH,IAII3B,EAJED,EAAkB6B,IACpBD,EAAqBE,OACrB,SAACC,GAAI,MAAoB,YAAfA,EAAKtT,KAAmB,IAQtC,OAJI2M,GAAM4E,IACNC,EAAU,uBAAAjL,OAA0BgL,EAAgBgC,QAAO,yBAAAhN,OAAwBpL,EAAW+X,QAAO,aAAA3M,OAAYoG,IAG9G,CACHA,GAAAA,EACAxR,WAAAA,EACA8X,UAAAA,EACAE,qBAAAA,EACA5B,gBAAAA,EACAC,WAAAA,EACAC,sBAAAA,EAER,IAAE,OACK,SAAC3H,GACJ,OAAO+I,QAAQC,OAAO,CAClBzI,QACI,kDAAoD0I,EAAAA,GACxDrF,QAAS5D,GAEjB,IAEG+I,QAAQC,OAAO,CAClBzI,QAAS,iDACTqD,QAAS,CAAC,GAGtB,CAEA,SAAS8F,EAAmBnQ,GAAoB,IAAlBsJ,EAAEtJ,EAAFsJ,GAAIxR,EAAUkI,EAAVlI,WAC9B,OAAOuW,EAAAA,GACFxE,IAAIyE,EAAAA,GAAQ8B,sBAAuB,CAChCzY,KAAM,IAAMG,EAAWuY,SAAW,KAClCvY,WAAY,CAAC,OAAQ,SAAU,OAAQ,aACzC,OACK,SAAC2O,GACJ,OAAO+I,QAAQC,OAAO,CAClBzI,QAAS,6CAA+C0I,EAAAA,GACxDrF,QAAS5D,GAEjB,IACCiI,MAAK,SAAC4B,GACH,IAAMV,EAAYxC,IAAAA,SAAekD,EAAiB,SAElD,MAAO,CACHhH,GAAAA,EACAxR,WAAAA,EACA8X,UAAAA,EACAxB,sBAAuBmC,EAAwBD,GAEvD,GACR,CA8DA,SAASC,EAAwBzY,GAG7B,MADyB,UADZsV,IAAAA,SAAetV,EAAY,UACJsV,IAAAA,SAAetV,EAAY,cAC5CsV,IAAAA,SAAetV,EAAY,UAClD,C,8CC3Ma0Y,EAAuB,CAChCvD,MAAO,CACHwD,MAAM,EACNC,QAAS,IACTC,MAAO,QACP9G,IAAG,SAACqF,GACA,OAAOA,EAAUjC,KACrB,GAEJtQ,MAAO,CACHgU,MAAO,SACPF,KAAI,SAACvB,GACD,MAAO,CACH0B,OAAQ,EACRC,UAAW,EACXC,QAAS,EACTC,WAAY,EACZC,SAAU,EACVC,aAAc,GAChB/B,EAAUvS,MAChB,EACAkN,IAAG,SAACqF,GACA,OAAOA,EAAUvS,KACrB,GAEJiR,mBAAoB,CAChB6C,MAAM,EACNE,MAAO,QACP9G,IAAG,SAACqF,GACA,OAAOA,EAAU1B,YACrB,GAEJK,uBAAwB,CACpB4C,MAAM,EACNE,MAAO,QACP9G,IAAG,SAACqF,GACA,OAAOA,EAAU3B,YACrB,GAEJ2D,qBAAsB,CAClBT,MAAM,EACNE,MAAO,QACP9G,IAAG,SAACqF,GACA,OAAOA,EAAU5B,UACrB,GAEJQ,YAAa,CACT2C,MAAM,EACNE,MAAO,QACP9G,IAAG,SAACqF,GACA,OAAOA,EAAUvB,UACrB,GAEJwD,iBAAkB,CACdV,MAAM,EACNE,MAAO,QACP9G,IAAG,SAACqF,GACA,OAAOA,EAAUzB,cACrB,GAEJqB,UAAW,CACP2B,MAAM,EACNE,MAAO,OACP9G,IAAG,SAACqF,GACA,OAAOA,EAAU/B,QACrB,GAEJjG,QAAS,CACLwJ,QAAS,GACTC,MAAO,QACPF,MAAM,IAIDW,GAAmB,CAC5B9H,GAAI,CACAqH,MAAO,OACPlP,MAAM,EACNgP,KAAI,SAACY,GACD,OAAOA,EAAMrE,MACjB,EACAnD,IAAG,SAACwH,GACA,OAAOA,EAAMrE,MACjB,GAEJsE,YAAa,CACTX,MAAO,SACPF,MAAM,EACNhP,MAAM,EACNoI,IAAG,SAACwH,GACA,OAAOA,EAAME,UACjB,GAEJC,UAAW,CACPb,MAAO,OACPF,MAAM,EACNhP,MAAM,EACNoI,IAAG,SAACwH,GACA,OAAOA,EAAMI,QACjB,GAEJ3Z,WAAY,CACR4Y,QAAS,GACTC,MAAO,OACPF,MAAM,IC/FRiB,GAAmB,SAAC/U,GAAK,OAAKA,EAAMgV,OAAOA,OAAO1C,UAAW,EAEtD2C,GAAqB,SAACjV,GAAK,OAAKA,EAAMgV,OAAOA,OAAO5N,eAAgB,EAEpE8N,IAAsB/U,EAAAA,EAAAA,IAC/B,CAAC4U,GAJgB,SAAC/U,GAAK,OAAKA,EAAMmV,OAAOC,EAAAA,GAA4B,IAKrE,SAAC9C,EAAY+C,GAAS,OAAKjV,EAAAA,EAAOkV,MAAMxB,KAAKxB,EAAY+C,EAAWxB,EAAqB,IAGhF0B,IAAgBpV,EAAAA,EAAAA,IAAe+U,IAAqB,SAACM,GAC9D,IAAMC,EAAcrV,EAAAA,EAAOqV,YAAYC,QAAQF,EAAkB,CAC7D,CAACrL,KAAM,SAAUvK,KAAM,gBACvB,CAACuK,KAAM,aAAcvK,KAAM,OAC3B,CAACuK,KAAM,eAAgBvK,KAAM,OAC7B,CAACuK,KAAM,eAAgBvK,KAAM,OAC7B,CAACuK,KAAM,aAAcvK,KAAM,OAC3B,CAACuK,KAAM,iBAAkBvK,KAAM,SAChC,GAIH,OAFA6V,EAAYnF,OAAS,EAEf,CAAEmF,GAAWlP,QAAAoP,EAAAA,EAAAA,GAAKH,GAC5B,IAEMI,IAAgBzV,EAAAA,EAAAA,IAAe4U,IAAkB,SAACzC,GAAU,OAC9DuD,IAAWvO,GAAgB,SAAC2F,EAAUpO,GAClC,IAAMiX,EAAwBxD,EAAWyD,MAAM,GAE/C,OAAAha,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACOkR,GAAQ,IACX+I,WAAY,aACZC,WAAYhJ,EAAS5L,OACrB0S,QAAS3T,EAAAA,EAAOiB,OAAsB,cAAExC,GACxCyC,SAAU2L,EAAS3L,UAAYlB,EAAAA,EAAOiB,OAAsB,cAAExC,EAAK,CAACqX,KAAM,SAC1E3V,KAAMsH,IAAKiO,EAAuBjC,EAAqBhV,GAAKqO,MAEpE,GAAE,IAGOnN,IAAeI,EAAAA,EAAAA,IACxB,CAACyV,GAAeX,KAChB,SAACkB,EAAY/O,GAAe,OAAK+O,EAAW/O,EAAgB,I,wBChD3CgP,IAAKzM,EAAAA,EAAAA,IACtB,SAAAyM,EAAY7V,IAAMiJ,EAAAA,EAAAA,GAAA,KAAA4M,GACdvM,KAAKwG,OAAS9P,EAAK8P,OACnBxG,KAAK0G,YAAchQ,EAAKgQ,YAExB1G,KAAKiL,SAAWlT,OAAO6O,IAAAA,SAAe5G,KAAK0G,YAAa,eACxD1G,KAAK+K,WAAanE,IAAAA,SAAe5G,KAAK0G,YAAa,gBAGnD1G,KAAKwM,SAAWzU,OAAO6O,IAAAA,SAAe5G,KAAK0G,YAAa,eACxD1G,KAAKyM,aAAe1U,OAAO6O,IAAAA,SAAe5G,KAAK0G,YAAa,mBAC5D1G,KAAK0M,UAAY3U,OAAO6O,IAAAA,SAAe5G,KAAK0G,YAAa,gBACzD1G,KAAK2M,WAAa5U,OAAO6O,IAAAA,SAAe5G,KAAK0G,YAAa,iBAC1D1G,KAAK4M,WAAahG,IAAAA,SAAe5G,KAAK0G,YAAa,gBAGnD1G,KAAK+G,aAAehP,OAAO6O,IAAAA,SAAe5G,KAAK0G,YAAa,4BAC5D1G,KAAK8G,WAAa/O,OAAO6O,IAAAA,SAAe5G,KAAK0G,YAAa,0BAC1D1G,KAAK6M,gBAAkBjG,IAAAA,SAAe5G,KAAK0G,YAAa,qBACxD1G,KAAK8M,aAAelG,IAAAA,SAAe5G,KAAK0G,YAAa,iBACzD,ICJG,SAASqG,GAAc7F,EAAQ8F,GAClC,OAAOhP,IACHkJ,GACA,SAAC2D,EAAOpE,GAAK,OACT,IAAI8F,GAAM,CACN/F,OAAQwG,EAASvG,GACjBC,YAAaE,IAAAA,SAAeM,EAAOT,GAAQ,KAC7C,GAEd,C,gBChBMc,GAAW,IAAIC,EAAAA,ECHRyF,IAAY3W,EAAAA,EAAAA,IAAe,CAHnB,SAACH,GAAK,OAAKA,EAAMgV,OAAOjE,OAAOA,MAAO,EACtC,SAAC/Q,GAAK,OAAKA,EAAMmV,OAAO4B,EAAAA,GAAkC,IAET,SAAChG,EAAQsE,GAAS,OACpFjV,EAAAA,EAAOkV,MAAMxB,KAAK/C,EAAQsE,EAAWZ,GAAiB,I,YCYpDvY,IAAQC,EAAAA,EAAAA,GAAG,iBAEX6a,GAAyB,CAC3BC,UAAW,UACXC,QAAS,UACTC,SAAU,UACVC,OAAQ,UAGNC,GAAuB,CACzBF,SAAU,UACVG,KAAM,UACNJ,QAAS,WAGb,SAASK,GAAavX,EAAOkK,GACzB,OAAOA,EAAMlK,IAAU,SAC3B,CAAC,IAEKwX,GAAM,SAAApO,IAAAC,EAAAA,EAAAA,GAAAmO,EAAApO,GAAA,IAAAE,GAAAC,EAAAA,EAAAA,GAAAiO,GAAA,SAAAA,IAAA,OAAAhO,EAAAA,EAAAA,GAAA,KAAAgO,GAAAlO,EAAAG,MAAA,KAAAC,UAAA,CAoHP,OApHOC,EAAAA,EAAAA,GAAA6N,EAAA,EAAA3Y,IAAA,oBAAAH,MAsHR,WACI,IAAAkL,EAAiEC,KAAKxN,MAA/DiU,EAAK1G,EAAL0G,MAAOuG,EAAQjN,EAARiN,UAEdY,EAFsC7N,EAAd6N,gBAETZ,EAAUvG,EAFoC1G,EAArB6H,sBAG5C,GAAC,CAAA5S,IAAA,qBAAAH,MAED,SAAmBkN,GACf,IAAAlB,EAAiEb,KAAKxN,MAA/DiU,EAAK5F,EAAL4F,MAAOuG,EAAQnM,EAARmM,SAAUY,EAAc/M,EAAd+M,eAAgBhG,EAAqB/G,EAArB+G,sBAEpC7F,EAAU0E,QAAUA,GACpBmH,EAAeZ,EAAUvG,EAAOmB,EAExC,GAAC,CAAA5S,IAAA,uBAAAH,MAED,WACImL,KAAKxN,MAAMqb,eACf,GAAC,CAAA7Y,IAAA,YAAAqO,IAED,WACI,MAAO,CACHyK,QAAS,CACLC,MAAO,CAAC,KAAM,cAAe,YAAa,eAGtD,GAAC,CAAA/Y,IAAA,gBAAAqO,IAED,WACI,MAAO,CACH2K,IAAK,2BACL3N,MAAO,QACP4N,UAAU,EACVC,SAAS,EACTC,SAAS,EACTC,QAASlB,EAAAA,GACTmB,QAAS,CACLN,MAAOnD,GACP0D,KAAMtO,KAAKuO,UACXC,KAAM,WAEVtI,UAAW,CACPpD,GAAI6K,EAAOc,WACX3D,YAAa6C,EAAOe,cACpB1D,UAAW2C,EAAOgB,eAClBrd,WAAYqc,EAAOiB,oBAEvBC,WAAY,SAAUhE,GAClB,OAAOA,EAAMrE,MACjB,EAER,GAAC,CAAAxR,IAAA,SAAAH,MAED,WACI,IAAAia,EAAoD9O,KAAKxN,MAAlDuc,EAAOD,EAAPC,QAAS7O,EAAM4O,EAAN5O,OAAQD,EAAK6O,EAAL7O,MAAOE,EAAS2O,EAAT3O,UAAW+G,EAAM4H,EAAN5H,OAE1C,OACIlV,EAAAA,GAAAA,KAAA,OAAKY,UAAWP,GAAM,CAAC0c,QAAAA,IAAUtc,UAC7BT,EAAAA,GAAAA,KAACmP,EAAAA,EAAa,CAAA1O,UACVT,EAAAA,GAAAA,KAACsN,EAAAA,EAAe,CAACY,OAAQA,EAAQD,MAAOA,EAAOE,UAAWA,EAAU1N,SAC/Dsc,GACG/c,EAAAA,GAAAA,KAACgd,EAAAA,EAAM,KAEPhd,EAAAA,GAAAA,KAACid,EAAAA,GAAa/c,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAAK8N,KAAKkP,eAAa,IAAEnB,MAAO7G,UAMtE,IAAC,EAAAlS,IAAA,mBAAAH,MAtKD,SAAwBsB,GACpB,YAAwB,IAAVA,GACVnE,EAAAA,GAAAA,KAACmd,EAAAA,EAAK,CAAC9O,MAAM,UAAU1N,KAAMwD,IAE7BI,EAAAA,EAAOiB,OAAOiJ,QAEtB,GAAC,CAAAzL,IAAA,qBAAAH,MAED,SAA0BsB,GACtB,IAAKA,EACD,OAAOI,EAAAA,EAAOiB,OAAOiJ,SAGzB,IAAMJ,EAAQqN,GAAavX,EAAOgX,IAClC,OAAOnb,EAAAA,GAAAA,KAACmd,EAAAA,EAAK,CAAC9O,MAAOA,EAAO1N,KAAMwD,GACtC,GAAC,CAAAnB,IAAA,mBAAAH,MAED,SAAwBsB,GACpB,IAAKA,EACD,OAAOI,EAAAA,EAAOiB,OAAOiJ,SAGzB,IAAMJ,EAAQqN,GAAavX,EAAOqX,IAClC,OAAOxb,EAAAA,GAAAA,KAACmd,EAAAA,EAAK,CAAC9O,MAAOA,EAAO1N,KAAMwD,GACtC,GAAC,CAAAnB,IAAA,aAAAH,MAED,SAAkBgW,EAAOzF,GACrB,IAAMtC,EAAK8H,GAAiBxF,GAAY/B,IAAIwH,GAC5C,OAAO7Y,EAAAA,GAAAA,KAACod,EAAAA,GAAW,CAACtM,GAAIA,GAC5B,GAAC,CAAA9N,IAAA,gBAAAH,MAED,SAAqBgW,EAAOzF,GACxB,IAAMjP,EAAQyU,GAAiBxF,GAAY/B,IAAIwH,GAC/C,OAAO8C,EAAO0B,iBAAiBlZ,EACnC,GAAC,CAAAnB,IAAA,iBAAAH,MAED,SAAsBgW,EAAOzF,GACzB,IAAM1O,EAAOkU,GAAiBxF,GAAY/B,IAAIwH,GAC9C,OAAOtU,EAAAA,EAAOiB,OAAe,OAAEd,EACnC,GAAC,CAAA1B,IAAA,qBAAAH,MAED,SAA0BgW,GACtB,IAAMyE,GAAwD,IAAzCzE,EAAME,WAAWwE,QAAQ,WACxCC,GAA8D,IAA5C3E,EAAME,WAAWwE,QAAQ,cAEjD,OACIvd,EAAAA,GAAAA,KAACyd,GAAAA,GAAS,CACN1B,MAAO,CACH,CACI/Y,IAAK,aACLH,MAAO0B,EAAAA,EAAOiB,OAAe,OAAEqT,EAAM6B,WACrCgD,QAASJ,GAEb,CACIta,IAAK,cACLH,MAAO0B,EAAAA,EAAOiB,OAAe,OAAEqT,EAAM8B,YACrC+C,QAASJ,GAEb,CACIta,IAAK,YACLH,MAAO0B,EAAAA,EAAOiB,OAAc,MAAEqT,EAAM2B,UACpCkD,QAASJ,GAEb,CACIta,IAAK,gBACLH,MAAO0B,EAAAA,EAAOiB,OAAc,MAAEqT,EAAM4B,cACpCiD,QAASJ,GAEb,CACIta,IAAK,cACLH,MAAO8Y,EAAOgC,iBAAiB9E,EAAM+B,YACrC8C,QAASJ,GAGb,CACIta,IAAK,yBACLH,MAAO0B,EAAAA,EAAOiB,OAAc,MAAEqT,EAAM9D,cACpC2I,QAASF,GAEb,CACIxa,IAAK,uBACLH,MAAO0B,EAAAA,EAAOiB,OAAc,MAAEqT,EAAM/D,YACpC4I,QAASF,GAEb,CACIxa,IAAK,mBACLH,MAAO8Y,EAAOgC,iBAAiB9E,EAAMgC,iBACrC6C,QAASF,GAEb,CACIxa,IAAK,gBACLH,MAAO8Y,EAAOiC,mBAAmB/E,EAAMiC,cACvC4C,QAASF,KAK7B,KAAC7B,CAAA,CApHO,CAAS1M,EAAAA,WAmMf4O,GAAqB,CACvBjC,eF/NG,SAAwBZ,EAAUvG,EAAOmB,GAC5C,OAAO,SAACkI,EAAUC,GACdD,EAAS,CAAC/Z,KAAMia,EAAAA,GAAYC,UAE5B,IAAOtI,EAAcoI,IAAW5E,OAAOA,OAAhCxD,WAEDJ,EAAWvJ,IAAKgP,GAAU,SAACkD,GAC7B,IAAM/e,EAAOyW,EACPD,EAAa,WAAauI,EDPrC,SAAqBvI,EAAYwI,EAAgBD,GACpD,OAAOvI,EATJ,SAA6BwI,EAAgBD,GAChD,QACyB,IAApBC,EAAwB,QAAU,eAAiBA,GACpD,gBACoB,IAAZD,EAA0B,IAAMA,EAAU,GAE1D,CAGwBE,CAAoBD,EAAgBD,EAC5D,CCMkBG,CAAY1I,EAAYlB,EAAOyJ,GACrC,MAAO,CACHI,QAAS,MACTC,WAAY,CACRpf,KAAAA,GAGZ,IAEA,OAAO0W,EAAAA,GACF2I,aAAa1I,EAAAA,GAAQ2I,kBAAmB,CACrCF,WAAY,CAAChJ,SAAAA,EAAUS,cAAeC,EAAAA,MAEzCC,MAAK,SAACxR,GACH,IAAAga,GAAyBC,EAAAA,GAAAA,IAAkBja,EAAM,0BAA1CuJ,EAAKyQ,EAALzQ,MAAO2Q,EAAOF,EAAPE,QACd,GAAI3Q,EACA,OAAO+I,QAAQC,OAAOhJ,GAE1B6P,EAAS,CACL/Z,KAAMia,EAAAA,GAAYa,QAClBna,KAAM,CACFwQ,OAAQ6F,GAAc6D,EAAS5D,KAG3C,IAAE,OACK,SAAC/M,GACAA,EAAM+B,OAAS8O,IAAAA,MAASC,WACxBjB,EAAS,CACL/Z,KAAMia,EAAAA,GAAYgB,QAClBta,KAAM,CAACuJ,MAAAA,IAGnB,GACR,CACJ,EEqLI4N,cFnLG,WACH,OAAO,SAACiC,GACJvI,GAAS0J,oBACTnB,EAAS,CAAC/Z,KAAMia,EAAAA,GAAYe,WAChC,CACJ,GEiLA,UAAelgB,EAAAA,EAAAA,KAZS,SAACsF,GACrB,IAAA+a,EAA4C/a,EAAMgV,OAAOjE,OAGzD,MAAO,CAAC6H,QAHMmC,EAAPnC,QAGU7O,OAHKgR,EAANhR,OAGSD,MAHIiR,EAALjR,MAGQE,UAHQ+Q,EAAT/Q,UAGY+G,OAF5B+F,GAAU9W,GAG7B,GAOwC0Z,GAAxC,CAA4DlC,IClO5D,SAASwD,GAAa3e,GAClB,IAAOkd,EAA0Dld,EAA1Dkd,QAAS9H,EAAiDpV,EAAjDoV,sBAAuBV,EAA0B1U,EAA1B0U,OAAQT,EAAkBjU,EAAlBiU,MAAO2K,EAAW5e,EAAX4e,QAChDpgB,EAAQ4W,EACR,WACW,IAAXnB,EACE,eAAc,cAAA/J,OACA+J,EAAK,WAE3B,OACIvR,EAAAA,GAAAA,MAACmc,GAAAA,EAAM,CAACC,KAAM5B,EAAS0B,QAASA,EAASG,gBAAc,EAAA9e,SAAA,EACnDT,EAAAA,GAAAA,KAACqf,GAAAA,EAAOG,OAAM,CAACtH,QAASlZ,KACxBgB,EAAAA,GAAAA,KAACqf,GAAAA,EAAOI,KAAI,CAAAhf,UACRT,EAAAA,GAAAA,KAAC2b,GAAM,CACHX,SAAU9F,EACVT,MAAOA,EACPmB,sBAAuBA,QAK3C,CAEA,SAAenU,EAAAA,KAAW0d,ICV1B,IAAMO,IAAepf,EAAAA,EAAAA,GAAG,oBAElBqf,GAAU,SAAApS,IAAAC,EAAAA,EAAAA,GAAAmS,EAAApS,GAAA,IAAAE,GAAAC,EAAAA,EAAAA,GAAAiS,GAAA,SAAAA,IAAA,IAAAC,GAAAjS,EAAAA,EAAAA,GAAA,KAAAgS,GAAA,QAAAE,EAAAhS,UAAA3G,OAAA4Y,EAAA,IAAA7X,MAAA4X,GAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAAD,EAAAC,GAAAlS,UAAAkS,GA4K0C,OA5K1CH,EAAAnS,EAAAoC,KAAAjC,MAAAH,EAAA,OAAA/C,OAAAoV,KAsEZ3b,MAAQ,CACJ+Q,OAAQ,CAAC,GACZ0K,EAEDI,aAAe,SAACpZ,GACZ,IAAMuO,EAAavO,EAAKuO,WAClBgJ,EAAiBvX,EAAK6N,MAG5B,OACIvR,EAAAA,GAAAA,MAAA,QAAAzC,SAAA,CACK0d,IAAmB,GAAKhJ,EAAa,IAClCnV,EAAAA,GAAAA,KAACyD,EAAAA,EAAM,CAACC,KAAK,iBAAiB5C,KAAK,IAAIX,QALnC,WAAH,OAASyf,EAAKK,iBAAiBrZ,EAAM,EAKkBnG,SAAC,SAI5D8D,EAAAA,EAAOiB,OAAe,OAAE2P,KAGrC,EAACyK,EAEDM,cAAgB,SAACtZ,GACb,IAAO+O,EAAciK,EAAKpf,MAAnBmV,WACDwI,EAAiBvX,EAAK6N,MACtBtV,EACFwW,IAAkC,IAApBwI,EAAwB,QAAU,eAAiBA,GAErE,OACIA,IAAmB,IACfne,EAAAA,GAAAA,KAACmgB,EAAAA,EAAyB,CACtBnhB,MAAOiU,OAAOkL,GACd/e,UAAWD,EACXK,aAAW,GAI3B,EAACogB,EAgEDQ,iBAAmB,SAACrd,GAAG,OAAK6c,EAAKpf,MAAM6f,kBAAkBtd,EAAIud,OAAOzd,MAAO,EAAD+c,EAC1EW,kBAAoB,kBAAMX,EAAKrQ,SAAS,CAAC2F,OAAQ,CAAC,GAAI,EAAD0K,EACrDK,iBAAmB,SAAC/K,GAAM,OAAK0K,EAAKrQ,SAAS,CAAC2F,OAAAA,GAAS,EAAD0K,CAAC,CAxGtD,OAwGqD9R,EAAAA,EAAAA,GAAA6R,EAAA,EAAA3c,IAAA,YAAAqO,IAhEtD,WACI,MAAO,CACHyK,QAAS,CACLC,MAAO,CACH,QACA,QACA,qBACA,yBACA,uBACA,cACA,mBACA,YAGR5H,KAAM,CACF4H,MAAO,CAAC,QAAS,YAAa,YAG1C,GAAC,CAAA/Y,IAAA,gBAAAqO,IAED,WACI,IAAAtD,EAA6BC,KAAKxN,MAA3BggB,EAAWzS,EAAXyS,YAEP,MAAO,CACHxE,KAAK3b,EAHgB0N,EAAL1N,SAIhBgO,MAAO,QACP4N,UAAU,EACVC,SAAS,EACTE,QAAS7C,EAAAA,GACT8C,QAAS,CACLN,MAAO/D,EACPsE,KAAMtO,KAAKuO,UACXC,KAAMgE,GAEVtM,UAAW,CACPO,MAAOkL,EAAWc,YAClBtc,MAAOwb,EAAWe,YAClBtL,mBAAoBuK,EAAWhD,eAC/BtH,uBAAwBsK,EAAWgB,cACnCjI,qBAAsBiH,EAAWgB,cACjCrL,YAAatH,KAAKgS,aAClBrH,iBAAkBgH,EAAWhD,eAC7BrG,UAAWqJ,EAAWiB,eACtBlS,QAASV,KAAKkS,eAElBrD,WAAU,SAAC1D,GACP,OAAOA,EAAO1E,KAClB,EACAoM,SAAQ,SAAC1H,GACL,OAAsB,IAAlBA,EAAO1E,MACA,CACHkC,KAAM,QAEe,IAAlBwC,EAAO1E,MACP,CACHmF,YAAa,YAFd,CAKX,EAER,GAAC,CAAA5W,IAAA,qBAAAH,MAMD,WAGI,KAFgBoJ,IAAM+B,KAAK7J,MAAM+Q,QAAQhO,OAAS,GAG9C,OAAO,KAGX,IAAA2H,EAAuCb,KAAKxN,MAArCH,EAAKwO,EAALxO,MAAOuV,EAAqB/G,EAArB+G,sBACdkL,EAAwB9S,KAAK7J,MAAM+Q,OAA5BA,EAAM4L,EAAN5L,OAAQT,EAAKqM,EAALrM,MAEf,OACIzU,EAAAA,GAAAA,KAACmf,GAAY,CACTvJ,sBAAuBA,EACvBvV,MAAOA,EACP6U,OAAQA,EACRT,MAAOA,EACPiJ,SAAS,EACT0B,QAASpR,KAAKuS,mBAG1B,GAAC,CAAAvd,IAAA,sBAAAH,MAED,WAAuB,IAADke,EAAA,KAClBjE,EAA6B9O,KAAKxN,MAA3BggB,EAAW1D,EAAX0D,YAAangB,EAAKyc,EAALzc,MAEpB,OACIL,EAAAA,GAAAA,KAACghB,EAAAA,GAAM,CAACC,WAAYC,EAAAA,GAAczgB,SAC7B,SAAA1B,GAAA,IAAEoiB,EAAQpiB,EAARoiB,SAAQ,OACPnhB,EAAAA,GAAAA,KAAA,OACIY,UAAWP,EAAM,iBAAkB,CAC/B+gB,OAAQD,IACT1gB,UAEHT,EAAAA,GAAAA,KAACqhB,EAAAA,EAAW,CACRvgB,KAAK,IACL+B,MAAO2d,EACP9f,SAAUqgB,EAAKX,iBACf9R,KAAK,iCACLyN,MAAO,CACH,CAAClZ,MAAO,UAAWlC,KAAM,WACzB,CAACkC,MAAO,OAAQlC,KAAM,YAG5B,GAItB,GAAC,CAAAqC,IAAA,mBAAAH,MAED,WACI,IAAO4T,EAAczI,KAAKxN,MAAnBiW,WAEP,OACIvT,EAAAA,GAAAA,MAACiM,EAAAA,EAAa,CAAA1O,SAAA,EACVT,EAAAA,GAAAA,KAAA,OAAKY,UAAW8e,GAAa,CAAC5e,KAAM,MAAML,SAAC,gBAE3CyC,EAAAA,GAAAA,MAACoe,EAAAA,GAAe,CAAA7gB,SAAA,CACXuN,KAAKuT,uBAENvhB,EAAAA,GAAAA,KAACid,EAAAA,GAAa/c,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAAK8N,KAAKkP,eAAa,IAAEnB,MAAOtF,UAI9D,GAAC,CAAAzT,IAAA,SAAAH,MAED,WACI,IAAA2e,EAAuCxT,KAAKxN,MAArCH,EAAKmhB,EAALnhB,MAAOuV,EAAqB4L,EAArB5L,sBAEd,OACI1S,EAAAA,GAAAA,MAAA,OAAKtC,UAAWP,EAAM,cAAcI,SAAA,CAC/BmV,EAAwB,KAAO5H,KAAKyT,mBACpCzT,KAAK0T,uBAGlB,IAAC,EAAA1e,IAAA,cAAAH,MA3OD,SAAmB+D,EAAMwM,GACrB,IAAMqB,EAAQuD,EAAqB5E,GAAY/B,IAAIzK,GAEnD,OAAe,IAAX6N,EACO,QACW,IAAXA,EACA,cAEAlQ,EAAAA,EAAOiB,OAAe,OAAEiP,EAEvC,GAAC,CAAAzR,IAAA,cAAAH,MAED,SAAmB+D,EAAMwM,GACrB,IAAMjP,EAAQ6T,EAAqB5E,GAAY/B,IAAIzK,GAC7CyH,EAAQ,CACV+J,OAAQ,UACRC,UAAW,UACXC,QAAS,UACTC,WAAY,UACZC,SAAU,UACVC,aAAc,WAChBtU,GAEF,YAAwB,IAAVA,GACVnE,EAAAA,GAAAA,KAACmd,EAAAA,EAAK,CAAC9O,MAAOA,EAAO1N,KAAMwD,IAE3BI,EAAAA,EAAOiB,OAAOiJ,QAEtB,GAAC,CAAAzL,IAAA,gBAAAH,MAED,SAAqB+D,EAAMwM,GACvB,IAAM1O,EAAOsT,EAAqB5E,GAAY/B,IAAIzK,GAClD,OAAOrC,EAAAA,EAAOiB,OAAc,MAAEd,EAClC,GAAC,CAAA1B,IAAA,iBAAAH,MAED,SAAsB+D,EAAMwM,GACxB,IAAM1O,EAAOsT,EAAqB5E,GAAY/B,IAAIzK,GAClD,OAAOrC,EAAAA,EAAOiB,OAAe,OAAEd,EACnC,GAAC,CAAA1B,IAAA,iBAAAH,MAED,SAAsB+D,EAAMwM,GACxB,IAAMuB,EAAWqD,EAAqB5E,GAAY/B,IAAIzK,GAEhD+a,EAAkB,CAACC,OAAO,EAAOC,OAAQ,GACzClhB,EAAOoS,EAAAA,EAAQ+O,YAAYnN,EAAUgN,GACrC3iB,EAAQ+T,EAAAA,EAAQ+O,YAAYnN,GAAQzU,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACnCyhB,GAAe,IAClB/O,QAAQ,KAGZ,YAA2B,IAAb+B,GACV3U,EAAAA,GAAAA,KAAC+hB,EAAAA,GAAa,CAACnP,QAAM,EAAChS,UATD,6CAS8BD,KAAMA,EAAM3B,MAAOA,IAEtEuF,EAAAA,EAAOiB,OAAOiJ,QAEtB,KAACkR,CAAA,CApEW,CAAS1Q,EAAAA,WA2PnB4O,GAAqB,CACvBwC,kBTtGG,SAA2BG,GAC9B,MAAO,CACHzc,KAAMie,EAAAA,GACNtd,KAAM,CAAC8b,YAAAA,GAEf,GS2GA,UAAe3hB,EAAAA,EAAAA,KAPS,SAACsF,GACrB,IAAA8d,EAAyD9d,EAAMgV,OAAOA,OAA/DqH,EAAWyB,EAAXzB,YAAa7K,EAAUsM,EAAVtM,WAAYC,EAAqBqM,EAArBrM,sBAGhC,MAAO,CAAC4K,YAAAA,EAAa7K,WAAAA,EAAYc,WAFdiD,GAAcvV,GAEYyR,sBAAAA,EACjD,GAEwCiI,GAAxC,CAA4D8B,I,8GCpQ5D,SAASuC,GAAa1c,EAAQd,EAAM1B,EAAK0a,GACrC,MAAO,CACH1a,IAAAA,EACAH,MAAO0B,EAAAA,EAAOiB,OAAOA,GAAQd,EAAK1B,IAClC0a,QAAAA,EAER,CAQA,IAAMyE,GAAqB,SAACC,EAAQC,GAChC,IAAM3E,EAAU0E,EAAOlb,OAAS,EAEhC,OACIhE,EAAAA,GAAAA,MAACmc,GAAAA,EAAM,CAACve,KAAK,IAAIwe,KAAM5B,EAAS0B,QAASiD,EAAaC,gBAAc,EAACC,cAAY,EAAA9hB,SAAA,EAC7ET,EAAAA,GAAAA,KAACqf,GAAAA,EAAOG,OAAM,CAACtH,QAAQ,mBACvBlY,EAAAA,GAAAA,KAACqf,GAAAA,EAAOI,KAAI,CAAAhf,SACPuL,IAAKoW,GAAQ,SAACrb,EAAK0N,GAChB,IAAMxG,GAAK/N,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACJ6G,GAAG,IACNyH,QAASoG,IAAAA,SAAe7N,EAAK,cAEjC,OAAO/G,EAAAA,GAAAA,KAACgP,GAAAA,EAAK,CAACf,MAAOA,GAAYwG,EACrC,QAIhB,EAEM+N,GAAgC,SAACnM,EAAmBgM,GACtD,IAAM3E,EAAUzR,IAAMoK,GAAmBnP,OAAS,EAElD,OACIhE,EAAAA,GAAAA,MAACmc,GAAAA,EAAM,CAACve,KAAK,IAAIwe,KAAM5B,EAAS0B,QAASiD,EAAaC,gBAAc,EAACC,cAAY,EAAA9hB,SAAA,EAC7ET,EAAAA,GAAAA,KAACqf,GAAAA,EAAOG,OAAM,CAACtH,QAAQ,wBACvBlY,EAAAA,GAAAA,KAACqf,GAAAA,EAAOI,KAAI,CAAAhf,SACPuL,IAAKqK,GAAmB,SAACtP,EAAK0b,GAC3B,IAAMxU,GAAK/N,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACJ6G,GAAG,IACNyH,QAASoG,IAAAA,SAAe7N,EAAK,cAE3ByH,EAAO,eAAA9D,OAAkB+X,GAC/B,OAAOziB,EAAAA,GAAAA,KAACgP,GAAAA,EAAK,CAACR,QAASA,EAASP,MAAOA,GAAYwU,EACvD,QAIhB,EA6RA,SA3RA,SAAiB1jB,GAAe,IA2CJ2jB,EA3CT5R,EAAE/R,EAAF+R,GAAIzQ,EAAKtB,EAALsB,MACbyd,GAAW6E,EAAAA,EAAAA,MACjBC,GAWIC,EAAAA,EAAAA,KAAY,SAAC1e,GAAK,OAAKA,EAAMgV,OAAOA,MAAM,IAV1C7Z,EAAUsjB,EAAVtjB,WACAoW,EAAekN,EAAflN,gBACA0B,EAASwL,EAATxL,UACAzB,EAAUiN,EAAVjN,WACAS,EAAYwM,EAAZxM,aACAC,EAAiBuM,EAAjBvM,kBACA1B,EAAQiO,EAARjO,SACA4B,EAAYqM,EAAZrM,aACArB,EAAM0N,EAAN1N,OACAU,EAAqBgN,EAArBhN,sBAGJkN,GAA8BD,EAAAA,EAAAA,KAAY,SAAC1e,GAAK,OAAKA,EAAM4e,MAAM,IAA1DC,EAAUF,EAAVE,WAAYC,EAAOH,EAAPG,QACnBC,GAAsCC,EAAAA,EAAAA,UAAS,IAAGC,GAAAzhB,EAAAA,GAAAA,GAAAuhB,EAAA,GAA3Cd,EAAMgB,EAAA,GAAEC,EAAmBD,EAAA,GAClCE,GAAwDH,EAAAA,EAAAA,UAAS,CAAC,GAAEI,GAAA5hB,EAAAA,GAAAA,GAAA2hB,EAAA,GAA7DE,EAAaD,EAAA,GAAEE,EAA8BF,EAAA,GAEpDG,EAAwD9O,IAAAA,UAAgBtV,EAAY,CAChF,WACA,SACA,SACA,cACA,0BACFqkB,GAAAhiB,EAAAA,GAAAA,GAAA+hB,EAAA,GANKE,EAAMD,EAAA,GAAExf,EAAKwf,EAAA,GAAElP,EAAKkP,EAAA,GAAEE,EAAUF,EAAA,GAAEG,EAAWH,EAAA,GAOpDI,EAAuCnP,IAAAA,UAAgBiP,EAAY,CAC/D,sBACA,iBACFG,GAAAriB,EAAAA,GAAAA,GAAAoiB,EAAA,GAHKE,EAAgBD,EAAA,GAAEE,EAAUF,EAAA,GAKnCxiB,EAA0CC,EAAAA,UAAe,GAAMC,GAAAC,EAAAA,GAAAA,GAAAH,EAAA,GAAxD2iB,EAAaziB,EAAA,GAAE0iB,EAAgB1iB,EAAA,GAChC2iB,GAAyB5iB,EAAAA,aAAkB,WAC7C2iB,GAAkBD,EACtB,GAAG,CAACjP,EAAQkP,EAAkBD,IAExBG,GAAiBT,EAEjB,CACI3B,GAAa,SAAU2B,EAAY,mBAAoBjO,GACvD,CACI5S,IAAK,cACLH,OACU6f,EAAsBmB,EAAWvO,aAAe,KAElDpS,EAAAA,GAAAA,MAAA,QAAAzC,SAAA,CACK8D,EAAAA,EAAOiB,OAAOO,OAAO8d,EAAWvO,aAChCM,IACG1S,EAAAA,GAAAA,MAAAC,GAAAA,SAAA,CAAA1C,SAAA,CAAE,MAEET,EAAAA,GAAAA,KAACukB,GAAAA,EAAO,CACJC,UAAW9B,EACX9iB,QAAQ,0BAAyBa,UAEjCT,EAAAA,GAAAA,KAACyD,EAAAA,EAAM,CACH+gB,SAAU9B,EACVhf,KAAK,iBACLvD,QAASkkB,GAAuB5jB,SACnC,mBAU7ByhB,GAAa,SAAU2B,EAAY,2BAA4BjO,GAC/DsM,GAAa,SAAU2B,EAAY,iCACnC3B,GAAa,SAAU2B,EAAY,8BACnC3B,GAAa,SAAU2B,EAAY,gCAlCvC,GAqCAY,GAAmBX,EAEnB,CACI5B,GAAa,SAAU4B,EAAa,yBACpC5B,GAAa,SAAU4B,EAAa,2BACpC5B,GAAa,SAAU4B,EAAa,0BACpC5B,GAAa,SAAU4B,EAAa,2BACpC5B,GAAa,SAAU4B,EAAa,8BACpC5B,GAAa,SAAU4B,EAAa,gCACpC5B,GAAa,SAAU4B,EAAa,0BAA2BlO,GAC/DsM,GAAa,SAAU4B,EAAa,wBAAyBlO,IATjE,GAYA8O,GAAa,CACfjJ,KAAM,UACNkJ,UAAW,UACXC,QAAS,OACTC,OAAQ,OACRC,SAAU,UACVC,WAAY,UACZC,SAAU,UACVC,WAAY,UACZC,MAAO,UACT/gB,GAEIoH,IAAkBsX,EAAAA,EAAAA,IAAYzJ,IAC9BhV,IAAYye,EAAAA,EAAAA,IAAY3e,IAExBsH,IAAwBpJ,EAAAA,EAAAA,cAC1B,SAACgC,GAAS,OAAK0Z,EVDhB,SAA+BvS,GAClC,MAAO,CACHxH,KAAMohB,EAAAA,GACNzgB,KAAM,CAAC6G,gBAAAA,GAEf,CUJgC6Z,CAAsBhhB,GAAW,GACzD,CAAC0Z,EAAUvS,KAET8Z,IAAoBjjB,EAAAA,EAAAA,cAAY,kBAAMihB,EAAoBjN,EAAa,GAAE,CAACA,IAC1EkP,IAA+BljB,EAAAA,EAAAA,cACjC,kBAAMqhB,EAA+BpN,EAAkB,GACvD,CAACA,IAGCkP,IAAyBnjB,EAAAA,EAAAA,cAAY,kBAAMihB,EAAoB,GAAG,GAAE,IACpEmC,IAAoCpjB,EAAAA,EAAAA,cACtC,kBAAMqhB,EAA+B,CAAC,EAAE,GACxC,IAGJ,OACIvgB,EAAAA,GAAAA,MAACiM,EAAAA,EAAa,CAAA1O,SAAA,CACT0jB,IACGnkB,EAAAA,GAAAA,KAACmf,GAAY,CACTzB,SAAS,EACT0B,QAASiF,GACT5P,MAAO,EACPmB,sBAAuBA,EACvBV,OAAQzE,OAAO0D,KAAKe,MAG5BhS,EAAAA,GAAAA,MAAA,OAAKtC,UAAWP,EAAM,YAAYI,SAAA,EAC9ByC,EAAAA,GAAAA,MAAA,OAAKtC,UAAWP,EAAM,QAAQI,SAAA,EAC1BT,EAAAA,GAAAA,KAACyd,GAAAA,GAAS,CACN1B,MAAO,CACH,CACI,CACI/Y,IAAK,KACLH,OAAO7C,EAAAA,GAAAA,KAACylB,GAAAA,GAASC,GAAE,CAAC5U,GAAIA,KAE5B,CACI9N,IAAK,iBACL2L,MAAO,iBACP9L,OACI7C,EAAAA,GAAAA,KAACylB,GAAAA,GAAS7R,KAAI,CACV+R,eAAa,EACbhlB,KAAMijB,EACNgC,UAAWjQ,EACXkQ,aAAc,mCACdC,KAAKC,EAAAA,GAAAA,IAA4BnC,EAAQX,MAIrD,CACIjgB,IAAK,aACLH,OACI7C,EAAAA,GAAAA,KAACylB,GAAAA,GAAS7R,KAAI,CACV+R,eAAa,EACbhlB,KAAMyW,EACN0O,IAAG,IAAApb,OAAMuY,EAAO,KAAAvY,OAAIsb,EAAAA,GAAKC,WAAU,UAAAvb,OAAS0M,EAAS,UAAA1M,OAASwb,GAAAA,GAAcC,YAIxF,CACInjB,IAAK,0BACLH,OACI7C,EAAAA,GAAAA,KAACylB,GAAAA,GAAS7R,KAAI,CACV+R,eAAa,EACbhlB,KAAM+U,EAAgBgC,QACtBoO,KAAKM,EAAAA,GAAAA,IAAuB,CACxBnD,QAAAA,EACAoD,KAAM3Q,EAAgBgC,YAIlCgG,QAAS4I,QAAQ5Q,IAErB,CACI1S,IAAK,SACLH,OACIK,EAAAA,GAAAA,MAAA,QAAAzC,SAAA,CACK8D,EAAAA,EAAOiB,OAAe,OAAE4Q,EAAalP,SACtClH,EAAAA,GAAAA,KAACyD,EAAAA,EAAM,CACHC,KAAK,iBACL5C,KAAK,IACLX,QAASklB,GAAkB5kB,SAC9B,YAKTid,QAAStH,EAAalP,OAAS,GAEnC,CACIlE,IAAK,qBACLH,OACIK,EAAAA,GAAAA,MAAA,QAAAzC,SAAA,CACK8D,EAAAA,EAAOiB,OAAe,OACnByG,IAAMoK,GAAmBnP,SAE7BlH,EAAAA,GAAAA,KAACyD,EAAAA,EAAM,CACHC,KAAK,iBACL5C,KAAK,IACLX,QAASmlB,GAA6B7kB,SACzC,YAKTid,QAASzR,IAAMoK,GAAmBnP,OAAS,GAE/C,CACIlE,IAAK,QACLH,OACI7C,EAAAA,GAAAA,KAACmd,EAAAA,EAAK,CACF9O,MAAOqW,GACP/jB,KAAM4D,EAAAA,EAAOiB,OAAsB,cAAErB,MAIjD,CACInB,IAAK,QACLH,MAAO0B,EAAAA,EAAOiB,OAAe,OAAEiP,IAEnC,CACIzR,IAAK,YACLH,OACI7C,EAAAA,GAAAA,KAACumB,GAAAA,EAAI,CACD1jB,MAAO8R,EACPvD,SAAU,CACNyQ,OAAQ,EACRD,OAAO,KAInBlE,QAAS4I,QAAQ3R,IAErB,CACI3R,IAAK,iBACLH,OACI7C,EAAAA,GAAAA,KAACumB,GAAAA,EAAI,CACD1jB,MAAO0T,EACPnF,SAAU,CACNyQ,OAAQ,EACRD,OAAO,KAInBlE,QAAS4I,QAAQ/P,KAEvB,CAEE,CACIvT,IAAK,qBACLH,MAAO0B,EAAAA,EAAOiB,OAAe,OAAEye,GAC/BvG,SAAU9H,GAEd,CACI5S,IAAK,SACLH,MAAO0B,EAAAA,EAAOiB,OAAe,OAAE0e,KAClCxZ,QAAAoP,EAAAA,EAAAA,IACEhZ,EAAAA,GAAAA,IAAK+iB,EAAYb,SAKhChjB,EAAAA,GAAAA,KAACyd,GAAAA,GAAS,CAAC1B,MAAO,CAAC0I,GAAiBH,UAGtC1O,IACE5V,EAAAA,GAAAA,KAACsL,GAAAA,EAAS,CACNE,sBAAuBA,GACvBD,gBAAiBA,GACjBE,eAAgBA,EAChBrH,UAAWA,KAIlB+d,GAAmBC,EAAQmD,IAC3B/C,GAA8BgB,EAAegC,SAI9D,E,gBC5VMnlB,IAAQC,EAAAA,EAAAA,GAAG,kBA4CjB,SAjCA,SAAsBvB,GAAW,IAATynB,EAAKznB,EAALynB,MACd1I,GAAW6E,EAAAA,EAAAA,MAEjBC,GAA4CC,EAAAA,EAAAA,KAAY,SAAC1e,GAAK,OAAKA,EAAMgV,OAAOA,MAAM,IAA/E4D,EAAO6F,EAAP7F,QAAS7O,EAAM0U,EAAN1U,OAAQD,EAAK2U,EAAL3U,MAAOE,EAASyU,EAATzU,UACxB2C,EAAM0V,EAAM7a,OAAZmF,GAEP2V,EAA+BhlB,EAAAA,SAAc,WACzC,MAAO,CACHilB,SAAU,kBAAM5I,EXsHrB,SAAwBhN,GAC3B,OAAO,SAACgN,GAGJ,OAFAA,EAAS,CAAC/Z,KAAM4iB,EAAAA,GAAiB1I,UAhBzC,SAAwBnN,GACpB,OAAO+E,EAAAA,GACFxE,IAAIyE,EAAAA,GAAQ8Q,gBAAiB,CAACznB,KAAM,iBAAmB2R,EAAK,OAC5DoF,MAAK,SAAC5W,GACH,MAAO,CAACwR,GAAAA,EAAIxR,WAAAA,EAChB,IAAE,OACK,SAAC2O,GACJ,OAAO+I,QAAQC,OAAO,CAClBzI,QAAS,qCAAuC0I,EAAAA,GAChDrF,QAAS5D,GAEjB,GACR,CAMe4Y,CAAe/V,GACjBoF,KAAKyB,GACLzB,KAAKiB,GACLjB,KAAKT,GACLS,MAAK,SAACxR,GACHoZ,EAAS,CACL/Z,KAAM4iB,EAAAA,GAAiB9H,QACvBna,KAAAA,GAER,IAAE,OACK,SAACuJ,GACAA,EAAM+B,OAAS8O,IAAAA,MAASC,WACxBjB,EAAS,CACL/Z,KAAM4iB,EAAAA,GAAiB3H,QACvBta,KAAM,CAACuJ,MAAAA,IAGnB,GACR,CACJ,CW7IqC6Y,CAAehW,GAAI,EAC5CiW,WAAY,kBAAMjJ,GX6JnB,SAACA,GACJvI,EAAS0J,oBACTnB,EAAS,CAAC/Z,KAAM4iB,EAAAA,GAAiB5H,WACrC,GWhKmD,EAEnD,GAAG,CAACjB,EAAUhN,IALP4V,EAAQD,EAARC,SAAUK,EAAUN,EAAVM,YAOjBC,EAAAA,GAAAA,IAAWN,EAAU,CAACO,QAAS,KAAWF,WAAAA,IAE1C,IAAMG,EAAiBnK,IAAY7O,EAEnC,OACIlO,EAAAA,GAAAA,KAAA,OAAKY,UAAWP,KAAQI,UACpBT,EAAAA,GAAAA,KAAA,OAAKY,UAAWP,GAAM,UAAW,CAAC0c,QAASmK,IAAiBzmB,SACvDymB,GACGlnB,EAAAA,GAAAA,KAACgd,EAAAA,EAAM,KAEP9Z,EAAAA,GAAAA,MAACoK,EAAAA,EAAe,CAACY,OAAQA,EAAQD,MAAOA,EAAOE,UAAWA,EAAU1N,SAAA,EAChET,EAAAA,GAAAA,KAACmnB,GAAQ,CAACrW,GAAIA,EAAIzQ,MAAOA,MACzBL,EAAAA,GAAAA,KAAC2f,GAAU,CAACtf,MAAOA,WAM3C,EChCA,IAAe+mB,EAAAA,EAAAA,IAZf,SAAeroB,GAAW,IAATynB,EAAKznB,EAALynB,MACb,OACIxmB,EAAAA,GAAAA,KAAA,OAAKY,UAAU,wBAAuBH,UAClCT,EAAAA,GAAAA,KAACmP,EAAAA,EAAa,CAAA1O,UACVT,EAAAA,GAAAA,KAACqnB,EAAAA,GAAM,CAAA5mB,UACHT,EAAAA,GAAAA,KAACsnB,EAAAA,GAAK,CAACnoB,KAAI,GAAAuL,OAAK8b,EAAMrnB,KAAI,SAASooB,UAAWC,UAKlE,I,gECXMnnB,IAAQC,EAAAA,EAAAA,GAAG,0BAEjB,SAASmnB,KACL,OACIznB,EAAAA,GAAAA,KAAC0nB,GAAAA,EAAW,CAACC,KAAM3B,EAAAA,GAAK4B,OAAOnnB,UAC3BT,EAAAA,GAAAA,KAAC6nB,GAAiB,KAG9B,CAEA,SAAepmB,EAAAA,KAAWgmB,IAE1B,SAASI,KACL,IACa/W,GACTgX,EAAAA,EAAAA,MADAnc,OAASmF,GAEPmS,GAAUJ,EAAAA,EAAAA,IAAYkF,GAAAA,IAEtBC,EAAavmB,EAAAA,aACf,SAACwmB,IACGC,EAAAA,GAAAA,KAAuB9iB,KAAK,IAADsF,OAAKuY,EAAO,KAAAvY,OAAIsb,EAAAA,GAAK4B,OAAM,KAAAld,OAAIud,GAAY,IAC1E,GACA,CAAChF,IAGL,OACIjjB,EAAAA,GAAAA,KAAAmD,GAAAA,SAAA,CAAA1C,UACIT,EAAAA,GAAAA,KAACO,GAAAA,EAAc,CAACK,UAAWP,GAAM,YAAaM,KAAMmQ,EAAIpQ,SAAUsnB,EAAWvnB,UACzET,EAAAA,GAAAA,KAACmoB,GAAAA,EAAW,CAACC,UAAQ,EAAA3nB,UACjBT,EAAAA,GAAAA,KAACqoB,GAAAA,EAAe,CAAA5nB,SAAEqQ,SAKtC,C,iJCtCO,SAASwX,EAAmB3c,GAQ/B,IAAOsX,EAAoBtX,EAApBsX,QAAYpjB,GAAIC,EAAAA,EAAAA,GAAI6L,EAAM5L,GAC3B0I,EAAG,IAAAiC,OAAOuY,GAAWsF,EAAAA,EAAGtF,QAAO,KAAAvY,OAAIsb,EAAAA,GAAKC,YACxCuC,ECjBH,SAA+C7c,EAAW8c,GAC7D,IAAMhgB,EAAM,IAAIigB,gBAehB,OAdAjY,OAAO0D,KAAKxI,GAAQyI,QAAO,SAACuU,EAAKC,GAC7B,IACeC,EADThmB,EAAQ8I,EAAOid,GACrB,GAAIA,KAAKH,EACL,GAAmB,QAAnBI,EAAIJ,EAAKG,GAAG7c,eAAO,IAAA8c,GAAfA,EAAiBC,UAAW,CAAC,IAADC,EAAAC,EACtBC,EAAqB,QAAlBF,EAAGN,EAAKG,GAAG7c,eAAO,IAAAgd,GAAW,QAAXC,EAAfD,EAAiBD,iBAAS,IAAAE,OAAA,EAA1BA,EAAAnZ,KAAAkZ,EAA6BlmB,QAC7B6E,IAARuhB,GACAxgB,EAAIygB,OAAON,EAAGK,EAAM,GAE5B,MACIxgB,EAAIygB,OAAON,EAAG/lB,EAAQ,IAG9B,OAAO8lB,CACX,GAAGlgB,GACIA,CACX,CDAmB0gB,CAAoBtpB,GAAMupB,EAAAA,EAAAA,MAAuBjZ,WAChE,OAAOqY,EAAM,GAAA9d,OAAMjC,EAAG,KAAAiC,OAAI8d,GAAW/f,CACzC,CEfO,SAAS2d,IAAiF,IAADrnB,EAAA8O,UAAA3G,OAAA,QAAAQ,IAAAmG,UAAA,GAAAA,UAAA,GAAJ,CAAC,EAArDwY,EAAItnB,EAAJsnB,KAAMpD,EAAOlkB,EAAPkkB,QAC1C,OAAOoD,EAAI,IAAA3b,OACDuY,GAAWsF,EAAAA,EAAGtF,QAAO,KAAAvY,OAAIsb,EAAAA,GAAKqD,WAAU,KAAA3e,OAAI4e,EAAAA,EAAcC,MAAK,KAAA7e,OAAI2b,GAAI,IAAA3b,OACvEuY,GAAWsF,EAAAA,EAAGtF,QAAO,KAAAvY,OAAIsb,EAAAA,GAAKqD,WAAU,KAAA3e,OAAI4e,EAAAA,EAAcC,MACxE,CAEO,SAASC,EAAavG,EAAiBvL,GAC1C,MAAM,IAANhN,OAAWuY,EAAO,KAAAvY,OAAIsb,EAAAA,GAAKqD,WAAU,KAAA3e,OAAI4e,EAAAA,EAAcG,YAAW,UAAA/e,OAASgN,EAC/E,CAEO,SAASgS,EAAiB1jB,GAQ7B,IAPA2jB,EAAI3jB,EAAJ2jB,KACAC,EAAQ5jB,EAAR4jB,SACA3G,EAAOjd,EAAPid,QAMA,MAAM,IAANvY,OAAWuY,GAAWsF,EAAAA,EAAGtF,QAAO,KAAAvY,OAAIsb,EAAAA,GAAK6D,WAAU,UAAAnf,OAASif,EAAI,cAAAjf,OAAakf,EACjF,CAEO,SAASE,EAAgBC,EAAiB9G,GAC7C,MAAM,IAANvY,OAAWuY,GAAWsF,EAAAA,EAAGtF,QAAO,KAAAvY,OAAIsb,EAAAA,GAAKgE,SAAQ,aAAAtf,OAAYqf,EACjE,C,gHCzBO,SAASE,EAA6BhH,EAAiBiH,GAC1D,OAAOC,EAAAA,GAAUC,oCAAoCnH,EAASiH,EAClE,CAEO,SAASnE,EAA4BnC,EAAgBX,GACxD,IAAMoH,EAASpH,EAAO,IAAAvY,OAAOuY,EAAO,KAAM,GAC1C,MAAM,GAANvY,OAAU2f,GAAM3f,OAAGsb,EAAAA,GAAKsE,oBAAmB,KAAA5f,OAAI6f,EAAAA,GAAWC,aAAY,QAAA9f,OAAOkZ,EACjF,CAEA,SAAS6G,EAAuDxf,EAASC,GACrE,OACID,EAAKyf,oBAAsBxf,EAAMwf,mBACjCzf,EAAK0f,mBAAqBzf,EAAMyf,iBAEzB,EAGJ1f,EAAKyf,kBAAoBxf,EAAMwf,mBAEhCzf,EAAK0f,iBAAmBzf,EAAMyf,kBAD7B,EAGC,CACZ,CAEO,IAAMC,EAAmB,SAAH7rB,GAUtB,IATH8rB,EAAO9rB,EAAP8rB,QACAxX,EAAMtU,EAANsU,OACAyX,EAAe/rB,EAAf+rB,gBACAC,EAAKhsB,EAALgsB,MAOIC,EAAc,GAElBC,GAAkCC,EAAAA,EAAAA,IAAkBH,GAA7CI,EAAMF,EAANE,OAAQC,EAAeH,EAAfG,gBAEf,GAAe,sBAAX/X,EACA2X,GAASlR,EAAAA,EAAAA,GAAI+Q,GAAS5S,KAAKwS,QACxB,GAAe,UAAXpX,EACP2X,GAASlR,EAAAA,EAAAA,GAAI+Q,GAAS5S,MAAK,SAAAjS,EAAAwB,GAAA,IAAA6jB,EAAArlB,EAAEslB,MAAOC,OAAC,IAAAF,EAAG,GAAEA,EAAAG,EAAAhkB,EAAI8jB,MAAOG,OAAC,IAAAD,EAAG,GAAEA,EAAA,OAAMD,EAAErkB,OAASukB,EAAEvkB,MAAM,SACjF,GAAI4jB,EAAgBY,IAAIrY,GAC3B,OAAOsY,EAAAA,EAAAA,IAAuBd,EAAS,CAAC,CAAC7nB,IAAKqQ,EAAQ8X,OAAAA,EAAQC,gBAAAA,KAGlE,OAAQL,EAAiBa,SAAS,OAASZ,EAASA,EAAOa,SAC/D,C,w9LClDMC,EAAc,IAAI,KAGxBA,EAAYC,gBAFD,KAEqB,GAChCD,EAAYC,gBAFD,KAEqB,GAChC,MAAM7b,EAAO4b,EAAY5b,KAAK8b,KAAKF,E,4CCR5B,MAAMG,EAAsB,CAC/Bhc,QAAS,iBACTic,aAAc,sBACdC,QAAS,uBACT1a,eAAgB,wBAChB2a,eAAgB,yBAEb,MAAMC,UAAsBrd,MAC/B,WAAAI,EAAY,cAAEkd,EAAa,QAAE9d,EAAO,KAAEwB,EAAOic,EAAoBE,SAAa,CAAC,GAC3E9c,MAAMb,GACNR,KAAKue,eAAgB,EACrBve,KAAKgC,KAAOA,EACRsc,IACAte,KAAKM,KAAOge,EAAche,KAC1BN,KAAKwe,MAAQF,EAAcE,MAEnC,E,yHCbG,SAASC,EAAqBC,EAAUC,EAAU3pB,GACrD,GAAY,YAARA,EAAmB,CACnB,MAAM4pB,EAAiB,IAAIF,GACrBG,EAAa,IAAIF,GAEvB,IAAIG,EAAqBF,EAAe9jB,KAAKikB,IACzC,MAAMC,EAAiBH,EAAWI,WAAU,EAAGlpB,UAAWA,IAASgpB,EAAchpB,OACjF,IAAwB,IAApBipB,EAAuB,CACvB,MAAME,EAAYL,EAAWG,GAE7B,OADAH,EAAWM,OAAOH,EAAgB,GAC3B,CACHjpB,KAAMgpB,EAAchpB,KACpB4N,SAAUub,EAAUvb,SAE5B,CACA,OAAOob,CAAa,IAMxB,OAHIF,EAAW3lB,OAAS,IACpB4lB,EAAqB,IAAIA,KAAuBD,IAE7CC,CACX,CACA,OAAI,IAASJ,GACF,IAAUA,EAAUC,EAAUF,GAElCE,CACX,CCxBO,MAAMS,EAAuB,ICN7B,MACH,WAAAhe,GACIpB,KAAKqf,OAAS,CAAC,CACnB,CACA,EAAAC,CAAGvpB,EAAMwpB,GACDvf,KAAKqf,OAAOtpB,GACZiK,KAAKqf,OAAOtpB,GAAMqB,KAAKmoB,GAGvBvf,KAAKqf,OAAOtpB,GAAQ,CAACwpB,EAE7B,CACA,GAAAC,CAAIzpB,EAAM0pB,GACFzf,KAAKqf,OAAOtpB,KACZiK,KAAKqf,OAAOtpB,GAAQiK,KAAKqf,OAAOtpB,GAAM2pB,QAAO,EAAG5c,QAASA,IAAO2c,IAExE,CACA,QAAA3P,CAAS/Z,EAAM+b,GACP9R,KAAKqf,OAAOtpB,IACZiK,KAAKqf,OAAOtpB,GAAM4pB,SAAQ,EAAGC,aACzBA,EAAO9N,EAAK,GAGxB,GDRE+N,EAAc1c,KAChB,EAAA2c,EAAA,IAAU,CAAE3c,SACZjB,EAAA,EAAY6d,QAAQ5c,EAAK,EAuBhBC,EAAW,IArBxB,MACI,WAAAhC,GACIpB,KAAKoD,SAAW,CACZgB,QAAS,GACTjB,KAAM,MAEV0c,EAAW7f,KAAKqD,IAAI,QACxB,CACA,GAAAA,CAAIrO,GACA,OAAO,IAAIgL,KAAKoD,SAAUpO,EAC9B,CACA,GAAAmP,CAAI6b,GACA,MAAMC,GAxBiBvpB,EAwBuBspB,EAvB3Cvd,OAAOyd,QAAQxpB,GAAM0P,QAAO,CAACuU,GAAM3lB,EAAKH,WACtB,IAAVA,IACP8lB,EAAI3lB,GAAOH,GAER8lB,IACR,CAAC,IANsB,IAACjkB,EA0BvB,GADAsJ,KAAKoD,SAAW,IAAUpD,KAAKoD,SAAU6c,EAAiBxB,GACtDwB,EAAgB9c,KAAM,CACtB,MAAMA,EAAO8c,EAAgB9c,MAAQnD,KAAKqD,IAAI,QAC9Cwc,EAAW1c,GACXic,EAAqBtP,SAAS,cAAe3M,EACjD,CACJ,E,2DErCG,MACM7Q,GAAK,IAAA6tB,YAAW,CAAEnnB,EAAG,KAAMonB,EAAG,MAC9B/tB,GAAQ,IAAA8tB,YAAW,CAAEznB,EAFT,YAEuBM,EAAG,KAAMonB,EAAG,K,mCCHrD,MAOMC,EAAgB,IAAM,MAPP,EAACnnB,EAAQonB,KACjC,IAAIC,EAAS,GACb,IAAK,IAAI1mB,EAKyC,GAL7BA,EAAI,IAAKA,EAC1B0mB,GAAUD,EAAMlmB,KAAKomB,MAAsBF,GAAhBlmB,KAAKqmB,WAEpC,OAAOF,CAAM,EAEwBG,CAAa,EAAI,yC","sources":["webpack://@ytsaurus/ui/./src/ui/components/AttributesButton/ClickableAttributesButton.tsx","webpack://@ytsaurus/ui/./src/ui/components/EditableAsText/EditableAsText.tsx","webpack://@ytsaurus/ui/./src/ui/store/selectors/histogram.js","webpack://@ytsaurus/ui/./src/ui/components/Histogram/HistogramChart.tsx","webpack://@ytsaurus/ui/./src/ui/components/Histogram/Histogram.js","webpack://@ytsaurus/ui/./src/ui/components/LoadDataHandler/LoadDataHandler.tsx","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/chartkit/build/utils/react.js","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/chartkit/build/components/ErrorBoundary/ErrorBoundary.js","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/chartkit/build/utils/getErrorMessage.js","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/chartkit/build/components/Loader/Loader.js","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/chartkit/build/components/ChartKit.js","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/chartkit/build/index.js","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/chartkit/build/plugins/yagr/index.js","webpack://@ytsaurus/ui/./src/ui/components/YagrChartKit/YagrChartKit.tsx","webpack://@ytsaurus/ui/./src/ui/components/templates/utils.js","webpack://@ytsaurus/ui/./src/ui/utils/tablet/partition.js","webpack://@ytsaurus/ui/./src/ui/utils/tablet/tablet.js","webpack://@ytsaurus/ui/./src/ui/store/actions/tablet/tablet.js","webpack://@ytsaurus/ui/./src/ui/utils/tablet/table.js","webpack://@ytsaurus/ui/./src/ui/store/selectors/tablet/tablet.js","webpack://@ytsaurus/ui/./src/ui/utils/tablet/store.js","webpack://@ytsaurus/ui/./src/ui/utils/tablet/stores.js","webpack://@ytsaurus/ui/./src/ui/store/actions/tablet/stores.js","webpack://@ytsaurus/ui/./src/ui/store/selectors/tablet/stores.js","webpack://@ytsaurus/ui/./src/ui/pages/tablet/TabletDetails/Stores.js","webpack://@ytsaurus/ui/./src/ui/pages/tablet/TabletDetails/StoresDialog.tsx","webpack://@ytsaurus/ui/./src/ui/pages/tablet/TabletDetails/Partitions.js","webpack://@ytsaurus/ui/./src/ui/pages/tablet/TabletDetails/Overview.js","webpack://@ytsaurus/ui/./src/ui/pages/tablet/TabletDetails/TabletDetails.js","webpack://@ytsaurus/ui/./src/ui/pages/tablet/Tablet.js","webpack://@ytsaurus/ui/./src/ui/pages/tablet/TabletTopRowContent.tsx","webpack://@ytsaurus/ui/./src/ui/utils/app-url/navigation.ts","webpack://@ytsaurus/ui/./src/ui/utils/app-url/utils.ts","webpack://@ytsaurus/ui/./src/ui/utils/app-url/index.ts","webpack://@ytsaurus/ui/./src/ui/utils/tablet_cell_bundles/index.ts","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/chartkit/build/i18n/index.js","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/chartkit/build/libs/chartkit-error/chartkit-error.js","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/chartkit/build/libs/settings/mergeSettingStrategy.js","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/chartkit/build/libs/settings/settings.js","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/chartkit/build/libs/settings/eventEmitter.js","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/chartkit/build/utils/cn.js","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/chartkit/build/utils/common.js"],"sourcesContent":["import React from 'react';\nimport {ConnectedProps, connect} from 'react-redux';\n\nimport AttributesButton, {AttributesButtonProps} from './AttributesButton';\n\nimport {openAttributesModal} from '../../store/actions/modals/attributes-modal';\nimport {ButtonProps} from '../Button/Button';\n\ninterface Props extends Omit<AttributesButtonProps, 'onClick' | 'title'> {\n title: React.ReactNode;\n\n // The function is called inside click handler, and overrides path and exactPath\n getPathProps?: () => Pick<Partial<Props>, 'path' | 'exactPath'>;\n path?: string;\n exactPath?: string;\n\n attribute?: string;\n attributes?: object;\n\n size?: ButtonProps['size'];\n view?: ButtonProps['view'];\n}\n\nfunction ClickableAttributesButton({\n title,\n getPathProps = () => {\n return {};\n },\n path,\n exactPath,\n attribute,\n attributes,\n openAttributesModal,\n withTooltip = true,\n tooltipProps = {placement: 'bottom-end', content: 'Show attributes'},\n ...rest\n}: Props & ConnectedProps<typeof connector>) {\n return (\n <AttributesButton\n {...rest}\n tooltipProps={tooltipProps}\n withTooltip={withTooltip}\n onClick={() => {\n const pathProps = {\n path,\n exactPath,\n ...getPathProps(),\n };\n\n openAttributesModal({\n title,\n ...pathProps,\n attribute,\n attributes,\n });\n }}\n />\n );\n}\n\nconst connector = connect(null, {openAttributesModal});\n\nexport default connector(ClickableAttributesButton);\n","import React, {useCallback, useEffect} from 'react';\nimport cn from 'bem-cn-lite';\n\nimport {TextInput} from '@gravity-ui/uikit';\nimport Icon from '../Icon/Icon';\n\nimport './EditableAsText.scss';\nimport Button, {ButtonProps} from '../Button/Button';\nconst block = cn('editable-as-text');\n\ninterface Props {\n className?: string;\n editorClassName?: string;\n\n text?: string;\n children: React.ReactNode;\n onChange: (v?: string) => void;\n disableEdit?: boolean;\n withControls?: boolean;\n cancelOnClose?: boolean;\n openOnClick?: boolean;\n size?: 's' | 'm' | 'l' | 'xl';\n saveButtonView?: ButtonProps['view'];\n cancelButtonView?: ButtonProps['view'];\n\n renderEditor?: (props: {\n value?: string;\n onBlur: () => void;\n onChange: (value?: string) => void;\n className?: string;\n onApply: (value?: string) => void;\n }) => React.ReactNode;\n onModeChange?: (isEdit: boolean) => void;\n}\n\nexport function EditableAsText(props: Props) {\n const {\n children,\n onChange,\n text,\n className,\n withControls,\n size,\n disableEdit,\n cancelOnClose,\n openOnClick,\n renderEditor,\n onModeChange,\n saveButtonView = 'normal',\n cancelButtonView = 'normal',\n } = props;\n const [editMode, setEditMode] = React.useState(false);\n const [input, setInput] = React.useState(text || '');\n\n useEffect(() => {\n setInput(text || '');\n }, [text]);\n\n const handleChangeMode = useCallback(\n (isEdit: boolean) => {\n if (onModeChange) onModeChange(isEdit);\n setEditMode(isEdit);\n },\n [onModeChange],\n );\n\n const closeEditMode = React.useCallback(() => {\n handleChangeMode(false);\n if (cancelOnClose) setInput(text || '');\n }, [cancelOnClose, handleChangeMode, text]);\n\n const startTextEdit = useCallback(() => {\n handleChangeMode(true);\n }, [handleChangeMode]);\n\n const handleWrapClick = () => {\n if (!editMode && openOnClick) {\n startTextEdit();\n }\n };\n\n const handleChange = React.useCallback((val?: string) => setInput(val ?? ''), [setInput]);\n\n const applyValue = useCallback(() => {\n handleChangeMode(false);\n onChange(input);\n }, [onChange, handleChangeMode, input]);\n\n const closeAndResetValue = useCallback(() => {\n handleChangeMode(false);\n setInput(text || '');\n }, [handleChangeMode, text]);\n\n const onApply = useCallback(\n (value?: string) => {\n handleChangeMode(false);\n onChange(value);\n },\n [handleChangeMode, onChange],\n );\n\n const handleKeyDown = React.useCallback(\n (evt: React.KeyboardEvent<HTMLElement>) => {\n if (evt.key === 'Enter') {\n applyValue();\n }\n if (evt.key === 'Escape') {\n closeAndResetValue();\n }\n },\n [applyValue, closeAndResetValue],\n );\n\n const controlSize = size ? size : 'm';\n\n return (\n <div\n className={block(null, [className || '', editMode ? 'edit' : ''])}\n onClick={handleWrapClick}\n >\n {editMode ? (\n <>\n {renderEditor ? (\n renderEditor({\n value: input,\n onChange: handleChange,\n className: block('control'),\n onBlur: closeEditMode,\n onApply,\n })\n ) : (\n <TextInput\n className={block('control')}\n autoFocus\n size={controlSize}\n value={input}\n onUpdate={handleChange}\n onKeyDown={handleKeyDown}\n onBlur={closeEditMode}\n />\n )}\n {withControls && (\n <>\n <Button\n className={block('control')}\n view={saveButtonView}\n extraProps={{onMouseDown: applyValue}}\n size={controlSize}\n >\n <Icon awesome={'check'} size={controlSize} />\n </Button>\n <Button\n className={block('control')}\n view={cancelButtonView}\n extraProps={{onMouseDown: closeAndResetValue}}\n size={controlSize}\n >\n <Icon awesome={'times'} size={controlSize} />\n </Button>\n </>\n )}\n </>\n ) : (\n <React.Fragment>\n {children}\n {!disableEdit && (\n <Button\n className={block('control', {type: 'edit'})}\n view=\"outlined\"\n onClick={startTextEdit}\n size={controlSize}\n >\n <Icon awesome={'pencil'} size={controlSize} />\n </Button>\n )}\n </React.Fragment>\n )}\n </div>\n );\n}\n\nexport function EditButton({\n onClick,\n size = 'm',\n}: {\n onClick: () => void;\n size?: ButtonProps['size'];\n}) {\n return (\n <Button className={block('edit-btn')} onClick={onClick} size={size}>\n <Icon awesome={'pencil'} />\n </Button>\n );\n}\n","import hammer from '../../common/hammer';\nimport {createSelector} from 'reselect';\n\nconst getHistogram = (state, props) => props.histogram;\n\nexport const createGetQuartiles = () =>\n createSelector(getHistogram, (histogram) => hammer.stat.quartiles(histogram.data));\n\nexport const createGetPDF = () =>\n createSelector(getHistogram, (histogram) => hammer.stat.pdf(histogram.data));\n\nexport const createGetECDF = () =>\n createSelector([getHistogram, createGetPDF()], (histogram, pdf) => {\n const ecdf = hammer.stat.ecdf(histogram.data);\n\n // Create fake points\n ecdf.steps.unshift({\n x: pdf.min,\n y: 0,\n });\n ecdf.steps.push({\n x: pdf.min + pdf.bucketNumber * pdf.bucketSize,\n y: 100,\n });\n\n return ecdf;\n });\n\nexport const createGetIsDataGood = () =>\n createSelector(\n [createGetPDF(), createGetECDF(), createGetQuartiles()],\n (pdfData, ecdfData, quartiles) => {\n if (pdfData.min === pdfData.max) {\n // All points are the same\n return false;\n } else if (ecdfData.steps.length < 5) {\n // We have got too few different points in data (including fake points)\n return false;\n } else if (quartiles.q75 - quartiles.q25 === 0) {\n // All points are almost the same\n return false;\n } else {\n return true;\n }\n },\n );\n","import compact_ from 'lodash/compact';\nimport React from 'react';\nimport YagrChartKit, {\n RawSerieData,\n YagrWidgetData,\n getSerieColor,\n} from '../YagrChartKit/YagrChartKit';\n\nimport formatLib from '../../common/hammer/format';\n\nexport interface HistogramChartProps {\n className: string;\n format: 'Number' | 'Bytes';\n ecdf: ECDFData;\n pdf: PDFData;\n dataName: string;\n lineOnly?: boolean;\n}\n\ninterface ECDFData {\n min: number;\n max: number;\n steps: Array<XY>;\n}\n\ntype XY = [X, Y] | {x: X; y: Y};\n\ninterface PDFData {\n bucketNumber: number;\n bucketSize: number;\n buckets: Array<[X, Y]>;\n min: X;\n max: X;\n}\n\ntype X = number;\ntype Y = number;\n\nfunction HistogramChart({className, pdf, ecdf, format, dataName, lineOnly}: HistogramChartProps) {\n const yagrData = React.useMemo(() => {\n const xFormat = format === 'Bytes' ? formatLib.Bytes : formatLib.Number;\n const {timeline, graphs, step} = lineOnly\n ? getLineOnlyData(pdf, ecdf)\n : getColumnData(pdf, ecdf);\n const res: YagrWidgetData = {\n data: {\n timeline,\n graphs,\n },\n libraryConfig: {\n axes: {\n x: {\n values: (_d, x) => x.map(xFormat),\n side: 'bottom',\n grid: {\n show: false,\n },\n },\n y1: {\n side: 'right',\n show: false,\n },\n y: {\n side: 'left',\n show: false,\n },\n },\n scales: {\n y1: {\n min: 0,\n max: 100,\n },\n y: {\n min: 0,\n },\n },\n tooltip: {\n render: (tooltipData) => {\n const {\n x,\n scales: [first, second],\n } = tooltipData;\n const columnValue = lineOnly ? undefined : first?.rows?.[0]?.originalValue;\n const lineValue = lineOnly\n ? first?.rows?.[0]?.originalValue\n : second?.rows?.[0]?.originalValue;\n\n return (\n renderDefaultTooltip({\n colValue:\n columnValue !== undefined\n ? formatLib.Number(columnValue)\n : undefined,\n colX0: xFormat(x - step / 2),\n colX1: xFormat(x + step / 2),\n lineValue:\n lineValue !== undefined\n ? formatLib.Number(lineValue, {digits: 2}) + '%'\n : undefined,\n lineX: xFormat(x),\n dataName,\n lineOnly,\n }) ?? '-'\n );\n },\n },\n },\n sources: {},\n };\n return res;\n }, [pdf, ecdf, format, lineOnly]);\n\n return (\n <div className={className}>\n <YagrChartKit type={'yagr'} data={yagrData} />\n </div>\n );\n}\n\nexport default React.memo(HistogramChart);\n\nfunction getColumnData(\n {buckets, min, bucketSize}: PDFData,\n {steps}: ECDFData,\n): YagrWidgetData['data'] & {step: number} {\n const timeline = [min - 0.1 * bucketSize];\n const data: Array<number> = [undefined!];\n const lineData: Array<number> = [undefined!];\n let j = 0;\n for (let i = 0; i < buckets.length; ++i) {\n const [x, y] = buckets[i];\n const bestX = x + bucketSize / 2;\n data.push(y);\n timeline.push(bestX);\n while (j < steps.length) {\n const item = steps[j];\n const itemX = getX(item);\n if (itemX === bestX) {\n lineData[i + 1] = Array.isArray(item) ? item[1] : item.y;\n break;\n } else if (itemX === undefined || itemX < bestX) {\n ++j;\n continue;\n } else {\n lineData[i + 1] = calcBestY(\n bestX,\n steps[Math.min(steps.length - 1, j - 1)],\n steps[j],\n )!;\n break;\n }\n }\n }\n timeline.push(min + (0.1 + bucketSize) * buckets.length);\n data.push(undefined!);\n lineData.push(undefined!);\n\n const graphs: RawSerieData[] = [\n {\n type: 'line' as const,\n data: lineData,\n scale: 'y1',\n color: getSerieColor(1),\n },\n {\n type: 'column' as const,\n data,\n color: getSerieColor(0),\n ...{\n renderOptions: {\n size: [1],\n gap: 1,\n },\n },\n },\n ];\n return {\n graphs,\n timeline,\n step: bucketSize,\n };\n}\n\nfunction getLineOnlyData(\n {min, buckets, bucketSize}: PDFData,\n {steps}: ECDFData,\n): ReturnType<typeof getColumnData> {\n const timeline: Array<number> = [min - 0.1 * bucketSize];\n const data: Array<number> = [NaN];\n\n for (const item of steps) {\n timeline.push(getX(item)!);\n data.push(getY(item)!);\n }\n\n timeline.push(min + (0.1 + bucketSize) * buckets.length);\n data.push(NaN);\n\n const graphs: Array<RawSerieData> = [\n {\n type: 'line' as const,\n data,\n color: getSerieColor(1),\n },\n ];\n\n return {\n timeline,\n graphs,\n step: NaN,\n };\n}\n\nfunction renderDefaultTooltip({\n colValue,\n colX0,\n colX1,\n lineValue,\n lineX,\n dataName,\n lineOnly,\n}: {\n colValue?: string;\n colX0: string;\n colX1: string;\n lineValue?: string;\n lineX: string;\n dataName: string;\n lineOnly?: boolean;\n}) {\n const lp = lineOnly ? '' : '~';\n return compact_([\n colValue !== undefined\n ? `<b>${colValue}</b> partitions contain in range from <b>${colX0}</b> to <b>${colX1}</b> - ${dataName}`\n : undefined,\n lineValue !== undefined\n ? `<b>${lp}${lineValue}</b> of tablets conains <b>${lp}${lineX}</b> or less`\n : undefined,\n ]).join('<br/>');\n}\n\nfunction getX(v?: XY) {\n return Array.isArray(v) ? v[0] : v?.x;\n}\n\nfunction getY(v?: XY) {\n return Array.isArray(v) ? v[1] : v?.y;\n}\n\nfunction calcBestY(bestX: number, left?: XY, right?: XY) {\n const ly = getY(left);\n const ry = getY(right);\n if (ly === undefined) {\n return ry;\n }\n\n if (ry === undefined) {\n return ly;\n }\n\n const lx = getX(left);\n const rx = getX(right);\n const k = (bestX - lx!) / (rx! - lx!);\n\n return ly + k * (ry - ly);\n}\n","import {connect} from 'react-redux';\nimport PropTypes from 'prop-types';\nimport hammer from '../../common/hammer';\nimport cn from 'bem-cn-lite';\nimport React from 'react';\n\nimport keys_ from 'lodash/keys';\nimport map_ from 'lodash/map';\n\nimport {\n createGetECDF,\n createGetIsDataGood,\n createGetPDF,\n createGetQuartiles,\n} from '../../store/selectors/histogram';\nimport HistogramChart from './HistogramChart';\n\nimport './Histogram.scss';\nimport {Checkbox, Select} from '@gravity-ui/uikit';\n\nconst block = cn('histogram');\n\nHistogram.quartilesProps = PropTypes.shape({\n min: PropTypes.number,\n q25: PropTypes.number,\n q50: PropTypes.number,\n q75: PropTypes.number,\n max: PropTypes.number,\n});\n\nHistogram.pdfProps = PropTypes.shape({\n bucketNumber: PropTypes.number,\n bucketSize: PropTypes.number,\n max: PropTypes.number,\n min: PropTypes.number,\n valueMax: PropTypes.number,\n valueMin: PropTypes.number,\n quartiles: Histogram.quartilesProps,\n buckets: PropTypes.array,\n});\n\nHistogram.ecdfProps = PropTypes.shape({\n min: PropTypes.number,\n max: PropTypes.number,\n steps: PropTypes.array,\n});\n\nHistogram.propTypes = {\n // from parent\n activeHistogram: PropTypes.string.isRequired,\n handleHistogramChange: PropTypes.func.isRequired,\n histogramItems: PropTypes.object.isRequired,\n\n histogram: PropTypes.shape({\n data: PropTypes.array.isRequired,\n format: PropTypes.string.isRequired,\n dataName: PropTypes.string.isRequired,\n dataFormat: PropTypes.string.isRequired,\n }).isRequired,\n\n // from connect\n quartiles: Histogram.quartilesProps.isRequired,\n pdf: Histogram.pdfProps.isRequired,\n ecdf: Histogram.ecdfProps.isRequired,\n isDataGood: PropTypes.bool.isRequired,\n};\n\nfunction Histogram(props) {\n const {activeHistogram, handleHistogramChange, histogramItems} = props;\n const {histogram, quartiles, pdf, ecdf, isDataGood} = props;\n\n const params = {...histogram, pdf, ecdf};\n\n const [isDatailedLine, setDetailed] = React.useState(false);\n\n return (\n <div className={block()}>\n <div className={block('toolbar')}>\n <Select\n value={[activeHistogram]}\n onUpdate={(values) => handleHistogramChange(values[0])}\n options={map_(keys_(histogramItems), (value) => {\n return {value, content: value};\n })}\n width=\"max\"\n />\n <Checkbox\n className={block('detailed')}\n checked={isDatailedLine}\n onUpdate={setDetailed}\n >\n Detailed line\n </Checkbox>\n </div>\n\n {isDataGood ? (\n <HistogramChart className={block('chart')} {...params} lineOnly={isDatailedLine} />\n ) : (\n <div className={block('bad-data')}>\n <p className={block('bad-data-message')}>\n Could not draw a descriptive chart with given data.\n </p>\n </div>\n )}\n\n <ul className={block('quartiles')}>\n <li className={block('quartiles-item')}>\n Min –{' '}\n <span className={block('quartiles-count')}>\n {hammer.format[histogram.format](quartiles.min)}\n </span>\n </li>\n <li className={block('quartiles-item')}>\n Q25% –{' '}\n <span className={block('quartiles-count')}>\n {hammer.format[histogram.format](quartiles.q25)}\n </span>\n </li>\n <li className={block('quartiles-item')}>\n Q50% –{' '}\n <span className={block('quartiles-count')}>\n {hammer.format[histogram.format](quartiles.q50)}\n </span>\n </li>\n <li className={block('quartiles-item')}>\n Q75% –{' '}\n <span className={block('quartiles-count')}>\n {hammer.format[histogram.format](quartiles.q75)}\n </span>\n </li>\n <li className={block('quartiles-item')}>\n Max –{' '}\n <span className={block('quartiles-count')}>\n {hammer.format[histogram.format](quartiles.max)}\n </span>\n </li>\n </ul>\n </div>\n );\n}\n\n// https://github.com/reduxjs/reselect#sharing-selectors-with-props-across-multiple-component-instances\nconst makeMapStateToProps = () => {\n const getQuartiles = createGetQuartiles();\n const getPDF = createGetPDF();\n const getECDF = createGetECDF();\n const getIsDataGood = createGetIsDataGood();\n\n return (state, props) => {\n const quartiles = getQuartiles(state, props);\n const pdf = getPDF(state, props);\n const ecdf = getECDF(state, props);\n const isDataGood = getIsDataGood(state, props);\n\n return {quartiles, pdf, ecdf, isDataGood};\n };\n};\n\nexport default connect(makeMapStateToProps)(Histogram);\n","import React, {Component} from 'react';\n\nimport {Toaster} from '@gravity-ui/uikit';\nimport Error from '../../components/Error/Error';\nimport hammer from '../../common/hammer';\n\nimport {showErrorPopup} from '../../utils/utils';\nimport {YTError} from '../../types';\n\nconst toaster = new Toaster();\n\ninterface LoadDataHandlerProps {\n alwaysShowError?: boolean;\n loaded: boolean;\n error: boolean;\n errorData?: YTError;\n children: React.ReactNode;\n}\n\nexport default class LoadDataHandler extends Component<LoadDataHandlerProps> {\n componentDidUpdate() {\n const {error, loaded, errorData} = this.props;\n\n if (error && loaded) {\n toaster.add({\n theme: 'danger',\n name: 'network',\n autoHiding: 500000,\n title: 'Oops! something went wrong.',\n content: errorData ? (errorData as YTError).message : hammer.format.NO_VALUE,\n actions: [\n {\n label: ' view',\n onClick: () => showErrorPopup(errorData as YTError),\n },\n ],\n });\n }\n }\n\n render() {\n const {alwaysShowError = false, error, errorData, loaded, children} = this.props;\n\n const initialLoading = !loaded;\n\n if (error && (alwaysShowError || initialLoading)) {\n return <Error error={errorData} />;\n }\n\n return children;\n }\n}\n","import React from 'react';\n// For some reason React.memo drops the generic prop type and creates a regular union type\n// https://github.com/DefinitelyTyped/DefinitelyTyped/issues/37087#issuecomment-542793243\nexport const typedMemo = React.memo;\n","import React from 'react';\nimport { CHARTKIT_ERROR_CODE } from '../../libs';\nimport { getErrorMessage } from '../../utils/getErrorMessage';\nexport class ErrorBoundary extends React.Component {\n constructor() {\n super(...arguments);\n this.state = {\n error: undefined,\n };\n this.resetError = () => {\n if (this.state.error) {\n this.setState({ error: undefined });\n }\n };\n }\n static getDerivedStateFromError(error) {\n return { error };\n }\n componentDidCatch() {\n var _a, _b;\n const { error } = this.state;\n if (error) {\n (_b = (_a = this.props).onError) === null || _b === void 0 ? void 0 : _b.call(_a, { error });\n }\n }\n componentDidUpdate(prevProps) {\n if (prevProps.data !== this.props.data) {\n const { error } = this.state;\n if (error && 'code' in error && error.code === CHARTKIT_ERROR_CODE.NO_DATA) {\n this.resetError();\n }\n }\n }\n render() {\n const { error } = this.state;\n if (error) {\n const message = getErrorMessage(error);\n if (this.props.renderError) {\n return this.props.renderError({\n error,\n message,\n resetError: this.resetError,\n });\n }\n return React.createElement(\"div\", null, message);\n }\n return this.props.children;\n }\n}\n","import { i18n } from '../i18n';\nexport function getErrorMessage(error) {\n const code = 'code' in error && error.code;\n return (error.message || code || i18n('error', 'label_unknown-error')).toString();\n}\n","import { __rest } from \"tslib\";\nimport React from 'react';\nimport { Loader as BaseLoader } from '@gravity-ui/uikit';\nimport { block } from '../../utils/cn';\nimport './Loader.css';\nconst b = block('loader');\nexport const Loader = (_a) => {\n var { renderPluginLoader } = _a, props = __rest(_a, [\"renderPluginLoader\"]);\n const pluginLoader = renderPluginLoader === null || renderPluginLoader === void 0 ? void 0 : renderPluginLoader();\n // React.Suspense complains about possible undefined in \"fallback\" property\n if (typeof pluginLoader !== 'undefined') {\n return pluginLoader;\n }\n return (React.createElement(\"div\", { className: b() },\n React.createElement(BaseLoader, Object.assign({}, props))));\n};\n","import { __rest } from \"tslib\";\nimport React from 'react';\nimport { i18n } from '../i18n';\nimport { CHARTKIT_ERROR_CODE, ChartKitError, settings } from '../libs';\nimport { getRandomCKId, typedMemo } from '../utils';\nimport { cn } from '../utils/cn';\nimport { ErrorBoundary } from './ErrorBoundary/ErrorBoundary';\nimport { Loader } from './Loader/Loader';\nimport './ChartKit.css';\nconst b = cn('chartkit');\nconst ChartKitComponent = (props) => {\n const widgetRef = React.useRef();\n const { instanceRef, id: propsId, type, isMobile, renderPluginLoader } = props, restProps = __rest(props, [\"instanceRef\", \"id\", \"type\", \"isMobile\", \"renderPluginLoader\"]);\n const ckId = React.useMemo(() => getRandomCKId(), []);\n const id = propsId || ckId;\n const lang = settings.get('lang');\n const plugins = settings.get('plugins');\n const plugin = plugins.find((iteratedPlugin) => iteratedPlugin.type === type);\n if (!plugin) {\n throw new ChartKitError({\n code: CHARTKIT_ERROR_CODE.UNKNOWN_PLUGIN,\n message: i18n('error', 'label_unknown-plugin', { type }),\n });\n }\n const ChartComponent = plugin.renderer;\n React.useImperativeHandle(instanceRef, () => ({\n reflow(details) {\n var _a;\n if ((_a = widgetRef.current) === null || _a === void 0 ? void 0 : _a.reflow) {\n widgetRef.current.reflow(details);\n }\n },\n }), []);\n return (React.createElement(React.Suspense, { fallback: React.createElement(Loader, { renderPluginLoader: renderPluginLoader }) },\n React.createElement(\"div\", { className: b({ mobile: isMobile }, 'chartkit-theme_common') },\n React.createElement(ChartComponent, Object.assign({ ref: widgetRef, id: id, lang: lang }, restProps)))));\n};\nconst ChartKitComponentWithErrorBoundary = React.forwardRef(function ChartKitComponentWithErrorBoundary(props, ref) {\n return (React.createElement(ErrorBoundary, { onError: props.onError, data: props.data, renderError: props.renderError },\n React.createElement(ChartKitComponent, Object.assign({ instanceRef: ref }, props))));\n}) /* https://stackoverflow.com/a/58473012 */;\nexport const ChartKit = typedMemo(ChartKitComponentWithErrorBoundary);\n","import { ChartKit } from './components/ChartKit';\nimport { settings } from './libs';\nexport * from './types/widget-data';\nexport * from './libs/chartkit-error/chartkit-error';\nexport { settings };\nexport default ChartKit;\n","import React from 'react';\nexport * from './types';\nexport const YagrPlugin = {\n type: 'yagr',\n renderer: React.lazy(() => import('./renderer/YagrWidget')),\n};\n","import ChartKit, {settings} from '@gravity-ui/chartkit';\nimport {YagrPlugin} from '@gravity-ui/chartkit/yagr';\nexport type {RawSerieData, YagrWidgetData} from '@gravity-ui/chartkit/yagr';\n\nimport '@gravity-ui/yagr/dist/index.css';\n\nsettings.set({plugins: [YagrPlugin]});\n\nconst COLORS = ['rgb(77, 162, 241)', 'rgb(255, 61, 100)'];\n\nexport function getSerieColor(serieIndex: number) {\n return COLORS[serieIndex % COLORS.length];\n}\n\nexport default ChartKit;\n","import React from 'react';\nimport unipika from '../../common/thor/unipika';\nimport block from 'bem-cn-lite';\n\nimport Link from '../../components/Link/Link';\n\nimport hammer from '../../common/hammer';\nimport {showErrorPopup} from '../../utils/utils';\n\nimport './utils.scss';\n\nfunction wrapRenderMethods(templates) {\n return Object.keys(templates).reduce((newTemplates, key) => {\n newTemplates[key] = templates[key];\n\n return newTemplates;\n }, {});\n}\n\n/**\n * Template must be a scoped function, because they are bound to elements-table component instance\n * @param {ViewModel} item\n * @param {String} columnName\n */\nfunction defaultTemplate(item, columnName) {\n return String(hammer.format['ValueOrDefault'](item[columnName]));\n}\n\nfunction prepareTextProps(text, asHTML) {\n const props = {};\n\n if (asHTML) {\n // Need to render html strings\n props.dangerouslySetInnerHTML = {__html: text};\n } else {\n props.children = unipika.decode(String(text));\n }\n\n return props;\n}\n\nexport function renderText(text, settings = {}) {\n let className = block('elements-text');\n\n if (settings.mix) {\n className = className(\n false,\n block(settings.mix.block)(settings.mix.elem, {\n ...settings.mix.mods,\n }),\n );\n } else {\n className = className();\n }\n\n const textProps = prepareTextProps(text, settings.asHTML);\n\n const title = settings.title || text;\n\n return <span {...textProps} title={title} className={className} />;\n}\n\nexport function printColumnAsBytes(item, columnName) {\n const column = this.getColumn(columnName);\n return hammer.format['Bytes'](column.get(item));\n}\n\nexport function printColumnAsNumber(item, columnName) {\n const column = this.getColumn(columnName);\n return hammer.format['Number'](column.get(item));\n}\n\nexport function printColumnAsTimeDurationWithMs(item, columnName) {\n const column = this.getColumn(columnName);\n return hammer.format['TimeDuration'](column.get(item), {\n format: 'milliseconds',\n });\n}\n\nexport function printColumnAsReadableField(item, columnName) {\n const column = this.getColumn(columnName);\n return (\n <span className=\"elements-ellipsis\">\n {hammer.format['ReadableField'](column.get(item))}\n </span>\n );\n}\n\nexport function printColumnAsTime(item, columnName) {\n const value = this?.getColumn ? this.getColumn(columnName).get(item) : item[columnName];\n return <ColumnAsTime value={value} />;\n}\n\nexport function ColumnAsTime({value}) {\n return (\n <span className=\"elements-ellipsis\">\n {hammer.format['DateTime'](value, {format: 'full'})}\n </span>\n );\n}\n\nexport function printColumnAsError(error) {\n const showError = () => {\n showErrorPopup(error, {hideOopsMsg: true});\n };\n return typeof error === 'object' ? (\n <Link theme=\"ghost\" onClick={showError}>\n View\n </Link>\n ) : (\n hammer.format.NO_VALUE\n );\n}\n\n// Using prepared table data\nexport function asBytes(item, columnName) {\n return hammer.format['Bytes'](item[columnName]);\n}\n\nexport function asNumber(item, columnName) {\n return hammer.format['Number'](item[columnName]);\n}\n\nexport default {\n __default__: defaultTemplate,\n _templates: {},\n add: function (templateId, templates) {\n this._templates[templateId] = wrapRenderMethods(templates);\n },\n get: function (templateId) {\n return this._templates[templateId] || {};\n },\n};\n","import ypath from '@ytsaurus/interface-helpers/lib/ypath';\n\nimport keys_ from 'lodash/keys';\n\nexport default class Partition {\n constructor(data) {\n this.$value = data.index;\n this.$attributes = data;\n\n this.index = data.index;\n this.pivotKey = ypath.getValue(data, '/pivot_key');\n this.isEden = ypath.getValue(data, '/isEden');\n\n this.state = ypath.getValue(data, '/state');\n this.compressed = Number(ypath.getValue(data, '/compressed_data_size'));\n this.uncompressed = Number(ypath.getValue(data, '/uncompressed_data_size'));\n this.unmergedRows = Number(ypath.getValue(data, '/unmerged_row_count'));\n this.sampleKeyCount = Number(ypath.getValue(data, '/sample_key_count'));\n\n let stores = ypath.getValue(data, '/stores');\n stores = stores ? keys_(stores) : [];\n\n this.stores = stores;\n this.storeCount = stores.length;\n }\n}\n","import extend_ from 'lodash/extend';\nimport map_ from 'lodash/map';\n\nimport Partition from '../../utils/tablet/partition';\n\nexport const histogramItems = {\n unmerged_row_count: {\n format: 'Number',\n },\n uncompressed_data_size: {\n dataName: 'bytes',\n format: 'Bytes',\n },\n store_count: {\n format: 'Number',\n },\n};\n\nexport function preparePartitions(contents) {\n const partitions = map_(contents.partitions, (partition, index) => {\n partition.attributes = Object.assign({}, partition);\n partition.index = index;\n return new Partition(partition);\n });\n\n const eden = new Partition(\n extend_(\n {\n isEden: true,\n index: -1,\n attributes: extend_({}, contents.eden),\n },\n contents.eden,\n ),\n );\n\n partitions.unshift(eden);\n\n return partitions;\n}\n","import yt from '@ytsaurus/javascript-wrapper/lib/yt';\n\nimport find_ from 'lodash/find';\n\nimport ypath from '@ytsaurus/interface-helpers/lib/ypath';\nimport CancelHelper from '../../../utils/cancel-helper';\nimport {GENERIC_ERROR_MESSAGE, TYPED_OUTPUT_FORMAT} from '../../../constants/index';\nimport {preparePartitions} from '../../../utils/tablet/tablet';\nimport {\n CHANGE_ACTIVE_HISTOGRAM,\n CHANGE_CONTENT_MODE,\n LOAD_TABLET_DATA,\n} from '../../../constants/tablet';\nimport {YTApiId, ytApiV3Id} from '../../../rum/rum-wrap-api';\n\nconst requests = new CancelHelper();\n\nfunction loadPartitions({cellLeadingPeer, tabletPath, unorderedDynamicTable, ...rest}) {\n if (cellLeadingPeer) {\n return ytApiV3Id\n .get(YTApiId.tabletPartitions, {\n path: tabletPath,\n output_format: TYPED_OUTPUT_FORMAT,\n })\n .then((data) => {\n const contents = ypath.getValue(data, '');\n const tabletErrors = ypath.getValue(data, '/errors') || [];\n const replicationErrors = ypath.getValue(data, '/replication_errors') || {};\n\n const pivotKey = contents.pivot_key;\n const nextPivotKey = contents.next_pivot_key;\n const partitions = unorderedDynamicTable ? [] : preparePartitions(contents);\n\n const res = {\n pivotKey,\n nextPivotKey,\n partitions,\n tabletErrors,\n replicationErrors,\n tabletPath,\n cellLeadingPeer,\n unorderedDynamicTable,\n ...rest,\n };\n if (!unorderedDynamicTable) {\n return res;\n }\n\n const storesPath = `${tabletPath}/stores`;\n return ytApiV3Id\n .get(YTApiId.tabletStores, {\n path: storesPath,\n output_format: TYPED_OUTPUT_FORMAT,\n })\n .then((stores) => {\n return {...res, stores};\n });\n })\n .catch((error) => {\n return Promise.reject({\n message:\n 'Could not load tablet partitions information. ' + GENERIC_ERROR_MESSAGE,\n details: error,\n });\n });\n } else {\n return Promise.reject({\n message: 'Tablet cell has no leading peer. No information to show.',\n details: {},\n });\n }\n}\n\nfunction loadCellAttributes({id, attributes, tablePath, unorderedDynamicTable}) {\n if (attributes.cell_id) {\n return ytApiV3Id\n .get(YTApiId.tabletCellAttributes, {\n path: '//sys/tablet_cells/' + attributes.cell_id + '/@',\n })\n .then((tabletCellAttributes) => {\n const cellLeadingPeer = find_(\n tabletCellAttributes.peers,\n (peer) => peer.state === 'leading',\n );\n let tabletPath;\n\n if (id && cellLeadingPeer) {\n tabletPath = `//sys/cluster_nodes/${cellLeadingPeer.address}/orchid/tablet_cells/${attributes.cell_id}/tablets/${id}`;\n }\n\n return {\n id,\n attributes,\n tablePath,\n tabletCellAttributes,\n cellLeadingPeer,\n tabletPath,\n unorderedDynamicTable,\n };\n })\n .catch((error) => {\n return Promise.reject({\n message:\n \"Could not load tablet's tablet cell attributes.\" + GENERIC_ERROR_MESSAGE,\n details: error,\n });\n });\n } else {\n return Promise.reject({\n message: 'Tablet is not mounted. No information to show.',\n details: {},\n });\n }\n}\n\nfunction loadTableAttributes({id, attributes}) {\n return ytApiV3Id\n .get(YTApiId.tabletTableAttributes, {\n path: '#' + attributes.table_id + '/@',\n attributes: ['path', 'sorted', 'type', 'dynamic'],\n })\n .catch((error) => {\n return Promise.reject({\n message: \"Could not load tablet's table attributes. \" + GENERIC_ERROR_MESSAGE,\n details: error,\n });\n })\n .then((tableAttributes) => {\n const tablePath = ypath.getValue(tableAttributes, '/path');\n\n return {\n id,\n attributes,\n tablePath,\n unorderedDynamicTable: isUnorderedDynamicTable(tableAttributes),\n };\n });\n}\n\nfunction loadAttributes(id) {\n return ytApiV3Id\n .get(YTApiId.tabletAttribute, {path: '//sys/tablets/' + id + '/@'})\n .then((attributes) => {\n return {id, attributes};\n })\n .catch((error) => {\n return Promise.reject({\n message: 'Could not load tablet attributes. ' + GENERIC_ERROR_MESSAGE,\n details: error,\n });\n });\n}\n\nexport function loadTabletData(id) {\n return (dispatch) => {\n dispatch({type: LOAD_TABLET_DATA.REQUEST});\n\n return loadAttributes(id)\n .then(loadTableAttributes)\n .then(loadCellAttributes)\n .then(loadPartitions)\n .then((data) => {\n dispatch({\n type: LOAD_TABLET_DATA.SUCCESS,\n data,\n });\n })\n .catch((error) => {\n if (error.code !== yt.codes.CANCELLED) {\n dispatch({\n type: LOAD_TABLET_DATA.FAILURE,\n data: {error},\n });\n }\n });\n };\n}\n\nexport function changeContentMode(contentMode) {\n return {\n type: CHANGE_CONTENT_MODE,\n data: {contentMode},\n };\n}\n\nexport function changeActiveHistogram(activeHistogram) {\n return {\n type: CHANGE_ACTIVE_HISTOGRAM,\n data: {activeHistogram},\n };\n}\n\nexport function abortAndReset() {\n return (dispatch) => {\n requests.removeAllRequests();\n dispatch({type: LOAD_TABLET_DATA.CANCELLED});\n };\n}\n\nfunction isUnorderedDynamicTable(attributes) {\n const type = ypath.getValue(attributes, '/type');\n const dynamic = type === 'table' && ypath.getValue(attributes, '/dynamic');\n return dynamic && !ypath.getValue(attributes, '/sorted');\n}\n","export const partitionsTableItems = {\n index: {\n sort: true,\n caption: '#',\n align: 'right',\n get(partition) {\n return partition.index;\n },\n },\n state: {\n align: 'center',\n sort(partition) {\n return {\n normal: 0,\n splitting: 1,\n merging: 2,\n compacting: 3,\n sampling: 4,\n partitioning: 5,\n }[partition.state];\n },\n get(partition) {\n return partition.state;\n },\n },\n unmerged_row_count: {\n sort: true,\n align: 'right',\n get(partition) {\n return partition.unmergedRows;\n },\n },\n uncompressed_data_size: {\n sort: true,\n align: 'right',\n get(partition) {\n return partition.uncompressed;\n },\n },\n compressed_data_size: {\n sort: true,\n align: 'right',\n get(partition) {\n return partition.compressed;\n },\n },\n store_count: {\n sort: true,\n align: 'right',\n get(partition) {\n return partition.storeCount;\n },\n },\n sample_key_count: {\n sort: true,\n align: 'right',\n get(partition) {\n return partition.sampleKeyCount;\n },\n },\n pivot_key: {\n sort: false,\n align: 'left',\n get(partition) {\n return partition.pivotKey;\n },\n },\n actions: {\n caption: '',\n align: 'right',\n sort: false,\n },\n};\n\nexport const storesTableItems = {\n id: {\n align: 'left',\n show: true,\n sort(store) {\n return store.$value;\n },\n get(store) {\n return store.$value;\n },\n },\n store_state: {\n align: 'center',\n sort: true,\n show: true,\n get(store) {\n return store.storeState;\n },\n },\n row_count: {\n align: 'left',\n sort: true,\n show: true,\n get(store) {\n return store.rowCount;\n },\n },\n attributes: {\n caption: '',\n align: 'left',\n sort: false,\n },\n};\n","import mapValues_ from 'lodash/mapValues';\nimport map_ from 'lodash/map';\n\nimport hammer from '../../../common/hammer';\nimport {createSelector} from 'reselect';\nimport {histogramItems} from '../../../utils/tablet/tablet';\nimport {partitionsTableItems} from '../../../utils/tablet/table';\nimport {TABLET_PARTITIONS_TABLE_ID} from '../../../constants/tablet';\n\nconst getRawPartitions = (state) => state.tablet.tablet.partitions;\nconst getSortState = (state) => state.tables[TABLET_PARTITIONS_TABLE_ID];\nexport const getActiveHistogram = (state) => state.tablet.tablet.activeHistogram;\n\nexport const getSortedPartitions = createSelector(\n [getRawPartitions, getSortState],\n (partitions, sortState) => hammer.utils.sort(partitions, sortState, partitionsTableItems),\n);\n\nexport const getPartitions = createSelector(getSortedPartitions, (sortedPartitions) => {\n const aggregation = hammer.aggregation.prepare(sortedPartitions, [\n {name: 'stores', type: 'concat-array'},\n {name: 'storeCount', type: 'sum'},\n {name: 'unmergedRows', type: 'sum'},\n {name: 'uncompressed', type: 'sum'},\n {name: 'compressed', type: 'sum'},\n {name: 'sampleKeyCount', type: 'sum'},\n ])[0];\n\n aggregation.index = -2;\n\n return [aggregation, ...sortedPartitions];\n});\n\nconst getHistograms = createSelector(getRawPartitions, (partitions) =>\n mapValues_(histogramItems, (settings, key) => {\n const partitionsWithoutEden = partitions.slice(1);\n\n return {\n ...settings,\n dataSource: 'partitions',\n dataFormat: settings.format,\n caption: hammer.format['ReadableField'](key),\n dataName: settings.dataName || hammer.format['ReadableField'](key, {caps: 'none'}),\n data: map_(partitionsWithoutEden, partitionsTableItems[key].get),\n };\n }),\n);\n\nexport const getHistogram = createSelector(\n [getHistograms, getActiveHistogram],\n (histograms, activeHistogram) => histograms[activeHistogram],\n);\n","import ypath from '@ytsaurus/interface-helpers/lib/ypath';\n\nexport default class Store {\n constructor(data) {\n this.$value = data.$value;\n this.$attributes = data.$attributes;\n\n this.rowCount = Number(ypath.getValue(this.$attributes, '/row_count'));\n this.storeState = ypath.getValue(this.$attributes, '/store_state');\n\n // Dynamic\n this.poolSize = Number(ypath.getValue(this.$attributes, '/pool_size'));\n this.poolCapacity = Number(ypath.getValue(this.$attributes, '/pool_capacity'));\n this.lockCount = Number(ypath.getValue(this.$attributes, '/lock_count'));\n this.valueCount = Number(ypath.getValue(this.$attributes, '/value_count'));\n this.flushState = ypath.getValue(this.$attributes, '/flush_state');\n\n // Persistent\n this.uncompressed = Number(ypath.getValue(this.$attributes, '/uncompressed_data_size'));\n this.compressed = Number(ypath.getValue(this.$attributes, '/compressed_data_size'));\n this.compactionState = ypath.getValue(this.$attributes, '/compaction_state');\n this.preloadState = ypath.getValue(this.$attributes, '/preload_state');\n }\n}\n","import ypath from '@ytsaurus/interface-helpers/lib/ypath';\n\nimport map_ from 'lodash/map';\n\nimport Store from '../../utils/tablet/store';\n\nexport function prepareRelativePath(partitionIndex, storeId) {\n return (\n (partitionIndex === -1 ? '/eden' : '/partitions/' + partitionIndex) +\n '/stores' +\n (typeof storeId !== 'undefined' ? '/' + storeId : '')\n );\n}\n\nexport function preparePath(tabletPath, partitionIndex, storeId) {\n return tabletPath + prepareRelativePath(partitionIndex, storeId);\n}\n\nexport function prepareStores(stores, storesId) {\n return map_(\n stores,\n (store, index) =>\n new Store({\n $value: storesId[index],\n $attributes: ypath.getValue(stores[index], ''),\n }),\n );\n}\n","import yt from '@ytsaurus/javascript-wrapper/lib/yt';\n\nimport map_ from 'lodash/map';\n\nimport CancelHelper from '../../../utils/cancel-helper';\nimport {TYPED_OUTPUT_FORMAT} from '../../../constants/index';\nimport {LOAD_STORES} from '../../../constants/tablet';\nimport {preparePath, prepareStores} from '../../../utils/tablet/stores';\nimport {YTApiId, ytApiV3Id} from '../../../rum/rum-wrap-api';\nimport {splitBatchResults} from '../../../utils/utils';\n\nconst requests = new CancelHelper();\n\nexport function loadStoresData(storesId, index, unorderedDynamicTable) {\n return (dispatch, getState) => {\n dispatch({type: LOAD_STORES.REQUEST});\n\n const {tabletPath} = getState().tablet.tablet;\n\n const requests = map_(storesId, (storeId) => {\n const path = unorderedDynamicTable\n ? tabletPath + '/stores/' + storeId\n : preparePath(tabletPath, index, storeId);\n return {\n command: 'get',\n parameters: {\n path,\n },\n };\n });\n\n return ytApiV3Id\n .executeBatch(YTApiId.tabletStoresByIds, {\n parameters: {requests, output_format: TYPED_OUTPUT_FORMAT},\n })\n .then((data) => {\n const {error, results} = splitBatchResults(data, 'Failed to fetch stores');\n if (error) {\n return Promise.reject(error);\n }\n dispatch({\n type: LOAD_STORES.SUCCESS,\n data: {\n stores: prepareStores(results, storesId),\n },\n });\n })\n .catch((error) => {\n if (error.code !== yt.codes.CANCELLED) {\n dispatch({\n type: LOAD_STORES.FAILURE,\n data: {error},\n });\n }\n });\n };\n}\n\nexport function abortAndReset() {\n return (dispatch) => {\n requests.removeAllRequests();\n dispatch({type: LOAD_STORES.CANCELLED});\n };\n}\n","import hammer from '../../../common/hammer';\nimport {createSelector} from 'reselect';\nimport {storesTableItems} from '../../../utils/tablet/table';\nimport {TABLET_PARTITION_STORES_TABLE_ID} from '../../../constants/tablet';\n\nconst getRawStores = (state) => state.tablet.stores.stores;\nconst getSortState = (state) => state.tables[TABLET_PARTITION_STORES_TABLE_ID];\n\nexport const getStores = createSelector([getRawStores, getSortState], (stores, sortState) =>\n hammer.utils.sort(stores, sortState, storesTableItems),\n);\n","import React, {Component} from 'react';\nimport {connect} from 'react-redux';\nimport PropTypes from 'prop-types';\nimport cn from 'bem-cn-lite';\nimport hammer from '../../../common/hammer';\n\nimport Label from '../../../components/Label/Label';\nimport {Loader} from '@gravity-ui/uikit';\nimport {FormattedId} from '../../../components/formatters';\nimport MetaTable from '../../../components/MetaTable/MetaTable';\nimport ElementsTable from '../../../components/ElementsTable/ElementsTable';\nimport ErrorBoundary from '../../../components/ErrorBoundary/ErrorBoundary';\nimport LoadDataHandler from '../../../components/LoadDataHandler/LoadDataHandler';\n\nimport {abortAndReset, loadStoresData} from '../../../store/actions/tablet/stores';\nimport {TABLET_PARTITION_STORES_TABLE_ID} from '../../../constants/tablet';\nimport {storesTableItems} from '../../../utils/tablet/table';\nimport {getStores} from '../../../store/selectors/tablet/stores';\n\nimport './Stores.scss';\n\nconst block = cn('tablet-stores');\n\nconst PRELOAD_STATE_TO_THEME = {\n scheduled: 'warning',\n running: 'warning',\n complete: 'success',\n failed: 'danger',\n};\n\nconst FLUSH_STATE_TO_THEME = {\n complete: 'success',\n none: 'success',\n running: 'warning',\n};\n\nfunction stateToTheme(state, theme) {\n return theme[state] || 'default';\n}\n\nclass Stores extends Component {\n static propTypes = {\n // from parent\n index: PropTypes.number.isRequired,\n storesId: PropTypes.arrayOf(PropTypes.string).isRequired,\n stores: PropTypes.arrayOf(PropTypes.object).isRequired,\n\n // from connect\n loading: PropTypes.bool.isRequired,\n loaded: PropTypes.bool.isRequired,\n error: PropTypes.bool.isRequired,\n errorData: PropTypes.object.isRequired,\n\n loadStoresData: PropTypes.func.isRequired,\n abortAndReset: PropTypes.func.isRequired,\n\n unorderedDynamicTable: PropTypes.bool,\n };\n\n static renderStoreState(state) {\n return typeof state !== 'undefined' ? (\n <Label theme=\"success\" text={state} />\n ) : (\n hammer.format.NO_VALUE\n );\n }\n\n static renderPreloadState(state) {\n if (!state) {\n return hammer.format.NO_VALUE;\n }\n\n const theme = stateToTheme(state, PRELOAD_STATE_TO_THEME);\n return <Label theme={theme} text={state} />;\n }\n\n static renderFlushState(state) {\n if (!state) {\n return hammer.format.NO_VALUE;\n }\n\n const theme = stateToTheme(state, FLUSH_STATE_TO_THEME);\n return <Label theme={theme} text={state} />;\n }\n\n static renderAsId(store, columnName) {\n const id = storesTableItems[columnName].get(store);\n return <FormattedId id={id} />;\n }\n\n static renderAsState(store, columnName) {\n const state = storesTableItems[columnName].get(store);\n return Stores.renderStoreState(state);\n }\n\n static renderAsNumber(store, columnName) {\n const data = storesTableItems[columnName].get(store);\n return hammer.format['Number'](data);\n }\n\n static renderAsAttributes(store) {\n const dynamicStore = store.storeState.indexOf('dynamic') !== -1;\n const persistentStore = store.storeState.indexOf('persistent') !== -1;\n\n return (\n <MetaTable\n items={[\n {\n key: 'lock_count',\n value: hammer.format['Number'](store.lockCount),\n visible: dynamicStore,\n },\n {\n key: 'value_count',\n value: hammer.format['Number'](store.valueCount),\n visible: dynamicStore,\n },\n {\n key: 'pool_size',\n value: hammer.format['Bytes'](store.poolSize),\n visible: dynamicStore,\n },\n {\n key: 'pool_capacity',\n value: hammer.format['Bytes'](store.poolCapacity),\n visible: dynamicStore,\n },\n {\n key: 'flush_state',\n value: Stores.renderFlushState(store.flushState),\n visible: dynamicStore,\n },\n\n {\n key: 'uncompressed_data_size',\n value: hammer.format['Bytes'](store.uncompressed),\n visible: persistentStore,\n },\n {\n key: 'compressed_data_size',\n value: hammer.format['Bytes'](store.compressed),\n visible: persistentStore,\n },\n {\n key: 'compaction_state',\n value: Stores.renderFlushState(store.compactionState),\n visible: persistentStore,\n },\n {\n key: 'preload_state',\n value: Stores.renderPreloadState(store.preloadState),\n visible: persistentStore,\n },\n ]}\n />\n );\n }\n\n componentDidMount() {\n const {index, storesId, loadStoresData, unorderedDynamicTable} = this.props;\n\n loadStoresData(storesId, index, unorderedDynamicTable);\n }\n\n componentDidUpdate(prevProps) {\n const {index, storesId, loadStoresData, unorderedDynamicTable} = this.props;\n\n if (prevProps.index !== index) {\n loadStoresData(storesId, index, unorderedDynamicTable);\n }\n }\n\n componentWillUnmount() {\n this.props.abortAndReset();\n }\n\n get tableSets() {\n return {\n default: {\n items: ['id', 'store_state', 'row_count', 'attributes'],\n },\n };\n }\n\n get tableSettings() {\n return {\n css: 'tablet-partitions-stores',\n theme: 'light',\n cssHover: true,\n striped: false,\n virtual: false,\n tableId: TABLET_PARTITION_STORES_TABLE_ID,\n columns: {\n items: storesTableItems,\n sets: this.tableSets,\n mode: 'default',\n },\n templates: {\n id: Stores.renderAsId,\n store_state: Stores.renderAsState,\n row_count: Stores.renderAsNumber,\n attributes: Stores.renderAsAttributes,\n },\n computeKey: function (store) {\n return store.$value;\n },\n };\n }\n\n render() {\n const {loading, loaded, error, errorData, stores} = this.props;\n\n return (\n <div className={block({loading})}>\n <ErrorBoundary>\n <LoadDataHandler loaded={loaded} error={error} errorData={errorData}>\n {loading ? (\n <Loader />\n ) : (\n <ElementsTable {...this.tableSettings} items={stores} />\n )}\n </LoadDataHandler>\n </ErrorBoundary>\n </div>\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n const {loading, loaded, error, errorData} = state.tablet.stores;\n const stores = getStores(state);\n\n return {loading, loaded, error, errorData, stores};\n};\n\nconst mapDispatchToProps = {\n loadStoresData,\n abortAndReset,\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Stores);\n","import React from 'react';\n\nimport {DialogWrapper as Dialog} from '../../../components/DialogWrapper/DialogWrapper';\nimport Stores from './Stores';\n\ninterface Props {\n visible: boolean;\n unorderedDynamicTable?: boolean;\n stores: Array<string>;\n index: number;\n\n onClose: () => void;\n}\n\nfunction StoresDialog(props: Props) {\n const {visible, unorderedDynamicTable, stores, index, onClose} = props;\n const title = unorderedDynamicTable\n ? '/stores'\n : index === -1\n ? '/eden/stores'\n : `partitions/${index}/stores`;\n\n return (\n <Dialog open={visible} onClose={onClose} hasCloseButton>\n <Dialog.Header caption={title} />\n <Dialog.Body>\n <Stores\n storesId={stores}\n index={index}\n unorderedDynamicTable={unorderedDynamicTable}\n />\n </Dialog.Body>\n </Dialog>\n );\n}\n\nexport default React.memo(StoresDialog);\n","import {Sticky, StickyContainer} from 'react-sticky';\nimport React, {Component} from 'react';\nimport {connect} from 'react-redux';\nimport hammer from '../../../common/hammer';\nimport PropTypes from 'prop-types';\nimport unipika from '../../../common/thor/unipika';\nimport cn from 'bem-cn-lite';\n\nimport keys_ from 'lodash/keys';\n\nimport {Button} from '@gravity-ui/uikit';\n\nimport ClickableAttributesButton from '../../../components/AttributesButton/ClickableAttributesButton';\nimport ElementsTable from '../../../components/ElementsTable/ElementsTable';\nimport ErrorBoundary from '../../../components/ErrorBoundary/ErrorBoundary';\nimport RadioButton from '../../../components/RadioButton/RadioButton';\nimport {FormattedText} from '../../../components/formatters';\nimport Label from '../../../components/Label/Label';\n\nimport {TABLET_PARTITIONS_TABLE_ID} from '../../../constants/tablet';\nimport {changeContentMode} from '../../../store/actions/tablet/tablet';\nimport {getPartitions} from '../../../store/selectors/tablet/tablet';\nimport {partitionsTableItems} from '../../../utils/tablet/table';\nimport {HEADER_HEIGHT} from '../../../constants/index';\nimport StoresDialog from './StoresDialog';\n\nconst headingBlock = cn('elements-heading');\n\nclass Partitions extends Component {\n static propTypes = {\n // from parent\n block: PropTypes.func.isRequired,\n\n // from connect\n contentMode: PropTypes.string.isRequired,\n partitions: PropTypes.array.isRequired,\n tabletPath: PropTypes.string,\n\n changeContentMode: PropTypes.func.isRequired,\n };\n\n static renderIndex(item, columnName) {\n const index = partitionsTableItems[columnName].get(item);\n\n if (index === -1) {\n return 'Eden';\n } else if (index === -2) {\n return 'Aggregation';\n } else {\n return hammer.format['Number'](index);\n }\n }\n\n static renderState(item, columnName) {\n const state = partitionsTableItems[columnName].get(item);\n const theme = {\n normal: 'success',\n splitting: 'warning',\n merging: 'warning',\n compacting: 'warning',\n sampling: 'warning',\n partitioning: 'warning',\n }[state];\n\n return typeof state !== 'undefined' ? (\n <Label theme={theme} text={state} />\n ) : (\n hammer.format.NO_VALUE\n );\n }\n\n static renderAsBytes(item, columnName) {\n const data = partitionsTableItems[columnName].get(item);\n return hammer.format['Bytes'](data);\n }\n\n static renderAsNumber(item, columnName) {\n const data = partitionsTableItems[columnName].get(item);\n return hammer.format['Number'](data);\n }\n\n static renderPivotKey(item, columnName) {\n const pivotKey = partitionsTableItems[columnName].get(item);\n const unipikaClassName = 'unipika-wrapper unipika-wrapper_inline_yes';\n const unipikaSettings = {break: false, indent: 0};\n const text = unipika.prettyprint(pivotKey, unipikaSettings);\n const title = unipika.prettyprint(pivotKey, {\n ...unipikaSettings,\n asHTML: false,\n });\n\n return typeof pivotKey !== 'undefined' ? (\n <FormattedText asHTML className={unipikaClassName} text={text} title={title} />\n ) : (\n hammer.format.NO_VALUE\n );\n }\n\n state = {\n stores: {},\n };\n\n renderStores = (item) => {\n const storeCount = item.storeCount;\n const partitionIndex = item.index;\n const onClick = () => this.handleShowStores(item);\n\n return (\n <span>\n {partitionIndex >= -1 && storeCount > 0 && (\n <Button view=\"flat-secondary\" size=\"m\" onClick={onClick}>\n View\n </Button>\n )}\n {hammer.format['Number'](storeCount)}\n </span>\n );\n };\n\n renderActions = (item) => {\n const {tabletPath} = this.props;\n const partitionIndex = item.index;\n const path =\n tabletPath + (partitionIndex === -1 ? '/eden' : '/partitions/' + partitionIndex);\n\n return (\n partitionIndex >= -1 && (\n <ClickableAttributesButton\n title={String(partitionIndex)}\n exactPath={path}\n withTooltip\n />\n )\n );\n };\n\n get tableSets() {\n return {\n default: {\n items: [\n 'index',\n 'state',\n 'unmerged_row_count',\n 'uncompressed_data_size',\n 'compressed_data_size',\n 'store_count',\n 'sample_key_count',\n 'actions',\n ],\n },\n keys: {\n items: ['index', 'pivot_key', 'actions'],\n },\n };\n }\n\n get tableSettings() {\n const {contentMode, block} = this.props;\n\n return {\n css: block(),\n theme: 'light',\n cssHover: true,\n striped: false,\n tableId: TABLET_PARTITIONS_TABLE_ID,\n columns: {\n items: partitionsTableItems,\n sets: this.tableSets,\n mode: contentMode,\n },\n templates: {\n index: Partitions.renderIndex,\n state: Partitions.renderState,\n unmerged_row_count: Partitions.renderAsNumber,\n uncompressed_data_size: Partitions.renderAsBytes,\n compressed_data_size: Partitions.renderAsBytes,\n store_count: this.renderStores,\n sample_key_count: Partitions.renderAsNumber,\n pivot_key: Partitions.renderPivotKey,\n actions: this.renderActions,\n },\n computeKey(tablet) {\n return tablet.index;\n },\n itemMods(tablet) {\n if (tablet.index === -1) {\n return {\n eden: 'yes',\n };\n } else if (tablet.index === -2) {\n return {\n aggregation: 'yes',\n };\n }\n },\n };\n }\n\n handleModeChange = (evt) => this.props.changeContentMode(evt.target.value);\n handleCloseStores = () => this.setState({stores: {}});\n handleShowStores = (stores) => this.setState({stores});\n\n renderStoresDialog() {\n const visible = keys_(this.state.stores).length > 0;\n\n if (!visible) {\n return null;\n }\n\n const {block, unorderedDynamicTable} = this.props;\n const {stores, index} = this.state.stores;\n\n return (\n <StoresDialog\n unorderedDynamicTable={unorderedDynamicTable}\n block={block}\n stores={stores}\n index={index}\n visible={true}\n onClose={this.handleCloseStores}\n />\n );\n }\n\n renderTableOverview() {\n const {contentMode, block} = this.props;\n\n return (\n <Sticky topOffset={-HEADER_HEIGHT}>\n {({isSticky}) => (\n <div\n className={block('table-overview', {\n sticky: isSticky,\n })}\n >\n <RadioButton\n size=\"m\"\n value={contentMode}\n onChange={this.handleModeChange}\n name=\"tablet-partitions-content-mode\"\n items={[\n {value: 'default', text: 'Default'},\n {value: 'keys', text: 'Keys'},\n ]}\n />\n </div>\n )}\n </Sticky>\n );\n }\n\n renderPartitions() {\n const {partitions} = this.props;\n\n return (\n <ErrorBoundary>\n <div className={headingBlock({size: 'm'})}>Partitions</div>\n\n <StickyContainer>\n {this.renderTableOverview()}\n\n <ElementsTable {...this.tableSettings} items={partitions} />\n </StickyContainer>\n </ErrorBoundary>\n );\n }\n\n render() {\n const {block, unorderedDynamicTable} = this.props;\n\n return (\n <div className={block('partitions')}>\n {unorderedDynamicTable ? null : this.renderPartitions()}\n {this.renderStoresDialog()}\n </div>\n );\n }\n}\n\nconst mapDispatchToProps = {\n changeContentMode,\n};\n\nconst mapStateToProps = (state) => {\n const {contentMode, tabletPath, unorderedDynamicTable} = state.tablet.tablet;\n const partitions = getPartitions(state);\n\n return {contentMode, tabletPath, partitions, unorderedDynamicTable};\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Partitions);\n","import {useDispatch, useSelector} from 'react-redux';\nimport React, {useCallback, useState} from 'react';\nimport hammer from '../../../common/hammer';\nimport PropTypes from 'prop-types';\nimport ypath from '@ytsaurus/interface-helpers/lib/ypath';\n\nimport keys_ from 'lodash/keys';\nimport map_ from 'lodash/map';\n\nimport {Button} from '@gravity-ui/uikit';\nimport {DialogWrapper as Dialog} from '../../../components/DialogWrapper/DialogWrapper';\n\nimport ErrorBoundary from '../../../components/ErrorBoundary/ErrorBoundary';\nimport MetaTable, {Template} from '../../../components/MetaTable/MetaTable';\nimport Histogram from '../../../components/Histogram/Histogram';\nimport {size} from '../../../components/MetaTable/presets';\nimport Error from '../../../components/Error/Error';\nimport Label from '../../../components/Label/Label';\nimport Yson from '../../../components/Yson/Yson';\n\nimport {histogramItems} from '../../../utils/tablet/tablet';\nimport {getActiveHistogram, getHistogram} from '../../../store/selectors/tablet/tablet';\nimport {changeActiveHistogram} from '../../../store/actions/tablet/tablet';\nimport {Tab as NavigationTab} from '../../../constants/navigation';\nimport {Page} from '../../../constants/index';\nimport {genTabletCellBundlesCellUrl} from '../../../utils/tablet_cell_bundles';\nimport StoresDialog from './StoresDialog';\nimport {Tooltip} from '../../../components/Tooltip/Tooltip';\nimport {makeComponentsNodesUrl} from '../../../utils/app-url';\n\nfunction makeMetaItem(format, data, key, visible) {\n return {\n key,\n value: hammer.format[format](data[key]),\n visible,\n };\n}\n\nOverview.propTypes = {\n // from parent\n id: PropTypes.string.isRequired,\n block: PropTypes.func.isRequired,\n};\n\nconst renderErrorsDialog = (errors, handleClose) => {\n const visible = errors.length > 0;\n\n return (\n <Dialog size=\"l\" open={visible} onClose={handleClose} hasButtonClose autoclosable>\n <Dialog.Header caption=\"Tablet errors\" />\n <Dialog.Body>\n {map_(errors, (err, index) => {\n const error = {\n ...err,\n message: ypath.getValue(err, '/message'),\n };\n return <Error error={error} key={index} />;\n })}\n </Dialog.Body>\n </Dialog>\n );\n};\n\nconst renderReplicationErrorsDialog = (replicationErrors, handleClose) => {\n const visible = keys_(replicationErrors).length > 0;\n\n return (\n <Dialog size=\"l\" open={visible} onClose={handleClose} hasButtonClose autoclosable>\n <Dialog.Header caption=\"Replication errors\" />\n <Dialog.Body>\n {map_(replicationErrors, (err, replica) => {\n const error = {\n ...err,\n message: ypath.getValue(err, '/message'),\n };\n const message = `Replica ID: ${replica}`;\n return <Error message={message} error={error} key={replica} />;\n })}\n </Dialog.Body>\n </Dialog>\n );\n};\n\nfunction Overview({id, block}) {\n const dispatch = useDispatch();\n const {\n attributes,\n cellLeadingPeer,\n tablePath,\n tabletPath,\n tabletErrors,\n replicationErrors,\n pivotKey,\n nextPivotKey,\n stores,\n unorderedDynamicTable,\n } = useSelector((state) => state.tablet.tablet);\n\n const {mediumList, cluster} = useSelector((state) => state.global);\n const [errors, setErrorsVisibility] = useState([]);\n const [replicaErrors, setReplicationErrorsVisibility] = useState({});\n\n const [cellId, state, index, statistics, performance] = ypath.getValues(attributes, [\n '/cell_id',\n '/state',\n '/index',\n '/statistics',\n '/performance_counters',\n ]);\n const [unmergedRowCount, chunkCount] = ypath.getValues(statistics, [\n '/unmerged_row_count',\n '/chunk_count',\n ]);\n\n const [storesVisible, setStoresVisible] = React.useState(false);\n const toggleStoresVisibility = React.useCallback(() => {\n setStoresVisible(!storesVisible);\n }, [stores, setStoresVisible, storesVisible]);\n\n const resourcesMeta = !statistics\n ? []\n : [\n makeMetaItem('Number', statistics, 'partition_count', !unorderedDynamicTable),\n {\n key: 'store_count',\n value: (() => {\n const disableStoresDialog = statistics.store_count >= 200;\n return (\n <span>\n {hammer.format.Number(statistics.store_count)}\n {unorderedDynamicTable && (\n <>\n &nbsp;&nbsp;\n <Tooltip\n disabled={!disableStoresDialog}\n content=\"Too many stores to show\"\n >\n <Button\n disabled={disableStoresDialog}\n view=\"flat-secondary\"\n onClick={toggleStoresVisibility}\n >\n View\n </Button>\n </Tooltip>\n </>\n )}\n </span>\n );\n })(),\n },\n makeMetaItem('Number', statistics, 'overlapping_store_count', !unorderedDynamicTable),\n makeMetaItem('Number', statistics, 'preload_completed_store_count'),\n makeMetaItem('Number', statistics, 'preload_failed_store_count'),\n makeMetaItem('Number', statistics, 'preload_pending_store_count'),\n ];\n\n const performanceMeta = !performance\n ? []\n : [\n makeMetaItem('Number', performance, 'dynamic_row_read_rate'),\n makeMetaItem('Number', performance, 'dynamic_row_lookup_rate'),\n makeMetaItem('Number', performance, 'dynamic_row_write_rate'),\n makeMetaItem('Number', performance, 'dynamic_row_delete_rate'),\n makeMetaItem('Number', performance, 'static_chunk_row_read_rate'),\n makeMetaItem('Number', performance, 'static_chunk_row_lookup_rate'),\n makeMetaItem('Number', performance, 'unmerged_row_read_rate', !unorderedDynamicTable),\n makeMetaItem('Number', performance, 'merged_row_read_rate', !unorderedDynamicTable),\n ];\n\n const stateTheme = {\n none: 'default',\n unmounted: 'default',\n mounted: 'info',\n frozen: 'info',\n freezing: 'warning',\n unfreezing: 'warning',\n mounting: 'warning',\n unmounting: 'warning',\n mixed: 'danger',\n }[state];\n\n const activeHistogram = useSelector(getActiveHistogram);\n const histogram = useSelector(getHistogram);\n\n const handleHistogramChange = useCallback(\n (histogram) => dispatch(changeActiveHistogram(histogram)),\n [dispatch, activeHistogram],\n );\n const handleErrorsClick = useCallback(() => setErrorsVisibility(tabletErrors), [tabletErrors]);\n const handleReplicationErrorsClick = useCallback(\n () => setReplicationErrorsVisibility(replicationErrors),\n [replicationErrors],\n );\n\n const handleErrorsCloseClick = useCallback(() => setErrorsVisibility([]), []);\n const handleReplicationErrorsCloseClick = useCallback(\n () => setReplicationErrorsVisibility({}),\n [],\n );\n\n return (\n <ErrorBoundary>\n {storesVisible && (\n <StoresDialog\n visible={true}\n onClose={toggleStoresVisibility}\n index={0}\n unorderedDynamicTable={unorderedDynamicTable}\n stores={Object.keys(stores)}\n />\n )}\n <div className={block('overview')}>\n <div className={block('meta')}>\n <MetaTable\n items={[\n [\n {\n key: 'id',\n value: <Template.Id id={id} />,\n },\n {\n key: 'tablet_cell_id',\n label: 'Tablet cell id',\n value: (\n <Template.Link\n withClipboard\n text={cellId}\n shiftText={tabletPath}\n hoverContent={'Hold SHIFT-key to copy full path'}\n url={genTabletCellBundlesCellUrl(cellId, cluster)}\n />\n ),\n },\n {\n key: 'table_path',\n value: (\n <Template.Link\n withClipboard\n text={tablePath}\n url={`/${cluster}/${Page.NAVIGATION}?path=${tablePath}&mode=${NavigationTab.TABLETS}`}\n />\n ),\n },\n {\n key: 'tablet cell leader node',\n value: (\n <Template.Link\n withClipboard\n text={cellLeadingPeer.address}\n url={makeComponentsNodesUrl({\n cluster,\n host: cellLeadingPeer.address,\n })}\n />\n ),\n visible: Boolean(cellLeadingPeer),\n },\n {\n key: 'errors',\n value: (\n <span>\n {hammer.format['Number'](tabletErrors.length)}\n <Button\n view=\"flat-secondary\"\n size=\"m\"\n onClick={handleErrorsClick}\n >\n View\n </Button>\n </span>\n ),\n visible: tabletErrors.length > 0,\n },\n {\n key: 'replication_errors',\n value: (\n <span>\n {hammer.format['Number'](\n keys_(replicationErrors).length,\n )}\n <Button\n view=\"flat-secondary\"\n size=\"m\"\n onClick={handleReplicationErrorsClick}\n >\n View\n </Button>\n </span>\n ),\n visible: keys_(replicationErrors).length > 0,\n },\n {\n key: 'state',\n value: (\n <Label\n theme={stateTheme}\n text={hammer.format['ReadableField'](state)}\n />\n ),\n },\n {\n key: 'index',\n value: hammer.format['Number'](index),\n },\n {\n key: 'pivot_key',\n value: (\n <Yson\n value={pivotKey}\n settings={{\n indent: 0,\n break: false,\n }}\n />\n ),\n visible: Boolean(pivotKey),\n },\n {\n key: 'next_pivot_key',\n value: (\n <Yson\n value={nextPivotKey}\n settings={{\n indent: 0,\n break: false,\n }}\n />\n ),\n visible: Boolean(nextPivotKey),\n },\n ],\n [\n {\n key: 'unmerged_row_count',\n value: hammer.format['Number'](unmergedRowCount),\n visible: !unorderedDynamicTable,\n },\n {\n key: 'chunks',\n value: hammer.format['Number'](chunkCount),\n },\n ...size(statistics, mediumList),\n ],\n ]}\n />\n\n <MetaTable items={[performanceMeta, resourcesMeta]} />\n </div>\n\n {!unorderedDynamicTable && (\n <Histogram\n handleHistogramChange={handleHistogramChange}\n activeHistogram={activeHistogram}\n histogramItems={histogramItems}\n histogram={histogram}\n />\n )}\n\n {renderErrorsDialog(errors, handleErrorsCloseClick)}\n {renderReplicationErrorsDialog(replicaErrors, handleReplicationErrorsCloseClick)}\n </div>\n </ErrorBoundary>\n );\n}\n\nexport default Overview;\n","import {useDispatch, useSelector} from 'react-redux';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport cn from 'bem-cn-lite';\n\nimport LoadDataHandler from '../../../components/LoadDataHandler/LoadDataHandler';\nimport {Loader} from '@gravity-ui/uikit';\n\nimport Partitions from './Partitions';\nimport Overview from './Overview';\n\nimport {abortAndReset, loadTabletData} from '../../../store/actions/tablet/tablet';\nimport {useUpdater} from '../../../hooks/use-updater';\n\nimport './TabletDetails.scss';\n\nconst block = cn('tablet-details');\n\nTabletDetails.propTypes = {\n // from react-router\n match: PropTypes.shape({\n params: PropTypes.shape({\n id: PropTypes.string.isRequired,\n }),\n }),\n};\n\nfunction TabletDetails({match}) {\n const dispatch = useDispatch();\n\n const {loading, loaded, error, errorData} = useSelector((state) => state.tablet.tablet);\n const {id} = match.params;\n\n const {updateFn, destructFn} = React.useMemo(() => {\n return {\n updateFn: () => dispatch(loadTabletData(id)),\n destructFn: () => dispatch(abortAndReset()),\n };\n }, [dispatch, id]);\n\n useUpdater(updateFn, {timeout: 15 * 1000, destructFn});\n\n const initialLoading = loading && !loaded;\n\n return (\n <div className={block()}>\n <div className={block('content', {loading: initialLoading})}>\n {initialLoading ? (\n <Loader />\n ) : (\n <LoadDataHandler loaded={loaded} error={error} errorData={errorData}>\n <Overview id={id} block={block} />\n <Partitions block={block} />\n </LoadDataHandler>\n )}\n </div>\n </div>\n );\n}\n\nexport default TabletDetails;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport {Route, Switch, withRouter} from 'react-router';\n\nimport ErrorBoundary from '../../components/ErrorBoundary/ErrorBoundary';\nimport TabletDetails from '../../pages/tablet/TabletDetails/TabletDetails';\n\nTablet.propTypes = {\n // from react-router\n match: PropTypes.shape({\n path: PropTypes.string.isRequired,\n }).isRequired,\n};\n\nfunction Tablet({match}) {\n return (\n <div className=\"elements-main-section\">\n <ErrorBoundary>\n <Switch>\n <Route path={`${match.path}/:id/`} component={TabletDetails} />\n </Switch>\n </ErrorBoundary>\n </div>\n );\n}\n\nexport default withRouter(Tablet);\n","import React from 'react';\nimport cn from 'bem-cn-lite';\n\nimport {RowWithName} from '../../containers/AppNavigation/TopRowContent/SectionName';\nimport {Page} from '../../constants';\nimport {EditableAsText} from '../../components/EditableAsText/EditableAsText';\nimport {getCluster} from '../../store/selectors/global';\nimport {useSelector} from 'react-redux';\nimport {useRouteMatch} from 'react-router';\n\nimport './TabletTopRowContent.scss';\nimport {Breadcrumbs, BreadcrumbsItem} from '../../components/Breadcrumbs';\nimport {getAppBrowserHistory} from '../../store/window-store';\nconst block = cn('tablet-top-row-content');\n\nfunction TabletTopRowContent() {\n return (\n <RowWithName page={Page.TABLET}>\n <TabletBreadcrumbs />\n </RowWithName>\n );\n}\n\nexport default React.memo(TabletTopRowContent);\n\nfunction TabletBreadcrumbs() {\n const {\n params: {id},\n } = useRouteMatch<{id: string}>();\n const cluster = useSelector(getCluster);\n\n const handleEdit = React.useCallback(\n (tabletId?: string) => {\n getAppBrowserHistory().push(`/${cluster}/${Page.TABLET}/${tabletId || ''}`);\n },\n [cluster],\n );\n\n return (\n <>\n <EditableAsText className={block('editable')} text={id} onChange={handleEdit}>\n <Breadcrumbs showRoot>\n <BreadcrumbsItem>{id}</BreadcrumbsItem>\n </Breadcrumbs>\n </EditableAsText>\n </>\n );\n}\n","import {Page} from '../../../shared/constants/settings';\nimport YT from '../../config/yt-config';\nimport type {Tab as NavigationTab} from '../../constants/navigation';\nimport {ValueOf} from '../../types';\n\nimport {TabletErrorsByPathState} from '../../store/reducers/navigation/tabs/tablet-errors/tablet-errors-by-path';\nimport {getNavigationParams} from '../../store/reducers/navigation/url-mapping';\nimport {makeURLSearchParams} from './utils';\n\nexport function makeNavigationLink(params: {\n path: string;\n cluster?: string;\n navmode?: ValueOf<typeof NavigationTab>;\n teMode?: 'request_errors';\n teTime?: TabletErrorsByPathState['timeRangeFilter'];\n teMethods?: Array<string>;\n}) {\n const {cluster, ...rest} = params;\n const res = `/${cluster || YT.cluster}/${Page.NAVIGATION}`;\n const search = makeURLSearchParams(rest, getNavigationParams()).toString();\n return search ? `${res}?${search}` : res;\n}\n","import {LocationParameters} from '../../store/location';\n\nexport function makeURLSearchParams<T extends object>(params: T, info: LocationParameters) {\n const res = new URLSearchParams();\n Object.keys(params).reduce((acc, k) => {\n const value = params[k as keyof T];\n if (k in info) {\n if (info[k].options?.serialize) {\n const tmp = info[k].options?.serialize?.(value);\n if (tmp !== undefined) {\n res.append(k, tmp + '');\n }\n } else {\n res.append(k, value + '');\n }\n }\n return acc;\n }, res);\n return res;\n}\n","import {Page} from '../../../shared/constants/settings';\nimport {Tab as ComponentsTab} from '../../constants/components/main';\nimport YT from '../../config/yt-config';\n\nexport * from './navigation';\n\nexport function makeComponentsNodesUrl({host, cluster}: {host?: string; cluster?: string} = {}) {\n return host\n ? `/${cluster || YT.cluster}/${Page.COMPONENTS}/${ComponentsTab.NODES}/${host}`\n : `/${cluster || YT.cluster}/${Page.COMPONENTS}/${ComponentsTab.NODES}`;\n}\n\nexport function makeProxyUrl(cluster: string, address: string) {\n return `/${cluster}/${Page.COMPONENTS}/${ComponentsTab.RPC_PROXIES}?host=${address}`;\n}\n\nexport function makeSchedulingUrl({\n pool,\n poolTree,\n cluster,\n}: {\n pool: string;\n poolTree: string;\n cluster?: string;\n}) {\n return `/${cluster || YT.cluster}/${Page.SCHEDULING}?pool=${pool}&poolTree=${poolTree}`;\n}\n\nexport function makeAccountsUrl(account: string, cluster?: string) {\n return `/${cluster || YT.cluster}/${Page.ACCOUNTS}?account=${account}`;\n}\n","import UIFactory from '../../UIFactory';\nimport {Page} from '../../constants';\nimport {TabletsTab} from '../../constants/tablets';\nimport {OrderType, multiSortWithUndefined, orderTypeToOrderK} from '../sort-helpers';\n\nexport function tabletCellBundleDashboardUrl(cluster: string, bundle: string) {\n return UIFactory.makeUrlForTabletCellBundleDashboard(cluster, bundle);\n}\n\nexport function genTabletCellBundlesCellUrl(cellId: string, cluster?: string) {\n const prefix = cluster ? `/${cluster}/` : '';\n return `${prefix}${Page.TABLET_CELL_BUNDLES}/${TabletsTab.TABLET_CELLS}?id=${cellId}`;\n}\n\nfunction compareBundlesByAccount<T extends Record<string, any>>(left: T, right: T) {\n if (\n left.changelog_account === right.changelog_account &&\n left.snapshot_account === right.snapshot_account\n ) {\n return 0;\n }\n\n return left.changelog_account < right.changelog_account\n ? -1\n : left.snapshot_account < right.snapshot_account\n ? -1\n : 1;\n}\n\nexport const sortTableBundles = <T extends Record<string, any>>({\n bundles,\n column,\n columnsSortable,\n order,\n}: {\n bundles: T[];\n column: keyof T;\n columnsSortable: Set<string>;\n order: OrderType;\n}) => {\n let sorted: T[] = [];\n\n const {orderK, undefinedOrderK} = orderTypeToOrderK(order);\n\n if (column === 'changelog_account') {\n sorted = [...bundles].sort(compareBundlesByAccount);\n } else if (column === 'nodes') {\n sorted = [...bundles].sort(({nodes: l = []}, {nodes: r = []}) => l.length - r.length);\n } else if (columnsSortable.has(column as string)) {\n return multiSortWithUndefined(bundles, [{key: column, orderK, undefinedOrderK}]);\n }\n\n return (order as string).includes('asc') ? sorted : sorted.reverse();\n};\n","import { I18N } from '@gravity-ui/i18n';\nimport en from './keysets/en.json';\nimport ru from './keysets/ru.json';\nconst i18nFactory = new I18N();\nconst EN = 'en';\nconst RU = 'ru';\ni18nFactory.registerKeysets(EN, en);\ni18nFactory.registerKeysets(RU, ru);\nconst i18n = i18nFactory.i18n.bind(i18nFactory);\nexport { i18nFactory, i18n };\n","export const CHARTKIT_ERROR_CODE = {\n NO_DATA: 'ERR.CK.NO_DATA',\n INVALID_DATA: 'ERR.CK.INVALID_DATA',\n UNKNOWN: 'ERR.CK.UNKNOWN_ERROR',\n UNKNOWN_PLUGIN: 'ERR.CK.UNKNOWN_PLUGIN',\n TOO_MANY_LINES: 'ERR.CK.TOO_MANY_LINES',\n};\nexport class ChartKitError extends Error {\n constructor({ originalError, message, code = CHARTKIT_ERROR_CODE.UNKNOWN, } = {}) {\n super(message);\n this.isCustomError = true;\n this.code = code;\n if (originalError) {\n this.name = originalError.name;\n this.stack = originalError.stack;\n }\n }\n}\nexport const isChartKitError = (error) => {\n return error instanceof Error && 'isCustomError' in error;\n};\n","import isObject from 'lodash/isObject';\nimport mergeWith from 'lodash/mergeWith';\n// @ts-ignore\nexport function mergeSettingStrategy(objValue, srcValue, key) {\n if (key === 'plugins') {\n const currentPlugins = [...objValue];\n const newPlugins = [...srcValue];\n // modify existing plugins\n let newSettingsPlugins = currentPlugins.map((currentPlugin) => {\n const newPluginIndex = newPlugins.findIndex(({ type }) => type === currentPlugin.type);\n if (newPluginIndex !== -1) {\n const newPlugin = newPlugins[newPluginIndex];\n newPlugins.splice(newPluginIndex, 1);\n return {\n type: currentPlugin.type,\n renderer: newPlugin.renderer,\n };\n }\n return currentPlugin;\n });\n // add new plugins if it exist after modified\n if (newPlugins.length > 0) {\n newSettingsPlugins = [...newSettingsPlugins, ...newPlugins];\n }\n return newSettingsPlugins;\n }\n if (isObject(objValue)) {\n return mergeWith(objValue, srcValue, mergeSettingStrategy);\n }\n return srcValue;\n}\n","import { configure } from '@gravity-ui/uikit';\nimport get from 'lodash/get';\nimport mergeWith from 'lodash/mergeWith';\nimport { i18nFactory } from '../../i18n';\nimport { EventEmitter } from './eventEmitter';\nimport { mergeSettingStrategy } from './mergeSettingStrategy';\nexport const settingsEventEmitter = new EventEmitter();\nconst removeUndefinedValues = (data) => {\n return Object.entries(data).reduce((acc, [key, value]) => {\n if (typeof value !== 'undefined') {\n acc[key] = value;\n }\n return acc;\n }, {});\n};\nconst updateLang = (lang) => {\n configure({ lang });\n i18nFactory.setLang(lang);\n};\nclass ChartKitSettings {\n constructor() {\n this.settings = {\n plugins: [],\n lang: 'en',\n };\n updateLang(this.get('lang'));\n }\n get(key) {\n return get(this.settings, key);\n }\n set(updates) {\n const filteredUpdates = removeUndefinedValues(updates);\n this.settings = mergeWith(this.settings, filteredUpdates, mergeSettingStrategy);\n if (filteredUpdates.lang) {\n const lang = filteredUpdates.lang || this.get('lang');\n updateLang(lang);\n settingsEventEmitter.dispatch('change-lang', lang);\n }\n }\n}\nexport const settings = new ChartKitSettings();\n","export class EventEmitter {\n constructor() {\n this.events = {};\n }\n on(type, event) {\n if (this.events[type]) {\n this.events[type].push(event);\n }\n else {\n this.events[type] = [event];\n }\n }\n off(type, eventId) {\n if (this.events[type]) {\n this.events[type] = this.events[type].filter(({ id }) => id !== eventId);\n }\n }\n dispatch(type, args) {\n if (this.events[type]) {\n this.events[type].forEach(({ action }) => {\n action(args);\n });\n }\n }\n}\n","import { withNaming } from '@bem-react/classname';\nexport const NAMESPACE = 'chartkit-';\nexport const cn = withNaming({ e: '__', m: '_' });\nexport const block = withNaming({ n: NAMESPACE, e: '__', m: '_' });\n","export const randomString = (length, chars) => {\n let result = '';\n for (let i = length; i > 0; --i) {\n result += chars[Math.floor(Math.random() * chars.length)];\n }\n return result;\n};\nexport const getRandomCKId = () => `ck.${randomString(10, '0123456789abcdefghijklmnopqrstuvwxyz')}`;\n"],"names":["connect","openAttributesModal","_ref","title","_ref$getPathProps","getPathProps","path","exactPath","attribute","attributes","_ref$withTooltip","withTooltip","_ref$tooltipProps","tooltipProps","placement","content","rest","_objectWithoutProperties","_excluded","_jsx","AttributesButton","_objectSpread","onClick","pathProps","block","cn","EditableAsText","props","children","onChange","text","className","withControls","size","disableEdit","cancelOnClose","openOnClick","renderEditor","onModeChange","_props$saveButtonView","saveButtonView","_props$cancelButtonVi","cancelButtonView","_React$useState","React","_React$useState2","_slicedToArray","editMode","setEditMode","_React$useState3","_React$useState4","input","setInput","useEffect","handleChangeMode","useCallback","isEdit","closeEditMode","startTextEdit","handleChange","val","applyValue","closeAndResetValue","onApply","value","handleKeyDown","evt","key","controlSize","_jsxs","_Fragment","onBlur","TextInput","autoFocus","onUpdate","onKeyDown","Button","view","extraProps","onMouseDown","Icon","awesome","type","EditButton","_ref$size","getHistogram","state","histogram","createGetQuartiles","createSelector","hammer","stat","quartiles","data","createGetPDF","pdf","createGetECDF","ecdf","steps","unshift","x","min","y","push","bucketNumber","bucketSize","HistogramChart","format","dataName","lineOnly","yagrData","xFormat","formatLib","Bytes","Number","_ref2","_ref5","_ref6","_step","buckets","timeline","NaN","_iterator","_createForOfIteratorHelper","s","n","done","item","getX","getY","err","e","f","length","graphs","color","getSerieColor","step","getLineOnlyData","_ref3","_ref4","undefined","lineData","j","i","_buckets$i","bestX","itemX","Array","isArray","calcBestY","Math","scale","renderOptions","gap","getColumnData","res","libraryConfig","axes","values","_d","map","side","grid","show","y1","scales","max","tooltip","render","tooltipData","_first$rows","_first$rows2","_second$rows","_renderDefaultTooltip","_tooltipData$scales","first","second","columnValue","rows","originalValue","lineValue","_ref7","colValue","colX0","colX1","lineX","lp","compact_","concat","join","renderDefaultTooltip","digits","sources","YagrChartKit","v","left","right","ly","ry","lx","Histogram","activeHistogram","handleHistogramChange","histogramItems","isDataGood","params","isDatailedLine","setDetailed","Select","options","map_","keys_","width","Checkbox","checked","q25","q50","q75","quartilesProps","PropTypes","pdfProps","valueMax","valueMin","ecdfProps","getQuartiles","getPDF","getECDF","getIsDataGood","pdfData","ecdfData","toaster","Toaster","LoadDataHandler","_Component","_inherits","_super","_createSuper","_classCallCheck","apply","arguments","_createClass","_this$props","this","error","loaded","errorData","add","theme","name","autoHiding","message","NO_VALUE","actions","label","showErrorPopup","_this$props2","_this$props2$alwaysSh","alwaysShowError","Error","Component","typedMemo","ErrorBoundary","constructor","super","resetError","setState","getDerivedStateFromError","componentDidCatch","_a","_b","onError","call","componentDidUpdate","prevProps","code","NO_DATA","i18n","toString","getErrorMessage","renderError","b","renderPluginLoader","pluginLoader","Object","assign","ChartKitComponent","widgetRef","instanceRef","id","propsId","isMobile","restProps","ckId","lang","settings","get","plugin","find","iteratedPlugin","UNKNOWN_PLUGIN","ChartComponent","renderer","reflow","details","current","fallback","mobile","ref","YagrPlugin","set","plugins","COLORS","serieIndex","renderText","mix","elem","mods","textProps","asHTML","dangerouslySetInnerHTML","__html","unipika","decode","String","prepareTextProps","printColumnAsTimeDurationWithMs","columnName","column","getColumn","printColumnAsReadableField","printColumnAsTime","ColumnAsTime","printColumnAsError","_typeof","Link","hideOopsMsg","asNumber","__default__","_templates","templateId","templates","keys","reduce","newTemplates","wrapRenderMethods","Partition","$value","index","$attributes","pivotKey","ypath","isEden","compressed","uncompressed","unmergedRows","sampleKeyCount","stores","storeCount","unmerged_row_count","uncompressed_data_size","store_count","requests","CancelHelper","loadPartitions","cellLeadingPeer","tabletPath","unorderedDynamicTable","ytApiV3Id","YTApiId","tabletPartitions","output_format","TYPED_OUTPUT_FORMAT","then","contents","tabletErrors","replicationErrors","pivot_key","nextPivotKey","next_pivot_key","partitions","partition","eden","extend_","preparePartitions","storesPath","tabletStores","Promise","reject","GENERIC_ERROR_MESSAGE","loadCellAttributes","tablePath","cell_id","tabletCellAttributes","find_","peers","peer","address","loadTableAttributes","tabletTableAttributes","table_id","tableAttributes","isUnorderedDynamicTable","partitionsTableItems","sort","caption","align","normal","splitting","merging","compacting","sampling","partitioning","compressed_data_size","sample_key_count","storesTableItems","store","store_state","storeState","row_count","rowCount","getRawPartitions","tablet","getActiveHistogram","getSortedPartitions","tables","TABLET_PARTITIONS_TABLE_ID","sortState","utils","getPartitions","sortedPartitions","aggregation","prepare","_toConsumableArray","getHistograms","mapValues_","partitionsWithoutEden","slice","dataSource","dataFormat","caps","histograms","Store","poolSize","poolCapacity","lockCount","valueCount","flushState","compactionState","preloadState","prepareStores","storesId","getStores","TABLET_PARTITION_STORES_TABLE_ID","PRELOAD_STATE_TO_THEME","scheduled","running","complete","failed","FLUSH_STATE_TO_THEME","none","stateToTheme","Stores","loadStoresData","abortAndReset","default","items","css","cssHover","striped","virtual","tableId","columns","sets","tableSets","mode","renderAsId","renderAsState","renderAsNumber","renderAsAttributes","computeKey","_this$props3","loading","Loader","ElementsTable","tableSettings","Label","FormattedId","renderStoreState","dynamicStore","indexOf","persistentStore","MetaTable","visible","renderFlushState","renderPreloadState","mapDispatchToProps","dispatch","getState","LOAD_STORES","REQUEST","storeId","partitionIndex","prepareRelativePath","preparePath","command","parameters","executeBatch","tabletStoresByIds","_splitBatchResults","splitBatchResults","results","SUCCESS","yt","CANCELLED","FAILURE","removeAllRequests","_state$tablet$stores","StoresDialog","onClose","Dialog","open","hasCloseButton","Header","Body","headingBlock","Partitions","_this","_len","args","_key","renderStores","handleShowStores","renderActions","ClickableAttributesButton","handleModeChange","changeContentMode","target","handleCloseStores","contentMode","renderIndex","renderState","renderAsBytes","renderPivotKey","itemMods","_this$state$stores","_this2","Sticky","topOffset","HEADER_HEIGHT","isSticky","sticky","RadioButton","StickyContainer","renderTableOverview","_this$props4","renderPartitions","renderStoresDialog","unipikaSettings","break","indent","prettyprint","FormattedText","CHANGE_CONTENT_MODE","_state$tablet$tablet","makeMetaItem","renderErrorsDialog","errors","handleClose","hasButtonClose","autoclosable","renderReplicationErrorsDialog","replica","disableStoresDialog","useDispatch","_useSelector","useSelector","_useSelector2","global","mediumList","cluster","_useState","useState","_useState2","setErrorsVisibility","_useState3","_useState4","replicaErrors","setReplicationErrorsVisibility","_ypath$getValues","_ypath$getValues2","cellId","statistics","performance","_ypath$getValues3","_ypath$getValues4","unmergedRowCount","chunkCount","storesVisible","setStoresVisible","toggleStoresVisibility","resourcesMeta","Tooltip","disabled","performanceMeta","stateTheme","unmounted","mounted","frozen","freezing","unfreezing","mounting","unmounting","mixed","CHANGE_ACTIVE_HISTOGRAM","changeActiveHistogram","handleErrorsClick","handleReplicationErrorsClick","handleErrorsCloseClick","handleReplicationErrorsCloseClick","Template","Id","withClipboard","shiftText","hoverContent","url","genTabletCellBundlesCellUrl","Page","NAVIGATION","NavigationTab","TABLETS","makeComponentsNodesUrl","host","Boolean","Yson","match","_React$useMemo","updateFn","LOAD_TABLET_DATA","tabletAttribute","loadAttributes","loadTabletData","destructFn","useUpdater","timeout","initialLoading","Overview","withRouter","Switch","Route","component","TabletDetails","TabletTopRowContent","RowWithName","page","TABLET","TabletBreadcrumbs","useRouteMatch","getCluster","handleEdit","tabletId","getAppBrowserHistory","Breadcrumbs","showRoot","BreadcrumbsItem","makeNavigationLink","YT","search","info","URLSearchParams","acc","k","_info$k$options","serialize","_info$k$options2","_info$k$options2$seri","tmp","append","makeURLSearchParams","getNavigationParams","COMPONENTS","ComponentsTab","NODES","makeProxyUrl","RPC_PROXIES","makeSchedulingUrl","pool","poolTree","SCHEDULING","makeAccountsUrl","account","ACCOUNTS","tabletCellBundleDashboardUrl","bundle","UIFactory","makeUrlForTabletCellBundleDashboard","prefix","TABLET_CELL_BUNDLES","TabletsTab","TABLET_CELLS","compareBundlesByAccount","changelog_account","snapshot_account","sortTableBundles","bundles","columnsSortable","order","sorted","_orderTypeToOrderK","orderTypeToOrderK","orderK","undefinedOrderK","_ref2$nodes","nodes","l","_ref3$nodes","r","has","multiSortWithUndefined","includes","reverse","i18nFactory","registerKeysets","bind","CHARTKIT_ERROR_CODE","INVALID_DATA","UNKNOWN","TOO_MANY_LINES","ChartKitError","originalError","isCustomError","stack","mergeSettingStrategy","objValue","srcValue","currentPlugins","newPlugins","newSettingsPlugins","currentPlugin","newPluginIndex","findIndex","newPlugin","splice","settingsEventEmitter","events","on","event","off","eventId","filter","forEach","action","updateLang","configure","setLang","updates","filteredUpdates","entries","withNaming","m","getRandomCKId","chars","result","floor","random","randomString"],"sourceRoot":""}
1
+ {"version":3,"file":"js/tablet.68f185b6.chunk.js","mappings":"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","sources":["webpack://@ytsaurus/ui/./src/ui/components/AttributesButton/ClickableAttributesButton.tsx","webpack://@ytsaurus/ui/./src/ui/components/EditableAsText/EditableAsText.tsx","webpack://@ytsaurus/ui/./src/ui/store/selectors/histogram.js","webpack://@ytsaurus/ui/./src/ui/components/Histogram/HistogramChart.tsx","webpack://@ytsaurus/ui/./src/ui/components/Histogram/Histogram.js","webpack://@ytsaurus/ui/./src/ui/components/LoadDataHandler/LoadDataHandler.tsx","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/chartkit/build/utils/react.js","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/chartkit/build/components/ErrorBoundary/ErrorBoundary.js","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/chartkit/build/utils/getErrorMessage.js","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/chartkit/build/components/Loader/Loader.js","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/chartkit/build/components/ChartKit.js","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/chartkit/build/index.js","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/chartkit/build/plugins/yagr/index.js","webpack://@ytsaurus/ui/./src/ui/components/YagrChartKit/YagrChartKit.tsx","webpack://@ytsaurus/ui/./src/ui/components/templates/utils.js","webpack://@ytsaurus/ui/./src/ui/utils/tablet/partition.js","webpack://@ytsaurus/ui/./src/ui/utils/tablet/tablet.js","webpack://@ytsaurus/ui/./src/ui/store/actions/tablet/tablet.js","webpack://@ytsaurus/ui/./src/ui/utils/tablet/table.js","webpack://@ytsaurus/ui/./src/ui/store/selectors/tablet/tablet.js","webpack://@ytsaurus/ui/./src/ui/utils/tablet/store.js","webpack://@ytsaurus/ui/./src/ui/utils/tablet/stores.js","webpack://@ytsaurus/ui/./src/ui/store/actions/tablet/stores.js","webpack://@ytsaurus/ui/./src/ui/store/selectors/tablet/stores.js","webpack://@ytsaurus/ui/./src/ui/pages/tablet/TabletDetails/Stores.js","webpack://@ytsaurus/ui/./src/ui/pages/tablet/TabletDetails/StoresDialog.tsx","webpack://@ytsaurus/ui/./src/ui/pages/tablet/TabletDetails/Partitions.js","webpack://@ytsaurus/ui/./src/ui/pages/tablet/TabletDetails/Overview.js","webpack://@ytsaurus/ui/./src/ui/pages/tablet/TabletDetails/TabletDetails.js","webpack://@ytsaurus/ui/./src/ui/pages/tablet/Tablet.js","webpack://@ytsaurus/ui/./src/ui/pages/tablet/TabletTopRowContent.tsx","webpack://@ytsaurus/ui/./src/ui/utils/app-url/navigation.ts","webpack://@ytsaurus/ui/./src/ui/utils/app-url/utils.ts","webpack://@ytsaurus/ui/./src/ui/utils/app-url/index.ts","webpack://@ytsaurus/ui/./src/ui/utils/tablet_cell_bundles/index.ts","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/chartkit/build/i18n/index.js","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/chartkit/build/libs/chartkit-error/chartkit-error.js","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/chartkit/build/libs/settings/mergeSettingStrategy.js","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/chartkit/build/libs/settings/settings.js","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/chartkit/build/libs/settings/eventEmitter.js","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/chartkit/build/utils/cn.js","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/chartkit/build/utils/common.js"],"sourcesContent":["import React from 'react';\nimport {ConnectedProps, connect} from 'react-redux';\n\nimport AttributesButton, {AttributesButtonProps} from './AttributesButton';\n\nimport {openAttributesModal} from '../../store/actions/modals/attributes-modal';\nimport {ButtonProps} from '../Button/Button';\n\ninterface Props extends Omit<AttributesButtonProps, 'onClick' | 'title'> {\n title: React.ReactNode;\n\n // The function is called inside click handler, and overrides path and exactPath\n getPathProps?: () => Pick<Partial<Props>, 'path' | 'exactPath'>;\n path?: string;\n exactPath?: string;\n\n attribute?: string;\n attributes?: object;\n\n size?: ButtonProps['size'];\n view?: ButtonProps['view'];\n}\n\nfunction ClickableAttributesButton({\n title,\n getPathProps = () => {\n return {};\n },\n path,\n exactPath,\n attribute,\n attributes,\n openAttributesModal,\n withTooltip = true,\n tooltipProps = {placement: 'bottom-end', content: 'Show attributes'},\n ...rest\n}: Props & ConnectedProps<typeof connector>) {\n return (\n <AttributesButton\n {...rest}\n tooltipProps={tooltipProps}\n withTooltip={withTooltip}\n onClick={() => {\n const pathProps = {\n path,\n exactPath,\n ...getPathProps(),\n };\n\n openAttributesModal({\n title,\n ...pathProps,\n attribute,\n attributes,\n });\n }}\n />\n );\n}\n\nconst connector = connect(null, {openAttributesModal});\n\nexport default connector(ClickableAttributesButton);\n","import React, {useCallback, useEffect} from 'react';\nimport cn from 'bem-cn-lite';\n\nimport {TextInput} from '@gravity-ui/uikit';\nimport Icon from '../Icon/Icon';\n\nimport './EditableAsText.scss';\nimport Button, {ButtonProps} from '../Button/Button';\nconst block = cn('editable-as-text');\n\ninterface Props {\n className?: string;\n editorClassName?: string;\n\n text?: string;\n children: React.ReactNode;\n onChange: (v?: string) => void;\n disableEdit?: boolean;\n withControls?: boolean;\n cancelOnClose?: boolean;\n openOnClick?: boolean;\n size?: 's' | 'm' | 'l' | 'xl';\n saveButtonView?: ButtonProps['view'];\n cancelButtonView?: ButtonProps['view'];\n\n renderEditor?: (props: {\n value?: string;\n onBlur: () => void;\n onChange: (value?: string) => void;\n className?: string;\n onApply: (value?: string) => void;\n }) => React.ReactNode;\n onModeChange?: (isEdit: boolean) => void;\n}\n\nexport function EditableAsText(props: Props) {\n const {\n children,\n onChange,\n text,\n className,\n withControls,\n size,\n disableEdit,\n cancelOnClose,\n openOnClick,\n renderEditor,\n onModeChange,\n saveButtonView = 'normal',\n cancelButtonView = 'normal',\n } = props;\n const [editMode, setEditMode] = React.useState(false);\n const [input, setInput] = React.useState(text || '');\n\n useEffect(() => {\n setInput(text || '');\n }, [text]);\n\n const handleChangeMode = useCallback(\n (isEdit: boolean) => {\n if (onModeChange) onModeChange(isEdit);\n setEditMode(isEdit);\n },\n [onModeChange],\n );\n\n const closeEditMode = React.useCallback(() => {\n handleChangeMode(false);\n if (cancelOnClose) setInput(text || '');\n }, [cancelOnClose, handleChangeMode, text]);\n\n const startTextEdit = useCallback(() => {\n handleChangeMode(true);\n }, [handleChangeMode]);\n\n const handleWrapClick = () => {\n if (!editMode && openOnClick) {\n startTextEdit();\n }\n };\n\n const handleChange = React.useCallback((val?: string) => setInput(val ?? ''), [setInput]);\n\n const applyValue = useCallback(() => {\n handleChangeMode(false);\n onChange(input);\n }, [onChange, handleChangeMode, input]);\n\n const closeAndResetValue = useCallback(() => {\n handleChangeMode(false);\n setInput(text || '');\n }, [handleChangeMode, text]);\n\n const onApply = useCallback(\n (value?: string) => {\n handleChangeMode(false);\n onChange(value);\n },\n [handleChangeMode, onChange],\n );\n\n const handleKeyDown = React.useCallback(\n (evt: React.KeyboardEvent<HTMLElement>) => {\n if (evt.key === 'Enter') {\n applyValue();\n }\n if (evt.key === 'Escape') {\n closeAndResetValue();\n }\n },\n [applyValue, closeAndResetValue],\n );\n\n const controlSize = size ? size : 'm';\n\n return (\n <div\n className={block(null, [className || '', editMode ? 'edit' : ''])}\n onClick={handleWrapClick}\n >\n {editMode ? (\n <>\n {renderEditor ? (\n renderEditor({\n value: input,\n onChange: handleChange,\n className: block('control'),\n onBlur: closeEditMode,\n onApply,\n })\n ) : (\n <TextInput\n className={block('control')}\n autoFocus\n size={controlSize}\n value={input}\n onUpdate={handleChange}\n onKeyDown={handleKeyDown}\n onBlur={closeEditMode}\n />\n )}\n {withControls && (\n <>\n <Button\n className={block('control')}\n view={saveButtonView}\n extraProps={{onMouseDown: applyValue}}\n size={controlSize}\n >\n <Icon awesome={'check'} size={controlSize} />\n </Button>\n <Button\n className={block('control')}\n view={cancelButtonView}\n extraProps={{onMouseDown: closeAndResetValue}}\n size={controlSize}\n >\n <Icon awesome={'times'} size={controlSize} />\n </Button>\n </>\n )}\n </>\n ) : (\n <React.Fragment>\n {children}\n {!disableEdit && (\n <Button\n className={block('control', {type: 'edit'})}\n view=\"outlined\"\n onClick={startTextEdit}\n size={controlSize}\n >\n <Icon awesome={'pencil'} size={controlSize} />\n </Button>\n )}\n </React.Fragment>\n )}\n </div>\n );\n}\n\nexport function EditButton({\n onClick,\n size = 'm',\n}: {\n onClick: () => void;\n size?: ButtonProps['size'];\n}) {\n return (\n <Button className={block('edit-btn')} onClick={onClick} size={size}>\n <Icon awesome={'pencil'} />\n </Button>\n );\n}\n","import hammer from '../../common/hammer';\nimport {createSelector} from 'reselect';\n\nconst getHistogram = (state, props) => props.histogram;\n\nexport const createGetQuartiles = () =>\n createSelector(getHistogram, (histogram) => hammer.stat.quartiles(histogram.data));\n\nexport const createGetPDF = () =>\n createSelector(getHistogram, (histogram) => hammer.stat.pdf(histogram.data));\n\nexport const createGetECDF = () =>\n createSelector([getHistogram, createGetPDF()], (histogram, pdf) => {\n const ecdf = hammer.stat.ecdf(histogram.data);\n\n // Create fake points\n ecdf.steps.unshift({\n x: pdf.min,\n y: 0,\n });\n ecdf.steps.push({\n x: pdf.min + pdf.bucketNumber * pdf.bucketSize,\n y: 100,\n });\n\n return ecdf;\n });\n\nexport const createGetIsDataGood = () =>\n createSelector(\n [createGetPDF(), createGetECDF(), createGetQuartiles()],\n (pdfData, ecdfData, quartiles) => {\n if (pdfData.min === pdfData.max) {\n // All points are the same\n return false;\n } else if (ecdfData.steps.length < 5) {\n // We have got too few different points in data (including fake points)\n return false;\n } else if (quartiles.q75 - quartiles.q25 === 0) {\n // All points are almost the same\n return false;\n } else {\n return true;\n }\n },\n );\n","import compact_ from 'lodash/compact';\nimport React from 'react';\nimport YagrChartKit, {\n RawSerieData,\n YagrWidgetData,\n getSerieColor,\n} from '../YagrChartKit/YagrChartKit';\n\nimport formatLib from '../../common/hammer/format';\n\nexport interface HistogramChartProps {\n className: string;\n format: 'Number' | 'Bytes';\n ecdf: ECDFData;\n pdf: PDFData;\n dataName: string;\n lineOnly?: boolean;\n}\n\ninterface ECDFData {\n min: number;\n max: number;\n steps: Array<XY>;\n}\n\ntype XY = [X, Y] | {x: X; y: Y};\n\ninterface PDFData {\n bucketNumber: number;\n bucketSize: number;\n buckets: Array<[X, Y]>;\n min: X;\n max: X;\n}\n\ntype X = number;\ntype Y = number;\n\nfunction HistogramChart({className, pdf, ecdf, format, dataName, lineOnly}: HistogramChartProps) {\n const yagrData = React.useMemo(() => {\n const xFormat = format === 'Bytes' ? formatLib.Bytes : formatLib.Number;\n const {timeline, graphs, step} = lineOnly\n ? getLineOnlyData(pdf, ecdf)\n : getColumnData(pdf, ecdf);\n const res: YagrWidgetData = {\n data: {\n timeline,\n graphs,\n },\n libraryConfig: {\n axes: {\n x: {\n values: (_d, x) => x.map(xFormat),\n side: 'bottom',\n grid: {\n show: false,\n },\n },\n y1: {\n side: 'right',\n show: false,\n },\n y: {\n side: 'left',\n show: false,\n },\n },\n scales: {\n y1: {\n min: 0,\n max: 100,\n },\n y: {\n min: 0,\n },\n },\n tooltip: {\n render: (tooltipData) => {\n const {\n x,\n scales: [first, second],\n } = tooltipData;\n const columnValue = lineOnly ? undefined : first?.rows?.[0]?.originalValue;\n const lineValue = lineOnly\n ? first?.rows?.[0]?.originalValue\n : second?.rows?.[0]?.originalValue;\n\n return (\n renderDefaultTooltip({\n colValue:\n columnValue !== undefined\n ? formatLib.Number(columnValue)\n : undefined,\n colX0: xFormat(x - step / 2),\n colX1: xFormat(x + step / 2),\n lineValue:\n lineValue !== undefined\n ? formatLib.Number(lineValue, {digits: 2}) + '%'\n : undefined,\n lineX: xFormat(x),\n dataName,\n lineOnly,\n }) ?? '-'\n );\n },\n },\n },\n sources: {},\n };\n return res;\n }, [pdf, ecdf, format, lineOnly]);\n\n return (\n <div className={className}>\n <YagrChartKit type={'yagr'} data={yagrData} />\n </div>\n );\n}\n\nexport default React.memo(HistogramChart);\n\nfunction getColumnData(\n {buckets, min, bucketSize}: PDFData,\n {steps}: ECDFData,\n): YagrWidgetData['data'] & {step: number} {\n const timeline = [min - 0.1 * bucketSize];\n const data: Array<number> = [undefined!];\n const lineData: Array<number> = [undefined!];\n let j = 0;\n for (let i = 0; i < buckets.length; ++i) {\n const [x, y] = buckets[i];\n const bestX = x + bucketSize / 2;\n data.push(y);\n timeline.push(bestX);\n while (j < steps.length) {\n const item = steps[j];\n const itemX = getX(item);\n if (itemX === bestX) {\n lineData[i + 1] = Array.isArray(item) ? item[1] : item.y;\n break;\n } else if (itemX === undefined || itemX < bestX) {\n ++j;\n continue;\n } else {\n lineData[i + 1] = calcBestY(\n bestX,\n steps[Math.min(steps.length - 1, j - 1)],\n steps[j],\n )!;\n break;\n }\n }\n }\n timeline.push(min + (0.1 + bucketSize) * buckets.length);\n data.push(undefined!);\n lineData.push(undefined!);\n\n const graphs: RawSerieData[] = [\n {\n type: 'line' as const,\n data: lineData,\n scale: 'y1',\n color: getSerieColor(1),\n },\n {\n type: 'column' as const,\n data,\n color: getSerieColor(0),\n ...{\n renderOptions: {\n size: [1],\n gap: 1,\n },\n },\n },\n ];\n return {\n graphs,\n timeline,\n step: bucketSize,\n };\n}\n\nfunction getLineOnlyData(\n {min, buckets, bucketSize}: PDFData,\n {steps}: ECDFData,\n): ReturnType<typeof getColumnData> {\n const timeline: Array<number> = [min - 0.1 * bucketSize];\n const data: Array<number> = [NaN];\n\n for (const item of steps) {\n timeline.push(getX(item)!);\n data.push(getY(item)!);\n }\n\n timeline.push(min + (0.1 + bucketSize) * buckets.length);\n data.push(NaN);\n\n const graphs: Array<RawSerieData> = [\n {\n type: 'line' as const,\n data,\n color: getSerieColor(1),\n },\n ];\n\n return {\n timeline,\n graphs,\n step: NaN,\n };\n}\n\nfunction renderDefaultTooltip({\n colValue,\n colX0,\n colX1,\n lineValue,\n lineX,\n dataName,\n lineOnly,\n}: {\n colValue?: string;\n colX0: string;\n colX1: string;\n lineValue?: string;\n lineX: string;\n dataName: string;\n lineOnly?: boolean;\n}) {\n const lp = lineOnly ? '' : '~';\n return compact_([\n colValue !== undefined\n ? `<b>${colValue}</b> partitions contain in range from <b>${colX0}</b> to <b>${colX1}</b> - ${dataName}`\n : undefined,\n lineValue !== undefined\n ? `<b>${lp}${lineValue}</b> of tablets conains <b>${lp}${lineX}</b> or less`\n : undefined,\n ]).join('<br/>');\n}\n\nfunction getX(v?: XY) {\n return Array.isArray(v) ? v[0] : v?.x;\n}\n\nfunction getY(v?: XY) {\n return Array.isArray(v) ? v[1] : v?.y;\n}\n\nfunction calcBestY(bestX: number, left?: XY, right?: XY) {\n const ly = getY(left);\n const ry = getY(right);\n if (ly === undefined) {\n return ry;\n }\n\n if (ry === undefined) {\n return ly;\n }\n\n const lx = getX(left);\n const rx = getX(right);\n const k = (bestX - lx!) / (rx! - lx!);\n\n return ly + k * (ry - ly);\n}\n","import {connect} from 'react-redux';\nimport PropTypes from 'prop-types';\nimport hammer from '../../common/hammer';\nimport cn from 'bem-cn-lite';\nimport React from 'react';\n\nimport keys_ from 'lodash/keys';\nimport map_ from 'lodash/map';\n\nimport {\n createGetECDF,\n createGetIsDataGood,\n createGetPDF,\n createGetQuartiles,\n} from '../../store/selectors/histogram';\nimport HistogramChart from './HistogramChart';\n\nimport './Histogram.scss';\nimport {Checkbox, Select} from '@gravity-ui/uikit';\n\nconst block = cn('histogram');\n\nHistogram.quartilesProps = PropTypes.shape({\n min: PropTypes.number,\n q25: PropTypes.number,\n q50: PropTypes.number,\n q75: PropTypes.number,\n max: PropTypes.number,\n});\n\nHistogram.pdfProps = PropTypes.shape({\n bucketNumber: PropTypes.number,\n bucketSize: PropTypes.number,\n max: PropTypes.number,\n min: PropTypes.number,\n valueMax: PropTypes.number,\n valueMin: PropTypes.number,\n quartiles: Histogram.quartilesProps,\n buckets: PropTypes.array,\n});\n\nHistogram.ecdfProps = PropTypes.shape({\n min: PropTypes.number,\n max: PropTypes.number,\n steps: PropTypes.array,\n});\n\nHistogram.propTypes = {\n // from parent\n activeHistogram: PropTypes.string.isRequired,\n handleHistogramChange: PropTypes.func.isRequired,\n histogramItems: PropTypes.object.isRequired,\n\n histogram: PropTypes.shape({\n data: PropTypes.array.isRequired,\n format: PropTypes.string.isRequired,\n dataName: PropTypes.string.isRequired,\n dataFormat: PropTypes.string.isRequired,\n }).isRequired,\n\n // from connect\n quartiles: Histogram.quartilesProps.isRequired,\n pdf: Histogram.pdfProps.isRequired,\n ecdf: Histogram.ecdfProps.isRequired,\n isDataGood: PropTypes.bool.isRequired,\n};\n\nfunction Histogram(props) {\n const {activeHistogram, handleHistogramChange, histogramItems} = props;\n const {histogram, quartiles, pdf, ecdf, isDataGood} = props;\n\n const params = {...histogram, pdf, ecdf};\n\n const [isDatailedLine, setDetailed] = React.useState(false);\n\n return (\n <div className={block()}>\n <div className={block('toolbar')}>\n <Select\n value={[activeHistogram]}\n onUpdate={(values) => handleHistogramChange(values[0])}\n options={map_(keys_(histogramItems), (value) => {\n return {value, content: value};\n })}\n width=\"max\"\n />\n <Checkbox\n className={block('detailed')}\n checked={isDatailedLine}\n onUpdate={setDetailed}\n >\n Detailed line\n </Checkbox>\n </div>\n\n {isDataGood ? (\n <HistogramChart className={block('chart')} {...params} lineOnly={isDatailedLine} />\n ) : (\n <div className={block('bad-data')}>\n <p className={block('bad-data-message')}>\n Could not draw a descriptive chart with given data.\n </p>\n </div>\n )}\n\n <ul className={block('quartiles')}>\n <li className={block('quartiles-item')}>\n Min –{' '}\n <span className={block('quartiles-count')}>\n {hammer.format[histogram.format](quartiles.min)}\n </span>\n </li>\n <li className={block('quartiles-item')}>\n Q25% –{' '}\n <span className={block('quartiles-count')}>\n {hammer.format[histogram.format](quartiles.q25)}\n </span>\n </li>\n <li className={block('quartiles-item')}>\n Q50% –{' '}\n <span className={block('quartiles-count')}>\n {hammer.format[histogram.format](quartiles.q50)}\n </span>\n </li>\n <li className={block('quartiles-item')}>\n Q75% –{' '}\n <span className={block('quartiles-count')}>\n {hammer.format[histogram.format](quartiles.q75)}\n </span>\n </li>\n <li className={block('quartiles-item')}>\n Max –{' '}\n <span className={block('quartiles-count')}>\n {hammer.format[histogram.format](quartiles.max)}\n </span>\n </li>\n </ul>\n </div>\n );\n}\n\n// https://github.com/reduxjs/reselect#sharing-selectors-with-props-across-multiple-component-instances\nconst makeMapStateToProps = () => {\n const getQuartiles = createGetQuartiles();\n const getPDF = createGetPDF();\n const getECDF = createGetECDF();\n const getIsDataGood = createGetIsDataGood();\n\n return (state, props) => {\n const quartiles = getQuartiles(state, props);\n const pdf = getPDF(state, props);\n const ecdf = getECDF(state, props);\n const isDataGood = getIsDataGood(state, props);\n\n return {quartiles, pdf, ecdf, isDataGood};\n };\n};\n\nexport default connect(makeMapStateToProps)(Histogram);\n","import React, {Component} from 'react';\n\nimport {Toaster} from '@gravity-ui/uikit';\nimport Error from '../../components/Error/Error';\nimport hammer from '../../common/hammer';\n\nimport {showErrorPopup} from '../../utils/utils';\nimport {YTError} from '../../types';\n\nconst toaster = new Toaster();\n\ninterface LoadDataHandlerProps {\n alwaysShowError?: boolean;\n loaded: boolean;\n error: boolean;\n errorData?: YTError;\n children: React.ReactNode;\n}\n\nexport default class LoadDataHandler extends Component<LoadDataHandlerProps> {\n componentDidUpdate() {\n const {error, loaded, errorData} = this.props;\n\n if (error && loaded) {\n toaster.add({\n theme: 'danger',\n name: 'network',\n autoHiding: 500000,\n title: 'Oops! something went wrong.',\n content: errorData ? (errorData as YTError).message : hammer.format.NO_VALUE,\n actions: [\n {\n label: ' view',\n onClick: () => showErrorPopup(errorData as YTError),\n },\n ],\n });\n }\n }\n\n render() {\n const {alwaysShowError = false, error, errorData, loaded, children} = this.props;\n\n const initialLoading = !loaded;\n\n if (error && (alwaysShowError || initialLoading)) {\n return <Error error={errorData} />;\n }\n\n return children;\n }\n}\n","import React from 'react';\n// For some reason React.memo drops the generic prop type and creates a regular union type\n// https://github.com/DefinitelyTyped/DefinitelyTyped/issues/37087#issuecomment-542793243\nexport const typedMemo = React.memo;\n","import React from 'react';\nimport { CHARTKIT_ERROR_CODE } from '../../libs';\nimport { getErrorMessage } from '../../utils/getErrorMessage';\nexport class ErrorBoundary extends React.Component {\n constructor() {\n super(...arguments);\n this.state = {\n error: undefined,\n };\n this.resetError = () => {\n if (this.state.error) {\n this.setState({ error: undefined });\n }\n };\n }\n static getDerivedStateFromError(error) {\n return { error };\n }\n componentDidCatch() {\n var _a, _b;\n const { error } = this.state;\n if (error) {\n (_b = (_a = this.props).onError) === null || _b === void 0 ? void 0 : _b.call(_a, { error });\n }\n }\n componentDidUpdate(prevProps) {\n if (prevProps.data !== this.props.data) {\n const { error } = this.state;\n if (error && 'code' in error && error.code === CHARTKIT_ERROR_CODE.NO_DATA) {\n this.resetError();\n }\n }\n }\n render() {\n const { error } = this.state;\n if (error) {\n const message = getErrorMessage(error);\n if (this.props.renderError) {\n return this.props.renderError({\n error,\n message,\n resetError: this.resetError,\n });\n }\n return React.createElement(\"div\", null, message);\n }\n return this.props.children;\n }\n}\n","import { i18n } from '../i18n';\nexport function getErrorMessage(error) {\n const code = 'code' in error && error.code;\n return (error.message || code || i18n('error', 'label_unknown-error')).toString();\n}\n","import { __rest } from \"tslib\";\nimport React from 'react';\nimport { Loader as BaseLoader } from '@gravity-ui/uikit';\nimport { block } from '../../utils/cn';\nimport './Loader.css';\nconst b = block('loader');\nexport const Loader = (_a) => {\n var { renderPluginLoader } = _a, props = __rest(_a, [\"renderPluginLoader\"]);\n const pluginLoader = renderPluginLoader === null || renderPluginLoader === void 0 ? void 0 : renderPluginLoader();\n // React.Suspense complains about possible undefined in \"fallback\" property\n if (typeof pluginLoader !== 'undefined') {\n return pluginLoader;\n }\n return (React.createElement(\"div\", { className: b() },\n React.createElement(BaseLoader, Object.assign({}, props))));\n};\n","import { __rest } from \"tslib\";\nimport React from 'react';\nimport { i18n } from '../i18n';\nimport { CHARTKIT_ERROR_CODE, ChartKitError, settings } from '../libs';\nimport { getRandomCKId, typedMemo } from '../utils';\nimport { cn } from '../utils/cn';\nimport { ErrorBoundary } from './ErrorBoundary/ErrorBoundary';\nimport { Loader } from './Loader/Loader';\nimport './ChartKit.css';\nconst b = cn('chartkit');\nconst ChartKitComponent = (props) => {\n const widgetRef = React.useRef();\n const { instanceRef, id: propsId, type, isMobile, renderPluginLoader } = props, restProps = __rest(props, [\"instanceRef\", \"id\", \"type\", \"isMobile\", \"renderPluginLoader\"]);\n const ckId = React.useMemo(() => getRandomCKId(), []);\n const id = propsId || ckId;\n const lang = settings.get('lang');\n const plugins = settings.get('plugins');\n const plugin = plugins.find((iteratedPlugin) => iteratedPlugin.type === type);\n if (!plugin) {\n throw new ChartKitError({\n code: CHARTKIT_ERROR_CODE.UNKNOWN_PLUGIN,\n message: i18n('error', 'label_unknown-plugin', { type }),\n });\n }\n const ChartComponent = plugin.renderer;\n React.useImperativeHandle(instanceRef, () => ({\n reflow(details) {\n var _a;\n if ((_a = widgetRef.current) === null || _a === void 0 ? void 0 : _a.reflow) {\n widgetRef.current.reflow(details);\n }\n },\n }), []);\n return (React.createElement(React.Suspense, { fallback: React.createElement(Loader, { renderPluginLoader: renderPluginLoader }) },\n React.createElement(\"div\", { className: b({ mobile: isMobile }, 'chartkit-theme_common') },\n React.createElement(ChartComponent, Object.assign({ ref: widgetRef, id: id, lang: lang }, restProps)))));\n};\nconst ChartKitComponentWithErrorBoundary = React.forwardRef(function ChartKitComponentWithErrorBoundary(props, ref) {\n return (React.createElement(ErrorBoundary, { onError: props.onError, data: props.data, renderError: props.renderError },\n React.createElement(ChartKitComponent, Object.assign({ instanceRef: ref }, props))));\n}) /* https://stackoverflow.com/a/58473012 */;\nexport const ChartKit = typedMemo(ChartKitComponentWithErrorBoundary);\n","import { ChartKit } from './components/ChartKit';\nimport { settings } from './libs';\nexport * from './types/widget-data';\nexport * from './libs/chartkit-error/chartkit-error';\nexport { settings };\nexport default ChartKit;\n","import React from 'react';\nexport * from './types';\nexport const YagrPlugin = {\n type: 'yagr',\n renderer: React.lazy(() => import('./renderer/YagrWidget')),\n};\n","import ChartKit, {settings} from '@gravity-ui/chartkit';\nimport {YagrPlugin} from '@gravity-ui/chartkit/yagr';\nexport type {RawSerieData, YagrWidgetData} from '@gravity-ui/chartkit/yagr';\n\nimport '@gravity-ui/yagr/dist/index.css';\n\nsettings.set({plugins: [YagrPlugin]});\n\nconst COLORS = ['rgb(77, 162, 241)', 'rgb(255, 61, 100)'];\n\nexport function getSerieColor(serieIndex: number) {\n return COLORS[serieIndex % COLORS.length];\n}\n\nexport default ChartKit;\n","import React from 'react';\nimport unipika from '../../common/thor/unipika';\nimport block from 'bem-cn-lite';\n\nimport Link from '../../components/Link/Link';\n\nimport hammer from '../../common/hammer';\nimport {showErrorPopup} from '../../utils/utils';\n\nimport './utils.scss';\n\nfunction wrapRenderMethods(templates) {\n return Object.keys(templates).reduce((newTemplates, key) => {\n newTemplates[key] = templates[key];\n\n return newTemplates;\n }, {});\n}\n\n/**\n * Template must be a scoped function, because they are bound to elements-table component instance\n * @param {ViewModel} item\n * @param {String} columnName\n */\nfunction defaultTemplate(item, columnName) {\n return String(hammer.format['ValueOrDefault'](item[columnName]));\n}\n\nfunction prepareTextProps(text, asHTML) {\n const props = {};\n\n if (asHTML) {\n // Need to render html strings\n props.dangerouslySetInnerHTML = {__html: text};\n } else {\n props.children = unipika.decode(String(text));\n }\n\n return props;\n}\n\nexport function renderText(text, settings = {}) {\n let className = block('elements-text');\n\n if (settings.mix) {\n className = className(\n false,\n block(settings.mix.block)(settings.mix.elem, {\n ...settings.mix.mods,\n }),\n );\n } else {\n className = className();\n }\n\n const textProps = prepareTextProps(text, settings.asHTML);\n\n const title = settings.title || text;\n\n return <span {...textProps} title={title} className={className} />;\n}\n\nexport function printColumnAsBytes(item, columnName) {\n const column = this.getColumn(columnName);\n return hammer.format['Bytes'](column.get(item));\n}\n\nexport function printColumnAsNumber(item, columnName) {\n const column = this.getColumn(columnName);\n return hammer.format['Number'](column.get(item));\n}\n\nexport function printColumnAsTimeDurationWithMs(item, columnName) {\n const column = this.getColumn(columnName);\n return hammer.format['TimeDuration'](column.get(item), {\n format: 'milliseconds',\n });\n}\n\nexport function printColumnAsReadableField(item, columnName) {\n const column = this.getColumn(columnName);\n return (\n <span className=\"elements-ellipsis\">\n {hammer.format['ReadableField'](column.get(item))}\n </span>\n );\n}\n\nexport function printColumnAsTime(item, columnName) {\n const value = this?.getColumn ? this.getColumn(columnName).get(item) : item[columnName];\n return <ColumnAsTime value={value} />;\n}\n\nexport function ColumnAsTime({value}) {\n return (\n <span className=\"elements-ellipsis\">\n {hammer.format['DateTime'](value, {format: 'full'})}\n </span>\n );\n}\n\nexport function printColumnAsError(error) {\n const showError = () => {\n showErrorPopup(error, {hideOopsMsg: true});\n };\n return typeof error === 'object' ? (\n <Link theme=\"ghost\" onClick={showError}>\n View\n </Link>\n ) : (\n hammer.format.NO_VALUE\n );\n}\n\n// Using prepared table data\nexport function asBytes(item, columnName) {\n return hammer.format['Bytes'](item[columnName]);\n}\n\nexport function asNumber(item, columnName) {\n return hammer.format['Number'](item[columnName]);\n}\n\nexport default {\n __default__: defaultTemplate,\n _templates: {},\n add: function (templateId, templates) {\n this._templates[templateId] = wrapRenderMethods(templates);\n },\n get: function (templateId) {\n return this._templates[templateId] || {};\n },\n};\n","import ypath from '@ytsaurus/interface-helpers/lib/ypath';\n\nimport keys_ from 'lodash/keys';\n\nexport default class Partition {\n constructor(data) {\n this.$value = data.index;\n this.$attributes = data;\n\n this.index = data.index;\n this.pivotKey = ypath.getValue(data, '/pivot_key');\n this.isEden = ypath.getValue(data, '/isEden');\n\n this.state = ypath.getValue(data, '/state');\n this.compressed = Number(ypath.getValue(data, '/compressed_data_size'));\n this.uncompressed = Number(ypath.getValue(data, '/uncompressed_data_size'));\n this.unmergedRows = Number(ypath.getValue(data, '/unmerged_row_count'));\n this.sampleKeyCount = Number(ypath.getValue(data, '/sample_key_count'));\n\n let stores = ypath.getValue(data, '/stores');\n stores = stores ? keys_(stores) : [];\n\n this.stores = stores;\n this.storeCount = stores.length;\n }\n}\n","import extend_ from 'lodash/extend';\nimport map_ from 'lodash/map';\n\nimport Partition from '../../utils/tablet/partition';\n\nexport const histogramItems = {\n unmerged_row_count: {\n format: 'Number',\n },\n uncompressed_data_size: {\n dataName: 'bytes',\n format: 'Bytes',\n },\n store_count: {\n format: 'Number',\n },\n};\n\nexport function preparePartitions(contents) {\n const partitions = map_(contents.partitions, (partition, index) => {\n partition.attributes = Object.assign({}, partition);\n partition.index = index;\n return new Partition(partition);\n });\n\n const eden = new Partition(\n extend_(\n {\n isEden: true,\n index: -1,\n attributes: extend_({}, contents.eden),\n },\n contents.eden,\n ),\n );\n\n partitions.unshift(eden);\n\n return partitions;\n}\n","import yt from '@ytsaurus/javascript-wrapper/lib/yt';\n\nimport find_ from 'lodash/find';\n\nimport ypath from '@ytsaurus/interface-helpers/lib/ypath';\nimport CancelHelper from '../../../utils/cancel-helper';\nimport {GENERIC_ERROR_MESSAGE, TYPED_OUTPUT_FORMAT} from '../../../constants/index';\nimport {preparePartitions} from '../../../utils/tablet/tablet';\nimport {\n CHANGE_ACTIVE_HISTOGRAM,\n CHANGE_CONTENT_MODE,\n LOAD_TABLET_DATA,\n} from '../../../constants/tablet';\nimport {YTApiId, ytApiV3Id} from '../../../rum/rum-wrap-api';\n\nconst requests = new CancelHelper();\n\nfunction loadPartitions({cellLeadingPeer, tabletPath, unorderedDynamicTable, ...rest}) {\n if (cellLeadingPeer) {\n return ytApiV3Id\n .get(YTApiId.tabletPartitions, {\n path: tabletPath,\n output_format: TYPED_OUTPUT_FORMAT,\n })\n .then((data) => {\n const contents = ypath.getValue(data, '');\n const tabletErrors = ypath.getValue(data, '/errors') || [];\n const replicationErrors = ypath.getValue(data, '/replication_errors') || {};\n\n const pivotKey = contents.pivot_key;\n const nextPivotKey = contents.next_pivot_key;\n const partitions = unorderedDynamicTable ? [] : preparePartitions(contents);\n\n const res = {\n pivotKey,\n nextPivotKey,\n partitions,\n tabletErrors,\n replicationErrors,\n tabletPath,\n cellLeadingPeer,\n unorderedDynamicTable,\n ...rest,\n };\n if (!unorderedDynamicTable) {\n return res;\n }\n\n const storesPath = `${tabletPath}/stores`;\n return ytApiV3Id\n .get(YTApiId.tabletStores, {\n path: storesPath,\n output_format: TYPED_OUTPUT_FORMAT,\n })\n .then((stores) => {\n return {...res, stores};\n });\n })\n .catch((error) => {\n return Promise.reject({\n message:\n 'Could not load tablet partitions information. ' + GENERIC_ERROR_MESSAGE,\n details: error,\n });\n });\n } else {\n return Promise.reject({\n message: 'Tablet cell has no leading peer. No information to show.',\n details: {},\n });\n }\n}\n\nfunction loadCellAttributes({id, attributes, tablePath, unorderedDynamicTable}) {\n if (attributes.cell_id) {\n return ytApiV3Id\n .get(YTApiId.tabletCellAttributes, {\n path: '//sys/tablet_cells/' + attributes.cell_id + '/@',\n })\n .then((tabletCellAttributes) => {\n const cellLeadingPeer = find_(\n tabletCellAttributes.peers,\n (peer) => peer.state === 'leading',\n );\n let tabletPath;\n\n if (id && cellLeadingPeer) {\n tabletPath = `//sys/cluster_nodes/${cellLeadingPeer.address}/orchid/tablet_cells/${attributes.cell_id}/tablets/${id}`;\n }\n\n return {\n id,\n attributes,\n tablePath,\n tabletCellAttributes,\n cellLeadingPeer,\n tabletPath,\n unorderedDynamicTable,\n };\n })\n .catch((error) => {\n return Promise.reject({\n message:\n \"Could not load tablet's tablet cell attributes.\" + GENERIC_ERROR_MESSAGE,\n details: error,\n });\n });\n } else {\n return Promise.reject({\n message: 'Tablet is not mounted. No information to show.',\n details: {},\n });\n }\n}\n\nfunction loadTableAttributes({id, attributes}) {\n return ytApiV3Id\n .get(YTApiId.tabletTableAttributes, {\n path: '#' + attributes.table_id + '/@',\n attributes: ['path', 'sorted', 'type', 'dynamic'],\n })\n .catch((error) => {\n return Promise.reject({\n message: \"Could not load tablet's table attributes. \" + GENERIC_ERROR_MESSAGE,\n details: error,\n });\n })\n .then((tableAttributes) => {\n const tablePath = ypath.getValue(tableAttributes, '/path');\n\n return {\n id,\n attributes,\n tablePath,\n unorderedDynamicTable: isUnorderedDynamicTable(tableAttributes),\n };\n });\n}\n\nfunction loadAttributes(id) {\n return ytApiV3Id\n .get(YTApiId.tabletAttribute, {path: '//sys/tablets/' + id + '/@'})\n .then((attributes) => {\n return {id, attributes};\n })\n .catch((error) => {\n return Promise.reject({\n message: 'Could not load tablet attributes. ' + GENERIC_ERROR_MESSAGE,\n details: error,\n });\n });\n}\n\nexport function loadTabletData(id) {\n return (dispatch) => {\n dispatch({type: LOAD_TABLET_DATA.REQUEST});\n\n return loadAttributes(id)\n .then(loadTableAttributes)\n .then(loadCellAttributes)\n .then(loadPartitions)\n .then((data) => {\n dispatch({\n type: LOAD_TABLET_DATA.SUCCESS,\n data,\n });\n })\n .catch((error) => {\n if (error.code !== yt.codes.CANCELLED) {\n dispatch({\n type: LOAD_TABLET_DATA.FAILURE,\n data: {error},\n });\n }\n });\n };\n}\n\nexport function changeContentMode(contentMode) {\n return {\n type: CHANGE_CONTENT_MODE,\n data: {contentMode},\n };\n}\n\nexport function changeActiveHistogram(activeHistogram) {\n return {\n type: CHANGE_ACTIVE_HISTOGRAM,\n data: {activeHistogram},\n };\n}\n\nexport function abortAndReset() {\n return (dispatch) => {\n requests.removeAllRequests();\n dispatch({type: LOAD_TABLET_DATA.CANCELLED});\n };\n}\n\nfunction isUnorderedDynamicTable(attributes) {\n const type = ypath.getValue(attributes, '/type');\n const dynamic = type === 'table' && ypath.getValue(attributes, '/dynamic');\n return dynamic && !ypath.getValue(attributes, '/sorted');\n}\n","export const partitionsTableItems = {\n index: {\n sort: true,\n caption: '#',\n align: 'right',\n get(partition) {\n return partition.index;\n },\n },\n state: {\n align: 'center',\n sort(partition) {\n return {\n normal: 0,\n splitting: 1,\n merging: 2,\n compacting: 3,\n sampling: 4,\n partitioning: 5,\n }[partition.state];\n },\n get(partition) {\n return partition.state;\n },\n },\n unmerged_row_count: {\n sort: true,\n align: 'right',\n get(partition) {\n return partition.unmergedRows;\n },\n },\n uncompressed_data_size: {\n sort: true,\n align: 'right',\n get(partition) {\n return partition.uncompressed;\n },\n },\n compressed_data_size: {\n sort: true,\n align: 'right',\n get(partition) {\n return partition.compressed;\n },\n },\n store_count: {\n sort: true,\n align: 'right',\n get(partition) {\n return partition.storeCount;\n },\n },\n sample_key_count: {\n sort: true,\n align: 'right',\n get(partition) {\n return partition.sampleKeyCount;\n },\n },\n pivot_key: {\n sort: false,\n align: 'left',\n get(partition) {\n return partition.pivotKey;\n },\n },\n actions: {\n caption: '',\n align: 'right',\n sort: false,\n },\n};\n\nexport const storesTableItems = {\n id: {\n align: 'left',\n show: true,\n sort(store) {\n return store.$value;\n },\n get(store) {\n return store.$value;\n },\n },\n store_state: {\n align: 'center',\n sort: true,\n show: true,\n get(store) {\n return store.storeState;\n },\n },\n row_count: {\n align: 'left',\n sort: true,\n show: true,\n get(store) {\n return store.rowCount;\n },\n },\n attributes: {\n caption: '',\n align: 'left',\n sort: false,\n },\n};\n","import mapValues_ from 'lodash/mapValues';\nimport map_ from 'lodash/map';\n\nimport hammer from '../../../common/hammer';\nimport {createSelector} from 'reselect';\nimport {histogramItems} from '../../../utils/tablet/tablet';\nimport {partitionsTableItems} from '../../../utils/tablet/table';\nimport {TABLET_PARTITIONS_TABLE_ID} from '../../../constants/tablet';\n\nconst getRawPartitions = (state) => state.tablet.tablet.partitions;\nconst getSortState = (state) => state.tables[TABLET_PARTITIONS_TABLE_ID];\nexport const getActiveHistogram = (state) => state.tablet.tablet.activeHistogram;\n\nexport const getSortedPartitions = createSelector(\n [getRawPartitions, getSortState],\n (partitions, sortState) => hammer.utils.sort(partitions, sortState, partitionsTableItems),\n);\n\nexport const getPartitions = createSelector(getSortedPartitions, (sortedPartitions) => {\n const aggregation = hammer.aggregation.prepare(sortedPartitions, [\n {name: 'stores', type: 'concat-array'},\n {name: 'storeCount', type: 'sum'},\n {name: 'unmergedRows', type: 'sum'},\n {name: 'uncompressed', type: 'sum'},\n {name: 'compressed', type: 'sum'},\n {name: 'sampleKeyCount', type: 'sum'},\n ])[0];\n\n aggregation.index = -2;\n\n return [aggregation, ...sortedPartitions];\n});\n\nconst getHistograms = createSelector(getRawPartitions, (partitions) =>\n mapValues_(histogramItems, (settings, key) => {\n const partitionsWithoutEden = partitions.slice(1);\n\n return {\n ...settings,\n dataSource: 'partitions',\n dataFormat: settings.format,\n caption: hammer.format['ReadableField'](key),\n dataName: settings.dataName || hammer.format['ReadableField'](key, {caps: 'none'}),\n data: map_(partitionsWithoutEden, partitionsTableItems[key].get),\n };\n }),\n);\n\nexport const getHistogram = createSelector(\n [getHistograms, getActiveHistogram],\n (histograms, activeHistogram) => histograms[activeHistogram],\n);\n","import ypath from '@ytsaurus/interface-helpers/lib/ypath';\n\nexport default class Store {\n constructor(data) {\n this.$value = data.$value;\n this.$attributes = data.$attributes;\n\n this.rowCount = Number(ypath.getValue(this.$attributes, '/row_count'));\n this.storeState = ypath.getValue(this.$attributes, '/store_state');\n\n // Dynamic\n this.poolSize = Number(ypath.getValue(this.$attributes, '/pool_size'));\n this.poolCapacity = Number(ypath.getValue(this.$attributes, '/pool_capacity'));\n this.lockCount = Number(ypath.getValue(this.$attributes, '/lock_count'));\n this.valueCount = Number(ypath.getValue(this.$attributes, '/value_count'));\n this.flushState = ypath.getValue(this.$attributes, '/flush_state');\n\n // Persistent\n this.uncompressed = Number(ypath.getValue(this.$attributes, '/uncompressed_data_size'));\n this.compressed = Number(ypath.getValue(this.$attributes, '/compressed_data_size'));\n this.compactionState = ypath.getValue(this.$attributes, '/compaction_state');\n this.preloadState = ypath.getValue(this.$attributes, '/preload_state');\n }\n}\n","import ypath from '@ytsaurus/interface-helpers/lib/ypath';\n\nimport map_ from 'lodash/map';\n\nimport Store from '../../utils/tablet/store';\n\nexport function prepareRelativePath(partitionIndex, storeId) {\n return (\n (partitionIndex === -1 ? '/eden' : '/partitions/' + partitionIndex) +\n '/stores' +\n (typeof storeId !== 'undefined' ? '/' + storeId : '')\n );\n}\n\nexport function preparePath(tabletPath, partitionIndex, storeId) {\n return tabletPath + prepareRelativePath(partitionIndex, storeId);\n}\n\nexport function prepareStores(stores, storesId) {\n return map_(\n stores,\n (store, index) =>\n new Store({\n $value: storesId[index],\n $attributes: ypath.getValue(stores[index], ''),\n }),\n );\n}\n","import yt from '@ytsaurus/javascript-wrapper/lib/yt';\n\nimport map_ from 'lodash/map';\n\nimport CancelHelper from '../../../utils/cancel-helper';\nimport {TYPED_OUTPUT_FORMAT} from '../../../constants/index';\nimport {LOAD_STORES} from '../../../constants/tablet';\nimport {preparePath, prepareStores} from '../../../utils/tablet/stores';\nimport {YTApiId, ytApiV3Id} from '../../../rum/rum-wrap-api';\nimport {splitBatchResults} from '../../../utils/utils';\n\nconst requests = new CancelHelper();\n\nexport function loadStoresData(storesId, index, unorderedDynamicTable) {\n return (dispatch, getState) => {\n dispatch({type: LOAD_STORES.REQUEST});\n\n const {tabletPath} = getState().tablet.tablet;\n\n const requests = map_(storesId, (storeId) => {\n const path = unorderedDynamicTable\n ? tabletPath + '/stores/' + storeId\n : preparePath(tabletPath, index, storeId);\n return {\n command: 'get',\n parameters: {\n path,\n },\n };\n });\n\n return ytApiV3Id\n .executeBatch(YTApiId.tabletStoresByIds, {\n parameters: {requests, output_format: TYPED_OUTPUT_FORMAT},\n })\n .then((data) => {\n const {error, results} = splitBatchResults(data, 'Failed to fetch stores');\n if (error) {\n return Promise.reject(error);\n }\n dispatch({\n type: LOAD_STORES.SUCCESS,\n data: {\n stores: prepareStores(results, storesId),\n },\n });\n })\n .catch((error) => {\n if (error.code !== yt.codes.CANCELLED) {\n dispatch({\n type: LOAD_STORES.FAILURE,\n data: {error},\n });\n }\n });\n };\n}\n\nexport function abortAndReset() {\n return (dispatch) => {\n requests.removeAllRequests();\n dispatch({type: LOAD_STORES.CANCELLED});\n };\n}\n","import hammer from '../../../common/hammer';\nimport {createSelector} from 'reselect';\nimport {storesTableItems} from '../../../utils/tablet/table';\nimport {TABLET_PARTITION_STORES_TABLE_ID} from '../../../constants/tablet';\n\nconst getRawStores = (state) => state.tablet.stores.stores;\nconst getSortState = (state) => state.tables[TABLET_PARTITION_STORES_TABLE_ID];\n\nexport const getStores = createSelector([getRawStores, getSortState], (stores, sortState) =>\n hammer.utils.sort(stores, sortState, storesTableItems),\n);\n","import React, {Component} from 'react';\nimport {connect} from 'react-redux';\nimport PropTypes from 'prop-types';\nimport cn from 'bem-cn-lite';\nimport hammer from '../../../common/hammer';\n\nimport Label from '../../../components/Label/Label';\nimport {Loader} from '@gravity-ui/uikit';\nimport {FormattedId} from '../../../components/formatters';\nimport MetaTable from '../../../components/MetaTable/MetaTable';\nimport ElementsTable from '../../../components/ElementsTable/ElementsTable';\nimport ErrorBoundary from '../../../components/ErrorBoundary/ErrorBoundary';\nimport LoadDataHandler from '../../../components/LoadDataHandler/LoadDataHandler';\n\nimport {abortAndReset, loadStoresData} from '../../../store/actions/tablet/stores';\nimport {TABLET_PARTITION_STORES_TABLE_ID} from '../../../constants/tablet';\nimport {storesTableItems} from '../../../utils/tablet/table';\nimport {getStores} from '../../../store/selectors/tablet/stores';\n\nimport './Stores.scss';\n\nconst block = cn('tablet-stores');\n\nconst PRELOAD_STATE_TO_THEME = {\n scheduled: 'warning',\n running: 'warning',\n complete: 'success',\n failed: 'danger',\n};\n\nconst FLUSH_STATE_TO_THEME = {\n complete: 'success',\n none: 'success',\n running: 'warning',\n};\n\nfunction stateToTheme(state, theme) {\n return theme[state] || 'default';\n}\n\nclass Stores extends Component {\n static propTypes = {\n // from parent\n index: PropTypes.number.isRequired,\n storesId: PropTypes.arrayOf(PropTypes.string).isRequired,\n stores: PropTypes.arrayOf(PropTypes.object).isRequired,\n\n // from connect\n loading: PropTypes.bool.isRequired,\n loaded: PropTypes.bool.isRequired,\n error: PropTypes.bool.isRequired,\n errorData: PropTypes.object.isRequired,\n\n loadStoresData: PropTypes.func.isRequired,\n abortAndReset: PropTypes.func.isRequired,\n\n unorderedDynamicTable: PropTypes.bool,\n };\n\n static renderStoreState(state) {\n return typeof state !== 'undefined' ? (\n <Label theme=\"success\" text={state} />\n ) : (\n hammer.format.NO_VALUE\n );\n }\n\n static renderPreloadState(state) {\n if (!state) {\n return hammer.format.NO_VALUE;\n }\n\n const theme = stateToTheme(state, PRELOAD_STATE_TO_THEME);\n return <Label theme={theme} text={state} />;\n }\n\n static renderFlushState(state) {\n if (!state) {\n return hammer.format.NO_VALUE;\n }\n\n const theme = stateToTheme(state, FLUSH_STATE_TO_THEME);\n return <Label theme={theme} text={state} />;\n }\n\n static renderAsId(store, columnName) {\n const id = storesTableItems[columnName].get(store);\n return <FormattedId id={id} />;\n }\n\n static renderAsState(store, columnName) {\n const state = storesTableItems[columnName].get(store);\n return Stores.renderStoreState(state);\n }\n\n static renderAsNumber(store, columnName) {\n const data = storesTableItems[columnName].get(store);\n return hammer.format['Number'](data);\n }\n\n static renderAsAttributes(store) {\n const dynamicStore = store.storeState.indexOf('dynamic') !== -1;\n const persistentStore = store.storeState.indexOf('persistent') !== -1;\n\n return (\n <MetaTable\n items={[\n {\n key: 'lock_count',\n value: hammer.format['Number'](store.lockCount),\n visible: dynamicStore,\n },\n {\n key: 'value_count',\n value: hammer.format['Number'](store.valueCount),\n visible: dynamicStore,\n },\n {\n key: 'pool_size',\n value: hammer.format['Bytes'](store.poolSize),\n visible: dynamicStore,\n },\n {\n key: 'pool_capacity',\n value: hammer.format['Bytes'](store.poolCapacity),\n visible: dynamicStore,\n },\n {\n key: 'flush_state',\n value: Stores.renderFlushState(store.flushState),\n visible: dynamicStore,\n },\n\n {\n key: 'uncompressed_data_size',\n value: hammer.format['Bytes'](store.uncompressed),\n visible: persistentStore,\n },\n {\n key: 'compressed_data_size',\n value: hammer.format['Bytes'](store.compressed),\n visible: persistentStore,\n },\n {\n key: 'compaction_state',\n value: Stores.renderFlushState(store.compactionState),\n visible: persistentStore,\n },\n {\n key: 'preload_state',\n value: Stores.renderPreloadState(store.preloadState),\n visible: persistentStore,\n },\n ]}\n />\n );\n }\n\n componentDidMount() {\n const {index, storesId, loadStoresData, unorderedDynamicTable} = this.props;\n\n loadStoresData(storesId, index, unorderedDynamicTable);\n }\n\n componentDidUpdate(prevProps) {\n const {index, storesId, loadStoresData, unorderedDynamicTable} = this.props;\n\n if (prevProps.index !== index) {\n loadStoresData(storesId, index, unorderedDynamicTable);\n }\n }\n\n componentWillUnmount() {\n this.props.abortAndReset();\n }\n\n get tableSets() {\n return {\n default: {\n items: ['id', 'store_state', 'row_count', 'attributes'],\n },\n };\n }\n\n get tableSettings() {\n return {\n css: 'tablet-partitions-stores',\n theme: 'light',\n cssHover: true,\n striped: false,\n virtual: false,\n tableId: TABLET_PARTITION_STORES_TABLE_ID,\n columns: {\n items: storesTableItems,\n sets: this.tableSets,\n mode: 'default',\n },\n templates: {\n id: Stores.renderAsId,\n store_state: Stores.renderAsState,\n row_count: Stores.renderAsNumber,\n attributes: Stores.renderAsAttributes,\n },\n computeKey: function (store) {\n return store.$value;\n },\n };\n }\n\n render() {\n const {loading, loaded, error, errorData, stores} = this.props;\n\n return (\n <div className={block({loading})}>\n <ErrorBoundary>\n <LoadDataHandler loaded={loaded} error={error} errorData={errorData}>\n {loading ? (\n <Loader />\n ) : (\n <ElementsTable {...this.tableSettings} items={stores} />\n )}\n </LoadDataHandler>\n </ErrorBoundary>\n </div>\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n const {loading, loaded, error, errorData} = state.tablet.stores;\n const stores = getStores(state);\n\n return {loading, loaded, error, errorData, stores};\n};\n\nconst mapDispatchToProps = {\n loadStoresData,\n abortAndReset,\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Stores);\n","import React from 'react';\n\nimport {DialogWrapper as Dialog} from '../../../components/DialogWrapper/DialogWrapper';\nimport Stores from './Stores';\n\ninterface Props {\n visible: boolean;\n unorderedDynamicTable?: boolean;\n stores: Array<string>;\n index: number;\n\n onClose: () => void;\n}\n\nfunction StoresDialog(props: Props) {\n const {visible, unorderedDynamicTable, stores, index, onClose} = props;\n const title = unorderedDynamicTable\n ? '/stores'\n : index === -1\n ? '/eden/stores'\n : `partitions/${index}/stores`;\n\n return (\n <Dialog open={visible} onClose={onClose} hasCloseButton>\n <Dialog.Header caption={title} />\n <Dialog.Body>\n <Stores\n storesId={stores}\n index={index}\n unorderedDynamicTable={unorderedDynamicTable}\n />\n </Dialog.Body>\n </Dialog>\n );\n}\n\nexport default React.memo(StoresDialog);\n","import {Sticky, StickyContainer} from 'react-sticky';\nimport React, {Component} from 'react';\nimport {connect} from 'react-redux';\nimport hammer from '../../../common/hammer';\nimport PropTypes from 'prop-types';\nimport unipika from '../../../common/thor/unipika';\nimport cn from 'bem-cn-lite';\n\nimport keys_ from 'lodash/keys';\n\nimport {Button} from '@gravity-ui/uikit';\n\nimport ClickableAttributesButton from '../../../components/AttributesButton/ClickableAttributesButton';\nimport ElementsTable from '../../../components/ElementsTable/ElementsTable';\nimport ErrorBoundary from '../../../components/ErrorBoundary/ErrorBoundary';\nimport RadioButton from '../../../components/RadioButton/RadioButton';\nimport {FormattedText} from '../../../components/formatters';\nimport Label from '../../../components/Label/Label';\n\nimport {TABLET_PARTITIONS_TABLE_ID} from '../../../constants/tablet';\nimport {changeContentMode} from '../../../store/actions/tablet/tablet';\nimport {getPartitions} from '../../../store/selectors/tablet/tablet';\nimport {partitionsTableItems} from '../../../utils/tablet/table';\nimport {HEADER_HEIGHT} from '../../../constants/index';\nimport StoresDialog from './StoresDialog';\n\nconst headingBlock = cn('elements-heading');\n\nclass Partitions extends Component {\n static propTypes = {\n // from parent\n block: PropTypes.func.isRequired,\n\n // from connect\n contentMode: PropTypes.string.isRequired,\n partitions: PropTypes.array.isRequired,\n tabletPath: PropTypes.string,\n\n changeContentMode: PropTypes.func.isRequired,\n };\n\n static renderIndex(item, columnName) {\n const index = partitionsTableItems[columnName].get(item);\n\n if (index === -1) {\n return 'Eden';\n } else if (index === -2) {\n return 'Aggregation';\n } else {\n return hammer.format['Number'](index);\n }\n }\n\n static renderState(item, columnName) {\n const state = partitionsTableItems[columnName].get(item);\n const theme = {\n normal: 'success',\n splitting: 'warning',\n merging: 'warning',\n compacting: 'warning',\n sampling: 'warning',\n partitioning: 'warning',\n }[state];\n\n return typeof state !== 'undefined' ? (\n <Label theme={theme} text={state} />\n ) : (\n hammer.format.NO_VALUE\n );\n }\n\n static renderAsBytes(item, columnName) {\n const data = partitionsTableItems[columnName].get(item);\n return hammer.format['Bytes'](data);\n }\n\n static renderAsNumber(item, columnName) {\n const data = partitionsTableItems[columnName].get(item);\n return hammer.format['Number'](data);\n }\n\n static renderPivotKey(item, columnName) {\n const pivotKey = partitionsTableItems[columnName].get(item);\n const unipikaClassName = 'unipika-wrapper unipika-wrapper_inline_yes';\n const unipikaSettings = {break: false, indent: 0};\n const text = unipika.prettyprint(pivotKey, unipikaSettings);\n const title = unipika.prettyprint(pivotKey, {\n ...unipikaSettings,\n asHTML: false,\n });\n\n return typeof pivotKey !== 'undefined' ? (\n <FormattedText asHTML className={unipikaClassName} text={text} title={title} />\n ) : (\n hammer.format.NO_VALUE\n );\n }\n\n state = {\n stores: {},\n };\n\n renderStores = (item) => {\n const storeCount = item.storeCount;\n const partitionIndex = item.index;\n const onClick = () => this.handleShowStores(item);\n\n return (\n <span>\n {partitionIndex >= -1 && storeCount > 0 && (\n <Button view=\"flat-secondary\" size=\"m\" onClick={onClick}>\n View\n </Button>\n )}\n {hammer.format['Number'](storeCount)}\n </span>\n );\n };\n\n renderActions = (item) => {\n const {tabletPath} = this.props;\n const partitionIndex = item.index;\n const path =\n tabletPath + (partitionIndex === -1 ? '/eden' : '/partitions/' + partitionIndex);\n\n return (\n partitionIndex >= -1 && (\n <ClickableAttributesButton\n title={String(partitionIndex)}\n exactPath={path}\n withTooltip\n />\n )\n );\n };\n\n get tableSets() {\n return {\n default: {\n items: [\n 'index',\n 'state',\n 'unmerged_row_count',\n 'uncompressed_data_size',\n 'compressed_data_size',\n 'store_count',\n 'sample_key_count',\n 'actions',\n ],\n },\n keys: {\n items: ['index', 'pivot_key', 'actions'],\n },\n };\n }\n\n get tableSettings() {\n const {contentMode, block} = this.props;\n\n return {\n css: block(),\n theme: 'light',\n cssHover: true,\n striped: false,\n tableId: TABLET_PARTITIONS_TABLE_ID,\n columns: {\n items: partitionsTableItems,\n sets: this.tableSets,\n mode: contentMode,\n },\n templates: {\n index: Partitions.renderIndex,\n state: Partitions.renderState,\n unmerged_row_count: Partitions.renderAsNumber,\n uncompressed_data_size: Partitions.renderAsBytes,\n compressed_data_size: Partitions.renderAsBytes,\n store_count: this.renderStores,\n sample_key_count: Partitions.renderAsNumber,\n pivot_key: Partitions.renderPivotKey,\n actions: this.renderActions,\n },\n computeKey(tablet) {\n return tablet.index;\n },\n itemMods(tablet) {\n if (tablet.index === -1) {\n return {\n eden: 'yes',\n };\n } else if (tablet.index === -2) {\n return {\n aggregation: 'yes',\n };\n }\n },\n };\n }\n\n handleModeChange = (evt) => this.props.changeContentMode(evt.target.value);\n handleCloseStores = () => this.setState({stores: {}});\n handleShowStores = (stores) => this.setState({stores});\n\n renderStoresDialog() {\n const visible = keys_(this.state.stores).length > 0;\n\n if (!visible) {\n return null;\n }\n\n const {block, unorderedDynamicTable} = this.props;\n const {stores, index} = this.state.stores;\n\n return (\n <StoresDialog\n unorderedDynamicTable={unorderedDynamicTable}\n block={block}\n stores={stores}\n index={index}\n visible={true}\n onClose={this.handleCloseStores}\n />\n );\n }\n\n renderTableOverview() {\n const {contentMode, block} = this.props;\n\n return (\n <Sticky topOffset={-HEADER_HEIGHT}>\n {({isSticky}) => (\n <div\n className={block('table-overview', {\n sticky: isSticky,\n })}\n >\n <RadioButton\n size=\"m\"\n value={contentMode}\n onChange={this.handleModeChange}\n name=\"tablet-partitions-content-mode\"\n items={[\n {value: 'default', text: 'Default'},\n {value: 'keys', text: 'Keys'},\n ]}\n />\n </div>\n )}\n </Sticky>\n );\n }\n\n renderPartitions() {\n const {partitions} = this.props;\n\n return (\n <ErrorBoundary>\n <div className={headingBlock({size: 'm'})}>Partitions</div>\n\n <StickyContainer>\n {this.renderTableOverview()}\n\n <ElementsTable {...this.tableSettings} items={partitions} />\n </StickyContainer>\n </ErrorBoundary>\n );\n }\n\n render() {\n const {block, unorderedDynamicTable} = this.props;\n\n return (\n <div className={block('partitions')}>\n {unorderedDynamicTable ? null : this.renderPartitions()}\n {this.renderStoresDialog()}\n </div>\n );\n }\n}\n\nconst mapDispatchToProps = {\n changeContentMode,\n};\n\nconst mapStateToProps = (state) => {\n const {contentMode, tabletPath, unorderedDynamicTable} = state.tablet.tablet;\n const partitions = getPartitions(state);\n\n return {contentMode, tabletPath, partitions, unorderedDynamicTable};\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Partitions);\n","import {useDispatch, useSelector} from 'react-redux';\nimport React, {useCallback, useState} from 'react';\nimport hammer from '../../../common/hammer';\nimport PropTypes from 'prop-types';\nimport ypath from '@ytsaurus/interface-helpers/lib/ypath';\n\nimport keys_ from 'lodash/keys';\nimport map_ from 'lodash/map';\n\nimport {Button} from '@gravity-ui/uikit';\nimport {DialogWrapper as Dialog} from '../../../components/DialogWrapper/DialogWrapper';\n\nimport ErrorBoundary from '../../../components/ErrorBoundary/ErrorBoundary';\nimport MetaTable, {Template} from '../../../components/MetaTable/MetaTable';\nimport Histogram from '../../../components/Histogram/Histogram';\nimport {size} from '../../../components/MetaTable/presets';\nimport Error from '../../../components/Error/Error';\nimport Label from '../../../components/Label/Label';\nimport Yson from '../../../components/Yson/Yson';\n\nimport {histogramItems} from '../../../utils/tablet/tablet';\nimport {getActiveHistogram, getHistogram} from '../../../store/selectors/tablet/tablet';\nimport {changeActiveHistogram} from '../../../store/actions/tablet/tablet';\nimport {Tab as NavigationTab} from '../../../constants/navigation';\nimport {Page} from '../../../constants/index';\nimport {genTabletCellBundlesCellUrl} from '../../../utils/tablet_cell_bundles';\nimport StoresDialog from './StoresDialog';\nimport {Tooltip} from '../../../components/Tooltip/Tooltip';\nimport {makeComponentsNodesUrl} from '../../../utils/app-url';\n\nfunction makeMetaItem(format, data, key, visible) {\n return {\n key,\n value: hammer.format[format](data[key]),\n visible,\n };\n}\n\nOverview.propTypes = {\n // from parent\n id: PropTypes.string.isRequired,\n block: PropTypes.func.isRequired,\n};\n\nconst renderErrorsDialog = (errors, handleClose) => {\n const visible = errors.length > 0;\n\n return (\n <Dialog size=\"l\" open={visible} onClose={handleClose} hasButtonClose autoclosable>\n <Dialog.Header caption=\"Tablet errors\" />\n <Dialog.Body>\n {map_(errors, (err, index) => {\n const error = {\n ...err,\n message: ypath.getValue(err, '/message'),\n };\n return <Error error={error} key={index} />;\n })}\n </Dialog.Body>\n </Dialog>\n );\n};\n\nconst renderReplicationErrorsDialog = (replicationErrors, handleClose) => {\n const visible = keys_(replicationErrors).length > 0;\n\n return (\n <Dialog size=\"l\" open={visible} onClose={handleClose} hasButtonClose autoclosable>\n <Dialog.Header caption=\"Replication errors\" />\n <Dialog.Body>\n {map_(replicationErrors, (err, replica) => {\n const error = {\n ...err,\n message: ypath.getValue(err, '/message'),\n };\n const message = `Replica ID: ${replica}`;\n return <Error message={message} error={error} key={replica} />;\n })}\n </Dialog.Body>\n </Dialog>\n );\n};\n\nfunction Overview({id, block}) {\n const dispatch = useDispatch();\n const {\n attributes,\n cellLeadingPeer,\n tablePath,\n tabletPath,\n tabletErrors,\n replicationErrors,\n pivotKey,\n nextPivotKey,\n stores,\n unorderedDynamicTable,\n } = useSelector((state) => state.tablet.tablet);\n\n const {mediumList, cluster} = useSelector((state) => state.global);\n const [errors, setErrorsVisibility] = useState([]);\n const [replicaErrors, setReplicationErrorsVisibility] = useState({});\n\n const [cellId, state, index, statistics, performance] = ypath.getValues(attributes, [\n '/cell_id',\n '/state',\n '/index',\n '/statistics',\n '/performance_counters',\n ]);\n const [unmergedRowCount, chunkCount] = ypath.getValues(statistics, [\n '/unmerged_row_count',\n '/chunk_count',\n ]);\n\n const [storesVisible, setStoresVisible] = React.useState(false);\n const toggleStoresVisibility = React.useCallback(() => {\n setStoresVisible(!storesVisible);\n }, [stores, setStoresVisible, storesVisible]);\n\n const resourcesMeta = !statistics\n ? []\n : [\n makeMetaItem('Number', statistics, 'partition_count', !unorderedDynamicTable),\n {\n key: 'store_count',\n value: (() => {\n const disableStoresDialog = statistics.store_count >= 200;\n return (\n <span>\n {hammer.format.Number(statistics.store_count)}\n {unorderedDynamicTable && (\n <>\n &nbsp;&nbsp;\n <Tooltip\n disabled={!disableStoresDialog}\n content=\"Too many stores to show\"\n >\n <Button\n disabled={disableStoresDialog}\n view=\"flat-secondary\"\n onClick={toggleStoresVisibility}\n >\n View\n </Button>\n </Tooltip>\n </>\n )}\n </span>\n );\n })(),\n },\n makeMetaItem('Number', statistics, 'overlapping_store_count', !unorderedDynamicTable),\n makeMetaItem('Number', statistics, 'preload_completed_store_count'),\n makeMetaItem('Number', statistics, 'preload_failed_store_count'),\n makeMetaItem('Number', statistics, 'preload_pending_store_count'),\n ];\n\n const performanceMeta = !performance\n ? []\n : [\n makeMetaItem('Number', performance, 'dynamic_row_read_rate'),\n makeMetaItem('Number', performance, 'dynamic_row_lookup_rate'),\n makeMetaItem('Number', performance, 'dynamic_row_write_rate'),\n makeMetaItem('Number', performance, 'dynamic_row_delete_rate'),\n makeMetaItem('Number', performance, 'static_chunk_row_read_rate'),\n makeMetaItem('Number', performance, 'static_chunk_row_lookup_rate'),\n makeMetaItem('Number', performance, 'unmerged_row_read_rate', !unorderedDynamicTable),\n makeMetaItem('Number', performance, 'merged_row_read_rate', !unorderedDynamicTable),\n ];\n\n const stateTheme = {\n none: 'default',\n unmounted: 'default',\n mounted: 'info',\n frozen: 'info',\n freezing: 'warning',\n unfreezing: 'warning',\n mounting: 'warning',\n unmounting: 'warning',\n mixed: 'danger',\n }[state];\n\n const activeHistogram = useSelector(getActiveHistogram);\n const histogram = useSelector(getHistogram);\n\n const handleHistogramChange = useCallback(\n (histogram) => dispatch(changeActiveHistogram(histogram)),\n [dispatch, activeHistogram],\n );\n const handleErrorsClick = useCallback(() => setErrorsVisibility(tabletErrors), [tabletErrors]);\n const handleReplicationErrorsClick = useCallback(\n () => setReplicationErrorsVisibility(replicationErrors),\n [replicationErrors],\n );\n\n const handleErrorsCloseClick = useCallback(() => setErrorsVisibility([]), []);\n const handleReplicationErrorsCloseClick = useCallback(\n () => setReplicationErrorsVisibility({}),\n [],\n );\n\n return (\n <ErrorBoundary>\n {storesVisible && (\n <StoresDialog\n visible={true}\n onClose={toggleStoresVisibility}\n index={0}\n unorderedDynamicTable={unorderedDynamicTable}\n stores={Object.keys(stores)}\n />\n )}\n <div className={block('overview')}>\n <div className={block('meta')}>\n <MetaTable\n items={[\n [\n {\n key: 'id',\n value: <Template.Id id={id} />,\n },\n {\n key: 'tablet_cell_id',\n label: 'Tablet cell id',\n value: (\n <Template.Link\n withClipboard\n text={cellId}\n shiftText={tabletPath}\n hoverContent={'Hold SHIFT-key to copy full path'}\n url={genTabletCellBundlesCellUrl(cellId, cluster)}\n />\n ),\n },\n {\n key: 'table_path',\n value: (\n <Template.Link\n withClipboard\n text={tablePath}\n url={`/${cluster}/${Page.NAVIGATION}?path=${tablePath}&mode=${NavigationTab.TABLETS}`}\n />\n ),\n },\n {\n key: 'tablet cell leader node',\n value: (\n <Template.Link\n withClipboard\n text={cellLeadingPeer.address}\n url={makeComponentsNodesUrl({\n cluster,\n host: cellLeadingPeer.address,\n })}\n />\n ),\n visible: Boolean(cellLeadingPeer),\n },\n {\n key: 'errors',\n value: (\n <span>\n {hammer.format['Number'](tabletErrors.length)}\n <Button\n view=\"flat-secondary\"\n size=\"m\"\n onClick={handleErrorsClick}\n >\n View\n </Button>\n </span>\n ),\n visible: tabletErrors.length > 0,\n },\n {\n key: 'replication_errors',\n value: (\n <span>\n {hammer.format['Number'](\n keys_(replicationErrors).length,\n )}\n <Button\n view=\"flat-secondary\"\n size=\"m\"\n onClick={handleReplicationErrorsClick}\n >\n View\n </Button>\n </span>\n ),\n visible: keys_(replicationErrors).length > 0,\n },\n {\n key: 'state',\n value: (\n <Label\n theme={stateTheme}\n text={hammer.format['ReadableField'](state)}\n />\n ),\n },\n {\n key: 'index',\n value: hammer.format['Number'](index),\n },\n {\n key: 'pivot_key',\n value: (\n <Yson\n value={pivotKey}\n settings={{\n indent: 0,\n break: false,\n }}\n />\n ),\n visible: Boolean(pivotKey),\n },\n {\n key: 'next_pivot_key',\n value: (\n <Yson\n value={nextPivotKey}\n settings={{\n indent: 0,\n break: false,\n }}\n />\n ),\n visible: Boolean(nextPivotKey),\n },\n ],\n [\n {\n key: 'unmerged_row_count',\n value: hammer.format['Number'](unmergedRowCount),\n visible: !unorderedDynamicTable,\n },\n {\n key: 'chunks',\n value: hammer.format['Number'](chunkCount),\n },\n ...size(statistics, mediumList),\n ],\n ]}\n />\n\n <MetaTable items={[performanceMeta, resourcesMeta]} />\n </div>\n\n {!unorderedDynamicTable && (\n <Histogram\n handleHistogramChange={handleHistogramChange}\n activeHistogram={activeHistogram}\n histogramItems={histogramItems}\n histogram={histogram}\n />\n )}\n\n {renderErrorsDialog(errors, handleErrorsCloseClick)}\n {renderReplicationErrorsDialog(replicaErrors, handleReplicationErrorsCloseClick)}\n </div>\n </ErrorBoundary>\n );\n}\n\nexport default Overview;\n","import {useDispatch, useSelector} from 'react-redux';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport cn from 'bem-cn-lite';\n\nimport LoadDataHandler from '../../../components/LoadDataHandler/LoadDataHandler';\nimport {Loader} from '@gravity-ui/uikit';\n\nimport Partitions from './Partitions';\nimport Overview from './Overview';\n\nimport {abortAndReset, loadTabletData} from '../../../store/actions/tablet/tablet';\nimport {useUpdater} from '../../../hooks/use-updater';\n\nimport './TabletDetails.scss';\n\nconst block = cn('tablet-details');\n\nTabletDetails.propTypes = {\n // from react-router\n match: PropTypes.shape({\n params: PropTypes.shape({\n id: PropTypes.string.isRequired,\n }),\n }),\n};\n\nfunction TabletDetails({match}) {\n const dispatch = useDispatch();\n\n const {loading, loaded, error, errorData} = useSelector((state) => state.tablet.tablet);\n const {id} = match.params;\n\n const {updateFn, destructFn} = React.useMemo(() => {\n return {\n updateFn: () => dispatch(loadTabletData(id)),\n destructFn: () => dispatch(abortAndReset()),\n };\n }, [dispatch, id]);\n\n useUpdater(updateFn, {timeout: 15 * 1000, destructFn});\n\n const initialLoading = loading && !loaded;\n\n return (\n <div className={block()}>\n <div className={block('content', {loading: initialLoading})}>\n {initialLoading ? (\n <Loader />\n ) : (\n <LoadDataHandler loaded={loaded} error={error} errorData={errorData}>\n <Overview id={id} block={block} />\n <Partitions block={block} />\n </LoadDataHandler>\n )}\n </div>\n </div>\n );\n}\n\nexport default TabletDetails;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport {Route, Switch, withRouter} from 'react-router';\n\nimport ErrorBoundary from '../../components/ErrorBoundary/ErrorBoundary';\nimport TabletDetails from '../../pages/tablet/TabletDetails/TabletDetails';\n\nTablet.propTypes = {\n // from react-router\n match: PropTypes.shape({\n path: PropTypes.string.isRequired,\n }).isRequired,\n};\n\nfunction Tablet({match}) {\n return (\n <div className=\"elements-main-section\">\n <ErrorBoundary>\n <Switch>\n <Route path={`${match.path}/:id/`} component={TabletDetails} />\n </Switch>\n </ErrorBoundary>\n </div>\n );\n}\n\nexport default withRouter(Tablet);\n","import React from 'react';\nimport cn from 'bem-cn-lite';\n\nimport {RowWithName} from '../../containers/AppNavigation/TopRowContent/SectionName';\nimport {Page} from '../../constants';\nimport {EditableAsText} from '../../components/EditableAsText/EditableAsText';\nimport {getCluster} from '../../store/selectors/global';\nimport {useSelector} from 'react-redux';\nimport {useRouteMatch} from 'react-router';\n\nimport './TabletTopRowContent.scss';\nimport {Breadcrumbs, BreadcrumbsItem} from '../../components/Breadcrumbs';\nimport {getAppBrowserHistory} from '../../store/window-store';\nconst block = cn('tablet-top-row-content');\n\nfunction TabletTopRowContent() {\n return (\n <RowWithName page={Page.TABLET}>\n <TabletBreadcrumbs />\n </RowWithName>\n );\n}\n\nexport default React.memo(TabletTopRowContent);\n\nfunction TabletBreadcrumbs() {\n const {\n params: {id},\n } = useRouteMatch<{id: string}>();\n const cluster = useSelector(getCluster);\n\n const handleEdit = React.useCallback(\n (tabletId?: string) => {\n getAppBrowserHistory().push(`/${cluster}/${Page.TABLET}/${tabletId || ''}`);\n },\n [cluster],\n );\n\n return (\n <>\n <EditableAsText className={block('editable')} text={id} onChange={handleEdit}>\n <Breadcrumbs showRoot>\n <BreadcrumbsItem>{id}</BreadcrumbsItem>\n </Breadcrumbs>\n </EditableAsText>\n </>\n );\n}\n","import {Page} from '../../../shared/constants/settings';\nimport {YT} from '../../config/yt-config';\nimport type {Tab as NavigationTab} from '../../constants/navigation';\nimport {ValueOf} from '../../types';\n\nimport {TabletErrorsByPathState} from '../../store/reducers/navigation/tabs/tablet-errors/tablet-errors-by-path';\nimport {getNavigationParams} from '../../store/reducers/navigation/url-mapping';\nimport {makeURLSearchParams} from './utils';\n\nexport function makeNavigationLink(params: {\n path: string;\n cluster?: string;\n navmode?: ValueOf<typeof NavigationTab>;\n teMode?: 'request_errors';\n teTime?: TabletErrorsByPathState['timeRangeFilter'];\n teMethods?: Array<string>;\n}) {\n const {cluster, ...rest} = params;\n const res = `/${cluster || YT.cluster}/${Page.NAVIGATION}`;\n const search = makeURLSearchParams(rest, getNavigationParams()).toString();\n return search ? `${res}?${search}` : res;\n}\n","import {LocationParameters} from '../../store/location';\n\nexport function makeURLSearchParams<T extends object>(params: T, info: LocationParameters) {\n const res = new URLSearchParams();\n Object.keys(params).reduce((acc, k) => {\n const value = params[k as keyof T];\n if (k in info) {\n if (info[k].options?.serialize) {\n const tmp = info[k].options?.serialize?.(value);\n if (tmp !== undefined) {\n res.append(k, tmp + '');\n }\n } else {\n res.append(k, value + '');\n }\n }\n return acc;\n }, res);\n return res;\n}\n","import {Page} from '../../../shared/constants/settings';\nimport {Tab as ComponentsTab} from '../../constants/components/main';\nimport {YT} from '../../config/yt-config';\n\nexport * from './navigation';\n\nexport function makeComponentsNodesUrl({host, cluster}: {host?: string; cluster?: string} = {}) {\n return host\n ? `/${cluster || YT.cluster}/${Page.COMPONENTS}/${ComponentsTab.NODES}/${host}`\n : `/${cluster || YT.cluster}/${Page.COMPONENTS}/${ComponentsTab.NODES}`;\n}\n\nexport function makeProxyUrl(cluster: string, address: string) {\n return `/${cluster}/${Page.COMPONENTS}/${ComponentsTab.RPC_PROXIES}?host=${address}`;\n}\n\nexport function makeSchedulingUrl({\n pool,\n poolTree,\n cluster,\n}: {\n pool: string;\n poolTree: string;\n cluster?: string;\n}) {\n return `/${cluster || YT.cluster}/${Page.SCHEDULING}?pool=${pool}&poolTree=${poolTree}`;\n}\n\nexport function makeAccountsUrl(account: string, cluster?: string) {\n return `/${cluster || YT.cluster}/${Page.ACCOUNTS}?account=${account}`;\n}\n","import UIFactory from '../../UIFactory';\nimport {Page} from '../../constants';\nimport {TabletsTab} from '../../constants/tablets';\nimport {OrderType, multiSortWithUndefined, orderTypeToOrderK} from '../sort-helpers';\n\nexport function tabletCellBundleDashboardUrl(cluster: string, bundle: string) {\n return UIFactory.makeUrlForTabletCellBundleDashboard(cluster, bundle);\n}\n\nexport function genTabletCellBundlesCellUrl(cellId: string, cluster?: string) {\n const prefix = cluster ? `/${cluster}/` : '';\n return `${prefix}${Page.TABLET_CELL_BUNDLES}/${TabletsTab.TABLET_CELLS}?id=${cellId}`;\n}\n\nfunction compareBundlesByAccount<T extends Record<string, any>>(left: T, right: T) {\n if (\n left.changelog_account === right.changelog_account &&\n left.snapshot_account === right.snapshot_account\n ) {\n return 0;\n }\n\n return left.changelog_account < right.changelog_account\n ? -1\n : left.snapshot_account < right.snapshot_account\n ? -1\n : 1;\n}\n\nexport const sortTableBundles = <T extends Record<string, any>>({\n bundles,\n column,\n columnsSortable,\n order,\n}: {\n bundles: T[];\n column: keyof T;\n columnsSortable: Set<string>;\n order: OrderType;\n}) => {\n let sorted: T[] = [];\n\n const {orderK, undefinedOrderK} = orderTypeToOrderK(order);\n\n if (column === 'changelog_account') {\n sorted = [...bundles].sort(compareBundlesByAccount);\n } else if (column === 'nodes') {\n sorted = [...bundles].sort(({nodes: l = []}, {nodes: r = []}) => l.length - r.length);\n } else if (columnsSortable.has(column as string)) {\n return multiSortWithUndefined(bundles, [{key: column, orderK, undefinedOrderK}]);\n }\n\n return (order as string).includes('asc') ? sorted : sorted.reverse();\n};\n","import { I18N } from '@gravity-ui/i18n';\nimport en from './keysets/en.json';\nimport ru from './keysets/ru.json';\nconst i18nFactory = new I18N();\nconst EN = 'en';\nconst RU = 'ru';\ni18nFactory.registerKeysets(EN, en);\ni18nFactory.registerKeysets(RU, ru);\nconst i18n = i18nFactory.i18n.bind(i18nFactory);\nexport { i18nFactory, i18n };\n","export const CHARTKIT_ERROR_CODE = {\n NO_DATA: 'ERR.CK.NO_DATA',\n INVALID_DATA: 'ERR.CK.INVALID_DATA',\n UNKNOWN: 'ERR.CK.UNKNOWN_ERROR',\n UNKNOWN_PLUGIN: 'ERR.CK.UNKNOWN_PLUGIN',\n TOO_MANY_LINES: 'ERR.CK.TOO_MANY_LINES',\n};\nexport class ChartKitError extends Error {\n constructor({ originalError, message, code = CHARTKIT_ERROR_CODE.UNKNOWN, } = {}) {\n super(message);\n this.isCustomError = true;\n this.code = code;\n if (originalError) {\n this.name = originalError.name;\n this.stack = originalError.stack;\n }\n }\n}\nexport const isChartKitError = (error) => {\n return error instanceof Error && 'isCustomError' in error;\n};\n","import isObject from 'lodash/isObject';\nimport mergeWith from 'lodash/mergeWith';\n// @ts-ignore\nexport function mergeSettingStrategy(objValue, srcValue, key) {\n if (key === 'plugins') {\n const currentPlugins = [...objValue];\n const newPlugins = [...srcValue];\n // modify existing plugins\n let newSettingsPlugins = currentPlugins.map((currentPlugin) => {\n const newPluginIndex = newPlugins.findIndex(({ type }) => type === currentPlugin.type);\n if (newPluginIndex !== -1) {\n const newPlugin = newPlugins[newPluginIndex];\n newPlugins.splice(newPluginIndex, 1);\n return {\n type: currentPlugin.type,\n renderer: newPlugin.renderer,\n };\n }\n return currentPlugin;\n });\n // add new plugins if it exist after modified\n if (newPlugins.length > 0) {\n newSettingsPlugins = [...newSettingsPlugins, ...newPlugins];\n }\n return newSettingsPlugins;\n }\n if (isObject(objValue)) {\n return mergeWith(objValue, srcValue, mergeSettingStrategy);\n }\n return srcValue;\n}\n","import { configure } from '@gravity-ui/uikit';\nimport get from 'lodash/get';\nimport mergeWith from 'lodash/mergeWith';\nimport { i18nFactory } from '../../i18n';\nimport { EventEmitter } from './eventEmitter';\nimport { mergeSettingStrategy } from './mergeSettingStrategy';\nexport const settingsEventEmitter = new EventEmitter();\nconst removeUndefinedValues = (data) => {\n return Object.entries(data).reduce((acc, [key, value]) => {\n if (typeof value !== 'undefined') {\n acc[key] = value;\n }\n return acc;\n }, {});\n};\nconst updateLang = (lang) => {\n configure({ lang });\n i18nFactory.setLang(lang);\n};\nclass ChartKitSettings {\n constructor() {\n this.settings = {\n plugins: [],\n lang: 'en',\n };\n updateLang(this.get('lang'));\n }\n get(key) {\n return get(this.settings, key);\n }\n set(updates) {\n const filteredUpdates = removeUndefinedValues(updates);\n this.settings = mergeWith(this.settings, filteredUpdates, mergeSettingStrategy);\n if (filteredUpdates.lang) {\n const lang = filteredUpdates.lang || this.get('lang');\n updateLang(lang);\n settingsEventEmitter.dispatch('change-lang', lang);\n }\n }\n}\nexport const settings = new ChartKitSettings();\n","export class EventEmitter {\n constructor() {\n this.events = {};\n }\n on(type, event) {\n if (this.events[type]) {\n this.events[type].push(event);\n }\n else {\n this.events[type] = [event];\n }\n }\n off(type, eventId) {\n if (this.events[type]) {\n this.events[type] = this.events[type].filter(({ id }) => id !== eventId);\n }\n }\n dispatch(type, args) {\n if (this.events[type]) {\n this.events[type].forEach(({ action }) => {\n action(args);\n });\n }\n }\n}\n","import { withNaming } from '@bem-react/classname';\nexport const NAMESPACE = 'chartkit-';\nexport const cn = withNaming({ e: '__', m: '_' });\nexport const block = withNaming({ n: NAMESPACE, e: '__', m: '_' });\n","export const randomString = (length, chars) => {\n let result = '';\n for (let i = length; i > 0; --i) {\n result += chars[Math.floor(Math.random() * chars.length)];\n }\n return result;\n};\nexport const getRandomCKId = () => `ck.${randomString(10, '0123456789abcdefghijklmnopqrstuvwxyz')}`;\n"],"names":["connect","openAttributesModal","_ref","title","_ref$getPathProps","getPathProps","path","exactPath","attribute","attributes","_ref$withTooltip","withTooltip","_ref$tooltipProps","tooltipProps","placement","content","rest","_objectWithoutProperties","_excluded","_jsx","AttributesButton","_objectSpread","onClick","pathProps","block","cn","EditableAsText","props","children","onChange","text","className","withControls","size","disableEdit","cancelOnClose","openOnClick","renderEditor","onModeChange","_props$saveButtonView","saveButtonView","_props$cancelButtonVi","cancelButtonView","_React$useState","React","_React$useState2","_slicedToArray","editMode","setEditMode","_React$useState3","_React$useState4","input","setInput","useEffect","handleChangeMode","useCallback","isEdit","closeEditMode","startTextEdit","handleChange","val","applyValue","closeAndResetValue","onApply","value","handleKeyDown","evt","key","controlSize","_jsxs","_Fragment","onBlur","TextInput","autoFocus","onUpdate","onKeyDown","Button","view","extraProps","onMouseDown","Icon","awesome","type","EditButton","_ref$size","getHistogram","state","histogram","createGetQuartiles","createSelector","hammer","stat","quartiles","data","createGetPDF","pdf","createGetECDF","ecdf","steps","unshift","x","min","y","push","bucketNumber","bucketSize","HistogramChart","format","dataName","lineOnly","yagrData","xFormat","formatLib","Bytes","Number","_ref2","_ref5","_ref6","_step","buckets","timeline","NaN","_iterator","_createForOfIteratorHelper","s","n","done","item","getX","getY","err","e","f","length","graphs","color","getSerieColor","step","getLineOnlyData","_ref3","_ref4","undefined","lineData","j","i","_buckets$i","bestX","itemX","Array","isArray","calcBestY","Math","scale","renderOptions","gap","getColumnData","res","libraryConfig","axes","values","_d","map","side","grid","show","y1","scales","max","tooltip","render","tooltipData","_first$rows","_first$rows2","_second$rows","_renderDefaultTooltip","_tooltipData$scales","first","second","columnValue","rows","originalValue","lineValue","_ref7","colValue","colX0","colX1","lineX","lp","compact_","concat","join","renderDefaultTooltip","digits","sources","YagrChartKit","v","left","right","ly","ry","lx","Histogram","activeHistogram","handleHistogramChange","histogramItems","isDataGood","params","isDatailedLine","setDetailed","Select","options","map_","keys_","width","Checkbox","checked","q25","q50","q75","quartilesProps","PropTypes","pdfProps","valueMax","valueMin","ecdfProps","getQuartiles","getPDF","getECDF","getIsDataGood","pdfData","ecdfData","toaster","Toaster","LoadDataHandler","_Component","_inherits","_super","_createSuper","_classCallCheck","apply","arguments","_createClass","_this$props","this","error","loaded","errorData","add","theme","name","autoHiding","message","NO_VALUE","actions","label","showErrorPopup","_this$props2","_this$props2$alwaysSh","alwaysShowError","Error","Component","typedMemo","ErrorBoundary","constructor","super","resetError","setState","getDerivedStateFromError","componentDidCatch","_a","_b","onError","call","componentDidUpdate","prevProps","code","NO_DATA","i18n","toString","getErrorMessage","renderError","b","renderPluginLoader","pluginLoader","Object","assign","ChartKitComponent","widgetRef","instanceRef","id","propsId","isMobile","restProps","ckId","lang","settings","get","plugin","find","iteratedPlugin","UNKNOWN_PLUGIN","ChartComponent","renderer","reflow","details","current","fallback","mobile","ref","YagrPlugin","set","plugins","COLORS","serieIndex","renderText","mix","elem","mods","textProps","asHTML","dangerouslySetInnerHTML","__html","unipika","decode","String","prepareTextProps","printColumnAsTimeDurationWithMs","columnName","column","getColumn","printColumnAsReadableField","printColumnAsTime","ColumnAsTime","printColumnAsError","_typeof","Link","hideOopsMsg","asNumber","__default__","_templates","templateId","templates","keys","reduce","newTemplates","wrapRenderMethods","Partition","$value","index","$attributes","pivotKey","ypath","isEden","compressed","uncompressed","unmergedRows","sampleKeyCount","stores","storeCount","unmerged_row_count","uncompressed_data_size","store_count","requests","CancelHelper","loadPartitions","cellLeadingPeer","tabletPath","unorderedDynamicTable","ytApiV3Id","YTApiId","tabletPartitions","output_format","TYPED_OUTPUT_FORMAT","then","contents","tabletErrors","replicationErrors","pivot_key","nextPivotKey","next_pivot_key","partitions","partition","eden","extend_","preparePartitions","storesPath","tabletStores","Promise","reject","GENERIC_ERROR_MESSAGE","loadCellAttributes","tablePath","cell_id","tabletCellAttributes","find_","peers","peer","address","loadTableAttributes","tabletTableAttributes","table_id","tableAttributes","isUnorderedDynamicTable","partitionsTableItems","sort","caption","align","normal","splitting","merging","compacting","sampling","partitioning","compressed_data_size","sample_key_count","storesTableItems","store","store_state","storeState","row_count","rowCount","getRawPartitions","tablet","getActiveHistogram","getSortedPartitions","tables","TABLET_PARTITIONS_TABLE_ID","sortState","utils","getPartitions","sortedPartitions","aggregation","prepare","_toConsumableArray","getHistograms","mapValues_","partitionsWithoutEden","slice","dataSource","dataFormat","caps","histograms","Store","poolSize","poolCapacity","lockCount","valueCount","flushState","compactionState","preloadState","prepareStores","storesId","getStores","TABLET_PARTITION_STORES_TABLE_ID","PRELOAD_STATE_TO_THEME","scheduled","running","complete","failed","FLUSH_STATE_TO_THEME","none","stateToTheme","Stores","loadStoresData","abortAndReset","default","items","css","cssHover","striped","virtual","tableId","columns","sets","tableSets","mode","renderAsId","renderAsState","renderAsNumber","renderAsAttributes","computeKey","_this$props3","loading","Loader","ElementsTable","tableSettings","Label","FormattedId","renderStoreState","dynamicStore","indexOf","persistentStore","MetaTable","visible","renderFlushState","renderPreloadState","mapDispatchToProps","dispatch","getState","LOAD_STORES","REQUEST","storeId","partitionIndex","prepareRelativePath","preparePath","command","parameters","executeBatch","tabletStoresByIds","_splitBatchResults","splitBatchResults","results","SUCCESS","yt","CANCELLED","FAILURE","removeAllRequests","_state$tablet$stores","StoresDialog","onClose","Dialog","open","hasCloseButton","Header","Body","headingBlock","Partitions","_this","_len","args","_key","renderStores","handleShowStores","renderActions","ClickableAttributesButton","handleModeChange","changeContentMode","target","handleCloseStores","contentMode","renderIndex","renderState","renderAsBytes","renderPivotKey","itemMods","_this$state$stores","_this2","Sticky","topOffset","HEADER_HEIGHT","isSticky","sticky","RadioButton","StickyContainer","renderTableOverview","_this$props4","renderPartitions","renderStoresDialog","unipikaSettings","break","indent","prettyprint","FormattedText","CHANGE_CONTENT_MODE","_state$tablet$tablet","makeMetaItem","renderErrorsDialog","errors","handleClose","hasButtonClose","autoclosable","renderReplicationErrorsDialog","replica","disableStoresDialog","useDispatch","_useSelector","useSelector","_useSelector2","global","mediumList","cluster","_useState","useState","_useState2","setErrorsVisibility","_useState3","_useState4","replicaErrors","setReplicationErrorsVisibility","_ypath$getValues","_ypath$getValues2","cellId","statistics","performance","_ypath$getValues3","_ypath$getValues4","unmergedRowCount","chunkCount","storesVisible","setStoresVisible","toggleStoresVisibility","resourcesMeta","Tooltip","disabled","performanceMeta","stateTheme","unmounted","mounted","frozen","freezing","unfreezing","mounting","unmounting","mixed","CHANGE_ACTIVE_HISTOGRAM","changeActiveHistogram","handleErrorsClick","handleReplicationErrorsClick","handleErrorsCloseClick","handleReplicationErrorsCloseClick","Template","Id","withClipboard","shiftText","hoverContent","url","genTabletCellBundlesCellUrl","Page","NAVIGATION","NavigationTab","TABLETS","makeComponentsNodesUrl","host","Boolean","Yson","match","_React$useMemo","updateFn","LOAD_TABLET_DATA","tabletAttribute","loadAttributes","loadTabletData","destructFn","useUpdater","timeout","initialLoading","Overview","withRouter","Switch","Route","component","TabletDetails","TabletTopRowContent","RowWithName","page","TABLET","TabletBreadcrumbs","useRouteMatch","getCluster","handleEdit","tabletId","getAppBrowserHistory","Breadcrumbs","showRoot","BreadcrumbsItem","makeNavigationLink","YT","search","info","URLSearchParams","acc","k","_info$k$options","serialize","_info$k$options2","_info$k$options2$seri","tmp","append","makeURLSearchParams","getNavigationParams","COMPONENTS","ComponentsTab","NODES","makeProxyUrl","RPC_PROXIES","makeSchedulingUrl","pool","poolTree","SCHEDULING","makeAccountsUrl","account","ACCOUNTS","tabletCellBundleDashboardUrl","bundle","UIFactory","makeUrlForTabletCellBundleDashboard","prefix","TABLET_CELL_BUNDLES","TabletsTab","TABLET_CELLS","compareBundlesByAccount","changelog_account","snapshot_account","sortTableBundles","bundles","columnsSortable","order","sorted","_orderTypeToOrderK","orderTypeToOrderK","orderK","undefinedOrderK","_ref2$nodes","nodes","l","_ref3$nodes","r","has","multiSortWithUndefined","includes","reverse","i18nFactory","registerKeysets","bind","CHARTKIT_ERROR_CODE","INVALID_DATA","UNKNOWN","TOO_MANY_LINES","ChartKitError","originalError","isCustomError","stack","mergeSettingStrategy","objValue","srcValue","currentPlugins","newPlugins","newSettingsPlugins","currentPlugin","newPluginIndex","findIndex","newPlugin","splice","settingsEventEmitter","events","on","event","off","eventId","filter","forEach","action","updateLang","configure","setLang","updates","filteredUpdates","entries","withNaming","m","getRandomCKId","chars","result","floor","random","randomString"],"sourceRoot":""}