@ytsaurus/ui 1.62.0 → 1.63.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/public/build/assets-manifest.json +69 -69
- package/dist/public/build/css/7540.b48a154e.chunk.css +2 -0
- package/dist/public/build/css/7540.b48a154e.chunk.css.map +1 -0
- package/dist/public/build/css/{cluster-page-wrapper.0b62c90f.chunk.css → cluster-page-wrapper.0b6a786f.chunk.css} +2 -2
- package/dist/public/build/css/cluster-page-wrapper.0b6a786f.chunk.css.map +1 -0
- package/dist/public/build/css/{main.a99b07c5.css → main.070fd473.css} +2 -2
- package/dist/public/build/css/main.070fd473.css.map +1 -0
- package/dist/public/build/css/navigation.0a141599.chunk.css +2 -0
- package/dist/public/build/css/navigation.0a141599.chunk.css.map +1 -0
- package/dist/public/build/css/{system.17b114fc.chunk.css → system.221e5d53.chunk.css} +2 -2
- package/dist/public/build/css/{system.17b114fc.chunk.css.map → system.221e5d53.chunk.css.map} +1 -1
- package/dist/public/build/js/1110.a7382226.chunk.js +2 -0
- package/dist/public/build/js/1110.a7382226.chunk.js.map +1 -0
- package/dist/public/build/js/1394.011da2d1.chunk.js +2 -0
- package/dist/public/build/js/1394.011da2d1.chunk.js.map +1 -0
- package/dist/public/build/js/2447.35b478a9.chunk.js +2 -0
- package/dist/public/build/js/2447.35b478a9.chunk.js.map +1 -0
- package/dist/public/build/js/4364.aa1ab5fb.chunk.js +2 -0
- package/dist/public/build/js/4364.aa1ab5fb.chunk.js.map +1 -0
- package/dist/public/build/js/5451.50d8f2b2.chunk.js +3 -0
- package/dist/public/build/js/5451.50d8f2b2.chunk.js.LICENSE.txt +5 -0
- package/dist/public/build/js/5451.50d8f2b2.chunk.js.map +1 -0
- package/dist/public/build/js/5770.0d8fda01.chunk.js +2 -0
- package/dist/public/build/js/5770.0d8fda01.chunk.js.map +1 -0
- package/dist/public/build/js/{7077.b11a392b.chunk.js → 7077.7dab612c.chunk.js} +2 -2
- package/dist/public/build/js/{7077.b11a392b.chunk.js.map → 7077.7dab612c.chunk.js.map} +1 -1
- package/dist/public/build/js/7959.e0d47dec.chunk.js +2 -0
- package/dist/public/build/js/7959.e0d47dec.chunk.js.map +1 -0
- package/dist/public/build/js/{8460.b18e700b.chunk.js → 8460.2b27e2b7.chunk.js} +2 -2
- package/dist/public/build/js/{8460.b18e700b.chunk.js.map → 8460.2b27e2b7.chunk.js.map} +1 -1
- package/dist/public/build/js/{8778.8d098a1f.chunk.js → 8778.d97acdd6.chunk.js} +2 -2
- package/dist/public/build/js/8778.d97acdd6.chunk.js.map +1 -0
- package/dist/public/build/js/accounts.badfc837.chunk.js +2 -0
- package/dist/public/build/js/{accounts.63268a11.chunk.js.map → accounts.badfc837.chunk.js.map} +1 -1
- package/dist/public/build/js/{acl.aa7a9df7.chunk.js → acl.cd1fe761.chunk.js} +2 -2
- package/dist/public/build/js/acl.cd1fe761.chunk.js.map +1 -0
- package/dist/public/build/js/cluster-menu.bf57160d.chunk.js +2 -0
- package/dist/public/build/js/cluster-menu.bf57160d.chunk.js.map +1 -0
- package/dist/public/build/js/cluster-page-wrapper.c9e6c27c.chunk.js +2 -0
- package/dist/public/build/js/cluster-page-wrapper.c9e6c27c.chunk.js.map +1 -0
- package/dist/public/build/js/job.31c91355.chunk.js +2 -0
- package/dist/public/build/js/job.31c91355.chunk.js.map +1 -0
- package/dist/public/build/js/main.61fc9935.js +3 -0
- package/dist/public/build/js/main.61fc9935.js.map +1 -0
- package/dist/public/build/js/{manage-tokens.c996037c.chunk.js → manage-tokens.e9106aad.chunk.js} +2 -2
- package/dist/public/build/js/{manage-tokens.c996037c.chunk.js.map → manage-tokens.e9106aad.chunk.js.map} +1 -1
- package/dist/public/build/js/navigation.22bd542f.chunk.js +2 -0
- package/dist/public/build/js/navigation.22bd542f.chunk.js.map +1 -0
- package/dist/public/build/js/{odin.ddcd41de.chunk.js → odin.7eefabce.chunk.js} +2 -2
- package/dist/public/build/js/{odin.ddcd41de.chunk.js.map → odin.7eefabce.chunk.js.map} +1 -1
- package/dist/public/build/js/operations.3feb2deb.chunk.js +2 -0
- package/dist/public/build/js/operations.3feb2deb.chunk.js.map +1 -0
- package/dist/public/build/js/{query-results.99804b61.chunk.js → query-results.4c207fef.chunk.js} +2 -2
- package/dist/public/build/js/{query-results.99804b61.chunk.js.map → query-results.4c207fef.chunk.js.map} +1 -1
- package/dist/public/build/js/query-tracker.badbc586.chunk.js +2 -0
- package/dist/public/build/js/query-tracker.badbc586.chunk.js.map +1 -0
- package/dist/public/build/js/{runtime.8be0e5c6.js → runtime.f98c3e55.js} +2 -2
- package/dist/public/build/js/{runtime.8be0e5c6.js.map → runtime.f98c3e55.js.map} +1 -1
- package/dist/public/build/js/scheduling.73b1257c.chunk.js +2 -0
- package/dist/public/build/js/scheduling.73b1257c.chunk.js.map +1 -0
- package/dist/public/build/js/{system.6843a1a3.chunk.js → system.25e9136a.chunk.js} +2 -2
- package/dist/public/build/js/system.25e9136a.chunk.js.map +1 -0
- package/dist/public/build/js/tablet.7401a5ec.chunk.js +2 -0
- package/dist/public/build/js/tablet.7401a5ec.chunk.js.map +1 -0
- package/dist/public/build/js/{yt-df-dialog.6b4604c0.chunk.js → yt-df-dialog.69fc013a.chunk.js} +2 -2
- package/dist/public/build/js/{yt-df-dialog.6b4604c0.chunk.js.map → yt-df-dialog.69fc013a.chunk.js.map} +1 -1
- package/dist/public/build/manifest.json +64 -64
- package/dist/shared/ui-settings.d.ts +0 -1
- package/package.json +3 -3
- package/dist/public/build/css/7540.56f97199.chunk.css +0 -2
- package/dist/public/build/css/7540.56f97199.chunk.css.map +0 -1
- package/dist/public/build/css/cluster-page-wrapper.0b62c90f.chunk.css.map +0 -1
- package/dist/public/build/css/main.a99b07c5.css.map +0 -1
- package/dist/public/build/css/navigation.adb62abd.chunk.css +0 -2
- package/dist/public/build/css/navigation.adb62abd.chunk.css.map +0 -1
- package/dist/public/build/js/1110.d02f593c.chunk.js +0 -2
- package/dist/public/build/js/1110.d02f593c.chunk.js.map +0 -1
- package/dist/public/build/js/1394.f5423b9c.chunk.js +0 -2
- package/dist/public/build/js/1394.f5423b9c.chunk.js.map +0 -1
- package/dist/public/build/js/2447.d0a0e8ad.chunk.js +0 -2
- package/dist/public/build/js/2447.d0a0e8ad.chunk.js.map +0 -1
- package/dist/public/build/js/4364.277e1cfa.chunk.js +0 -2
- package/dist/public/build/js/4364.277e1cfa.chunk.js.map +0 -1
- package/dist/public/build/js/5770.c5499ce7.chunk.js +0 -2
- package/dist/public/build/js/5770.c5499ce7.chunk.js.map +0 -1
- package/dist/public/build/js/7891.2ce56be7.chunk.js +0 -3
- package/dist/public/build/js/7891.2ce56be7.chunk.js.LICENSE.txt +0 -14
- package/dist/public/build/js/7891.2ce56be7.chunk.js.map +0 -1
- package/dist/public/build/js/7959.eb292cbd.chunk.js +0 -2
- package/dist/public/build/js/7959.eb292cbd.chunk.js.map +0 -1
- package/dist/public/build/js/8778.8d098a1f.chunk.js.map +0 -1
- package/dist/public/build/js/accounts.63268a11.chunk.js +0 -2
- package/dist/public/build/js/acl.aa7a9df7.chunk.js.map +0 -1
- package/dist/public/build/js/cluster-menu.e484a2ca.chunk.js +0 -2
- package/dist/public/build/js/cluster-menu.e484a2ca.chunk.js.map +0 -1
- package/dist/public/build/js/cluster-page-wrapper.8c8aa8a1.chunk.js +0 -2
- package/dist/public/build/js/cluster-page-wrapper.8c8aa8a1.chunk.js.map +0 -1
- package/dist/public/build/js/job.5ed7166b.chunk.js +0 -2
- package/dist/public/build/js/job.5ed7166b.chunk.js.map +0 -1
- package/dist/public/build/js/main.00809a7d.js +0 -3
- package/dist/public/build/js/main.00809a7d.js.map +0 -1
- package/dist/public/build/js/navigation.c3108a21.chunk.js +0 -2
- package/dist/public/build/js/navigation.c3108a21.chunk.js.map +0 -1
- package/dist/public/build/js/operations.b353981f.chunk.js +0 -2
- package/dist/public/build/js/operations.b353981f.chunk.js.map +0 -1
- package/dist/public/build/js/query-tracker.fba0ec95.chunk.js +0 -2
- package/dist/public/build/js/query-tracker.fba0ec95.chunk.js.map +0 -1
- package/dist/public/build/js/scheduling.115669fe.chunk.js +0 -2
- package/dist/public/build/js/scheduling.115669fe.chunk.js.map +0 -1
- package/dist/public/build/js/system.6843a1a3.chunk.js.map +0 -1
- package/dist/public/build/js/tablet.40ad9054.chunk.js +0 -2
- package/dist/public/build/js/tablet.40ad9054.chunk.js.map +0 -1
- /package/dist/public/build/js/{main.00809a7d.js.LICENSE.txt → main.61fc9935.js.LICENSE.txt} +0 -0
@@ -0,0 +1,2 @@
|
|
1
|
+
"use strict";(self.webpackChunk_ytsaurus_ui=self.webpackChunk_ytsaurus_ui||[]).push([[8403],{97536:(e,t,r)=>{r.d(t,{A:()=>u});var n=r(40319),a=r(18801),o=(r(77810),r(51806)),s=r(60620),i=r(64922),l=["view","size"];function u(e){var t=e.view,r=void 0===t?"flat-secondary":t,u=e.size,c=void 0===u?"m":u,d=(0,a.A)(e,l);return(0,i.jsx)(o.A,(0,n.A)((0,n.A)({view:r,size:c},d),{},{children:(0,i.jsx)(s.A,{awesome:"at"})}))}},14880:(e,t,r)=>{r.d(t,{A:()=>c});var n=r(40319),a=r(18801),o=(r(77810),r(15647)),s=r(97536),i=r(57614),l=r(64922),u=["title","getPathProps","path","exactPath","attribute","attributes","openAttributesModal","withTooltip","tooltipProps"];const c=(0,o.Ng)(null,{openAttributesModal:i.V6})((function(e){var t=e.title,r=e.getPathProps,o=void 0===r?function(){return{}}:r,i=e.path,c=e.exactPath,d=e.attribute,m=e.attributes,p=e.openAttributesModal,h=e.withTooltip,v=void 0===h||h,f=e.tooltipProps,b=void 0===f?{placement:"bottom-end",content:"Show attributes"}:f,g=(0,a.A)(e,u);return(0,l.jsx)(s.A,(0,n.A)((0,n.A)({},g),{},{tooltipProps:b,withTooltip:v,onClick:function(){var e=(0,n.A)({path:i,exactPath:c},o());p((0,n.A)((0,n.A)({title:t},e),{},{attribute:d,attributes:m}))}}))}))},43279:(e,t,r)=>{r.d(t,{l:()=>m,c:()=>d});var n=r(9736),a=r(77810),o=r(76872),s=r(65692),i=r(60620),l=r(51806),u=r(64922),c=(0,o.A)("editable-as-text");function d(e){var t=e.children,r=e.onChange,o=e.text,d=e.className,m=e.withControls,p=e.size,h=e.disableEdit,v=e.cancelOnClose,f=e.openOnClick,b=e.renderEditor,g=e.onModeChange,y=e.saveButtonView,A=void 0===y?"normal":y,x=e.cancelButtonView,_=void 0===x?"normal":x,N=a.useState(!1),k=(0,n.A)(N,2),w=k[0],j=k[1],C=a.useState(o||""),S=(0,n.A)(C,2),E=S[0],T=S[1];(0,a.useEffect)((function(){T(o||"")}),[o]);var D=(0,a.useCallback)((function(e){g&&g(e),j(e)}),[g]),O=a.useCallback((function(){D(!1),v&&T(o||"")}),[v,D,o]),P=(0,a.useCallback)((function(){D(!0)}),[D]),V=a.useCallback((function(e){return T(null!=e?e:"")}),[T]),z=(0,a.useCallback)((function(){D(!1),r(E)}),[r,D,E]),M=(0,a.useCallback)((function(){D(!1),T(o||"")}),[D,o]),L=(0,a.useCallback)((function(e){D(!1),r(e)}),[D,r]),I=a.useCallback((function(e){"Enter"===e.key&&z(),"Escape"===e.key&&M()}),[z,M]),R=p||"m";return(0,u.jsx)("div",{className:c(null,[d||"",w?"edit":""]),onClick:function(){!w&&f&&P()},children:w?(0,u.jsxs)(u.Fragment,{children:[b?b({value:E,onChange:V,className:c("control"),onBlur:O,onApply:L}):(0,u.jsx)(s.k,{className:c("control"),autoFocus:!0,size:R,value:E,onUpdate:V,onKeyDown:I,onBlur:O}),m&&(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(l.A,{className:c("control"),view:A,extraProps:{onMouseDown:z},size:R,children:(0,u.jsx)(i.A,{awesome:"check",size:R})}),(0,u.jsx)(l.A,{className:c("control"),view:_,extraProps:{onMouseDown:M},size:R,children:(0,u.jsx)(i.A,{awesome:"times",size:R})})]})]}):(0,u.jsxs)(a.Fragment,{children:[t,!h&&(0,u.jsx)(l.A,{className:c("control",{type:"edit"}),view:"outlined",onClick:P,size:R,children:(0,u.jsx)(i.A,{awesome:"pencil",size:R})})]})})}function m(e){var t=e.onClick,r=e.size,n=void 0===r?"m":r;return(0,u.jsx)(l.A,{className:c("edit-btn"),onClick:t,size:n,children:(0,u.jsx)(i.A,{awesome:"pencil"})})}},9105:(e,t,r)=>{r.d(t,{A:()=>z});var n=r(9736),a=r(40319),o=r(15647),s=r(75826),i=r.n(s),l=r(73822),u=r(76872),c=r(77810),d=r(65304),m=r.n(d),p=r(27528),h=r.n(p),v=r(18472),f=function(e,t){return t.histogram},b=function(){return(0,v.Mz)(f,(function(e){return l.A.stat.quartiles(e.data)}))},g=function(){return(0,v.Mz)(f,(function(e){return l.A.stat.pdf(e.data)}))},y=function(){return(0,v.Mz)([f,g()],(function(e,t){var r=l.A.stat.ecdf(e.data);return r.steps.unshift({x:t.min,y:0}),r.steps.push({x:t.min+t.bucketNumber*t.bucketSize,y:100}),r}))},A=r(70353),x=r(29347),_=r.n(x),N=r(64675),k=r(64772),w=r(64922);function j(e){var t=e.className,r=e.pdf,o=e.ecdf,s=e.format,i=e.dataName,l=e.lineOnly,u=c.useMemo((function(){var e="Bytes"===s?k.A.Bytes:k.A.Number,t=l?function(e,t){var r,n=e.min,a=e.buckets,o=e.bucketSize,s=t.steps,i=[n-.1*o],l=[NaN],u=(0,A.A)(s);try{for(u.s();!(r=u.n()).done;){var c=r.value;i.push(S(c)),l.push(E(c))}}catch(e){u.e(e)}finally{u.f()}return i.push(n+(.1+o)*a.length),l.push(NaN),{timeline:i,graphs:[{type:"line",data:l,color:(0,N.g)(1)}],step:NaN}}(r,o):function(e,t){for(var r=e.buckets,o=e.min,s=e.bucketSize,i=t.steps,l=[o-.1*s],u=[void 0],c=[void 0],d=0,m=0;m<r.length;++m){var p=(0,n.A)(r[m],2),h=p[0],v=p[1],f=h+s/2;for(u.push(v),l.push(f);d<i.length;){var b=i[d],g=S(b);if(g===f){c[m+1]=Array.isArray(b)?b[1]:b.y;break}if(!(void 0===g||g<f)){c[m+1]=T(f,i[Math.min(i.length-1,d-1)],i[d]);break}++d}}return l.push(o+(.1+s)*r.length),u.push(void 0),c.push(void 0),{graphs:[{type:"line",data:c,scale:"y1",color:(0,N.g)(1)},(0,a.A)({type:"column",data:u,color:(0,N.g)(0)},{renderOptions:{size:[1],gap:1}})],timeline:l,step:s}}(r,o),u=t.timeline,c=t.graphs,d=t.step,m={data:{timeline:u,graphs:c},libraryConfig:{axes:{x:{values:function(t,r){return r.map(e)},side:"bottom",grid:{show:!1}},y1:{side:"right",show:!1},y:{side:"left",show:!1}},scales:{y1:{min:0,max:100},y:{min:0}},tooltip:{render:function(t){var r,a,o,s,u=t.x,c=(0,n.A)(t.scales,2),m=c[0],p=c[1],h=l||null==m||null===(r=m.rows)||void 0===r||null===(r=r[0])||void 0===r?void 0:r.originalValue,v=l?null==m||null===(a=m.rows)||void 0===a||null===(a=a[0])||void 0===a?void 0:a.originalValue:null==p||null===(o=p.rows)||void 0===o||null===(o=o[0])||void 0===o?void 0:o.originalValue;return null!==(s=function(e){var t=e.colValue,r=e.colX0,n=e.colX1,a=e.lineValue,o=e.lineX,s=e.dataName,i=e.lineOnly?"":"~";return _()([void 0!==t?"<b>".concat(t,"</b> partitions contain in range from <b>").concat(r,"</b> to <b>").concat(n,"</b> - ").concat(s):void 0,void 0!==a?"<b>".concat(i).concat(a,"</b> of tablets conains <b>").concat(i).concat(o,"</b> or less"):void 0]).join("<br/>")}({colValue:void 0!==h?k.A.Number(h):void 0,colX0:e(u-d/2),colX1:e(u+d/2),lineValue:void 0!==v?k.A.Number(v,{digits:2})+"%":void 0,lineX:e(u),dataName:i,lineOnly:l}))&&void 0!==s?s:"-"}}},sources:{}};return m}),[r,o,s,l]);return(0,w.jsx)("div",{className:t,children:(0,w.jsx)(N.A,{type:"yagr",data:u})})}const C=c.memo(j);function S(e){return Array.isArray(e)?e[0]:null==e?void 0:e.x}function E(e){return Array.isArray(e)?e[1]:null==e?void 0:e.y}function T(e,t,r){var n=E(t),a=E(r);if(void 0===n)return a;if(void 0===a)return n;var o=S(t);return n+(e-o)/(S(r)-o)*(a-n)}var D=r(60090),O=r(16413),P=(0,u.A)("histogram");function V(e){var t=e.activeHistogram,r=e.handleHistogramChange,o=e.histogramItems,s=e.histogram,i=e.quartiles,u=e.pdf,d=e.ecdf,p=e.isDataGood,v=(0,a.A)((0,a.A)({},s),{},{pdf:u,ecdf:d}),f=c.useState(!1),b=(0,n.A)(f,2),g=b[0],y=b[1];return(0,w.jsxs)("div",{className:P(),children:[(0,w.jsxs)("div",{className:P("toolbar"),children:[(0,w.jsx)(D.l,{value:[t],onUpdate:function(e){return r(e[0])},options:h()(m()(o),(function(e){return{value:e,content:e}})),width:"max"}),(0,w.jsx)(O.S,{className:P("detailed"),checked:g,onUpdate:y,children:"Detailed line"})]}),p?(0,w.jsx)(C,(0,a.A)((0,a.A)({className:P("chart")},v),{},{lineOnly:g})):(0,w.jsx)("div",{className:P("bad-data"),children:(0,w.jsx)("p",{className:P("bad-data-message"),children:"Could not draw a descriptive chart with given data."})}),(0,w.jsxs)("ul",{className:P("quartiles"),children:[(0,w.jsxs)("li",{className:P("quartiles-item"),children:["Min –"," ",(0,w.jsx)("span",{className:P("quartiles-count"),children:l.A.format[s.format](i.min)})]}),(0,w.jsxs)("li",{className:P("quartiles-item"),children:["Q25% –"," ",(0,w.jsx)("span",{className:P("quartiles-count"),children:l.A.format[s.format](i.q25)})]}),(0,w.jsxs)("li",{className:P("quartiles-item"),children:["Q50% –"," ",(0,w.jsx)("span",{className:P("quartiles-count"),children:l.A.format[s.format](i.q50)})]}),(0,w.jsxs)("li",{className:P("quartiles-item"),children:["Q75% –"," ",(0,w.jsx)("span",{className:P("quartiles-count"),children:l.A.format[s.format](i.q75)})]}),(0,w.jsxs)("li",{className:P("quartiles-item"),children:["Max –"," ",(0,w.jsx)("span",{className:P("quartiles-count"),children:l.A.format[s.format](i.max)})]})]})]})}V.quartilesProps=i().shape({min:i().number,q25:i().number,q50:i().number,q75:i().number,max:i().number}),V.pdfProps=i().shape({bucketNumber:i().number,bucketSize:i().number,max:i().number,min:i().number,valueMax:i().number,valueMin:i().number,quartiles:V.quartilesProps,buckets:i().array}),V.ecdfProps=i().shape({min:i().number,max:i().number,steps:i().array});const z=(0,o.Ng)((function(){var e=b(),t=g(),r=y(),n=(0,v.Mz)([g(),y(),b()],(function(e,t,r){return e.min!==e.max&&!(t.steps.length<5)&&r.q75-r.q25!=0}));return function(a,o){return{quartiles:e(a,o),pdf:t(a,o),ecdf:r(a,o),isDataGood:n(a,o)}}}))(V)},63588:(e,t,r)=>{r.d(t,{A:()=>h});var n=r(29121),a=r(12937),o=r(10785),s=r(26718),i=r(77810),l=r(78894),u=r(82060),c=r(73822),d=r(48971),m=r(64922),p=new l.I,h=function(e){(0,o.A)(r,e);var t=(0,s.A)(r);function r(){return(0,n.A)(this,r),t.apply(this,arguments)}return(0,a.A)(r,[{key:"componentDidUpdate",value:function(){var e=this.props,t=e.error,r=e.loaded,n=e.errorData;t&&r&&p.add({theme:"danger",name:"network",autoHiding:5e5,title:"Oops! something went wrong.",content:n?n.message:c.A.format.NO_VALUE,actions:[{label:" view",onClick:function(){return(0,d.eW)(n)}}]})}},{key:"render",value:function(){var e=this.props,t=e.alwaysShowError,r=void 0!==t&&t,n=e.error,a=e.errorData,o=e.loaded,s=e.children;return!n||!r&&o?s:(0,m.jsx)(u.A,{error:a})}}]),r}(i.Component)},38226:(e,t,r)=>{r.d(t,{A:()=>g});var n,a=r(29121),o=r(12937),s=r(10785),i=r(26718),l=r(68175),u=r(77810),c=r(76872),d=r(64772),m=r(60620),p=r(34380),h=r(44458),v=r(64922),f=(0,c.A)("sort-icon"),b=(n={},(0,l.A)(n,"","sort"),(0,l.A)(n,"asc","sort-up"),(0,l.A)(n,"desc","sort-down"),(0,l.A)(n,"asc-undefined","arrow-to-bottom"),(0,l.A)(n,"desc-undefined","arrow-from-bottom"),(0,l.A)(n,"undefined-asc","arrow-from-top"),(0,l.A)(n,"undefined-desc","arrow-to-top"),n),g=function(e){(0,s.A)(r,e);var t=(0,i.A)(r);function r(){var e;(0,a.A)(this,r);for(var n=arguments.length,o=new Array(n),s=0;s<n;s++)o[s]=arguments[s];return(e=t.call.apply(t,[this].concat(o))).onClick=function(){var t=e.props,r=t.order,n=t.onChange,a=t.allowUnordered,o=t.withUndefined;n&&n((0,h.$N)(r,a,o))},e}return(0,o.A)(r,[{key:"render",value:function(){var e=this.props,t=e.className,r=e.label,n=e.order,a=e.hidden,o=b[n||""];return(0,v.jsxs)("span",{className:f({hidden:a},t),onClick:this.onClick,children:[r&&(0,v.jsx)("span",{className:f("label"),children:r}),(0,v.jsx)(p.m,{className:f("icon"),content:n?d.A.ReadableField(n):"Unordered",children:(0,v.jsx)(m.A,{awesome:o,face:"solid"})})]})}}]),r}(u.Component)},64675:(e,t,r)=>{r.d(t,{A:()=>x,g:()=>A});var n=r(52789),a=r(56911),o=r(77810),s=r(50256),i=r(32286),l=r(87605);const u=o.memo;var c=r(67901);class d extends o.Component{constructor(){super(...arguments),this.state={error:void 0},this.resetError=()=>{this.state.error&&this.setState({error:void 0})}}static getDerivedStateFromError(e){return{error:e}}componentDidCatch(){var e,t;const{error:r}=this.state;r&&(null===(t=(e=this.props).onError)||void 0===t||t.call(e,{error:r}))}componentDidUpdate(e){if(e.data!==this.props.data){const{error:e}=this.state;e&&"code"in e&&e.code===i.iY.NO_DATA&&this.resetError()}}render(){const{error:e}=this.state;if(e){const t=function(e){const t="code"in e&&e.code;return(e.message||t||(0,s.R)("error","label_unknown-error")).toString()}(e);return this.props.renderError?this.props.renderError({error:e,message:t,resetError:this.resetError}):o.createElement("div",null,t)}return this.props.children}}var m=r(91326);const p=(0,c.o)("loader"),h=e=>{var{renderPluginLoader:t}=e,r=(0,a.Tt)(e,["renderPluginLoader"]);const n=null==t?void 0:t();return void 0!==n?n:o.createElement("div",{className:p()},o.createElement(m.a,Object.assign({},r)))},v=(0,c.cn)("chartkit"),f=e=>{const t=o.useRef(),{instanceRef:r,id:u,type:c,isMobile:d,renderPluginLoader:m}=e,p=(0,a.Tt)(e,["instanceRef","id","type","isMobile","renderPluginLoader"]),f=o.useMemo((()=>(0,l.d)()),[]),b=u||f,g=n.W.get("lang"),y=n.W.get("plugins").find((e=>e.type===c));if(!y)throw new i.R({code:i.iY.UNKNOWN_PLUGIN,message:(0,s.R)("error","label_unknown-plugin",{type:c})});const A=y.renderer;return o.useImperativeHandle(r,(()=>({reflow(e){var r;(null===(r=t.current)||void 0===r?void 0:r.reflow)&&t.current.reflow(e)}})),[]),o.createElement(o.Suspense,{fallback:o.createElement(h,{renderPluginLoader:m})},o.createElement("div",{className:v({mobile:d},"chartkit-theme_common")},o.createElement(A,Object.assign({ref:t,id:b,lang:g},p))))},b=u(o.forwardRef((function(e,t){return o.createElement(d,{onError:e.onError,data:e.data,renderError:e.renderError},o.createElement(f,Object.assign({instanceRef:t},e)))}))),g={type:"yagr",renderer:o.lazy((()=>Promise.all([r.e(3735),r.e(1195)]).then(r.bind(r,91195))))};r(49096),n.W.set({plugins:[g]});var y=["rgb(77, 162, 241)","rgb(255, 61, 100)"];function A(e){return y[e%y.length]}const x=b},8842:(e,t,r)=>{r.d(t,{go:()=>A,De:()=>p,c3:()=>s.A,l6:()=>v,b9:()=>x,Vd:()=>_});var n=r(77810),a=r(73822),o=r(64922),s=r(28722),i=r(40319),l=r(18801),u=r(64965),c=r(53332),d=r(76426),m=["state","theme","className","text","match","onClick"];const p=(0,u.y)((function(e){var t=e.state,r=e.theme,a=void 0===r?"ghost":r,u=e.className,p=e.text,h=e.match,v=e.onClick,f=(0,l.A)(e,m),b=(0,c.JA)((0,i.A)({cluster:h.params.cluster},t));return(0,o.jsx)(d.A,{routed:!0,url:b,theme:a,onClick:v,className:u,children:n.isValidElement(p)?p:(0,o.jsx)(s.A,(0,i.A)({text:p},f))})}));var h=["asLink"];function v(e){var t=e.asLink,r=void 0!==t&&t,n=(0,l.A)(e,h);return r?(0,o.jsx)(p,(0,i.A)({},n)):(0,o.jsx)(s.A,(0,i.A)({},n))}var f=r(9736),b=r(76872),g=r(28640),y=(0,b.A)("table-formatters-id");function A(e){var t=e.id,r=(0,n.useState)(!1),a=(0,f.A)(r,2),s=a[0],i=a[1];return(0,o.jsxs)("div",{className:y({hovered:s?"yes":"no"}),onMouseEnter:function(){return i(!0)},onMouseLeave:function(){return i(!1)},children:[(0,o.jsx)("span",{className:"elements-ellipsis",children:t}),s&&(0,o.jsx)("div",{className:y("clipboard-button-wrapper"),children:(0,o.jsx)(g.A,{view:"flat-secondary",size:"m",text:t})})]})}function x(e,t){var r=this.props.columns[t];return a.A.format.Bytes(r.get(e))}function _(e,t){var r=this.props.columns[t];return a.A.format.Number(r.get(e))}},29241:(e,t,r)=>{r.d(t,{K$:()=>v,i:()=>b,Ay:()=>g,WS:()=>f,A4:()=>p,bU:()=>h,FF:()=>m,S5:()=>d});var n=r(74360),a=r(40319),o=(r(77810),r(3659)),s=r(76872),i=r(76426),l=r(73822),u=r(48971),c=r(64922);function d(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=(0,s.A)("elements-text");r=t.mix?r(!1,(0,s.A)(t.mix.block)(t.mix.elem,(0,a.A)({},t.mix.mods))):r();var n=function(e,t){var r={};return t?r.dangerouslySetInnerHTML={__html:e}:r.children=o.A.decode(String(e)),r}(e,t.asHTML),i=t.title||e;return(0,c.jsx)("span",(0,a.A)((0,a.A)({},n),{},{title:i,className:r}))}function m(e,t){var r=this.getColumn(t);return l.A.format.TimeDuration(r.get(e),{format:"milliseconds"})}function p(e,t){var r=this.getColumn(t);return(0,c.jsx)("span",{className:"elements-ellipsis",children:l.A.format.ReadableField(r.get(e))})}function h(e,t){var r=null!=this&&this.getColumn?this.getColumn(t).get(e):e[t];return(0,c.jsx)(v,{value:r})}function v(e){var t=e.value;return(0,c.jsx)("span",{className:"elements-ellipsis",children:l.A.format.DateTime(t,{format:"full"})})}function f(e){return"object"===(0,n.A)(e)?(0,c.jsx)(i.A,{theme:"ghost",onClick:function(){(0,u.eW)(e,{hideOopsMsg:!0})},children:"View"}):l.A.format.NO_VALUE}function b(e,t){return l.A.format.Number(e[t])}const g={__default__:function(e,t){return String(l.A.format.ValueOrDefault(e[t]))},_templates:{},add:function(e,t){this._templates[e]=function(e){return Object.keys(e).reduce((function(t,r){return t[r]=e[r],t}),{})}(t)},get:function(e){return this._templates[e]||{}}}},41380:(e,t,r)=>{r.r(t),r.d(t,{Tablet:()=>qe,TabletTopRow:()=>Xe});var n=r(77810),a=r(64965),o=r(69835),s=r(15647),i=r(76872),l=r(63588),u=r(91326),c=r(40319),d=r(29121),m=r(12937),p=r(10785),h=r(26718),v=r(58870),f=r(73822),b=r(3659),g=r(65304),y=r.n(g),A=r(92423),x=r(14880),_=r(11394),N=r(87604),k=r(8842),w=r(81970),j=r(30700),C=r(18801),S=r(84092),E=r.n(S),T=r(34455),D=r.n(T),O=r(90943),P=r.n(O),V=r(76365),z=r(26264),M=r(47704),L=r.n(M),I=r(27528),R=r.n(I),F=(0,m.A)((function e(t){(0,d.A)(this,e),this.$value=t.index,this.$attributes=t,this.index=t.index,this.pivotKey=P().getValue(t,"/pivot_key"),this.isEden=P().getValue(t,"/isEden"),this.state=P().getValue(t,"/state"),this.compressed=Number(P().getValue(t,"/compressed_data_size")),this.uncompressed=Number(P().getValue(t,"/uncompressed_data_size")),this.unmergedRows=Number(P().getValue(t,"/unmerged_row_count")),this.sampleKeyCount=Number(P().getValue(t,"/sample_key_count"));var r=P().getValue(t,"/stores");r=r?y()(r):[],this.stores=r,this.storeCount=r.length})),U={unmerged_row_count:{format:"Number"},uncompressed_data_size:{dataName:"bytes",format:"Bytes"},store_count:{format:"Number"}},B=r(64714),K=["cellLeadingPeer","tabletPath","unorderedDynamicTable"],q=new V.A;function $(e){var t=e.cellLeadingPeer,r=e.tabletPath,n=e.unorderedDynamicTable,a=(0,C.A)(e,K);return t?B.Qq.get(B.Vu.tabletPartitions,{path:r,output_format:z.r$}).then((function(e){var o=P().getValue(e,""),s=P().getValue(e,"/errors")||[],i=P().getValue(e,"/replication_errors")||{},l=o.pivot_key,u=o.next_pivot_key,d=n?[]:function(e){var t=R()(e.partitions,(function(e,t){return e.attributes=Object.assign({},e),e.index=t,new F(e)})),r=new F(L()({isEden:!0,index:-1,attributes:L()({},e.eden)},e.eden));return t.unshift(r),t}(o),m=(0,c.A)({pivotKey:l,nextPivotKey:u,partitions:d,tabletErrors:s,replicationErrors:i,tabletPath:r,cellLeadingPeer:t,unorderedDynamicTable:n},a);if(!n)return m;var p="".concat(r,"/stores");return B.Qq.get(B.Vu.tabletStores,{path:p,output_format:z.r$}).then((function(e){return(0,c.A)((0,c.A)({},m),{},{stores:e})}))})).catch((function(e){return Promise.reject({message:"Could not load tablet partitions information. "+z.h1,details:e})})):Promise.reject({message:"Tablet cell has no leading peer. No information to show.",details:{}})}function W(e){var t=e.id,r=e.attributes,n=e.tablePath,a=e.unorderedDynamicTable;return r.cell_id?B.Qq.get(B.Vu.tabletCellAttributes,{path:"//sys/tablet_cells/"+r.cell_id+"/@"}).then((function(e){var o,s=D()(e.peers,(function(e){return"leading"===e.state}));return t&&s&&(o="//sys/cluster_nodes/".concat(s.address,"/orchid/tablet_cells/").concat(r.cell_id,"/tablets/").concat(t)),{id:t,attributes:r,tablePath:n,tabletCellAttributes:e,cellLeadingPeer:s,tabletPath:o,unorderedDynamicTable:a}})).catch((function(e){return Promise.reject({message:"Could not load tablet's tablet cell attributes."+z.h1,details:e})})):Promise.reject({message:"Tablet is not mounted. No information to show.",details:{}})}function H(e){var t=e.id,r=e.attributes;return B.Qq.get(B.Vu.tabletTableAttributes,{path:"#"+r.table_id+"/@",attributes:["path","sorted","type","dynamic"]}).catch((function(e){return Promise.reject({message:"Could not load tablet's table attributes. "+z.h1,details:e})})).then((function(e){var n=P().getValue(e,"/path");return{id:t,attributes:r,tablePath:n,unorderedDynamicTable:J(e)}}))}function J(e){return"table"===P().getValue(e,"/type")&&P().getValue(e,"/dynamic")&&!P().getValue(e,"/sorted")}var Y=r(13322),Q=r(36146),G=r.n(Q),X=r(18472),Z={index:{sort:!0,caption:"#",align:"right",get:function(e){return e.index}},state:{align:"center",sort:function(e){return{normal:0,splitting:1,merging:2,compacting:3,sampling:4,partitioning:5}[e.state]},get:function(e){return e.state}},unmerged_row_count:{sort:!0,align:"right",get:function(e){return e.unmergedRows}},uncompressed_data_size:{sort:!0,align:"right",get:function(e){return e.uncompressed}},compressed_data_size:{sort:!0,align:"right",get:function(e){return e.compressed}},store_count:{sort:!0,align:"right",get:function(e){return e.storeCount}},sample_key_count:{sort:!0,align:"right",get:function(e){return e.sampleKeyCount}},pivot_key:{sort:!1,align:"left",get:function(e){return e.pivotKey}},actions:{caption:"",align:"right",sort:!1}},ee={id:{align:"left",show:!0,sort:function(e){return e.$value},get:function(e){return e.$value}},store_state:{align:"center",sort:!0,show:!0,get:function(e){return e.storeState}},row_count:{align:"left",sort:!0,show:!0,get:function(e){return e.rowCount}},attributes:{caption:"",align:"left",sort:!1}},te=function(e){return e.tablet.tablet.partitions},re=function(e){return e.tablet.tablet.activeHistogram},ne=(0,X.Mz)([te,function(e){return e.tables[j.Cf]}],(function(e,t){return f.A.utils.sort(e,t,Z)})),ae=(0,X.Mz)(ne,(function(e){var t=f.A.aggregation.prepare(e,[{name:"stores",type:"concat-array"},{name:"storeCount",type:"sum"},{name:"unmergedRows",type:"sum"},{name:"uncompressed",type:"sum"},{name:"compressed",type:"sum"},{name:"sampleKeyCount",type:"sum"}])[0];return t.index=-2,[t].concat((0,Y.A)(e))})),oe=(0,X.Mz)(te,(function(e){return G()(U,(function(t,r){var n=e.slice(1);return(0,c.A)((0,c.A)({},t),{},{dataSource:"partitions",dataFormat:t.format,caption:f.A.format.ReadableField(r),dataName:t.dataName||f.A.format.ReadableField(r,{caps:"none"}),data:R()(n,Z[r].get)})}))})),se=(0,X.Mz)([oe,re],(function(e,t){return e[t]})),ie=r(50073),le=r(35074),ue=(0,m.A)((function e(t){(0,d.A)(this,e),this.$value=t.$value,this.$attributes=t.$attributes,this.rowCount=Number(P().getValue(this.$attributes,"/row_count")),this.storeState=P().getValue(this.$attributes,"/store_state"),this.poolSize=Number(P().getValue(this.$attributes,"/pool_size")),this.poolCapacity=Number(P().getValue(this.$attributes,"/pool_capacity")),this.lockCount=Number(P().getValue(this.$attributes,"/lock_count")),this.valueCount=Number(P().getValue(this.$attributes,"/value_count")),this.flushState=P().getValue(this.$attributes,"/flush_state"),this.uncompressed=Number(P().getValue(this.$attributes,"/uncompressed_data_size")),this.compressed=Number(P().getValue(this.$attributes,"/compressed_data_size")),this.compactionState=P().getValue(this.$attributes,"/compaction_state"),this.preloadState=P().getValue(this.$attributes,"/preload_state")}));function ce(e,t){return R()(e,(function(r,n){return new ue({$value:t[n],$attributes:P().getValue(e[n],"")})}))}var de=r(48971),me=new V.A,pe=(0,X.Mz)([function(e){return e.tablet.stores.stores},function(e){return e.tables[j.m8]}],(function(e,t){return f.A.utils.sort(e,t,ee)})),he=r(64922),ve=(0,i.A)("tablet-stores"),fe={scheduled:"warning",running:"warning",complete:"success",failed:"danger"},be={complete:"success",none:"success",running:"warning"};function ge(e,t){return t[e]||"default"}var ye=function(e){(0,p.A)(r,e);var t=(0,h.A)(r);function r(){return(0,d.A)(this,r),t.apply(this,arguments)}return(0,m.A)(r,[{key:"componentDidMount",value:function(){var e=this.props,t=e.index,r=e.storesId;(0,e.loadStoresData)(r,t,e.unorderedDynamicTable)}},{key:"componentDidUpdate",value:function(e){var t=this.props,r=t.index,n=t.storesId,a=t.loadStoresData,o=t.unorderedDynamicTable;e.index!==r&&a(n,r,o)}},{key:"componentWillUnmount",value:function(){this.props.abortAndReset()}},{key:"tableSets",get:function(){return{default:{items:["id","store_state","row_count","attributes"]}}}},{key:"tableSettings",get:function(){return{css:"tablet-partitions-stores",theme:"light",cssHover:!0,striped:!1,virtual:!1,tableId:j.m8,columns:{items:ee,sets:this.tableSets,mode:"default"},templates:{id:r.renderAsId,store_state:r.renderAsState,row_count:r.renderAsNumber,attributes:r.renderAsAttributes},computeKey:function(e){return e.$value}}}},{key:"render",value:function(){var e=this.props,t=e.loading,r=e.loaded,n=e.error,a=e.errorData,s=e.stores;return(0,he.jsx)("div",{className:ve({loading:t}),children:(0,he.jsx)(o.A,{children:(0,he.jsx)(l.A,{loaded:r,error:n,errorData:a,children:t?(0,he.jsx)(u.a,{}):(0,he.jsx)(_.A,(0,c.A)((0,c.A)({},this.tableSettings),{},{items:s}))})})})}}],[{key:"renderStoreState",value:function(e){return void 0!==e?(0,he.jsx)(w.A,{theme:"success",text:e}):f.A.format.NO_VALUE}},{key:"renderPreloadState",value:function(e){if(!e)return f.A.format.NO_VALUE;var t=ge(e,fe);return(0,he.jsx)(w.A,{theme:t,text:e})}},{key:"renderFlushState",value:function(e){if(!e)return f.A.format.NO_VALUE;var t=ge(e,be);return(0,he.jsx)(w.A,{theme:t,text:e})}},{key:"renderAsId",value:function(e,t){var r=ee[t].get(e);return(0,he.jsx)(k.go,{id:r})}},{key:"renderAsState",value:function(e,t){var n=ee[t].get(e);return r.renderStoreState(n)}},{key:"renderAsNumber",value:function(e,t){var r=ee[t].get(e);return f.A.format.Number(r)}},{key:"renderAsAttributes",value:function(e){var t=-1!==e.storeState.indexOf("dynamic"),n=-1!==e.storeState.indexOf("persistent");return(0,he.jsx)(le.Ay,{items:[{key:"lock_count",value:f.A.format.Number(e.lockCount),visible:t},{key:"value_count",value:f.A.format.Number(e.valueCount),visible:t},{key:"pool_size",value:f.A.format.Bytes(e.poolSize),visible:t},{key:"pool_capacity",value:f.A.format.Bytes(e.poolCapacity),visible:t},{key:"flush_state",value:r.renderFlushState(e.flushState),visible:t},{key:"uncompressed_data_size",value:f.A.format.Bytes(e.uncompressed),visible:n},{key:"compressed_data_size",value:f.A.format.Bytes(e.compressed),visible:n},{key:"compaction_state",value:r.renderFlushState(e.compactionState),visible:n},{key:"preload_state",value:r.renderPreloadState(e.preloadState),visible:n}]})}}]),r}(n.Component),Ae={loadStoresData:function(e,t,r){return function(n,a){n({type:j.Wy.REQUEST});var o=a().tablet.tablet.tabletPath,s=R()(e,(function(e){var n=r?o+"/stores/"+e:function(e,t,r){return e+function(e,t){return(-1===e?"/eden":"/partitions/"+e)+"/stores"+(void 0!==t?"/"+t:"")}(t,r)}(o,t,e);return{command:"get",parameters:{path:n}}}));return B.Qq.executeBatch(B.Vu.tabletStoresByIds,{parameters:{requests:s,output_format:z.r$}}).then((function(t){var r=(0,de.hC)(t,"Failed to fetch stores"),a=r.error,o=r.results;if(a)return Promise.reject(a);n({type:j.Wy.SUCCESS,data:{stores:ce(o,e)}})})).catch((function(e){e.code!==E().codes.CANCELLED&&n({type:j.Wy.FAILURE,data:{error:e}})}))}},abortAndReset:function(){return function(e){me.removeAllRequests(),e({type:j.Wy.CANCELLED})}}};const xe=(0,s.Ng)((function(e){var t=e.tablet.stores;return{loading:t.loading,loaded:t.loaded,error:t.error,errorData:t.errorData,stores:pe(e)}}),Ae)(ye);function _e(e){var t=e.visible,r=e.unorderedDynamicTable,n=e.stores,a=e.index,o=e.onClose,s=r?"/stores":-1===a?"/eden/stores":"partitions/".concat(a,"/stores");return(0,he.jsxs)(ie.l,{open:t,onClose:o,hasCloseButton:!0,children:[(0,he.jsx)(ie.l.Header,{caption:s}),(0,he.jsx)(ie.l.Body,{children:(0,he.jsx)(xe,{storesId:n,index:a,unorderedDynamicTable:r})})]})}const Ne=n.memo(_e);var ke=(0,i.A)("elements-heading"),we=function(e){(0,p.A)(r,e);var t=(0,h.A)(r);function r(){var e;(0,d.A)(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return(e=t.call.apply(t,[this].concat(a))).state={stores:{}},e.renderStores=function(t){var r=t.storeCount,n=t.index;return(0,he.jsxs)("span",{children:[n>=-1&&r>0&&(0,he.jsx)(A.$,{view:"flat-secondary",size:"m",onClick:function(){return e.handleShowStores(t)},children:"View"}),f.A.format.Number(r)]})},e.renderActions=function(t){var r=e.props.tabletPath,n=t.index,a=r+(-1===n?"/eden":"/partitions/"+n);return n>=-1&&(0,he.jsx)(x.A,{title:String(n),exactPath:a,withTooltip:!0})},e.handleModeChange=function(t){return e.props.changeContentMode(t.target.value)},e.handleCloseStores=function(){return e.setState({stores:{}})},e.handleShowStores=function(t){return e.setState({stores:t})},e}return(0,m.A)(r,[{key:"tableSets",get:function(){return{default:{items:["index","state","unmerged_row_count","uncompressed_data_size","compressed_data_size","store_count","sample_key_count","actions"]},keys:{items:["index","pivot_key","actions"]}}}},{key:"tableSettings",get:function(){var e=this.props,t=e.contentMode;return{css:(0,e.block)(),theme:"light",cssHover:!0,striped:!1,tableId:j.Cf,columns:{items:Z,sets:this.tableSets,mode:t},templates:{index:r.renderIndex,state:r.renderState,unmerged_row_count:r.renderAsNumber,uncompressed_data_size:r.renderAsBytes,compressed_data_size:r.renderAsBytes,store_count:this.renderStores,sample_key_count:r.renderAsNumber,pivot_key:r.renderPivotKey,actions:this.renderActions},computeKey:function(e){return e.index},itemMods:function(e){return-1===e.index?{eden:"yes"}:-2===e.index?{aggregation:"yes"}:void 0}}}},{key:"renderStoresDialog",value:function(){if(!(y()(this.state.stores).length>0))return null;var e=this.props,t=e.block,r=e.unorderedDynamicTable,n=this.state.stores,a=n.stores,o=n.index;return(0,he.jsx)(Ne,{unorderedDynamicTable:r,block:t,stores:a,index:o,visible:!0,onClose:this.handleCloseStores})}},{key:"renderTableOverview",value:function(){var e=this,t=this.props,r=t.contentMode,n=t.block;return(0,he.jsx)(v.ib,{topOffset:-z.uF,children:function(t){var a=t.isSticky;return(0,he.jsx)("div",{className:n("table-overview",{sticky:a}),children:(0,he.jsx)(N.A,{size:"m",value:r,onChange:e.handleModeChange,name:"tablet-partitions-content-mode",items:[{value:"default",text:"Default"},{value:"keys",text:"Keys"}]})})}})}},{key:"renderPartitions",value:function(){var e=this.props.partitions;return(0,he.jsxs)(o.A,{children:[(0,he.jsx)("div",{className:ke({size:"m"}),children:"Partitions"}),(0,he.jsxs)(v.XF,{children:[this.renderTableOverview(),(0,he.jsx)(_.A,(0,c.A)((0,c.A)({},this.tableSettings),{},{items:e}))]})]})}},{key:"render",value:function(){var e=this.props,t=e.block,r=e.unorderedDynamicTable;return(0,he.jsxs)("div",{className:t("partitions"),children:[r?null:this.renderPartitions(),this.renderStoresDialog()]})}}],[{key:"renderIndex",value:function(e,t){var r=Z[t].get(e);return-1===r?"Eden":-2===r?"Aggregation":f.A.format.Number(r)}},{key:"renderState",value:function(e,t){var r=Z[t].get(e),n={normal:"success",splitting:"warning",merging:"warning",compacting:"warning",sampling:"warning",partitioning:"warning"}[r];return void 0!==r?(0,he.jsx)(w.A,{theme:n,text:r}):f.A.format.NO_VALUE}},{key:"renderAsBytes",value:function(e,t){var r=Z[t].get(e);return f.A.format.Bytes(r)}},{key:"renderAsNumber",value:function(e,t){var r=Z[t].get(e);return f.A.format.Number(r)}},{key:"renderPivotKey",value:function(e,t){var r=Z[t].get(e),n={break:!1,indent:0},a=b.A.prettyprint(r,n),o=b.A.prettyprint(r,(0,c.A)((0,c.A)({},n),{},{asHTML:!1}));return void 0!==r?(0,he.jsx)(k.c3,{asHTML:!0,className:"unipika-wrapper unipika-wrapper_inline_yes",text:a,title:o}):f.A.format.NO_VALUE}}]),r}(n.Component),je={changeContentMode:function(e){return{type:j.Fl,data:{contentMode:e}}}};const Ce=(0,s.Ng)((function(e){var t=e.tablet.tablet,r=t.contentMode,n=t.tabletPath,a=t.unorderedDynamicTable;return{contentMode:r,tabletPath:n,partitions:ae(e),unorderedDynamicTable:a}}),je)(we);var Se=r(9736),Ee=r(9105),Te=r(65088),De=r(82060),Oe=r(90826),Pe=r(36739),Ve=r(94544),ze=r(34380),Me=r(79663);function Le(e,t,r,n){return{key:r,value:f.A.format[e](t[r]),visible:n}}var Ie=function(e,t){var r=e.length>0;return(0,he.jsxs)(ie.l,{size:"l",open:r,onClose:t,hasButtonClose:!0,autoclosable:!0,children:[(0,he.jsx)(ie.l.Header,{caption:"Tablet errors"}),(0,he.jsx)(ie.l.Body,{children:R()(e,(function(e,t){var r=(0,c.A)((0,c.A)({},e),{},{message:P().getValue(e,"/message")});return(0,he.jsx)(De.A,{error:r},t)}))})]})},Re=function(e,t){var r=y()(e).length>0;return(0,he.jsxs)(ie.l,{size:"l",open:r,onClose:t,hasButtonClose:!0,autoclosable:!0,children:[(0,he.jsx)(ie.l.Header,{caption:"Replication errors"}),(0,he.jsx)(ie.l.Body,{children:R()(e,(function(e,t){var r=(0,c.A)((0,c.A)({},e),{},{message:P().getValue(e,"/message")}),n="Replica ID: ".concat(t);return(0,he.jsx)(De.A,{message:n,error:r},t)}))})]})};const Fe=function(e){var t,r=e.id,a=e.block,i=(0,s.wA)(),l=(0,s.d4)((function(e){return e.tablet.tablet})),u=l.attributes,c=l.cellLeadingPeer,d=l.tablePath,m=l.tabletPath,p=l.tabletErrors,h=l.replicationErrors,v=l.pivotKey,b=l.nextPivotKey,g=l.stores,x=l.unorderedDynamicTable,_=(0,s.d4)((function(e){return e.global})),N=_.mediumList,k=_.cluster,C=(0,n.useState)([]),S=(0,Se.A)(C,2),E=S[0],T=S[1],D=(0,n.useState)({}),O=(0,Se.A)(D,2),V=O[0],M=O[1],L=P().getValues(u,["/cell_id","/state","/index","/statistics","/performance_counters"]),I=(0,Se.A)(L,5),R=I[0],F=I[1],B=I[2],K=I[3],q=I[4],$=P().getValues(K,["/unmerged_row_count","/chunk_count"]),W=(0,Se.A)($,2),H=W[0],J=W[1],Q=n.useState(!1),G=(0,Se.A)(Q,2),X=G[0],Z=G[1],ee=n.useCallback((function(){Z(!X)}),[g,Z,X]),te=K?[Le("Number",K,"partition_count",!x),{key:"store_count",value:(t=K.store_count>=200,(0,he.jsxs)("span",{children:[f.A.format.Number(K.store_count),x&&(0,he.jsxs)(he.Fragment,{children:[" ",(0,he.jsx)(ze.m,{disabled:!t,content:"Too many stores to show",children:(0,he.jsx)(A.$,{disabled:t,view:"flat-secondary",onClick:ee,children:"View"})})]})]}))},Le("Number",K,"overlapping_store_count",!x),Le("Number",K,"preload_completed_store_count"),Le("Number",K,"preload_failed_store_count"),Le("Number",K,"preload_pending_store_count")]:[],ne=q?[Le("Number",q,"dynamic_row_read_rate"),Le("Number",q,"dynamic_row_lookup_rate"),Le("Number",q,"dynamic_row_write_rate"),Le("Number",q,"dynamic_row_delete_rate"),Le("Number",q,"static_chunk_row_read_rate"),Le("Number",q,"static_chunk_row_lookup_rate"),Le("Number",q,"unmerged_row_read_rate",!x),Le("Number",q,"merged_row_read_rate",!x)]:[],ae={none:"default",unmounted:"default",mounted:"info",frozen:"info",freezing:"warning",unfreezing:"warning",mounting:"warning",unmounting:"warning",mixed:"danger"}[F],oe=(0,s.d4)(re),ie=(0,s.d4)(se),ue=(0,n.useCallback)((function(e){return i(function(e){return{type:j.bx,data:{activeHistogram:e}}}(e))}),[i,oe]),ce=(0,n.useCallback)((function(){return T(p)}),[p]),de=(0,n.useCallback)((function(){return M(h)}),[h]),me=(0,n.useCallback)((function(){return T([])}),[]),pe=(0,n.useCallback)((function(){return M({})}),[]);return(0,he.jsxs)(o.A,{children:[X&&(0,he.jsx)(Ne,{visible:!0,onClose:ee,index:0,unorderedDynamicTable:x,stores:Object.keys(g)}),(0,he.jsxs)("div",{className:a("overview"),children:[(0,he.jsxs)("div",{className:a("meta"),children:[(0,he.jsx)(le.Ay,{items:[[{key:"id",value:(0,he.jsx)(le.Bj.Id,{id:r})},{key:"tablet_cell_id",label:"Tablet cell id",value:(0,he.jsx)(le.Bj.Link,{withClipboard:!0,text:R,shiftText:m,hoverContent:"Hold SHIFT-key to copy full path",url:(0,Ve.Z3)(R,k)})},{key:"table_path",value:(0,he.jsx)(le.Bj.Link,{withClipboard:!0,text:d,url:"/".concat(k,"/").concat(z.YW.NAVIGATION,"?path=").concat(d,"&mode=").concat(Pe.oz.TABLETS)})},{key:"tablet cell leader node",value:(0,he.jsx)(le.Bj.Link,{withClipboard:!0,text:c.address,url:(0,Me.ZK)({cluster:k,host:c.address})}),visible:Boolean(c)},{key:"errors",value:(0,he.jsxs)("span",{children:[f.A.format.Number(p.length),(0,he.jsx)(A.$,{view:"flat-secondary",size:"m",onClick:ce,children:"View"})]}),visible:p.length>0},{key:"replication_errors",value:(0,he.jsxs)("span",{children:[f.A.format.Number(y()(h).length),(0,he.jsx)(A.$,{view:"flat-secondary",size:"m",onClick:de,children:"View"})]}),visible:y()(h).length>0},{key:"state",value:(0,he.jsx)(w.A,{theme:ae,text:f.A.format.ReadableField(F)})},{key:"index",value:f.A.format.Number(B)},{key:"pivot_key",value:(0,he.jsx)(Oe.A,{value:v,settings:{indent:0,break:!1}}),visible:Boolean(v)},{key:"next_pivot_key",value:(0,he.jsx)(Oe.A,{value:b,settings:{indent:0,break:!1}}),visible:Boolean(b)}],[{key:"unmerged_row_count",value:f.A.format.Number(H),visible:!x},{key:"chunks",value:f.A.format.Number(J)}].concat((0,Y.A)((0,Te.Ej)(K,N)))]}),(0,he.jsx)(le.Ay,{items:[ne,te]})]}),!x&&(0,he.jsx)(Ee.A,{handleHistogramChange:ue,activeHistogram:oe,histogramItems:U,histogram:ie}),Ie(E,me),Re(V,pe)]})]})};var Ue=r(13685),Be=(0,i.A)("tablet-details");const Ke=function(e){var t=e.match,r=(0,s.wA)(),a=(0,s.d4)((function(e){return e.tablet.tablet})),o=a.loading,i=a.loaded,c=a.error,d=a.errorData,m=t.params.id,p=n.useMemo((function(){return{updateFn:function(){return r(function(e){return function(t){return t({type:j.Fp.REQUEST}),function(e){return B.Qq.get(B.Vu.tabletAttribute,{path:"//sys/tablets/"+e+"/@"}).then((function(t){return{id:e,attributes:t}})).catch((function(e){return Promise.reject({message:"Could not load tablet attributes. "+z.h1,details:e})}))}(e).then(H).then(W).then($).then((function(e){t({type:j.Fp.SUCCESS,data:e})})).catch((function(e){e.code!==E().codes.CANCELLED&&t({type:j.Fp.FAILURE,data:{error:e}})}))}}(m))},destructFn:function(){return r((function(e){q.removeAllRequests(),e({type:j.Fp.CANCELLED})}))}}}),[r,m]),h=p.updateFn,v=p.destructFn;(0,Ue.Tt)(h,{timeout:15e3,destructFn:v});var f=o&&!i;return(0,he.jsx)("div",{className:Be(),children:(0,he.jsx)("div",{className:Be("content",{loading:f}),children:f?(0,he.jsx)(u.a,{}):(0,he.jsxs)(l.A,{loaded:i,error:c,errorData:d,children:[(0,he.jsx)(Fe,{id:m,block:Be}),(0,he.jsx)(Ce,{block:Be})]})})})},qe=(0,a.y)((function(e){var t=e.match;return(0,he.jsx)("div",{className:"elements-main-section",children:(0,he.jsx)(o.A,{children:(0,he.jsx)(a.dO,{children:(0,he.jsx)(a.qh,{path:"".concat(t.path,"/:id/"),component:Ke})})})})}));var $e=r(17777),We=r(43279),He=r(52797),Je=r(65315),Ye=r(13542),Qe=(0,i.A)("tablet-top-row-content");function Ge(){return(0,he.jsx)($e.K,{page:z.YW.TABLET,children:(0,he.jsx)(Ze,{})})}const Xe=n.memo(Ge);function Ze(){var e=(0,a.W5)().params.id,t=(0,s.d4)(He.dB),r=n.useCallback((function(e){(0,Ye.Q)().push("/".concat(t,"/").concat(z.YW.TABLET,"/").concat(e||""))}),[]);return(0,he.jsx)(We.c,{className:Qe("editable"),text:e,onChange:r,children:(0,he.jsx)(Je.BI,{className:Qe("control"),items:[{text:e,action:function(){}}],lastDisplayedItemsCount:2,firstDisplayedItemsCount:1,renderItemDivider:function(){return""}})})}},79663:(e,t,r)=>{r.d(t,{L$:()=>l,Qw:()=>i,ZK:()=>s,oG:()=>u,ob:()=>c});var n=r(19314),a=r(35844),o=r(33547);function s(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.host,r=e.cluster;return t?"/".concat(r||o.A.cluster,"/").concat(n.YW.COMPONENTS,"/").concat(a.o.NODES,"/").concat(t):"/".concat(r||o.A.cluster,"/").concat(n.YW.COMPONENTS,"/").concat(a.o.NODES)}function i(e,t){return"/".concat(e,"/").concat(n.YW.COMPONENTS,"/").concat(a.o.RPC_PROXIES,"?host=").concat(t)}function l(e,t){return"/".concat(t||o.A.cluster,"/").concat(n.YW.NAVIGATION,"?path=").concat(e)}function u(e){var t=e.pool,r=e.poolTree,a=e.cluster;return"/".concat(a||o.A.cluster,"/").concat(n.YW.SCHEDULING,"?pool=").concat(t,"&poolTree=").concat(r)}function c(e,t){return"/".concat(t||o.A.cluster,"/").concat(n.YW.ACCOUNTS,"?account=").concat(e)}},94544:(e,t,r)=>{r.d(t,{Af:()=>d,Ut:()=>l,Z3:()=>u});var n=r(13322),a=r(7787),o=r(26264),s=r(42265),i=r(44458);function l(e,t){return a.Ay.makeUrlForTabletCellBundleDashboard(e,t)}function u(e,t){var r=t?"/".concat(t,"/"):"";return"".concat(r).concat(o.YW.TABLET_CELL_BUNDLES,"/").concat(s.R_.TABLET_CELLS,"?id=").concat(e)}function c(e,t){return e.changelog_account===t.changelog_account&&e.snapshot_account===t.snapshot_account?0:e.changelog_account<t.changelog_account||e.snapshot_account<t.snapshot_account?-1:1}var d=function(e){var t=e.bundles,r=e.column,a=e.columnsSortable,o=e.order,s=[],l=(0,i.fA)(o),u=l.orderK,d=l.undefinedOrderK;if("changelog_account"===r)s=(0,n.A)(t).sort(c);else if("nodes"===r)s=(0,n.A)(t).sort((function(e,t){var r=e.nodes,n=void 0===r?[]:r,a=t.nodes,o=void 0===a?[]:a;return n.length-o.length}));else if(a.has(r))return(0,i.Uy)(t,[{key:r,orderK:u,undefinedOrderK:d}]);return o.includes("asc")?s:s.reverse()}},49096:()=>{},50256:(e,t,r)=>{r.d(t,{R:()=>i,J:()=>s});var n=r(56802);const a=JSON.parse('{"common":{"tooltip-sum":"Sum","tooltip-rest":"Rest"},"chartkit":{"error":"Error","legend-series-hide":"Hide all lines","legend-series-show":"Show all lines","tooltip-point-format-size":"Size","tooltip-sum":"Sum","tooltip-rest":"Rest","error-incorrect-key-value-intro":"Incorrect notation of an object passed to","error-incorrect-key":", object keys must be convertible to integer","error-incorrect-value":", object values must be a string or a function which returns a string"},"chartkit-table":{"message-no-data":"No data","paginator-rows":"Rows"},"chartkit-ymap-legend":{"label-more":"Show more {{count}}","label-hide":"Hide","label-heatmap":"Heatmap"},"error":{"label_no-data":"No data","label_unknown-plugin":"Unknown plugin type \\"{{type}}\\"","label_unknown-error":"Unknown error","label_invalid-axis-category-data-point":"It seems you are trying to use inappropriate data type for \\"{{key}}\\" value in series \\"{{seriesName}}\\" for axis with type \\"category\\". Strings and numbers are allowed.","label_invalid-axis-datetime-data-point":"It seems you are trying to use inappropriate data type for \\"{{key}}\\" value in series \\"{{seriesName}}\\" for axis with type \\"datetime\\". Only numbers are allowed.","label_invalid-axis-linear-data-point":"It seems you are trying to use inappropriate data type for \\"{{key}}\\" value in series \\"{{seriesName}}\\" for axis with type \\"linear\\". Numbers and nulls are allowed.","label_invalid-pie-data-value":"It seems you are trying to use inappropriate data type for \\"value\\" value. Only numbers are allowed.","label_invalid-series-type":"It seems you haven\'t defined \\"series.type\\" property, or defined it incorrectly. Available values: [{{types}}].","label_invalid-series-property":"It seems you are trying to use inappropriate value for \\"{{key}}\\", or defined it incorrectly. Available values: [{{values}}].","label_invalid-treemap-redundant-value":"It seems you are trying to set \\"value\\" for container node. Check node with this properties: { id: \\"{{id}}\\", name: \\"{{name}}\\" }","label_invalid-treemap-missing-value":"It seems you are trying to use node without \\"value\\". Check node with this properties: { id: \\"{{id}}\\", name: \\"{{name}}\\" }","label_invalid-y-axis-index":"It seems you are trying to use inappropriate index for Y axis: \\"{{index}}\\""},"highcharts":{"reset-zoom-title":"Reset zoom","decimal-point":".","thousands-sep":" ","Mon":"Mon","Tue":"Tue","Wed":"Wed","Thu":"Thu","Fri":"Fri","Sat":"Sat","Sun":"Sun","Jan":"Jan","January":"January","Feb":"Feb","February":"February","Mar":"Mar","March":"March","Apr":"Apr","April":"April","May":"May","Jun":"Jun","June":"June","Jul":"Jul","July":"July","Aug":"Aug","August":"August","Sep":"Sep","September":"September","Oct":"Oct","October":"October","Nov":"Nov","November":"November","Dec":"Dec","December":"December"}}'),o=JSON.parse('{"common":{"tooltip-sum":"Сумма","tooltip-rest":"Остальные"},"chartkit":{"error":"Ошибка","legend-series-hide":"Скрыть все линии","legend-series-show":"Показать все линии","loading":"Загрузка","tooltip-point-format-size":"Размер","tooltip-sum":"Сумма","tooltip-rest":"Остальные","error-incorrect-key-value-intro":"Некорректный формат объекта переданного как значение в","error-incorrect-key":", ключи объекта должны быть преобразуемы в целое число","error-incorrect-value":", значением объекта может быть либо строка, либо функция возвращающая строку"},"chartkit-table":{"message-no-data":"Нет данных","paginator-rows":"Строки"},"chartkit-ymap-legend":{"label-more":"Показать ещё {{count}}","label-hide":"Свернуть","label-heatmap":"Тепловая карта"},"error":{"label_no-data":"Нет данных","label_unknown-plugin":"Неизвестный тип плагина \\"{{type}}\\"","label_unknown-error":"Неизвестная ошибка","label_invalid-axis-category-data-point":"Похоже, что вы пытаетесь использовать недопустимый тип данных для значения \\"{{key}}\\" в серии \\"{{seriesName}}\\" для оси с типом \\"category\\". Допускается использование строк и чисел.","label_invalid-axis-datetime-data-point":"Похоже, что вы пытаетесь использовать недопустимый тип данных для значения \\"{{key}}\\" в серии \\"{{seriesName}}\\" для оси с типом \\"datetime\\". Допускается только использование чисел.","label_invalid-axis-linear-data-point":"Похоже, что вы пытаетесь использовать недопустимый тип данных для значения \\"{{key}}\\" в серии \\"{{seriesName}}\\" для оси с типом \\"linear\\". Допускается использование чисел и значений null.","label_invalid-pie-data-value":"Похоже, что вы пытаетесь использовать недопустимый тип данных для значения \\"value\\". Допускается только использование чисел.","label_invalid-series-type":"Похоже, что вы не указали значение \\"series.type\\" или указали его неверно. Доступные значения: [{{types}}].","label_invalid-series-property":"Похоже, что вы пытаетесь использовать недопустимое значение для \\"{{key}}\\", или указали его неверно. Доступные значения: [{{values}}].","label_invalid-treemap-redundant-value":"Похоже, что вы пытаетесь установить значение \\"value\\" для узла, используемого в качестве контейнера. Проверьте узел с этими свойствами: { id: \\"{{id}}\\", name: \\"{{name}}\\" }","label_invalid-treemap-missing-value":"Похоже, что вы пытаетесь использовать узел без значения \\"value\\". Проверьте узел с этими свойствами: { id: \\"{{id}}\\", name: \\"{{name}}\\" }","label_invalid-y-axis-index":"Похоже, что вы пытаетесь использовать некорректный индекс для оси Y: \\"{{index}}\\""},"highcharts":{"reset-zoom-title":"Сбросить увеличение","decimal-point":",","thousands-sep":" ","Mon":"Пн","Tue":"Вт","Wed":"Ср","Thu":"Чт","Fri":"Пт","Sat":"Сб","Sun":"Вс","Jan":"Янв","January":"Январь","Feb":"Фев","February":"Февраль","Mar":"Мар","March":"Март","Apr":"Апр","April":"Апрель","May":"Май","Jun":"Июн","June":"Июнь","Jul":"Июл","July":"Июль","Aug":"Авг","August":"Август","Sep":"Сен","September":"Сентябрь","Oct":"Окт","October":"Октябрь","Nov":"Ноя","November":"Ноябрь","Dec":"Дек","December":"Декабрь"}}'),s=new n.TH;s.registerKeysets("en",a),s.registerKeysets("ru",o);const i=s.i18n.bind(s)},32286:(e,t,r)=>{r.d(t,{R:()=>a,iY:()=>n});const n={NO_DATA:"ERR.CK.NO_DATA",INVALID_DATA:"ERR.CK.INVALID_DATA",UNKNOWN:"ERR.CK.UNKNOWN_ERROR",UNKNOWN_PLUGIN:"ERR.CK.UNKNOWN_PLUGIN",TOO_MANY_LINES:"ERR.CK.TOO_MANY_LINES"};class a extends Error{constructor({originalError:e,message:t,code:r=n.UNKNOWN}={}){super(t),this.isCustomError=!0,this.code=r,e&&(this.name=e.name,this.stack=e.stack)}}},52789:(e,t,r)=>{r.d(t,{W:()=>h});var n=r(44531),a=r(81214),o=r.n(a),s=r(13630),i=r.n(s),l=r(50256),u=r(95603),c=r.n(u);function d(e,t,r){if("plugins"===r){const r=[...e],n=[...t];let a=r.map((e=>{const t=n.findIndex((({type:t})=>t===e.type));if(-1!==t){const r=n[t];return n.splice(t,1),{type:e.type,renderer:r.renderer}}return e}));return n.length>0&&(a=[...a,...n]),a}return c()(e)?i()(e,t,d):t}const m=new class{constructor(){this.events={}}on(e,t){this.events[e]?this.events[e].push(t):this.events[e]=[t]}off(e,t){this.events[e]&&(this.events[e]=this.events[e].filter((({id:e})=>e!==t)))}dispatch(e,t){this.events[e]&&this.events[e].forEach((({action:e})=>{e(t)}))}},p=e=>{(0,n.jK)({lang:e}),l.J.setLang(e)},h=new class{constructor(){this.settings={plugins:[],lang:"en"},p(this.get("lang"))}get(e){return o()(this.settings,e)}set(e){const t=(r=e,Object.entries(r).reduce(((e,[t,r])=>(void 0!==r&&(e[t]=r),e)),{}));var r;if(this.settings=i()(this.settings,t,d),t.lang){const e=t.lang||this.get("lang");p(e),m.dispatch("change-lang",e)}}}},67901:(e,t,r)=>{r.d(t,{cn:()=>a,o:()=>o});var n=r(29717);const a=(0,n.withNaming)({e:"__",m:"_"}),o=(0,n.withNaming)({n:"chartkit-",e:"__",m:"_"})},87605:(e,t,r)=>{r.d(t,{d:()=>n});const n=()=>`ck.${((e,t)=>{let r="";for(let e=10;e>0;--e)r+=t[Math.floor(36*Math.random())];return r})(0,"0123456789abcdefghijklmnopqrstuvwxyz")}`}}]);
|
2
|
+
//# sourceMappingURL=tablet.7401a5ec.chunk.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"js/tablet.7401a5ec.chunk.js","mappings":"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","sources":["webpack://@ytsaurus/ui/./src/ui/components/AttributesButton/AttributesButton.tsx","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/./src/ui/components/SortIcon/SortIcon.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/formatters/FormattedLink.js","webpack://@ytsaurus/ui/./src/ui/components/formatters/FormattedTextOrLink.js","webpack://@ytsaurus/ui/./src/ui/components/formatters/FormattedId/FormattedId.js","webpack://@ytsaurus/ui/./src/ui/components/formatters/index.js","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.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';\n\nimport Button, {ButtonProps} from '../../components/Button/Button';\nimport Icon from '../../components/Icon/Icon';\n\nexport interface AttributesButtonProps extends ButtonProps {}\n\nexport default function AttributesButton({\n view = 'flat-secondary',\n size = 'm',\n ...rest\n}: AttributesButtonProps) {\n return (\n <Button view={view} size={size} {...rest}>\n <Icon awesome=\"at\" />\n </Button>\n );\n}\n","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';\nimport cn from 'bem-cn-lite';\n\nimport format from '../../common/hammer/format';\nimport Icon from '../../components/Icon/Icon';\nimport {Tooltip} from '../../components/Tooltip/Tooltip';\nimport {OrderType, nextSortOrderValue} from '../../utils/sort-helpers';\n\nimport './SortIcon.scss';\n\nconst block = cn('sort-icon');\n\nconst ICON_BY_TYPE = {\n ['']: 'sort',\n asc: 'sort-up',\n desc: 'sort-down',\n 'asc-undefined': 'arrow-to-bottom',\n 'desc-undefined': 'arrow-from-bottom',\n 'undefined-asc': 'arrow-from-top',\n 'undefined-desc': 'arrow-to-top',\n} as const;\n\ninterface Props {\n className?: string;\n label?: string;\n onChange?: (nextOrder: OrderType) => void;\n order?: OrderType;\n hidden?: boolean;\n allowUnordered?: boolean;\n withUndefined?: boolean;\n}\n\nexport default class SortIcon extends React.Component<Props> {\n onClick = () => {\n const {order, onChange, allowUnordered, withUndefined} = this.props;\n if (!onChange) {\n return;\n }\n\n const nextOrder = nextSortOrderValue(order, allowUnordered, withUndefined);\n onChange(nextOrder);\n };\n\n render() {\n const {className, label, order, hidden} = this.props;\n const icon = ICON_BY_TYPE[order || ''];\n\n return (\n <span className={block({hidden}, className)} onClick={this.onClick}>\n {label && <span className={block('label')}>{label}</span>}\n <Tooltip\n className={block('icon')}\n content={order ? format.ReadableField(order) : 'Unordered'}\n >\n <Icon awesome={icon} face=\"solid\" />\n </Tooltip>\n </span>\n );\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 PropTypes from 'prop-types';\nimport {withRouter} from 'react-router';\n\nimport {computeStateQuery} from '../../utils/index';\nimport Link from '../../components/Link/Link';\nimport FormattedText from './FormattedText';\n\nfunction FormattedLink(props) {\n const {state, theme = 'ghost', className, text, match, onClick, ...rest} = props;\n const url = computeStateQuery({cluster: match.params.cluster, ...state});\n return (\n <Link routed url={url} theme={theme} onClick={onClick} className={className}>\n {React.isValidElement(text) ? text : <FormattedText text={text} {...rest} />}\n </Link>\n );\n}\nFormattedLink.propTypes = {\n state: PropTypes.shape({\n page: PropTypes.string.isRequired,\n cluster: PropTypes.string,\n tab: PropTypes.string,\n }).isRequired,\n text: PropTypes.oneOfType([PropTypes.node, PropTypes.string]).isRequired,\n className: PropTypes.string,\n theme: PropTypes.string,\n onClick: PropTypes.func,\n // from react-router\n match: PropTypes.shape({\n params: PropTypes.shape({\n cluster: PropTypes.string,\n }),\n }),\n};\nexport default withRouter(FormattedLink);\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport FormattedText from './FormattedText';\nimport FormattedLink from './FormattedLink';\n\nexport default function FormattedTextOrLink({asLink = false, ...props}) {\n return asLink ? <FormattedLink {...props} /> : <FormattedText {...props} />;\n}\nFormattedTextOrLink.propTypes = {\n asLink: PropTypes.bool,\n};\n","import React, {useState} from 'react';\nimport PropTypes from 'prop-types';\nimport cn from 'bem-cn-lite';\n\nimport ClipboardButton from '../../../components/ClipboardButton/ClipboardButton';\n\nimport './FormattedId.scss';\n\nconst block = cn('table-formatters-id');\n\nFormattedId.propTypes = {\n id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\n};\n\nexport default function FormattedId({id}) {\n const [hovered, setHovered] = useState(false);\n const handleMouseEnter = () => setHovered(true);\n const handleMouseLeave = () => setHovered(false);\n\n return (\n <div\n className={block({hovered: hovered ? 'yes' : 'no'})}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n >\n <span className=\"elements-ellipsis\">{id}</span>\n {hovered && (\n <div className={block('clipboard-button-wrapper')}>\n <ClipboardButton view=\"flat-secondary\" size=\"m\" text={id} />\n </div>\n )}\n </div>\n );\n}\n","import React from 'react';\nimport {Progress} from '@gravity-ui/uikit';\n\nimport hammer from '../../common/hammer';\n\n// TODO: here are defiend reworked components from /templates/utils, drop original functions once we switch to\n// new components everywhere\nexport {default as FormattedText} from './FormattedText';\nexport {default as FormattedLink} from './FormattedLink';\nexport {default as FormattedTextOrLink} from './FormattedTextOrLink';\nexport {default as FormattedId} from './FormattedId/FormattedId';\n\nexport function printColumnAsBytes(item, columnName) {\n const column = this.props.columns[columnName];\n return hammer.format['Bytes'](column.get(item));\n}\n\nexport function printColumnAsNumber(item, columnName) {\n const column = this.props.columns[columnName];\n return hammer.format['Number'](column.get(item));\n}\n\nexport function printColumnAsFloatNumber(item, columnName) {\n const column = this.props.columns[columnName];\n return hammer.format['Number'](column.get(item), {\n digits: 2,\n digitsOnlyForFloat: true,\n });\n}\n\nexport function printColumnAsProgress(item, columnName) {\n const column = this.props.columns[columnName];\n return <Progress {...column.get(item)} />;\n}\n\nexport function printColumnAsTimeDuration(item, columnName) {\n const column = this.props.columns[columnName];\n return hammer.format['TimeDuration'](column.get(item));\n}\n\nexport function printColumnAsTimeDurationWithMs(item, columnName) {\n const column = this.props.columns[columnName];\n return hammer.format['TimeDuration'](column.get(item), {\n format: 'milliseconds',\n });\n}\n\nexport function printColumnAsReadableField(item, columnName) {\n const column = this.props.columns[columnName];\n return (\n <span className=\"elements-ellipsis\">\n {hammer.format['ReadableField'](column.get(item))}\n </span>\n );\n}\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 {Dialog} from '@gravity-ui/uikit';\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, Dialog} from '@gravity-ui/uikit';\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 \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} from '@gravity-ui/uikit';\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((tabletId?: string) => {\n getAppBrowserHistory().push(`/${cluster}/${Page.TABLET}/${tabletId || ''}`);\n }, []);\n\n return (\n <EditableAsText className={block('editable')} text={id} onChange={handleEdit}>\n <Breadcrumbs\n className={block('control')}\n items={[\n {\n text: id,\n action: () => {},\n },\n ]}\n lastDisplayedItemsCount={2}\n firstDisplayedItemsCount={1}\n renderItemDivider={() => ''}\n />\n </EditableAsText>\n );\n}\n","import {Page} from '../../shared/constants/settings';\nimport {Tab as ComponentsTab} from '../constants/components/main';\nimport YT from '../config/yt-config';\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 makeNavigationLink(path: string, cluster?: string) {\n return `/${cluster || YT.cluster}/${Page.NAVIGATION}?path=${path}`;\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":["AttributesButton","_ref","_ref$view","view","_ref$size","size","rest","_objectWithoutProperties","_excluded","_jsx","Button","_objectSpread","children","Icon","awesome","connect","openAttributesModal","title","_ref$getPathProps","getPathProps","path","exactPath","attribute","attributes","_ref$withTooltip","withTooltip","_ref$tooltipProps","tooltipProps","placement","content","onClick","pathProps","block","cn","EditableAsText","props","onChange","text","className","withControls","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","extraProps","onMouseDown","type","EditButton","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","ICON_BY_TYPE","_ICON_BY_TYPE","_defineProperty","SortIcon","_React$Component","_this","_len","args","_key","call","order","allowUnordered","withUndefined","nextSortOrderValue","hidden","icon","Tooltip","ReadableField","face","typedMemo","ErrorBoundary","constructor","super","resetError","setState","getDerivedStateFromError","componentDidCatch","_a","_b","onError","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","withRouter","_props$theme","match","url","computeStateQuery","cluster","Link","routed","FormattedText","FormattedTextOrLink","_ref$asLink","asLink","FormattedLink","FormattedId","_useState","useState","_useState2","hovered","setHovered","onMouseEnter","onMouseLeave","ClipboardButton","printColumnAsBytes","columnName","column","columns","printColumnAsNumber","renderText","mix","elem","mods","textProps","asHTML","dangerouslySetInnerHTML","__html","unipika","decode","String","prepareTextProps","printColumnAsTimeDurationWithMs","getColumn","printColumnAsReadableField","printColumnAsTime","ColumnAsTime","printColumnAsError","_typeof","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","sets","tableSets","mode","renderAsId","renderAsState","renderAsNumber","renderAsAttributes","computeKey","_this$props3","loading","Loader","ElementsTable","tableSettings","Label","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","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","CHANGE_CONTENT_MODE","_state$tablet$tablet","makeMetaItem","renderErrorsDialog","errors","handleClose","hasButtonClose","autoclosable","renderReplicationErrorsDialog","replica","disableStoresDialog","useDispatch","_useSelector","useSelector","_useSelector2","global","mediumList","setErrorsVisibility","_useState3","_useState4","replicaErrors","setReplicationErrorsVisibility","_ypath$getValues","_ypath$getValues2","cellId","statistics","performance","_ypath$getValues3","_ypath$getValues4","unmergedRowCount","chunkCount","storesVisible","setStoresVisible","toggleStoresVisibility","resourcesMeta","disabled","performanceMeta","stateTheme","unmounted","mounted","frozen","freezing","unfreezing","mounting","unmounting","mixed","CHANGE_ACTIVE_HISTOGRAM","changeActiveHistogram","handleErrorsClick","handleReplicationErrorsClick","handleErrorsCloseClick","handleReplicationErrorsCloseClick","Template","Id","withClipboard","shiftText","hoverContent","genTabletCellBundlesCellUrl","Page","NAVIGATION","NavigationTab","TABLETS","makeComponentsNodesUrl","host","Boolean","Yson","_React$useMemo","updateFn","LOAD_TABLET_DATA","tabletAttribute","loadAttributes","loadTabletData","destructFn","useUpdater","timeout","initialLoading","Overview","Switch","Route","component","TabletDetails","TabletTopRowContent","RowWithName","page","TABLET","TabletBreadcrumbs","useRouteMatch","getCluster","handleEdit","tabletId","getAppBrowserHistory","Breadcrumbs","action","lastDisplayedItemsCount","firstDisplayedItemsCount","renderItemDivider","YT","COMPONENTS","ComponentsTab","NODES","makeProxyUrl","RPC_PROXIES","makeNavigationLink","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","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","updateLang","configure","setLang","updates","filteredUpdates","entries","acc","withNaming","m","getRandomCKId","chars","result","floor","random","randomString"],"sourceRoot":""}
|