@ytsaurus/ui 1.8.0 → 1.10.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.
- package/README.md +0 -1
- package/build/cjs/shared/constants/settings-types.d.ts +7 -1
- package/build/cjs/shared/constants/settings-types.js.map +1 -1
- package/build/cjs/shared/constants/settings.d.ts +1 -0
- package/build/cjs/shared/constants/settings.js +1 -0
- package/build/cjs/shared/constants/settings.js.map +1 -1
- package/build/cjs/ui/components/Icon/Icon.d.ts +1 -0
- package/build/cjs/ui/components/Icon/importGravityIcons.d.ts +1 -0
- package/build/cjs/ui/components/Icon/importGravityIcons.js +18 -1
- package/build/cjs/ui/components/Icon/importGravityIcons.js.map +1 -1
- package/build/cjs/ui/containers/SettingsMenu/SettingsMenuItem.d.ts +2 -0
- package/build/cjs/ui/containers/SettingsMenu/SettingsMenuItem.js +10 -4
- package/build/cjs/ui/containers/SettingsMenu/SettingsMenuItem.js.map +1 -1
- package/build/cjs/ui/containers/SettingsPanel/settings-description.js +1 -2
- package/build/cjs/ui/containers/SettingsPanel/settings-description.js.map +1 -1
- package/build/cjs/ui/hooks/use-prevent-unload.d.ts +3 -0
- package/build/cjs/ui/hooks/use-prevent-unload.js +25 -0
- package/build/cjs/ui/hooks/use-prevent-unload.js.map +1 -0
- package/build/cjs/ui/pages/components/tabs/node/NodeLocations/NodeLocations.js +27 -13
- package/build/cjs/ui/pages/components/tabs/node/NodeLocations/NodeLocations.js.map +1 -1
- package/build/cjs/ui/pages/components/tabs/nodes/NodeCard/NodeCard.d.ts +1 -0
- package/build/cjs/ui/pages/components/tabs/nodes/NodeCard/NodeCard.js +12 -1
- package/build/cjs/ui/pages/components/tabs/nodes/NodeCard/NodeCard.js.map +1 -1
- package/build/cjs/ui/pages/query-tracker/QueriesListSidebarToggleButton/QueriesListSidebarToggleButton.d.ts +2 -0
- package/build/cjs/ui/pages/query-tracker/QueriesListSidebarToggleButton/QueriesListSidebarToggleButton.js +28 -0
- package/build/cjs/ui/pages/query-tracker/QueriesListSidebarToggleButton/QueriesListSidebarToggleButton.js.map +1 -0
- package/build/cjs/ui/pages/query-tracker/QueryEditor/QueryEditor.d.ts +1 -7
- package/build/cjs/ui/pages/query-tracker/QueryEditor/QueryEditor.js +4 -34
- package/build/cjs/ui/pages/query-tracker/QueryEditor/QueryEditor.js.map +1 -1
- package/build/cjs/ui/pages/query-tracker/QueryResults/hooks/useQueryResultTabs.js +5 -3
- package/build/cjs/ui/pages/query-tracker/QueryResults/hooks/useQueryResultTabs.js.map +1 -1
- package/build/cjs/ui/pages/query-tracker/QueryTracker/QueryTracker.js +11 -11
- package/build/cjs/ui/pages/query-tracker/QueryTracker/QueryTracker.js.map +1 -1
- package/build/cjs/ui/pages/query-tracker/QueryTrackerTopRow/index.js +3 -2
- package/build/cjs/ui/pages/query-tracker/QueryTrackerTopRow/index.js.map +1 -1
- package/build/cjs/ui/pages/query-tracker/hooks/QueriesList/index.d.ts +4 -0
- package/build/cjs/ui/pages/query-tracker/hooks/QueriesList/index.js +14 -1
- package/build/cjs/ui/pages/query-tracker/hooks/QueriesList/index.js.map +1 -1
- package/build/cjs/ui/pages/query-tracker/module/query/actions.d.ts +1 -1
- package/build/cjs/ui/pages/query-tracker/module/query/actions.js.map +1 -1
- package/build/cjs/ui/pages/query-tracker/module/query/reducer.d.ts +1 -0
- package/build/cjs/ui/pages/query-tracker/module/query/reducer.js +6 -1
- package/build/cjs/ui/pages/query-tracker/module/query/reducer.js.map +1 -1
- package/build/cjs/ui/pages/query-tracker/module/query/selectors.d.ts +1 -0
- package/build/cjs/ui/pages/query-tracker/module/query/selectors.js +4 -1
- package/build/cjs/ui/pages/query-tracker/module/query/selectors.js.map +1 -1
- package/build/cjs/ui/pages/query-tracker/module/settings/selector.d.ts +839 -0
- package/build/cjs/ui/pages/query-tracker/module/settings/selector.js +12 -0
- package/build/cjs/ui/pages/query-tracker/module/settings/selector.js.map +1 -0
- package/build/cjs/ui/store/actions/settings/index.d.ts +3 -2
- package/build/cjs/ui/store/actions/settings/index.js +8 -2
- package/build/cjs/ui/store/actions/settings/index.js.map +1 -1
- package/build/cjs/ui/store/reducers/global/cluster-ui-config.d.ts +0 -1
- package/build/cjs/ui/store/reducers/global/cluster-ui-config.js.map +1 -1
- package/build/cjs/ui/store/selectors/global/index.d.ts +0 -840
- package/build/cjs/ui/store/selectors/global/index.js +2 -8
- package/build/cjs/ui/store/selectors/global/index.js.map +1 -1
- package/build/cjs/ui/store/selectors/navigation/content/table.d.ts +1 -1
- package/build/cjs/ui/store/selectors/navigation/content/table.js +2 -3
- package/build/cjs/ui/store/selectors/navigation/content/table.js.map +1 -1
- package/build/cjs/ui/store/selectors/settings-base.d.ts +3 -0
- package/build/cjs/ui/store/selectors/settings-base.js +10 -0
- package/build/cjs/ui/store/selectors/settings-base.js.map +1 -0
- package/build/esm/shared/constants/settings-types.d.ts +7 -1
- package/build/esm/shared/constants/settings-types.js.map +1 -1
- package/build/esm/shared/constants/settings.d.ts +1 -0
- package/build/esm/shared/constants/settings.js +2 -1
- package/build/esm/shared/constants/settings.js.map +1 -1
- package/build/esm/ui/components/Icon/Icon.d.ts +1 -0
- package/build/esm/ui/components/Icon/importGravityIcons.d.ts +1 -0
- package/build/esm/ui/components/Icon/importGravityIcons.js +18 -1
- package/build/esm/ui/components/Icon/importGravityIcons.js.map +1 -1
- package/build/esm/ui/containers/SettingsMenu/SettingsMenuItem.d.ts +2 -0
- package/build/esm/ui/containers/SettingsMenu/SettingsMenuItem.js +11 -5
- package/build/esm/ui/containers/SettingsMenu/SettingsMenuItem.js.map +1 -1
- package/build/esm/ui/containers/SettingsPanel/settings-description.js +2 -3
- package/build/esm/ui/containers/SettingsPanel/settings-description.js.map +1 -1
- package/build/esm/ui/hooks/use-prevent-unload.d.ts +3 -0
- package/build/esm/ui/hooks/use-prevent-unload.js +19 -0
- package/build/esm/ui/hooks/use-prevent-unload.js.map +1 -0
- package/build/esm/ui/pages/components/tabs/node/NodeLocations/NodeLocations.js +28 -13
- package/build/esm/ui/pages/components/tabs/node/NodeLocations/NodeLocations.js.map +1 -1
- package/build/esm/ui/pages/components/tabs/nodes/NodeCard/NodeCard.d.ts +1 -0
- package/build/esm/ui/pages/components/tabs/nodes/NodeCard/NodeCard.js +12 -1
- package/build/esm/ui/pages/components/tabs/nodes/NodeCard/NodeCard.js.map +1 -1
- package/build/esm/ui/pages/query-tracker/QueriesListSidebarToggleButton/QueriesListSidebarToggleButton.d.ts +2 -0
- package/build/esm/ui/pages/query-tracker/QueriesListSidebarToggleButton/QueriesListSidebarToggleButton.js +21 -0
- package/build/esm/ui/pages/query-tracker/QueriesListSidebarToggleButton/QueriesListSidebarToggleButton.js.map +1 -0
- package/build/esm/ui/pages/query-tracker/QueryEditor/QueryEditor.d.ts +1 -7
- package/build/esm/ui/pages/query-tracker/QueryEditor/QueryEditor.js +4 -34
- package/build/esm/ui/pages/query-tracker/QueryEditor/QueryEditor.js.map +1 -1
- package/build/esm/ui/pages/query-tracker/QueryResults/hooks/useQueryResultTabs.js +5 -3
- package/build/esm/ui/pages/query-tracker/QueryResults/hooks/useQueryResultTabs.js.map +1 -1
- package/build/esm/ui/pages/query-tracker/QueryTracker/QueryTracker.js +11 -11
- package/build/esm/ui/pages/query-tracker/QueryTracker/QueryTracker.js.map +1 -1
- package/build/esm/ui/pages/query-tracker/QueryTrackerTopRow/index.js +4 -2
- package/build/esm/ui/pages/query-tracker/QueryTrackerTopRow/index.js.map +1 -1
- package/build/esm/ui/pages/query-tracker/hooks/QueriesList/index.d.ts +4 -0
- package/build/esm/ui/pages/query-tracker/hooks/QueriesList/index.js +13 -0
- package/build/esm/ui/pages/query-tracker/hooks/QueriesList/index.js.map +1 -1
- package/build/esm/ui/pages/query-tracker/module/query/actions.d.ts +1 -1
- package/build/esm/ui/pages/query-tracker/module/query/actions.js.map +1 -1
- package/build/esm/ui/pages/query-tracker/module/query/reducer.d.ts +1 -0
- package/build/esm/ui/pages/query-tracker/module/query/reducer.js +6 -1
- package/build/esm/ui/pages/query-tracker/module/query/reducer.js.map +1 -1
- package/build/esm/ui/pages/query-tracker/module/query/selectors.d.ts +1 -0
- package/build/esm/ui/pages/query-tracker/module/query/selectors.js +3 -0
- package/build/esm/ui/pages/query-tracker/module/query/selectors.js.map +1 -1
- package/build/esm/ui/pages/query-tracker/module/settings/selector.d.ts +839 -0
- package/build/esm/ui/pages/query-tracker/module/settings/selector.js +6 -0
- package/build/esm/ui/pages/query-tracker/module/settings/selector.js.map +1 -0
- package/build/esm/ui/store/actions/settings/index.d.ts +3 -2
- package/build/esm/ui/store/actions/settings/index.js +7 -2
- package/build/esm/ui/store/actions/settings/index.js.map +1 -1
- package/build/esm/ui/store/reducers/global/cluster-ui-config.d.ts +0 -1
- package/build/esm/ui/store/reducers/global/cluster-ui-config.js.map +1 -1
- package/build/esm/ui/store/selectors/global/index.d.ts +0 -840
- package/build/esm/ui/store/selectors/global/index.js +0 -6
- package/build/esm/ui/store/selectors/global/index.js.map +1 -1
- package/build/esm/ui/store/selectors/navigation/content/table.d.ts +1 -1
- package/build/esm/ui/store/selectors/navigation/content/table.js +2 -3
- package/build/esm/ui/store/selectors/navigation/content/table.js.map +1 -1
- package/build/esm/ui/store/selectors/settings-base.d.ts +3 -0
- package/build/esm/ui/store/selectors/settings-base.js +4 -0
- package/build/esm/ui/store/selectors/settings-base.js.map +1 -0
- package/dist/public/build/assets-manifest.json +22 -22
- package/dist/public/build/css/{225.b92ccff1.chunk.css → 150.81172525.chunk.css} +1 -1
- package/dist/public/build/css/{225.b92ccff1.chunk.css.map → 150.81172525.chunk.css.map} +1 -1
- package/dist/public/build/css/{622.fd3f4ea8.chunk.css → 869.8f91d9da.chunk.css} +1 -1
- package/dist/public/build/css/{622.fd3f4ea8.chunk.css.map → 869.8f91d9da.chunk.css.map} +1 -1
- package/dist/public/build/css/{315.6f50c50a.chunk.css → 934.adfa96ce.chunk.css} +1 -1
- package/dist/public/build/css/{315.6f50c50a.chunk.css.map → 934.adfa96ce.chunk.css.map} +1 -1
- package/dist/public/build/js/150.911decab.chunk.js +2 -0
- package/dist/public/build/js/150.911decab.chunk.js.map +1 -0
- package/dist/public/build/js/869.3cf341b5.chunk.js +3 -0
- package/dist/public/build/js/869.3cf341b5.chunk.js.map +1 -0
- package/dist/public/build/js/925.ef88f4d2.chunk.js +2 -0
- package/dist/public/build/js/{925.88573496.chunk.js.map → 925.ef88f4d2.chunk.js.map} +1 -1
- package/dist/public/build/js/934.fb5e730e.chunk.js +2 -0
- package/dist/public/build/js/934.fb5e730e.chunk.js.map +1 -0
- package/dist/public/build/js/main.ff54db3c.js +3 -0
- package/dist/public/build/js/{main.f963eaee.js.map → main.ff54db3c.js.map} +1 -1
- package/dist/public/build/js/{runtime.f4dc30b7.js → runtime.fea34b4d.js} +2 -2
- package/dist/public/build/js/{runtime.f4dc30b7.js.map → runtime.fea34b4d.js.map} +1 -1
- package/dist/public/build/manifest.json +18 -18
- package/dist/shared/constants/settings-types.d.ts +7 -1
- package/dist/shared/constants/settings.d.ts +1 -0
- package/dist/shared/constants/settings.js +1 -0
- package/package.json +2 -2
- package/dist/public/build/js/225.1200e703.chunk.js +0 -2
- package/dist/public/build/js/225.1200e703.chunk.js.map +0 -1
- package/dist/public/build/js/315.332b1ef1.chunk.js +0 -2
- package/dist/public/build/js/315.332b1ef1.chunk.js.map +0 -1
- package/dist/public/build/js/622.137ced51.chunk.js +0 -3
- package/dist/public/build/js/622.137ced51.chunk.js.map +0 -1
- package/dist/public/build/js/925.88573496.chunk.js +0 -2
- package/dist/public/build/js/main.f963eaee.js +0 -3
- /package/dist/public/build/js/{622.137ced51.chunk.js.LICENSE.txt → 869.3cf341b5.chunk.js.LICENSE.txt} +0 -0
- /package/dist/public/build/js/{main.f963eaee.js.LICENSE.txt → main.ff54db3c.js.LICENSE.txt} +0 -0
@@ -11,6 +11,7 @@ var _format = _interopRequireDefault(require("../../../../../common/hammer/forma
|
|
11
11
|
var _DataTableYT = _interopRequireDefault(require("../../../../../components/DataTableYT/DataTableYT"));
|
12
12
|
var _node = require("../../../../../store/selectors/components/node/node");
|
13
13
|
var _Label = _interopRequireDefault(require("../../../../../components/Label/Label"));
|
14
|
+
var _ClipboardButton = _interopRequireDefault(require("../../../../../components/ClipboardButton/ClipboardButton"));
|
14
15
|
var _jsxRuntime = require("react/jsx-runtime");
|
15
16
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
16
17
|
var columns = [{
|
@@ -23,36 +24,49 @@ var columns = [{
|
|
23
24
|
});
|
24
25
|
}
|
25
26
|
}, {
|
26
|
-
name: '
|
27
|
+
name: 'Uuid',
|
27
28
|
render: function render(_ref2) {
|
28
29
|
var row = _ref2.row;
|
30
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)("span", {
|
31
|
+
children: [row.location_uuid, "\xA0", /*#__PURE__*/(0, _jsxRuntime.jsx)(_ClipboardButton.default, {
|
32
|
+
view: "flat-secondary",
|
33
|
+
text: row.location_uuid,
|
34
|
+
size: "s"
|
35
|
+
})]
|
36
|
+
});
|
37
|
+
},
|
38
|
+
align: 'left'
|
39
|
+
}, {
|
40
|
+
name: 'Full',
|
41
|
+
render: function render(_ref3) {
|
42
|
+
var row = _ref3.row;
|
29
43
|
return Boolean(row.full).toString();
|
30
44
|
},
|
31
45
|
align: 'center'
|
32
46
|
}, {
|
33
47
|
name: 'Medium name',
|
34
|
-
render: function render(
|
35
|
-
var row =
|
48
|
+
render: function render(_ref4) {
|
49
|
+
var row = _ref4.row;
|
36
50
|
return row.medium_name;
|
37
51
|
}
|
38
52
|
}, {
|
39
53
|
name: 'Sessions',
|
40
|
-
render: function render(
|
41
|
-
var row =
|
54
|
+
render: function render(_ref5) {
|
55
|
+
var row = _ref5.row;
|
42
56
|
return _format.default.Number(row.session_count);
|
43
57
|
},
|
44
58
|
align: 'right'
|
45
59
|
}, {
|
46
60
|
name: 'Chunks',
|
47
|
-
render: function render(
|
48
|
-
var row =
|
61
|
+
render: function render(_ref6) {
|
62
|
+
var row = _ref6.row;
|
49
63
|
return _format.default.Number(row.chunk_count);
|
50
64
|
},
|
51
65
|
align: 'right'
|
52
66
|
}, {
|
53
67
|
name: 'Used space',
|
54
|
-
render: function render(
|
55
|
-
var row =
|
68
|
+
render: function render(_ref7) {
|
69
|
+
var row = _ref7.row;
|
56
70
|
return !row.locationProgress ? _format.default.NO_VALUE : /*#__PURE__*/(0, _jsxRuntime.jsx)(_uikit.Progress, {
|
57
71
|
value: row.locationProgress,
|
58
72
|
text: row.locationText,
|
@@ -61,16 +75,16 @@ var columns = [{
|
|
61
75
|
}
|
62
76
|
}, {
|
63
77
|
name: 'Available space',
|
64
|
-
render: function render(
|
65
|
-
var row =
|
78
|
+
render: function render(_ref8) {
|
79
|
+
var row = _ref8.row;
|
66
80
|
return _format.default.Bytes(row.available_space);
|
67
81
|
},
|
68
82
|
align: 'right',
|
69
83
|
width: 200
|
70
84
|
}, {
|
71
85
|
name: 'Watermark space',
|
72
|
-
render: function render(
|
73
|
-
var row =
|
86
|
+
render: function render(_ref9) {
|
87
|
+
var row = _ref9.row;
|
74
88
|
return _format.default.Bytes(row.low_watermark_space);
|
75
89
|
},
|
76
90
|
align: 'right',
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_reactRedux","_uikit","_format","_DataTableYT","_node","_Label","_jsxRuntime","obj","__esModule","default","columns","name","render","_ref","row","_jsx","Label","theme","enabled","children","_ref2","
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_reactRedux","_uikit","_format","_DataTableYT","_node","_Label","_ClipboardButton","_jsxRuntime","obj","__esModule","default","columns","name","render","_ref","row","_jsx","Label","theme","enabled","children","_ref2","_jsxs","location_uuid","ClipboardButton","view","text","size","align","_ref3","Boolean","full","toString","_ref4","medium_name","_ref5","format","Number","session_count","_ref6","chunk_count","_ref7","locationProgress","NO_VALUE","Progress","value","locationText","_ref8","Bytes","available_space","width","_ref9","low_watermark_space","NodeLocations","_useSelector","useSelector","nodeSelector","node","locations","length","DataTableYT","data","startIndex","useThemeYT","settings","sortable","_default","exports","React","memo"],"sources":["NodeLocations.tsx"],"sourcesContent":["import React from 'react';\nimport {useSelector} from 'react-redux';\n\nimport type {Column} from '@gravity-ui/react-data-table';\nimport {Progress} from '@gravity-ui/uikit';\n\nimport format from '../../../../../common/hammer/format';\nimport DataTableYT from '../../../../../components/DataTableYT/DataTableYT';\nimport {nodeSelector} from '../../../../../store/selectors/components/node/node';\nimport Label from '../../../../../components/Label/Label';\nimport ClipboardButton from '../../../../../components/ClipboardButton/ClipboardButton';\n\ninterface LocationInfo {\n enabled?: boolean;\n full?: boolean;\n location_uuid?: string;\n medium_name?: string;\n session_count?: number;\n chunk_count?: number;\n\n locationText?: string;\n locationProgress?: number;\n\n available_space?: number;\n low_watermark_space?: number;\n}\n\nconst columns: Array<Column<LocationInfo>> = [\n {\n name: 'Enabled',\n render({row}) {\n return (\n <Label theme={row.enabled ? 'success' : 'danger'}>\n {row.enabled ? 'Enabled' : 'Disabled'}\n </Label>\n );\n },\n },\n {\n name: 'Uuid',\n render({row}) {\n return (\n <span>\n {row.location_uuid}\n \n <ClipboardButton view=\"flat-secondary\" text={row.location_uuid} size=\"s\" />\n </span>\n );\n },\n align: 'left',\n },\n {\n name: 'Full',\n render({row}) {\n return Boolean(row.full).toString();\n },\n align: 'center',\n },\n {\n name: 'Medium name',\n render({row}) {\n return row.medium_name;\n },\n },\n {\n name: 'Sessions',\n render({row}) {\n return format.Number(row.session_count);\n },\n align: 'right',\n },\n {\n name: 'Chunks',\n render({row}) {\n return format.Number(row.chunk_count);\n },\n align: 'right',\n },\n {\n name: 'Used space',\n render({row}) {\n return !row.locationProgress ? (\n format.NO_VALUE\n ) : (\n <Progress value={row.locationProgress} text={row.locationText} theme=\"success\" />\n );\n },\n },\n {\n name: 'Available space',\n render({row}) {\n return format.Bytes(row.available_space);\n },\n align: 'right',\n width: 200,\n },\n {\n name: 'Watermark space',\n render({row}) {\n return format.Bytes(row.low_watermark_space);\n },\n align: 'right',\n width: 200,\n },\n];\n\nfunction NodeLocations(): ReturnType<React.VFC> {\n const {node} = useSelector(nodeSelector);\n\n if (!(node && node.locations.length > 0)) {\n return null;\n }\n\n return (\n <DataTableYT\n columns={columns}\n data={node.locations}\n startIndex={1}\n useThemeYT\n settings={{\n sortable: false,\n }}\n />\n );\n}\n\nexport default React.memo(NodeLocations);\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AAGA,IAAAE,MAAA,GAAAF,OAAA;AAEA,IAAAG,OAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,YAAA,GAAAL,sBAAA,CAAAC,OAAA;AACA,IAAAK,KAAA,GAAAL,OAAA;AACA,IAAAM,MAAA,GAAAP,sBAAA,CAAAC,OAAA;AACA,IAAAO,gBAAA,GAAAR,sBAAA,CAAAC,OAAA;AAAwF,IAAAQ,WAAA,GAAAR,OAAA;AAAA,SAAAD,uBAAAU,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAiBxF,IAAMG,OAAoC,GAAG,CACzC;EACIC,IAAI,EAAE,SAAS;EACfC,MAAM,WAAAA,OAAAC,IAAA,EAAQ;IAAA,IAANC,GAAG,GAAAD,IAAA,CAAHC,GAAG;IACP,oBACI,IAAAC,eAAA,EAACC,cAAK;MAACC,KAAK,EAAEH,GAAG,CAACI,OAAO,GAAG,SAAS,GAAG,QAAS;MAAAC,QAAA,EAC5CL,GAAG,CAACI,OAAO,GAAG,SAAS,GAAG;IAAU,CAClC,CAAC;EAEhB;AACJ,CAAC,EACD;EACIP,IAAI,EAAE,MAAM;EACZC,MAAM,WAAAA,OAAAQ,KAAA,EAAQ;IAAA,IAANN,GAAG,GAAAM,KAAA,CAAHN,GAAG;IACP,oBACI,IAAAO,gBAAA;MAAAF,QAAA,GACKL,GAAG,CAACQ,aAAa,EAAC,MAEnB,mBAAAP,eAAA,EAACQ,wBAAe;QAACC,IAAI,EAAC,gBAAgB;QAACC,IAAI,EAAEX,GAAG,CAACQ,aAAc;QAACI,IAAI,EAAC;MAAG,CAAE,CAAC;IAAA,CACzE,CAAC;EAEf,CAAC;EACDC,KAAK,EAAE;AACX,CAAC,EACD;EACIhB,IAAI,EAAE,MAAM;EACZC,MAAM,WAAAA,OAAAgB,KAAA,EAAQ;IAAA,IAANd,GAAG,GAAAc,KAAA,CAAHd,GAAG;IACP,OAAOe,OAAO,CAACf,GAAG,CAACgB,IAAI,CAAC,CAACC,QAAQ,CAAC,CAAC;EACvC,CAAC;EACDJ,KAAK,EAAE;AACX,CAAC,EACD;EACIhB,IAAI,EAAE,aAAa;EACnBC,MAAM,WAAAA,OAAAoB,KAAA,EAAQ;IAAA,IAANlB,GAAG,GAAAkB,KAAA,CAAHlB,GAAG;IACP,OAAOA,GAAG,CAACmB,WAAW;EAC1B;AACJ,CAAC,EACD;EACItB,IAAI,EAAE,UAAU;EAChBC,MAAM,WAAAA,OAAAsB,KAAA,EAAQ;IAAA,IAANpB,GAAG,GAAAoB,KAAA,CAAHpB,GAAG;IACP,OAAOqB,eAAM,CAACC,MAAM,CAACtB,GAAG,CAACuB,aAAa,CAAC;EAC3C,CAAC;EACDV,KAAK,EAAE;AACX,CAAC,EACD;EACIhB,IAAI,EAAE,QAAQ;EACdC,MAAM,WAAAA,OAAA0B,KAAA,EAAQ;IAAA,IAANxB,GAAG,GAAAwB,KAAA,CAAHxB,GAAG;IACP,OAAOqB,eAAM,CAACC,MAAM,CAACtB,GAAG,CAACyB,WAAW,CAAC;EACzC,CAAC;EACDZ,KAAK,EAAE;AACX,CAAC,EACD;EACIhB,IAAI,EAAE,YAAY;EAClBC,MAAM,WAAAA,OAAA4B,KAAA,EAAQ;IAAA,IAAN1B,GAAG,GAAA0B,KAAA,CAAH1B,GAAG;IACP,OAAO,CAACA,GAAG,CAAC2B,gBAAgB,GACxBN,eAAM,CAACO,QAAQ,gBAEf,IAAA3B,eAAA,EAAC4B,eAAQ;MAACC,KAAK,EAAE9B,GAAG,CAAC2B,gBAAiB;MAAChB,IAAI,EAAEX,GAAG,CAAC+B,YAAa;MAAC5B,KAAK,EAAC;IAAS,CAAE,CACnF;EACL;AACJ,CAAC,EACD;EACIN,IAAI,EAAE,iBAAiB;EACvBC,MAAM,WAAAA,OAAAkC,KAAA,EAAQ;IAAA,IAANhC,GAAG,GAAAgC,KAAA,CAAHhC,GAAG;IACP,OAAOqB,eAAM,CAACY,KAAK,CAACjC,GAAG,CAACkC,eAAe,CAAC;EAC5C,CAAC;EACDrB,KAAK,EAAE,OAAO;EACdsB,KAAK,EAAE;AACX,CAAC,EACD;EACItC,IAAI,EAAE,iBAAiB;EACvBC,MAAM,WAAAA,OAAAsC,KAAA,EAAQ;IAAA,IAANpC,GAAG,GAAAoC,KAAA,CAAHpC,GAAG;IACP,OAAOqB,eAAM,CAACY,KAAK,CAACjC,GAAG,CAACqC,mBAAmB,CAAC;EAChD,CAAC;EACDxB,KAAK,EAAE,OAAO;EACdsB,KAAK,EAAE;AACX,CAAC,CACJ;AAED,SAASG,aAAaA,CAAA,EAA0B;EAC5C,IAAAC,YAAA,GAAe,IAAAC,uBAAW,EAACC,kBAAY,CAAC;IAAjCC,IAAI,GAAAH,YAAA,CAAJG,IAAI;EAEX,IAAI,EAAEA,IAAI,IAAIA,IAAI,CAACC,SAAS,CAACC,MAAM,GAAG,CAAC,CAAC,EAAE;IACtC,OAAO,IAAI;EACf;EAEA,oBACI,IAAA3C,eAAA,EAAC4C,oBAAW;IACRjD,OAAO,EAAEA,OAAQ;IACjBkD,IAAI,EAAEJ,IAAI,CAACC,SAAU;IACrBI,UAAU,EAAE,CAAE;IACdC,UAAU;IACVC,QAAQ,EAAE;MACNC,QAAQ,EAAE;IACd;EAAE,CACL,CAAC;AAEV;AAAA,IAAAC,QAAA,GAAAC,OAAA,CAAAzD,OAAA,GAEA,aAAe0D,cAAK,CAACC,IAAI,CAAChB,aAAa,CAAC"}
|
@@ -11,6 +11,7 @@ export const nodeProps: PropTypes.Requireable<PropTypes.InferProps<{
|
|
11
11
|
sick: PropTypes.Validator<boolean>;
|
12
12
|
full: PropTypes.Validator<boolean>;
|
13
13
|
medium_name: PropTypes.Validator<string>;
|
14
|
+
location_uuid: PropTypes.Validator<string>;
|
14
15
|
}> | null | undefined)[]>;
|
15
16
|
tabletSlots: PropTypes.Requireable<PropTypes.InferProps<{
|
16
17
|
byState: PropTypes.Validator<object>;
|
@@ -40,6 +40,7 @@ var _useUpdater = require("../../../../../hooks/use-updater");
|
|
40
40
|
var _withSplit = _interopRequireDefault(require("../../../../../hocs/withSplit"));
|
41
41
|
require("./NodeCard.css");
|
42
42
|
var _UIFactory = _interopRequireDefault(require("../../../../../UIFactory"));
|
43
|
+
var _ClipboardButton = _interopRequireDefault(require("../../../../../components/ClipboardButton/ClipboardButton"));
|
43
44
|
var _jsxRuntime = require("react/jsx-runtime");
|
44
45
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
45
46
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
@@ -57,7 +58,8 @@ var nodeProps = exports.nodeProps = _propTypes.default.shape({
|
|
57
58
|
enabled: _propTypes.default.bool.isRequired,
|
58
59
|
sick: _propTypes.default.bool.isRequired,
|
59
60
|
full: _propTypes.default.bool.isRequired,
|
60
|
-
medium_name: _propTypes.default.string.isRequired
|
61
|
+
medium_name: _propTypes.default.string.isRequired,
|
62
|
+
location_uuid: _propTypes.default.string.isRequired
|
61
63
|
})),
|
62
64
|
tabletSlots: _propTypes.default.shape({
|
63
65
|
byState: _propTypes.default.object.isRequired,
|
@@ -114,6 +116,15 @@ var NodeCard = /*#__PURE__*/function (_Component) {
|
|
114
116
|
className: block('location'),
|
115
117
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_MetaTable.default, {
|
116
118
|
items: [{
|
119
|
+
key: 'uuid',
|
120
|
+
value: /*#__PURE__*/(0, _jsxRuntime.jsxs)("span", {
|
121
|
+
children: [location.location_uuid, "\xA0", /*#__PURE__*/(0, _jsxRuntime.jsx)(_ClipboardButton.default, {
|
122
|
+
view: "flat-secondary",
|
123
|
+
text: location.location_uuid,
|
124
|
+
size: "s"
|
125
|
+
})]
|
126
|
+
})
|
127
|
+
}, {
|
117
128
|
key: 'location number',
|
118
129
|
value: index + 1
|
119
130
|
}, {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactRedux","_propTypes","_interopRequireDefault","_redux","_bemCnLite","_Icon","_Link","_Label","_Alert","_Button","_uikit","_MetaTable","_CollapsibleSection","_LoadDataHandler","_nodes","_node","_nodeCard","_node2","_global","_hammer","_index","_main","_NodeCpuAndMemory","_NodeResources","_NodeStorage","_NodeTabletSlots","_useUpdater","_withSplit","_UIFactory","_jsxRuntime","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","block","cn","nodeProps","exports","PropTypes","shape","locations","arrayOf","low_watermark_space","number","isRequired","available_space","session_count","chunk_count","used_space","throttling_writes","bool","throttling_reads","enabled","sick","full","medium_name","string","tabletSlots","byState","object","raw","array","host","alerts","banned","disableJobs","disableTabletCells","disableWriteSession","NodeCardUpdater","_ref","dispatch","useDispatch","updateFn","React","useCallback","loadNodeAttributes","useUpdater","timeout","onlyOnce","NodeCard","_Component","_inherits","_super","_createSuper","_classCallCheck","apply","arguments","_createClass","key","value","componentWillUnmount","props","handleClose","renderTop","clusterConfig","_this$props$node","node","physicalHost","UIFactory","renderComponentsNodeCardTop","renderLocation","location","index","_jsx","className","children","MetaTable","items","toString","hammer","format","Progress","locationProgress","text","locationText","theme","Template","FormattedValue","renderLocations","_this","CollapsibleSection","size","name","collapsed","_map","renderAlerts","length","alert","Alert","error","message","renderTabletSlots","NodeTabletSlots","renderDefault","_this$props$node2","state","systemTags","userTags","rack","_this$props$node2$ban","banMessage","decommissioned","decommissionedMessage","dataCenter","lastSeenTime","stateText","stateTheme","online","offline","tag","Label","visible","type","Boolean","renderLabel","toUpperCase","renderStorage","hasMeta","hasStorageMeta","NodeStorage","_objectSpread","renderCpuAndMemory","hasCpuAndMemoryMeta","NodeCpuAndMemory","renderResources","hasResourcesMeta","NodeResources","renderCard","_this$props","cluster","handleKeyDown","_jsxs","onKeyDown","tabIndex","Link","routed","url","concat","Page","COMPONENTS","Tab","NODES","Button","view","onClick","Icon","awesome","face","render","_this$props2","errorData","loaded","Fragment","LoadDataHandler","Component","mapStateToProps","_nodeSelector","nodeSelector","getCluster","getSortedItems","getCurrentClusterConfig","mapDispatchToProps","_default","compose","connect","withSplit"],"sources":["NodeCard.js"],"sourcesContent":["import React, {Component} from 'react';\nimport {connect, useDispatch} from 'react-redux';\nimport PropTypes from 'prop-types';\nimport {compose} from 'redux';\nimport cn from 'bem-cn-lite';\nimport _ from 'lodash';\n\nimport Icon from '../../../../../components/Icon/Icon';\nimport Link from '../../../../../components/Link/Link';\nimport Label from '../../../../../components/Label/Label';\nimport Alert from '../../../../../components/Alert/Alert';\nimport Button from '../../../../../components/Button/Button';\nimport {Progress} from '@gravity-ui/uikit';\nimport MetaTable, {Template} from '../../../../../components/MetaTable/MetaTable';\nimport CollapsibleSection from '../../../../../components/CollapsibleSection/CollapsibleSection';\nimport LoadDataHandler from '../../../../../components/LoadDataHandler/LoadDataHandler';\n\nimport {renderLabel} from '../../../../../components/templates/components/nodes/nodes';\nimport {loadNodeAttributes} from '../../../../../store/actions/components/node/node';\nimport {getSortedItems} from '../../../../../store/selectors/components/nodes/node-card';\n\nimport {nodeSelector} from '../../../../../store/selectors/components/node/node';\nimport {getCluster, getCurrentClusterConfig} from '../../../../../store/selectors/global';\nimport hammer from '../../../../../common/hammer';\nimport {Page} from '../../../../../constants/index';\nimport {Tab} from '../../../../../constants/components/main';\nimport NodeCpuAndMemory, {\n hasCpuAndMemoryMeta,\n} from '../../../../../pages/components/tabs/node/NodeCpuAndMemory/NodeCpuAndMemory';\nimport NodeResources, {\n hasResourcesMeta,\n} from '../../../../../pages/components/tabs/node/NodeResources/NodeResources';\nimport NodeStorage, {\n hasStorageMeta,\n} from '../../../../../pages/components/tabs/node/NodeStorage/NodeStorage';\nimport NodeTabletSlots from '../../../../../pages/components/tabs/node/NodeTabletSlots/NodeTabletSlots';\nimport {useUpdater} from '../../../../../hooks/use-updater';\n\nimport withSplit from '../../../../../hocs/withSplit';\n\nimport './NodeCard.scss';\nimport UIFactory from '../../../../../UIFactory';\n\nconst block = cn('node-card');\n\nexport const nodeProps = PropTypes.shape({\n locations: PropTypes.arrayOf(\n PropTypes.shape({\n low_watermark_space: PropTypes.number.isRequired,\n available_space: PropTypes.number.isRequired,\n session_count: PropTypes.number.isRequired,\n chunk_count: PropTypes.number.isRequired,\n used_space: PropTypes.number.isRequired,\n throttling_writes: PropTypes.bool.isRequired,\n throttling_reads: PropTypes.bool.isRequired,\n enabled: PropTypes.bool.isRequired,\n sick: PropTypes.bool.isRequired,\n full: PropTypes.bool.isRequired,\n medium_name: PropTypes.string.isRequired,\n }),\n ),\n tabletSlots: PropTypes.shape({\n byState: PropTypes.object.isRequired,\n raw: PropTypes.array.isRequired,\n }),\n host: PropTypes.string.isRequired,\n alerts: PropTypes.arrayOf(PropTypes.object),\n banned: PropTypes.bool.isRequired,\n disableJobs: PropTypes.bool.isRequired,\n disableTabletCells: PropTypes.bool.isRequired,\n disableWriteSession: PropTypes.bool.isRequired,\n});\n\nfunction NodeCardUpdater({host}) {\n const dispatch = useDispatch();\n\n const updateFn = React.useCallback(() => {\n dispatch(loadNodeAttributes(host));\n }, [dispatch, host]);\n\n useUpdater(updateFn, {timeout: 15 * 1000, onlyOnce: !host});\n return null;\n}\n\nclass NodeCard extends Component {\n static propTypes = {\n // from parent\n handleClose: PropTypes.func.isRequired,\n handleKeyDown: PropTypes.func,\n // from connect\n node: nodeProps,\n tabletSlots: PropTypes.array,\n loadNodeAttributes: PropTypes.func.isRequired,\n };\n\n componentWillUnmount() {\n this.props.handleClose();\n }\n\n renderTop() {\n const {clusterConfig} = this.props;\n const {physicalHost, host} = this.props.node;\n return UIFactory.renderComponentsNodeCardTop({host, physicalHost, clusterConfig});\n }\n\n renderLocation(location, index) {\n return (\n <div className={block('location')} key={index}>\n <MetaTable\n items={[\n {key: 'location number', value: index + 1},\n {key: 'enabled', value: location.enabled.toString()},\n {key: 'full', value: location.full.toString()},\n {key: 'medium name', value: location.medium_name},\n {key: 'sessions', value: location.session_count},\n {\n key: 'chunks',\n value: hammer.format['Number'](location.chunk_count),\n },\n {\n key: 'used space',\n value: (\n <Progress\n value={location.locationProgress}\n text={location.locationText}\n theme=\"success\"\n />\n ),\n },\n {\n key: 'available space',\n value: (\n <Template.FormattedValue\n value={location.available_space}\n format=\"Bytes\"\n />\n ),\n },\n {\n key: 'watermark space',\n value: (\n <Template.FormattedValue\n value={location.low_watermark_space}\n format=\"Bytes\"\n />\n ),\n },\n ]}\n />\n </div>\n );\n }\n\n renderLocations() {\n const {locations} = this.props.node;\n\n return (\n locations && (\n <CollapsibleSection\n size=\"s\"\n name=\"Locations\"\n className={block('locations')}\n collapsed\n >\n {_.map(locations, (location, index) => this.renderLocation(location, index))}\n </CollapsibleSection>\n )\n );\n }\n\n renderAlerts() {\n const {alerts} = this.props.node;\n\n return (\n alerts?.length > 0 && (\n <CollapsibleSection size=\"s\" name=\"Alerts\" className={block('alerts')} collapsed>\n {_.map(alerts, (alert) => (\n <Alert key={alert.message} error={alert} />\n ))}\n </CollapsibleSection>\n )\n );\n }\n\n renderTabletSlots() {\n const {tabletSlots} = this.props;\n\n return (\n tabletSlots.length > 0 && (\n <CollapsibleSection size=\"s\" name=\"Tablet slots\" collapsed={false}>\n <NodeTabletSlots tabletSlots={tabletSlots} />\n </CollapsibleSection>\n )\n );\n }\n\n renderDefault() {\n const {\n state,\n systemTags,\n userTags,\n rack,\n banned,\n banMessage = '',\n decommissioned,\n decommissionedMessage,\n full,\n alerts,\n dataCenter,\n lastSeenTime,\n disableJobs,\n disableTabletCells,\n disableWriteSession,\n } = this.props.node;\n\n const stateText = hammer.format['FirstUppercase'](state);\n const stateTheme = {online: 'success', offline: 'danger'}[state] || 'default';\n\n return (\n <CollapsibleSection size=\"s\" name=\"Default\" className={block('default')}>\n <MetaTable\n items={[\n {\n key: 'system tags',\n value: _.map(systemTags, (tag) => <Label key={tag} text={tag} />),\n visible: systemTags?.length > 0,\n },\n {\n key: 'user tags',\n value: _.map(userTags, (tag) => <Label key={tag} text={tag} />),\n visible: userTags?.length > 0,\n },\n {\n key: 'state',\n value: <Label theme={stateTheme} type=\"text\" text={stateText} />,\n },\n {\n key: 'rack',\n value: hammer.format['Address'](rack),\n visible: Boolean(rack),\n },\n {\n key: 'banned',\n value: <Label text={banMessage} theme=\"warning\" type=\"text\" />,\n visible: Boolean(banned),\n },\n {\n key: 'decommissioned',\n value: (\n <Label\n text={decommissionedMessage || 'Decommissioned'}\n theme=\"default\"\n type=\"text\"\n />\n ),\n visible: Boolean(decommissioned),\n },\n {\n key: 'full',\n value: <Label text=\"Full\" theme=\"danger\" type=\"text\" />,\n visible: Boolean(full),\n },\n {\n key: 'alerts',\n value: <Label text={alerts?.length || 0} theme=\"danger\" type=\"text\" />,\n visible: alerts?.length > 0,\n },\n {\n key: 'scheduler jobs',\n value: renderLabel(disableJobs),\n },\n {\n key: 'write sessions',\n value: renderLabel(disableWriteSession),\n },\n {\n key: 'tablet cells',\n value: renderLabel(disableTabletCells),\n },\n {\n key: 'data center',\n value: dataCenter?.toUpperCase(),\n visible: Boolean(dataCenter),\n },\n {\n key: 'last seen',\n value: hammer.format['DateTime'](lastSeenTime, {\n format: 'full',\n }),\n },\n ]}\n />\n </CollapsibleSection>\n );\n }\n\n renderStorage() {\n const {node} = this.props;\n const hasMeta = hasStorageMeta(node);\n\n return (\n hasMeta && (\n <CollapsibleSection size=\"s\" name=\"Storage\" className={block('storage')} collapsed>\n <NodeStorage {...node} />\n </CollapsibleSection>\n )\n );\n }\n\n renderCpuAndMemory() {\n const {node} = this.props;\n const hasMeta = hasCpuAndMemoryMeta(node);\n\n return (\n hasMeta && (\n <CollapsibleSection\n size=\"s\"\n name=\"CPU and memory\"\n className={block('cpu')}\n collapsed\n >\n <NodeCpuAndMemory {...{node}} />\n </CollapsibleSection>\n )\n );\n }\n\n renderResources() {\n const {node} = this.props;\n const hasMeta = hasResourcesMeta(node);\n\n return (\n hasMeta && (\n <CollapsibleSection\n size=\"s\"\n name=\"Resources\"\n className={block('resources')}\n collapsed\n >\n <NodeResources {...node} />\n </CollapsibleSection>\n )\n );\n }\n\n renderCard() {\n const {cluster, handleClose, handleKeyDown, node} = this.props;\n\n return (\n node && (\n <div className={block()} onKeyDown={handleKeyDown} tabIndex={-1}>\n <div className={block('header')}>\n <Link\n routed\n url={`/${cluster}/${Page.COMPONENTS}/${Tab.NODES}/${node.host}/general`}\n className={block('node')}\n >\n {node.host}\n </Link>\n\n <Button view=\"flat-secondary\" size=\"m\" onClick={handleClose}>\n <Icon awesome=\"times\" face={'light'} />\n </Button>\n </div>\n\n {this.renderTop()}\n {this.renderDefault()}\n {this.renderAlerts()}\n {this.renderLocations()}\n {this.renderTabletSlots()}\n {this.renderCpuAndMemory()}\n {this.renderStorage()}\n {this.renderResources()}\n </div>\n )\n );\n }\n\n render() {\n const {error, errorData, loaded} = this.props;\n\n return (\n <React.Fragment>\n <NodeCardUpdater host={this.props.host} />\n <LoadDataHandler loaded={loaded} error={error} errorData={errorData}>\n {this.renderCard()}\n </LoadDataHandler>\n </React.Fragment>\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n const {node, loaded, error, errorData} = nodeSelector(state);\n const cluster = getCluster(state);\n\n return {\n cluster,\n error,\n errorData,\n loaded,\n node,\n tabletSlots: node && getSortedItems(state, {node}),\n clusterConfig: getCurrentClusterConfig(state),\n };\n};\n\nconst mapDispatchToProps = {\n loadNodeAttributes,\n};\n\nexport default compose(connect(mapStateToProps, mapDispatchToProps), withSplit)(NodeCard);\n"],"mappings":"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"}
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactRedux","_propTypes","_interopRequireDefault","_redux","_bemCnLite","_Icon","_Link","_Label","_Alert","_Button","_uikit","_MetaTable","_CollapsibleSection","_LoadDataHandler","_nodes","_node","_nodeCard","_node2","_global","_hammer","_index","_main","_NodeCpuAndMemory","_NodeResources","_NodeStorage","_NodeTabletSlots","_useUpdater","_withSplit","_UIFactory","_ClipboardButton","_jsxRuntime","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","block","cn","nodeProps","exports","PropTypes","shape","locations","arrayOf","low_watermark_space","number","isRequired","available_space","session_count","chunk_count","used_space","throttling_writes","bool","throttling_reads","enabled","sick","full","medium_name","string","location_uuid","tabletSlots","byState","object","raw","array","host","alerts","banned","disableJobs","disableTabletCells","disableWriteSession","NodeCardUpdater","_ref","dispatch","useDispatch","updateFn","React","useCallback","loadNodeAttributes","useUpdater","timeout","onlyOnce","NodeCard","_Component","_inherits","_super","_createSuper","_classCallCheck","apply","arguments","_createClass","key","value","componentWillUnmount","props","handleClose","renderTop","clusterConfig","_this$props$node","node","physicalHost","UIFactory","renderComponentsNodeCardTop","renderLocation","location","index","_jsx","className","children","MetaTable","items","_jsxs","ClipboardButton","view","text","size","toString","hammer","format","Progress","locationProgress","locationText","theme","Template","FormattedValue","renderLocations","_this","CollapsibleSection","name","collapsed","_map","renderAlerts","length","alert","Alert","error","message","renderTabletSlots","NodeTabletSlots","renderDefault","_this$props$node2","state","systemTags","userTags","rack","_this$props$node2$ban","banMessage","decommissioned","decommissionedMessage","dataCenter","lastSeenTime","stateText","stateTheme","online","offline","tag","Label","visible","type","Boolean","renderLabel","toUpperCase","renderStorage","hasMeta","hasStorageMeta","NodeStorage","_objectSpread","renderCpuAndMemory","hasCpuAndMemoryMeta","NodeCpuAndMemory","renderResources","hasResourcesMeta","NodeResources","renderCard","_this$props","cluster","handleKeyDown","onKeyDown","tabIndex","Link","routed","url","concat","Page","COMPONENTS","Tab","NODES","Button","onClick","Icon","awesome","face","render","_this$props2","errorData","loaded","Fragment","LoadDataHandler","Component","mapStateToProps","_nodeSelector","nodeSelector","getCluster","getSortedItems","getCurrentClusterConfig","mapDispatchToProps","_default","compose","connect","withSplit"],"sources":["NodeCard.js"],"sourcesContent":["import React, {Component} from 'react';\nimport {connect, useDispatch} from 'react-redux';\nimport PropTypes from 'prop-types';\nimport {compose} from 'redux';\nimport cn from 'bem-cn-lite';\nimport _ from 'lodash';\n\nimport Icon from '../../../../../components/Icon/Icon';\nimport Link from '../../../../../components/Link/Link';\nimport Label from '../../../../../components/Label/Label';\nimport Alert from '../../../../../components/Alert/Alert';\nimport Button from '../../../../../components/Button/Button';\nimport {Progress} from '@gravity-ui/uikit';\nimport MetaTable, {Template} from '../../../../../components/MetaTable/MetaTable';\nimport CollapsibleSection from '../../../../../components/CollapsibleSection/CollapsibleSection';\nimport LoadDataHandler from '../../../../../components/LoadDataHandler/LoadDataHandler';\n\nimport {renderLabel} from '../../../../../components/templates/components/nodes/nodes';\nimport {loadNodeAttributes} from '../../../../../store/actions/components/node/node';\nimport {getSortedItems} from '../../../../../store/selectors/components/nodes/node-card';\n\nimport {nodeSelector} from '../../../../../store/selectors/components/node/node';\nimport {getCluster, getCurrentClusterConfig} from '../../../../../store/selectors/global';\nimport hammer from '../../../../../common/hammer';\nimport {Page} from '../../../../../constants/index';\nimport {Tab} from '../../../../../constants/components/main';\nimport NodeCpuAndMemory, {\n hasCpuAndMemoryMeta,\n} from '../../../../../pages/components/tabs/node/NodeCpuAndMemory/NodeCpuAndMemory';\nimport NodeResources, {\n hasResourcesMeta,\n} from '../../../../../pages/components/tabs/node/NodeResources/NodeResources';\nimport NodeStorage, {\n hasStorageMeta,\n} from '../../../../../pages/components/tabs/node/NodeStorage/NodeStorage';\nimport NodeTabletSlots from '../../../../../pages/components/tabs/node/NodeTabletSlots/NodeTabletSlots';\nimport {useUpdater} from '../../../../../hooks/use-updater';\n\nimport withSplit from '../../../../../hocs/withSplit';\n\nimport './NodeCard.scss';\nimport UIFactory from '../../../../../UIFactory';\nimport ClipboardButton from '../../../../../components/ClipboardButton/ClipboardButton';\n\nconst block = cn('node-card');\n\nexport const nodeProps = PropTypes.shape({\n locations: PropTypes.arrayOf(\n PropTypes.shape({\n low_watermark_space: PropTypes.number.isRequired,\n available_space: PropTypes.number.isRequired,\n session_count: PropTypes.number.isRequired,\n chunk_count: PropTypes.number.isRequired,\n used_space: PropTypes.number.isRequired,\n throttling_writes: PropTypes.bool.isRequired,\n throttling_reads: PropTypes.bool.isRequired,\n enabled: PropTypes.bool.isRequired,\n sick: PropTypes.bool.isRequired,\n full: PropTypes.bool.isRequired,\n medium_name: PropTypes.string.isRequired,\n location_uuid: PropTypes.string.isRequired,\n }),\n ),\n tabletSlots: PropTypes.shape({\n byState: PropTypes.object.isRequired,\n raw: PropTypes.array.isRequired,\n }),\n host: PropTypes.string.isRequired,\n alerts: PropTypes.arrayOf(PropTypes.object),\n banned: PropTypes.bool.isRequired,\n disableJobs: PropTypes.bool.isRequired,\n disableTabletCells: PropTypes.bool.isRequired,\n disableWriteSession: PropTypes.bool.isRequired,\n});\n\nfunction NodeCardUpdater({host}) {\n const dispatch = useDispatch();\n\n const updateFn = React.useCallback(() => {\n dispatch(loadNodeAttributes(host));\n }, [dispatch, host]);\n\n useUpdater(updateFn, {timeout: 15 * 1000, onlyOnce: !host});\n return null;\n}\n\nclass NodeCard extends Component {\n static propTypes = {\n // from parent\n handleClose: PropTypes.func.isRequired,\n handleKeyDown: PropTypes.func,\n // from connect\n node: nodeProps,\n tabletSlots: PropTypes.array,\n loadNodeAttributes: PropTypes.func.isRequired,\n };\n\n componentWillUnmount() {\n this.props.handleClose();\n }\n\n renderTop() {\n const {clusterConfig} = this.props;\n const {physicalHost, host} = this.props.node;\n return UIFactory.renderComponentsNodeCardTop({host, physicalHost, clusterConfig});\n }\n\n renderLocation(location, index) {\n return (\n <div className={block('location')} key={index}>\n <MetaTable\n items={[\n {\n key: 'uuid',\n value: (\n <span>\n {location.location_uuid}\n \n <ClipboardButton\n view=\"flat-secondary\"\n text={location.location_uuid}\n size=\"s\"\n />\n </span>\n ),\n },\n {key: 'location number', value: index + 1},\n {key: 'enabled', value: location.enabled.toString()},\n {key: 'full', value: location.full.toString()},\n {key: 'medium name', value: location.medium_name},\n {key: 'sessions', value: location.session_count},\n {\n key: 'chunks',\n value: hammer.format['Number'](location.chunk_count),\n },\n {\n key: 'used space',\n value: (\n <Progress\n value={location.locationProgress}\n text={location.locationText}\n theme=\"success\"\n />\n ),\n },\n {\n key: 'available space',\n value: (\n <Template.FormattedValue\n value={location.available_space}\n format=\"Bytes\"\n />\n ),\n },\n {\n key: 'watermark space',\n value: (\n <Template.FormattedValue\n value={location.low_watermark_space}\n format=\"Bytes\"\n />\n ),\n },\n ]}\n />\n </div>\n );\n }\n\n renderLocations() {\n const {locations} = this.props.node;\n\n return (\n locations && (\n <CollapsibleSection\n size=\"s\"\n name=\"Locations\"\n className={block('locations')}\n collapsed\n >\n {_.map(locations, (location, index) => this.renderLocation(location, index))}\n </CollapsibleSection>\n )\n );\n }\n\n renderAlerts() {\n const {alerts} = this.props.node;\n\n return (\n alerts?.length > 0 && (\n <CollapsibleSection size=\"s\" name=\"Alerts\" className={block('alerts')} collapsed>\n {_.map(alerts, (alert) => (\n <Alert key={alert.message} error={alert} />\n ))}\n </CollapsibleSection>\n )\n );\n }\n\n renderTabletSlots() {\n const {tabletSlots} = this.props;\n\n return (\n tabletSlots.length > 0 && (\n <CollapsibleSection size=\"s\" name=\"Tablet slots\" collapsed={false}>\n <NodeTabletSlots tabletSlots={tabletSlots} />\n </CollapsibleSection>\n )\n );\n }\n\n renderDefault() {\n const {\n state,\n systemTags,\n userTags,\n rack,\n banned,\n banMessage = '',\n decommissioned,\n decommissionedMessage,\n full,\n alerts,\n dataCenter,\n lastSeenTime,\n disableJobs,\n disableTabletCells,\n disableWriteSession,\n } = this.props.node;\n\n const stateText = hammer.format['FirstUppercase'](state);\n const stateTheme = {online: 'success', offline: 'danger'}[state] || 'default';\n\n return (\n <CollapsibleSection size=\"s\" name=\"Default\" className={block('default')}>\n <MetaTable\n items={[\n {\n key: 'system tags',\n value: _.map(systemTags, (tag) => <Label key={tag} text={tag} />),\n visible: systemTags?.length > 0,\n },\n {\n key: 'user tags',\n value: _.map(userTags, (tag) => <Label key={tag} text={tag} />),\n visible: userTags?.length > 0,\n },\n {\n key: 'state',\n value: <Label theme={stateTheme} type=\"text\" text={stateText} />,\n },\n {\n key: 'rack',\n value: hammer.format['Address'](rack),\n visible: Boolean(rack),\n },\n {\n key: 'banned',\n value: <Label text={banMessage} theme=\"warning\" type=\"text\" />,\n visible: Boolean(banned),\n },\n {\n key: 'decommissioned',\n value: (\n <Label\n text={decommissionedMessage || 'Decommissioned'}\n theme=\"default\"\n type=\"text\"\n />\n ),\n visible: Boolean(decommissioned),\n },\n {\n key: 'full',\n value: <Label text=\"Full\" theme=\"danger\" type=\"text\" />,\n visible: Boolean(full),\n },\n {\n key: 'alerts',\n value: <Label text={alerts?.length || 0} theme=\"danger\" type=\"text\" />,\n visible: alerts?.length > 0,\n },\n {\n key: 'scheduler jobs',\n value: renderLabel(disableJobs),\n },\n {\n key: 'write sessions',\n value: renderLabel(disableWriteSession),\n },\n {\n key: 'tablet cells',\n value: renderLabel(disableTabletCells),\n },\n {\n key: 'data center',\n value: dataCenter?.toUpperCase(),\n visible: Boolean(dataCenter),\n },\n {\n key: 'last seen',\n value: hammer.format['DateTime'](lastSeenTime, {\n format: 'full',\n }),\n },\n ]}\n />\n </CollapsibleSection>\n );\n }\n\n renderStorage() {\n const {node} = this.props;\n const hasMeta = hasStorageMeta(node);\n\n return (\n hasMeta && (\n <CollapsibleSection size=\"s\" name=\"Storage\" className={block('storage')} collapsed>\n <NodeStorage {...node} />\n </CollapsibleSection>\n )\n );\n }\n\n renderCpuAndMemory() {\n const {node} = this.props;\n const hasMeta = hasCpuAndMemoryMeta(node);\n\n return (\n hasMeta && (\n <CollapsibleSection\n size=\"s\"\n name=\"CPU and memory\"\n className={block('cpu')}\n collapsed\n >\n <NodeCpuAndMemory {...{node}} />\n </CollapsibleSection>\n )\n );\n }\n\n renderResources() {\n const {node} = this.props;\n const hasMeta = hasResourcesMeta(node);\n\n return (\n hasMeta && (\n <CollapsibleSection\n size=\"s\"\n name=\"Resources\"\n className={block('resources')}\n collapsed\n >\n <NodeResources {...node} />\n </CollapsibleSection>\n )\n );\n }\n\n renderCard() {\n const {cluster, handleClose, handleKeyDown, node} = this.props;\n\n return (\n node && (\n <div className={block()} onKeyDown={handleKeyDown} tabIndex={-1}>\n <div className={block('header')}>\n <Link\n routed\n url={`/${cluster}/${Page.COMPONENTS}/${Tab.NODES}/${node.host}/general`}\n className={block('node')}\n >\n {node.host}\n </Link>\n\n <Button view=\"flat-secondary\" size=\"m\" onClick={handleClose}>\n <Icon awesome=\"times\" face={'light'} />\n </Button>\n </div>\n\n {this.renderTop()}\n {this.renderDefault()}\n {this.renderAlerts()}\n {this.renderLocations()}\n {this.renderTabletSlots()}\n {this.renderCpuAndMemory()}\n {this.renderStorage()}\n {this.renderResources()}\n </div>\n )\n );\n }\n\n render() {\n const {error, errorData, loaded} = this.props;\n\n return (\n <React.Fragment>\n <NodeCardUpdater host={this.props.host} />\n <LoadDataHandler loaded={loaded} error={error} errorData={errorData}>\n {this.renderCard()}\n </LoadDataHandler>\n </React.Fragment>\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n const {node, loaded, error, errorData} = nodeSelector(state);\n const cluster = getCluster(state);\n\n return {\n cluster,\n error,\n errorData,\n loaded,\n node,\n tabletSlots: node && getSortedItems(state, {node}),\n clusterConfig: getCurrentClusterConfig(state),\n };\n};\n\nconst mapDispatchToProps = {\n loadNodeAttributes,\n};\n\nexport default compose(connect(mapStateToProps, mapDispatchToProps), withSplit)(NodeCard);\n"],"mappings":"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"}
|
@@ -0,0 +1,28 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.QueriesListSidebarToggleButton = QueriesListSidebarToggleButton;
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
8
|
+
var _uikit = require("@gravity-ui/uikit");
|
9
|
+
var _Icon = _interopRequireDefault(require("../../../components/Icon/Icon"));
|
10
|
+
var _QueriesList = require("../hooks/QueriesList");
|
11
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
12
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
13
|
+
function QueriesListSidebarToggleButton() {
|
14
|
+
var _useQueriesListSideba = (0, _QueriesList.useQueriesListSidebarToggle)(),
|
15
|
+
isQueriesListSidebarVisible = _useQueriesListSideba.isQueriesListSidebarVisible,
|
16
|
+
toggleQueriesListSideBarToggle = _useQueriesListSideba.toggleQueriesListSideBarToggle;
|
17
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_uikit.Button, {
|
18
|
+
view: "outlined",
|
19
|
+
size: "l",
|
20
|
+
title: "".concat(isQueriesListSidebarVisible ? 'Hide' : 'Show', " queries list"),
|
21
|
+
onClick: toggleQueriesListSideBarToggle,
|
22
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Icon.default, {
|
23
|
+
awesome: "layout-side-content",
|
24
|
+
size: 16
|
25
|
+
})
|
26
|
+
});
|
27
|
+
}
|
28
|
+
// #sourceMappingURL=QueriesListSidebarToggleButton.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_uikit","_Icon","_QueriesList","_jsxRuntime","obj","__esModule","default","QueriesListSidebarToggleButton","_useQueriesListSideba","useQueriesListSidebarToggle","isQueriesListSidebarVisible","toggleQueriesListSideBarToggle","_jsx","Button","view","size","title","concat","onClick","children","Icon","awesome"],"sources":["QueriesListSidebarToggleButton.tsx"],"sourcesContent":["import React from 'react';\nimport {Button} from '@gravity-ui/uikit';\nimport Icon from '../../../components/Icon/Icon';\nimport {useQueriesListSidebarToggle} from '../hooks/QueriesList';\n\nexport function QueriesListSidebarToggleButton() {\n const {isQueriesListSidebarVisible, toggleQueriesListSideBarToggle} =\n useQueriesListSidebarToggle();\n\n return (\n <Button\n view=\"outlined\"\n size=\"l\"\n title={`${isQueriesListSidebarVisible ? 'Hide' : 'Show'} queries list`}\n onClick={toggleQueriesListSideBarToggle}\n >\n <Icon awesome=\"layout-side-content\" size={16} />\n </Button>\n );\n}\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,YAAA,GAAAH,OAAA;AAAiE,IAAAI,WAAA,GAAAJ,OAAA;AAAA,SAAAD,uBAAAM,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAE1D,SAASG,8BAA8BA,CAAA,EAAG;EAC7C,IAAAC,qBAAA,GACI,IAAAC,wCAA2B,EAAC,CAAC;IAD1BC,2BAA2B,GAAAF,qBAAA,CAA3BE,2BAA2B;IAAEC,8BAA8B,GAAAH,qBAAA,CAA9BG,8BAA8B;EAGlE,oBACI,IAAAC,eAAA,EAACC,aAAM;IACHC,IAAI,EAAC,UAAU;IACfC,IAAI,EAAC,GAAG;IACRC,KAAK,KAAAC,MAAA,CAAKP,2BAA2B,GAAG,MAAM,GAAG,MAAM,kBAAgB;IACvEQ,OAAO,EAAEP,8BAA+B;IAAAQ,QAAA,eAExC,IAAAP,eAAA,EAACQ,aAAI;MAACC,OAAO,EAAC,qBAAqB;MAACN,IAAI,EAAE;IAAG,CAAE;EAAC,CAC5C,CAAC;AAEjB"}
|
@@ -1,11 +1,5 @@
|
|
1
1
|
import React from 'react';
|
2
2
|
import './QueryEditor.scss';
|
3
|
-
|
4
|
-
visible: boolean;
|
5
|
-
setVisibility: (visible: boolean) => void;
|
6
|
-
};
|
7
|
-
export default function QueryEditor({ onStartQuery, listVisible, }: {
|
3
|
+
export default function QueryEditor({ onStartQuery, }: {
|
8
4
|
onStartQuery?: (queryId: string) => boolean | void;
|
9
|
-
listVisible?: QueryListVisible;
|
10
5
|
}): React.JSX.Element;
|
11
|
-
export {};
|
@@ -60,23 +60,6 @@ LayoutFooterIcon.defaultProps = {
|
|
60
60
|
fill: "none",
|
61
61
|
viewBox: "0 0 16 16"
|
62
62
|
};
|
63
|
-
var LayoutSideContentIcon = function LayoutSideContentIcon(props) {
|
64
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsx)("svg", (0, _objectSpread2.default)((0, _objectSpread2.default)({}, props), {}, {
|
65
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)("path", {
|
66
|
-
fill: "currentColor",
|
67
|
-
fillRule: "evenodd",
|
68
|
-
d: "M6 3.5h6A1.5 1.5 0 0 1 13.5 5v6a1.5 1.5 0 0 1-1.5 1.5H6v-9Zm-1.5 0H4A1.5 1.5 0 0 0 2.5 5v6A1.5 1.5 0 0 0 4 12.5h.5v-9ZM1 5a3 3 0 0 1 3-3h8a3 3 0 0 1 3 3v6a3 3 0 0 1-3 3H4a3 3 0 0 1-3-3V5Z",
|
69
|
-
clipRule: "evenodd"
|
70
|
-
})
|
71
|
-
}));
|
72
|
-
};
|
73
|
-
LayoutSideContentIcon.defaultProps = {
|
74
|
-
xmlns: "http://www.w3.org/2000/svg",
|
75
|
-
width: "16",
|
76
|
-
height: "16",
|
77
|
-
fill: "none",
|
78
|
-
viewBox: "0 0 16 16"
|
79
|
-
};
|
80
63
|
var XmarkIcon = function XmarkIcon(props) {
|
81
64
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)("svg", (0, _objectSpread2.default)((0, _objectSpread2.default)({}, props), {}, {
|
82
65
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)("path", {
|
@@ -196,24 +179,13 @@ var QueryEditorView = /*#__PURE__*/_react.default.memo(function QueryEditorView(
|
|
196
179
|
var ResultView = /*#__PURE__*/_react.default.memo(function ResultView(_ref2) {
|
197
180
|
var query = _ref2.query,
|
198
181
|
resultViewMode = _ref2.resultViewMode,
|
199
|
-
setResultViewMode = _ref2.setResultViewMode
|
200
|
-
listVisible = _ref2.listVisible;
|
182
|
+
setResultViewMode = _ref2.setResultViewMode;
|
201
183
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_QueryResults.QueryResults, {
|
202
184
|
query: query,
|
203
185
|
className: b('results'),
|
204
186
|
minimized: resultViewMode === 'minimized',
|
205
187
|
toolbar: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
206
|
-
children: [
|
207
|
-
className: b('meta-action'),
|
208
|
-
view: listVisible.visible ? 'flat' : 'outlined',
|
209
|
-
onClick: function onClick() {
|
210
|
-
return listVisible.setVisibility(!listVisible.visible);
|
211
|
-
},
|
212
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_uikit.Icon, {
|
213
|
-
data: LayoutSideContentIcon,
|
214
|
-
size: 16
|
215
|
-
})
|
216
|
-
}), resultViewMode === 'split' ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_uikit.Button, {
|
188
|
+
children: [resultViewMode === 'split' ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_uikit.Button, {
|
217
189
|
className: b('meta-action'),
|
218
190
|
view: "flat",
|
219
191
|
onClick: function onClick() {
|
@@ -248,8 +220,7 @@ var ResultView = /*#__PURE__*/_react.default.memo(function ResultView(_ref2) {
|
|
248
220
|
});
|
249
221
|
});
|
250
222
|
function QueryEditor(_ref3) {
|
251
|
-
var onStartQuery = _ref3.onStartQuery
|
252
|
-
listVisible = _ref3.listVisible;
|
223
|
+
var onStartQuery = _ref3.onStartQuery;
|
253
224
|
var query = (0, _useCurrentQuery.useCurrentQuery)();
|
254
225
|
var _useState = (0, _react.useState)('minimized'),
|
255
226
|
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
@@ -280,8 +251,7 @@ function QueryEditor(_ref3) {
|
|
280
251
|
}), (query === null || query === void 0 ? void 0 : query.id) && isExecuted && /*#__PURE__*/(0, _jsxRuntime.jsx)(ResultView, {
|
281
252
|
query: query,
|
282
253
|
setResultViewMode: setResultViewMode,
|
283
|
-
resultViewMode: resultViewMode
|
284
|
-
listVisible: listVisible
|
254
|
+
resultViewMode: resultViewMode
|
285
255
|
})]
|
286
256
|
})]
|
287
257
|
});
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_MonacoEditor","_interopRequireDefault","_bemCnLite","monaco","_uikit","_play","_reactRedux","_selectors","_actions","_FlexSplitPane","_QueryResults","_useCurrentQuery","_forEach","_uniqBy","_jsxRuntime","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","SquareIcon","props","_jsx","_objectSpread","children","fill","fillRule","d","clipRule","defaultProps","xmlns","width","height","viewBox","LayoutFooterIcon","LayoutSideContentIcon","XmarkIcon","b","block","QueryEditorView","React","memo","_ref","_editorRef$current","onStartQuery","editorRef","useRef","activeQuery","useSelector","getQuery","text","getQueryText","engine","getQueryEngine","editorErrors","getQueryEditorErrors","decorationsCollection","undefined","model","current","getModel","useEffect","_editorRef$current2","_editorRef$current3","focus","setScrollTop","id","updateErrorMarkers","_decorationsCollectio","_editorRef$current4","markers","decorations","forEach_","error","attributes","message","range","Range","start_position","row","column","end_position","startLineNumber","startColumn","endLineNumber","endColumn","marker","severity","MarkerSeverity","Error","push","line","options","isWholeLine","className","editor","setModelMarkers","clear","createDecorationsCollection","uniqBy_","monacoConfig","useMemo","fontSize","language","renderWhitespace","minimap","enabled","dispatch","useDispatch","upadteQueryText","useCallback","updateQueryDraft","query","runQueryCallback","runQuery","_jsxs","MonacoEditor","value","onChange","Button","view","onClick","Icon","data","playIcon","ResultView","_ref2","resultViewMode","setResultViewMode","listVisible","QueryResults","minimized","toolbar","_Fragment","visible","setVisibility","size","QueryEditor","_ref3","useCurrentQuery","_useState","useState","_useState2","_slicedToArray","_useState3","_useState4","partSizes","setSize","isExecuted","isQueryExecuted","isLoading","isQueryLoading","Loader","FlexSplitPane","_defineProperty","direction","VERTICAL","onResizeEnd","getInitialSizes"],"sources":["QueryEditor.tsx"],"sourcesContent":["import React, {useCallback, useEffect, useMemo, useRef, useState} from 'react';\nimport MonacoEditor, {MonacoEditorConfig} from '../../../components/MonacoEditor';\nimport block from 'bem-cn-lite';\nimport * as monaco from 'monaco-editor/esm/vs/editor/editor.api';\nimport {Button, Icon, Loader} from '@gravity-ui/uikit';\n\nimport playIcon from '../../../../../img/svg/play.svg';\nimport {useDispatch, useSelector} from 'react-redux';\nimport {\n getQuery,\n getQueryEditorErrors,\n getQueryEngine,\n getQueryText,\n isQueryExecuted,\n isQueryLoading,\n} from '../module/query/selectors';\nimport {runQuery, updateQueryDraft} from '../module/query/actions';\nimport FlexSplitPane from '../../../components/FlexSplitPane/FlexSplitPane';\nimport {QueryResults} from '../QueryResults';\nimport SquareIcon from '@gravity-ui/icons/svgs/square.svg';\nimport LayoutFooterIcon from '@gravity-ui/icons/svgs/layout-footer.svg';\n\nimport LayoutSideContentIcon from '@gravity-ui/icons/svgs/layout-side-content.svg';\nimport XmarkIcon from '@gravity-ui/icons/svgs/xmark.svg';\n\nimport './QueryEditor.scss';\nimport {QueryItem} from '../module/api';\nimport {useCurrentQuery} from '../QueryResults/hooks/useCurrentQuery';\nimport forEach_ from 'lodash/forEach';\nimport uniqBy_ from 'lodash/uniqBy';\n\nconst b = block('query-container');\n\nconst QueryEditorView = React.memo(function QueryEditorView({\n onStartQuery,\n}: {\n onStartQuery?: (queryId: string) => boolean | void;\n}) {\n const editorRef = useRef<monaco.editor.IStandaloneCodeEditor>();\n const activeQuery = useSelector(getQuery);\n const text = useSelector(getQueryText);\n const engine = useSelector(getQueryEngine);\n const editorErrors = useSelector(getQueryEditorErrors);\n const decorationsCollection = useRef<monaco.editor.IEditorDecorationsCollection | undefined>(\n undefined,\n );\n const model = editorRef.current?.getModel();\n\n useEffect(() => {\n editorRef.current?.focus();\n editorRef.current?.setScrollTop(0);\n }, [editorRef.current, activeQuery?.id]);\n\n useEffect(\n function updateErrorMarkers() {\n if (model) {\n const markers: monaco.editor.IMarkerData[] = [];\n const decorations: monaco.editor.IModelDeltaDecoration[] = [];\n forEach_(editorErrors, (error) => {\n const {attributes, message} = error;\n const range = new monaco.Range(\n attributes.start_position.row,\n attributes.start_position.column,\n attributes.end_position.row,\n attributes.end_position.column,\n );\n const {startLineNumber, startColumn, endLineNumber, endColumn} = range;\n const marker: monaco.editor.IMarkerData = {\n message: message,\n severity: monaco.MarkerSeverity.Error,\n startLineNumber,\n startColumn,\n endLineNumber,\n endColumn,\n };\n markers.push(marker);\n const line = {\n range: range,\n options: {\n isWholeLine: true,\n className: b('error-line'),\n },\n };\n decorations.push(line);\n });\n monaco.editor.setModelMarkers(model, 'query-tracker', markers);\n decorationsCollection.current?.clear();\n decorationsCollection.current = editorRef.current?.createDecorationsCollection(\n uniqBy_(decorations, (d) => d.range.startLineNumber),\n );\n }\n },\n [editorErrors, model],\n );\n\n const monacoConfig = useMemo<MonacoEditorConfig>(() => {\n return {\n fontSize: 14,\n language: engine,\n renderWhitespace: 'boundary',\n minimap: {\n enabled: true,\n },\n };\n }, [engine]);\n const dispatch = useDispatch();\n const upadteQueryText = useCallback(\n function (text: string) {\n dispatch(updateQueryDraft({query: text, error: undefined}));\n },\n [dispatch],\n );\n\n const runQueryCallback = useCallback(\n function () {\n dispatch(runQuery(onStartQuery));\n },\n [dispatch, onStartQuery],\n );\n return (\n <div className={b('query')}>\n <MonacoEditor\n editorRef={editorRef}\n value={text || ''}\n language={'yql'}\n className={b('editor')}\n onChange={upadteQueryText}\n monacoConfig={monacoConfig}\n />\n <div className={b('actions')}>\n <div className=\"query-run-action\">\n <Button\n className=\"query-run-action-button\"\n view=\"action\"\n onClick={runQueryCallback}\n >\n <Icon data={playIcon} />\n Run\n </Button>\n </div>\n </div>\n </div>\n );\n});\n\nconst ResultView = React.memo(function ResultView({\n query,\n resultViewMode,\n setResultViewMode,\n listVisible,\n}: {\n query: QueryItem;\n resultViewMode: ResultMode;\n setResultViewMode: (v: ResultMode) => void;\n listVisible?: QueryListVisible;\n}) {\n return (\n <QueryResults\n query={query}\n className={b('results')}\n minimized={resultViewMode === 'minimized'}\n toolbar={\n <>\n {listVisible && (\n <Button\n className={b('meta-action')}\n view={listVisible.visible ? 'flat' : 'outlined'}\n onClick={() => listVisible.setVisibility(!listVisible.visible)}\n >\n <Icon data={LayoutSideContentIcon} size={16} />\n </Button>\n )}\n {resultViewMode === 'split' ? (\n <Button\n className={b('meta-action')}\n view=\"flat\"\n onClick={() => setResultViewMode('full')}\n >\n <Icon data={SquareIcon} size={16} />\n </Button>\n ) : (\n <Button\n className={b('meta-action')}\n view=\"flat\"\n onClick={() => setResultViewMode('split')}\n >\n <Icon data={LayoutFooterIcon} size={16} />\n </Button>\n )}\n {resultViewMode !== 'minimized' && (\n <Button\n className={b('meta-action')}\n view=\"flat\"\n onClick={() => setResultViewMode('minimized')}\n >\n <Icon data={XmarkIcon} size={16} />\n </Button>\n )}\n </>\n }\n />\n );\n});\n\ntype ResultMode = 'full' | 'minimized' | 'split';\ntype QueryListVisible = {\n visible: boolean;\n setVisibility: (visible: boolean) => void;\n};\nexport default function QueryEditor({\n onStartQuery,\n listVisible,\n}: {\n onStartQuery?: (queryId: string) => boolean | void;\n listVisible?: QueryListVisible;\n}) {\n const query = useCurrentQuery();\n\n const [resultViewMode, setResultViewMode] = useState<ResultMode>('minimized');\n\n const [partSizes, setSize] = useState([50, 50]);\n\n useEffect(() => {\n setResultViewMode('split');\n }, [query?.id]);\n\n const isExecuted = useSelector(isQueryExecuted);\n const isLoading = useSelector(isQueryLoading);\n\n return (\n <>\n {isLoading && (\n <div className={b('loading')}>\n <Loader />\n </div>\n )}\n <FlexSplitPane\n className={b({[resultViewMode]: true})}\n direction={FlexSplitPane.VERTICAL}\n onResizeEnd={setSize}\n getInitialSizes={() => partSizes}\n >\n {resultViewMode !== 'full' && <QueryEditorView onStartQuery={onStartQuery} />}\n\n {query?.id && isExecuted && (\n <ResultView\n query={query}\n setResultViewMode={setResultViewMode}\n resultViewMode={resultViewMode}\n listVisible={listVisible}\n />\n )}\n </FlexSplitPane>\n </>\n );\n}\n"],"mappings":"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"}
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_MonacoEditor","_interopRequireDefault","_bemCnLite","monaco","_uikit","_play","_reactRedux","_selectors","_actions","_FlexSplitPane","_QueryResults","_useCurrentQuery","_forEach","_uniqBy","_jsxRuntime","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","SquareIcon","props","_jsx","_objectSpread","children","fill","fillRule","d","clipRule","defaultProps","xmlns","width","height","viewBox","LayoutFooterIcon","XmarkIcon","b","block","QueryEditorView","React","memo","_ref","_editorRef$current","onStartQuery","editorRef","useRef","activeQuery","useSelector","getQuery","text","getQueryText","engine","getQueryEngine","editorErrors","getQueryEditorErrors","decorationsCollection","undefined","model","current","getModel","useEffect","_editorRef$current2","_editorRef$current3","focus","setScrollTop","id","updateErrorMarkers","_decorationsCollectio","_editorRef$current4","markers","decorations","forEach_","error","attributes","message","range","Range","start_position","row","column","end_position","startLineNumber","startColumn","endLineNumber","endColumn","marker","severity","MarkerSeverity","Error","push","line","options","isWholeLine","className","editor","setModelMarkers","clear","createDecorationsCollection","uniqBy_","monacoConfig","useMemo","fontSize","language","renderWhitespace","minimap","enabled","dispatch","useDispatch","upadteQueryText","useCallback","updateQueryDraft","query","runQueryCallback","runQuery","_jsxs","MonacoEditor","value","onChange","Button","view","onClick","Icon","data","playIcon","ResultView","_ref2","resultViewMode","setResultViewMode","QueryResults","minimized","toolbar","_Fragment","size","QueryEditor","_ref3","useCurrentQuery","_useState","useState","_useState2","_slicedToArray","_useState3","_useState4","partSizes","setSize","isExecuted","isQueryExecuted","isLoading","isQueryLoading","Loader","FlexSplitPane","_defineProperty","direction","VERTICAL","onResizeEnd","getInitialSizes"],"sources":["QueryEditor.tsx"],"sourcesContent":["import React, {useCallback, useEffect, useMemo, useRef, useState} from 'react';\nimport MonacoEditor, {MonacoEditorConfig} from '../../../components/MonacoEditor';\nimport block from 'bem-cn-lite';\nimport * as monaco from 'monaco-editor/esm/vs/editor/editor.api';\nimport {Button, Icon, Loader} from '@gravity-ui/uikit';\n\nimport playIcon from '../../../../../img/svg/play.svg';\nimport {useDispatch, useSelector} from 'react-redux';\nimport {\n getQuery,\n getQueryEditorErrors,\n getQueryEngine,\n getQueryText,\n isQueryExecuted,\n isQueryLoading,\n} from '../module/query/selectors';\nimport {runQuery, updateQueryDraft} from '../module/query/actions';\nimport FlexSplitPane from '../../../components/FlexSplitPane/FlexSplitPane';\nimport {QueryResults} from '../QueryResults';\nimport SquareIcon from '@gravity-ui/icons/svgs/square.svg';\nimport LayoutFooterIcon from '@gravity-ui/icons/svgs/layout-footer.svg';\n\nimport XmarkIcon from '@gravity-ui/icons/svgs/xmark.svg';\n\nimport './QueryEditor.scss';\nimport {QueryItem} from '../module/api';\nimport {useCurrentQuery} from '../QueryResults/hooks/useCurrentQuery';\nimport forEach_ from 'lodash/forEach';\nimport uniqBy_ from 'lodash/uniqBy';\n\nconst b = block('query-container');\n\nconst QueryEditorView = React.memo(function QueryEditorView({\n onStartQuery,\n}: {\n onStartQuery?: (queryId: string) => boolean | void;\n}) {\n const editorRef = useRef<monaco.editor.IStandaloneCodeEditor>();\n const activeQuery = useSelector(getQuery);\n const text = useSelector(getQueryText);\n const engine = useSelector(getQueryEngine);\n const editorErrors = useSelector(getQueryEditorErrors);\n const decorationsCollection = useRef<monaco.editor.IEditorDecorationsCollection | undefined>(\n undefined,\n );\n const model = editorRef.current?.getModel();\n\n useEffect(() => {\n editorRef.current?.focus();\n editorRef.current?.setScrollTop(0);\n }, [editorRef.current, activeQuery?.id]);\n\n useEffect(\n function updateErrorMarkers() {\n if (model) {\n const markers: monaco.editor.IMarkerData[] = [];\n const decorations: monaco.editor.IModelDeltaDecoration[] = [];\n forEach_(editorErrors, (error) => {\n const {attributes, message} = error;\n const range = new monaco.Range(\n attributes.start_position.row,\n attributes.start_position.column,\n attributes.end_position.row,\n attributes.end_position.column,\n );\n const {startLineNumber, startColumn, endLineNumber, endColumn} = range;\n const marker: monaco.editor.IMarkerData = {\n message: message,\n severity: monaco.MarkerSeverity.Error,\n startLineNumber,\n startColumn,\n endLineNumber,\n endColumn,\n };\n markers.push(marker);\n const line = {\n range: range,\n options: {\n isWholeLine: true,\n className: b('error-line'),\n },\n };\n decorations.push(line);\n });\n monaco.editor.setModelMarkers(model, 'query-tracker', markers);\n decorationsCollection.current?.clear();\n decorationsCollection.current = editorRef.current?.createDecorationsCollection(\n uniqBy_(decorations, (d) => d.range.startLineNumber),\n );\n }\n },\n [editorErrors, model],\n );\n\n const monacoConfig = useMemo<MonacoEditorConfig>(() => {\n return {\n fontSize: 14,\n language: engine,\n renderWhitespace: 'boundary',\n minimap: {\n enabled: true,\n },\n };\n }, [engine]);\n const dispatch = useDispatch();\n const upadteQueryText = useCallback(\n function (text: string) {\n dispatch(updateQueryDraft({query: text, error: undefined}));\n },\n [dispatch],\n );\n\n const runQueryCallback = useCallback(\n function () {\n dispatch(runQuery(onStartQuery));\n },\n [dispatch, onStartQuery],\n );\n return (\n <div className={b('query')}>\n <MonacoEditor\n editorRef={editorRef}\n value={text || ''}\n language={'yql'}\n className={b('editor')}\n onChange={upadteQueryText}\n monacoConfig={monacoConfig}\n />\n <div className={b('actions')}>\n <div className=\"query-run-action\">\n <Button\n className=\"query-run-action-button\"\n view=\"action\"\n onClick={runQueryCallback}\n >\n <Icon data={playIcon} />\n Run\n </Button>\n </div>\n </div>\n </div>\n );\n});\n\nconst ResultView = React.memo(function ResultView({\n query,\n resultViewMode,\n setResultViewMode,\n}: {\n query: QueryItem;\n resultViewMode: ResultMode;\n setResultViewMode: (v: ResultMode) => void;\n}) {\n return (\n <QueryResults\n query={query}\n className={b('results')}\n minimized={resultViewMode === 'minimized'}\n toolbar={\n <>\n {resultViewMode === 'split' ? (\n <Button\n className={b('meta-action')}\n view=\"flat\"\n onClick={() => setResultViewMode('full')}\n >\n <Icon data={SquareIcon} size={16} />\n </Button>\n ) : (\n <Button\n className={b('meta-action')}\n view=\"flat\"\n onClick={() => setResultViewMode('split')}\n >\n <Icon data={LayoutFooterIcon} size={16} />\n </Button>\n )}\n {resultViewMode !== 'minimized' && (\n <Button\n className={b('meta-action')}\n view=\"flat\"\n onClick={() => setResultViewMode('minimized')}\n >\n <Icon data={XmarkIcon} size={16} />\n </Button>\n )}\n </>\n }\n />\n );\n});\n\ntype ResultMode = 'full' | 'minimized' | 'split';\nexport default function QueryEditor({\n onStartQuery,\n}: {\n onStartQuery?: (queryId: string) => boolean | void;\n}) {\n const query = useCurrentQuery();\n\n const [resultViewMode, setResultViewMode] = useState<ResultMode>('minimized');\n\n const [partSizes, setSize] = useState([50, 50]);\n\n useEffect(() => {\n setResultViewMode('split');\n }, [query?.id]);\n\n const isExecuted = useSelector(isQueryExecuted);\n const isLoading = useSelector(isQueryLoading);\n\n return (\n <>\n {isLoading && (\n <div className={b('loading')}>\n <Loader />\n </div>\n )}\n <FlexSplitPane\n className={b({[resultViewMode]: true})}\n direction={FlexSplitPane.VERTICAL}\n onResizeEnd={setSize}\n getInitialSizes={() => partSizes}\n >\n {resultViewMode !== 'full' && <QueryEditorView onStartQuery={onStartQuery} />}\n\n {query?.id && isExecuted && (\n <ResultView\n query={query}\n setResultViewMode={setResultViewMode}\n resultViewMode={resultViewMode}\n />\n )}\n </FlexSplitPane>\n </>\n );\n}\n"],"mappings":"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"}
|
@@ -74,6 +74,7 @@ var useQueryResultTabs = exports.useQueryResultTabs = function useQueryResultTab
|
|
74
74
|
}
|
75
75
|
}, [activeResultParams]);
|
76
76
|
var tabs = (0, _react.useMemo)(function () {
|
77
|
+
var _query$progress, _query$progress2;
|
77
78
|
if (!query) {
|
78
79
|
return [];
|
79
80
|
}
|
@@ -81,7 +82,8 @@ var useQueryResultTabs = exports.useQueryResultTabs = function useQueryResultTab
|
|
81
82
|
id: QueryResultTab.META,
|
82
83
|
title: 'Meta'
|
83
84
|
}];
|
84
|
-
|
85
|
+
var emptyProgress = !((_query$progress = query.progress) !== null && _query$progress !== void 0 && (_query$progress = _query$progress.yql_plan) !== null && _query$progress !== void 0 && _query$progress.Basic.nodes.length) && !((_query$progress2 = query.progress) !== null && _query$progress2 !== void 0 && (_query$progress2 = _query$progress2.yql_plan) !== null && _query$progress2 !== void 0 && (_query$progress2 = _query$progress2.Basic.links) !== null && _query$progress2 !== void 0 && _query$progress2.length);
|
86
|
+
if (query.progress && !emptyProgress) {
|
85
87
|
items.unshift({
|
86
88
|
id: QueryResultTab.PROGRESS,
|
87
89
|
title: 'Progress'
|
@@ -93,8 +95,8 @@ var useQueryResultTabs = exports.useQueryResultTabs = function useQueryResultTab
|
|
93
95
|
title: 'Error'
|
94
96
|
});
|
95
97
|
} else if (query.state === _api.QueryStatus.COMPLETED) {
|
96
|
-
var _query$
|
97
|
-
if ((_query$
|
98
|
+
var _query$progress3;
|
99
|
+
if ((_query$progress3 = query.progress) !== null && _query$progress3 !== void 0 && _query$progress3.yql_statistics) {
|
98
100
|
items.unshift({
|
99
101
|
id: QueryResultTab.STATISTIC,
|
100
102
|
title: 'Statistics'
|