@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
@@ -1,11 +1,10 @@
|
|
1
1
|
import _objectSpread from "@babel/runtime/helpers/objectSpread2";
|
2
|
-
import _map from "lodash/map";
|
3
|
-
import _capitalize from "lodash/capitalize";
|
4
2
|
import React from 'react';
|
5
3
|
import { getPrimitiveTypesMap } from '../../store/selectors/global/supported-features';
|
6
4
|
import { useSelector } from 'react-redux';
|
7
5
|
import { getType } from './dataTypes';
|
8
6
|
import DataType from './DataType/DataType';
|
7
|
+
import { parseV3Type } from './dateTypesV3';
|
9
8
|
import { jsx as _jsx } from "react/jsx-runtime";
|
10
9
|
import { Fragment as _Fragment } from "react/jsx-runtime";
|
11
10
|
function SchemaDataType(_ref) {
|
@@ -13,7 +12,7 @@ function SchemaDataType(_ref) {
|
|
13
12
|
var primitiveTypes = useSelector(getPrimitiveTypesMap);
|
14
13
|
var dataTypeProps = React.useMemo(function () {
|
15
14
|
try {
|
16
|
-
return getType(
|
15
|
+
return getType(parseV3Type(type_v3, primitiveTypes));
|
17
16
|
} catch (_unused) {
|
18
17
|
return undefined;
|
19
18
|
}
|
@@ -23,58 +22,4 @@ function SchemaDataType(_ref) {
|
|
23
22
|
});
|
24
23
|
}
|
25
24
|
export default /*#__PURE__*/React.memo(SchemaDataType);
|
26
|
-
function parseType(initialType, primitiveTypes) {
|
27
|
-
function ysonTypeToYql(ysonType) {
|
28
|
-
return typeof ysonType === 'string' ? stringToYql(ysonType, primitiveTypes) : objectToYql(ysonType);
|
29
|
-
}
|
30
|
-
function stringToYql(ysonType, typesMap) {
|
31
|
-
if (typesMap.has(ysonType)) {
|
32
|
-
return ['DataType', _capitalize(ysonType)];
|
33
|
-
} else {
|
34
|
-
return ['UnknownType'];
|
35
|
-
}
|
36
|
-
}
|
37
|
-
function objectToYql(ysonType) {
|
38
|
-
switch (ysonType.type_name) {
|
39
|
-
case 'decimal':
|
40
|
-
return decimalToYql(ysonType);
|
41
|
-
case 'dict':
|
42
|
-
return ['DictType', ysonTypeToYql(ysonType.key), ysonTypeToYql(ysonType.value)];
|
43
|
-
case 'optional':
|
44
|
-
return ['OptionalType', ysonTypeToYql(ysonType.item)];
|
45
|
-
case 'tuple':
|
46
|
-
return tupleToYql(ysonType);
|
47
|
-
case 'list':
|
48
|
-
return ['ListType', ysonTypeToYql(ysonType.item)];
|
49
|
-
case 'struct':
|
50
|
-
return structToYql(ysonType);
|
51
|
-
case 'variant':
|
52
|
-
return ['VariantType', 'elements' in ysonType ? tupleToYql(ysonType) : structToYql(ysonType)];
|
53
|
-
case 'tagged':
|
54
|
-
return ['TaggedType', ysonType.tag, ysonTypeToYql(ysonType.item)];
|
55
|
-
default:
|
56
|
-
// let it be a fallback for now
|
57
|
-
return ['UnknownType'];
|
58
|
-
}
|
59
|
-
}
|
60
|
-
function tupleToYql(ysonType) {
|
61
|
-
return ['TupleType', _map(ysonType.elements, function (_ref2) {
|
62
|
-
var type = _ref2.type;
|
63
|
-
return ysonTypeToYql(type);
|
64
|
-
})];
|
65
|
-
}
|
66
|
-
function structToYql(ysonType) {
|
67
|
-
return ['StructType', _map(ysonType.members, function (_ref3) {
|
68
|
-
var name = _ref3.name,
|
69
|
-
type = _ref3.type;
|
70
|
-
return [name, ysonTypeToYql(type)];
|
71
|
-
})];
|
72
|
-
}
|
73
|
-
function decimalToYql(ysonType) {
|
74
|
-
var precision = ysonType.precision,
|
75
|
-
scale = ysonType.scale;
|
76
|
-
return ['DataType', 'Decimal', precision, scale];
|
77
|
-
}
|
78
|
-
return ysonTypeToYql(initialType);
|
79
|
-
}
|
80
25
|
// #sourceMappingURL=SchemaDataType.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["React","getPrimitiveTypesMap","useSelector","getType","DataType","jsx","_jsx","Fragment","_Fragment","SchemaDataType","_ref","type_v3","primitiveTypes","dataTypeProps","useMemo","
|
1
|
+
{"version":3,"names":["React","getPrimitiveTypesMap","useSelector","getType","DataType","parseV3Type","jsx","_jsx","Fragment","_Fragment","SchemaDataType","_ref","type_v3","primitiveTypes","dataTypeProps","useMemo","_unused","undefined","_objectSpread","children","memo"],"sources":["SchemaDataType.tsx"],"sourcesContent":["import React from 'react';\nimport _ from 'lodash';\n\nimport {getPrimitiveTypesMap} from '../../store/selectors/global/supported-features';\nimport {useSelector} from 'react-redux';\nimport {getType} from './dataTypes';\nimport DataType from './DataType/DataType';\nimport {parseV3Type} from './dateTypesV3';\n\ninterface Props {\n type_v3: any;\n}\n\nfunction SchemaDataType({type_v3}: Props) {\n const primitiveTypes = useSelector(getPrimitiveTypesMap);\n\n const dataTypeProps = React.useMemo(() => {\n try {\n return getType(parseV3Type(type_v3, primitiveTypes));\n } catch {\n return undefined;\n }\n }, [type_v3, primitiveTypes]);\n\n return dataTypeProps ? (\n <DataType {...dataTypeProps} />\n ) : (\n <>There is no type description in the schema</>\n );\n}\n\nexport default React.memo(SchemaDataType);\n"],"mappings":";AAAA,OAAOA,KAAK,MAAM,OAAO;AAGzB,SAAQC,oBAAoB,QAAO,iDAAiD;AACpF,SAAQC,WAAW,QAAO,aAAa;AACvC,SAAQC,OAAO,QAAO,aAAa;AACnC,OAAOC,QAAQ,MAAM,qBAAqB;AAC1C,SAAQC,WAAW,QAAO,eAAe;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAAA,SAAAC,QAAA,IAAAC,SAAA;AAM1C,SAASC,cAAcA,CAAAC,IAAA,EAAmB;EAAA,IAAjBC,OAAO,GAAAD,IAAA,CAAPC,OAAO;EAC5B,IAAMC,cAAc,GAAGX,WAAW,CAACD,oBAAoB,CAAC;EAExD,IAAMa,aAAa,GAAGd,KAAK,CAACe,OAAO,CAAC,YAAM;IACtC,IAAI;MACA,OAAOZ,OAAO,CAACE,WAAW,CAACO,OAAO,EAAEC,cAAc,CAAC,CAAC;IACxD,CAAC,CAAC,OAAAG,OAAA,EAAM;MACJ,OAAOC,SAAS;IACpB;EACJ,CAAC,EAAE,CAACL,OAAO,EAAEC,cAAc,CAAC,CAAC;EAE7B,OAAOC,aAAa,gBAChBP,IAAA,CAACH,QAAQ,EAAAc,aAAA,KAAKJ,aAAa,EAAI,gBAE/BP,IAAA,CAAAE,SAAA;IAAAU,QAAA,EAAE;EAA0C,EAC/C;AACL;AAEA,4BAAenB,KAAK,CAACoB,IAAI,CAACV,cAAc,CAAC"}
|
@@ -0,0 +1,48 @@
|
|
1
|
+
export type Type = string | ComplexType;
|
2
|
+
interface Decimal {
|
3
|
+
type_name: 'decimal';
|
4
|
+
precision: number;
|
5
|
+
scale: number;
|
6
|
+
}
|
7
|
+
interface Dict {
|
8
|
+
type_name: 'dict';
|
9
|
+
key: Type;
|
10
|
+
value: Type;
|
11
|
+
}
|
12
|
+
type Variant = {
|
13
|
+
type_name: 'variant';
|
14
|
+
} & VariantData;
|
15
|
+
type VariantData = VariantElements | VariantMembers;
|
16
|
+
type VariantElements = {
|
17
|
+
elements: Array<{
|
18
|
+
type: Type;
|
19
|
+
}>;
|
20
|
+
};
|
21
|
+
type VariantMembers = {
|
22
|
+
members: Array<{
|
23
|
+
name: string;
|
24
|
+
type: Type;
|
25
|
+
}>;
|
26
|
+
};
|
27
|
+
interface Optional {
|
28
|
+
type_name: 'optional';
|
29
|
+
item: Type;
|
30
|
+
}
|
31
|
+
type Tuple = {
|
32
|
+
type_name: 'tuple';
|
33
|
+
} & VariantElements;
|
34
|
+
interface List {
|
35
|
+
type_name: 'list';
|
36
|
+
item: Type;
|
37
|
+
}
|
38
|
+
type Struct = {
|
39
|
+
type_name: 'struct';
|
40
|
+
} & VariantMembers;
|
41
|
+
interface Tagged {
|
42
|
+
type_name: 'tagged';
|
43
|
+
tag: string;
|
44
|
+
item: Type;
|
45
|
+
}
|
46
|
+
type ComplexType = Decimal | Dict | Variant | Optional | Tuple | List | Struct | Tagged;
|
47
|
+
export declare function parseV3Type(initialType: Type, primitiveTypes: Set<string>): any;
|
48
|
+
export {};
|
@@ -0,0 +1,57 @@
|
|
1
|
+
import _map from "lodash/map";
|
2
|
+
import _capitalize from "lodash/capitalize";
|
3
|
+
export function parseV3Type(initialType, primitiveTypes) {
|
4
|
+
function ysonTypeToYql(ysonType) {
|
5
|
+
return typeof ysonType === 'string' ? stringToYql(ysonType, primitiveTypes) : objectToYql(ysonType);
|
6
|
+
}
|
7
|
+
function stringToYql(ysonType, typesMap) {
|
8
|
+
if (typesMap.has(ysonType)) {
|
9
|
+
return ['DataType', _capitalize(ysonType)];
|
10
|
+
} else {
|
11
|
+
return ['UnknownType'];
|
12
|
+
}
|
13
|
+
}
|
14
|
+
function objectToYql(ysonType) {
|
15
|
+
switch (ysonType.type_name) {
|
16
|
+
case 'decimal':
|
17
|
+
return decimalToYql(ysonType);
|
18
|
+
case 'dict':
|
19
|
+
return ['DictType', ysonTypeToYql(ysonType.key), ysonTypeToYql(ysonType.value)];
|
20
|
+
case 'optional':
|
21
|
+
return ['OptionalType', ysonTypeToYql(ysonType.item)];
|
22
|
+
case 'tuple':
|
23
|
+
return tupleToYql(ysonType);
|
24
|
+
case 'list':
|
25
|
+
return ['ListType', ysonTypeToYql(ysonType.item)];
|
26
|
+
case 'struct':
|
27
|
+
return structToYql(ysonType);
|
28
|
+
case 'variant':
|
29
|
+
return ['VariantType', 'elements' in ysonType ? tupleToYql(ysonType) : structToYql(ysonType)];
|
30
|
+
case 'tagged':
|
31
|
+
return ['TaggedType', ysonType.tag, ysonTypeToYql(ysonType.item)];
|
32
|
+
default:
|
33
|
+
// let it be a fallback for now
|
34
|
+
return ['UnknownType'];
|
35
|
+
}
|
36
|
+
}
|
37
|
+
function tupleToYql(ysonType) {
|
38
|
+
return ['TupleType', _map(ysonType.elements, function (_ref) {
|
39
|
+
var type = _ref.type;
|
40
|
+
return ysonTypeToYql(type);
|
41
|
+
})];
|
42
|
+
}
|
43
|
+
function structToYql(ysonType) {
|
44
|
+
return ['StructType', _map(ysonType.members, function (_ref2) {
|
45
|
+
var name = _ref2.name,
|
46
|
+
type = _ref2.type;
|
47
|
+
return [name, ysonTypeToYql(type)];
|
48
|
+
})];
|
49
|
+
}
|
50
|
+
function decimalToYql(ysonType) {
|
51
|
+
var precision = ysonType.precision,
|
52
|
+
scale = ysonType.scale;
|
53
|
+
return ['DataType', 'Decimal', precision, scale];
|
54
|
+
}
|
55
|
+
return ysonTypeToYql(initialType);
|
56
|
+
}
|
57
|
+
// #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":";;AA2CA,OAAO,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,EAAEK,WAAA,CAAaL,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;IAAU;EAE5C;EAEA,SAASC,UAAUA,CAACX,QAAyB,EAAE;IAC3C,OAAO,CAAC,WAAW,EAAEc,IAAA,CAAMd,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,EACZc,IAAA,CAAMd,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;
|
@@ -37,6 +37,9 @@ export function getNewTableReplicasCount() {
|
|
37
37
|
export function getQueryTrackerStage() {
|
38
38
|
return uiSettings.queryTrackerStage;
|
39
39
|
}
|
40
|
+
export function getQueryTrackerCluster() {
|
41
|
+
return uiSettings.queryTrackerCluster;
|
42
|
+
}
|
40
43
|
export function getConfigUploadTable() {
|
41
44
|
var _uiSettings$uploadTab;
|
42
45
|
return {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["UIFactory","getConfigData","window","__DATA__","uiSettings","_getConfigData","getSettingsDataFromInitialConfig","settings","ytApiUseCORS","isIdmAclAvailable","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":";AAEA,OAAOA,SAAS,MAAM,cAAc;AAEpC,OAAO,SAASC,aAAaA,CAAA,EAAe;EACxC,OAAQC,MAAM,CAASC,QAAQ;AACnC;AAEA,OAAO,IAAMC,UAAuD,GAChE,EAAAC,cAAA,GAAAJ,aAAa,EAAE,cAAAI,cAAA,uBAAfA,cAAA,CAAiBD,UAAU,KAAI,CAAC,CAAC;AAErC,OAAO,SAASE,gCAAgCA,CAAA,EAAG;EAC/C,OAAOL,aAAa,EAAE,CAACM,QAAQ;AACnC;AAEA,OAAO,SAASC,YAAYA,CAAA,EAAG;EAC3B,OAAOP,aAAa,EAAE,CAACO,YAAY;AACvC;AACA,OAAO,SAASC,iBAAiBA,CAAA,EAAG;EAChC,OAAOT,SAAS,CAACU,SAAS,EAAE,CAACC,SAAS;AAC1C;AAEA,OAAO,SAASC,oBAAoBA,CAAA,EAAG;EACnC,OAAOR,UAAU,CAACS,iBAAiB;AACvC;AAEA,OAAO,SAASC,wBAAwBA,CAAA,EAAG;EACvC,OAAOV,UAAU,CAACW,qBAAqB;AAC3C;AAEA,OAAO,SAASC,kBAAkBA,CAAA,EAAG;EACjC,OAAOZ,UAAU,CAACa,eAAe;AACrC;AAEA,OAAO,SAASC,aAAaA,CAAA,EAAG;EAC5B,OAAOC,OAAO,CAACf,UAAU,CAACgB,WAAW,CAAC;AAC1C;AAEA,OAAO,SAASC,OAAOA,CAAgBC,GAAM,EAAEC,GAAO,EAAE;EACpD,OAAOL,aAAa,EAAE,GAAGI,GAAG,GAAGC,GAAG,aAAHA,GAAG,cAAHA,GAAG,GAAI,EAAE;AAC5C;AAEA,OAAO,SAASC,cAAcA,CAAA,EAAG;EAC7B,OAAOpB,UAAU,CAACgB,WAAW;AACjC;AAEA,OAAO,SAASK,wBAAwBA,CAAA,EAAG;EACvC,OAAOrB,UAAU,CAACsB,qBAAqB,IAAI,CAAC;AAChD;AAEA,OAAO,SAASC,oBAAoBA,CAAA,EAAG;EACnC,OAAOvB,UAAU,CAACwB,iBAAiB;AACvC;AAEA,OAAO,SAASC,oBAAoBA,CAAA,EAAG;EAAA,IAAAC,qBAAA;EACnC,OAAO;IACHC,kBAAkB,GAAAD,qBAAA,
|
1
|
+
{"version":3,"names":["UIFactory","getConfigData","window","__DATA__","uiSettings","_getConfigData","getSettingsDataFromInitialConfig","settings","ytApiUseCORS","isIdmAclAvailable","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","Component","Fragment","Redirect","Route","Switch","useLocation","connect","useSelector","cn","BanPage","MaintenancePage","HandleMaintenanceRedirect","Components","Operations","Accounts","Dashboard","System","Navigation","PathViewer","Tablet","TabletCellBundles","GroupsPage","UsersPage","Scheduling","QueryTracker","Job","ClusterPageHeader","PageTracker","PageHeadByCluster","ConnectionErrorRegion","GeneralErrorRegion","FlexSplitPane","ErrorBlock","Page","SPLIT_PANE_ID","LOADING_STATUS","LOAD_ERROR","trackVisit","splitMenuItemsAction","joinMenuItemsAction","setSetting","updateCluster","initClusterParams","updateTitle","getAdminPages","isDeveloper","getClusterConfig","NAMESPACES","SettingName","isRedirectToBetaSwitched","isRecentClustersFirst","isRecentPagesFirst","getClusterPagePaneSizes","getStartingPage","SupportedFeaturesUpdater","useRumMeasureStart","useRumMeasureStop","RumMeasureTypes","useClusterFromLocation","makeExtraPageRoutes","jsx","_jsx","jsxs","_jsxs","b","RedirectToBanIfNeededMemo","memo","RedirectToBanIfNeeded","ClusterPage","_Component","_inherits","_super","_createSuper","_this","_classCallCheck","_len","arguments","length","args","Array","_key","call","apply","concat","state","width","contentPaneRef","createRef","_onUpdateEnd","_this$props","props","cluster","Promise","resolve","then","DEVELOPMENT","REDIRECT_TO_BETA_SWITCHED","REDIRECT_TO_BETA","_initMenuCollection","onResize","splitScreen","toolbar","document","querySelector","isSplit","gutterWidth","offset","getElementById","clientWidth","style","right","window","dispatchEvent","Event","handleSplit","updateWidthModifier","onResizeEnd","sizes","NAVIGATION","CLUSTER_PAGE_PANE_SIZES","getInitialSizes","clusterPagePaneSizes","_createClass","key","value","componentDidMount","getSnapshotBeforeUpdate","prevProps","pageYOffset","current","scrollTop","componentDidUpdate","prevState","prevScroll","scrollBy","prevCluster","componentWillUnmount","path","page","itemName","_this$props2","settingsMap","_this$contentPaneRef$","currentWidth","Infinity","setState","renderError","clusterConfig","_ref","error","errorType","CONNECTION","id","AUTHENTICATION","message","GENERAL","isParamsLoading","_this$props3","paramsCluster","renderContent","_this$props4","startingPage","isLoaded","hasError","paramsError","adminPages","isAdmin","children","to","BAN","component","MAINTENANCE","COMPONENTS","OPERATIONS","JOB","DASHBOARD","SYSTEM","ACCOUNTS","TABLET_CELL_BUNDLES","CHAOS_CELL_BUNDLES","PATH_VIEWER","TABLET","USERS","GROUPS","SCHEDULING","includes","QUERIES","from","VERSIONS","className","render","_this$props5","clusters","ClusterPageStopRumMeasure","paneClassNames","direction","HORIZONTAL","onSplit","onUnSplit","minSize","ref","split","mapStateToProps","_state$global","global","login","maintenancePageEvent","loadState","paramsLoading","clustersMenu","LOADED","ERROR","mapDispatchToProps","_ref2","_useSelector","blocked","banned","_useLocation","pathname","enableRedirect","endsWith","type","CLUSTER_PARAMS","subPage","allowStop","_ref3","_ref4","_slicedToArray","startDeps","_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","Component","Fragment","Redirect","Route","Switch","useLocation","connect","useSelector","cn","BanPage","MaintenancePage","HandleMaintenanceRedirect","Components","Operations","Accounts","Dashboard","System","Navigation","PathViewer","Tablet","TabletCellBundles","GroupsPage","UsersPage","Scheduling","QueryTracker","Job","ClusterPageHeader","PageTracker","PageHeadByCluster","ConnectionErrorRegion","GeneralErrorRegion","FlexSplitPane","ErrorBlock","Page","SPLIT_PANE_ID","LOADING_STATUS","LOAD_ERROR","trackVisit","splitMenuItemsAction","joinMenuItemsAction","setSetting","updateCluster","initClusterParams","updateTitle","getAdminPages","isDeveloper","getClusterConfig","NAMESPACES","SettingName","isRedirectToBetaSwitched","isRecentClustersFirst","isRecentPagesFirst","getClusterPagePaneSizes","getStartingPage","SupportedFeaturesUpdater","useRumMeasureStart","useRumMeasureStop","RumMeasureTypes","useClusterFromLocation","makeExtraPageRoutes","jsx","_jsx","jsxs","_jsxs","b","RedirectToBanIfNeededMemo","memo","RedirectToBanIfNeeded","ClusterPage","_Component","_inherits","_super","_createSuper","_this","_classCallCheck","_len","arguments","length","args","Array","_key","call","apply","concat","state","width","contentPaneRef","createRef","_onUpdateEnd","_this$props","props","cluster","Promise","resolve","then","DEVELOPMENT","REDIRECT_TO_BETA_SWITCHED","REDIRECT_TO_BETA","_initMenuCollection","onResize","splitScreen","toolbar","document","querySelector","isSplit","gutterWidth","offset","getElementById","clientWidth","style","right","window","dispatchEvent","Event","handleSplit","updateWidthModifier","onResizeEnd","sizes","NAVIGATION","CLUSTER_PAGE_PANE_SIZES","getInitialSizes","clusterPagePaneSizes","_createClass","key","value","componentDidMount","getSnapshotBeforeUpdate","prevProps","pageYOffset","current","scrollTop","componentDidUpdate","prevState","prevScroll","scrollBy","prevCluster","componentWillUnmount","path","page","itemName","_this$props2","settingsMap","_this$contentPaneRef$","currentWidth","Infinity","setState","renderError","clusterConfig","_ref","error","errorType","CONNECTION","id","AUTHENTICATION","message","GENERAL","isParamsLoading","_this$props3","paramsCluster","renderContent","_this$props4","startingPage","isLoaded","hasError","paramsError","adminPages","isAdmin","children","to","BAN","component","MAINTENANCE","COMPONENTS","OPERATIONS","JOB","DASHBOARD","SYSTEM","ACCOUNTS","TABLET_CELL_BUNDLES","CHAOS_CELL_BUNDLES","PATH_VIEWER","TABLET","USERS","GROUPS","SCHEDULING","includes","QUERIES","from","VERSIONS","className","render","_this$props5","clusters","ClusterPageStopRumMeasure","paneClassNames","direction","HORIZONTAL","onSplit","onUnSplit","minSize","ref","split","mapStateToProps","_state$global","global","login","maintenancePageEvent","loadState","paramsLoading","clustersMenu","LOADED","ERROR","mapDispatchToProps","_ref2","_useSelector","blocked","banned","_useLocation","pathname","enableRedirect","endsWith","type","CLUSTER_PARAMS","subPage","allowStop","_ref3","_ref4","_slicedToArray","startDeps","_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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"}
|
package/build/esm/ui/pages/navigation/content/Table/TableOverview/CreateQueryFromTable.css.map
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["CreateQueryFromTable.scss","CreateQueryFromTable.css"],"names":[],"mappings":"AAAA;EACI,oBAAA;EACA,iBAAA;ACCJ;ADAI;EACI,gBAAA;ACER","file":"CreateQueryFromTable.css","sourcesContent":[".create-query-btn {\n display: inline-flex;\n flex-wrap: nowrap;\n &__btn + &__btn {\n margin-left: 1px;\n }\n}\n",".create-query-btn {\n display: inline-flex;\n flex-wrap: nowrap;\n}\n.create-query-btn__btn + .create-query-btn__btn {\n margin-left: 1px;\n}\n\n/*# sourceMappingURL=CreateQueryFromTable.css.map */"]}
|
@@ -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,72 @@
|
|
1
|
+
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
2
|
+
import React, { useCallback, useState } from 'react';
|
3
|
+
import { useDispatch, useSelector } from 'react-redux';
|
4
|
+
import cn from 'bem-cn-lite';
|
5
|
+
import { Button } from '@gravity-ui/uikit';
|
6
|
+
import { QueryEngine } from '../../../../query-tracker/module/api';
|
7
|
+
import { getPath } from '../../../../../store/selectors/navigation';
|
8
|
+
import { getCluster } from '../../../../../store/selectors/global';
|
9
|
+
import { QueryWidget } from '../../../../query-tracker/QueryWidget';
|
10
|
+
import { createQueryFromTablePath } from '../../../../query-tracker/module/query/actions';
|
11
|
+
import Icon from '../../../../../components/Icon/Icon';
|
12
|
+
import { createNewQueryUrl } from '../../../../query-tracker/utils/navigation';
|
13
|
+
import withSplit from '../../../../../hocs/withSplit';
|
14
|
+
import { mergeScreen, splitScreen } from '../../../../../store/actions/global';
|
15
|
+
import { SPLIT_TYPE } from '../../../../../constants/components/nodes/nodes';
|
16
|
+
import './CreateQueryFromTable.css';
|
17
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
18
|
+
import { jsxs as _jsxs } from "react/jsx-runtime";
|
19
|
+
import { Fragment as _Fragment } from "react/jsx-runtime";
|
20
|
+
var b = cn('create-query-btn');
|
21
|
+
export var QueryWidgetPortal = withSplit(QueryWidget);
|
22
|
+
export function CreateQueryFromTable(_ref) {
|
23
|
+
var className = _ref.className;
|
24
|
+
var _useState = useState(false),
|
25
|
+
_useState2 = _slicedToArray(_useState, 2),
|
26
|
+
widgetOpened = _useState2[0],
|
27
|
+
setWidgetOpened = _useState2[1];
|
28
|
+
var dispatch = useDispatch();
|
29
|
+
var cluster = useSelector(getCluster);
|
30
|
+
var path = useSelector(getPath);
|
31
|
+
var openWidget = useCallback(function () {
|
32
|
+
dispatch(createQueryFromTablePath(QueryEngine.YQL, cluster, path));
|
33
|
+
dispatch(splitScreen(SPLIT_TYPE));
|
34
|
+
setWidgetOpened(true);
|
35
|
+
}, [setWidgetOpened, dispatch, path, cluster]);
|
36
|
+
var onClose = useCallback(function () {
|
37
|
+
setWidgetOpened(false);
|
38
|
+
dispatch(mergeScreen());
|
39
|
+
}, [setWidgetOpened, dispatch]);
|
40
|
+
return /*#__PURE__*/_jsxs(_Fragment, {
|
41
|
+
children: [/*#__PURE__*/_jsxs("div", {
|
42
|
+
className: b(null, className),
|
43
|
+
children: [/*#__PURE__*/_jsx(Button, {
|
44
|
+
onClick: openWidget,
|
45
|
+
pin: "round-clear",
|
46
|
+
view: "action",
|
47
|
+
className: b('btn'),
|
48
|
+
disabled: widgetOpened,
|
49
|
+
title: "Open Queries widget",
|
50
|
+
children: "YQL query"
|
51
|
+
}), /*#__PURE__*/_jsx(Button, {
|
52
|
+
className: b('btn'),
|
53
|
+
pin: "clear-round",
|
54
|
+
view: "action",
|
55
|
+
href: createNewQueryUrl(cluster, QueryEngine.YQL, {
|
56
|
+
path: path
|
57
|
+
}),
|
58
|
+
target: "_blank",
|
59
|
+
title: "Open Queries page",
|
60
|
+
children: /*#__PURE__*/_jsx(Icon, {
|
61
|
+
awesome: "table"
|
62
|
+
})
|
63
|
+
})]
|
64
|
+
}), widgetOpened &&
|
65
|
+
/*#__PURE__*/
|
66
|
+
// @ts-ignore
|
67
|
+
_jsx(QueryWidgetPortal, {
|
68
|
+
onClose: onClose
|
69
|
+
})]
|
70
|
+
});
|
71
|
+
}
|
72
|
+
// #sourceMappingURL=CreateQueryFromTable.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"names":["React","useCallback","useState","useDispatch","useSelector","cn","Button","QueryEngine","getPath","getCluster","QueryWidget","createQueryFromTablePath","Icon","createNewQueryUrl","withSplit","mergeScreen","splitScreen","SPLIT_TYPE","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","b","QueryWidgetPortal","CreateQueryFromTable","_ref","className","_useState","_useState2","_slicedToArray","widgetOpened","setWidgetOpened","dispatch","cluster","path","openWidget","YQL","onClose","children","onClick","pin","view","disabled","title","href","target","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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"}
|