@ytsaurus/ui 1.18.0 → 1.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (136) hide show
  1. package/build/cjs/@types/types.d.ts +14 -0
  2. package/build/cjs/ui/components/QuotaEditor/QuotaEditor.js +3 -0
  3. package/build/cjs/ui/components/QuotaEditor/QuotaEditor.js.map +1 -1
  4. package/build/cjs/ui/hocs/components/Modal/withScope.d.ts +4 -55
  5. package/build/cjs/ui/hocs/components/Modal/withScope.js +8 -55
  6. package/build/cjs/ui/hocs/components/Modal/withScope.js.map +1 -1
  7. package/build/cjs/ui/hooks/use-hotkeysjs-scope.d.ts +1 -0
  8. package/build/cjs/ui/hooks/use-hotkeysjs-scope.js +22 -0
  9. package/build/cjs/ui/hooks/use-hotkeysjs-scope.js.map +1 -0
  10. package/build/cjs/ui/pages/navigation/Navigation/PathEditorModal/PathEditorModal.d.ts +1 -55
  11. package/build/cjs/ui/pages/system/Masters/Masters.css +3 -0
  12. package/build/cjs/ui/pages/system/Masters/Masters.css.map +1 -1
  13. package/build/cjs/ui/pages/system/Masters/Masters.d.ts +4 -1
  14. package/build/cjs/ui/pages/system/Masters/Masters.js +22 -3
  15. package/build/cjs/ui/pages/system/Masters/Masters.js.map +1 -1
  16. package/build/cjs/ui/pages/system/Masters/SystemAlert.d.ts +4 -0
  17. package/build/cjs/ui/pages/system/Masters/SystemAlert.js +26 -0
  18. package/build/cjs/ui/pages/system/Masters/SystemAlert.js.map +1 -0
  19. package/build/cjs/ui/pages/system/SystemStateOverview/SystemStateLabels.d.ts +9 -0
  20. package/build/cjs/ui/pages/system/SystemStateOverview/SystemStateLabels.js +27 -0
  21. package/build/cjs/ui/pages/system/SystemStateOverview/SystemStateLabels.js.map +1 -0
  22. package/build/cjs/ui/pages/system/SystemStateOverview/SystemStateOverview.d.ts +2 -1
  23. package/build/cjs/ui/pages/system/SystemStateOverview/SystemStateOverview.js +8 -4
  24. package/build/cjs/ui/pages/system/SystemStateOverview/SystemStateOverview.js.map +1 -1
  25. package/build/cjs/ui/pages/tablet_cell_bundles/bundle/BundleConfigurationMeta.css +5 -0
  26. package/build/cjs/ui/pages/tablet_cell_bundles/bundle/BundleConfigurationMeta.css.map +1 -1
  27. package/build/cjs/ui/pages/tablet_cell_bundles/bundle/BundleConfigurationMeta.js +13 -6
  28. package/build/cjs/ui/pages/tablet_cell_bundles/bundle/BundleConfigurationMeta.js.map +1 -1
  29. package/build/cjs/ui/pages/tablet_cell_bundles/bundles/BundleEditorDialog/BundleEditorDialog.css +0 -3
  30. package/build/cjs/ui/pages/tablet_cell_bundles/bundles/BundleEditorDialog/BundleEditorDialog.css.map +1 -1
  31. package/build/cjs/ui/pages/tablet_cell_bundles/bundles/BundleEditorDialog/BundleEditorDialog.d.ts +0 -1
  32. package/build/cjs/ui/pages/tablet_cell_bundles/bundles/BundleEditorDialog/BundleEditorDialog.js +42 -47
  33. package/build/cjs/ui/pages/tablet_cell_bundles/bundles/BundleEditorDialog/BundleEditorDialog.js.map +1 -1
  34. package/build/cjs/ui/store/actions/operations/detail.js +2 -2
  35. package/build/cjs/ui/store/actions/operations/detail.js.map +1 -1
  36. package/build/cjs/ui/store/actions/scheduling/create-pool-dialog.js +1 -1
  37. package/build/cjs/ui/store/actions/scheduling/create-pool-dialog.js.map +1 -1
  38. package/build/cjs/ui/store/actions/scheduling/expanded-pools.js +2 -2
  39. package/build/cjs/ui/store/actions/scheduling/expanded-pools.js.map +1 -1
  40. package/build/cjs/ui/store/actions/scheduling/scheduling-ts.js +1 -1
  41. package/build/cjs/ui/store/actions/scheduling/scheduling-ts.js.map +1 -1
  42. package/build/cjs/ui/store/actions/system/masters.d.ts +2 -1
  43. package/build/cjs/ui/store/actions/system/masters.js +54 -42
  44. package/build/cjs/ui/store/actions/system/masters.js.map +1 -1
  45. package/build/cjs/ui/store/reducers/system/masters.d.ts +12 -3
  46. package/build/cjs/ui/store/reducers/system/masters.js +9 -4
  47. package/build/cjs/ui/store/reducers/system/masters.js.map +1 -1
  48. package/build/cjs/ui/store/selectors/scheduling/scheduling-pools.d.ts +27 -0
  49. package/build/cjs/ui/store/selectors/scheduling/scheduling-pools.js.map +1 -1
  50. package/build/cjs/ui/store/selectors/system/index.d.ts +2 -1
  51. package/build/cjs/ui/store/selectors/system/index.js.map +1 -1
  52. package/build/cjs/ui/store/selectors/system/masters.d.ts +3 -0
  53. package/build/cjs/ui/store/selectors/system/masters.js +4 -1
  54. package/build/cjs/ui/store/selectors/system/masters.js.map +1 -1
  55. package/build/cjs/ui/utils/scheduling/detailsTable.d.ts +387 -326
  56. package/build/cjs/ui/utils/scheduling/detailsTable.js +12 -6
  57. package/build/cjs/ui/utils/scheduling/detailsTable.js.map +1 -1
  58. package/build/cjs/ui/utils/tablet_cell_bundles/bundles/bundle-editor-dialog/index.js +0 -3
  59. package/build/cjs/ui/utils/tablet_cell_bundles/bundles/bundle-editor-dialog/index.js.map +1 -1
  60. package/build/cjs/ui/utils/utils.js +2 -1
  61. package/build/cjs/ui/utils/utils.js.map +1 -1
  62. package/build/esm/@types/types.d.ts +14 -0
  63. package/build/esm/ui/components/QuotaEditor/QuotaEditor.js +3 -0
  64. package/build/esm/ui/components/QuotaEditor/QuotaEditor.js.map +1 -1
  65. package/build/esm/ui/hocs/components/Modal/withScope.d.ts +4 -55
  66. package/build/esm/ui/hocs/components/Modal/withScope.js +8 -55
  67. package/build/esm/ui/hocs/components/Modal/withScope.js.map +1 -1
  68. package/build/esm/ui/hooks/use-hotkeysjs-scope.d.ts +1 -0
  69. package/build/esm/ui/hooks/use-hotkeysjs-scope.js +15 -0
  70. package/build/esm/ui/hooks/use-hotkeysjs-scope.js.map +1 -0
  71. package/build/esm/ui/pages/navigation/Navigation/PathEditorModal/PathEditorModal.d.ts +1 -55
  72. package/build/esm/ui/pages/system/Masters/Masters.css +3 -0
  73. package/build/esm/ui/pages/system/Masters/Masters.css.map +1 -1
  74. package/build/esm/ui/pages/system/Masters/Masters.d.ts +4 -1
  75. package/build/esm/ui/pages/system/Masters/Masters.js +22 -3
  76. package/build/esm/ui/pages/system/Masters/Masters.js.map +1 -1
  77. package/build/esm/ui/pages/system/Masters/Masters.scss +4 -0
  78. package/build/esm/ui/pages/system/Masters/SystemAlert.d.ts +4 -0
  79. package/build/esm/ui/pages/system/Masters/SystemAlert.js +19 -0
  80. package/build/esm/ui/pages/system/Masters/SystemAlert.js.map +1 -0
  81. package/build/esm/ui/pages/system/SystemStateOverview/SystemStateLabels.d.ts +9 -0
  82. package/build/esm/ui/pages/system/SystemStateOverview/SystemStateLabels.js +20 -0
  83. package/build/esm/ui/pages/system/SystemStateOverview/SystemStateLabels.js.map +1 -0
  84. package/build/esm/ui/pages/system/SystemStateOverview/SystemStateOverview.d.ts +2 -1
  85. package/build/esm/ui/pages/system/SystemStateOverview/SystemStateOverview.js +7 -3
  86. package/build/esm/ui/pages/system/SystemStateOverview/SystemStateOverview.js.map +1 -1
  87. package/build/esm/ui/pages/tablet_cell_bundles/bundle/BundleConfigurationMeta.css +5 -0
  88. package/build/esm/ui/pages/tablet_cell_bundles/bundle/BundleConfigurationMeta.css.map +1 -1
  89. package/build/esm/ui/pages/tablet_cell_bundles/bundle/BundleConfigurationMeta.js +13 -6
  90. package/build/esm/ui/pages/tablet_cell_bundles/bundle/BundleConfigurationMeta.js.map +1 -1
  91. package/build/esm/ui/pages/tablet_cell_bundles/bundle/BundleConfigurationMeta.scss +6 -0
  92. package/build/esm/ui/pages/tablet_cell_bundles/bundles/BundleEditorDialog/BundleEditorDialog.css +0 -3
  93. package/build/esm/ui/pages/tablet_cell_bundles/bundles/BundleEditorDialog/BundleEditorDialog.css.map +1 -1
  94. package/build/esm/ui/pages/tablet_cell_bundles/bundles/BundleEditorDialog/BundleEditorDialog.d.ts +0 -1
  95. package/build/esm/ui/pages/tablet_cell_bundles/bundles/BundleEditorDialog/BundleEditorDialog.js +42 -47
  96. package/build/esm/ui/pages/tablet_cell_bundles/bundles/BundleEditorDialog/BundleEditorDialog.js.map +1 -1
  97. package/build/esm/ui/pages/tablet_cell_bundles/bundles/BundleEditorDialog/BundleEditorDialog.scss +0 -4
  98. package/build/esm/ui/store/actions/operations/detail.js +2 -2
  99. package/build/esm/ui/store/actions/operations/detail.js.map +1 -1
  100. package/build/esm/ui/store/actions/scheduling/create-pool-dialog.js +1 -1
  101. package/build/esm/ui/store/actions/scheduling/create-pool-dialog.js.map +1 -1
  102. package/build/esm/ui/store/actions/scheduling/expanded-pools.js +2 -2
  103. package/build/esm/ui/store/actions/scheduling/expanded-pools.js.map +1 -1
  104. package/build/esm/ui/store/actions/scheduling/scheduling-ts.js +1 -1
  105. package/build/esm/ui/store/actions/scheduling/scheduling-ts.js.map +1 -1
  106. package/build/esm/ui/store/actions/system/masters.d.ts +2 -1
  107. package/build/esm/ui/store/actions/system/masters.js +47 -35
  108. package/build/esm/ui/store/actions/system/masters.js.map +1 -1
  109. package/build/esm/ui/store/reducers/system/masters.d.ts +12 -3
  110. package/build/esm/ui/store/reducers/system/masters.js +9 -4
  111. package/build/esm/ui/store/reducers/system/masters.js.map +1 -1
  112. package/build/esm/ui/store/selectors/scheduling/scheduling-pools.d.ts +27 -0
  113. package/build/esm/ui/store/selectors/scheduling/scheduling-pools.js.map +1 -1
  114. package/build/esm/ui/store/selectors/system/index.d.ts +2 -1
  115. package/build/esm/ui/store/selectors/system/index.js.map +1 -1
  116. package/build/esm/ui/store/selectors/system/masters.d.ts +3 -0
  117. package/build/esm/ui/store/selectors/system/masters.js +3 -0
  118. package/build/esm/ui/store/selectors/system/masters.js.map +1 -1
  119. package/build/esm/ui/utils/scheduling/detailsTable.d.ts +387 -326
  120. package/build/esm/ui/utils/scheduling/detailsTable.js +12 -6
  121. package/build/esm/ui/utils/scheduling/detailsTable.js.map +1 -1
  122. package/build/esm/ui/utils/tablet_cell_bundles/bundles/bundle-editor-dialog/index.js +0 -3
  123. package/build/esm/ui/utils/tablet_cell_bundles/bundles/bundle-editor-dialog/index.js.map +1 -1
  124. package/build/esm/ui/utils/utils.js +2 -1
  125. package/build/esm/ui/utils/utils.js.map +1 -1
  126. package/dist/public/build/assets-manifest.json +7 -7
  127. package/dist/public/build/css/{main.f7818774.css → main.4c657a42.css} +2 -2
  128. package/dist/public/build/css/main.4c657a42.css.map +1 -0
  129. package/dist/public/build/js/main.38e77012.js +3 -0
  130. package/dist/public/build/js/{main.1b374ad6.js.map → main.38e77012.js.map} +1 -1
  131. package/dist/public/build/manifest.json +4 -4
  132. package/package.json +8 -6
  133. package/scripts/sync-peer-dependencies.js +54 -0
  134. package/dist/public/build/css/main.f7818774.css.map +0 -1
  135. package/dist/public/build/js/main.1b374ad6.js +0 -3
  136. /package/dist/public/build/js/{main.1b374ad6.js.LICENSE.txt → main.38e77012.js.LICENSE.txt} +0 -0
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.SystemAlert = void 0;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _reactRedux = require("react-redux");
9
+ var _masters = require("../../../store/selectors/system/masters");
10
+ var _Alert = _interopRequireDefault(require("../../../components/Alert/Alert"));
11
+ var _jsxRuntime = require("react/jsx-runtime");
12
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
+ var SystemAlert = exports.SystemAlert = function SystemAlert(_ref) {
14
+ var className = _ref.className;
15
+ var alerts = (0, _reactRedux.useSelector)(_masters.selectMasterAlerts);
16
+ if (!alerts.length) return;
17
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
18
+ className: className,
19
+ children: alerts.map(function (alert, id) {
20
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Alert.default, {
21
+ error: alert
22
+ }, alert.message + id);
23
+ })
24
+ });
25
+ };
26
+ // #sourceMappingURL=SystemAlert.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_reactRedux","_masters","_Alert","_jsxRuntime","obj","__esModule","default","SystemAlert","exports","_ref","className","alerts","useSelector","selectMasterAlerts","length","_jsx","children","map","alert","id","Alert","error","message"],"sources":["SystemAlert.tsx"],"sourcesContent":["import React, {FC} from 'react';\nimport {useSelector} from 'react-redux';\nimport {selectMasterAlerts} from '../../../store/selectors/system/masters';\nimport Alert from '../../../components/Alert/Alert';\n\nexport const SystemAlert: FC<{className?: string}> = ({className}) => {\n const alerts = useSelector(selectMasterAlerts);\n\n if (!alerts.length) return;\n\n return (\n <div className={className}>\n {alerts.map((alert, id) => (\n <Alert key={alert.message + id} error={alert} />\n ))}\n </div>\n );\n};\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAJ,sBAAA,CAAAC,OAAA;AAAoD,IAAAI,WAAA,GAAAJ,OAAA;AAAA,SAAAD,uBAAAM,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAE7C,IAAMG,WAAqC,GAAAC,OAAA,CAAAD,WAAA,GAAG,SAAxCA,WAAqCA,CAAAE,IAAA,EAAoB;EAAA,IAAfC,SAAS,GAAAD,IAAA,CAATC,SAAS;EAC5D,IAAMC,MAAM,GAAG,IAAAC,uBAAW,EAACC,2BAAkB,CAAC;EAE9C,IAAI,CAACF,MAAM,CAACG,MAAM,EAAE;EAEpB,oBACI,IAAAC,eAAA;IAAKL,SAAS,EAAEA,SAAU;IAAAM,QAAA,EACrBL,MAAM,CAACM,GAAG,CAAC,UAACC,KAAK,EAAEC,EAAE;MAAA,oBAClB,IAAAJ,eAAA,EAACK,cAAK;QAA0BC,KAAK,EAAEH;MAAM,GAAjCA,KAAK,CAACI,OAAO,GAAGH,EAAmB,CAAC;IAAA,CACnD;EAAC,CACD,CAAC;AAEd,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { FC } from 'react';
2
+ import { LabelTheme } from '../../../components/Label/Label';
3
+ export type Props = {
4
+ labels: {
5
+ text: string;
6
+ theme: LabelTheme;
7
+ }[];
8
+ };
9
+ export declare const SystemStateLabels: FC<Props>;
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.SystemStateLabels = void 0;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _uikit = require("@gravity-ui/uikit");
9
+ var _Label = _interopRequireDefault(require("../../../components/Label/Label"));
10
+ var _jsxRuntime = require("react/jsx-runtime");
11
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12
+ var SystemStateLabels = exports.SystemStateLabels = function SystemStateLabels(_ref) {
13
+ var labels = _ref.labels;
14
+ if (!labels.length) return undefined;
15
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_uikit.Flex, {
16
+ gap: 1,
17
+ children: labels.map(function (_ref2, index) {
18
+ var text = _ref2.text,
19
+ theme = _ref2.theme;
20
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Label.default, {
21
+ theme: theme,
22
+ text: text
23
+ }, "".concat(text, "_").concat(index));
24
+ })
25
+ });
26
+ };
27
+ // #sourceMappingURL=SystemStateLabels.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_uikit","_Label","_jsxRuntime","obj","__esModule","default","SystemStateLabels","exports","_ref","labels","length","undefined","_jsx","Flex","gap","children","map","_ref2","index","text","theme","Label","concat"],"sources":["SystemStateLabels.tsx"],"sourcesContent":["import React, {FC} from 'react';\nimport {Flex} from '@gravity-ui/uikit';\nimport Label, {LabelTheme} from '../../../components/Label/Label';\n\nexport type Props = {\n labels: {text: string; theme: LabelTheme}[];\n};\n\nexport const SystemStateLabels: FC<Props> = ({labels}) => {\n if (!labels.length) return undefined;\n\n return (\n <Flex gap={1}>\n {labels.map(({text, theme}, index) => (\n <Label key={`${text}_${index}`} theme={theme} text={text} />\n ))}\n </Flex>\n );\n};\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAH,sBAAA,CAAAC,OAAA;AAAkE,IAAAG,WAAA,GAAAH,OAAA;AAAA,SAAAD,uBAAAK,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAM3D,IAAMG,iBAA4B,GAAAC,OAAA,CAAAD,iBAAA,GAAG,SAA/BA,iBAA4BA,CAAAE,IAAA,EAAiB;EAAA,IAAZC,MAAM,GAAAD,IAAA,CAANC,MAAM;EAChD,IAAI,CAACA,MAAM,CAACC,MAAM,EAAE,OAAOC,SAAS;EAEpC,oBACI,IAAAC,eAAA,EAACC,WAAI;IAACC,GAAG,EAAE,CAAE;IAAAC,QAAA,EACRN,MAAM,CAACO,GAAG,CAAC,UAAAC,KAAA,EAAgBC,KAAK;MAAA,IAAnBC,IAAI,GAAAF,KAAA,CAAJE,IAAI;QAAEC,KAAK,GAAAH,KAAA,CAALG,KAAK;MAAA,oBACrB,IAAAR,eAAA,EAACS,cAAK;QAA0BD,KAAK,EAAEA,KAAM;QAACD,IAAI,EAAEA;MAAK,MAAAG,MAAA,CAA1CH,IAAI,OAAAG,MAAA,CAAIJ,KAAK,CAA+B,CAAC;IAAA,CAC/D;EAAC,CACA,CAAC;AAEf,CAAC"}
@@ -2,7 +2,8 @@ import React from 'react';
2
2
  import { SystemCountersProps } from '../SystemCounters/SystemCounters';
3
3
  import { ProgressProps } from '@gravity-ui/uikit';
4
4
  import './SystemStateOverview.scss';
5
- export type SystemStateOverviewProps<Flags extends string> = SystemCountersProps<Flags> & {
5
+ import { Props as SystemStateLabelsProps } from './SystemStateLabels';
6
+ export type SystemStateOverviewProps<Flags extends string> = Partial<SystemStateLabelsProps> & SystemCountersProps<Flags> & {
6
7
  stateOverview?: ProgressProps;
7
8
  };
8
9
  export default class SystemStateOverview<Flags extends string> extends React.Component<SystemStateOverviewProps<Flags>> {
@@ -14,11 +14,12 @@ var _react = _interopRequireDefault(require("react"));
14
14
  var _bemCnLite = _interopRequireDefault(require("bem-cn-lite"));
15
15
  var _SystemCounters = _interopRequireDefault(require("../SystemCounters/SystemCounters"));
16
16
  var _uikit = require("@gravity-ui/uikit");
17
- var _index = require("../../../utils/index");
17
+ var _utils = require("../../../utils");
18
18
  require("./SystemStateOverview.css");
19
+ var _SystemStateLabels = require("./SystemStateLabels");
19
20
  var _jsxRuntime = require("react/jsx-runtime");
20
21
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
- var _excluded = ["stateOverview"];
22
+ var _excluded = ["stateOverview", "labels"];
22
23
  var b = (0, _bemCnLite.default)('system');
23
24
  var SystemStateOverview = exports.default = /*#__PURE__*/function (_React$Component) {
24
25
  (0, _inherits2.default)(SystemStateOverview, _React$Component);
@@ -32,6 +33,7 @@ var SystemStateOverview = exports.default = /*#__PURE__*/function (_React$Compon
32
33
  value: function render() {
33
34
  var _this$props = this.props,
34
35
  _x = _this$props.stateOverview,
36
+ labels = _this$props.labels,
35
37
  rest = (0, _objectWithoutProperties2.default)(_this$props, _excluded);
36
38
  if (!this.props.counters) {
37
39
  return null;
@@ -40,11 +42,13 @@ var SystemStateOverview = exports.default = /*#__PURE__*/function (_React$Compon
40
42
  stateOverview = _this$props$stateOver === void 0 ? {
41
43
  value: 100,
42
44
  view: 'thin',
43
- stack: (0, _index.computeEffectiveStateProgress)(this.props.counters)
45
+ stack: (0, _utils.computeEffectiveStateProgress)(this.props.counters)
44
46
  } : _this$props$stateOver;
45
47
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
46
48
  className: b('heading-overview'),
47
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_SystemCounters.default, (0, _objectSpread2.default)({}, rest)), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
49
+ children: [labels && /*#__PURE__*/(0, _jsxRuntime.jsx)(_SystemStateLabels.SystemStateLabels, {
50
+ labels: labels
51
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_SystemCounters.default, (0, _objectSpread2.default)({}, rest)), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
48
52
  className: b('heading-overview-states'),
49
53
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_uikit.Progress, (0, _objectSpread2.default)({}, stateOverview))
50
54
  })]
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_bemCnLite","_SystemCounters","_uikit","_index","_jsxRuntime","obj","__esModule","default","b","block","SystemStateOverview","exports","_React$Component","_inherits","_super","_createSuper","_classCallCheck","apply","arguments","_createClass","key","value","render","_this$props","props","_x","stateOverview","rest","_objectWithoutProperties","_excluded","counters","_this$props$stateOver","view","stack","computeEffectiveStateProgress","_jsxs","className","children","_jsx","SystemCounters","_objectSpread","Progress","React","Component"],"sources":["SystemStateOverview.tsx"],"sourcesContent":["import React from 'react';\nimport block from 'bem-cn-lite';\n\nimport SystemCounters, {SystemCountersProps} from '../SystemCounters/SystemCounters';\nimport {Progress, ProgressProps} from '@gravity-ui/uikit';\n\nimport {computeEffectiveStateProgress} from '../../../utils/index';\n\nimport './SystemStateOverview.scss';\n\nconst b = block('system');\n\nexport type SystemStateOverviewProps<Flags extends string> = SystemCountersProps<Flags> & {\n stateOverview?: ProgressProps;\n};\n\nexport default class SystemStateOverview<Flags extends string> extends React.Component<\n SystemStateOverviewProps<Flags>\n> {\n render() {\n const {stateOverview: _x, ...rest} = this.props;\n if (!this.props.counters) {\n return null;\n }\n\n const {\n stateOverview = {\n value: 100,\n view: 'thin',\n stack: computeEffectiveStateProgress(this.props.counters),\n },\n } = this.props;\n\n return (\n <div className={b('heading-overview')}>\n <SystemCounters {...rest} />\n <div className={b('heading-overview-states')}>\n <Progress {...stateOverview} />\n </div>\n </div>\n );\n }\n}\n"],"mappings":";;;;;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAF,sBAAA,CAAAC,OAAA;AAEA,IAAAE,eAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AAEA,IAAAI,MAAA,GAAAJ,OAAA;AAEAA,OAAA;AAAoC,IAAAK,WAAA,GAAAL,OAAA;AAAA,SAAAD,uBAAAO,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;;AAEpC,IAAMG,CAAC,GAAG,IAAAC,kBAAK,EAAC,QAAQ,CAAC;AAAC,IAMLC,mBAAmB,GAAAC,OAAA,CAAAJ,OAAA,0BAAAK,gBAAA;EAAA,IAAAC,kBAAA,EAAAH,mBAAA,EAAAE,gBAAA;EAAA,IAAAE,MAAA,OAAAC,qBAAA,EAAAL,mBAAA;EAAA,SAAAA,oBAAA;IAAA,IAAAM,wBAAA,QAAAN,mBAAA;IAAA,OAAAI,MAAA,CAAAG,KAAA,OAAAC,SAAA;EAAA;EAAA,IAAAC,qBAAA,EAAAT,mBAAA;IAAAU,GAAA;IAAAC,KAAA,EAGpC,SAAAC,OAAA,EAAS;MACL,IAAAC,WAAA,GAAqC,IAAI,CAACC,KAAK;QAAzBC,EAAE,GAAAF,WAAA,CAAjBG,aAAa;QAASC,IAAI,OAAAC,iCAAA,EAAAL,WAAA,EAAAM,SAAA;MACjC,IAAI,CAAC,IAAI,CAACL,KAAK,CAACM,QAAQ,EAAE;QACtB,OAAO,IAAI;MACf;MAEA,IAAAC,qBAAA,GAMI,IAAI,CAACP,KAAK,CALVE,aAAa;QAAbA,aAAa,GAAAK,qBAAA,cAAG;UACZV,KAAK,EAAE,GAAG;UACVW,IAAI,EAAE,MAAM;UACZC,KAAK,EAAE,IAAAC,oCAA6B,EAAC,IAAI,CAACV,KAAK,CAACM,QAAQ;QAC5D,CAAC,GAAAC,qBAAA;MAGL,oBACI,IAAAI,gBAAA;QAAKC,SAAS,EAAE5B,CAAC,CAAC,kBAAkB,CAAE;QAAA6B,QAAA,gBAClC,IAAAC,eAAA,EAACC,uBAAc,MAAAC,sBAAA,MAAKb,IAAI,CAAG,CAAC,eAC5B,IAAAW,eAAA;UAAKF,SAAS,EAAE5B,CAAC,CAAC,yBAAyB,CAAE;UAAA6B,QAAA,eACzC,IAAAC,eAAA,EAACG,eAAQ,MAAAD,sBAAA,MAAKd,aAAa,CAAG;QAAC,CAC9B,CAAC;MAAA,CACL,CAAC;IAEd;EAAC;EAAA,OAAAhB,mBAAA;AAAA,EAzBkEgC,cAAK,CAACC,SAAS"}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_bemCnLite","_SystemCounters","_uikit","_utils","_SystemStateLabels","_jsxRuntime","obj","__esModule","default","b","block","SystemStateOverview","exports","_React$Component","_inherits","_super","_createSuper","_classCallCheck","apply","arguments","_createClass","key","value","render","_this$props","props","_x","stateOverview","labels","rest","_objectWithoutProperties","_excluded","counters","_this$props$stateOver","view","stack","computeEffectiveStateProgress","_jsxs","className","children","_jsx","SystemStateLabels","SystemCounters","_objectSpread","Progress","React","Component"],"sources":["SystemStateOverview.tsx"],"sourcesContent":["import React from 'react';\nimport block from 'bem-cn-lite';\n\nimport SystemCounters, {SystemCountersProps} from '../SystemCounters/SystemCounters';\nimport {Progress, ProgressProps} from '@gravity-ui/uikit';\n\nimport {computeEffectiveStateProgress} from '../../../utils';\n\nimport './SystemStateOverview.scss';\nimport {SystemStateLabels, Props as SystemStateLabelsProps} from './SystemStateLabels';\n\nconst b = block('system');\n\nexport type SystemStateOverviewProps<Flags extends string> = Partial<SystemStateLabelsProps> &\n SystemCountersProps<Flags> & {\n stateOverview?: ProgressProps;\n };\n\nexport default class SystemStateOverview<Flags extends string> extends React.Component<\n SystemStateOverviewProps<Flags>\n> {\n render() {\n const {stateOverview: _x, labels, ...rest} = this.props;\n if (!this.props.counters) {\n return null;\n }\n\n const {\n stateOverview = {\n value: 100,\n view: 'thin',\n stack: computeEffectiveStateProgress(this.props.counters),\n },\n } = this.props;\n\n return (\n <div className={b('heading-overview')}>\n {labels && <SystemStateLabels labels={labels} />}\n <SystemCounters {...rest} />\n <div className={b('heading-overview-states')}>\n <Progress {...stateOverview} />\n </div>\n </div>\n );\n }\n}\n"],"mappings":";;;;;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAF,sBAAA,CAAAC,OAAA;AAEA,IAAAE,eAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AAEA,IAAAI,MAAA,GAAAJ,OAAA;AAEAA,OAAA;AACA,IAAAK,kBAAA,GAAAL,OAAA;AAAuF,IAAAM,WAAA,GAAAN,OAAA;AAAA,SAAAD,uBAAAQ,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;;AAEvF,IAAMG,CAAC,GAAG,IAAAC,kBAAK,EAAC,QAAQ,CAAC;AAAC,IAOLC,mBAAmB,GAAAC,OAAA,CAAAJ,OAAA,0BAAAK,gBAAA;EAAA,IAAAC,kBAAA,EAAAH,mBAAA,EAAAE,gBAAA;EAAA,IAAAE,MAAA,OAAAC,qBAAA,EAAAL,mBAAA;EAAA,SAAAA,oBAAA;IAAA,IAAAM,wBAAA,QAAAN,mBAAA;IAAA,OAAAI,MAAA,CAAAG,KAAA,OAAAC,SAAA;EAAA;EAAA,IAAAC,qBAAA,EAAAT,mBAAA;IAAAU,GAAA;IAAAC,KAAA,EAGpC,SAAAC,OAAA,EAAS;MACL,IAAAC,WAAA,GAA6C,IAAI,CAACC,KAAK;QAAjCC,EAAE,GAAAF,WAAA,CAAjBG,aAAa;QAAMC,MAAM,GAAAJ,WAAA,CAANI,MAAM;QAAKC,IAAI,OAAAC,iCAAA,EAAAN,WAAA,EAAAO,SAAA;MACzC,IAAI,CAAC,IAAI,CAACN,KAAK,CAACO,QAAQ,EAAE;QACtB,OAAO,IAAI;MACf;MAEA,IAAAC,qBAAA,GAMI,IAAI,CAACR,KAAK,CALVE,aAAa;QAAbA,aAAa,GAAAM,qBAAA,cAAG;UACZX,KAAK,EAAE,GAAG;UACVY,IAAI,EAAE,MAAM;UACZC,KAAK,EAAE,IAAAC,oCAA6B,EAAC,IAAI,CAACX,KAAK,CAACO,QAAQ;QAC5D,CAAC,GAAAC,qBAAA;MAGL,oBACI,IAAAI,gBAAA;QAAKC,SAAS,EAAE7B,CAAC,CAAC,kBAAkB,CAAE;QAAA8B,QAAA,GACjCX,MAAM,iBAAI,IAAAY,eAAA,EAACC,oCAAiB;UAACb,MAAM,EAAEA;QAAO,CAAE,CAAC,eAChD,IAAAY,eAAA,EAACE,uBAAc,MAAAC,sBAAA,MAAKd,IAAI,CAAG,CAAC,eAC5B,IAAAW,eAAA;UAAKF,SAAS,EAAE7B,CAAC,CAAC,yBAAyB,CAAE;UAAA8B,QAAA,eACzC,IAAAC,eAAA,EAACI,eAAQ,MAAAD,sBAAA,MAAKhB,aAAa,CAAG;QAAC,CAC9B,CAAC;MAAA,CACL,CAAC;IAEd;EAAC;EAAA,OAAAhB,mBAAA;AAAA,EA1BkEkC,cAAK,CAACC,SAAS"}
@@ -21,4 +21,9 @@
21
21
  .bundle-configuration-meta__tooltip-list_alerts {
22
22
  padding-left: var(--yc-popover-padding);
23
23
  }
24
+ .bundle-configuration-meta__state-with-icon {
25
+ display: flex;
26
+ align-items: center;
27
+ color: var(--g-color-text-secondary);
28
+ }
24
29
  /*# sourceMappingURL=BundleConfigurationMeta.css.map */
@@ -1 +1 @@
1
- {"version":3,"sources":["BundleConfigurationMeta.scss"],"names":[],"mappings":"AAAA;EACI,cAAA;AACJ;AACI;EACI,kBAAA;AACR;AAEI;EACI,gBAAA;EAEA,oCAAA;AADR;AAMY;EACI,wBAAA;AAJhB;AASI;EACI,SAAA;EACA,UAAA;AAPR;AASQ;EACI,gBAAA;AAPZ;AAUQ;EACI,uCAAA;AARZ","file":"BundleConfigurationMeta.css","sourcesContent":[".bundle-configuration-meta {\n flex-shrink: 0;\n\n .meta-table__group {\n grid-gap: 6px 27px;\n }\n\n &__percentage {\n margin-left: 6px;\n\n color: var(--g-color-text-secondary);\n }\n\n &__health {\n &_value {\n &_changing {\n color: var(--info-color);\n }\n }\n }\n\n &__tooltip-list {\n margin: 0;\n padding: 0;\n\n &:not(&_alerts) {\n list-style: none;\n }\n\n &_alerts {\n padding-left: var(--yc-popover-padding);\n }\n }\n}\n"],"sourceRoot":""}
1
+ {"version":3,"sources":["BundleConfigurationMeta.scss"],"names":[],"mappings":"AAAA;EACI,cAAA;AACJ;AACI;EACI,kBAAA;AACR;AAEI;EACI,gBAAA;EAEA,oCAAA;AADR;AAMY;EACI,wBAAA;AAJhB;AASI;EACI,SAAA;EACA,UAAA;AAPR;AASQ;EACI,gBAAA;AAPZ;AAUQ;EACI,uCAAA;AARZ;AAYI;EACI,aAAA;EACA,mBAAA;EACA,oCAAA;AAVR","file":"BundleConfigurationMeta.css","sourcesContent":[".bundle-configuration-meta {\n flex-shrink: 0;\n\n .meta-table__group {\n grid-gap: 6px 27px;\n }\n\n &__percentage {\n margin-left: 6px;\n\n color: var(--g-color-text-secondary);\n }\n\n &__health {\n &_value {\n &_changing {\n color: var(--info-color);\n }\n }\n }\n\n &__tooltip-list {\n margin: 0;\n padding: 0;\n\n &:not(&_alerts) {\n list-style: none;\n }\n\n &_alerts {\n padding-left: var(--yc-popover-padding);\n }\n }\n\n &__state-with-icon {\n display: flex;\n align-items: center;\n color: var(--g-color-text-secondary);\n }\n}\n"],"sourceRoot":""}
@@ -21,6 +21,7 @@ var _reactRedux = require("react-redux");
21
21
  var _hammer = _interopRequireDefault(require("../../../common/hammer"));
22
22
  var _tablet_cell_bundles = require("../../../store/selectors/tablet_cell_bundles");
23
23
  var _tabletCellBundleEditor = require("../../../store/actions/tablet_cell_bundles/tablet-cell-bundle-editor");
24
+ var _Icon = _interopRequireDefault(require("../../../components/Icon/Icon"));
24
25
  var _MetaTable = _interopRequireDefault(require("../../../components/MetaTable/MetaTable"));
25
26
  var _BundleMetaResourceProgress = require("../../../components/BundleMetaResourceProgress/BundleMetaResourceProgress");
26
27
  var _BundleGeneralMeta = require("./BundleGeneralMeta");
@@ -234,29 +235,35 @@ function getBundleStateField(orchidData) {
234
235
  if (value === 'changing') {
235
236
  return {
236
237
  key: 'State',
237
- value: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Tooltip.Tooltip, {
238
+ value: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Tooltip.Tooltip, {
238
239
  content: renderDetails(detailsEntries),
239
240
  placement: 'bottom',
240
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_BundleGeneralMeta.Health, {
241
+ className: block('state-with-icon'),
242
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_BundleGeneralMeta.Health, {
241
243
  className: block('health', {
242
244
  value: value
243
245
  }),
244
246
  value: value
245
- })
247
+ }), "\xA0", /*#__PURE__*/(0, _jsxRuntime.jsx)(_Icon.default, {
248
+ awesome: "question-circle"
249
+ })]
246
250
  })
247
251
  };
248
252
  }
249
253
  return {
250
254
  key: 'State',
251
- value: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Tooltip.Tooltip, {
255
+ value: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Tooltip.Tooltip, {
252
256
  content: renderErrors(alerts),
253
257
  placement: 'bottom',
254
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_BundleGeneralMeta.Health, {
258
+ className: block('state-with-icon'),
259
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_BundleGeneralMeta.Health, {
255
260
  className: block('health', {
256
261
  value: value
257
262
  }),
258
263
  value: value
259
- })
264
+ }), "\xA0", /*#__PURE__*/(0, _jsxRuntime.jsx)(_Icon.default, {
265
+ awesome: "exclamation-triangle"
266
+ })]
260
267
  })
261
268
  };
262
269
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_bemCnLite","_reactRedux","_hammer","_tablet_cell_bundles","_tabletCellBundleEditor","_MetaTable","_BundleMetaResourceProgress","_BundleGeneralMeta","_Tooltip","_utils","_useUpdater","_rumWrapApi","_utils2","_jsxRuntime","obj","__esModule","default","block","cn","DETAILS_KEYS","ActiveAccountBundleControllerUpdater","dispatch","useDispatch","_ref","useSelector","getTabletsActiveBundleData","activeBundle","bundle","enable_bundle_controller","fetchFn","React","useCallback","fetchTabletCellBundleEditor","useUpdater","prevBundleControllerState","useRef","checkBundleControllerState","_asyncToGenerator","_regeneratorRuntime","mark","_callee","requests","_yield$wrapApiPromise","_yield$wrapApiPromise2","_yield$wrapApiPromise3","_yield$wrapApiPromise4","alerts","rest","inProgressCount","state","wrap","_callee$","_context","prev","next","abrupt","command","parameters","path","concat","_toConsumableArray","_map","attr","wrapApiPromiseByToaster","ytApiV3Id","executeBatch","YTApiId","tabletBundleControllerState","toasterName","skipSuccessToast","errorContent","sent","_toArray","output","slice","_reduce","acc","_ref3","getState","current","stop","timeout","BundleConfigurationMeta","_ref4","bundleControllerConfig","bundle_controller_target_config","orchidData","getActiveBundleControllerData","bundleGroup","resource_quota","resource_allocated","allMemory","memory","allVCPU","vcpu","allocMemory","allocVCPU","push","getBundleStateField","getLimitAllocatedField","rpc_proxy_count","count","_bundleControllerConf","rpc_proxy_resource_guarantee","getRpcNodeField","tablet_node_count","_count","_bundleControllerConf2","tablet_node_resource_guarantee","_memory","_vcpu","memory_limits","_ref5","_memory2","BundleMetaResourceProgress","data","resourceType","limit","cpu_limits","postfix","_jsx","MetaTable","className","subTitles","items","title","allocated","all","type","allStr","hammer","format","allocatedStr","percentage","key","value","_jsxs","children","printUsageLimit","printMemory","printVCPU","totalCounts","arguments","length","undefined","getBundleStateData","detailsEntries","_entries","_pick","_ref6","_ref7","_slicedToArray","_k","v","_getBundleStateData","Health","Tooltip","content","renderDetails","placement","renderErrors","details","list","map","_ref8","_ref9","k","text","i","alert","id","description"],"sources":["BundleConfigurationMeta.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'bem-cn-lite';\nimport {useDispatch, useSelector} from 'react-redux';\nimport _ from 'lodash';\n\nimport hammer from '../../../common/hammer';\n\nimport {\n getActiveBundleControllerData,\n getTabletsActiveBundleData,\n} from '../../../store/selectors/tablet_cell_bundles';\nimport {fetchTabletCellBundleEditor} from '../../../store/actions/tablet_cell_bundles/tablet-cell-bundle-editor';\nimport {OrchidBundlesData} from '../../../store/reducers/tablet_cell_bundles';\nimport MetaTable, {MetaTableItem} from '../../../components/MetaTable/MetaTable';\nimport {BundleMetaResourceProgress} from '../../../components/BundleMetaResourceProgress/BundleMetaResourceProgress';\nimport {Health} from './BundleGeneralMeta';\nimport {Tooltip} from '../../../components/Tooltip/Tooltip';\nimport {printUsageLimit} from '../../../utils';\nimport {useUpdater} from '../../../hooks/use-updater';\nimport {YTApiId, ytApiV3Id} from '../../../rum/rum-wrap-api';\nimport {wrapApiPromiseByToaster} from '../../../utils/utils';\nimport {BatchSubRequest} from '../../../../shared/yt-types';\n\nimport './BundleConfigurationMeta.scss';\n\nconst block = cn('bundle-configuration-meta');\n\nconst DETAILS_KEYS = [\n 'allocating_rpc_proxy_count',\n 'allocating_tablet_node_count',\n 'deallocating_rpc_proxy_count',\n 'deallocating_tablet_node_count',\n 'removing_cell_count',\n] as const;\n\nexport function ActiveAccountBundleControllerUpdater() {\n const dispatch = useDispatch();\n const {bundle: activeBundle, enable_bundle_controller} =\n useSelector(getTabletsActiveBundleData) || {};\n const fetchFn = React.useCallback(() => {\n if (activeBundle) {\n dispatch(fetchTabletCellBundleEditor(activeBundle));\n }\n }, [dispatch, activeBundle]);\n useUpdater(fetchFn);\n\n const prevBundleControllerState = React.useRef<null | 'failed' | 'changing' | 'good'>(null);\n const checkBundleControllerState = React.useCallback(async () => {\n if (!activeBundle || !enable_bundle_controller) {\n return;\n }\n\n const requests: Array<BatchSubRequest> = [\n {\n command: 'get',\n parameters: {\n path: `//sys/bundle_controller/orchid/bundle_controller/state/bundles/${activeBundle}/alerts`,\n },\n },\n ..._.map(DETAILS_KEYS, (attr) => {\n return {\n command: 'get' as const,\n parameters: {\n path: `//sys/bundle_controller/orchid/bundle_controller/state/bundles/${activeBundle}/${attr}`,\n },\n };\n }),\n ];\n\n const [{output: alerts} = {output: []}, ...rest] = await wrapApiPromiseByToaster(\n ytApiV3Id.executeBatch(YTApiId.tabletBundleControllerState, {requests}),\n {\n toasterName: 'active-bundle-controller-status',\n skipSuccessToast: true,\n errorContent: `Cannot load bundle controller details for \"${activeBundle}\".`,\n },\n ).catch(() => []);\n\n const inProgressCount = _.reduce(\n rest,\n (acc, {output}) => {\n return acc + (output ?? 0);\n },\n 0,\n );\n\n const state = getState(alerts, inProgressCount);\n if (prevBundleControllerState.current === null) {\n prevBundleControllerState.current = state;\n return;\n }\n\n if (prevBundleControllerState.current !== state) {\n prevBundleControllerState.current = state;\n fetchFn();\n }\n }, [fetchFn, activeBundle, enable_bundle_controller]);\n useUpdater(checkBundleControllerState, {timeout: 3000});\n\n return null;\n}\n\nexport default function BundleConfigurationMeta() {\n const {bundle_controller_target_config: bundleControllerConfig} =\n useSelector(getTabletsActiveBundleData) || {};\n const orchidData = useSelector(getActiveBundleControllerData);\n\n if (!bundleControllerConfig || !orchidData) {\n return null;\n }\n\n const bundleGroup: Array<MetaTableItem> = [];\n\n if (orchidData) {\n const {resource_quota, resource_allocated} = orchidData;\n const {memory: allMemory, vcpu: allVCPU} = resource_quota;\n const {memory: allocMemory, vcpu: allocVCPU} = resource_allocated;\n\n bundleGroup.push(\n getBundleStateField(orchidData),\n getLimitAllocatedField('Memory allocated/limit', allocMemory, allMemory, 'Bytes'),\n getLimitAllocatedField('vCPU allocated/limit', allocVCPU, allVCPU, 'vCores'),\n );\n }\n\n if (typeof bundleControllerConfig.rpc_proxy_count !== 'undefined') {\n const {\n rpc_proxy_count: count,\n rpc_proxy_resource_guarantee: {memory, vcpu},\n } = bundleControllerConfig;\n\n bundleGroup.push(getRpcNodeField('RPC proxies', count, memory, vcpu));\n }\n\n if (typeof bundleControllerConfig.tablet_node_count !== 'undefined') {\n const {\n tablet_node_count: count,\n tablet_node_resource_guarantee: {memory, vcpu},\n } = bundleControllerConfig;\n bundleGroup.push(getRpcNodeField('Tablet nodes', count, memory, vcpu));\n }\n\n if (bundleControllerConfig.memory_limits) {\n const {memory} = bundleControllerConfig?.tablet_node_resource_guarantee || {};\n bundleGroup.push(\n BundleMetaResourceProgress('Memory allocation', {\n data: bundleControllerConfig.memory_limits,\n resourceType: 'Bytes',\n limit: memory,\n }),\n );\n }\n\n if (bundleControllerConfig.cpu_limits) {\n bundleGroup.push(\n BundleMetaResourceProgress('vCPU allocation', {\n data: bundleControllerConfig.cpu_limits,\n resourceType: 'Number',\n postfix: 'threads',\n }),\n );\n }\n\n return (\n <MetaTable className={block()} subTitles={['Bundle configuration']} items={[bundleGroup]} />\n );\n}\n\nfunction getLimitAllocatedField(\n title: string,\n allocated: number,\n all: number,\n type: 'Bytes' | 'vCores',\n) {\n const allStr = hammer.format[type](all);\n const allocatedStr = hammer.format[type](allocated);\n const percentage = hammer.format['Number']((allocated / all) * 100 || 0);\n\n return {\n key: title,\n value: (\n <span>\n {printUsageLimit(allocatedStr, allStr)}\n <span className={block('percentage')}>{percentage}%</span>\n </span>\n ),\n };\n}\n\nfunction getRpcNodeField(title: string, count: number, memory: number, vcpu: number) {\n const printMemory = hammer.format['Bytes'](memory);\n const printVCPU = hammer.format['vCores'](vcpu);\n return {\n key: title,\n value: count ? `${count} x (${printMemory}, ${printVCPU})` : 0,\n };\n}\n\nfunction getState(alerts?: OrchidBundlesData['alerts'], totalCounts = 0) {\n if (!alerts?.length && totalCounts === 0) {\n return 'good' as const;\n } else if (!alerts?.length && totalCounts > 0) {\n return 'changing' as const;\n }\n return 'failed' as const;\n}\n\nexport function getBundleStateData(orchidData: OrchidBundlesData) {\n const alerts = orchidData.alerts;\n const detailsEntries = _.entries(_.pick(orchidData, DETAILS_KEYS));\n const totalCounts = _.reduce(detailsEntries, (acc, [_k, v]) => acc + v, 0);\n const state = getState(alerts, totalCounts);\n return {state, detailsEntries};\n}\n\nfunction getBundleStateField(orchidData: OrchidBundlesData) {\n const {alerts} = orchidData;\n\n const {state: value, detailsEntries} = getBundleStateData(orchidData);\n if (value === 'good') {\n return {\n key: 'State',\n value: <Health className={block('health', {value})} value={value} />,\n };\n }\n\n if (value === 'changing') {\n return {\n key: 'State',\n value: (\n <Tooltip content={renderDetails(detailsEntries)} placement={'bottom'}>\n <Health className={block('health', {value})} value={value} />\n </Tooltip>\n ),\n };\n }\n\n return {\n key: 'State',\n value: (\n <Tooltip content={renderErrors(alerts)} placement={'bottom'}>\n <Health className={block('health', {value})} value={value} />\n </Tooltip>\n ),\n };\n}\n\nfunction renderDetails(details: Array<[string, number]>) {\n const list = details.map(([k, v]) => `${k} - ${v}`);\n return (\n <ul className={block('tooltip-list')}>\n {list.map((text, i) => {\n return (\n <li key={i} className={block('tooltip-item')}>\n {text}\n </li>\n );\n })}\n </ul>\n );\n}\n\nfunction renderErrors(alerts: OrchidBundlesData['alerts']) {\n return (\n <ol className={block('tooltip-list', {alerts: true})}>\n {alerts.map((alert) => {\n return (\n <li key={alert.id} className={block('tooltip-item')}>\n {alert.id} - {alert.description}\n </li>\n );\n })}\n </ol>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_bemCnLite","_reactRedux","_hammer","_tablet_cell_bundles","_tabletCellBundleEditor","_Icon","_MetaTable","_BundleMetaResourceProgress","_BundleGeneralMeta","_Tooltip","_utils","_useUpdater","_rumWrapApi","_utils2","_jsxRuntime","obj","__esModule","default","block","cn","DETAILS_KEYS","ActiveAccountBundleControllerUpdater","dispatch","useDispatch","_ref","useSelector","getTabletsActiveBundleData","activeBundle","bundle","enable_bundle_controller","fetchFn","React","useCallback","fetchTabletCellBundleEditor","useUpdater","prevBundleControllerState","useRef","checkBundleControllerState","_asyncToGenerator","_regeneratorRuntime","mark","_callee","requests","_yield$wrapApiPromise","_yield$wrapApiPromise2","_yield$wrapApiPromise3","_yield$wrapApiPromise4","alerts","rest","inProgressCount","state","wrap","_callee$","_context","prev","next","abrupt","command","parameters","path","concat","_toConsumableArray","_map","attr","wrapApiPromiseByToaster","ytApiV3Id","executeBatch","YTApiId","tabletBundleControllerState","toasterName","skipSuccessToast","errorContent","sent","_toArray","output","slice","_reduce","acc","_ref3","getState","current","stop","timeout","BundleConfigurationMeta","_ref4","bundleControllerConfig","bundle_controller_target_config","orchidData","getActiveBundleControllerData","bundleGroup","resource_quota","resource_allocated","allMemory","memory","allVCPU","vcpu","allocMemory","allocVCPU","push","getBundleStateField","getLimitAllocatedField","rpc_proxy_count","count","_bundleControllerConf","rpc_proxy_resource_guarantee","getRpcNodeField","tablet_node_count","_count","_bundleControllerConf2","tablet_node_resource_guarantee","_memory","_vcpu","memory_limits","_ref5","_memory2","BundleMetaResourceProgress","data","resourceType","limit","cpu_limits","postfix","_jsx","MetaTable","className","subTitles","items","title","allocated","all","type","allStr","hammer","format","allocatedStr","percentage","key","value","_jsxs","children","printUsageLimit","printMemory","printVCPU","totalCounts","arguments","length","undefined","getBundleStateData","detailsEntries","_entries","_pick","_ref6","_ref7","_slicedToArray","_k","v","_getBundleStateData","Health","Tooltip","content","renderDetails","placement","Icon","awesome","renderErrors","details","list","map","_ref8","_ref9","k","text","i","alert","id","description"],"sources":["BundleConfigurationMeta.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'bem-cn-lite';\nimport {useDispatch, useSelector} from 'react-redux';\nimport _ from 'lodash';\n\nimport hammer from '../../../common/hammer';\n\nimport {\n getActiveBundleControllerData,\n getTabletsActiveBundleData,\n} from '../../../store/selectors/tablet_cell_bundles';\nimport {fetchTabletCellBundleEditor} from '../../../store/actions/tablet_cell_bundles/tablet-cell-bundle-editor';\nimport {OrchidBundlesData} from '../../../store/reducers/tablet_cell_bundles';\nimport Icon from '../../../components/Icon/Icon';\nimport MetaTable, {MetaTableItem} from '../../../components/MetaTable/MetaTable';\nimport {BundleMetaResourceProgress} from '../../../components/BundleMetaResourceProgress/BundleMetaResourceProgress';\nimport {Health} from './BundleGeneralMeta';\nimport {Tooltip} from '../../../components/Tooltip/Tooltip';\nimport {printUsageLimit} from '../../../utils';\nimport {useUpdater} from '../../../hooks/use-updater';\nimport {YTApiId, ytApiV3Id} from '../../../rum/rum-wrap-api';\nimport {wrapApiPromiseByToaster} from '../../../utils/utils';\nimport {BatchSubRequest} from '../../../../shared/yt-types';\n\nimport './BundleConfigurationMeta.scss';\n\nconst block = cn('bundle-configuration-meta');\n\nconst DETAILS_KEYS = [\n 'allocating_rpc_proxy_count',\n 'allocating_tablet_node_count',\n 'deallocating_rpc_proxy_count',\n 'deallocating_tablet_node_count',\n 'removing_cell_count',\n] as const;\n\nexport function ActiveAccountBundleControllerUpdater() {\n const dispatch = useDispatch();\n const {bundle: activeBundle, enable_bundle_controller} =\n useSelector(getTabletsActiveBundleData) || {};\n const fetchFn = React.useCallback(() => {\n if (activeBundle) {\n dispatch(fetchTabletCellBundleEditor(activeBundle));\n }\n }, [dispatch, activeBundle]);\n useUpdater(fetchFn);\n\n const prevBundleControllerState = React.useRef<null | 'failed' | 'changing' | 'good'>(null);\n const checkBundleControllerState = React.useCallback(async () => {\n if (!activeBundle || !enable_bundle_controller) {\n return;\n }\n\n const requests: Array<BatchSubRequest> = [\n {\n command: 'get',\n parameters: {\n path: `//sys/bundle_controller/orchid/bundle_controller/state/bundles/${activeBundle}/alerts`,\n },\n },\n ..._.map(DETAILS_KEYS, (attr) => {\n return {\n command: 'get' as const,\n parameters: {\n path: `//sys/bundle_controller/orchid/bundle_controller/state/bundles/${activeBundle}/${attr}`,\n },\n };\n }),\n ];\n\n const [{output: alerts} = {output: []}, ...rest] = await wrapApiPromiseByToaster(\n ytApiV3Id.executeBatch(YTApiId.tabletBundleControllerState, {requests}),\n {\n toasterName: 'active-bundle-controller-status',\n skipSuccessToast: true,\n errorContent: `Cannot load bundle controller details for \"${activeBundle}\".`,\n },\n ).catch(() => []);\n\n const inProgressCount = _.reduce(\n rest,\n (acc, {output}) => {\n return acc + (output ?? 0);\n },\n 0,\n );\n\n const state = getState(alerts, inProgressCount);\n if (prevBundleControllerState.current === null) {\n prevBundleControllerState.current = state;\n return;\n }\n\n if (prevBundleControllerState.current !== state) {\n prevBundleControllerState.current = state;\n fetchFn();\n }\n }, [fetchFn, activeBundle, enable_bundle_controller]);\n useUpdater(checkBundleControllerState, {timeout: 3000});\n\n return null;\n}\n\nexport default function BundleConfigurationMeta() {\n const {bundle_controller_target_config: bundleControllerConfig} =\n useSelector(getTabletsActiveBundleData) || {};\n const orchidData = useSelector(getActiveBundleControllerData);\n\n if (!bundleControllerConfig || !orchidData) {\n return null;\n }\n\n const bundleGroup: Array<MetaTableItem> = [];\n\n if (orchidData) {\n const {resource_quota, resource_allocated} = orchidData;\n const {memory: allMemory, vcpu: allVCPU} = resource_quota;\n const {memory: allocMemory, vcpu: allocVCPU} = resource_allocated;\n\n bundleGroup.push(\n getBundleStateField(orchidData),\n getLimitAllocatedField('Memory allocated/limit', allocMemory, allMemory, 'Bytes'),\n getLimitAllocatedField('vCPU allocated/limit', allocVCPU, allVCPU, 'vCores'),\n );\n }\n\n if (typeof bundleControllerConfig.rpc_proxy_count !== 'undefined') {\n const {\n rpc_proxy_count: count,\n rpc_proxy_resource_guarantee: {memory, vcpu},\n } = bundleControllerConfig;\n\n bundleGroup.push(getRpcNodeField('RPC proxies', count, memory, vcpu));\n }\n\n if (typeof bundleControllerConfig.tablet_node_count !== 'undefined') {\n const {\n tablet_node_count: count,\n tablet_node_resource_guarantee: {memory, vcpu},\n } = bundleControllerConfig;\n bundleGroup.push(getRpcNodeField('Tablet nodes', count, memory, vcpu));\n }\n\n if (bundleControllerConfig.memory_limits) {\n const {memory} = bundleControllerConfig?.tablet_node_resource_guarantee || {};\n bundleGroup.push(\n BundleMetaResourceProgress('Memory allocation', {\n data: bundleControllerConfig.memory_limits,\n resourceType: 'Bytes',\n limit: memory,\n }),\n );\n }\n\n if (bundleControllerConfig.cpu_limits) {\n bundleGroup.push(\n BundleMetaResourceProgress('vCPU allocation', {\n data: bundleControllerConfig.cpu_limits,\n resourceType: 'Number',\n postfix: 'threads',\n }),\n );\n }\n\n return (\n <MetaTable className={block()} subTitles={['Bundle configuration']} items={[bundleGroup]} />\n );\n}\n\nfunction getLimitAllocatedField(\n title: string,\n allocated: number,\n all: number,\n type: 'Bytes' | 'vCores',\n) {\n const allStr = hammer.format[type](all);\n const allocatedStr = hammer.format[type](allocated);\n const percentage = hammer.format['Number']((allocated / all) * 100 || 0);\n\n return {\n key: title,\n value: (\n <span>\n {printUsageLimit(allocatedStr, allStr)}\n <span className={block('percentage')}>{percentage}%</span>\n </span>\n ),\n };\n}\n\nfunction getRpcNodeField(title: string, count: number, memory: number, vcpu: number) {\n const printMemory = hammer.format['Bytes'](memory);\n const printVCPU = hammer.format['vCores'](vcpu);\n return {\n key: title,\n value: count ? `${count} x (${printMemory}, ${printVCPU})` : 0,\n };\n}\n\nfunction getState(alerts?: OrchidBundlesData['alerts'], totalCounts = 0) {\n if (!alerts?.length && totalCounts === 0) {\n return 'good' as const;\n } else if (!alerts?.length && totalCounts > 0) {\n return 'changing' as const;\n }\n return 'failed' as const;\n}\n\nexport function getBundleStateData(orchidData: OrchidBundlesData) {\n const alerts = orchidData.alerts;\n const detailsEntries = _.entries(_.pick(orchidData, DETAILS_KEYS));\n const totalCounts = _.reduce(detailsEntries, (acc, [_k, v]) => acc + v, 0);\n const state = getState(alerts, totalCounts);\n return {state, detailsEntries};\n}\n\nfunction getBundleStateField(orchidData: OrchidBundlesData) {\n const {alerts} = orchidData;\n\n const {state: value, detailsEntries} = getBundleStateData(orchidData);\n if (value === 'good') {\n return {\n key: 'State',\n value: <Health className={block('health', {value})} value={value} />,\n };\n }\n\n if (value === 'changing') {\n return {\n key: 'State',\n value: (\n <Tooltip\n content={renderDetails(detailsEntries)}\n placement={'bottom'}\n className={block('state-with-icon')}\n >\n <Health className={block('health', {value})} value={value} />\n &nbsp;\n <Icon awesome=\"question-circle\" />\n </Tooltip>\n ),\n };\n }\n\n return {\n key: 'State',\n value: (\n <Tooltip\n content={renderErrors(alerts)}\n placement={'bottom'}\n className={block('state-with-icon')}\n >\n <Health className={block('health', {value})} value={value} />\n &nbsp;\n <Icon awesome=\"exclamation-triangle\" />\n </Tooltip>\n ),\n };\n}\n\nfunction renderDetails(details: Array<[string, number]>) {\n const list = details.map(([k, v]) => `${k} - ${v}`);\n return (\n <ul className={block('tooltip-list')}>\n {list.map((text, i) => {\n return (\n <li key={i} className={block('tooltip-item')}>\n {text}\n </li>\n );\n })}\n </ul>\n );\n}\n\nfunction renderErrors(alerts: OrchidBundlesData['alerts']) {\n return (\n <ol className={block('tooltip-list', {alerts: true})}>\n {alerts.map((alert) => {\n return (\n <li key={alert.id} className={block('tooltip-item')}>\n {alert.id} - {alert.description}\n </li>\n );\n })}\n </ol>\n );\n}\n"],"mappings":"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"}
@@ -17,7 +17,4 @@
17
17
  .bundle-editor__dialog .df-dialog__field-group_type_bundle-title .df-dialog__label-text {
18
18
  font-weight: 700;
19
19
  }
20
- .bundle-editor__info {
21
- margin-bottom: var(--g-text-subheader-3-line-height);
22
- }
23
20
  /*# sourceMappingURL=BundleEditorDialog.css.map */
@@ -1 +1 @@
1
- {"version":3,"sources":["BundleEditorDialog.scss"],"names":[],"mappings":"AAEQ;EACI,YAAA;AADZ;AAIQ;EACI,gBAAA;AAFZ;AAKQ;EACI,gBAAA;EACA,kBAAA;AAHZ;AAMQ;EACI,SAAA;AAJZ;AAOQ;EACI,gBAAA;AALZ;AASY;EACI,gBAAA;AAPhB;AAYI;EACI,oDAAA;AAVR","file":"BundleEditorDialog.css","sourcesContent":[".bundle-editor {\n &__dialog {\n .df-dialog_with_vertical_tabs {\n height: 60vh;\n }\n\n .yc-list__item_selected {\n background: none;\n }\n\n .df-dialog__tabs-content {\n overflow-y: auto;\n overflow-x: hidden;\n }\n\n .yc-dialog-divider {\n margin: 0;\n }\n\n .df-dialog__error-message {\n white-space: pre;\n }\n\n .df-dialog__field-group_type_bundle-title {\n .df-dialog__label-text {\n font-weight: 700;\n }\n }\n }\n\n &__info {\n margin-bottom: var(--g-text-subheader-3-line-height);\n }\n}\n"],"sourceRoot":""}
1
+ {"version":3,"sources":["BundleEditorDialog.scss"],"names":[],"mappings":"AAEQ;EACI,YAAA;AADZ;AAIQ;EACI,gBAAA;AAFZ;AAKQ;EACI,gBAAA;EACA,kBAAA;AAHZ;AAMQ;EACI,SAAA;AAJZ;AAOQ;EACI,gBAAA;AALZ;AASY;EACI,gBAAA;AAPhB","file":"BundleEditorDialog.css","sourcesContent":[".bundle-editor {\n &__dialog {\n .df-dialog_with_vertical_tabs {\n height: 60vh;\n }\n\n .yc-list__item_selected {\n background: none;\n }\n\n .df-dialog__tabs-content {\n overflow-y: auto;\n overflow-x: hidden;\n }\n\n .yc-dialog-divider {\n margin: 0;\n }\n\n .df-dialog__error-message {\n white-space: pre;\n }\n\n .df-dialog__field-group_type_bundle-title {\n .df-dialog__label-text {\n font-weight: 700;\n }\n }\n }\n}\n"],"sourceRoot":""}
@@ -20,7 +20,6 @@ export interface BundleEditorDialogFormValues {
20
20
  tablet_static_memory?: number;
21
21
  };
22
22
  memory_limits: {
23
- error?: boolean;
24
23
  memory_reset: boolean;
25
24
  reserved?: number;
26
25
  tablet_static?: number;
@@ -4,10 +4,8 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.BundleEditorDialog = BundleEditorDialog;
7
- var _isEmpty2 = _interopRequireDefault(require("lodash/isEmpty"));
8
7
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
8
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
10
- var _get2 = _interopRequireDefault(require("lodash/get"));
11
9
  var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
12
10
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
13
11
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
@@ -15,6 +13,7 @@ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"))
15
13
  var _react = _interopRequireDefault(require("react"));
16
14
  var _reactRedux = require("react-redux");
17
15
  var _bemCnLite = _interopRequireDefault(require("bem-cn-lite"));
16
+ var _isEmpty = _interopRequireDefault(require("lodash/isEmpty"));
18
17
  var _Info = require("../../../../components/Info/Info");
19
18
  var _BundleParamsList = require("./components/BundleParamsList/BundleParamsList");
20
19
  var _Dialog = require("../../../../components/Dialog/Dialog");
@@ -115,6 +114,7 @@ function BundleEditorDialog() {
115
114
  name: 'info',
116
115
  type: 'block',
117
116
  fullWidth: true,
117
+ touched: true,
118
118
  extras: {
119
119
  children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Info.Info, {
120
120
  className: block('info'),
@@ -253,6 +253,7 @@ function BundleEditorDialog() {
253
253
  name: 'memory_reset',
254
254
  type: 'bundle-title',
255
255
  caption: 'Memory',
256
+ touched: true,
256
257
  extras: function extras(allValues, _ref4) {
257
258
  var _allValues$resources;
258
259
  var form = _ref4.form;
@@ -355,31 +356,6 @@ function BundleEditorDialog() {
355
356
  hasClear: true
356
357
  },
357
358
  validator: _bundleEditorDialog.simpleBundleValidate
358
- }, {
359
- type: 'block',
360
- name: 'error',
361
- validator: function validator(v) {
362
- return v ? v : undefined;
363
- },
364
- fullWidth: true,
365
- extras: function extras(allValues, _ref5) {
366
- var form = _ref5.form;
367
- var hasError = (0, _get2.default)(allValues, 'memory_limits.error');
368
- var errorText = validateMemoryLimits(allValues);
369
- if (errorText && !hasError) {
370
- form.change('memory_limits.error', true);
371
- } else if (!errorText && hasError) {
372
- form.change('memory_limits.error', false);
373
- }
374
- return {
375
- children: !errorText ? null : /*#__PURE__*/(0, _jsxRuntime.jsx)(_Dialog.DialogError, {
376
- header: 'Error',
377
- message: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
378
- children: errorText
379
- })
380
- })
381
- };
382
- }
383
359
  }]
384
360
  };
385
361
  var renderThreadPoolTab = {
@@ -397,9 +373,9 @@ function BundleEditorDialog() {
397
373
  name: 'threadPool_reset',
398
374
  type: 'bundle-title',
399
375
  caption: 'vCPU',
400
- extras: function extras(allValues, _ref6) {
376
+ extras: function extras(allValues, _ref5) {
401
377
  var _allValues$resources2;
402
- var form = _ref6.form;
378
+ var form = _ref5.form;
403
379
  var tablet_node_resource_guarantee = (_allValues$resources2 = allValues.resources) === null || _allValues$resources2 === void 0 ? void 0 : _allValues$resources2.tablet_node_resource_guarantee;
404
380
  if (!tablet_node_resource_guarantee || !tablet_node_resource_guarantee.type || !bundleDefaultConfig) {
405
381
  return {
@@ -465,7 +441,7 @@ function BundleEditorDialog() {
465
441
  dispatch((0, _tabletCellBundleEditor.hideTabletCellBundleEditor)());
466
442
  };
467
443
  var onSubmit = /*#__PURE__*/function () {
468
- var _ref7 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(form) {
444
+ var _ref6 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(form) {
469
445
  var preparedData;
470
446
  return _regenerator.default.wrap(function _callee$(_context) {
471
447
  while (1) switch (_context.prev = _context.next) {
@@ -500,10 +476,10 @@ function BundleEditorDialog() {
500
476
  }, _callee, null, [[3, 9]]);
501
477
  }));
502
478
  return function onSubmit(_x) {
503
- return _ref7.apply(this, arguments);
479
+ return _ref6.apply(this, arguments);
504
480
  };
505
481
  }();
506
- if ((0, _isEmpty2.default)(data)) {
482
+ if ((0, _isEmpty.default)(data)) {
507
483
  return null;
508
484
  }
509
485
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Dialog.YTDFDialog, {
@@ -516,24 +492,43 @@ function BundleEditorDialog() {
516
492
  visible: visibleEditor,
517
493
  onAdd: onSubmit,
518
494
  onClose: onClose,
519
- fields: fields
495
+ fields: fields,
496
+ validate: validateFormValues.bind(null, orchidData === null || orchidData === void 0 ? void 0 : orchidData.resource_quota)
520
497
  });
521
498
  }
522
- function validateMemoryLimits(values) {
523
- var _values$resources;
524
- if ((_values$resources = values.resources) !== null && _values$resources !== void 0 && _values$resources.tablet_node_resource_guarantee) {
525
- var _values$resources$tab;
526
- var memoryLimits = ((_values$resources$tab = values.resources.tablet_node_resource_guarantee) === null || _values$resources$tab === void 0 ? void 0 : _values$resources$tab.memory) || 0;
527
- var currentAccLimit = Object.values(values.memory_limits || {}).reduce(function (acc, v) {
528
- if (typeof v !== 'number') {
529
- return acc;
530
- }
531
- return acc + v;
532
- }, 0) || 0;
533
- if (currentAccLimit > memoryLimits) {
534
- return 'The sum of the memory limits exceeds the allowed values';
499
+ function validateFormValues(quota, values) {
500
+ var _tabletNode$memory, _tabletNode$vcpu, _resources$rpc_proxy_2, _resources$rpc_proxy_3, _tabletNode$memory2, _resources$rpc_proxy_4, _resources$rpc_proxy_5;
501
+ var res = {
502
+ resources: {
503
+ info: ''
504
+ },
505
+ memory_limits: {
506
+ memory_reset: ''
507
+ }
508
+ };
509
+ var resources = values.resources;
510
+ var currentAccLimit = Object.values(values.memory_limits || {}).reduce(function (acc, v) {
511
+ if (typeof v !== 'number') {
512
+ return acc;
535
513
  }
514
+ return acc + v;
515
+ }, 0);
516
+ var tabletNode = resources.tablet_node_resource_guarantee;
517
+ res.memory_limits.memory_reset = currentAccLimit > ((_tabletNode$memory = tabletNode === null || tabletNode === void 0 ? void 0 : tabletNode.memory) !== null && _tabletNode$memory !== void 0 ? _tabletNode$memory : 0) ? 'The sum of the memory limits exceeds the allowed values' : '';
518
+ var _resources$rpc_proxy_ = resources.rpc_proxy_count,
519
+ rpc_proxy_count = _resources$rpc_proxy_ === void 0 ? 0 : _resources$rpc_proxy_,
520
+ _resources$tablet_nod = resources.tablet_node_count,
521
+ tablet_node_count = _resources$tablet_nod === void 0 ? 0 : _resources$tablet_nod;
522
+ var requiredCpu = ((_tabletNode$vcpu = tabletNode === null || tabletNode === void 0 ? void 0 : tabletNode.vcpu) !== null && _tabletNode$vcpu !== void 0 ? _tabletNode$vcpu : 0) * tablet_node_count + ((_resources$rpc_proxy_2 = (_resources$rpc_proxy_3 = resources.rpc_proxy_resource_guarantee) === null || _resources$rpc_proxy_3 === void 0 ? void 0 : _resources$rpc_proxy_3.vcpu) !== null && _resources$rpc_proxy_2 !== void 0 ? _resources$rpc_proxy_2 : 0) * rpc_proxy_count;
523
+ var violatedResources = [];
524
+ if (requiredCpu > (quota === null || quota === void 0 ? void 0 : quota.vcpu)) {
525
+ violatedResources.push("".concat(_hammer.default.format.Number(requiredCpu / 1000), " cpu required"));
526
+ }
527
+ var requiredMemory = ((_tabletNode$memory2 = tabletNode === null || tabletNode === void 0 ? void 0 : tabletNode.memory) !== null && _tabletNode$memory2 !== void 0 ? _tabletNode$memory2 : 0) * tablet_node_count + ((_resources$rpc_proxy_4 = (_resources$rpc_proxy_5 = resources.rpc_proxy_resource_guarantee) === null || _resources$rpc_proxy_5 === void 0 ? void 0 : _resources$rpc_proxy_5.memory) !== null && _resources$rpc_proxy_4 !== void 0 ? _resources$rpc_proxy_4 : 0) * rpc_proxy_count;
528
+ if (requiredMemory > (quota === null || quota === void 0 ? void 0 : quota.memory)) {
529
+ violatedResources.push("".concat(_hammer.default.format.Bytes(requiredMemory), " memory requried"));
536
530
  }
537
- return '';
531
+ res.resources.info = violatedResources.length ? violatedResources.join(', ') : '';
532
+ return res;
538
533
  }
539
534
  // #sourceMappingURL=BundleEditorDialog.js.map