@ytsaurus/ui 1.75.1 → 1.77.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 (108) hide show
  1. package/dist/public/build/assets-manifest.json +75 -75
  2. package/dist/public/build/css/{job.c7c99207.chunk.css → job.9757ff68.chunk.css} +2 -2
  3. package/dist/public/build/css/job.9757ff68.chunk.css.map +1 -0
  4. package/dist/public/build/css/main.0efa9da5.css +10 -0
  5. package/dist/public/build/css/main.0efa9da5.css.map +1 -0
  6. package/dist/public/build/css/navigation.c199c4f2.chunk.css +2 -0
  7. package/dist/public/build/css/navigation.c199c4f2.chunk.css.map +1 -0
  8. package/dist/public/build/js/{1260.534f3f75.chunk.js → 1260.a1e22005.chunk.js} +2 -2
  9. package/dist/public/build/js/{1260.534f3f75.chunk.js.map → 1260.a1e22005.chunk.js.map} +1 -1
  10. package/dist/public/build/js/{1879.23423388.chunk.js → 1879.3975650a.chunk.js} +3 -3
  11. package/dist/public/build/js/{1879.23423388.chunk.js.map → 1879.3975650a.chunk.js.map} +1 -1
  12. package/dist/public/build/js/{1983.666923be.chunk.js → 1983.64a2e22f.chunk.js} +2 -2
  13. package/dist/public/build/js/{1983.666923be.chunk.js.map → 1983.64a2e22f.chunk.js.map} +1 -1
  14. package/dist/public/build/js/{2447.b2877275.chunk.js → 2447.eb8fde89.chunk.js} +2 -2
  15. package/dist/public/build/js/{2447.b2877275.chunk.js.map → 2447.eb8fde89.chunk.js.map} +1 -1
  16. package/dist/public/build/js/3724.3e5848f0.chunk.js +2 -0
  17. package/dist/public/build/js/{3724.425d01ec.chunk.js.map → 3724.3e5848f0.chunk.js.map} +1 -1
  18. package/dist/public/build/js/6729.39d7cf60.chunk.js +2 -0
  19. package/dist/public/build/js/6729.39d7cf60.chunk.js.map +1 -0
  20. package/dist/public/build/js/{7959.95ebd185.chunk.js → 7959.faac2ff8.chunk.js} +2 -2
  21. package/dist/public/build/js/{7959.95ebd185.chunk.js.map → 7959.faac2ff8.chunk.js.map} +1 -1
  22. package/dist/public/build/js/{8390.83f4531a.chunk.js → 8390.c3d2de6a.chunk.js} +2 -2
  23. package/dist/public/build/js/{8390.83f4531a.chunk.js.map → 8390.c3d2de6a.chunk.js.map} +1 -1
  24. package/dist/public/build/js/{8460.2d4d237e.chunk.js → 8460.fc8e2238.chunk.js} +2 -2
  25. package/dist/public/build/js/{8460.2d4d237e.chunk.js.map → 8460.fc8e2238.chunk.js.map} +1 -1
  26. package/dist/public/build/js/{8778.e18e655b.chunk.js → 8778.f3ea089f.chunk.js} +2 -2
  27. package/dist/public/build/js/{8778.e18e655b.chunk.js.map → 8778.f3ea089f.chunk.js.map} +1 -1
  28. package/dist/public/build/js/{9558.a6ea64c9.chunk.js → 9558.6a4bf9a9.chunk.js} +2 -2
  29. package/dist/public/build/js/{9558.a6ea64c9.chunk.js.map → 9558.6a4bf9a9.chunk.js.map} +1 -1
  30. package/dist/public/build/js/9569.aac48f3b.chunk.js +2 -0
  31. package/dist/public/build/js/9569.aac48f3b.chunk.js.map +1 -0
  32. package/dist/public/build/js/{accounts.2ba221c2.chunk.js → accounts.aa7ed73f.chunk.js} +2 -2
  33. package/dist/public/build/js/accounts.aa7ed73f.chunk.js.map +1 -0
  34. package/dist/public/build/js/{acl.c948c339.chunk.js → acl.4cd54663.chunk.js} +2 -2
  35. package/dist/public/build/js/{acl.c948c339.chunk.js.map → acl.4cd54663.chunk.js.map} +1 -1
  36. package/dist/public/build/js/{app-navigation.b062662b.chunk.js → app-navigation.13c65573.chunk.js} +2 -2
  37. package/dist/public/build/js/app-navigation.13c65573.chunk.js.map +1 -0
  38. package/dist/public/build/js/chyt.0ee6bfa2.chunk.js +2 -0
  39. package/dist/public/build/js/chyt.0ee6bfa2.chunk.js.map +1 -0
  40. package/dist/public/build/js/cluster-page-wrapper.bdc8607f.chunk.js +2 -0
  41. package/dist/public/build/js/cluster-page-wrapper.bdc8607f.chunk.js.map +1 -0
  42. package/dist/public/build/js/{components.bbe331cb.chunk.js → components.b39828bc.chunk.js} +2 -2
  43. package/dist/public/build/js/components.b39828bc.chunk.js.map +1 -0
  44. package/dist/public/build/js/job.ea2ba82d.chunk.js +2 -0
  45. package/dist/public/build/js/job.ea2ba82d.chunk.js.map +1 -0
  46. package/dist/public/build/js/main.6375dbc6.js +3 -0
  47. package/dist/public/build/js/main.6375dbc6.js.map +1 -0
  48. package/dist/public/build/js/manage-tokens.e1e791fc.chunk.js +2 -0
  49. package/dist/public/build/js/manage-tokens.e1e791fc.chunk.js.map +1 -0
  50. package/dist/public/build/js/{navigation-flow.eeb01518.chunk.js → navigation-flow.6d67215a.chunk.js} +2 -2
  51. package/dist/public/build/js/{navigation-flow.eeb01518.chunk.js.map → navigation-flow.6d67215a.chunk.js.map} +1 -1
  52. package/dist/public/build/js/navigation.529208de.chunk.js +2 -0
  53. package/dist/public/build/js/navigation.529208de.chunk.js.map +1 -0
  54. package/dist/public/build/js/odin.c4c4ef6f.chunk.js +2 -0
  55. package/dist/public/build/js/odin.c4c4ef6f.chunk.js.map +1 -0
  56. package/dist/public/build/js/{path-viewer.b1b3328d.chunk.js → path-viewer.c091d9f4.chunk.js} +2 -2
  57. package/dist/public/build/js/{path-viewer.b1b3328d.chunk.js.map → path-viewer.c091d9f4.chunk.js.map} +1 -1
  58. package/dist/public/build/js/{query-navigation.9964bfcf.chunk.js → query-navigation.b1574290.chunk.js} +2 -2
  59. package/dist/public/build/js/{query-navigation.9964bfcf.chunk.js.map → query-navigation.b1574290.chunk.js.map} +1 -1
  60. package/dist/public/build/js/{query-results.733b1795.chunk.js → query-results.0a05cc41.chunk.js} +2 -2
  61. package/dist/public/build/js/{query-results.733b1795.chunk.js.map → query-results.0a05cc41.chunk.js.map} +1 -1
  62. package/dist/public/build/js/query-tracker.515069f6.chunk.js +2 -0
  63. package/dist/public/build/js/query-tracker.515069f6.chunk.js.map +1 -0
  64. package/dist/public/build/js/{runtime.481a6d3a.js → runtime.09217c31.js} +2 -2
  65. package/dist/public/build/js/{runtime.481a6d3a.js.map → runtime.09217c31.js.map} +1 -1
  66. package/dist/public/build/js/{scheduling.b70d4627.chunk.js → scheduling.6448eabd.chunk.js} +2 -2
  67. package/dist/public/build/js/{scheduling.b70d4627.chunk.js.map → scheduling.6448eabd.chunk.js.map} +1 -1
  68. package/dist/public/build/js/system.1114aa96.chunk.js +2 -0
  69. package/dist/public/build/js/system.1114aa96.chunk.js.map +1 -0
  70. package/dist/public/build/js/{yt-df-dialog.9ddda260.chunk.js → yt-df-dialog.4ad719bf.chunk.js} +2 -2
  71. package/dist/public/build/js/yt-df-dialog.4ad719bf.chunk.js.map +1 -0
  72. package/dist/public/build/manifest.json +70 -70
  73. package/dist/shared/constants/settings-types.d.ts +1 -0
  74. package/package.json +3 -2
  75. package/dist/public/build/css/job.c7c99207.chunk.css.map +0 -1
  76. package/dist/public/build/css/main.2d3cbfcd.css +0 -10
  77. package/dist/public/build/css/main.2d3cbfcd.css.map +0 -1
  78. package/dist/public/build/css/navigation.0a9042b3.chunk.css +0 -2
  79. package/dist/public/build/css/navigation.0a9042b3.chunk.css.map +0 -1
  80. package/dist/public/build/js/3724.425d01ec.chunk.js +0 -2
  81. package/dist/public/build/js/5177.b4cec253.chunk.js +0 -2
  82. package/dist/public/build/js/5177.b4cec253.chunk.js.map +0 -1
  83. package/dist/public/build/js/6729.da9aa02f.chunk.js +0 -2
  84. package/dist/public/build/js/6729.da9aa02f.chunk.js.map +0 -1
  85. package/dist/public/build/js/accounts.2ba221c2.chunk.js.map +0 -1
  86. package/dist/public/build/js/app-navigation.b062662b.chunk.js.map +0 -1
  87. package/dist/public/build/js/chyt.7f99f87d.chunk.js +0 -2
  88. package/dist/public/build/js/chyt.7f99f87d.chunk.js.map +0 -1
  89. package/dist/public/build/js/cluster-page-wrapper.894fbacc.chunk.js +0 -2
  90. package/dist/public/build/js/cluster-page-wrapper.894fbacc.chunk.js.map +0 -1
  91. package/dist/public/build/js/components.bbe331cb.chunk.js.map +0 -1
  92. package/dist/public/build/js/job.4fc50056.chunk.js +0 -2
  93. package/dist/public/build/js/job.4fc50056.chunk.js.map +0 -1
  94. package/dist/public/build/js/main.7981a440.js +0 -3
  95. package/dist/public/build/js/main.7981a440.js.map +0 -1
  96. package/dist/public/build/js/manage-tokens.286a4da9.chunk.js +0 -2
  97. package/dist/public/build/js/manage-tokens.286a4da9.chunk.js.map +0 -1
  98. package/dist/public/build/js/navigation.d891266d.chunk.js +0 -2
  99. package/dist/public/build/js/navigation.d891266d.chunk.js.map +0 -1
  100. package/dist/public/build/js/odin.df1cfe56.chunk.js +0 -2
  101. package/dist/public/build/js/odin.df1cfe56.chunk.js.map +0 -1
  102. package/dist/public/build/js/query-tracker.06cc4fdc.chunk.js +0 -2
  103. package/dist/public/build/js/query-tracker.06cc4fdc.chunk.js.map +0 -1
  104. package/dist/public/build/js/system.f759d3f0.chunk.js +0 -2
  105. package/dist/public/build/js/system.f759d3f0.chunk.js.map +0 -1
  106. package/dist/public/build/js/yt-df-dialog.9ddda260.chunk.js.map +0 -1
  107. /package/dist/public/build/js/{1879.23423388.chunk.js.LICENSE.txt → 1879.3975650a.chunk.js.LICENSE.txt} +0 -0
  108. /package/dist/public/build/js/{main.7981a440.js.LICENSE.txt → main.6375dbc6.js.LICENSE.txt} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"js/query-navigation.9964bfcf.chunk.js","mappings":"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","sources":["webpack://@ytsaurus/ui/./node_modules/@gravity-ui/uikit/build/esm/components/lab/Breadcrumbs/utils.js","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/uikit/build/esm/components/lab/Breadcrumbs/BreadcrumbItem.js","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/uikit/build/esm/components/lab/Breadcrumbs/BreadcrumbsSeparator.js","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/uikit/build/esm/components/lab/Breadcrumbs/i18n/index.js","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/uikit/build/esm/components/lab/Breadcrumbs/Breadcrumbs.js","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/uikit/build/esm/hooks/useResizeObserver/useResizeObserver.js","webpack://@ytsaurus/ui/./src/ui/components/Breadcrumbs/Breadcrumbs.tsx","webpack://@ytsaurus/ui/./src/ui/pages/navigation/content/Table/TableMeta/RowsCount/RowsCount.tsx","webpack://@ytsaurus/ui/./src/ui/pages/navigation/content/Table/TableMeta/AutomaticModeSwitch.tsx","webpack://@ytsaurus/ui/./src/ui/components/MetaTable/presets/presets.tsx","webpack://@ytsaurus/ui/./src/ui/pages/navigation/content/Table/TableMeta/commonFields.tsx","webpack://@ytsaurus/ui/./src/ui/components/SchemaDataType/SchemaDataType.tsx","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/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/store/actions/navigation/content/table/readDynamicTable.ts","webpack://@ytsaurus/ui/./src/ui/store/actions/navigation/content/table/readStaticTable.ts","webpack://@ytsaurus/ui/./src/ui/store/actions/navigation/modals/cell-preview/format.ts","webpack://@ytsaurus/ui/./src/ui/store/actions/navigation/modals/cell-preview/dynamic-table.ts","webpack://@ytsaurus/ui/./src/ui/store/actions/navigation/modals/cell-preview/static-table.ts","webpack://@ytsaurus/ui/./src/ui/store/actions/navigation/modals/cell-preview/index.ts","webpack://@ytsaurus/ui/./src/ui/utils/navigation/content/table/table-ts.ts","webpack://@ytsaurus/ui/./src/ui/utils/navigation/path-editor.js","webpack://@ytsaurus/ui/./src/ui/components/YqlValue/YqlValue.tsx","webpack://@ytsaurus/ui/./src/ui/components/ColumnCell/ColumnCell.tsx","webpack://@ytsaurus/ui/./src/ui/utils/navigation/prepareColumns.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/folder-tree.svg","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/icons/svgs/text-indent.svg","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/uikit/build/esm/components/Table/i18n/index.js","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/uikit/build/esm/components/Table/Table.js"],"sourcesContent":["import { block } from '../../utils/cn';\nexport function shouldClientNavigate(link, modifiers) {\n // Use getAttribute here instead of link.target. Firefox will default link.target to \"_parent\" when inside an iframe.\n const target = link.getAttribute('target');\n return (link.href &&\n (!target || target === '_self') &&\n link.origin === location.origin &&\n !link.hasAttribute('download') &&\n !modifiers.metaKey && // open in new tab (mac)\n !modifiers.ctrlKey && // open in new tab (windows)\n !modifiers.altKey && // download\n !modifiers.shiftKey);\n}\nexport const b = block('breadcrumbs2');\n","'use client';\nimport React from 'react';\nimport { filterDOMProps } from '../../utils/filterDOMProps';\nimport { b, shouldClientNavigate } from './utils';\nexport function BreadcrumbItem(props) {\n const Element = props.href ? 'a' : 'span';\n const domProps = filterDOMProps(props, { labelable: true });\n let title = props.title;\n if (!title && typeof props.children === 'string') {\n title = props.children;\n }\n const handleAction = (event) => {\n if (props.disabled || props.current) {\n event.preventDefault();\n return;\n }\n if (typeof props.onAction === 'function') {\n props.onAction();\n }\n const target = event.currentTarget;\n if (typeof props.navigate === 'function' && target instanceof HTMLAnchorElement) {\n if (props.href && !event.isDefaultPrevented() && shouldClientNavigate(target, event)) {\n event.preventDefault();\n props.navigate(props.href, props.routerOptions);\n }\n }\n };\n const isDisabled = props.disabled || props.current;\n let linkProps = {\n title,\n onClick: handleAction,\n 'aria-disabled': isDisabled ? true : undefined,\n };\n if (Element === 'a') {\n linkProps.href = props.href;\n linkProps.hrefLang = props.hrefLang;\n linkProps.target = props.target;\n linkProps.rel = props.target === '_blank' && !props.rel ? 'noopener noreferrer' : props.rel;\n linkProps.download = props.download;\n linkProps.ping = props.ping;\n linkProps.referrerPolicy = props.referrerPolicy;\n }\n else {\n linkProps.role = 'link';\n linkProps.tabIndex = isDisabled ? undefined : 0;\n linkProps.onKeyDown = (event) => {\n if (event.key === 'Enter') {\n handleAction(event);\n }\n };\n }\n if (props.current) {\n linkProps['aria-current'] = 'page';\n }\n if (props.itemType === 'menu') {\n linkProps = {};\n }\n return (React.createElement(Element, Object.assign({}, domProps, linkProps, { className: props.itemType === 'menu'\n ? b('menu')\n : b('link', {\n 'is-current': props.current,\n 'is-disabled': isDisabled && !props.current,\n }) }), props.children));\n}\nBreadcrumbItem.displayName = 'Breadcrumbs.Item';\n","import React from 'react';\nimport { b } from './utils';\nexport function BreadcrumbsSeparator({ separator }) {\n return (React.createElement(\"div\", { \"aria-hidden\": true, className: b('divider') }, separator !== null && separator !== void 0 ? separator : '/'));\n}\nBreadcrumbsSeparator.displayName = 'Breadcrumbs.Separator';\n","import { addComponentKeysets } from '../../../utils/addComponentKeysets';\nimport en from './en.json';\nimport ru from './ru.json';\nconst COMPONENT = 'lab/Breadcrumbs';\nexport default addComponentKeysets({ en, ru }, COMPONENT);\n","'use client';\nimport React from 'react';\nimport { useForkRef, useResizeObserver } from '../../../hooks';\nimport { Button } from '../../Button';\nimport { DropdownMenu } from '../../DropdownMenu';\nimport { filterDOMProps } from '../../utils/filterDOMProps';\nimport { BreadcrumbItem } from './BreadcrumbItem';\nimport { BreadcrumbsSeparator } from './BreadcrumbsSeparator';\nimport i18n from './i18n';\nimport { b, shouldClientNavigate } from './utils';\nimport './Breadcrumbs.css';\nfunction Item(_props) {\n return null;\n}\nexport const Breadcrumbs = React.forwardRef(function Breadcrumbs(props, ref) {\n const listRef = React.useRef(null);\n const containerRef = useForkRef(ref, listRef);\n const items = [];\n React.Children.forEach(props.children, (child, index) => {\n if (React.isValidElement(child)) {\n if (child.key === undefined || child.key === null) {\n child = React.cloneElement(child, { key: index });\n }\n items.push(child);\n }\n });\n const [visibleItemsCount, setVisibleItemsCount] = React.useState(items.length);\n const [calculated, setCalculated] = React.useState(false);\n const recalculate = (visibleItems) => {\n const list = listRef.current;\n if (!list) {\n return;\n }\n const listItems = Array.from(list.children);\n if (listItems.length === 0) {\n return;\n }\n const containerWidth = list.offsetWidth;\n let newVisibleItemsCount = 0;\n let calculatedWidth = 0;\n let maxItems = props.maxItems || Infinity;\n let rootWidth = 0;\n if (props.showRoot) {\n const item = listItems.shift();\n if (item) {\n rootWidth = item.scrollWidth;\n calculatedWidth += rootWidth;\n }\n newVisibleItemsCount++;\n }\n const hasMenu = items.length > visibleItems;\n if (hasMenu) {\n const item = listItems.shift();\n if (item) {\n calculatedWidth += item.offsetWidth;\n }\n maxItems--;\n }\n if (props.showRoot && calculatedWidth >= containerWidth) {\n calculatedWidth -= rootWidth;\n newVisibleItemsCount--;\n }\n const lastItem = listItems.pop();\n if (lastItem) {\n calculatedWidth += Math.min(lastItem.offsetWidth, 200);\n if (calculatedWidth < containerWidth) {\n newVisibleItemsCount++;\n }\n }\n for (let i = listItems.length - 1; i >= 0; i--) {\n const item = listItems[i];\n calculatedWidth += item.offsetWidth;\n if (calculatedWidth >= containerWidth) {\n break;\n }\n newVisibleItemsCount++;\n }\n newVisibleItemsCount = Math.max(Math.min(maxItems, newVisibleItemsCount), 1);\n if (newVisibleItemsCount === visibleItemsCount) {\n setCalculated(true);\n }\n else {\n setVisibleItemsCount(newVisibleItemsCount);\n }\n };\n const handleResize = React.useCallback(() => {\n setCalculated(false);\n setVisibleItemsCount(items.length);\n }, [items.length]);\n useResizeObserver({\n ref: listRef,\n onResize: handleResize,\n });\n const lastChildren = React.useRef(null);\n React.useLayoutEffect(() => {\n if (calculated && props.children !== lastChildren.current) {\n lastChildren.current = props.children;\n setCalculated(false);\n setVisibleItemsCount(items.length);\n }\n }, [calculated, items.length, props.children]);\n React.useLayoutEffect(() => {\n if (!calculated) {\n recalculate(visibleItemsCount);\n }\n });\n const { navigate } = props;\n let contents = items;\n if (items.length > visibleItemsCount) {\n contents = [];\n const breadcrumbs = [...items];\n let endItems = visibleItemsCount;\n if (props.showRoot && visibleItemsCount > 1) {\n const rootItem = breadcrumbs.shift();\n if (rootItem) {\n contents.push(rootItem);\n }\n endItems--;\n }\n const hiddenItems = breadcrumbs.slice(0, -endItems);\n const menuItem = (React.createElement(BreadcrumbItem, { itemType: \"menu\" },\n React.createElement(DropdownMenu, { items: hiddenItems.map((el, index) => {\n return Object.assign(Object.assign({}, el.props), { text: el.props.children, disabled: props.disabled, items: [], action: (event) => {\n var _a;\n if (typeof props.onAction === 'function') {\n props.onAction((_a = el.key) !== null && _a !== void 0 ? _a : index);\n }\n // TODO: move this logic to DropdownMenu\n const target = event.currentTarget;\n if (typeof navigate === 'function' &&\n target instanceof HTMLAnchorElement) {\n if (el.props.href && shouldClientNavigate(target, event)) {\n event.preventDefault();\n navigate(el.props.href, el.props.routerOptions);\n }\n }\n } });\n }), popupProps: {\n className: b('popup', {\n staircase: props.popupStyle === 'staircase',\n }),\n placement: props.popupPlacement,\n }, renderSwitcher: ({ onClick }) => (React.createElement(Button, { title: i18n('label_more'), className: b('more-button'), onClick: onClick, size: \"s\", view: \"flat\", disabled: props.disabled },\n React.createElement(Button.Icon, null, \"...\"))) })));\n contents.push(menuItem);\n contents.push(...breadcrumbs.slice(-endItems));\n }\n const lastIndex = contents.length - 1;\n const breadcrumbItems = contents.map((child, index) => {\n var _a;\n const isCurrent = index === lastIndex;\n const key = (_a = child.key) !== null && _a !== void 0 ? _a : index;\n const handleAction = () => {\n if (typeof props.onAction === 'function') {\n props.onAction(key);\n }\n };\n return (React.createElement(\"li\", { key: index, className: b('item', { calculating: !calculated }) },\n React.createElement(BreadcrumbItem, Object.assign({}, child.props, { key: key, current: isCurrent, disabled: props.disabled, onAction: handleAction, navigate: navigate }), child.props.children),\n isCurrent ? null : React.createElement(BreadcrumbsSeparator, { separator: props.separator })));\n });\n return (React.createElement(\"ol\", Object.assign({ ref: containerRef }, filterDOMProps(props, { labelable: true }), { \"data-qa\": props.qa, className: b(null, props.className), style: props.style }), breadcrumbItems));\n});\nBreadcrumbs.Item = Item;\nBreadcrumbs.displayName = 'Breadcrumbs';\nexport { Item as BreadcrumbsItem };\n","import React from 'react';\nexport function useResizeObserver({ ref, onResize }) {\n React.useEffect(() => {\n const element = ref === null || ref === void 0 ? void 0 : ref.current;\n if (!element) {\n return undefined;\n }\n if (typeof window.ResizeObserver === 'undefined') {\n window.addEventListener('resize', onResize, false);\n return () => {\n window.removeEventListener('resize', onResize, false);\n };\n }\n const observer = new ResizeObserver((entries) => {\n if (!entries.length) {\n return;\n }\n onResize();\n });\n observer.observe(element);\n return () => {\n observer.disconnect();\n };\n }, [ref, onResize]);\n}\n","import React, {FC, PropsWithChildren} from 'react';\nimport {\n unstable_BreadcrumbsProps as BreadcrumbsProps,\n unstable_Breadcrumbs as UBreadcrumbs,\n} from '@gravity-ui/uikit/unstable';\nimport './Breadcrumbs.scss';\nimport cn from 'bem-cn-lite';\n\nconst b = cn('yt-u-breadcrumbs');\n\nexport const Breadcrumbs: FC<PropsWithChildren<BreadcrumbsProps>> = ({children, ...props}) => {\n return (\n <UBreadcrumbs {...props} className={b(null, props.className)}>\n {children}\n </UBreadcrumbs>\n );\n};\n","import React from 'react';\nimport cn from 'bem-cn-lite';\n\nimport {Popover} from '@gravity-ui/uikit';\nimport Icon from '../../../../../../components/Icon/Icon';\nimport hammer from '../../../../../../common/hammer';\n\nimport './RowsCount.scss';\n\nconst block = cn('rows-count');\n\nexport function RowsCount(props: {count: number; isDynamic: boolean}) {\n const {count, isDynamic} = props;\n return (\n <React.Fragment>\n {isDynamic ? '≈ ' : ''}\n {hammer.format['Number'](count)}\n {!isDynamic ? null : (\n <Popover\n content={\n <span>\n This value corresponds to the number of rows stored in the on-disk\n chunks. The actual value may be different: it may be either larger due\n to new rows residing only in memory or smaller due to unsynced deleted\n rows and multiple versions stored on disks. It is not possible to\n calculate the real value without reading all the rows.\n </span>\n }\n >\n <span className={block('question')}>\n <Icon awesome={'question-circle'} />\n </span>\n </Popover>\n )}\n </React.Fragment>\n );\n}\n","import React from 'react';\n\nimport {Switch} from '@gravity-ui/uikit';\n\nimport StatusBulb from '../../../../../components/StatusBulb/StatusBulb';\nimport {FormApi, YTDFDialog, makeErrorFields} from '../../../../../components/Dialog';\nimport {YTError} from '../../../../../types';\n\nexport interface Props {\n value?: boolean;\n onEdit?: (currentValue?: Props['value']) => Promise<void>;\n}\n\ninterface FormValues {\n value?: string;\n}\n\nfunction AutomaticModeSwitchEditor({value, onEdit, onClose}: Props & {onClose: () => void}) {\n const [error, setError] = React.useState<YTError | undefined>(undefined);\n\n const handleAdd = React.useCallback(\n async (form: FormApi<FormValues>) => {\n const {values} = form.getState();\n try {\n await onEdit?.(values.value === 'enabled');\n } catch (e: any) {\n setError(e);\n throw e;\n }\n },\n [setError],\n );\n\n return (\n <YTDFDialog<FormValues>\n pristineSubmittable={true}\n headerProps={{\n title: 'Edit',\n }}\n onAdd={handleAdd}\n onClose={onClose}\n visible={true}\n initialValues={{\n value: value ? 'enabled' : 'disabled',\n }}\n fields={[\n {\n name: 'value',\n type: 'radio',\n caption: 'Automatic mode switch',\n extras: {\n options: [\n {value: 'enabled', label: 'Enabled'},\n {value: 'disabled', label: 'Disabled'},\n ],\n },\n },\n ...makeErrorFields([error]),\n ]}\n />\n );\n}\n\nfunction AutomaticModeSwitch({value, onEdit}: Props) {\n const [showEditor, setShowEditor] = React.useState(false);\n\n const handleShow = React.useCallback(() => {\n setShowEditor(true);\n }, []);\n\n const handleClose = React.useCallback(() => {\n setShowEditor(false);\n }, []);\n\n if (onEdit) {\n return (\n <React.Fragment>\n <Switch\n checked={value}\n onUpdate={handleShow}\n title={value ? 'Enabled' : 'Disabled'}\n />\n {showEditor && (\n <AutomaticModeSwitchEditor\n value={!value}\n onEdit={onEdit}\n onClose={handleClose}\n />\n )}\n </React.Fragment>\n );\n }\n\n return (\n <React.Fragment>\n <StatusBulb theme={value ? 'enabled' : 'unknown'} />{' '}\n </React.Fragment>\n );\n}\n\nexport default React.memo(AutomaticModeSwitch);\n","import React from 'react';\nimport hammer from '../../../common/hammer';\nimport ypath from '../../../common/thor/ypath';\nimport {RowsCount} from '../../../pages/navigation/content/Table/TableMeta/RowsCount/RowsCount';\nimport {tabletActiveBundleLink} from '../../../utils/components/tablet-cells';\nimport Label, {LabelOnOff} from '../../Label/Label';\nimport Link from '../../Link/Link';\nimport {Template} from '../templates/Template';\nimport compression from './compression';\nimport erasureReplication from './erasure-replication';\nimport size from './size';\nimport {CypressNodeTypes} from '../../../utils/cypress-attributes';\nimport {main} from './index';\nimport {getCommonFields} from '../../../pages/navigation/content/Table/TableMeta/commonFields';\nimport {Props as AutomaticModeSwitchProps} from '../../../pages/navigation/content/Table/TableMeta/AutomaticModeSwitch';\n\nexport function replicatedTableTracker(attributes: any) {\n const value = ypath.getValue(\n attributes,\n '/replicated_table_options/replicated_table_tracker_enabled',\n );\n return {\n key: 'replicated_table_tracker',\n value: <LabelOnOff value={value} />,\n visible: value !== undefined,\n };\n}\n\nexport function tableSize(attributes: any, isDynamic: boolean, mediumList: string[]) {\n const [rowCount, chunkCount, dataWeight] = ypath.getValues(attributes, [\n '/chunk_row_count',\n '/chunk_count',\n '/data_weight',\n ]);\n return [\n {\n key: 'rowCount',\n label: 'Rows',\n value: <RowsCount isDynamic={isDynamic} count={rowCount} />,\n visible: Boolean(rowCount),\n },\n {\n key: 'chunkCount',\n label: 'Chunks',\n value: hammer.format['Number'](chunkCount),\n visible: Boolean(dataWeight),\n },\n ...size(attributes, mediumList),\n {\n key: 'dataWeight',\n label: 'Data weight',\n value: <Template.FormattedValue value={dataWeight} format=\"Bytes\" />,\n visible: Boolean(chunkCount),\n },\n ];\n}\n\nexport function tableStorage(attributes: any, tableType: string) {\n const optimizeFor = ypath.getValue(attributes, '/optimize_for');\n return [\n {\n key: 'tableType',\n label: 'Table type',\n value: tableType,\n },\n {\n key: 'optimizeFor',\n label: 'Optimize for',\n value: <Label text={hammer.format['ReadableField'](optimizeFor)} theme=\"info\" />,\n visible: optimizeFor !== 'undefined',\n },\n ...compression(attributes),\n ...erasureReplication(attributes),\n replicatedTableTracker(attributes),\n ];\n}\n\nexport function dynTableInfo(attributes: any, cluster: string, tabletErrorCount: number) {\n const [tabletCellBundle, tabletState, inMemoryMode] = ypath.getValues(attributes, [\n '/tablet_cell_bundle',\n '/tablet_state',\n '/in_memory_mode',\n ]);\n\n const tabletUrl = tabletActiveBundleLink(cluster, tabletCellBundle);\n return [\n {\n key: 'tabletCellBundle',\n label: 'Tablet cell bundle',\n value: (\n <Link theme={'primary'} routed url={tabletUrl}>\n {tabletCellBundle}\n </Link>\n ),\n },\n {\n key: 'tabletState',\n label: 'Tablet state',\n value: (\n <Label\n theme={tabletState === 'mounted' ? 'info' : 'default'}\n text={hammer.format['ReadableField'](tabletState)}\n />\n ),\n },\n {\n key: 'inMemoryMode',\n label: 'In memory mode',\n value: (\n <Label\n theme={inMemoryMode && inMemoryMode !== 'none' ? 'info' : 'default'}\n text={hammer.format['ReadableField'](inMemoryMode || 'none')}\n />\n ),\n },\n {\n key: 'tabletErrorCount',\n label: 'Tablet error count',\n value: hammer.format['Number'](tabletErrorCount),\n },\n ];\n}\n\nexport const makeMetaItems = ({\n cluster,\n attributes,\n tableType,\n isDynamic,\n mediumList = [],\n tabletErrorCount = 0,\n onEditEnableReplicatedTableTracker,\n}: {\n cluster: string;\n attributes: any;\n mediumList?: string[];\n isDynamic: boolean;\n tableType: string;\n tabletErrorCount?: number;\n onEditEnableReplicatedTableTracker?: AutomaticModeSwitchProps['onEdit'];\n}) => {\n const cf = getCommonFields({\n cluster,\n attributes,\n isDynamic,\n tableType: attributes.type,\n tabletErrorCount,\n onEditEnableReplicatedTableTracker,\n });\n\n switch (attributes.type) {\n case CypressNodeTypes.REPLICATED_TABLE:\n case CypressNodeTypes.REPLICATION_LOG_TABLE:\n return [\n main(attributes),\n tableSize(attributes, isDynamic, mediumList),\n tableStorage(attributes, attributes.type),\n [\n cf.sorted,\n ...dynTableInfo(attributes, cluster, tabletErrorCount),\n cf.automaticModeSwitch,\n ],\n ];\n\n case CypressNodeTypes.CHAOS_REPLICATED_TABLE:\n return [\n main(attributes),\n tableSize(attributes, isDynamic, mediumList),\n [\n cf.tableType,\n replicatedTableTracker(attributes),\n cf.sorted,\n cf.chaosCellBundle,\n cf.automaticModeSwitch,\n ],\n ];\n\n default:\n return [\n main(attributes),\n tableSize(attributes, isDynamic, mediumList),\n tableStorage(attributes, tableType),\n [\n cf.sorted,\n ...(isDynamic ? dynTableInfo(attributes, cluster, tabletErrorCount) : []),\n ],\n ];\n }\n};\n","import React from 'react';\nimport ypath from '../../../../../common/thor/ypath';\nimport Link from '../../../../../components/Link/Link';\nimport AutomaticModeSwitch, {Props as AutomaticModeSwitchProps} from './AutomaticModeSwitch';\nimport reduce_ from 'lodash/reduce';\nimport {MetaTableItem} from '../../../../../components/MetaTable/MetaTable';\nimport {tabletActiveChaosBundleLink} from '../../../../../utils/components/tablet-cells';\n\nexport const getCommonFields = ({\n cluster,\n attributes,\n tableType,\n onEditEnableReplicatedTableTracker,\n}: {\n cluster: string;\n attributes: any;\n isDynamic: boolean;\n tableType: string;\n tabletErrorCount: number;\n onEditEnableReplicatedTableTracker: AutomaticModeSwitchProps['onEdit'];\n}) => {\n const [sorted, chaosCellBundle, enable_replicated_table_tracker] = ypath.getValues(attributes, [\n '/sorted',\n '/chaos_cell_bundle',\n '/replicated_table_options/enable_replicated_table_tracker',\n ]);\n\n const chaosUrl = tabletActiveChaosBundleLink(cluster, chaosCellBundle);\n\n const fields = [\n {\n key: 'tableType',\n label: 'Table type',\n value: tableType,\n },\n {\n key: 'sorted',\n value: sorted,\n visible: sorted !== undefined,\n },\n {\n key: 'chaosCellBundle',\n label: 'Chaos cell bundle',\n value: (\n <Link theme={'primary'} routed url={chaosUrl}>\n {chaosCellBundle}\n </Link>\n ),\n },\n {\n key: 'automaticModeSwitch',\n label: 'Table automatic mode switch',\n value: (\n <AutomaticModeSwitch\n value={enable_replicated_table_tracker}\n onEdit={onEditEnableReplicatedTableTracker}\n />\n ),\n },\n ] as const;\n\n type Fields = typeof fields;\n\n const commonFields = reduce_(\n fields,\n (acc, item) => {\n acc[item.key] = item;\n return acc;\n },\n {} as Record<Fields[number]['key'], MetaTableItem>,\n );\n\n return commonFields;\n};\n","import React from 'react';\n\nimport {getPrimitiveTypesMap} from '../../store/selectors/global/supported-features';\nimport {useSelector} from 'react-redux';\nimport {getType} from './dataTypes';\nimport DataType from './DataType/DataType';\nimport {parseV3Type} from './dateTypesV3';\n\ninterface Props {\n type_v3: any;\n}\n\nfunction SchemaDataType({type_v3}: Props) {\n const primitiveTypes = useSelector(getPrimitiveTypesMap);\n\n const dataTypeProps = React.useMemo(() => {\n try {\n return getType(parseV3Type(type_v3, primitiveTypes));\n } catch {\n return undefined;\n }\n }, [type_v3, primitiveTypes]);\n\n return dataTypeProps ? (\n <DataType {...dataTypeProps} />\n ) : (\n <>There is no type description in the schema</>\n );\n}\n\nexport default React.memo(SchemaDataType);\n","import React, {FC, MouseEvent} from 'react';\n\nexport const BreadcrumbsItem: FC<{\n item: {text: string; href: string};\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 (\n <div data-qa={item.text} onClick={handleItemClick}>\n {item.text}\n </div>\n );\n};\n","import React, {FC, useCallback, useMemo} from 'react';\nimport {Button, Icon} from '@gravity-ui/uikit';\nimport FolderTreeIcon from '@gravity-ui/icons/svgs/folder-tree.svg';\nimport {BreadcrumbsItem as BreadcrumbsItemComponent} from './BreadcrumbsItem';\nimport {Breadcrumbs, BreadcrumbsItem} from '../../../../components/Breadcrumbs';\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 if (!cluster) return [];\n\n let href = '/';\n const result = [{text: cluster, href: '/'}];\n path.split('/').forEach((text) => {\n if (text) {\n href += '/' + text;\n result.push({\n text,\n href,\n });\n }\n });\n\n return result.map((item, index) => {\n const isCurrent = index === result.length - 1;\n return (\n <BreadcrumbsItem key={item.text}>\n <BreadcrumbsItemComponent\n item={item}\n isCurrent={isCurrent}\n onClick={handleBreadcrumbsClick}\n />\n </BreadcrumbsItem>\n );\n });\n }, [cluster, path, handleBreadcrumbsClick]);\n\n return (\n <>\n <Button size=\"s\" view=\"flat\" onClick={onClusterChangeClick}>\n <Icon data={FolderTreeIcon} size={16} />\n </Button>\n <Breadcrumbs showRoot>{items}</Breadcrumbs>\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 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 queryEngine: QueryEngine;\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 queryEngine,\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 ...(dynamic || queryEngine !== QueryEngine.YT_QL\n ? [\n {\n text: 'SELECT',\n action: (\n e:\n | React.MouseEvent<HTMLElement>\n | KeyboardEvent,\n ) => {\n e.stopPropagation();\n onEditorInsert(path, 'select');\n },\n },\n ]\n : []),\n ],\n },\n {\n text: 'Create new query',\n items: [\n ...(dynamic\n ? [\n {\n text: 'SELECT (YT QL)',\n action: (\n e:\n | React.MouseEvent<HTMLElement>\n | KeyboardEvent,\n ) => {\n e.stopPropagation();\n onNewQuery(path, QueryEngine.YT_QL);\n },\n },\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 queryEngine={engine}\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 {useDispatch} from 'react-redux';\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';\nimport {showCellPreviewModal} from '../../../../store/actions/navigation/modals/cell-preview';\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 dispatch = useDispatch();\n const onShowPreview = React.useCallback(\n (columnName: string, rowIndex: number) => {\n dispatch(showCellPreviewModal(columnName, rowIndex));\n },\n [dispatch],\n );\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 onShowPreview,\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 {YTApiId, ytApiV3Id} from '../../../../../rum/rum-wrap-api';\nimport {\n getParsedError,\n parseErrorFromResponse,\n prepareRows,\n} from '../../../../../utils/navigation/content/table/table';\nimport {UnipikaValue} from '../../../../../components/Yson/StructuredYson/StructuredYsonTypes';\nimport {TypeArray} from '../../../../../components/SchemaDataType/dataTypes';\n\ntype LoadDynamicTableRequest = (props: {\n setup: unknown;\n parameters: unknown;\n cancellation?: unknown;\n reverseRows?: boolean;\n}) => Promise<{\n columns: string[];\n rows: UnipikaValue[];\n yqlTypes: TypeArray[] | null;\n}>;\n\nexport const readDynamicTable: LoadDynamicTableRequest = async ({\n setup,\n parameters,\n cancellation,\n reverseRows,\n}) => {\n const {data} = await ytApiV3Id.selectRows(YTApiId.dynTableSelectRowsPreload, {\n setup,\n parameters,\n cancellation,\n });\n\n const error = parseErrorFromResponse(data);\n if (error) return Promise.reject(getParsedError(error));\n\n const {columns, rows, yqlTypes} = prepareRows(data, reverseRows);\n return {columns, rows, yqlTypes};\n};\n","import {YTApiId, ytApiV3Id} from '../../../../../rum/rum-wrap-api';\nimport {\n getParsedError,\n parseErrorFromResponse,\n prepareHeaders,\n prepareRows,\n} from '../../../../../utils/navigation/content/table/table';\nimport {UnipikaValue} from '../../../../../components/Yson/StructuredYson/StructuredYsonTypes';\nimport {TypeArray} from '../../../../../components/SchemaDataType/dataTypes';\n\ntype LoadStaticTableRows = (props: {\n setup: unknown;\n parameters: unknown;\n cancellation?: unknown;\n reverseRows?: boolean;\n}) => Promise<{\n columns: string[];\n rows: UnipikaValue[];\n omittedColumns: string[];\n yqlTypes: TypeArray[] | null;\n}>;\n\nexport const readStaticTable: LoadStaticTableRows = async ({\n setup,\n parameters,\n cancellation,\n reverseRows,\n}) => {\n const {data, headers} = await ytApiV3Id.readTable(YTApiId.tableRead, {\n setup,\n parameters,\n cancellation,\n });\n\n const error = parseErrorFromResponse(data);\n if (error) return Promise.reject(getParsedError(error));\n\n const {columns, rows, yqlTypes} = prepareRows(data, reverseRows);\n const omittedColumns = prepareHeaders(headers);\n\n return {columns, omittedColumns, rows, yqlTypes};\n};\n","import {isMediaTag} from '../../../../../utils/yql-types';\n\nconst getDefaultFormat = () => {\n return '--format json';\n};\n\nconst getImageResultFormat = (columnName: string, tag: string) => {\n const [_, extension] = tag.split('/');\n return `--format \"<columns=[${columnName}];enable_escaping=%false>schemaful_dsv\" >${columnName}.${extension}`;\n};\n\nexport const getCliCommandResultFormat = ({\n tag,\n columnName,\n}: {\n tag?: string;\n columnName: string;\n}) => {\n if (tag && isMediaTag(tag)) {\n return getImageResultFormat(columnName, tag as string);\n }\n\n return getDefaultFormat();\n};\n","import type {CellPreviewActionType} from '../../../modals/cell-preview';\nimport {\n getCurrentRowKey,\n getKeyColumns,\n getYqlTypes,\n} from '../../../../selectors/navigation/content/table-ts';\nimport Query from '../../../../../utils/navigation/content/table/query';\nimport {YTApiId, ytApiV3Id} from '../../../../../rum/rum-wrap-api';\nimport type {CancelTokenSource} from 'axios';\nimport {getCliCommandResultFormat} from './format';\n\nexport const getDynamicTableCellPath = ({\n index,\n path,\n columnName,\n}: {\n path: string;\n columnName: string;\n index: number;\n}): CellPreviewActionType => {\n return (_, getState) => {\n const yqlTypes = getYqlTypes(getState());\n const key = getCurrentRowKey(getState(), index);\n const keyColumns = getKeyColumns(getState());\n\n const offset = Query.prepareKey(key, yqlTypes);\n\n return Query.prepareQuery({\n path,\n offset,\n offsetColumns: keyColumns,\n columns: [columnName],\n limit: 1,\n });\n };\n};\n\nexport const getDynamicTableCliCommand = ({\n cellPath,\n tag,\n columnName,\n}: {\n cellPath: string;\n columnName: string;\n tag?: string;\n}): string => {\n return `yt select-rows 'select ${cellPath}' ${getCliCommandResultFormat({columnName, tag})}`;\n};\n\nexport const loadDynamicTableCellPreview = ({\n cellPath,\n output_format,\n cancellation,\n}: {\n cellPath: string;\n output_format: any;\n cancellation: (token: CancelTokenSource) => void;\n}) => {\n return async () => {\n const setup = {};\n\n return await ytApiV3Id.selectRows(YTApiId.dynTableSelectRowsPreload, {\n setup,\n parameters: {\n output_format,\n query: cellPath,\n },\n cancellation,\n });\n };\n};\n","import {type CellPreviewActionType} from '../../../modals/cell-preview';\nimport {getOffsetValue} from '../../../../selectors/navigation/content/table';\nimport type {CancelTokenSource} from 'axios';\nimport {ytApiV4} from '../../../../../rum/rum-wrap-api';\nimport {getCliCommandResultFormat} from './format';\n\nexport const getStaticTableCellPath = ({\n path,\n columnName,\n index,\n}: {\n path: string;\n columnName: string;\n index: number;\n}): CellPreviewActionType => {\n return (_, getState) => {\n const offset = getOffsetValue(getState());\n\n const rowIndex = typeof offset === 'number' ? index + offset : index;\n\n return `${path}{${columnName}}[#${rowIndex}:#${rowIndex + 1}]`;\n };\n};\n\nexport const getStaticTableCliCommand = ({\n cellPath,\n columnName,\n tag,\n}: {\n cellPath: string;\n columnName: string;\n tag?: string;\n}): string => {\n return `yt read-table '${cellPath}' ${getCliCommandResultFormat({columnName, tag})}`;\n};\n\nexport const loadStaticTableCellPreview = ({\n cellPath,\n output_format,\n cancellation,\n}: {\n cellPath: string;\n output_format: any;\n cancellation: (token: CancelTokenSource) => void;\n}): CellPreviewActionType => {\n return async () => {\n return await ytApiV4.readTable({\n parameters: {\n path: cellPath,\n output_format,\n },\n cancellation,\n });\n };\n};\n","import {getPath} from '../../../../selectors/navigation';\nimport {batch} from 'react-redux';\nimport {getDefaultRequestOutputFormat} from '../../../../../utils/navigation/content/table/table';\nimport {CELL_PREVIEW, PREVIEW_LIMIT} from '../../../../../constants/modals/cell-preview';\nimport {isCancelled} from '../../../../../utils/cancel-helper';\nimport {\n CellPreviewActionType,\n cellPreviewCancelHelper,\n openCellPreview,\n} from '../../../modals/cell-preview';\nimport unipika from '../../../../../common/thor/unipika';\nimport {getIsDynamic} from '../../../../selectors/navigation/content/table-ts';\nimport {\n getDynamicTableCellPath,\n getDynamicTableCliCommand,\n loadDynamicTableCellPreview,\n} from './dynamic-table';\nimport {\n getStaticTableCellPath,\n getStaticTableCliCommand,\n loadStaticTableCellPreview,\n} from './static-table';\n\nconst getCellPath = ({\n columnName,\n index,\n}: {\n columnName: string;\n index: number;\n}): CellPreviewActionType => {\n return (dispatch, getState) => {\n const path: string = getPath(getState());\n const isDynamic = getIsDynamic(getState());\n\n const action = isDynamic ? getDynamicTableCellPath : getStaticTableCellPath;\n\n return dispatch(action({path, columnName, index}));\n };\n};\n\nconst getCliCommand = ({\n cellPath,\n columnName,\n tag,\n}: {\n cellPath: string;\n columnName: string;\n tag?: string;\n}): CellPreviewActionType => {\n return (_dispatch, getState) => {\n const isDynamic = getIsDynamic(getState());\n\n const fn = isDynamic ? getDynamicTableCliCommand : getStaticTableCliCommand;\n\n return fn({cellPath, columnName, tag});\n };\n};\n\nconst loadCellPreview = ({cellPath}: {cellPath: string}): CellPreviewActionType => {\n return (dispatch, getState) => {\n const isDynamic = getIsDynamic(getState());\n\n const output_format: any = getDefaultRequestOutputFormat({\n stringLimit: PREVIEW_LIMIT,\n });\n\n output_format.$attributes.value_format = 'yql';\n\n const action = isDynamic ? loadDynamicTableCellPreview : loadStaticTableCellPreview;\n\n return dispatch(\n action({\n cellPath,\n output_format,\n cancellation: cellPreviewCancelHelper.removeAllAndSave,\n }),\n );\n };\n};\n\nexport const showCellPreviewModal = (\n columnName: string,\n index: number,\n tag?: string,\n): CellPreviewActionType => {\n return async (dispatch) => {\n const cellPath = dispatch(getCellPath({columnName, index}));\n\n const ytCliDownloadCommand: string = dispatch(getCliCommand({cellPath, columnName, tag}));\n\n batch(() => {\n dispatch({type: CELL_PREVIEW.REQUEST, data: {ytCliDownloadCommand}});\n dispatch(openCellPreview());\n });\n\n try {\n const json = await dispatch(loadCellPreview({cellPath}));\n\n const parsed = JSON.parse(json);\n\n const column = parsed.rows[0][columnName];\n\n const value = column[0];\n const typeIndex = column[1];\n\n const flags: {incomplete: boolean} = {incomplete: false};\n\n const {$type, $value, $tag} = unipika.converters.yql(\n [value, parsed.yql_type_registry[typeIndex]],\n {\n maxStringSize: undefined,\n maxListSize: undefined,\n treatValAsData: true,\n },\n flags,\n );\n\n const isIncomplete = flags.incomplete;\n const noticeText = isIncomplete\n ? 'Unable to load content more than 16MiB. Please use the command bellow to load it locally.'\n : 'You could use the command bellow to load it locally.';\n\n dispatch({\n type: CELL_PREVIEW.SUCCESS,\n data: {data: {$type, $value: $tag ? $value.$value : $value, $tag}, noticeText},\n });\n } catch (error: any) {\n if (!isCancelled(error)) {\n dispatch({type: CELL_PREVIEW.FAILURE, data: {error}});\n }\n }\n };\n};\n","import concat_ from 'lodash/concat';\nimport reduce_ from 'lodash/reduce';\n\nexport function injectColumnsFromSchema(\n columns: Array<string>,\n omittedColumns: Array<string>,\n schemaColumns: Array<string>,\n) {\n const toSkip = reduce_(\n concat_(columns, omittedColumns),\n (acc, column) => {\n acc[column] = true;\n return acc;\n },\n {} as {[column: string]: true},\n );\n const toAdd = reduce_(\n schemaColumns,\n (acc, col) => {\n if (!toSkip[col]) {\n acc.push(col);\n }\n return acc;\n },\n [] as Array<string>,\n );\n return concat_(columns, toAdd);\n}\n","import filter_ from 'lodash/filter';\nimport map_ from 'lodash/map';\nimport sortBy_ from 'lodash/sortBy';\n\nimport unipika from '../../common/thor/unipika';\nimport ypath from '../../common/thor/ypath';\n\nimport CancelHelper from '../cancel-helper';\nimport {YTApiId, ytApiV3Id} from '../../rum/rum-wrap-api';\n\nexport const pathEditorRequests = new CancelHelper();\n\nfunction prepareSuggestions(initialPath, parentPath, children) {\n let suggestions = map_(children, (child) => {\n const prepared = {};\n\n prepared.parentPath = parentPath;\n prepared.childPath = '/' + unipika.decode(ypath.getValue(child));\n prepared.path = prepared.parentPath + prepared.childPath;\n prepared.type = ypath.getValue(child, '/@type');\n prepared.dynamic = ypath.getValue(child, '/@dynamic');\n prepared.targetPathBroken = ypath.getValue(child, '/@broken');\n\n return prepared;\n });\n\n suggestions = sortBy_(suggestions, 'childPath');\n\n return suggestions;\n}\n\nexport function preparePath(currentPath) {\n return ypath.YPath.create(currentPath, 'absolute').toSubpath(-2).stringify();\n}\n\nexport function loadSuggestions(path, customFilter) {\n const parentPath = preparePath(path);\n\n return ytApiV3Id\n .list(YTApiId.pathEditorLoadSuggestions, {\n parameters: {path: parentPath, attributes: ['type', 'dynamic']},\n cancellation: pathEditorRequests.saveCancelToken,\n })\n .then(ypath.getValue)\n .then((nodes) => prepareSuggestions(path, parentPath, nodes))\n .then((suggestions) => (customFilter ? customFilter(suggestions) : suggestions));\n}\n\nexport function filterByCurrentPath(currentPath, suggestions) {\n const path = currentPath.toLowerCase();\n\n return filter_(suggestions, (child) => {\n const hasPartOfPath = child.path.startsWith(path);\n const isShowCurrentChild = child.path !== path || child.type === 'map_node';\n\n return hasPartOfPath && isShowCurrentChild;\n });\n}\n\nexport function getNextSelectedIndex(suggestion, selectedIndex) {\n if (selectedIndex === -1 || selectedIndex === suggestion.length - 1) {\n return 0;\n }\n\n return selectedIndex + 1;\n}\n\nexport function getPrevSelectedIndex(suggestions, selectedIndex) {\n if (selectedIndex === -1 || selectedIndex === 0) {\n return suggestions.length - 1;\n }\n\n return selectedIndex - 1;\n}\n\nexport function getCompletedPath(suggestion) {\n return suggestion.type === 'map_node' ? suggestion.path + '/' : suggestion.path;\n}\n\nexport function getIconNameForType(type, targetPathBroken) {\n const icons = {\n document: 'file-alt',\n string_node: 'file-alt',\n int64_node: 'file-alt',\n uint64_node: 'file-alt',\n double_node: 'file-alt',\n boolean_node: 'file-alt',\n map_node: 'folder',\n scheduler_pool_tree_map: 'folder-tree',\n scheduler_pool: 'tasks',\n tablet_cell: 'th',\n journal: 'book',\n table: 'th',\n table_dynamic: 'dyn-th',\n replicated_table: 'th',\n chaos_replicated_table: 'chaos-replicated-table',\n replication_log_table: 'replication-log-table',\n file: 'file',\n topmost_transaction_map: 'folder',\n transaction_map: 'folder',\n transaction: 'code-branch',\n nested_transaction: 'code-branch',\n link: ypath.getBoolean(targetPathBroken) ? 'unlink' : 'link',\n rootstock: 'link',\n portal_entrance: 'link',\n cell_node: 'circle',\n cell_node_map: 'far circle',\n sys_node: 'cog',\n access_control_object_namespace_map: 'acl-namespace-map',\n access_control_object_namespace: 'acl-namespace',\n access_control_object: 'acl-object',\n };\n\n const icon = type ? icons[type] || 'not-suported' : 'eye-slash';\n\n return icon;\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport block from 'bem-cn-lite';\nimport unipika from '../../common/thor/unipika';\n\nimport ErrorBoundary from '../../components/ErrorBoundary/ErrorBoundary';\nimport Yson from '../../components/Yson/Yson';\nimport {UnipikaSettings} from '../../components/Yson/StructuredYson/StructuredYsonTypes';\n\n/**\n * See unipika for more details\n */\nexport type UnipikaValueType = Array<string | UnipikaValueType>;\n\nexport type YqlValueProps = {\n value?: unknown;\n type: UnipikaValueType;\n settings: UnipikaSettings;\n inline?: boolean;\n};\n\nexport default class YqlValue extends React.Component<YqlValueProps> {\n static propTypes = {\n settings: PropTypes.object,\n value: PropTypes.any,\n type: PropTypes.array,\n inline: PropTypes.bool,\n };\n\n static defaultProps = {\n inline: false,\n folding: false,\n settings: Yson.defaultUnipikaSettings,\n };\n\n static getFormattedValue(value: unknown, type: UnipikaValueType, settings: UnipikaSettings) {\n const yqlValue = [value, type];\n\n return settings.format === 'raw-json'\n ? unipika.formatRaw(yqlValue, settings)\n : unipika.formatFromYQL(yqlValue, settings);\n }\n\n render() {\n const {value, type, inline, settings} = this.props;\n\n const formattedValue = YqlValue.getFormattedValue(value, type, settings);\n\n let title;\n\n if (inline) {\n const titleSettings = Object.assign({}, settings, {\n asHTML: false,\n });\n\n title =\n settings.format === 'raw-json'\n ? unipika.formatRaw(value, titleSettings)\n : unipika.formatFromYQL(value, titleSettings);\n }\n\n const classes = block('unipika-wrapper')({\n inline: inline && 'yes',\n });\n\n return (\n <ErrorBoundary>\n {settings.asHTML ? (\n <div className={classes} title={title} dir=\"auto\">\n <pre\n className=\"unipika\"\n dangerouslySetInnerHTML={{__html: formattedValue}}\n />\n </div>\n ) : (\n <div\n className={classes}\n title={title}\n dir=\"auto\"\n dangerouslySetInnerHTML={{__html: formattedValue}}\n />\n )}\n </ErrorBoundary>\n );\n }\n}\n","import React, {useState} from 'react';\nimport cn from 'bem-cn-lite';\nimport copyToClipboard from 'copy-to-clipboard';\n\nimport {Button, Flex, Icon as UIKitIcon} from '@gravity-ui/uikit';\nimport {Eye} from '@gravity-ui/icons';\n\nimport unipika from '../../common/thor/unipika';\nimport ClipboardButton from '../../components/ClipboardButton/ClipboardButton';\nimport YqlValue from '../../components/YqlValue/YqlValue';\nimport Yson from '../../components/Yson/Yson';\nimport Label from '../../components/Label/Label';\nimport {TypeArray} from '../../components/SchemaDataType/dataTypes';\nimport {Tooltip} from '../../components/Tooltip/Tooltip';\nimport {UnipikaSettings} from '../../components/Yson/StructuredYson/StructuredYsonTypes';\n\nimport './ColumnCell.scss';\n\nconst block = cn('yt-column-cell');\n\nfunction unquote(v: string) {\n const match = /^\"(.*)\"$/.exec(v);\n return match ? match[1] : v;\n}\n\ntype CellValueType =\n | null\n | (CellValueData & {\n $incomplete?: boolean;\n [k: number]: {inc?: boolean};\n });\n\ntype CellValueData = {$type: string; $value: string} | {$type?: undefined; $value: unknown};\n\ntype ColumnCellProps = {\n className?: string;\n\n value?: CellValueType | null;\n yqlTypes: Array<TypeArray> | null;\n ysonSettings: UnipikaSettings;\n allowRawStrings?: boolean | null;\n rowIndex: number;\n columnName: string;\n onShowPreview: (columnName: string, rowIndex: number, tag?: string) => void;\n};\n\nexport function ColumnCell({\n value = null,\n yqlTypes,\n ysonSettings,\n allowRawStrings,\n className,\n rowIndex,\n columnName,\n onShowPreview,\n}: ColumnCellProps) {\n const [hovered, setHovered] = useState(false);\n const handleMouseEnter = () => setHovered(true);\n const handleMouseLeave = () => setHovered(false);\n\n const formatType = yqlTypes && value ? yqlTypes[Number(value[1])] : undefined;\n\n const escapedValue =\n formatType && value\n ? YqlValue.getFormattedValue(value[0], formatType, {\n ...ysonSettings,\n asHTML: false,\n })\n : unipika.prettyprint(value, {...ysonSettings, asHTML: false});\n const formattedValue =\n formatType && value ? (\n <YqlValue value={value[0]} type={formatType} settings={ysonSettings} />\n ) : (\n <Yson value={value} settings={ysonSettings} />\n );\n\n const {tag, isIncompleteTagged, isIncompleteValue} = React.useMemo(() => {\n let isIncompleteTagged = false;\n let isIncompleteValue = false;\n let tag: string | undefined;\n\n if (value && formatType) {\n const flags: {incomplete: boolean} = {incomplete: false};\n\n const {$tag} = unipika.converters.yql([value[0], formatType], ysonSettings, flags);\n\n isIncompleteValue = flags.incomplete;\n isIncompleteTagged = flags.incomplete && $tag;\n tag = $tag;\n }\n\n return {tag, isIncompleteTagged, isIncompleteValue};\n }, [value, formatType, ysonSettings]);\n\n const allowRawCopy = value?.$type === 'string';\n const useRawString = allowRawCopy && allowRawStrings;\n let copyTooltip = 'Hold SHIFT-key to copy raw value';\n if (useRawString) {\n copyTooltip = 'Hold SHIFT-key to copy escaped value';\n }\n\n const visibleValue = !useRawString ? (\n formattedValue\n ) : (\n <div className={'unipika-wrapper'}>\n <pre className={'unipika'}>\n <span className={'string'}>{value?.$value}</span>\n </pre>\n </div>\n );\n\n return (\n <div\n className={block(null, className) /*dataTableBlock('value')*/}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n >\n {isIncompleteTagged ? (\n <Label theme=\"warning\" text={`Incomplete '${tag}' type`} />\n ) : (\n visibleValue\n )}\n {(hovered || isIncompleteTagged) && (\n <div className={block('control-button-wrapper')}>\n <Flex alignItems=\"center\">\n {value && !isIncompleteValue && (\n <Tooltip\n content={\n !allowRawCopy ? undefined : (\n <span className={block('copy-value-tooltip')}>\n {copyTooltip}\n </span>\n )\n }\n >\n <ClipboardButton\n view=\"flat-secondary\"\n size=\"m\"\n text={useRawString ? value.$value : unquote(escapedValue)}\n onCopy={(event: React.MouseEvent) => {\n if (event?.shiftKey && allowRawCopy) {\n copyToClipboard(\n useRawString ? unquote(escapedValue) : value.$value,\n );\n }\n }}\n />\n </Tooltip>\n )}\n {isIncompleteValue && (\n <Button\n view=\"flat-secondary\"\n size=\"m\"\n qa=\"truncated-preview-button\"\n onClick={() => onShowPreview(columnName, rowIndex, tag)}\n >\n <UIKitIcon data={Eye} size=\"12\" />\n </Button>\n )}\n </Flex>\n </div>\n )}\n </div>\n );\n}\n","import React from 'react';\nimport {Tooltip} from '../../components/Tooltip/Tooltip';\nimport SchemaDataType from '../../components/SchemaDataType/SchemaDataType';\nimport Yson from '../../components/Yson/Yson';\nimport unipika from '../../common/thor/unipika';\nimport Icon from '../../components/Icon/Icon';\nimport {ColumnCell} from '../../components/ColumnCell/ColumnCell';\n\nimport map_ from 'lodash/map';\n\nimport {TypeArray} from '../../components/SchemaDataType/dataTypes';\nimport type {YsonSettings} from '../../store/selectors/thor/unipika';\n\nexport function prepareColumns({\n columns,\n keyColumns,\n yqlTypes,\n ysonSettings,\n useRawStrings,\n schemaByName,\n onShowPreview,\n}: {\n columns: {name: string; sortOrder?: string}[];\n keyColumns: string[];\n yqlTypes: TypeArray[] | null;\n ysonSettings: YsonSettings;\n useRawStrings: boolean | null | undefined;\n schemaByName: Record<string, any>;\n onShowPreview: (columnName: string, rowIndex: number, tag?: string) => void;\n}) {\n return map_(columns, (column) => {\n const render = ({value, index}: {value?: any; index: number; row: any}) => (\n <ColumnCell\n allowRawStrings={useRawStrings}\n value={value}\n yqlTypes={yqlTypes || []}\n ysonSettings={ysonSettings}\n rowIndex={index}\n columnName={column.name}\n onShowPreview={onShowPreview}\n />\n );\n const {sortOrder} = column;\n const isKeyColumn = keyColumns.indexOf(column.name) > -1;\n const {type_v3} = schemaByName[column.name] || {};\n const header = (\n <Tooltip content={Boolean(type_v3) && <SchemaDataType type_v3={type_v3} />}>\n <Yson value={unipika.unescapeKeyValue(column.name)} settings={ysonSettings} inline>\n {isKeyColumn && (\n <Icon\n awesome={\n sortOrder === 'descending'\n ? 'sort-amount-up'\n : 'sort-amount-down-alt'\n }\n />\n )}\n </Yson>\n </Tooltip>\n );\n return Object.assign({}, column, {render, header});\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 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;","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;","import { addComponentKeysets } from '../../utils/addComponentKeysets';\nimport en from './en.json';\nimport ru from './ru.json';\nconst COMPONENT = 'Table';\nexport default addComponentKeysets({ en, ru }, COMPONENT);\n","'use client';\nimport React from 'react';\nimport _get from 'lodash/get';\nimport _has from 'lodash/has';\nimport _isNumber from 'lodash/isNumber';\nimport { block } from '../utils/cn';\nimport { warnOnce } from '../utils/warn';\nimport i18n from './i18n';\nimport './Table.css';\nconst DASH = '\\u2014';\nfunction warnAboutPhysicalValues(propName) {\n warnOnce(`[Table] Physical values (left, right) of \"${propName}\" property are deprecated. Use logical values (start, end) instead.`);\n}\nfunction normalizeSides(side, propName) {\n if (side === 'left') {\n warnAboutPhysicalValues(propName);\n return 'start';\n }\n if (side === 'right') {\n warnAboutPhysicalValues(propName);\n return 'end';\n }\n return side;\n}\nconst b = block('table');\nexport class Table extends React.Component {\n constructor() {\n super(...arguments);\n this.state = {\n activeScrollElement: 'scrollContainer',\n columnsStyles: Array.from(this.props.columns, () => ({})),\n columnHeaderRefs: Array.from(this.props.columns, () => React.createRef()),\n };\n this.tableRef = React.createRef();\n this.scrollContainerRef = React.createRef();\n this.horizontalScrollBarRef = React.createRef();\n this.horizontalScrollBarInnerRef = React.createRef();\n this.renderRow = (item, rowIndex) => {\n const { columns, isRowDisabled, onRowClick, onRowMouseEnter, onRowMouseLeave, onRowMouseDown, getRowClassNames, verticalAlign, edgePadding, wordWrap, getRowDescriptor, } = this.props;\n const { columnsStyles } = this.state;\n const descriptor = getRowDescriptor === null || getRowDescriptor === void 0 ? void 0 : getRowDescriptor(item, rowIndex);\n const disabled = (descriptor === null || descriptor === void 0 ? void 0 : descriptor.disabled) || (isRowDisabled === null || isRowDisabled === void 0 ? void 0 : isRowDisabled(item, rowIndex)) || false;\n const additionalClassNames = (descriptor === null || descriptor === void 0 ? void 0 : descriptor.classNames) || (getRowClassNames === null || getRowClassNames === void 0 ? void 0 : getRowClassNames(item, rowIndex)) || [];\n const interactive = Boolean(!disabled && onRowClick);\n return (React.createElement(\"tr\", { key: Table.getRowId(this.props, item, rowIndex), onClick: !disabled && onRowClick ? onRowClick.bind(null, item, rowIndex) : undefined, onMouseEnter: !disabled && onRowMouseEnter\n ? onRowMouseEnter.bind(null, item, rowIndex)\n : undefined, onMouseLeave: !disabled && onRowMouseLeave\n ? onRowMouseLeave.bind(null, item, rowIndex)\n : undefined, onMouseDown: !disabled && onRowMouseDown\n ? onRowMouseDown.bind(null, item, rowIndex)\n : undefined, className: b('row', { disabled, interactive, 'vertical-align': verticalAlign }, additionalClassNames.join(' ')) }, columns.map((column, colIndex) => {\n const { id, align: rawAlign, primary, className, sticky: rawSticky } = column;\n const content = Table.getBodyCellContent(column, item, rowIndex);\n const align = normalizeSides(rawAlign, 'column.align');\n const sticky = normalizeSides(rawSticky, 'column.sticky');\n return (React.createElement(\"td\", { key: id, style: columnsStyles[colIndex], className: b('cell', {\n align,\n primary,\n sticky,\n ['edge-padding']: edgePadding,\n ['word-wrap']: wordWrap,\n }, className) }, content));\n })));\n };\n this.handleScrollContainerMouseenter = () => {\n this.setState({ activeScrollElement: 'scrollContainer' });\n };\n this.handleScrollContainerScroll = () => {\n if (this.state.activeScrollElement === 'scrollContainer' &&\n this.horizontalScrollBarRef.current &&\n this.scrollContainerRef.current) {\n this.horizontalScrollBarRef.current.scrollLeft =\n this.scrollContainerRef.current.scrollLeft;\n }\n };\n this.handleHorizontalScrollBarMouseenter = () => {\n this.setState({ activeScrollElement: 'scrollBar' });\n };\n this.handleHorizontalScrollBarScroll = () => {\n if (this.state.activeScrollElement === 'scrollBar' &&\n this.horizontalScrollBarRef.current &&\n this.scrollContainerRef.current) {\n this.scrollContainerRef.current.scrollLeft =\n this.horizontalScrollBarRef.current.scrollLeft;\n }\n };\n }\n // Static methods may be used by HOCs\n static getRowId(props, item, rowIndex) {\n const { data, getRowId, getRowDescriptor } = props;\n const index = rowIndex !== null && rowIndex !== void 0 ? rowIndex : data.indexOf(item);\n const descriptor = getRowDescriptor === null || getRowDescriptor === void 0 ? void 0 : getRowDescriptor(item, index);\n if ((descriptor === null || descriptor === void 0 ? void 0 : descriptor.id) !== undefined) {\n return descriptor.id;\n }\n if (typeof getRowId === 'function') {\n return getRowId(item, index);\n }\n if (getRowId && getRowId in item) {\n return String(item[getRowId]);\n }\n return String(index);\n }\n static getHeadCellContent(column) {\n const { id, name } = column;\n let content;\n if (typeof name === 'function') {\n content = name();\n }\n else if (typeof name === 'string') {\n content = name;\n }\n else {\n content = id;\n }\n return content;\n }\n static getBodyCellContent(column, item, rowIndex) {\n const { id, template, placeholder } = column;\n let placeholderValue;\n if (typeof placeholder === 'function') {\n placeholderValue = placeholder(item, rowIndex);\n }\n else {\n placeholderValue = placeholder !== null && placeholder !== void 0 ? placeholder : DASH;\n }\n let value;\n if (typeof template === 'function') {\n value = template(item, rowIndex);\n }\n else if (typeof template === 'string') {\n value = _get(item, template);\n }\n else if (_has(item, id)) {\n value = _get(item, id);\n }\n if ([undefined, null, ''].includes(value) && placeholderValue) {\n return placeholderValue;\n }\n return value;\n }\n static getDerivedStateFromProps(props, state) {\n if (props.columns.length === state.columnHeaderRefs.length) {\n return null;\n }\n return {\n columnHeaderRefs: Array.from(props.columns, () => React.createRef()),\n };\n }\n componentDidMount() {\n if (this.props.stickyHorizontalScroll) {\n this.tableResizeObserver = new ResizeObserver((entries) => {\n var _a;\n const { contentRect } = entries[0];\n // Sync scrollbar width with table width\n (_a = this.horizontalScrollBarInnerRef.current) === null || _a === void 0 ? void 0 : _a.style.setProperty('width', `${contentRect.width}px`);\n });\n if (this.tableRef.current) {\n this.tableResizeObserver.observe(this.tableRef.current);\n }\n if (this.scrollContainerRef.current) {\n this.scrollContainerRef.current.addEventListener('scroll', this.handleScrollContainerScroll);\n this.scrollContainerRef.current.addEventListener('mouseenter', this.handleScrollContainerMouseenter);\n }\n if (this.horizontalScrollBarRef.current) {\n this.horizontalScrollBarRef.current.addEventListener('scroll', this.handleHorizontalScrollBarScroll);\n this.horizontalScrollBarRef.current.addEventListener('mouseenter', this.handleHorizontalScrollBarMouseenter);\n }\n }\n this.columnsResizeObserver = new ResizeObserver((entries) => {\n // fix ResizeObserver loop error\n window.requestAnimationFrame(() => {\n if (!Array.isArray(entries) || !entries.length) {\n return;\n }\n this.updateColumnStyles();\n });\n });\n if (this.tableRef.current) {\n this.columnsResizeObserver.observe(this.tableRef.current);\n }\n this.updateColumnStyles();\n }\n componentDidUpdate(prevProps) {\n if (this.props.columns !== prevProps.columns) {\n this.updateColumnStyles();\n }\n }\n componentWillUnmount() {\n if (this.props.stickyHorizontalScroll) {\n if (this.tableResizeObserver) {\n this.tableResizeObserver.disconnect();\n }\n if (this.scrollContainerRef.current) {\n this.scrollContainerRef.current.removeEventListener('scroll', this.handleScrollContainerScroll);\n this.scrollContainerRef.current.removeEventListener('mouseenter', this.handleScrollContainerMouseenter);\n }\n if (this.horizontalScrollBarRef.current) {\n this.horizontalScrollBarRef.current.removeEventListener('scroll', this.handleHorizontalScrollBarScroll);\n this.horizontalScrollBarRef.current.removeEventListener('mouseenter', this.handleHorizontalScrollBarMouseenter);\n }\n }\n if (this.columnsResizeObserver) {\n this.columnsResizeObserver.disconnect();\n }\n }\n render() {\n const { columns, stickyHorizontalScroll, className, qa } = this.props;\n const withPrimary = columns.some(({ primary }) => primary);\n return (React.createElement(\"div\", { className: b({\n 'with-primary': withPrimary,\n 'with-sticky-scroll': stickyHorizontalScroll,\n }, className), \"data-qa\": qa }, stickyHorizontalScroll ? (React.createElement(React.Fragment, null,\n React.createElement(\"div\", { ref: this.scrollContainerRef, className: b('scroll-container') }, this.renderTable()),\n this.renderHorizontalScrollBar())) : (this.renderTable())));\n }\n renderHead() {\n const { columns, edgePadding, wordWrap } = this.props;\n const { columnsStyles } = this.state;\n return (React.createElement(\"thead\", { className: b('head') },\n React.createElement(\"tr\", { className: b('row') }, columns.map((column, index) => {\n const { id, align: rawAlign, primary, sticky: rawSticky, className } = column;\n const align = normalizeSides(rawAlign, 'column.align');\n const sticky = normalizeSides(rawSticky, 'column.sticky');\n const content = Table.getHeadCellContent(column);\n return (React.createElement(\"th\", { key: id, ref: this.state.columnHeaderRefs[index], style: columnsStyles[index], className: b('cell', {\n align,\n primary,\n sticky,\n ['edge-padding']: edgePadding,\n ['word-wrap']: wordWrap,\n }, className) }, content));\n }))));\n }\n renderBody() {\n const { data } = this.props;\n return (React.createElement(\"tbody\", { className: b('body') }, data.length > 0 ? data.map(this.renderRow) : this.renderEmptyRow()));\n }\n renderTable() {\n return (React.createElement(\"table\", { ref: this.tableRef, className: b('table') },\n this.renderHead(),\n this.renderBody()));\n }\n renderEmptyRow() {\n const { columns, emptyMessage } = this.props;\n return (React.createElement(\"tr\", { className: b('row', { empty: true }) },\n React.createElement(\"td\", { className: b('cell'), colSpan: columns.length }, emptyMessage ? emptyMessage : i18n('label_empty'))));\n }\n renderHorizontalScrollBar() {\n const { stickyHorizontalScroll, stickyHorizontalScrollBreakpoint = 0 } = this.props;\n return (React.createElement(\"div\", { ref: this.horizontalScrollBarRef, className: b('horizontal-scroll-bar', {\n 'sticky-horizontal-scroll': stickyHorizontalScroll,\n }), style: { bottom: `${stickyHorizontalScrollBreakpoint}px` }, \"data-qa\": \"sticky-horizontal-scroll-breakpoint-qa\" },\n React.createElement(\"div\", { ref: this.horizontalScrollBarInnerRef, className: b('horizontal-scroll-bar-inner') })));\n }\n updateColumnStyles() {\n this.setState((prevState) => {\n const columnsWidth = prevState.columnHeaderRefs.map((ref) => ref.current === null ? undefined : ref.current.getBoundingClientRect().width);\n const columnsStyles = this.props.columns.map((_, index) => this.getColumnStyles(index, columnsWidth));\n return { columnsStyles };\n });\n }\n getColumnStyles(index, columnsWidth) {\n const { columns } = this.props;\n const column = columns[index];\n const style = {};\n if (typeof column.width === 'string') {\n return { maxWidth: 0, width: column.width };\n }\n if (typeof column.width !== 'undefined') {\n style.width = column.width;\n }\n if (!column.sticky) {\n return style;\n }\n const filteredColumns = column.sticky === 'left' || column.sticky === 'start'\n ? columnsWidth.slice(0, index)\n : columnsWidth.slice(index + 1);\n const styleName = column.sticky === 'left' || column.sticky === 'start'\n ? 'insetInlineStart'\n : 'insetInlineEnd';\n style[styleName] = filteredColumns.reduce((start, width) => {\n return _isNumber(width) ? start + width : start;\n }, 0);\n return style;\n }\n}\nTable.defaultProps = {\n edgePadding: true,\n};\n"],"names":["shouldClientNavigate","link","modifiers","target","getAttribute","href","origin","location","hasAttribute","metaKey","ctrlKey","altKey","shiftKey","b","BreadcrumbItem","props","Element","domProps","filterDOMProps","labelable","title","children","handleAction","event","disabled","current","preventDefault","onAction","currentTarget","navigate","HTMLAnchorElement","isDefaultPrevented","routerOptions","isDisabled","linkProps","onClick","undefined","hrefLang","rel","download","ping","referrerPolicy","role","tabIndex","onKeyDown","key","itemType","Object","assign","className","BreadcrumbsSeparator","separator","displayName","addComponentKeysets","en","Item","_props","ref","listRef","containerRef","useForkRef","items","forEach","child","index","push","visibleItemsCount","setVisibleItemsCount","length","calculated","setCalculated","handleResize","onResize","element","window","ResizeObserver","addEventListener","removeEventListener","observer","entries","observe","disconnect","useResizeObserver","lastChildren","visibleItems","list","listItems","Array","from","containerWidth","offsetWidth","newVisibleItemsCount","calculatedWidth","maxItems","Infinity","rootWidth","showRoot","item","shift","scrollWidth","lastItem","pop","Math","min","i","max","recalculate","contents","breadcrumbs","endItems","rootItem","hiddenItems","slice","menuItem","DropdownMenu","map","el","text","action","_a","popupProps","staircase","popupStyle","placement","popupPlacement","renderSwitcher","Button","i18n","size","view","Icon","lastIndex","breadcrumbItems","isCurrent","calculating","qa","style","cn","Breadcrumbs","_ref","_objectWithoutProperties","_excluded","_jsx","UBreadcrumbs","_objectSpread","block","RowsCount","count","isDynamic","_jsxs","React","hammer","format","Popover","content","awesome","AutomaticModeSwitchEditor","value","onEdit","onClose","_React$useState","_React$useState2","_slicedToArray","error","setError","handleAdd","_ref2","_asyncToGenerator","_regeneratorRuntime","_callee","form","_form$getState","values","_context","prev","next","getState","t0","stop","_x","apply","arguments","YTDFDialog","pristineSubmittable","headerProps","onAdd","visible","initialValues","fields","name","type","caption","extras","options","label","concat","_toConsumableArray","makeErrorFields","AutomaticModeSwitch","_ref3","_React$useState3","_React$useState4","showEditor","setShowEditor","handleShow","handleClose","Switch","checked","onUpdate","StatusBulb","theme","replicatedTableTracker","attributes","ypath","getValue","LabelOnOff","tableSize","mediumList","_ypath$getValues","getValues","_ypath$getValues2","rowCount","chunkCount","dataWeight","Boolean","Template","FormattedValue","tableStorage","tableType","optimizeFor","Label","compression","erasureReplication","dynTableInfo","cluster","tabletErrorCount","_ypath$getValues3","_ypath$getValues4","tabletCellBundle","tabletState","inMemoryMode","tabletUrl","tabletActiveBundleLink","Link","routed","url","makeMetaItems","_ref$mediumList","_ref$tabletErrorCount","onEditEnableReplicatedTableTracker","cf","sorted","chaosCellBundle","enable_replicated_table_tracker","chaosUrl","tabletActiveChaosBundleLink","reduce_","acc","getCommonFields","CypressNodeTypes","REPLICATED_TABLE","REPLICATION_LOG_TABLE","main","automaticModeSwitch","CHAOS_REPLICATED_TABLE","SchemaDataType","type_v3","primitiveTypes","useSelector","getPrimitiveTypesMap","dataTypeProps","getType","parseV3Type","_unused","DataType","_Fragment","BreadcrumbsItem","e","NavigationBreadcrumbs","path","onClusterChangeClick","onItemClick","handleBreadcrumbsClick","useCallback","newPath","useMemo","result","split","BreadcrumbsItemComponent","data","FolderTreeIcon","xmlns","fill","viewBox","fillRule","d","clipRule","HeaderActions","isFavorite","showCopyBtn","onFavoriteToggle","onPathCopy","onPastePath","StarFillIcon","StarIcon","TextIndentIcon","CopyIcon","loadDynamicTableRequest","clusterConfig","login","schema","keyColumns","limit","output_format","allColumns","permissions","_permissions$columns$","availableColumns","omittedColumns","aColumns","parameters","setup","_yield$wrapApiPromise","columns","rows","yqlTypes","schemaColumns","wrapApiPromiseByToaster","ytApiV3Id","checkPermission","YTApiId","dynTableCheckPerm","proxy","getClusterProxy","permission","user","skipSuccessToast","toasterName","errorTitle","sent","isArray","abrupt","Promise","reject","Error","reduce","includes","deniedKeyColumns","_defineProperty","unipika","decode","query","Query","prepareQuery","offset","dump_error_into_response","transformResponse","_ref4","parsedData","rawResponse","headers","JSONParser","readDynamicTable","_ref5","injectColumnsFromSchema","loadStaticTable","omit_inaccessible_columns","table_reader","workload_descriptor","category","readStaticTable","isTableNode","isFolderNode","nodeType","loadTableAttributes","get","navigationAttributes","makePathByQueryEngine","engine","QueryEngine","YQL","YT_QL","CHYT","createTableSelect","join","id","insertTextWhereCursor","mEditor","position","getPosition","edit","range","Range","lineNumber","column","executeEdits","toaster","Toaster","toggleFavoritePath","favoritePath","dispatch","state","selectNavigationCluster","nodes","selectNavigationNodes","parentNS","createNestedNS","NAMESPACES","LOCAL","toggleFavourite","newNodes","node","setNodes","loadNodeByPath","favorites","response","selectNavigationClusterConfig","selectFavouritePaths","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","meta","getTableTypeByAttributes","setTable","Table","add","autoHiding","message","_x3","_x4","copyPathToClipboard","_callee4","_","_context4","navigator","clipboard","writeText","_x7","_x8","NavigationHeader","useDispatch","filter","selectNavigationFilter","selectNavigationPath","getQueryEngine","selectNavigationNodeType","getEditor","useMonaco","showFilter","handlePathCopy","handlePastePath","editor","pathString","Cluster","setCluster","val","TextInput","placeholder","hasClear","NavigationEmpty","Text","variant","width","height","order","icon","I","TableSorting","TableComponent","getComponentName","defaultCompareFunction","itemA","itemB","columnId","constructor","_b","super","this","defaultSortState","enhanceColumns","_originalName","sortState","getSortState","sortOrder","find","s","originContent","getHeadCellContent","align","reverse","handleColumnSortClick","bind","active","currentStateIndex","findIndex","currentState","nextColumnSort","getNextSortForColumn","handleSortStateChange","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","queryEngine","onClipboardCopy","onEditorInsert","onNewQuery","onNewWindowOpen","_useToggle","useToggle","_useToggle2","tableMenuOpen","toggleTapleMenuOpen","_useToggle3","_useToggle4","menuOpen","toggleMenuOpen","iconType","iconName","getIconNameForType","isSupported","showActions","handleStop","stopPropagation","unsupported","AwesomeIcon","ellipsis","open","onOpenToggle","SPYT","onSwitcherClick","iconEnd","ArrowUpRightFromSquareIcon","NodeList","showPrompt","togglePrompt","newQueryParams","useRef","selectNodeListByFilter","dirtyQuery","isQueryDraftEditted","isEmpty","handleNodeClick","handleFavoriteToggle","handleEditorInsert","URL","pathname","searchParams","append","toString","getNavigationUrl","handleNewWindowOpen","handlePromptConfirm","_callee5","_getQueryResultGlobal2","_getQueryDraft","settings","newSettings","_context5","getQueryDraft","createEmptyQuery","loadCliqueByCluster","updateQueryDraft","_x9","_x10","makeNewQueryWithTableSelect","handlePromptCancel","handleNewQuery","newEngine","NoContent","warning","NewQueryPromt","confirm","cancel","header","row","sort_order","required","SchemaTab","DataTableYT","useThemeYT","PreviewTab","table","ysonSettings","onShowPreview","columnName","rowIndex","showCellPreviewModal","prepareColumns","useRawStrings","schemaByName","NavigationTable","_useState","useState","_useState2","activeTab","setActiveTab","selectTableWithFilter","getPageSize","getTableYsonSettings","handleInsertTableSelect","RadioButton","defaultValue","MetaTable","NavigationBody","Navigation","useEffect","_callee3","r","_context3","navigationGetType","_x5","_x6","cancellation","reverseRows","_yield$ytApiV3Id$sele","_prepareRows","selectRows","dynTableSelectRowsPreload","parseErrorFromResponse","getParsedError","prepareRows","_yield$ytApiV3Id$read","readTable","tableRead","prepareHeaders","getCliCommandResultFormat","tag","isMediaTag","_tag$split","_tag$split2","extension","getImageResultFormat","getDynamicTableCellPath","getYqlTypes","getCurrentRowKey","getKeyColumns","prepareKey","offsetColumns","getDynamicTableCliCommand","cellPath","loadDynamicTableCellPreview","getStaticTableCellPath","getOffsetValue","getStaticTableCliCommand","loadStaticTableCellPreview","ytApiV4","getCellPath","getPath","getIsDynamic","getCliCommand","_dispatch","loadCellPreview","getDefaultRequestOutputFormat","stringLimit","PREVIEW_LIMIT","$attributes","value_format","cellPreviewCancelHelper","removeAllAndSave","ytCliDownloadCommand","json","parsed","typeIndex","flags","_unipika$converters$y","$type","$value","$tag","noticeText","batch","CELL_PREVIEW","REQUEST","openCellPreview","JSON","parse","incomplete","converters","yql","yql_type_registry","maxStringSize","maxListSize","treatValAsData","SUCCESS","isCancelled","FAILURE","toSkip","concat_","toAdd","col","pathEditorRequests","CancelHelper","preparePath","currentPath","YPath","create","toSubpath","stringify","loadSuggestions","customFilter","parentPath","pathEditorLoadSuggestions","saveCancelToken","then","initialPath","suggestions","map_","prepared","childPath","targetPathBroken","sortBy_","prepareSuggestions","filterByCurrentPath","toLowerCase","filter_","hasPartOfPath","startsWith","isShowCurrentChild","getNextSelectedIndex","suggestion","selectedIndex","getPrevSelectedIndex","getCompletedPath","icons","document","string_node","int64_node","uint64_node","double_node","boolean_node","map_node","scheduler_pool_tree_map","scheduler_pool","tablet_cell","journal","table_dynamic","replicated_table","chaos_replicated_table","replication_log_table","file","topmost_transaction_map","transaction_map","transaction","nested_transaction","getBoolean","rootstock","portal_entrance","cell_node","cell_node_map","sys_node","access_control_object_namespace_map","access_control_object_namespace","access_control_object","YqlValue","_React$Component","_inherits","_super","_createSuper","_classCallCheck","_createClass","_this$props","inline","formattedValue","getFormattedValue","titleSettings","asHTML","formatRaw","formatFromYQL","classes","ErrorBoundary","dir","dangerouslySetInnerHTML","__html","yqlValue","defaultProps","folding","Yson","defaultUnipikaSettings","unquote","v","match","exec","ColumnCell","_ref$value","allowRawStrings","hovered","setHovered","formatType","Number","escapedValue","prettyprint","_React$useMemo","isIncompleteTagged","isIncompleteValue","allowRawCopy","useRawString","copyTooltip","visibleValue","onMouseEnter","onMouseLeave","Flex","alignItems","Tooltip","ClipboardButton","onCopy","copyToClipboard","UIKitIcon","Eye","isKeyColumn","unescapeKeyValue","warnAboutPhysicalValues","propName","warn","normalizeSides","side","activeScrollElement","columnsStyles","columnHeaderRefs","tableRef","scrollContainerRef","horizontalScrollBarRef","horizontalScrollBarInnerRef","renderRow","isRowDisabled","onRowMouseEnter","onRowMouseLeave","onRowMouseDown","getRowClassNames","verticalAlign","edgePadding","wordWrap","getRowDescriptor","descriptor","additionalClassNames","classNames","interactive","getRowId","onMouseDown","colIndex","rawAlign","primary","sticky","rawSticky","getBodyCellContent","handleScrollContainerMouseenter","handleScrollContainerScroll","scrollLeft","handleHorizontalScrollBarMouseenter","handleHorizontalScrollBarScroll","String","placeholderValue","getDerivedStateFromProps","componentDidMount","stickyHorizontalScroll","tableResizeObserver","contentRect","setProperty","columnsResizeObserver","requestAnimationFrame","updateColumnStyles","componentDidUpdate","prevProps","componentWillUnmount","withPrimary","some","renderTable","renderHorizontalScrollBar","renderHead","renderBody","renderEmptyRow","emptyMessage","empty","colSpan","stickyHorizontalScrollBreakpoint","bottom","prevState","columnsWidth","getBoundingClientRect","getColumnStyles","maxWidth","filteredColumns","start"],"sourceRoot":""}
1
+ {"version":3,"file":"js/query-navigation.b1574290.chunk.js","mappings":"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","sources":["webpack://@ytsaurus/ui/./node_modules/@gravity-ui/uikit/build/esm/components/lab/Breadcrumbs/utils.js","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/uikit/build/esm/components/lab/Breadcrumbs/BreadcrumbItem.js","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/uikit/build/esm/components/lab/Breadcrumbs/BreadcrumbsSeparator.js","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/uikit/build/esm/components/lab/Breadcrumbs/i18n/index.js","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/uikit/build/esm/components/lab/Breadcrumbs/Breadcrumbs.js","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/uikit/build/esm/hooks/useResizeObserver/useResizeObserver.js","webpack://@ytsaurus/ui/./src/ui/components/Breadcrumbs/Breadcrumbs.tsx","webpack://@ytsaurus/ui/./src/ui/pages/navigation/content/Table/TableMeta/RowsCount/RowsCount.tsx","webpack://@ytsaurus/ui/./src/ui/pages/navigation/content/Table/TableMeta/AutomaticModeSwitch.tsx","webpack://@ytsaurus/ui/./src/ui/components/MetaTable/presets/presets.tsx","webpack://@ytsaurus/ui/./src/ui/pages/navigation/content/Table/TableMeta/commonFields.tsx","webpack://@ytsaurus/ui/./src/ui/components/SchemaDataType/SchemaDataType.tsx","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/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/store/actions/navigation/content/table/readDynamicTable.ts","webpack://@ytsaurus/ui/./src/ui/store/actions/navigation/content/table/readStaticTable.ts","webpack://@ytsaurus/ui/./src/ui/store/actions/navigation/modals/cell-preview/format.ts","webpack://@ytsaurus/ui/./src/ui/store/actions/navigation/modals/cell-preview/dynamic-table.ts","webpack://@ytsaurus/ui/./src/ui/store/actions/navigation/modals/cell-preview/static-table.ts","webpack://@ytsaurus/ui/./src/ui/store/actions/navigation/modals/cell-preview/index.ts","webpack://@ytsaurus/ui/./src/ui/utils/navigation/content/table/table-ts.ts","webpack://@ytsaurus/ui/./src/ui/utils/navigation/path-editor.js","webpack://@ytsaurus/ui/./src/ui/components/YqlValue/YqlValue.tsx","webpack://@ytsaurus/ui/./src/ui/components/ColumnCell/ColumnCell.tsx","webpack://@ytsaurus/ui/./src/ui/utils/navigation/prepareColumns.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/folder-tree.svg","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/icons/svgs/text-indent.svg","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/uikit/build/esm/components/Table/i18n/index.js","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/uikit/build/esm/components/Table/Table.js"],"sourcesContent":["import { block } from '../../utils/cn';\nexport function shouldClientNavigate(link, modifiers) {\n // Use getAttribute here instead of link.target. Firefox will default link.target to \"_parent\" when inside an iframe.\n const target = link.getAttribute('target');\n return (link.href &&\n (!target || target === '_self') &&\n link.origin === location.origin &&\n !link.hasAttribute('download') &&\n !modifiers.metaKey && // open in new tab (mac)\n !modifiers.ctrlKey && // open in new tab (windows)\n !modifiers.altKey && // download\n !modifiers.shiftKey);\n}\nexport const b = block('breadcrumbs2');\n","'use client';\nimport React from 'react';\nimport { filterDOMProps } from '../../utils/filterDOMProps';\nimport { b, shouldClientNavigate } from './utils';\nexport function BreadcrumbItem(props) {\n const Element = props.href ? 'a' : 'span';\n const domProps = filterDOMProps(props, { labelable: true });\n let title = props.title;\n if (!title && typeof props.children === 'string') {\n title = props.children;\n }\n const handleAction = (event) => {\n if (props.disabled || props.current) {\n event.preventDefault();\n return;\n }\n if (typeof props.onAction === 'function') {\n props.onAction();\n }\n const target = event.currentTarget;\n if (typeof props.navigate === 'function' && target instanceof HTMLAnchorElement) {\n if (props.href && !event.isDefaultPrevented() && shouldClientNavigate(target, event)) {\n event.preventDefault();\n props.navigate(props.href, props.routerOptions);\n }\n }\n };\n const isDisabled = props.disabled || props.current;\n let linkProps = {\n title,\n onClick: handleAction,\n 'aria-disabled': isDisabled ? true : undefined,\n };\n if (Element === 'a') {\n linkProps.href = props.href;\n linkProps.hrefLang = props.hrefLang;\n linkProps.target = props.target;\n linkProps.rel = props.target === '_blank' && !props.rel ? 'noopener noreferrer' : props.rel;\n linkProps.download = props.download;\n linkProps.ping = props.ping;\n linkProps.referrerPolicy = props.referrerPolicy;\n }\n else {\n linkProps.role = 'link';\n linkProps.tabIndex = isDisabled ? undefined : 0;\n linkProps.onKeyDown = (event) => {\n if (event.key === 'Enter') {\n handleAction(event);\n }\n };\n }\n if (props.current) {\n linkProps['aria-current'] = 'page';\n }\n if (props.itemType === 'menu') {\n linkProps = {};\n }\n return (React.createElement(Element, Object.assign({}, domProps, linkProps, { className: props.itemType === 'menu'\n ? b('menu')\n : b('link', {\n 'is-current': props.current,\n 'is-disabled': isDisabled && !props.current,\n }) }), props.children));\n}\nBreadcrumbItem.displayName = 'Breadcrumbs.Item';\n","import React from 'react';\nimport { b } from './utils';\nexport function BreadcrumbsSeparator({ separator }) {\n return (React.createElement(\"div\", { \"aria-hidden\": true, className: b('divider') }, separator !== null && separator !== void 0 ? separator : '/'));\n}\nBreadcrumbsSeparator.displayName = 'Breadcrumbs.Separator';\n","import { addComponentKeysets } from '../../../utils/addComponentKeysets';\nimport en from './en.json';\nimport ru from './ru.json';\nconst COMPONENT = 'lab/Breadcrumbs';\nexport default addComponentKeysets({ en, ru }, COMPONENT);\n","'use client';\nimport React from 'react';\nimport { useForkRef, useResizeObserver } from '../../../hooks';\nimport { Button } from '../../Button';\nimport { DropdownMenu } from '../../DropdownMenu';\nimport { filterDOMProps } from '../../utils/filterDOMProps';\nimport { BreadcrumbItem } from './BreadcrumbItem';\nimport { BreadcrumbsSeparator } from './BreadcrumbsSeparator';\nimport i18n from './i18n';\nimport { b, shouldClientNavigate } from './utils';\nimport './Breadcrumbs.css';\nfunction Item(_props) {\n return null;\n}\nexport const Breadcrumbs = React.forwardRef(function Breadcrumbs(props, ref) {\n const listRef = React.useRef(null);\n const containerRef = useForkRef(ref, listRef);\n const items = [];\n React.Children.forEach(props.children, (child, index) => {\n if (React.isValidElement(child)) {\n if (child.key === undefined || child.key === null) {\n child = React.cloneElement(child, { key: index });\n }\n items.push(child);\n }\n });\n const [visibleItemsCount, setVisibleItemsCount] = React.useState(items.length);\n const [calculated, setCalculated] = React.useState(false);\n const recalculate = (visibleItems) => {\n const list = listRef.current;\n if (!list) {\n return;\n }\n const listItems = Array.from(list.children);\n if (listItems.length === 0) {\n return;\n }\n const containerWidth = list.offsetWidth;\n let newVisibleItemsCount = 0;\n let calculatedWidth = 0;\n let maxItems = props.maxItems || Infinity;\n let rootWidth = 0;\n if (props.showRoot) {\n const item = listItems.shift();\n if (item) {\n rootWidth = item.scrollWidth;\n calculatedWidth += rootWidth;\n }\n newVisibleItemsCount++;\n }\n const hasMenu = items.length > visibleItems;\n if (hasMenu) {\n const item = listItems.shift();\n if (item) {\n calculatedWidth += item.offsetWidth;\n }\n maxItems--;\n }\n if (props.showRoot && calculatedWidth >= containerWidth) {\n calculatedWidth -= rootWidth;\n newVisibleItemsCount--;\n }\n const lastItem = listItems.pop();\n if (lastItem) {\n calculatedWidth += Math.min(lastItem.offsetWidth, 200);\n if (calculatedWidth < containerWidth) {\n newVisibleItemsCount++;\n }\n }\n for (let i = listItems.length - 1; i >= 0; i--) {\n const item = listItems[i];\n calculatedWidth += item.offsetWidth;\n if (calculatedWidth >= containerWidth) {\n break;\n }\n newVisibleItemsCount++;\n }\n newVisibleItemsCount = Math.max(Math.min(maxItems, newVisibleItemsCount), 1);\n if (newVisibleItemsCount === visibleItemsCount) {\n setCalculated(true);\n }\n else {\n setVisibleItemsCount(newVisibleItemsCount);\n }\n };\n const handleResize = React.useCallback(() => {\n setCalculated(false);\n setVisibleItemsCount(items.length);\n }, [items.length]);\n useResizeObserver({\n ref: listRef,\n onResize: handleResize,\n });\n const lastChildren = React.useRef(null);\n React.useLayoutEffect(() => {\n if (calculated && props.children !== lastChildren.current) {\n lastChildren.current = props.children;\n setCalculated(false);\n setVisibleItemsCount(items.length);\n }\n }, [calculated, items.length, props.children]);\n React.useLayoutEffect(() => {\n if (!calculated) {\n recalculate(visibleItemsCount);\n }\n });\n const { navigate } = props;\n let contents = items;\n if (items.length > visibleItemsCount) {\n contents = [];\n const breadcrumbs = [...items];\n let endItems = visibleItemsCount;\n if (props.showRoot && visibleItemsCount > 1) {\n const rootItem = breadcrumbs.shift();\n if (rootItem) {\n contents.push(rootItem);\n }\n endItems--;\n }\n const hiddenItems = breadcrumbs.slice(0, -endItems);\n const menuItem = (React.createElement(BreadcrumbItem, { itemType: \"menu\" },\n React.createElement(DropdownMenu, { items: hiddenItems.map((el, index) => {\n return Object.assign(Object.assign({}, el.props), { text: el.props.children, disabled: props.disabled, items: [], action: (event) => {\n var _a;\n if (typeof props.onAction === 'function') {\n props.onAction((_a = el.key) !== null && _a !== void 0 ? _a : index);\n }\n // TODO: move this logic to DropdownMenu\n const target = event.currentTarget;\n if (typeof navigate === 'function' &&\n target instanceof HTMLAnchorElement) {\n if (el.props.href && shouldClientNavigate(target, event)) {\n event.preventDefault();\n navigate(el.props.href, el.props.routerOptions);\n }\n }\n } });\n }), popupProps: {\n className: b('popup', {\n staircase: props.popupStyle === 'staircase',\n }),\n placement: props.popupPlacement,\n }, renderSwitcher: ({ onClick }) => (React.createElement(Button, { title: i18n('label_more'), className: b('more-button'), onClick: onClick, size: \"s\", view: \"flat\", disabled: props.disabled },\n React.createElement(Button.Icon, null, \"...\"))) })));\n contents.push(menuItem);\n contents.push(...breadcrumbs.slice(-endItems));\n }\n const lastIndex = contents.length - 1;\n const breadcrumbItems = contents.map((child, index) => {\n var _a;\n const isCurrent = index === lastIndex;\n const key = (_a = child.key) !== null && _a !== void 0 ? _a : index;\n const handleAction = () => {\n if (typeof props.onAction === 'function') {\n props.onAction(key);\n }\n };\n return (React.createElement(\"li\", { key: index, className: b('item', { calculating: !calculated }) },\n React.createElement(BreadcrumbItem, Object.assign({}, child.props, { key: key, current: isCurrent, disabled: props.disabled, onAction: handleAction, navigate: navigate }), child.props.children),\n isCurrent ? null : React.createElement(BreadcrumbsSeparator, { separator: props.separator })));\n });\n return (React.createElement(\"ol\", Object.assign({ ref: containerRef }, filterDOMProps(props, { labelable: true }), { \"data-qa\": props.qa, className: b(null, props.className), style: props.style }), breadcrumbItems));\n});\nBreadcrumbs.Item = Item;\nBreadcrumbs.displayName = 'Breadcrumbs';\nexport { Item as BreadcrumbsItem };\n","import React from 'react';\nexport function useResizeObserver({ ref, onResize }) {\n React.useEffect(() => {\n const element = ref === null || ref === void 0 ? void 0 : ref.current;\n if (!element) {\n return undefined;\n }\n if (typeof window.ResizeObserver === 'undefined') {\n window.addEventListener('resize', onResize, false);\n return () => {\n window.removeEventListener('resize', onResize, false);\n };\n }\n const observer = new ResizeObserver((entries) => {\n if (!entries.length) {\n return;\n }\n onResize();\n });\n observer.observe(element);\n return () => {\n observer.disconnect();\n };\n }, [ref, onResize]);\n}\n","import React, {FC, PropsWithChildren} from 'react';\nimport {\n unstable_BreadcrumbsProps as BreadcrumbsProps,\n unstable_Breadcrumbs as UBreadcrumbs,\n} from '@gravity-ui/uikit/unstable';\nimport './Breadcrumbs.scss';\nimport cn from 'bem-cn-lite';\n\nconst b = cn('yt-u-breadcrumbs');\n\nexport const Breadcrumbs: FC<PropsWithChildren<BreadcrumbsProps>> = ({children, ...props}) => {\n return (\n <UBreadcrumbs {...props} className={b(null, props.className)}>\n {children}\n </UBreadcrumbs>\n );\n};\n","import React from 'react';\nimport cn from 'bem-cn-lite';\n\nimport {Popover} from '@gravity-ui/uikit';\nimport Icon from '../../../../../../components/Icon/Icon';\nimport hammer from '../../../../../../common/hammer';\n\nimport './RowsCount.scss';\n\nconst block = cn('rows-count');\n\nexport function RowsCount(props: {count: number; isDynamic: boolean}) {\n const {count, isDynamic} = props;\n return (\n <React.Fragment>\n {isDynamic ? '≈ ' : ''}\n {hammer.format['Number'](count)}\n {!isDynamic ? null : (\n <Popover\n content={\n <span>\n This value corresponds to the number of rows stored in the on-disk\n chunks. The actual value may be different: it may be either larger due\n to new rows residing only in memory or smaller due to unsynced deleted\n rows and multiple versions stored on disks. It is not possible to\n calculate the real value without reading all the rows.\n </span>\n }\n >\n <span className={block('question')}>\n <Icon awesome={'question-circle'} />\n </span>\n </Popover>\n )}\n </React.Fragment>\n );\n}\n","import React from 'react';\n\nimport {Switch} from '@gravity-ui/uikit';\n\nimport StatusBulb from '../../../../../components/StatusBulb/StatusBulb';\nimport {FormApi, YTDFDialog, makeErrorFields} from '../../../../../components/Dialog';\nimport {YTError} from '../../../../../types';\n\nexport interface Props {\n value?: boolean;\n onEdit?: (currentValue?: Props['value']) => Promise<void>;\n}\n\ninterface FormValues {\n value?: string;\n}\n\nfunction AutomaticModeSwitchEditor({value, onEdit, onClose}: Props & {onClose: () => void}) {\n const [error, setError] = React.useState<YTError | undefined>(undefined);\n\n const handleAdd = React.useCallback(\n async (form: FormApi<FormValues>) => {\n const {values} = form.getState();\n try {\n await onEdit?.(values.value === 'enabled');\n } catch (e: any) {\n setError(e);\n throw e;\n }\n },\n [setError],\n );\n\n return (\n <YTDFDialog<FormValues>\n pristineSubmittable={true}\n headerProps={{\n title: 'Edit',\n }}\n onAdd={handleAdd}\n onClose={onClose}\n visible={true}\n initialValues={{\n value: value ? 'enabled' : 'disabled',\n }}\n fields={[\n {\n name: 'value',\n type: 'radio',\n caption: 'Automatic mode switch',\n extras: {\n options: [\n {value: 'enabled', label: 'Enabled'},\n {value: 'disabled', label: 'Disabled'},\n ],\n },\n },\n ...makeErrorFields([error]),\n ]}\n />\n );\n}\n\nfunction AutomaticModeSwitch({value, onEdit}: Props) {\n const [showEditor, setShowEditor] = React.useState(false);\n\n const handleShow = React.useCallback(() => {\n setShowEditor(true);\n }, []);\n\n const handleClose = React.useCallback(() => {\n setShowEditor(false);\n }, []);\n\n if (onEdit) {\n return (\n <React.Fragment>\n <Switch\n checked={value}\n onUpdate={handleShow}\n title={value ? 'Enabled' : 'Disabled'}\n />\n {showEditor && (\n <AutomaticModeSwitchEditor\n value={!value}\n onEdit={onEdit}\n onClose={handleClose}\n />\n )}\n </React.Fragment>\n );\n }\n\n return (\n <React.Fragment>\n <StatusBulb theme={value ? 'enabled' : 'unknown'} />{' '}\n </React.Fragment>\n );\n}\n\nexport default React.memo(AutomaticModeSwitch);\n","import React from 'react';\nimport hammer from '../../../common/hammer';\nimport ypath from '../../../common/thor/ypath';\nimport {RowsCount} from '../../../pages/navigation/content/Table/TableMeta/RowsCount/RowsCount';\nimport {tabletActiveBundleLink} from '../../../utils/components/tablet-cells';\nimport Label, {LabelOnOff} from '../../Label/Label';\nimport Link from '../../Link/Link';\nimport {Template} from '../templates/Template';\nimport compression from './compression';\nimport erasureReplication from './erasure-replication';\nimport size from './size';\nimport {CypressNodeTypes} from '../../../utils/cypress-attributes';\nimport {main} from './index';\nimport {getCommonFields} from '../../../pages/navigation/content/Table/TableMeta/commonFields';\nimport {Props as AutomaticModeSwitchProps} from '../../../pages/navigation/content/Table/TableMeta/AutomaticModeSwitch';\n\nexport function replicatedTableTracker(attributes: any) {\n const value = ypath.getValue(\n attributes,\n '/replicated_table_options/replicated_table_tracker_enabled',\n );\n return {\n key: 'replicated_table_tracker',\n value: <LabelOnOff value={value} />,\n visible: value !== undefined,\n };\n}\n\nexport function tableSize(attributes: any, isDynamic: boolean, mediumList: string[]) {\n const [rowCount, chunkCount, dataWeight] = ypath.getValues(attributes, [\n '/chunk_row_count',\n '/chunk_count',\n '/data_weight',\n ]);\n return [\n {\n key: 'rowCount',\n label: 'Rows',\n value: <RowsCount isDynamic={isDynamic} count={rowCount} />,\n visible: Boolean(rowCount),\n },\n {\n key: 'chunkCount',\n label: 'Chunks',\n value: hammer.format['Number'](chunkCount),\n visible: Boolean(dataWeight),\n },\n ...size(attributes, mediumList),\n {\n key: 'dataWeight',\n label: 'Data weight',\n value: <Template.FormattedValue value={dataWeight} format=\"Bytes\" />,\n visible: Boolean(chunkCount),\n },\n ];\n}\n\nexport function tableStorage(attributes: any, tableType: string) {\n const optimizeFor = ypath.getValue(attributes, '/optimize_for');\n return [\n {\n key: 'tableType',\n label: 'Table type',\n value: tableType,\n },\n {\n key: 'optimizeFor',\n label: 'Optimize for',\n value: <Label text={hammer.format['ReadableField'](optimizeFor)} theme=\"info\" />,\n visible: optimizeFor !== 'undefined',\n },\n ...compression(attributes),\n ...erasureReplication(attributes),\n replicatedTableTracker(attributes),\n ];\n}\n\nexport function dynTableInfo(attributes: any, cluster: string, tabletErrorCount: number) {\n const [tabletCellBundle, tabletState, inMemoryMode] = ypath.getValues(attributes, [\n '/tablet_cell_bundle',\n '/tablet_state',\n '/in_memory_mode',\n ]);\n\n const tabletUrl = tabletActiveBundleLink(cluster, tabletCellBundle);\n return [\n {\n key: 'tabletCellBundle',\n label: 'Tablet cell bundle',\n value: (\n <Link theme={'primary'} routed url={tabletUrl}>\n {tabletCellBundle}\n </Link>\n ),\n },\n {\n key: 'tabletState',\n label: 'Tablet state',\n value: (\n <Label\n theme={tabletState === 'mounted' ? 'info' : 'default'}\n text={hammer.format['ReadableField'](tabletState)}\n />\n ),\n },\n {\n key: 'inMemoryMode',\n label: 'In memory mode',\n value: (\n <Label\n theme={inMemoryMode && inMemoryMode !== 'none' ? 'info' : 'default'}\n text={hammer.format['ReadableField'](inMemoryMode || 'none')}\n />\n ),\n },\n {\n key: 'tabletErrorCount',\n label: 'Tablet error count',\n value: hammer.format['Number'](tabletErrorCount),\n },\n ];\n}\n\nexport const makeMetaItems = ({\n cluster,\n attributes,\n tableType,\n isDynamic,\n mediumList = [],\n tabletErrorCount = 0,\n onEditEnableReplicatedTableTracker,\n}: {\n cluster: string;\n attributes: any;\n mediumList?: string[];\n isDynamic: boolean;\n tableType: string;\n tabletErrorCount?: number;\n onEditEnableReplicatedTableTracker?: AutomaticModeSwitchProps['onEdit'];\n}) => {\n const cf = getCommonFields({\n cluster,\n attributes,\n isDynamic,\n tableType: attributes.type,\n tabletErrorCount,\n onEditEnableReplicatedTableTracker,\n });\n\n switch (attributes.type) {\n case CypressNodeTypes.REPLICATED_TABLE:\n case CypressNodeTypes.REPLICATION_LOG_TABLE:\n return [\n main(attributes),\n tableSize(attributes, isDynamic, mediumList),\n tableStorage(attributes, attributes.type),\n [\n cf.sorted,\n ...dynTableInfo(attributes, cluster, tabletErrorCount),\n cf.automaticModeSwitch,\n ],\n ];\n\n case CypressNodeTypes.CHAOS_REPLICATED_TABLE:\n return [\n main(attributes),\n tableSize(attributes, isDynamic, mediumList),\n [\n cf.tableType,\n replicatedTableTracker(attributes),\n cf.sorted,\n cf.chaosCellBundle,\n cf.automaticModeSwitch,\n ],\n ];\n\n default:\n return [\n main(attributes),\n tableSize(attributes, isDynamic, mediumList),\n tableStorage(attributes, tableType),\n [\n cf.sorted,\n ...(isDynamic ? dynTableInfo(attributes, cluster, tabletErrorCount) : []),\n ],\n ];\n }\n};\n","import React from 'react';\nimport ypath from '../../../../../common/thor/ypath';\nimport Link from '../../../../../components/Link/Link';\nimport AutomaticModeSwitch, {Props as AutomaticModeSwitchProps} from './AutomaticModeSwitch';\nimport reduce_ from 'lodash/reduce';\nimport {MetaTableItem} from '../../../../../components/MetaTable/MetaTable';\nimport {tabletActiveChaosBundleLink} from '../../../../../utils/components/tablet-cells';\n\nexport const getCommonFields = ({\n cluster,\n attributes,\n tableType,\n onEditEnableReplicatedTableTracker,\n}: {\n cluster: string;\n attributes: any;\n isDynamic: boolean;\n tableType: string;\n tabletErrorCount: number;\n onEditEnableReplicatedTableTracker: AutomaticModeSwitchProps['onEdit'];\n}) => {\n const [sorted, chaosCellBundle, enable_replicated_table_tracker] = ypath.getValues(attributes, [\n '/sorted',\n '/chaos_cell_bundle',\n '/replicated_table_options/enable_replicated_table_tracker',\n ]);\n\n const chaosUrl = tabletActiveChaosBundleLink(cluster, chaosCellBundle);\n\n const fields = [\n {\n key: 'tableType',\n label: 'Table type',\n value: tableType,\n },\n {\n key: 'sorted',\n value: sorted,\n visible: sorted !== undefined,\n },\n {\n key: 'chaosCellBundle',\n label: 'Chaos cell bundle',\n value: (\n <Link theme={'primary'} routed url={chaosUrl}>\n {chaosCellBundle}\n </Link>\n ),\n },\n {\n key: 'automaticModeSwitch',\n label: 'Table automatic mode switch',\n value: (\n <AutomaticModeSwitch\n value={enable_replicated_table_tracker}\n onEdit={onEditEnableReplicatedTableTracker}\n />\n ),\n },\n ] as const;\n\n type Fields = typeof fields;\n\n const commonFields = reduce_(\n fields,\n (acc, item) => {\n acc[item.key] = item;\n return acc;\n },\n {} as Record<Fields[number]['key'], MetaTableItem>,\n );\n\n return commonFields;\n};\n","import React from 'react';\n\nimport {getPrimitiveTypesMap} from '../../store/selectors/global/supported-features';\nimport {useSelector} from 'react-redux';\nimport {getType} from './dataTypes';\nimport DataType from './DataType/DataType';\nimport {parseV3Type} from './dateTypesV3';\n\ninterface Props {\n type_v3: any;\n}\n\nfunction SchemaDataType({type_v3}: Props) {\n const primitiveTypes = useSelector(getPrimitiveTypesMap);\n\n const dataTypeProps = React.useMemo(() => {\n try {\n return getType(parseV3Type(type_v3, primitiveTypes));\n } catch {\n return undefined;\n }\n }, [type_v3, primitiveTypes]);\n\n return dataTypeProps ? (\n <DataType {...dataTypeProps} />\n ) : (\n <>There is no type description in the schema</>\n );\n}\n\nexport default React.memo(SchemaDataType);\n","import React, {FC, MouseEvent} from 'react';\n\nexport const BreadcrumbsItem: FC<{\n item: {text: string; href: string};\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 (\n <div data-qa={item.text} onClick={handleItemClick}>\n {item.text}\n </div>\n );\n};\n","import React, {FC, useCallback, useMemo} from 'react';\nimport {Button, Icon} from '@gravity-ui/uikit';\nimport FolderTreeIcon from '@gravity-ui/icons/svgs/folder-tree.svg';\nimport {BreadcrumbsItem as BreadcrumbsItemComponent} from './BreadcrumbsItem';\nimport {Breadcrumbs, BreadcrumbsItem} from '../../../../components/Breadcrumbs';\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 if (!cluster) return [];\n\n let href = '/';\n const result = [{text: cluster, href: '/'}];\n path.split('/').forEach((text) => {\n if (text) {\n href += '/' + text;\n result.push({\n text,\n href,\n });\n }\n });\n\n return result.map((item, index) => {\n const isCurrent = index === result.length - 1;\n return (\n <BreadcrumbsItem key={item.text}>\n <BreadcrumbsItemComponent\n item={item}\n isCurrent={isCurrent}\n onClick={handleBreadcrumbsClick}\n />\n </BreadcrumbsItem>\n );\n });\n }, [cluster, path, handleBreadcrumbsClick]);\n\n return (\n <>\n <Button size=\"s\" view=\"flat\" onClick={onClusterChangeClick}>\n <Icon data={FolderTreeIcon} size={16} />\n </Button>\n <Breadcrumbs showRoot>{items}</Breadcrumbs>\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 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 queryEngine: QueryEngine;\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 queryEngine,\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 ...(dynamic || queryEngine !== QueryEngine.YT_QL\n ? [\n {\n text: 'SELECT',\n action: (\n e:\n | React.MouseEvent<HTMLElement>\n | KeyboardEvent,\n ) => {\n e.stopPropagation();\n onEditorInsert(path, 'select');\n },\n },\n ]\n : []),\n ],\n },\n {\n text: 'Create new query',\n items: [\n ...(dynamic\n ? [\n {\n text: 'SELECT (YT QL)',\n action: (\n e:\n | React.MouseEvent<HTMLElement>\n | KeyboardEvent,\n ) => {\n e.stopPropagation();\n onNewQuery(path, QueryEngine.YT_QL);\n },\n },\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 queryEngine={engine}\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 {useDispatch} from 'react-redux';\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';\nimport {showCellPreviewModal} from '../../../../store/actions/navigation/modals/cell-preview';\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 dispatch = useDispatch();\n const onShowPreview = React.useCallback(\n (columnName: string, rowIndex: number) => {\n dispatch(showCellPreviewModal(columnName, rowIndex));\n },\n [dispatch],\n );\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 onShowPreview,\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 {YTApiId, ytApiV3Id} from '../../../../../rum/rum-wrap-api';\nimport {\n getParsedError,\n parseErrorFromResponse,\n prepareRows,\n} from '../../../../../utils/navigation/content/table/table';\nimport {UnipikaValue} from '../../../../../components/Yson/StructuredYson/StructuredYsonTypes';\nimport {TypeArray} from '../../../../../components/SchemaDataType/dataTypes';\n\ntype LoadDynamicTableRequest = (props: {\n setup: unknown;\n parameters: unknown;\n cancellation?: unknown;\n reverseRows?: boolean;\n}) => Promise<{\n columns: string[];\n rows: UnipikaValue[];\n yqlTypes: TypeArray[] | null;\n}>;\n\nexport const readDynamicTable: LoadDynamicTableRequest = async ({\n setup,\n parameters,\n cancellation,\n reverseRows,\n}) => {\n const {data} = await ytApiV3Id.selectRows(YTApiId.dynTableSelectRowsPreload, {\n setup,\n parameters,\n cancellation,\n });\n\n const error = parseErrorFromResponse(data);\n if (error) return Promise.reject(getParsedError(error));\n\n const {columns, rows, yqlTypes} = prepareRows(data, reverseRows);\n return {columns, rows, yqlTypes};\n};\n","import {YTApiId, ytApiV3Id} from '../../../../../rum/rum-wrap-api';\nimport {\n getParsedError,\n parseErrorFromResponse,\n prepareHeaders,\n prepareRows,\n} from '../../../../../utils/navigation/content/table/table';\nimport {UnipikaValue} from '../../../../../components/Yson/StructuredYson/StructuredYsonTypes';\nimport {TypeArray} from '../../../../../components/SchemaDataType/dataTypes';\n\ntype LoadStaticTableRows = (props: {\n setup: unknown;\n parameters: unknown;\n cancellation?: unknown;\n reverseRows?: boolean;\n}) => Promise<{\n columns: string[];\n rows: UnipikaValue[];\n omittedColumns: string[];\n yqlTypes: TypeArray[] | null;\n}>;\n\nexport const readStaticTable: LoadStaticTableRows = async ({\n setup,\n parameters,\n cancellation,\n reverseRows,\n}) => {\n const {data, headers} = await ytApiV3Id.readTable(YTApiId.tableRead, {\n setup,\n parameters,\n cancellation,\n });\n\n const error = parseErrorFromResponse(data);\n if (error) return Promise.reject(getParsedError(error));\n\n const {columns, rows, yqlTypes} = prepareRows(data, reverseRows);\n const omittedColumns = prepareHeaders(headers);\n\n return {columns, omittedColumns, rows, yqlTypes};\n};\n","import {isMediaTag} from '../../../../../utils/yql-types';\n\nconst getDefaultFormat = () => {\n return '--format json';\n};\n\nconst getImageResultFormat = (columnName: string, tag: string) => {\n const [_, extension] = tag.split('/');\n return `--format \"<columns=[${columnName}];enable_escaping=%false>schemaful_dsv\" >${columnName}.${extension}`;\n};\n\nexport const getCliCommandResultFormat = ({\n tag,\n columnName,\n}: {\n tag?: string;\n columnName: string;\n}) => {\n if (tag && isMediaTag(tag)) {\n return getImageResultFormat(columnName, tag as string);\n }\n\n return getDefaultFormat();\n};\n","import type {CellPreviewActionType} from '../../../modals/cell-preview';\nimport {\n getCurrentRowKey,\n getKeyColumns,\n getYqlTypes,\n} from '../../../../selectors/navigation/content/table-ts';\nimport Query from '../../../../../utils/navigation/content/table/query';\nimport {YTApiId, ytApiV3Id} from '../../../../../rum/rum-wrap-api';\nimport type {CancelTokenSource} from 'axios';\nimport {getCliCommandResultFormat} from './format';\n\nexport const getDynamicTableCellPath = ({\n index,\n path,\n columnName,\n}: {\n path: string;\n columnName: string;\n index: number;\n}): CellPreviewActionType => {\n return (_, getState) => {\n const yqlTypes = getYqlTypes(getState());\n const key = getCurrentRowKey(getState(), index);\n const keyColumns = getKeyColumns(getState());\n\n const offset = Query.prepareKey(key, yqlTypes);\n\n return Query.prepareQuery({\n path,\n offset,\n offsetColumns: keyColumns,\n columns: [columnName],\n limit: 1,\n });\n };\n};\n\nexport const getDynamicTableCliCommand = ({\n cellPath,\n tag,\n columnName,\n}: {\n cellPath: string;\n columnName: string;\n tag?: string;\n}): string => {\n return `yt select-rows 'select ${cellPath}' ${getCliCommandResultFormat({columnName, tag})}`;\n};\n\nexport const loadDynamicTableCellPreview = ({\n cellPath,\n output_format,\n cancellation,\n}: {\n cellPath: string;\n output_format: any;\n cancellation: (token: CancelTokenSource) => void;\n}) => {\n return async () => {\n const setup = {};\n\n return await ytApiV3Id.selectRows(YTApiId.dynTableSelectRowsPreload, {\n setup,\n parameters: {\n output_format,\n query: cellPath,\n },\n cancellation,\n });\n };\n};\n","import {type CellPreviewActionType} from '../../../modals/cell-preview';\nimport {getOffsetValue} from '../../../../selectors/navigation/content/table';\nimport type {CancelTokenSource} from 'axios';\nimport {ytApiV4} from '../../../../../rum/rum-wrap-api';\nimport {getCliCommandResultFormat} from './format';\n\nexport const getStaticTableCellPath = ({\n path,\n columnName,\n index,\n}: {\n path: string;\n columnName: string;\n index: number;\n}): CellPreviewActionType => {\n return (_, getState) => {\n const offset = getOffsetValue(getState());\n\n const rowIndex = typeof offset === 'number' ? index + offset : index;\n\n return `${path}{${columnName}}[#${rowIndex}:#${rowIndex + 1}]`;\n };\n};\n\nexport const getStaticTableCliCommand = ({\n cellPath,\n columnName,\n tag,\n}: {\n cellPath: string;\n columnName: string;\n tag?: string;\n}): string => {\n return `yt read-table '${cellPath}' ${getCliCommandResultFormat({columnName, tag})}`;\n};\n\nexport const loadStaticTableCellPreview = ({\n cellPath,\n output_format,\n cancellation,\n}: {\n cellPath: string;\n output_format: any;\n cancellation: (token: CancelTokenSource) => void;\n}): CellPreviewActionType => {\n return async () => {\n return await ytApiV4.readTable({\n parameters: {\n path: cellPath,\n output_format,\n },\n cancellation,\n });\n };\n};\n","import {getPath} from '../../../../selectors/navigation';\nimport {batch} from 'react-redux';\nimport {getDefaultRequestOutputFormat} from '../../../../../utils/navigation/content/table/table';\nimport {CELL_PREVIEW, PREVIEW_LIMIT} from '../../../../../constants/modals/cell-preview';\nimport {isCancelled} from '../../../../../utils/cancel-helper';\nimport {\n CellPreviewActionType,\n cellPreviewCancelHelper,\n openCellPreview,\n} from '../../../modals/cell-preview';\nimport unipika from '../../../../../common/thor/unipika';\nimport {getIsDynamic} from '../../../../selectors/navigation/content/table-ts';\nimport {\n getDynamicTableCellPath,\n getDynamicTableCliCommand,\n loadDynamicTableCellPreview,\n} from './dynamic-table';\nimport {\n getStaticTableCellPath,\n getStaticTableCliCommand,\n loadStaticTableCellPreview,\n} from './static-table';\n\nconst getCellPath = ({\n columnName,\n index,\n}: {\n columnName: string;\n index: number;\n}): CellPreviewActionType => {\n return (dispatch, getState) => {\n const path: string = getPath(getState());\n const isDynamic = getIsDynamic(getState());\n\n const action = isDynamic ? getDynamicTableCellPath : getStaticTableCellPath;\n\n return dispatch(action({path, columnName, index}));\n };\n};\n\nconst getCliCommand = ({\n cellPath,\n columnName,\n tag,\n}: {\n cellPath: string;\n columnName: string;\n tag?: string;\n}): CellPreviewActionType => {\n return (_dispatch, getState) => {\n const isDynamic = getIsDynamic(getState());\n\n const fn = isDynamic ? getDynamicTableCliCommand : getStaticTableCliCommand;\n\n return fn({cellPath, columnName, tag});\n };\n};\n\nconst loadCellPreview = ({cellPath}: {cellPath: string}): CellPreviewActionType => {\n return (dispatch, getState) => {\n const isDynamic = getIsDynamic(getState());\n\n const output_format: any = getDefaultRequestOutputFormat({\n stringLimit: PREVIEW_LIMIT,\n });\n\n output_format.$attributes.value_format = 'yql';\n\n const action = isDynamic ? loadDynamicTableCellPreview : loadStaticTableCellPreview;\n\n return dispatch(\n action({\n cellPath,\n output_format,\n cancellation: cellPreviewCancelHelper.removeAllAndSave,\n }),\n );\n };\n};\n\nexport const showCellPreviewModal = (\n columnName: string,\n index: number,\n tag?: string,\n): CellPreviewActionType => {\n return async (dispatch) => {\n const cellPath = dispatch(getCellPath({columnName, index}));\n\n const ytCliDownloadCommand: string = dispatch(getCliCommand({cellPath, columnName, tag}));\n\n batch(() => {\n dispatch({type: CELL_PREVIEW.REQUEST, data: {ytCliDownloadCommand}});\n dispatch(openCellPreview());\n });\n\n try {\n const json = await dispatch(loadCellPreview({cellPath}));\n\n const parsed = JSON.parse(json);\n\n const column = parsed.rows[0][columnName];\n\n const value = column[0];\n const typeIndex = column[1];\n\n const flags: {incomplete: boolean} = {incomplete: false};\n\n const {$type, $value, $tag} = unipika.converters.yql(\n [value, parsed.yql_type_registry[typeIndex]],\n {\n maxStringSize: undefined,\n maxListSize: undefined,\n treatValAsData: true,\n },\n flags,\n );\n\n const isIncomplete = flags.incomplete;\n const noticeText = isIncomplete\n ? 'Unable to load content more than 16MiB. Please use the command bellow to load it locally.'\n : 'You could use the command bellow to load it locally.';\n\n dispatch({\n type: CELL_PREVIEW.SUCCESS,\n data: {data: {$type, $value: $tag ? $value.$value : $value, $tag}, noticeText},\n });\n } catch (error: any) {\n if (!isCancelled(error)) {\n dispatch({type: CELL_PREVIEW.FAILURE, data: {error}});\n }\n }\n };\n};\n","import concat_ from 'lodash/concat';\nimport reduce_ from 'lodash/reduce';\n\nexport function injectColumnsFromSchema(\n columns: Array<string>,\n omittedColumns: Array<string>,\n schemaColumns: Array<string>,\n) {\n const toSkip = reduce_(\n concat_(columns, omittedColumns),\n (acc, column) => {\n acc[column] = true;\n return acc;\n },\n {} as {[column: string]: true},\n );\n const toAdd = reduce_(\n schemaColumns,\n (acc, col) => {\n if (!toSkip[col]) {\n acc.push(col);\n }\n return acc;\n },\n [] as Array<string>,\n );\n return concat_(columns, toAdd);\n}\n","import filter_ from 'lodash/filter';\nimport map_ from 'lodash/map';\nimport sortBy_ from 'lodash/sortBy';\n\nimport unipika from '../../common/thor/unipika';\nimport ypath from '../../common/thor/ypath';\n\nimport CancelHelper from '../cancel-helper';\nimport {YTApiId, ytApiV3Id} from '../../rum/rum-wrap-api';\n\nexport const pathEditorRequests = new CancelHelper();\n\nfunction prepareSuggestions(initialPath, parentPath, children) {\n let suggestions = map_(children, (child) => {\n const prepared = {};\n\n prepared.parentPath = parentPath;\n prepared.childPath = '/' + unipika.decode(ypath.getValue(child));\n prepared.path = prepared.parentPath + prepared.childPath;\n prepared.type = ypath.getValue(child, '/@type');\n prepared.dynamic = ypath.getValue(child, '/@dynamic');\n prepared.targetPathBroken = ypath.getValue(child, '/@broken');\n\n return prepared;\n });\n\n suggestions = sortBy_(suggestions, 'childPath');\n\n return suggestions;\n}\n\nexport function preparePath(currentPath) {\n return ypath.YPath.create(currentPath, 'absolute').toSubpath(-2).stringify();\n}\n\nexport function loadSuggestions(path, customFilter) {\n const parentPath = preparePath(path);\n\n return ytApiV3Id\n .list(YTApiId.pathEditorLoadSuggestions, {\n parameters: {path: parentPath, attributes: ['type', 'dynamic']},\n cancellation: pathEditorRequests.saveCancelToken,\n })\n .then(ypath.getValue)\n .then((nodes) => prepareSuggestions(path, parentPath, nodes))\n .then((suggestions) => (customFilter ? customFilter(suggestions) : suggestions));\n}\n\nexport function filterByCurrentPath(currentPath, suggestions) {\n const path = currentPath.toLowerCase();\n\n return filter_(suggestions, (child) => {\n const hasPartOfPath = child.path.startsWith(path);\n const isShowCurrentChild = child.path !== path || child.type === 'map_node';\n\n return hasPartOfPath && isShowCurrentChild;\n });\n}\n\nexport function getNextSelectedIndex(suggestion, selectedIndex) {\n if (selectedIndex === -1 || selectedIndex === suggestion.length - 1) {\n return 0;\n }\n\n return selectedIndex + 1;\n}\n\nexport function getPrevSelectedIndex(suggestions, selectedIndex) {\n if (selectedIndex === -1 || selectedIndex === 0) {\n return suggestions.length - 1;\n }\n\n return selectedIndex - 1;\n}\n\nexport function getCompletedPath(suggestion) {\n return suggestion.type === 'map_node' ? suggestion.path + '/' : suggestion.path;\n}\n\nexport function getIconNameForType(type, targetPathBroken) {\n const icons = {\n document: 'file-alt',\n string_node: 'file-alt',\n int64_node: 'file-alt',\n uint64_node: 'file-alt',\n double_node: 'file-alt',\n boolean_node: 'file-alt',\n map_node: 'folder',\n scheduler_pool_tree_map: 'folder-tree',\n scheduler_pool: 'tasks',\n tablet_cell: 'th',\n journal: 'book',\n table: 'th',\n table_dynamic: 'dyn-th',\n replicated_table: 'th',\n chaos_replicated_table: 'chaos-replicated-table',\n replication_log_table: 'replication-log-table',\n file: 'file',\n topmost_transaction_map: 'folder',\n transaction_map: 'folder',\n transaction: 'code-branch',\n nested_transaction: 'code-branch',\n link: ypath.getBoolean(targetPathBroken) ? 'unlink' : 'link',\n rootstock: 'link',\n portal_entrance: 'link',\n cell_node: 'circle',\n cell_node_map: 'far circle',\n sys_node: 'cog',\n access_control_object_namespace_map: 'acl-namespace-map',\n access_control_object_namespace: 'acl-namespace',\n access_control_object: 'acl-object',\n };\n\n const icon = type ? icons[type] || 'not-suported' : 'eye-slash';\n\n return icon;\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport block from 'bem-cn-lite';\nimport unipika from '../../common/thor/unipika';\n\nimport ErrorBoundary from '../../components/ErrorBoundary/ErrorBoundary';\nimport Yson from '../../components/Yson/Yson';\nimport {UnipikaSettings} from '../../components/Yson/StructuredYson/StructuredYsonTypes';\n\n/**\n * See unipika for more details\n */\nexport type UnipikaValueType = Array<string | UnipikaValueType>;\n\nexport type YqlValueProps = {\n value?: unknown;\n type: UnipikaValueType;\n settings: UnipikaSettings;\n inline?: boolean;\n};\n\nexport default class YqlValue extends React.Component<YqlValueProps> {\n static propTypes = {\n settings: PropTypes.object,\n value: PropTypes.any,\n type: PropTypes.array,\n inline: PropTypes.bool,\n };\n\n static defaultProps = {\n inline: false,\n folding: false,\n settings: Yson.defaultUnipikaSettings,\n };\n\n static getFormattedValue(value: unknown, type: UnipikaValueType, settings: UnipikaSettings) {\n const yqlValue = [value, type];\n\n return settings.format === 'raw-json'\n ? unipika.formatRaw(yqlValue, settings)\n : unipika.formatFromYQL(yqlValue, settings);\n }\n\n render() {\n const {value, type, inline, settings} = this.props;\n\n const formattedValue = YqlValue.getFormattedValue(value, type, settings);\n\n let title;\n\n if (inline) {\n const titleSettings = Object.assign({}, settings, {\n asHTML: false,\n });\n\n title =\n settings.format === 'raw-json'\n ? unipika.formatRaw(value, titleSettings)\n : unipika.formatFromYQL(value, titleSettings);\n }\n\n const classes = block('unipika-wrapper')({\n inline: inline && 'yes',\n });\n\n return (\n <ErrorBoundary>\n {settings.asHTML ? (\n <div className={classes} title={title} dir=\"auto\">\n <pre\n className=\"unipika\"\n dangerouslySetInnerHTML={{__html: formattedValue}}\n />\n </div>\n ) : (\n <div\n className={classes}\n title={title}\n dir=\"auto\"\n dangerouslySetInnerHTML={{__html: formattedValue}}\n />\n )}\n </ErrorBoundary>\n );\n }\n}\n","import React, {useState} from 'react';\nimport cn from 'bem-cn-lite';\nimport copyToClipboard from 'copy-to-clipboard';\n\nimport {Button, Flex, Icon as UIKitIcon} from '@gravity-ui/uikit';\nimport {Eye} from '@gravity-ui/icons';\n\nimport unipika from '../../common/thor/unipika';\nimport ClipboardButton from '../../components/ClipboardButton/ClipboardButton';\nimport YqlValue from '../../components/YqlValue/YqlValue';\nimport Yson from '../../components/Yson/Yson';\nimport Label from '../../components/Label/Label';\nimport {TypeArray} from '../../components/SchemaDataType/dataTypes';\nimport {Tooltip} from '../../components/Tooltip/Tooltip';\nimport {UnipikaSettings} from '../../components/Yson/StructuredYson/StructuredYsonTypes';\n\nimport './ColumnCell.scss';\n\nconst block = cn('yt-column-cell');\n\nfunction unquote(v: string) {\n const match = /^\"(.*)\"$/.exec(v);\n return match ? match[1] : v;\n}\n\ntype CellValueType =\n | null\n | (CellValueData & {\n $incomplete?: boolean;\n [k: number]: {inc?: boolean};\n });\n\ntype CellValueData = {$type: string; $value: string} | {$type?: undefined; $value: unknown};\n\ntype ColumnCellProps = {\n className?: string;\n\n value?: CellValueType | null;\n yqlTypes: Array<TypeArray> | null;\n ysonSettings: UnipikaSettings;\n allowRawStrings?: boolean | null;\n rowIndex: number;\n columnName: string;\n onShowPreview: (columnName: string, rowIndex: number, tag?: string) => void;\n};\n\nexport function ColumnCell({\n value = null,\n yqlTypes,\n ysonSettings,\n allowRawStrings,\n className,\n rowIndex,\n columnName,\n onShowPreview,\n}: ColumnCellProps) {\n const [hovered, setHovered] = useState(false);\n const handleMouseEnter = () => setHovered(true);\n const handleMouseLeave = () => setHovered(false);\n\n const formatType = yqlTypes && value ? yqlTypes[Number(value[1])] : undefined;\n\n const escapedValue =\n formatType && value\n ? YqlValue.getFormattedValue(value[0], formatType, {\n ...ysonSettings,\n asHTML: false,\n })\n : unipika.prettyprint(value, {...ysonSettings, asHTML: false});\n const formattedValue =\n formatType && value ? (\n <YqlValue value={value[0]} type={formatType} settings={ysonSettings} />\n ) : (\n <Yson value={value} settings={ysonSettings} />\n );\n\n const {tag, isIncompleteTagged, isIncompleteValue} = React.useMemo(() => {\n let isIncompleteTagged = false;\n let isIncompleteValue = false;\n let tag: string | undefined;\n\n if (value && formatType) {\n const flags: {incomplete: boolean} = {incomplete: false};\n\n const {$tag} = unipika.converters.yql([value[0], formatType], ysonSettings, flags);\n\n isIncompleteValue = flags.incomplete;\n isIncompleteTagged = flags.incomplete && $tag;\n tag = $tag;\n }\n\n return {tag, isIncompleteTagged, isIncompleteValue};\n }, [value, formatType, ysonSettings]);\n\n const allowRawCopy = value?.$type === 'string';\n const useRawString = allowRawCopy && allowRawStrings;\n let copyTooltip = 'Hold SHIFT-key to copy raw value';\n if (useRawString) {\n copyTooltip = 'Hold SHIFT-key to copy escaped value';\n }\n\n const visibleValue = !useRawString ? (\n formattedValue\n ) : (\n <div className={'unipika-wrapper'}>\n <pre className={'unipika'}>\n <span className={'string'}>{value?.$value}</span>\n </pre>\n </div>\n );\n\n return (\n <div\n className={block(null, className) /*dataTableBlock('value')*/}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n >\n {isIncompleteTagged ? (\n <Label theme=\"warning\" text={`Incomplete '${tag}' type`} />\n ) : (\n visibleValue\n )}\n {(hovered || isIncompleteTagged) && (\n <div className={block('control-button-wrapper')}>\n <Flex alignItems=\"center\">\n {value && !isIncompleteValue && (\n <Tooltip\n content={\n !allowRawCopy ? undefined : (\n <span className={block('copy-value-tooltip')}>\n {copyTooltip}\n </span>\n )\n }\n >\n <ClipboardButton\n view=\"flat-secondary\"\n size=\"m\"\n text={useRawString ? value.$value : unquote(escapedValue)}\n onCopy={(event: React.MouseEvent) => {\n if (event?.shiftKey && allowRawCopy) {\n copyToClipboard(\n useRawString ? unquote(escapedValue) : value.$value,\n );\n }\n }}\n />\n </Tooltip>\n )}\n {isIncompleteValue && (\n <Button\n view=\"flat-secondary\"\n size=\"m\"\n qa=\"truncated-preview-button\"\n onClick={() => onShowPreview(columnName, rowIndex, tag)}\n >\n <UIKitIcon data={Eye} size=\"12\" />\n </Button>\n )}\n </Flex>\n </div>\n )}\n </div>\n );\n}\n","import React from 'react';\nimport {Tooltip} from '../../components/Tooltip/Tooltip';\nimport SchemaDataType from '../../components/SchemaDataType/SchemaDataType';\nimport Yson from '../../components/Yson/Yson';\nimport unipika from '../../common/thor/unipika';\nimport Icon from '../../components/Icon/Icon';\nimport {ColumnCell} from '../../components/ColumnCell/ColumnCell';\n\nimport map_ from 'lodash/map';\n\nimport {TypeArray} from '../../components/SchemaDataType/dataTypes';\nimport type {YsonSettings} from '../../store/selectors/thor/unipika';\n\nexport function prepareColumns({\n columns,\n keyColumns,\n yqlTypes,\n ysonSettings,\n useRawStrings,\n schemaByName,\n onShowPreview,\n}: {\n columns: {name: string; sortOrder?: string}[];\n keyColumns: string[];\n yqlTypes: TypeArray[] | null;\n ysonSettings: YsonSettings;\n useRawStrings: boolean | null | undefined;\n schemaByName: Record<string, any>;\n onShowPreview: (columnName: string, rowIndex: number, tag?: string) => void;\n}) {\n return map_(columns, (column) => {\n const render = ({value, index}: {value?: any; index: number; row: any}) => (\n <ColumnCell\n allowRawStrings={useRawStrings}\n value={value}\n yqlTypes={yqlTypes || []}\n ysonSettings={ysonSettings}\n rowIndex={index}\n columnName={column.name}\n onShowPreview={onShowPreview}\n />\n );\n const {sortOrder} = column;\n const isKeyColumn = keyColumns.indexOf(column.name) > -1;\n const {type_v3} = schemaByName[column.name] || {};\n const header = (\n <Tooltip content={Boolean(type_v3) && <SchemaDataType type_v3={type_v3} />}>\n <Yson value={unipika.unescapeKeyValue(column.name)} settings={ysonSettings} inline>\n {isKeyColumn && (\n <Icon\n awesome={\n sortOrder === 'descending'\n ? 'sort-amount-up'\n : 'sort-amount-down-alt'\n }\n />\n )}\n </Yson>\n </Tooltip>\n );\n return Object.assign({}, column, {render, header});\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 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;","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;","import { addComponentKeysets } from '../../utils/addComponentKeysets';\nimport en from './en.json';\nimport ru from './ru.json';\nconst COMPONENT = 'Table';\nexport default addComponentKeysets({ en, ru }, COMPONENT);\n","'use client';\nimport React from 'react';\nimport _get from 'lodash/get';\nimport _has from 'lodash/has';\nimport _isNumber from 'lodash/isNumber';\nimport { block } from '../utils/cn';\nimport { warnOnce } from '../utils/warn';\nimport i18n from './i18n';\nimport './Table.css';\nconst DASH = '\\u2014';\nfunction warnAboutPhysicalValues(propName) {\n warnOnce(`[Table] Physical values (left, right) of \"${propName}\" property are deprecated. Use logical values (start, end) instead.`);\n}\nfunction normalizeSides(side, propName) {\n if (side === 'left') {\n warnAboutPhysicalValues(propName);\n return 'start';\n }\n if (side === 'right') {\n warnAboutPhysicalValues(propName);\n return 'end';\n }\n return side;\n}\nconst b = block('table');\nexport class Table extends React.Component {\n constructor() {\n super(...arguments);\n this.state = {\n activeScrollElement: 'scrollContainer',\n columnsStyles: Array.from(this.props.columns, () => ({})),\n columnHeaderRefs: Array.from(this.props.columns, () => React.createRef()),\n };\n this.tableRef = React.createRef();\n this.scrollContainerRef = React.createRef();\n this.horizontalScrollBarRef = React.createRef();\n this.horizontalScrollBarInnerRef = React.createRef();\n this.renderRow = (item, rowIndex) => {\n const { columns, isRowDisabled, onRowClick, onRowMouseEnter, onRowMouseLeave, onRowMouseDown, getRowClassNames, verticalAlign, edgePadding, wordWrap, getRowDescriptor, } = this.props;\n const { columnsStyles } = this.state;\n const descriptor = getRowDescriptor === null || getRowDescriptor === void 0 ? void 0 : getRowDescriptor(item, rowIndex);\n const disabled = (descriptor === null || descriptor === void 0 ? void 0 : descriptor.disabled) || (isRowDisabled === null || isRowDisabled === void 0 ? void 0 : isRowDisabled(item, rowIndex)) || false;\n const additionalClassNames = (descriptor === null || descriptor === void 0 ? void 0 : descriptor.classNames) || (getRowClassNames === null || getRowClassNames === void 0 ? void 0 : getRowClassNames(item, rowIndex)) || [];\n const interactive = Boolean(!disabled && onRowClick);\n return (React.createElement(\"tr\", { key: Table.getRowId(this.props, item, rowIndex), onClick: !disabled && onRowClick ? onRowClick.bind(null, item, rowIndex) : undefined, onMouseEnter: !disabled && onRowMouseEnter\n ? onRowMouseEnter.bind(null, item, rowIndex)\n : undefined, onMouseLeave: !disabled && onRowMouseLeave\n ? onRowMouseLeave.bind(null, item, rowIndex)\n : undefined, onMouseDown: !disabled && onRowMouseDown\n ? onRowMouseDown.bind(null, item, rowIndex)\n : undefined, className: b('row', { disabled, interactive, 'vertical-align': verticalAlign }, additionalClassNames.join(' ')) }, columns.map((column, colIndex) => {\n const { id, align: rawAlign, primary, className, sticky: rawSticky } = column;\n const content = Table.getBodyCellContent(column, item, rowIndex);\n const align = normalizeSides(rawAlign, 'column.align');\n const sticky = normalizeSides(rawSticky, 'column.sticky');\n return (React.createElement(\"td\", { key: id, style: columnsStyles[colIndex], className: b('cell', {\n align,\n primary,\n sticky,\n ['edge-padding']: edgePadding,\n ['word-wrap']: wordWrap,\n }, className) }, content));\n })));\n };\n this.handleScrollContainerMouseenter = () => {\n this.setState({ activeScrollElement: 'scrollContainer' });\n };\n this.handleScrollContainerScroll = () => {\n if (this.state.activeScrollElement === 'scrollContainer' &&\n this.horizontalScrollBarRef.current &&\n this.scrollContainerRef.current) {\n this.horizontalScrollBarRef.current.scrollLeft =\n this.scrollContainerRef.current.scrollLeft;\n }\n };\n this.handleHorizontalScrollBarMouseenter = () => {\n this.setState({ activeScrollElement: 'scrollBar' });\n };\n this.handleHorizontalScrollBarScroll = () => {\n if (this.state.activeScrollElement === 'scrollBar' &&\n this.horizontalScrollBarRef.current &&\n this.scrollContainerRef.current) {\n this.scrollContainerRef.current.scrollLeft =\n this.horizontalScrollBarRef.current.scrollLeft;\n }\n };\n }\n // Static methods may be used by HOCs\n static getRowId(props, item, rowIndex) {\n const { data, getRowId, getRowDescriptor } = props;\n const index = rowIndex !== null && rowIndex !== void 0 ? rowIndex : data.indexOf(item);\n const descriptor = getRowDescriptor === null || getRowDescriptor === void 0 ? void 0 : getRowDescriptor(item, index);\n if ((descriptor === null || descriptor === void 0 ? void 0 : descriptor.id) !== undefined) {\n return descriptor.id;\n }\n if (typeof getRowId === 'function') {\n return getRowId(item, index);\n }\n if (getRowId && getRowId in item) {\n return String(item[getRowId]);\n }\n return String(index);\n }\n static getHeadCellContent(column) {\n const { id, name } = column;\n let content;\n if (typeof name === 'function') {\n content = name();\n }\n else if (typeof name === 'string') {\n content = name;\n }\n else {\n content = id;\n }\n return content;\n }\n static getBodyCellContent(column, item, rowIndex) {\n const { id, template, placeholder } = column;\n let placeholderValue;\n if (typeof placeholder === 'function') {\n placeholderValue = placeholder(item, rowIndex);\n }\n else {\n placeholderValue = placeholder !== null && placeholder !== void 0 ? placeholder : DASH;\n }\n let value;\n if (typeof template === 'function') {\n value = template(item, rowIndex);\n }\n else if (typeof template === 'string') {\n value = _get(item, template);\n }\n else if (_has(item, id)) {\n value = _get(item, id);\n }\n if ([undefined, null, ''].includes(value) && placeholderValue) {\n return placeholderValue;\n }\n return value;\n }\n static getDerivedStateFromProps(props, state) {\n if (props.columns.length === state.columnHeaderRefs.length) {\n return null;\n }\n return {\n columnHeaderRefs: Array.from(props.columns, () => React.createRef()),\n };\n }\n componentDidMount() {\n if (this.props.stickyHorizontalScroll) {\n this.tableResizeObserver = new ResizeObserver((entries) => {\n var _a;\n const { contentRect } = entries[0];\n // Sync scrollbar width with table width\n (_a = this.horizontalScrollBarInnerRef.current) === null || _a === void 0 ? void 0 : _a.style.setProperty('width', `${contentRect.width}px`);\n });\n if (this.tableRef.current) {\n this.tableResizeObserver.observe(this.tableRef.current);\n }\n if (this.scrollContainerRef.current) {\n this.scrollContainerRef.current.addEventListener('scroll', this.handleScrollContainerScroll);\n this.scrollContainerRef.current.addEventListener('mouseenter', this.handleScrollContainerMouseenter);\n }\n if (this.horizontalScrollBarRef.current) {\n this.horizontalScrollBarRef.current.addEventListener('scroll', this.handleHorizontalScrollBarScroll);\n this.horizontalScrollBarRef.current.addEventListener('mouseenter', this.handleHorizontalScrollBarMouseenter);\n }\n }\n this.columnsResizeObserver = new ResizeObserver((entries) => {\n // fix ResizeObserver loop error\n window.requestAnimationFrame(() => {\n if (!Array.isArray(entries) || !entries.length) {\n return;\n }\n this.updateColumnStyles();\n });\n });\n if (this.tableRef.current) {\n this.columnsResizeObserver.observe(this.tableRef.current);\n }\n this.updateColumnStyles();\n }\n componentDidUpdate(prevProps) {\n if (this.props.columns !== prevProps.columns) {\n this.updateColumnStyles();\n }\n }\n componentWillUnmount() {\n if (this.props.stickyHorizontalScroll) {\n if (this.tableResizeObserver) {\n this.tableResizeObserver.disconnect();\n }\n if (this.scrollContainerRef.current) {\n this.scrollContainerRef.current.removeEventListener('scroll', this.handleScrollContainerScroll);\n this.scrollContainerRef.current.removeEventListener('mouseenter', this.handleScrollContainerMouseenter);\n }\n if (this.horizontalScrollBarRef.current) {\n this.horizontalScrollBarRef.current.removeEventListener('scroll', this.handleHorizontalScrollBarScroll);\n this.horizontalScrollBarRef.current.removeEventListener('mouseenter', this.handleHorizontalScrollBarMouseenter);\n }\n }\n if (this.columnsResizeObserver) {\n this.columnsResizeObserver.disconnect();\n }\n }\n render() {\n const { columns, stickyHorizontalScroll, className, qa } = this.props;\n const withPrimary = columns.some(({ primary }) => primary);\n return (React.createElement(\"div\", { className: b({\n 'with-primary': withPrimary,\n 'with-sticky-scroll': stickyHorizontalScroll,\n }, className), \"data-qa\": qa }, stickyHorizontalScroll ? (React.createElement(React.Fragment, null,\n React.createElement(\"div\", { ref: this.scrollContainerRef, className: b('scroll-container') }, this.renderTable()),\n this.renderHorizontalScrollBar())) : (this.renderTable())));\n }\n renderHead() {\n const { columns, edgePadding, wordWrap } = this.props;\n const { columnsStyles } = this.state;\n return (React.createElement(\"thead\", { className: b('head') },\n React.createElement(\"tr\", { className: b('row') }, columns.map((column, index) => {\n const { id, align: rawAlign, primary, sticky: rawSticky, className } = column;\n const align = normalizeSides(rawAlign, 'column.align');\n const sticky = normalizeSides(rawSticky, 'column.sticky');\n const content = Table.getHeadCellContent(column);\n return (React.createElement(\"th\", { key: id, ref: this.state.columnHeaderRefs[index], style: columnsStyles[index], className: b('cell', {\n align,\n primary,\n sticky,\n ['edge-padding']: edgePadding,\n ['word-wrap']: wordWrap,\n }, className) }, content));\n }))));\n }\n renderBody() {\n const { data } = this.props;\n return (React.createElement(\"tbody\", { className: b('body') }, data.length > 0 ? data.map(this.renderRow) : this.renderEmptyRow()));\n }\n renderTable() {\n return (React.createElement(\"table\", { ref: this.tableRef, className: b('table') },\n this.renderHead(),\n this.renderBody()));\n }\n renderEmptyRow() {\n const { columns, emptyMessage } = this.props;\n return (React.createElement(\"tr\", { className: b('row', { empty: true }) },\n React.createElement(\"td\", { className: b('cell'), colSpan: columns.length }, emptyMessage ? emptyMessage : i18n('label_empty'))));\n }\n renderHorizontalScrollBar() {\n const { stickyHorizontalScroll, stickyHorizontalScrollBreakpoint = 0 } = this.props;\n return (React.createElement(\"div\", { ref: this.horizontalScrollBarRef, className: b('horizontal-scroll-bar', {\n 'sticky-horizontal-scroll': stickyHorizontalScroll,\n }), style: { bottom: `${stickyHorizontalScrollBreakpoint}px` }, \"data-qa\": \"sticky-horizontal-scroll-breakpoint-qa\" },\n React.createElement(\"div\", { ref: this.horizontalScrollBarInnerRef, className: b('horizontal-scroll-bar-inner') })));\n }\n updateColumnStyles() {\n this.setState((prevState) => {\n const columnsWidth = prevState.columnHeaderRefs.map((ref) => ref.current === null ? undefined : ref.current.getBoundingClientRect().width);\n const columnsStyles = this.props.columns.map((_, index) => this.getColumnStyles(index, columnsWidth));\n return { columnsStyles };\n });\n }\n getColumnStyles(index, columnsWidth) {\n const { columns } = this.props;\n const column = columns[index];\n const style = {};\n if (typeof column.width === 'string') {\n return { maxWidth: 0, width: column.width };\n }\n if (typeof column.width !== 'undefined') {\n style.width = column.width;\n }\n if (!column.sticky) {\n return style;\n }\n const filteredColumns = column.sticky === 'left' || column.sticky === 'start'\n ? columnsWidth.slice(0, index)\n : columnsWidth.slice(index + 1);\n const styleName = column.sticky === 'left' || column.sticky === 'start'\n ? 'insetInlineStart'\n : 'insetInlineEnd';\n style[styleName] = filteredColumns.reduce((start, width) => {\n return _isNumber(width) ? start + width : start;\n }, 0);\n return style;\n }\n}\nTable.defaultProps = {\n edgePadding: true,\n};\n"],"names":["shouldClientNavigate","link","modifiers","target","getAttribute","href","origin","location","hasAttribute","metaKey","ctrlKey","altKey","shiftKey","b","BreadcrumbItem","props","Element","domProps","filterDOMProps","labelable","title","children","handleAction","event","disabled","current","preventDefault","onAction","currentTarget","navigate","HTMLAnchorElement","isDefaultPrevented","routerOptions","isDisabled","linkProps","onClick","undefined","hrefLang","rel","download","ping","referrerPolicy","role","tabIndex","onKeyDown","key","itemType","Object","assign","className","BreadcrumbsSeparator","separator","displayName","addComponentKeysets","en","Item","_props","ref","listRef","containerRef","useForkRef","items","forEach","child","index","push","visibleItemsCount","setVisibleItemsCount","length","calculated","setCalculated","handleResize","onResize","element","window","ResizeObserver","addEventListener","removeEventListener","observer","entries","observe","disconnect","useResizeObserver","lastChildren","visibleItems","list","listItems","Array","from","containerWidth","offsetWidth","newVisibleItemsCount","calculatedWidth","maxItems","Infinity","rootWidth","showRoot","item","shift","scrollWidth","lastItem","pop","Math","min","i","max","recalculate","contents","breadcrumbs","endItems","rootItem","hiddenItems","slice","menuItem","DropdownMenu","map","el","text","action","_a","popupProps","staircase","popupStyle","placement","popupPlacement","renderSwitcher","Button","i18n","size","view","Icon","lastIndex","breadcrumbItems","isCurrent","calculating","qa","style","cn","Breadcrumbs","_ref","_objectWithoutProperties","_excluded","_jsx","UBreadcrumbs","_objectSpread","block","RowsCount","count","isDynamic","_jsxs","React","hammer","format","Popover","content","awesome","AutomaticModeSwitchEditor","value","onEdit","onClose","_React$useState","_React$useState2","_slicedToArray","error","setError","handleAdd","_ref2","_asyncToGenerator","_regeneratorRuntime","_callee","form","_form$getState","values","_context","prev","next","getState","t0","stop","_x","apply","arguments","YTDFDialog","pristineSubmittable","headerProps","onAdd","visible","initialValues","fields","name","type","caption","extras","options","label","concat","_toConsumableArray","makeErrorFields","AutomaticModeSwitch","_ref3","_React$useState3","_React$useState4","showEditor","setShowEditor","handleShow","handleClose","Switch","checked","onUpdate","StatusBulb","theme","replicatedTableTracker","attributes","ypath","getValue","LabelOnOff","tableSize","mediumList","_ypath$getValues","getValues","_ypath$getValues2","rowCount","chunkCount","dataWeight","Boolean","Template","FormattedValue","tableStorage","tableType","optimizeFor","Label","compression","erasureReplication","dynTableInfo","cluster","tabletErrorCount","_ypath$getValues3","_ypath$getValues4","tabletCellBundle","tabletState","inMemoryMode","tabletUrl","tabletActiveBundleLink","Link","routed","url","makeMetaItems","_ref$mediumList","_ref$tabletErrorCount","onEditEnableReplicatedTableTracker","cf","sorted","chaosCellBundle","enable_replicated_table_tracker","chaosUrl","tabletActiveChaosBundleLink","reduce_","acc","getCommonFields","CypressNodeTypes","REPLICATED_TABLE","REPLICATION_LOG_TABLE","main","automaticModeSwitch","CHAOS_REPLICATED_TABLE","SchemaDataType","type_v3","primitiveTypes","useSelector","getPrimitiveTypesMap","dataTypeProps","getType","parseV3Type","_unused","DataType","_Fragment","BreadcrumbsItem","e","NavigationBreadcrumbs","path","onClusterChangeClick","onItemClick","handleBreadcrumbsClick","useCallback","newPath","useMemo","result","split","BreadcrumbsItemComponent","data","FolderTreeIcon","xmlns","fill","viewBox","fillRule","d","clipRule","HeaderActions","isFavorite","showCopyBtn","onFavoriteToggle","onPathCopy","onPastePath","StarFillIcon","StarIcon","TextIndentIcon","CopyIcon","loadDynamicTableRequest","clusterConfig","login","schema","keyColumns","limit","output_format","allColumns","permissions","_permissions$columns$","availableColumns","omittedColumns","aColumns","parameters","setup","_yield$wrapApiPromise","columns","rows","yqlTypes","schemaColumns","wrapApiPromiseByToaster","ytApiV3Id","checkPermission","YTApiId","dynTableCheckPerm","proxy","getClusterProxy","permission","user","skipSuccessToast","toasterName","errorTitle","sent","isArray","abrupt","Promise","reject","Error","reduce","includes","deniedKeyColumns","_defineProperty","unipika","decode","query","Query","prepareQuery","offset","dump_error_into_response","transformResponse","_ref4","parsedData","rawResponse","headers","JSONParser","readDynamicTable","_ref5","injectColumnsFromSchema","loadStaticTable","omit_inaccessible_columns","table_reader","workload_descriptor","category","readStaticTable","isTableNode","isFolderNode","nodeType","loadTableAttributes","get","navigationAttributes","makePathByQueryEngine","engine","QueryEngine","YQL","YT_QL","CHYT","createTableSelect","join","id","insertTextWhereCursor","mEditor","position","getPosition","edit","range","Range","lineNumber","column","executeEdits","toaster","Toaster","toggleFavoritePath","favoritePath","dispatch","state","selectNavigationCluster","nodes","selectNavigationNodes","parentNS","createNestedNS","NAMESPACES","LOCAL","toggleFavourite","newNodes","node","setNodes","loadNodeByPath","favorites","response","selectNavigationClusterConfig","selectFavouritePaths","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","meta","getTableTypeByAttributes","setTable","Table","add","autoHiding","message","_x3","_x4","copyPathToClipboard","_callee4","_","_context4","navigator","clipboard","writeText","_x7","_x8","NavigationHeader","useDispatch","filter","selectNavigationFilter","selectNavigationPath","getQueryEngine","selectNavigationNodeType","getEditor","useMonaco","showFilter","handlePathCopy","handlePastePath","editor","pathString","Cluster","setCluster","val","TextInput","placeholder","hasClear","NavigationEmpty","Text","variant","width","height","order","icon","I","TableSorting","TableComponent","getComponentName","defaultCompareFunction","itemA","itemB","columnId","constructor","_b","super","this","defaultSortState","enhanceColumns","_originalName","sortState","getSortState","sortOrder","find","s","originContent","getHeadCellContent","align","reverse","handleColumnSortClick","bind","active","currentStateIndex","findIndex","currentState","nextColumnSort","getNextSortForColumn","handleSortStateChange","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","queryEngine","onClipboardCopy","onEditorInsert","onNewQuery","onNewWindowOpen","_useToggle","useToggle","_useToggle2","tableMenuOpen","toggleTapleMenuOpen","_useToggle3","_useToggle4","menuOpen","toggleMenuOpen","iconType","iconName","getIconNameForType","isSupported","showActions","handleStop","stopPropagation","unsupported","AwesomeIcon","ellipsis","open","onOpenToggle","SPYT","onSwitcherClick","iconEnd","ArrowUpRightFromSquareIcon","NodeList","showPrompt","togglePrompt","newQueryParams","useRef","selectNodeListByFilter","dirtyQuery","isQueryDraftEditted","isEmpty","handleNodeClick","handleFavoriteToggle","handleEditorInsert","URL","pathname","searchParams","append","toString","getNavigationUrl","handleNewWindowOpen","handlePromptConfirm","_callee5","_getQueryResultGlobal2","_getQueryDraft","settings","newSettings","_context5","getQueryDraft","createEmptyQuery","loadCliqueByCluster","updateQueryDraft","_x9","_x10","makeNewQueryWithTableSelect","handlePromptCancel","handleNewQuery","newEngine","NoContent","warning","NewQueryPromt","confirm","cancel","header","row","sort_order","required","SchemaTab","DataTableYT","useThemeYT","PreviewTab","table","ysonSettings","onShowPreview","columnName","rowIndex","showCellPreviewModal","prepareColumns","useRawStrings","schemaByName","NavigationTable","_useState","useState","_useState2","activeTab","setActiveTab","selectTableWithFilter","getPageSize","getTableYsonSettings","handleInsertTableSelect","RadioButton","defaultValue","MetaTable","NavigationBody","Navigation","useEffect","_callee3","r","_context3","navigationGetType","_x5","_x6","cancellation","reverseRows","_yield$ytApiV3Id$sele","_prepareRows","selectRows","dynTableSelectRowsPreload","parseErrorFromResponse","getParsedError","prepareRows","_yield$ytApiV3Id$read","readTable","tableRead","prepareHeaders","getCliCommandResultFormat","tag","isMediaTag","_tag$split","_tag$split2","extension","getImageResultFormat","getDynamicTableCellPath","getYqlTypes","getCurrentRowKey","getKeyColumns","prepareKey","offsetColumns","getDynamicTableCliCommand","cellPath","loadDynamicTableCellPreview","getStaticTableCellPath","getOffsetValue","getStaticTableCliCommand","loadStaticTableCellPreview","ytApiV4","getCellPath","getPath","getIsDynamic","getCliCommand","_dispatch","loadCellPreview","getDefaultRequestOutputFormat","stringLimit","PREVIEW_LIMIT","$attributes","value_format","cellPreviewCancelHelper","removeAllAndSave","ytCliDownloadCommand","json","parsed","typeIndex","flags","_unipika$converters$y","$type","$value","$tag","noticeText","batch","CELL_PREVIEW","REQUEST","openCellPreview","JSON","parse","incomplete","converters","yql","yql_type_registry","maxStringSize","maxListSize","treatValAsData","SUCCESS","isCancelled","FAILURE","toSkip","concat_","toAdd","col","pathEditorRequests","CancelHelper","preparePath","currentPath","YPath","create","toSubpath","stringify","loadSuggestions","customFilter","parentPath","pathEditorLoadSuggestions","saveCancelToken","then","initialPath","suggestions","map_","prepared","childPath","targetPathBroken","sortBy_","prepareSuggestions","filterByCurrentPath","toLowerCase","filter_","hasPartOfPath","startsWith","isShowCurrentChild","getNextSelectedIndex","suggestion","selectedIndex","getPrevSelectedIndex","getCompletedPath","icons","document","string_node","int64_node","uint64_node","double_node","boolean_node","map_node","scheduler_pool_tree_map","scheduler_pool","tablet_cell","journal","table_dynamic","replicated_table","chaos_replicated_table","replication_log_table","file","topmost_transaction_map","transaction_map","transaction","nested_transaction","getBoolean","rootstock","portal_entrance","cell_node","cell_node_map","sys_node","access_control_object_namespace_map","access_control_object_namespace","access_control_object","YqlValue","_React$Component","_inherits","_super","_createSuper","_classCallCheck","_createClass","_this$props","inline","formattedValue","getFormattedValue","titleSettings","asHTML","formatRaw","formatFromYQL","classes","ErrorBoundary","dir","dangerouslySetInnerHTML","__html","yqlValue","defaultProps","folding","Yson","defaultUnipikaSettings","unquote","v","match","exec","ColumnCell","_ref$value","allowRawStrings","hovered","setHovered","formatType","Number","escapedValue","prettyprint","_React$useMemo","isIncompleteTagged","isIncompleteValue","allowRawCopy","useRawString","copyTooltip","visibleValue","onMouseEnter","onMouseLeave","Flex","alignItems","Tooltip","ClipboardButton","onCopy","copyToClipboard","UIKitIcon","Eye","isKeyColumn","unescapeKeyValue","warnAboutPhysicalValues","propName","warn","normalizeSides","side","activeScrollElement","columnsStyles","columnHeaderRefs","tableRef","scrollContainerRef","horizontalScrollBarRef","horizontalScrollBarInnerRef","renderRow","isRowDisabled","onRowMouseEnter","onRowMouseLeave","onRowMouseDown","getRowClassNames","verticalAlign","edgePadding","wordWrap","getRowDescriptor","descriptor","additionalClassNames","classNames","interactive","getRowId","onMouseDown","colIndex","rawAlign","primary","sticky","rawSticky","getBodyCellContent","handleScrollContainerMouseenter","handleScrollContainerScroll","scrollLeft","handleHorizontalScrollBarMouseenter","handleHorizontalScrollBarScroll","String","placeholderValue","getDerivedStateFromProps","componentDidMount","stickyHorizontalScroll","tableResizeObserver","contentRect","setProperty","columnsResizeObserver","requestAnimationFrame","updateColumnStyles","componentDidUpdate","prevProps","componentWillUnmount","withPrimary","some","renderTable","renderHorizontalScrollBar","renderHead","renderBody","renderEmptyRow","emptyMessage","empty","colSpan","stickyHorizontalScrollBreakpoint","bottom","prevState","columnsWidth","getBoundingClientRect","getColumnStyles","maxWidth","filteredColumns","start"],"sourceRoot":""}