@ytsaurus/ui 1.95.0 → 1.96.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/dist/public/build/assets-manifest.json +31 -29
  2. package/dist/public/build/css/1454.e1b6441b.chunk.css +2 -0
  3. package/dist/public/build/css/1454.e1b6441b.chunk.css.map +1 -0
  4. package/dist/public/build/css/333.4b28585f.chunk.css +2 -0
  5. package/dist/public/build/css/333.4b28585f.chunk.css.map +1 -0
  6. package/dist/public/build/css/4592.687b04fa.chunk.css +2 -0
  7. package/dist/public/build/css/4592.687b04fa.chunk.css.map +1 -0
  8. package/dist/public/build/css/8944.c58273b7.chunk.css +2 -0
  9. package/dist/public/build/css/8944.c58273b7.chunk.css.map +1 -0
  10. package/dist/public/build/css/{navigation.32b6fca4.chunk.css → navigation.4b7a1ff3.chunk.css} +2 -2
  11. package/dist/public/build/css/navigation.4b7a1ff3.chunk.css.map +1 -0
  12. package/dist/public/build/js/1016.3ced9e8b.chunk.js +2 -0
  13. package/dist/public/build/js/1016.3ced9e8b.chunk.js.map +1 -0
  14. package/dist/public/build/js/2150.647430c7.chunk.js +2 -0
  15. package/dist/public/build/js/2150.647430c7.chunk.js.map +1 -0
  16. package/dist/public/build/js/cluster-page-wrapper.605a5ad5.chunk.js +2 -0
  17. package/dist/public/build/js/{cluster-page-wrapper.fe57aae8.chunk.js.map → cluster-page-wrapper.605a5ad5.chunk.js.map} +1 -1
  18. package/dist/public/build/js/dashboard.2150185c.chunk.js +3 -0
  19. package/dist/public/build/js/dashboard.2150185c.chunk.js.map +1 -0
  20. package/dist/public/build/js/main.56182cbb.js +3 -0
  21. package/dist/public/build/js/main.56182cbb.js.map +1 -0
  22. package/dist/public/build/js/navigation.e85f53e0.chunk.js +2 -0
  23. package/dist/public/build/js/navigation.e85f53e0.chunk.js.map +1 -0
  24. package/dist/public/build/js/runtime.ed973fa5.js +2 -0
  25. package/dist/public/build/js/runtime.ed973fa5.js.map +1 -0
  26. package/dist/public/build/js/{yt-df-dialog.ba05eea6.chunk.js → yt-df-dialog.e8489fd1.chunk.js} +3 -3
  27. package/dist/public/build/js/yt-df-dialog.e8489fd1.chunk.js.map +1 -0
  28. package/dist/public/build/manifest.json +26 -24
  29. package/package.json +2 -2
  30. package/dist/public/build/css/1454.cc1b5254.chunk.css +0 -2
  31. package/dist/public/build/css/1454.cc1b5254.chunk.css.map +0 -1
  32. package/dist/public/build/css/333.dc69b4bd.chunk.css +0 -2
  33. package/dist/public/build/css/333.dc69b4bd.chunk.css.map +0 -1
  34. package/dist/public/build/css/6975.7cc85b1a.chunk.css +0 -2
  35. package/dist/public/build/css/6975.7cc85b1a.chunk.css.map +0 -1
  36. package/dist/public/build/css/navigation.32b6fca4.chunk.css.map +0 -1
  37. package/dist/public/build/js/1016.d5d3729e.chunk.js +0 -2
  38. package/dist/public/build/js/1016.d5d3729e.chunk.js.map +0 -1
  39. package/dist/public/build/js/45.12c412c1.chunk.js +0 -2
  40. package/dist/public/build/js/45.12c412c1.chunk.js.map +0 -1
  41. package/dist/public/build/js/cluster-page-wrapper.fe57aae8.chunk.js +0 -2
  42. package/dist/public/build/js/dashboard.0a7085cc.chunk.js +0 -3
  43. package/dist/public/build/js/dashboard.0a7085cc.chunk.js.map +0 -1
  44. package/dist/public/build/js/main.0aacb164.js +0 -3
  45. package/dist/public/build/js/main.0aacb164.js.map +0 -1
  46. package/dist/public/build/js/navigation.f37d6960.chunk.js +0 -2
  47. package/dist/public/build/js/navigation.f37d6960.chunk.js.map +0 -1
  48. package/dist/public/build/js/runtime.f44b62dd.js +0 -2
  49. package/dist/public/build/js/runtime.f44b62dd.js.map +0 -1
  50. package/dist/public/build/js/yt-df-dialog.ba05eea6.chunk.js.map +0 -1
  51. /package/dist/public/build/js/{dashboard.0a7085cc.chunk.js.LICENSE.txt → dashboard.2150185c.chunk.js.LICENSE.txt} +0 -0
  52. /package/dist/public/build/js/{main.0aacb164.js.LICENSE.txt → main.56182cbb.js.LICENSE.txt} +0 -0
  53. /package/dist/public/build/js/{yt-df-dialog.ba05eea6.chunk.js.LICENSE.txt → yt-df-dialog.e8489fd1.chunk.js.LICENSE.txt} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"js/1016.3ced9e8b.chunk.js","mappings":"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","sources":["webpack://@ytsaurus/ui/./src/ui/store/selectors/acl-filters.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/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/./node_modules/@gravity-ui/uikit/build/esm/components/lab/Breadcrumbs/utils.js","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/uikit/build/esm/components/lab/Breadcrumbs/BreadcrumbItem.js","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/uikit/build/esm/components/lab/Breadcrumbs/BreadcrumbsSeparator.js","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/uikit/build/esm/components/lab/Breadcrumbs/i18n/index.js","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/uikit/build/esm/components/lab/Breadcrumbs/Breadcrumbs.js","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/uikit/build/esm/hooks/useResizeObserver/useResizeObserver.js","webpack://@ytsaurus/ui/./src/ui/components/Breadcrumbs/Breadcrumbs.tsx","webpack://@ytsaurus/ui/./src/ui/components/YqlValue/YqlValue.tsx","webpack://@ytsaurus/ui/./src/ui/components/ColumnCell/ColumnCell.tsx","webpack://@ytsaurus/ui/./src/ui/utils/navigation/prepareColumns.tsx","webpack://@ytsaurus/ui/./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"],"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","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 {\n IdmKindType,\n PreparedAclSubject,\n ResponsibleType,\n Role,\n UpdateAclParams,\n} 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 mode,\n }: {\n path: string;\n values: Partial<UpdateAclValues>;\n version?: string;\n mode?: UpdateAclParams['mode'];\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 mode,\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 {YTApiId, ytApiV3Id} from '../../../../../rum/rum-wrap-api';\nimport type {CancelTokenSource} from 'axios';\nimport {getCliCommandResultFormat} from './format';\n\nexport const getDynamicTableCellPath = ({\n index,\n path,\n columnName,\n}: {\n path: string;\n columnName: string;\n index: number;\n}): CellPreviewActionType => {\n return (_, getState) => {\n const yqlTypes = getYqlTypes(getState());\n const key = getCurrentRowKey(getState(), index);\n const keyColumns = getKeyColumns(getState());\n\n const offset = Query.prepareKey(key, yqlTypes);\n\n return Query.prepareQuery({\n path,\n offset,\n offsetColumns: keyColumns,\n columns: [columnName],\n limit: 1,\n });\n };\n};\n\nexport const getDynamicTableCliCommand = ({\n cellPath,\n tag,\n columnName,\n}: {\n cellPath: string;\n columnName: string;\n tag?: string;\n}): string => {\n return `yt select-rows 'select ${cellPath}' ${getCliCommandResultFormat({columnName, tag})}`;\n};\n\nexport const loadDynamicTableCellPreview = ({\n cellPath,\n output_format,\n cancellation,\n}: {\n cellPath: string;\n output_format: any;\n cancellation: (token: CancelTokenSource) => void;\n}) => {\n return async () => {\n const setup = {};\n\n return await ytApiV3Id.selectRows(YTApiId.dynTableSelectRowsPreload, {\n setup,\n parameters: {\n output_format,\n query: cellPath,\n },\n cancellation,\n });\n };\n};\n","import {type CellPreviewActionType} from '../../../modals/cell-preview';\nimport {getOffsetValue} from '../../../../selectors/navigation/content/table';\nimport type {CancelTokenSource} from 'axios';\nimport {ytApiV4} from '../../../../../rum/rum-wrap-api';\nimport {YSON_AS_TEXT, prettyPrint} from '../../../../../utils/unipika';\nimport {getCliCommandResultFormat} from './format';\n\nexport const getStaticTableCellPath = ({\n path,\n columnName,\n index,\n}: {\n path: string;\n columnName: string;\n index: number;\n}): CellPreviewActionType => {\n return (_, getState) => {\n const offset = getOffsetValue(getState());\n\n const rowIndex = typeof offset === 'number' ? index + offset : index;\n\n return `${path}{${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\nexport const loadStaticTableCellPreview = ({\n cellPath,\n output_format,\n cancellation,\n}: {\n cellPath: string;\n output_format: any;\n cancellation: (token: CancelTokenSource) => void;\n}): CellPreviewActionType => {\n return async () => {\n return await ytApiV4.readTable({\n parameters: {\n path: cellPath,\n output_format,\n },\n cancellation,\n });\n };\n};\n","import {getPath} from '../../../../selectors/navigation';\nimport {batch} from 'react-redux';\nimport {getDefaultRequestOutputFormat} from '../../../../../utils/navigation/content/table/table';\nimport {CELL_PREVIEW, PREVIEW_LIMIT} from '../../../../../constants/modals/cell-preview';\nimport {isCancelled} from '../../../../../utils/cancel-helper';\nimport {\n CellPreviewActionType,\n cellPreviewCancelHelper,\n openCellPreview,\n} from '../../../modals/cell-preview';\nimport unipika from '../../../../../common/thor/unipika';\nimport {getIsDynamic} from '../../../../selectors/navigation/content/table-ts';\nimport {\n getDynamicTableCellPath,\n getDynamicTableCliCommand,\n loadDynamicTableCellPreview,\n} from './dynamic-table';\nimport {\n getStaticTableCellPath,\n getStaticTableCliCommand,\n loadStaticTableCellPreview,\n} from './static-table';\nimport {isYqlTypesEnabled} from '../../../../selectors/navigation/content/table';\n\nconst getCellPath = ({\n columnName,\n index,\n}: {\n columnName: string;\n index: number;\n}): CellPreviewActionType => {\n return (dispatch, getState) => {\n const path: string = getPath(getState());\n const isDynamic = getIsDynamic(getState());\n\n const action = isDynamic ? getDynamicTableCellPath : getStaticTableCellPath;\n\n return dispatch(action({path, columnName, index}));\n };\n};\n\nconst getCliCommand = ({\n cellPath,\n columnName,\n tag,\n}: {\n cellPath: string;\n columnName: string;\n tag?: string;\n}): CellPreviewActionType => {\n return (_dispatch, getState) => {\n const isDynamic = getIsDynamic(getState());\n\n const fn = isDynamic ? getDynamicTableCliCommand : getStaticTableCliCommand;\n\n return fn({cellPath, columnName, tag});\n };\n};\n\nconst loadCellPreview = ({\n cellPath,\n useYqlTypes,\n}: {\n cellPath: string;\n useYqlTypes: boolean;\n}): CellPreviewActionType => {\n return (dispatch, getState) => {\n const isDynamic = getIsDynamic(getState());\n\n const output_format: any = getDefaultRequestOutputFormat({\n stringLimit: PREVIEW_LIMIT,\n });\n\n if (useYqlTypes) {\n output_format.$attributes.value_format = 'yql';\n }\n\n const action = isDynamic ? loadDynamicTableCellPreview : loadStaticTableCellPreview;\n\n return dispatch(\n action({\n cellPath,\n output_format,\n cancellation: cellPreviewCancelHelper.removeAllAndSave,\n }),\n );\n };\n};\n\nexport const showCellPreviewModal = (\n columnName: string,\n index: number,\n tag?: string,\n): CellPreviewActionType => {\n return async (dispatch, getState) => {\n const useYqlTypes = isYqlTypesEnabled(getState());\n\n const cellPath = dispatch(getCellPath({columnName, index}));\n\n const ytCliDownloadCommand: string = dispatch(getCliCommand({cellPath, columnName, tag}));\n\n batch(() => {\n dispatch({type: CELL_PREVIEW.REQUEST, data: {ytCliDownloadCommand}});\n dispatch(openCellPreview());\n });\n\n const data: {\n $type?: string;\n $value?: any;\n $tag?: string;\n } = {};\n\n let isIncomplete = false;\n\n try {\n const json = await dispatch(loadCellPreview({cellPath, useYqlTypes}));\n\n const parsed = JSON.parse(json);\n\n const column = parsed.rows[0][columnName];\n\n if (useYqlTypes) {\n const value = column[0];\n const typeIndex = column[1];\n\n const flags: {incomplete: boolean} = {incomplete: false};\n\n const {$type, $value, $tag} = unipika.converters.yql(\n [value, parsed.yql_type_registry[typeIndex]],\n {\n maxStringSize: undefined,\n maxListSize: undefined,\n treatValAsData: true,\n },\n flags,\n );\n\n isIncomplete = flags.incomplete;\n\n data.$type = $type;\n data.$value = $tag ? $value.$value : $value;\n data.$tag = $tag;\n } else {\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 dispatch({\n type: CELL_PREVIEW.SUCCESS,\n data: {\n data,\n noticeText,\n },\n });\n } catch (error: any) {\n if (!isCancelled(error)) {\n dispatch({type: CELL_PREVIEW.FAILURE, data: {error}});\n }\n }\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 &nbsp;<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';\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 const {permissionsToRequest, getAvailablePermissions} =\n UIFactory.getAclPermissionsSettings()[idmKind];\n\n const [availablePermissions, setAvailablePermissions] = React.useState<\n typeof permissionsToRequest | undefined\n >(undefined);\n\n const onShow = useCallback(async () => {\n try {\n const value = await getAvailablePermissions?.({path});\n setAvailablePermissions(value);\n } catch {\n setAvailablePermissions(undefined);\n } finally {\n handleShow();\n }\n }, [path, handleShow, getAvailablePermissions]);\n\n const firstItemDisabled = idmKind === IdmObjectType.ACCOUNT;\n\n const choices = availablePermissions ?? permissionsToRequest;\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 className={buttonClassName} view=\"action\" {...buttonProps} onClick={onShow}>\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 { 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 * 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","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 PropTypes from 'prop-types';\nimport block from 'bem-cn-lite';\nimport unipika from '../../common/thor/unipika';\n\nimport ErrorBoundary from '../../components/ErrorBoundary/ErrorBoundary';\nimport Yson from '../../components/Yson/Yson';\nimport {UnipikaSettings} from '../../components/Yson/StructuredYson/StructuredYsonTypes';\n\n/**\n * See unipika for more details\n */\nexport type UnipikaValueType = Array<string | UnipikaValueType>;\n\nexport type YqlValueProps = {\n value?: unknown;\n type: UnipikaValueType;\n settings: UnipikaSettings;\n inline?: boolean;\n};\n\nexport default class YqlValue extends React.Component<YqlValueProps> {\n static propTypes = {\n settings: PropTypes.object,\n value: PropTypes.any,\n type: PropTypes.array,\n inline: PropTypes.bool,\n };\n\n static defaultProps = {\n inline: false,\n folding: false,\n settings: Yson.defaultUnipikaSettings,\n };\n\n static getFormattedValue(value: unknown, type: UnipikaValueType, settings: UnipikaSettings) {\n const yqlValue = [value, type];\n\n return settings.format === 'raw-json'\n ? unipika.formatRaw(yqlValue, settings)\n : unipika.formatFromYQL(yqlValue, settings);\n }\n\n render() {\n const {value, type, inline, settings} = this.props;\n\n const formattedValue = YqlValue.getFormattedValue(value, type, settings);\n\n let title;\n\n if (inline) {\n const titleSettings = Object.assign({}, settings, {\n asHTML: false,\n });\n\n title =\n settings.format === 'raw-json'\n ? unipika.formatRaw(value, titleSettings)\n : unipika.formatFromYQL(value, titleSettings);\n }\n\n const classes = block('unipika-wrapper')({\n inline: inline && 'yes',\n });\n\n return (\n <ErrorBoundary>\n {settings.asHTML ? (\n <div className={classes} title={title} dir=\"auto\">\n <pre\n className=\"unipika\"\n dangerouslySetInnerHTML={{__html: formattedValue}}\n />\n </div>\n ) : (\n <div\n className={classes}\n title={title}\n dir=\"auto\"\n dangerouslySetInnerHTML={{__html: formattedValue}}\n />\n )}\n </ErrorBoundary>\n );\n }\n}\n","import React, {useState} from 'react';\nimport cn from 'bem-cn-lite';\nimport copyToClipboard from 'copy-to-clipboard';\n\nimport {Button, Flex, Icon as UIKitIcon} from '@gravity-ui/uikit';\nimport {Eye} from '@gravity-ui/icons';\n\nimport unipika from '../../common/thor/unipika';\nimport ClipboardButton from '../../components/ClipboardButton/ClipboardButton';\nimport YqlValue from '../../components/YqlValue/YqlValue';\nimport Yson from '../../components/Yson/Yson';\nimport Label from '../../components/Label/Label';\nimport {TypeArray} from '../../components/SchemaDataType/dataTypes';\nimport {Tooltip} from '../../components/Tooltip/Tooltip';\nimport {UnipikaSettings} from '../../components/Yson/StructuredYson/StructuredYsonTypes';\n\nimport './ColumnCell.scss';\n\nconst block = cn('yt-column-cell');\n\nfunction unquote(v: string) {\n const match = /^\"(.*)\"$/.exec(v);\n return match ? match[1] : v;\n}\n\ntype CellValueType =\n | null\n | (CellValueData & {\n $incomplete?: boolean;\n [k: number]: {inc?: boolean};\n });\n\ntype CellValueData = {$type: string; $value: string} | {$type?: undefined; $value: unknown};\n\ntype ColumnCellProps = {\n className?: string;\n\n value?: CellValueType | null;\n yqlTypes: Array<TypeArray> | null;\n ysonSettings: UnipikaSettings;\n allowRawStrings?: boolean | null;\n rowIndex: number;\n columnName: string;\n onShowPreview: (columnName: string, rowIndex: number, tag?: string) => void;\n};\n\nexport function ColumnCell({\n value = null,\n yqlTypes,\n ysonSettings,\n allowRawStrings,\n className,\n rowIndex,\n columnName,\n onShowPreview,\n}: ColumnCellProps) {\n const [hovered, setHovered] = useState(false);\n const handleMouseEnter = () => setHovered(true);\n const handleMouseLeave = () => setHovered(false);\n\n const formatType = yqlTypes && value ? yqlTypes[Number(value[1])] : undefined;\n\n const escapedValue =\n formatType && value\n ? YqlValue.getFormattedValue(value[0], formatType, {\n ...ysonSettings,\n asHTML: false,\n })\n : unipika.prettyprint(value, {...ysonSettings, asHTML: false});\n const formattedValue =\n formatType && value ? (\n <YqlValue value={value[0]} type={formatType} settings={ysonSettings} />\n ) : (\n <Yson value={value} settings={ysonSettings} />\n );\n\n const {tag, isIncompleteTagged, isIncompleteValue} = React.useMemo(() => {\n let isIncompleteTagged = false;\n let isIncompleteValue = false;\n let tag: string | undefined;\n\n if (value && formatType) {\n const flags: {incomplete: boolean} = {incomplete: false};\n\n const {$tag} = unipika.converters.yql([value[0], formatType], ysonSettings, flags);\n\n isIncompleteValue = flags.incomplete;\n isIncompleteTagged = flags.incomplete && $tag;\n tag = $tag;\n } else if (value) {\n isIncompleteValue = Boolean(value.$incomplete);\n }\n\n return {tag, isIncompleteTagged, isIncompleteValue};\n }, [value, formatType, ysonSettings]);\n\n const allowRawCopy = value?.$type === 'string';\n const useRawString = allowRawCopy && allowRawStrings;\n let copyTooltip = 'Hold SHIFT-key to copy raw value';\n if (useRawString) {\n copyTooltip = 'Hold SHIFT-key to copy escaped value';\n }\n\n const visibleValue = !useRawString ? (\n formattedValue\n ) : (\n <div className={'unipika-wrapper'}>\n <pre className={'unipika'}>\n <span className={'string'}>{value?.$value}</span>\n </pre>\n </div>\n );\n\n return (\n <div\n className={block(null, className) /*dataTableBlock('value')*/}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n >\n {isIncompleteTagged ? (\n <Label theme=\"warning\" text={`Incomplete '${tag}' type`} />\n ) : (\n visibleValue\n )}\n {(hovered || isIncompleteTagged) && (\n <div className={block('control-button-wrapper')}>\n <Flex alignItems=\"center\">\n {value && !isIncompleteValue && (\n <Tooltip\n content={\n !allowRawCopy ? undefined : (\n <span className={block('copy-value-tooltip')}>\n {copyTooltip}\n </span>\n )\n }\n >\n <ClipboardButton\n view=\"flat-secondary\"\n size=\"m\"\n text={useRawString ? value.$value : unquote(escapedValue)}\n onCopy={(event: React.MouseEvent) => {\n if (event?.shiftKey && allowRawCopy) {\n copyToClipboard(\n useRawString ? unquote(escapedValue) : value.$value,\n );\n }\n }}\n />\n </Tooltip>\n )}\n {isIncompleteValue && (\n <Button\n view=\"flat-secondary\"\n size=\"m\"\n qa=\"truncated-preview-button\"\n onClick={() => onShowPreview(columnName, rowIndex, tag)}\n >\n <UIKitIcon data={Eye} size=\"12\" />\n </Button>\n )}\n </Flex>\n </div>\n )}\n </div>\n );\n}\n","import React from 'react';\nimport {Tooltip} from '../../components/Tooltip/Tooltip';\nimport SchemaDataType from '../../components/SchemaDataType/SchemaDataType';\nimport Yson from '../../components/Yson/Yson';\nimport unipika from '../../common/thor/unipika';\nimport Icon from '../../components/Icon/Icon';\nimport {ColumnCell} from '../../components/ColumnCell/ColumnCell';\n\nimport map_ from 'lodash/map';\n\nimport {TypeArray} from '../../components/SchemaDataType/dataTypes';\nimport type {YsonSettings} from '../../store/selectors/thor/unipika';\n\nexport function prepareColumns({\n columns,\n keyColumns,\n yqlTypes,\n ysonSettings,\n useRawStrings,\n schemaByName,\n onShowPreview,\n}: {\n columns: {name: string; sortOrder?: string}[];\n keyColumns: string[];\n yqlTypes: TypeArray[] | null;\n ysonSettings: YsonSettings;\n useRawStrings: boolean | null | undefined;\n schemaByName: Record<string, any>;\n onShowPreview: (columnName: string, rowIndex: number, tag?: string) => void;\n}) {\n return map_(columns, (column) => {\n const render = ({value, index}: {value?: any; index: number; row: any}) => (\n <ColumnCell\n allowRawStrings={useRawStrings}\n value={value}\n yqlTypes={yqlTypes || []}\n ysonSettings={ysonSettings}\n rowIndex={index}\n columnName={column.name}\n onShowPreview={onShowPreview}\n />\n );\n const {sortOrder} = column;\n const isKeyColumn = keyColumns.indexOf(column.name) > -1;\n const {type_v3} = schemaByName[column.name] || {};\n const header = (\n <Tooltip content={Boolean(type_v3) && <SchemaDataType type_v3={type_v3} />}>\n <Yson value={unipika.unescapeKeyValue(column.name)} settings={ysonSettings} inline>\n {isKeyColumn && (\n <Icon\n awesome={\n sortOrder === 'descending'\n ? 'sort-amount-up'\n : 'sort-amount-down-alt'\n }\n />\n )}\n </Yson>\n </Tooltip>\n );\n return Object.assign({}, column, {render, header});\n });\n}\n","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 || '');\n dispatch(toggleEditMode());\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,\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 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';\n\nconst block = cn('navigation-description');\n\ntype Props = {\n className?: string;\n};\n\nfunction NavigationDescription({className}: Props) {\n const dispatch = useDispatch();\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 if (!visible) {\n return null;\n }\n\n return (\n <div 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"],"names":["getApproversSubjectFilter","state","aclFilters","approversSubject","getObjectSubjectFilter","objectSubject","getObjectPermissionsFilter","objectPermissions","getAclFilterColumns","columnsFilter","getAclFilterColumnGroupName","columnGroupNameFilter","getAclFilterExpandedSubjects","expandedSubjects","getAclCurrentTab","aclCurrentTab","SchemaDataType","_ref","type_v3","primitiveTypes","useSelector","getPrimitiveTypesMap","dataTypeProps","React","getType","parseV3Type","_unused","_jsx","DataType","_objectSpread","_Fragment","children","ErrorImages","NotFound","AccessDenied","NavigationErrorImage","props","type","ErrorImage","Icon","data","size","idmKind","IdmObjectType","PATH","connect","denyColumns","getDenyColumnsItems","error","getIdmPermissionsRequestError","requestPermissions","cancelRequestPermissions","RequestPermissions","block","cn","RequestPermissionIsNotAllowed","objectType","_jsxs","Info","className","hammer","format","caps","RequestPermission","currentPath","path","cluster","ypath","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","title","_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","value","innerErrorCode","err","e","f","getLeadingErrorCode","prepareUserPermissions","userPermissions","permissionTypes","UIFactory","getAclPermissionsSettings","map_","item","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","then","_ref4","_ref5","_slicedToArray","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","mode","_getState$global$clus2","UPDATE_ACL","_error$response","response","cancelUpdateAcl","_ref15","getCliCommandResultFormat","tag","columnName","isMediaTag","_tag$split","split","_tag$split2","extension","getImageResultFormat","getDynamicTableCellPath","_","yqlTypes","getYqlTypes","getCurrentRowKey","keyColumns","getKeyColumns","offset","Query","prepareKey","prepareQuery","offsetColumns","limit","getDynamicTableCliCommand","_ref2","cellPath","loadDynamicTableCellPreview","output_format","cancellation","setup","selectRows","dynTableSelectRowsPreload","parameters","query","getStaticTableCellPath","getOffsetValue","rowIndex","prettyPrint","YSON_AS_TEXT","getStaticTableCliCommand","loadStaticTableCellPreview","ytApiV4","readTable","getCellPath","getPath","getIsDynamic","getCliCommand","_dispatch","loadCellPreview","useYqlTypes","isDynamic","getDefaultRequestOutputFormat","stringLimit","PREVIEW_LIMIT","$attributes","value_format","cellPreviewCancelHelper","removeAllAndSave","showCellPreviewModal","ytCliDownloadCommand","isIncomplete","json","parsed","column","typeIndex","flags","_unipika$converters$y","$type","$value","$tag","hasType","noticeText","isYqlTypesEnabled","batch","CELL_PREVIEW","openCellPreview","JSON","parse","rows","incomplete","unipika","converters","yql","yql_type_registry","maxStringSize","maxListSize","treatValAsData","$incomplete","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","ctrlKey","metaKey","sortable","Boolean","onClick","SortIcon","variant","color","SubColumnSelector","Loader","visible","DropdownMenu","items","x","text","renderSwitcher","Button","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","_UIFactory$getAclPerm","permissionsToRequest","getAvailablePermissions","_React$useState","_React$useState2","availablePermissions","setAvailablePermissions","onShow","firstItemDisabled","choices","_defineProperty","PermissionsControl","getChoiceName","valueWithCheckedFirstChoice","availableFields","useMemo","disabledChoices","caption","extras","disabled","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","_ref2$editAcl","editAcl","_ref2$editColumnsAcl","editColumnsAcl","ErrorBoundary","YTDFDialog","pristineSubmittable","headerProps","initialValues","OBJECT_AND_DESCENDANTS","validate","validationError","fields","makeErrorFields","xmlns","fill","viewBox","d","b","infoIcon","shouldClientNavigate","link","modifiers","target","getAttribute","href","origin","location","hasAttribute","altKey","shiftKey","BreadcrumbItem","_a","Element","domProps","filterDOMProps","labelable","handleAction","event","preventDefault","onAction","currentTarget","navigate","HTMLAnchorElement","isDefaultPrevented","routerOptions","isDisabled","linkProps","hrefLang","rel","download","ping","referrerPolicy","role","tabIndex","onKeyDown","current","itemType","assign","BreadcrumbsSeparator","separator","displayName","addComponentKeysets","en","Item","_props","ref","listRef","containerRef","useForkRef","child","visibleItemsCount","setVisibleItemsCount","calculated","setCalculated","handleResize","onResize","box","element","window","ResizeObserver","addEventListener","removeEventListener","observer","observe","disconnect","useResizeObserver","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","el","popupProps","staircase","popupStyle","placement","popupPlacement","i18n","lastIndex","breadcrumbItems","isCurrent","calculating","qa","style","Breadcrumbs","_objectWithoutProperties","_excluded","UBreadcrumbs","YqlValue","_React$Component","_classCallCheck","_callSuper","_inherits","_createClass","_this$props","this","inline","settings","formattedValue","getFormattedValue","titleSettings","asHTML","formatRaw","formatFromYQL","classes","dir","dangerouslySetInnerHTML","__html","yqlValue","defaultProps","folding","Yson","defaultUnipikaSettings","unquote","v","match","exec","ColumnCell","_ref$value","ysonSettings","allowRawStrings","onShowPreview","_useState","useState","_useState2","hovered","setHovered","formatType","Number","escapedValue","prettyprint","_React$useMemo","isIncompleteTagged","isIncompleteValue","allowRawCopy","useRawString","copyTooltip","visibleValue","onMouseEnter","onMouseLeave","Label","theme","Tooltip","content","ClipboardButton","onCopy","copyToClipboard","UIKitIcon","Eye","prepareColumns","useRawStrings","schemaByName","sortOrder","isKeyColumn","indexOf","header","unescapeKeyValue","awesome","render","useYTAnnotation","getCluster","getAttributes","_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","id","navigationGetAnnotation","requests","command","prepareRequest","input","errorTitle","toaster","toasterName","successTitle","useUpdateAnnotation","_useUpdateAnnotation2","updateFn","edit","toggleEditMode","cancel","setEdittingAnnotation","save","useDescriptionActions","SwitchDescription","_UIFactory$externalAn","descriptionType","getDescriptionType","RadioButton","externalAnnotationSetup","externalServiceName","onUpdate","setDescriptionType","NavigationDescriptionOverview","Link","AnnotationWithPartial","expanded","onToggle","isFullText","Markdown","ClickableText","ExternalAnnotationFallback","_UIFactory$externalAn2","height","_useDescriptionCollap","getSettingAnnotationVisibility","toggleExpanded","setSettingAnnotationVisibility","useDescriptionCollapse","_useDescription","_useYTAnnotation","_useExternalAnnotatio","isLoadedWithData","description","useEffect","newDescriptionType","useUpdateDescriptionTypeOnLoad","useDescription","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","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","first","aggrKey","inherited","allPermissions","aggregationKey","_item$permissions","_child$permissions","_child$permissions2","_item$columns2","_this$first","_this$first2","_this$first3","_this$first4","_this","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"],"sourceRoot":""}