@ytsaurus/ui 2.4.0 → 2.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/public/build/assets-manifest.json +39 -39
- package/dist/public/build/css/{9030.30b67fe6.chunk.css → 3792.a5336147.chunk.css} +1 -1
- package/dist/public/build/css/{9030.30b67fe6.chunk.css.map → 3792.a5336147.chunk.css.map} +1 -1
- package/dist/public/build/js/2142.9a9a44af.chunk.js +2 -0
- package/dist/public/build/js/2142.9a9a44af.chunk.js.map +1 -0
- package/dist/public/build/js/3225.0ca5646d.chunk.js +2 -0
- package/dist/public/build/js/3225.0ca5646d.chunk.js.map +1 -0
- package/dist/public/build/js/{9030.200c7642.chunk.js → 3792.1af8dc36.chunk.js} +2 -2
- package/dist/public/build/js/{9030.200c7642.chunk.js.map → 3792.1af8dc36.chunk.js.map} +1 -1
- package/dist/public/build/js/3848.db687afa.chunk.js +2 -0
- package/dist/public/build/js/3848.db687afa.chunk.js.map +1 -0
- package/dist/public/build/js/{9361.f5606246.chunk.js → 9361.632ac658.chunk.js} +3 -3
- package/dist/public/build/js/9361.632ac658.chunk.js.map +1 -0
- package/dist/public/build/js/acl.86dde5b4.chunk.js +2 -0
- package/dist/public/build/js/acl.86dde5b4.chunk.js.map +1 -0
- package/dist/public/build/js/{chart-kit.6c826f92.chunk.js → chart-kit.bc706a72.chunk.js} +2 -2
- package/dist/public/build/js/{chart-kit.6c826f92.chunk.js.map → chart-kit.bc706a72.chunk.js.map} +1 -1
- package/dist/public/build/js/{cluster-page-wrapper.24759f54.chunk.js → cluster-page-wrapper.69410672.chunk.js} +2 -2
- package/dist/public/build/js/{cluster-page-wrapper.24759f54.chunk.js.map → cluster-page-wrapper.69410672.chunk.js.map} +1 -1
- package/dist/public/build/js/{dashboard.5baf76be.chunk.js → dashboard.705aef5e.chunk.js} +2 -2
- package/dist/public/build/js/{dashboard.5baf76be.chunk.js.map → dashboard.705aef5e.chunk.js.map} +1 -1
- package/dist/public/build/js/{incarnations.db35d3e7.chunk.js → incarnations.b6c8305d.chunk.js} +2 -2
- package/dist/public/build/js/incarnations.b6c8305d.chunk.js.map +1 -0
- package/dist/public/build/js/main.2691b74a.js +3 -0
- package/dist/public/build/js/main.2691b74a.js.map +1 -0
- package/dist/public/build/js/navigation.b95d53a4.chunk.js +2 -0
- package/dist/public/build/js/navigation.b95d53a4.chunk.js.map +1 -0
- package/dist/public/build/js/{runtime.0bd241cc.js → runtime.cd2507d5.js} +2 -2
- package/dist/public/build/js/{runtime.0bd241cc.js.map → runtime.cd2507d5.js.map} +1 -1
- package/dist/public/build/js/settings-panel.5508764a.chunk.js +2 -0
- package/dist/public/build/js/settings-panel.5508764a.chunk.js.map +1 -0
- package/dist/public/build/js/{yt-df-dialog.3c75c1c6.chunk.js → yt-df-dialog.d8b77493.chunk.js} +3 -3
- package/dist/public/build/js/yt-df-dialog.d8b77493.chunk.js.map +1 -0
- package/dist/public/build/js/yt-queries-list.9b028808.chunk.js +2 -0
- package/dist/public/build/js/yt-queries-list.9b028808.chunk.js.map +1 -0
- package/dist/public/build/manifest.json +34 -34
- package/package.json +2 -2
- package/dist/public/build/js/2142.e3f4501e.chunk.js +0 -2
- package/dist/public/build/js/2142.e3f4501e.chunk.js.map +0 -1
- package/dist/public/build/js/3225.1bafd8e7.chunk.js +0 -2
- package/dist/public/build/js/3225.1bafd8e7.chunk.js.map +0 -1
- package/dist/public/build/js/3792.87728e87.chunk.js +0 -2
- package/dist/public/build/js/3792.87728e87.chunk.js.map +0 -1
- package/dist/public/build/js/9361.f5606246.chunk.js.map +0 -1
- package/dist/public/build/js/acl.ad72cb19.chunk.js +0 -2
- package/dist/public/build/js/acl.ad72cb19.chunk.js.map +0 -1
- package/dist/public/build/js/incarnations.db35d3e7.chunk.js.map +0 -1
- package/dist/public/build/js/main.10db4a06.js +0 -3
- package/dist/public/build/js/main.10db4a06.js.map +0 -1
- package/dist/public/build/js/navigation.dd0f8fc8.chunk.js +0 -2
- package/dist/public/build/js/navigation.dd0f8fc8.chunk.js.map +0 -1
- package/dist/public/build/js/settings-panel.4be91fef.chunk.js +0 -2
- package/dist/public/build/js/settings-panel.4be91fef.chunk.js.map +0 -1
- package/dist/public/build/js/yt-df-dialog.3c75c1c6.chunk.js.map +0 -1
- package/dist/public/build/js/yt-queries-list.e40d766e.chunk.js +0 -2
- package/dist/public/build/js/yt-queries-list.e40d766e.chunk.js.map +0 -1
- /package/dist/public/build/js/{9361.f5606246.chunk.js.LICENSE.txt → 9361.632ac658.chunk.js.LICENSE.txt} +0 -0
- /package/dist/public/build/js/{main.10db4a06.js.LICENSE.txt → main.2691b74a.js.LICENSE.txt} +0 -0
- /package/dist/public/build/js/{yt-df-dialog.3c75c1c6.chunk.js.LICENSE.txt → yt-df-dialog.d8b77493.chunk.js.LICENSE.txt} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"js/3225.0ca5646d.chunk.js","mappings":"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","sources":["webpack://@ytsaurus/ui/./src/ui/store/selectors/acl-filters.ts","webpack://@ytsaurus/ui/./src/ui/assets/img/svg/icons/queue-consumer.svg","webpack://@ytsaurus/ui/./src/ui/assets/img/svg/icons/queue-producer.svg","webpack://@ytsaurus/ui/./src/ui/components/MapNodeIcon/MapNodeIcon.tsx","webpack://@ytsaurus/ui/./src/ui/containers/ACL/hooks/use-available-permissions.ts","webpack://@ytsaurus/ui/./src/ui/components/SchemaDataType/SchemaDataType.tsx","webpack://@ytsaurus/ui/./src/ui/pages/navigation/Navigation/NavigationError/NavigationErrorImage.tsx","webpack://@ytsaurus/ui/./src/ui/pages/navigation/tabs/ACL/RequestPermissions/RequestPermissions.js","webpack://@ytsaurus/ui/./src/ui/pages/navigation/Navigation/NavigationError/RequestPermission/RequestPermissionIsNotAllowed.tsx","webpack://@ytsaurus/ui/./src/ui/pages/navigation/Navigation/NavigationError/RequestPermission/RequestPermission.tsx","webpack://@ytsaurus/ui/./src/ui/pages/navigation/Navigation/NavigationError/helpers/helpers.ts","webpack://@ytsaurus/ui/./src/ui/pages/navigation/Navigation/NavigationError/NavigationError.tsx","webpack://@ytsaurus/ui/./src/ui/store/actions/acl.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/isLinkToTrashNode.ts","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/./src/ui/components/Breadcrumbs/Breadcrumbs.tsx","webpack://@ytsaurus/ui/./src/ui/components/PageCounter/PageCounter.tsx","webpack://@ytsaurus/ui/./src/ui/components/ColumnHeader/ColumnHeader.tsx","webpack://@ytsaurus/ui/./src/ui/containers/ACL/RequestPermissions/RequestPermissions.tsx","webpack://@ytsaurus/ui/./src/ui/assets/img/svg/info-icon2.svg","webpack://@ytsaurus/ui/./src/ui/components/Info/Info.tsx","webpack://@ytsaurus/ui/./src/ui/utils/navigation/isTrashNode.ts","webpack://@ytsaurus/ui/./src/ui/pages/navigation/NavigationDescription/hooks/use-yt-annotation.ts","webpack://@ytsaurus/ui/./src/ui/pages/navigation/NavigationDescription/hooks/use-external-annotation.ts","webpack://@ytsaurus/ui/./src/shared/constants/settings-ts.ts","webpack://@ytsaurus/ui/./src/ui/pages/navigation/NavigationDescription/EditButtons.tsx","webpack://@ytsaurus/ui/./src/ui/pages/navigation/NavigationDescription/hooks/use-description-actions.ts","webpack://@ytsaurus/ui/./src/ui/pages/navigation/NavigationDescription/hooks/use-update-annotaton.ts","webpack://@ytsaurus/ui/./src/ui/pages/navigation/NavigationDescription/SwitchDescription.tsx","webpack://@ytsaurus/ui/./src/ui/pages/navigation/NavigationDescription/NavigationDescriptionOverview.tsx","webpack://@ytsaurus/ui/./src/ui/pages/navigation/NavigationDescription/AnnotationWithPartial.tsx","webpack://@ytsaurus/ui/./src/ui/pages/navigation/NavigationDescription/NavigationDescription.tsx","webpack://@ytsaurus/ui/./src/ui/pages/navigation/NavigationDescription/hooks/use-description-collapse.ts","webpack://@ytsaurus/ui/./src/ui/pages/navigation/NavigationDescription/hooks/use-description.ts","webpack://@ytsaurus/ui/./src/ui/pages/navigation/NavigationDescription/hooks/use-description-type-on-load.ts","webpack://@ytsaurus/ui/./src/ui/store/selectors/acl.ts","webpack://@ytsaurus/ui/./src/ui/components/YqlValue/YqlValue.tsx","webpack://@ytsaurus/ui/./src/ui/components/ColumnCell/i18n/index.ts","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/uikit/build/esm/hooks/useResizeObserver/useResizeObserver.js"],"sourcesContent":["import {RootState} from '../reducers';\n\nexport function getExecuteBatchState(state: RootState) {\n return state.executeBatch;\n}\n\nexport const getApproversSubjectFilter = (state: RootState) => state.aclFilters.approversSubject;\nexport const getObjectSubjectFilter = (state: RootState) => state.aclFilters.objectSubject;\nexport const getObjectPermissionsFilter = (state: RootState) => state.aclFilters.objectPermissions;\nexport const getAclFilterColumns = (state: RootState) => state.aclFilters.columnsFilter;\nexport const getAclFilterColumnGroupName = (state: RootState) =>\n state.aclFilters.columnGroupNameFilter;\nexport const getAclFilterExpandedSubjects = (state: RootState) => state.aclFilters.expandedSubjects;\nexport const getAclCurrentTab = (state: RootState) => state.aclFilters.aclCurrentTab;\n","const SvgQueueConsumer = props => <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"currentColor\" viewBox=\"0 0 16 16\" {...props}><g clipPath=\"url(#queue-consumer_svg__a)\"><path d=\"M12.154 2.004A3 3 0 0 1 15 5v2H6.25v2h2.5v1.5h-2.5v2h2.5V14H4l-.154-.004a3 3 0 0 1-2.842-2.842L1 11V5a3 3 0 0 1 2.846-2.996L4 2h8zM2.5 11A1.5 1.5 0 0 0 4 12.5h.75v-2H2.5zm0-2h2.25V7H2.5zM4 3.5A1.5 1.5 0 0 0 2.5 5v.5h2.25v-2zm2.25 2h7.25V5A1.5 1.5 0 0 0 12 3.5H6.25z\" /><path stroke=\"currentColor\" strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={1.5} d=\"M15.125 11.283a.25.25 0 0 1 .055.39l-.055.044-3 1.731a.25.25 0 0 1-.375-.216V9.768a.25.25 0 0 1 .312-.243l.063.027z\" /></g><defs><clipPath id=\"queue-consumer_svg__a\"><path d=\"M0 0h16v16H0z\" /></clipPath></defs></svg>;\nexport default SvgQueueConsumer;","const SvgQueueProducer = props => <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"currentColor\" viewBox=\"0 0 16 16\" {...props}><path d=\"M12.154 2.004A3 3 0 0 1 15 5v2H6.25v2h2.5v1.5h-2.5v2h2.5V14H4l-.154-.004a3 3 0 0 1-2.842-2.842L1 11V5a3 3 0 0 1 2.846-2.996L4 2h8zM2.5 11A1.5 1.5 0 0 0 4 12.5h.75v-2H2.5zm0-2h2.25V7H2.5zM4 3.5A1.5 1.5 0 0 0 2.5 5v.5h2.25v-2zm2.25 2h7.25V5A1.5 1.5 0 0 0 12 3.5H6.25z\" /><path stroke=\"currentColor\" strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={1.5} d=\"m11 12 1.6 2 2.4-4\" /></svg>;\nexport default SvgQueueProducer;","import React from 'react';\nimport {Icon as GravityIcon} from '@gravity-ui/uikit';\n\nimport hammer from '../../common/hammer';\nimport ypath from '../../common/thor/ypath';\n\nimport Icon from '../../components/Icon/Icon';\n\nimport UIFactory from '../../UIFactory';\n\nimport {getIconNameForType} from '../../utils/navigation/path-editor';\nimport {isTrashNode} from '../../utils/navigation/isTrashNode';\nimport {isLinkToTrashNode} from '../../utils/navigation/isLinkToTrashNode';\n\nimport QueueConsumerIcon from '../../assets/img/svg/icons/queue-consumer.svg';\nimport QueueProducerIcon from '../../assets/img/svg/icons/queue-producer.svg';\n\nimport type {BaseMapNode} from '../../utils/navigation/content/map-nodes/node';\n\nimport './MapNodeIcon.scss';\n\nexport function MapNodeIcon({node}: {node: BaseMapNode}) {\n const item = ypath.getAttributes(node);\n const iconType = item?.type === 'table' && item?.dynamic ? 'table_dynamic' : item?.type;\n let icon = UIFactory.getNavigationMapNodeSettings()?.renderNodeIcon(node);\n\n if (icon) {\n // do nothing\n } else if (isTrashNode(item?.path) || isLinkToTrashNode(item?.targetPath)) {\n icon = <Icon awesome=\"trash-alt\" />;\n } else {\n icon = <Icon awesome={getIconNameForType(iconType, item.targetPathBroken)} />;\n }\n\n let title = hammer.format['ReadableField'](item.type);\n if (iconType === 'table') {\n title = 'Static table';\n }\n\n if (iconType === 'table_dynamic') {\n if (item?.sorted) {\n title = 'Dynamic table';\n } else {\n title = 'Queue table';\n icon = <Icon awesome=\"queue-table\" />;\n }\n }\n\n if (item?.treat_as_queue_consumer) {\n title = 'Queue consumer';\n icon = <GravityIcon data={QueueConsumerIcon} />;\n }\n\n if (item?.treat_as_queue_producer) {\n title = 'Queue producer';\n icon = <GravityIcon data={QueueProducerIcon} />;\n }\n\n return (\n <span className={'icon-wrapper'} title={title}>\n {icon}\n </span>\n );\n}\n","import React from 'react';\n\nimport {IdmKindType} from '../../../utils/acl/acl-types';\nimport UIFactory from '../../../UIFactory';\nimport {YTError} from '../../../../@types/types';\n\nexport function useAvailablePermissions({idmKind, path}: {idmKind: IdmKindType; path: string}) {\n const {permissionsToRequest, permissionTypes, getAvailablePermissions} =\n UIFactory.getAclPermissionsSettings()[idmKind];\n\n const requestable = Boolean(getAvailablePermissions);\n\n const [result, setAvailablePermissions] = React.useState<{\n permissionsToRequest: typeof permissionsToRequest;\n permissionsToCheck: typeof permissionTypes;\n error?: YTError;\n }>({\n permissionsToRequest: requestable ? [] : permissionsToRequest,\n permissionsToCheck: requestable ? [] : permissionTypes,\n });\n\n React.useEffect(() => {\n getAvailablePermissions?.({path})\n .then((value) => {\n setAvailablePermissions((prevState) => {\n return {...prevState, ...value};\n });\n })\n .catch((error: any) => {\n setAvailablePermissions((prevState) => {\n return {\n ...prevState,\n permissionsToRequest,\n permissionTypes,\n error,\n };\n });\n });\n }, [path, getAvailablePermissions]);\n\n return result;\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 from 'react';\nimport {Icon} from '@gravity-ui/uikit';\nimport {AccessDenied, NotFound} from '@gravity-ui/illustrations';\nimport {SVGIconData} from '@gravity-ui/uikit/build/esm/components/Icon/types';\n\nimport {ErrorCode} from './helpers';\n\ntype Props = {\n type: ErrorCode;\n};\n\ntype ImageMap = {\n [key in ErrorCode]: SVGIconData;\n};\n\nconst ErrorImages: ImageMap = {\n 500: NotFound,\n 901: AccessDenied,\n};\n\nexport function NavigationErrorImage(props: Props) {\n const {type} = props;\n\n const ErrorImage = ErrorImages[type];\n\n return <Icon data={ErrorImage} size={150} />;\n}\n","import {connect} from 'react-redux';\n\nimport RequestPermissions from '../../../../../containers/ACL/RequestPermissions/RequestPermissions';\nimport {\n getDenyColumnsItems,\n getIdmPermissionsRequestError,\n} from '../../../../../store/selectors/acl';\nimport {cancelRequestPermissions, requestPermissions} from '../../../../../store/actions/acl';\nimport {IdmObjectType} from '../../../../../constants/acl';\n\nconst idmKind = IdmObjectType.PATH;\n\nconst mapStateToProps = (state) => {\n const denyColumns = getDenyColumnsItems(state, idmKind);\n\n return {\n idmKind,\n denyColumns,\n error: getIdmPermissionsRequestError(state, idmKind),\n };\n};\n\nexport default connect(mapStateToProps, {requestPermissions, cancelRequestPermissions})(\n RequestPermissions,\n);\n","import React from 'react';\nimport cn from 'bem-cn-lite';\n\nimport hammer from '../../../../../common/hammer';\nimport {Info} from '../../../../../components/Info/Info';\n\nimport './RequestPermission.scss';\n\nconst block = cn('request-permission-is-not-allowed');\n\ntype Props = {\n objectType: any;\n};\n\nexport function RequestPermissionIsNotAllowed(props: Props) {\n const {objectType} = props;\n\n return (\n <Info className={block()}>\n It is not possible to request access to the{' '}\n {hammer.format['Readable'](objectType, {caps: 'none'})}. Please request access to the\n parent directory.\n </Info>\n );\n}\n","import React from 'react';\nimport cn from 'bem-cn-lite';\nimport {Flex} from '@gravity-ui/uikit';\nimport ypath from '../../../../../common/thor/ypath';\n\nimport {ErrorToClipboardButton} from '../../../../../components/ErrorToClipboardButton/ErrorToClipboardButton';\nimport RequestPermissions from '../../../tabs/ACL/RequestPermissions/RequestPermissions';\n\nimport {getParentPath} from '../../../../../utils/navigation';\nimport {YTError} from '../../../../../../@types/types';\n\nimport {RequestPermissionIsNotAllowed} from './RequestPermissionIsNotAllowed';\n\nimport './RequestPermission.scss';\n\nconst block = cn('request-permission');\n\ntype Props = {\n error: YTError;\n cluster: string;\n path?: string;\n};\n\nexport function RequestPermission(props: Props) {\n const {path: currentPath, error, cluster} = props;\n\n const objectType = ypath.getValue(error?.attributes, '/object_type');\n const errorPath = ypath.getValue(error?.attributes, '/path');\n const isRequestPermissionsForPathAllowed = objectType === 'map_node';\n\n const path = errorPath ?? currentPath;\n\n const pathForRequest = isRequestPermissionsForPathAllowed ? path : getParentPath(path);\n\n return (\n <Flex direction={'column'} gap={3}>\n {!isRequestPermissionsForPathAllowed && (\n <RequestPermissionIsNotAllowed objectType={objectType} />\n )}\n <Flex direction={'row'} gap={3}>\n <RequestPermissions\n buttonClassName={block('request-permissions-button')}\n path={pathForRequest}\n cluster={cluster}\n buttonProps={{size: 'l', width: 'max'}}\n />\n <ErrorToClipboardButton className={block('copy')} view=\"outlined\" error={error}>\n Copy error details\n </ErrorToClipboardButton>\n </Flex>\n </Flex>\n );\n}\n","import {getYtErrorCode} from '../../../../../utils/errors';\nimport {YTError} from '../../../../../../@types/types';\nimport {UnipikaValue} from '../../../../../components/Yson/StructuredYson/StructuredYsonTypes';\nimport ypath from '../../../../../common/thor/ypath';\n\nexport type ErrorCode = 500 | 901;\n\ntype NoAccessTitlePayload = {\n username?: string;\n permissions?: Array<UnipikaValue>;\n path?: string;\n};\n\ntype NoPathTitlePayload = {\n path: string;\n};\n\ntype TitlePayload = NoAccessTitlePayload & NoPathTitlePayload;\n\ntype ErrorInfo = {\n [key in ErrorCode]:\n | {\n getTitle: (payload: TitlePayload) => string;\n }\n | undefined;\n};\n\nexport const ErrorsInfo: ErrorInfo = {\n 901: {\n getTitle: (payload: NoAccessTitlePayload) => {\n const {username, permissions, path} = payload;\n const permission = permissions\n ?.map((perm: UnipikaValue) => ypath.getValue(perm))\n .join(' | ');\n const permissionsStr = permission ? `\"${permission}\"` : '';\n return `User ${username} does not have ${permissionsStr} access to node \"${path}\"`;\n },\n },\n 500: {\n getTitle: (payload: NoPathTitlePayload) => {\n const {path} = payload;\n return `Path \"${path}\" does not exist`;\n },\n },\n};\n\nexport function getErrorTitle(\n {attributes, code}: {code: ErrorCode} & Pick<YTError, 'attributes'>,\n path?: string,\n): string {\n const title = ErrorsInfo[code!]?.getTitle({\n path: path || '',\n username: ypath.getValue(attributes, '/user') || '',\n permissions: ypath.getValue(attributes, '/permission') || [],\n });\n\n return title ?? 'An unexpected error occurred';\n}\n\n/**\n * returns first non-undefined error code,\n * from root error to inner errors\n */\nexport function getLeadingErrorCode(error: YTError): number | undefined {\n const errorCode = getYtErrorCode(error);\n if (!isNaN(errorCode)) {\n return errorCode;\n }\n\n if (!error?.inner_errors) return;\n\n const errors = error.inner_errors;\n\n for (const inner_error of errors) {\n const innerErrorCode = getYtErrorCode(inner_error);\n if (!isNaN(innerErrorCode)) {\n return innerErrorCode;\n }\n\n if (inner_error.inner_errors) {\n errors.concat(inner_error.inner_errors);\n }\n }\n\n return;\n}\n","import React from 'react';\nimport cn from 'bem-cn-lite';\nimport {Flex, FlexProps, Text} from '@gravity-ui/uikit';\n\nimport {YTErrorBlock} from '../../../../components/Error/Error';\nimport ErrorDetails from '../../../../components/ErrorDetails/ErrorDetails';\nimport {ErrorToClipboardButton} from '../../../../components/ErrorToClipboardButton/ErrorToClipboardButton';\n\nimport NavigationDescription from '../../../../pages/navigation/NavigationDescription/NavigationDescription';\n\nimport {NavigationErrorImage} from './NavigationErrorImage';\nimport {RequestPermission} from './RequestPermission';\nimport {getPermissionDeniedError} from '../../../../utils/errors';\nimport {YTError} from '../../../../../@types/types';\nimport {ErrorCode, getErrorTitle, getLeadingErrorCode} from './helpers';\n\nimport './NavigationError.scss';\n\nconst block = cn('navigation-error');\n\ntype Props = {\n path?: string;\n details: YTError;\n cluster: string;\n message: string;\n vertical?: boolean;\n};\n\nfunction PrettyError(props: Props & {code: ErrorCode}) {\n const {details, path, cluster, code, vertical} = props;\n\n const error = code === 901 ? getPermissionDeniedError(details)! : details;\n const title = getErrorTitle({...error, code}, path);\n const direction: FlexProps['direction'] = vertical ? 'column' : undefined;\n\n return (\n <Flex\n direction={'column'}\n minHeight={'calc(100vh - 3 * var(--app-header-height) - var(--app-footer-height))'}\n >\n {code === 901 && <NavigationDescription className={'error-description'} />}\n <Flex\n className={block()}\n justifyContent=\"center\"\n alignItems=\"center\"\n direction={direction}\n gap={7}\n >\n <Flex>\n <NavigationErrorImage type={code} />\n </Flex>\n <Flex direction={'column'} className={block('info')} gap={3}>\n <Text className={block('title')}>{title}</Text>\n <ErrorDetails error={details} />\n <Flex gap={3} direction={direction}>\n {code === 901 ? (\n <RequestPermission cluster={cluster} path={path} error={error} />\n ) : (\n <ErrorToClipboardButton\n className={block('copy')}\n view=\"outlined\"\n error={details}\n >\n Copy error details\n </ErrorToClipboardButton>\n )}\n </Flex>\n </Flex>\n </Flex>\n </Flex>\n );\n}\n\nfunction UnexpectedError(props: Props) {\n const {details, message} = props;\n\n return <YTErrorBlock className={block('unexpected-error')} error={details} message={message} />;\n}\n\nexport function NavigationError(props: Props) {\n const {details} = props;\n\n const code = getLeadingErrorCode(details);\n\n return (\n <>\n {code === 500 || code === 901 ? (\n <PrettyError {...props} code={code} />\n ) : (\n <UnexpectedError {...props} />\n )}\n </>\n );\n}\n","import {ThunkAction} from 'redux-thunk';\n\nimport flatten_ from 'lodash/flatten';\nimport forEach_ from 'lodash/forEach';\nimport map_ from 'lodash/map';\n\nimport {\n DELETE_PERMISSION,\n IdmObjectType,\n LOAD_DATA,\n REQUEST_PERMISSION,\n UPDATE_ACL,\n} from '../../constants/acl';\nimport {getTree} from '../../store/selectors/scheduling/scheduling';\nimport {\n YTPermissionTypeUI,\n checkUserPermissionsUI,\n getAcl,\n getResponsible,\n} from '../../utils/acl/acl-api';\nimport {convertFromUIPermissions, prepareAclSubject} from '../../utils/acl';\nimport UIFactory from '../../UIFactory';\nimport {AclAction, HasIdmKind} from '../../store/reducers/acl/acl';\nimport {isCancelled} from '../../utils/cancel-helper';\nimport {RootState} from '../../store/reducers';\nimport {IdmKindType, PreparedAclSubject, ResponsibleType, Role} from '../../utils/acl/acl-types';\nimport {CheckPermissionResult} from '../../../shared/utils/check-permission';\nimport {YTApiId, ytApiV3Id} from '../../rum/rum-wrap-api';\n\ntype ThunkAclAction<T = unknown> = ThunkAction<T, RootState, unknown, AclAction>;\n\nconst prepareUserPermissions = (\n userPermissions: Array<CheckPermissionResult>,\n idmKind: IdmKindType,\n) => {\n const {permissionTypes} = UIFactory.getAclPermissionsSettings()[idmKind];\n return map_(userPermissions, (item, index) => {\n return {\n type: permissionTypes[index],\n action: item.action,\n };\n });\n};\n\ntype HasNormPoolTree = {normalizedPoolTree?: string};\n\nasync function getPathToCheckPermissions(\n idmKind: IdmKindType,\n entityName: string,\n poolTree?: string,\n) {\n switch (idmKind) {\n case IdmObjectType.ACCESS_CONTROL_OBJECT:\n case IdmObjectType.UI_EFFECTIVE_ACL:\n case IdmObjectType.PATH:\n return entityName;\n case IdmObjectType.ACCOUNT:\n return `//sys/accounts/${entityName}`;\n case IdmObjectType.POOL: {\n const fullPath: string = await ytApiV3Id.get(YTApiId.schedulingPoolFullPath, {\n path: `//sys/scheduler/orchid/scheduler/pool_trees/${poolTree}/pools/${entityName}/full_path`,\n });\n return `//sys/pool_trees/${poolTree}${fullPath}`;\n }\n case IdmObjectType.TABLET_CELL_BUNDLE: {\n return `//sys/tablet_cell_bundles/${entityName}`;\n }\n }\n throw new Error('Unexpected value of parameter idmKind');\n}\n\nexport function loadAclData(\n {path, idmKind}: {path: string} & HasIdmKind,\n {normalizedPoolTree}: HasNormPoolTree = {},\n options: {userPermissionsPath?: string} = {userPermissionsPath: undefined},\n): ThunkAclAction {\n return async (dispatch, getState) => {\n const state = getState();\n const {login, cluster = ''} = state.global;\n\n dispatch({type: LOAD_DATA.REQUEST, idmKind});\n\n const poolTree =\n idmKind === IdmObjectType.POOL ? normalizedPoolTree || getTree(state) : undefined;\n const {permissionTypes} = UIFactory.getAclPermissionsSettings()[idmKind];\n\n const {userPermissionsPath} = options;\n\n try {\n const pathToCheckPermissions = await getPathToCheckPermissions(idmKind, path, poolTree);\n const pathToCheckUserPermissions = userPermissionsPath\n ? await getPathToCheckPermissions(idmKind, userPermissionsPath, poolTree)\n : pathToCheckPermissions;\n\n return await Promise.all([\n getAcl({\n cluster,\n path,\n kind: idmKind,\n poolTree,\n sysPath: pathToCheckPermissions,\n }),\n checkUserPermissionsUI(pathToCheckUserPermissions, login, permissionTypes),\n getResponsible({\n cluster,\n path,\n kind: idmKind,\n poolTree,\n sysPath: pathToCheckPermissions,\n }),\n ]).then(([acl, userPermissions, responsible]) => {\n dispatch({\n type: LOAD_DATA.SUCCESS,\n data: {\n path,\n version: responsible.version,\n auditors: responsible.auditors,\n objectPermissions: acl.permissions,\n columnGroups: acl.column_groups,\n inheritAcl: acl.inheritAcl,\n responsible: responsible.responsible,\n userPermissions: prepareUserPermissions(userPermissions, idmKind),\n readApprovers: responsible.readApprovers,\n disableAclInheritance: responsible.disableAclInheritance,\n bossApproval: responsible.bossApproval,\n disableInheritanceResponsible: responsible.disableInheritanceResponsible,\n },\n idmKind,\n });\n });\n } catch (error: any) {\n dispatch({\n type: LOAD_DATA.FAILURE,\n data: {\n error,\n },\n idmKind,\n });\n }\n };\n}\n\nexport function deletePermissions(\n {\n roleKey,\n idmKind,\n path,\n itemToDelete,\n }: HasIdmKind & {path: string; roleKey: string; itemToDelete: PreparedAclSubject},\n {normalizedPoolTree}: HasNormPoolTree = {},\n): ThunkAclAction<Promise<void>> {\n return async (dispatch, getState) => {\n const {cluster = ''} = getState().global;\n const state = getState();\n\n dispatch({\n type: DELETE_PERMISSION.REQUEST,\n data: roleKey,\n idmKind,\n });\n\n const poolTree =\n idmKind === IdmObjectType.POOL ? normalizedPoolTree || getTree(state) : undefined;\n\n try {\n const deletePermissionsPath = await getPathToCheckPermissions(idmKind, path, poolTree);\n\n return await UIFactory.getAclApi()\n .deleteRole({\n idmKind,\n cluster,\n roleKey,\n path,\n sysPath: deletePermissionsPath,\n itemToDelete,\n })\n .then(() => {\n dispatch({\n type: DELETE_PERMISSION.SUCCESS,\n data: roleKey,\n idmKind,\n });\n });\n } catch (error: any) {\n if (isCancelled(error)) {\n dispatch({type: DELETE_PERMISSION.CANCELLED, idmKind});\n return undefined;\n } else {\n dispatch({\n type: DELETE_PERMISSION.FAILURE,\n data: error,\n idmKind,\n });\n return Promise.reject(error);\n }\n }\n };\n}\n\nfunction dateToDaysAfterNow(date?: Date) {\n if (!date) {\n return undefined;\n }\n\n return Math.round((date.getTime() - Date.now()) / 3600 / 24 / 1000);\n}\n\nexport type PermissionToRequest = {\n path: string;\n cluster: string;\n permissions: {[x: string]: Array<YTPermissionTypeUI>} | null;\n subjects: Array<ResponsibleType>;\n inheritance_mode?: string;\n duration?: Date;\n comment?: string;\n permissionFlags?: Record<string, boolean>;\n readColumnGroup?: string;\n readColumns?: Array<string>;\n};\n\nexport function requestPermissions(\n {values, idmKind}: {values: PermissionToRequest} & HasIdmKind,\n {normalizedPoolTree}: HasNormPoolTree = {},\n): ThunkAclAction {\n return async (dispatch, getState) => {\n const state = getState();\n const {\n global: {cluster = ''},\n } = state;\n\n dispatch({\n type: REQUEST_PERMISSION.REQUEST,\n idmKind,\n });\n\n const {requestPermissionsFlags = {}} = UIFactory.getAclApi();\n\n const daysAfter = dateToDaysAfterNow(values.duration);\n const roles: Array<Role> = [];\n const rolesGroupedBySubject = [];\n const {inheritance_mode, permissionFlags, readColumnGroup, readColumns} = values;\n for (const item of values.subjects) {\n const subject = prepareAclSubject(item);\n const commonPart = {\n subject,\n deprive_after_days: daysAfter,\n ...(inheritance_mode ? {inheritance_mode} : {}),\n };\n Object.entries(requestPermissionsFlags).forEach(([key, flagInfo]) => {\n flagInfo?.applyToRequestedRole(commonPart, permissionFlags?.[key]);\n });\n const flattenPermissions = flatten_(map_(values.permissions));\n if (flattenPermissions.length) {\n rolesGroupedBySubject.push({\n permissions: flattenPermissions,\n ...commonPart,\n });\n }\n if (readColumns?.length) {\n rolesGroupedBySubject.push({\n ...rolesGroupedBySubject[rolesGroupedBySubject.length - 1],\n ...commonPart,\n columns: readColumns,\n permissions: ['read' as const],\n });\n }\n forEach_(values.permissions, (permissions) => {\n roles.push({\n ...convertFromUIPermissions({permissions}),\n ...commonPart,\n });\n });\n if (readColumnGroup) {\n roles.push({\n role_type: 'column_read',\n column_group_id: readColumnGroup,\n ...commonPart,\n });\n }\n }\n\n const poolTree =\n idmKind === IdmObjectType.POOL ? normalizedPoolTree || getTree(state) : undefined;\n\n const requestPermissionsPath = await getPathToCheckPermissions(\n idmKind,\n values.path,\n poolTree,\n );\n\n //cluster, path, roles, comment, columns\n return UIFactory.getAclApi()\n .requestPermissions({\n cluster,\n path: values.path,\n sysPath: requestPermissionsPath,\n roles,\n roles_grouped: rolesGroupedBySubject.map(convertFromUIPermissions),\n comment: values.comment ?? '',\n kind: idmKind,\n poolTree,\n })\n .then(() => {\n dispatch({\n type: REQUEST_PERMISSION.SUCCESS,\n idmKind,\n });\n })\n .catch((error: any) => {\n if (isCancelled(error)) {\n dispatch({type: REQUEST_PERMISSION.CANCELLED, idmKind});\n return undefined;\n } else {\n dispatch({\n type: REQUEST_PERMISSION.FAILURE,\n data: error,\n idmKind,\n });\n return Promise.reject(error);\n }\n });\n };\n}\n\nexport function cancelRequestPermissions({idmKind}: HasIdmKind) {\n return {type: REQUEST_PERMISSION.CANCELLED, idmKind};\n}\n\nexport interface UpdateAclValues {\n responsible: Array<ResponsibleType>;\n auditors: Array<ResponsibleType>;\n readApprovers: Array<ResponsibleType>;\n disableInheritance: boolean;\n bossApproval: boolean;\n inheritAcl: boolean;\n comment: string;\n}\n\nexport function updateAcl(\n {\n path,\n values,\n version,\n idmKind,\n }: {\n path: string;\n values: Partial<UpdateAclValues>;\n version?: string;\n } & HasIdmKind,\n {normalizedPoolTree}: HasNormPoolTree = {},\n): ThunkAclAction {\n return (dispatch, getState) => {\n const state = getState();\n const {\n global: {cluster = ''},\n } = getState();\n\n dispatch({\n type: UPDATE_ACL.REQUEST,\n idmKind,\n });\n\n const poolTree =\n idmKind === IdmObjectType.POOL ? normalizedPoolTree || getTree(state) : undefined;\n return UIFactory.getAclApi()\n .updateAcl(cluster, path, {\n ...values,\n version,\n idmKind,\n poolTree,\n })\n .then(() => {\n dispatch({\n type: UPDATE_ACL.SUCCESS,\n idmKind,\n });\n })\n .catch((error) => {\n if (isCancelled(error)) {\n return dispatch({type: UPDATE_ACL.CANCELLED, idmKind});\n } else {\n const data = error?.response?.data || error?.response || error;\n dispatch({\n type: UPDATE_ACL.FAILURE,\n data,\n idmKind,\n });\n return Promise.reject(error);\n }\n });\n };\n}\n\nexport function cancelUpdateAcl({idmKind}: HasIdmKind): AclAction {\n return {type: UPDATE_ACL.CANCELLED, idmKind};\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 {getCliCommandResultFormat} from './format';\n\nexport const getDynamicTableCellPath = ({\n rowIndex,\n path,\n columnName,\n}: {\n path: string;\n columnName: string;\n rowIndex: number;\n}): CellPreviewActionType<string> => {\n return (_, getState) => {\n const yqlTypes = getYqlTypes(getState());\n const key = getCurrentRowKey(getState(), rowIndex);\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","import {type CellPreviewActionType} from '../../../modals/cell-preview';\nimport {getOffsetValue} from '../../../../selectors/navigation/content/table';\nimport {YSON_AS_TEXT, prettyPrint} from '../../../../../utils/unipika';\nimport {getCliCommandResultFormat} from './format';\n\nexport const getStaticTableCellPath = ({\n path,\n columnName,\n rowIndex: index,\n}: {\n path: string;\n columnName: string;\n rowIndex: number;\n}): CellPreviewActionType<string> => {\n return (_, getState) => {\n const offset = getOffsetValue(getState());\n\n const rowIndex = typeof offset === 'number' ? index + offset : index;\n\n return `${path}{${prettyPrint(columnName, YSON_AS_TEXT())}}[#${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","import {CancelTokenSource} from 'axios';\nimport {batch} from 'react-redux';\n\nimport {getPath} from '../../../../selectors/navigation';\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 {getDynamicTableCellPath, getDynamicTableCliCommand} from './dynamic-table';\nimport {getStaticTableCellPath, getStaticTableCliCommand} from './static-table';\nimport {isYqlTypesEnabled} from '../../../../selectors/navigation/content/table';\nimport {readStaticTable} from '../../content/table/readStaticTable';\nimport {readDynamicTable} from '../../content/table/readDynamicTable';\nimport {CellDataHandlerNavigation} from '../../../../../types/navigation/table-cell-preview';\n\nconst getCellPath = ({\n columnName,\n rowIndex,\n}: {\n columnName: string;\n rowIndex: number;\n}): CellPreviewActionType<string> => {\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, rowIndex}));\n };\n};\n\nconst getCliCommand = ({\n cellPath,\n columnName,\n tag,\n}: {\n cellPath: string;\n columnName: string;\n tag?: string;\n}): CellPreviewActionType<string> => {\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 = ({\n cellPath,\n useYqlTypes,\n cancellation,\n}: {\n cellPath: string;\n useYqlTypes: boolean;\n cancellation?: (token: CancelTokenSource) => void;\n}): CellPreviewActionType<ReturnType<typeof readDynamicTable>> => {\n return (_dispatch, getState) => {\n const isDynamic = getIsDynamic(getState());\n\n const output_format = getDefaultRequestOutputFormat({\n stringLimit: PREVIEW_LIMIT,\n useYqlTypes,\n });\n\n return isDynamic\n ? readDynamicTable({\n parameters: {\n output_format,\n query: cellPath,\n },\n cancellation: cancellation ?? cellPreviewCancelHelper.removeAllAndSave,\n })\n : readStaticTable({\n parameters: {path: cellPath, output_format},\n cancellation: cancellation ?? cellPreviewCancelHelper.removeAllAndSave,\n });\n };\n};\n\nexport const onCellPreview = ({\n columnName,\n rowIndex,\n tag,\n dataHandler,\n}: {\n columnName: string;\n rowIndex: number;\n tag?: string;\n dataHandler?: CellDataHandlerNavigation;\n}): CellPreviewActionType => {\n return async (dispatch, getState) => {\n const useYqlTypes = isYqlTypesEnabled(getState());\n\n const cellPath = dispatch(getCellPath({columnName, rowIndex}));\n\n const ytCliDownloadCommand: string = dispatch(getCliCommand({cellPath, columnName, tag}));\n\n if (dataHandler) {\n dataHandler.onStartLoading({columnName, rowIndex});\n } else {\n batch(() => {\n dispatch({type: CELL_PREVIEW.REQUEST, data: {ytCliDownloadCommand}});\n dispatch(openCellPreview());\n });\n }\n\n const data: {\n $type?: string;\n $value?: any;\n $tag?: string;\n } = {};\n\n let isIncomplete: boolean | undefined = false;\n\n try {\n const loadedData = await dispatch(\n loadCellPreview({\n cellPath,\n useYqlTypes,\n cancellation: dataHandler?.saveCancellation,\n }),\n );\n\n if (loadedData.useYqlTypes) {\n const {rows, yqlTypes} = loadedData;\n const column = rows[0][columnName];\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, yqlTypes?.[typeIndex]],\n {\n maxStringSize: undefined,\n maxListSize: undefined,\n treatValAsData: true,\n },\n flags,\n );\n\n isIncomplete = flags.incomplete;\n\n data.$type = $type;\n data.$value = $tag ? $value.$value : $value;\n data.$tag = $tag;\n } else {\n const {rows} = loadedData;\n const column = rows[0][columnName];\n\n const hasType = column && column.$type;\n\n data.$type = column.$type;\n data.$value = hasType ? column.$value : column;\n\n isIncomplete = column.$incomplete;\n }\n\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 if (dataHandler) {\n dataHandler.onSuccess({columnName, rowIndex, data: loadedData});\n } else {\n dispatch({\n type: CELL_PREVIEW.SUCCESS,\n data: {\n data,\n noticeText,\n },\n });\n }\n } catch (error: any) {\n if (!isCancelled(error)) {\n if (dataHandler) {\n dataHandler.onError({columnName, rowIndex, error});\n } else {\n dispatch({type: CELL_PREVIEW.FAILURE, data: {error}});\n }\n }\n }\n };\n};\n","import {TRASH_PATH} from '../../constants/navigation';\n\nexport function isLinkToTrashNode(targetPath?: string) {\n return targetPath === TRASH_PATH;\n}\n","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 { jsx as _jsx } from \"react/jsx-runtime\";\nimport { filterDOMProps } from '../../utils/filterDOMProps';\nimport { b, shouldClientNavigate } from './utils';\nexport function BreadcrumbItem(props) {\n var _a;\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) {\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;\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'] = (_a = props['aria-current']) !== null && _a !== void 0 ? _a : 'page';\n }\n if (props.itemType === 'menu') {\n linkProps = {};\n }\n return (_jsx(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 }), children: props.children })));\n}\nBreadcrumbItem.displayName = 'Breadcrumbs.Item';\n","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { b } from './utils';\nexport function BreadcrumbsSeparator({ separator }) {\n return (_jsx(\"div\", { \"aria-hidden\": true, className: b('divider'), children: separator !== null && separator !== void 0 ? separator : '/' }));\n}\nBreadcrumbsSeparator.displayName = 'Breadcrumbs.Separator';\n","import { addComponentKeysets } from '../../../../i18n';\nimport en from './en.json';\nimport ru from './ru.json';\nconst COMPONENT = 'lab/Breadcrumbs';\nexport default addComponentKeysets({ en, ru }, COMPONENT);\n","'use client';\nimport { createElement as _createElement } from \"react\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport * as 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 = (_jsx(BreadcrumbItem, { itemType: \"menu\", children: _jsx(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 }) => (_jsx(Button, { title: i18n('label_more'), className: b('more-button'), onClick: onClick, size: \"s\", view: \"flat\", disabled: props.disabled, children: _jsx(Button.Icon, { children: \"...\" }) })) }) }));\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 (_jsxs(\"li\", { className: b('item', { calculating: !calculated }), children: [_createElement(BreadcrumbItem, Object.assign({}, child.props, { key: key, current: isCurrent, disabled: props.disabled || child.props.disabled, onAction: handleAction, navigate: navigate }), child.props.children), isCurrent ? null : _jsx(BreadcrumbsSeparator, { separator: props.separator })] }, index));\n });\n return (_jsx(\"ol\", Object.assign({ ref: containerRef }, filterDOMProps(props, { labelable: true }), { \"data-qa\": props.qa, className: b(null, props.className), style: props.style, children: breadcrumbItems })));\n});\nBreadcrumbs.Item = Item;\nBreadcrumbs.displayName = 'Breadcrumbs';\nexport { Item as BreadcrumbsItem };\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\nconst block = cn('yt-page-counter');\n\nexport interface PageCounterProps {\n className?: string;\n pageIndex?: number;\n pageCount?: number;\n}\n\nfunction PageCounter({pageIndex, pageCount, className}: PageCounterProps) {\n if (pageIndex === undefined || pageCount === undefined) {\n return null;\n }\n\n return pageCount! > 1 ? (\n <span className={block(null, className)}>\n Page: {(pageIndex || 0) + 1} / {pageCount}\n </span>\n ) : null;\n}\n\nexport default React.memo(PageCounter);\n","import React from 'react';\nimport cn from 'bem-cn-lite';\nimport capitalize_ from 'lodash/capitalize';\n\nimport barsDescendingSvg from '@gravity-ui/icons/svgs/bars-descending-align-left.svg';\nimport {Button, DropdownMenu, Icon, Text} from '@gravity-ui/uikit';\n\nimport SortIcon from '../../components/SortIcon/SortIcon';\n\nimport {OrderType, calculateNextOrderValue, nextSortOrderValue} from '../../utils/sort-helpers';\nimport PageCounter, {PageCounterProps} from '../../components/PageCounter/PageCounter';\nimport Loader from '../../components/Loader/Loader';\nimport {rumLogError} from '../../rum/rum-counter';\n\nimport './ColumnHeader.scss';\n\nconst block = cn('column-header');\n\nexport type ColumnInfo<T> = {\n column: T;\n title?: string;\n shortTitle?: string;\n /**\n * Ignored when allowedOrderTypes is defined\n */\n allowUnordered?: boolean;\n /**\n * Ignored when allowedOrderTypes is defined\n */\n withUndefined?: boolean;\n allowedOrderTypes?: Array<OrderType>;\n};\n\nexport type HasSortColumn<T> =\n | (ColumnInfo<T> & {options?: undefined})\n | ({\n title: string;\n shortTitle?: string;\n column: T;\n options: Array<ColumnInfo<T>>;\n } & Partial<Record<keyof Omit<ColumnInfo<T>, 'column' | 'title' | 'shortTitle'>, undefined>>);\n\nexport type ColumnHeaderProps<T extends string = string> = PageCounterProps &\n HasSortColumn<T> & {\n className?: string;\n order?: OrderType;\n multisortIndex?: number;\n onSort?: (\n column: T,\n nextOrder: OrderType,\n options: {currentOrder?: OrderType; multisort?: boolean},\n ) => void;\n\n loading?: boolean;\n\n align?: 'center' | 'left' | 'right';\n };\n\ntype NameTitleContent = {\n nameContent: string;\n titleContent: string;\n};\n\nfunction getNameTitle<T extends string>({\n column,\n title,\n shortTitle,\n}: Pick<ColumnInfo<T>, 'column' | 'title' | 'shortTitle'>): NameTitleContent {\n const t = title ?? capitalize_(column);\n const nameContent = !shortTitle ? t : shortTitle;\n return {nameContent, titleContent: t};\n}\n\nfunction useColumnInfo<T extends string = string>(\n props: ColumnHeaderProps<T>,\n): ColumnInfo<T> & NameTitleContent & {subColumn?: NameTitleContent} {\n if (props.options === undefined) {\n const {column, allowUnordered, withUndefined, title, shortTitle, allowedOrderTypes} = props;\n return {\n column,\n allowUnordered,\n withUndefined,\n allowedOrderTypes,\n ...getNameTitle({column, title, shortTitle}),\n };\n }\n\n const {column: value, options, title, shortTitle} = props;\n const columnData = options.find(({column}) => value === column)!;\n if (!columnData) {\n rumLogError({\n message: 'Unexpected behavior: missing value in ColumnHeader.props.options',\n additional: props,\n });\n }\n return {\n subColumn: getNameTitle({...columnData}),\n ...columnData,\n ...getNameTitle({column: '', title, shortTitle}),\n };\n}\n\nexport default function ColumnHeader<T extends string = string>(props: ColumnHeaderProps<T>) {\n const {className, align, order, onSort, multisortIndex, loading, pageIndex, pageCount} = props;\n const {\n column,\n allowUnordered,\n withUndefined,\n nameContent,\n titleContent,\n allowedOrderTypes,\n subColumn,\n } = useColumnInfo(props);\n\n const changeHandler = React.useCallback(\n (e: React.MouseEvent) => {\n const nextOrder = allowedOrderTypes\n ? calculateNextOrderValue(order, allowedOrderTypes)\n : nextSortOrderValue(order, allowUnordered, withUndefined);\n onSort?.(column, nextOrder, {\n currentOrder: order,\n multisort: e.ctrlKey || e.metaKey,\n });\n },\n [column, order, onSort, allowUnordered, allowedOrderTypes, withUndefined],\n );\n\n const sortable = Boolean(onSort);\n\n return (\n <div className={block(null, className)}>\n <div\n className={block('label-icon', {sortable, align})}\n onClick={sortable ? changeHandler : undefined}\n >\n <span className={block('label')} title={titleContent}>\n {nameContent}\n </span>\n {sortable && (\n <span className={block('icon')}>\n <SortIcon order={order} />\n </span>\n )}\n {multisortIndex !== undefined && (\n <span className={block('multisort')}>\n <sup>{multisortIndex}</sup>\n </span>\n )}\n {Boolean(order) && Boolean(subColumn) && (\n <Text\n className={block('label', {'sub-column': true})}\n variant=\"caption-2\"\n title={subColumn?.titleContent}\n color=\"dark-secondary\"\n >\n {subColumn?.nameContent}\n </Text>\n )}\n </div>\n <SubColumnSelector options={props.options} order={order} onSort={onSort} />\n {loading !== undefined && (\n <div className={block('loader')}>\n <Loader visible={loading} />\n </div>\n )}\n {Boolean(pageCount) && (\n <PageCounter\n className={block('page-counter')}\n pageIndex={pageIndex}\n pageCount={pageCount}\n />\n )}\n </div>\n );\n}\n\nfunction SubColumnSelector<T extends string>({\n order,\n options,\n onSort,\n}: Pick<ColumnHeaderProps<T>, 'onSort'> & {\n order?: ColumnHeaderProps<T>['order'];\n options?: Array<ColumnInfo<T>>;\n}) {\n return !options ? null : (\n <DropdownMenu\n items={options.map((x) => {\n const {titleContent} = getNameTitle(x);\n return {\n text: titleContent,\n action() {\n if (!onSort) {\n return;\n }\n const {column, allowUnordered, withUndefined, allowedOrderTypes} = x;\n const nextOrder = allowedOrderTypes\n ? calculateNextOrderValue(order, allowedOrderTypes)\n : nextSortOrderValue(order, allowUnordered, withUndefined);\n onSort(column, nextOrder, {\n currentOrder: order,\n });\n },\n };\n })}\n renderSwitcher={({onClick}) => (\n <Button onClick={onClick} view=\"flat\" size=\"xs\">\n <Icon size={12} data={barsDescendingSvg} />\n </Button>\n )}\n />\n );\n}\n","import {compose} from 'redux';\nimport cn from 'bem-cn-lite';\nimport React, {useCallback, useMemo} from 'react';\nimport {DialogField, FormApi, YTDFDialog, makeErrorFields} from '../../../components/Dialog';\nimport ErrorBoundary from '../../../components/ErrorBoundary/ErrorBoundary';\nimport {Button, ButtonProps} from '@gravity-ui/uikit';\nimport PermissionsControl from '../RequestPermissions/PermissionsControl/PermissionsControl';\n\nimport withVisible, {WithVisibleProps} from '../../../hocs/withVisible';\n\nimport './RequestPermissions.scss';\nimport {YTError} from '../../../types';\nimport {AclMode, INHERITANCE_MODE_TYPES, IdmObjectType} from '../../../constants/acl';\n\nimport UIFactory from '../../../UIFactory';\nimport hammer from '../../../common/hammer';\nimport map_ from 'lodash/map';\n\nimport {docsUrl} from '../../../config';\nimport {makeLink} from '../../../utils/utils';\nimport {AclColumnGroup, IdmKindType} from '../../../utils/acl/acl-types';\nimport {YTPermissionTypeUI} from '../../../utils/acl/acl-api';\nimport {PermissionToRequest} from '../../../store/actions/acl';\nimport {useAvailablePermissions} from '../hooks/use-available-permissions';\n\nconst block = cn('acl-request-permissions');\n\nconst FLAG_NAME_PREFIX = '##_flag_';\n\nexport type RequestPermissionsFieldsNames =\n | 'cluster'\n | 'path'\n | 'permissions'\n | 'subjects'\n | 'duration'\n | 'commentHeader'\n | 'comment'\n | 'inheritance_mode'\n | 'permissionFlags'\n | 'readColumns'\n | 'readColumnGroup';\n\nexport interface Props extends WithVisibleProps {\n className?: string;\n buttonClassName?: string;\n buttonProps?: ButtonProps;\n cluster?: string;\n normalizedPoolTree?: string;\n path: string;\n idmKind: IdmKindType;\n requestPermissions: (params: {\n values: PermissionToRequest;\n idmKind: IdmKindType;\n }) => Promise<void>;\n cancelRequestPermissions: (params: {idmKind: IdmKindType}) => unknown;\n error?: YTError;\n onSuccess?: () => void;\n columnGroups?: Array<AclColumnGroup>;\n aclMode?: AclMode;\n}\n\ntype FormValues = {\n path: string;\n cluster: string;\n permissions: {[x: string]: Array<YTPermissionTypeUI>} | null;\n subjects: Array<{\n value: string;\n type: 'users' | 'groups' | 'app';\n text?: string;\n }>;\n inheritance_mode?: string;\n duration?: Date;\n comment?: string;\n readColumnGroup?: string;\n} & Record<`${typeof FLAG_NAME_PREFIX}${string}`, boolean>;\n\nconst SHORT_TITLE: Partial<Record<IdmKindType, string>> = {\n access_control_object: 'ACO',\n};\n\nconst COLUMNS_FELDS = new Set<RequestPermissionsFieldsNames>(['readColumns', 'readColumnGroup']);\n\nfunction RequestPermissions(props: Props) {\n const {\n aclMode,\n visible,\n handleShow,\n handleClose,\n className,\n buttonClassName,\n path,\n idmKind,\n requestPermissions,\n cancelRequestPermissions,\n error,\n cluster,\n columnGroups,\n buttonProps,\n /*denyColumns,*/\n } = props;\n\n const onClose = useCallback(() => {\n handleClose();\n cancelRequestPermissions({idmKind});\n }, [handleClose, cancelRequestPermissions, idmKind]);\n\n const {\n requestPermissionsFields,\n requestPermissionsFlags = {},\n buttonsTitle,\n } = UIFactory.getAclApi();\n\n const onAdd = useCallback(\n (form: FormApi<FormValues, Partial<FormValues>>) => {\n const values = {...form.getState().values};\n const permissionFlags: Record<string, boolean> = {};\n Object.keys(requestPermissionsFlags).forEach((k) => {\n const key = `${FLAG_NAME_PREFIX}${k}` as keyof typeof values;\n permissionFlags[k] = Boolean(values[key]);\n\n delete values[key];\n });\n return requestPermissions({\n values: {...values, permissionFlags},\n idmKind,\n });\n },\n [requestPermissions, idmKind],\n );\n\n const currentCaption = `Current ${SHORT_TITLE[idmKind] ?? idmKind}`;\n\n const {permissionsToRequest: choices} = useAvailablePermissions({idmKind, path});\n\n const firstItemDisabled = idmKind === IdmObjectType.ACCOUNT;\n\n const permissions = firstItemDisabled ? valueWithCheckedFirstChoice(choices) : null;\n\n const availableFields: Record<\n RequestPermissionsFieldsNames,\n Omit<DialogField, 'name'>\n > = useMemo(() => {\n const disabledChoices = idmKind === IdmObjectType.ACCOUNT ? [0] : undefined;\n return {\n cluster: {\n type: 'plain',\n caption: 'Cluster',\n extras: {\n className: block('cluster'),\n },\n },\n path: {\n type: 'text',\n caption: currentCaption,\n extras: {\n disabled: !error,\n },\n },\n permissions: {\n type: 'permissions',\n caption: 'Permissions',\n required: true,\n tooltip: (\n <>\n {docsUrl(\n makeLink(UIFactory.docsUrls['acl:permissions'], 'Permissions types'),\n 'Permissions types',\n )}\n </>\n ),\n extras: {\n choices: choices,\n disabledChoices,\n },\n },\n readColumns: {\n type: 'acl-columns',\n caption: 'Read columns',\n required: true,\n },\n readColumnGroup: {\n type: 'acl-column-group',\n caption: 'Read column group',\n required: true,\n extras: {\n columnGroups,\n },\n },\n subjects: {\n type: 'acl-subjects',\n caption: 'Subjects',\n required: true,\n extras: {\n placeholder: 'Enter group name, user name or login...',\n allowedTypes: ['users', 'groups', 'app'],\n },\n },\n duration: {\n type: 'before-date',\n caption: 'Duration',\n },\n commentHeader: {\n type: 'block',\n className: block('modal-comments-header'),\n extras: {\n children: (\n <React.Fragment>\n <div className={'is-dialog__label'}>Comment</div>\n <div className={block('comment-notice')}>\n Teams and people can be requested through the IDM after the access\n group is created. If you have a more complex case please describe it\n in the comments.\n </div>\n </React.Fragment>\n ),\n },\n },\n comment: {\n type: 'textarea',\n className: block('modal-comments'),\n },\n inheritance_mode: {\n type: 'yt-select-single',\n caption: 'Inheritance mode',\n extras: {\n items: map_(INHERITANCE_MODE_TYPES, (value) => ({\n value: value,\n text: hammer.format['ReadableField'](value),\n })),\n hideClear: true,\n hideFilter: true,\n with: 'max',\n },\n },\n permissionFlags: {\n type: 'block',\n caption: 'Permission flags',\n extras: {children: 'Not implemented'},\n },\n };\n }, [choices, currentCaption, error, idmKind]);\n\n const useColumns = aclMode === AclMode.COLUMN_GROUPS_PERMISSISONS;\n\n const dialogFields = useMemo(() => {\n let flagsIndex = -1;\n const res = requestPermissionsFields.reduce(\n (acc, field) => {\n const allowField = useColumns ? field !== 'permissions' : !COLUMNS_FELDS.has(field);\n if (!allowField) {\n return acc;\n }\n\n if (field === 'permissionFlags') {\n flagsIndex = acc.length;\n }\n\n acc.push({\n ...availableFields[field],\n name: field,\n } as DialogField<FormValues>);\n\n return acc;\n },\n [] as Array<DialogField<FormValues>>,\n );\n\n if (flagsIndex !== -1) {\n const flags: typeof res = Object.keys(requestPermissionsFlags ?? []).map((key) => {\n const flagInfo = requestPermissionsFlags[key];\n return {\n type: 'tumbler',\n caption: hammer.format.ReadableField(flagInfo?.title),\n name: `${FLAG_NAME_PREFIX}${key}`,\n tooltip: flagInfo.help,\n initialValue: flagInfo.initialValue,\n };\n });\n res.splice(flagsIndex, 1, ...flags);\n }\n return res;\n }, [availableFields, requestPermissionsFields, useColumns]);\n\n const {editAcl = 'Edit ACL', editColumnsAcl = 'Edit columns ACL'} = buttonsTitle ?? {};\n const title = useColumns ? editColumnsAcl : editAcl;\n\n return !choices?.length ? null : (\n <ErrorBoundary>\n <div className={block(null, className)}>\n <Button\n className={buttonClassName}\n view=\"action\"\n {...buttonProps}\n onClick={handleShow}\n >\n {title}\n </Button>\n\n <YTDFDialog<FormValues>\n pristineSubmittable\n onClose={onClose}\n className={block('modal')}\n visible={Boolean(visible)}\n onAdd={onAdd}\n headerProps={{\n title,\n }}\n initialValues={{\n path,\n permissions,\n cluster,\n inheritance_mode: INHERITANCE_MODE_TYPES.OBJECT_AND_DESCENDANTS,\n }}\n validate={(values) => {\n const subjects = values.subjects;\n const validationError: Record<\n keyof Pick<FormValues, 'subjects'>,\n string | undefined\n > = {\n subjects: undefined,\n };\n\n if (!subjects.length) {\n const errorMessage = 'At least one subject should be selected.';\n validationError.subjects = errorMessage;\n }\n\n return validationError;\n }}\n fields={[...dialogFields, ...makeErrorFields([error])]}\n />\n </div>\n </ErrorBoundary>\n );\n}\n\nexport default compose(withVisible)(RequestPermissions) as unknown as React.ComponentType<\n Omit<Props, keyof WithVisibleProps>\n>;\n\nfunction valueWithCheckedFirstChoice(choices: string | any[]) {\n if (!choices || choices.length < 1) {\n return {};\n }\n\n return {\n [PermissionsControl.getChoiceName(choices[0])]: choices[0],\n };\n}\n","const SvgInfoIcon2 = props => <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 14 14\" {...props}><path fill=\"#027BF3\" d=\"M7 .828C3.521.828.703 3.672.703 7.125A6.296 6.296 0 0 0 7 13.422c3.453 0 6.297-2.818 6.297-6.297C13.297 3.672 10.453.828 7 .828m0 11.375a5.06 5.06 0 0 1-5.078-5.078A5.077 5.077 0 0 1 7 2.047c2.793 0 5.078 2.285 5.078 5.078A5.077 5.077 0 0 1 7 12.203m0-8.582c-.61 0-1.066.483-1.066 1.067 0 .609.457 1.066 1.066 1.066.584 0 1.066-.457 1.066-1.066 0-.584-.482-1.067-1.066-1.067m1.422 6.45v-.61a.33.33 0 0 0-.305-.305h-.305V6.617a.33.33 0 0 0-.304-.304H5.883a.31.31 0 0 0-.305.304v.61c0 .177.127.304.305.304h.305v1.625h-.305a.31.31 0 0 0-.305.305v.61c0 .177.127.304.305.304h2.234a.31.31 0 0 0 .305-.305\" /></svg>;\nexport default SvgInfoIcon2;","import React, {ReactNode} from 'react';\nimport block from 'bem-cn-lite';\nimport {Icon} from '@gravity-ui/uikit';\n\nimport infoIcon from '../../assets/img/svg/info-icon2.svg';\n\nimport './Info.scss';\n\nconst b = block('info-block');\n\ninterface InfoProps {\n children: ReactNode;\n className?: string;\n}\nexport function Info({children, className}: InfoProps) {\n return (\n <div className={b(null, className)}>\n <div className={b('icon')}>\n <Icon data={infoIcon} />\n </div>\n <div className={b('body')}>{children}</div>\n </div>\n );\n}\n","import {TRASH_PATH} from '../../constants/navigation';\n\nexport function isTrashNode(path?: string) {\n return path === TRASH_PATH;\n}\n","import {useSelector} from 'react-redux';\n\nimport ypath from '../../../../common/thor/ypath';\n\nimport {getAttributes, getPath} from '../../../../store/selectors/navigation';\nimport {useAnnotationQuery} from '../../../../store/api/navigation/tabs/description';\nimport {getCluster} from '../../../../store/selectors/global';\n\nexport function useYTAnnotation() {\n const path: string = useSelector(getPath);\n const cluster = useSelector(getCluster);\n const attributes = useSelector(getAttributes);\n\n const {\n data: annotationData,\n isSuccess: isAnnotationSuccess,\n isLoading,\n } = useAnnotationQuery({path, cluster});\n\n const ytAnnotationPath = ypath.getValue(attributes, '/annotation_path');\n\n return {\n ytAnnotation: annotationData,\n ytAnnotationPath,\n isAnnotationLoadedWithData: Boolean(isAnnotationSuccess && annotationData?.length),\n isAnnotationLoading: isLoading,\n };\n}\n","import {useSelector} from 'react-redux';\n\nimport {getPath} from '../../../../store/selectors/navigation';\nimport {getCluster} from '../../../../store/selectors/global';\nimport {useExternalDescriptionQuery} from '../../../../store/api/navigation/tabs/description';\n\nexport function useExternalAnnotation() {\n const path: string = useSelector(getPath);\n const cluster = useSelector(getCluster);\n\n const {data: externalAnnotaionData, isSuccess: isExternalAnnotationSuccess} =\n useExternalDescriptionQuery({cluster, path});\n\n const isExternalAnnotatonLoadedWithData = Boolean(\n isExternalAnnotationSuccess && externalAnnotaionData?.externalAnnotation,\n );\n\n return {\n externalAnnotation: externalAnnotaionData?.externalAnnotation,\n externalAnnotationLink: externalAnnotaionData?.externalAnnotationLink,\n isExternalAnnotatonLoadedWithData,\n };\n}\n","import {ValueOf} from '../../@types/types';\n\nexport type AnnotationVisibilityType = ValueOf<typeof AnnotationVisibility>;\n\nexport const AnnotationVisibility = {\n HIDDEN: 'hidden',\n VISIBLE: 'visible',\n PARTIAL: 'partial',\n} as const;\n\nexport function normalizeAnnotationVisibility(\n value?: AnnotationVisibilityType,\n): AnnotationVisibilityType {\n return value || AnnotationVisibility.PARTIAL;\n}\n","import React from 'react';\nimport {useSelector} from 'react-redux';\nimport {Button, Flex} from '@gravity-ui/uikit';\n\nimport {getEditMode} from '../../../store/reducers/navigation/description';\n\nimport Icon from '../../../components/Icon/Icon';\n\nimport {useDescriptionActions} from './hooks/use-description-actions';\n\nexport function EditButtons() {\n const editMode = useSelector(getEditMode);\n\n const {edit, save, cancel, isLoading} = useDescriptionActions();\n\n return editMode ? (\n <Flex gap={1}>\n <Button view={'action'} onClick={save} loading={isLoading}>\n Save\n </Button>\n <Button view={'flat'} onClick={cancel}>\n Cancel\n </Button>\n </Flex>\n ) : (\n <Button view={'outlined'} onClick={edit}>\n <Icon awesome={'pencil'} />\n </Button>\n );\n}\n","import {useCallback} from 'react';\nimport {useDispatch, useSelector} from 'react-redux';\n\nimport {\n getEdittingAnnotation,\n setEdittingAnnotation,\n toggleEditMode,\n} from '../../../../store/reducers/navigation/description';\nimport {useAnnotationQuery} from '../../../../store/api/navigation/tabs/description';\nimport {getCluster} from '../../../../store/selectors/global';\nimport {getPath} from '../../../../store/selectors/navigation';\n\nimport {useUpdateAnnotation} from './use-update-annotaton';\n\nexport function useDescriptionActions() {\n const dispatch = useDispatch();\n\n const path = useSelector(getPath);\n const cluster = useSelector(getCluster);\n const edittingAnnotation = useSelector(getEdittingAnnotation);\n\n const [updateFn, {isLoading}] = useUpdateAnnotation();\n const {data} = useAnnotationQuery({path, cluster});\n\n const edit = useCallback(() => {\n dispatch(toggleEditMode());\n }, [dispatch]);\n\n const cancel = useCallback(() => {\n dispatch(setEdittingAnnotation({edittingAnnotation: data}));\n dispatch(toggleEditMode());\n }, [data, dispatch]);\n\n const save = useCallback(() => {\n updateFn(edittingAnnotation || '').then(() => {\n dispatch(toggleEditMode());\n });\n }, [updateFn, edittingAnnotation, dispatch]);\n\n return {edit, cancel, save, isLoading};\n}\n","import {useSelector} from 'react-redux';\n\nimport {YTApiId} from '../../../../rum/rum-wrap-api';\n\nimport {useUpdateBatchMutation} from '../../../../store/api/yt';\nimport {getPath} from '../../../../store/selectors/navigation';\n\nimport {prepareRequest} from '../../../../utils/navigation';\n\nexport function useUpdateAnnotation() {\n const [update, rest] = useUpdateBatchMutation<string>();\n const path = useSelector(getPath);\n\n const updateFn = (annotation: string) =>\n update({\n id: YTApiId.navigationGetAnnotation,\n parameters: {\n requests: [\n {\n command: 'set' as const,\n parameters: prepareRequest('/@annotation', {\n path: `${path}&`,\n }),\n input: annotation,\n },\n ],\n },\n errorTitle: 'Failed to update annotation',\n toaster: {\n toasterName: 'update_annotation',\n successTitle: 'Annotation saved',\n errorTitle: 'Failed to save annotation',\n },\n });\n\n return [updateFn, rest] as const;\n}\n","import React from 'react';\nimport {useDispatch, useSelector} from 'react-redux';\nimport {Flex, RadioButton} from '@gravity-ui/uikit';\n\nimport {\n getDescriptionType,\n setDescriptionType,\n} from '../../../store/reducers/navigation/description';\n\nimport UIFactory from '../../../UIFactory';\n\nexport function SwitchDescription() {\n const dispatch = useDispatch();\n\n const descriptionType = useSelector(getDescriptionType);\n\n const onUpdate = (value: 'yt' | 'external') =>\n dispatch(setDescriptionType({descriptionType: value}));\n\n return (\n <Flex direction={'row'} gap={1}>\n <RadioButton\n options={[\n {value: 'yt', content: 'YT'},\n {\n value: 'external',\n content:\n UIFactory?.externalAnnotationSetup?.externalServiceName || 'External',\n },\n ]}\n value={descriptionType}\n size={'m'}\n onUpdate={onUpdate}\n />\n </Flex>\n );\n}\n","import React from 'react';\nimport {useSelector} from 'react-redux';\nimport {Button, Flex, Link, Tooltip} from '@gravity-ui/uikit';\n\nimport {getDescriptionType} from '../../../store/reducers/navigation/description';\n\nimport Icon from '../../../components/Icon/Icon';\n\nimport UIFactory from '../../../UIFactory';\n\nimport {useExternalAnnotation} from './hooks/use-external-annotation';\n\nimport {EditButtons} from './EditButtons';\nimport {SwitchDescription} from './SwitchDescription';\n\nexport function NavigationDescriptionOverview() {\n const {externalAnnotationLink} = useExternalAnnotation();\n const descriptionType = useSelector(getDescriptionType);\n\n return (\n <Flex direction={'row'} gap={2} alignItems={'center'}>\n {UIFactory?.externalAnnotationSetup && <SwitchDescription />}\n {descriptionType === 'yt' && <EditButtons />}\n {descriptionType === 'external' && (\n <Tooltip content={UIFactory?.externalAnnotationSetup?.externalServiceName || ''}>\n <Link href={externalAnnotationLink || ''} target=\"_blank\">\n <Button view=\"outlined\">\n <Icon awesome=\"external-link\" />\n </Button>\n </Link>\n </Tooltip>\n )}\n </Flex>\n );\n}\n","import React, {FC} from 'react';\nimport {useSelector} from 'react-redux';\nimport {Button, Flex, Link, Text} from '@gravity-ui/uikit';\nimport {NotFound} from '@gravity-ui/illustrations';\n\nimport {getDescriptionType} from '../../../store/reducers/navigation/description';\n\nimport {Markdown} from '../../../components/Markdown/Markdown';\nimport {ClickableText} from '../../../components/ClickableText/ClickableText';\nimport Icon from '../../../components/Icon/Icon';\n\nimport UIFactory from '../../../UIFactory';\n\nimport {useExternalAnnotation} from './hooks/use-external-annotation';\n\ntype Props = {\n annotation?: string;\n expanded: boolean;\n onToggle: () => void;\n};\n\nexport const AnnotationWithPartial: FC<Props> = ({annotation, expanded, onToggle}) => {\n const value = annotation || '';\n\n const descriptionType = useSelector(getDescriptionType);\n\n const {externalAnnotationLink} = useExternalAnnotation();\n\n const {isFullText, text} = React.useMemo(() => {\n const rows = value.split(/\\n+/);\n return {\n text: rows.slice(0, 3).join('\\n\\n'),\n isFullText: rows.length <= 3,\n };\n }, [value]);\n\n if (!value.length && descriptionType === 'external') {\n return <ExternalAnnotationFallback externalAnnotationLink={externalAnnotationLink} />;\n }\n\n return (\n <>\n <Markdown text={expanded ? value : text} />\n {isFullText ? null : (\n <ClickableText color={'secondary'} onClick={onToggle}>\n {expanded ? 'Hide more' : 'Show more'}\n </ClickableText>\n )}\n </>\n );\n};\n\nfunction ExternalAnnotationFallback({externalAnnotationLink}: {externalAnnotationLink?: string}) {\n return (\n <Flex direction={'row'} gap={5} width={'max'} justifyContent={'center'}>\n <NotFound height={85} width={85} />\n <Flex direction={'column'} gap={3}>\n <Text variant={'subheader-2'}>\n No {UIFactory?.externalAnnotationSetup?.externalServiceName || 'external'}{' '}\n description found\n </Text>\n <Link href={externalAnnotationLink || ''} target={'_blank'}>\n <Button view={'action'} size={'l'} disabled={!externalAnnotationLink}>\n <Text>\n Create with{' '}\n {UIFactory?.externalAnnotationSetup?.externalServiceName ||\n 'external service'}\n </Text>\n <Icon awesome={'external-link'} size={16} />\n </Button>\n </Link>\n </Flex>\n </Flex>\n );\n}\n","import React, {useCallback, useRef} from 'react';\nimport {useDispatch, useSelector} from 'react-redux';\nimport cn from 'bem-cn-lite';\n\nimport {\n getEditMode,\n getEdittingAnnotation,\n setEdittingAnnotation,\n} from '../../../store/reducers/navigation/description';\n\nimport CollapsibleSection from '../../../components/CollapsibleSection/CollapsibleSection';\nimport {EditAnnotationWithPreview} from '../../../components/EditAnnotationWithPreview/EditAnnotationWithPreview';\n\nimport {UI_COLLAPSIBLE_SIZE} from '../../../constants/global';\n\nimport {useDescription} from './hooks/use-description';\nimport {useDescriptionCollapse} from './hooks/use-description-collapse';\nimport {useYTAnnotation} from './hooks/use-yt-annotation';\n\nimport {NavigationDescriptionOverview} from './NavigationDescriptionOverview';\nimport {AnnotationWithPartial} from './AnnotationWithPartial';\n\nimport './NavigationDescription.scss';\nimport useResizeObserver from '../../../hooks/useResizeObserver';\n\nconst block = cn('navigation-description');\n\ntype Props = {\n className?: string;\n};\n\nfunction NavigationDescription({className}: Props) {\n const dispatch = useDispatch();\n const wrapperRef = useRef<HTMLDivElement>(null);\n\n const edittingAnnotation = useSelector(getEdittingAnnotation);\n const editMode = useSelector(getEditMode);\n\n const {expanded, toggleExpanded} = useDescriptionCollapse();\n\n const {description, descriptionType, visible} = useDescription();\n const {ytAnnotationPath} = useYTAnnotation();\n\n const handleResize = useCallback(() => {\n setTimeout(() => {\n window.dispatchEvent(new Event('resize'));\n }, 0);\n }, []);\n\n useResizeObserver({element: wrapperRef.current, onResize: handleResize});\n\n if (!visible) {\n return null;\n }\n\n return (\n <div ref={wrapperRef} className={block(null, className)}>\n <CollapsibleSection\n className={block('collapsible', {expanded})}\n name={'Description'}\n collapsed={false}\n size={UI_COLLAPSIBLE_SIZE}\n overview={<NavigationDescriptionOverview />}\n >\n <div className={block('content')}>\n {editMode && descriptionType === 'yt' ? (\n <EditAnnotationWithPreview\n valuePath={ytAnnotationPath}\n value={{value: edittingAnnotation || ''}}\n initialValue={{value: edittingAnnotation || ''}}\n onChange={({value}) =>\n dispatch(setEdittingAnnotation({edittingAnnotation: value}))\n }\n className={block('edit-block')}\n hideReset\n />\n ) : (\n <AnnotationWithPartial\n annotation={description}\n expanded={expanded}\n onToggle={toggleExpanded}\n />\n )}\n </div>\n </CollapsibleSection>\n </div>\n );\n}\n\nexport default NavigationDescription;\n","import {useCallback} from 'react';\nimport {useDispatch, useSelector} from 'react-redux';\n\nimport {setSettingAnnotationVisibility} from '../../../../store/actions/settings/settings';\nimport {getSettingAnnotationVisibility} from '../../../../store/selectors/settings';\n\nimport {AnnotationVisibility} from '../../../../../shared/constants/settings-ts';\n\nexport function useDescriptionCollapse() {\n const dispatch = useDispatch();\n const visibility = useSelector(getSettingAnnotationVisibility);\n const expanded = visibility === AnnotationVisibility.VISIBLE;\n\n const toggleExpanded = useCallback(() => {\n dispatch(\n setSettingAnnotationVisibility(\n expanded ? AnnotationVisibility.PARTIAL : AnnotationVisibility.VISIBLE,\n ),\n );\n }, [dispatch, expanded]);\n\n return {\n expanded,\n toggleExpanded,\n };\n}\n","import {useSelector} from 'react-redux';\n\nimport {getDescriptionType, getEditMode} from '../../../../store/reducers/navigation/description';\n\nimport {useYTAnnotation} from './use-yt-annotation';\nimport {useExternalAnnotation} from './use-external-annotation';\nimport {useUpdateDescriptionTypeOnLoad} from './use-description-type-on-load';\n\nexport function useDescription() {\n const editMode = useSelector(getEditMode);\n const descriptionType = useSelector(getDescriptionType);\n\n const {ytAnnotation, isAnnotationLoadedWithData, isAnnotationLoading} = useYTAnnotation();\n\n const {externalAnnotation, isExternalAnnotatonLoadedWithData} = useExternalAnnotation();\n\n const isLoadedWithData =\n // use isAnnotationLoading to ensure that internal annotation loading process completed\n // before making any rendering decision\n !isAnnotationLoading && (isAnnotationLoadedWithData || isExternalAnnotatonLoadedWithData);\n\n const description = descriptionType === 'yt' ? ytAnnotation : externalAnnotation;\n\n useUpdateDescriptionTypeOnLoad(isAnnotationLoadedWithData, isExternalAnnotatonLoadedWithData);\n\n return {\n visible: isLoadedWithData || editMode,\n descriptionType,\n description,\n };\n}\n","import {useEffect} from 'react';\nimport {useDispatch, useSelector} from 'react-redux';\n\nimport {\n getDescriptionType,\n setDescriptionType,\n} from '../../../../store/reducers/navigation/description';\n\nexport function useUpdateDescriptionTypeOnLoad(\n isAnnotationLoadedWithData: boolean,\n isExternalAnnotatonLoadedWithData: boolean,\n) {\n const dispatch = useDispatch();\n\n const descriptionType = useSelector(getDescriptionType);\n\n useEffect(() => {\n let newDescriptionType: 'yt' | 'external' = descriptionType;\n\n if (isAnnotationLoadedWithData) {\n newDescriptionType = 'yt';\n } else if (isExternalAnnotatonLoadedWithData) {\n newDescriptionType = 'external';\n }\n if (newDescriptionType !== descriptionType) {\n dispatch(setDescriptionType({descriptionType: newDescriptionType}));\n }\n }, [isAnnotationLoadedWithData, isExternalAnnotatonLoadedWithData]);\n}\n","import {createSelector} from 'reselect';\n\nimport compact_ from 'lodash/compact';\nimport filter_ from 'lodash/filter';\nimport flatten_ from 'lodash/flatten';\nimport forEach_ from 'lodash/forEach';\nimport map_ from 'lodash/map';\nimport sortBy_ from 'lodash/sortBy';\nimport uniq_ from 'lodash/uniq';\nimport partition_ from 'lodash/partition';\nimport isEqual_ from 'lodash/isEqual';\nimport some_ from 'lodash/some';\n\nimport {calculateLoadingStatus} from '../../utils/utils';\nimport {concatByAnd} from '../../common/hammer/predicate';\nimport {\n getAclFilterColumnGroupName,\n getAclFilterColumns,\n getAclFilterExpandedSubjects,\n getApproversSubjectFilter,\n getObjectPermissionsFilter,\n getObjectSubjectFilter,\n} from './acl-filters';\nimport UIFactory from '../../UIFactory';\nimport {RootState} from '../../store/reducers';\nimport {IdmKindType, PreparedAclSubject} from '../../utils/acl/acl-types';\nimport {YTPermissionTypeUI} from '../../utils/acl/acl-api';\nimport {PreparedRole} from '../../utils/acl';\n\nexport type PreparedAclSubjectColumn = Omit<PreparedAclSubject, 'type'> & {type: 'columns'};\n\nfunction prepareColumnsNames(columnsPermissions: Array<{columns?: Array<string>}>) {\n const columns = map_(columnsPermissions, (permission) => permission.columns);\n\n return compact_(uniq_(flatten_(columns))).sort();\n}\n\nfunction prepareApprovers(\n approvers: Array<PreparedRole> | undefined,\n type: 'read_approver' | 'responsible' | 'auditor',\n) {\n return map_(approvers, (subject) => {\n const extra = {\n type,\n subjects: [subject.value],\n subjectType: subject.type === 'users' ? ('user' as const) : ('group' as const),\n groupInfo:\n subject.type === 'groups'\n ? {name: subject.group_name, url: subject.url, group: undefined}\n : undefined,\n action: undefined,\n };\n return {\n ...subject,\n ...extra,\n };\n });\n}\n\nexport type PreparedApprover = ReturnType<typeof prepareApprovers>[number];\n\nexport const getAllUserPermissions = (state: RootState, idmKind: IdmKindType) =>\n state.acl[idmKind].userPermissions;\nconst getAllObjectPermissions = (state: RootState, idmKind: IdmKindType) =>\n state.acl[idmKind].objectPermissions;\n\nconst getAllObjectPermissionsWithSplittedSubjects = createSelector(\n [getAllObjectPermissions],\n splitSubjects,\n);\n\nexport const getObjectPermissionsTypesList = (idmKind: IdmKindType) => {\n return createSelector(\n [\n getObjectPermissionsFilter,\n (state) => getAllObjectPermissionsWithSplittedSubjects(state, idmKind),\n ],\n (permissionsFilter, items) => {\n const uniquePermisions = new Set<YTPermissionTypeUI>();\n const {permissionTypes} = UIFactory.getAclPermissionsSettings()[idmKind] || {};\n [...permissionTypes, ...permissionsFilter].forEach((permission) =>\n uniquePermisions.add(permission),\n );\n items.forEach((item) => {\n const {permissions} = item;\n permissions?.forEach((permission) => uniquePermisions.add(permission));\n });\n return sortBy_([...uniquePermisions], (permission) => permission);\n },\n );\n};\n\ntype HasSplitted = {\n isSplitted?: boolean;\n subjectIndex?: number;\n};\n\nfunction splitSubjects<T extends {subjects: Array<unknown>}>(items: Array<T>) {\n const res: Array<T & HasSplitted> = [];\n forEach_(items, (item) => {\n const {subjects} = item;\n if (subjects && subjects.length > 1) {\n forEach_(subjects, (subject, index) => {\n res.push({...item, subjects: [subject], isSplitted: true, subjectIndex: index});\n });\n } else {\n res.push(item);\n }\n });\n return res;\n}\n\nfunction subjectFilterPredicate<\n T extends {subjectType?: unknown; groupInfo?: unknown; subjects: Array<unknown>},\n>(item: T, filter: string) {\n const {subjectType, groupInfo} = item;\n if (subjectType === 'group') {\n return some_(Object.entries(groupInfo ?? {}), ([key, value]) => {\n let str: string | undefined = String(value);\n if (key === 'url') {\n if (str[str.length - 1] === '/') str = str.slice(0, -1);\n str = str.split('/').pop();\n }\n return -1 !== str?.toLowerCase().indexOf(filter);\n });\n }\n const value = String(item.subjects[0] ?? '');\n return -1 !== value.toLowerCase().indexOf(filter);\n}\n\nfunction FilterBySubject<\n T extends {subjectType?: unknown; groupInfo?: unknown; subjects: Array<unknown>},\n>(items: Array<T>, subjectFilter?: string) {\n if (!subjectFilter) return items;\n const lowerNameFilter = subjectFilter.toLowerCase();\n return filter_(items, (item) => subjectFilterPredicate(item, lowerNameFilter));\n}\n\nconst permissionsFilterPredicate = (item: PreparedAclSubject, filter: Set<YTPermissionTypeUI>) => {\n const {permissions} = item;\n let foundCount = 0;\n return permissions?.some((p) => {\n if (filter.has(p)) {\n foundCount++;\n }\n return foundCount >= filter.size;\n });\n};\n\ntype ObjectPermissionsRow = PreparedAclSubject & HasSplitted;\n\nexport const getAllObjectPermissionsFiltered = createSelector(\n [\n getAllObjectPermissionsWithSplittedSubjects,\n getObjectSubjectFilter,\n getObjectPermissionsFilter,\n getAclFilterColumns,\n ],\n (items, subjectFilter, permissionsFilter, columns) => {\n const [mainPermissions, columnPermissions] = partition_(\n items,\n (item) => !item.columns?.length,\n );\n\n const withColumns = columnPermissions.map((item) => {\n return {...item, columns: sortBy_(item.columns)};\n });\n\n const lowerNameFilter = subjectFilter?.toLocaleLowerCase();\n const filterBySubject = lowerNameFilter\n ? (item: ObjectPermissionsRow) => subjectFilterPredicate(item, lowerNameFilter)\n : undefined;\n\n const permissionsFilterSet = new Set<YTPermissionTypeUI>(permissionsFilter);\n const filterByPermissions = permissionsFilterSet.size\n ? (item: ObjectPermissionsRow) =>\n permissionsFilterPredicate(item, permissionsFilterSet) ?? false\n : undefined;\n\n const visibleColumns = new Set(columns);\n const filterByColumns = visibleColumns.size\n ? ({columns}: ObjectPermissionsRow) => {\n return columns?.some((colName) => visibleColumns.has(colName)) ?? false;\n }\n : undefined;\n\n const mainPredicates = compact_([filterBySubject, filterByPermissions]);\n const columnsPredicates = compact_([filterBySubject, filterByColumns]);\n return {\n mainPermissions: mainPredicates.length\n ? mainPermissions.filter(concatByAnd(...mainPredicates))\n : mainPermissions,\n columnsPermissions: columnsPredicates.length\n ? withColumns.filter(concatByAnd(...columnsPredicates))\n : withColumns,\n };\n },\n);\n\nexport const getObjectPermissionsAggregated = createSelector(\n [getAllObjectPermissionsFiltered, getAclFilterExpandedSubjects],\n ({mainPermissions, columnsPermissions}, expandedSubjects) => {\n return {\n mainPermissions: {\n ...aggregateBySubject(mainPermissions, expandedSubjects),\n count: mainPermissions.length,\n },\n columnsPermissions: {\n ...aggregateBySubject(columnsPermissions, expandedSubjects),\n count: columnsPermissions.length,\n },\n };\n },\n);\n\nclass AggregateBySubject {\n aggrKey: string;\n subject: ObjectPermissionsRow['subjects'][number];\n inherited: boolean;\n\n allPermissions = new Set<YTPermissionTypeUI>();\n columns = new Set<string>();\n first: ObjectPermissionsRow;\n children = new Array<ObjectPermissionsRow & {expanded?: boolean; level?: number}>();\n\n constructor(first: AggregateBySubject['first']) {\n if (first.subjects.length > 1) {\n throw new Error(\n `Unexpected behavior: more than one subject occured: ${first.subjects.join(',')}`,\n );\n }\n\n this.aggrKey = aggregationKey(first);\n this.inherited = Boolean(first.inherited);\n this.subject = first.subjects[0];\n this.first = {...first};\n this.add(first);\n }\n\n add(item: ObjectPermissionsRow) {\n const aggrKey = aggregationKey(item);\n if (this.aggrKey !== aggrKey) {\n throw new Error(\n `Unexpected behavior: aggregation keys are not queal: ${this.aggrKey} !== ${aggrKey}`,\n );\n }\n\n if (item.subjects.length !== 1) {\n throw new Error(\n `Unexpected behavior: item.subjects.length !== 1: ${JSON.stringify(item)}`,\n );\n }\n\n const child = {...item, permissions: [...(item.permissions ?? [])]};\n this.children.push(child);\n\n child.permissions?.sort();\n child.permissions?.forEach((p) => {\n this.allPermissions.add(p);\n });\n item.columns?.forEach((column) => this.columns.add(column));\n\n this.first.isMissing ||= Boolean(item.isMissing);\n this.first.isUnrecognized ||= Boolean(item.isUnrecognized);\n this.first.isApproved ||= Boolean(item.isApproved);\n this.first.isRequested ||= Boolean(item.isRequested);\n }\n\n getItems(expanded: boolean): {\n items: AggregateBySubject['children'];\n hasExpandable?: boolean;\n hasDenyAction?: boolean;\n hasInherited?: boolean;\n } {\n const hasInherited = this.inherited;\n if (this.children.length === 1) {\n return {items: this.children, hasInherited};\n }\n\n const first: typeof this.first & {level?: number; expanded?: boolean} = {\n ...this.first,\n level: 0,\n expanded,\n };\n first.permissions = [...this.allPermissions].sort();\n first.columns = [...this.columns].sort();\n\n let hasDenyAction = false;\n const items = !expanded\n ? [first]\n : [\n first,\n ...sortBy_(this.children, ['inheritance_mode', 'permissions']).map((i) => {\n hasDenyAction ||= i.action === 'deny';\n return {...i, level: 1};\n }),\n ];\n\n this.children.forEach((i) => {\n if (i.inheritance_mode !== first.inheritance_mode) {\n first.inheritance_mode = undefined;\n }\n if (!isEqual_(this.first.inheritedFrom, i.inheritedFrom)) {\n first.inheritedFrom = undefined;\n }\n });\n\n return {items, hasExpandable: true, hasDenyAction, hasInherited};\n }\n}\n\nexport type ObjectPermissionRowWithExpand = AggregateBySubject['children'][number];\n\nfunction aggregationKey(item: ObjectPermissionsRow) {\n const {\n inherited,\n subjects: [subject],\n } = item;\n return `subject:${subject}_inherited:${Boolean(inherited)}`;\n}\n\nfunction aggregateBySubject(\n objPermissions: Array<ObjectPermissionsRow>,\n expandedSubjects: Set<string | number>,\n) {\n const aggregated: Record<string, AggregateBySubject> = {};\n\n objPermissions.forEach((item) => {\n const aggKey = aggregationKey(item);\n const dst = aggregated[aggKey];\n if (!dst) {\n aggregated[aggKey] = new AggregateBySubject(item);\n } else {\n dst.add(item);\n }\n });\n\n const res = Object.values(aggregated).reduce(\n (acc, item) => {\n const {items, hasExpandable, hasInherited} = item.getItems(\n expandedSubjects.has(item.subject),\n );\n acc.items = acc.items.concat(items);\n acc.hasExpandable ||= hasExpandable;\n acc.hasInherited ||= hasInherited;\n return acc;\n },\n {items: []} as ReturnType<AggregateBySubject['getItems']>,\n );\n\n const [inherited, other] = partition_(res.items, (item) => item.inherited);\n\n return {\n ...res,\n items: [...inherited, ...other],\n };\n}\n\nexport const getAllObjectPermissionsOrderedByStatus = createSelector(\n [getAllObjectPermissions],\n OrderByRoleStatus,\n);\nexport const getAllColumnGroups = (state: RootState, idmKind: IdmKindType) =>\n state.acl[idmKind].columnGroups;\nexport const getAllColumnGroupsActual = createSelector(\n [getAllColumnGroups, getAclFilterColumns, getAclFilterColumnGroupName],\n (items, columnsFilter, nameFilter) => {\n const visibleColumns = new Set(columnsFilter);\n type ItemType = (typeof items)[number];\n const nameFilterLower = nameFilter?.toLowerCase();\n const predicates = compact_([\n (item: ItemType) => {\n return !item.removed;\n },\n visibleColumns.size > 0\n ? (item: ItemType) => {\n return item.columns?.some((name) => visibleColumns.has(name)) ?? false;\n }\n : undefined,\n nameFilterLower?.length\n ? (item: ItemType) =>\n -1 !== (item.name?.toLowerCase()?.indexOf(nameFilterLower) ?? -1)\n : undefined,\n ]);\n const filtered = filter_(items, concatByAnd(...predicates)).map((item) => {\n return {...item, columns: sortBy_(item.columns)};\n });\n return sortBy_(filtered, ['name']);\n },\n);\n\nfunction OrderByRoleStatus<\n T extends {\n isDepriving?: boolean;\n isRequested?: boolean;\n isUnrecognized?: boolean;\n isApproved?: boolean;\n },\n>(items: Array<T>) {\n const unrecognized: typeof items = [];\n const requested: typeof items = [];\n const depriving: typeof items = [];\n const rest: typeof items = [];\n forEach_(items, (item) => {\n const {isDepriving, isRequested, isUnrecognized, isApproved} = item;\n if (isUnrecognized) {\n unrecognized.push(item);\n } else if (isDepriving) {\n depriving.push(item);\n } else if (isRequested || isApproved) {\n requested.push(item);\n } else {\n rest.push(item);\n }\n });\n return [...requested, ...depriving, ...unrecognized, ...rest];\n}\n\nfunction OrderByInheritanceAndSubject<T extends {inherited?: boolean; subjects: Array<unknown>}>(\n items: Array<T>,\n) {\n const res = sortBy_(items, [\n (item) => !item.inherited,\n (item) => (item.subjects && item.subjects[0]) || true,\n ]);\n return res;\n}\n\nconst getReadApprovers = (state: RootState, idmKind: IdmKindType) =>\n state.acl[idmKind].readApprovers;\nconst getResponsibles = (state: RootState, idmKind: IdmKindType) => state.acl[idmKind].responsible;\nconst getAuditors = (state: RootState, idmKind: IdmKindType) => state.acl[idmKind].auditors;\n\nexport const getNotInheritedReadApprovers = createSelector([getReadApprovers], (readApprovers) =>\n filter_(readApprovers, (readApprover) => !readApprover.inherited),\n);\nexport const getNotInheritedResponsibles = createSelector([getResponsibles], (responsibles) =>\n filter_(responsibles, (responsible) => !responsible.inherited),\n);\nexport const getNotInheritedAuditors = createSelector([getAuditors], (auditros) =>\n filter_(auditros, (auditro) => !auditro.inherited),\n);\n\nconst getAllApprovers = createSelector(\n [getReadApprovers, getResponsibles, getAuditors],\n (readApprovers, responsibles, auditros) => {\n return [\n ...prepareApprovers(readApprovers, 'read_approver'),\n ...prepareApprovers(responsibles, 'responsible'),\n ...prepareApprovers(auditros, 'auditor'),\n ];\n },\n);\n\nexport const getHasApprovers = createSelector([getAllApprovers], (items) => items.length > 0);\n\nexport const getApproversFiltered = createSelector(\n [getAllApprovers, getApproversSubjectFilter],\n FilterBySubject,\n);\n\nexport const getApproversFilteredAndOrdered = createSelector(\n [getApproversFiltered],\n OrderByInheritanceAndSubject,\n);\n\nexport const getApprovers = createSelector([getAllApprovers], OrderByRoleStatus);\n\nexport const getAllAccessColumnsPermissions = createSelector(\n [getAllObjectPermissions],\n (objectPermissions) => {\n const filteredPermissions = filter_(\n objectPermissions,\n (permission) => permission.action === 'allow' && permission.columns?.length! > 0,\n );\n\n return map_(filteredPermissions, (item) => {\n const tmp: typeof item = {...item};\n tmp.type = 'columns';\n return tmp;\n });\n },\n);\n\nconst getAllDenyColumnsPermissions = createSelector(\n [getAllObjectPermissions],\n (objectPermissions) => {\n const filteredPermissions = filter_(\n objectPermissions,\n (permission) => permission.action === 'deny' && permission.columns?.length! > 0,\n );\n\n return map_(\n filteredPermissions,\n (permission) =>\n ({\n ...permission,\n type: 'columns',\n }) as PreparedAclSubjectColumn,\n );\n },\n);\n\nexport const getAllAccessColumnsNames = createSelector(\n [getAllAccessColumnsPermissions],\n prepareColumnsNames,\n);\n\nexport const getAllDenyColumnsNames = createSelector(\n [getAllDenyColumnsPermissions],\n prepareColumnsNames,\n);\n\nexport const getDenyColumnsItems = createSelector([getAllDenyColumnsNames], (names) =>\n map_(names, (name) => ({key: name, value: name, title: name})),\n);\n\nexport const isPermissionDeleted = (state: RootState, idmKind: IdmKindType) =>\n state.acl[idmKind].isPermissionDeleted;\nexport const permissionDeletionError = (state: RootState, idmKind: IdmKindType) =>\n state.acl[idmKind].deletionError;\nexport const getLastDeletedPermissionKey = (state: RootState, idmKind: IdmKindType) =>\n state.acl[idmKind].deletedItemKey;\nexport const getIdmPermissionsRequestError = (state: RootState, idmKind: IdmKindType) =>\n state.acl[idmKind].idmPermissionsRequestError;\nexport const getIdmManageAclRequestError = (state: RootState, idmKind: IdmKindType) =>\n state.acl[idmKind].idmManageAclRequestError;\nexport const getIdmPathVersion = (state: RootState, idmKind: IdmKindType) =>\n state.acl[idmKind].version;\n\nconst getAclLoading = (state: RootState, idmKind: IdmKindType) => state.acl[idmKind].loading;\nconst getAclLoaded = (state: RootState, idmKind: IdmKindType) => state.acl[idmKind].loaded;\nconst getAclError = (state: RootState, idmKind: IdmKindType) => state.acl[idmKind].error;\n\nexport const getAclLoadState = createSelector(\n [getAclLoading, getAclLoaded, getAclError],\n (loading, loaded, error) => {\n return calculateLoadingStatus(loading, loaded, error);\n },\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 {addI18Keysets} from '../../../i18n/index';\n\nimport en from './en.json';\nimport ru from './ru.json';\n\nexport default addI18Keysets('yt:column-cell', {en, ru});\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';\nimport {rumLogError} from '../../rum/rum-counter';\n\nimport i18n from './i18n';\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 | Promise<void>;\n useYqlTypes?: boolean;\n};\n\nexport function ColumnCell({\n value = null,\n yqlTypes,\n ysonSettings,\n allowRawStrings,\n className,\n rowIndex,\n columnName,\n onShowPreview,\n useYqlTypes,\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 } else if (value) {\n isIncompleteValue = Boolean(value.$incomplete);\n }\n\n return {tag, isIncompleteTagged, isIncompleteValue};\n }, [value, formatType, ysonSettings]);\n\n const valueType = useYqlTypes ? formatType : value?.$type;\n const rawValue = useYqlTypes ? value?.[0] : value?.$value;\n\n const allowRawCopy = typeof rawValue === 'string' && isStringType(valueType);\n const useRawString = allowRawCopy && allowRawStrings;\n let copyTooltip = i18n('hold-shift-raw');\n if (useRawString) {\n copyTooltip = i18n('hold-shift-escaped');\n }\n\n const visibleValue = !useRawString ? (\n formattedValue\n ) : (\n <div className={'unipika-wrapper'}>\n <pre className={'unipika'}>\n <span className={'string'}>{rawValue}</span>\n </pre>\n </div>\n );\n\n const [isPreviewInProgress, setPreviewInProgress] = React.useState(false);\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={i18n('incomplete-type', {tag})} />\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 ? rawValue : unquote(escapedValue)}\n onCopy={(event: React.MouseEvent) => {\n if (event?.shiftKey && allowRawCopy) {\n copyToClipboard(\n useRawString ? unquote(escapedValue) : rawValue,\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={async () => {\n setPreviewInProgress(true);\n try {\n if (!isPreviewInProgress) {\n await onShowPreview(columnName, rowIndex, tag);\n }\n } finally {\n setPreviewInProgress(false);\n }\n }}\n loading={isPreviewInProgress}\n >\n <UIKitIcon data={Eye} size=\"12\" />\n </Button>\n )}\n </Flex>\n </div>\n )}\n </div>\n );\n}\n\nfunction isStringType(type?: string | TypeArray) {\n if (!type) {\n return false;\n }\n if (typeof type === 'string') {\n return type === 'string';\n }\n\n try {\n if (type[0] !== 'DataType') {\n return false;\n }\n const lower = type[1].toLowerCase();\n return lower === 'string' || lower === 'json' || lower === 'utf8';\n } catch (error: any) {\n rumLogError({message: `ColumnCell: unexpected type: '${JSON.stringify(type)}'`}, error);\n return false;\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 type NameWithSortOrder = {name: string; sortOrder?: string};\n\nexport function prepareColumns({\n columns,\n keyColumns,\n yqlTypes,\n ysonSettings,\n useRawStrings,\n schemaByName,\n onShowPreview,\n useYqlTypes,\n}: {\n columns: NameWithSortOrder[];\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 useYqlTypes?: boolean;\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 useYqlTypes={useYqlTypes}\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","import * as React from 'react';\nexport function useResizeObserver({ ref, onResize, box, }) {\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, { box });\n return () => {\n observer.disconnect();\n };\n }, [ref, onResize, box]);\n}\n"],"names":["getApproversSubjectFilter","state","aclFilters","approversSubject","getObjectSubjectFilter","objectSubject","getObjectPermissionsFilter","objectPermissions","getAclFilterColumns","columnsFilter","getAclFilterColumnGroupName","columnGroupNameFilter","getAclFilterExpandedSubjects","expandedSubjects","getAclCurrentTab","aclCurrentTab","props","_jsxs","_objectSpread","xmlns","fill","viewBox","children","clipPath","_jsx","d","stroke","strokeLinecap","strokeLinejoin","strokeWidth","id","MapNodeIcon","_ref","_UIFactory$getNavigat","node","item","ypath","getAttributes","iconType","type","dynamic","icon","UIFactory","getNavigationMapNodeSettings","renderNodeIcon","isTrashNode","path","isLinkToTrashNode","targetPath","Icon","awesome","getIconNameForType","targetPathBroken","title","hammer","format","sorted","treat_as_queue_consumer","GravityIcon","data","QueueConsumerIcon","treat_as_queue_producer","QueueProducerIcon","className","useAvailablePermissions","idmKind","_UIFactory$getAclPerm","getAclPermissionsSettings","permissionsToRequest","permissionTypes","getAvailablePermissions","requestable","Boolean","_React$useState","React","permissionsToCheck","_React$useState2","_slicedToArray","result","setAvailablePermissions","then","value","prevState","error","SchemaDataType","type_v3","primitiveTypes","useSelector","getPrimitiveTypesMap","dataTypeProps","getType","parseV3Type","_unused","DataType","_Fragment","ErrorImages","NotFound","AccessDenied","NavigationErrorImage","ErrorImage","size","IdmObjectType","PATH","connect","denyColumns","getDenyColumnsItems","getIdmPermissionsRequestError","requestPermissions","cancelRequestPermissions","RequestPermissions","block","cn","RequestPermissionIsNotAllowed","objectType","Info","caps","RequestPermission","currentPath","cluster","getValue","attributes","errorPath","isRequestPermissionsForPathAllowed","pathForRequest","getParentPath","Flex","direction","gap","buttonClassName","buttonProps","width","ErrorToClipboardButton","view","ErrorsInfo","getTitle","payload","username","permissions","permission","map","perm","join","permissionsStr","concat","PrettyError","details","code","vertical","getPermissionDeniedError","_ErrorsInfo","getErrorTitle","undefined","minHeight","NavigationDescription","justifyContent","alignItems","Text","ErrorDetails","UnexpectedError","message","YTErrorBlock","NavigationError","errorCode","getYtErrorCode","isNaN","inner_errors","_step","errors","_iterator","_createForOfIteratorHelper","s","n","done","inner_error","innerErrorCode","err","e","f","getLeadingErrorCode","prepareUserPermissions","userPermissions","map_","index","action","getPathToCheckPermissions","_x","_x2","_x3","_getPathToCheckPermissions","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee4","entityName","poolTree","fullPath","wrap","_context5","prev","next","t0","ACCESS_CONTROL_OBJECT","UI_EFFECTIVE_ACL","ACCOUNT","POOL","TABLET_CELL_BUNDLE","abrupt","ytApiV3Id","get","YTApiId","schedulingPoolFullPath","sent","Error","stop","loadAclData","normalizedPoolTree","length","options","userPermissionsPath","_ref3","_callee","dispatch","getState","_state$global","login","_state$global$cluster","pathToCheckPermissions","pathToCheckUserPermissions","_context","global","LOAD_DATA","REQUEST","getTree","Promise","all","getAcl","kind","sysPath","checkUserPermissionsUI","getResponsible","_ref4","_ref5","acl","responsible","SUCCESS","version","auditors","columnGroups","column_groups","inheritAcl","readApprovers","disableAclInheritance","bossApproval","disableInheritanceResponsible","t1","FAILURE","_x4","_x5","deletePermissions","_ref6","roleKey","itemToDelete","_ref8","_callee2","_getState$global$clus","deletePermissionsPath","_context2","DELETE_PERMISSION","getAclApi","deleteRole","isCancelled","CANCELLED","reject","_x6","_x7","dateToDaysAfterNow","date","Math","round","getTime","Date","now","_ref9","values","_ref1","_callee3","_values$comment","_state$global$cluster2","_UIFactory$getAclApi","_UIFactory$getAclApi$","requestPermissionsFlags","daysAfter","roles","rolesGroupedBySubject","inheritance_mode","permissionFlags","readColumnGroup","readColumns","_loop","requestPermissionsPath","_context4","REQUEST_PERMISSION","duration","subjects","subject","commonPart","flattenPermissions","_context3","prepareAclSubject","deprive_after_days","Object","entries","forEach","_ref10","_ref11","key","flagInfo","applyToRequestedRole","flatten_","push","columns","forEach_","convertFromUIPermissions","role_type","column_group_id","delegateYield","finish","roles_grouped","comment","_x8","_x9","_ref12","updateAcl","_ref13","_getState$global$clus2","UPDATE_ACL","_error$response","response","cancelUpdateAcl","_ref15","getCliCommandResultFormat","tag","columnName","isMediaTag","_tag$split","split","_tag$split2","extension","getImageResultFormat","getDynamicTableCellPath","rowIndex","_","yqlTypes","getYqlTypes","getCurrentRowKey","keyColumns","getKeyColumns","offset","Query","prepareKey","prepareQuery","offsetColumns","limit","getDynamicTableCliCommand","_ref2","cellPath","getStaticTableCellPath","getOffsetValue","prettyPrint","YSON_AS_TEXT","getStaticTableCliCommand","getCellPath","getPath","getIsDynamic","getCliCommand","_dispatch","loadCellPreview","useYqlTypes","cancellation","isDynamic","output_format","getDefaultRequestOutputFormat","stringLimit","PREVIEW_LIMIT","readDynamicTable","parameters","query","cellPreviewCancelHelper","removeAllAndSave","readStaticTable","onCellPreview","dataHandler","ytCliDownloadCommand","isIncomplete","loadedData","rows","column","typeIndex","flags","_unipika$converters$y","$type","$value","$tag","_rows","_column","hasType","noticeText","isYqlTypesEnabled","onStartLoading","batch","CELL_PREVIEW","openCellPreview","saveCancellation","incomplete","unipika","converters","yql","maxStringSize","maxListSize","treatValAsData","$incomplete","onSuccess","onError","TRASH_PATH","shouldClientNavigate","link","modifiers","target","getAttribute","href","origin","location","hasAttribute","metaKey","ctrlKey","altKey","shiftKey","b","BreadcrumbItem","_a","Element","domProps","filterDOMProps","labelable","handleAction","event","disabled","preventDefault","onAction","currentTarget","navigate","HTMLAnchorElement","isDefaultPrevented","routerOptions","isDisabled","linkProps","onClick","hrefLang","rel","download","ping","referrerPolicy","role","tabIndex","onKeyDown","current","itemType","assign","BreadcrumbsSeparator","separator","displayName","addComponentKeysets","en","Item","_props","ref","listRef","containerRef","useForkRef","items","child","visibleItemsCount","setVisibleItemsCount","calculated","setCalculated","handleResize","useResizeObserver","onResize","lastChildren","visibleItems","list","listItems","Array","from","containerWidth","offsetWidth","newVisibleItemsCount","calculatedWidth","maxItems","Infinity","rootWidth","showRoot","shift","scrollWidth","lastItem","pop","min","i","max","recalculate","contents","breadcrumbs","endItems","rootItem","hiddenItems","slice","menuItem","DropdownMenu","el","text","popupProps","staircase","popupStyle","placement","popupPlacement","renderSwitcher","Button","i18n","lastIndex","breadcrumbItems","isCurrent","calculating","qa","style","Breadcrumbs","_objectWithoutProperties","_excluded","UBreadcrumbs","PageCounter","pageIndex","pageCount","getNameTitle","shortTitle","t","capitalize_","nameContent","titleContent","ColumnHeader","align","order","onSort","multisortIndex","loading","_useColumnInfo","allowUnordered","withUndefined","allowedOrderTypes","columnData","find","rumLogError","additional","subColumn","useColumnInfo","changeHandler","nextOrder","calculateNextOrderValue","nextSortOrderValue","currentOrder","multisort","sortable","SortIcon","variant","color","SubColumnSelector","Loader","visible","x","barsDescendingSvg","FLAG_NAME_PREFIX","SHORT_TITLE","access_control_object","COLUMNS_FELDS","Set","compose","withVisible","_SHORT_TITLE$idmKind","aclMode","handleShow","handleClose","onClose","useCallback","requestPermissionsFields","buttonsTitle","onAdd","form","keys","k","currentCaption","choices","_defineProperty","PermissionsControl","getChoiceName","valueWithCheckedFirstChoice","availableFields","useMemo","disabledChoices","caption","extras","required","tooltip","docsUrl","makeLink","docsUrls","placeholder","allowedTypes","commentHeader","INHERITANCE_MODE_TYPES","hideClear","hideFilter","with","useColumns","AclMode","COLUMN_GROUPS_PERMISSISONS","dialogFields","flagsIndex","res","reduce","acc","field","has","name","ReadableField","help","initialValue","splice","_toConsumableArray","_ref$editAcl","editAcl","_ref$editColumnsAcl","editColumnsAcl","ErrorBoundary","YTDFDialog","pristineSubmittable","headerProps","initialValues","OBJECT_AND_DESCENDANTS","validate","validationError","fields","makeErrorFields","infoIcon","useYTAnnotation","getCluster","_useAnnotationQuery","useAnnotationQuery","annotationData","isAnnotationSuccess","isSuccess","isLoading","ytAnnotation","ytAnnotationPath","isAnnotationLoadedWithData","isAnnotationLoading","useExternalAnnotation","_useExternalDescripti","useExternalDescriptionQuery","externalAnnotaionData","isExternalAnnotationSuccess","isExternalAnnotatonLoadedWithData","externalAnnotation","externalAnnotationLink","AnnotationVisibility","EditButtons","editMode","getEditMode","_useDescriptionAction","useDispatch","edittingAnnotation","getEdittingAnnotation","_useUpdateAnnotation","_useUpdateBatchMutati","useUpdateBatchMutation","_useUpdateBatchMutati2","update","rest","annotation","navigationGetAnnotation","requests","command","prepareRequest","input","errorTitle","toaster","toasterName","successTitle","useUpdateAnnotation","_useUpdateAnnotation2","updateFn","edit","toggleEditMode","cancel","setEdittingAnnotation","save","useDescriptionActions","SwitchDescription","_UIFactory$externalAn","descriptionType","getDescriptionType","RadioButton","content","externalAnnotationSetup","externalServiceName","onUpdate","setDescriptionType","NavigationDescriptionOverview","Tooltip","Link","AnnotationWithPartial","expanded","onToggle","_React$useMemo","isFullText","Markdown","ClickableText","ExternalAnnotationFallback","_UIFactory$externalAn2","height","wrapperRef","useRef","_useDescriptionCollap","getSettingAnnotationVisibility","toggleExpanded","setSettingAnnotationVisibility","useDescriptionCollapse","_useDescription","_useYTAnnotation","_useExternalAnnotatio","isLoadedWithData","description","useEffect","newDescriptionType","useUpdateDescriptionTypeOnLoad","useDescription","setTimeout","window","dispatchEvent","Event","element","CollapsibleSection","collapsed","UI_COLLAPSIBLE_SIZE","overview","EditAnnotationWithPreview","valuePath","onChange","hideReset","prepareColumnsNames","columnsPermissions","compact_","uniq_","sort","prepareApprovers","approvers","extra","subjectType","groupInfo","group_name","url","group","getAllUserPermissions","getAllObjectPermissions","getAllObjectPermissionsWithSplittedSubjects","createSelector","isSplitted","subjectIndex","getObjectPermissionsTypesList","permissionsFilter","uniquePermisions","add","sortBy_","subjectFilterPredicate","filter","_item$subjects$","some_","_str","str","String","toLowerCase","indexOf","getAllObjectPermissionsFiltered","subjectFilter","_partition_","partition_","_item$columns","_partition_2","mainPermissions","withColumns","lowerNameFilter","toLocaleLowerCase","filterBySubject","permissionsFilterSet","filterByPermissions","_permissionsFilterPre","foundCount","some","p","permissionsFilterPredicate","visibleColumns","filterByColumns","_columns$some","colName","mainPredicates","columnsPredicates","concatByAnd","getObjectPermissionsAggregated","aggregateBySubject","count","AggregateBySubject","_createClass","first","_classCallCheck","aggrKey","inherited","allPermissions","this","aggregationKey","_item$permissions","_child$permissions","_child$permissions2","_item$columns2","_this$first","_this$first2","_this$first3","_this$first4","_this","JSON","stringify","isMissing","isUnrecognized","isApproved","isRequested","_this2","hasInherited","level","hasDenyAction","isEqual_","inheritedFrom","hasExpandable","objPermissions","aggregated","aggKey","dst","_item$getItems","getItems","_partition_3","_partition_4","other","OrderByRoleStatus","getAllColumnGroupsActual","nameFilter","nameFilterLower","predicates","removed","_item$columns$some","_item$columns3","_item$name$toLowerCas","_item$name","filtered","filter_","unrecognized","requested","depriving","isDepriving","getReadApprovers","getResponsibles","getAuditors","getNotInheritedReadApprovers","readApprover","getNotInheritedResponsibles","responsibles","getNotInheritedAuditors","auditros","auditro","getAllApprovers","getHasApprovers","getApproversFiltered","getApproversFilteredAndOrdered","getAllAccessColumnsPermissions","filteredPermissions","_permission$columns","tmp","getAllDenyColumnsPermissions","_permission$columns2","getAllAccessColumnsNames","getAllDenyColumnsNames","names","isPermissionDeleted","permissionDeletionError","deletionError","getLastDeletedPermissionKey","deletedItemKey","idmPermissionsRequestError","getIdmManageAclRequestError","idmManageAclRequestError","getIdmPathVersion","getAclLoadState","loaded","calculateLoadingStatus","YqlValue","_React$Component","_callSuper","_inherits","_this$props","inline","settings","formattedValue","getFormattedValue","titleSettings","asHTML","formatRaw","formatFromYQL","classes","dir","dangerouslySetInnerHTML","__html","yqlValue","defaultProps","folding","Yson","defaultUnipikaSettings","addI18Keysets","ru","unquote","v","match","exec","ColumnCell","_ref$value","ysonSettings","allowRawStrings","onShowPreview","_useState","useState","_useState2","hovered","setHovered","formatType","Number","escapedValue","prettyprint","isIncompleteTagged","isIncompleteValue","valueType","rawValue","allowRawCopy","lower","isStringType","useRawString","copyTooltip","visibleValue","isPreviewInProgress","setPreviewInProgress","onMouseEnter","onMouseLeave","Label","theme","ClipboardButton","onCopy","copyToClipboard","UIKitIcon","Eye","prepareColumns","useRawStrings","schemaByName","sortOrder","isKeyColumn","header","unescapeKeyValue","render","box","ResizeObserver","addEventListener","removeEventListener","observer","observe","disconnect"],"sourceRoot":""}
|