@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
@@ -1,2 +0,0 @@
|
|
1
|
-
"use strict";(self.webpackChunk_ytsaurus_ui=self.webpackChunk_ytsaurus_ui||[]).push([[7959],{97536:(e,t,n)=>{n.d(t,{A:()=>c});var r=n(40319),o=n(18801),i=(n(77810),n(51806)),a=n(60620),s=n(64922),u=["view","size"];function c(e){var t=e.view,n=void 0===t?"flat-secondary":t,c=e.size,l=void 0===c?"m":c,d=(0,o.A)(e,u);return(0,s.jsx)(i.A,(0,r.A)((0,r.A)({view:n,size:l},d),{},{children:(0,s.jsx)(a.A,{awesome:"at"})}))}},71412:(e,t,n)=>{n.d(t,{W9:()=>S,Ay:()=>_,Fl:()=>x,$x:()=>C});var r=n(40319),o=n(18801),i=n(29121),a=n(12937),s=n(10785),u=n(26718),c=n(77810),l=n(76872),d=n(65692),h=n(34380),m=n(73822),f=n(53332),v=n(26264),p=n(64922),g=["value","onChange","min","max","validator","format","defaultValue"],y=["value","error","onChange"],A=(0,l.A)("yt-number-input");function C(e,t){if(""!==e){var n=e.replace(/\s/g,"");return"Bytes"===t?(0,f.z_)(n):Number(n)}}function x(e,t,n){if(void 0===e)return"";var r="Bytes"===t?m.A.format.Bytes(e,n):m.A.format.Number(e,n);return r===m.A.format.NO_VALUE?"":r}function b(e){return void 0===e?"":e}var S=function(e){(0,s.A)(n,e);var t=(0,u.A)(n);function n(){var e;(0,i.A)(this,n);for(var r=arguments.length,o=new Array(r),a=0;a<r;a++)o[a]=arguments[a];return(e=t.call.apply(t,[this].concat(o))).state={parsedValue:NaN},e.onChange=function(t){var r=e.parseValue(t),o=n.errorFromValue(r,e.props),i=e.format(null==r?void 0:r.value);e.setState({parsedValue:null==r?void 0:r.value,parsedError:o,rawValue:t,formattedValue:i}),(0,e.props.onChange)({value:null==r?void 0:r.value,error:o})},e.onBlur=function(){e.setState({focused:!1})},e.onFocus=function(){e.setState({focused:!0})},e.onKeyDown=function(t){t.keyCode===v.DD.ENTER&&e.props.onEnterKeyDown&&e.props.onEnterKeyDown()},e}return(0,a.A)(n,[{key:"parseValue",value:function(e){return this.props.parseFn?this.props.parseFn(e):{value:C(e,this.props.format)}}},{key:"format",value:function(e){var t=this.props,n=t.format,r=t.decimalPlaces,o=t.formatFn;return o?o(e):x(e,n,{digits:r})}},{key:"getRestProps",value:function(){var e=this.props;return e.value,e.onChange,e.min,e.max,e.validator,e.format,e.defaultValue,(0,o.A)(e,g)}},{key:"renderMinMaxHint",value:function(){var e=this.props,t=e.min,n=e.max,r=e.showHint,o=e.size,i=!isNaN(t),a=!isNaN(n);return r&&(i||a)?(0,p.jsxs)("div",{className:A("hint",{size:o}),children:[i&&(0,p.jsxs)(h.m,{content:String(t),placement:"bottom",children:["min: ",(0,p.jsx)("b",{children:this.format(t)})]}),i&&(0,p.jsx)(p.Fragment,{children:" "}),a&&(0,p.jsxs)(h.m,{content:String(n),placement:"bottom",children:["max: ",(0,p.jsx)("b",{children:this.format(n)})]})]}):null}},{key:"renderPrettyValue",value:function(){var e=this.props,t=e.size,n=e.hidePrettyValue,r=this.state.formattedValue;return n?null:(0,p.jsxs)("div",{className:A("pretty-value",{size:t}),children:[r," "]})}},{key:"renderDefaultValue",value:function(){var e=this.props,t=e.defaultValue,n=e.defaultValueClassName;return(0,p.jsx)(d.k,{disabled:!0,className:n,value:this.format(t),pin:"clear-round"})}},{key:"isBottomLineVisible",value:function(){var e=this.props.bottomLineVisibility,t=this.state.focused;return"visible"===e||t&&"focused"===e}},{key:"render",value:function(){var e=this.props,t=e.value,n=e.className,o=e.showHint,i=e.hidePrettyValue,a=e.showDefaultValue,s=this.state,u=s.parsedError,l=s.rawValue,h=s.formattedValue,m=s.focused,f=this.getRestProps(),v=f.size,g=f.view,y=f.hasClear,C=(null!=t?t:{}).error||u,x=m?l:h;return(0,p.jsxs)("div",{className:A(null,n),children:[(0,p.jsxs)("div",{className:A("top"),children:[(0,p.jsx)(d.k,(0,r.A)((0,r.A)({},f),{},{error:C,autoComplete:!1,onUpdate:this.onChange,onKeyDown:this.onKeyDown,hasClear:y,value:x,size:v,view:g,onBlur:this.onBlur,onFocus:this.onFocus,pin:a?"round-brick":void 0})),a&&this.renderDefaultValue()]}),!C&&this.isBottomLineVisible()&&(0,p.jsx)(c.Fragment,{children:!o||m&&!i?this.renderPrettyValue():this.renderMinMaxHint()})]})}}],[{key:"getDerivedStateFromProps",value:function(e,t){var r=e.value,o=e.format,i=e.preciseInitialRawValue,a=e.decimalPlaces,s=e.formatFn;if(void 0===t.rawValue){var u=s?s(null==r?void 0:r.value):x(null==r?void 0:r.value,o,{digits:a});return{parsedValue:null==r?void 0:r.value,parsedError:n.errorFromValue(r,e),rawValue:i?b(null==r?void 0:r.value):u,formattedValue:u}}return null}},{key:"errorFromValue",value:function(e,t){var n=t.validator,r=void 0===n?function(){}:n,o=t.min,i=t.max,a=t.integerOnly,s=e||{},u=s.value,c=s.error;if(c)return c;if(null!=u){try{if(isNaN(u))return"wrong format";var l=r(u);if(l)return l}catch(c){return String(c)}return a&&u%1!=0?"The value must be an integer":void 0!==o&&u<o?"The value must be ≥ ".concat(o):void 0!==i&&u>i?"The value must be ≤ ".concat(i):void 0}}}]),n}(c.Component);S.defaultProps={size:"m",view:"normal",hasClear:!0,bottomLineVisibility:"visible"};var _=function(e){(0,s.A)(n,e);var t=(0,u.A)(n);function n(){var e;(0,i.A)(this,n);for(var r=arguments.length,o=new Array(r),a=0;a<r;a++)o[a]=arguments[a];return(e=t.call.apply(t,[this].concat(o))).onChange=function(t){e.props.onChange(null==t?void 0:t.value)},e}return(0,a.A)(n,[{key:"render",value:function(){var e=this.props,t=e.value,n=e.error,i=(e.onChange,(0,o.A)(e,y));return(0,p.jsx)(S,(0,r.A)((0,r.A)({},i),{},{onChange:this.onChange,value:{value:t,error:n}}))}}],[{key:"format",value:function(e,t,n){return x(e,t,n)}}]),n}(c.Component)},70406:(e,t,n)=>{n.d(t,{A:()=>m});var r=n(29121),o=n(12937),i=n(10785),a=n(26718),s=n(77810),u=n(76872),c=n(73822),l=n(71412),d=n(64922),h=(0,u.A)("yt-quota-editor"),m=function(e){(0,i.A)(n,e);var t=(0,a.A)(n);function n(){var e;(0,r.A)(this,n);for(var o=arguments.length,i=new Array(o),a=0;a<o;a++)i[a]=arguments[a];return(e=t.call.apply(t,[this].concat(i))).onEnterKeyDown=function(){var t=e.props.onEnterKeyDown;(void 0===t?function(){}:t)()},e.onBytesChange=function(t){var n=e.props,r=n.onChange,o=n.sourceAccount;r({limit:null==t?void 0:t.value,source:o,error:(null==t?void 0:t.error)||e.checkForError(null==t?void 0:t.value,o)})},e.onAccountChange=function(t){var n=e.props,r=n.onChange,o=n.limit;r({limit:o,source:t,error:n.error||e.checkForError(o,t)})},e}return(0,o.A)(n,[{key:"render",value:function(){var e=this.props,t=e.className,n=e.format,r=e.sourceSuggestTitle,o=e.renderSourceSuggest,i=e.sourceAccount,a=e.limitInputTitle,u=e.showHint,c=e.error,m=e.decimalPlaces,f=e.sourceSuggestDisabled;return(0,d.jsxs)("div",{className:h(null,t),children:[o&&(0,d.jsxs)("div",{className:h("item"),children:[(0,d.jsx)("div",{className:h("item-title"),children:r||"Account to distribution"}),o({value:i||"",onChange:this.onAccountChange,disabled:f}),(0,d.jsx)("div",{className:h("free"),children:(0,d.jsxs)(s.Fragment,{children:["Free to distribute",(0,d.jsxs)("span",{className:h("free-value"),children:[" ",this.getFreeFormatted()]})]})})]}),(0,d.jsxs)("div",{className:h("item"),children:[(0,d.jsx)("div",{className:h("item-title"),children:a||"New quota limit"}),(0,d.jsx)(l.W9,{onChange:this.onBytesChange,value:{value:this.getLimit(),error:c},format:n,showHint:u,min:this.getMinLimit(),max:this.getMaxLimit(),onEnterKeyDown:this.onEnterKeyDown,decimalPlaces:m,qa:"quota-editor-new-limit"})]})]})}},{key:"getLimit",value:function(){var e=this.props,t=e.limit,n=e.prevLimit;return void 0!==t?t:n}},{key:"getFreeImpl",value:function(){var e=this.props.sourceAccount,t=this.calcLimitTotal(e),n=t.limit,r=t.total,o=t.allowChildrenOverCommit,i=t.totalChildrenLimit,a=void 0===i?0:i;if(void 0===n||void 0===r)return{};if(o){var s=Math.max(0,n);return{free:s,maxValue:s}}var u=this.props.prevLimit,c=void 0===u?0:u,l=this.props.limit,d=void 0===l?c:l,h=Math.max(0,n-a);return{free:h+c-d,maxValue:h+c}}},{key:"getFree",value:function(){return this.getFreeImpl().free}},{key:"calcLimitTotal",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return this.props.getInfoByName(e)}},{key:"getMinLimit",value:function(){var e=this.props.min;if(void 0!==e)return e;var t=this.props,n=t.currentAccount,r=(0,t.getInfoByName)(n),o=r.totalChildrenLimit;return(r.total||0)+(o||0)}},{key:"getMaxLimit",value:function(){var e=this.props.max;return void 0!==e?e:this.getFreeImpl().maxValue}},{key:"getFreeFormatted",value:function(){return this.props.sourceAccount?l.Ay.format(Number(this.getFree()),this.props.format):c.A.format.NO_VALUE}},{key:"checkForError",value:function(e,t){if(void 0!==e){if(isNaN(e))return"wrong format!";if(this.props.currentAccount===t)return"The same source account";if(!(e<=this.props.prevLimit)){var n=this.getMaxLimit();return t&&(void 0===n||e>n)?"New value is too big":void 0}}}}]),n}(s.Component)},9772:(e,t,n)=>{n.d(t,{A:()=>g});var r=n(29121),o=n(12937),i=n(10785),a=n(26718),s=n(77810),u=n(76872),c=n(60620),l=n(93209),d=n(51806),h=n(71412),m=n(48109),f=n(70406),v=n(64922),p=(0,u.A)("yt-quota-editor-with-hide"),g=function(e){(0,i.A)(n,e);var t=(0,a.A)(n);function n(){var e;(0,r.A)(this,n);for(var o=arguments.length,i=new Array(o),a=0;a<o;a++)i[a]=arguments[a];return(e=t.call.apply(t,[this].concat(i))).state={},e.onYes=function(){var t=e.calcLimitTotal(e.props.currentAccount).limit,n=void 0===t?0:t,r=e.getLimit()||0;e.props.onSave(r,r-n,e.getDistributeAccount()),e.setState({showConfirm:!1}),e.props.onHide()},e.onCancel=function(){e.setState({showConfirm:!1})},e.onChange=function(t){var n=t.limit,r=t.source,o=t.error,i=e.props,a=i.parentOfCurrentAccount,s=i.limit;e.setState({newLimit:n,account:r,accountChanged:r!==a,isReadyToSave:!o&&n!==s&&void 0!==n})},e.onSave=function(){e.state.isReadyToSave&&e.setState({showConfirm:!0})},e}return(0,o.A)(n,[{key:"render",value:function(){return this.state.showConfirm?this.renderConfirmation():this.renderEditor()}},{key:"renderConfirmation",value:function(){var e=this.props,t=e.className,n=e.limit;return(0,v.jsxs)("div",{className:p("confirm",t),children:[(0,v.jsx)("div",{className:p("confirm-notice"),children:"Do you really want to change the quota limit?"}),(0,v.jsxs)("div",{className:p("confirm-details"),children:["The previous value is ",this.renderLimit(n),", the new value is"," ",this.renderLimit(this.getLimit())]}),(0,v.jsxs)("div",{className:p("confirm-actions"),children:[(0,v.jsx)(d.A,{className:p("confirm-btn"),view:"action",onClick:this.onYes,qa:"quota-editor-confirmation-yes",children:"Yes"}),(0,v.jsx)(d.A,{className:p("confirm-btn"),view:"flat-secondary",onClick:this.onCancel,children:"Cancel"})]})]})}},{key:"renderLimit",value:function(e){var t=this.props.format;return(0,v.jsx)("span",{className:p("confirm-limit"),children:h.Ay.format(e,t)})}},{key:"renderEditor",value:function(){var e=this.props,t=e.className,n=e.onHide,r=this.state.isReadyToSave;return(0,v.jsxs)("div",{className:p(null,[t,"yt-special-background"].filter(Boolean).join(" ")),children:[(0,v.jsxs)("div",{className:p("top"),children:["Edit Quota limit",(0,v.jsx)(l.S,{className:p("hide"),color:"secondary",onClick:n,children:(0,v.jsx)(c.A,{awesome:"times",face:"light"})})]}),(0,v.jsxs)("div",{className:p("controls"),children:[this.renderControl(),(0,v.jsxs)("div",{className:p("controls-item",{save:!0}),children:[(0,v.jsx)("div",{className:p("control-title"),children:" "}),(0,v.jsx)(d.A,{size:"m",view:"action",disabled:!r,onClick:this.onSave,qa:"quota-editor-save",children:"Save"})]})]})]})}},{key:"renderControl",value:function(){var e=this.props,t=e.format,n=e.limit,r=e.min,o=e.max,i=e.currentAccount,a=e.getInfoByName,s=e.sourceSuggestTitle,u=e.renderSourceSuggest;return(0,v.jsx)(f.A,{className:p("grow"),currentAccount:i,sourceAccount:this.getDistributeAccount(),getInfoByName:a,sourceSuggestTitle:s,renderSourceSuggest:u,format:t,limit:this.getLimit(),prevLimit:n,onChange:this.onChange,onEnterKeyDown:this.onSave,min:r,max:o})}},{key:"getLimit",value:function(){var e=this.state.newLimit,t=this.props.limit;return void 0!==e?e:t}},{key:"getDistributeAccount",value:function(){var e=this.state,t=e.account,n=e.accountChanged?t:this.props.parentOfCurrentAccount;return n===m.$T?"":n}},{key:"calcLimitTotal",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return this.props.getInfoByName(e)}}]),n}(s.Component)},38226:(e,t,n)=>{n.d(t,{A:()=>p});var r,o=n(29121),i=n(12937),a=n(10785),s=n(26718),u=n(68175),c=n(77810),l=n(76872),d=n(60620),h=n(44458),m=n(64922),f=(0,l.A)("sort-icon"),v=(r={},(0,u.A)(r,"","sort"),(0,u.A)(r,"asc","sort-up"),(0,u.A)(r,"desc","sort-down"),(0,u.A)(r,"asc-undefined","arrow-to-bottom"),(0,u.A)(r,"desc-undefined","arrow-from-bottom"),(0,u.A)(r,"undefined-asc","arrow-from-top"),(0,u.A)(r,"undefined-desc","arrow-to-top"),r),p=function(e){(0,a.A)(n,e);var t=(0,s.A)(n);function n(){var e;(0,o.A)(this,n);for(var r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];return(e=t.call.apply(t,[this].concat(i))).onClick=function(){var t=e.props,n=t.order,r=t.onChange,o=t.allowUnordered,i=t.withUndefined;r&&r((0,h.$N)(n,o,i))},e}return(0,i.A)(n,[{key:"render",value:function(){var e=this.props,t=e.className,n=e.label,r=e.order,o=e.hidden,i=v[r||""];return(0,m.jsxs)("span",{className:f({hidden:o},t),onClick:this.onClick,children:[n&&(0,m.jsx)("span",{className:f("label"),children:n}),(0,m.jsx)("span",{className:f("icon"),children:(0,m.jsx)(d.A,{awesome:i,face:"solid"})})]})}}]),n}(c.Component)},77723:(e,t,n)=>{n.d(t,{A:()=>N});var r=n(9736),o=n(29121),i=n(12937),a=n(79261),s=n(10785),u=n(26718),c=n(77810),l=n(75826),d=n.n(l),h=n(25147),m=n.n(h),f=n(76872),v=n(23313),p=n.n(v),g=n(95603),y=n.n(g),A=n(90636),C=n.n(A),x=n(65692),b=n(55740),S=n(29241),_=n(64922),k=(0,f.A)("suggest"),N=(d().arrayOf(d().oneOfType([d().string,d().shape({value:d().string,text:d().string,counter:d().oneOfType([d().string,d().number])})])),function(e){(0,s.A)(n,e);var t=(0,u.A)(n);function n(e){var r;return(0,o.A)(this,n),(r=t.call(this,e)).input=c.createRef(),r.isClearClicked=!1,r.isUnmounting=!1,r.skipApplyForNextBlur=!1,r.onTextUpdate=function(e){var t=r.props,n=t.clear,o=t.onTextUpdate;r.setState({text:e}),r.loadSuggestions(e),e.length||null==n||n(),null==o||o(e)},r.showSuggestions=function(e){var t,n;r.isUnmounting||(r.setState({items:e,popupVisible:!0,selectedIndex:0}),null===(t=(n=r.props).onOpenChange)||void 0===t||t.call(n,{open:!0}))},r.state={text:"text"in e?e.text:e.defaultText,items:e.items,selectedIndex:0,popupVisible:!1,prevItems:[]},r.onFocus=r.onFocus.bind((0,a.A)(r)),r.onBlur=r.onBlur.bind((0,a.A)(r)),r.onKeyDown=r.onKeyDown.bind((0,a.A)(r)),r.hideSuggestions=r.hideSuggestions.bind((0,a.A)(r)),r.clearSuggestions=r.clearSuggestions.bind((0,a.A)(r)),r}return(0,i.A)(n,[{key:"componentDidMount",value:function(){this.isClearClicked=!1}},{key:"componentWillUnmount",value:function(){this.isUnmounting=!0}},{key:"onFocus",value:function(){var e,t;this.setState({focused:!0}),this.isClearClicked=!1,this.loadSuggestions(this.state.text),this.skipApplyForNextBlur=!1,null===(e=(t=this.props).onFocus)||void 0===e||e.call(t)}},{key:"onBlur",value:function(){var e,t,n;this.hideSuggestions(),this.isClearClicked||null===(e=(t=this.props).onBlur)||void 0===e||e.call(t),this.skipApplyForNextBlur||this.applySuggestion(null!==(n=this.state.text)&&void 0!==n?n:""),this.setState({focused:!1})}},{key:"onKeyDown",value:function(e){var t=e.keyCode;if(40===t)e.preventDefault(),this.selectNextSuggestion();else if(38===t)e.preventDefault(),this.selectPrevSuggestion();else if(13===t)this.applyOrClearSuggestion();else if(27===t){var n;null===(n=this.input.current)||void 0===n||n.blur()}}},{key:"hideSuggestions",value:function(){var e,t;this.setState({items:[],popupVisible:!1,selectedIndex:0}),null===(e=(t=this.props).onOpenChange)||void 0===e||e.call(t,{open:!1})}},{key:"loadSuggestions",value:function(e){var t=this.props,n=t.filter,r=t.items;Promise.resolve(n(r,e)).then(this.showSuggestions)}},{key:"clearSuggestions",value:function(){var e,t=this.props.clear;null==t||t(),this.isClearClicked=!0,null===(e=this.input.current)||void 0===e||e.blur()}},{key:"applySuggestion",value:function(e){var t,n=this.props.apply;this.setState({text:e}),null==n||n(e),null===(t=this.input.current)||void 0===t||t.blur()}},{key:"getItemIndex",value:function(e){return e-1}},{key:"getSelectedIndex",value:function(e){return e+1}},{key:"getItemValue",value:function(e){return"string"==typeof e?e:e.value}},{key:"applyOrClearSuggestion",value:function(){var e,t=this.state,n=t.selectedIndex,r=t.items;if(0===n?r.length>0&&(e=r[0]):e=r[this.getItemIndex(n)],e){var o=this.getItemValue(e);this.applySuggestion(o);var i=this.props.onItemClick;null==i||i(e)}}},{key:"selectPrevSuggestion",value:function(){var e=this.state,t=e.selectedIndex,n=e.items,r=0===t?this.getSelectedIndex(n.length-1):t-1;this.setState({selectedIndex:r})}},{key:"selectNextSuggestion",value:function(){var e=this.state,t=e.selectedIndex,n=e.items,r=t===this.getSelectedIndex(n.length-1)?0:t+1;this.setState({selectedIndex:r})}},{key:"renderInput",value:function(){var e=this.state.text,t=this.props,n=t.placeholder,r=t.autoFocus,o=t.disabled,i=t.pin;return(0,_.jsx)(x.k,{hasClear:!0,value:e,className:k("control"),placeholder:n,disabled:o,onUpdate:this.onTextUpdate,onFocus:this.onFocus,onBlur:this.onBlur,autoFocus:r,controlRef:this.input,pin:i,onKeyDown:this.onKeyDown})}},{key:"renderCounter",value:function(e){var t=e.counter;return void 0!==t&&(0,_.jsx)("span",{className:k("item-counter"),children:t})}},{key:"renderSimpleItem",value:function(e){var t="string"==typeof e?e:e.text;return(0,_.jsxs)("span",{children:["string"!=typeof e&&this.renderCounter(e),t]})}},{key:"renderItem",value:function(e,t,n,r){var o=this,i=this.state.selectedIndex,a=k("item",{selected:i===this.getSelectedIndex(t)?"yes":void 0},r),s=this.getItemValue(e),u=this.props,c=u.template,l=u.renderItem,d=u.onItemClick,h=null!=l?l:void 0!==c?S.Ay.get(c.key).__default__:this.renderSimpleItem.bind(this);return(0,_.jsx)("li",{title:s,className:a,onMouseDown:function(){o.skipApplyForNextBlur=!0,null==d||d(e),o.applySuggestion(s)},children:h(e)},n)}},{key:"getInputWidth",value:function(){return this.input.current?this.input.current.offsetWidth-2:0}},{key:"restrictItems",value:function(e){var t=this.props.maxItems;if(p()(t))return e.slice(0,t||e.length);if(y()(t)){var n=t.totalAmount,o=t.groupPredicate,i=C()(e,o),a=(0,r.A)(i,2),s=a[0],u=a[1];if(s.length&&u.length){var c=Math.round(Math.max(s.length/e.length*n,1));return s.slice(0,c).concat(u.slice(0,n-c))}return e.slice(0,n||e.length)}return e}},{key:"renderSuggestions",value:function(e){var t=this,n=k("wrapper"),r=k("items"),o=0===e.length&&this.state.text;return e&&(0,_.jsxs)("div",{className:n,children:[o&&this.renderItem("No items",-1,"no_items",k("no-items")),(0,_.jsx)("ul",{className:r,style:{minWidth:this.getInputWidth()},children:(0,_.jsx)(m(),{itemRenderer:function(n,r){return t.renderItem(e[n],n,r)},length:e.length,type:"uniform"})})]})}},{key:"renderPopup",value:function(){var e=this.props,t=e.popupClassName,n=e.popupPlacement,r=this.state.popupVisible,o=this.restrictItems(this.state.items);return(0,_.jsx)(b.z,{className:t,placement:null!=n?n:["bottom-start","top-start"],anchorRef:this.input,open:!this.isClearClicked&&r&&o.length>0,onClose:this.hideSuggestions,children:this.renderSuggestions(o)})}},{key:"render",value:function(){var e=this.props.className;return(0,_.jsxs)("div",{className:k(null,e),children:[this.renderInput(),this.renderPopup()]})}}],[{key:"getDerivedStateFromProps",value:function(e,t){var n=!t.focused&&"text"in e?e.text:t.text;return e.items===t.prevItems&&n===t.text?null:{items:e.filter(e.items,n),prevItems:e.items,text:n}}}]),n}(c.Component));N.defaultProps={disable:!1,text:"",autoFocus:!1,items:[],zIndexGroupLevel:1,onBlur:function(){},focused:!1}},60680:(e,t,n)=>{n.d(t,{yN:()=>l,uL:()=>f,IS:()=>m,L1:()=>c,W1:()=>d,N5:()=>h});var r=n(40319),o=(n(77810),n(76872)),i=n(3659),a=n(53332),s=n(64922),u=(0,o.A)("yt-text");function c(e){var t=e.children,n=e.disabled;return(0,s.jsx)("span",{className:u("secondary",{disabled:n}),children:t})}function l(e){var t=e.children;return(0,s.jsx)("span",{className:u("bold"),children:t})}function d(e){var t=e.children;return(0,s.jsx)(c,{children:(0,s.jsx)(l,{children:t})})}function h(e){var t=e.children,n=e.className;return(0,s.jsx)("span",{className:u("warning",n),children:t})}function m(e){var t=e.children;return(0,s.jsx)("span",{className:u("no-wrap"),children:t})}function f(e){var t=e.text,n=i.A.prettyprint(t,(0,r.A)((0,r.A)({},a.EP),{},{asHTML:!0}));return(0,s.jsx)("span",{className:u("escaped"),dangerouslySetInnerHTML:{__html:n}})}},37175:(e,t,n)=>{n.d(t,{A:()=>m,_:()=>h}),n(77810);var r=n(76426),o=n(48109),i=n(26264),a=n(15647),s=n(52797),u=n(73822),c=n(34380),l=n(28640),d=n(64922);function h(e,t){return"/".concat(e,"/").concat(i.YW.ACCOUNTS,"/").concat(o.yE.GENERAL,"?account=").concat(t)}function m(e){var t=e.cluster,n=e.account,o=e.className,i=e.inline,m=(0,a.d4)(s.dB),f=t||m;return(0,d.jsx)(c.m,{ellipsis:i,className:o,content:n?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(l.A,{text:n,view:"flat-secondary"})," ",n]}):null,children:n?(0,d.jsx)(r.A,{theme:"primary",routed:!0,url:h(f,n),children:n}):u.A.format.NO_VALUE})}},84656:(e,t,n)=>{n.d(t,{Oo:()=>x,Dk:()=>_,_C:()=>S,Ay:()=>b});var r=n(40319),o=n(9736),i=n(77810),a=n(15647),s=n(27528),u=n.n(s),c=n(76872),l=n(82060),d=n(48109),h=n(99526),m=n(10352),f=n(88681),v=n(40519),p=n(64714),g=n(50074),y=n(64922),A=(0,c.A)("accounts-suggest"),C="<Root>";function x(e){var t=e.items,n=e.onChange,r=e.placeholder,o=e.allowRootAccount,i=e.disabled,a=e.validate,s=void 0===a?function(){}:a,c=e.touched,l=e.value,h=u()(t,(function(e){return{value:e,text:e}}));o&&h.splice(0,0,{value:d.$T,text:C});var m=c&&s(l);return(0,y.jsxs)("div",{className:A({empty:!l,error:Boolean(m)}),children:[(0,y.jsx)(g.L,{disabled:i,items:h,onChange:n,placeholder:r,value:l,width:"max",hideClear:!0}),m&&(0,y.jsx)("div",{className:A("error"),children:m})]})}x.isEmpty=function(e){return!e},x.getDefaultValue=function(){return""},x.hasErrorRenderer=!0;const b=(0,a.Ng)((function(e){return{items:(0,m.SD)(e)}}))(x);var S=(0,a.Ng)((function(e){return{items:(0,h.nD)(e)}}))(x);function _(e){var t=i.useState({items:[]}),n=(0,o.A)(t,2),a=n[0],s=a.items,u=a.error,c=n[1];return i.useMemo((function(){(0,f.IF)(p.Vu.listAccounts,(0,r.A)({path:"//sys/accounts"},v.R)).then((function(e){c({items:e})})).catch((function(e){c({error:e})}))}),[]),(0,y.jsxs)(i.Fragment,{children:[(0,y.jsx)(x,(0,r.A)((0,r.A)({},e),{},{items:s||[]})),u&&(0,y.jsx)(l.A,{error:u})]})}_.isEmpty=function(e){return!e},_.getDefaultValue=function(){return d.$T}},10199:(e,t,n)=>{n.d(t,{A:()=>s});var r=n(29121),o=n(12937),i=n(4617),a=n(44623),s=function(){function e(t){(0,r.A)(this,e),Object.assign(this,t.perMedium,t.masterMemoryResources,t)}return(0,o.A)(e,[{key:"getDiskSpaceProgressInfo",value:function(t,n){var r=e.GetDataPerMedium(this,t,n);return r?{committed:r.committedDiskSpace,uncommitted:r.uncommittedDiskSpace,total:r.totalDiskSpace,limit:r.diskSpaceLimit,theme:r.diskSpaceProgressTheme,progress:r.diskSpaceProgress,progressText:r.diskSpaceProgressText}:{}}},{key:"getResourceInfoSource",value:function(e){return e&&this.hasRecursiveResources?this.recursiveResources:this}},{key:"getNodeCountProgressInfo",value:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],t=this.getResourceInfoSource(e);return{committed:t.committedNodeCount,uncommitted:t.uncommittedNodeCount,total:t.totalNodeCount,limit:t.nodeCountLimit,theme:t.nodeCountProgressTheme,progress:t.nodeCountProgress,progressText:t.nodeCountProgressText}}},{key:"getChunkCountProgressInfo",value:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],t=this.getResourceInfoSource(e);return{committed:t.committedChunkCount,uncommitted:t.uncommittedChunkCount,total:t.totalChunkCount,limit:t.chunkCountLimit,theme:t.chunkCountProgressTheme,progress:t.chunkCountProgress,progressText:t.chunkCountProgressText}}},{key:"getTabletCountProgressInfo",value:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],t=this.getResourceInfoSource(e);return{committed:t.committedTabletCount,uncommitted:t.uncommittedTabletCount,total:t.totalTabletCount,limit:t.tabletCountLimit,theme:t.tabletCountProgressTheme,progress:t.tabletCountProgress,progressText:t.tabletCountProgressText}}},{key:"getTabletStaticMemoryInfo",value:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],t=this.getResourceInfoSource(e);return{committed:t.committedTabletStaticMemory,uncommitted:t.uncommittedTabletStaticMemory,total:t.totalTabletStaticMemory,limit:t.tabletStaticMemoryLimit,theme:t.tabletStaticMemoryProgressTheme,progress:t.tabletStaticMemoryProgress,progressText:t.tabletStaticMemoryProgressText}}},{key:"getMasterMemoryMediumInfo",value:function(e,t){return this.getResourceInfoSource(e)[(0,a.o$)("master_memory/"+t)]}}],[{key:"prepareProgressStack",value:function(e,t,n,r){var o=t>0?e+t:e,a=Math.max(o,n);return[{value:(0,i.jP)(t<0?e+t:e,a),theme:r},{value:(0,i.jP)(Math.abs(t),a)}]}},{key:"GetDataPerMedium",value:function(e,t,n){if(n){var r=e.recursiveResources;if(t)return r.perMedium&&r.perMedium[t]}return t?e.perMedium&&e.perMedium[t]:e}}]),e}()},44187:(e,t,n)=>{n.d(t,{A:()=>S,o:()=>C});var r=n(28407),o=n(29121),i=n(12937),a=n(10785),s=n(26718),u=n(70232),c=n.n(u),l=n(77810),d=n(15647),h=n(76872),m=n(20330),f=n(22843),v=n(52797),p=n(84656),g=(n(97094),n(7787)),y=n(64922),A=(0,h.A)("accounts-editor");function C(e){var t=e.header,n=e.children;return(0,y.jsxs)("div",{className:A(null,"elements-section"),children:[(0,y.jsx)("div",{className:A(null,"elements-heading_size_s"),children:t}),n]})}var x=function(e){(0,a.A)(n,e);var t=(0,s.A)(n);function n(){var e;(0,o.A)(this,n);for(var i=arguments.length,a=new Array(i),s=0;s<i;s++)a[s]=arguments[s];return(e=t.call.apply(t,[this].concat(a))).state={abcId:void 0,abcTitle:"",responsibleKey:0},e.onParentChange=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";if((arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).isOutsideClick)e.forceUpdate();else{var n=e.props,r=n.account,o=r.name,i=r.parent,a=n.setAccountParent;if(i!==t)return a(o,t)}},e.onAbcServiceChanged=function(){var t=(0,r.A)(c().mark((function t(n){var r,o,i,a,s,u,l,d,h,f,v,p=arguments;return c().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(!(p.length>1&&void 0!==p[1]?p[1]:{}).isOutsideClick){t.next=4;break}return e.forceUpdate(),t.abrupt("return");case 4:if(o=(r=null!=n?n:{}).id,i=r.slug,a=e.props,s=a.account,u=s.name,l=s.abc,h=(d=void 0===l?{}:l).slug,f=d.id,v=a.loadEditedAccount,o!==f||h!==i){t.next=8;break}return t.abrupt("return");case 8:return t.next=10,(0,m.cg)(u,o,i);case 10:v(u);case 11:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}(),e}return(0,i.A)(n,[{key:"renderParentAccount",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=this.props.isDeveloper;return(0,y.jsx)(C,{header:"Parent",children:(0,y.jsx)(p._C,{value:e,onChange:this.onParentChange,disabled:!t,allowRootAccount:!0})})}},{key:"renderAbcServiceId",value:function(){var e=this.props,t=e.account.abc,n=t.id,r=t.slug,o=e.isDeveloper,i=g.Ay.renderControlAbcService({value:{id:n,slug:r},onChange:this.onAbcServiceChanged,placeholder:"Select ABC service...",disabled:!o});return i?(0,y.jsx)(C,{header:"ABC Service",children:i}):null}},{key:"render",value:function(){var e=this.props.account.parent;return(0,y.jsxs)(l.Fragment,{children:[this.renderAbcServiceId(),this.renderParentAccount(e)]})}}]),n}(l.Component),b={loadEditedAccount:f.Pm,setAccountParent:f.cV};const S=(0,d.Ng)((function(e){return{cluster:(0,v.dB)(e),isDeveloper:(0,v.dU)(e)}}),b)(x)},25991:(e,t,n)=>{n.d(t,{W:()=>u,p:()=>s});var r=n(27528),o=n.n(r),i=n(77333),a=n(44623);function s(e){return function(t){t({type:i.Hr,data:e})}}function u(e){return Promise.all(o()(e,(function(e){return Promise.resolve((0,a.N3)(e))})))}},22843:(e,t,n)=>{n.d(t,{$W:()=>D,AG:()=>M,Gs:()=>V,I$:()=>T,M7:()=>L,Pm:()=>I,Tq:()=>w,XG:()=>z,Y5:()=>F,_m:()=>B,cV:()=>O,hH:()=>j,i1:()=>R,iw:()=>E,jA:()=>P});var r=n(28407),o=n(9736),i=n(40319),a=n(70232),s=n.n(a),u=n(78259),c=n(49214),l=n.n(c),d=n(27528),h=n.n(d),m=n(19314),f=n(6708),v=n(13724),p=n(20330),g=n(48109),y=n(77333),A=n(40519),C=n(52797),x=n(10352),b=n(64714),S=n(25991),_=n(10199),k=n(11896),N=["abc","diskSpaceLimit","parent_name","responsibles","totalDiskSpace","resource_limits","resource_usage","committed_resource_usage","recursive_resource_usage","recursive_committed_resource_usage","recursive_violated_resource_limits","allow_children_limit_overcommit","total_children_resource_limits","folder_id"];function w(){return function(e,t){e({type:g.Vi.REQUEST});var n=t(),r=(0,C.dB)(n),a=(0,C.ID)(n),s=(0,x.BO)(n)?{}:A.R,c=[{command:"list",parameters:(0,i.A)((0,i.A)({path:"//sys/accounts/",attributes:N},A.v),s)},{command:"get",parameters:{path:"//sys/accounts/@",attributes:["total_resource_limits","total_resource_usage"]}},{command:"get",parameters:{path:"//sys/cluster_nodes/@",attributes:["available_space_per_medium","io_statistics_per_medium","used_space_per_medium"]}},{command:"get",parameters:{path:"//sys/users/"+a+"/@usable_accounts"}}],d=new b.CT(r,k.c.ACCOUNTS);return d.fetch(b.Vu.accountsData,b.Qq.executeBatch(b.Vu.accountsData,{requests:c})).then((function(t){e({type:y.Hr,data:{disableCacheForNextFetch:!1}});var n=(0,o.A)(t,4),r=n[0],i=r.error,a=r.output,s=n[1],c=s.error,m=s.output,f=n[2],v=f.error,p=f.output,A=n[3],C=A.error,x=A.output;Promise.resolve(i).then((function(t){if(t)throw t;var n=l()(u.A.getValue(a),(function(e){return u.A.getValue(e)!==g.$T}));return d.parse(b.Vu.accountsData,(0,S.W)(n)).then((function(t){e({type:g.Vi.SUCCESS,data:{accounts:h()(t,(function(e){return new _.A(e)}))}})}))})).catch((function(t){e({type:g.Vi.FAILURE,data:{error:t}})})),e(c?{type:g.Xt.FAILURE,data:{error:c}}:{type:g.Xt.SUCCESS,data:m}),e(v?{type:g.A2.FAILURE,data:{error:v}}:{type:g.A2.SUCCESS,data:p}),e(C?{type:g.VY.FAILURE,data:{error:C}}:{type:g.VY.SUCCESS,data:x})}))}}function j(){return function(e,t){var n=(0,x.F2)(t());return{type:y.Hr,data:{editCounter:n+1,disableCacheForNextFetch:!0}}}}function I(e){return function(t,n){var r=n(),i=(0,C.dB)(r);t({type:g.FM.REQUEST});var a=new b.CT(i,k.c.ACCOUNTS);return a.fetch(b.Vu.accountsEditData,b.Qq.get(b.Vu.accountsEditData,{path:"//sys/accounts/"+e+"/@",attributes:N})).then((function(t){return a.parse(b.Vu.accountsEditData,(0,S.W)([{$value:e,$attributes:t}]))})).then((function(e){var n=(0,o.A)(e,1)[0];t({type:g.FM.SUCCESS,data:{account:new _.A(n),cluster:i}})})).catch((function(){t({type:g.FM.FAILURE})}))}}function F(e){return function(t,n){var r=n().tables[g.G5];t({type:g.gt,data:{newFilter:e,sortState:r}})}}function M(e){return{type:g.lo,data:{account:e}}}function T(e){return function(t){return e&&t((0,v.vi)(e)),t({type:g.IC,data:{account:e}})}}function P(){return function(e){return e({type:g.Ps}),e(w())}}function V(e){return{type:g._5,data:{newFilter:e}}}function L(e){return{type:g.FO,data:{newFilter:e}}}function D(){return function(e,t){var n=t().tables[g.G5];e({type:g.vX,data:{sortState:n}})}}function B(e){return{type:g.pN,data:{treeState:e}}}function O(e,t){return function(){var n=(0,r.A)(s().mark((function n(r){return s().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,(0,p.Qe)(e,t);case 2:return r(w()),n.next=5,r(I(e));case 5:case"end":return n.stop()}}),n)})));return function(e){return n.apply(this,arguments)}}()}function z(e){return function(t){return t((0,f.ZC)(m.Ou.ACCOUNTS.DASHBOARD_VISIBILITY_MODE,m.dK.ACCOUNTS,e))}}function E(e){return function(t){return t((0,f.ZC)(m.Ou.ACCOUNTS.ACCOUNTS_VISIBILITY_MODE,m.dK.ACCOUNTS,e))}}function R(e,t){return function(e){e({type:y.Hr,data:{abcServiceFilter:{slug:t}}})}}},94285:(e,t,n)=>{n.d(t,{DO:()=>z,GR:()=>K,JP:()=>k,K:()=>H,Nd:()=>P,QJ:()=>S,RC:()=>U,U5:()=>q,UI:()=>T,Xj:()=>V,dz:()=>C,jU:()=>E,l9:()=>A,p1:()=>x,px:()=>b,sD:()=>j,tC:()=>N,um:()=>y,uo:()=>L,v8:()=>M,vY:()=>w,yb:()=>D,zQ:()=>R});var r=n(49214),o=n.n(r),i=n(34455),a=n.n(i),s=n(27528),u=n.n(s),c=n(31285),l=n.n(c),d=n(18472),h=n(6184),m=n(52797),f=n(73928),v=n(53332),p=n(44458),g=n(94544),y=function(e){return e.chaos_cell_bundles.loaded},A=function(e){return e.chaos_cell_bundles.loading},C=function(e){return e.chaos_cell_bundles.bundlesSort},x=function(e){return e.chaos_cell_bundles.bundlesNameFilter},b=function(e){return e.chaos_cell_bundles.bundlesAccountFilter},S=function(e){return e.chaos_cell_bundles.bundlesTagNodeFilter},_=function(e){return e.chaos_cell_bundles.bundles},k=function(e){return e.chaos_cell_bundles.activeBundle},N=function(e){return e.chaos_cell_bundles.bundlesTableMode},w=(0,d.Mz)([_,k],(function(e,t){return a()(e,(function(e){return e.bundle===t}))})),j=(0,d.Mz)([_],(function(e){return(0,f.Sx)(e)})),I=new Set(["bundle","health","tabletCells","tablets","uncompressed","compressed","enable_bundle_balancer","node_tag_filter","memory","tablet_count","tablet_count_limit","tablet_count_free","tablet_count_percentage","tablet_static_memory","tablet_static_memory_limit","tablet_static_memory_free","tablet_static_memory_percentage"]),F=(0,d.Mz)([_,x,b,S],(function(e,t,n,r){var i=[];if(t){var a=t.toLowerCase();i.push((function(e){return-1!==e.bundle.toLowerCase().indexOf(a)}))}if(n){var s=n.toLowerCase();i.push((function(e){var t=e.changelog_account,n=e.snapshot_account;return Boolean(t)&&-1!==t.toLowerCase().indexOf(s)||Boolean(n)&&-1!==n.toLowerCase().indexOf(s)}))}if(r){var u=r.toLowerCase();i.push((function(e){var t=e.node_tag_filter;return Boolean(t)&&-1!==t.toLowerCase().indexOf(u)}))}return i.length?o()(e,h.concatByAnd.apply(void 0,i)):e})),M=(0,d.Mz)([F,C],(function(e,t){var n=t.column,r=t.order;return n&&r?(0,g.Af)({bundles:e,column:n,order:r,columnsSortable:I}):e})),T=function(e){return e.chaos_cell_bundles.cells},P=function(e){return e.chaos_cell_bundles.cellsSort},V=function(e){return e.chaos_cell_bundles.cellsIdFilter},L=function(e){return e.chaos_cell_bundles.cellsBundleFilter},D=function(e){return e.chaos_cell_bundles.cellsHostFilter},B=(0,d.Mz)([T,k],(function(e,t){return t?o()(e,(function(e){return Boolean(e.bundle)&&t===e.bundle})):e})),O=(0,d.Mz)([B,V,L,D,k],(function(e,t,n,r){var i=[];return t&&i.push((function(e){return-1!==e.id.indexOf(t)})),n&&i.push((function(e){return Boolean(e.bundle)&&-1!==e.bundle.indexOf(n)})),r&&i.push((function(e){return Boolean(e.peerAddress)&&-1!==e.peerAddress.indexOf(r)})),i.length?o()(e,h.concatByAnd.apply(void 0,i)):e}));function z(e,t){return e?o()(t,(function(t){return t.bundle===e})):[]}var E=(0,d.Mz)([O,P],(function(e,t){return(0,p.gn)(e,t)})),R=(0,d.Mz)([T],(function(e){return l()(u()(e,"bundle")).sort()})),U=(0,d.Mz)([B],(function(e){return l()(u()(e,"peerAddress")).sort()})),K=(0,d.Mz)([k,O],(function(e,t){return e?q(t):""}));function q(e){return l()(u()(e,(function(e){var t=e.peerAddress;return(0,v.Q4)(t)})).filter(Boolean)).sort().join("|")}var H=(0,d.Mz)([m.dB,k],(function(e,t){var n=[{text:"",href:(0,f.Hq)(e),title:"<bundles>"}];return t&&n.push({text:t,href:(0,f.j3)(e,t)}),n}))},39e3:(e,t,n)=>{n.d(t,{Az:()=>k,DL:()=>j,Es:()=>N,FG:()=>C,Gi:()=>x,O1:()=>p,Tf:()=>y,b6:()=>v,c6:()=>g,cD:()=>S,dm:()=>f,rV:()=>A,wz:()=>_});var r=n(13322),o=n(40319),i=n(18472),a=n(31285),s=n.n(a),u=n(29347),c=n.n(u),l=n(6184),d=n(44458),h=n(42772),m=function(e){return e.chyt.list.data},f=(0,i.Mz)([m],(function(e){var t=e.items,n=void 0===t?[]:t;return s()(n.map((function(e){return e.creator}))).sort()})),v=(0,i.Mz)([m],(function(e){var t=e.items,n=void 0===t?[]:t;return c()(s()(n.map((function(e){return e.health}))).sort())})),p=(0,i.Mz)([m],(function(e){var t=e.items,n=void 0===t?[]:t;return s()(n.map((function(e){return e.state}))).sort()})),g=function(e){return e.chyt.clique.currentClique},y=function(e){return e.chyt.listFilters.name},A=function(e){return e.chyt.listFilters.health},C=function(e){return e.chyt.listFilters.creator},x=function(e){return e.chyt.listFilters.state},b={instance_count:!0,total_cpu:!0,total_memory:!0,creation_time:!0,stage:!0,yt_operation_start_time:!0,yt_operation_finish_time:!0,speclet_modification_time:!0,strawberry_state_modification_time:!0,pool:!0,health:!0,creator:!0,state:!0},S=(0,i.Mz)([function(e){var t;return null!==(t=(0,h.u)(e)["global::chyt::list_columns"])&&void 0!==t?t:["health","state","instance_count","total_cpu","total_memory","creator","creation_time"]}],(function(e){var t=new Set(e);return c()(e.map((function(e){return b[e]&&t.has(e)?e:null})))})),_=(0,i.Mz)([S],(function(e){var t=new Set(e),n=e.map((function(e){return{checked:!0,column:e}}));return Object.keys(b).forEach((function(e){var r=e;t.has(r)||n.push({checked:!1,column:r})})),n})),k=function(e){return e.chyt.listFilters.sortState},N=(0,i.Mz)([k],(function(e){return e.reduce((function(t,n,r){return n.column&&(t[n.column]=(0,o.A)((0,o.A)({},n),{},{multisortIndex:e.length>1?r+1:void 0})),t}),{})})),w=(0,i.Mz)([y,C,x,A],(function(e,t,n,o){var i=c()([e?function(t){return-1!==t.alias.indexOf(e)}:void 0,void 0!==t?function(e){return t===e.creator}:void 0,n?function(e){return n===e.state}:void 0,o?function(e){return o===e.health}:void 0]);return i.length?l.concatByAnd.apply(void 0,(0,r.A)(i)):void 0})),j=(0,i.Mz)([m,k,w],(function(e,t,n){var r=e.items,o=void 0===r?[]:r,i=n?o.filter(n):o;return(0,d.jt)(i,t)}))},82947:(e,t,n)=>{n.d(t,{$7:()=>_,As:()=>j,CY:()=>k,En:()=>C,F6:()=>w,Gf:()=>p,M3:()=>y,NF:()=>I,Pc:()=>b,Wl:()=>S,YZ:()=>F,jO:()=>M,qZ:()=>A,sO:()=>T,tZ:()=>g,wE:()=>N});var r=n(34455),o=n.n(r),i=n(63281),a=n.n(i),s=n(18472),u=n(29730),c=n(19314),l=n(99526),d=n(57602),h=n(66205),m=n(85749),f=n(94285),v=n(39e3),p=(0,s.Mz)([u.th,u.O6],P),g=(0,s.Mz)([u.th,u.O6],V),y=(0,s.Mz)([g],L),A=(0,s.Mz)([l.yq,p],D),C=(0,s.Mz)([u.th,u.mR],P),x=(0,s.Mz)([u.th,u.mR],V),b=((0,s.Mz)([x],L),(0,s.Mz)([v.c6,C],D)),S=(0,s.Mz)([u.th,u.sX],P),_=(0,s.Mz)([u.th,u.sX],V),k=(0,s.Mz)([_],L),N=(0,s.Mz)([d.Yn,S],D),w=(0,s.Mz)([u.th,u.cY],P),j=(0,s.Mz)([h.d_,h.Jv,w],(function(e,t,n){return Boolean(o()(n,(function(n){return n.path==="".concat(e,"[").concat(t,"]")})))})),I=(0,s.Mz)([u.th,u.r_],P),F=(0,s.Mz)([m.OR,I],D),M=(0,s.Mz)([u.th,u.VI],P),T=(0,s.Mz)([f.JP,M],D);function P(e,t){var n=e(c.Ou.LOCAL.FAVOURITES,t);return a()(n,"path")}function V(e,t){return e(c.Ou.LOCAL.LAST_VISITED,t)||[]}function L(e){return a()(e,(function(e){return-e.count}))}function D(e,t){return Boolean(o()(t,(function(t){return t.path===e})))}},20330:(e,t,n)=>{n.d(t,{OF:()=>_,Qe:()=>C,YL:()=>A,ZQ:()=>y,cg:()=>x,lw:()=>S});var r=n(75414),o=n.n(r),i=n(84092),a=n.n(i),s=n(90838),u=n(73822),c=n(78894),l=n(35336),d=n(48971),h=n(63582),m="//sys/accounts/",f=new c.I,v=1e4,p=5e3;function g(e,t,n){var r=n;return(0,h.iO)(e,r,{idmKind:l.wf.ACCOUNT,responsible:t})}function y(e,t,n){var r=m+t+n;return a().v3.set({path:r},e)}function A(e,t){return function(){var n,r,o=t.abcService,i=t.account,s=t.parentAccount,u=t.responsibles,c=t.createHome;return(n=i,r=s,a().v3.create({type:"account",attributes:{name:n,parent_name:r}}).then((function(e){return f.add({name:"create account",timeout:p,theme:"success",title:"".concat(n," successfully created")}),e})).catch((function(e){return f.add({name:"create account",timeout:v,theme:"danger",title:"Failed to create account ".concat(n),content:e.message,actions:[{label:" view",onClick:function(){return(0,d.eW)(e)}}]}),Promise.reject(e)}))).then((function(){var t=o||{},n=t.id,r=t.slug;return Promise.all([x(i,n,r).catch((function(){})),c?b(i).catch((function(){})):Promise.resolve(),g(e,u,i).catch((function(){}))])}))}}function C(e,t){return a().v3.set({path:m+e+"/@parent_name"},t).then((function(t){return f.add({name:"set parent for account",timeout:p,theme:"success",title:"".concat(e,"'s Parent updated successfully")}),t})).catch((function(t){return f.add({name:"set parent for account",timeout:v,theme:"danger",title:"Failed to set Parent for ".concat(e),content:t.message,actions:[{label:" view",onClick:function(){return(0,d.eW)(t)}}]}),Promise.reject(t)}))}function x(e,t,n){return t&&n?a().v3.set({path:m+e+"/@abc"},{id:t,slug:n}).then((function(t){return f.add({name:"account abc service",timeout:p,theme:"success",title:"".concat(e,"'s ABC Service updated successfully")}),t})).catch((function(t){return f.add({name:"account abc service",timeout:v,theme:"danger",title:"Failed to set ABC for ".concat(e),content:t.message,actions:[{label:" view",onClick:function(){return(0,d.eW)(t)}}]}),Promise.reject(t)})):Promise.resolve()}function b(e){return a().v3.set({path:"//sys/accounts/".concat(e,"/@resource_limits/node_count")},1).then((function(){return a().v3.create({type:"map_node",path:"//home/"+e,attributes:{account:e}}).then((function(t){return f.add({name:"account create home",timeout:p,theme:"success",title:"".concat(e,"'s home directory created successfully")}),t}))})).catch((function(t){return f.add({name:"account create home",timeout:v,theme:"danger",title:"Failed to create home for ".concat(e),content:t.message,actions:[{label:" view",onClick:function(){return(0,d.eW)(t)}}]}),Promise.reject(t)}))}function S(e){return a().v3.remove({path:"//sys/accounts/"+e})}var _=o()(s.BI,(function(e,t){return e.push({value:t,text:u.A.format.ReadableField(t),show:!0}),e}),[])},97094:()=>{}}]);
|
2
|
-
//# sourceMappingURL=7959.eb292cbd.chunk.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"js/7959.eb292cbd.chunk.js","mappings":"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","sources":["webpack://@ytsaurus/ui/./src/ui/components/AttributesButton/AttributesButton.tsx","webpack://@ytsaurus/ui/./src/ui/components/NumberInput/NumberInput.tsx","webpack://@ytsaurus/ui/./src/ui/components/QuotaEditor/QuotaEditor.tsx","webpack://@ytsaurus/ui/./src/ui/components/QuotaEditor/QuotaEditorWithHide.tsx","webpack://@ytsaurus/ui/./src/ui/components/SortIcon/SortIcon.tsx","webpack://@ytsaurus/ui/./src/ui/components/Suggest/Suggest.tsx","webpack://@ytsaurus/ui/./src/ui/components/Text/Text.tsx","webpack://@ytsaurus/ui/./src/ui/pages/accounts/AccountLink.tsx","webpack://@ytsaurus/ui/./src/ui/pages/accounts/AccountsSuggest.tsx","webpack://@ytsaurus/ui/./src/ui/pages/accounts/selector.js","webpack://@ytsaurus/ui/./src/ui/pages/accounts/tabs/general/Editor/content/GeneralContent.tsx","webpack://@ytsaurus/ui/./src/ui/store/actions/accounts/accounts-ts.ts","webpack://@ytsaurus/ui/./src/ui/store/actions/accounts/accounts.js","webpack://@ytsaurus/ui/./src/ui/store/selectors/chaos_cell_bundles/index.ts","webpack://@ytsaurus/ui/./src/ui/store/selectors/chyt/index.ts","webpack://@ytsaurus/ui/./src/ui/store/selectors/favourites.js","webpack://@ytsaurus/ui/./src/ui/utils/accounts/editor.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 cn from 'bem-cn-lite';\n\nimport {TextInput, TextInputProps} from '@gravity-ui/uikit';\nimport {Tooltip} from '../../components/Tooltip/Tooltip';\n\nimport hammer from '../../common/hammer';\n\nimport {parseBytes} from '../../utils';\nimport {KeyCode} from '../../constants';\nimport './NumberInput.scss';\n\nconst block = cn('yt-number-input');\n\nexport function parseValue(rawValue: string, format: NumberInputProps['format']) {\n if (rawValue === '') {\n return undefined;\n }\n const skipSpaces = rawValue.replace(/\\s/g, '');\n return format === 'Bytes' ? parseBytes(skipSpaces) : Number(skipSpaces);\n}\n\nexport function formatValue(\n value: NumberInputProps['value'],\n format?: NumberInputProps['format'],\n settings?: object,\n) {\n if (value === undefined) {\n return '';\n }\n\n const res =\n format === 'Bytes'\n ? hammer.format['Bytes'](value, settings)\n : hammer.format['Number'](value, settings);\n return res === hammer.format.NO_VALUE ? '' : res;\n}\n\nfunction toRawValue(value: NumberInputProps['value']) {\n return value === undefined ? '' : value;\n}\n\nexport interface NumberInputWithErrorProps\n extends Omit<TextInputProps, 'value' | 'onChange' | 'theme' | 'error' | 'defaultValue'> {\n className?: string;\n\n format?: 'Number' | 'Bytes'; // 'Number' by default\n\n formatFn?: (v: NumberInputProps['value']) => string;\n parseFn?: (v: string) => NumberInputWithErrorProps['value'];\n\n decimalPlaces?: number;\n value?: {\n value: number | undefined;\n error?: string;\n };\n\n showDefaultValue?: boolean;\n defaultValue?: number;\n defaultValueClassName?: string;\n\n onChange: (v: NumberInputWithErrorProps['value']) => void;\n onEnterKeyDown?: () => void;\n\n validator?: (v?: number) => string | undefined;\n min?: number;\n max?: number;\n integerOnly?: boolean;\n\n showHint?: boolean;\n\n hidePrettyValue?: boolean;\n preciseInitialRawValue?: boolean;\n\n bottomLineVisibility?: 'visible' | 'hidden' | 'focused';\n\n disabled?: boolean;\n}\n\ninterface State {\n parsedValue?: number;\n parsedError?: string;\n rawValue?: string;\n formattedValue?: string;\n focused?: boolean;\n}\n\nexport class NumberInputWithError extends React.Component<NumberInputWithErrorProps, State> {\n static defaultProps = {\n size: 'm',\n view: 'normal',\n hasClear: true,\n bottomLineVisibility: 'visible',\n };\n\n static getDerivedStateFromProps(\n props: NumberInputWithErrorProps,\n state: State,\n ): Partial<State> | null {\n const {value, format, preciseInitialRawValue, decimalPlaces, formatFn} = props;\n if (state.rawValue === undefined) {\n const formatted = formatFn\n ? formatFn(value?.value)\n : formatValue(value?.value, format, {\n digits: decimalPlaces,\n });\n return {\n parsedValue: value?.value,\n parsedError: NumberInputWithError.errorFromValue(value, props),\n rawValue: preciseInitialRawValue ? toRawValue(value?.value) : formatted,\n formattedValue: formatted,\n };\n }\n\n return null;\n }\n\n static errorFromValue(v: NumberInputWithErrorProps['value'], props: NumberInputWithErrorProps) {\n const {validator = () => undefined, min, max, integerOnly} = props;\n const {value, error} = v || {};\n\n if (error) {\n return error;\n }\n\n if (value === undefined || value === null) {\n return undefined;\n }\n\n try {\n if (isNaN(value)) {\n return 'wrong format';\n }\n\n const error = validator(value);\n if (error) {\n return error;\n }\n } catch (error) {\n return String(error);\n }\n\n if (integerOnly && value % 1 !== 0) {\n return `The value must be an integer`;\n }\n\n if (min !== undefined && value < min) {\n return `The value must be \\u2265 ${min}`;\n }\n\n if (max !== undefined && value > max) {\n return `The value must be \\u2264 ${max}`;\n }\n\n return undefined;\n }\n\n state: State = {parsedValue: NaN};\n\n // eslint-disable-next-line react/sort-comp\n parseValue(rawValue: string): NumberInputWithErrorProps['value'] {\n if (this.props.parseFn) {\n return this.props.parseFn(rawValue);\n }\n return {value: parseValue(rawValue, this.props.format)};\n }\n\n format(value: NumberInputProps['value']) {\n const {format, decimalPlaces, formatFn} = this.props;\n if (formatFn) {\n return formatFn(value);\n }\n return formatValue(value, format, {digits: decimalPlaces});\n }\n\n onChange = (rawValue: string) => {\n const parsedValue = this.parseValue(rawValue);\n const error = NumberInputWithError.errorFromValue(parsedValue, this.props);\n const formattedValue = this.format(parsedValue?.value);\n this.setState({\n parsedValue: parsedValue?.value,\n parsedError: error,\n rawValue,\n formattedValue,\n });\n\n const {onChange} = this.props;\n onChange({value: parsedValue?.value, error});\n };\n\n onBlur = () => {\n this.setState({focused: false});\n };\n\n onFocus = () => {\n this.setState({focused: true});\n };\n\n getRestProps() {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const {value, onChange, min, max, validator, format, defaultValue, ...rest} = this.props;\n return rest;\n }\n\n onKeyDown = (e: React.KeyboardEvent) => {\n if (e.keyCode === KeyCode.ENTER && this.props.onEnterKeyDown) {\n this.props.onEnterKeyDown();\n }\n };\n\n renderMinMaxHint() {\n const {min, max, showHint, size} = this.props;\n const showMin = !isNaN(min!);\n const showMax = !isNaN(max!);\n if (!showHint || (!showMin && !showMax)) {\n return null;\n }\n return (\n <div className={block('hint', {size})}>\n {showMin && (\n <Tooltip content={String(min)} placement={'bottom'}>\n min: <b>{this.format(min)}</b>\n </Tooltip>\n )}\n {showMin && <> </>}\n {showMax && (\n <Tooltip content={String(max)} placement={'bottom'}>\n max: <b>{this.format(max)}</b>\n </Tooltip>\n )}\n </div>\n );\n }\n\n renderPrettyValue() {\n const {size, hidePrettyValue} = this.props;\n const {formattedValue} = this.state;\n\n if (hidePrettyValue) {\n return null;\n }\n\n return <div className={block('pretty-value', {size})}>{formattedValue} </div>;\n }\n\n renderDefaultValue() {\n const {defaultValue, defaultValueClassName} = this.props;\n\n return (\n <TextInput\n disabled\n className={defaultValueClassName}\n value={this.format(defaultValue)}\n pin={'clear-round'}\n />\n );\n }\n\n isBottomLineVisible() {\n const {bottomLineVisibility} = this.props;\n const {focused} = this.state;\n\n return (\n bottomLineVisibility === 'visible' || (focused && bottomLineVisibility === 'focused')\n );\n }\n\n render() {\n const {\n value: propsValue,\n className,\n showHint,\n hidePrettyValue,\n showDefaultValue,\n } = this.props;\n const {parsedError, rawValue, formattedValue, focused} = this.state;\n const rest = this.getRestProps();\n const {size, view, hasClear} = rest;\n\n const {error} = propsValue ?? {};\n\n const err = error || parsedError;\n\n const text = focused ? rawValue : formattedValue;\n\n return (\n <div className={block(null, className)}>\n <div className={block('top')}>\n <TextInput\n {...rest}\n error={err as any}\n autoComplete={false}\n onUpdate={this.onChange}\n onKeyDown={this.onKeyDown}\n hasClear={hasClear}\n value={text}\n size={size}\n view={view}\n onBlur={this.onBlur}\n onFocus={this.onFocus}\n pin={showDefaultValue ? 'round-brick' : undefined}\n />\n {showDefaultValue && this.renderDefaultValue()}\n </div>\n {!err && this.isBottomLineVisible() && (\n <React.Fragment>\n {showHint && (!focused || hidePrettyValue)\n ? this.renderMinMaxHint()\n : this.renderPrettyValue()}\n </React.Fragment>\n )}\n </div>\n );\n }\n}\n\nexport interface NumberInputProps extends Omit<NumberInputWithErrorProps, 'value' | 'onChange'> {\n value: number | undefined;\n onChange: (value: NumberInputProps['value']) => void;\n\n error?: string;\n}\n\nexport default class NumberInput extends React.Component<NumberInputProps> {\n static format(\n value: NumberInputProps['value'],\n format?: NumberInputWithErrorProps['format'],\n settings?: object,\n ) {\n return formatValue(value, format, settings);\n }\n\n render() {\n const {\n value,\n error,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n onChange,\n ...rest\n } = this.props;\n\n return <NumberInputWithError {...rest} onChange={this.onChange} value={{value, error}} />;\n }\n\n onChange: NumberInputWithErrorProps['onChange'] = (v) => {\n this.props.onChange(v?.value);\n };\n}\n","import React from 'react';\nimport cn from 'bem-cn-lite';\n\nimport hammer from '../../common/hammer';\nimport NumberInput, {\n NumberInputProps,\n NumberInputWithError,\n NumberInputWithErrorProps,\n} from '../../components/NumberInput/NumberInput';\n\nimport './QuotaEditor.scss';\n\nconst block = cn('yt-quota-editor');\n\nexport interface QuotaEditorProps {\n className?: string;\n limit: number | undefined;\n\n min?: number;\n max?: number;\n\n error?: string;\n prevLimit?: number;\n format: NumberInputProps['format'];\n decimalPlaces?: number;\n currentAccount: string;\n sourceAccount?: string;\n\n showHint?: boolean;\n\n onChange: (value: {limit?: number; source?: string; error?: string}) => void;\n onEnterKeyDown?: () => void;\n\n getInfoByName: (account: string) => {\n limit?: number;\n total?: number;\n totalChildrenLimit?: number;\n allowChildrenOverCommit?: number;\n };\n\n limitInputTitle?: React.ReactNode;\n sourceSuggestTitle?: React.ReactNode;\n renderSourceSuggest?: (props: SuggestProps) => React.ReactNode;\n sourceSuggestDisabled?: boolean;\n}\n\ninterface SuggestProps {\n value: string;\n onChange: (value?: string) => void;\n disabled?: boolean;\n}\n\nexport default class QuotaEditor extends React.Component<QuotaEditorProps> {\n render() {\n const {\n className,\n format,\n sourceSuggestTitle,\n renderSourceSuggest,\n sourceAccount,\n limitInputTitle,\n showHint,\n error,\n decimalPlaces,\n sourceSuggestDisabled,\n } = this.props;\n\n return (\n <div className={block(null, className)}>\n {renderSourceSuggest && (\n <div className={block('item')}>\n <div className={block('item-title')}>\n {sourceSuggestTitle || 'Account to distribution'}\n </div>\n {renderSourceSuggest({\n value: sourceAccount || '',\n onChange: this.onAccountChange,\n disabled: sourceSuggestDisabled,\n })}\n <div className={block('free')}>\n <React.Fragment>\n Free to distribute\n <span className={block('free-value')}>\n {' '}\n {this.getFreeFormatted()}\n </span>\n </React.Fragment>\n </div>\n </div>\n )}\n <div className={block('item')}>\n <div className={block('item-title')}>\n {limitInputTitle || 'New quota limit'}\n </div>\n <NumberInputWithError\n onChange={this.onBytesChange}\n value={{value: this.getLimit(), error}}\n format={format}\n showHint={showHint}\n min={this.getMinLimit()}\n max={this.getMaxLimit()}\n onEnterKeyDown={this.onEnterKeyDown}\n decimalPlaces={decimalPlaces}\n qa=\"quota-editor-new-limit\"\n />\n </div>\n </div>\n );\n }\n\n private onEnterKeyDown = () => {\n const {onEnterKeyDown = () => {}} = this.props;\n onEnterKeyDown();\n };\n\n private onBytesChange: NumberInputWithErrorProps['onChange'] = (value) => {\n const {onChange, sourceAccount} = this.props;\n onChange({\n limit: value?.value,\n source: sourceAccount,\n error: value?.error || this.checkForError(value?.value, sourceAccount),\n });\n };\n\n private onAccountChange = (source?: string) => {\n const {onChange, limit, error} = this.props;\n onChange({\n limit,\n source,\n error: error || this.checkForError(limit, source),\n });\n };\n\n private getLimit() {\n const {limit, prevLimit} = this.props;\n return limit !== undefined ? limit : prevLimit;\n }\n\n private getFreeImpl() {\n const {sourceAccount} = this.props;\n const info = this.calcLimitTotal(sourceAccount);\n const {limit, total, allowChildrenOverCommit, totalChildrenLimit = 0} = info;\n if (limit === undefined || total === undefined) {\n return {};\n }\n\n if (allowChildrenOverCommit) {\n const free = Math.max(0, limit);\n return {\n free,\n maxValue: free,\n };\n } else {\n const {prevLimit: itemLimit = 0} = this.props;\n const {limit: itemNewLimit = itemLimit} = this.props;\n const free = Math.max(0, limit - totalChildrenLimit);\n return {\n free: free + itemLimit - itemNewLimit,\n maxValue: free + itemLimit,\n };\n }\n }\n\n private getFree() {\n return this.getFreeImpl().free!;\n }\n\n private calcLimitTotal(account = '') {\n return this.props.getInfoByName(account);\n }\n\n private getMinLimit() {\n const {min} = this.props;\n if (min !== undefined) {\n return min;\n }\n\n const {currentAccount, getInfoByName} = this.props;\n const {totalChildrenLimit, total} = getInfoByName(currentAccount);\n const res = (total || 0) + (totalChildrenLimit || 0);\n\n return res;\n }\n\n private getMaxLimit() {\n const {max} = this.props;\n if (max !== undefined) {\n return max;\n }\n return this.getFreeImpl().maxValue!;\n }\n\n private getFreeFormatted() {\n const {sourceAccount} = this.props;\n if (!sourceAccount) {\n return hammer.format.NO_VALUE;\n }\n return NumberInput.format(Number(this.getFree()), this.props.format);\n }\n\n private checkForError(newLimit?: number, srcAccount?: string) {\n if (newLimit === undefined) {\n return undefined;\n }\n\n if (isNaN(newLimit!)) {\n return 'wrong format!';\n }\n\n const {currentAccount} = this.props;\n if (currentAccount === srcAccount) {\n return 'The same source account';\n }\n\n if (newLimit <= this.props.prevLimit!) {\n return undefined;\n }\n\n const maxLimit = this.getMaxLimit();\n\n if (srcAccount && (maxLimit === undefined || newLimit > maxLimit)) {\n return 'New value is too big';\n }\n\n return undefined;\n }\n}\n","import React from 'react';\nimport cn from 'bem-cn-lite';\nimport Icon from '../../components/Icon/Icon';\n\nimport {ClickableText} from '../../components/ClickableText/ClickableText';\nimport Button from '../../components/Button/Button';\nimport NumberInput, {NumberInputProps} from '../../components/NumberInput/NumberInput';\nimport {ROOT_ACCOUNT_NAME} from '../../constants/accounts/accounts';\n\nimport './QuotaEditorWithHide.scss';\nimport QuotaEditor, {QuotaEditorProps} from './QuotaEditor';\n\nconst block = cn('yt-quota-editor-with-hide');\n\ninterface Props {\n className?: string;\n limit?: number;\n format: NumberInputProps['format'];\n currentAccount: string;\n parentOfCurrentAccount?: string;\n\n onHide: () => void;\n onSave: (limit: number, limitDiff: number, account?: string) => void;\n\n getInfoByName: (account: string) => {\n limit?: number;\n total?: number;\n totalChildrenLimit?: number;\n allowChildrenOverCommit?: number;\n };\n\n sourceSuggestTitle?: React.ReactNode;\n renderSourceSuggest?: (props: SuggestProps) => React.ReactNode;\n\n min?: number;\n max?: number;\n}\n\ninterface SuggestProps {\n value: string;\n onChange: (value?: string) => void;\n}\n\ninterface State {\n account?: string;\n accountChanged?: boolean;\n\n bytesError?: string;\n newLimit?: number;\n isReadyToSave?: boolean;\n showConfirm?: boolean;\n}\n\nexport default class QuotaEditorWithHide extends React.Component<Props, State> {\n state: State = {};\n\n render() {\n const {showConfirm} = this.state;\n return showConfirm ? this.renderConfirmation() : this.renderEditor();\n }\n\n private renderConfirmation() {\n const {className, limit} = this.props;\n return (\n <div className={block('confirm', className)}>\n <div className={block('confirm-notice')}>\n Do you really want to change the quota limit?\n </div>\n <div className={block('confirm-details')}>\n The previous value is {this.renderLimit(limit)}, the new value is{' '}\n {this.renderLimit(this.getLimit())}\n </div>\n <div className={block('confirm-actions')}>\n <Button\n className={block('confirm-btn')}\n view={'action'}\n onClick={this.onYes}\n qa=\"quota-editor-confirmation-yes\"\n >\n Yes\n </Button>\n <Button\n className={block('confirm-btn')}\n view=\"flat-secondary\"\n onClick={this.onCancel}\n >\n Cancel\n </Button>\n </div>\n </div>\n );\n }\n\n private onYes = () => {\n const {limit: oldLimit = 0} = this.calcLimitTotal(this.props.currentAccount);\n const newLimit = this.getLimit() || 0;\n this.props.onSave(newLimit, newLimit - oldLimit, this.getDistributeAccount());\n this.setState({showConfirm: false});\n this.props.onHide();\n };\n\n private onCancel = () => {\n this.setState({showConfirm: false});\n };\n\n private renderLimit(value: Props['limit']) {\n const {format} = this.props;\n return <span className={block('confirm-limit')}>{NumberInput.format(value, format)}</span>;\n }\n\n private renderEditor() {\n const {className, onHide} = this.props;\n const {isReadyToSave} = this.state;\n\n return (\n <div\n className={block(\n null,\n [className, 'yt-special-background'].filter(Boolean).join(' '),\n )}\n >\n <div className={block('top')}>\n Edit Quota limit\n <ClickableText className={block('hide')} color=\"secondary\" onClick={onHide}>\n <Icon awesome={'times'} face={'light'} />\n </ClickableText>\n </div>\n <div className={block('controls')}>\n {this.renderControl()}\n <div className={block('controls-item', {save: true})}>\n <div className={block('control-title')}> </div>\n <Button\n size={'m'}\n view={'action'}\n disabled={!isReadyToSave}\n onClick={this.onSave}\n qa=\"quota-editor-save\"\n >\n Save\n </Button>\n </div>\n </div>\n </div>\n );\n }\n\n private renderControl() {\n const {\n format,\n limit,\n min,\n max,\n currentAccount,\n getInfoByName,\n sourceSuggestTitle,\n renderSourceSuggest,\n } = this.props;\n return (\n <QuotaEditor\n className={block('grow')}\n currentAccount={currentAccount}\n sourceAccount={this.getDistributeAccount()}\n getInfoByName={getInfoByName}\n sourceSuggestTitle={sourceSuggestTitle}\n renderSourceSuggest={renderSourceSuggest}\n format={format}\n limit={this.getLimit()}\n prevLimit={limit}\n onChange={this.onChange}\n onEnterKeyDown={this.onSave}\n min={min}\n max={max}\n />\n );\n }\n\n private onChange: QuotaEditorProps['onChange'] = ({limit, source, error}) => {\n const {parentOfCurrentAccount, limit: prevLimit} = this.props;\n this.setState({\n newLimit: limit,\n account: source,\n accountChanged: source !== parentOfCurrentAccount,\n isReadyToSave: !error && limit !== prevLimit && limit !== undefined,\n });\n };\n\n private onSave = () => {\n if (this.state.isReadyToSave) {\n this.setState({showConfirm: true});\n }\n };\n\n private getLimit() {\n const {newLimit} = this.state;\n const {limit} = this.props;\n return newLimit !== undefined ? newLimit : limit;\n }\n\n private getDistributeAccount() {\n const {account, accountChanged} = this.state;\n const res = accountChanged ? account : this.props.parentOfCurrentAccount;\n return res === ROOT_ACCOUNT_NAME ? '' : res;\n }\n\n private calcLimitTotal(account = '') {\n return this.props.getInfoByName(account);\n }\n}\n","import React from 'react';\nimport cn from 'bem-cn-lite';\n\nimport Icon from '../../components/Icon/Icon';\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 <span className={block('icon')}>\n <Icon awesome={icon} face=\"solid\" />\n </span>\n </span>\n );\n }\n}\n","import React, {Component} from 'react';\nimport PropTypes from 'prop-types';\nimport ReactList from 'react-list';\nimport block from 'bem-cn-lite';\n\nimport isNumber_ from 'lodash/isNumber';\nimport isObject_ from 'lodash/isObject';\nimport partition_ from 'lodash/partition';\n\nimport {Popup, PopupProps, TextInput, TextInputProps} from '@gravity-ui/uikit';\n\nimport templates from '../../components/templates/utils';\n\nimport './Suggest.scss';\n\nconst b = block('suggest');\n\n// TODO add is scrolled into view logic\n// TODO support custom item height\n\nexport const itemsProps = PropTypes.arrayOf(\n PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.shape({\n value: PropTypes.string,\n text: PropTypes.string,\n counter: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n }),\n ]),\n);\n\ninterface Item {\n value: string;\n text: string;\n counter?: string | number;\n}\n\nconst ESCAPE = 27;\nconst ENTER = 13;\nconst ARROW_UP = 38;\nconst ARROW_DOWN = 40;\n\n/*const TAB = 9;\nconst CTRL = 16;\nconst ALT = 17;\nconst ARROW_LEFT = 37;\nconst ARROW_RIGHT = 39;\nconst COMMAND = 91;*/\n\nexport interface SuggestProps {\n className?: string;\n\n filter: (items: SuggestProps['items'], text?: string) => SuggestProps['items'];\n apply?: (value: SuggestItem) => void;\n onTextUpdate?: (text: string) => void;\n onItemClick?: (item: SuggestItem) => void;\n clear?: () => void;\n placeholder?: string;\n autoFocus?: boolean;\n text?: string;\n defaultText?: string;\n disabled?: boolean;\n template?: {\n key: string;\n };\n items: Array<SuggestItem>;\n maxItems?: number | {totalAmount: number; groupPredicate: () => void};\n\n zIndexGroupLevel?: number;\n onBlur?: () => void;\n onFocus?: () => void;\n onKeyDown?: (e: React.KeyboardEvent<HTMLElement>) => void;\n pin?: TextInputProps['pin'];\n onOpenChange?: (p: {open: boolean}) => void;\n popupClassName?: string;\n popupPlacement?: PopupProps['placement'];\n\n renderItem?: (item: SuggestItem) => React.ReactNode;\n}\n\nexport type SuggestItem = string | Item;\n\ninterface State {\n text?: string;\n items: SuggestProps['items'];\n selectedIndex: number;\n popupVisible: boolean;\n\n prevItems: SuggestProps['items'];\n\n focused?: boolean;\n}\n\nexport default class Suggest extends Component<SuggestProps, State> {\n static defaultProps = {\n disable: false,\n text: '',\n autoFocus: false,\n items: [],\n zIndexGroupLevel: 1,\n onBlur: () => {},\n focused: false,\n };\n\n private input = React.createRef<HTMLInputElement>();\n private isClearClicked = false; // the flag for the correct render text-input view after clear button click\n private isUnmounting = false;\n private skipApplyForNextBlur = false;\n\n constructor(props: SuggestProps) {\n super(props);\n\n this.state = {\n text: 'text' in props ? props.text : props.defaultText,\n items: props.items,\n selectedIndex: 0,\n popupVisible: false,\n prevItems: [],\n };\n\n this.onFocus = this.onFocus.bind(this);\n this.onBlur = this.onBlur.bind(this);\n this.onKeyDown = this.onKeyDown.bind(this);\n this.hideSuggestions = this.hideSuggestions.bind(this);\n this.clearSuggestions = this.clearSuggestions.bind(this);\n }\n\n // eslint-disable-next-line @typescript-eslint/member-ordering\n static getDerivedStateFromProps(props: SuggestProps, prevState: State) {\n const text = !prevState.focused && 'text' in props ? props.text : prevState.text;\n\n if (props.items === prevState.prevItems && text === prevState.text) {\n return null;\n }\n\n const items = props.filter(props.items, text);\n const res = {items, prevItems: props.items, text};\n\n return res;\n }\n\n componentDidMount() {\n this.isClearClicked = false;\n }\n\n componentWillUnmount() {\n this.isUnmounting = true;\n }\n\n // eslint-disable-next-line react/sort-comp\n onTextUpdate = (text: string) => {\n const {clear, onTextUpdate} = this.props;\n\n this.setState({text});\n this.loadSuggestions(text);\n\n if (!text.length) {\n clear?.();\n }\n\n onTextUpdate?.(text);\n };\n\n onFocus() {\n // make sure that suggestions popup is visible only if onFocus() invocation was not followed\n // by onClearClick() invocation (which sets the flag to true afterwards), since onFocus event\n // always happen first when any action is made within text input\n this.setState({focused: true});\n\n this.isClearClicked = false;\n this.loadSuggestions(this.state.text);\n this.skipApplyForNextBlur = false;\n this.props.onFocus?.();\n }\n\n onBlur() {\n this.hideSuggestions();\n if (!this.isClearClicked) {\n this.props.onBlur?.();\n }\n if (!this.skipApplyForNextBlur) {\n this.applySuggestion(this.state.text ?? '');\n }\n this.setState({focused: false});\n }\n\n onKeyDown(evt: React.KeyboardEvent<HTMLElement>) {\n const key = evt.keyCode;\n\n if (key === ARROW_DOWN) {\n evt.preventDefault();\n this.selectNextSuggestion();\n } else if (key === ARROW_UP) {\n evt.preventDefault();\n this.selectPrevSuggestion();\n } else if (key === ENTER) {\n this.applyOrClearSuggestion();\n } else if (key === ESCAPE) {\n this.input.current?.blur();\n }\n }\n\n hideSuggestions() {\n this.setState({items: [], popupVisible: false, selectedIndex: 0});\n this.props.onOpenChange?.({open: false});\n }\n\n showSuggestions = (items: SuggestProps['items']) => {\n if (!this.isUnmounting) {\n this.setState({\n items,\n popupVisible: true,\n selectedIndex: 0,\n });\n this.props.onOpenChange?.({open: true});\n }\n };\n\n loadSuggestions(text?: string) {\n const {filter, items} = this.props;\n\n Promise.resolve(filter(items, text)).then(this.showSuggestions);\n }\n\n clearSuggestions() {\n const {clear} = this.props;\n\n clear?.();\n // update flag value not to show suggestions after function clear() have change input value for ''\n // and on input change event listener will call popup render\n this.isClearClicked = true;\n\n this.input.current?.blur();\n }\n\n applySuggestion(text: string) {\n const {apply} = this.props;\n this.setState({text});\n apply?.(text);\n this.input.current?.blur();\n }\n\n getItemIndex(selectedIndex: number) {\n return selectedIndex - 1;\n }\n\n getSelectedIndex(itemIndex: number) {\n return itemIndex + 1;\n }\n\n getItemValue(item: string | Item) {\n return typeof item === 'string' ? item : item.value;\n }\n\n applyOrClearSuggestion() {\n const {selectedIndex, items} = this.state;\n\n let item: SuggestItem | undefined;\n\n if (selectedIndex === 0) {\n if (items.length > 0) {\n item = items[0];\n }\n } else {\n item = items[this.getItemIndex(selectedIndex)];\n }\n\n if (item) {\n const value = this.getItemValue(item);\n this.applySuggestion(value);\n const {onItemClick} = this.props;\n onItemClick?.(item);\n }\n }\n\n selectPrevSuggestion() {\n const {selectedIndex, items} = this.state;\n const prevIndex =\n selectedIndex === 0 ? this.getSelectedIndex(items.length - 1) : selectedIndex - 1;\n this.setState({selectedIndex: prevIndex});\n }\n\n selectNextSuggestion() {\n const {selectedIndex, items} = this.state;\n const nextIndex =\n selectedIndex === this.getSelectedIndex(items.length - 1) ? 0 : selectedIndex + 1;\n this.setState({selectedIndex: nextIndex});\n }\n\n renderInput() {\n const {text} = this.state;\n const {placeholder, autoFocus, disabled, pin} = this.props;\n\n return (\n <TextInput\n hasClear\n value={text}\n className={b('control')}\n placeholder={placeholder}\n disabled={disabled}\n onUpdate={this.onTextUpdate}\n onFocus={this.onFocus}\n onBlur={this.onBlur}\n autoFocus={autoFocus}\n controlRef={this.input}\n pin={pin}\n onKeyDown={this.onKeyDown}\n />\n );\n }\n\n renderCounter(item: Item) {\n const counter = item.counter;\n\n return (\n typeof counter !== 'undefined' && <span className={b('item-counter')}>{counter}</span>\n );\n }\n\n renderSimpleItem(item: string | Item) {\n const text = typeof item === 'string' ? item : item.text;\n\n return (\n <span>\n {'string' !== typeof item && this.renderCounter(item)}\n {text}\n </span>\n );\n }\n\n renderItem(\n item: string | Item,\n index: number,\n key: number | string,\n className?: string,\n ): React.ReactElement {\n const {selectedIndex} = this.state;\n const itemClassName = b(\n 'item',\n {\n selected: selectedIndex === this.getSelectedIndex(index) ? 'yes' : undefined,\n },\n className,\n );\n\n const value = this.getItemValue(item);\n\n const {template, renderItem, onItemClick} = this.props;\n\n const renderer =\n renderItem ??\n (typeof template !== 'undefined'\n ? templates.get(template.key).__default__\n : this.renderSimpleItem.bind(this));\n\n return (\n <li\n key={key}\n title={value}\n className={itemClassName}\n onMouseDown={() => {\n this.skipApplyForNextBlur = true;\n onItemClick?.(item);\n this.applySuggestion(value);\n }}\n >\n {renderer(item)}\n </li>\n );\n }\n\n getInputWidth() {\n // Is there a way to avoid using private _control property?\n return this.input.current ? this.input.current.offsetWidth - 2 : 0;\n }\n\n restrictItems(items: Array<string | Item>) {\n const {maxItems} = this.props;\n\n if (isNumber_(maxItems)) {\n return items.slice(0, maxItems || items.length);\n } else if (isObject_(maxItems)) {\n const {totalAmount, groupPredicate} = maxItems;\n const [positiveGroup, negativeGroup] = partition_(items, groupPredicate);\n if (positiveGroup.length && negativeGroup.length) {\n // NOTE: we don't want to one group to be omitted in case there is a large\n // bias towards another group - hence minimum value of 1\n const positiveGroupMaxItems = Math.round(\n Math.max((positiveGroup.length / items.length) * totalAmount, 1),\n );\n return positiveGroup\n .slice(0, positiveGroupMaxItems)\n .concat(negativeGroup.slice(0, totalAmount - positiveGroupMaxItems));\n } else {\n // one group is empty - same case as no groups\n return items.slice(0, totalAmount || items.length);\n }\n } else {\n return items;\n }\n }\n\n renderSuggestions(items: Array<SuggestItem>) {\n const className = b('wrapper');\n const listClassName = b('items');\n\n const itemRenderer = (index: number, key: number | string): JSX.Element =>\n this.renderItem(items[index], index, key);\n\n const showNoItemsMsg = items.length === 0 && this.state.text;\n return (\n items && (\n <div className={className}>\n {showNoItemsMsg && this.renderItem('No items', -1, 'no_items', b('no-items'))}\n <ul className={listClassName} style={{minWidth: this.getInputWidth()}}>\n <ReactList\n itemRenderer={itemRenderer}\n length={items.length}\n type=\"uniform\"\n />\n </ul>\n </div>\n )\n );\n }\n\n renderPopup() {\n const {popupClassName, popupPlacement} = this.props;\n const {popupVisible} = this.state;\n\n const items = this.restrictItems(this.state.items);\n return (\n <Popup\n className={popupClassName}\n placement={popupPlacement ?? ['bottom-start', 'top-start']}\n anchorRef={this.input}\n // don't show popup with suggestions after clear button click\n open={!this.isClearClicked && popupVisible && items.length > 0}\n onClose={this.hideSuggestions}\n >\n {this.renderSuggestions(items)}\n </Popup>\n );\n }\n\n render() {\n const {className} = this.props;\n return (\n <div className={b(null, className)}>\n {this.renderInput()}\n {this.renderPopup()}\n </div>\n );\n }\n}\n","import React from 'react';\nimport cn from 'bem-cn-lite';\n\nimport './Text.scss';\nimport unipika from '../../common/thor/unipika';\nimport {UNIPIKA_ESCAPED_SETTINGS} from '../../utils';\n\nconst block = cn('yt-text');\n\ninterface Props {\n className?: string;\n children: React.ReactNode;\n}\n\nexport function Secondary({children, disabled}: Props & {disabled?: boolean}) {\n return <span className={block('secondary', {disabled})}>{children}</span>;\n}\n\nexport function Bold({children}: Props) {\n return <span className={block('bold')}>{children}</span>;\n}\n\nexport function SecondaryBold({children}: Props) {\n return (\n <Secondary>\n <Bold>{children}</Bold>\n </Secondary>\n );\n}\n\nexport function Warning({children, className}: Props) {\n return <span className={block('warning', className)}>{children}</span>;\n}\n\nexport function NoWrap({children}: Props) {\n return <span className={block('no-wrap')}>{children}</span>;\n}\n\nexport function Escaped({text}: {text: string}) {\n const textNode = unipika.prettyprint(text, {\n ...UNIPIKA_ESCAPED_SETTINGS,\n asHTML: true,\n });\n return <span className={block('escaped')} dangerouslySetInnerHTML={{__html: textNode}} />;\n}\n","import React from 'react';\nimport Link from '../../components/Link/Link';\nimport {AccountsTab} from '../../constants/accounts/accounts';\nimport {Page} from '../../constants';\nimport {useSelector} from 'react-redux';\nimport {getCluster} from '../../store/selectors/global';\nimport hammer from '../../common/hammer';\nimport {Tooltip} from '../../components/Tooltip/Tooltip';\nimport ClipboardButton from '../../components/ClipboardButton/ClipboardButton';\n\ninterface Props {\n className?: string;\n account?: string;\n cluster?: string;\n\n inline?: boolean;\n}\n\nexport function genAccountsUrl(cluster: string, account: string) {\n return `/${cluster}/${Page.ACCOUNTS}/${AccountsTab.GENERAL}?account=${account}`;\n}\n\nexport default function AccountLink(props: Props) {\n const {cluster: propsCluster, account, className, inline} = props;\n const currentCluster = useSelector(getCluster);\n const cluster = propsCluster || currentCluster;\n\n return (\n <Tooltip\n ellipsis={inline}\n className={className}\n content={\n !account ? null : (\n <>\n <ClipboardButton text={account} view=\"flat-secondary\" /> {account}\n </>\n )\n }\n >\n {account ? (\n <Link theme={'primary'} routed url={genAccountsUrl(cluster, account)}>\n {account}\n </Link>\n ) : (\n hammer.format.NO_VALUE\n )}\n </Tooltip>\n );\n}\n","import React from 'react';\nimport {connect} from 'react-redux';\n\nimport map_ from 'lodash/map';\n\nimport cn from 'bem-cn-lite';\n\nimport ErrorBlock from '../../components/Error/Error';\n\nimport {ROOT_ACCOUNT_NAME} from '../../constants/accounts/accounts';\nimport {getEditableAccountParentSuggests} from '../../store/selectors/accounts/accounts';\nimport {getAccountNames} from '../../store/selectors/accounts/accounts-ts';\n\nimport './AccountsSuggest.scss';\nimport {fetchFullList1M} from '../../utils/users-groups';\nimport {USE_CACHE} from '../../../shared/constants/yt-api';\nimport {RootState} from '../../store/reducers';\nimport {YTApiId} from '../../rum/rum-wrap-api';\nimport {SelectSingle} from '../../components/Select/Select';\n\nconst block = cn('accounts-suggest');\n\nconst ROOT_ACCOUNT_TITLE = '<Root>';\n\ninterface Props {\n value?: string;\n\n onChange: (value?: Props['value']) => void;\n placeholder?: string;\n validate?: (value: Props['value']) => string | undefined;\n touched?: boolean;\n items: Array<string>;\n disabled?: boolean;\n allowRootAccount?: boolean;\n}\n\nexport function AccountSuggestImpl(props: Props) {\n const {\n items,\n onChange,\n placeholder,\n allowRootAccount,\n disabled,\n validate = () => undefined,\n touched,\n } = props;\n const value = props.value;\n\n const options = map_(items, (item) => ({\n value: item,\n text: item,\n }));\n if (allowRootAccount) {\n options.splice(0, 0, {\n value: ROOT_ACCOUNT_NAME,\n text: ROOT_ACCOUNT_TITLE,\n });\n }\n\n const error = touched && validate(value);\n\n return (\n <div className={block({empty: !value, error: Boolean(error)})}>\n <SelectSingle\n disabled={disabled}\n items={options}\n onChange={onChange}\n placeholder={placeholder}\n value={value}\n width=\"max\"\n hideClear\n />\n {error && <div className={block('error')}>{error}</div>}\n </div>\n );\n}\n\nAccountSuggestImpl.isEmpty = (value: string) => {\n return !value;\n};\n\nAccountSuggestImpl.getDefaultValue = () => {\n return '';\n};\n\nAccountSuggestImpl.hasErrorRenderer = true;\n\nconst mapStateToProps = (state: RootState) => {\n return {\n items: getAccountNames(state),\n };\n};\n\nconst ASConnector = connect(mapStateToProps);\n\nconst AccountSuggestConnected = ASConnector(AccountSuggestImpl);\n\nexport default AccountSuggestConnected;\n\nconst mapStateToPropsForParents = (state: RootState) => {\n return {\n items: getEditableAccountParentSuggests(state),\n };\n};\n\nexport const SuggestParentsForEditableAccount =\n connect(mapStateToPropsForParents)(AccountSuggestImpl);\n\nexport function AccountsSuggestWithLoading(\n props: Omit<React.ComponentProps<typeof AccountSuggestImpl>, 'items'>,\n) {\n const [{items, error}, setState] = React.useState<{\n items?: Array<string>;\n error?: string;\n }>({items: []});\n React.useMemo(() => {\n fetchFullList1M(YTApiId.listAccounts, {path: '//sys/accounts', ...USE_CACHE})\n .then((items: Array<string>) => {\n setState({items});\n })\n .catch((error: any) => {\n setState({error});\n });\n }, []);\n\n return (\n <React.Fragment>\n <AccountSuggestImpl {...props} items={items || []} />\n {error && <ErrorBlock error={error} />}\n </React.Fragment>\n );\n}\n\nAccountsSuggestWithLoading.isEmpty = (value: string) => {\n return !value;\n};\n\nAccountsSuggestWithLoading.getDefaultValue = () => {\n return ROOT_ACCOUNT_NAME;\n};\n","import {computeProgress} from '../../utils/progress';\nimport {accountMemoryMediumToFieldName} from '../../utils/accounts/accounts-selector';\n\nexport default class Account {\n static prepareProgressStack(committed, uncommitted, limit, theme) {\n const sum = uncommitted > 0 ? committed + uncommitted : committed;\n const tmpLimit = Math.max(sum, limit);\n const committedValue = computeProgress(\n uncommitted < 0 ? committed + uncommitted : committed,\n tmpLimit,\n );\n const uncommittedValue = computeProgress(Math.abs(uncommitted), tmpLimit);\n\n return [\n {\n value: committedValue,\n theme,\n },\n {\n value: uncommittedValue,\n },\n ];\n }\n\n static GetDataPerMedium(account, mediumType, recursive) {\n if (recursive) {\n const src = account.recursiveResources;\n if (mediumType) {\n return src.perMedium && src.perMedium[mediumType];\n }\n }\n\n return mediumType ? account.perMedium && account.perMedium[mediumType] : account;\n }\n\n constructor(accountData) {\n Object.assign(this, accountData.perMedium, accountData.masterMemoryResources, accountData);\n }\n\n getDiskSpaceProgressInfo(mediumType, recursive) {\n const data = Account.GetDataPerMedium(this, mediumType, recursive);\n if (!data) {\n return {};\n }\n\n return {\n committed: data.committedDiskSpace,\n uncommitted: data.uncommittedDiskSpace,\n total: data.totalDiskSpace,\n limit: data.diskSpaceLimit,\n theme: data.diskSpaceProgressTheme,\n progress: data.diskSpaceProgress,\n progressText: data.diskSpaceProgressText,\n };\n }\n\n getResourceInfoSource(recursive) {\n return recursive && this.hasRecursiveResources ? this.recursiveResources : this;\n }\n\n getNodeCountProgressInfo(recursive = true) {\n const src = this.getResourceInfoSource(recursive);\n return {\n committed: src.committedNodeCount,\n uncommitted: src.uncommittedNodeCount,\n total: src.totalNodeCount,\n limit: src.nodeCountLimit,\n theme: src.nodeCountProgressTheme,\n progress: src.nodeCountProgress,\n progressText: src.nodeCountProgressText,\n };\n }\n\n getChunkCountProgressInfo(recursive = true) {\n const src = this.getResourceInfoSource(recursive);\n return {\n committed: src.committedChunkCount,\n uncommitted: src.uncommittedChunkCount,\n total: src.totalChunkCount,\n limit: src.chunkCountLimit,\n theme: src.chunkCountProgressTheme,\n progress: src.chunkCountProgress,\n progressText: src.chunkCountProgressText,\n };\n }\n\n getTabletCountProgressInfo(recursive = true) {\n const src = this.getResourceInfoSource(recursive);\n return {\n committed: src.committedTabletCount,\n uncommitted: src.uncommittedTabletCount,\n total: src.totalTabletCount,\n limit: src.tabletCountLimit,\n theme: src.tabletCountProgressTheme,\n progress: src.tabletCountProgress,\n progressText: src.tabletCountProgressText,\n };\n }\n\n getTabletStaticMemoryInfo(recursive = true) {\n const src = this.getResourceInfoSource(recursive);\n return {\n committed: src.committedTabletStaticMemory,\n uncommitted: src.uncommittedTabletStaticMemory,\n total: src.totalTabletStaticMemory,\n limit: src.tabletStaticMemoryLimit,\n theme: src.tabletStaticMemoryProgressTheme,\n progress: src.tabletStaticMemoryProgress,\n progressText: src.tabletStaticMemoryProgressText,\n };\n }\n\n getMasterMemoryMediumInfo(recursive, mediumType) {\n const src = this.getResourceInfoSource(recursive);\n const field = accountMemoryMediumToFieldName('master_memory/' + mediumType);\n return src[field];\n }\n}\n","import React from 'react';\nimport {ConnectedProps, connect} from 'react-redux';\nimport PropTypes from 'prop-types';\nimport block from 'bem-cn-lite';\n\nimport {setAccountAbc} from '../../../../../../utils/accounts/editor';\nimport {\n loadEditedAccount,\n setParentAccountAction,\n} from '../../../../../../store/actions/accounts/accounts';\nimport {getCluster, isDeveloper} from '../../../../../../store/selectors/global';\nimport {SuggestParentsForEditableAccount} from '../../../../AccountsSuggest';\n\nimport './../Editor.scss';\nimport UIFactory from '../../../../../../UIFactory';\nimport {RootState} from '../../../../../../store/reducers';\nimport {AccountParsedData} from '../../../../../../utils/accounts/accounts-selector';\n\nconst b = block('accounts-editor');\n\nexport function WithHeader({\n header,\n children,\n}: {\n header: React.ReactNode;\n children: React.ReactNode;\n}) {\n return (\n <div className={b(null, 'elements-section')}>\n <div className={b(null, 'elements-heading_size_s')}>{header}</div>\n {children}\n </div>\n );\n}\n\nWithHeader.propTypes = {\n header: PropTypes.string.isRequired,\n children: PropTypes.object.isRequired,\n};\n\ninterface ParentProps {\n account: AccountParsedData;\n}\n\ntype ReduxProps = ConnectedProps<typeof connector>;\n\ntype Props = ParentProps & ReduxProps;\n\nclass GeneralContent extends React.Component<Props> {\n static propTypes = {\n //from parent\n account: PropTypes.object.isRequired,\n //from connect\n loadEditedAccount: PropTypes.func.isRequired,\n setAccountParent: PropTypes.func.isRequired,\n cluster: PropTypes.string.isRequired,\n isDeveloper: PropTypes.bool,\n };\n\n state = {\n abcId: undefined,\n abcTitle: '',\n // We have to use this property as 'key' of StaffSuggestControl to recreate the component,\n // else it will not clear his internal state.\n responsibleKey: 0,\n };\n\n onParentChange = (parentName = '', {isOutsideClick}: {isOutsideClick?: boolean} = {}) => {\n if (isOutsideClick) {\n this.forceUpdate();\n return;\n }\n\n const {\n account: {name, parent},\n setAccountParent,\n } = this.props;\n if (parent === parentName) {\n return;\n }\n return setAccountParent(name, parentName);\n };\n\n renderParentAccount(value = '') {\n const {isDeveloper} = this.props;\n return (\n <WithHeader header=\"Parent\">\n <SuggestParentsForEditableAccount\n value={value}\n onChange={this.onParentChange}\n disabled={!isDeveloper}\n allowRootAccount={true}\n />\n </WithHeader>\n );\n }\n\n renderAbcServiceId() {\n const {\n account: {\n abc: {id, slug},\n },\n isDeveloper,\n } = this.props;\n\n const control = UIFactory.renderControlAbcService({\n value: {id, slug},\n onChange: this.onAbcServiceChanged,\n placeholder: 'Select ABC service...',\n disabled: !isDeveloper,\n });\n\n return !control ? null : <WithHeader header=\"ABC Service\">{control}</WithHeader>;\n }\n\n onAbcServiceChanged = async (\n service?: AccountParsedData['abc'],\n {isOutsideClick}: {isOutsideClick?: boolean} = {},\n ) => {\n if (isOutsideClick) {\n this.forceUpdate();\n return;\n }\n\n const {id: abcServiceId, slug: value} = service ?? {};\n const {\n account: {name, abc: {slug, id} = {}},\n loadEditedAccount,\n } = this.props;\n if (abcServiceId === id && slug === value) {\n return;\n }\n await setAccountAbc(name, abcServiceId, value);\n loadEditedAccount(name);\n };\n\n render() {\n const {\n account: {parent},\n } = this.props;\n\n return (\n <React.Fragment>\n {this.renderAbcServiceId()}\n {this.renderParentAccount(parent)}\n </React.Fragment>\n );\n }\n}\n\nconst mapStateToProps = (state: RootState) => {\n return {\n cluster: getCluster(state),\n isDeveloper: isDeveloper(state),\n };\n};\n\nconst mapDispatchToProps = {\n loadEditedAccount,\n setAccountParent: setParentAccountAction,\n};\n\nconst connector = connect(mapStateToProps, mapDispatchToProps);\n\nexport default connector(GeneralContent);\n","import map_ from 'lodash/map';\n\nimport {ThunkAction} from 'redux-thunk';\nimport {RootState} from '../../../store/reducers';\nimport {ACCOUNTS_DATA_FIELDS_ACTION} from '../../../constants/accounts';\nimport {parseAccountData} from '../../../utils/accounts/accounts-selector';\n\ntype AccountsThunkAction = ThunkAction<any, RootState, any, any>;\n\n/**\n * see persistentState from src/ui/store/reducers/accounts/accounts/index.js\n * TODO: Get rid of this interface when the file is Rewritten with typescript\n */\nexport interface AccountsStateDataFields {\n masterMemoryContentMode?: 'total' | 'detailed' | 'chunk_host' | 'per_cell';\n}\n\nexport function setAccountsStateDataFields(\n data: Partial<AccountsStateDataFields>,\n): AccountsThunkAction {\n return (dispatch) => {\n dispatch({type: ACCOUNTS_DATA_FIELDS_ACTION, data});\n };\n}\n\nexport function parseAccountsData(data: Array<unknown>) {\n return Promise.all(map_(data, (item) => Promise.resolve(parseAccountData(item))));\n}\n","import ypath from '../../../common/thor/ypath';\n\nimport filter_ from 'lodash/filter';\nimport map_ from 'lodash/map';\n\nimport {NAMESPACES, SettingName} from '../../../../shared/constants/settings';\n\nimport {setSetting} from '../../../store/actions/settings';\nimport {accountsTrackVisit} from '../../../store/actions/favourites';\nimport {setAccountParent} from '../../../utils/accounts/editor';\nimport {\n ACCOUNTS_TABLE_ID,\n CHANGE_CONTENT_MODE_FILTER,\n CHANGE_MEDIUM_TYPE_FILTER,\n CHANGE_NAME_FILTER,\n CLOSE_EDITOR_MODAL,\n FETCH_ACCOUNTS_NODES,\n FETCH_ACCOUNTS_RESOURCE,\n FETCH_ACCOUNTS_TOTAL_USAGE,\n FETCH_ACCOUNTS_USABLE,\n FILTER_USABLE_ACCOUNTS,\n OPEN_EDITOR_MODAL,\n ROOT_ACCOUNT_NAME,\n SET_ACCOUNTS_TREE_STATE,\n SET_ACTIVE_ACCOUNT,\n UPDATE_EDITABLE_ACCOUNT,\n} from '../../../constants/accounts/accounts';\nimport {ACCOUNTS_DATA_FIELDS_ACTION} from '../../../constants/accounts';\nimport {USE_CACHE, USE_MAX_SIZE} from '../../../../shared/constants/yt-api';\nimport {getCluster, getCurrentUserName} from '../../../store/selectors/global';\nimport {\n getAccountsDisabledCacheForNextFetch,\n getAccountsEditCounter,\n} from '../../../store/selectors/accounts/accounts-ts';\nimport {RumWrapper, YTApiId, ytApiV3Id} from '../../../rum/rum-wrap-api';\nimport {parseAccountsData} from './accounts-ts';\nimport Account from '../../../pages/accounts/selector';\nimport {RumMeasureTypes} from '../../../rum/rum-measure-types';\n\nconst attributesToLoad = [\n 'abc',\n 'diskSpaceLimit',\n 'parent_name',\n 'responsibles',\n 'totalDiskSpace',\n 'resource_limits',\n 'resource_usage',\n 'committed_resource_usage',\n 'recursive_resource_usage',\n 'recursive_committed_resource_usage',\n 'recursive_violated_resource_limits',\n 'allow_children_limit_overcommit',\n 'total_children_resource_limits',\n 'folder_id',\n];\n\nexport function fetchAccounts() {\n return (dispatch, getState) => {\n dispatch({\n type: FETCH_ACCOUNTS_RESOURCE.REQUEST,\n });\n\n const state = getState();\n const cluster = getCluster(state);\n const userName = getCurrentUserName(state);\n const disableCacheForNextFetch = getAccountsDisabledCacheForNextFetch(state);\n\n const cacheParams = disableCacheForNextFetch ? {} : USE_CACHE;\n\n const requests = [\n {\n command: 'list',\n parameters: {\n path: '//sys/accounts/',\n attributes: attributesToLoad,\n ...USE_MAX_SIZE,\n ...cacheParams,\n },\n },\n {\n command: 'get',\n parameters: {\n path: '//sys/accounts/@',\n attributes: ['total_resource_limits', 'total_resource_usage'],\n },\n },\n {\n command: 'get',\n parameters: {\n path: '//sys/cluster_nodes/@',\n attributes: [\n 'available_space_per_medium',\n 'io_statistics_per_medium',\n 'used_space_per_medium',\n ],\n },\n },\n {\n command: 'get',\n parameters: {\n path: '//sys/users/' + userName + '/@usable_accounts',\n },\n },\n ];\n\n const rumId = new RumWrapper(cluster, RumMeasureTypes.ACCOUNTS);\n return rumId\n .fetch(YTApiId.accountsData, ytApiV3Id.executeBatch(YTApiId.accountsData, {requests}))\n .then((batchData) => {\n dispatch({\n type: ACCOUNTS_DATA_FIELDS_ACTION,\n data: {disableCacheForNextFetch: false},\n });\n\n const [\n {error: accountsError, output: accounts},\n {error: resourceError, output: resources},\n {error: nodesError, output: nodes},\n {error: usableAccountsError, output: usableAccounts},\n ] = batchData;\n Promise.resolve(accountsError)\n .then((e) => {\n if (e) {\n throw e;\n }\n const items = filter_(\n ypath.getValue(accounts),\n (item) => ypath.getValue(item) !== ROOT_ACCOUNT_NAME,\n );\n return rumId\n .parse(YTApiId.accountsData, parseAccountsData(items))\n .then((res) => {\n dispatch({\n type: FETCH_ACCOUNTS_RESOURCE.SUCCESS,\n data: {\n accounts: map_(res, (item) => new Account(item)),\n },\n });\n });\n })\n .catch((error) => {\n dispatch({\n type: FETCH_ACCOUNTS_RESOURCE.FAILURE,\n data: {error},\n });\n });\n\n if (!resourceError) {\n dispatch({\n type: FETCH_ACCOUNTS_TOTAL_USAGE.SUCCESS,\n data: resources,\n });\n } else {\n dispatch({\n type: FETCH_ACCOUNTS_TOTAL_USAGE.FAILURE,\n data: {error: resourceError},\n });\n }\n\n if (!nodesError) {\n dispatch({\n type: FETCH_ACCOUNTS_NODES.SUCCESS,\n data: nodes,\n });\n } else {\n dispatch({\n type: FETCH_ACCOUNTS_NODES.FAILURE,\n data: {error: nodesError},\n });\n }\n\n if (!usableAccountsError) {\n dispatch({\n type: FETCH_ACCOUNTS_USABLE.SUCCESS,\n data: usableAccounts,\n });\n } else {\n dispatch({\n type: FETCH_ACCOUNTS_USABLE.FAILURE,\n data: {error: usableAccountsError},\n });\n }\n });\n };\n}\n\nexport function accountsIncreaseEditCounter() {\n return (dispatch, getState) => {\n const editCounter = getAccountsEditCounter(getState());\n return {\n type: ACCOUNTS_DATA_FIELDS_ACTION,\n data: {editCounter: editCounter + 1, disableCacheForNextFetch: true},\n };\n };\n}\n\nexport function loadEditedAccount(accountName) {\n return (dispatch, getState) => {\n const state = getState();\n const cluster = getCluster(state);\n dispatch({\n type: UPDATE_EDITABLE_ACCOUNT.REQUEST,\n });\n\n const rumId = new RumWrapper(cluster, RumMeasureTypes.ACCOUNTS);\n return rumId\n .fetch(\n YTApiId.accountsEditData,\n ytApiV3Id.get(YTApiId.accountsEditData, {\n path: '//sys/accounts/' + accountName + '/@',\n attributes: attributesToLoad,\n }),\n )\n .then((data) =>\n rumId.parse(\n YTApiId.accountsEditData,\n parseAccountsData([{$value: accountName, $attributes: data}]),\n ),\n )\n .then(([item]) => {\n dispatch({\n type: UPDATE_EDITABLE_ACCOUNT.SUCCESS,\n data: {\n account: new Account(item),\n cluster,\n },\n });\n })\n .catch(() => {\n dispatch({\n type: UPDATE_EDITABLE_ACCOUNT.FAILURE,\n });\n });\n };\n}\n\nexport function changeNameFilter(newFilter) {\n return (dispatch, getState) => {\n const {tables} = getState();\n const sortState = tables[ACCOUNTS_TABLE_ID];\n\n dispatch({\n type: CHANGE_NAME_FILTER,\n data: {newFilter, sortState},\n });\n };\n}\n\nexport function showEditorModal(account) {\n return {\n type: OPEN_EDITOR_MODAL,\n data: {account},\n };\n}\n\nexport function setActiveAccount(account) {\n return (dispatch) => {\n if (account) {\n dispatch(accountsTrackVisit(account));\n }\n return dispatch({\n type: SET_ACTIVE_ACCOUNT,\n data: {account},\n });\n };\n}\n\nexport function closeEditorModal() {\n return (dispatch) => {\n dispatch({\n type: CLOSE_EDITOR_MODAL,\n });\n return dispatch(fetchAccounts());\n };\n}\n\nexport function changeContentFilter(newFilter) {\n return {\n type: CHANGE_CONTENT_MODE_FILTER,\n data: {newFilter},\n };\n}\n\nexport function changeMediumFilter(newFilter) {\n return {\n type: CHANGE_MEDIUM_TYPE_FILTER,\n data: {newFilter},\n };\n}\n\nexport function filterUsableAccounts() {\n return (dispatch, getState) => {\n const {tables} = getState();\n const sortState = tables[ACCOUNTS_TABLE_ID];\n\n dispatch({\n type: FILTER_USABLE_ACCOUNTS,\n data: {sortState},\n });\n };\n}\n\nexport function setAccountsTreeState(treeState) {\n return {\n type: SET_ACCOUNTS_TREE_STATE,\n data: {treeState},\n };\n}\n\nexport function setParentAccountAction(name, parentName) {\n return async (dispatch) => {\n await setAccountParent(name, parentName);\n dispatch(fetchAccounts());\n await dispatch(loadEditedAccount(name));\n };\n}\n\nexport function setAccountsVisibilityModeOfDashboard(value) {\n return (dispatch) => {\n return dispatch(\n setSetting(SettingName.ACCOUNTS.DASHBOARD_VISIBILITY_MODE, NAMESPACES.ACCOUNTS, value),\n );\n };\n}\n\nexport function setAccountsVisibilityMode(value) {\n return (dispatch) => {\n return dispatch(\n setSetting(SettingName.ACCOUNTS.ACCOUNTS_VISIBILITY_MODE, NAMESPACES.ACCOUNTS, value),\n );\n };\n}\n\nexport function setAccountsAbcServiceFilter(id, slug) {\n return (dispatch) => {\n dispatch({\n type: ACCOUNTS_DATA_FIELDS_ACTION,\n data: {abcServiceFilter: {slug}},\n });\n };\n}\n","import filter_ from 'lodash/filter';\nimport find_ from 'lodash/find';\nimport map_ from 'lodash/map';\nimport uniq_ from 'lodash/uniq';\n\nimport {createSelector} from 'reselect';\n\nimport {concatByAnd} from '../../../common/hammer/predicate';\nimport type {RootState} from '../../../store/reducers';\nimport type {ChaosBundle, ChaosCell} from '../../../store/reducers/chaos_cell_bundles';\nimport {getCluster} from '../../../store/selectors/global';\nimport {\n aggregateTotal,\n tabletActiveChaosBundleLink,\n tabletChaosBundleRootLink,\n} from '../../../utils/components/tablet-cells';\nimport {prepareHost} from '../../../utils';\nimport {sortArrayBySortState} from '../../../utils/sort-helpers';\nimport {sortTableBundles} from '../../../utils/tablet_cell_bundles';\n\nexport const getChaosIsLoaded = (state: RootState) => state.chaos_cell_bundles.loaded;\nexport const getChaosIsLoading = (state: RootState) => state.chaos_cell_bundles.loading;\nexport const getChaosError = (state: RootState) => state.chaos_cell_bundles.error;\n\nexport const getChaosBundlesSortState = (state: RootState) => state.chaos_cell_bundles.bundlesSort;\n\nexport const getChaosBundlesNameFilter = (state: RootState) =>\n state.chaos_cell_bundles.bundlesNameFilter;\nexport const getChaosBundlesAccountFilter = (state: RootState) =>\n state.chaos_cell_bundles.bundlesAccountFilter;\nexport const getChaosBundlesTagNodeFilter = (state: RootState) =>\n state.chaos_cell_bundles.bundlesTagNodeFilter;\n\nexport const getChaosBundles = (state: RootState) => state.chaos_cell_bundles.bundles;\n\nexport const getChaosActiveBundle = (state: RootState) => state.chaos_cell_bundles.activeBundle;\n\nexport const getChaosBundlesTableMode = (state: RootState) =>\n state.chaos_cell_bundles.bundlesTableMode;\n\nexport const getChaosActiveBundleData = createSelector(\n [getChaosBundles, getChaosActiveBundle],\n (bundles, activeBundle) => {\n return find_(bundles, (item) => item.bundle === activeBundle);\n },\n);\n\nexport const getChaosBundlesTotal = createSelector(\n [getChaosBundles],\n (bundles): ChaosBundle => aggregateTotal(bundles),\n);\n\nconst COLUMNS_SORTABLE_AS_IS = new Set<keyof ChaosBundle>([\n 'bundle',\n 'health',\n 'tabletCells',\n 'tablets',\n 'uncompressed',\n 'compressed',\n 'enable_bundle_balancer',\n 'node_tag_filter',\n 'memory',\n 'tablet_count',\n 'tablet_count_limit',\n 'tablet_count_free',\n 'tablet_count_percentage',\n 'tablet_static_memory',\n 'tablet_static_memory_limit',\n 'tablet_static_memory_free',\n 'tablet_static_memory_percentage',\n]);\n\nexport const getChaosBundlesFiltered = createSelector(\n [\n getChaosBundles,\n getChaosBundlesNameFilter,\n getChaosBundlesAccountFilter,\n getChaosBundlesTagNodeFilter,\n ],\n (bundles, nameFilter, accountFilter, tagNodeFilter) => {\n const predicates: Array<(item: ChaosBundle) => boolean> = [];\n if (nameFilter) {\n const lowerNameFilter = nameFilter.toLowerCase();\n predicates.push((item) => {\n return -1 !== item.bundle.toLowerCase().indexOf(lowerNameFilter);\n });\n }\n\n if (accountFilter) {\n const lowerAccountFilter = accountFilter.toLowerCase();\n predicates.push((item) => {\n const {changelog_account, snapshot_account} = item;\n return (\n (Boolean(changelog_account) &&\n -1 !== changelog_account.toLowerCase().indexOf(lowerAccountFilter)) ||\n (Boolean(snapshot_account) &&\n -1 !== snapshot_account.toLowerCase().indexOf(lowerAccountFilter))\n );\n });\n }\n\n if (tagNodeFilter) {\n const lowerTagNodeFilter = tagNodeFilter.toLowerCase();\n predicates.push((item) => {\n const {node_tag_filter} = item;\n return (\n Boolean(node_tag_filter) &&\n -1 !== node_tag_filter.toLowerCase().indexOf(lowerTagNodeFilter)\n );\n });\n }\n\n return !predicates.length ? bundles : filter_(bundles, concatByAnd(...predicates));\n },\n);\n\nexport const getChaosBundlesSorted = createSelector(\n [getChaosBundlesFiltered, getChaosBundlesSortState],\n (bundles, {column, order}) => {\n if (!column || !order) {\n return bundles;\n }\n\n return sortTableBundles({bundles, column, order, columnsSortable: COLUMNS_SORTABLE_AS_IS});\n },\n);\n\nexport const getChaosCells = (state: RootState) => state.chaos_cell_bundles.cells;\nexport const getChaosCellsSortState = (state: RootState) => state.chaos_cell_bundles.cellsSort;\n\nexport const getChaosCellsIdFilter = (state: RootState) => state.chaos_cell_bundles.cellsIdFilter;\nexport const getChaosCellsBundleFilter = (state: RootState) =>\n state.chaos_cell_bundles.cellsBundleFilter;\nexport const getChaosCellsHostFilter = (state: RootState) =>\n state.chaos_cell_bundles.cellsHostFilter;\n\nexport const getChaosCellsOfActiveAccount = createSelector(\n [getChaosCells, getChaosActiveBundle],\n (cells, activeBundle) => {\n if (!activeBundle) {\n return cells;\n }\n\n return filter_(cells, (item) => {\n return Boolean(item.bundle) && activeBundle === item.bundle;\n });\n },\n);\n\nexport const getChaosCellsFiltered = createSelector(\n [\n getChaosCellsOfActiveAccount,\n getChaosCellsIdFilter,\n getChaosCellsBundleFilter,\n getChaosCellsHostFilter,\n getChaosActiveBundle,\n ],\n (cells, idFilter, bundleFilter, hostFilter) => {\n const predicates: Array<(item: ChaosCell) => boolean> = [];\n if (idFilter) {\n predicates.push((item) => {\n return -1 !== item.id.indexOf(idFilter);\n });\n }\n\n if (bundleFilter) {\n predicates.push((item) => {\n return Boolean(item.bundle) && -1 !== item.bundle.indexOf(bundleFilter);\n });\n }\n\n if (hostFilter) {\n predicates.push((item) => {\n return Boolean(item.peerAddress) && -1 !== item.peerAddress.indexOf(hostFilter);\n });\n }\n return !predicates.length ? cells : filter_(cells, concatByAnd(...predicates));\n },\n);\n\nexport function filterChaosCellsByBundle(bundle: string, cells: Array<ChaosCell>) {\n if (!bundle) {\n return [];\n }\n\n return filter_(cells, (item) => item.bundle === bundle);\n}\n\nexport const getChaosCellsSorted = createSelector(\n [getChaosCellsFiltered, getChaosCellsSortState],\n (cells, sortState) => {\n return sortArrayBySortState(cells, sortState);\n },\n);\n\nexport const getChaosCellsBundles = createSelector([getChaosCells], (cells) => {\n return uniq_(map_(cells, 'bundle')).sort();\n});\n\nexport const getChaosCellsHosts = createSelector([getChaosCellsOfActiveAccount], (cells) => {\n return uniq_(map_(cells, 'peerAddress')).sort();\n});\n\nexport const getChaosCellsHostsOfActiveBundle = createSelector(\n [getChaosActiveBundle, getChaosCellsFiltered],\n (activeBundle: string, cells: Array<ChaosCell>) => {\n if (!activeBundle) {\n return '';\n }\n return prepareHostsFromCells(cells);\n },\n);\n\nexport function prepareHostsFromCells(cells: Array<ChaosCell>) {\n return uniq_(map_(cells, ({peerAddress}) => prepareHost(peerAddress)).filter(Boolean))\n .sort()\n .join('|');\n}\n\nexport interface ChaosCellBundlesBreadcrumbsItem {\n text: string;\n href: string;\n title?: string;\n}\n\nexport const getChaosBreadcrumbItems = createSelector(\n [getCluster, getChaosActiveBundle],\n (cluster, activeBundle): Array<ChaosCellBundlesBreadcrumbsItem> => {\n const res: Array<ChaosCellBundlesBreadcrumbsItem> = [\n {\n text: '',\n href: tabletChaosBundleRootLink(cluster),\n title: '<bundles>',\n },\n ];\n\n if (activeBundle) {\n res.push({\n text: activeBundle,\n href: tabletActiveChaosBundleLink(cluster, activeBundle),\n });\n }\n\n return res;\n },\n);\n","import {createSelector} from 'reselect';\nimport uniq_ from 'lodash/uniq';\nimport compact_ from 'lodash/compact';\n\nimport {concatByAnd} from '../../../common/hammer/predicate';\n\nimport {RootState} from '../../../store/reducers';\nimport {ChytInfo} from '../../../store/reducers/chyt/list';\nimport {SortState} from '../../../types';\nimport {multiSortBySortStateArray} from '../../../utils/sort-helpers';\nimport {StrawberryListAttributes} from '../../../utils/strawberryControllerApi';\nimport {getSettingsData} from '../settings-base';\n\nexport const getChytListData = (state: RootState) => state.chyt.list.data;\n\nexport const getChytListAvailableCreators = createSelector([getChytListData], (data) => {\n const {items = []} = data;\n return uniq_(items.map((item) => item.creator!)).sort();\n});\n\nexport const getChytListAvailableHealths = createSelector([getChytListData], (data) => {\n const {items = []} = data;\n return compact_(uniq_(items.map((item) => item.health)).sort());\n});\n\nexport const getChytListAvailableStates = createSelector([getChytListData], (data) => {\n const {items = []} = data;\n return uniq_(items.map((item) => item.state!)).sort();\n});\n\nexport const getChytCurrentAlias = (state: RootState) => state.chyt.clique.currentClique;\n\nexport const getChytListFilterAlias = (state: RootState) => state.chyt.listFilters.name;\nexport const getChytListFilterHealth = (state: RootState) => state.chyt.listFilters.health;\nexport const getChytListFilterCreator = (state: RootState) => state.chyt.listFilters.creator;\nexport const getChytListFilterState = (state: RootState) => state.chyt.listFilters.state;\n\ntype ChytListColumns = Exclude<StrawberryListAttributes, 'yt_operation_id'>;\nconst CHYT_LIST_SELECTABLE_COLUMNS: Record<Exclude<ChytListColumns, 'health_reason'>, true> = {\n instance_count: true,\n total_cpu: true,\n total_memory: true,\n creation_time: true,\n stage: true,\n yt_operation_start_time: true,\n yt_operation_finish_time: true,\n speclet_modification_time: true,\n strawberry_state_modification_time: true,\n pool: true,\n health: true,\n creator: true,\n state: true,\n};\n\nexport type ChytSelectableColumn = keyof typeof CHYT_LIST_SELECTABLE_COLUMNS;\n\ntype ChytColumnItem = {checked: boolean; column: ChytListColumns};\n\nexport const getChytListColumnsFromSettings = (state: RootState) => {\n return (\n getSettingsData(state)['global::chyt::list_columns'] ??\n ([\n 'health',\n 'state',\n 'instance_count',\n 'total_cpu',\n 'total_memory',\n 'creator',\n 'creation_time',\n ] as const)\n );\n};\n\nexport const getChytListVisibleColumns = createSelector(\n [getChytListColumnsFromSettings],\n (columns): Array<ChytSelectableColumn> => {\n const userColumns = new Set(columns);\n return compact_(\n columns.map((k) => {\n return CHYT_LIST_SELECTABLE_COLUMNS[\n k as keyof typeof CHYT_LIST_SELECTABLE_COLUMNS\n ] && userColumns.has(k)\n ? (k as ChytSelectableColumn)\n : null;\n }),\n );\n },\n);\n\nexport const getChytListColumns = createSelector(\n [getChytListVisibleColumns],\n (columns): Array<ChytColumnItem> => {\n const userColumns = new Set(columns);\n const res = columns.map((column) => {\n return {checked: true, column};\n });\n\n Object.keys(CHYT_LIST_SELECTABLE_COLUMNS).forEach((k) => {\n const column = k as ChytSelectableColumn;\n if (!userColumns.has(column)) {\n res.push({checked: false, column});\n }\n });\n\n return res;\n },\n);\n\nexport const getChytListTableSortState = (state: RootState) => state.chyt.listFilters.sortState;\n\nexport const getChytListTableSortStateByName = createSelector(\n [getChytListTableSortState],\n (sortState) => {\n return sortState.reduce(\n (acc, item, index) => {\n if (item.column) {\n acc[item.column] = {\n ...item,\n multisortIndex: sortState.length > 1 ? index + 1 : undefined,\n };\n }\n return acc;\n },\n {} as Record<keyof ChytInfo, SortState<keyof ChytInfo> & {multisortIndex?: number}>,\n );\n },\n);\n\nconst getChytFilterPredicate = createSelector(\n [\n getChytListFilterAlias,\n getChytListFilterCreator,\n getChytListFilterState,\n getChytListFilterHealth,\n ],\n (alias, creator, state, health) => {\n const predicates = compact_([\n alias ? (item: ChytInfo) => -1 !== item.alias.indexOf(alias) : undefined,\n creator !== undefined ? (item: ChytInfo) => creator === item.creator : undefined,\n state ? (item: ChytInfo) => state === item.state : undefined,\n health ? (item: ChytInfo) => health === item.health : undefined,\n ]);\n\n return predicates.length ? concatByAnd(...predicates) : undefined;\n },\n);\n\nexport const getChytListTableItems = createSelector(\n [getChytListData, getChytListTableSortState, getChytFilterPredicate],\n (data, sortState, predicate) => {\n const {items = []} = data;\n\n const filteredItems = !predicate ? items : items.filter(predicate);\n\n const sortedItems = multiSortBySortStateArray(filteredItems, sortState);\n\n return sortedItems;\n },\n);\n","import find_ from 'lodash/find';\nimport sortBy_ from 'lodash/sortBy';\n\nimport {createSelector} from 'reselect';\n\nimport {\n getAccountsNS,\n getBundlesNS,\n getChaosBundlesNS,\n getChytNS,\n getClusterNS,\n getSchedulingNS,\n makeGetSetting,\n} from '../../store/selectors/settings';\nimport {SettingName} from '../../../shared/constants/settings';\nimport {getActiveAccount} from '../../store/selectors/accounts/accounts';\nimport {getPath} from '../../store/selectors/navigation';\nimport {getPool, getTree} from '../../store/selectors/scheduling/scheduling';\nimport {getTabletsActiveBundle} from './tablet_cell_bundles';\nimport {getChaosActiveBundle} from './chaos_cell_bundles';\nimport {getChytCurrentAlias} from './chyt';\n\n//************* Selectors for Accounts *****************\n\nexport const getFavouriteAccounts = createSelector(\n [makeGetSetting, getAccountsNS],\n prepareFavourites,\n);\n\nexport const getLastVisitedAccounts = createSelector(\n [makeGetSetting, getAccountsNS],\n prepareLastVisited,\n);\n\nexport const getPopularAccounts = createSelector([getLastVisitedAccounts], preparePopulars);\n\nexport const isActiveAcountInFavourites = createSelector(\n [getActiveAccount, getFavouriteAccounts],\n prepareIsInFavourites,\n);\n\nexport const getFavouriteChyt = createSelector([makeGetSetting, getChytNS], prepareFavourites);\n\nexport const getLastVisitedChyt = createSelector([makeGetSetting, getChytNS], prepareLastVisited);\n\nexport const getPopularChyt = createSelector([getLastVisitedChyt], preparePopulars);\n\nexport const isActiveCliqueInFavourites = createSelector(\n [getChytCurrentAlias, getFavouriteChyt],\n prepareIsInFavourites,\n);\n\n//************* Selectors for Navigation *****************\n\nexport const getFavouritePaths = createSelector([makeGetSetting, getClusterNS], prepareFavourites);\n\nexport const getLastVisitedPaths = createSelector(\n [makeGetSetting, getClusterNS],\n prepareLastVisited,\n);\n\nexport const getPopularPaths = createSelector([getLastVisitedPaths], preparePopulars);\n\nexport const isCurrentPathInFavourites = createSelector(\n [getPath, getFavouritePaths],\n prepareIsInFavourites,\n);\n\n//************* Selectors for Scheduling *****************\n\nexport const getFavouritePools = createSelector(\n [makeGetSetting, getSchedulingNS],\n prepareFavourites,\n);\n\nexport const isActivePoolInFavourites = createSelector(\n [getPool, getTree, getFavouritePools],\n prepareIsPoolInFavourites,\n);\n\n//************* Selectors for Bundles *****************\n\nexport const getFavouriteBundles = createSelector(\n [makeGetSetting, getBundlesNS],\n prepareFavourites,\n);\n\nexport const isActiveBundleInFavourites = createSelector(\n [getTabletsActiveBundle, getFavouriteBundles],\n prepareIsInFavourites,\n);\n\n// ************ Selectors for Chaos bundles ***********\n\nexport const getFavouriteChaosBundles = createSelector(\n [makeGetSetting, getChaosBundlesNS],\n prepareFavourites,\n);\n\nexport const isActiveChaosBundleInFavourites = createSelector(\n [getChaosActiveBundle, getFavouriteChaosBundles],\n prepareIsInFavourites,\n);\n\n//********************** Helpers *************************\n\nfunction prepareFavourites(getSetting, parentNS) {\n const items = getSetting(SettingName.LOCAL.FAVOURITES, parentNS);\n return sortBy_(items, 'path');\n}\n\nfunction prepareLastVisited(settingGetter, parentNS) {\n return settingGetter(SettingName.LOCAL.LAST_VISITED, parentNS) || [];\n}\n\nfunction preparePopulars(lastVisited) {\n return sortBy_(lastVisited, (entry) => -entry.count);\n}\n\nfunction prepareIsInFavourites(value, favourites) {\n return Boolean(find_(favourites, ({path}) => path === value));\n}\n\nfunction prepareIsPoolInFavourites(pool, tree, favourites) {\n return Boolean(find_(favourites, ({path}) => path === `${pool}[${tree}]`));\n}\n","import reduce_ from 'lodash/reduce';\n\nimport yt from '@ytsaurus/javascript-wrapper/lib/yt';\n\nimport {EDITOR_TABS} from '../../constants/accounts/editor';\nimport hammer from '../../common/hammer';\nimport {Toaster} from '@gravity-ui/uikit';\nimport {IdmObjectType} from '../../constants/acl';\nimport {showErrorPopup} from '../../utils/utils';\nimport {updateAcl} from '../../utils/acl/acl-api';\n\nconst basePath = '//sys/accounts/';\n\nconst toaster = new Toaster();\n\nconst ERRRO_TOASTER_TIMEOUT = 10000;\nconst SUCCESS_TOASTER_TIMEOUT = 5000;\n\nexport function setResponsibleUsers(cluster, users, accountName) {\n const path = accountName;\n\n return updateAcl(cluster, path, {\n idmKind: IdmObjectType.ACCOUNT,\n responsible: users,\n });\n}\n\nexport function setAccountLimit(input, accountName, resourcePath) {\n const path = basePath + accountName + resourcePath;\n return yt.v3.set({path}, input);\n}\n\nexport function createAccountFromInfo(cluster, newAccountInfo) {\n return () => {\n const {abcService, account, parentAccount, responsibles, createHome} = newAccountInfo;\n\n return createAccount(account, parentAccount).then(() => {\n const {id, slug} = abcService || {};\n\n return Promise.all([\n setAccountAbc(account, id, slug).catch(() => {}),\n createHome ? createAccountHome(account).catch(() => {}) : Promise.resolve(),\n setResponsibleUsers(cluster, responsibles, account).catch(() => {}),\n ]);\n });\n };\n}\n\nfunction createAccount(accountName, parentName) {\n return yt.v3\n .create({\n type: 'account',\n attributes: {\n name: accountName,\n parent_name: parentName,\n },\n })\n .then((d) => {\n toaster.add({\n name: 'create account',\n timeout: SUCCESS_TOASTER_TIMEOUT,\n theme: 'success',\n title: `${accountName} successfully created`,\n });\n return d;\n })\n .catch((err) => {\n toaster.add({\n name: 'create account',\n timeout: ERRRO_TOASTER_TIMEOUT,\n theme: 'danger',\n title: `Failed to create account ${accountName}`,\n content: err.message,\n actions: [{label: ' view', onClick: () => showErrorPopup(err)}],\n });\n return Promise.reject(err);\n });\n}\n\nexport function setAccountParent(accountName, parentName) {\n return yt.v3\n .set({path: basePath + accountName + '/@parent_name'}, parentName)\n .then((d) => {\n toaster.add({\n name: 'set parent for account',\n timeout: SUCCESS_TOASTER_TIMEOUT,\n theme: 'success',\n title: `${accountName}'s Parent updated successfully`,\n });\n return d;\n })\n .catch((err) => {\n toaster.add({\n name: 'set parent for account',\n timeout: ERRRO_TOASTER_TIMEOUT,\n theme: 'danger',\n title: `Failed to set Parent for ${accountName}`,\n content: err.message,\n actions: [{label: ' view', onClick: () => showErrorPopup(err)}],\n });\n return Promise.reject(err);\n });\n}\n\nexport function setAccountAbc(accountName, abcId, abcSlug) {\n if (!abcId || !abcSlug) {\n return Promise.resolve();\n }\n return yt.v3\n .set({path: basePath + accountName + '/@abc'}, {id: abcId, slug: abcSlug})\n .then((d) => {\n toaster.add({\n name: 'account abc service',\n timeout: SUCCESS_TOASTER_TIMEOUT,\n theme: 'success',\n title: `${accountName}'s ABC Service updated successfully`,\n });\n return d;\n })\n .catch((err) => {\n toaster.add({\n name: 'account abc service',\n timeout: ERRRO_TOASTER_TIMEOUT,\n theme: 'danger',\n title: `Failed to set ABC for ${accountName}`,\n content: err.message,\n actions: [{label: ' view', onClick: () => showErrorPopup(err)}],\n });\n return Promise.reject(err);\n });\n}\n\nexport function createAccountHome(accountName) {\n return yt.v3\n .set(\n {\n path: `//sys/accounts/${accountName}/@resource_limits/node_count`,\n },\n 1,\n )\n .then(() => {\n return yt.v3\n .create({\n type: 'map_node',\n path: '//home/' + accountName,\n attributes: {\n account: accountName,\n },\n })\n .then((d) => {\n toaster.add({\n name: 'account create home',\n timeout: SUCCESS_TOASTER_TIMEOUT,\n theme: 'success',\n title: `${accountName}'s home directory created successfully`,\n });\n return d;\n });\n })\n .catch((err) => {\n toaster.add({\n name: 'account create home',\n timeout: ERRRO_TOASTER_TIMEOUT,\n theme: 'danger',\n title: `Failed to create home for ${accountName}`,\n content: err.message,\n actions: [{label: ' view', onClick: () => showErrorPopup(err)}],\n });\n return Promise.reject(err);\n });\n}\n\nexport function deleteAccount(accountName) {\n return yt.v3.remove({\n path: '//sys/accounts/' + accountName,\n });\n}\n\nexport function parseNumber(input) {\n const result = input.trim();\n\n return Math.floor(Number(result));\n}\n\nexport const contentTabs = reduce_(\n EDITOR_TABS,\n (acc, value) => {\n acc.push({\n value,\n text: hammer.format['ReadableField'](value),\n show: true,\n });\n return acc;\n },\n [],\n);\n"],"names":["AttributesButton","_ref","_ref$view","view","_ref$size","size","rest","_objectWithoutProperties","_excluded","_jsx","Button","_objectSpread","children","Icon","awesome","block","cn","parseValue","rawValue","format","skipSpaces","replace","parseBytes","Number","formatValue","value","settings","undefined","res","hammer","NO_VALUE","toRawValue","NumberInputWithError","_React$Component","_inherits","_super","_createSuper","_this","_classCallCheck","_len","arguments","length","args","Array","_key","call","apply","concat","state","parsedValue","NaN","onChange","error","errorFromValue","props","formattedValue","setState","parsedError","onBlur","focused","onFocus","onKeyDown","e","keyCode","KeyCode","ENTER","onEnterKeyDown","_createClass","key","this","parseFn","_this$props","decimalPlaces","formatFn","digits","_this$props2","min","max","validator","defaultValue","_this$props3","showHint","showMin","isNaN","showMax","_jsxs","className","Tooltip","content","String","placement","_Fragment","_this$props4","hidePrettyValue","_this$props5","defaultValueClassName","TextInput","disabled","pin","bottomLineVisibility","_this$props6","propsValue","showDefaultValue","_this$state","getRestProps","hasClear","err","text","autoComplete","onUpdate","renderDefaultValue","isBottomLineVisible","React","renderPrettyValue","renderMinMaxHint","preciseInitialRawValue","formatted","v","_props$validator","integerOnly","_ref2","defaultProps","NumberInput","_React$Component2","_super2","_this2","_len2","_key2","_this$props7","_excluded2","QuotaEditor","_this$props$onEnterKe","onBytesChange","sourceAccount","limit","source","checkForError","onAccountChange","sourceSuggestTitle","renderSourceSuggest","limitInputTitle","sourceSuggestDisabled","getFreeFormatted","getLimit","getMinLimit","getMaxLimit","qa","prevLimit","info","calcLimitTotal","total","allowChildrenOverCommit","_info$totalChildrenLi","totalChildrenLimit","free","Math","maxValue","_this$props$prevLimit","itemLimit","_this$props$limit","itemNewLimit","getFreeImpl","account","getInfoByName","currentAccount","_getInfoByName","getFree","newLimit","srcAccount","maxLimit","QuotaEditorWithHide","onYes","_this$calcLimitTotal$","oldLimit","onSave","getDistributeAccount","showConfirm","onHide","onCancel","parentOfCurrentAccount","accountChanged","isReadyToSave","renderConfirmation","renderEditor","renderLimit","onClick","filter","Boolean","join","ClickableText","color","face","renderControl","save","ROOT_ACCOUNT_NAME","ICON_BY_TYPE","_ICON_BY_TYPE","_defineProperty","SortIcon","order","allowUnordered","withUndefined","nextSortOrderValue","label","hidden","icon","b","Suggest","PropTypes","counter","_Component","input","isClearClicked","isUnmounting","skipApplyForNextBlur","onTextUpdate","clear","loadSuggestions","showSuggestions","items","_this$props$onOpenCha","popupVisible","selectedIndex","onOpenChange","open","defaultText","prevItems","bind","_assertThisInitialized","hideSuggestions","clearSuggestions","_this$props$onFocus","_this$props$onBlur","_this$state$text","applySuggestion","evt","preventDefault","selectNextSuggestion","selectPrevSuggestion","applyOrClearSuggestion","_this$input$current","current","blur","_this$props$onOpenCha2","Promise","resolve","then","_this$input$current2","_this$input$current3","itemIndex","item","getItemIndex","getItemValue","onItemClick","_this$state2","prevIndex","getSelectedIndex","_this$state3","nextIndex","placeholder","autoFocus","controlRef","renderCounter","index","itemClassName","selected","_this$props8","template","renderItem","renderer","templates","get","__default__","renderSimpleItem","title","onMouseDown","offsetWidth","maxItems","isNumber_","slice","isObject_","totalAmount","groupPredicate","_partition_","partition_","_partition_2","_slicedToArray","positiveGroup","negativeGroup","positiveGroupMaxItems","round","_this3","listClassName","showNoItemsMsg","style","minWidth","getInputWidth","ReactList","itemRenderer","type","_this$props9","popupClassName","popupPlacement","restrictItems","Popup","anchorRef","onClose","renderSuggestions","renderInput","renderPopup","prevState","Component","disable","zIndexGroupLevel","Secondary","Bold","SecondaryBold","_ref3","Warning","_ref4","NoWrap","_ref5","Escaped","_ref6","textNode","unipika","prettyprint","UNIPIKA_ESCAPED_SETTINGS","asHTML","dangerouslySetInnerHTML","__html","genAccountsUrl","cluster","Page","ACCOUNTS","AccountsTab","GENERAL","AccountLink","propsCluster","inline","currentCluster","useSelector","getCluster","ellipsis","ClipboardButton","Link","theme","routed","url","ROOT_ACCOUNT_TITLE","AccountSuggestImpl","allowRootAccount","_props$validate","validate","touched","options","map_","splice","empty","SelectSingle","width","hideClear","isEmpty","getDefaultValue","hasErrorRenderer","connect","getAccountNames","ASConnector","SuggestParentsForEditableAccount","getEditableAccountParentSuggests","AccountsSuggestWithLoading","_React$useState","_React$useState2","_React$useState2$","fetchFullList1M","YTApiId","listAccounts","path","USE_CACHE","ErrorBlock","Account","accountData","Object","assign","perMedium","masterMemoryResources","mediumType","recursive","data","GetDataPerMedium","committed","committedDiskSpace","uncommitted","uncommittedDiskSpace","totalDiskSpace","diskSpaceLimit","diskSpaceProgressTheme","progress","diskSpaceProgress","progressText","diskSpaceProgressText","hasRecursiveResources","recursiveResources","src","getResourceInfoSource","committedNodeCount","uncommittedNodeCount","totalNodeCount","nodeCountLimit","nodeCountProgressTheme","nodeCountProgress","nodeCountProgressText","committedChunkCount","uncommittedChunkCount","totalChunkCount","chunkCountLimit","chunkCountProgressTheme","chunkCountProgress","chunkCountProgressText","committedTabletCount","uncommittedTabletCount","totalTabletCount","tabletCountLimit","tabletCountProgressTheme","tabletCountProgress","tabletCountProgressText","committedTabletStaticMemory","uncommittedTabletStaticMemory","totalTabletStaticMemory","tabletStaticMemoryLimit","tabletStaticMemoryProgressTheme","tabletStaticMemoryProgress","tabletStaticMemoryProgressText","accountMemoryMediumToFieldName","sum","tmpLimit","computeProgress","abs","WithHeader","header","GeneralContent","abcId","abcTitle","responsibleKey","onParentChange","parentName","isOutsideClick","forceUpdate","_this$props$account","name","parent","setAccountParent","onAbcServiceChanged","_asyncToGenerator","_regeneratorRuntime","_callee","service","abcServiceId","_this$props2$account","_this$props2$account$","_this$props2$account$2","slug","id","loadEditedAccount","_args","_context","prev","next","abrupt","abc","setAccountAbc","stop","_x","isDeveloper","_this$props3$account$","control","UIFactory","renderControlAbcService","renderAbcServiceId","renderParentAccount","mapDispatchToProps","setParentAccountAction","setAccountsStateDataFields","dispatch","ACCOUNTS_DATA_FIELDS_ACTION","parseAccountsData","all","parseAccountData","attributesToLoad","fetchAccounts","getState","FETCH_ACCOUNTS_RESOURCE","REQUEST","userName","getCurrentUserName","cacheParams","getAccountsDisabledCacheForNextFetch","requests","command","parameters","attributes","USE_MAX_SIZE","rumId","RumWrapper","RumMeasureTypes","fetch","accountsData","ytApiV3Id","executeBatch","batchData","disableCacheForNextFetch","_batchData","_batchData$","accountsError","accounts","output","_batchData$2","resourceError","resources","_batchData$3","nodesError","nodes","_batchData$4","usableAccountsError","usableAccounts","filter_","ypath","getValue","parse","SUCCESS","FAILURE","FETCH_ACCOUNTS_TOTAL_USAGE","FETCH_ACCOUNTS_NODES","FETCH_ACCOUNTS_USABLE","accountsIncreaseEditCounter","editCounter","getAccountsEditCounter","accountName","UPDATE_EDITABLE_ACCOUNT","accountsEditData","$value","$attributes","changeNameFilter","newFilter","sortState","tables","ACCOUNTS_TABLE_ID","CHANGE_NAME_FILTER","showEditorModal","OPEN_EDITOR_MODAL","setActiveAccount","accountsTrackVisit","SET_ACTIVE_ACCOUNT","closeEditorModal","CLOSE_EDITOR_MODAL","changeContentFilter","CHANGE_CONTENT_MODE_FILTER","changeMediumFilter","CHANGE_MEDIUM_TYPE_FILTER","filterUsableAccounts","FILTER_USABLE_ACCOUNTS","setAccountsTreeState","treeState","SET_ACCOUNTS_TREE_STATE","setAccountsVisibilityModeOfDashboard","setSetting","SettingName","DASHBOARD_VISIBILITY_MODE","NAMESPACES","setAccountsVisibilityMode","ACCOUNTS_VISIBILITY_MODE","setAccountsAbcServiceFilter","abcServiceFilter","getChaosIsLoaded","chaos_cell_bundles","loaded","getChaosIsLoading","loading","getChaosBundlesSortState","bundlesSort","getChaosBundlesNameFilter","bundlesNameFilter","getChaosBundlesAccountFilter","bundlesAccountFilter","getChaosBundlesTagNodeFilter","bundlesTagNodeFilter","getChaosBundles","bundles","getChaosActiveBundle","activeBundle","getChaosBundlesTableMode","bundlesTableMode","getChaosActiveBundleData","createSelector","find_","bundle","getChaosBundlesTotal","aggregateTotal","COLUMNS_SORTABLE_AS_IS","Set","getChaosBundlesFiltered","nameFilter","accountFilter","tagNodeFilter","predicates","lowerNameFilter","toLowerCase","push","indexOf","lowerAccountFilter","changelog_account","snapshot_account","lowerTagNodeFilter","node_tag_filter","concatByAnd","getChaosBundlesSorted","column","sortTableBundles","columnsSortable","getChaosCells","cells","getChaosCellsSortState","cellsSort","getChaosCellsIdFilter","cellsIdFilter","getChaosCellsBundleFilter","cellsBundleFilter","getChaosCellsHostFilter","cellsHostFilter","getChaosCellsOfActiveAccount","getChaosCellsFiltered","idFilter","bundleFilter","hostFilter","peerAddress","filterChaosCellsByBundle","getChaosCellsSorted","sortArrayBySortState","getChaosCellsBundles","uniq_","sort","getChaosCellsHosts","getChaosCellsHostsOfActiveBundle","prepareHostsFromCells","prepareHost","getChaosBreadcrumbItems","href","tabletChaosBundleRootLink","tabletActiveChaosBundleLink","getChytListData","chyt","list","getChytListAvailableCreators","_data$items","map","creator","getChytListAvailableHealths","_data$items2","compact_","health","getChytListAvailableStates","_data$items3","getChytCurrentAlias","clique","currentClique","getChytListFilterAlias","listFilters","getChytListFilterHealth","getChytListFilterCreator","getChytListFilterState","CHYT_LIST_SELECTABLE_COLUMNS","instance_count","total_cpu","total_memory","creation_time","stage","yt_operation_start_time","yt_operation_finish_time","speclet_modification_time","strawberry_state_modification_time","pool","getChytListVisibleColumns","_getSettingsData$glob","getSettingsData","columns","userColumns","k","has","getChytListColumns","checked","keys","forEach","getChytListTableSortState","getChytListTableSortStateByName","reduce","acc","multisortIndex","getChytFilterPredicate","alias","_toConsumableArray","getChytListTableItems","predicate","_data$items4","filteredItems","multiSortBySortStateArray","getFavouriteAccounts","makeGetSetting","getAccountsNS","prepareFavourites","getLastVisitedAccounts","prepareLastVisited","getPopularAccounts","preparePopulars","isActiveAcountInFavourites","getActiveAccount","prepareIsInFavourites","getFavouriteChyt","getChytNS","getLastVisitedChyt","isActiveCliqueInFavourites","getFavouritePaths","getClusterNS","getLastVisitedPaths","getPopularPaths","isCurrentPathInFavourites","getPath","getFavouritePools","getSchedulingNS","isActivePoolInFavourites","getPool","getTree","tree","favourites","getFavouriteBundles","getBundlesNS","isActiveBundleInFavourites","getTabletsActiveBundle","getFavouriteChaosBundles","getChaosBundlesNS","isActiveChaosBundleInFavourites","getSetting","parentNS","LOCAL","FAVOURITES","sortBy_","settingGetter","LAST_VISITED","lastVisited","entry","count","basePath","toaster","Toaster","ERRRO_TOASTER_TIMEOUT","SUCCESS_TOASTER_TIMEOUT","setResponsibleUsers","users","updateAcl","idmKind","IdmObjectType","ACCOUNT","responsible","setAccountLimit","resourcePath","yt","set","createAccountFromInfo","newAccountInfo","abcService","parentAccount","responsibles","createHome","create","parent_name","d","add","timeout","message","actions","showErrorPopup","reject","createAccountHome","abcSlug","deleteAccount","remove","contentTabs","reduce_","EDITOR_TABS","show"],"sourceRoot":""}
|