@ytsaurus/ui 1.56.1 → 1.57.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/dist/public/build/assets-manifest.json +15 -15
- package/dist/public/build/css/vcs.ca6825ac.chunk.css +2 -0
- package/dist/public/build/css/vcs.ca6825ac.chunk.css.map +1 -0
- package/dist/public/build/js/{1059.dbab7a54.chunk.js → 1059.68590ad9.chunk.js} +2 -2
- package/dist/public/build/js/{1059.dbab7a54.chunk.js.map → 1059.68590ad9.chunk.js.map} +1 -1
- package/dist/public/build/js/{main.7c1e6782.js → main.bfc510a2.js} +3 -3
- package/dist/public/build/js/{main.7c1e6782.js.map → main.bfc510a2.js.map} +1 -1
- package/dist/public/build/js/query-navigation.5f2d5062.chunk.js +2 -0
- package/dist/public/build/js/query-navigation.5f2d5062.chunk.js.map +1 -0
- package/dist/public/build/js/{runtime.ced6e0e1.js → runtime.7a55c14e.js} +2 -2
- package/dist/public/build/js/{runtime.ced6e0e1.js.map → runtime.7a55c14e.js.map} +1 -1
- package/dist/public/build/js/vcs.8add27e4.chunk.js +2 -0
- package/dist/public/build/js/vcs.8add27e4.chunk.js.map +1 -0
- package/dist/public/build/manifest.json +12 -12
- package/dist/server/ServerFactory.d.ts +3 -0
- package/dist/server/ServerFactory.js +3 -0
- package/dist/server/components/vcs/GithubApi.d.ts +21 -10
- package/dist/server/components/vcs/GithubApi.js +32 -9
- package/dist/server/components/vcs/GitlabApi.d.ts +21 -10
- package/dist/server/components/vcs/GitlabApi.js +31 -9
- package/dist/server/components/vcs/index.d.ts +1 -16
- package/dist/server/components/vcs/index.js +17 -5
- package/dist/server/controllers/vcs.d.ts +1 -1
- package/dist/server/controllers/vcs.js +43 -25
- package/dist/server/routes.js +1 -1
- package/dist/shared/constants/vcs.d.ts +1 -0
- package/dist/shared/constants/vcs.js +4 -0
- package/dist/shared/ui-settings.d.ts +30 -6
- package/dist/shared/vcs.d.ts +38 -7
- package/package.json +2 -2
- package/dist/public/build/css/vcs.9409b0df.chunk.css +0 -2
- package/dist/public/build/css/vcs.9409b0df.chunk.css.map +0 -1
- package/dist/public/build/js/query-navigation.4b0b6e64.chunk.js +0 -2
- package/dist/public/build/js/query-navigation.4b0b6e64.chunk.js.map +0 -1
- package/dist/public/build/js/vcs.d737e61e.chunk.js +0 -2
- package/dist/public/build/js/vcs.d737e61e.chunk.js.map +0 -1
- /package/dist/public/build/js/{main.7c1e6782.js.LICENSE.txt → main.bfc510a2.js.LICENSE.txt} +0 -0
@@ -1,6 +1,4 @@
|
|
1
|
-
import {
|
2
|
-
import { GitlabRepository } from '../../../shared/vcs';
|
3
|
-
import { VcsApi } from './index';
|
1
|
+
import { GitlabRepository, VcsApi, VcsRepository } from '../../../shared/vcs';
|
4
2
|
export type GitlabNode = {
|
5
3
|
id: string;
|
6
4
|
mode: string;
|
@@ -10,22 +8,35 @@ export type GitlabNode = {
|
|
10
8
|
};
|
11
9
|
export declare class GitlabApi implements VcsApi {
|
12
10
|
token: string;
|
13
|
-
|
11
|
+
baseUrl: string;
|
14
12
|
vcsId: string;
|
15
|
-
|
16
|
-
|
17
|
-
|
13
|
+
maxFileSize: number;
|
14
|
+
constructor({ token, baseUrl, vcsId, maxFileSize, }: {
|
15
|
+
token?: string;
|
16
|
+
baseUrl: string;
|
18
17
|
vcsId: string;
|
18
|
+
maxFileSize: number;
|
19
19
|
});
|
20
|
+
getProjectId(repository: VcsRepository): string;
|
20
21
|
getRequestHeaders(): {
|
21
22
|
Authorization: string;
|
22
23
|
};
|
23
24
|
getRepositories(): Promise<Record<string, GitlabRepository>>;
|
24
|
-
getBranches(
|
25
|
-
|
25
|
+
getBranches({ repository }: {
|
26
|
+
repository: VcsRepository;
|
27
|
+
}): Promise<string[]>;
|
28
|
+
getRepositoryContent({ repository, branch, path, }: {
|
29
|
+
repository: VcsRepository;
|
30
|
+
branch: string;
|
31
|
+
path?: string;
|
32
|
+
}): Promise<{
|
26
33
|
name: string;
|
27
34
|
type: 'tree' | 'blob';
|
28
35
|
url: string;
|
29
36
|
}[]>;
|
30
|
-
getFileContent(
|
37
|
+
getFileContent({ repository, branch, path, }: {
|
38
|
+
repository: VcsRepository;
|
39
|
+
branch: string;
|
40
|
+
path: string;
|
41
|
+
}): Promise<string>;
|
31
42
|
}
|
@@ -5,11 +5,18 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
6
6
|
exports.GitlabApi = void 0;
|
7
7
|
const axios_1 = __importDefault(require("axios"));
|
8
|
+
const utils_1 = require("../../utils");
|
8
9
|
class GitlabApi {
|
9
|
-
constructor({ token,
|
10
|
+
constructor({ token, baseUrl, vcsId, maxFileSize, }) {
|
11
|
+
if (!token)
|
12
|
+
throw new utils_1.ErrorWithCode(400, 'Token is required');
|
10
13
|
this.token = token;
|
11
|
-
this.
|
14
|
+
this.baseUrl = baseUrl;
|
12
15
|
this.vcsId = vcsId;
|
16
|
+
this.maxFileSize = maxFileSize;
|
17
|
+
}
|
18
|
+
getProjectId(repository) {
|
19
|
+
return repository.projectId;
|
13
20
|
}
|
14
21
|
getRequestHeaders() {
|
15
22
|
return {
|
@@ -18,7 +25,7 @@ class GitlabApi {
|
|
18
25
|
}
|
19
26
|
getRepositories() {
|
20
27
|
return axios_1.default
|
21
|
-
.get(this.
|
28
|
+
.get(this.baseUrl, {
|
22
29
|
headers: this.getRequestHeaders(),
|
23
30
|
params: {
|
24
31
|
owned: true,
|
@@ -37,18 +44,18 @@ class GitlabApi {
|
|
37
44
|
}, {});
|
38
45
|
});
|
39
46
|
}
|
40
|
-
getBranches(
|
47
|
+
getBranches({ repository }) {
|
41
48
|
return axios_1.default
|
42
|
-
.get(`${this.
|
49
|
+
.get(`${this.baseUrl}/${this.getProjectId(repository)}/repository/branches`, {
|
43
50
|
headers: this.getRequestHeaders(),
|
44
51
|
})
|
45
52
|
.then((response) => {
|
46
53
|
return response.data.map((i) => i.name);
|
47
54
|
});
|
48
55
|
}
|
49
|
-
getRepositoryContent(
|
56
|
+
getRepositoryContent({ repository, branch, path = '', }) {
|
50
57
|
return axios_1.default
|
51
|
-
.get(`${this.
|
58
|
+
.get(`${this.baseUrl}/${this.getProjectId(repository)}/repository/tree?path=${path}`, {
|
52
59
|
headers: this.getRequestHeaders(),
|
53
60
|
params: {
|
54
61
|
ref_name: branch,
|
@@ -64,14 +71,29 @@ class GitlabApi {
|
|
64
71
|
});
|
65
72
|
});
|
66
73
|
}
|
67
|
-
getFileContent(
|
68
|
-
|
74
|
+
async getFileContent({ repository, branch, path, }) {
|
75
|
+
const response = await axios_1.default.get(`${this.baseUrl}/${this.getProjectId(repository)}/repository/files/${path}/raw`, {
|
69
76
|
headers: this.getRequestHeaders(),
|
70
77
|
params: {
|
71
78
|
ref_name: branch,
|
72
79
|
},
|
73
80
|
responseType: 'stream',
|
74
81
|
});
|
82
|
+
const fileStream = response.data;
|
83
|
+
return await new Promise((resolve, reject) => {
|
84
|
+
let temp = '';
|
85
|
+
fileStream.on('data', (chunk) => {
|
86
|
+
temp += chunk.toString();
|
87
|
+
if (Buffer.byteLength(temp) > this.maxFileSize)
|
88
|
+
reject(new Error(`File is too big. Max size ${this.maxFileSize}Mb`));
|
89
|
+
});
|
90
|
+
fileStream.on('end', () => {
|
91
|
+
resolve(temp);
|
92
|
+
});
|
93
|
+
fileStream.on('error', (err) => {
|
94
|
+
reject(err);
|
95
|
+
});
|
96
|
+
});
|
75
97
|
}
|
76
98
|
}
|
77
99
|
exports.GitlabApi = GitlabApi;
|
@@ -1,22 +1,7 @@
|
|
1
1
|
import { VCSSettings } from '../../../shared/ui-settings';
|
2
|
-
import { GithubApi } from './GithubApi';
|
3
|
-
import { GitlabApi } from './GitlabApi';
|
4
|
-
import { AxiosResponse } from 'axios';
|
5
2
|
import { Request } from '@gravity-ui/expresskit';
|
6
|
-
export interface VcsApi {
|
7
|
-
token: string;
|
8
|
-
api: string;
|
9
|
-
vcsId: string;
|
10
|
-
getRequestHeaders(): {
|
11
|
-
Authorization: string;
|
12
|
-
};
|
13
|
-
getRepositories(): Promise<unknown>;
|
14
|
-
getBranches(projectId: string): Promise<string[]>;
|
15
|
-
getRepositoryContent(projectId: string, branch: string, path: string): Promise<unknown[]>;
|
16
|
-
getFileContent(projectId: string, branch: string, path: string): Promise<AxiosResponse<NodeJS.ReadableStream>>;
|
17
|
-
}
|
18
3
|
export declare class VcsFactory {
|
19
|
-
static createVcs(vcs: VCSSettings, token?: string):
|
4
|
+
static createVcs(vcs: VCSSettings, token?: string): import("../../../shared/vcs").VcsApi;
|
20
5
|
static getVcsSettings(req: Request): VCSSettings[];
|
21
6
|
static getVcsSettingById(req: Request, vcsId?: string): VCSSettings;
|
22
7
|
}
|
@@ -1,21 +1,33 @@
|
|
1
1
|
"use strict";
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
|
+
};
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
6
|
exports.VcsFactory = void 0;
|
4
7
|
const GithubApi_1 = require("./GithubApi");
|
5
8
|
const GitlabApi_1 = require("./GitlabApi");
|
6
9
|
const utils_1 = require("../../utils");
|
10
|
+
const ServerFactory_1 = __importDefault(require("../../ServerFactory"));
|
11
|
+
const vcs_1 = require("../../../shared/constants/vcs");
|
7
12
|
class VcsFactory {
|
8
13
|
static createVcs(vcs, token) {
|
9
|
-
|
10
|
-
|
11
|
-
|
14
|
+
const apiConfig = {
|
15
|
+
token,
|
16
|
+
baseUrl: vcs.baseUrl,
|
17
|
+
vcsId: vcs.id,
|
18
|
+
maxFileSize: vcs.maxFileSize || vcs_1.VCS_DEFAULT_MAX_FILE_SIZE,
|
19
|
+
};
|
12
20
|
switch (vcs.type) {
|
13
21
|
case 'github':
|
14
22
|
return new GithubApi_1.GithubApi(apiConfig);
|
15
23
|
case 'gitlab':
|
16
24
|
return new GitlabApi_1.GitlabApi(apiConfig);
|
17
|
-
default:
|
18
|
-
|
25
|
+
default: {
|
26
|
+
const vcsApi = ServerFactory_1.default.createCustomVcsApi(vcs.type, vcs, token);
|
27
|
+
if (!vcsApi)
|
28
|
+
throw new utils_1.ErrorWithCode(400, `Unsupported VCS type`);
|
29
|
+
return vcsApi;
|
30
|
+
}
|
19
31
|
}
|
20
32
|
}
|
21
33
|
static getVcsSettings(req) {
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import { AppRouteHandler } from '@gravity-ui/expresskit';
|
2
|
-
export declare const
|
2
|
+
export declare const getVcsTokensAvailability: AppRouteHandler;
|
3
3
|
export declare const createToken: AppRouteHandler;
|
4
4
|
export declare const removeToken: AppRouteHandler;
|
5
5
|
export declare const getRepositories: AppRouteHandler;
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
4
|
};
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
6
|
-
exports.getFileContent = exports.getDirectoryContent = exports.getBranches = exports.getRepositories = exports.removeToken = exports.createToken = exports.
|
6
|
+
exports.getFileContent = exports.getDirectoryContent = exports.getBranches = exports.getRepositories = exports.removeToken = exports.createToken = exports.getVcsTokensAvailability = void 0;
|
7
7
|
const axios_1 = __importDefault(require("axios"));
|
8
8
|
const utils_1 = require("../utils");
|
9
9
|
const vcs_1 = require("../components/vcs");
|
@@ -18,15 +18,17 @@ const ERROR_MESSAGE = {
|
|
18
18
|
VCS_ID_REQUIRED: 'vcsId is required',
|
19
19
|
VCS_NOT_SUPPORTED: 'The current vcsId is missing from the vcsSettings setting in UISettings',
|
20
20
|
TOKEN_REQUIRED: 'Token is required',
|
21
|
+
TOKENS_ERROR: 'Error getting vcs tokens availability',
|
21
22
|
PATH_REQUIRED: 'Path is required',
|
22
23
|
BRANCH_REQUIRED: 'Branch is required',
|
23
24
|
REPOSITORY_REQUIRED: 'Repository is required',
|
24
25
|
UNAUTHORIZED: 'The service cannot authorize you. Check the token. You can add new token in the section Settings -> VCS',
|
25
26
|
};
|
27
|
+
const VCS_COOKIE_PREFIX = 'vcs_token_';
|
26
28
|
const cookieNameByVcsId = (vcsId) => {
|
27
29
|
if (!vcsId)
|
28
30
|
throw new utils_1.ErrorWithCode(400, ERROR_MESSAGE.VCS_ID_REQUIRED);
|
29
|
-
return
|
31
|
+
return VCS_COOKIE_PREFIX + vcsId;
|
30
32
|
};
|
31
33
|
const sendApiError = (res, error) => {
|
32
34
|
var _a, _b;
|
@@ -49,21 +51,27 @@ const sendApiError = (res, error) => {
|
|
49
51
|
}
|
50
52
|
(0, utils_1.sendError)(res, message, status || 500);
|
51
53
|
};
|
52
|
-
const
|
53
|
-
const cookies = req
|
54
|
+
const getVcsTokensAvailability = (req, res) => {
|
55
|
+
const { cookies } = req;
|
54
56
|
try {
|
55
57
|
const config = vcs_1.VcsFactory.getVcsSettings(req);
|
56
|
-
if (!config
|
57
|
-
throw new utils_1.ErrorWithCode(404, ERROR_MESSAGE.
|
58
|
-
const
|
59
|
-
|
58
|
+
if (!config)
|
59
|
+
throw new utils_1.ErrorWithCode(404, ERROR_MESSAGE.TOKENS_ERROR);
|
60
|
+
const vcsTokenKeys = Object.keys(cookies).filter((name) => name.startsWith(VCS_COOKIE_PREFIX));
|
61
|
+
const ids = config.reduce((acc, { id }) => {
|
62
|
+
if (vcsTokenKeys.includes(VCS_COOKIE_PREFIX + id)) {
|
63
|
+
acc.push(id);
|
64
|
+
}
|
65
|
+
return acc;
|
66
|
+
}, []);
|
67
|
+
res.status(200).json({ ids });
|
60
68
|
}
|
61
69
|
catch (e) {
|
62
|
-
req.ctx.logError(
|
70
|
+
req.ctx.logError(ERROR_MESSAGE.TOKENS_ERROR, e);
|
63
71
|
sendApiError(res, e);
|
64
72
|
}
|
65
73
|
};
|
66
|
-
exports.
|
74
|
+
exports.getVcsTokensAvailability = getVcsTokensAvailability;
|
67
75
|
const createToken = (req, res) => {
|
68
76
|
const { vcsId, token } = req.body;
|
69
77
|
try {
|
@@ -91,11 +99,6 @@ const removeToken = (req, res) => {
|
|
91
99
|
}
|
92
100
|
};
|
93
101
|
exports.removeToken = removeToken;
|
94
|
-
const getProjectIdByRepository = (repository) => {
|
95
|
-
return 'projectId' in repository
|
96
|
-
? repository.projectId
|
97
|
-
: `${repository.owner}/${repository.name}`;
|
98
|
-
};
|
99
102
|
const getRepositories = async (req, res) => {
|
100
103
|
const cookies = req.cookies;
|
101
104
|
const vcsId = req.query.vcsId;
|
@@ -103,7 +106,7 @@ const getRepositories = async (req, res) => {
|
|
103
106
|
const token = cookies[cookieNameByVcsId(vcsId)];
|
104
107
|
const vcs = vcs_1.VcsFactory.getVcsSettingById(req, vcsId);
|
105
108
|
const api = vcs_1.VcsFactory.createVcs(vcs, token);
|
106
|
-
const response = await api.getRepositories();
|
109
|
+
const response = await api.getRepositories({ req, res });
|
107
110
|
res.status(200).json(response);
|
108
111
|
}
|
109
112
|
catch (e) {
|
@@ -121,7 +124,10 @@ const getBranches = async (req, res) => {
|
|
121
124
|
const token = cookies[cookieNameByVcsId(repository.vcsId)];
|
122
125
|
const vcs = vcs_1.VcsFactory.getVcsSettingById(req, repository.vcsId);
|
123
126
|
const api = vcs_1.VcsFactory.createVcs(vcs, token);
|
124
|
-
const response = await api.getBranches(
|
127
|
+
const response = await api.getBranches({
|
128
|
+
repository,
|
129
|
+
requests: { req, res },
|
130
|
+
});
|
125
131
|
res.status(200).json(response);
|
126
132
|
}
|
127
133
|
catch (e) {
|
@@ -145,7 +151,15 @@ const getDirectoryContent = async (req, res) => {
|
|
145
151
|
const token = cookies[cookieNameByVcsId(repository.vcsId)];
|
146
152
|
const vcs = vcs_1.VcsFactory.getVcsSettingById(req, repository.vcsId);
|
147
153
|
const api = vcs_1.VcsFactory.createVcs(vcs, token);
|
148
|
-
const response = await api.getRepositoryContent(
|
154
|
+
const response = await api.getRepositoryContent({
|
155
|
+
repository,
|
156
|
+
branch,
|
157
|
+
path,
|
158
|
+
requests: {
|
159
|
+
req,
|
160
|
+
res,
|
161
|
+
},
|
162
|
+
});
|
149
163
|
response.sort((a, b) => a.type.localeCompare(b.type));
|
150
164
|
res.status(200).json(response);
|
151
165
|
}
|
@@ -170,14 +184,18 @@ const getFileContent = async (req, res) => {
|
|
170
184
|
const token = cookies[cookieNameByVcsId(repository.vcsId)];
|
171
185
|
const vcs = vcs_1.VcsFactory.getVcsSettingById(req, repository.vcsId);
|
172
186
|
const api = vcs_1.VcsFactory.createVcs(vcs, token);
|
173
|
-
const
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
187
|
+
const file = await api.getFileContent({
|
188
|
+
repository,
|
189
|
+
branch,
|
190
|
+
path,
|
191
|
+
requests: {
|
192
|
+
req,
|
193
|
+
res,
|
194
|
+
},
|
179
195
|
});
|
180
|
-
|
196
|
+
res.set('content-type', 'text/json');
|
197
|
+
res.set('Content-Disposition', `attachment; filename=${path}`);
|
198
|
+
res.status(200).send({ file });
|
181
199
|
}
|
182
200
|
catch (e) {
|
183
201
|
req.ctx.logError('Error getting file content', e);
|
package/dist/server/routes.js
CHANGED
@@ -41,7 +41,7 @@ const routes = {
|
|
41
41
|
'GET /api/vcs/file': { handler: vcs_1.getFileContent },
|
42
42
|
'GET /api/vcs/repositories': { handler: vcs_1.getRepositories },
|
43
43
|
'GET /api/vcs/branches': { handler: vcs_1.getBranches },
|
44
|
-
'GET /api/vcs/
|
44
|
+
'GET /api/vcs/tokens-availability': { handler: vcs_1.getVcsTokensAvailability },
|
45
45
|
'POST /api/yt/:ytAuthCluster/change-password': { handler: login_1.handleChangePassword, ui: true },
|
46
46
|
'POST /api/remote-copy': { handler: remote_copy_1.handleRemoteCopy },
|
47
47
|
'POST /api/markdown-to-html': { handler: markdown_to_html_1.markdownToHtmlHandler },
|
@@ -0,0 +1 @@
|
|
1
|
+
export declare const VCS_DEFAULT_MAX_FILE_SIZE: number;
|
@@ -133,22 +133,43 @@ export interface UISettings {
|
|
133
133
|
* Allows to customize VCS navigation on the query page
|
134
134
|
* id - unique identifier of VCS
|
135
135
|
* name - name of VCS. The name is displayed in the selector
|
136
|
-
*
|
137
|
-
*
|
136
|
+
* baseUrl - URL to you VCS api
|
137
|
+
* auth - 'token' | 'none'
|
138
|
+
* maxFileSize - max file size in bytes. 10Mb by default
|
139
|
+
* type - 'gitlab' | 'github' | `custom_vsc_type_${string}`
|
138
140
|
*
|
139
141
|
* @example
|
140
142
|
* vcsSettings: [
|
141
143
|
* {
|
142
144
|
* id: 'vcs1',
|
143
145
|
* name: 'Github',
|
144
|
-
*
|
146
|
+
* auth: 'token',
|
147
|
+
* baseUrl: 'https://api.github.com',
|
145
148
|
* type: 'github',
|
149
|
+
* maxFileSize: 10485760,
|
146
150
|
* },
|
147
151
|
* {
|
148
152
|
* id: 'vcs2',
|
149
153
|
* name: 'Gitlab',
|
150
|
-
*
|
154
|
+
* auth: 'token',
|
155
|
+
* baseUrl: 'https://gitlab.com/api/v4/projects',
|
151
156
|
* type: 'gitlab',
|
157
|
+
* maxFileSize: 10485760,
|
158
|
+
* },
|
159
|
+
* {
|
160
|
+
* id: 'My VCS realization 1',
|
161
|
+
* name: 'MyVCS',
|
162
|
+
* auth: 'token',
|
163
|
+
* baseUrl: 'https://my_vcs_url',
|
164
|
+
* type: 'custom_vsc_type_my-vcs',
|
165
|
+
* maxFileSize: 10485760,
|
166
|
+
* },
|
167
|
+
* {
|
168
|
+
* id: 'My VCS realization 2',
|
169
|
+
* name: 'MyVCS',
|
170
|
+
* baseUrl: 'https://my_vcs_url',
|
171
|
+
* type: 'custom_vsc_type_my-vcs',
|
172
|
+
* maxFileSize: 10485760,
|
152
173
|
* },
|
153
174
|
* ],
|
154
175
|
*/
|
@@ -159,11 +180,14 @@ export interface UISettings {
|
|
159
180
|
*/
|
160
181
|
reUseEffectiveAclForPath?: string;
|
161
182
|
}
|
183
|
+
export type CustomVCSType = `custom_vsc_type_${string}`;
|
162
184
|
export interface VCSSettings {
|
163
185
|
id: string;
|
164
186
|
name: string;
|
165
|
-
|
166
|
-
|
187
|
+
baseUrl: string;
|
188
|
+
auth: 'token' | 'none';
|
189
|
+
type: 'github' | 'gitlab' | CustomVCSType;
|
190
|
+
maxFileSize: number;
|
167
191
|
}
|
168
192
|
export interface UISettingsMonitoring {
|
169
193
|
urlTemplate: string;
|
package/dist/shared/vcs.d.ts
CHANGED
@@ -1,18 +1,49 @@
|
|
1
|
+
import { Request, Response } from '@gravity-ui/expresskit';
|
1
2
|
import { VCSSettings } from './ui-settings';
|
2
|
-
|
3
|
+
type Requests = {
|
4
|
+
req: Request;
|
5
|
+
res: Response;
|
6
|
+
};
|
7
|
+
export interface VcsApi {
|
8
|
+
getRepositories(requests?: Requests): Promise<unknown>;
|
9
|
+
getBranches(params: {
|
10
|
+
repository: VcsRepository;
|
11
|
+
requests?: Requests;
|
12
|
+
}): Promise<{
|
13
|
+
value: string;
|
14
|
+
text: string;
|
15
|
+
}[] | string[]>;
|
16
|
+
getRepositoryContent(params: {
|
17
|
+
repository: VcsRepository;
|
18
|
+
branch: string;
|
19
|
+
path: string;
|
20
|
+
requests?: Requests;
|
21
|
+
}): Promise<{
|
22
|
+
name: string;
|
23
|
+
type: string;
|
24
|
+
url: string;
|
25
|
+
}[]>;
|
26
|
+
getFileContent(params: {
|
27
|
+
repository: VcsRepository;
|
28
|
+
branch: string;
|
29
|
+
path: string;
|
30
|
+
requests?: Requests;
|
31
|
+
}): Promise<string>;
|
32
|
+
}
|
33
|
+
export type Repository = {
|
3
34
|
name: string;
|
4
|
-
owner: string;
|
5
35
|
defaultBranch: string;
|
6
36
|
vcsId: string;
|
7
37
|
};
|
8
|
-
export type
|
9
|
-
|
38
|
+
export type GithubRepository = Repository & {
|
39
|
+
owner: string;
|
40
|
+
};
|
41
|
+
export type GitlabRepository = Repository & {
|
10
42
|
webUrl: string;
|
11
43
|
projectId: string;
|
12
|
-
defaultBranch: string;
|
13
|
-
vcsId: string;
|
14
44
|
};
|
15
|
-
export type VcsRepository = GithubRepository | GitlabRepository;
|
45
|
+
export type VcsRepository = Repository | GithubRepository | GitlabRepository;
|
16
46
|
export type VcsConfig = VCSSettings & {
|
17
47
|
hasToken: boolean;
|
18
48
|
};
|
49
|
+
export {};
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@ytsaurus/ui",
|
3
|
-
"version": "1.
|
3
|
+
"version": "1.57.0",
|
4
4
|
"repository": {
|
5
5
|
"type": "github",
|
6
6
|
"url": "https://github.com/ytsaurus/ytsaurus-ui/tree/main/packages/ui"
|
@@ -180,7 +180,7 @@
|
|
180
180
|
"engines": {
|
181
181
|
"node": ">=18"
|
182
182
|
},
|
183
|
-
"gitHead": "
|
183
|
+
"gitHead": "524bfd2e7d9fb62a60c9a2919b7dc2a61b91488a",
|
184
184
|
"overrides": {
|
185
185
|
"axios": "$axios",
|
186
186
|
"react-split-pane": {
|
@@ -1,2 +0,0 @@
|
|
1
|
-
.vcs-header{display:flex;flex-direction:column;gap:12px;padding:12px}.vcs-header__top-menu{grid-gap:12px 8px;display:grid;gap:12px 8px;grid-template-columns:repeat(2,calc(50% - 4px))}.vcs-items-list{padding:0 12px 12px}.vcs-list-folder{align-items:center;border-bottom:1px solid var(--g-color-line-generic);cursor:pointer;display:flex;gap:0 8px;overflow:hidden;padding:10px 0}.vcs-list-folder__icon{flex-shrink:0}.vcs-list-file{align-items:center;border-bottom:1px solid var(--g-color-line-generic);display:flex;justify-content:space-between;padding:5px 0}.vcs-list-file__link{align-items:center;display:flex;gap:0 8px;overflow:hidden}.vcs-list-file__linkIcon{flex-shrink:0}.vcs-list-file__side{align-items:center;display:flex;gap:0 4px}.vcs-list-preview{display:flex;flex-direction:column;height:100%}.vcs-list-preview__editor{height:100%}.vcs-list-preview__header{align-items:center;display:flex;justify-content:space-between;padding:5px 12px 12px}.vcs-list-preview__header-block{align-items:center;display:flex;gap:0 8px}.vsc{display:flex;flex-direction:column;height:100%}
|
2
|
-
/*# sourceMappingURL=vcs.9409b0df.chunk.css.map*/
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"css/vcs.9409b0df.chunk.css","mappings":"AAAA,YACI,aACA,sBACA,SACA,aAEA,sBAGI,kBAFA,aAEA,aADA,+CACA,CCTR,gBACI,oBCDJ,iBAEI,mBAGA,oDACA,eALA,aAEA,UAIA,gBAHA,cAGA,CAEA,uBACI,cCVR,eAEI,mBAGA,oDAJA,aAEA,8BACA,aACA,CAEA,qBAEI,mBADA,aAEA,UACA,gBAGJ,yBACI,cAGJ,qBAEI,mBADA,aAEA,UCrBR,kBACI,aACA,sBACA,YAEA,0BACI,YAGJ,0BAEI,mBADA,aAEA,8BACA,sBAGJ,gCAEI,mBADA,aAEA,UCnBR,KAEI,aACA,sBAFA,WAEA","sources":["webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/Vcs/VcsHeader/VcsHeader.scss","webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/Vcs/VcsItemsList/VcsItemsList.scss","webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/Vcs/VcsItemsList/VcsListFolder.scss","webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/Vcs/VcsItemsList/VcsListFile.scss","webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/Vcs/VcsItemsList/VcsListPreview.scss","webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/Vcs/Vcs.scss"],"sourcesContent":[".vcs-header {\n display: flex;\n flex-direction: column;\n gap: 12px;\n padding: 12px;\n\n &__top-menu {\n display: grid;\n grid-template-columns: repeat(2, calc(50% - 4px));\n gap: 12px 8px;\n }\n}\n",".vcs-items-list {\n padding: 0 12px 12px;\n}\n",".vcs-list-folder {\n display: flex;\n align-items: center;\n gap: 0 8px;\n padding: 10px 0;\n border-bottom: 1px solid var(--g-color-line-generic);\n cursor: pointer;\n overflow: hidden;\n\n &__icon {\n flex-shrink: 0;\n }\n}\n",".vcs-list-file {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 5px 0;\n border-bottom: 1px solid var(--g-color-line-generic);\n\n &__link {\n display: flex;\n align-items: center;\n gap: 0 8px;\n overflow: hidden;\n }\n\n &__linkIcon {\n flex-shrink: 0;\n }\n\n &__side {\n display: flex;\n align-items: center;\n gap: 0 4px;\n }\n}\n",".vcs-list-preview {\n display: flex;\n flex-direction: column;\n height: 100%;\n\n &__editor {\n height: 100%;\n }\n\n &__header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 5px 12px 12px;\n }\n\n &__header-block{\n display: flex;\n align-items: center;\n gap: 0 8px;\n }\n}\n",".vsc {\n height: 100%;\n display: flex;\n flex-direction: column;\n}\n"],"names":[],"sourceRoot":""}
|
@@ -1,2 +0,0 @@
|
|
1
|
-
"use strict";(self.webpackChunk_ytsaurus_ui=self.webpackChunk_ytsaurus_ui||[]).push([[1040],{63669:(e,t,n)=>{n.r(t),n.d(t,{Navigation:()=>lt});var r=n(77810),a=n(28407),i=n(70232),o=n.n(i),s=n(76872),c=n(13322),u=n(92423),l=n(72679),d=n(65315),p=n(40319),m=n(64922);const h=function(e){return(0,m.jsx)("svg",(0,p.A)((0,p.A)({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 16 16"},e),{},{children:(0,m.jsx)("path",{fill:"currentColor",fillRule:"evenodd",d:"M7.5 13.5v-3A.5.5 0 0 1 8 10h.672a.5.5 0 0 1 .353.146l.414.415.44.439H13a.5.5 0 0 1 .5.5v2a.5.5 0 0 1-.5.5H8a.5.5 0 0 1-.5-.5M6 13H4.5a3 3 0 0 1-3-3V1.25a.75.75 0 0 1 1.5 0V2a1.5 1.5 0 0 0 1.5 1.5H6v-1a2 2 0 0 1 2-2h.672a2 2 0 0 1 1.414.586l.414.414H13a2 2 0 0 1 2 2v2a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2V5H4.5A3 3 0 0 1 3 4.599V10a1.5 1.5 0 0 0 1.5 1.5H6v-1a2 2 0 0 1 2-2h.672a2 2 0 0 1 1.414.586l.414.414H13a2 2 0 0 1 2 2v2a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2zm1.5-8.75V5.5A.5.5 0 0 0 8 6h5a.5.5 0 0 0 .5-.5v-2A.5.5 0 0 0 13 3H9.879l-.44-.44-.414-.414A.5.5 0 0 0 8.672 2H8a.5.5 0 0 0-.5.5z",clipRule:"evenodd"})}))};var f=function(e){var t=e.item,n=e.isCurrent,r=e.onClick;return(0,m.jsx)("div",{onClick:function(e){e.preventDefault(),t.href&&!n&&r(t.href)},children:t.text})},v=function(e){var t=e.path,n=e.cluster,a=e.onClusterChangeClick,i=e.onItemClick,o=(0,r.useCallback)((function(e){i(e)}),[i]),s=(0,r.useMemo)((function(){var e="/";if(!n)return[];var r=[{text:n,action:function(){i("/")}}],a=t.split("/").reduce((function(t,n){return n&&(e+="/"+n,t.push({text:n,href:e,action:function(){}})),t}),[]);return[].concat(r,(0,c.A)(a))}),[n,t,i]);return(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(u.$,{size:"s",view:"flat",onClick:a,children:(0,m.jsx)(l.I,{data:h,size:16})}),(0,m.jsx)(d.BI,{items:s,renderItemContent:function(e,t){return(0,m.jsx)(f,{item:e,isCurrent:t,onClick:o})},firstDisplayedItemsCount:d.t9[t?"Zero":"One"],lastDisplayedItemsCount:d.hR.One})]})};const g=function(e){return(0,m.jsx)("svg",(0,p.A)((0,p.A)({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 16 16"},e),{},{children:(0,m.jsx)("path",{fill:"currentColor",fillRule:"evenodd",d:"m9.194 5 .351.873.94.064 3.197.217-2.46 2.055-.722.603.23.914.782 3.108-2.714-1.704L8 10.629l-.798.5-2.714 1.705.782-3.108.23-.914-.723-.603-2.46-2.055 3.198-.217.94-.064.35-.874L8 2.025zm-7.723-.292 3.943-.268L6.886.773C7.29-.231 8.71-.231 9.114.773l1.472 3.667 3.943.268c1.08.073 1.518 1.424.688 2.118L12.185 9.36l.964 3.832c.264 1.05-.886 1.884-1.802 1.31L8 12.4l-3.347 2.101c-.916.575-2.066-.26-1.802-1.309l.964-3.832L.783 6.826c-.83-.694-.391-2.045.688-2.118",clipRule:"evenodd"})}))},x=function(e){return(0,m.jsx)("svg",(0,p.A)((0,p.A)({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 16 16"},e),{},{children:(0,m.jsx)("path",{fill:"currentColor",d:"M6.886.773C7.29-.231 8.71-.231 9.114.773l1.472 3.667 3.943.268c1.08.073 1.518 1.424.688 2.118L12.185 9.36l.964 3.832c.264 1.05-.886 1.884-1.802 1.31L8 12.4l-3.347 2.101c-.916.575-2.066-.26-1.802-1.309l.964-3.832L.783 6.826c-.83-.694-.391-2.045.688-2.118l3.943-.268z"})}))},w=function(e){return(0,m.jsx)("svg",(0,p.A)((0,p.A)({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 16 16"},e),{},{children:(0,m.jsx)("path",{fill:"currentColor",fillRule:"evenodd",d:"M13.25 2H2.75a.75.75 0 0 0 0 1.5h10.5a.75.75 0 0 0 0-1.5m0 3.5h-5.5a.75.75 0 0 0 0 1.5h5.5a.75.75 0 0 0 0-1.5m0 3.5h-5.5a.75.75 0 0 0 0 1.5h5.5a.75.75 0 0 0 0-1.5m-10.5 3.5h10.5a.75.75 0 0 1 0 1.5H2.75a.75.75 0 0 1 0-1.5m.49-7a.74.74 0 0 1 .463.162l1.906 1.526a1.04 1.04 0 0 1 0 1.624l-1.906 1.526A.74.74 0 0 1 2.5 9.76V6.24a.74.74 0 0 1 .74-.74",clipRule:"evenodd"})}))},C=function(e){return(0,m.jsx)("svg",(0,p.A)((0,p.A)({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 16 16"},e),{},{children:(0,m.jsx)("path",{fill:"currentColor",fillRule:"evenodd",d:"M12 2.5H8A1.5 1.5 0 0 0 6.5 4v1H8a3 3 0 0 1 3 3v1.5h1A1.5 1.5 0 0 0 13.5 8V4A1.5 1.5 0 0 0 12 2.5M11 11h1a3 3 0 0 0 3-3V4a3 3 0 0 0-3-3H8a3 3 0 0 0-3 3v1H4a3 3 0 0 0-3 3v4a3 3 0 0 0 3 3h4a3 3 0 0 0 3-3zM4 6.5h4A1.5 1.5 0 0 1 9.5 8v4A1.5 1.5 0 0 1 8 13.5H4A1.5 1.5 0 0 1 2.5 12V8A1.5 1.5 0 0 1 4 6.5",clipRule:"evenodd"})}))};var y=(0,s.A)("navigation-header-actions"),A=function(e){var t=e.isFavorite,n=e.showCopyBtn,r=e.onFavoriteToggle,a=e.onPathCopy,i=e.onPastePath;return(0,m.jsxs)("div",{className:y(),children:[(0,m.jsx)(u.$,{view:"flat",onClick:r,children:(0,m.jsx)(l.I,{data:t?x:g,size:16})}),(0,m.jsx)(u.$,{view:"flat",onClick:i,children:(0,m.jsx)(l.I,{data:w,size:16})}),n&&(0,m.jsx)(u.$,{view:"flat",onClick:a,children:(0,m.jsx)(l.I,{data:C,size:16})})]})},b=n(65692),j=n(15647),k=n(50875),S=n(45045),N=n(48971),T=n(78259),_=n(20194),E=n(64714),I=n(44639),R=n(78894),L=n(68175),P=n(3659),V=n(2796),q=n(66030),H=n(55956),D=n(52797),z=n(88187),O=function(){var e=(0,a.A)(o().mark((function e(t){var n,r,a,i,s,c,u,l,d,m,h,f,v,g,x,w,C,y,A,b;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.clusterConfig,r=t.path,a=t.login,i=t.schema,s=t.keyColumns,c=t.limit,u=t.output_format,l=i.map((function(e){return e.name})),e.next=4,(0,N.fI)(E.Qq.checkPermission(E.Vu.dynTableCheckPerm,{setup:{proxy:(0,D.v9)(n)},parameters:{columns:l,permission:"read",user:a,path:r}}),{skipSuccessToast:!0,toasterName:"query_navigation_node_permissions",errorTitle:"Navigation node get attributes failure"});case 4:if(d=e.sent,Array.isArray(d.columns)){e.next=7;break}return e.abrupt("return",Promise.reject(new Error("Dynamic table columns is not array")));case 7:if(m=d.columns.reduce((function(e,t,n){return"allow"===t.action?e.availableColumns.push(l[n]):(e.omittedColumns.push(l[n]),s.includes(l[n])&&e.deniedKeyColumns.push((0,L.A)({},l[n],t.action))),e}),{availableColumns:[],omittedColumns:[],deniedKeyColumns:[]}),h=m.availableColumns,f=m.omittedColumns,0===m.deniedKeyColumns.length){e.next=10;break}return e.abrupt("return",Promise.reject(new Error("Dynamic table has denied key columns")));case 10:return v=h.map(P.A.decode),g={query:V.A.prepareQuery({aColumns:v,path:r,keyColumns:s,offset:0,limit:c}),output_format:u,dump_error_into_response:!0},x=(0,p.A)({proxy:(0,D.v9)(n),transformResponse:function(e){var t=e.parsedData,n=e.rawResponse;return{data:t,headers:null==n?void 0:n.headers}}},H.oj),e.next=15,(0,N.fI)((0,z.S)({setup:x,parameters:g}),{skipSuccessToast:!0,toasterName:"query_navigation_node",errorTitle:"Navigation node get rows failure"});case 15:return w=e.sent,C=w.columns,y=w.rows,A=w.yqlTypes,b=i.map((function(e){return e.name})),e.abrupt("return",{columns:(0,q._)(C,f,b),rows:y,yqlTypes:A});case 21:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),M=n(96500),B=function(){var e=(0,a.A)(o().mark((function e(t){var n,r,a,i,s,c,u,l,d,m,h,f,v;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.path,r=t.clusterConfig,a=t.schema,i=t.limit,s=t.output_format,c=(0,p.A)({proxy:(0,D.v9)(r),transformResponse:function(e){var t=e.parsedData,n=e.rawResponse;return{data:t,headers:null==n?void 0:n.headers}}},H.oj),u={path:n+"[#0:#"+i+"]",output_format:s,dump_error_into_response:!0,omit_inaccessible_columns:!0,table_reader:{workload_descriptor:{category:"user_interactive"}}},e.next=5,(0,N.fI)((0,M.B)({setup:c,parameters:u}),{skipSuccessToast:!0,toasterName:"query_navigation_node",errorTitle:"Navigation node get rows failure"});case 5:return l=e.sent,d=l.columns,m=l.omittedColumns,h=l.rows,f=l.yqlTypes,v=a.map((function(e){return e.name})),e.abrupt("return",{columns:(0,q._)(d,m,v),rows:h,yqlTypes:f});case 12:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),F=n(13724),Q=n(21594),$=n(19314),Y=function(e){return!!e&&["table","tablet_cell","replicated_table"].includes(e)},U=function(e){return!!e&&["map_node","scheduler_pool_tree_map","topmost_transaction_map","transaction_map","link","rootstock","portal_entrance"].includes(e)},K=function(e,t){return(0,N.fI)(E.Qq.get(E.Vu.navigationAttributes,{setup:(0,p.A)({proxy:(0,D.v9)(t)},H.oj),parameters:{path:"".concat(e,"/@")}}),{skipSuccessToast:!0,toasterName:"query_navigation_node_attributes",errorTitle:"Navigation node get attributes failure"})},Z=n(21347),W=n(63192),G=function(e){var t=e.path,n=e.cluster,r=e.engine;if(!t||"/"===t)return n;switch(r){case Z.d.YQL:return n+".`"+t+"`";case Z.d.YT_QL:case Z.d.CHYT:return"`"+t+"`";default:return"yt.`ytTable:"+t+"`"}},X=function(){var e=(0,a.A)(o().mark((function e(t){var n,r,a,i,s,c;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.clusterConfig,r=t.path,a=t.engine,i=t.limit,e.next=3,K(r,n);case 3:return s=e.sent,c=T.A.getValue(s.schema),e.abrupt("return","SELECT\n".concat(c.map((function(e){return" `"+e.name+"`"})).join(",\r\n"),"\nFROM ").concat(G({path:r,cluster:n.id,engine:a}),"\nLIMIT ").concat(i));case 6:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),J=n(77720),ee=function(e,t){if(t){var n=t.getPosition(),r={range:n?new J.Q6(n.lineNumber,n.column,n.lineNumber,n.column):new J.Q6(0,0,0,0),text:e};t.executeEdits("Insert text",[r])}},te=n(66853),ne=n(6640),re=n(29730),ae=n(54744),ie=n(43359),oe=new R.I,se=function(e){return function(t,n){var r=n(),a=(0,k.rS)(r),i=(0,k.mk)(r);if(a){var o=(0,Q.HL)(a,$.dK.LOCAL);t((0,F.Mb)(e,o));var s=i.map((function(t){return t.path===e?(0,p.A)((0,p.A)({},t),{},{isFavorite:!t.isFavorite}):t}));t((0,S.CU)(s))}}},ce=function(e){return function(){var t=(0,a.A)(o().mark((function t(n,r){var a,i,s,c,u;return o().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(a=r(),i=(0,k.$D)(a),s=(0,k.WS)(a),i){t.next=5;break}return t.abrupt("return");case 5:return t.next=7,(0,N.fI)(E.Qq.list(E.Vu.navigationListNodes,{setup:(0,p.A)({proxy:(0,D.v9)(i)},H.oj),parameters:{path:e,attributes:["type","broken","dynamic"]}}),{skipSuccessToast:!0,toasterName:"query_navigation_node",errorTitle:"Navigation node open failure"});case 7:c=t.sent,u=c.map((function(t){var n=T.A.getValue(t),r=e+"/"+n,a=T.A.getAttributes(t);return(0,p.A)((0,p.A)({name:n},a),{},{path:r,isFavorite:s.includes(r)})})).sort((function(e,t){return e.name.localeCompare(t.name)})),n((0,S.R6)("")),n((0,S.SO)(e)),n((0,S.VR)(S.Dh.Tree)),n((0,S.CU)(u));case 13:case"end":return t.stop()}}),t)})));return function(e,n){return t.apply(this,arguments)}}()},ue=function(e){return function(){var t=(0,a.A)(o().mark((function t(n,r){var a,i,s,c,u,l,d,p,m,h,f,v,g,x,w,C,y;return o().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(a=r(),i=(0,k.$D)(a),s=(0,ie.GN)(),c=s.cellSize,u=s.pageSize,l=(0,re.fN)(a),d=(0,ae.t5)(a),p=(0,D.ID)(a),i){t.next=8;break}return t.abrupt("return");case 8:return t.next=10,K(e,i);case 10:return m=t.sent,h=T.A.getValue(m.schema),f=(0,ne.m3)(h.map((function(e){return e.name})),c,p,l,d),v=m.dynamic?O:B,t.prev=14,t.next=17,v({login:a.global.login,path:e,clusterConfig:i,schema:h,keyColumns:m.key_columns,limit:u,output_format:f});case 17:g=t.sent,x=g.columns,w=g.rows,C=g.yqlTypes,y={name:m.key,meta:(0,_.UQ)({cluster:i.id,attributes:m,tableType:(0,I.H)(m.dynamic,m),isDynamic:m.dynamic}),rows:w,schema:h,columns:x,yqlTypes:C},n((0,S.SO)(e)),n((0,S.tQ)(y)),n((0,S.VR)(S.Dh.Table)),t.next=30;break;case 27:t.prev=27,t.t0=t.catch(14),oe.add({theme:"danger",autoHiding:!1,name:"Load table data error",title:t.t0?t.t0.message:"Can't load table data"});case 30:case"end":return t.stop()}}),t,null,[[14,27]])})));return function(e,n){return t.apply(this,arguments)}}()},le=function(e){return function(){var t=(0,a.A)(o().mark((function t(n,r){var a;return o().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(a=r(),(0,k.rS)(a)){t.next=4;break}return t.abrupt("return");case 4:return t.prev=4,t.next=7,navigator.clipboard.writeText(e);case 7:oe.add({theme:"success",name:"copy_navigation_path",title:"Path copied"}),t.next=13;break;case 10:t.prev=10,t.t0=t.catch(4),oe.add({theme:"danger",name:"copy_navigation_path",title:"Can't copy path",content:t.t0.message,autoHiding:!1});case 13:case"end":return t.stop()}}),t,null,[[4,10]])})));return function(e,n){return t.apply(this,arguments)}}()},de=n(19904),pe=(0,s.A)("navigation-header"),me=function(){var e=(0,j.wA)(),t=(0,j.d4)(k.WS),n=(0,j.d4)(k.fV),i=(0,j.d4)(k.I7),s=(0,j.d4)(te.ln),c=(0,j.d4)(k.rS),u=(0,j.d4)(k.Rv),l=(0,de.d)().getEditor,d=u!==S.Dh.Table,p=function(){var t=(0,a.A)(o().mark((function t(){return o().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:e(le(i));case 1:case"end":return t.stop()}}),t)})));return function(){return t.apply(this,arguments)}}(),h=(0,r.useCallback)((function(){if(c){var e=l("queryEditor"),t=G({cluster:c,path:i,engine:s});ee(t,e)}}),[c,s,l,i]);return(0,m.jsxs)("div",{className:pe(),children:[(0,m.jsxs)("div",{className:pe("path-wrap"),children:[(0,m.jsx)(v,{path:i,cluster:c,onClusterChangeClick:function(){e((0,S.VR)(S.Dh.Cluster)),e((0,S.l5)(void 0)),e((0,S.SO)(""))},onItemClick:function(t){e(ce(t))}}),c&&(0,m.jsx)(A,{isFavorite:t.includes(i),onFavoriteToggle:function(){e(se(i))},onPathCopy:p,onPastePath:h,showCopyBtn:Boolean(c)})]}),d&&(0,m.jsx)(b.k,{value:n,placeholder:"Filter by name",onUpdate:function(t){e((0,S.R6)(t))},hasClear:!0})]})},he=n(85137),fe=(0,s.A)("navigation-empty"),ve=function(){return(0,m.jsx)("div",{className:fe(),children:(0,m.jsx)(he.E,{variant:"subheader-2",children:"This directory is empty"})})},ge=n(84910),xe=n(56911),we=n(81214),Ce=n.n(we),ye=n(61894),Ae=n.n(ye),be=n(3564),je=n(21086),ke=n(50823),Se=n(40619);const Ne=e=>r.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16"},e),r.createElement("path",{fill:"currentColor",fillRule:"evenodd",d:"M8 14.75a.75.75 0 0 1-.75-.75V3.81L4.53 6.53a.75.75 0 0 1-1.06-1.06l4-4a.75.75 0 0 1 1.06 0l4 4a.75.75 0 0 1-1.06 1.06L8.75 3.81V14a.75.75 0 0 1-.75.75Z",clipRule:"evenodd"})),Te=e=>r.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16"},e),r.createElement("path",{fill:"currentColor",fillRule:"evenodd",d:"M8 1.25a.75.75 0 0 1 .75.75v10.19l2.72-2.72a.75.75 0 1 1 1.06 1.06l-4 4a.75.75 0 0 1-1.06 0l-4-4a.75.75 0 1 1 1.06-1.06l2.72 2.72V2A.75.75 0 0 1 8 1.25Z",clipRule:"evenodd"})),_e=e=>r.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16"},e),r.createElement("path",{fill:"currentColor",fillRule:"evenodd",d:"M3.72 2.22a.75.75 0 0 1 1.06 0l3 3a.75.75 0 0 1-1.06 1.06L5 4.56v8.69a.75.75 0 0 1-1.5 0V4.56L1.78 6.28A.75.75 0 0 1 .72 5.22l3-3ZM11.75 14a.75.75 0 0 1-.53-.22l-3-3a.75.75 0 1 1 1.06-1.06L11 11.44V2.75a.75.75 0 0 1 1.5 0v8.69l1.72-1.72a.75.75 0 1 1 1.06 1.06l-3 3a.75.75 0 0 1-.53.22Z",clipRule:"evenodd"})),Ee=(0,je.om)("sort-indicator");function Ie({order:e}){let t;switch(e){case"asc":t=Ne;break;case"desc":t=Te;break;default:t=_e}return r.createElement("div",{className:Ee()},r.createElement(l.I,{data:t,size:14,className:Ee("icon")}))}const Re=(0,je.om)("table");var Le=function(e){var t;const n=`withTableSorting(${(0,ke.x)(e)})`;function a(e,t,n){return Ce()(e,n)===Ce()(t,n)?0:Ce()(e,n)>Ce()(t,n)?1:-1}return t=class extends r.Component{constructor(){var e;super(...arguments),this.state={sort:null!==(e=this.props.defaultSortState)&&void 0!==e?e:[]},this.enhanceColumns=Ae()((e=>e.map((e=>{const t=e.meta;return t&&t.sort?Object.assign(Object.assign({},e),{meta:Object.assign(Object.assign({},e.meta),{_originalName:e.name}),name:()=>{const t=this.getSortState();let n;if(t.length>0){const r=t.find((t=>t.column===e.id));r&&(n=r.order)}const a=Se.X.getHeadCellContent(e),i=[r.createElement("div",{key:"content",className:Re("sort-content")},a),r.createElement("div",{key:"indicator",className:Re("sort-indicator")},r.createElement(Ie,{order:n}))];"right"!==e.align&&"end"!==e.align||i.reverse();const o=this.handleColumnSortClick.bind(this,e),s=(0,be.h)(o);return r.createElement("div",{role:"button",tabIndex:0,className:Re("sort",{active:Boolean(n)}),onClick:o,onKeyDown:s},i)}}):e})))),this.handleColumnSortClick=(e,t)=>{const n=this.getSortState(),r=n.findIndex((t=>t.column===e.id)),a=n[r],i=this.getNextSortForColumn(e,a);t.shiftKey?a?this.handleSortStateChange([...n.slice(0,r),...n.slice(r+1),...i]):this.handleSortStateChange([...n,...i]):this.handleSortStateChange(i)}}render(){const t=this.props,{columns:n}=t,a=(0,xe.Tt)(t,["columns"]);return r.createElement(e,Object.assign({},a,{data:this.getSortedData(),columns:this.enhanceColumns(n)}))}getSortedData(){const{data:e,columns:t,disableDataSorting:n=this.isControlledState()}=this.props,r=this.getSortState();return n||0===r.length?e:e.slice().sort(((e,n)=>{var i;let o=0;for(;o<r.length;){const s=r[o++],c=t.find((e=>e.id===s.column)),u=null===(i=null==c?void 0:c.meta)||void 0===i?void 0:i.sort;if(!u)continue;const l="function"==typeof u?u(e,n):a(e,n,s.column);if(0!==l)return"asc"===s.order?l:-l}return 0}))}getSortState(){const{sortState:e}=this.props,{sort:t}=this.state;return this.isControlledState()?e:t}handleSortStateChange(e){const{onSortStateChange:t}=this.props;this.isControlledState()||this.setState({sort:e}),t&&t(e)}isControlledState(){const{sortState:e,onSortStateChange:t}=this.props;return Boolean(e&&t)}getColumnDefaultSortOrder(e){var t;return(null===(t=e.meta)||void 0===t?void 0:t.defaultSortOrder)||"asc"}getNextSortForColumn(e,t){const n="desc"===this.getColumnDefaultSortOrder(e)?["desc","asc",void 0]:["asc","desc",void 0],r=n.indexOf(null==t?void 0:t.order),a=n[(r+1)%n.length];return a?[{column:e.id,order:a}]:[]}},t.displayName=n,t}(Se.X),Pe=(0,s.A)("table-with-sorting"),Ve=function(e){return(0,m.jsx)(Le,(0,p.A)((0,p.A)({},e),{},{className:Pe(null,e.className)}))},qe=(0,s.A)("navigation-cluster-list"),He=function(){var e=(0,j.wA)(),t=(0,j.d4)(k.n7);return(0,m.jsx)("div",{className:qe(),children:(0,m.jsx)(Ve,{data:t,columns:[{className:qe("row"),id:"name",name:"Name",template:function(e){var t=e.id,n=e.name,r=e.environment;return(0,m.jsx)(ge._,{id:t,name:n,environment:r,className:qe("table-row")},t)},meta:{sort:function(e,t){return e.name.localeCompare(t.name)}}}],onRowClick:function(t){var n;e((n=t.id,function(e){e((0,S.l5)(n)),e((0,S.SO)("/")),e(ce("/"))}))}})})},De=n(9736),ze=n(36554),Oe=n(60620),Me=n(55695),Be=n(41347),Fe=n(75299),Qe=(0,s.A)("navigation-node-list-row"),$e=function(e){var t=e.node,n=t.type,r=t.broken,a=t.dynamic,i=t.name,o=t.path,s=t.isFavorite,c=e.onClick,d=e.onFavoriteToggle,h=e.onClipboardCopy,f=e.onEditorInsert,v=e.onNewQuery,C=e.onNewWindowOpen,y=(0,Fe.A)(!1),A=(0,De.A)(y,2),b=A[0],j=A[1],k=(0,Fe.A)(!1),S=(0,De.A)(k,2),N=S[0],T=S[1],_="table"===n&&a?"table_dynamic":n,E=(0,ze.c5)(_,r),I=U(n)||Y(n),R=I&&"..."!==i,L=function(e){e.stopPropagation()};return(0,m.jsxs)("div",{className:Qe({unsupported:!I,active:N||b}),onClick:function(){c(o,n)},children:[(0,m.jsxs)("div",{className:Qe("icon-wrap"),children:[(0,m.jsx)(Oe.A,{awesome:E,size:16}),s&&(0,m.jsx)(l.I,{data:x,className:Qe("favorite-icon"),size:10})]}),(0,m.jsx)(he.E,{ellipsis:!0,children:i}),R&&(0,m.jsxs)("div",{className:Qe("actions"),children:[(0,m.jsx)(u.$,{view:"flat",onClick:function(e){L(e),d(o)},children:(0,m.jsx)(l.I,{data:s?x:g,size:16})}),Y(n)?(0,m.jsx)(Me.r,{open:b,onOpenToggle:j,renderSwitcher:function(e){return(0,m.jsx)(u.$,(0,p.A)((0,p.A)({view:"flat"},e),{},{children:(0,m.jsx)(l.I,{data:w,size:16})}))},items:[{text:"Copy to clipboard",items:[{text:"Path",action:function(e){e.stopPropagation(),h(o,"path")}}]},{text:"Insert into editor",items:[{text:"Path",action:function(e){e.stopPropagation(),f(o,"path")}},{text:"SELECT",action:function(e){e.stopPropagation(),f(o,"select")}}]},{text:"Create new query",items:[{text:"SELECT (YT QL)",action:function(e){e.stopPropagation(),v(o,Z.d.YT_QL)}},{text:"SELECT (YQL)",action:function(e){e.stopPropagation(),v(o,Z.d.YQL)}},{text:"SELECT (CHYT)",action:function(e){e.stopPropagation(),v(o,Z.d.CHYT)}},{text:"SELECT (SPYT)",action:function(e){e.stopPropagation(),v(o,Z.d.SPYT)}}]}],onSwitcherClick:L}):(0,m.jsx)(u.$,{view:"flat",onClick:function(e){L(e),f(o,"path")},children:(0,m.jsx)(l.I,{data:w,size:16})}),(0,m.jsx)(Me.r,{open:N,onOpenToggle:T,items:[{action:function(e){e.stopPropagation(),h(o,"url")},text:"Copy link"},{action:function(){C(o)},text:"Open in cluster",iconEnd:(0,m.jsx)(l.I,{data:Be.A})}],onSwitcherClick:L})]})]})},Ye=n(5166),Ue=n(73502),Ke=(0,s.A)("navigation-node-list"),Ze=function(){var e=(0,j.wA)(),t=(0,Fe.A)(!1),n=(0,De.A)(t,2),i=n[0],s=n[1],c=(0,r.useRef)(null),u=(0,j.d4)(k.$D),l=(0,j.d4)(k.mV),d=(0,j.d4)(te.ln),h=(0,ie.GN)().pageSize,f=(0,j.d4)(te.Py),v=(0,de.d)().getEditor,g=l.length<=1,x=function(t,n){U(n)?e(ce(t)):Y(n)&&e(ue(t))},w=(0,r.useCallback)((function(t){e(se(t))}),[e]),C=(0,r.useCallback)(function(){var e=(0,a.A)(o().mark((function e(t,n){var r,a;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(u&&u.id){e.next=2;break}return e.abrupt("return");case 2:if(r=v("queryEditor"),a="","path"!==n){e.next=8;break}a=G({cluster:u.id,path:t,engine:d}),e.next=11;break;case 8:return e.next=10,X({clusterConfig:u,path:t,engine:d,limit:h});case 10:a=e.sent;case 11:ee(a,r);case 12:case"end":return e.stop()}}),e)})));return function(t,n){return e.apply(this,arguments)}}(),[u,d,v,h]),y=(0,r.useCallback)((function(t,n){if(u&&u.id){var r="path"===n?G({cluster:u.id,path:t,engine:d}):function(e,t){var n=new URL(location.origin+location.pathname);return n.searchParams.append("listMode","navigation"),n.searchParams.append("navCluster",e),t&&"/"!==t&&n.searchParams.append("navPath",t),n.toString()}(u.id,t);e(le(r))}}),[u,e,d]),A=(0,r.useCallback)((function(e){if(u&&u.id){var t=new URL(location.origin+"/".concat(u.id,"/navigation"));t.searchParams.append("path",e),window.open(t)}}),[u]),b=(0,r.useCallback)((function(){var t=v("queryEditor"),n=c.current;t&&n&&(e(function(e,t,n){return function(){var r=(0,a.A)(o().mark((function r(a,i){var s,c,u,l,d,m,h,f;return o().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:if(s=i(),c=(0,ie.GN)(),u=c.pageSize,l=(0,k.$D)(s),d=(0,te.sh)(s),m=d.settings,l){r.next=6;break}return r.abrupt("return");case 6:return r.next=8,a((0,W.cQ)());case 8:return(h=m?(0,p.A)({},m):{}).cluster=l.id,t===Z.d.CHYT&&a((0,W.TI)(t,l.id)),a((0,W.Bn)({engine:t,settings:h})),r.next=14,X({clusterConfig:l,path:e,engine:t,limit:u});case 14:f=r.sent,ee(f,n);case 16:case"end":return r.stop()}}),r)})));return function(e,t){return r.apply(this,arguments)}}()}(n.path,n.engine,t)),s())}),[e,v,s]),S=(0,r.useCallback)((function(){c.current=null,s()}),[s]),N=(0,r.useCallback)(function(){var e=(0,a.A)(o().mark((function e(t,n){return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!f){e.next=4;break}return s(),c.current={path:t,engine:n},e.abrupt("return");case 4:c.current={path:t,engine:n},b();case 6:case"end":return e.stop()}}),e)})));return function(t,n){return e.apply(this,arguments)}}(),[f,b,s]);return(0,m.jsxs)("div",{className:Ke(),children:[(0,m.jsx)(Ve,{data:l,columns:[{className:Ke("row"),id:"name",name:"Name",template:function(e){return(0,m.jsx)($e,{node:e,onClick:x,onFavoriteToggle:w,onEditorInsert:C,onClipboardCopy:y,onNewWindowOpen:A,onNewQuery:N})},meta:{sort:function(e,t){return e.name.localeCompare(t.name)}}}]}),g&&(0,m.jsx)("div",{className:Ke("empty-wrap"),children:(0,m.jsx)(Ue.R,{className:Ke("empty-icon"),warning:"This directory is empty"})}),(0,m.jsx)(Ye.J,{confirm:b,cancel:S,visible:i})]})},We=n(79726),Ge=n(77318),Xe=[{name:"name",header:"Name",render:function(e){var t=e.row;return(0,m.jsxs)(m.Fragment,{children:[Boolean(t.sort_order)&&(0,m.jsx)(Oe.A,{awesome:"descending"===t.sort_order?"sort-amount-up":"sort-amount-down-alt",size:16})," ",t.name]})}},{name:"type",header:"Type v3",render:function(e){var t=e.row;return(0,m.jsxs)(m.Fragment,{children:[t.type," ",!t.required&&(0,m.jsx)(he.E,{variant:"caption-1",children:"optional"})]})}}],Je=function(e){var t=e.schema,n=(0,j.wA)(),r=(0,j.d4)(k.fV);return(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(b.k,{value:r,placeholder:"Filter by name",onUpdate:function(e){n((0,S.R6)(e))},hasClear:!0}),(0,m.jsx)(Ge.Ay,{data:t,columns:Xe,useThemeYT:!0})]})},et=n(35074),tt=n(46619),nt=(0,s.A)("navigation-preview-tab"),rt=function(e){var t=e.table,n=e.ysonSettings,a=e.onEditorInsert,i=(0,r.useMemo)((function(){return(0,tt.X)({columns:t.columns.map((function(e){return{name:e}})),keyColumns:[],yqlTypes:t.yqlTypes,ysonSettings:n,useRawStrings:void 0,schemaByName:t.schema.reduce((function(e,t){return e[t.name]=t,e}),{})})}),[t,n]);return(0,m.jsxs)("div",{children:[(0,m.jsxs)(u.$,{onClick:a,children:[(0,m.jsx)(l.I,{data:Be.A,size:16}),"insert SELECT"]}),(0,m.jsx)(Ge.Ay,{className:nt(),columns:i,data:t.rows,useThemeYT:!0})]})},at=n(34694),it=n(4386),ot=(0,s.A)("navigation-table"),st=function(){var e=(0,r.useState)("schema"),t=(0,De.A)(e,2),n=t[0],i=t[1],s=(0,j.d4)(k.$D),c=(0,j.d4)(k.PR),u=(0,j.d4)(te.ln),l=(0,j.d4)(at.XL),d=(0,j.d4)(k.I7),p=(0,j.d4)(it.Dn),h=(0,de.d)().getEditor,f=function(){var e=(0,a.A)(o().mark((function e(){var t,n;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(s){e.next=2;break}return e.abrupt("return");case 2:return t=h("queryEditor"),e.next=5,X({clusterConfig:s,path:d,engine:u,limit:l});case 5:n=e.sent,ee(n,t);case 7:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}();return c?(0,m.jsxs)("div",{className:ot(),children:[(0,m.jsx)(We.a,{defaultValue:n,onUpdate:function(e){i(e)},options:[{value:"schema",content:"Schema"},{value:"preview",content:"Preview"},{value:"meta",content:"Meta"}]}),(0,m.jsxs)("div",{className:ot("content"),children:["schema"===n&&(0,m.jsx)(Je,{schema:c.schema}),"preview"===n&&(0,m.jsx)(rt,{table:c,onEditorInsert:f,ysonSettings:p}),"meta"===n&&(0,m.jsx)(et.Ay,{items:c.meta})]})]}):(0,m.jsx)("div",{children:"Empty data"})},ct=function(){switch((0,j.d4)(k.Rv)){case S.Dh.Tree:return(0,m.jsx)(Ze,{});case S.Dh.Table:return(0,m.jsx)(st,{});case S.Dh.Cluster:return(0,m.jsx)(He,{});default:return(0,m.jsx)(ve,{})}},ut=(0,s.A)("query-navigation"),lt=function(){var e=(0,j.wA)();return(0,r.useEffect)((function(){e(function(){var e=(0,a.A)(o().mark((function e(t,n){var r,a,i,s;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=n(),a=(0,k.$D)(r),i=(0,k.I7)(r),a){e.next=5;break}return e.abrupt("return");case 5:return e.next=7,(0,N.fI)(E.Qq.get(E.Vu.navigationGetType,{setup:(0,p.A)({proxy:(0,D.v9)(a)},H.oj),parameters:{path:"".concat(i,"/@type")}}),{skipSuccessToast:!0,toasterName:"query_navigation_get_node_type",errorTitle:"Navigation get node type failure"});case 7:if(s=e.sent,!Y(s)){e.next=12;break}return e.next=11,t(ue(i));case 11:return e.abrupt("return");case 12:if(!U(s)){e.next=16;break}return e.next=15,t(ce(i));case 15:return e.abrupt("return");case 16:t(ce("/"));case 17:case"end":return e.stop()}}),e)})));return function(t,n){return e.apply(this,arguments)}}())}),[e]),(0,m.jsxs)("div",{className:ut(),children:[(0,m.jsx)(me,{}),(0,m.jsx)(ct,{})]})}},5166:(e,t,n)=>{n.d(t,{J:()=>h,f:()=>f});var r=n(9736),a=n(77810),i=n(15647),o=n(92423),s=n(72679),c=n(11960),u=n(66853),l=n(1701),d=n(19314),p=n(52797),m=n(64922),h=function(e){return(0,m.jsx)(c.A,{title:"New query",content:"All the changes will be lost. Are you sure you want to reset query?",onCancel:e.cancel,onConfirm:e.confirm,onOutsideClick:e.cancel,visible:e.visible})},f=function(e){var t=e.onClick,n=(0,i.d4)(u.Py),c=(0,a.useState)(!1),f=(0,r.A)(c,2),v=f[0],g=f[1],x=(0,i.d4)(p.dB);return(0,m.jsxs)(a.Fragment,{children:[(0,m.jsxs)(o.$,{qa:"new-query-btn",view:"action",size:"l",title:"New query",href:"/".concat(x,"/").concat(d.YW.QUERIES),onClick:function(e){e.preventDefault(),n?g(!0):t()},children:[(0,m.jsx)(s.I,{data:l.A,size:16}),"New"]}),(0,m.jsx)(h,{confirm:function(){t(),g(!1)},cancel:function(){g(!1)},visible:v})]})}},84910:(e,t,n)=>{n.d(t,{_:()=>l}),n(77810);var r=n(76872),a=n(85137),i=n(477),o=n(3844),s=n(64922),c=(0,r.A)("query-cluster-item"),u=(0,r.A)("query-cluster-icon"),l=function(e){var t=e.id,n=e.name,r=e.environment,l=e.className,d=(0,o.O)(t);return(0,s.jsxs)("div",{className:c(null,l),children:[(0,s.jsx)(i.A,{name:n,className:u(null,d)}),(0,s.jsxs)("div",{className:c("info"),children:[n,(0,s.jsx)(a.E,{color:"secondary",className:c("environment"),children:r})]})]})}},41347:(e,t,n)=>{n.d(t,{A:()=>i});var r=n(40319),a=n(64922);const i=function(e){return(0,a.jsx)("svg",(0,r.A)((0,r.A)({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 16 16"},e),{},{children:(0,a.jsx)("path",{fill:"currentColor",fillRule:"evenodd",d:"M10 1.5A.75.75 0 0 0 10 3h1.94L6.97 7.97a.75.75 0 0 0 1.06 1.06L13 4.06V6a.75.75 0 0 0 1.5 0V2.25a.75.75 0 0 0-.75-.75zM7.5 3.25a.75.75 0 0 0-.75-.75H4.5a3 3 0 0 0-3 3v6a3 3 0 0 0 3 3h6a3 3 0 0 0 3-3V9.25a.75.75 0 0 0-1.5 0v2.25a1.5 1.5 0 0 1-1.5 1.5h-6A1.5 1.5 0 0 1 3 11.5v-6A1.5 1.5 0 0 1 4.5 4h2.25a.75.75 0 0 0 .75-.75",clipRule:"evenodd"})}))}},1701:(e,t,n)=>{n.d(t,{A:()=>i});var r=n(40319),a=n(64922);const i=function(e){return(0,a.jsx)("svg",(0,r.A)((0,r.A)({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 16 16"},e),{},{children:(0,a.jsx)("path",{fill:"currentColor",fillRule:"evenodd",d:"M12.5 12a1.5 1.5 0 0 1-1.5 1.5H5A1.5 1.5 0 0 1 3.5 12V4A1.5 1.5 0 0 1 5 2.5h2.757a1.5 1.5 0 0 1 1.061.44l3.243 3.242a1.5 1.5 0 0 1 .439 1.06zm.621-6.879A3 3 0 0 1 14 7.243V12a3 3 0 0 1-3 3H5a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3h2.757a3 3 0 0 1 2.122.879L13.12 5.12ZM8.75 6.75a.75.75 0 0 0-1.5 0v1.5h-1.5a.75.75 0 0 0 0 1.5h1.5v1.5a.75.75 0 0 0 1.5 0v-1.5h1.5a.75.75 0 0 0 0-1.5h-1.5z",clipRule:"evenodd"})}))}}}]);
|
2
|
-
//# sourceMappingURL=query-navigation.4b0b6e64.chunk.js.map
|