@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.
- package/dist/public/build/assets-manifest.json +31 -29
- package/dist/public/build/css/1454.e1b6441b.chunk.css +2 -0
- package/dist/public/build/css/1454.e1b6441b.chunk.css.map +1 -0
- package/dist/public/build/css/333.4b28585f.chunk.css +2 -0
- package/dist/public/build/css/333.4b28585f.chunk.css.map +1 -0
- package/dist/public/build/css/4592.687b04fa.chunk.css +2 -0
- package/dist/public/build/css/4592.687b04fa.chunk.css.map +1 -0
- package/dist/public/build/css/8944.c58273b7.chunk.css +2 -0
- package/dist/public/build/css/8944.c58273b7.chunk.css.map +1 -0
- package/dist/public/build/css/{navigation.32b6fca4.chunk.css → navigation.4b7a1ff3.chunk.css} +2 -2
- package/dist/public/build/css/navigation.4b7a1ff3.chunk.css.map +1 -0
- package/dist/public/build/js/1016.3ced9e8b.chunk.js +2 -0
- package/dist/public/build/js/1016.3ced9e8b.chunk.js.map +1 -0
- package/dist/public/build/js/2150.647430c7.chunk.js +2 -0
- package/dist/public/build/js/2150.647430c7.chunk.js.map +1 -0
- package/dist/public/build/js/cluster-page-wrapper.605a5ad5.chunk.js +2 -0
- package/dist/public/build/js/{cluster-page-wrapper.fe57aae8.chunk.js.map → cluster-page-wrapper.605a5ad5.chunk.js.map} +1 -1
- package/dist/public/build/js/dashboard.2150185c.chunk.js +3 -0
- package/dist/public/build/js/dashboard.2150185c.chunk.js.map +1 -0
- package/dist/public/build/js/main.56182cbb.js +3 -0
- package/dist/public/build/js/main.56182cbb.js.map +1 -0
- package/dist/public/build/js/navigation.e85f53e0.chunk.js +2 -0
- package/dist/public/build/js/navigation.e85f53e0.chunk.js.map +1 -0
- package/dist/public/build/js/runtime.ed973fa5.js +2 -0
- package/dist/public/build/js/runtime.ed973fa5.js.map +1 -0
- package/dist/public/build/js/{yt-df-dialog.ba05eea6.chunk.js → yt-df-dialog.e8489fd1.chunk.js} +3 -3
- package/dist/public/build/js/yt-df-dialog.e8489fd1.chunk.js.map +1 -0
- package/dist/public/build/manifest.json +26 -24
- package/package.json +2 -2
- package/dist/public/build/css/1454.cc1b5254.chunk.css +0 -2
- package/dist/public/build/css/1454.cc1b5254.chunk.css.map +0 -1
- package/dist/public/build/css/333.dc69b4bd.chunk.css +0 -2
- package/dist/public/build/css/333.dc69b4bd.chunk.css.map +0 -1
- package/dist/public/build/css/6975.7cc85b1a.chunk.css +0 -2
- package/dist/public/build/css/6975.7cc85b1a.chunk.css.map +0 -1
- package/dist/public/build/css/navigation.32b6fca4.chunk.css.map +0 -1
- package/dist/public/build/js/1016.d5d3729e.chunk.js +0 -2
- package/dist/public/build/js/1016.d5d3729e.chunk.js.map +0 -1
- package/dist/public/build/js/45.12c412c1.chunk.js +0 -2
- package/dist/public/build/js/45.12c412c1.chunk.js.map +0 -1
- package/dist/public/build/js/cluster-page-wrapper.fe57aae8.chunk.js +0 -2
- package/dist/public/build/js/dashboard.0a7085cc.chunk.js +0 -3
- package/dist/public/build/js/dashboard.0a7085cc.chunk.js.map +0 -1
- package/dist/public/build/js/main.0aacb164.js +0 -3
- package/dist/public/build/js/main.0aacb164.js.map +0 -1
- package/dist/public/build/js/navigation.f37d6960.chunk.js +0 -2
- package/dist/public/build/js/navigation.f37d6960.chunk.js.map +0 -1
- package/dist/public/build/js/runtime.f44b62dd.js +0 -2
- package/dist/public/build/js/runtime.f44b62dd.js.map +0 -1
- package/dist/public/build/js/yt-df-dialog.ba05eea6.chunk.js.map +0 -1
- /package/dist/public/build/js/{dashboard.0a7085cc.chunk.js.LICENSE.txt → dashboard.2150185c.chunk.js.LICENSE.txt} +0 -0
- /package/dist/public/build/js/{main.0aacb164.js.LICENSE.txt → main.56182cbb.js.LICENSE.txt} +0 -0
- /package/dist/public/build/js/{yt-df-dialog.ba05eea6.chunk.js.LICENSE.txt → yt-df-dialog.e8489fd1.chunk.js.LICENSE.txt} +0 -0
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"js/1016.d5d3729e.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/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/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/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 return `User ${username} does not have \"${permission ?? ''}\" 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 {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';\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 return {\n visible: isLoadedWithData || editMode,\n descriptionType,\n description,\n };\n}\n","import React from 'react';\nimport cn from 'bem-cn-lite';\n\nconst block = cn('yt-page-counter');\n\nexport interface PageCounterProps {\n className?: string;\n pageIndex?: number;\n pageCount?: number;\n}\n\nfunction PageCounter({pageIndex, pageCount, className}: PageCounterProps) {\n if (pageIndex === undefined || pageCount === undefined) {\n return null;\n }\n\n return pageCount! > 1 ? (\n <span className={block(null, className)}>\n Page: {(pageIndex || 0) + 1} / {pageCount}\n </span>\n ) : null;\n}\n\nexport default React.memo(PageCounter);\n","import React from 'react';\nimport cn from 'bem-cn-lite';\nimport capitalize_ from 'lodash/capitalize';\n\nimport barsDescendingSvg from '@gravity-ui/icons/svgs/bars-descending-align-left.svg';\nimport {Button, DropdownMenu, Icon, Text} from '@gravity-ui/uikit';\n\nimport SortIcon from '../../components/SortIcon/SortIcon';\n\nimport {OrderType, calculateNextOrderValue, nextSortOrderValue} from '../../utils/sort-helpers';\nimport PageCounter, {PageCounterProps} from '../../components/PageCounter/PageCounter';\nimport Loader from '../../components/Loader/Loader';\nimport {rumLogError} from '../../rum/rum-counter';\n\nimport './ColumnHeader.scss';\n\nconst block = cn('column-header');\n\nexport type ColumnInfo<T> = {\n column: T;\n title?: string;\n shortTitle?: string;\n /**\n * Ignored when allowedOrderTypes is defined\n */\n allowUnordered?: boolean;\n /**\n * Ignored when allowedOrderTypes is defined\n */\n withUndefined?: boolean;\n allowedOrderTypes?: Array<OrderType>;\n};\n\nexport type HasSortColumn<T> =\n | (ColumnInfo<T> & {options?: undefined})\n | ({\n title: string;\n shortTitle?: string;\n column: T;\n options: Array<ColumnInfo<T>>;\n } & Partial<Record<keyof Omit<ColumnInfo<T>, 'column' | 'title' | 'shortTitle'>, undefined>>);\n\nexport type ColumnHeaderProps<T extends string = string> = PageCounterProps &\n HasSortColumn<T> & {\n className?: string;\n order?: OrderType;\n multisortIndex?: number;\n onSort?: (\n column: T,\n nextOrder: OrderType,\n options: {currentOrder?: OrderType; multisort?: boolean},\n ) => void;\n\n loading?: boolean;\n\n align?: 'center' | 'left' | 'right';\n };\n\ntype NameTitleContent = {\n nameContent: string;\n titleContent: string;\n};\n\nfunction getNameTitle<T extends string>({\n column,\n title,\n shortTitle,\n}: Pick<ColumnInfo<T>, 'column' | 'title' | 'shortTitle'>): NameTitleContent {\n const t = title ?? capitalize_(column);\n const nameContent = !shortTitle ? t : shortTitle;\n return {nameContent, titleContent: t};\n}\n\nfunction useColumnInfo<T extends string = string>(\n props: ColumnHeaderProps<T>,\n): ColumnInfo<T> & NameTitleContent & {subColumn?: NameTitleContent} {\n if (props.options === undefined) {\n const {column, allowUnordered, withUndefined, title, shortTitle, allowedOrderTypes} = props;\n return {\n column,\n allowUnordered,\n withUndefined,\n allowedOrderTypes,\n ...getNameTitle({column, title, shortTitle}),\n };\n }\n\n const {column: value, options, title, shortTitle} = props;\n const columnData = options.find(({column}) => value === column)!;\n if (!columnData) {\n rumLogError({\n message: 'Unexpected behavior: missing value in ColumnHeader.props.options',\n additional: props,\n });\n }\n return {\n subColumn: getNameTitle({...columnData}),\n ...columnData,\n ...getNameTitle({column: '', title, shortTitle}),\n };\n}\n\nexport default function ColumnHeader<T extends string = string>(props: ColumnHeaderProps<T>) {\n const {className, align, order, onSort, multisortIndex, loading, pageIndex, pageCount} = props;\n const {\n column,\n allowUnordered,\n withUndefined,\n nameContent,\n titleContent,\n allowedOrderTypes,\n subColumn,\n } = useColumnInfo(props);\n\n const changeHandler = React.useCallback(\n (e: React.MouseEvent) => {\n const nextOrder = allowedOrderTypes\n ? calculateNextOrderValue(order, allowedOrderTypes)\n : nextSortOrderValue(order, allowUnordered, withUndefined);\n onSort?.(column, nextOrder, {\n currentOrder: order,\n multisort: e.ctrlKey || e.metaKey,\n });\n },\n [column, order, onSort, allowUnordered, allowedOrderTypes, withUndefined],\n );\n\n const sortable = Boolean(onSort);\n\n return (\n <div className={block(null, className)}>\n <div\n className={block('label-icon', {sortable, align})}\n onClick={sortable ? changeHandler : undefined}\n >\n <span className={block('label')} title={titleContent}>\n {nameContent}\n </span>\n {sortable && (\n <span className={block('icon')}>\n <SortIcon order={order} />\n </span>\n )}\n {multisortIndex !== undefined && (\n <span className={block('multisort')}>\n <sup>{multisortIndex}</sup>\n </span>\n )}\n {Boolean(order) && Boolean(subColumn) && (\n <Text\n className={block('label', {'sub-column': true})}\n variant=\"caption-2\"\n title={subColumn?.titleContent}\n color=\"dark-secondary\"\n >\n {subColumn?.nameContent}\n </Text>\n )}\n </div>\n <SubColumnSelector options={props.options} order={order} onSort={onSort} />\n {loading !== undefined && (\n <div className={block('loader')}>\n <Loader visible={loading} />\n </div>\n )}\n {Boolean(pageCount) && (\n <PageCounter\n className={block('page-counter')}\n pageIndex={pageIndex}\n pageCount={pageCount}\n />\n )}\n </div>\n );\n}\n\nfunction SubColumnSelector<T extends string>({\n order,\n options,\n onSort,\n}: Pick<ColumnHeaderProps<T>, 'onSort'> & {\n order?: ColumnHeaderProps<T>['order'];\n options?: Array<ColumnInfo<T>>;\n}) {\n return !options ? null : (\n <DropdownMenu\n items={options.map((x) => {\n const {titleContent} = getNameTitle(x);\n return {\n text: titleContent,\n action() {\n if (!onSort) {\n return;\n }\n const {column, allowUnordered, withUndefined, allowedOrderTypes} = x;\n const nextOrder = allowedOrderTypes\n ? calculateNextOrderValue(order, allowedOrderTypes)\n : nextSortOrderValue(order, allowUnordered, withUndefined);\n onSort(column, nextOrder, {\n currentOrder: order,\n });\n },\n };\n })}\n renderSwitcher={({onClick}) => (\n <Button onClick={onClick} view=\"flat\" size=\"xs\">\n <Icon size={12} data={barsDescendingSvg} />\n </Button>\n )}\n />\n );\n}\n","import {compose} from 'redux';\nimport cn from 'bem-cn-lite';\nimport React, {useCallback, useMemo} from 'react';\nimport {DialogField, FormApi, YTDFDialog, makeErrorFields} from '../../../components/Dialog';\nimport ErrorBoundary from '../../../components/ErrorBoundary/ErrorBoundary';\nimport {Button, ButtonProps} from '@gravity-ui/uikit';\nimport PermissionsControl from '../RequestPermissions/PermissionsControl/PermissionsControl';\n\nimport withVisible, {WithVisibleProps} from '../../../hocs/withVisible';\n\nimport './RequestPermissions.scss';\nimport {YTError} from '../../../types';\nimport {AclMode, INHERITANCE_MODE_TYPES, IdmObjectType} from '../../../constants/acl';\n\nimport UIFactory from '../../../UIFactory';\nimport hammer from '../../../common/hammer';\nimport map_ from 'lodash/map';\n\nimport {docsUrl} from '../../../config';\nimport {makeLink} from '../../../utils/utils';\nimport {AclColumnGroup, IdmKindType} from '../../../utils/acl/acl-types';\nimport {YTPermissionTypeUI} from '../../../utils/acl/acl-api';\nimport {PermissionToRequest} from '../../../store/actions/acl';\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 {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","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","useYTAnnotation","getCluster","getAttributes","_useAnnotationQuery","useAnnotationQuery","annotationData","isAnnotationSuccess","isSuccess","isLoading","ytAnnotation","ytAnnotationPath","isAnnotationLoadedWithData","Boolean","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","useCallback","toggleEditMode","cancel","setEdittingAnnotation","save","useDescriptionActions","Button","onClick","loading","awesome","SwitchDescription","_UIFactory$externalAn","descriptionType","getDescriptionType","RadioButton","content","externalAnnotationSetup","externalServiceName","onUpdate","setDescriptionType","NavigationDescriptionOverview","Tooltip","Link","href","target","AnnotationWithPartial","expanded","onToggle","_React$useMemo","text","slice","isFullText","Markdown","ClickableText","color","ExternalAnnotationFallback","_UIFactory$externalAn2","height","variant","disabled","_useDescriptionCollap","getSettingAnnotationVisibility","toggleExpanded","setSettingAnnotationVisibility","useDescriptionCollapse","_useDescription","_useYTAnnotation","_useExternalAnnotatio","visible","description","useDescription","CollapsibleSection","name","collapsed","UI_COLLAPSIBLE_SIZE","overview","EditAnnotationWithPreview","valuePath","initialValue","onChange","hideReset","PageCounter","pageIndex","pageCount","getNameTitle","shortTitle","t","capitalize_","nameContent","titleContent","ColumnHeader","align","order","onSort","multisortIndex","_useColumnInfo","allowUnordered","withUndefined","allowedOrderTypes","columnData","find","rumLogError","additional","subColumn","useColumnInfo","changeHandler","nextOrder","calculateNextOrderValue","nextSortOrderValue","currentOrder","multisort","ctrlKey","metaKey","sortable","SortIcon","SubColumnSelector","Loader","DropdownMenu","items","x","renderSwitcher","barsDescendingSvg","FLAG_NAME_PREFIX","SHORT_TITLE","access_control_object","COLUMNS_FELDS","Set","compose","withVisible","_SHORT_TITLE$idmKind","aclMode","handleShow","handleClose","onClose","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","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","ReadableField","help","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","getAttribute","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","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","isIncompleteTagged","isIncompleteValue","allowRawCopy","useRawString","copyTooltip","visibleValue","onMouseEnter","onMouseLeave","Label","theme","ClipboardButton","onCopy","copyToClipboard","UIKitIcon","Eye","prepareColumns","useRawStrings","schemaByName","sortOrder","isKeyColumn","indexOf","header","unescapeKeyValue","render","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":""}
|