@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.
Files changed (37) hide show
  1. package/dist/public/build/assets-manifest.json +15 -15
  2. package/dist/public/build/css/vcs.ca6825ac.chunk.css +2 -0
  3. package/dist/public/build/css/vcs.ca6825ac.chunk.css.map +1 -0
  4. package/dist/public/build/js/{1059.dbab7a54.chunk.js → 1059.68590ad9.chunk.js} +2 -2
  5. package/dist/public/build/js/{1059.dbab7a54.chunk.js.map → 1059.68590ad9.chunk.js.map} +1 -1
  6. package/dist/public/build/js/{main.7c1e6782.js → main.bfc510a2.js} +3 -3
  7. package/dist/public/build/js/{main.7c1e6782.js.map → main.bfc510a2.js.map} +1 -1
  8. package/dist/public/build/js/query-navigation.5f2d5062.chunk.js +2 -0
  9. package/dist/public/build/js/query-navigation.5f2d5062.chunk.js.map +1 -0
  10. package/dist/public/build/js/{runtime.ced6e0e1.js → runtime.7a55c14e.js} +2 -2
  11. package/dist/public/build/js/{runtime.ced6e0e1.js.map → runtime.7a55c14e.js.map} +1 -1
  12. package/dist/public/build/js/vcs.8add27e4.chunk.js +2 -0
  13. package/dist/public/build/js/vcs.8add27e4.chunk.js.map +1 -0
  14. package/dist/public/build/manifest.json +12 -12
  15. package/dist/server/ServerFactory.d.ts +3 -0
  16. package/dist/server/ServerFactory.js +3 -0
  17. package/dist/server/components/vcs/GithubApi.d.ts +21 -10
  18. package/dist/server/components/vcs/GithubApi.js +32 -9
  19. package/dist/server/components/vcs/GitlabApi.d.ts +21 -10
  20. package/dist/server/components/vcs/GitlabApi.js +31 -9
  21. package/dist/server/components/vcs/index.d.ts +1 -16
  22. package/dist/server/components/vcs/index.js +17 -5
  23. package/dist/server/controllers/vcs.d.ts +1 -1
  24. package/dist/server/controllers/vcs.js +43 -25
  25. package/dist/server/routes.js +1 -1
  26. package/dist/shared/constants/vcs.d.ts +1 -0
  27. package/dist/shared/constants/vcs.js +4 -0
  28. package/dist/shared/ui-settings.d.ts +30 -6
  29. package/dist/shared/vcs.d.ts +38 -7
  30. package/package.json +2 -2
  31. package/dist/public/build/css/vcs.9409b0df.chunk.css +0 -2
  32. package/dist/public/build/css/vcs.9409b0df.chunk.css.map +0 -1
  33. package/dist/public/build/js/query-navigation.4b0b6e64.chunk.js +0 -2
  34. package/dist/public/build/js/query-navigation.4b0b6e64.chunk.js.map +0 -1
  35. package/dist/public/build/js/vcs.d737e61e.chunk.js +0 -2
  36. package/dist/public/build/js/vcs.d737e61e.chunk.js.map +0 -1
  37. /package/dist/public/build/js/{main.7c1e6782.js.LICENSE.txt → main.bfc510a2.js.LICENSE.txt} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"js/query-navigation.4b0b6e64.chunk.js","mappings":"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","sources":["webpack://@ytsaurus/ui/./node_modules/@gravity-ui/icons/svgs/folder-tree.svg","webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/Navigation/NavigationHeader/BreadcrumbsItem.tsx","webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/Navigation/NavigationHeader/NavigationBreadcrumbs.tsx","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/icons/svgs/star.svg","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/icons/svgs/star-fill.svg","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/icons/svgs/text-indent.svg","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/icons/svgs/copy.svg","webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/Navigation/NavigationHeader/HeaderActions.tsx","webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/Navigation/api/loadDynamicTable.ts","webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/Navigation/api/loadStaticTable.ts","webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/Navigation/helpers/isTableNode.ts","webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/Navigation/helpers/isFolderNode.ts","webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/Navigation/api/loadTableAttributes.ts","webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/Navigation/helpers/makePathByQueryEngine.ts","webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/Navigation/helpers/createTableSelect.ts","webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/Navigation/helpers/insertTextWhereCursor.ts","webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/module/queryNavigation/actions.ts","webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/Navigation/NavigationHeader/NavigationHeader.tsx","webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/Navigation/NavigationBody/NavigationEmpty.tsx","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/icons/esm/ArrowUp.js","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/icons/esm/ArrowDown.js","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/icons/esm/ArrowUpArrowDown.js","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/uikit/build/esm/components/Table/hoc/withTableSorting/SortIndicator/SortIndicator.js","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/uikit/build/esm/components/Table/hoc/withTableSorting/withTableSorting.js","webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/Navigation/NodeList/TableWithSorting.tsx","webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/Navigation/ClusterList/ClusterList.tsx","webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/Navigation/NodeList/NodeListRow.tsx","webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/Navigation/NodeList/NodeList.tsx","webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/Navigation/helpers/getNavigationUrl.ts","webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/Navigation/NavigationTable/SchemaTab.tsx","webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/Navigation/NavigationTable/PreviewTab.tsx","webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/Navigation/NavigationTable/NavigationTable.tsx","webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/Navigation/NavigationBody/NavigationBody.tsx","webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/Navigation/Navigation.tsx","webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/NewQueryButton/NewQueryButton.tsx","webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/QueryTrackerTopRow/QueryClusterSelector/QueryClusterItem.tsx","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/icons/svgs/arrow-up-right-from-square.svg","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/icons/svgs/file-plus.svg"],"sourcesContent":["const SvgFolderTree = props => <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 16 16\" {...props}><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\" /></svg>;\nexport default SvgFolderTree;","import React, {FC, MouseEvent} from 'react';\nimport {BreadcrumbsItem as BreadcrumbsItemType} from '@gravity-ui/uikit/build/esm/components/Breadcrumbs/Breadcrumbs';\n\nexport const BreadcrumbsItem: FC<{\n item: BreadcrumbsItemType;\n isCurrent: boolean;\n onClick: (path: string) => void;\n}> = ({item, isCurrent, onClick}) => {\n const handleItemClick = (e: MouseEvent<HTMLDivElement>) => {\n e.preventDefault();\n if (item.href && !isCurrent) {\n onClick(item.href);\n }\n };\n\n return <div onClick={handleItemClick}>{item.text}</div>;\n};\n","import React, {FC, useCallback, useMemo} from 'react';\nimport {\n Breadcrumbs,\n BreadcrumbsItem as BreadcrumbsItemType,\n Button,\n FirstDisplayedItemsCount,\n Icon,\n LastDisplayedItemsCount,\n} from '@gravity-ui/uikit';\nimport FolderTreeIcon from '@gravity-ui/icons/svgs/folder-tree.svg';\nimport {BreadcrumbsItem} from './BreadcrumbsItem';\n\ntype Props = {\n path: string;\n cluster: string | undefined;\n onClusterChangeClick: () => void;\n onItemClick: (path: string) => void;\n};\n\nexport const NavigationBreadcrumbs: FC<Props> = ({\n path,\n cluster,\n onClusterChangeClick,\n onItemClick,\n}) => {\n const handleBreadcrumbsClick = useCallback(\n (newPath: string) => {\n onItemClick(newPath);\n },\n [onItemClick],\n );\n\n const items = useMemo(() => {\n let href = '/';\n if (!cluster) return [];\n\n const result = [\n {\n text: cluster,\n action: () => {\n onItemClick('/');\n },\n },\n ];\n const pathItems = path.split('/').reduce<BreadcrumbsItemType[]>((acc, text) => {\n if (text) {\n href += '/' + text;\n acc.push({\n text,\n href,\n action: () => {},\n });\n }\n\n return acc;\n }, []);\n\n return [...result, ...pathItems];\n }, [cluster, path, onItemClick]);\n\n return (\n <>\n <Button size=\"s\" view=\"flat\" onClick={onClusterChangeClick}>\n <Icon data={FolderTreeIcon} size={16} />\n </Button>\n <Breadcrumbs\n items={items}\n renderItemContent={(item, isCurrent) => (\n <BreadcrumbsItem\n item={item}\n isCurrent={isCurrent}\n onClick={handleBreadcrumbsClick}\n />\n )}\n firstDisplayedItemsCount={FirstDisplayedItemsCount[path ? 'Zero' : 'One']}\n lastDisplayedItemsCount={LastDisplayedItemsCount.One}\n />\n </>\n );\n};\n","const SvgStar = props => <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 16 16\" {...props}><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\" /></svg>;\nexport default SvgStar;","const SvgStarFill = props => <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 16 16\" {...props}><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\" /></svg>;\nexport default SvgStarFill;","const SvgTextIndent = props => <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 16 16\" {...props}><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\" /></svg>;\nexport default SvgTextIndent;","const SvgCopy = props => <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 16 16\" {...props}><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\" /></svg>;\nexport default SvgCopy;","import React, {FC} from 'react';\nimport {Button, Icon} from '@gravity-ui/uikit';\nimport StarIcon from '@gravity-ui/icons/svgs/star.svg';\nimport StarFillIcon from '@gravity-ui/icons/svgs/star-fill.svg';\nimport TextIndentIcon from '@gravity-ui/icons/svgs/text-indent.svg';\nimport CopyIcon from '@gravity-ui/icons/svgs/copy.svg';\nimport './HeaderActions.scss';\nimport cn from 'bem-cn-lite';\n\nconst b = cn('navigation-header-actions');\n\ntype Props = {\n showCopyBtn: boolean;\n isFavorite: boolean;\n onFavoriteToggle: () => void;\n onPathCopy: () => void;\n onPastePath: () => void;\n};\n\nexport const HeaderActions: FC<Props> = ({\n isFavorite,\n showCopyBtn,\n onFavoriteToggle,\n onPathCopy,\n onPastePath,\n}) => {\n return (\n <div className={b()}>\n <Button view=\"flat\" onClick={onFavoriteToggle}>\n <Icon data={isFavorite ? StarFillIcon : StarIcon} size={16} />\n </Button>\n <Button view=\"flat\" onClick={onPastePath}>\n <Icon data={TextIndentIcon} size={16} />\n </Button>\n {showCopyBtn && (\n <Button view=\"flat\" onClick={onPathCopy}>\n <Icon data={CopyIcon} size={16} />\n </Button>\n )}\n </div>\n );\n};\n","import {wrapApiPromiseByToaster} from '../../../../utils/utils';\nimport {YTApiId, ytApiV3Id} from '../../../../rum/rum-wrap-api';\nimport unipika from '../../../../common/thor/unipika';\nimport Query from '../../../../utils/navigation/content/table/query';\nimport {injectColumnsFromSchema} from '../../../../utils/navigation/content/table/table-ts';\nimport {NavigationTableSchema} from '../../module/queryNavigation/queryNavigationSlice';\nimport {UnipikaValue} from '../../../../components/Yson/StructuredYson/StructuredYsonTypes';\nimport {JSONParser} from '../../module/api';\nimport {TypeArray} from '../../../../components/SchemaDataType/dataTypes';\nimport {getClusterProxy} from '../../../../store/selectors/global';\nimport {ClusterConfig} from '../../../../../shared/yt-types';\nimport {readDynamicTable} from '../../../../store/actions/navigation/content/table/readDynamicTable';\n\ntype LoadDynamicTable = (props: {\n path: string;\n clusterConfig: ClusterConfig;\n schema: NavigationTableSchema[];\n login: string;\n keyColumns: string[];\n limit: number;\n output_format: Record<string, any> | string;\n}) => Promise<{columns: string[]; rows: UnipikaValue[]; yqlTypes: TypeArray[] | null}>;\n\ntype ColumnPermission = {\n action: string;\n object_id: string;\n object_name: string;\n subject_id: string;\n subject_name: string;\n};\n\nexport const loadDynamicTableRequest: LoadDynamicTable = async ({\n clusterConfig,\n path,\n login,\n schema,\n keyColumns,\n limit,\n output_format,\n}) => {\n const allColumns = schema.map(({name}) => name);\n const permissions = await wrapApiPromiseByToaster<{columns: ColumnPermission[]}>(\n ytApiV3Id.checkPermission(YTApiId.dynTableCheckPerm, {\n setup: {\n proxy: getClusterProxy(clusterConfig),\n },\n parameters: {\n columns: allColumns,\n permission: 'read',\n user: login,\n path,\n },\n }),\n {\n skipSuccessToast: true,\n toasterName: 'query_navigation_node_permissions',\n errorTitle: 'Navigation node get attributes failure',\n },\n );\n\n if (!Array.isArray(permissions.columns)) {\n return Promise.reject(new Error('Dynamic table columns is not array'));\n }\n\n const {availableColumns, omittedColumns, deniedKeyColumns} = permissions.columns.reduce<{\n availableColumns: string[];\n omittedColumns: string[];\n deniedKeyColumns: Record<string, string>[];\n }>(\n (acc, permission, index) => {\n if (permission.action === 'allow') {\n acc.availableColumns.push(allColumns[index]);\n } else {\n acc.omittedColumns.push(allColumns[index]);\n if (keyColumns.includes(allColumns[index])) {\n acc.deniedKeyColumns.push({[allColumns[index]]: permission.action});\n }\n }\n\n return acc;\n },\n {availableColumns: [], omittedColumns: [], deniedKeyColumns: []},\n );\n\n if (deniedKeyColumns.length !== 0) {\n return Promise.reject(new Error('Dynamic table has denied key columns'));\n }\n\n const aColumns = availableColumns.map(unipika.decode);\n const parameters = {\n query: Query.prepareQuery({\n aColumns,\n path,\n keyColumns,\n offset: 0,\n limit,\n }),\n output_format,\n dump_error_into_response: true,\n };\n\n const setup = {\n proxy: getClusterProxy(clusterConfig),\n transformResponse({\n parsedData,\n rawResponse,\n }: {\n parsedData: string;\n rawResponse: Record<string, string>;\n }) {\n return {\n data: parsedData,\n headers: rawResponse?.headers,\n };\n },\n ...JSONParser,\n };\n\n const {columns, rows, yqlTypes} = await wrapApiPromiseByToaster(\n readDynamicTable({setup, parameters}),\n {\n skipSuccessToast: true,\n toasterName: 'query_navigation_node',\n errorTitle: 'Navigation node get rows failure',\n },\n );\n\n const schemaColumns = schema.map(({name}) => name);\n return {\n columns: injectColumnsFromSchema(columns, omittedColumns, schemaColumns),\n rows,\n yqlTypes,\n };\n};\n","import {wrapApiPromiseByToaster} from '../../../../utils/utils';\nimport {injectColumnsFromSchema} from '../../../../utils/navigation/content/table/table-ts';\nimport {NavigationTableSchema} from '../../module/queryNavigation/queryNavigationSlice';\nimport {UnipikaValue} from '../../../../components/Yson/StructuredYson/StructuredYsonTypes';\nimport {JSONParser} from '../../module/api';\nimport {TypeArray} from '../../../../components/SchemaDataType/dataTypes';\nimport {getClusterProxy} from '../../../../store/selectors/global';\nimport {ClusterConfig} from '../../../../../shared/yt-types';\nimport {readStaticTable} from '../../../../store/actions/navigation/content/table/readStaticTable';\n\ntype LoadStaticTableRows = (props: {\n path: string;\n clusterConfig: ClusterConfig;\n schema: NavigationTableSchema[];\n limit: number;\n output_format: Record<string, any> | string;\n}) => Promise<{columns: string[]; rows: UnipikaValue[]; yqlTypes: TypeArray[] | null}>;\n\nexport const loadStaticTable: LoadStaticTableRows = async ({\n path,\n clusterConfig,\n schema,\n limit,\n output_format,\n}) => {\n const setup = {\n proxy: getClusterProxy(clusterConfig),\n transformResponse({\n parsedData,\n rawResponse,\n }: {\n parsedData: string;\n rawResponse: Record<string, string>;\n }) {\n return {\n data: parsedData,\n headers: rawResponse?.headers,\n };\n },\n ...JSONParser,\n };\n\n const parameters = {\n path: path + '[#' + 0 + ':#' + limit + ']',\n output_format,\n dump_error_into_response: true,\n omit_inaccessible_columns: true,\n table_reader: {\n workload_descriptor: {category: 'user_interactive'},\n },\n };\n\n const {columns, omittedColumns, rows, yqlTypes} = await wrapApiPromiseByToaster(\n readStaticTable({setup, parameters}),\n {\n skipSuccessToast: true,\n toasterName: 'query_navigation_node',\n errorTitle: 'Navigation node get rows failure',\n },\n );\n\n const schemaColumns = schema.map(({name}) => name);\n\n return {\n columns: injectColumnsFromSchema(columns, omittedColumns, schemaColumns),\n rows,\n yqlTypes,\n };\n};\n","export const isTableNode = (type?: string) => {\n if (!type) return false;\n\n return ['table', 'tablet_cell', 'replicated_table'].includes(type);\n};\n","export const isFolderNode = (nodeType?: string) => {\n if (!nodeType) return false;\n return [\n 'map_node',\n 'scheduler_pool_tree_map',\n 'topmost_transaction_map',\n 'transaction_map',\n 'link',\n 'rootstock',\n 'portal_entrance',\n ].includes(nodeType);\n};\n","import {wrapApiPromiseByToaster} from '../../../../utils/utils';\nimport {YTApiId, ytApiV3Id} from '../../../../rum/rum-wrap-api';\nimport {JSONParser} from '../../module/api';\nimport {getClusterProxy} from '../../../../store/selectors/global';\nimport {ClusterConfig} from '../../../../../shared/yt-types';\n\nexport const loadTableAttributes = (path: string, clusterConfig: ClusterConfig) => {\n return wrapApiPromiseByToaster<Record<string, any>>(\n ytApiV3Id.get(YTApiId.navigationAttributes, {\n setup: {\n proxy: getClusterProxy(clusterConfig),\n ...JSONParser,\n },\n parameters: {\n path: `${path}/@`,\n },\n }),\n {\n skipSuccessToast: true,\n toasterName: 'query_navigation_node_attributes',\n errorTitle: 'Navigation node get attributes failure',\n },\n );\n};\n","import {QueryEngine} from '../../module/engines';\n\nexport const makePathByQueryEngine = ({\n path,\n cluster,\n engine,\n}: {\n path: string;\n cluster: string;\n engine: QueryEngine;\n}) => {\n if (!path || path === '/') return cluster;\n\n switch (engine) {\n case QueryEngine.YQL:\n return cluster + '.`' + path + '`';\n case QueryEngine.YT_QL:\n return '`' + path + '`';\n case QueryEngine.CHYT:\n return '`' + path + '`';\n default:\n return 'yt.`ytTable:' + path + '`';\n }\n};\n","import {NavigationTableSchema} from '../../module/queryNavigation/queryNavigationSlice';\nimport {loadTableAttributes} from '../api/loadTableAttributes';\nimport ypath from '../../../../common/thor/ypath';\nimport {QueryEngine} from '../../module/engines';\nimport {makePathByQueryEngine} from './makePathByQueryEngine';\nimport {ClusterConfig} from '../../../../../shared/yt-types';\n\ntype Props = (data: {\n clusterConfig: ClusterConfig;\n path: string;\n engine: QueryEngine;\n limit: number;\n}) => Promise<string>;\n\nexport const createTableSelect: Props = async ({clusterConfig, path, engine, limit}) => {\n const attributes = await loadTableAttributes(path, clusterConfig);\n const schema: NavigationTableSchema[] = ypath.getValue(attributes.schema);\n\n return `SELECT\n${schema.map((i) => ' `' + i.name + '`').join(',\\r\\n')}\nFROM ${makePathByQueryEngine({path, cluster: clusterConfig.id, engine})}\nLIMIT ${limit}`;\n};\n","import {Range, editor} from 'monaco-editor';\n\nexport const insertTextWhereCursor = (text: string, mEditor?: editor.IStandaloneCodeEditor) => {\n if (!mEditor) return;\n\n const position = mEditor.getPosition();\n const range = position\n ? new Range(position.lineNumber, position.column, position.lineNumber, position.column)\n : new Range(0, 0, 0, 0);\n\n const edit = {range, text};\n mEditor.executeEdits('Insert text', [edit]);\n};\n","import {ThunkAction} from 'redux-thunk';\nimport {RootState} from '../../../../store/reducers';\nimport {Action} from 'redux';\nimport {\n BodyType,\n NavigationNode,\n NavigationTable,\n NavigationTableSchema,\n setCluster,\n setFilter,\n setNodeType,\n setNodes,\n setPath,\n setTable,\n} from './queryNavigationSlice';\nimport {\n selectFavouritePaths,\n selectNavigationCluster,\n selectNavigationClusterConfig,\n selectNavigationNodes,\n selectNavigationPath,\n} from './selectors';\nimport {wrapApiPromiseByToaster} from '../../../../utils/utils';\nimport ypath from '../../../../common/thor/ypath';\nimport {makeMetaItems} from '../../../../components/MetaTable/presets/presets';\nimport {YTApiId, ytApiV3Id} from '../../../../rum/rum-wrap-api';\nimport {getTableTypeByAttributes} from '../../../../utils/navigation/getTableTypeByAttributes';\nimport {Toaster} from '@gravity-ui/uikit';\nimport {loadDynamicTableRequest} from '../../Navigation/api/loadDynamicTable';\nimport {loadStaticTable} from '../../Navigation/api/loadStaticTable';\nimport {JSONParser} from '../api';\nimport {toggleFavourite} from '../../../../store/actions/favourites';\nimport {createNestedNS} from '../../../../../shared/utils/settings';\nimport {NAMESPACES} from '../../../../../shared/constants/settings';\nimport {isTableNode} from '../../Navigation/helpers/isTableNode';\nimport {isFolderNode} from '../../Navigation/helpers/isFolderNode';\nimport {loadTableAttributes} from '../../Navigation/api/loadTableAttributes';\nimport {QueryEngine} from '../engines';\nimport {createEmptyQuery, loadCliqueByCluster, updateQueryDraft} from '../query/actions';\nimport {createTableSelect} from '../../Navigation/helpers/createTableSelect';\nimport {insertTextWhereCursor} from '../../Navigation/helpers/insertTextWhereCursor';\nimport {editor as monacoEditor} from 'monaco-editor';\nimport {getQueryDraft} from '../query/selectors';\nimport {getRequestOutputFormat} from '../../../../utils/navigation/content/table/table';\nimport {getDefaultTableColumnLimit} from '../../../../store/selectors/settings';\nimport {isYqlTypesEnabled} from '../../../../store/selectors/navigation/content/table';\nimport {getClusterProxy, getCurrentUserName} from '../../../../store/selectors/global';\nimport {getQueryResultGlobalSettings} from '../query_result/selectors';\n\nconst toaster = new Toaster();\n\ntype AsyncAction = ThunkAction<void, RootState, undefined, Action>;\n\nexport const toggleFavoritePath =\n (favoritePath: string): AsyncAction =>\n (dispatch, getState) => {\n const state = getState();\n const cluster = selectNavigationCluster(state);\n const nodes = selectNavigationNodes(state);\n\n if (!cluster) return;\n const parentNS = createNestedNS(cluster, NAMESPACES.LOCAL);\n dispatch(toggleFavourite(favoritePath, parentNS));\n\n const newNodes = nodes.map((node) => {\n if (node.path === favoritePath) {\n return {\n ...node,\n isFavorite: !node.isFavorite,\n };\n }\n return node;\n });\n dispatch(setNodes(newNodes));\n };\n\nexport const loadNodeByPath =\n (path: string): AsyncAction =>\n async (dispatch, getState) => {\n const state = getState();\n const clusterConfig = selectNavigationClusterConfig(state);\n const favorites = selectFavouritePaths(state);\n\n if (!clusterConfig) return;\n\n const response = await wrapApiPromiseByToaster(\n ytApiV3Id.list(YTApiId.navigationListNodes, {\n setup: {\n proxy: getClusterProxy(clusterConfig),\n ...JSONParser,\n },\n parameters: {\n path,\n attributes: ['type', 'broken', 'dynamic'],\n },\n }),\n {\n skipSuccessToast: true,\n toasterName: 'query_navigation_node',\n errorTitle: 'Navigation node open failure',\n },\n );\n\n const nodes: NavigationNode[] = response\n .map((item: unknown) => {\n const name = ypath.getValue(item);\n const newPath = path + '/' + name;\n const attributes = ypath.getAttributes(item);\n\n return {\n name,\n ...attributes,\n path: newPath,\n isFavorite: favorites.includes(newPath),\n };\n })\n .sort((a: NavigationNode, b: NavigationNode) => a.name.localeCompare(b.name));\n\n dispatch(setFilter(''));\n dispatch(setPath(path));\n dispatch(setNodeType(BodyType.Tree));\n dispatch(setNodes(nodes));\n };\n\nexport const loadTableAttributesByPath =\n (path: string): AsyncAction =>\n async (dispatch, getState) => {\n const state = getState();\n const clusterConfig = selectNavigationClusterConfig(state);\n const {cellSize, pageSize} = getQueryResultGlobalSettings();\n const defaultTableColumnLimit = getDefaultTableColumnLimit(state);\n const useYqlTypes = isYqlTypesEnabled(state);\n const login = getCurrentUserName(state);\n\n if (!clusterConfig) return;\n\n const attributes = await loadTableAttributes(path, clusterConfig);\n const schema: NavigationTableSchema[] = ypath.getValue(attributes.schema);\n const output_format = getRequestOutputFormat(\n schema.map((i) => i.name),\n cellSize,\n login,\n defaultTableColumnLimit,\n useYqlTypes,\n );\n\n const requestFunction = attributes.dynamic ? loadDynamicTableRequest : loadStaticTable;\n\n try {\n const {columns, rows, yqlTypes} = await requestFunction({\n login: state.global.login,\n path,\n clusterConfig,\n schema,\n keyColumns: attributes.key_columns,\n limit: pageSize,\n output_format,\n });\n\n const tableData: NavigationTable = {\n name: attributes.key,\n meta: makeMetaItems({\n cluster: clusterConfig.id,\n attributes: attributes,\n tableType: getTableTypeByAttributes(attributes.dynamic, attributes),\n isDynamic: attributes.dynamic,\n }),\n rows,\n schema,\n columns,\n yqlTypes,\n };\n\n dispatch(setPath(path));\n dispatch(setTable(tableData));\n dispatch(setNodeType(BodyType.Table));\n } catch (e) {\n toaster.add({\n theme: 'danger',\n autoHiding: false,\n name: 'Load table data error',\n title: e ? (e as Error).message : \"Can't load table data\",\n });\n }\n };\n\nexport const setNavigationCluster =\n (clusterId: string): AsyncAction =>\n (dispatch) => {\n dispatch(setCluster(clusterId));\n dispatch(setPath('/'));\n dispatch(loadNodeByPath('/'));\n };\n\nexport const initNavigation = (): AsyncAction => async (dispatch, getState) => {\n const state = getState();\n const clusterConfig = selectNavigationClusterConfig(state);\n const path = selectNavigationPath(state);\n\n if (!clusterConfig) return;\n\n const r = await wrapApiPromiseByToaster(\n ytApiV3Id.get(YTApiId.navigationGetType, {\n setup: {\n proxy: getClusterProxy(clusterConfig),\n ...JSONParser,\n },\n parameters: {\n path: `${path}/@type`,\n },\n }),\n {\n skipSuccessToast: true,\n toasterName: 'query_navigation_get_node_type',\n errorTitle: 'Navigation get node type failure',\n },\n );\n\n if (isTableNode(r)) {\n await dispatch(loadTableAttributesByPath(path));\n return;\n }\n if (isFolderNode(r)) {\n await dispatch(loadNodeByPath(path));\n return;\n }\n\n dispatch(loadNodeByPath('/'));\n};\n\nexport const copyPathToClipboard =\n (path: string): AsyncAction =>\n async (_, getState) => {\n const state = getState();\n const cluster = selectNavigationCluster(state);\n\n if (!cluster) return;\n\n try {\n await navigator.clipboard.writeText(path);\n toaster.add({\n theme: 'success',\n name: 'copy_navigation_path',\n title: 'Path copied',\n });\n } catch (e) {\n toaster.add({\n theme: 'danger',\n name: 'copy_navigation_path',\n title: \"Can't copy path\",\n content: (e as Error).message,\n autoHiding: false,\n });\n }\n };\n\nexport const makeNewQueryWithTableSelect =\n (path: string, engine: QueryEngine, editor: monacoEditor.IStandaloneCodeEditor): AsyncAction =>\n async (dispatch, getState) => {\n const state = getState();\n const {pageSize} = getQueryResultGlobalSettings();\n const clusterConfig = selectNavigationClusterConfig(state);\n const {settings} = getQueryDraft(state);\n\n if (!clusterConfig) return;\n await dispatch(createEmptyQuery());\n\n const newSettings: Record<string, string> = settings ? {...settings} : {};\n newSettings.cluster = clusterConfig.id;\n if (engine === QueryEngine.CHYT) {\n dispatch(loadCliqueByCluster(engine, clusterConfig.id));\n }\n dispatch(updateQueryDraft({engine, settings: newSettings}));\n\n const text = await createTableSelect({clusterConfig, path, engine, limit: pageSize});\n insertTextWhereCursor(text, editor);\n };\n","import React, {FC, useCallback} from 'react';\nimport cn from 'bem-cn-lite';\nimport './NavigationHeader.scss';\nimport {NavigationBreadcrumbs} from './NavigationBreadcrumbs';\nimport {HeaderActions} from './HeaderActions';\nimport {TextInput} from '@gravity-ui/uikit';\nimport {useDispatch, useSelector} from 'react-redux';\nimport {\n selectFavouritePaths,\n selectNavigationCluster,\n selectNavigationFilter,\n selectNavigationNodeType,\n selectNavigationPath,\n} from '../../module/queryNavigation/selectors';\nimport {\n BodyType,\n setCluster,\n setFilter,\n setNodeType,\n setPath,\n} from '../../module/queryNavigation/queryNavigationSlice';\nimport {\n copyPathToClipboard,\n loadNodeByPath,\n toggleFavoritePath,\n} from '../../module/queryNavigation/actions';\nimport {makePathByQueryEngine} from '../helpers/makePathByQueryEngine';\nimport {insertTextWhereCursor} from '../helpers/insertTextWhereCursor';\nimport {getQueryEngine} from '../../module/query/selectors';\nimport {useMonaco} from '../../hooks/useMonaco';\n\nconst b = cn('navigation-header');\n\nexport const NavigationHeader: FC = () => {\n const dispatch = useDispatch();\n const favorites = useSelector(selectFavouritePaths);\n const filter = useSelector(selectNavigationFilter);\n const path = useSelector(selectNavigationPath);\n const engine = useSelector(getQueryEngine);\n const cluster = useSelector(selectNavigationCluster);\n const nodeType = useSelector(selectNavigationNodeType);\n const {getEditor} = useMonaco();\n\n const showFilter = nodeType !== BodyType.Table;\n\n const handleFilterChange = (value: string) => {\n dispatch(setFilter(value));\n };\n\n const handleChangeCluster = () => {\n dispatch(setNodeType(BodyType.Cluster));\n dispatch(setCluster(undefined));\n dispatch(setPath(''));\n };\n\n const handleChangePath = (val: string) => {\n dispatch(loadNodeByPath(val));\n };\n\n const handleFavoriteToggle = () => {\n dispatch(toggleFavoritePath(path));\n };\n\n const handlePathCopy = async () => {\n dispatch(copyPathToClipboard(path));\n };\n\n const handlePastePath = useCallback(() => {\n if (!cluster) return;\n const editor = getEditor('queryEditor');\n const pathString = makePathByQueryEngine({\n cluster,\n path,\n engine,\n });\n insertTextWhereCursor(pathString, editor);\n }, [cluster, engine, getEditor, path]);\n\n return (\n <div className={b()}>\n <div className={b('path-wrap')}>\n <NavigationBreadcrumbs\n path={path}\n cluster={cluster}\n onClusterChangeClick={handleChangeCluster}\n onItemClick={handleChangePath}\n />\n {cluster && (\n <HeaderActions\n isFavorite={favorites.includes(path)}\n onFavoriteToggle={handleFavoriteToggle}\n onPathCopy={handlePathCopy}\n onPastePath={handlePastePath}\n showCopyBtn={Boolean(cluster)}\n />\n )}\n </div>\n {showFilter && (\n <TextInput\n value={filter}\n placeholder=\"Filter by name\"\n onUpdate={handleFilterChange}\n hasClear\n />\n )}\n </div>\n );\n};\n","import React, {FC} from 'react';\nimport {Text} from '@gravity-ui/uikit';\nimport './NavigationEmpty.scss';\nimport cn from 'bem-cn-lite';\n\nconst b = cn('navigation-empty');\n\nexport const NavigationEmpty: FC = () => {\n return (\n <div className={b()}>\n <Text variant=\"subheader-2\">This directory is empty</Text>\n </div>\n );\n};\n","import * as React from 'react';\nconst ArrowUp = (props) => (React.createElement(\"svg\", Object.assign({ xmlns: \"http://www.w3.org/2000/svg\", width: 16, height: 16, fill: \"none\", viewBox: \"0 0 16 16\" }, props),\n React.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\" })));\nexport default ArrowUp;\n","import * as React from 'react';\nconst ArrowDown = (props) => (React.createElement(\"svg\", Object.assign({ xmlns: \"http://www.w3.org/2000/svg\", width: 16, height: 16, fill: \"none\", viewBox: \"0 0 16 16\" }, props),\n React.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\" })));\nexport default ArrowDown;\n","import * as React from 'react';\nconst ArrowUpArrowDown = (props) => (React.createElement(\"svg\", Object.assign({ xmlns: \"http://www.w3.org/2000/svg\", width: 16, height: 16, fill: \"none\", viewBox: \"0 0 16 16\" }, props),\n React.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\" })));\nexport default ArrowUpArrowDown;\n","import React from 'react';\nimport { ArrowDown, ArrowUp, ArrowUpArrowDown } from '@gravity-ui/icons';\nimport { Icon } from '../../../../Icon';\nimport { block } from '../../../../utils/cn';\nimport './SortIndicator.css';\nconst b = block('sort-indicator');\nexport function SortIndicator({ order }) {\n let icon;\n switch (order) {\n case 'asc':\n icon = ArrowUp;\n break;\n case 'desc':\n icon = ArrowDown;\n break;\n default:\n icon = ArrowUpArrowDown;\n }\n return (React.createElement(\"div\", { className: b() },\n React.createElement(Icon, { data: icon, size: 14, className: b('icon') })));\n}\n","'use client';\nimport { __rest } from \"tslib\";\nimport React from 'react';\nimport _get from 'lodash/get';\nimport _memoize from 'lodash/memoize';\nimport { createOnKeyDownHandler } from '../../../../hooks/useActionHandlers/useActionHandlers';\nimport { block } from '../../../utils/cn';\nimport { getComponentName } from '../../../utils/getComponentName';\nimport { Table } from '../../Table';\nimport { SortIndicator } from './SortIndicator/SortIndicator';\nimport './withTableSorting.css';\nexport const TableSortIndicator = SortIndicator;\nconst b = block('table');\nexport function withTableSorting(TableComponent) {\n var _a;\n const componentName = getComponentName(TableComponent);\n const displayName = `withTableSorting(${componentName})`;\n function defaultCompareFunction(itemA, itemB, columnId) {\n if (_get(itemA, columnId) === _get(itemB, columnId)) {\n return 0;\n }\n else {\n return _get(itemA, columnId) > _get(itemB, columnId) ? 1 : -1;\n }\n }\n return _a = class extends React.Component {\n constructor() {\n var _b;\n super(...arguments);\n this.state = {\n sort: (_b = this.props.defaultSortState) !== null && _b !== void 0 ? _b : [],\n };\n // eslint-disable-next-line @typescript-eslint/member-ordering\n this.enhanceColumns = _memoize((columns) => {\n return columns.map((column) => {\n const meta = column.meta;\n if (meta && meta.sort) {\n return Object.assign(Object.assign({}, column), { meta: Object.assign(Object.assign({}, column.meta), { _originalName: column.name }), name: () => {\n const sortState = this.getSortState();\n let sortOrder;\n if (sortState.length > 0) {\n const state = sortState.find((s) => s.column === column.id);\n if (state) {\n sortOrder = state.order;\n }\n }\n const originContent = Table.getHeadCellContent(column);\n const content = [\n React.createElement(\"div\", { key: \"content\", className: b('sort-content') }, originContent),\n React.createElement(\"div\", { key: \"indicator\", className: b('sort-indicator') },\n React.createElement(SortIndicator, { order: sortOrder })),\n ];\n if (column.align === 'right' || column.align === 'end') {\n content.reverse();\n }\n const onClick = this.handleColumnSortClick.bind(this, column);\n const onKeyDown = createOnKeyDownHandler(onClick);\n return (React.createElement(\"div\", { role: \"button\", tabIndex: 0, className: b('sort', { active: Boolean(sortOrder) }), onClick: onClick, onKeyDown: onKeyDown }, content));\n } });\n }\n else {\n return column;\n }\n });\n });\n this.handleColumnSortClick = (column, event) => {\n const sortState = this.getSortState();\n const currentStateIndex = sortState.findIndex((state) => state.column === column.id);\n const currentState = sortState[currentStateIndex];\n const nextColumnSort = this.getNextSortForColumn(column, currentState);\n if (!event.shiftKey) {\n this.handleSortStateChange(nextColumnSort);\n return;\n }\n if (currentState) {\n this.handleSortStateChange([\n ...sortState.slice(0, currentStateIndex),\n ...sortState.slice(currentStateIndex + 1),\n ...nextColumnSort,\n ]);\n }\n else {\n this.handleSortStateChange([...sortState, ...nextColumnSort]);\n }\n };\n }\n render() {\n const _b = this.props, { columns } = _b, restTableProps = __rest(_b, [\"columns\"]);\n return (React.createElement(TableComponent, Object.assign({}, restTableProps, { data: this.getSortedData(), columns: this.enhanceColumns(columns) })));\n }\n getSortedData() {\n const { data, columns, disableDataSorting = this.isControlledState() } = this.props;\n const sortState = this.getSortState();\n if (disableDataSorting || sortState.length === 0) {\n return data;\n }\n return data.slice().sort((itemA, itemB) => {\n var _b;\n let i = 0;\n while (i < sortState.length) {\n const state = sortState[i++];\n const column = columns.find((c) => c.id === state.column);\n const compareFunction = (_b = column === null || column === void 0 ? void 0 : column.meta) === null || _b === void 0 ? void 0 : _b.sort;\n if (!compareFunction) {\n continue;\n }\n const compareValue = typeof compareFunction === 'function'\n ? compareFunction(itemA, itemB)\n : defaultCompareFunction(itemA, itemB, state.column);\n if (compareValue !== 0) {\n return state.order === 'asc' ? compareValue : -compareValue;\n }\n }\n return 0;\n });\n }\n getSortState() {\n const { sortState } = this.props;\n const { sort } = this.state;\n return this.isControlledState() ? sortState : sort;\n }\n handleSortStateChange(newSortState) {\n const { onSortStateChange } = this.props;\n if (!this.isControlledState()) {\n this.setState({ sort: newSortState });\n }\n if (onSortStateChange) {\n onSortStateChange(newSortState);\n }\n }\n isControlledState() {\n const { sortState, onSortStateChange } = this.props;\n return Boolean(sortState && onSortStateChange);\n }\n getColumnDefaultSortOrder(column) {\n var _b;\n return ((_b = column.meta) === null || _b === void 0 ? void 0 : _b.defaultSortOrder) || 'asc';\n }\n getNextSortForColumn(column, currentState) {\n const defaultOrder = this.getColumnDefaultSortOrder(column);\n const orderStack = defaultOrder === 'desc' ? ['desc', 'asc', undefined] : ['asc', 'desc', undefined];\n const currentIndex = orderStack.indexOf(currentState === null || currentState === void 0 ? void 0 : currentState.order);\n const nextIndex = (currentIndex + 1) % orderStack.length;\n const nextOrder = orderStack[nextIndex];\n if (!nextOrder) {\n return [];\n }\n return [{ column: column.id, order: nextOrder }];\n }\n },\n _a.displayName = displayName,\n _a;\n}\n","import React from 'react';\nimport {Table, TableDataItem, TableProps, withTableSorting} from '@gravity-ui/uikit';\nimport cn from 'bem-cn-lite';\nimport './TableWithSorting.scss';\n\nconst TableSorting = withTableSorting(Table);\nconst b = cn('table-with-sorting');\n\nexport const TableWithSorting = (props: TableProps<TableDataItem>) => {\n return <TableSorting {...props} className={b(null, props.className)} />;\n};\n","import React, {FC} from 'react';\nimport {useDispatch, useSelector} from 'react-redux';\nimport {QueryClusterItem} from '../../QueryTrackerTopRow/QueryClusterSelector/QueryClusterItem';\nimport {TableDataItem} from '@gravity-ui/uikit';\nimport './ClusterList.scss';\nimport cn from 'bem-cn-lite';\nimport {ClusterConfig} from '../../../../../shared/yt-types';\nimport {setNavigationCluster} from '../../module/queryNavigation/actions';\nimport {selectClustersByFilter} from '../../module/queryNavigation/selectors';\nimport {TableWithSorting} from '../NodeList/TableWithSorting';\n\nconst b = cn('navigation-cluster-list');\n\nexport const ClusterList: FC = () => {\n const dispatch = useDispatch();\n const clusters = useSelector(selectClustersByFilter);\n\n const handleClusterClick = (cluster: TableDataItem) => {\n dispatch(setNavigationCluster(cluster.id));\n };\n\n return (\n <div className={b()}>\n <TableWithSorting\n data={clusters}\n columns={[\n {\n className: b('row'),\n id: 'name',\n name: 'Name',\n template: ({id, name, environment}) => (\n <QueryClusterItem\n key={id}\n id={id}\n name={name}\n environment={environment}\n className={b('table-row')}\n />\n ),\n meta: {\n sort: (aCluster: ClusterConfig, bCluster: ClusterConfig) => {\n return aCluster.name.localeCompare(bCluster.name);\n },\n },\n },\n ]}\n onRowClick={handleClusterClick}\n />\n </div>\n );\n};\n","import React, {FC, MouseEvent} from 'react';\nimport {NavigationNode} from '../../module/queryNavigation/queryNavigationSlice';\nimport './NodeListRow.scss';\nimport cn from 'bem-cn-lite';\nimport {getIconNameForType} from '../../../../utils/navigation/path-editor';\nimport AwesomeIcon from '../../../../components/Icon/Icon';\nimport {Button, DropdownMenu, Icon, Text} from '@gravity-ui/uikit';\nimport {isFolderNode} from '../helpers/isFolderNode';\nimport {isTableNode} from '../helpers/isTableNode';\nimport StarFillIcon from '@gravity-ui/icons/svgs/star-fill.svg';\nimport StarIcon from '@gravity-ui/icons/svgs/star.svg';\nimport TextIndentIcon from '@gravity-ui/icons/svgs/text-indent.svg';\nimport ArrowUpRightFromSquareIcon from '@gravity-ui/icons/svgs/arrow-up-right-from-square.svg';\nimport {useToggle} from 'react-use';\nimport {QueryEngine} from '../../module/engines';\n\nconst b = cn('navigation-node-list-row');\n\ntype Props = {\n node: NavigationNode;\n onClick: (path: string, type: string | undefined) => void;\n onFavoriteToggle: (favoritePath: string) => void;\n onClipboardCopy: (path: string, type: 'url' | 'path') => void;\n onEditorInsert: (path: string, type: 'path' | 'select') => void;\n onNewQuery: (path: string, engine: QueryEngine) => void;\n onNewWindowOpen: (path: string) => void;\n};\n\nexport const NodeListRow: FC<Props> = ({\n node: {type, broken, dynamic, name, path, isFavorite},\n onClick,\n onFavoriteToggle,\n onClipboardCopy,\n onEditorInsert,\n onNewQuery,\n onNewWindowOpen,\n}) => {\n const [tableMenuOpen, toggleTapleMenuOpen] = useToggle(false);\n const [menuOpen, toggleMenuOpen] = useToggle(false);\n const iconType = type === 'table' && dynamic ? 'table_dynamic' : type;\n const iconName = getIconNameForType(iconType, broken);\n const isSupported = isFolderNode(type) || isTableNode(type);\n const showActions = isSupported && name !== '...';\n\n const handleClick = () => {\n onClick(path, type);\n };\n\n const handleStop = (e: MouseEvent<HTMLButtonElement>) => {\n e.stopPropagation();\n };\n\n const handleFavoriteClick = (e: MouseEvent<HTMLButtonElement>) => {\n handleStop(e);\n onFavoriteToggle(path);\n };\n\n const handlePastePathClick = (e: MouseEvent<HTMLButtonElement>) => {\n handleStop(e);\n onEditorInsert(path, 'path');\n };\n\n return (\n <div\n className={b({unsupported: !isSupported, active: menuOpen || tableMenuOpen})}\n onClick={handleClick}\n >\n <div className={b('icon-wrap')}>\n <AwesomeIcon awesome={iconName} size={16} />\n {isFavorite && (\n <Icon data={StarFillIcon} className={b('favorite-icon')} size={10} />\n )}\n </div>\n <Text ellipsis>{name}</Text>\n {showActions && (\n <div className={b('actions')}>\n <Button view=\"flat\" onClick={handleFavoriteClick}>\n <Icon data={isFavorite ? StarFillIcon : StarIcon} size={16} />\n </Button>\n {isTableNode(type) ? (\n <DropdownMenu\n open={tableMenuOpen}\n onOpenToggle={toggleTapleMenuOpen}\n renderSwitcher={(props) => (\n <Button view=\"flat\" {...props}>\n <Icon data={TextIndentIcon} size={16} />\n </Button>\n )}\n items={[\n {\n text: 'Copy to clipboard',\n items: [\n {\n text: 'Path',\n action: (e) => {\n e.stopPropagation();\n onClipboardCopy(path, 'path');\n },\n },\n ],\n },\n {\n text: 'Insert into editor',\n items: [\n {\n text: 'Path',\n action: (e) => {\n e.stopPropagation();\n onEditorInsert(path, 'path');\n },\n },\n {\n text: 'SELECT',\n action: (e) => {\n e.stopPropagation();\n onEditorInsert(path, 'select');\n },\n },\n ],\n },\n {\n text: 'Create new query',\n items: [\n {\n text: 'SELECT (YT QL)',\n action: (e) => {\n e.stopPropagation();\n onNewQuery(path, QueryEngine.YT_QL);\n },\n },\n {\n text: 'SELECT (YQL)',\n action: (e) => {\n e.stopPropagation();\n onNewQuery(path, QueryEngine.YQL);\n },\n },\n {\n text: 'SELECT (CHYT)',\n action: (e) => {\n e.stopPropagation();\n onNewQuery(path, QueryEngine.CHYT);\n },\n },\n {\n text: 'SELECT (SPYT)',\n action: (e) => {\n e.stopPropagation();\n onNewQuery(path, QueryEngine.SPYT);\n },\n },\n ],\n },\n ]}\n onSwitcherClick={handleStop}\n />\n ) : (\n <Button view=\"flat\" onClick={handlePastePathClick}>\n <Icon data={TextIndentIcon} size={16} />\n </Button>\n )}\n <DropdownMenu\n open={menuOpen}\n onOpenToggle={toggleMenuOpen}\n items={[\n {\n action: (e) => {\n e.stopPropagation();\n onClipboardCopy(path, 'url');\n },\n text: 'Copy link',\n },\n {\n action: () => {\n onNewWindowOpen(path);\n },\n text: 'Open in cluster',\n iconEnd: <Icon data={ArrowUpRightFromSquareIcon} />,\n },\n ]}\n onSwitcherClick={handleStop}\n />\n </div>\n )}\n </div>\n );\n};\n","import React, {FC, useCallback, useRef} from 'react';\nimport {useDispatch, useSelector} from 'react-redux';\nimport {\n selectNavigationClusterConfig,\n selectNodeListByFilter,\n} from '../../module/queryNavigation/selectors';\nimport {ClusterConfig} from '../../../../../shared/yt-types';\nimport {TableWithSorting} from './TableWithSorting';\nimport {NodeListRow} from './NodeListRow';\nimport {NavigationNode} from '../../module/queryNavigation/queryNavigationSlice';\nimport {\n copyPathToClipboard,\n loadNodeByPath,\n loadTableAttributesByPath,\n makeNewQueryWithTableSelect,\n toggleFavoritePath,\n} from '../../module/queryNavigation/actions';\nimport './NodeList.scss';\nimport cn from 'bem-cn-lite';\nimport {isFolderNode} from '../helpers/isFolderNode';\nimport {isTableNode} from '../helpers/isTableNode';\nimport {useMonaco} from '../../hooks/useMonaco';\nimport {insertTextWhereCursor} from '../helpers/insertTextWhereCursor';\nimport {getQueryEngine, isQueryDraftEditted} from '../../module/query/selectors';\nimport {makePathByQueryEngine} from '../helpers/makePathByQueryEngine';\nimport {QueryEngine} from '../../module/engines';\nimport {getNavigationUrl} from '../helpers/getNavigationUrl';\nimport {createTableSelect} from '../helpers/createTableSelect';\nimport {getQueryResultGlobalSettings} from '../../module/query_result/selectors';\nimport {useToggle} from 'react-use';\nimport {NewQueryPromt} from '../../NewQueryButton/NewQueryButton';\nimport {NoContent} from '../../../../components/NoContent/NoContent';\n\nconst b = cn('navigation-node-list');\n\nexport const NodeList: FC = () => {\n const dispatch = useDispatch();\n const [showPrompt, togglePrompt] = useToggle(false);\n const newQueryParams = useRef<{path: string; engine: QueryEngine} | null>(null);\n const clusterConfig = useSelector(selectNavigationClusterConfig);\n const nodes = useSelector(selectNodeListByFilter);\n const engine = useSelector(getQueryEngine);\n const {pageSize} = getQueryResultGlobalSettings();\n const dirtyQuery = useSelector(isQueryDraftEditted);\n const {getEditor} = useMonaco();\n const isEmpty = nodes.length <= 1;\n\n const handleNodeClick = (path: string, type: string | undefined) => {\n if (isFolderNode(type)) {\n dispatch(loadNodeByPath(path));\n return;\n }\n if (isTableNode(type)) {\n dispatch(loadTableAttributesByPath(path));\n return;\n }\n };\n\n const handleFavoriteToggle = useCallback(\n (favoritePath: string) => {\n dispatch(toggleFavoritePath(favoritePath));\n },\n [dispatch],\n );\n\n const handleEditorInsert = useCallback(\n async (path: string, type: 'path' | 'select') => {\n if (!clusterConfig || !clusterConfig.id) return;\n const editor = getEditor('queryEditor');\n let text = '';\n if (type === 'path') {\n text = makePathByQueryEngine({\n cluster: clusterConfig.id,\n path,\n engine,\n });\n } else {\n text = await createTableSelect({clusterConfig, path, engine, limit: pageSize});\n }\n insertTextWhereCursor(text, editor);\n },\n [clusterConfig, engine, getEditor, pageSize],\n );\n\n const onClipboardCopy = useCallback(\n (path: string, type: 'path' | 'url') => {\n if (!clusterConfig || !clusterConfig.id) return;\n const pathString =\n type === 'path'\n ? makePathByQueryEngine({\n cluster: clusterConfig.id,\n path,\n engine,\n })\n : getNavigationUrl(clusterConfig.id, path);\n dispatch(copyPathToClipboard(pathString));\n },\n [clusterConfig, dispatch, engine],\n );\n\n const handleNewWindowOpen = useCallback(\n (path: string) => {\n if (!clusterConfig || !clusterConfig.id) return;\n const url = new URL(location.origin + `/${clusterConfig.id}/navigation`);\n url.searchParams.append('path', path);\n window.open(url);\n },\n [clusterConfig],\n );\n\n const handlePromptConfirm = useCallback(() => {\n const editor = getEditor('queryEditor');\n const parameters = newQueryParams.current;\n if (!editor || !parameters) return;\n dispatch(makeNewQueryWithTableSelect(parameters.path, parameters.engine, editor));\n togglePrompt();\n }, [dispatch, getEditor, togglePrompt]);\n\n const handlePromptCancel = useCallback(() => {\n newQueryParams.current = null;\n togglePrompt();\n }, [togglePrompt]);\n\n const handleNewQuery = useCallback(\n async (path: string, newEngine: QueryEngine) => {\n if (dirtyQuery) {\n togglePrompt();\n newQueryParams.current = {path, engine: newEngine};\n return;\n }\n\n newQueryParams.current = {path, engine: newEngine};\n handlePromptConfirm();\n },\n [dirtyQuery, handlePromptConfirm, togglePrompt],\n );\n\n return (\n <div className={b()}>\n <TableWithSorting\n data={nodes}\n columns={[\n {\n className: b('row'),\n id: 'name',\n name: 'Name',\n template: (node) => (\n <NodeListRow\n node={node as NavigationNode}\n onClick={handleNodeClick}\n onFavoriteToggle={handleFavoriteToggle}\n onEditorInsert={handleEditorInsert}\n onClipboardCopy={onClipboardCopy}\n onNewWindowOpen={handleNewWindowOpen}\n onNewQuery={handleNewQuery}\n />\n ),\n meta: {\n sort: (aCluster: ClusterConfig, bCluster: ClusterConfig) => {\n return aCluster.name.localeCompare(bCluster.name);\n },\n },\n },\n ]}\n />\n {isEmpty && (\n <div className={b('empty-wrap')}>\n <NoContent className={b('empty-icon')} warning=\"This directory is empty\" />\n </div>\n )}\n <NewQueryPromt\n confirm={handlePromptConfirm}\n cancel={handlePromptCancel}\n visible={showPrompt}\n />\n </div>\n );\n};\n\nexport default NodeList;\n","export const getNavigationUrl = (cluster: string, path: string) => {\n const url = new URL(location.origin + location.pathname);\n url.searchParams.append('listMode', 'navigation');\n url.searchParams.append('navCluster', cluster);\n if (path && path !== '/') {\n url.searchParams.append('navPath', path);\n }\n\n return url.toString();\n};\n","import React, {FC} from 'react';\nimport {NavigationTableSchema, setFilter} from '../../module/queryNavigation/queryNavigationSlice';\nimport DataTableYT from '../../../../components/DataTableYT/DataTableYT';\nimport {Column} from '@gravity-ui/react-data-table';\nimport {Text, TextInput} from '@gravity-ui/uikit';\nimport Icon from '../../../../components/Icon/Icon';\nimport {useDispatch, useSelector} from 'react-redux';\nimport {selectNavigationFilter} from '../../module/queryNavigation/selectors';\n\ntype Props = {\n schema: NavigationTableSchema[];\n};\n\nconst columns: Column<NavigationTableSchema>[] = [\n {\n name: 'name',\n header: 'Name',\n render: ({row}) => {\n return (\n <>\n {Boolean(row.sort_order) && (\n <Icon\n awesome={\n row.sort_order === 'descending'\n ? 'sort-amount-up'\n : 'sort-amount-down-alt'\n }\n size={16}\n />\n )}{' '}\n {row.name}\n </>\n );\n },\n },\n {\n name: 'type',\n header: 'Type v3',\n render: ({row}) => {\n return (\n <>\n {row.type} {!row.required && <Text variant=\"caption-1\">optional</Text>}\n </>\n );\n },\n },\n];\n\nexport const SchemaTab: FC<Props> = ({schema}) => {\n const dispatch = useDispatch();\n const filter = useSelector(selectNavigationFilter);\n\n const handleFilterChange = (value: string) => {\n dispatch(setFilter(value));\n };\n\n return (\n <>\n <TextInput\n value={filter}\n placeholder=\"Filter by name\"\n onUpdate={handleFilterChange}\n hasClear\n />\n <DataTableYT data={schema} columns={columns} useThemeYT />\n </>\n );\n};\n","import React, {FC, useMemo} from 'react';\nimport {\n NavigationTable,\n NavigationTableSchema,\n} from '../../module/queryNavigation/queryNavigationSlice';\nimport DataTableYT from '../../../../components/DataTableYT/DataTableYT';\nimport './PreviewTab.scss';\nimport cn from 'bem-cn-lite';\nimport {Button, Icon} from '@gravity-ui/uikit';\nimport ArrowUpRightFromSquareIcon from '@gravity-ui/icons/svgs/arrow-up-right-from-square.svg';\nimport {prepareColumns} from '../../../../utils/navigation/prepareColumns';\nimport {TypeArray} from '../../../../components/SchemaDataType/dataTypes';\nimport {YsonSettings} from '../../../../store/selectors/thor/unipika';\n\nconst b = cn('navigation-preview-tab');\n\ntype Props = {\n table: NavigationTable;\n ysonSettings: YsonSettings;\n onEditorInsert: () => void;\n};\n\nexport const PreviewTab: FC<Props> = ({table, ysonSettings, onEditorInsert}) => {\n const columns = useMemo(() => {\n return prepareColumns({\n columns: table.columns.map((i) => ({name: i})),\n keyColumns: [],\n yqlTypes: table.yqlTypes as TypeArray[] | null,\n ysonSettings,\n useRawStrings: undefined,\n schemaByName: table.schema.reduce<Record<string, NavigationTableSchema>>(\n (acc, item) => {\n acc[item.name] = item;\n return acc;\n },\n {},\n ),\n });\n }, [table, ysonSettings]);\n\n return (\n <div>\n <Button onClick={onEditorInsert}>\n <Icon data={ArrowUpRightFromSquareIcon} size={16} />\n insert SELECT\n </Button>\n <DataTableYT className={b()} columns={columns} data={table.rows} useThemeYT />\n </div>\n );\n};\n","import React, {FC, useState} from 'react';\nimport {RadioButton} from '@gravity-ui/uikit';\nimport cn from 'bem-cn-lite';\nimport './NavigationTable.scss';\nimport {SchemaTab} from './SchemaTab';\nimport {useSelector} from 'react-redux';\nimport {\n selectNavigationClusterConfig,\n selectNavigationPath,\n selectTableWithFilter,\n} from '../../module/queryNavigation/selectors';\nimport MetaTable from '../../../../components/MetaTable/MetaTable';\nimport {PreviewTab} from './PreviewTab';\nimport {insertTextWhereCursor} from '../helpers/insertTextWhereCursor';\nimport {createTableSelect} from '../helpers/createTableSelect';\nimport {useMonaco} from '../../hooks/useMonaco';\nimport {getQueryEngine} from '../../module/query/selectors';\nimport {getPageSize} from '../../../../store/selectors/navigation/content/table-ts';\nimport {getTableYsonSettings} from '../../../../store/selectors/thor/unipika';\n\nconst enum TableTab {\n Schema = 'schema',\n Preview = 'preview',\n Meta = 'meta',\n}\n\nconst b = cn('navigation-table');\n\nexport const NavigationTable: FC = () => {\n const [activeTab, setActiveTab] = useState(TableTab.Schema);\n const clusterConfig = useSelector(selectNavigationClusterConfig);\n const table = useSelector(selectTableWithFilter);\n const engine = useSelector(getQueryEngine);\n const limit = useSelector(getPageSize);\n const path = useSelector(selectNavigationPath);\n const ysonSettings = useSelector(getTableYsonSettings);\n const {getEditor} = useMonaco();\n\n const handleChangeTab = (id: string) => {\n setActiveTab(id as TableTab);\n };\n\n const handleInsertTableSelect = async () => {\n if (!clusterConfig) return;\n const editor = getEditor('queryEditor');\n const text = await createTableSelect({clusterConfig, path, engine, limit});\n insertTextWhereCursor(text, editor);\n };\n\n if (!table) return <div>Empty data</div>;\n\n return (\n <div className={b()}>\n <RadioButton\n defaultValue={activeTab}\n onUpdate={handleChangeTab}\n options={[\n {value: TableTab.Schema, content: 'Schema'},\n {value: TableTab.Preview, content: 'Preview'},\n {value: TableTab.Meta, content: 'Meta'},\n ]}\n />\n <div className={b('content')}>\n {activeTab === TableTab.Schema && <SchemaTab schema={table.schema} />}\n {activeTab === TableTab.Preview && (\n <PreviewTab\n table={table}\n onEditorInsert={handleInsertTableSelect}\n ysonSettings={ysonSettings}\n />\n )}\n {activeTab === TableTab.Meta && <MetaTable items={table.meta} />}\n </div>\n </div>\n );\n};\n","import React, {FC} from 'react';\nimport {NavigationEmpty} from './NavigationEmpty';\nimport {useSelector} from 'react-redux';\nimport {selectNavigationNodeType} from '../../module/queryNavigation/selectors';\nimport {BodyType} from '../../module/queryNavigation/queryNavigationSlice';\nimport {ClusterList} from '../ClusterList';\nimport {NodeList} from '../NodeList';\nimport {NavigationTable} from '../NavigationTable';\n\nexport const NavigationBody: FC = () => {\n const nodeType = useSelector(selectNavigationNodeType);\n\n switch (nodeType) {\n case BodyType.Tree:\n return <NodeList />;\n case BodyType.Table:\n return <NavigationTable />;\n case BodyType.Cluster:\n return <ClusterList />;\n default:\n return <NavigationEmpty />;\n }\n};\n","import React, {FC, useEffect} from 'react';\nimport './Navigation.scss';\nimport {NavigationHeader} from './NavigationHeader';\nimport {NavigationBody} from './NavigationBody';\nimport cn from 'bem-cn-lite';\nimport {useDispatch} from 'react-redux';\nimport {initNavigation} from '../module/queryNavigation/actions';\n\nconst b = cn('query-navigation');\n\nexport const Navigation: FC = () => {\n const dispatch = useDispatch();\n\n useEffect(() => {\n dispatch(initNavigation());\n }, [dispatch]);\n\n return (\n <div className={b()}>\n <NavigationHeader />\n <NavigationBody />\n </div>\n );\n};\n","import React, {MouseEvent, useState} from 'react';\nimport {useSelector} from 'react-redux';\nimport {Button, Icon} from '@gravity-ui/uikit';\nimport Modal from '../../../components/Modal/Modal';\nimport {isQueryDraftEditted} from '../module/query/selectors';\nimport FilePlusIcon from '@gravity-ui/icons/svgs/file-plus.svg';\nimport {Page} from '../../../../shared/constants/settings';\nimport {getCluster} from '../../../store/selectors/global';\n\nexport const NewQueryPromt = (props: {\n cancel: () => void;\n confirm: () => void;\n visible: boolean;\n}) => {\n return (\n <Modal\n title=\"New query\"\n content=\"All the changes will be lost. Are you sure you want to reset query?\"\n onCancel={props.cancel}\n onConfirm={props.confirm}\n onOutsideClick={props.cancel}\n visible={props.visible}\n />\n );\n};\n\nexport const NewQueryButton = ({onClick}: {onClick: () => void}) => {\n const dirtyQuery = useSelector(isQueryDraftEditted);\n const [visible, setVisible] = useState(false);\n const cluster = useSelector(getCluster);\n\n const handleClick = (e: MouseEvent<HTMLAnchorElement>) => {\n e.preventDefault();\n\n if (dirtyQuery) {\n setVisible(true);\n } else {\n onClick();\n }\n };\n\n const handleConfirm = () => {\n onClick();\n\n setVisible(false);\n };\n\n const handleCancel = () => {\n setVisible(false);\n };\n\n return (\n <React.Fragment>\n <Button\n qa=\"new-query-btn\"\n view=\"action\"\n size=\"l\"\n title=\"New query\"\n href={`/${cluster}/${Page.QUERIES}`}\n onClick={handleClick}\n >\n <Icon data={FilePlusIcon} size={16} />\n New\n </Button>\n <NewQueryPromt confirm={handleConfirm} cancel={handleCancel} visible={visible} />\n </React.Fragment>\n );\n};\n","import React, {FC} from 'react';\nimport {ClusterConfig} from '../../../../../shared/yt-types';\nimport cn from 'bem-cn-lite';\nimport './QueryClusterItem.scss';\nimport {Text} from '@gravity-ui/uikit';\nimport ClusterIcon from '../../../../components/ClusterIcon/ClusterIcon';\nimport {useClusterColorClassName} from '../../../../containers/ClusterPageHeader/ClusterColor';\n\nconst block = cn('query-cluster-item');\nconst IconBlock = cn('query-cluster-icon');\n\ntype Props = Pick<ClusterConfig, 'id' | 'name' | 'environment'> & {className?: string};\n\nexport const QueryClusterItem: FC<Props> = ({id, name, environment, className}) => {\n const clusterColorClassName = useClusterColorClassName(id);\n\n return (\n <div className={block(null, className)}>\n <ClusterIcon name={name} className={IconBlock(null, clusterColorClassName)} />\n <div className={block('info')}>\n {name}\n <Text color=\"secondary\" className={block('environment')}>\n {environment}\n </Text>\n </div>\n </div>\n );\n};\n","const SvgArrowUpRightFromSquare = props => <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 16 16\" {...props}><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\" /></svg>;\nexport default SvgArrowUpRightFromSquare;","const SvgFilePlus = props => <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 16 16\" {...props}><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\" /></svg>;\nexport default SvgFilePlus;"],"names":["props","_jsx","_objectSpread","xmlns","fill","viewBox","children","fillRule","d","clipRule","BreadcrumbsItem","_ref","item","isCurrent","onClick","e","preventDefault","href","text","NavigationBreadcrumbs","path","cluster","onClusterChangeClick","onItemClick","handleBreadcrumbsClick","useCallback","newPath","items","useMemo","result","action","pathItems","split","reduce","acc","push","concat","_toConsumableArray","_jsxs","_Fragment","Button","size","view","Icon","data","FolderTreeIcon","Breadcrumbs","renderItemContent","firstDisplayedItemsCount","FirstDisplayedItemsCount","lastDisplayedItemsCount","LastDisplayedItemsCount","One","b","cn","HeaderActions","isFavorite","showCopyBtn","onFavoriteToggle","onPathCopy","onPastePath","className","StarFillIcon","StarIcon","TextIndentIcon","CopyIcon","loadDynamicTableRequest","_ref2","_asyncToGenerator","_regeneratorRuntime","_callee","clusterConfig","login","schema","keyColumns","limit","output_format","allColumns","permissions","_permissions$columns$","availableColumns","omittedColumns","aColumns","parameters","setup","_yield$wrapApiPromise","columns","rows","yqlTypes","schemaColumns","_context","prev","next","map","_ref3","name","wrapApiPromiseByToaster","ytApiV3Id","checkPermission","YTApiId","dynTableCheckPerm","proxy","getClusterProxy","permission","user","skipSuccessToast","toasterName","errorTitle","sent","Array","isArray","abrupt","Promise","reject","Error","index","includes","deniedKeyColumns","_defineProperty","length","unipika","decode","query","Query","prepareQuery","offset","dump_error_into_response","transformResponse","_ref4","parsedData","rawResponse","headers","JSONParser","readDynamicTable","_ref5","injectColumnsFromSchema","stop","_x","apply","arguments","loadStaticTable","omit_inaccessible_columns","table_reader","workload_descriptor","category","readStaticTable","isTableNode","type","isFolderNode","nodeType","loadTableAttributes","get","navigationAttributes","makePathByQueryEngine","engine","QueryEngine","YQL","YT_QL","CHYT","createTableSelect","attributes","ypath","getValue","i","join","id","insertTextWhereCursor","mEditor","position","getPosition","edit","range","Range","lineNumber","column","executeEdits","toaster","Toaster","toggleFavoritePath","favoritePath","dispatch","getState","state","selectNavigationCluster","nodes","selectNavigationNodes","parentNS","createNestedNS","NAMESPACES","LOCAL","toggleFavourite","newNodes","node","setNodes","loadNodeByPath","favorites","response","selectNavigationClusterConfig","selectFavouritePaths","list","navigationListNodes","getAttributes","sort","a","localeCompare","setFilter","setPath","setNodeType","BodyType","Tree","_x2","loadTableAttributesByPath","_callee2","_getQueryResultGlobal","cellSize","pageSize","defaultTableColumnLimit","useYqlTypes","requestFunction","_yield$requestFunctio","tableData","_context2","getQueryResultGlobalSettings","getDefaultTableColumnLimit","isYqlTypesEnabled","getCurrentUserName","getRequestOutputFormat","dynamic","global","key_columns","key","meta","makeMetaItems","tableType","getTableTypeByAttributes","isDynamic","setTable","Table","t0","add","theme","autoHiding","title","message","_x3","_x4","copyPathToClipboard","_callee4","_","_context4","navigator","clipboard","writeText","content","_x7","_x8","NavigationHeader","useDispatch","useSelector","filter","selectNavigationFilter","selectNavigationPath","getQueryEngine","selectNavigationNodeType","getEditor","useMonaco","showFilter","handlePathCopy","handlePastePath","editor","pathString","Cluster","setCluster","undefined","val","Boolean","TextInput","value","placeholder","onUpdate","hasClear","NavigationEmpty","Text","variant","Object","assign","width","height","order","icon","I","TableSorting","TableComponent","_a","displayName","getComponentName","defaultCompareFunction","itemA","itemB","columnId","constructor","_b","super","this","defaultSortState","enhanceColumns","_originalName","sortState","getSortState","sortOrder","find","s","originContent","getHeadCellContent","align","reverse","handleColumnSortClick","bind","onKeyDown","role","tabIndex","active","event","currentStateIndex","findIndex","currentState","nextColumnSort","getNextSortForColumn","shiftKey","handleSortStateChange","slice","render","restTableProps","getSortedData","disableDataSorting","isControlledState","c","compareFunction","compareValue","newSortState","onSortStateChange","setState","getColumnDefaultSortOrder","defaultSortOrder","orderStack","currentIndex","indexOf","nextOrder","withTableSorting","TableWithSorting","ClusterList","clusters","selectClustersByFilter","template","environment","QueryClusterItem","aCluster","bCluster","onRowClick","clusterId","NodeListRow","_ref$node","broken","onClipboardCopy","onEditorInsert","onNewQuery","onNewWindowOpen","_useToggle","useToggle","_useToggle2","_slicedToArray","tableMenuOpen","toggleTapleMenuOpen","_useToggle3","_useToggle4","menuOpen","toggleMenuOpen","iconType","iconName","getIconNameForType","isSupported","showActions","handleStop","stopPropagation","unsupported","AwesomeIcon","awesome","ellipsis","DropdownMenu","open","onOpenToggle","renderSwitcher","SPYT","onSwitcherClick","iconEnd","ArrowUpRightFromSquareIcon","NodeList","showPrompt","togglePrompt","newQueryParams","useRef","selectNodeListByFilter","dirtyQuery","isQueryDraftEditted","isEmpty","handleNodeClick","handleFavoriteToggle","handleEditorInsert","url","URL","location","origin","pathname","searchParams","append","toString","getNavigationUrl","handleNewWindowOpen","window","handlePromptConfirm","current","_callee5","_getQueryResultGlobal2","_getQueryDraft","settings","newSettings","_context5","getQueryDraft","createEmptyQuery","loadCliqueByCluster","updateQueryDraft","_x9","_x10","makeNewQueryWithTableSelect","handlePromptCancel","handleNewQuery","newEngine","NoContent","warning","NewQueryPromt","confirm","cancel","visible","header","row","sort_order","required","SchemaTab","DataTableYT","useThemeYT","PreviewTab","table","ysonSettings","prepareColumns","useRawStrings","schemaByName","NavigationTable","_useState","useState","_useState2","activeTab","setActiveTab","selectTableWithFilter","getPageSize","getTableYsonSettings","handleInsertTableSelect","RadioButton","defaultValue","options","MetaTable","NavigationBody","Navigation","useEffect","_callee3","r","_context3","navigationGetType","_x5","_x6","Modal","onCancel","onConfirm","onOutsideClick","NewQueryButton","setVisible","getCluster","React","qa","Page","QUERIES","FilePlusIcon","block","IconBlock","clusterColorClassName","useClusterColorClassName","ClusterIcon","color"],"sourceRoot":""}
@@ -1,2 +0,0 @@
1
- "use strict";(self.webpackChunk_ytsaurus_ui=self.webpackChunk_ytsaurus_ui||[]).push([[4533],{8925:(e,n,a)=>{a.r(n),a.d(n,{Vcs:()=>_});var l=a(77810),s=a(15647),i=a(63513),c=a(50074),t=a(21452),r=a(76872),o=a(79703),d=a(6736),u=a(88786),h=a(72679),v=a(64922),f=(0,r.A)("vcs-header"),m=function(){var e=(0,s.wA)(),n=(0,s.d4)(i.Dh),a=(0,s.d4)(i.qv),r=(0,s.d4)(i.XZ),m=(0,s.d4)(i.nF),x=(0,s.d4)(i.tU),j=(0,s.d4)(i.rd);(0,l.useEffect)((function(){e((0,t.BP)())}),[e]);var A=(0,l.useCallback)((function(n){n&&e((0,t.l_)(n))}),[e]),p=(0,l.useCallback)((function(n){n&&e((0,t.ul)(n))}),[e]),C=(0,l.useCallback)((function(n){n&&e((0,t.Ob)(n))}),[e]),w=(0,l.useMemo)((function(){return n.map((function(e){var n=e.id,a=e.name,l=e.hasToken;return{value:n,text:"".concat(a).concat(l?"":" [no api token]")}}))}),[n]),k=(0,l.useMemo)((function(){return Object.keys(r).map((function(e){return{value:e}}))}),[r]),g=(0,l.useMemo)((function(){return j.map((function(e){return{value:e}}))}),[j]);return(0,v.jsxs)("div",{className:f(),children:[(0,v.jsxs)(d.s,{alignItems:"center",gap:2,children:[(0,v.jsx)(c.L,{items:w,value:a,onChange:A,placeholder:"Select VCS type",hideClear:!0}),(0,v.jsx)(u.m,{content:"You can add VCS tokens in the section Settings -> VCS",children:(0,v.jsx)(h.I,{data:o.A,size:16})})]}),(0,v.jsxs)("div",{className:f("top-menu"),children:[(0,v.jsx)(c.L,{items:k,value:m,onChange:p,disabled:!k.length,placeholder:"Select repository",hideClear:!0}),(0,v.jsx)(c.L,{items:g,value:x,onChange:C,disabled:!m,placeholder:"Select branch",hideClear:!0})]})]})},x=a(85137),j=a(40319);const A=function(e){return(0,v.jsx)("svg",(0,j.A)((0,j.A)({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 16 16"},e),{},{children:(0,v.jsx)("path",{fill:"currentColor",fillRule:"evenodd",d:"m6.44 4.06.439.44H12.5A1.5 1.5 0 0 1 14 6v5a1.5 1.5 0 0 1-1.5 1.5h-9A1.5 1.5 0 0 1 2 11V4.5A1.5 1.5 0 0 1 3.5 3h1.257a1.5 1.5 0 0 1 1.061.44l.621.62ZM.5 4.5a3 3 0 0 1 3-3h1.257a3 3 0 0 1 2.122.879L7.5 3h5a3 3 0 0 1 3 3v5a3 3 0 0 1-3 3h-9a3 3 0 0 1-3-3zm4.25 2a.75.75 0 0 0 0 1.5h6.5a.75.75 0 0 0 0-1.5z",clipRule:"evenodd"})}))};var p=a(93209),C=(0,r.A)("vcs-list-folder"),w=function(e){var n=e.name,a=e.onClick;return(0,v.jsxs)(p.S,{onClick:function(){a(n)},className:C(),color:"primary",children:[(0,v.jsx)(h.I,{className:C("icon"),data:A,size:16})," ",(0,v.jsx)(x.E,{ellipsis:!0,children:n})]})},k=a(92423);const g=function(e){return(0,v.jsx)("svg",(0,j.A)((0,j.A)({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 16 16"},e),{},{children:(0,v.jsx)("path",{fill:"currentColor",fillRule:"evenodd",d:"M5 13.5h6a1.5 1.5 0 0 0 1.5-1.5V7.243a1.5 1.5 0 0 0-.44-1.061L8.819 2.939a1.5 1.5 0 0 0-1.06-.439H5A1.5 1.5 0 0 0 3.5 4v8A1.5 1.5 0 0 0 5 13.5m9-6.257a3 3 0 0 0-.879-2.122L9.88 1.88A3 3 0 0 0 7.757 1H5a3 3 0 0 0-3 3v8a3 3 0 0 0 3 3h6a3 3 0 0 0 3-3zM5 8.25a.75.75 0 0 1 .75-.75h4.5a.75.75 0 0 1 0 1.5h-4.5A.75.75 0 0 1 5 8.25m.75 2.25a.75.75 0 0 0 0 1.5h2.5a.75.75 0 0 0 0-1.5z",clipRule:"evenodd"})}))};var b=a(1701),z=a(41347),N=(0,r.A)("vcs-list-file"),M=function(e){var n=e.name,a=e.url,l=e.onAddFile,s=e.onShowClick;return(0,v.jsxs)("div",{className:N(),children:[(0,v.jsxs)(p.S,{className:N("link"),onClick:function(){s(n)},color:"primary",children:[(0,v.jsx)(h.I,{className:N("linkIcon"),data:g,size:16})," ",(0,v.jsx)(x.E,{ellipsis:!0,children:n})]}),(0,v.jsxs)("div",{className:N("side"),children:[(0,v.jsx)(k.$,{view:"flat",href:a,target:"_blank",children:(0,v.jsx)(h.I,{data:z.A,size:16})}),(0,v.jsx)(k.$,{view:"flat",onClick:function(){l(n)},children:(0,v.jsx)(h.I,{data:b.A,size:16})})]})]})},S=a(76866),V=a(51806),y=a(30469),R=(0,r.A)("vcs-list-preview"),I=function(e){var n=e.preview,a=e.onAddFile,s=e.onClose,i=(0,l.useRef)();return(0,v.jsxs)("div",{className:R(),children:[(0,v.jsxs)("div",{className:R("header"),children:[(0,v.jsxs)("div",{className:R("header-block"),children:[(0,v.jsx)(h.I,{data:g,size:16})," ",n.name]}),(0,v.jsxs)("div",{className:R("header-block"),children:[(0,v.jsx)(V.A,{view:"flat",onClick:function(){a(n.name)},children:(0,v.jsx)(h.I,{data:b.A,size:16})}),(0,v.jsx)(V.A,{view:"flat",onClick:s,children:(0,v.jsx)(h.I,{data:y.A,size:16})})]})]}),(0,v.jsx)(S.A,{className:R("editor"),editorRef:i,value:n.content,language:"plaintext",onChange:function(){},monacoConfig:{fontSize:14,language:"plaintext",renderWhitespace:"boundary",readOnly:!0}})]})},L=a(61189),H=(0,r.A)("vcs-items-list"),B=function(){var e=(0,s.wA)(),n=(0,s.d4)(i.g),a=(0,s.d4)(i.k4),c=(0,s.d4)(i.F9),r=(0,s.d4)(i.wW),o=(0,l.useCallback)((function(n){e((0,t.MH)(n))}),[e]),d=(0,l.useCallback)((function(n){e((0,t.RG)(n))}),[e]),u=(0,l.useCallback)((function(){e((0,t.OE)())}),[e]),h=(0,l.useCallback)((function(){e((0,L.DZ)({name:"",content:""}))}),[e]),f=(0,l.useCallback)((function(n){e((0,L.DZ)({name:"",content:""})),e((0,t.dU)(n))}),[e]),m=(0,l.useMemo)((function(){return n.map((function(e){var n=e.url;return r&&"webUrl"in r&&(n=r.webUrl+e.url),"file"===e.type?(0,v.jsx)(M,{url:n,name:e.name,onAddFile:f,onShowClick:d},e.name):(0,v.jsx)(w,{name:e.name,onClick:o},e.name)}))}),[a,r,f,d,o,n]);return n.length?c.content||c.name?(0,v.jsx)(I,{preview:c,onAddFile:f,onClose:h}):(0,v.jsxs)("div",{className:H(),children:[Boolean(a)&&(0,v.jsx)(w,{name:"...",onClick:u}),m]}):(0,v.jsx)("div",{className:H(),children:"Empty list"})},F=(0,r.A)("vsc"),_=function(){return(0,v.jsxs)("div",{className:F(),children:[(0,v.jsx)(m,{}),(0,v.jsx)(B,{})]})}},41347:(e,n,a)=>{a.d(n,{A:()=>i});var l=a(40319),s=a(64922);const i=function(e){return(0,s.jsx)("svg",(0,l.A)((0,l.A)({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 16 16"},e),{},{children:(0,s.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,n,a)=>{a.d(n,{A:()=>i});var l=a(40319),s=a(64922);const i=function(e){return(0,s.jsx)("svg",(0,l.A)((0,l.A)({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 16 16"},e),{},{children:(0,s.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=vcs.d737e61e.chunk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"js/vcs.d737e61e.chunk.js","mappings":"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","sources":["webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/Vcs/VcsHeader/VcsHeader.tsx","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/icons/svgs/folder.svg","webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/Vcs/VcsItemsList/VcsListFolder.tsx","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/icons/svgs/file-text.svg","webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/Vcs/VcsItemsList/VcsListFile.tsx","webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/Vcs/VcsItemsList/VcsListPreview.tsx","webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/Vcs/VcsItemsList/VcsItemsList.tsx","webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/Vcs/Vcs.tsx","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/icons/svgs/arrow-up-right-from-square.svg","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/icons/svgs/file-plus.svg"],"sourcesContent":["import React, {FC, useCallback, useEffect, useMemo} from 'react';\nimport {useDispatch, useSelector} from 'react-redux';\nimport {\n selectBranch,\n selectBranches,\n selectCurrentVcs,\n selectRepositories,\n selectRepository,\n selectVcsConfig,\n} from '../../module/vcs/selectors';\nimport {SelectSingle} from '../../../../components/Select/Select';\nimport {\n changeCurrentBranch,\n changeCurrentRepository,\n getVcsConfig,\n getVcsRepositories,\n} from '../../module/vcs/actions';\nimport './VcsHeader.scss';\nimport cn from 'bem-cn-lite';\nimport CircleQuestionIcon from '@gravity-ui/icons/svgs/circle-question.svg';\nimport {Flex, Icon, Tooltip} from '@gravity-ui/uikit';\n\nconst block = cn('vcs-header');\n\nexport const VcsHeader: FC = () => {\n const dispatch = useDispatch();\n const config = useSelector(selectVcsConfig);\n const currentVcs = useSelector(selectCurrentVcs);\n const repositories = useSelector(selectRepositories);\n const repository = useSelector(selectRepository);\n const branch = useSelector(selectBranch);\n const branches = useSelector(selectBranches);\n\n useEffect(() => {\n dispatch(getVcsConfig());\n }, [dispatch]);\n\n const handleChangeVcs = useCallback(\n (vcsId?: string) => {\n if (vcsId) dispatch(getVcsRepositories(vcsId));\n },\n [dispatch],\n );\n\n const handleChangeRepository = useCallback(\n (currentRepository?: string) => {\n if (currentRepository) dispatch(changeCurrentRepository(currentRepository));\n },\n [dispatch],\n );\n\n const handleChangeBranch = useCallback(\n (currentBranch?: string) => {\n if (currentBranch) dispatch(changeCurrentBranch(currentBranch));\n },\n [dispatch],\n );\n\n const selectVcsItems = useMemo(() => {\n return config.map(({id, name, hasToken}) => ({\n value: id,\n text: `${name}${hasToken ? '' : ' [no api token]'}`,\n }));\n }, [config]);\n\n const selectRepoItems = useMemo(() => {\n return Object.keys(repositories).map((key) => ({value: key}));\n }, [repositories]);\n\n const selectBranchItems = useMemo(() => {\n return branches.map((i) => ({value: i}));\n }, [branches]);\n\n return (\n <div className={block()}>\n <Flex alignItems=\"center\" gap={2}>\n <SelectSingle\n items={selectVcsItems}\n value={currentVcs}\n onChange={handleChangeVcs}\n placeholder=\"Select VCS type\"\n hideClear\n />\n <Tooltip content=\"You can add VCS tokens in the section Settings -> VCS\">\n <Icon data={CircleQuestionIcon} size={16} />\n </Tooltip>\n </Flex>\n <div className={block('top-menu')}>\n <SelectSingle\n items={selectRepoItems}\n value={repository}\n onChange={handleChangeRepository}\n disabled={!selectRepoItems.length}\n placeholder=\"Select repository\"\n hideClear\n />\n <SelectSingle\n items={selectBranchItems}\n value={branch}\n onChange={handleChangeBranch}\n disabled={!repository}\n placeholder=\"Select branch\"\n hideClear\n />\n </div>\n </div>\n );\n};\n","const SvgFolder = props => <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 16 16\" {...props}><path fill=\"currentColor\" fillRule=\"evenodd\" d=\"m6.44 4.06.439.44H12.5A1.5 1.5 0 0 1 14 6v5a1.5 1.5 0 0 1-1.5 1.5h-9A1.5 1.5 0 0 1 2 11V4.5A1.5 1.5 0 0 1 3.5 3h1.257a1.5 1.5 0 0 1 1.061.44l.621.62ZM.5 4.5a3 3 0 0 1 3-3h1.257a3 3 0 0 1 2.122.879L7.5 3h5a3 3 0 0 1 3 3v5a3 3 0 0 1-3 3h-9a3 3 0 0 1-3-3zm4.25 2a.75.75 0 0 0 0 1.5h6.5a.75.75 0 0 0 0-1.5z\" clipRule=\"evenodd\" /></svg>;\nexport default SvgFolder;","import React, {FC} from 'react';\nimport {Icon, Text} from '@gravity-ui/uikit';\nimport FolderIcon from '@gravity-ui/icons/svgs/folder.svg';\nimport cn from 'bem-cn-lite';\nimport './VcsListFolder.scss';\nimport {ClickableText} from '../../../../components/ClickableText/ClickableText';\n\nconst block = cn('vcs-list-folder');\n\ntype Props = {\n name: string;\n onClick: (name: string) => void;\n};\n\nexport const VcsListFolder: FC<Props> = ({name, onClick}) => {\n const handleClick = () => {\n onClick(name);\n };\n\n return (\n <ClickableText onClick={handleClick} className={block()} color=\"primary\">\n <Icon className={block('icon')} data={FolderIcon} size={16} />{' '}\n <Text ellipsis>{name}</Text>\n </ClickableText>\n );\n};\n","const SvgFileText = props => <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 16 16\" {...props}><path fill=\"currentColor\" fillRule=\"evenodd\" d=\"M5 13.5h6a1.5 1.5 0 0 0 1.5-1.5V7.243a1.5 1.5 0 0 0-.44-1.061L8.819 2.939a1.5 1.5 0 0 0-1.06-.439H5A1.5 1.5 0 0 0 3.5 4v8A1.5 1.5 0 0 0 5 13.5m9-6.257a3 3 0 0 0-.879-2.122L9.88 1.88A3 3 0 0 0 7.757 1H5a3 3 0 0 0-3 3v8a3 3 0 0 0 3 3h6a3 3 0 0 0 3-3zM5 8.25a.75.75 0 0 1 .75-.75h4.5a.75.75 0 0 1 0 1.5h-4.5A.75.75 0 0 1 5 8.25m.75 2.25a.75.75 0 0 0 0 1.5h2.5a.75.75 0 0 0 0-1.5z\" clipRule=\"evenodd\" /></svg>;\nexport default SvgFileText;","import React, {FC} from 'react';\nimport {Button, Icon, Text} from '@gravity-ui/uikit';\nimport FileTextIcon from '@gravity-ui/icons/svgs/file-text.svg';\nimport FilePlusIcon from '@gravity-ui/icons/svgs/file-plus.svg';\nimport ArrowUpRightFromSquareIcon from '@gravity-ui/icons/svgs/arrow-up-right-from-square.svg';\nimport cn from 'bem-cn-lite';\nimport './VcsListFile.scss';\nimport {ClickableText} from '../../../../components/ClickableText/ClickableText';\n\nconst block = cn('vcs-list-file');\n\ntype Props = {\n name: string;\n url: string;\n onAddFile: (name: string) => void;\n onShowClick: (name: string) => void;\n};\n\nexport const VcsListFile: FC<Props> = ({name, url, onAddFile, onShowClick}) => {\n const handleAddClick = () => {\n onAddFile(name);\n };\n\n const handleShowClick = () => {\n onShowClick(name);\n };\n\n return (\n <div className={block()}>\n <ClickableText className={block('link')} onClick={handleShowClick} color=\"primary\">\n <Icon className={block('linkIcon')} data={FileTextIcon} size={16} />{' '}\n <Text ellipsis>{name}</Text>\n </ClickableText>\n <div className={block('side')}>\n <Button view=\"flat\" href={url} target=\"_blank\">\n <Icon data={ArrowUpRightFromSquareIcon} size={16} />\n </Button>\n <Button view=\"flat\" onClick={handleAddClick}>\n <Icon data={FilePlusIcon} size={16} />\n </Button>\n </div>\n </div>\n );\n};\n","import React, {FC, useRef} from 'react';\nimport MonacoEditor from '../../../../components/MonacoEditor';\nimport * as monaco from 'monaco-editor';\nimport {VcsState} from '../../module/vcs/vcsSlice';\nimport './VcsListPreview.scss';\nimport cn from 'bem-cn-lite';\nimport FileTextIcon from '@gravity-ui/icons/svgs/file-text.svg';\nimport {Icon} from '@gravity-ui/uikit';\nimport Button from '../../../../components/Button/Button';\nimport XmarkIcon from '@gravity-ui/icons/svgs/xmark.svg';\nimport FilePlusIcon from '@gravity-ui/icons/svgs/file-plus.svg';\n\nconst block = cn('vcs-list-preview');\n\ntype Props = {\n preview: VcsState['preview'];\n onAddFile: (name: string) => void;\n onClose: () => void;\n};\n\nexport const VcsListPreview: FC<Props> = ({preview, onAddFile, onClose}) => {\n const editorRef = useRef<monaco.editor.IStandaloneCodeEditor>();\n\n const handleAddFile = () => {\n onAddFile(preview.name);\n };\n\n return (\n <div className={block()}>\n <div className={block('header')}>\n <div className={block('header-block')}>\n <Icon data={FileTextIcon} size={16} /> {preview.name}\n </div>\n <div className={block('header-block')}>\n <Button view=\"flat\" onClick={handleAddFile}>\n <Icon data={FilePlusIcon} size={16} />\n </Button>\n <Button view=\"flat\" onClick={onClose}>\n <Icon data={XmarkIcon} size={16} />\n </Button>\n </div>\n </div>\n <MonacoEditor\n className={block('editor')}\n editorRef={editorRef}\n value={preview.content}\n language=\"plaintext\"\n onChange={() => {}}\n monacoConfig={{\n fontSize: 14,\n language: 'plaintext',\n renderWhitespace: 'boundary',\n readOnly: true,\n }}\n />\n </div>\n );\n};\n","import React, {FC, useCallback, useMemo} from 'react';\nimport cn from 'bem-cn-lite';\nimport './VcsItemsList.scss';\nimport {useDispatch, useSelector} from 'react-redux';\nimport {\n selectCurrentRepository,\n selectListArray,\n selectPath,\n selectPreview,\n} from '../../module/vcs/selectors';\nimport {VcsListFolder} from './VcsListFolder';\nimport {addFileToQuery, getFolderContent, goBack, openFilePreview} from '../../module/vcs/actions';\nimport {VcsListFile} from './VcsListFile';\nimport {VcsListPreview} from './VcsListPreview';\nimport {setPreview} from '../../module/vcs/vcsSlice';\n\nconst block = cn('vcs-items-list');\n\nexport const VcsItemsList: FC = () => {\n const dispatch = useDispatch();\n const list = useSelector(selectListArray);\n const path = useSelector(selectPath);\n const preview = useSelector(selectPreview);\n const currentRepository = useSelector(selectCurrentRepository);\n\n const handleOpenFolder = useCallback(\n (name: string) => {\n dispatch(getFolderContent(name));\n },\n [dispatch],\n );\n\n const handleShowClick = useCallback(\n (name: string) => {\n dispatch(openFilePreview(name));\n },\n [dispatch],\n );\n\n const handleBackClick = useCallback(() => {\n dispatch(goBack());\n }, [dispatch]);\n\n const handleClosePreview = useCallback(() => {\n dispatch(setPreview({name: '', content: ''}));\n }, [dispatch]);\n\n const handleAddFile = useCallback(\n (name: string) => {\n dispatch(setPreview({name: '', content: ''}));\n dispatch(addFileToQuery(name));\n },\n [dispatch],\n );\n\n const itemsList = useMemo(() => {\n return list.map((item) => {\n let url = item.url;\n if (currentRepository && 'webUrl' in currentRepository) {\n url = currentRepository.webUrl + item.url;\n }\n return item.type === 'file' ? (\n <VcsListFile\n key={item.name}\n url={url}\n name={item.name}\n onAddFile={handleAddFile}\n onShowClick={handleShowClick}\n />\n ) : (\n <VcsListFolder key={item.name} name={item.name} onClick={handleOpenFolder} />\n );\n });\n }, [path, currentRepository, handleAddFile, handleShowClick, handleOpenFolder, list]);\n\n if (!list.length) return <div className={block()}>Empty list</div>;\n\n if (preview.content || preview.name)\n return (\n <VcsListPreview\n preview={preview}\n onAddFile={handleAddFile}\n onClose={handleClosePreview}\n />\n );\n\n return (\n <div className={block()}>\n {Boolean(path) && <VcsListFolder name=\"...\" onClick={handleBackClick} />}\n {itemsList}\n </div>\n );\n};\n","import React, {FC} from 'react';\nimport {VcsHeader} from './VcsHeader';\nimport {VcsItemsList} from './VcsItemsList';\nimport './Vcs.scss';\nimport cn from 'bem-cn-lite';\n\nconst block = cn('vsc');\n\nexport const Vcs: FC = () => {\n return (\n <div className={block()}>\n <VcsHeader />\n <VcsItemsList />\n </div>\n );\n};\n","const SvgArrowUpRightFromSquare = props => <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 16 16\" {...props}><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\" /></svg>;\nexport default SvgArrowUpRightFromSquare;","const SvgFilePlus = props => <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 16 16\" {...props}><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\" /></svg>;\nexport default SvgFilePlus;"],"names":["block","cn","VcsHeader","dispatch","useDispatch","config","useSelector","selectVcsConfig","currentVcs","selectCurrentVcs","repositories","selectRepositories","repository","selectRepository","branch","selectBranch","branches","selectBranches","useEffect","getVcsConfig","handleChangeVcs","useCallback","vcsId","getVcsRepositories","handleChangeRepository","currentRepository","changeCurrentRepository","handleChangeBranch","currentBranch","changeCurrentBranch","selectVcsItems","useMemo","map","_ref","id","name","hasToken","value","text","concat","selectRepoItems","Object","keys","key","selectBranchItems","i","_jsxs","className","children","Flex","alignItems","gap","_jsx","SelectSingle","items","onChange","placeholder","hideClear","Tooltip","content","Icon","data","CircleQuestionIcon","size","disabled","length","props","_objectSpread","xmlns","fill","viewBox","fillRule","d","clipRule","VcsListFolder","onClick","ClickableText","color","FolderIcon","Text","ellipsis","VcsListFile","url","onAddFile","onShowClick","FileTextIcon","Button","view","href","target","ArrowUpRightFromSquareIcon","FilePlusIcon","VcsListPreview","preview","onClose","editorRef","useRef","XmarkIcon","MonacoEditor","language","monacoConfig","fontSize","renderWhitespace","readOnly","VcsItemsList","list","selectListArray","path","selectPath","selectPreview","selectCurrentRepository","handleOpenFolder","getFolderContent","handleShowClick","openFilePreview","handleBackClick","goBack","handleClosePreview","setPreview","handleAddFile","addFileToQuery","itemsList","item","webUrl","type","Boolean","Vcs"],"sourceRoot":""}