@ytsaurus/ui 0.0.4 → 0.1.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/build/cjs/server/ServerFactory.js +2 -1
- package/build/cjs/server/ServerFactory.js.map +1 -1
- package/build/cjs/server/config.localcluster.js +1 -1
- package/build/cjs/server/config.localcluster.js.map +1 -1
- package/build/cjs/server/configs/local.d.ts +3 -0
- package/build/cjs/server/configs/local.js +33 -0
- package/build/cjs/server/configs/local.js.map +1 -0
- package/build/cjs/server/utils/default-settings.js +1 -1
- package/build/cjs/server/utils/default-settings.js.map +1 -1
- package/build/cjs/shared/ui-settings.d.ts +1 -0
- package/build/cjs/shared/ui-settings.js.map +1 -1
- package/build/cjs/ui/common/utils/url-encoder.js +1 -0
- package/build/cjs/ui/common/utils/url-encoder.js.map +1 -1
- package/build/cjs/ui/common/yt-api-init.js +7 -12
- package/build/cjs/ui/common/yt-api-init.js.map +1 -1
- package/build/cjs/ui/components/EditableAsText/EditableAsText.js +8 -6
- package/build/cjs/ui/components/EditableAsText/EditableAsText.js.map +1 -1
- package/build/cjs/ui/components/SchemaDataType/SchemaDataType.js +3 -59
- package/build/cjs/ui/components/SchemaDataType/SchemaDataType.js.map +1 -1
- package/build/cjs/ui/components/SchemaDataType/dateTypesV3.d.ts +48 -0
- package/build/cjs/ui/components/SchemaDataType/dateTypesV3.js +65 -0
- package/build/cjs/ui/components/SchemaDataType/dateTypesV3.js.map +1 -0
- package/build/cjs/ui/config/index.d.ts +1 -0
- package/build/cjs/ui/config/index.js +4 -0
- package/build/cjs/ui/config/index.js.map +1 -1
- package/build/cjs/ui/containers/ClusterPage/ClusterPage.js.map +1 -1
- package/build/cjs/ui/pages/navigation/content/Table/TableOverview/CreateQueryFromTable.d.ts +7 -0
- package/build/cjs/ui/pages/navigation/content/Table/TableOverview/CreateQueryFromTable.js +78 -0
- package/build/cjs/ui/pages/navigation/content/Table/TableOverview/CreateQueryFromTable.js.map +1 -0
- package/build/cjs/ui/pages/navigation/content/Table/TableOverview/TableOverview.d.ts +3 -1
- package/build/cjs/ui/pages/navigation/content/Table/TableOverview/TableOverview.js +10 -2
- package/build/cjs/ui/pages/navigation/content/Table/TableOverview/TableOverview.js.map +1 -1
- package/build/cjs/ui/pages/query-tracker/QueriesHistoryList/index.js +3 -3
- package/build/cjs/ui/pages/query-tracker/QueriesHistoryList/index.js.map +1 -1
- package/build/cjs/ui/pages/query-tracker/QueryDuration/index.js +13 -2
- package/build/cjs/ui/pages/query-tracker/QueryDuration/index.js.map +1 -1
- package/build/cjs/ui/pages/query-tracker/QueryEditor/QueryEditor.d.ts +3 -1
- package/build/cjs/ui/pages/query-tracker/QueryEditor/QueryEditor.js +19 -10
- package/build/cjs/ui/pages/query-tracker/QueryEditor/QueryEditor.js.map +1 -1
- package/build/cjs/ui/pages/query-tracker/QueryResults/index.d.ts +2 -0
- package/build/cjs/ui/pages/query-tracker/QueryResults/index.js +2 -3
- package/build/cjs/ui/pages/query-tracker/QueryResults/index.js.map +1 -1
- package/build/cjs/ui/pages/query-tracker/QueryResultsView/index.js +4 -9
- package/build/cjs/ui/pages/query-tracker/QueryResultsView/index.js.map +1 -1
- package/build/cjs/ui/pages/query-tracker/QueryStatus/index.js +2 -1
- package/build/cjs/ui/pages/query-tracker/QueryStatus/index.js.map +1 -1
- package/build/cjs/ui/pages/query-tracker/QueryTracker/QueryTracker.js +14 -2
- package/build/cjs/ui/pages/query-tracker/QueryTracker/QueryTracker.js.map +1 -1
- package/build/cjs/ui/pages/query-tracker/QueryTrackerNewButton/index.d.ts +18 -0
- package/build/cjs/ui/pages/query-tracker/QueryTrackerNewButton/index.js +89 -0
- package/build/cjs/ui/pages/query-tracker/QueryTrackerNewButton/index.js.map +1 -0
- package/build/cjs/ui/pages/query-tracker/QueryTrackerTopRow/QueryMetaForm/index.d.ts +4 -0
- package/build/cjs/ui/pages/query-tracker/QueryTrackerTopRow/QueryMetaForm/index.js +88 -0
- package/build/cjs/ui/pages/query-tracker/QueryTrackerTopRow/QueryMetaForm/index.js.map +1 -0
- package/build/cjs/ui/pages/query-tracker/QueryTrackerTopRow/index.d.ts +1 -0
- package/build/cjs/ui/pages/query-tracker/QueryTrackerTopRow/index.js +18 -131
- package/build/cjs/ui/pages/query-tracker/QueryTrackerTopRow/index.js.map +1 -1
- package/build/cjs/ui/pages/query-tracker/QueryWidget/index.d.ts +5 -0
- package/build/cjs/ui/pages/query-tracker/QueryWidget/index.js +78 -0
- package/build/cjs/ui/pages/query-tracker/QueryWidget/index.js.map +1 -0
- package/build/cjs/ui/pages/query-tracker/module/api.d.ts +15 -13
- package/build/cjs/ui/pages/query-tracker/module/api.js +175 -63
- package/build/cjs/ui/pages/query-tracker/module/api.js.map +1 -1
- package/build/cjs/ui/pages/query-tracker/module/query/actions.d.ts +3 -2
- package/build/cjs/ui/pages/query-tracker/module/query/actions.js +83 -23
- 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 +2 -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 +2 -1
- package/build/cjs/ui/pages/query-tracker/module/query/url_mapping.js +7 -3
- package/build/cjs/ui/pages/query-tracker/module/query/url_mapping.js.map +1 -1
- package/build/cjs/ui/pages/query-tracker/module/query_result/actions.js +48 -41
- package/build/cjs/ui/pages/query-tracker/module/query_result/actions.js.map +1 -1
- package/build/cjs/ui/pages/query-tracker/utils/navigation.d.ts +4 -1
- package/build/cjs/ui/pages/query-tracker/utils/navigation.js +8 -3
- package/build/cjs/ui/pages/query-tracker/utils/navigation.js.map +1 -1
- package/build/cjs/ui/pages/query-tracker/utils/query.d.ts +1 -0
- package/build/cjs/ui/pages/query-tracker/utils/query.js +4 -0
- package/build/cjs/ui/pages/query-tracker/utils/query.js.map +1 -1
- package/build/cjs/ui/pages/query-tracker/utils/query_generate.d.ts +13 -0
- package/build/cjs/ui/pages/query-tracker/utils/query_generate.js +84 -0
- package/build/cjs/ui/pages/query-tracker/utils/query_generate.js.map +1 -0
- package/build/cjs/ui/pages/tablet_cell_bundles/bundles/BundleEditorDialog/BundleEditorDialog.js +19 -36
- package/build/cjs/ui/pages/tablet_cell_bundles/bundles/BundleEditorDialog/BundleEditorDialog.js.map +1 -1
- package/build/cjs/ui/pages/tablet_cell_bundles/bundles/BundleEditorDialog/components/BundleInput/BundleInput.d.ts +0 -1
- package/build/cjs/ui/pages/tablet_cell_bundles/bundles/BundleEditorDialog/components/BundleInput/BundleInput.js +15 -41
- package/build/cjs/ui/pages/tablet_cell_bundles/bundles/BundleEditorDialog/components/BundleInput/BundleInput.js.map +1 -1
- package/build/cjs/ui/pages/tablet_cell_bundles/bundles/BundleEditorDialog/components/BundleTitle/BundleTitle.d.ts +1 -2
- package/build/cjs/ui/pages/tablet_cell_bundles/bundles/BundleEditorDialog/components/BundleTitle/BundleTitle.js +1 -5
- package/build/cjs/ui/pages/tablet_cell_bundles/bundles/BundleEditorDialog/components/BundleTitle/BundleTitle.js.map +1 -1
- package/build/cjs/ui/store/selectors/global/index.d.ts +3 -0
- package/build/cjs/ui/store/selectors/global/index.js +20 -1
- package/build/cjs/ui/store/selectors/global/index.js.map +1 -1
- package/build/esm/server/ServerFactory.js +2 -1
- package/build/esm/server/ServerFactory.js.map +1 -1
- package/build/esm/server/config.localcluster.js +1 -1
- package/build/esm/server/config.localcluster.js.map +1 -1
- package/build/esm/server/configs/local.d.ts +3 -0
- package/build/esm/server/configs/local.js +28 -0
- package/build/esm/server/configs/local.js.map +1 -0
- package/build/esm/server/utils/default-settings.js +1 -1
- package/build/esm/server/utils/default-settings.js.map +1 -1
- package/build/esm/shared/ui-settings.d.ts +1 -0
- package/build/esm/shared/ui-settings.js.map +1 -1
- package/build/esm/ui/common/utils/url-encoder.js +1 -0
- package/build/esm/ui/common/utils/url-encoder.js.map +1 -1
- package/build/esm/ui/common/yt-api-init.js +4 -9
- package/build/esm/ui/common/yt-api-init.js.map +1 -1
- package/build/esm/ui/components/Dialog/Dialog.css +1 -1
- package/build/esm/ui/components/Dialog/Dialog.css.map +1 -1
- package/build/esm/ui/components/Dialog/Dialog.scss +1 -1
- package/build/esm/ui/components/EditableAsText/EditableAsText.js +8 -6
- package/build/esm/ui/components/EditableAsText/EditableAsText.js.map +1 -1
- package/build/esm/ui/components/SchemaDataType/SchemaDataType.js +2 -57
- package/build/esm/ui/components/SchemaDataType/SchemaDataType.js.map +1 -1
- package/build/esm/ui/components/SchemaDataType/dateTypesV3.d.ts +48 -0
- package/build/esm/ui/components/SchemaDataType/dateTypesV3.js +57 -0
- package/build/esm/ui/components/SchemaDataType/dateTypesV3.js.map +1 -0
- package/build/esm/ui/config/index.d.ts +1 -0
- package/build/esm/ui/config/index.js +3 -0
- package/build/esm/ui/config/index.js.map +1 -1
- package/build/esm/ui/containers/ClusterPage/ClusterPage.js.map +1 -1
- package/build/esm/ui/pages/navigation/content/Table/TableOverview/CreateQueryFromTable.css +8 -0
- package/build/esm/ui/pages/navigation/content/Table/TableOverview/CreateQueryFromTable.css.map +1 -0
- package/build/esm/ui/pages/navigation/content/Table/TableOverview/CreateQueryFromTable.d.ts +7 -0
- package/build/esm/ui/pages/navigation/content/Table/TableOverview/CreateQueryFromTable.js +72 -0
- package/build/esm/ui/pages/navigation/content/Table/TableOverview/CreateQueryFromTable.js.map +1 -0
- package/build/esm/ui/pages/navigation/content/Table/TableOverview/CreateQueryFromTable.scss +7 -0
- package/build/esm/ui/pages/navigation/content/Table/TableOverview/TableOverview.css +3 -0
- package/build/esm/ui/pages/navigation/content/Table/TableOverview/TableOverview.css.map +1 -1
- package/build/esm/ui/pages/navigation/content/Table/TableOverview/TableOverview.d.ts +3 -1
- package/build/esm/ui/pages/navigation/content/Table/TableOverview/TableOverview.js +11 -3
- package/build/esm/ui/pages/navigation/content/Table/TableOverview/TableOverview.js.map +1 -1
- package/build/esm/ui/pages/navigation/content/Table/TableOverview/TableOverview.scss +4 -0
- package/build/esm/ui/pages/query-tracker/QueriesHistoryList/index.js +4 -4
- package/build/esm/ui/pages/query-tracker/QueriesHistoryList/index.js.map +1 -1
- package/build/esm/ui/pages/query-tracker/QueryDuration/index.js +13 -2
- package/build/esm/ui/pages/query-tracker/QueryDuration/index.js.map +1 -1
- package/build/esm/ui/pages/query-tracker/QueryEditor/QueryEditor.d.ts +3 -1
- package/build/esm/ui/pages/query-tracker/QueryEditor/QueryEditor.js +19 -10
- package/build/esm/ui/pages/query-tracker/QueryEditor/QueryEditor.js.map +1 -1
- package/build/esm/ui/pages/query-tracker/QueryResults/index.d.ts +2 -0
- package/build/esm/ui/pages/query-tracker/QueryResults/index.js +2 -3
- package/build/esm/ui/pages/query-tracker/QueryResults/index.js.map +1 -1
- package/build/esm/ui/pages/query-tracker/QueryResultsView/index.css +3 -10
- package/build/esm/ui/pages/query-tracker/QueryResultsView/index.css.map +1 -1
- package/build/esm/ui/pages/query-tracker/QueryResultsView/index.js +4 -9
- package/build/esm/ui/pages/query-tracker/QueryResultsView/index.js.map +1 -1
- package/build/esm/ui/pages/query-tracker/QueryResultsView/index.scss +3 -11
- package/build/esm/ui/pages/query-tracker/QueryStatus/index.css +4 -0
- package/build/esm/ui/pages/query-tracker/QueryStatus/index.css.map +1 -1
- package/build/esm/ui/pages/query-tracker/QueryStatus/index.js +2 -1
- package/build/esm/ui/pages/query-tracker/QueryStatus/index.js.map +1 -1
- package/build/esm/ui/pages/query-tracker/QueryStatus/index.scss +4 -0
- package/build/esm/ui/pages/query-tracker/QueryTracker/QueryTracker.js +16 -4
- package/build/esm/ui/pages/query-tracker/QueryTracker/QueryTracker.js.map +1 -1
- package/build/esm/ui/pages/query-tracker/QueryTrackerNewButton/index.css +19 -0
- package/build/esm/ui/pages/query-tracker/QueryTrackerNewButton/index.css.map +1 -0
- package/build/esm/ui/pages/query-tracker/QueryTrackerNewButton/index.d.ts +18 -0
- package/build/esm/ui/pages/query-tracker/QueryTrackerNewButton/index.js +82 -0
- package/build/esm/ui/pages/query-tracker/QueryTrackerNewButton/index.js.map +1 -0
- package/build/esm/ui/pages/query-tracker/QueryTrackerNewButton/index.scss +20 -0
- package/build/esm/ui/pages/query-tracker/QueryTrackerTopRow/QueryMetaForm/index.css +13 -0
- package/build/esm/ui/pages/query-tracker/QueryTrackerTopRow/QueryMetaForm/index.css.map +1 -0
- package/build/esm/ui/pages/query-tracker/QueryTrackerTopRow/QueryMetaForm/index.d.ts +4 -0
- package/build/esm/ui/pages/query-tracker/QueryTrackerTopRow/QueryMetaForm/index.js +82 -0
- package/build/esm/ui/pages/query-tracker/QueryTrackerTopRow/QueryMetaForm/index.js.map +1 -0
- package/build/esm/ui/pages/query-tracker/QueryTrackerTopRow/QueryMetaForm/index.scss +13 -0
- package/build/esm/ui/pages/query-tracker/QueryTrackerTopRow/index.css +6 -16
- package/build/esm/ui/pages/query-tracker/QueryTrackerTopRow/index.css.map +1 -1
- package/build/esm/ui/pages/query-tracker/QueryTrackerTopRow/index.d.ts +1 -0
- package/build/esm/ui/pages/query-tracker/QueryTrackerTopRow/index.js +19 -133
- package/build/esm/ui/pages/query-tracker/QueryTrackerTopRow/index.js.map +1 -1
- package/build/esm/ui/pages/query-tracker/QueryTrackerTopRow/index.scss +4 -20
- package/build/esm/ui/pages/query-tracker/QueryWidget/index.css +28 -0
- package/build/esm/ui/pages/query-tracker/QueryWidget/index.css.map +1 -0
- package/build/esm/ui/pages/query-tracker/QueryWidget/index.d.ts +5 -0
- package/build/esm/ui/pages/query-tracker/QueryWidget/index.js +73 -0
- package/build/esm/ui/pages/query-tracker/QueryWidget/index.js.map +1 -0
- package/build/esm/ui/pages/query-tracker/QueryWidget/index.scss +31 -0
- package/build/esm/ui/pages/query-tracker/module/api.d.ts +15 -13
- package/build/esm/ui/pages/query-tracker/module/api.js +175 -63
- package/build/esm/ui/pages/query-tracker/module/api.js.map +1 -1
- package/build/esm/ui/pages/query-tracker/module/query/actions.d.ts +3 -2
- package/build/esm/ui/pages/query-tracker/module/query/actions.js +83 -24
- 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 +2 -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 +2 -1
- package/build/esm/ui/pages/query-tracker/module/query/url_mapping.js +7 -3
- package/build/esm/ui/pages/query-tracker/module/query/url_mapping.js.map +1 -1
- package/build/esm/ui/pages/query-tracker/module/query_result/actions.js +48 -41
- package/build/esm/ui/pages/query-tracker/module/query_result/actions.js.map +1 -1
- package/build/esm/ui/pages/query-tracker/utils/navigation.d.ts +4 -1
- package/build/esm/ui/pages/query-tracker/utils/navigation.js +8 -3
- package/build/esm/ui/pages/query-tracker/utils/navigation.js.map +1 -1
- package/build/esm/ui/pages/query-tracker/utils/query.d.ts +1 -0
- package/build/esm/ui/pages/query-tracker/utils/query.js +4 -1
- package/build/esm/ui/pages/query-tracker/utils/query.js.map +1 -1
- package/build/esm/ui/pages/query-tracker/utils/query_generate.d.ts +13 -0
- package/build/esm/ui/pages/query-tracker/utils/query_generate.js +73 -0
- package/build/esm/ui/pages/query-tracker/utils/query_generate.js.map +1 -0
- package/build/esm/ui/pages/tablet_cell_bundles/bundles/BundleEditorDialog/BundleEditorDialog.css +3 -15
- package/build/esm/ui/pages/tablet_cell_bundles/bundles/BundleEditorDialog/BundleEditorDialog.css.map +1 -1
- package/build/esm/ui/pages/tablet_cell_bundles/bundles/BundleEditorDialog/BundleEditorDialog.js +19 -36
- package/build/esm/ui/pages/tablet_cell_bundles/bundles/BundleEditorDialog/BundleEditorDialog.js.map +1 -1
- package/build/esm/ui/pages/tablet_cell_bundles/bundles/BundleEditorDialog/BundleEditorDialog.scss +5 -21
- package/build/esm/ui/pages/tablet_cell_bundles/bundles/BundleEditorDialog/components/BundleInput/BundleInput.css +1 -1
- package/build/esm/ui/pages/tablet_cell_bundles/bundles/BundleEditorDialog/components/BundleInput/BundleInput.css.map +1 -1
- package/build/esm/ui/pages/tablet_cell_bundles/bundles/BundleEditorDialog/components/BundleInput/BundleInput.d.ts +0 -1
- package/build/esm/ui/pages/tablet_cell_bundles/bundles/BundleEditorDialog/components/BundleInput/BundleInput.js +16 -42
- package/build/esm/ui/pages/tablet_cell_bundles/bundles/BundleEditorDialog/components/BundleInput/BundleInput.js.map +1 -1
- package/build/esm/ui/pages/tablet_cell_bundles/bundles/BundleEditorDialog/components/BundleInput/BundleInput.scss +1 -1
- package/build/esm/ui/pages/tablet_cell_bundles/bundles/BundleEditorDialog/components/BundleTitle/BundleTitle.css +0 -9
- package/build/esm/ui/pages/tablet_cell_bundles/bundles/BundleEditorDialog/components/BundleTitle/BundleTitle.css.map +1 -1
- package/build/esm/ui/pages/tablet_cell_bundles/bundles/BundleEditorDialog/components/BundleTitle/BundleTitle.d.ts +1 -2
- package/build/esm/ui/pages/tablet_cell_bundles/bundles/BundleEditorDialog/components/BundleTitle/BundleTitle.js +1 -5
- package/build/esm/ui/pages/tablet_cell_bundles/bundles/BundleEditorDialog/components/BundleTitle/BundleTitle.js.map +1 -1
- package/build/esm/ui/pages/tablet_cell_bundles/bundles/BundleEditorDialog/components/BundleTitle/BundleTitle.scss +0 -11
- package/build/esm/ui/store/selectors/global/index.d.ts +3 -0
- package/build/esm/ui/store/selectors/global/index.js +16 -1
- package/build/esm/ui/store/selectors/global/index.js.map +1 -1
- package/build/img/svg/page-query-tracker.svg +3 -3
- package/package.json +3 -3
@@ -0,0 +1,65 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
5
|
+
value: true
|
6
|
+
});
|
7
|
+
exports.parseV3Type = parseV3Type;
|
8
|
+
var _map2 = _interopRequireDefault(require("lodash/map"));
|
9
|
+
var _capitalize2 = _interopRequireDefault(require("lodash/capitalize"));
|
10
|
+
function parseV3Type(initialType, primitiveTypes) {
|
11
|
+
function ysonTypeToYql(ysonType) {
|
12
|
+
return typeof ysonType === 'string' ? stringToYql(ysonType, primitiveTypes) : objectToYql(ysonType);
|
13
|
+
}
|
14
|
+
function stringToYql(ysonType, typesMap) {
|
15
|
+
if (typesMap.has(ysonType)) {
|
16
|
+
return ['DataType', (0, _capitalize2["default"])(ysonType)];
|
17
|
+
} else {
|
18
|
+
return ['UnknownType'];
|
19
|
+
}
|
20
|
+
}
|
21
|
+
function objectToYql(ysonType) {
|
22
|
+
switch (ysonType.type_name) {
|
23
|
+
case 'decimal':
|
24
|
+
return decimalToYql(ysonType);
|
25
|
+
case 'dict':
|
26
|
+
return ['DictType', ysonTypeToYql(ysonType.key), ysonTypeToYql(ysonType.value)];
|
27
|
+
case 'optional':
|
28
|
+
return ['OptionalType', ysonTypeToYql(ysonType.item)];
|
29
|
+
case 'tuple':
|
30
|
+
return tupleToYql(ysonType);
|
31
|
+
case 'list':
|
32
|
+
return ['ListType', ysonTypeToYql(ysonType.item)];
|
33
|
+
case 'struct':
|
34
|
+
return structToYql(ysonType);
|
35
|
+
case 'variant':
|
36
|
+
return ['VariantType', 'elements' in ysonType ? tupleToYql(ysonType) : structToYql(ysonType)];
|
37
|
+
case 'tagged':
|
38
|
+
return ['TaggedType', ysonType.tag, ysonTypeToYql(ysonType.item)];
|
39
|
+
default:
|
40
|
+
// let it be a fallback for now
|
41
|
+
return ['UnknownType'];
|
42
|
+
}
|
43
|
+
}
|
44
|
+
function tupleToYql(ysonType) {
|
45
|
+
return ['TupleType', (0, _map2["default"])(ysonType.elements, function (_ref) {
|
46
|
+
var type = _ref.type;
|
47
|
+
return ysonTypeToYql(type);
|
48
|
+
})];
|
49
|
+
}
|
50
|
+
function structToYql(ysonType) {
|
51
|
+
return ['StructType', (0, _map2["default"])(ysonType.members, function (_ref2) {
|
52
|
+
var name = _ref2.name,
|
53
|
+
type = _ref2.type;
|
54
|
+
return [name, ysonTypeToYql(type)];
|
55
|
+
})];
|
56
|
+
}
|
57
|
+
function decimalToYql(ysonType) {
|
58
|
+
var precision = ysonType.precision,
|
59
|
+
scale = ysonType.scale;
|
60
|
+
return ['DataType', 'Decimal', precision, scale];
|
61
|
+
}
|
62
|
+
return ysonTypeToYql(initialType);
|
63
|
+
}
|
64
|
+
// #sourceMappingURL=dateTypesV3.js.map
|
65
|
+
// #sourceMappingURL=dateTypesV3.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"names":["parseV3Type","initialType","primitiveTypes","ysonTypeToYql","ysonType","stringToYql","objectToYql","typesMap","has","_capitalize","type_name","decimalToYql","key","value","item","tupleToYql","structToYql","tag","_map","elements","_ref","type","members","_ref2","name","precision","scale"],"sources":["dateTypesV3.ts"],"sourcesContent":["import _ from 'lodash';\n\nexport type Type = string | ComplexType;\n\ninterface Decimal {\n type_name: 'decimal';\n precision: number;\n scale: number;\n}\n\ninterface Dict {\n type_name: 'dict';\n key: Type;\n value: Type;\n}\n\ntype Variant = {type_name: 'variant'} & VariantData;\ntype VariantData = VariantElements | VariantMembers;\ntype VariantElements = {elements: Array<{type: Type}>};\ntype VariantMembers = {members: Array<{name: string; type: Type}>};\n\ninterface Optional {\n type_name: 'optional';\n item: Type;\n}\n\ntype Tuple = {type_name: 'tuple'} & VariantElements;\n\ninterface List {\n type_name: 'list';\n item: Type;\n}\n\ntype Struct = {type_name: 'struct'} & VariantMembers;\n\ninterface Tagged {\n type_name: 'tagged';\n tag: string;\n item: Type;\n}\n\ntype ComplexType = Decimal | Dict | Variant | Optional | Tuple | List | Struct | Tagged;\n\nexport function parseV3Type(initialType: Type, primitiveTypes: Set<string>) {\n function ysonTypeToYql(ysonType: Type) {\n return typeof ysonType === 'string'\n ? stringToYql(ysonType, primitiveTypes)\n : objectToYql(ysonType);\n }\n\n function stringToYql(ysonType: string, typesMap: Set<string>) {\n if (typesMap.has(ysonType)) {\n return ['DataType', _.capitalize(ysonType)] as const;\n } else {\n return ['UnknownType'] as const;\n }\n }\n\n function objectToYql(ysonType: ComplexType): any {\n switch (ysonType.type_name) {\n case 'decimal':\n return decimalToYql(ysonType);\n case 'dict':\n return [\n 'DictType',\n ysonTypeToYql(ysonType.key),\n ysonTypeToYql(ysonType.value),\n ] as const;\n case 'optional':\n return ['OptionalType' as const, ysonTypeToYql(ysonType.item)] as const;\n case 'tuple':\n return tupleToYql(ysonType);\n case 'list':\n return ['ListType', ysonTypeToYql(ysonType.item)] as const;\n case 'struct':\n return structToYql(ysonType);\n case 'variant':\n return [\n 'VariantType',\n 'elements' in ysonType ? tupleToYql(ysonType) : structToYql(ysonType),\n ] as const;\n case 'tagged':\n return ['TaggedType', ysonType.tag, ysonTypeToYql(ysonType.item)] as const;\n default:\n // let it be a fallback for now\n return ['UnknownType'] as const;\n }\n }\n\n function tupleToYql(ysonType: VariantElements) {\n return ['TupleType', _.map(ysonType.elements, ({type}) => ysonTypeToYql(type))] as const;\n }\n\n function structToYql(ysonType: VariantMembers) {\n return [\n 'StructType',\n _.map(ysonType.members, ({name, type}) => [name, ysonTypeToYql(type)]),\n ] as const;\n }\n\n function decimalToYql(ysonType: {precision: number; scale: number}) {\n const {precision, scale} = ysonType;\n return ['DataType', 'Decimal', precision, scale] as const;\n }\n\n return ysonTypeToYql(initialType);\n}\n"],"mappings":";;;;;;;;;AA2CO,SAASA,WAAWA,CAACC,WAAiB,EAAEC,cAA2B,EAAE;EACxE,SAASC,aAAaA,CAACC,QAAc,EAAE;IACnC,OAAO,OAAOA,QAAQ,KAAK,QAAQ,GAC7BC,WAAW,CAACD,QAAQ,EAAEF,cAAc,CAAC,GACrCI,WAAW,CAACF,QAAQ,CAAC;EAC/B;EAEA,SAASC,WAAWA,CAACD,QAAgB,EAAEG,QAAqB,EAAE;IAC1D,IAAIA,QAAQ,CAACC,GAAG,CAACJ,QAAQ,CAAC,EAAE;MACxB,OAAO,CAAC,UAAU,EAAE,IAAAK,uBAAA,EAAaL,QAAQ,CAAC,CAAC;IAC/C,CAAC,MAAM;MACH,OAAO,CAAC,aAAa,CAAC;IAC1B;EACJ;EAEA,SAASE,WAAWA,CAACF,QAAqB,EAAO;IAC7C,QAAQA,QAAQ,CAACM,SAAS;MACtB,KAAK,SAAS;QACV,OAAOC,YAAY,CAACP,QAAQ,CAAC;MACjC,KAAK,MAAM;QACP,OAAO,CACH,UAAU,EACVD,aAAa,CAACC,QAAQ,CAACQ,GAAG,CAAC,EAC3BT,aAAa,CAACC,QAAQ,CAACS,KAAK,CAAC,CAChC;MACL,KAAK,UAAU;QACX,OAAO,CAAC,cAAc,EAAWV,aAAa,CAACC,QAAQ,CAACU,IAAI,CAAC,CAAC;MAClE,KAAK,OAAO;QACR,OAAOC,UAAU,CAACX,QAAQ,CAAC;MAC/B,KAAK,MAAM;QACP,OAAO,CAAC,UAAU,EAAED,aAAa,CAACC,QAAQ,CAACU,IAAI,CAAC,CAAC;MACrD,KAAK,QAAQ;QACT,OAAOE,WAAW,CAACZ,QAAQ,CAAC;MAChC,KAAK,SAAS;QACV,OAAO,CACH,aAAa,EACb,UAAU,IAAIA,QAAQ,GAAGW,UAAU,CAACX,QAAQ,CAAC,GAAGY,WAAW,CAACZ,QAAQ,CAAC,CACxE;MACL,KAAK,QAAQ;QACT,OAAO,CAAC,YAAY,EAAEA,QAAQ,CAACa,GAAG,EAAEd,aAAa,CAACC,QAAQ,CAACU,IAAI,CAAC,CAAC;MACrE;QACI;QACA,OAAO,CAAC,aAAa,CAAC;IAAA;EAElC;EAEA,SAASC,UAAUA,CAACX,QAAyB,EAAE;IAC3C,OAAO,CAAC,WAAW,EAAE,IAAAc,gBAAA,EAAMd,QAAQ,CAACe,QAAQ,EAAE,UAAAC,IAAA;MAAA,IAAEC,IAAI,GAAAD,IAAA,CAAJC,IAAI;MAAA,OAAMlB,aAAa,CAACkB,IAAI,CAAC;IAAA,EAAC,CAAC;EACnF;EAEA,SAASL,WAAWA,CAACZ,QAAwB,EAAE;IAC3C,OAAO,CACH,YAAY,EACZ,IAAAc,gBAAA,EAAMd,QAAQ,CAACkB,OAAO,EAAE,UAAAC,KAAA;MAAA,IAAEC,IAAI,GAAAD,KAAA,CAAJC,IAAI;QAAEH,IAAI,GAAAE,KAAA,CAAJF,IAAI;MAAA,OAAM,CAACG,IAAI,EAAErB,aAAa,CAACkB,IAAI,CAAC,CAAC;IAAA,EAAC,CACzE;EACL;EAEA,SAASV,YAAYA,CAACP,QAA4C,EAAE;IAChE,IAAOqB,SAAS,GAAWrB,QAAQ,CAA5BqB,SAAS;MAAEC,KAAK,GAAItB,QAAQ,CAAjBsB,KAAK;IACvB,OAAO,CAAC,UAAU,EAAE,SAAS,EAAED,SAAS,EAAEC,KAAK,CAAC;EACpD;EAEA,OAAOvB,aAAa,CAACF,WAAW,CAAC;AACrC"}
|
@@ -12,6 +12,7 @@ export declare function docsUrl<T, K = string>(url: T, alt?: K): "" | T | NonNul
|
|
12
12
|
export declare function getDocsBaseUrl(): string | undefined;
|
13
13
|
export declare function getNewTableReplicasCount(): number;
|
14
14
|
export declare function getQueryTrackerStage(): string | undefined;
|
15
|
+
export declare function getQueryTrackerCluster(): string | undefined;
|
15
16
|
export declare function getConfigUploadTable(): {
|
16
17
|
uploadTableMaxSize: number;
|
17
18
|
uploadTableUseLocalmode: boolean | undefined;
|
@@ -15,6 +15,7 @@ exports.getConfigUploadTable = getConfigUploadTable;
|
|
15
15
|
exports.getDocsBaseUrl = getDocsBaseUrl;
|
16
16
|
exports.getJupyterBasePath = getJupyterBasePath;
|
17
17
|
exports.getNewTableReplicasCount = getNewTableReplicasCount;
|
18
|
+
exports.getQueryTrackerCluster = getQueryTrackerCluster;
|
18
19
|
exports.getQueryTrackerStage = getQueryTrackerStage;
|
19
20
|
exports.getSettingsDataFromInitialConfig = getSettingsDataFromInitialConfig;
|
20
21
|
exports.isDocsAllowed = isDocsAllowed;
|
@@ -61,6 +62,9 @@ function getNewTableReplicasCount() {
|
|
61
62
|
function getQueryTrackerStage() {
|
62
63
|
return uiSettings.queryTrackerStage;
|
63
64
|
}
|
65
|
+
function getQueryTrackerCluster() {
|
66
|
+
return uiSettings.queryTrackerCluster;
|
67
|
+
}
|
64
68
|
function getConfigUploadTable() {
|
65
69
|
var _uiSettings$uploadTab;
|
66
70
|
return {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["_UIFactory","_interopRequireDefault","require","getConfigData","window","__DATA__","uiSettings","_getConfigData","exports","getSettingsDataFromInitialConfig","settings","ytApiUseCORS","isIdmAclAvailable","UIFactory","getAclApi","isAllowed","getAccessLogBasePath","accessLogBasePath","getAccountsUsageBasePath","accountsUsageBasePath","getJupyterBasePath","jupyterBasePath","isDocsAllowed","Boolean","docsBaseUrl","docsUrl","url","alt","getDocsBaseUrl","getNewTableReplicasCount","newTableReplicasCount","getQueryTrackerStage","queryTrackerStage","getConfigUploadTable","_uiSettings$uploadTab","uploadTableMaxSize","uploadTableUseLocalmode","uploadTableExcelBaseUrl","allowDirectDownload","directDownload","createAdminReqTicketUrl","params","arguments","length","undefined","trackerBaseUrl","queue","trackerAdminRequestQueue","createTrackerUrl","createQuotaReqTicketUrl","trackerQuoteRequestQueue","search","URLSearchParams","Object","assign","toString","concat"],"sources":["index.ts"],"sourcesContent":["import _ from 'lodash';\nimport {ConfigData} from '../../shared/yt-types';\nimport UIFactory from '../UIFactory';\n\nexport function getConfigData(): ConfigData {\n return (window as any).__DATA__;\n}\n\nexport const uiSettings: Partial<Required<ConfigData>['uiSettings']> =\n getConfigData()?.uiSettings || {};\n\nexport function getSettingsDataFromInitialConfig() {\n return getConfigData().settings;\n}\n\nexport function ytApiUseCORS() {\n return getConfigData().ytApiUseCORS;\n}\nexport function isIdmAclAvailable() {\n return UIFactory.getAclApi().isAllowed;\n}\n\nexport function getAccessLogBasePath() {\n return uiSettings.accessLogBasePath;\n}\n\nexport function getAccountsUsageBasePath() {\n return uiSettings.accountsUsageBasePath;\n}\n\nexport function getJupyterBasePath() {\n return uiSettings.jupyterBasePath;\n}\n\nexport function isDocsAllowed() {\n return Boolean(uiSettings.docsBaseUrl);\n}\n\nexport function docsUrl<T, K = string>(url: T, alt?: K) {\n return isDocsAllowed() ? url : alt ?? '';\n}\n\nexport function getDocsBaseUrl() {\n return uiSettings.docsBaseUrl;\n}\n\nexport function getNewTableReplicasCount() {\n return uiSettings.newTableReplicasCount || 3;\n}\n\nexport function getQueryTrackerStage() {\n return uiSettings.queryTrackerStage;\n}\n\nexport function getConfigUploadTable() {\n return {\n uploadTableMaxSize: uiSettings.uploadTableMaxSize ?? 1024 * 1024 * 1024,\n uploadTableUseLocalmode: uiSettings.uploadTableUseLocalmode,\n uploadTableExcelBaseUrl: uiSettings.uploadTableExcelBaseUrl,\n };\n}\n\nexport function allowDirectDownload() {\n return uiSettings.directDownload;\n}\n\nexport function createAdminReqTicketUrl(params: Record<string, string> = {}) {\n const {trackerBaseUrl, trackerAdminRequestQueue: queue} = uiSettings;\n return createTrackerUrl(trackerBaseUrl, queue, params);\n}\n\nexport function createQuotaReqTicketUrl(params: Record<string, string> = {}) {\n const {trackerBaseUrl, trackerQuoteRequestQueue: queue} = uiSettings;\n return createTrackerUrl(trackerBaseUrl, queue, params);\n}\n\nfunction createTrackerUrl(\n trackerBaseUrl?: string,\n queue?: string,\n params: Record<string, string> = {},\n) {\n if (!queue || !trackerBaseUrl) {\n return {};\n }\n\n const search = new URLSearchParams(Object.assign(params, {queue})).toString();\n const url = `${trackerBaseUrl}/createTicket?${search}`;\n return {url, queue};\n}\n"],"mappings":"
|
1
|
+
{"version":3,"names":["_UIFactory","_interopRequireDefault","require","getConfigData","window","__DATA__","uiSettings","_getConfigData","exports","getSettingsDataFromInitialConfig","settings","ytApiUseCORS","isIdmAclAvailable","UIFactory","getAclApi","isAllowed","getAccessLogBasePath","accessLogBasePath","getAccountsUsageBasePath","accountsUsageBasePath","getJupyterBasePath","jupyterBasePath","isDocsAllowed","Boolean","docsBaseUrl","docsUrl","url","alt","getDocsBaseUrl","getNewTableReplicasCount","newTableReplicasCount","getQueryTrackerStage","queryTrackerStage","getQueryTrackerCluster","queryTrackerCluster","getConfigUploadTable","_uiSettings$uploadTab","uploadTableMaxSize","uploadTableUseLocalmode","uploadTableExcelBaseUrl","allowDirectDownload","directDownload","createAdminReqTicketUrl","params","arguments","length","undefined","trackerBaseUrl","queue","trackerAdminRequestQueue","createTrackerUrl","createQuotaReqTicketUrl","trackerQuoteRequestQueue","search","URLSearchParams","Object","assign","toString","concat"],"sources":["index.ts"],"sourcesContent":["import _ from 'lodash';\nimport {ConfigData} from '../../shared/yt-types';\nimport UIFactory from '../UIFactory';\n\nexport function getConfigData(): ConfigData {\n return (window as any).__DATA__;\n}\n\nexport const uiSettings: Partial<Required<ConfigData>['uiSettings']> =\n getConfigData()?.uiSettings || {};\n\nexport function getSettingsDataFromInitialConfig() {\n return getConfigData().settings;\n}\n\nexport function ytApiUseCORS() {\n return getConfigData().ytApiUseCORS;\n}\nexport function isIdmAclAvailable() {\n return UIFactory.getAclApi().isAllowed;\n}\n\nexport function getAccessLogBasePath() {\n return uiSettings.accessLogBasePath;\n}\n\nexport function getAccountsUsageBasePath() {\n return uiSettings.accountsUsageBasePath;\n}\n\nexport function getJupyterBasePath() {\n return uiSettings.jupyterBasePath;\n}\n\nexport function isDocsAllowed() {\n return Boolean(uiSettings.docsBaseUrl);\n}\n\nexport function docsUrl<T, K = string>(url: T, alt?: K) {\n return isDocsAllowed() ? url : alt ?? '';\n}\n\nexport function getDocsBaseUrl() {\n return uiSettings.docsBaseUrl;\n}\n\nexport function getNewTableReplicasCount() {\n return uiSettings.newTableReplicasCount || 3;\n}\n\nexport function getQueryTrackerStage() {\n return uiSettings.queryTrackerStage;\n}\n\nexport function getQueryTrackerCluster() {\n return uiSettings.queryTrackerCluster;\n}\n\nexport function getConfigUploadTable() {\n return {\n uploadTableMaxSize: uiSettings.uploadTableMaxSize ?? 1024 * 1024 * 1024,\n uploadTableUseLocalmode: uiSettings.uploadTableUseLocalmode,\n uploadTableExcelBaseUrl: uiSettings.uploadTableExcelBaseUrl,\n };\n}\n\nexport function allowDirectDownload() {\n return uiSettings.directDownload;\n}\n\nexport function createAdminReqTicketUrl(params: Record<string, string> = {}) {\n const {trackerBaseUrl, trackerAdminRequestQueue: queue} = uiSettings;\n return createTrackerUrl(trackerBaseUrl, queue, params);\n}\n\nexport function createQuotaReqTicketUrl(params: Record<string, string> = {}) {\n const {trackerBaseUrl, trackerQuoteRequestQueue: queue} = uiSettings;\n return createTrackerUrl(trackerBaseUrl, queue, params);\n}\n\nfunction createTrackerUrl(\n trackerBaseUrl?: string,\n queue?: string,\n params: Record<string, string> = {},\n) {\n if (!queue || !trackerBaseUrl) {\n return {};\n }\n\n const search = new URLSearchParams(Object.assign(params, {queue})).toString();\n const url = `${trackerBaseUrl}/createTicket?${search}`;\n return {url, queue};\n}\n"],"mappings":"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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactRouter","_reactRedux","_bemCnLite","_interopRequireDefault","_BanPage","_MaintenancePage","_HandleRedirect","_Components","_Operations","_Accounts","_Dashboard","_System","_Navigation","_PathViewer","_Tablet","_TabletCellBundles","_GroupsPage","_UsersPage","_Scheduling","_QueryTracker","_Job","_ClusterPageHeader","_PageTracker","_PageHead","_ConnectionErrorRegion","_GeneralErrorRegion","_FlexSplitPane","_Error","_index","_menu","_settings","_clusterParams","_global","_global2","_utils","_settings2","_settings3","_SupportedFeaturesUpdater","_RumUiContext","_rumMeasureTypes","_useCluster","_ExtraClusterPageRoutes","_jsxRuntime","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","b","cn","RedirectToBanIfNeededMemo","React","memo","RedirectToBanIfNeeded","ClusterPage","_Component","_inherits","_super","_createSuper","_this","_classCallCheck","_len","arguments","length","args","Array","_key","apply","concat","state","width","contentPaneRef","createRef","_onUpdateEnd","_this$props","props","cluster","trackVisit","updateTitle","initClusterParams","isRedirectToBetaSwitched","setSetting","Promise","resolve","then","SettingName","DEVELOPMENT","REDIRECT_TO_BETA_SWITCHED","NAMESPACES","REDIRECT_TO_BETA","_initMenuCollection","onResize","splitScreen","toolbar","document","querySelector","isSplit","gutterWidth","offset","getElementById","SPLIT_PANE_ID","clientWidth","style","right","window","dispatchEvent","Event","handleSplit","updateWidthModifier","onResizeEnd","sizes","NAVIGATION","CLUSTER_PAGE_PANE_SIZES","getInitialSizes","clusterPagePaneSizes","_createClass","value","componentDidMount","updateCluster","getSnapshotBeforeUpdate","prevProps","pageYOffset","current","scrollTop","componentDidUpdate","prevState","prevScroll","scrollBy","prevCluster","componentWillUnmount","path","page","itemName","_this$props2","splitMenuItemsAction","joinMenuItemsAction","settingsMap","_this$contentPaneRef$","currentWidth","Infinity","setState","renderError","clusterConfig","_ref","error","errorType","LOAD_ERROR","CONNECTION","_jsx","ConnectionErrorRegion","id","AUTHENTICATION","GeneralErrorRegion","message","GENERAL","isParamsLoading","_this$props3","paramsCluster","renderContent","_this$props4","startingPage","isLoaded","hasError","paramsError","adminPages","isAdmin","_jsxs","Fragment","children","SupportedFeaturesUpdater","HandleMaintenanceRedirect","to","Page","BAN","Switch","Route","component","BanPage","MAINTENANCE","MaintenancePage","COMPONENTS","Components","OPERATIONS","Operations","JOB","Job","DASHBOARD","Dashboard","SYSTEM","System","ACCOUNTS","Accounts","TABLET_CELL_BUNDLES","CHAOS_CELL_BUNDLES","TabletCellBundles","Navigation","PATH_VIEWER","PathViewer","TABLET","Tablet","USERS","UsersPage","GROUPS","GroupsPage","SCHEDULING","Scheduling","includes","QUERIES","QueryTracker","Redirect","from","VERSIONS","makeExtraPageRoutes","PageTracker","className","ErrorBlock","render","_this$props5","clusters","getClusterConfig","ClusterPageStopRumMeasure","PageHeadByCluster","ClusterPageHeader","FlexSplitPane","paneClassNames","direction","HORIZONTAL","onSplit","onUnSplit","minSize","ref","split","Component","mapStateToProps","_state$global","global","login","maintenancePageEvent","loadState","paramsLoading","clustersMenu","LOADING_STATUS","LOADED","ERROR","isRecentClustersFirst","isRecentPagesFirst","getClusterPagePaneSizes","getStartingPage","isDeveloper","getAdminPages","mapDispatchToProps","_default","connect","exports","_ref2","_useSelector","useSelector","blocked","banned","_useLocation","useLocation","pathname","enableRedirect","endsWith","useClusterFromLocation","useRumMeasureStart","type","RumMeasureTypes","CLUSTER_PARAMS","subPage","allowStop","_ref3","_ref4","_slicedToArray","startDeps","useRumMeasureStop","_ref5","_ref6","stopDeps"],"sources":["ClusterPage.js"],"sourcesContent":["import React, {Component, Fragment} from 'react';\nimport {Redirect, Route, Switch, useLocation} from 'react-router';\nimport {connect, useSelector} from 'react-redux';\nimport PropTypes from 'prop-types';\nimport cn from 'bem-cn-lite';\n\nimport BanPage from '../BanPage/BanPage';\nimport MaintenancePage from '../MaintenancePage/MaintenancePage';\nimport HandleMaintenanceRedirect from '../MaintenancePage/HandleRedirect';\nimport Components from '../../pages/components/Components/Components';\nimport Operations from '../../pages/operations/Operations/Operations';\nimport Accounts from '../../pages/accounts/Accounts/Accounts';\nimport Dashboard from '../../pages/dashboard/Dashboard/Dashboard';\nimport System from '../../pages/system/System/System';\nimport Navigation from '../../pages/navigation/Navigation/Navigation';\nimport PathViewer from '../../pages/path-viewer/PathViewer';\nimport Tablet from '../../pages/tablet/Tablet';\nimport TabletCellBundles from '../../pages/tablet_cell_bundles/TabletCellBundles';\nimport GroupsPage from '../../pages/groups/GroupsPage';\nimport UsersPage from '../../pages/users/UsersPage';\nimport Scheduling from '../../pages/scheduling/Scheduling/Scheduling';\nimport {QueryTracker} from '../../pages/query-tracker/QueryTracker/QueryTracker';\nimport Job from '../../pages/job/Job';\n\nimport ClusterPageHeader from '../ClusterPageHeader/ClusterPageHeader';\nimport PageTracker from './PageTracker';\n\nimport {PageHeadByCluster} from '../../components/PageHead/PageHead';\nimport ConnectionErrorRegion from '../../components/PreloaderErrors/ConnectionErrorRegion';\nimport GeneralErrorRegion from '../../components/PreloaderErrors/GeneralErrorRegion';\nimport FlexSplitPane from '../../components/FlexSplitPane/FlexSplitPane';\nimport ErrorBlock from '../../components/Error/Error';\n\nimport {Page, SPLIT_PANE_ID, LOADING_STATUS, LOAD_ERROR} from '../../constants/index';\nimport {trackVisit, splitMenuItemsAction, joinMenuItemsAction} from '../../store/actions/menu';\nimport {setSetting} from '../../store/actions/settings';\nimport {updateCluster, initClusterParams} from '../../store/actions/cluster-params';\nimport {updateTitle} from '../../store/actions/global';\nimport {getAdminPages, isDeveloper} from '../../store/selectors/global';\nimport {getClusterConfig} from '../../utils';\nimport {NAMESPACES, SettingName} from '../../../shared/constants/settings';\nimport {\n isRedirectToBetaSwitched,\n isRecentClustersFirst,\n isRecentPagesFirst,\n getClusterPagePaneSizes,\n getStartingPage,\n} from '../../store/selectors/settings';\nimport SupportedFeaturesUpdater from './SupportedFeaturesUpdater';\nimport {useRumMeasureStart, useRumMeasureStop} from '../../rum/RumUiContext';\nimport {RumMeasureTypes} from '../../rum/rum-measure-types';\nimport {useClusterFromLocation} from '../../hooks/use-cluster';\nimport {makeExtraPageRoutes} from './ExtraClusterPageRoutes';\n\nimport './ClusterPage.scss';\n\nconst b = cn('cluster-page');\n\nconst RedirectToBanIfNeededMemo = React.memo(RedirectToBanIfNeeded);\n\nclass ClusterPage extends Component {\n static propTypes = {\n cluster: PropTypes.string,\n\n // from connect\n clusters: PropTypes.object.isRequired,\n clusterPagePaneSizes: PropTypes.array,\n login: PropTypes.string,\n queriesPageAllowed: PropTypes.bool,\n isAdmin: PropTypes.bool,\n adminPages: PropTypes.array,\n maintenancePageEvent: PropTypes.object,\n startingPage: PropTypes.string.isRequired,\n isLoaded: PropTypes.bool.isRequired,\n hasError: PropTypes.bool.isRequired,\n error: PropTypes.shape({\n errorType: PropTypes.string,\n }).isRequired,\n paramsError: PropTypes.any,\n splitScreen: PropTypes.shape({\n isSplit: PropTypes.bool.isRequired,\n paneClassNames: PropTypes.array.isRequired,\n }).isRequired,\n\n splitMenuItemsAction: PropTypes.func.isRequired,\n setSetting: PropTypes.func.isRequired,\n joinMenuItemsAction: PropTypes.func.isRequired,\n initClusterParams: PropTypes.func.isRequired,\n updateCluster: PropTypes.func.isRequired,\n updateTitle: PropTypes.func.isRequired,\n trackVisit: PropTypes.func.isRequired,\n };\n\n state = {\n width: 'large',\n };\n\n componentDidMount() {\n const {cluster} = this.props;\n this.props.updateCluster(cluster, this._onUpdateEnd);\n }\n\n getSnapshotBeforeUpdate(prevProps) {\n if (prevProps.splitScreen.isSplit !== this.props.splitScreen.isSplit) {\n return this.props.splitScreen.isSplit\n ? window.pageYOffset\n : this.contentPaneRef.current.scrollTop;\n }\n\n return null;\n }\n\n componentDidUpdate(prevProps, prevState, prevScroll) {\n if (prevScroll !== null) {\n if (this.props.splitScreen.isSplit) {\n this.contentPaneRef.current.scrollTop = prevScroll;\n }\n\n window.scrollBy(0, prevScroll);\n }\n\n const {cluster: prevCluster} = prevProps;\n const {cluster} = this.props;\n\n if (cluster !== prevCluster) {\n this.props.updateCluster(cluster, this._onUpdateEnd);\n }\n }\n\n componentWillUnmount() {\n this.props.updateTitle({path: '', page: ''});\n }\n\n contentPaneRef = React.createRef();\n\n _onUpdateEnd = () => {\n const {\n cluster,\n trackVisit,\n updateTitle,\n initClusterParams,\n isRedirectToBetaSwitched,\n setSetting,\n } = this.props;\n\n return Promise.resolve().then(() => {\n // todo: get rid of redirectToBetaSwitched setting.\n // It`s exist for set default value of redirectToBeta setting, when settings document is empty yet.\n // Set redirectToBeta on server after get all user settings (home.js). Or get rid of this logic at all.\n if (!isRedirectToBetaSwitched) {\n setSetting(\n SettingName.DEVELOPMENT.REDIRECT_TO_BETA_SWITCHED,\n NAMESPACES.DEVELOPMENT,\n true,\n );\n setSetting(SettingName.DEVELOPMENT.REDIRECT_TO_BETA, NAMESPACES.DEVELOPMENT, true);\n }\n\n initClusterParams(cluster);\n this._initMenuCollection('cluster');\n this._initMenuCollection('page');\n trackVisit('cluster', cluster);\n updateTitle({cluster});\n });\n };\n\n _initMenuCollection(itemName) {\n const {splitMenuItemsAction, joinMenuItemsAction} = this.props;\n\n const settingsMap = {\n cluster: 'isRecentClustersFirst',\n page: 'isRecentPagesFirst',\n };\n\n if (this.props[settingsMap[itemName]]) {\n splitMenuItemsAction(itemName);\n } else {\n joinMenuItemsAction(`${itemName}s`);\n }\n }\n\n onResize = () => {\n const {splitScreen} = this.props;\n const toolbar = document.querySelector('#elements-toolbar');\n\n if (splitScreen.isSplit && toolbar) {\n const gutterWidth = 10;\n const offset = document.getElementById(SPLIT_PANE_ID).clientWidth + gutterWidth;\n toolbar.style.right = `${offset}px`;\n } else if (toolbar) {\n toolbar.style.right = '0';\n }\n\n window.dispatchEvent(new Event('resize'));\n };\n\n handleSplit = () => {\n this.onResize();\n // fight the table toolbar becoming invisible after toggling YQLWidget and before first scroll\n window.dispatchEvent(new Event('scroll'));\n this.updateWidthModifier();\n };\n\n updateWidthModifier() {\n const currentWidth = this.contentPaneRef.current?.clientWidth || Infinity;\n if (currentWidth <= 720) {\n this.setState({width: 'small'});\n } else if (currentWidth <= 1024) {\n this.setState({width: 'medium'});\n } else {\n this.setState({width: 'large'});\n }\n }\n\n onResizeEnd = (sizes) => {\n this.props.setSetting(\n SettingName.NAVIGATION.CLUSTER_PAGE_PANE_SIZES,\n NAMESPACES.NAVIGATION,\n sizes,\n );\n this.updateWidthModifier();\n };\n\n getInitialSizes = () => {\n return this.props.clusterPagePaneSizes;\n };\n\n renderError(clusterConfig) {\n const {errorType} = this.props.error || {};\n\n switch (errorType) {\n case LOAD_ERROR.CONNECTION:\n return <ConnectionErrorRegion cluster={clusterConfig.id} />;\n case LOAD_ERROR.AUTHENTICATION:\n return (\n <GeneralErrorRegion\n cluster={clusterConfig.id}\n message={\n 'Could not fetch the XSRF token, therefore preventing further operations. Sometimes ' +\n 'token fetching fails due to the network issues. If the problem persists, please report it ' +\n 'via Bug Reporter.'\n }\n />\n );\n case LOAD_ERROR.GENERAL:\n return (\n <GeneralErrorRegion message=\"Unexpected error occurred. If problem persists please report it via Bug Reporter.\" />\n );\n }\n }\n\n isParamsLoading() {\n const {cluster, paramsCluster} = this.props;\n return cluster !== paramsCluster;\n }\n\n renderContent(clusterConfig) {\n const {cluster, startingPage, isLoaded, hasError, paramsError, adminPages, isAdmin} =\n this.props;\n\n return isLoaded && !this.isParamsLoading() ? (\n <Fragment>\n <SupportedFeaturesUpdater />\n <HandleMaintenanceRedirect />\n <RedirectToBanIfNeededMemo to={`/${cluster}/${Page.BAN}`} />\n <Switch>\n <Route path={`/:cluster/${Page.BAN}`} component={BanPage} />\n <Route path={`/:cluster/${Page.MAINTENANCE}`} component={MaintenancePage} />\n <Route path={`/:cluster/${Page.COMPONENTS}`} component={Components} />\n <Route path={`/:cluster/${Page.OPERATIONS}`} component={Operations} />\n <Route path={`/:cluster/${Page.JOB}`} component={Job} />\n <Route path={`/:cluster/${Page.DASHBOARD}`} component={Dashboard} />\n <Route path={`/:cluster/${Page.SYSTEM}`} component={System} />\n <Route path={`/:cluster/${Page.ACCOUNTS}`} component={Accounts} />\n <Route\n path={[\n `/:cluster/${Page.TABLET_CELL_BUNDLES}`,\n `/:cluster/${Page.CHAOS_CELL_BUNDLES}`,\n ]}\n component={TabletCellBundles}\n />\n <Route path={`/:cluster/${Page.NAVIGATION}`} component={Navigation} />\n <Route path={`/:cluster/${Page.PATH_VIEWER}`} component={PathViewer} />\n <Route path={`/:cluster/${Page.TABLET}`} component={Tablet} />\n <Route path={`/:cluster/${Page.USERS}`} component={UsersPage} />\n <Route path={`/:cluster/${Page.GROUPS}`} component={GroupsPage} />\n <Route path={`/:cluster/${Page.SCHEDULING}`} component={Scheduling} />\n {(!adminPages.includes(Page.QUERIES) || isAdmin) && (\n <Route path={`/:cluster/${Page.QUERIES}`} component={QueryTracker} />\n )}\n <Redirect\n from={`/:cluster/${Page.VERSIONS}`}\n to={`/:cluster/${Page.COMPONENTS}/versions`}\n />\n {\n // https://a.yandex-team.ru/review/3534811/details#comment-5045335\n // move route there\n }\n {makeExtraPageRoutes()}\n <Redirect from={`/${cluster}/`} to={`/${cluster}/${startingPage}`} />\n </Switch>\n\n <Route path=\"/:cluster/:page/:tab?\" component={PageTracker} />\n </Fragment>\n ) : (\n <React.Fragment>\n <div className=\"preloader\">\n {hasError ? (\n this.renderError(clusterConfig)\n ) : (\n <p className=\"preloader__loading\">Loading {clusterConfig?.id}...</p>\n )}\n </div>\n <div className={b('error')}>\n {paramsError && <ErrorBlock error={paramsError} />}\n </div>\n </React.Fragment>\n );\n }\n\n render() {\n const {cluster, splitScreen, clusters} = this.props;\n\n // TODO: put current cluster config into redux state to avoid doing things like these here\n const clusterConfig = getClusterConfig(clusters, cluster);\n\n // FIXME: handle case when clusterConfig is undefined due to wrong cluster name\n return (\n <Fragment>\n <ClusterPageStopRumMeasure />\n <PageHeadByCluster cluster={cluster} />\n\n <ClusterPageHeader />\n\n <FlexSplitPane\n className={b('panes-wrapper', {\n 'with-pane': splitScreen.isSplit,\n })}\n paneClassNames={splitScreen.paneClassNames}\n direction={FlexSplitPane.HORIZONTAL}\n onResize={this.onResize}\n onResizeEnd={this.onResizeEnd}\n onSplit={this.handleSplit}\n onUnSplit={this.handleSplit}\n minSize={600}\n getInitialSizes={this.getInitialSizes}\n id={SPLIT_PANE_ID}\n >\n <div\n ref={this.contentPaneRef}\n className={b('content-pane', {\n split: splitScreen.isSplit && 'yes',\n width: this.state.width,\n })}\n >\n {this.renderContent(clusterConfig)}\n </div>\n\n {null}\n </FlexSplitPane>\n </Fragment>\n );\n }\n}\n\nfunction mapStateToProps(state) {\n const {\n login,\n maintenancePageEvent,\n splitScreen,\n loadState,\n error,\n paramsCluster,\n paramsLoading,\n paramsError,\n } = state.global;\n\n const clusters = state.clustersMenu.clusters;\n\n return {\n clusters,\n isLoaded: !paramsLoading && loadState === LOADING_STATUS.LOADED,\n hasError: loadState === LOADING_STATUS.ERROR,\n error,\n paramsError,\n login,\n splitScreen,\n maintenancePageEvent,\n isRedirectToBetaSwitched: isRedirectToBetaSwitched(state),\n isRecentClustersFirst: isRecentClustersFirst(state),\n isRecentPagesFirst: isRecentPagesFirst(state),\n clusterPagePaneSizes: getClusterPagePaneSizes(state),\n startingPage: getStartingPage(state),\n isAdmin: isDeveloper(state),\n paramsCluster,\n adminPages: getAdminPages(),\n };\n}\n\nconst mapDispatchToProps = {\n setSetting,\n trackVisit,\n splitMenuItemsAction,\n joinMenuItemsAction,\n updateTitle,\n initClusterParams,\n updateCluster,\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(ClusterPage);\n\nfunction RedirectToBanIfNeeded({to}) {\n const {blocked, banned} = useSelector((state) => state.global);\n const {pathname} = useLocation();\n const enableRedirect = (banned || blocked) && !pathname.endsWith('/ban');\n\n if (!enableRedirect) {\n return null;\n }\n\n return <Redirect to={to} />;\n}\n\nfunction ClusterPageStopRumMeasure() {\n const loadState = useSelector((state) => state.global.loadState);\n const paramsLoading = useSelector((state) => state.global.paramsLoading);\n\n const isLoaded =\n loadState === LOADING_STATUS.ERROR ||\n (!paramsLoading && loadState === LOADING_STATUS.LOADED);\n\n const cluster = useClusterFromLocation();\n\n useRumMeasureStart({\n type: RumMeasureTypes.CLUSTER_PARAMS,\n subPage: `ui.${cluster}`,\n allowStop: ([isLoaded]) => !isLoaded,\n startDeps: [isLoaded],\n });\n\n useRumMeasureStop({\n type: RumMeasureTypes.CLUSTER_PARAMS,\n allowStop: ([isLoaded]) => isLoaded,\n stopDeps: [isLoaded],\n });\n return null;\n}\n"],"mappings":"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"}
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactRouter","_reactRedux","_bemCnLite","_interopRequireDefault","_BanPage","_MaintenancePage","_HandleRedirect","_Components","_Operations","_Accounts","_Dashboard","_System","_Navigation","_PathViewer","_Tablet","_TabletCellBundles","_GroupsPage","_UsersPage","_Scheduling","_QueryTracker","_Job","_ClusterPageHeader","_PageTracker","_PageHead","_ConnectionErrorRegion","_GeneralErrorRegion","_FlexSplitPane","_Error","_index","_menu","_settings","_clusterParams","_global","_global2","_utils","_settings2","_settings3","_SupportedFeaturesUpdater","_RumUiContext","_rumMeasureTypes","_useCluster","_ExtraClusterPageRoutes","_jsxRuntime","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","b","cn","RedirectToBanIfNeededMemo","React","memo","RedirectToBanIfNeeded","ClusterPage","_Component","_inherits","_super","_createSuper","_this","_classCallCheck","_len","arguments","length","args","Array","_key","apply","concat","state","width","contentPaneRef","createRef","_onUpdateEnd","_this$props","props","cluster","trackVisit","updateTitle","initClusterParams","isRedirectToBetaSwitched","setSetting","Promise","resolve","then","SettingName","DEVELOPMENT","REDIRECT_TO_BETA_SWITCHED","NAMESPACES","REDIRECT_TO_BETA","_initMenuCollection","onResize","splitScreen","toolbar","document","querySelector","isSplit","gutterWidth","offset","getElementById","SPLIT_PANE_ID","clientWidth","style","right","window","dispatchEvent","Event","handleSplit","updateWidthModifier","onResizeEnd","sizes","NAVIGATION","CLUSTER_PAGE_PANE_SIZES","getInitialSizes","clusterPagePaneSizes","_createClass","value","componentDidMount","updateCluster","getSnapshotBeforeUpdate","prevProps","pageYOffset","current","scrollTop","componentDidUpdate","prevState","prevScroll","scrollBy","prevCluster","componentWillUnmount","path","page","itemName","_this$props2","splitMenuItemsAction","joinMenuItemsAction","settingsMap","_this$contentPaneRef$","currentWidth","Infinity","setState","renderError","clusterConfig","_ref","error","errorType","LOAD_ERROR","CONNECTION","_jsx","ConnectionErrorRegion","id","AUTHENTICATION","GeneralErrorRegion","message","GENERAL","isParamsLoading","_this$props3","paramsCluster","renderContent","_this$props4","startingPage","isLoaded","hasError","paramsError","adminPages","isAdmin","_jsxs","Fragment","children","SupportedFeaturesUpdater","HandleMaintenanceRedirect","to","Page","BAN","Switch","Route","component","BanPage","MAINTENANCE","MaintenancePage","COMPONENTS","Components","OPERATIONS","Operations","JOB","Job","DASHBOARD","Dashboard","SYSTEM","System","ACCOUNTS","Accounts","TABLET_CELL_BUNDLES","CHAOS_CELL_BUNDLES","TabletCellBundles","Navigation","PATH_VIEWER","PathViewer","TABLET","Tablet","USERS","UsersPage","GROUPS","GroupsPage","SCHEDULING","Scheduling","includes","QUERIES","QueryTracker","Redirect","from","VERSIONS","makeExtraPageRoutes","PageTracker","className","ErrorBlock","render","_this$props5","clusters","getClusterConfig","ClusterPageStopRumMeasure","PageHeadByCluster","ClusterPageHeader","FlexSplitPane","paneClassNames","direction","HORIZONTAL","onSplit","onUnSplit","minSize","ref","split","Component","mapStateToProps","_state$global","global","login","maintenancePageEvent","loadState","paramsLoading","clustersMenu","LOADING_STATUS","LOADED","ERROR","isRecentClustersFirst","isRecentPagesFirst","getClusterPagePaneSizes","getStartingPage","isDeveloper","getAdminPages","mapDispatchToProps","_default","connect","exports","_ref2","_useSelector","useSelector","blocked","banned","_useLocation","useLocation","pathname","enableRedirect","endsWith","useClusterFromLocation","useRumMeasureStart","type","RumMeasureTypes","CLUSTER_PARAMS","subPage","allowStop","_ref3","_ref4","_slicedToArray","startDeps","useRumMeasureStop","_ref5","_ref6","stopDeps"],"sources":["ClusterPage.js"],"sourcesContent":["import React, {Component, Fragment} from 'react';\nimport {Redirect, Route, Switch, useLocation} from 'react-router';\nimport {connect, useSelector} from 'react-redux';\nimport PropTypes from 'prop-types';\nimport cn from 'bem-cn-lite';\n\nimport BanPage from '../BanPage/BanPage';\nimport MaintenancePage from '../MaintenancePage/MaintenancePage';\nimport HandleMaintenanceRedirect from '../MaintenancePage/HandleRedirect';\nimport Components from '../../pages/components/Components/Components';\nimport Operations from '../../pages/operations/Operations/Operations';\nimport Accounts from '../../pages/accounts/Accounts/Accounts';\nimport Dashboard from '../../pages/dashboard/Dashboard/Dashboard';\nimport System from '../../pages/system/System/System';\nimport Navigation from '../../pages/navigation/Navigation/Navigation';\nimport PathViewer from '../../pages/path-viewer/PathViewer';\nimport Tablet from '../../pages/tablet/Tablet';\nimport TabletCellBundles from '../../pages/tablet_cell_bundles/TabletCellBundles';\nimport GroupsPage from '../../pages/groups/GroupsPage';\nimport UsersPage from '../../pages/users/UsersPage';\nimport Scheduling from '../../pages/scheduling/Scheduling/Scheduling';\nimport {QueryTracker} from '../../pages/query-tracker/QueryTracker/QueryTracker';\nimport Job from '../../pages/job/Job';\n\nimport ClusterPageHeader from '../ClusterPageHeader/ClusterPageHeader';\nimport PageTracker from './PageTracker';\n\nimport {PageHeadByCluster} from '../../components/PageHead/PageHead';\nimport ConnectionErrorRegion from '../../components/PreloaderErrors/ConnectionErrorRegion';\nimport GeneralErrorRegion from '../../components/PreloaderErrors/GeneralErrorRegion';\nimport FlexSplitPane from '../../components/FlexSplitPane/FlexSplitPane';\nimport ErrorBlock from '../../components/Error/Error';\n\nimport {Page, SPLIT_PANE_ID, LOADING_STATUS, LOAD_ERROR} from '../../constants/index';\nimport {trackVisit, splitMenuItemsAction, joinMenuItemsAction} from '../../store/actions/menu';\nimport {setSetting} from '../../store/actions/settings';\nimport {updateCluster, initClusterParams} from '../../store/actions/cluster-params';\nimport {updateTitle} from '../../store/actions/global';\nimport {getAdminPages, isDeveloper} from '../../store/selectors/global';\nimport {getClusterConfig} from '../../utils';\nimport {NAMESPACES, SettingName} from '../../../shared/constants/settings';\nimport {\n isRedirectToBetaSwitched,\n isRecentClustersFirst,\n isRecentPagesFirst,\n getClusterPagePaneSizes,\n getStartingPage,\n} from '../../store/selectors/settings';\nimport SupportedFeaturesUpdater from './SupportedFeaturesUpdater';\nimport {useRumMeasureStart, useRumMeasureStop} from '../../rum/RumUiContext';\nimport {RumMeasureTypes} from '../../rum/rum-measure-types';\nimport {useClusterFromLocation} from '../../hooks/use-cluster';\nimport {makeExtraPageRoutes} from './ExtraClusterPageRoutes';\n\nimport './ClusterPage.scss';\n\nconst b = cn('cluster-page');\n\nconst RedirectToBanIfNeededMemo = React.memo(RedirectToBanIfNeeded);\n\nclass ClusterPage extends Component {\n static propTypes = {\n cluster: PropTypes.string,\n\n // from connect\n clusters: PropTypes.object.isRequired,\n clusterPagePaneSizes: PropTypes.array,\n login: PropTypes.string,\n queriesPageAllowed: PropTypes.bool,\n isAdmin: PropTypes.bool,\n adminPages: PropTypes.array,\n maintenancePageEvent: PropTypes.object,\n startingPage: PropTypes.string.isRequired,\n isLoaded: PropTypes.bool.isRequired,\n hasError: PropTypes.bool.isRequired,\n error: PropTypes.shape({\n errorType: PropTypes.string,\n }).isRequired,\n paramsError: PropTypes.any,\n splitScreen: PropTypes.shape({\n isSplit: PropTypes.bool.isRequired,\n paneClassNames: PropTypes.array.isRequired,\n }).isRequired,\n\n splitMenuItemsAction: PropTypes.func.isRequired,\n setSetting: PropTypes.func.isRequired,\n joinMenuItemsAction: PropTypes.func.isRequired,\n initClusterParams: PropTypes.func.isRequired,\n updateCluster: PropTypes.func.isRequired,\n updateTitle: PropTypes.func.isRequired,\n trackVisit: PropTypes.func.isRequired,\n };\n\n state = {\n width: 'large',\n };\n\n componentDidMount() {\n const {cluster} = this.props;\n this.props.updateCluster(cluster, this._onUpdateEnd);\n }\n\n getSnapshotBeforeUpdate(prevProps) {\n if (prevProps.splitScreen.isSplit !== this.props.splitScreen.isSplit) {\n return this.props.splitScreen.isSplit\n ? window.pageYOffset\n : this.contentPaneRef.current.scrollTop;\n }\n\n return null;\n }\n\n componentDidUpdate(prevProps, prevState, prevScroll) {\n if (prevScroll !== null) {\n if (this.props.splitScreen.isSplit) {\n this.contentPaneRef.current.scrollTop = prevScroll;\n }\n\n window.scrollBy(0, prevScroll);\n }\n\n const {cluster: prevCluster} = prevProps;\n const {cluster} = this.props;\n\n if (cluster !== prevCluster) {\n this.props.updateCluster(cluster, this._onUpdateEnd);\n }\n }\n\n componentWillUnmount() {\n this.props.updateTitle({path: '', page: ''});\n }\n\n contentPaneRef = React.createRef();\n\n _onUpdateEnd = () => {\n const {\n cluster,\n trackVisit,\n updateTitle,\n initClusterParams,\n isRedirectToBetaSwitched,\n setSetting,\n } = this.props;\n\n return Promise.resolve().then(() => {\n // todo: get rid of redirectToBetaSwitched setting.\n // It`s exist for set default value of redirectToBeta setting, when settings document is empty yet.\n // Set redirectToBeta on server after get all user settings (home.js). Or get rid of this logic at all.\n if (!isRedirectToBetaSwitched) {\n setSetting(\n SettingName.DEVELOPMENT.REDIRECT_TO_BETA_SWITCHED,\n NAMESPACES.DEVELOPMENT,\n true,\n );\n setSetting(SettingName.DEVELOPMENT.REDIRECT_TO_BETA, NAMESPACES.DEVELOPMENT, true);\n }\n\n initClusterParams(cluster);\n this._initMenuCollection('cluster');\n this._initMenuCollection('page');\n trackVisit('cluster', cluster);\n updateTitle({cluster});\n });\n };\n\n _initMenuCollection(itemName) {\n const {splitMenuItemsAction, joinMenuItemsAction} = this.props;\n\n const settingsMap = {\n cluster: 'isRecentClustersFirst',\n page: 'isRecentPagesFirst',\n };\n\n if (this.props[settingsMap[itemName]]) {\n splitMenuItemsAction(itemName);\n } else {\n joinMenuItemsAction(`${itemName}s`);\n }\n }\n\n onResize = () => {\n const {splitScreen} = this.props;\n const toolbar = document.querySelector('#elements-toolbar');\n\n if (splitScreen.isSplit && toolbar) {\n const gutterWidth = 10;\n const offset = document.getElementById(SPLIT_PANE_ID).clientWidth + gutterWidth;\n toolbar.style.right = `${offset}px`;\n } else if (toolbar) {\n toolbar.style.right = '0';\n }\n\n window.dispatchEvent(new Event('resize'));\n };\n\n handleSplit = () => {\n this.onResize();\n // fight the table toolbar becoming invisible after toggling YQLWidget and before first scroll\n window.dispatchEvent(new Event('scroll'));\n this.updateWidthModifier();\n };\n\n updateWidthModifier() {\n const currentWidth = this.contentPaneRef.current?.clientWidth || Infinity;\n if (currentWidth <= 720) {\n this.setState({width: 'small'});\n } else if (currentWidth <= 1024) {\n this.setState({width: 'medium'});\n } else {\n this.setState({width: 'large'});\n }\n }\n\n onResizeEnd = (sizes) => {\n this.props.setSetting(\n SettingName.NAVIGATION.CLUSTER_PAGE_PANE_SIZES,\n NAMESPACES.NAVIGATION,\n sizes,\n );\n this.updateWidthModifier();\n };\n\n getInitialSizes = () => {\n return this.props.clusterPagePaneSizes;\n };\n\n renderError(clusterConfig) {\n const {errorType} = this.props.error || {};\n\n switch (errorType) {\n case LOAD_ERROR.CONNECTION:\n return <ConnectionErrorRegion cluster={clusterConfig.id} />;\n case LOAD_ERROR.AUTHENTICATION:\n return (\n <GeneralErrorRegion\n cluster={clusterConfig.id}\n message={\n 'Could not fetch the XSRF token, therefore preventing further operations. Sometimes ' +\n 'token fetching fails due to the network issues. If the problem persists, please report it ' +\n 'via Bug Reporter.'\n }\n />\n );\n case LOAD_ERROR.GENERAL:\n return (\n <GeneralErrorRegion message=\"Unexpected error occurred. If problem persists please report it via Bug Reporter.\" />\n );\n }\n }\n\n isParamsLoading() {\n const {cluster, paramsCluster} = this.props;\n return cluster !== paramsCluster;\n }\n\n renderContent(clusterConfig) {\n const {cluster, startingPage, isLoaded, hasError, paramsError, adminPages, isAdmin} =\n this.props;\n\n return isLoaded && !this.isParamsLoading() ? (\n <Fragment>\n <SupportedFeaturesUpdater />\n <HandleMaintenanceRedirect />\n <RedirectToBanIfNeededMemo to={`/${cluster}/${Page.BAN}`} />\n <Switch>\n <Route path={`/:cluster/${Page.BAN}`} component={BanPage} />\n <Route path={`/:cluster/${Page.MAINTENANCE}`} component={MaintenancePage} />\n <Route path={`/:cluster/${Page.COMPONENTS}`} component={Components} />\n <Route path={`/:cluster/${Page.OPERATIONS}`} component={Operations} />\n <Route path={`/:cluster/${Page.JOB}`} component={Job} />\n <Route path={`/:cluster/${Page.DASHBOARD}`} component={Dashboard} />\n <Route path={`/:cluster/${Page.SYSTEM}`} component={System} />\n <Route path={`/:cluster/${Page.ACCOUNTS}`} component={Accounts} />\n <Route\n path={[\n `/:cluster/${Page.TABLET_CELL_BUNDLES}`,\n `/:cluster/${Page.CHAOS_CELL_BUNDLES}`,\n ]}\n component={TabletCellBundles}\n />\n <Route path={`/:cluster/${Page.NAVIGATION}`} component={Navigation} />\n <Route path={`/:cluster/${Page.PATH_VIEWER}`} component={PathViewer} />\n <Route path={`/:cluster/${Page.TABLET}`} component={Tablet} />\n <Route path={`/:cluster/${Page.USERS}`} component={UsersPage} />\n <Route path={`/:cluster/${Page.GROUPS}`} component={GroupsPage} />\n <Route path={`/:cluster/${Page.SCHEDULING}`} component={Scheduling} />\n {(!adminPages.includes(Page.QUERIES) || isAdmin) && (\n <Route path={`/:cluster/${Page.QUERIES}`} component={QueryTracker} />\n )}\n <Redirect\n from={`/:cluster/${Page.VERSIONS}`}\n to={`/:cluster/${Page.COMPONENTS}/versions`}\n />\n {makeExtraPageRoutes()}\n <Redirect from={`/${cluster}/`} to={`/${cluster}/${startingPage}`} />\n </Switch>\n\n <Route path=\"/:cluster/:page/:tab?\" component={PageTracker} />\n </Fragment>\n ) : (\n <React.Fragment>\n <div className=\"preloader\">\n {hasError ? (\n this.renderError(clusterConfig)\n ) : (\n <p className=\"preloader__loading\">Loading {clusterConfig?.id}...</p>\n )}\n </div>\n <div className={b('error')}>\n {paramsError && <ErrorBlock error={paramsError} />}\n </div>\n </React.Fragment>\n );\n }\n\n render() {\n const {cluster, splitScreen, clusters} = this.props;\n\n // TODO: put current cluster config into redux state to avoid doing things like these here\n const clusterConfig = getClusterConfig(clusters, cluster);\n\n // FIXME: handle case when clusterConfig is undefined due to wrong cluster name\n return (\n <Fragment>\n <ClusterPageStopRumMeasure />\n <PageHeadByCluster cluster={cluster} />\n\n <ClusterPageHeader />\n\n <FlexSplitPane\n className={b('panes-wrapper', {\n 'with-pane': splitScreen.isSplit,\n })}\n paneClassNames={splitScreen.paneClassNames}\n direction={FlexSplitPane.HORIZONTAL}\n onResize={this.onResize}\n onResizeEnd={this.onResizeEnd}\n onSplit={this.handleSplit}\n onUnSplit={this.handleSplit}\n minSize={600}\n getInitialSizes={this.getInitialSizes}\n id={SPLIT_PANE_ID}\n >\n <div\n ref={this.contentPaneRef}\n className={b('content-pane', {\n split: splitScreen.isSplit && 'yes',\n width: this.state.width,\n })}\n >\n {this.renderContent(clusterConfig)}\n </div>\n\n {null}\n </FlexSplitPane>\n </Fragment>\n );\n }\n}\n\nfunction mapStateToProps(state) {\n const {\n login,\n maintenancePageEvent,\n splitScreen,\n loadState,\n error,\n paramsCluster,\n paramsLoading,\n paramsError,\n } = state.global;\n\n const clusters = state.clustersMenu.clusters;\n\n return {\n clusters,\n isLoaded: !paramsLoading && loadState === LOADING_STATUS.LOADED,\n hasError: loadState === LOADING_STATUS.ERROR,\n error,\n paramsError,\n login,\n splitScreen,\n maintenancePageEvent,\n isRedirectToBetaSwitched: isRedirectToBetaSwitched(state),\n isRecentClustersFirst: isRecentClustersFirst(state),\n isRecentPagesFirst: isRecentPagesFirst(state),\n clusterPagePaneSizes: getClusterPagePaneSizes(state),\n startingPage: getStartingPage(state),\n isAdmin: isDeveloper(state),\n paramsCluster,\n adminPages: getAdminPages(),\n };\n}\n\nconst mapDispatchToProps = {\n setSetting,\n trackVisit,\n splitMenuItemsAction,\n joinMenuItemsAction,\n updateTitle,\n initClusterParams,\n updateCluster,\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(ClusterPage);\n\nfunction RedirectToBanIfNeeded({to}) {\n const {blocked, banned} = useSelector((state) => state.global);\n const {pathname} = useLocation();\n const enableRedirect = (banned || blocked) && !pathname.endsWith('/ban');\n\n if (!enableRedirect) {\n return null;\n }\n\n return <Redirect to={to} />;\n}\n\nfunction ClusterPageStopRumMeasure() {\n const loadState = useSelector((state) => state.global.loadState);\n const paramsLoading = useSelector((state) => state.global.paramsLoading);\n\n const isLoaded =\n loadState === LOADING_STATUS.ERROR ||\n (!paramsLoading && loadState === LOADING_STATUS.LOADED);\n\n const cluster = useClusterFromLocation();\n\n useRumMeasureStart({\n type: RumMeasureTypes.CLUSTER_PARAMS,\n subPage: `ui.${cluster}`,\n allowStop: ([isLoaded]) => !isLoaded,\n startDeps: [isLoaded],\n });\n\n useRumMeasureStop({\n type: RumMeasureTypes.CLUSTER_PARAMS,\n allowStop: ([isLoaded]) => isLoaded,\n stopDeps: [isLoaded],\n });\n return null;\n}\n"],"mappings":"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"}
|
@@ -0,0 +1,7 @@
|
|
1
|
+
import React from 'react';
|
2
|
+
import { QueryWidgetProps } from '../../../../query-tracker/QueryWidget';
|
3
|
+
import './CreateQueryFromTable.scss';
|
4
|
+
export declare const QueryWidgetPortal: React.ReactElement<QueryWidgetProps, string | React.JSXElementConstructor<any>>;
|
5
|
+
export declare function CreateQueryFromTable({ className }: {
|
6
|
+
className: string;
|
7
|
+
}): JSX.Element;
|
@@ -0,0 +1,78 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
5
|
+
value: true
|
6
|
+
});
|
7
|
+
exports.CreateQueryFromTable = CreateQueryFromTable;
|
8
|
+
exports.QueryWidgetPortal = void 0;
|
9
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
10
|
+
var _react = require("react");
|
11
|
+
var _reactRedux = require("react-redux");
|
12
|
+
var _bemCnLite = _interopRequireDefault(require("bem-cn-lite"));
|
13
|
+
var _uikit = require("@gravity-ui/uikit");
|
14
|
+
var _api = require("../../../../query-tracker/module/api");
|
15
|
+
var _navigation = require("../../../../../store/selectors/navigation");
|
16
|
+
var _global = require("../../../../../store/selectors/global");
|
17
|
+
var _QueryWidget = require("../../../../query-tracker/QueryWidget");
|
18
|
+
var _actions = require("../../../../query-tracker/module/query/actions");
|
19
|
+
var _Icon = _interopRequireDefault(require("../../../../../components/Icon/Icon"));
|
20
|
+
var _navigation2 = require("../../../../query-tracker/utils/navigation");
|
21
|
+
var _withSplit = _interopRequireDefault(require("../../../../../hocs/withSplit"));
|
22
|
+
var _global2 = require("../../../../../store/actions/global");
|
23
|
+
var _nodes = require("../../../../../constants/components/nodes/nodes");
|
24
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
25
|
+
var b = (0, _bemCnLite["default"])('create-query-btn');
|
26
|
+
var QueryWidgetPortal = (0, _withSplit["default"])(_QueryWidget.QueryWidget);
|
27
|
+
exports.QueryWidgetPortal = QueryWidgetPortal;
|
28
|
+
function CreateQueryFromTable(_ref) {
|
29
|
+
var className = _ref.className;
|
30
|
+
var _useState = (0, _react.useState)(false),
|
31
|
+
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
32
|
+
widgetOpened = _useState2[0],
|
33
|
+
setWidgetOpened = _useState2[1];
|
34
|
+
var dispatch = (0, _reactRedux.useDispatch)();
|
35
|
+
var cluster = (0, _reactRedux.useSelector)(_global.getCluster);
|
36
|
+
var path = (0, _reactRedux.useSelector)(_navigation.getPath);
|
37
|
+
var openWidget = (0, _react.useCallback)(function () {
|
38
|
+
dispatch((0, _actions.createQueryFromTablePath)(_api.QueryEngine.YQL, cluster, path));
|
39
|
+
dispatch((0, _global2.splitScreen)(_nodes.SPLIT_TYPE));
|
40
|
+
setWidgetOpened(true);
|
41
|
+
}, [setWidgetOpened, dispatch, path, cluster]);
|
42
|
+
var onClose = (0, _react.useCallback)(function () {
|
43
|
+
setWidgetOpened(false);
|
44
|
+
dispatch((0, _global2.mergeScreen)());
|
45
|
+
}, [setWidgetOpened, dispatch]);
|
46
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
47
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
48
|
+
className: b(null, className),
|
49
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_uikit.Button, {
|
50
|
+
onClick: openWidget,
|
51
|
+
pin: "round-clear",
|
52
|
+
view: "action",
|
53
|
+
className: b('btn'),
|
54
|
+
disabled: widgetOpened,
|
55
|
+
title: "Open Queries widget",
|
56
|
+
children: "YQL query"
|
57
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_uikit.Button, {
|
58
|
+
className: b('btn'),
|
59
|
+
pin: "clear-round",
|
60
|
+
view: "action",
|
61
|
+
href: (0, _navigation2.createNewQueryUrl)(cluster, _api.QueryEngine.YQL, {
|
62
|
+
path: path
|
63
|
+
}),
|
64
|
+
target: "_blank",
|
65
|
+
title: "Open Queries page",
|
66
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Icon["default"], {
|
67
|
+
awesome: "table"
|
68
|
+
})
|
69
|
+
})]
|
70
|
+
}), widgetOpened && /*#__PURE__*/
|
71
|
+
// @ts-ignore
|
72
|
+
(0, _jsxRuntime.jsx)(QueryWidgetPortal, {
|
73
|
+
onClose: onClose
|
74
|
+
})]
|
75
|
+
});
|
76
|
+
}
|
77
|
+
// #sourceMappingURL=CreateQueryFromTable.js.map
|
78
|
+
// #sourceMappingURL=CreateQueryFromTable.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"names":["_react","require","_reactRedux","_bemCnLite","_interopRequireDefault","_uikit","_api","_navigation","_global","_QueryWidget","_actions","_Icon","_navigation2","_withSplit","_global2","_nodes","_jsxRuntime","b","cn","QueryWidgetPortal","withSplit","QueryWidget","exports","CreateQueryFromTable","_ref","className","_useState","useState","_useState2","_slicedToArray","widgetOpened","setWidgetOpened","dispatch","useDispatch","cluster","useSelector","getCluster","path","getPath","openWidget","useCallback","createQueryFromTablePath","QueryEngine","YQL","splitScreen","SPLIT_TYPE","onClose","mergeScreen","_jsxs","_Fragment","children","_jsx","Button","onClick","pin","view","disabled","title","href","createNewQueryUrl","target","Icon","awesome"],"sources":["CreateQueryFromTable.tsx"],"sourcesContent":["import React, {ReactElement, useCallback, useState} from 'react';\nimport {useDispatch, useSelector} from 'react-redux';\nimport cn from 'bem-cn-lite';\nimport {Button} from '@gravity-ui/uikit';\nimport {QueryEngine} from '../../../../query-tracker/module/api';\nimport {getPath} from '../../../../../store/selectors/navigation';\nimport {getCluster} from '../../../../../store/selectors/global';\nimport {QueryWidget, QueryWidgetProps} from '../../../../query-tracker/QueryWidget';\nimport {createQueryFromTablePath} from '../../../../query-tracker/module/query/actions';\nimport Icon from '../../../../../components/Icon/Icon';\nimport {createNewQueryUrl} from '../../../../query-tracker/utils/navigation';\nimport withSplit from '../../../../../hocs/withSplit';\nimport {mergeScreen, splitScreen} from '../../../../../store/actions/global';\nimport {SPLIT_TYPE} from '../../../../../constants/components/nodes/nodes';\nimport './CreateQueryFromTable.scss';\n\nconst b = cn('create-query-btn');\n\nexport const QueryWidgetPortal = withSplit(\n QueryWidget,\n) as unknown as ReactElement<QueryWidgetProps>;\n\nexport function CreateQueryFromTable({className}: {className: string}) {\n const [widgetOpened, setWidgetOpened] = useState(false);\n const dispatch = useDispatch();\n\n const cluster = useSelector(getCluster);\n const path = useSelector(getPath);\n\n const openWidget = useCallback(() => {\n dispatch(createQueryFromTablePath(QueryEngine.YQL, cluster, path));\n dispatch(splitScreen(SPLIT_TYPE));\n setWidgetOpened(true);\n }, [setWidgetOpened, dispatch, path, cluster]);\n\n const onClose = useCallback(() => {\n setWidgetOpened(false);\n dispatch(mergeScreen());\n }, [setWidgetOpened, dispatch]);\n\n return (\n <>\n <div className={b(null, className)}>\n <Button\n onClick={openWidget}\n pin=\"round-clear\"\n view=\"action\"\n className={b('btn')}\n disabled={widgetOpened}\n title=\"Open Queries widget\"\n >\n YQL query\n </Button>\n <Button\n className={b('btn')}\n pin=\"clear-round\"\n view=\"action\"\n href={createNewQueryUrl(cluster, QueryEngine.YQL, {path})}\n target=\"_blank\"\n title=\"Open Queries page\"\n >\n <Icon awesome=\"table\" />\n </Button>\n </div>\n {widgetOpened && (\n // @ts-ignore\n <QueryWidgetPortal onClose={onClose} />\n )}\n </>\n );\n}\n"],"mappings":"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"}
|
@@ -1,13 +1,15 @@
|
|
1
1
|
declare const _default: import("react-redux").ConnectedComponent<typeof TableOverview, import("react-redux").Omit<PropTypes.InferProps<{
|
2
2
|
isFullScreen: PropTypes.Validator<boolean>;
|
3
3
|
isSplit: PropTypes.Validator<boolean>;
|
4
|
-
|
4
|
+
queriesAllowed: PropTypes.Requireable<boolean>;
|
5
|
+
}>, "isSplit" | "isFullScreen" | "queriesAllowed">>;
|
5
6
|
export default _default;
|
6
7
|
declare function TableOverview(props: any): JSX.Element;
|
7
8
|
declare namespace TableOverview {
|
8
9
|
namespace propTypes {
|
9
10
|
const isFullScreen: PropTypes.Validator<boolean>;
|
10
11
|
const isSplit: PropTypes.Validator<boolean>;
|
12
|
+
const queriesAllowed: PropTypes.Requireable<boolean>;
|
11
13
|
}
|
12
14
|
}
|
13
15
|
import PropTypes from "prop-types";
|
@@ -18,14 +18,17 @@ var _OffsetInput = _interopRequireDefault(require("../../../../../pages/navigati
|
|
18
18
|
var _Paginator = _interopRequireDefault(require("../../../../../pages/navigation/content/Table/TableOverview/Paginator"));
|
19
19
|
var _ErrorBoundary = _interopRequireDefault(require("../../../../../components/ErrorBoundary/ErrorBoundary"));
|
20
20
|
var _UIFactory = _interopRequireDefault(require("../../../../../UIFactory"));
|
21
|
+
var _CreateQueryFromTable = require("./CreateQueryFromTable");
|
21
22
|
var _index = require("../../../../../constants/index");
|
22
23
|
var _EditTableActions = _interopRequireDefault(require("./EditTableActions"));
|
23
24
|
var _DatalensButton = _interopRequireDefault(require("./DatalensButton"));
|
25
|
+
var _global = require("../../../../../store/selectors/global");
|
24
26
|
var _jsxRuntime = require("react/jsx-runtime");
|
25
27
|
var block = (0, _bemCnLite["default"])('navigation-table-overview');
|
26
28
|
function TableOverview(props) {
|
27
29
|
var isFullScreen = props.isFullScreen,
|
28
|
-
isSplit = props.isSplit
|
30
|
+
isSplit = props.isSplit,
|
31
|
+
queriesAllowed = props.queriesAllowed;
|
29
32
|
|
30
33
|
// TODO: add sticky for the Overview in the split mode https://github.com/captivationsoftware/react-sticky/issues/282
|
31
34
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_ErrorBoundary["default"], {
|
@@ -48,6 +51,8 @@ function TableOverview(props) {
|
|
48
51
|
block: block
|
49
52
|
}), !isFullScreen && /*#__PURE__*/(0, _jsxRuntime.jsx)(_SettingsButton["default"], {
|
50
53
|
block: block
|
54
|
+
}), !isFullScreen && queriesAllowed && /*#__PURE__*/(0, _jsxRuntime.jsx)(_CreateQueryFromTable.CreateQueryFromTable, {
|
55
|
+
className: block('query')
|
51
56
|
}), !isFullScreen && ((_UIFactory$yqlWidgetS = _UIFactory["default"].yqlWidgetSetup) === null || _UIFactory$yqlWidgetS === void 0 ? void 0 : _UIFactory$yqlWidgetS.renderButton({
|
52
57
|
isSplit: isSplit,
|
53
58
|
className: block('yql')
|
@@ -68,9 +73,12 @@ function TableOverview(props) {
|
|
68
73
|
var mapStateToProps = function mapStateToProps(state) {
|
69
74
|
var isFullScreen = state.navigation.content.table.isFullScreen;
|
70
75
|
var isSplit = state.global.splitScreen.isSplit;
|
76
|
+
var adminPages = (0, _global.getAdminPages)(state);
|
77
|
+
var isAdmin = (0, _global.isDeveloper)(state);
|
71
78
|
return {
|
72
79
|
isFullScreen: isFullScreen,
|
73
|
-
isSplit: isSplit
|
80
|
+
isSplit: isSplit,
|
81
|
+
queriesAllowed: !(adminPages !== null && adminPages !== void 0 && adminPages.includes(_index.Page.QUERIES)) || isAdmin
|
74
82
|
};
|
75
83
|
};
|
76
84
|
var _default = (0, _reactRedux.connect)(mapStateToProps)(TableOverview); // #sourceMappingURL=TableOverview.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_bemCnLite","_reactSticky","_reactRedux","_ColumnSelectorButton","_FullScreenButton","_SettingsButton","_JupyterButton","_TableActions","_OffsetInput","_Paginator","_ErrorBoundary","_UIFactory","_index","_EditTableActions","_DatalensButton","_jsxRuntime","block","cn","TableOverview","props","isFullScreen","isSplit","_jsx","ErrorBoundary","children","Sticky","topOffset","HEADER_HEIGHT","_ref","_UIFactory$yqlWidgetS","isSticky","_jsxs","className","sticky","fullscreen","split","Paginator","OffsetInput","ColumnSelectorButton","SettingsButton","UIFactory","yqlWidgetSetup","renderButton","JupyterButton","DataLensButton","TableActions","FullScreenButton","EditTableActions","mapStateToProps","state","navigation","content","table","global","splitScreen","_default","connect"],"sources":["TableOverview.js"],"sourcesContent":["import React from 'react';\nimport cn from 'bem-cn-lite';\nimport PropTypes from 'prop-types';\nimport {Sticky} from 'react-sticky';\nimport {connect} from 'react-redux';\n\nimport ColumnSelectorButton from '../../../../../pages/navigation/content/Table/TableOverview/ColumnSelectorButton';\nimport FullScreenButton from '../../../../../pages/navigation/content/Table/TableOverview/FullScreenButton';\nimport SettingsButton from '../../../../../pages/navigation/content/Table/TableOverview/SettingsButton';\nimport JupyterButton from '../../../../../pages/navigation/content/Table/TableOverview/JupyterButton';\nimport TableActions from '../../../../../pages/navigation/content/Table/TableOverview/TableActions';\nimport OffsetInput from '../../../../../pages/navigation/content/Table/TableOverview/OffsetInput';\nimport Paginator from '../../../../../pages/navigation/content/Table/TableOverview/Paginator';\nimport ErrorBoundary from '../../../../../components/ErrorBoundary/ErrorBoundary';\nimport UIFactory from '../../../../../UIFactory';\n\nimport {HEADER_HEIGHT} from '../../../../../constants/index';\n\nimport './TableOverview.scss';\nimport EditTableActions from './EditTableActions';\nimport DataLensButton from './DatalensButton';\n\nconst block = cn('navigation-table-overview');\n\nTableOverview.propTypes = {\n // from connect\n isFullScreen: PropTypes.bool.isRequired,\n isSplit: PropTypes.bool.isRequired,\n};\n\nfunction TableOverview(props) {\n const {isFullScreen, isSplit} = props;\n\n // TODO: add sticky for the Overview in the split mode https://github.com/captivationsoftware/react-sticky/issues/282\n return (\n <ErrorBoundary>\n <Sticky topOffset={isFullScreen ? HEADER_HEIGHT : -HEADER_HEIGHT}>\n {({isSticky}) => (\n <div\n className={block({\n sticky: isSticky && !isSplit,\n fullscreen: isFullScreen,\n split: isSplit,\n })}\n >\n <Paginator block={block} />\n <OffsetInput block={block} />\n {!isFullScreen && <ColumnSelectorButton block={block} />}\n {!isFullScreen && <SettingsButton block={block} />}\n {!isFullScreen &&\n UIFactory.yqlWidgetSetup?.renderButton({\n isSplit,\n className: block('yql'),\n })}\n {!isFullScreen && <JupyterButton block={block} />}\n {!isFullScreen && <DataLensButton className={block('datalens')} />}\n {!isFullScreen && <TableActions block={block} />}\n <FullScreenButton block={block} />\n {!isFullScreen && <EditTableActions />}\n </div>\n )}\n </Sticky>\n </ErrorBoundary>\n );\n}\n\nconst mapStateToProps = (state) => {\n const {isFullScreen} = state.navigation.content.table;\n const {isSplit} = state.global.splitScreen;\n\n return {isFullScreen
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_bemCnLite","_reactSticky","_reactRedux","_ColumnSelectorButton","_FullScreenButton","_SettingsButton","_JupyterButton","_TableActions","_OffsetInput","_Paginator","_ErrorBoundary","_UIFactory","_CreateQueryFromTable","_index","_EditTableActions","_DatalensButton","_global","_jsxRuntime","block","cn","TableOverview","props","isFullScreen","isSplit","queriesAllowed","_jsx","ErrorBoundary","children","Sticky","topOffset","HEADER_HEIGHT","_ref","_UIFactory$yqlWidgetS","isSticky","_jsxs","className","sticky","fullscreen","split","Paginator","OffsetInput","ColumnSelectorButton","SettingsButton","CreateQueryFromTable","UIFactory","yqlWidgetSetup","renderButton","JupyterButton","DataLensButton","TableActions","FullScreenButton","EditTableActions","mapStateToProps","state","navigation","content","table","global","splitScreen","adminPages","getAdminPages","isAdmin","isDeveloper","includes","Page","QUERIES","_default","connect"],"sources":["TableOverview.js"],"sourcesContent":["import React from 'react';\nimport cn from 'bem-cn-lite';\nimport PropTypes from 'prop-types';\nimport {Sticky} from 'react-sticky';\nimport {connect} from 'react-redux';\n\nimport ColumnSelectorButton from '../../../../../pages/navigation/content/Table/TableOverview/ColumnSelectorButton';\nimport FullScreenButton from '../../../../../pages/navigation/content/Table/TableOverview/FullScreenButton';\nimport SettingsButton from '../../../../../pages/navigation/content/Table/TableOverview/SettingsButton';\nimport JupyterButton from '../../../../../pages/navigation/content/Table/TableOverview/JupyterButton';\nimport TableActions from '../../../../../pages/navigation/content/Table/TableOverview/TableActions';\nimport OffsetInput from '../../../../../pages/navigation/content/Table/TableOverview/OffsetInput';\nimport Paginator from '../../../../../pages/navigation/content/Table/TableOverview/Paginator';\nimport ErrorBoundary from '../../../../../components/ErrorBoundary/ErrorBoundary';\nimport UIFactory from '../../../../../UIFactory';\nimport {CreateQueryFromTable} from './CreateQueryFromTable';\n\nimport {HEADER_HEIGHT, Page} from '../../../../../constants/index';\n\nimport './TableOverview.scss';\nimport EditTableActions from './EditTableActions';\nimport DataLensButton from './DatalensButton';\nimport {getAdminPages, isDeveloper} from '../../../../../store/selectors/global';\n\nconst block = cn('navigation-table-overview');\n\nTableOverview.propTypes = {\n // from connect\n isFullScreen: PropTypes.bool.isRequired,\n isSplit: PropTypes.bool.isRequired,\n queriesAllowed: PropTypes.bool,\n};\n\nfunction TableOverview(props) {\n const {isFullScreen, isSplit, queriesAllowed} = props;\n\n // TODO: add sticky for the Overview in the split mode https://github.com/captivationsoftware/react-sticky/issues/282\n return (\n <ErrorBoundary>\n <Sticky topOffset={isFullScreen ? HEADER_HEIGHT : -HEADER_HEIGHT}>\n {({isSticky}) => (\n <div\n className={block({\n sticky: isSticky && !isSplit,\n fullscreen: isFullScreen,\n split: isSplit,\n })}\n >\n <Paginator block={block} />\n <OffsetInput block={block} />\n {!isFullScreen && <ColumnSelectorButton block={block} />}\n {!isFullScreen && <SettingsButton block={block} />}\n {!isFullScreen && queriesAllowed && (\n <CreateQueryFromTable className={block('query')} />\n )}\n {!isFullScreen &&\n UIFactory.yqlWidgetSetup?.renderButton({\n isSplit,\n className: block('yql'),\n })}\n {!isFullScreen && <JupyterButton block={block} />}\n {!isFullScreen && <DataLensButton className={block('datalens')} />}\n {!isFullScreen && <TableActions block={block} />}\n <FullScreenButton block={block} />\n {!isFullScreen && <EditTableActions />}\n </div>\n )}\n </Sticky>\n </ErrorBoundary>\n );\n}\n\nconst mapStateToProps = (state) => {\n const {isFullScreen} = state.navigation.content.table;\n const {isSplit} = state.global.splitScreen;\n const adminPages = getAdminPages(state);\n const isAdmin = isDeveloper(state);\n\n return {\n isFullScreen,\n isSplit,\n queriesAllowed: !adminPages?.includes(Page.QUERIES) || isAdmin,\n };\n};\n\nexport default connect(mapStateToProps)(TableOverview);\n"],"mappings":"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"}
|
@@ -17,7 +17,6 @@ var _api = require("../module/api");
|
|
17
17
|
var _actions = require("../module/queries_list/actions");
|
18
18
|
var _selectors = require("../module/queries_list/selectors");
|
19
19
|
var _QueryStatus = require("../QueryStatus");
|
20
|
-
var _date = require("../utils/date");
|
21
20
|
var _selectors2 = require("../module/query/selectors");
|
22
21
|
var _QueriesHistoryFilter = require("./QueriesHistoryFilter");
|
23
22
|
var _Pagination = _interopRequireDefault(require("../../../components/Pagination/Pagination"));
|
@@ -30,6 +29,7 @@ var _DataTableYT = _interopRequireDefault(require("../../../components/DataTable
|
|
30
29
|
var _reactDataTable = _interopRequireDefault(require("@yandex-cloud/react-data-table"));
|
31
30
|
var _QueryListFilter = require("../hooks/QueryListFilter");
|
32
31
|
var _types = require("../module/queries_list/types");
|
32
|
+
var _QueryDuration = require("../QueryDuration");
|
33
33
|
var _jsxRuntime = require("react/jsx-runtime");
|
34
34
|
var b = (0, _bemCnLite["default"])('queries-history-list');
|
35
35
|
var itemBlock = (0, _bemCnLite["default"])('query-history-item');
|
@@ -154,8 +154,8 @@ var DurationColumns = {
|
|
154
154
|
if (row.state === _api.QueryStatus.RUNNING) {
|
155
155
|
return _hammer["default"].format.NO_VALUE;
|
156
156
|
}
|
157
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsx)(
|
158
|
-
|
157
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_QueryDuration.QueryDuration, {
|
158
|
+
query: row
|
159
159
|
});
|
160
160
|
}
|
161
161
|
};
|