@ytsaurus/ui 1.91.0 → 1.91.1
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 +5 -5
- package/dist/public/build/js/acl.f80d2afa.chunk.js +2 -0
- package/dist/public/build/js/acl.f80d2afa.chunk.js.map +1 -0
- package/dist/public/build/js/{runtime.dc94a394.js → runtime.2e1b02e1.js} +2 -2
- package/dist/public/build/js/{runtime.dc94a394.js.map → runtime.2e1b02e1.js.map} +1 -1
- package/dist/public/build/manifest.json +4 -4
- package/package.json +2 -2
- package/dist/public/build/js/acl.45a0266b.chunk.js +0 -2
- package/dist/public/build/js/acl.45a0266b.chunk.js.map +0 -1
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"js/acl.45a0266b.chunk.js","mappings":"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","sources":["webpack://@ytsaurus/ui/./src/ui/components/Dialog/controls/RoleListControl/utils.ts","webpack://@ytsaurus/ui/./src/ui/components/Dialog/DialogError.tsx","webpack://@ytsaurus/ui/./src/ui/components/Dialog/index.tsx","webpack://@ytsaurus/ui/./src/ui/hocs/withDelayedMount.tsx","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/icons/svgs/chevrons-right.svg","webpack://@ytsaurus/ui/./src/ui/components/ExpandButton/ExpandButton.tsx","webpack://@ytsaurus/ui/./src/ui/components/LoadDataHandler/LoadDataHandler.tsx","webpack://@ytsaurus/ui/./src/ui/components/SubjectLink/SubjectLink.tsx","webpack://@ytsaurus/ui/./src/ui/components/TextInputWithDebounce/TextInputWithDebounce.tsx","webpack://@ytsaurus/ui/./src/ui/components/templates/utils.js","webpack://@ytsaurus/ui/./src/ui/store/actions/acl-filters.ts","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/icons/esm/Power.js","webpack://@ytsaurus/ui/./src/ui/containers/ACL/ColumnGroups/EditColumnGroupModal.tsx","webpack://@ytsaurus/ui/./src/ui/containers/ACL/ColumnGroups/ColumnGroups.tsx","webpack://@ytsaurus/ui/./src/ui/containers/ACL/DeletePermissionModal/DeletePermissionModal.js","webpack://@ytsaurus/ui/./src/ui/containers/ACL/ManageAcl/ManageAcl.tsx","webpack://@ytsaurus/ui/./src/ui/containers/ACL/ManageInheritance/ManageInheritance.tsx","webpack://@ytsaurus/ui/./src/ui/containers/ACL/AclActions/AclActions.tsx","webpack://@ytsaurus/ui/./src/ui/containers/ACL/MyPermissinos/MyPermissions.tsx","webpack://@ytsaurus/ui/./src/ui/containers/ACL/ApproversFilters/ApproversFilters.tsx","webpack://@ytsaurus/ui/./src/ui/containers/ACL/ObjectPermissionsFilters/ObjectPermissionsFilters.tsx","webpack://@ytsaurus/ui/./src/ui/components/SegmentControl/SegmentControl.tsx","webpack://@ytsaurus/ui/./src/ui/containers/ACL/AclModeControl.tsx","webpack://@ytsaurus/ui/./src/ui/containers/ACL/AclColumnsCell.tsx","webpack://@ytsaurus/ui/./src/ui/assets/img/svg/acl-inherited.svg","webpack://@ytsaurus/ui/./src/ui/containers/ACL/InheritanceMessage/InheritanceMessage.tsx","webpack://@ytsaurus/ui/./src/ui/containers/ACL/ACL.tsx","webpack://@ytsaurus/ui/./src/ui/containers/ACL/RoleActions.tsx","webpack://@ytsaurus/ui/./src/ui/containers/ACL/ACL-connect-helpers.tsx","webpack://@ytsaurus/ui/./src/ui/containers/ACL/RequestPermissions/PermissionsControl/PermissionsControl.tsx","webpack://@ytsaurus/ui/./src/ui/containers/ACL/RequestPermissions/RequestPermissions.tsx","webpack://@ytsaurus/ui/./src/ui/hocs/withVisible.tsx","webpack://@ytsaurus/ui/./src/ui/rum/rum-measure-types.ts","webpack://@ytsaurus/ui/./src/ui/store/actions/acl.ts","webpack://@ytsaurus/ui/./src/ui/store/selectors/acl-filters.ts","webpack://@ytsaurus/ui/./src/ui/store/selectors/acl.ts","webpack://@ytsaurus/ui/./src/ui/store/selectors/navigation/index.js","webpack://@ytsaurus/ui/./src/ui/utils/app-url/navigation.ts","webpack://@ytsaurus/ui/./src/ui/utils/app-url/utils.ts","webpack://@ytsaurus/ui/./src/ui/utils/app-url/index.ts","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/icons/svgs/chevron-right.svg","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/icons/svgs/circle-check.svg"],"sourcesContent":["import cn from 'bem-cn-lite';\n\nimport filter_ from 'lodash/filter';\nimport forEach_ from 'lodash/forEach';\nimport map_ from 'lodash/map';\n\nimport type {EditableManyListsItemType} from '../../../../components/Dialog';\nimport type {ResponsibleType, RoleConverted, Subject} from '../../../../utils/acl/acl-types';\nimport type {PreparedRole} from '../../../../utils/acl';\nimport {RoleListControlProps} from './RoleListControl';\n\nexport const block = cn('role-list-control');\n\nexport function prepareRoleListValue(roles: Array<PreparedRole>, otherMembers: Array<string> = []) {\n const current: typeof roles = [];\n const toAdd: typeof roles = [];\n const toRemove: typeof roles = [];\n const unrecognized: typeof roles = [];\n forEach_(roles, (item) => {\n const {isUnrecognized, isRequested, isApproved, isDepriving} = item;\n if (isUnrecognized) {\n unrecognized.push(item);\n } else if (isDepriving) {\n toRemove.push(item);\n } else if (isApproved || isRequested) {\n toAdd.push(item);\n } else {\n current.push(item);\n }\n });\n\n const currentArr = current.map((item) => prepareItemOfCurrent(item));\n const otherArr = otherMembers.map((item) => ({\n title: item,\n data: {},\n frozen: true,\n }));\n\n return {\n newItems: [],\n current: {title: 'Current', data: currentArr.concat(otherArr)},\n toAdd: {\n title: 'Will be added',\n itemClassName: block('item-to-add'),\n data: toAdd.map((item) => prepareItemOfCurrent(item, {frozen: true})),\n },\n toRemove: {\n title: 'Will be removed',\n itemClassName: block('item-to-remove'),\n data: toRemove.map((item) => prepareItemOfCurrent(item, {frozen: true})),\n },\n unrecognized: {\n title: 'Unrecognized',\n itemClassName: block('item-unrecognized'),\n data: unrecognized.map((item) => prepareItemOfCurrent(item, {frozen: true})),\n },\n };\n}\n\nfunction prepareItemOfCurrent(role: PreparedRole, extraProps: any = {}) {\n return {\n title: role.text || role.value,\n data: role,\n ...extraProps,\n };\n}\n\nexport function roleListValueToSubjectList(\n value: RoleListControlProps['value'],\n): Array<ResponsibleType> {\n const {current, newItems, toAdd} = value;\n return [\n ...newItems,\n ...manyListDataItemToSubjectList(current),\n ...manyListDataItemToSubjectList(toAdd),\n ];\n}\n\nfunction manyListDataItemToSubjectList(\n manyListDataItem: EditableManyListsItemType<RoleConverted>,\n): Array<ResponsibleType> {\n const {data} = manyListDataItem || {};\n return map_(\n filter_(data, ({removed}) => !removed),\n ({data}) => {\n const {type, value} = data || {};\n return {type: type!, value: value!};\n },\n );\n}\n\nexport function extractChangedSubjects(value: {\n current: EditableManyListsItemType<RoleConverted>;\n newItems: Array<ResponsibleType>;\n}): {\n added: Subject[];\n removed: Subject[];\n} {\n const {current, newItems} = value;\n const added = newItems || [];\n const removed = ((current && current.data) || []).filter(({removed}) => removed);\n return {\n added: added.map(({type, value}) => {\n return type === 'users' ? {user: value} : {group: value};\n }),\n removed: removed.map(({data}) => {\n const {value, type} = data || {};\n return type === 'users' ? {user: value!} : {group: value!};\n }),\n };\n}\n","import React from 'react';\nimport cn from 'bem-cn-lite';\n\nimport type {FORM_ERROR as FormErrorType} from './index';\n\nimport {FIX_MY_TYPE, YTError} from '../../types';\nimport {YTErrorBlock} from '../../components/Block/Block';\n\nimport compact_ from 'lodash/compact';\nimport map_ from 'lodash/map';\n\nconst block = cn('yt-dialog-error');\n\nexport function DialogError(props: FIX_MY_TYPE) {\n return <YTErrorBlock {...props} className={block()} />;\n}\n\nexport function makeErrorFields(errors: Array<YTError | Error | undefined>) {\n return compact_(\n map_(errors, (error, index) => {\n return error\n ? {\n name: `error_${index}`,\n type: 'block' as const,\n extras: {\n children: <DialogError error={error} />,\n },\n }\n : undefined;\n }),\n );\n}\n\nconst FORM_ERROR: typeof FormErrorType = 'FINAL_FORM/form-error';\n\nexport function makeFormSubmitError(error: YTError) {\n return {\n validationErrors: {\n [FORM_ERROR]: <DialogError error={error} />,\n },\n };\n}\n","import React from 'react';\nimport withLazyLoading from '../../hocs/withLazyLoading';\nimport {withDelayedMount} from '../../hocs/withDelayedMount';\n\nimport type {\n registerDialogControl as RegisterDialogControlFn,\n registerDialogTabControl as RegisterDialogTabControlFn,\n YTDialogType,\n} from './Dialog';\n\nexport type * from './Dialog';\nexport * from './DialogError';\nexport * from './controls/RoleListControl/utils';\n\nexport function importYTDFDialog() {\n return import(/* webpackChunkName: \"yt-df-dialog\" */ './Dialog');\n}\n\nexport const YTDFDialog = withDelayedMount(\n withLazyLoading(\n React.lazy(async () => {\n return {default: (await importYTDFDialog()).YTDialog};\n }),\n '',\n ),\n) as YTDialogType;\n\nexport function useControlRegistration(\n fn: (params: {\n registerDialogControl: typeof RegisterDialogControlFn;\n registerDialogTabControl: typeof RegisterDialogTabControlFn;\n }) => void,\n) {\n importYTDFDialog().then(({registerDialogControl, registerDialogTabControl}) => {\n fn({registerDialogControl, registerDialogTabControl});\n });\n}\n\nexport type {RoleListControlProps} from './controls/RoleListControl/RoleListControl';\nexport const RoleListControl = withLazyLoading(\n React.lazy(async () => {\n return {default: (await importYTDFDialog()).RoleListControl};\n }),\n '',\n);\n\nexport const EditableList = withLazyLoading(\n React.lazy(async () => {\n return {default: (await importYTDFDialog()).EditableList};\n }),\n '',\n);\n\nexport const TabFieldVertical = withLazyLoading(\n React.lazy(async () => {\n return {default: (await importYTDFDialog()).TabFieldVertical};\n }),\n '',\n);\n","import React from 'react';\n\n/**\n * The hoc allows to delay mounting until `props.visible == true`.\n * The hoc might be useful to wrap components wrapped by React.lazy\n * @param Component\n * @returns\n */\nexport function withDelayedMount<P extends {visible?: boolean}>(Component: React.ComponentType<P>) {\n return function MountOnFirstVisible(props: P) {\n const [mounted, setMounted] = React.useState(false);\n React.useEffect(() => {\n if (!mounted && props.visible) {\n setMounted(true);\n }\n }, [props.visible, mounted]);\n return !mounted ? null : <Component {...props} />;\n };\n}\n","const SvgChevronsRight = props => <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 16 16\" {...props}><path fill=\"currentColor\" fillRule=\"evenodd\" d=\"M3.47 10.97a.75.75 0 1 0 1.06 1.06l3.5-3.5a.75.75 0 0 0 0-1.06l-3.5-3.5a.75.75 0 0 0-1.06 1.06L6.44 8zm5 0a.75.75 0 1 0 1.06 1.06l3.5-3.5a.75.75 0 0 0 0-1.06l-3.5-3.5a.75.75 0 0 0-1.06 1.06L11.44 8z\" clipRule=\"evenodd\" /></svg>;\nexport default SvgChevronsRight;","import React, {FC} from 'react';\nimport {Button, ButtonProps, Icon} from '@gravity-ui/uikit';\nimport shevronRightSvg from '@gravity-ui/icons/svgs/chevron-right.svg';\nimport doubleShevronRightSvg from '@gravity-ui/icons/svgs/chevrons-right.svg';\nimport cn from 'bem-cn-lite';\nimport './ExpandButton.scss';\n\nconst block = cn('yt-expanded-button');\n\ntype Props = {\n className?: string;\n expanded: boolean;\n toggleExpanded: () => void;\n inline?: boolean;\n all?: boolean;\n showText?: boolean;\n qa?: ButtonProps['qa'];\n};\n\nexport const ExpandButton: FC<Props> = ({\n className,\n expanded,\n inline,\n toggleExpanded,\n all,\n showText,\n qa,\n}) => {\n const titleExpanded = all ? 'Collapse All' : 'Collapse';\n const titleCollapsed = all ? 'Expand All' : 'Expand';\n return (\n <Button\n className={block({inline}, className)}\n view=\"flat-secondary\"\n title={expanded ? titleExpanded : titleCollapsed}\n onClick={toggleExpanded}\n qa={qa}\n >\n {showText && (expanded ? titleExpanded : titleCollapsed) + ' '}\n <Icon\n className={block('expand', {expanded})}\n data={all ? doubleShevronRightSvg : shevronRightSvg}\n size={16}\n />\n </Button>\n );\n};\n","import React, {Component} from 'react';\n\nimport {Toaster} from '@gravity-ui/uikit';\nimport {YTErrorBlock} from '../../components/Error/Error';\nimport hammer from '../../common/hammer';\n\nimport {showErrorPopup} from '../../utils/utils';\nimport {YTError} from '../../types';\n\nconst toaster = new Toaster();\n\ninterface LoadDataHandlerProps {\n alwaysShowError?: boolean;\n loaded: boolean;\n error: boolean;\n errorData?: YTError;\n children: React.ReactNode;\n}\n\nexport default class LoadDataHandler extends Component<LoadDataHandlerProps> {\n componentDidUpdate() {\n const {error, loaded, errorData} = this.props;\n\n if (error && loaded) {\n toaster.add({\n theme: 'danger',\n name: 'network',\n autoHiding: 500000,\n title: 'Oops! something went wrong.',\n content: errorData ? (errorData as YTError).message : hammer.format.NO_VALUE,\n actions: [\n {\n label: ' view',\n onClick: () => showErrorPopup(errorData as YTError),\n },\n ],\n });\n }\n }\n\n render() {\n const {alwaysShowError = false, error, errorData, loaded, children} = this.props;\n\n const initialLoading = !loaded;\n\n if (error && (alwaysShowError || initialLoading)) {\n return <YTErrorBlock error={errorData} />;\n }\n\n return children;\n }\n}\n","import {SubjectGroupType} from '../../utils/acl';\nimport UIFactory from '../../UIFactory';\n\nexport type SubjectCardProps = {\n className?: string;\n noLink?: boolean;\n showIcon?: boolean;\n\n internal?: boolean;\n url?: string;\n\n name: string | number;\n type?: 'user' | 'group' | 'tvm';\n groupType?: SubjectGroupType;\n};\n\nexport function SubjectCard(props: SubjectCardProps) {\n return UIFactory.renderSubjectCard(props);\n}\n","import React from 'react';\nimport throttle_ from 'lodash/throttle';\n\nimport {TextInput, TextInputProps} from '@gravity-ui/uikit';\n\nexport interface TextInputWithDebounceProps extends TextInputProps {\n debounce?: number;\n onBlur?: (e: React.FocusEvent) => void;\n onEnterKeyDown?: (e: React.KeyboardEvent) => void;\n}\n\nfunction TextInputWithDebounce(props: TextInputWithDebounceProps) {\n const {\n debounce = 400,\n onUpdate = () => {},\n onBlur,\n value,\n onEnterKeyDown,\n onKeyDown,\n ...rest\n } = props;\n\n const [input, setInput] = React.useState<string | undefined>();\n\n const handleChangeExt = React.useMemo(() => {\n return throttle_(onUpdate as any, debounce);\n }, [debounce, onUpdate]);\n\n const handleChange = React.useCallback(\n (text: string) => {\n setInput(text);\n handleChangeExt.cancel();\n handleChangeExt(text);\n },\n [handleChangeExt, setInput],\n );\n\n const handleKeyDown = React.useCallback(\n (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (onKeyDown) {\n onKeyDown(e);\n }\n if (e.key === 'Enter' && onEnterKeyDown) {\n onEnterKeyDown(e);\n }\n },\n [onEnterKeyDown, onKeyDown],\n );\n\n const handleBlur = React.useCallback(\n (e: React.FocusEvent<HTMLInputElement>) => {\n setInput(undefined);\n\n if (onBlur) {\n onBlur(e);\n }\n },\n [setInput, onBlur],\n );\n\n return (\n <TextInput\n onUpdate={handleChange}\n {...rest}\n value={input === undefined ? value : input}\n onBlur={handleBlur}\n onKeyDown={handleKeyDown}\n />\n );\n}\n\nexport default React.memo(TextInputWithDebounce);\n","import React from 'react';\nimport unipika from '../../common/thor/unipika';\nimport block from 'bem-cn-lite';\n\nimport Link from '../../components/Link/Link';\n\nimport hammer from '../../common/hammer';\nimport {showErrorPopup} from '../../utils/utils';\n\nimport './utils.scss';\n\nfunction wrapRenderMethods(templates) {\n return Object.keys(templates).reduce((newTemplates, key) => {\n newTemplates[key] = templates[key];\n\n return newTemplates;\n }, {});\n}\n\n/**\n * Template must be a scoped function, because they are bound to elements-table component instance\n * @param {ViewModel} item\n * @param {String} columnName\n */\nfunction defaultTemplate(item, columnName) {\n return String(hammer.format['ValueOrDefault'](item[columnName]));\n}\n\nfunction prepareTextProps(text, asHTML) {\n const props = {};\n\n if (asHTML) {\n // Need to render html strings\n props.dangerouslySetInnerHTML = {__html: text};\n } else {\n props.children = unipika.decode(String(text));\n }\n\n return props;\n}\n\nexport function renderText(text, settings = {}) {\n let className = block('elements-text');\n\n if (settings.mix) {\n className = className(\n false,\n block(settings.mix.block)(settings.mix.elem, {\n ...settings.mix.mods,\n }),\n );\n } else {\n className = className();\n }\n\n const textProps = prepareTextProps(text, settings.asHTML);\n\n const title = settings.title || text;\n\n return <span {...textProps} title={title} className={className} />;\n}\n\nexport function printColumnAsBytes(item, columnName) {\n const column = this.getColumn(columnName);\n return hammer.format['Bytes'](column.get(item));\n}\n\nexport function printColumnAsNumber(item, columnName) {\n const column = this.getColumn(columnName);\n return hammer.format['Number'](column.get(item));\n}\n\nexport function printColumnAsTimeDurationWithMs(item, columnName) {\n const column = this.getColumn(columnName);\n return hammer.format['TimeDuration'](column.get(item), {\n format: 'milliseconds',\n });\n}\n\nexport function printColumnAsReadableField(item, columnName) {\n const column = this.getColumn(columnName);\n return (\n <span className=\"elements-ellipsis\">\n {hammer.format['ReadableField'](column.get(item))}\n </span>\n );\n}\n\nexport function printColumnAsTime(item, columnName) {\n const value = this?.getColumn ? this.getColumn(columnName).get(item) : item[columnName];\n return <ColumnAsTime value={value} />;\n}\n\nexport function ColumnAsTime({value}) {\n return (\n <span className=\"elements-ellipsis\">\n {hammer.format['DateTime'](value, {format: 'full'})}\n </span>\n );\n}\n\nexport function printColumnAsError(error) {\n const showError = () => {\n showErrorPopup(error, {hideOopsMsg: true});\n };\n return typeof error === 'object' ? (\n <Link theme=\"ghost\" onClick={showError}>\n View\n </Link>\n ) : (\n hammer.format.NO_VALUE\n );\n}\n\n// Using prepared table data\nexport function asBytes(item, columnName) {\n return hammer.format['Bytes'](item[columnName]);\n}\n\nexport function asNumber(item, columnName) {\n return hammer.format['Number'](item[columnName]);\n}\n\nexport default {\n __default__: defaultTemplate,\n _templates: {},\n add: function (templateId, templates) {\n this._templates[templateId] = wrapRenderMethods(templates);\n },\n get: function (templateId) {\n return this._templates[templateId] || {};\n },\n};\n","import {ThunkAction} from 'redux-thunk';\nimport {getAclFilterExpandedSubjects} from '../../store/selectors/acl-filters';\nimport {ACL_CHANGE_FILTERS} from '../../constants/acl';\n\nimport {AclFiltersAction, AclFiltersState} from '../reducers/acl/acl-filters';\nimport {RootState} from '../../store/reducers';\n\nexport function changeApproversSubjectFilter({\n approversSubject,\n}: Pick<AclFiltersState, 'approversSubject'>) {\n return {\n type: ACL_CHANGE_FILTERS,\n data: {approversSubject},\n };\n}\n\nexport function changeObjectSubjectFilter({objectSubject}: Pick<AclFiltersState, 'objectSubject'>) {\n return {\n type: ACL_CHANGE_FILTERS,\n data: {objectSubject},\n };\n}\n\nexport function changeObjectPermissionsFilter({\n objectPermissions,\n}: Pick<AclFiltersState, 'objectPermissions'>) {\n return {\n type: ACL_CHANGE_FILTERS,\n data: {objectPermissions},\n };\n}\n\nexport function updateAclFilters(data: Partial<AclFiltersState>) {\n return {type: ACL_CHANGE_FILTERS, data};\n}\n\ntype AclFilterThunkAction = ThunkAction<void, RootState, unknown, AclFiltersAction>;\n\nexport function toggleExpandAclSubject(subject?: string | number): AclFilterThunkAction {\n return (dispatch, getState) => {\n if (!subject) {\n return;\n }\n\n const expandedSubjects = new Set(getAclFilterExpandedSubjects(getState()));\n if (expandedSubjects.has(subject)) {\n expandedSubjects.delete(subject);\n } else {\n expandedSubjects.add(subject);\n }\n dispatch({type: ACL_CHANGE_FILTERS, data: {expandedSubjects}});\n };\n}\n","import * as React from 'react';\nconst Power = (props) => (React.createElement(\"svg\", Object.assign({ xmlns: \"http://www.w3.org/2000/svg\", width: 16, height: 16, fill: \"none\", viewBox: \"0 0 16 16\" }, props),\n React.createElement(\"path\", { fill: \"currentColor\", fillRule: \"evenodd\", d: \"M8.75 1.75a.75.75 0 0 0-1.5 0v5.5a.75.75 0 0 0 1.5 0v-5.5ZM4.92 3.442A.75.75 0 1 0 4.08 2.2a7 7 0 1 0 7.841 0 .75.75 0 1 0-.841 1.242 5.5 5.5 0 1 1-6.159 0Z\", clipRule: \"evenodd\" })));\nexport default Power;\n","import React, {useMemo, useState} from 'react';\nimport {YTDFDialog, makeErrorFields} from '../../../components/Dialog';\nimport {AclColumnGroup} from '../../../utils/acl/acl-types';\nimport includes_ from 'lodash/includes';\n\nexport interface Props {\n title: string;\n confirmText: string;\n handleClose: () => void;\n handleSubmit: (value: Partial<AclColumnGroup>) => Promise<void>;\n initialData?: Partial<AclColumnGroup>;\n disabledFields?: Array<keyof FormValues>;\n visible: boolean;\n}\n\ninterface FormValues {\n name: string;\n columns: Array<string>;\n enabled: boolean;\n}\n\nexport default function EditColumnGroupModal({\n visible,\n title,\n confirmText,\n handleClose,\n handleSubmit,\n initialData,\n disabledFields = [],\n}: Props) {\n const [error, setError] = useState(undefined);\n\n const initialValues = useMemo(() => {\n return {\n name: String(initialData?.name),\n columns: initialData?.columns,\n enabled: Boolean(initialData?.enabled),\n };\n }, [initialData]);\n\n return (\n <YTDFDialog<FormValues>\n pristineSubmittable\n visible={visible}\n modal={true}\n headerProps={{title}}\n footerProps={{textApply: confirmText}}\n onClose={() => {\n setError(undefined);\n handleClose();\n }}\n onAdd={(form) => {\n const {name, columns, enabled} = form.getState().values;\n const submitResult: Partial<AclColumnGroup> = {\n name: name,\n columns,\n enabled: enabled,\n };\n return handleSubmit(submitResult).catch((err) => {\n setError(err);\n throw err;\n });\n }}\n initialValues={initialValues}\n fields={[\n {\n name: 'name',\n type: 'text',\n required: true,\n caption: 'Name',\n extras: {\n placeholder: 'column group name',\n disabled: includes_(disabledFields, 'name'),\n },\n },\n {\n name: 'columns',\n type: 'acl-columns',\n required: true,\n caption: 'Columns',\n tooltip: 'One column name per line',\n extras: {\n disabled: includes_(disabledFields, 'columns'),\n },\n },\n {\n name: 'enabled',\n type: 'tumbler',\n caption: 'Enabled',\n extras: {\n disabled: includes_(disabledFields, 'enabled'),\n },\n },\n ...makeErrorFields([error]),\n ]}\n />\n );\n}\n","import React, {useState} from 'react';\n\nimport cn from 'bem-cn-lite';\n\nimport {Power} from '@gravity-ui/icons';\n\nimport ErrorBoundary from '../../../components/ErrorBoundary/ErrorBoundary';\n\nimport DataTableYT from '../../../components/DataTableYT/DataTableYT';\nimport type {Column} from '@gravity-ui/react-data-table';\nimport Icon from '../../../components/Icon/Icon';\nimport Button from '../../../components/Button/Button';\nimport {renderText} from '../../../components/templates/utils';\nimport {Toolbar} from '../../../components/WithStickyToolbar/Toolbar/Toolbar';\nimport Select from '../../../components/Select/Select';\nimport WithStickyToolbar from '../../../components/WithStickyToolbar/WithStickyToolbar';\n\nimport EditColumnGroupModal, {Props as ModalProps} from './EditColumnGroupModal';\nimport {AclColumnGroup} from '../../../utils/acl/acl-types';\nimport UIFactory from '../../../UIFactory';\n\nimport './ColumnGroups.scss';\nimport TextInputWithDebounce from '../../../components/TextInputWithDebounce/TextInputWithDebounce';\nimport {ACLReduxProps} from '../ACL-connect-helpers';\n\nconst block = cn('column-groups');\n\ntype Props = ColumnGropsToolbarProps &\n Pick<\n ACLReduxProps,\n | 'loaded'\n | 'columnGroups'\n | 'columnsFilter'\n | 'columnGroupNameFilter'\n | 'updateAclFilters'\n | 'userPermissionsAccessColumns'\n > & {\n path: string;\n loadAclDataFn: () => void;\n cluster: string;\n allowEdit?: boolean;\n };\n\nexport default function ColumnGroups({\n loaded,\n columnGroups,\n path,\n loadAclDataFn,\n cluster,\n allowEdit = false,\n updateAclFilters,\n columnsFilter,\n columnGroupNameFilter,\n userPermissionsAccessColumns,\n}: Props) {\n const [modalProps, setModalProps] = useState({\n title: '',\n confirmText: '',\n disabledFields: [],\n initialData: undefined,\n visible: false,\n handleClose: () => {\n setModalProps((prevProps) => ({\n ...prevProps,\n visible: false,\n }));\n },\n handleSubmit: (_value: Partial<AclColumnGroup>) => Promise.resolve(),\n } as ModalProps);\n\n const handleAddClick = () => {\n setModalProps((prevProps) => ({\n ...prevProps,\n title: 'Add new column group',\n confirmText: 'Add',\n disabledFields: ['enabled'],\n visible: true,\n initialData: {\n name: '',\n columns: [],\n enabled: false,\n },\n handleSubmit: (value: Partial<AclColumnGroup>) => {\n return UIFactory.getAclApi()\n .createColumnGroup(cluster, path, value)\n .then(() => {\n loadAclDataFn();\n });\n },\n }));\n };\n\n const handleEditClick = (item: AclColumnGroup) => {\n setModalProps((prevProps) => ({\n ...prevProps,\n title: 'Edit column group',\n confirmText: 'Save',\n initialData: {...item},\n disabledFields: [],\n visible: true,\n handleSubmit: (value: Partial<AclColumnGroup>) => {\n return UIFactory.getAclApi()\n .editColumnGroup(cluster, {...value, id: item.id})\n .then(() => {\n loadAclDataFn();\n });\n },\n }));\n };\n\n const handleDeleteClick = (item: AclColumnGroup) => {\n setModalProps((prevProps) => ({\n ...prevProps,\n title: 'Delete column group',\n confirmText: 'Delete',\n initialData: {...item},\n disabledFields: ['name', 'columns', 'enabled'],\n visible: true,\n handleSubmit: () => {\n const {id} = item;\n return UIFactory.getAclApi()\n .deleteColumnGroup(cluster, id)\n .then(() => {\n loadAclDataFn();\n });\n },\n }));\n };\n\n const columns: Array<Column<AclColumnGroup>> = [\n {\n name: 'Empty',\n className: block('empty'),\n header: null,\n render({row}) {\n return <Power className={block('active-icon', {enabled: row.enabled})} />;\n },\n },\n {\n name: 'Name',\n render({row}) {\n return <span title={row.name}>{row.name}</span>;\n },\n align: 'left',\n className: block('name'),\n },\n {\n name: 'Columns',\n render({row}) {\n return renderText(row.columns?.map((column) => `\"${column}\"`).join(', '));\n },\n className: block('columns'),\n align: 'left',\n },\n {\n name: '',\n className: block('actions'),\n render({row}) {\n return allowEdit ? (\n <>\n <span\n className={block('icon', {delete: true})}\n onClick={() => handleDeleteClick(row)}\n >\n <Icon awesome=\"trash-alt\" />\n </span>\n <span\n className={block('icon', {edit: true})}\n onClick={() => handleEditClick(row)}\n >\n <Icon awesome=\"pencil\" />\n </span>\n </>\n ) : null;\n },\n align: 'right',\n },\n ];\n\n return (\n <ErrorBoundary>\n <div>\n <div className=\"elements-heading elements-heading_size_xs\">\n Column groups\n {allowEdit && (\n <Button className={block('button', {add: true})} onClick={handleAddClick}>\n <Icon awesome={'plus'} />\n Add\n </Button>\n )}\n </div>\n <WithStickyToolbar\n topMargin=\"none\"\n bottomMargin=\"regular\"\n toolbar={\n <Toolbar\n itemsToWrap={[\n {\n node: (\n <TextInputWithDebounce\n placeholder=\"Filter by name\"\n className={block('filter')}\n value={columnGroupNameFilter}\n onUpdate={(columnGroupNameFilter) =>\n updateAclFilters({columnGroupNameFilter})\n }\n />\n ),\n },\n {\n node: (\n <ColumnGroupsFilter\n {...{\n columnsFilter,\n updateAclFilters,\n userPermissionsAccessColumns,\n }}\n />\n ),\n shrinkable: true,\n },\n ]}\n />\n }\n content={\n <DataTableYT<AclColumnGroup>\n loaded={loaded}\n noItemsText=\"There are not any column groups\"\n data={columnGroups}\n columns={columns}\n theme={'yt-borderless'}\n settings={{\n sortable: false,\n displayIndices: false,\n }}\n />\n }\n />\n </div>\n {modalProps.visible ? <EditColumnGroupModal {...modalProps} /> : null}\n </ErrorBoundary>\n );\n}\n\ninterface ColumnGropsToolbarProps\n extends Pick<\n ACLReduxProps,\n 'updateAclFilters' | 'columnsFilter' | 'userPermissionsAccessColumns'\n > {}\n\nexport function ColumnGroupsFilter({\n columnsFilter: value,\n userPermissionsAccessColumns,\n updateAclFilters,\n}: ColumnGropsToolbarProps) {\n const options = React.useMemo(() => {\n return userPermissionsAccessColumns?.map((value) => {\n return {value, title: value};\n });\n }, [userPermissionsAccessColumns]);\n return (\n <Select\n className={block('columns-filter')}\n multiple\n hasClear\n filterable\n label=\"Columns\"\n placeholder=\"filter\"\n items={options}\n value={value}\n onUpdate={(columnsFilter) => updateAclFilters({columnsFilter})}\n maxVisibleValuesTextLength={60}\n width=\"max\"\n />\n );\n}\n","import React, {Component} from 'react';\nimport PropTypes from 'prop-types';\nimport cn from 'bem-cn-lite';\nimport {Checkbox} from '@gravity-ui/uikit';\n\nimport {YTErrorBlock} from '../../../components/Error/Error';\nimport Label from '../../../components/Label/Label';\nimport MetaTable from '../../../components/MetaTable/MetaTable';\nimport Modal from '../../../components/Modal/Modal';\nimport {renderText} from '../../../components/templates/utils';\n\nimport hammer from '../../../common/hammer';\n\nimport './DeletePermissionModal.scss';\n\nconst block = cn('navigation-acl-delete-modal');\n\nexport default class DeletePermissionModal extends Component {\n static propTypes = {\n // from parent\n idmKind: PropTypes.string,\n path: PropTypes.string.isRequired,\n itemToDelete: PropTypes.shape({\n key: PropTypes.string,\n action: PropTypes.string,\n inherited: PropTypes.bool,\n inheritanceMode: PropTypes.string,\n subjects: PropTypes.arrayOf(PropTypes.string),\n permissions: PropTypes.arrayOf(PropTypes.string),\n columns: PropTypes.arrayOf(PropTypes.string),\n }).isRequired,\n visible: PropTypes.bool.isRequired,\n handleClose: PropTypes.func.isRequired,\n // from connect\n deletePermissions: PropTypes.func.isRequired,\n isPermissionDeleted: PropTypes.bool.isRequired,\n error: PropTypes.object,\n lastItemKey: PropTypes.string,\n };\n\n state = {\n confirm: false,\n };\n\n checkConfirmDisabled = () => !this.state.confirm;\n toggleConfirm = () => this.setState((prevState) => ({confirm: !prevState.confirm}));\n\n deleteItem = () => {\n const {idmKind, path, itemToDelete} = this.props;\n const {\n itemToDelete: {key},\n deletePermissions,\n } = this.props;\n return deletePermissions({\n roleKey: key,\n idmKind,\n path,\n itemToDelete,\n }).then((error) => {\n if (!error) {\n this.onClose();\n }\n });\n };\n\n onClose = () => {\n const {handleClose} = this.props;\n this.setState(() => ({confirm: false}));\n handleClose();\n };\n\n render() {\n const {confirm} = this.state;\n const {visible, itemToDelete, isPermissionDeleted, error, lastItemKey} = this.props;\n const {key, type, inherited, subjects, permissions, columns, inheritanceMode} =\n itemToDelete;\n\n return (\n <Modal\n onConfirm={this.deleteItem}\n loading={isPermissionDeleted}\n visible={visible}\n confirmText=\"Delete\"\n onCancel={this.onClose}\n title=\"Delete permissions\"\n onOutsideClick={this.onClose}\n isConfirmDisabled={this.checkConfirmDisabled}\n content={\n <div className={block()}>\n <MetaTable\n className={block('meta')}\n items={[\n {\n key: 'inherited',\n value: String(inherited),\n },\n {\n key: 'subjects',\n value: renderText(subjects?.join(', ')),\n },\n {\n key: 'permissions',\n value: renderText(permissions?.join(', ')),\n visible: type === 'object',\n },\n {\n key: 'private columns',\n value: renderText(columns?.join(', ')),\n visible: type === 'columns',\n },\n {\n key: 'inheritance mode',\n value:\n hammer.format['ReadableField'](inheritanceMode) ||\n hammer.format.NO_VALUE,\n visible: type === 'object',\n },\n ]}\n />\n\n <p className={block('delete', {confirm})}>\n <Checkbox\n size={'l'}\n content=\"Yes, I'm sure\"\n checked={confirm}\n onChange={this.toggleConfirm}\n />\n\n <Label theme=\"danger\" text=\"This action CANNOT be undone\" />\n </p>\n\n {error && key === lastItemKey && (\n <YTErrorBlock message=\"Could not delete permission\" error={error} />\n )}\n </div>\n }\n />\n );\n }\n}\n","import React, {useCallback, useMemo} from 'react';\nimport {compose} from 'redux';\nimport cn from 'bem-cn-lite';\n\nimport isEqual_ from 'lodash/isEqual';\n\nimport {Loader} from '@gravity-ui/uikit';\nimport {DialogWrapper as CommonDialog} from '../../../components/DialogWrapper/DialogWrapper';\n\nimport {\n DialogField,\n FormApi,\n RoleListControlProps,\n YTDFDialog,\n prepareRoleListValue,\n roleListValueToSubjectList,\n} from '../../../components/Dialog';\n\nimport {IdmKindType} from '../../../utils/acl/acl-types';\nimport {PreparedRole} from '../../../utils/acl';\nimport {YTError} from '../../../types';\n\nimport LoadDataHandler from '../../../components/LoadDataHandler/LoadDataHandler';\nimport {YTErrorBlock} from '../../../components/Error/Error';\nimport ErrorBoundary from '../../../components/ErrorBoundary/ErrorBoundary';\nimport Button from '../../../components/Button/Button';\n\nimport withVisible, {WithVisibleProps} from '../../../hocs/withVisible';\n\nimport UIFactory from '../../../UIFactory';\nimport {ACLReduxProps} from '../ACL-connect-helpers';\n\nimport './ManageAcl.scss';\n\nconst block = cn('acl-manage');\n\nexport type ManageAclFieldsNames =\n | 'responsible'\n | 'inheritanceResponsible'\n | 'readApprovers'\n | 'auditors'\n | 'bossApproval'\n | 'inheritAcl'\n | 'comment';\n\nexport type ManageInheritanceFieldNames = 'inheritAcl' | 'inheritAcl_warning' | 'comment';\n\ninterface Props extends WithVisibleProps {\n className?: string;\n path: string;\n idmKind: IdmKindType;\n version?: string;\n normalizedPoolTree?: string;\n loading: boolean;\n auditors: Array<PreparedRole>;\n responsible: Array<PreparedRole>;\n readApprovers: Array<PreparedRole>;\n disableInheritanceResponsible?: boolean | PreparedRole;\n bossApproval?: PreparedRole;\n error: boolean;\n manageAclError?: YTError;\n errorData?: YTError;\n loadAclData: (args: {path: string; idmKind: IdmKindType}) => void;\n updateAcl: (...args: Parameters<ACLReduxProps['userPermissionsUpdateAcl']>) => Promise<void>;\n cancelUpdateAcl: (args: {idmKind: IdmKindType}) => void;\n}\n\ninterface FormValues {\n auditors: RoleListControlProps['value'];\n responsible: RoleListControlProps['value'];\n readApprovers: RoleListControlProps['value'];\n inheritanceResponsible: boolean;\n bossApproval: boolean;\n comment?: string;\n}\n\nfunction ManageAcl(props: Props) {\n const {\n className,\n path,\n idmKind,\n version,\n visible,\n loading,\n handleShow,\n handleClose,\n bossApproval,\n disableInheritanceResponsible,\n auditors,\n responsible,\n readApprovers,\n manageAclError,\n error,\n errorData,\n loadAclData,\n cancelUpdateAcl,\n updateAcl,\n } = props;\n\n const handleModalOpen = useCallback(() => {\n loadAclData({path, idmKind});\n handleShow();\n }, [handleShow, idmKind, loadAclData, path]);\n\n const handleUpdateAclClose = useCallback(() => {\n handleClose();\n cancelUpdateAcl({idmKind});\n }, [cancelUpdateAcl, handleClose, idmKind]);\n\n const onAdd = useCallback(\n (form: FormApi<FormValues, Partial<FormValues>>) => {\n const {auditors, readApprovers, responsible, inheritanceResponsible, ...rest} =\n form.getState().values;\n\n return updateAcl({\n path,\n idmKind,\n values: {\n ...rest,\n disableInheritance: !inheritanceResponsible,\n responsible: roleListValueToSubjectList(responsible),\n auditors: roleListValueToSubjectList(auditors),\n readApprovers: roleListValueToSubjectList(readApprovers),\n },\n version,\n mode: 'keep-missing-fields',\n });\n },\n [idmKind, path, updateAcl, version],\n );\n\n const manageAclDialogFields = useMemo(\n () =>\n ({\n responsible: {\n name: 'responsible',\n type: 'acl-roles',\n caption: 'Responsible',\n extras: {\n maxVisibleCount: 3,\n placeholder: 'Who should approve...',\n },\n },\n inheritanceResponsible: {\n name: 'inheritanceResponsible',\n type: 'tumbler',\n caption: 'Inherit responsible',\n },\n readApprovers: {\n name: 'readApprovers',\n type: 'acl-roles',\n caption: 'Read approvers',\n extras: {\n maxVisibleCount: 3,\n placeholder: 'Who should approve read requests...',\n },\n },\n auditors: {\n name: 'auditors',\n type: 'acl-roles',\n caption: 'Auditors',\n extras: {\n maxVisibleCount: 3,\n placeholder: 'Who should audit ACL change...',\n },\n },\n bossApproval: {\n name: 'bossApproval',\n type: 'tumbler',\n caption: 'Boss approval',\n },\n comment: {\n name: 'comment',\n caption: 'Comment for IDM',\n type: 'textarea',\n },\n }) as Record<ManageAclFieldsNames, DialogField<FormValues>>,\n [],\n );\n\n const {manageAclFields} = UIFactory.getAclApi();\n const dialogFields = useMemo(() => {\n const permissionsSettings = UIFactory.getAclPermissionsSettings();\n const idmKindConditions: {[Key in ManageAclFieldsNames]?: boolean} = {\n bossApproval: permissionsSettings[idmKind].allowBossApprovals,\n auditors: permissionsSettings[idmKind].allowAuditors,\n readApprovers: permissionsSettings[idmKind].allowReadApprovers,\n inheritanceResponsible: permissionsSettings[idmKind].allowInheritResponsibles,\n };\n\n return manageAclFields\n .filter((name) =>\n idmKindConditions[name] !== undefined ? idmKindConditions[name] : true,\n )\n .map((name) => manageAclDialogFields[name]);\n }, [idmKind, manageAclDialogFields, manageAclFields]);\n\n const renderDialog = () => {\n return (\n <YTDFDialog<FormValues>\n pristineSubmittable\n modal={false}\n visible={Boolean(visible)}\n onClose={handleUpdateAclClose}\n onAdd={onAdd}\n initialValues={{\n responsible: prepareRoleListValue(responsible),\n inheritanceResponsible: !disableInheritanceResponsible,\n readApprovers: prepareRoleListValue(readApprovers),\n auditors: prepareRoleListValue(auditors),\n bossApproval: Boolean(bossApproval),\n }}\n formExtras={{initialValuesEqual: isEqual_}}\n fields={[\n ...dialogFields,\n {\n name: 'error-block',\n type: 'block',\n extras: {\n children: manageAclError && (\n <YTErrorBlock message=\"Acl update failure\" error={manageAclError} />\n ),\n },\n },\n ]}\n />\n );\n };\n\n const renderForm = () => {\n return (\n <LoadDataHandler loaded={false} error={error} errorData={errorData}>\n {loading ? <Loader /> : renderDialog()}\n </LoadDataHandler>\n );\n };\n\n return !manageAclFields?.length ? null : (\n <ErrorBoundary>\n <div className={block(null, className)}>\n <Button onClick={handleModalOpen}>Manage responsibles</Button>\n\n <CommonDialog\n size=\"m\"\n open={Boolean(visible)}\n onClose={handleClose}\n className={block('modal', {loading, error})}\n >\n <CommonDialog.Header caption=\"Manage responsibles\" />\n <CommonDialog.Body>{renderForm()}</CommonDialog.Body>\n </CommonDialog>\n </div>\n </ErrorBoundary>\n );\n}\n\nexport default compose(withVisible)(ManageAcl) as unknown as React.ComponentType<\n Omit<Props, keyof WithVisibleProps>\n>;\n","import React, {useCallback, useMemo, useState} from 'react';\nimport {compose} from 'redux';\nimport cn from 'bem-cn-lite';\n\nimport {Loader} from '@gravity-ui/uikit';\nimport {DialogWrapper as CommonDialog} from '../../../components/DialogWrapper/DialogWrapper';\n\nimport isEqual_ from 'lodash/isEqual';\n\nimport {DialogField, FormApi, YTDFDialog} from '../../../components/Dialog';\n\nimport {IdmKindType} from '../../../utils/acl/acl-types';\nimport {PreparedRole} from '../../../utils/acl';\nimport {YTError} from '../../../types';\n\nimport Button from '../../../components/Button/Button';\nimport {YTErrorBlock} from '../../../components/Error/Error';\nimport ErrorBoundary from '../../../components/ErrorBoundary/ErrorBoundary';\nimport LoadDataHandler from '../../../components/LoadDataHandler/LoadDataHandler';\n\nimport withVisible, {WithVisibleProps} from '../../../hocs/withVisible';\n\nimport './ManageInheritance.scss';\nimport UIFactory from '../../../UIFactory';\nimport {ACLReduxProps} from '../ACL-connect-helpers';\nimport {ManageInheritanceFieldNames} from '../ManageAcl/ManageAcl';\n\nconst block = cn('acl-inheritance');\n\ninterface Props extends WithVisibleProps {\n className?: string;\n path: string;\n idmKind: IdmKindType;\n version?: string;\n normalizedPoolTree?: string;\n loading: boolean;\n inheritAcl?: boolean | PreparedRole;\n error: boolean;\n manageAclError?: YTError;\n errorData?: YTError;\n loadAclData: (args: {path: string; idmKind: IdmKindType}) => void;\n updateAcl: (...args: Parameters<ACLReduxProps['userPermissionsUpdateAcl']>) => Promise<void>;\n cancelUpdateAcl: (args: {idmKind: IdmKindType}) => void;\n}\n\ninterface FormValues {\n inheritAcl: boolean;\n comment?: string;\n}\n\nfunction ManageInheritance(props: Props) {\n const {\n className,\n path,\n idmKind,\n version,\n visible,\n loading,\n handleShow,\n handleClose,\n inheritAcl,\n manageAclError,\n loadAclData,\n cancelUpdateAcl,\n updateAcl,\n error,\n errorData,\n } = props;\n\n const [hasWarning, setHasWarning] = useState(false);\n\n const handleModalOpen = useCallback(() => {\n loadAclData({path, idmKind});\n handleShow();\n }, [handleShow, idmKind, loadAclData, path]);\n\n const handleUpdateAclClose = useCallback(() => {\n handleClose();\n cancelUpdateAcl({idmKind});\n }, [cancelUpdateAcl, handleClose, idmKind]);\n\n const onAdd = useCallback(\n (form: FormApi<FormValues, Partial<FormValues>>) => {\n const {values} = form.getState();\n\n return updateAcl({\n path,\n idmKind,\n values,\n version,\n mode: 'keep-missing-fields',\n });\n },\n [idmKind, path, updateAcl, version],\n );\n\n const manageAclDialogFields = useMemo(\n () =>\n ({\n inheritAcl: {\n name: 'inheritAcl',\n type: 'tumbler',\n caption: 'Inherit ACL',\n onChange: (value) => {\n setHasWarning(!value);\n },\n },\n inheritAcl_warning: {\n name: 'inheritAcl_warning',\n type: 'block',\n extras: {\n children: hasWarning ? (\n <YTErrorBlock\n type={'alert'}\n message={\n <>\n Setting <span className={block('flag')}>inherit_acl</span>{' '}\n flag to <span className={block('flag')}>false</span> may\n result in the loss of permissions sufficient to undo this\n operation.{' '}\n </>\n }\n />\n ) : null,\n },\n },\n comment: {\n name: 'comment',\n caption: 'Comment for IDM',\n type: 'textarea',\n },\n }) as Record<ManageInheritanceFieldNames, DialogField<FormValues>>,\n [hasWarning],\n );\n\n const {manageInheritanceFields, buttonsTitle} = UIFactory.getAclApi();\n const dialogFields = useMemo(() => {\n const permissionsSettings = UIFactory.getAclPermissionsSettings();\n const {allowInheritAcl} = permissionsSettings[idmKind];\n return allowInheritAcl\n ? manageInheritanceFields.map((name) => manageAclDialogFields[name])\n : [];\n }, [idmKind, manageAclDialogFields, manageInheritanceFields]);\n\n const renderDialog = () => {\n return (\n <YTDFDialog<FormValues>\n pristineSubmittable\n modal={false}\n visible={Boolean(visible)}\n onClose={handleUpdateAclClose}\n onAdd={onAdd}\n initialValues={{\n inheritAcl: Boolean(inheritAcl),\n }}\n formExtras={{initialValuesEqual: isEqual_}}\n fields={[\n ...dialogFields,\n {\n name: 'error-block',\n type: 'block',\n extras: {\n children: manageAclError && (\n <YTErrorBlock message=\"Acl update failure\" error={manageAclError} />\n ),\n },\n },\n ]}\n />\n );\n };\n\n const renderForm = () => {\n return (\n <LoadDataHandler loaded={false} error={error} errorData={errorData}>\n {loading ? <Loader /> : renderDialog()}\n </LoadDataHandler>\n );\n };\n\n const {editInheritance = 'Edit inheritance'} = buttonsTitle ?? {};\n\n return !dialogFields.length ? null : (\n <ErrorBoundary>\n <div className={block(null, className)}>\n <Button onClick={handleModalOpen}>{editInheritance}</Button>\n\n <CommonDialog\n size=\"m\"\n open={Boolean(visible)}\n onClose={handleClose}\n className={block('modal', {loading, error})}\n >\n <CommonDialog.Header caption={editInheritance} />\n <CommonDialog.Body>{renderForm()}</CommonDialog.Body>\n </CommonDialog>\n </div>\n </ErrorBoundary>\n );\n}\n\nexport default compose(withVisible)(ManageInheritance) as unknown as React.ComponentType<\n Omit<Props, keyof WithVisibleProps>\n>;\n","import React, {Component} from 'react';\nimport cn from 'bem-cn-lite';\n\nimport {Flex} from '@gravity-ui/uikit';\n\nimport ErrorBoundary from '../../../components/ErrorBoundary/ErrorBoundary';\nimport {AclMode, IdmObjectType} from '../../../constants/acl';\n\nimport RequestPermissions from '../RequestPermissions/RequestPermissions';\nimport ManageAcl from '../ManageAcl/ManageAcl';\nimport {ACLReduxProps} from '../ACL-connect-helpers';\nimport {IdmKindType} from '../../../utils/acl/acl-types';\nimport ManageInheritance from '../ManageInheritance/ManageInheritance';\n\nconst block = cn('acl-user-permissions');\n\ntype Props = Pick<\n ACLReduxProps,\n | 'path'\n | 'cluster'\n | 'version'\n | 'loadAclData'\n | 'loading'\n | 'error'\n | 'errorData'\n | 'responsible'\n | 'auditors'\n | 'readApprovers'\n | 'bossApproval'\n | 'disableInheritanceResponsible'\n | 'columnGroups'\n | 'aclMode'\n> & {\n className?: string;\n idmKind: IdmKindType;\n\n // for RequestPermissions\n requestPermissions: ACLReduxProps['userPermissionsRequestFn'];\n requestPermissionsError: ACLReduxProps['userPermissionsRequestError'];\n cancelRequestPermissions: ACLReduxProps['userPermissionsCancelRequestFn'];\n\n // for ManageAcl\n inheritAcl: ACLReduxProps['disableAclInheritance'];\n\n updateAcl: ACLReduxProps['userPermissionsUpdateAcl'];\n updateAclError: ACLReduxProps['userPermissionsUpdateAclError'];\n cancelUpdateAcl: ACLReduxProps['userPermissionsCancelUpdateAcl'];\n};\n\nexport class AclActions extends Component<Props> {\n requestPermissions = async (...args: Parameters<ACLReduxProps['userPermissionsRequestFn']>) => {\n const {requestPermissions, loadAclData, path, idmKind} = this.props;\n await requestPermissions(...args);\n await loadAclData({path, idmKind});\n };\n\n updateAcl = async (...args: Parameters<ACLReduxProps['userPermissionsUpdateAcl']>) => {\n const {updateAcl, loadAclData, path, idmKind} = this.props;\n await updateAcl(...args);\n await loadAclData({path, idmKind});\n };\n\n render() {\n const {\n aclMode,\n path,\n idmKind,\n version,\n className,\n requestPermissionsError,\n cancelRequestPermissions,\n\n loadAclData,\n loading,\n error,\n errorData,\n\n inheritAcl,\n bossApproval,\n disableInheritanceResponsible,\n\n auditors,\n readApprovers,\n responsible,\n\n updateAclError,\n cancelUpdateAcl,\n cluster,\n\n columnGroups,\n } = this.props;\n\n return (\n <ErrorBoundary>\n {idmKind !== IdmObjectType.UI_EFFECTIVE_ACL && (\n <Flex className={block(null, className)} gap={4}>\n <React.Fragment>\n <RequestPermissions\n aclMode={aclMode}\n path={path}\n idmKind={idmKind}\n error={requestPermissionsError}\n requestPermissions={this.requestPermissions}\n cancelRequestPermissions={cancelRequestPermissions}\n cluster={cluster}\n columnGroups={columnGroups}\n />\n {aclMode !== AclMode.COLUMN_GROUPS_PERMISSISONS && (\n <ManageInheritance\n loadAclData={loadAclData}\n loading={loading}\n error={error}\n errorData={errorData}\n path={path}\n idmKind={idmKind}\n version={version}\n inheritAcl={inheritAcl}\n updateAcl={this.updateAcl}\n manageAclError={updateAclError}\n cancelUpdateAcl={cancelUpdateAcl}\n />\n )}\n {aclMode !== AclMode.COLUMN_GROUPS_PERMISSISONS && (\n <ManageAcl\n loadAclData={loadAclData}\n loading={loading}\n error={error}\n errorData={errorData}\n path={path}\n idmKind={idmKind}\n version={version}\n bossApproval={bossApproval}\n disableInheritanceResponsible={disableInheritanceResponsible}\n auditors={auditors}\n readApprovers={readApprovers}\n responsible={responsible}\n updateAcl={this.updateAcl}\n manageAclError={updateAclError}\n cancelUpdateAcl={cancelUpdateAcl}\n />\n )}\n </React.Fragment>\n </Flex>\n )}\n </ErrorBoundary>\n );\n }\n}\n","import React from 'react';\nimport cn from 'bem-cn-lite';\nimport {Flex, Icon} from '@gravity-ui/uikit';\nimport checkSvg from '@gravity-ui/icons/svgs/circle-check.svg';\nimport xMarkSvg from '@gravity-ui/icons/svgs/circle-xmark.svg';\n\nimport format from '../../../common/hammer/format';\n\nimport {ACLReduxProps} from '../ACL-connect-helpers';\n\nimport './MyPermissions.scss';\n\nconst block = cn('yt-my-permissions');\n\nexport function MyPermissions({\n userPermissions,\n className,\n}: Pick<ACLReduxProps, 'userPermissions'> & {className?: string}) {\n const groups: Array<typeof userPermissions> = [];\n for (let i = 0; i < userPermissions?.length; i += 4) {\n groups.push(userPermissions.slice(i, i + 4));\n }\n return (\n <Flex className={block(null, className)}>\n {groups.map((items, index) => {\n return <PermissionsGroup items={items} key={index} />;\n })}\n </Flex>\n );\n}\n\nfunction PermissionsGroup({items}: {items: ACLReduxProps['userPermissions']}) {\n return (\n <Flex className={block('group')} direction=\"column\" gap={1}>\n {items.map(({type, action}) => {\n return (\n <Flex\n className={block('item', {type: action})}\n key={type}\n alignItems={'center'}\n gap={1}\n >\n <Icon\n size={16}\n className={block('icon', {\n color: action === 'deny' ? 'danger' : 'success',\n })}\n data={action === 'deny' ? xMarkSvg : checkSvg}\n />\n {format.Readable(type)}\n </Flex>\n );\n })}\n </Flex>\n );\n}\n","import React from 'react';\nimport {useDispatch, useSelector} from 'react-redux';\nimport cn from 'bem-cn-lite';\nimport {changeApproversSubjectFilter} from '../../../store/actions/acl-filters';\nimport {getApproversSubjectFilter} from '../../../store/selectors/acl-filters';\nimport {Toolbar} from '../../../components/WithStickyToolbar/Toolbar/Toolbar';\nimport Filter from '../../../components/Filter/Filter';\nimport './ApproversFilters.scss';\n\nconst block = cn('approvers-filters');\n\nexport default function ApproversFilters() {\n const dispatch = useDispatch();\n const subjectFilter = useSelector(getApproversSubjectFilter);\n\n return (\n <Toolbar\n itemsToWrap={[\n {\n node: (\n <Filter\n placeholder=\"Filter by subject\"\n onChange={(value: string) => {\n dispatch(changeApproversSubjectFilter({approversSubject: value}));\n }}\n className={block('subject-filter')}\n value={subjectFilter}\n size=\"m\"\n autofocus={false}\n />\n ),\n },\n ]}\n />\n );\n}\n","import React from 'react';\nimport {useDispatch, useSelector} from 'react-redux';\nimport cn from 'bem-cn-lite';\nimport map_ from 'lodash/map';\n\nimport format from '../../../common/hammer/format';\n\nimport {\n changeObjectPermissionsFilter,\n changeObjectSubjectFilter,\n} from '../../../store/actions/acl-filters';\nimport {\n getObjectPermissionsFilter,\n getObjectSubjectFilter,\n} from '../../../store/selectors/acl-filters';\nimport {getObjectPermissionsTypesList} from '../../../store/selectors/acl';\nimport Filter from '../../../components/Filter/Filter';\nimport Select from '../../../components/Select/Select';\nimport {Toolbar} from '../../../components/WithStickyToolbar/Toolbar/Toolbar';\nimport './ObjectPermissionsFilters.scss';\nimport {ACLReduxProps} from '../ACL-connect-helpers';\nimport {AclMode} from '../../../constants/acl';\nimport {ColumnGroupsFilter} from '../ColumnGroups/ColumnGroups';\n\nconst block = cn('object-permissions-filters');\n\ntype Props = Pick<\n ACLReduxProps,\n 'aclMode' | 'idmKind' | 'columnsFilter' | 'updateAclFilters' | 'userPermissionsAccessColumns'\n>;\n\nexport default function ObjectPermissionsFilters({\n aclMode,\n idmKind,\n columnsFilter,\n updateAclFilters,\n userPermissionsAccessColumns,\n}: Props) {\n const dispatch = useDispatch();\n const subjectFilter = useSelector(getObjectSubjectFilter);\n const selectedPermissons = useSelector(getObjectPermissionsFilter);\n const permissionList = useSelector(getObjectPermissionsTypesList(idmKind));\n\n return (\n <Toolbar\n itemsToWrap={[\n {\n node: (\n <Filter\n className={block('filter')}\n placeholder=\"Filter by subject\"\n onChange={(value: string) => {\n dispatch(\n changeObjectSubjectFilter({\n objectSubject: value,\n }),\n );\n }}\n value={subjectFilter}\n size=\"m\"\n autofocus={false}\n />\n ),\n },\n {\n shrinkable: true,\n node:\n aclMode === AclMode.COLUMN_GROUPS_PERMISSISONS ? (\n <ColumnGroupsFilter\n {...{columnsFilter, updateAclFilters, userPermissionsAccessColumns}}\n />\n ) : (\n <Select\n className={block('filter')}\n multiple\n placeholder={'filter'}\n value={selectedPermissons}\n items={map_(permissionList, (p) => ({\n value: p,\n text: format.ReadableField(p),\n }))}\n onUpdate={(value: string[]) => {\n dispatch(\n changeObjectPermissionsFilter({\n objectPermissions: value as typeof selectedPermissons,\n }),\n );\n }}\n label={'Permissions'}\n maxVisibleValuesTextLength={60}\n width=\"auto\"\n />\n ),\n },\n ]}\n />\n );\n}\n","import React from 'react';\nimport cn from 'bem-cn-lite';\n\nimport {Flex, Link} from '@gravity-ui/uikit';\n\nimport Icon from '../../components/Icon/Icon';\nimport MetaTable from '../../components/MetaTable/MetaTable';\n\nimport './SegmentControl.scss';\n\nexport type SegmentControlProps = {\n className?: string;\n groups: Array<Array<SegmentControlItem>>;\n background?: 'neutral-light';\n};\n\nexport type SegmentControlItem = {\n name: string;\n value: boolean | number;\n url?: string;\n};\n\nconst block = cn('yt-segment-control');\n\nexport function SegmentControl({className, background, groups}: SegmentControlProps) {\n return (\n <Flex inline className={block({background}, className)}>\n {groups.map((items, index) => {\n return <SegmentGroup items={items} key={index} />;\n })}\n </Flex>\n );\n}\n\nfunction SegmentGroup({items}: {items: Array<SegmentControlItem>}) {\n return (\n <MetaTable\n className={block('item')}\n rowGap={4}\n items={items.map((item) => {\n return {key: item.name, value: <SegmentValue value={item.value} url={item.url} />};\n })}\n />\n );\n}\n\nfunction SegmentValue({value, url}: Pick<SegmentControlItem, 'value' | 'url'>) {\n return (\n <Flex>\n <Value value={value} />\n {isValidUrl(url) && (\n <Link view=\"secondary\" className={block('link')} target=\"_blank\" href={url}>\n <Icon awesome=\"link\" />\n </Link>\n )}\n </Flex>\n );\n}\n\nfunction isValidUrl(url?: string): url is string {\n return Boolean(url);\n}\n\nfunction Value({value}: Pick<SegmentControlItem, 'value'>) {\n switch (typeof value) {\n case 'boolean':\n return (\n <span className={block('value', {bool: Boolean(value)})}>\n {value ? 'True' : 'False'}\n </span>\n );\n default:\n return <span className={block('value')}>{value}</span>;\n }\n}\n","import React from 'react';\n\nimport {RadioButton} from '@gravity-ui/uikit';\n\nimport {AclMode} from '../../constants/acl';\nimport format from '../../common/hammer/format';\n\nimport {ACLReduxProps} from './ACL-connect-helpers';\n\nconst ACL_MODE_OPTIONS = [AclMode.MAIN_PERMISSIONS, AclMode.COLUMN_GROUPS_PERMISSISONS].map(\n (value) => {\n return {value, content: format.ReadableField(value)};\n },\n);\n\nexport function AclModeControl({\n updateAclFilters,\n aclMode,\n}: Pick<ACLReduxProps, 'aclMode' | 'updateAclFilters'>) {\n return (\n <RadioButton\n value={aclMode}\n options={ACL_MODE_OPTIONS}\n onUpdate={(value) => {\n updateAclFilters({aclCurrentTab: value as AclMode});\n }}\n />\n );\n}\n","import React from 'react';\nimport format from '../../common/hammer/format';\nimport {VisibleValues} from '../../components/VisibleValues/VisibleValues';\nimport {renderText} from '../../components/templates/utils';\nimport unipika from '../../common/thor/unipika';\n\nexport type AclColumnsCellProps = {\n items?: Array<string>;\n expanadable?: boolean;\n};\n\nexport function AclColumnsCell({expanadable, items}: AclColumnsCellProps) {\n if (!items) {\n return format.NO_VALUE;\n }\n\n return expanadable ? (\n <VisibleValues\n width=\"max\"\n counter=\"missing-values\"\n value={\n items?.map((v) => {\n return `\"${unipika.decode(v)}\"`;\n }) ?? []\n }\n maxVisibleValues={5}\n maxTextLength={40}\n />\n ) : (\n renderText(items?.map((item) => `\"${item}\"`).join(', '))\n );\n}\n","const SvgAclInherited = props => <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 16 16\" {...props}><path fill=\"currentColor\" fillOpacity={0.3} fillRule=\"evenodd\" d=\"M12.25 2.5h-8.5a.75.75 0 0 0-.75.75v1.5c0 .414.336.75.75.75h8.5a.75.75 0 0 0 .75-.75v-1.5a.75.75 0 0 0-.75-.75m0 4.5H5v3.13c0 .69.56 1.25 1.25 1.25H7v-.13A2.25 2.25 0 0 1 9.25 9h3a2.25 2.25 0 0 1 2.25 2.25v1.5A2.25 2.25 0 0 1 12.25 15h-3a2.25 2.25 0 0 1-2.246-2.12H6.25a2.75 2.75 0 0 1-2.75-2.75V6.986a2.25 2.25 0 0 1-2-2.236v-1.5A2.25 2.25 0 0 1 3.75 1h8.5a2.25 2.25 0 0 1 2.25 2.25v1.5A2.25 2.25 0 0 1 12.25 7m-3 3.5h3a.75.75 0 0 1 .75.75v1.5a.75.75 0 0 1-.75.75h-3a.75.75 0 0 1-.75-.75v-1.5a.75.75 0 0 1 .75-.75\" clipRule=\"evenodd\" /></svg>;\nexport default SvgAclInherited;","import React from 'react';\n\nimport {IdmObjectType} from '../../../constants/acl';\nimport Link from '../../../components/Link/Link';\nimport {InheritedFrom} from '../../../utils/acl/acl-types';\nimport {makeAccountsUrl, makeNavigationLink, makeSchedulingUrl} from '../../../utils/app-url';\n\nfunction urlFromData(data?: InheritedFrom) {\n switch (data?.kind) {\n case IdmObjectType.PATH: {\n return makeNavigationLink({path: data.name});\n }\n case IdmObjectType.POOL: {\n return makeSchedulingUrl({pool: data.name, poolTree: data.poolTree!});\n }\n case IdmObjectType.ACCOUNT: {\n return makeAccountsUrl(data.name);\n }\n default:\n return undefined;\n }\n}\n\nexport function InheritanceMessage({data}: {data?: InheritedFrom}) {\n const url = urlFromData(data);\n return !url ? (\n 'Role is inherited'\n ) : (\n <React.Fragment>\n Role is inherited{' '}\n <Link routed url={url} routedPreserveLocation>\n {data?.name}\n </Link>\n </React.Fragment>\n );\n}\n","import React, {Component, Fragment} from 'react';\nimport hammer from '../../common/hammer';\nimport cn from 'bem-cn-lite';\n\nimport compact_ from 'lodash/compact';\n\nimport {Button, ClipboardButton, Flex, Icon, Loader, Popover} from '@gravity-ui/uikit';\nimport {Column} from '@gravity-ui/react-data-table';\n\nimport {AclMode, IdmObjectType} from '../../constants/acl';\n\nimport ColumnGroups from './ColumnGroups/ColumnGroups';\n\nimport DeletePermissionModal from './DeletePermissionModal/DeletePermissionModal';\nimport {AclActions} from './AclActions/AclActions';\nimport {MyPermissions} from './MyPermissinos/MyPermissions';\n\nimport LoadDataHandler from '../../components/LoadDataHandler/LoadDataHandler';\nimport ErrorBoundary from '../../components/ErrorBoundary/ErrorBoundary';\nimport DataTableYT from '../../components/DataTableYT/DataTableYT';\nimport {Tooltip} from '../../components/Tooltip/Tooltip';\nimport {SubjectCard} from '../../components/SubjectLink/SubjectLink';\n\nimport withVisible, {WithVisibleProps} from '../../hocs/withVisible';\nimport {renderText} from '../../components/templates/utils';\nimport Label from '../../components/Label/Label';\nimport {isIdmAclAvailable} from '../../config';\nimport ApproversFilters from './ApproversFilters/ApproversFilters';\nimport ObjectPermissionsFilters from './ObjectPermissionsFilters/ObjectPermissionsFilters';\nimport UIFactory, {AclRoleActionsType} from '../../UIFactory';\n\nimport {ACLReduxProps} from './ACL-connect-helpers';\nimport {PreparedAclSubject} from '../../utils/acl/acl-types';\nimport {ObjectPermissionRowWithExpand, PreparedApprover} from '../../store/selectors/acl';\n\nimport {SegmentControl, SegmentControlItem} from '../../components/SegmentControl/SegmentControl';\nimport WithStickyToolbar from '../../components/WithStickyToolbar/WithStickyToolbar';\nimport {PreparedRole, isGranted} from '../../utils/acl';\nimport {AclModeControl} from './AclModeControl';\nimport {ExpandButton} from '../../components/ExpandButton';\nimport {AclColumnsCell} from './AclColumnsCell';\n\nimport aclInheritedSvg from '../../assets/img/svg/acl-inherited.svg';\n\nimport './ACL.scss';\nimport {InheritanceMessage} from './InheritanceMessage/InheritanceMessage';\n\nconst block = cn('navigation-acl');\n\ntype Props = ACLReduxProps & WithVisibleProps & {className?: string};\n\ntype ApproverRow = PreparedApprover;\ntype PermissionsRow = ObjectPermissionRowWithExpand;\n\nclass ACL extends Component<Props> {\n static tableColumns = {\n items: {\n inherited: {\n caption: '',\n align: 'center',\n },\n subjects: {\n align: 'left',\n },\n permissions: {\n align: 'left',\n },\n columns: {\n caption: 'Private columns',\n align: 'left',\n },\n inheritance_mode: {\n align: 'left',\n },\n actions: {\n caption: '',\n align: 'right',\n },\n responsibles: {\n align: 'left',\n },\n read_approvers: {\n align: 'left',\n },\n auditors: {\n align: 'left',\n },\n approve_type: {\n align: 'left',\n caption: 'Type',\n },\n },\n sets: {\n objectDefault: {\n items: ['inherited', 'subjects', 'permissions', 'inheritance_mode', 'actions'],\n },\n columns: {\n items: ['inherited', 'subjects', 'columns'],\n },\n approvers: {\n items: ['inherited', 'subjects', 'approve_type', 'actions'],\n },\n },\n };\n\n // eslint-disable-next-line react/sort-comp\n static renderSubjectLink(item: PreparedAclSubject | PreparedApprover | PermissionsRow) {\n const {internal} = item;\n if (internal) {\n const [subject] = item.subjects;\n const [type] = item.types ?? [];\n return (\n <SubjectCard\n name={subject!}\n type={type === 'group' ? 'group' : 'user'}\n internal\n showIcon\n />\n );\n }\n\n if (item.subjectType === 'user') {\n const {subjectUrl} = item;\n const username = item.subjects[0];\n return <SubjectCard url={subjectUrl} name={username as string} showIcon />;\n }\n\n if (item.subjectType === 'tvm') {\n const tvmId = item.subjects[0];\n const {name} = item.tvmInfo ?? {};\n\n const text = `${name} (${tvmId})`;\n return (\n <div className={block('subject-with-tvm')}>\n <SubjectCard url={item.subjectUrl} name={text} type=\"tvm\" showIcon />\n <Label text=\"TVM\" />\n </div>\n );\n }\n\n const {name, url, group} = item.groupInfo || {};\n const {group_type} = item;\n return (\n <Tooltip\n content={\n group && (\n <React.Fragment>\n idm-group:{group}\n <span className={block('copy-idm-group')}>\n <ClipboardButton text={`idm-group:${group}`} size=\"s\" />\n </span>\n </React.Fragment>\n )\n }\n >\n <SubjectCard\n name={name ?? group!}\n url={url}\n type=\"group\"\n groupType={group_type}\n showIcon\n />\n </Tooltip>\n );\n }\n\n state = {\n deleteItem: {} as {key?: string},\n };\n\n componentDidMount() {\n const {path, idmKind, loadAclData} = this.props;\n\n if (path) {\n loadAclData({path, idmKind});\n }\n }\n\n componentDidUpdate(prevProps: Props) {\n const {path, idmKind, loadAclData} = this.props;\n if (prevProps.path !== path) {\n loadAclData({path, idmKind});\n }\n }\n\n getColumnsTemplates<T extends ApproverRow | PermissionsRow>({\n hasInherited,\n }: {hasInherited?: boolean} = {}) {\n const openDeleteModal = this.handleDeletePermissionClick;\n const {idmKind, toggleExpandAclSubject} = this.props;\n return {\n expand: {\n name: '',\n align: 'right',\n className: block('table-item', {type: 'expand'}),\n render({row}) {\n const expanded = 'expanded' in row ? row.expanded : undefined;\n return expanded === undefined ? null : (\n <ExpandButton\n inline\n expanded={expanded}\n toggleExpanded={() => {\n toggleExpandAclSubject(row.subjects[0]);\n }}\n qa=\"acl-expand\"\n />\n );\n },\n width: 36,\n } as Column<T>,\n subjects: {\n name: 'Subjects',\n align: 'left',\n className: block('table-item', {type: 'subjects'}),\n render({row}) {\n const {requestPermissionsFlags = {}} = UIFactory.getAclApi();\n\n const {inheritedFrom} = row;\n\n const level = 'level' in row ? row.level : undefined;\n return (\n <Flex className={block('subject', {level: String(level)})} wrap gap={1}>\n {Boolean(hasInherited) && (\n <Popover\n className={block('inherited', {hidden: !row.inherited})}\n content={<InheritanceMessage data={inheritedFrom} />}\n >\n <Icon\n className={block('inherited-icon')}\n data={aclInheritedSvg}\n size={16}\n />\n </Popover>\n )}\n <Flex grow wrap gap={1}>\n {ACL.renderSubjectLink(row)}\n </Flex>\n {Object.keys(requestPermissionsFlags).map((key, index) => {\n const flagInfo = requestPermissionsFlags[key];\n return (\n <React.Fragment key={index}>\n {flagInfo.renderIcon(row)}\n </React.Fragment>\n );\n })}\n </Flex>\n );\n },\n } as Column<T>,\n permissions: {\n name: 'Permissions',\n align: 'left',\n className: block('table-item', {type: 'permissions'}),\n render({row}) {\n const action = row.action === 'deny' ? 'deny' : 'allow';\n const theme = action === 'deny' ? 'danger' : 'success';\n\n return (\n <div className={block('permissions', {type: row.action})}>\n <Label className={block('action-label')} theme={theme}>\n {action}\n </Label>\n <AclColumnsCell\n items={row.permissions?.map(hammer.format.Readable)}\n expanadable={'expanded' in row}\n />\n </div>\n );\n },\n } as Column<T>,\n inheritance_mode: {\n name: 'Inheritance mode',\n render({row}) {\n const {inheritance_mode: mode} = row;\n return mode === undefined\n ? hammer.format.NO_VALUE\n : renderText(hammer.format['ReadableField'](mode));\n },\n align: 'left',\n className: block('table-item', {type: 'inheritance-mode'}),\n } as Column<T>,\n actions: {\n name: 'actions',\n header: '',\n align: 'right',\n className: block('table-item', {type: 'actions'}),\n render({row}) {\n const expanded = 'expanded' in row ? row.expanded : undefined;\n const RoleActions = UIFactory.getComponentForAclRoleActions();\n return expanded !== undefined\n ? null\n : RoleActions !== undefined && (\n <RoleActions\n role={row}\n idmKind={idmKind}\n onDelete={openDeleteModal}\n />\n );\n },\n } as Column<T>,\n approve_type: {\n name: 'Type',\n align: 'left',\n className: block('table-item', {type: 'approve-type'}),\n render({row}) {\n return hammer.format['Readable'](row.type);\n },\n } as Column<T>,\n columns: {\n name: 'Private columns',\n align: 'left',\n className: block('table-item', {type: 'columns'}),\n render({row}) {\n return <AclColumnsCell items={row.columns} expanadable={'expanded' in row} />;\n },\n } as Column<T>,\n };\n }\n\n handleDeletePermissionClick = (deleteItem: AclRoleActionsType) => {\n const {handleShow} = this.props;\n this.setState({deleteItem}, handleShow);\n };\n\n handleCloseDeleteModal = () => {\n const {handleClose} = this.props;\n this.setState({deleteItem: {}}, handleClose);\n };\n\n rowClassNameByFlags<T extends ApproverRow | PermissionsRow>(item: T) {\n const {\n isUnrecognized: unrecognized,\n isDepriving: depriving,\n isRequested: requested,\n isApproved: approved,\n isMissing: missing,\n } = item;\n return block('row', {\n unrecognized: unrecognized || missing,\n depriving,\n requested,\n approved,\n });\n }\n\n renderApprovers() {\n const {hasApprovers, approversFiltered, loaded} = this.props;\n const tableColumns = (['subjects', 'approve_type', 'actions'] as const).map(\n (name) => this.getColumnsTemplates<ApproverRow>({hasInherited: true})[name],\n );\n return (\n hasApprovers && (\n <ErrorBoundary>\n <div className={block('approvers')}>\n <div className=\"elements-heading elements-heading_size_xs\">\n Responsibles\n <Button className={block('sync-with-col-groups')}>\n Hidden button to sync offsets with column groups\n </Button>\n </div>\n <WithStickyToolbar\n topMargin=\"none\"\n toolbar={<ApproversFilters />}\n bottomMargin=\"regular\"\n content={\n <DataTableYT\n data={approversFiltered}\n loaded={loaded}\n noItemsText=\"Thre are no any responsibles\"\n columns={tableColumns}\n theme={'yt-borderless'}\n rowClassName={this.rowClassNameByFlags}\n settings={{\n sortable: false,\n displayIndices: false,\n }}\n />\n }\n />\n </div>\n </ErrorBoundary>\n )\n );\n }\n\n renderObjectPermissions() {\n const {\n aclMode,\n loaded,\n loading,\n mainPermissions,\n columnsPermissions,\n idmKind,\n columnsFilter,\n updateAclFilters,\n userPermissionsAccessColumns,\n } = this.props;\n const useColumns = aclMode === AclMode.COLUMN_GROUPS_PERMISSISONS;\n\n const {items, hasDenyAction, hasExpandable, hasInherited} = useColumns\n ? columnsPermissions\n : mainPermissions;\n const extraColumns = useColumns\n ? ([...(hasDenyAction ? ['permissions' as const] : []), 'columns'] as const)\n : (['permissions'] as const);\n\n const tableColumns: Array<Column<PermissionsRow>> = (\n [\n ...(hasExpandable ? ['expand' as const] : []),\n 'subjects',\n ...extraColumns,\n 'inheritance_mode',\n 'actions',\n ] as const\n ).map((name) => this.getColumnsTemplates<PermissionsRow>({hasInherited})[name]);\n\n return (\n <ErrorBoundary>\n <div className={block('object-permissions')}>\n <div className=\"elements-heading elements-heading_size_xs\">\n {useColumns ? 'Private columns permissions' : 'Object permissions'}\n </div>\n <WithStickyToolbar\n topMargin=\"none\"\n bottomMargin=\"regular\"\n toolbar={\n <ObjectPermissionsFilters\n {...{\n aclMode,\n idmKind,\n columnsFilter,\n updateAclFilters,\n userPermissionsAccessColumns,\n }}\n />\n }\n content={\n <DataTableYT\n noItemsText={\n aclMode === AclMode.COLUMN_GROUPS_PERMISSISONS\n ? 'There are no any column group permissions'\n : 'There are no any object permissions'\n }\n data={items}\n loading={loading}\n loaded={loaded}\n columns={tableColumns}\n theme={'yt-borderless'}\n rowClassName={this.rowClassNameByFlags}\n settings={{\n sortable: false,\n displayIndices: false,\n }}\n />\n }\n />\n </div>\n </ErrorBoundary>\n );\n }\n\n renderColumnGroups() {\n const {\n loaded,\n columnGroups,\n idmKind,\n path,\n loadAclData,\n cluster,\n nodeType,\n updateAclFilters,\n columnsFilter,\n columnGroupNameFilter,\n userPermissionsAccessColumns,\n } = this.props;\n const props = {\n path,\n loadAclDataFn: () => loadAclData({path, idmKind}),\n columnGroups,\n cluster,\n allowEdit: UIFactory.getAclApi().isAllowedToEditColumnGroups({nodeType}),\n updateAclFilters,\n columnsFilter,\n columnGroupNameFilter,\n userPermissionsAccessColumns,\n };\n return isIdmAclAvailable() && idmKind === IdmObjectType.PATH ? (\n <ColumnGroups loaded={loaded} {...props} />\n ) : null;\n }\n\n deletePermissionsFn = async (...args: Parameters<Props['deletePermissionsFn']>) => {\n const {deletePermissionsFn, loadAclData, idmKind, path} = this.props;\n const res = await deletePermissionsFn(...args);\n await loadAclData({path, idmKind});\n return res;\n };\n\n renderContent() {\n const {\n disableAclInheritance,\n visible,\n bossApproval,\n disableInheritanceResponsible,\n path,\n idmKind,\n version,\n userPermissionsRequestError,\n userPermissionsRequestFn,\n userPermissionsCancelRequestFn,\n isPermissionDeleted,\n deletePermissionsLastItemKey,\n deletePermissionsError,\n loadAclData,\n loading,\n loaded,\n error,\n errorData,\n auditors,\n readApprovers,\n responsible,\n userPermissionsUpdateAcl,\n userPermissionsUpdateAclError,\n userPermissionsCancelUpdateAcl,\n cluster,\n columnGroups,\n aclMode,\n updateAclFilters,\n } = this.props;\n const {deleteItem} = this.state;\n\n const hasColumns = Boolean(aclMode);\n const useColumns = aclMode === AclMode.COLUMN_GROUPS_PERMISSISONS;\n\n return (\n <Fragment>\n <Flex className={block('toolbar', {'has-columns': hasColumns})}>\n {hasColumns && (\n <Flex grow>\n <AclModeControl {...{aclMode, updateAclFilters}} />\n </Flex>\n )}\n {loaded && (\n <AclActions\n cluster={cluster}\n className={block('acl-actions')}\n path={path}\n idmKind={idmKind}\n version={version}\n requestPermissions={userPermissionsRequestFn}\n requestPermissionsError={userPermissionsRequestError}\n cancelRequestPermissions={userPermissionsCancelRequestFn}\n loadAclData={loadAclData}\n loading={loading}\n error={error}\n errorData={errorData}\n inheritAcl={!disableAclInheritance}\n bossApproval={bossApproval}\n disableInheritanceResponsible={disableInheritanceResponsible}\n auditors={auditors}\n readApprovers={readApprovers}\n responsible={responsible}\n updateAcl={userPermissionsUpdateAcl}\n updateAclError={userPermissionsUpdateAclError}\n cancelUpdateAcl={userPermissionsCancelUpdateAcl}\n columnGroups={columnGroups}\n aclMode={aclMode}\n />\n )}\n </Flex>\n {this.renderMeta()}\n\n {useColumns ? this.renderColumnGroups() : this.renderApprovers()}\n {this.renderObjectPermissions()}\n\n <DeletePermissionModal\n idmKind={idmKind}\n path={path}\n key={deleteItem?.key}\n visible={visible}\n itemToDelete={deleteItem}\n handleClose={this.handleCloseDeleteModal}\n isPermissionDeleted={isPermissionDeleted}\n lastItemKey={deletePermissionsLastItemKey}\n deletePermissions={this.deletePermissionsFn}\n error={deletePermissionsError}\n />\n </Fragment>\n );\n }\n\n renderMeta() {\n const {\n idmKind,\n disableAclInheritance,\n bossApproval,\n disableInheritanceResponsible,\n userPermissions,\n } = this.props;\n const {allowBossApprovals, allowInheritAcl, allowInheritResponsibles} =\n UIFactory.getAclPermissionsSettings()[idmKind];\n\n function toSegmentItem(name: string, role?: boolean | PreparedRole, invert?: boolean) {\n const value = isGranted(role);\n return {\n name,\n value: invert ? !value : value,\n url: 'boolean' === typeof role ? undefined : role?.idmLink,\n };\n }\n\n const segments: Array<SegmentControlItem> = compact_([\n allowInheritAcl && toSegmentItem('Inherit ACL', disableAclInheritance, true),\n isIdmAclAvailable() &&\n allowBossApprovals &&\n toSegmentItem('Boss approval', bossApproval),\n isIdmAclAvailable() &&\n allowInheritResponsibles &&\n toSegmentItem('Inherit responsibles', disableInheritanceResponsible, true),\n ]);\n\n const {mainPermissions, columnsPermissions, approversFiltered, columnGroups, aclMode} =\n this.props;\n\n const counters: Array<SegmentControlItem> =\n aclMode === AclMode.COLUMN_GROUPS_PERMISSISONS\n ? [\n {name: 'Column groups', value: columnGroups.length},\n {name: 'Column permissions', value: columnsPermissions.count},\n ]\n : [\n {name: 'Responsibles', value: approversFiltered.length},\n {name: 'Object permissions', value: mainPermissions.count},\n ];\n\n const hasColumns = Boolean(aclMode);\n return (\n <Flex className={block('meta')} wrap alignItems=\"center\">\n <SegmentControl\n className={block('meta-item')}\n background=\"neutral-light\"\n groups={[segments, counters].filter(({length}) => length > 0)}\n />\n {aclMode !== AclMode.COLUMN_GROUPS_PERMISSISONS && (\n <MyPermissions\n className={block('meta-item', {'with-buttons': !hasColumns})}\n userPermissions={userPermissions}\n />\n )}\n </Flex>\n );\n }\n\n render() {\n const {loading, loaded, className} = this.props;\n const initialLoading = loading && !loaded;\n\n return (\n <ErrorBoundary>\n <LoadDataHandler {...this.props}>\n <div className={block({loading: initialLoading}, className)}>\n {initialLoading ? <Loader /> : this.renderContent()}\n </div>\n </LoadDataHandler>\n </ErrorBoundary>\n );\n }\n}\n\nexport default withVisible(ACL);\n","import React from 'react';\nimport cn from 'bem-cn-lite';\n\nimport {Button} from '@gravity-ui/uikit';\n\nimport Icon from '../../components/Icon/Icon';\nimport {IdmKindType} from '../../utils/acl/acl-types';\nimport {AclRoleActionsType} from '../../UIFactory';\n\nimport './RoleActions.scss';\n\nconst block = cn('navigation-acl');\n\nexport interface Props {\n idmKind?: IdmKindType;\n role: AclRoleActionsType;\n onDelete?: (role: AclRoleActionsType) => void;\n}\n\nexport default function RoleActions(props: Props) {\n const {role, onDelete} = props;\n const {inherited} = role;\n\n const handleDelete = React.useCallback(() => {\n onDelete?.(role);\n }, [onDelete, role]);\n\n return (\n <React.Fragment>\n {!inherited && onDelete !== undefined && (\n <Button className={block('button')} onClick={() => handleDelete()}>\n <Icon awesome=\"trash-alt\" />\n </Button>\n )}\n </React.Fragment>\n );\n}\n","import {ConnectedProps, connect} from 'react-redux';\n\nimport {\n getAllAccessColumnsNames,\n getAllColumnGroupsActual,\n getAllUserPermissions,\n getApproversFilteredAndOrdered,\n getHasApprovers,\n getIdmManageAclRequestError,\n getIdmPathVersion,\n getIdmPermissionsRequestError,\n getLastDeletedPermissionKey,\n getNotInheritedAuditors,\n getNotInheritedReadApprovers,\n getNotInheritedResponsibles,\n getObjectPermissionsAggregated,\n isPermissionDeleted,\n permissionDeletionError,\n} from '../../store/selectors/acl';\n\nimport {getType} from '../../store/selectors/navigation';\n\nimport {\n getAclCurrentTab,\n getAclFilterColumnGroupName,\n getAclFilterColumns,\n} from '../../store/selectors/acl-filters';\n\nimport {\n cancelRequestPermissions,\n cancelUpdateAcl,\n deletePermissions,\n loadAclData,\n requestPermissions,\n updateAcl,\n} from '../../store/actions/acl';\n\nimport {getCluster} from '../../store/selectors/global';\nimport {normalizeIdmParams} from '../../utils/acl';\nimport {IdmObjectType} from '../../constants/acl';\nimport {IdmKindType} from '../../utils/acl/acl-types';\nimport {RootState} from '../../store/reducers';\nimport {toggleExpandAclSubject, updateAclFilters} from '../../store/actions/acl-filters';\n\nimport ACL from './ACL';\n\nexport type ACLOwnProps = {\n path: string;\n};\n\nconst makeAclMapStateToProps = (inputIdmKind: IdmKindType) => {\n return (state: RootState, ownProps: ACLOwnProps) => {\n const normalizedParams = normalizeIdmParams(inputIdmKind, ownProps.path);\n const {\n idmKind,\n path,\n pool_tree: normalizedPoolTree,\n userPermissionsPath,\n } = normalizedParams;\n\n const aclRequestOptions = {\n userPermissionsPath,\n };\n\n const {\n loaded,\n loading,\n error,\n errorData,\n disableAclInheritance,\n bossApproval,\n disableInheritanceResponsible,\n } = state.acl[idmKind];\n\n const hasApprovers = getHasApprovers(state, idmKind);\n const approversFiltered = getApproversFilteredAndOrdered(state, idmKind);\n const {mainPermissions, columnsPermissions} = getObjectPermissionsAggregated(\n state,\n idmKind,\n );\n const columnGroups = getAllColumnGroupsActual(state, idmKind);\n const userPermissions = getAllUserPermissions(state, idmKind);\n\n const columnsFilter = getAclFilterColumns(state);\n\n const auditors = getNotInheritedAuditors(state, idmKind);\n const readApprovers = getNotInheritedReadApprovers(state, idmKind);\n const responsible = getNotInheritedResponsibles(state, idmKind);\n\n const nodeType = getType(state);\n\n return {\n cluster: getCluster(state),\n\n loading,\n loaded,\n error,\n errorData,\n\n path,\n nodeType,\n version: getIdmPathVersion(state, idmKind),\n idmKind,\n disableAclInheritance,\n bossApproval,\n disableInheritanceResponsible,\n columnGroups,\n mainPermissions,\n columnsPermissions,\n hasApprovers,\n approversFiltered,\n auditors,\n readApprovers,\n responsible,\n\n userPermissions,\n userPermissionsRequestError: getIdmPermissionsRequestError(state, idmKind),\n userPermissionsAccessColumns: getAllAccessColumnsNames(state, idmKind),\n userPermissionsUpdateAclError: getIdmManageAclRequestError(state, idmKind),\n\n isPermissionDeleted: isPermissionDeleted(state, idmKind),\n deletePermissionsLastItemKey: getLastDeletedPermissionKey(state, idmKind),\n deletePermissionsError: permissionDeletionError(state, idmKind),\n\n columnsFilter,\n columnGroupNameFilter: getAclFilterColumnGroupName(state),\n\n normalizedPoolTree,\n aclRequestOptions,\n\n aclMode: idmKind !== 'path' ? undefined : getAclCurrentTab(state),\n };\n };\n};\n\nconst makeAclMapDispatchToProps = () => ({\n loadAclData,\n userPermissionsRequestFn: requestPermissions,\n userPermissionsCancelRequestFn: cancelRequestPermissions,\n userPermissionsUpdateAcl: updateAcl,\n userPermissionsCancelUpdateAcl: cancelUpdateAcl,\n deletePermissionsFn: deletePermissions,\n updateAclFilters,\n toggleExpandAclSubject,\n});\n\ntype StateProps = ReturnType<ReturnType<typeof makeAclMapStateToProps>>;\ntype DispatchProps = ReturnType<typeof makeAclMapDispatchToProps>;\n\nfunction mergeProps(stateProps: StateProps, dispatchProps: DispatchProps, ownProps: ACLOwnProps) {\n const {normalizedPoolTree, aclRequestOptions} = stateProps;\n const {\n loadAclData,\n deletePermissionsFn,\n userPermissionsRequestFn,\n userPermissionsUpdateAcl,\n ...restDispatchProps\n } = dispatchProps;\n return {\n ...ownProps,\n ...stateProps,\n ...restDispatchProps,\n loadAclData: (params: Parameters<typeof loadAclData>[0]) => {\n return loadAclData({...params}, {normalizedPoolTree}, aclRequestOptions);\n },\n deletePermissionsFn: (params: Parameters<typeof deletePermissionsFn>[0]) => {\n return deletePermissionsFn(params, {normalizedPoolTree});\n },\n userPermissionsRequestFn: (params: Parameters<typeof userPermissionsRequestFn>[0]) => {\n return userPermissionsRequestFn(params, {normalizedPoolTree});\n },\n userPermissionsUpdateAcl: (params: Parameters<typeof userPermissionsUpdateAcl>[0]) => {\n return userPermissionsUpdateAcl(params, {normalizedPoolTree});\n },\n };\n}\n\nfunction createACLConnector(idmKind: IdmKindType) {\n const mapStateToProps = makeAclMapStateToProps(idmKind);\n const mapDispatchToProps = makeAclMapDispatchToProps();\n return connect(mapStateToProps, mapDispatchToProps, mergeProps);\n}\n\nfunction createACLComponent(idmKind: IdmKindType) {\n return createACLConnector(idmKind)(ACL) as unknown as React.ComponentType<{path: string}>;\n}\n\ntype ConnectorType = ReturnType<typeof createACLConnector>;\n\nexport type ACLReduxProps = ConnectedProps<ConnectorType>;\n\nexport const AccessContentAcl = createACLComponent(IdmObjectType.ACCESS_CONTROL_OBJECT);\n\nexport const NavigationAcl = createACLComponent(IdmObjectType.PATH);\n\nexport const PoolAclPanel = createACLComponent(IdmObjectType.POOL);\n\nexport const AccountsAcl = createACLComponent(IdmObjectType.ACCOUNT);\n\nexport const BundleAcl = createACLComponent(IdmObjectType.TABLET_CELL_BUNDLE);\n\nexport {default as RoleActions} from './RoleActions';\n","import React, {Component} from 'react';\nimport cn from 'bem-cn-lite';\n\nimport indexOf_ from 'lodash/indexOf';\nimport isEmpty_ from 'lodash/isEmpty';\nimport map_ from 'lodash/map';\n\nimport {Checkbox} from '@gravity-ui/uikit';\n\nimport format from '../../../../common/hammer/format';\nimport {YTPermissionTypeUI} from '../../../../utils/acl/acl-api';\n\nimport './PermissionsControl.scss';\n\nconst block = cn('acl-permissions-control');\n\ninterface Props {\n value: Record<string, Array<YTPermissionTypeUI>>;\n onChange: (value: Props['value']) => void;\n disabled?: boolean;\n choices?: Array<Array<YTPermissionTypeUI>>;\n disabledChoices?: Array<number>; // array of indices\n validate?: (value: Props['value']) => string | undefined;\n\n error?: string;\n}\n\ninterface State {\n errorMessage?: string;\n}\n\nexport default class PermissionsControl extends Component<Props, State> {\n static getChoiceName(choice: Array<string>) {\n return choice.join('/');\n }\n\n // eslint-disable-next-line @typescript-eslint/member-ordering\n static hasErrorRenderer = true;\n\n static getDefaultValue = () => ({});\n static isEmpty(value: Props['value']) {\n return isEmpty_(value);\n }\n\n state: State = {};\n\n handleCheckboxChange = (\n permissionName: string,\n permissionsToSet: Array<YTPermissionTypeUI>,\n ) => {\n const {value, onChange} = this.props;\n const {[permissionName]: permissions, ...rest} = value || {};\n\n const updatedValue = permissions ? rest : {...rest, [permissionName]: permissionsToSet};\n onChange(updatedValue);\n };\n\n renderPermissionCheckbox(\n permissionName: string,\n permissionsToSet: Array<YTPermissionTypeUI>,\n index: number,\n ) {\n const {value, disabled, disabledChoices} = this.props;\n const itemDisabled = disabled || indexOf_(disabledChoices, index) !== -1;\n\n return (\n <Checkbox\n checked={Boolean(value?.[permissionName])}\n key={permissionName}\n content={format.ReadableField(permissionName)}\n onChange={() => this.handleCheckboxChange(permissionName, permissionsToSet)}\n disabled={itemDisabled}\n className={block('item')}\n />\n );\n }\n\n renderChoices(choices?: Required<Props>['choices']) {\n return map_(choices, (item, index) => {\n const name = PermissionsControl.getChoiceName(item);\n return (\n <React.Fragment key={index}>\n {this.renderPermissionCheckbox(name, item, index)}\n </React.Fragment>\n );\n });\n }\n\n render() {\n const {choices, error} = this.props;\n\n return (\n <div className={block()}>\n {this.renderChoices(choices)}\n {error && <div className={block('error-message')}>{error}</div>}\n </div>\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","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport {getDisplayName} from '../utils';\n\nexport interface WithVisibleProps {\n visible?: boolean;\n handleShow: () => void;\n handleClose: () => void;\n toggleVisible: () => void;\n}\n\nexport interface State {\n visible?: boolean;\n}\n\nexport default function withVisible<P extends WithVisibleProps>(Component: React.ComponentType<P>) {\n const ResComponent = class WithVisible extends React.Component<P, State> {\n static propTypes = {\n visible: PropTypes.bool,\n };\n\n static defaultProps = {\n visible: false,\n };\n\n static displayName = `WithVisible(${getDisplayName(Component)})`;\n\n state = {visible: this.props.visible};\n\n handleShow = () => this.setState({visible: true});\n handleClose = () => this.setState({visible: false});\n toggleVisible = () => this.setState((prevState) => ({visible: !prevState.visible}));\n\n render() {\n const {visible} = this.state;\n\n return (\n <Component\n {...this.props}\n visible={visible}\n handleShow={this.handleShow}\n handleClose={this.handleClose}\n toggleVisible={this.toggleVisible}\n />\n );\n }\n };\n return ResComponent as any as React.ComponentClass<P, State>;\n}\n","export const RumMeasureTypes = {\n CLUSTER_PARAMS: 'CLUSTER_PARAMS',\n\n ACCOUNTS: 'ACCOUNTS_',\n\n NAVIGATION_PRELOAD: 'NAVIGATION_PRELOAD',\n\n NAVIGATION_CONTENT_DOCUMENT: 'NAVIGATION_CONTENT_DOCUMENT',\n NAVIGATION_CONTENT_FILE: 'NAVIGATION_CONTENT_FILE',\n NAVIGATION_CONTENT_LINK: 'NAVIGATION_CONTENT_LINK',\n NAVIGATION_CONTENT_MAP_NODE: 'NAVIGATION_CONTENT_MAP_NODE_',\n NAVIGATION_CONTENT_REPLICATED_TABLE: 'NAVIGATION_CONTENT_REPLICATED_TABLE',\n NAVIGATION_CONTENT_TABLE_STATIC: 'NAVIGATION_CONTENT_TABLE_STATIC',\n NAVIGATION_CONTENT_TABLE_DYNAMIC: 'NAVIGATION_CONTENT_TABLE_DYNAMIC',\n NAVIGATION_CONTENT_TRANSACTION: 'NAVIGATION_CONTENT_TRANSACTION',\n NAVIGATION_CONTENT_TRANSACTION_MAP: 'NAVIGATION_CONTENT_TRANSACTION_MAP',\n\n NAVIGATION_TAB_ACL: 'NAVIGATION_TAB_ACL',\n NAVIGATION_TAB_ACL_ACCESS: 'NAVIGATION_TAB_ACL_ACCESS',\n NAVIGATION_TAB_ANNOTATION: 'NAVIGATION_TAB_ANNOTATION',\n NAVIGATION_TAB_ATTRIBUTES: 'NAVIGATION_TAB_ATTRIBUTES',\n NAVIGATION_TAB_USER_ATTRIBUTES: 'NAVIGATION_TAB_USER_ATTRIBUTES',\n NAVIGATION_TAB_LOCKS: 'NAVIGATION_TAB_LOCKS',\n NAVIGATION_TAB_SCHEMA: 'NAVIGATION_TAB_SCHEMA',\n NAVIGATION_TAB_TABLETS: 'NAVIGATION_TAB_TABLETS',\n NAVIGATION_TAB_TABLET_ERRORS: 'NAVIGATION_TAB_TABLET_ERRORS',\n\n OPERATIONS_LIST: 'OPERATIONS_LIST_',\n\n OPERATION: 'OPERATION',\n OPERATION_TAB_DETAILS: 'OPERATION_TAB_DETAILS',\n OPERATION_TAB_ATTRIBUTES: 'OPERATION_TAB_ATTRIBUTES',\n OPERATION_TAB_SPECIFICATION: 'OPERATION_TAB_SPECIFICATION',\n OPERATION_TAB_STATISTICS: 'OPERATION_TAB_STATISTICS',\n OPERATION_TAB_MONITOR: 'OPERATION_TAB_MONITOR',\n OPERATION_TAB_PARTITION_SIZES: 'OPERATION_TAB_PARTITION_SIZES',\n OPERATION_TAB_JOB_SIZES: 'OPERATION_TAB_JOB_SIZES',\n OPERATION_TAB_JOBS: 'OPERATION_TAB_JOBS',\n\n SCHEDULING: 'SCHEDULING_',\n SCHEDULING_OVERVIEW: 'SCHEDULING_OVERVIEW',\n SCHEDULING_DETAILS: 'SCHEDULING_DETAILS',\n SCHEDULING_MONITOR: 'SCHEDULING_MONITOR',\n SCHEDULING_ACL: 'SCHEDULING_ACL',\n\n YQL_KIT_WIDGET: 'YQL_KIT_WIDGET',\n} as const;\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 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 {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 {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) ?? false\n : undefined,\n ]);\n const filtered = filter_(items, concatByAnd(...predicates)).map((item) => {\n return {...item, columns: sortBy_(item.columns)};\n });\n return sortBy_(filtered, ['name']);\n },\n);\n\nfunction OrderByRoleStatus<\n T extends {\n isDepriving?: boolean;\n isRequested?: boolean;\n isUnrecognized?: boolean;\n isApproved?: boolean;\n },\n>(items: Array<T>) {\n const unrecognized: typeof items = [];\n const requested: typeof items = [];\n const depriving: typeof items = [];\n const rest: typeof items = [];\n forEach_(items, (item) => {\n const {isDepriving, isRequested, isUnrecognized, isApproved} = item;\n if (isUnrecognized) {\n unrecognized.push(item);\n } else if (isDepriving) {\n depriving.push(item);\n } else if (isRequested || isApproved) {\n requested.push(item);\n } else {\n rest.push(item);\n }\n });\n return [...requested, ...depriving, ...unrecognized, ...rest];\n}\n\nfunction OrderByInheritanceAndSubject<T extends {inherited?: boolean; subjects: Array<unknown>}>(\n items: Array<T>,\n) {\n const res = sortBy_(items, [\n (item) => !item.inherited,\n (item) => (item.subjects && item.subjects[0]) || true,\n ]);\n return res;\n}\n\nconst getReadApprovers = (state: RootState, idmKind: IdmKindType) =>\n state.acl[idmKind].readApprovers;\nconst getResponsibles = (state: RootState, idmKind: IdmKindType) => state.acl[idmKind].responsible;\nconst getAuditors = (state: RootState, idmKind: IdmKindType) => state.acl[idmKind].auditors;\n\nexport const getNotInheritedReadApprovers = createSelector([getReadApprovers], (readApprovers) =>\n filter_(readApprovers, (readApprover) => !readApprover.inherited),\n);\nexport const getNotInheritedResponsibles = createSelector([getResponsibles], (responsibles) =>\n filter_(responsibles, (responsible) => !responsible.inherited),\n);\nexport const getNotInheritedAuditors = createSelector([getAuditors], (auditros) =>\n filter_(auditros, (auditro) => !auditro.inherited),\n);\n\nconst getAllApprovers = createSelector(\n [getReadApprovers, getResponsibles, getAuditors],\n (readApprovers, responsibles, auditros) => {\n return [\n ...prepareApprovers(readApprovers, 'read_approver'),\n ...prepareApprovers(responsibles, 'responsible'),\n ...prepareApprovers(auditros, 'auditor'),\n ];\n },\n);\n\nexport const getHasApprovers = createSelector([getAllApprovers], (items) => items.length > 0);\n\nexport const getApproversFiltered = createSelector(\n [getAllApprovers, getApproversSubjectFilter],\n FilterBySubject,\n);\n\nexport const getApproversFilteredAndOrdered = createSelector(\n [getApproversFiltered],\n OrderByInheritanceAndSubject,\n);\n\nexport const getApprovers = createSelector([getAllApprovers], OrderByRoleStatus);\n\nexport const getAllAccessColumnsPermissions = createSelector(\n [getAllObjectPermissions],\n (objectPermissions) => {\n const filteredPermissions = filter_(\n objectPermissions,\n (permission) => permission.action === 'allow' && permission.columns?.length! > 0,\n );\n\n return map_(filteredPermissions, (item) => {\n const tmp: typeof item = {...item};\n tmp.type = 'columns';\n return tmp;\n });\n },\n);\n\nconst getAllDenyColumnsPermissions = createSelector(\n [getAllObjectPermissions],\n (objectPermissions) => {\n const filteredPermissions = filter_(\n objectPermissions,\n (permission) => permission.action === 'deny' && permission.columns?.length! > 0,\n );\n\n return map_(\n filteredPermissions,\n (permission) =>\n ({\n ...permission,\n type: 'columns',\n }) as PreparedAclSubjectColumn,\n );\n },\n);\n\nexport const getAllAccessColumnsNames = createSelector(\n [getAllAccessColumnsPermissions],\n prepareColumnsNames,\n);\n\nexport const getAllDenyColumnsNames = createSelector(\n [getAllDenyColumnsPermissions],\n prepareColumnsNames,\n);\n\nexport const getDenyColumnsItems = createSelector([getAllDenyColumnsNames], (names) =>\n map_(names, (name) => ({key: name, value: name, title: name})),\n);\n\nexport const isPermissionDeleted = (state: RootState, idmKind: IdmKindType) =>\n state.acl[idmKind].isPermissionDeleted;\nexport const permissionDeletionError = (state: RootState, idmKind: IdmKindType) =>\n state.acl[idmKind].deletionError;\nexport const getLastDeletedPermissionKey = (state: RootState, idmKind: IdmKindType) =>\n state.acl[idmKind].deletedItemKey;\nexport const getIdmPermissionsRequestError = (state: RootState, idmKind: IdmKindType) =>\n state.acl[idmKind].idmPermissionsRequestError;\nexport const getIdmManageAclRequestError = (state: RootState, idmKind: IdmKindType) =>\n state.acl[idmKind].idmManageAclRequestError;\nexport const getIdmPathVersion = (state: RootState, idmKind: IdmKindType) =>\n state.acl[idmKind].version;\n\nconst getAclLoading = (state: RootState, idmKind: IdmKindType) => state.acl[idmKind].loading;\nconst getAclLoaded = (state: RootState, idmKind: IdmKindType) => state.acl[idmKind].loaded;\nconst getAclError = (state: RootState, idmKind: IdmKindType) => state.acl[idmKind].error;\n\nexport const getAclLoadState = createSelector(\n [getAclLoading, getAclLoaded, getAclError],\n (loading, loaded, error) => {\n return calculateLoadingStatus(loading, loaded, error);\n },\n);\n","import {createSelector} from 'reselect';\nimport ypath from '@ytsaurus/interface-helpers/lib/ypath';\n\nimport {NAVIGATION_MAP_NODE_TABLE_ID} from '../../../constants/navigation/index';\nimport {getNavigationDefaultPath} from '../../../store/selectors/settings';\nimport {isFinalLoadingStatus} from '../../../utils/utils';\n\nexport const getTransaction = (state) => state.navigation.navigation.transaction;\nexport const getAttributes = (state) => state.navigation.navigation.attributes;\nexport const getAttributesWithTypes = (state) => state.navigation.navigation.attributesWithTypes;\nexport const getLoadState = (state) => state.navigation.navigation.loadState;\nexport const getError = (state) => state.navigation.navigation.error;\nexport const getRawPath = (state) => state.navigation.navigation.path;\nexport const getIdmSupport = (state) => state.navigation.navigation.isIdmSupported;\nexport const getSortState = (state) => state.tables[NAVIGATION_MAP_NODE_TABLE_ID];\n\nexport const getType = createSelector(getAttributes, (attributes) => attributes?.type);\n\nexport const getPath = createSelector(\n [getRawPath, getNavigationDefaultPath],\n (rawPath, defaultPath) => rawPath || defaultPath,\n);\n\nexport const getAttributesPath = createSelector(\n [getAttributes, getPath],\n (attributes, navigationPath) => attributes?.path || navigationPath,\n);\n\nexport const isNavigationFinalLoadState = createSelector([getLoadState], (state) => {\n return isFinalLoadingStatus(state);\n});\n\nexport const getParsedPath = createSelector(getPath, (path) => {\n try {\n return ypath.YPath.create(path, 'absolute');\n } catch (ex) {\n console.error(ex);\n }\n});\nexport const getActualPath = createSelector([getPath, getType], (path, type) => {\n return type === 'map_node' ? path + '/' : path;\n});\n\nexport const checkIsTrash = createSelector(\n [getPath],\n (path) => path.startsWith('//tmp/trash') || path.startsWith('//trash'),\n);\n","import {Page} from '../../../shared/constants/settings';\nimport {YT} from '../../config/yt-config';\nimport type {Tab as NavigationTab} from '../../constants/navigation';\nimport {ValueOf} from '../../types';\n\nimport {TabletErrorsByPathState} from '../../store/reducers/navigation/tabs/tablet-errors/tablet-errors-by-path';\nimport {getNavigationParams} from '../../store/reducers/navigation/url-mapping';\nimport {makeURLSearchParams} from './utils';\n\nexport function makeNavigationLink(params: {\n path: string;\n cluster?: string;\n navmode?: ValueOf<typeof NavigationTab>;\n teMode?: 'request_errors';\n teTime?: TabletErrorsByPathState['timeRangeFilter'];\n teMethods?: Array<string>;\n}) {\n const {cluster, ...rest} = params;\n const res = `/${cluster || YT.cluster}/${Page.NAVIGATION}`;\n const search = makeURLSearchParams(rest, getNavigationParams()).toString();\n return search ? `${res}?${search}` : res;\n}\n","import {LocationParameters} from '../../store/location';\n\nexport function makeURLSearchParams<T extends object>(params: T, info: LocationParameters) {\n const res = new URLSearchParams();\n Object.keys(params).reduce((acc, k) => {\n const value = params[k as keyof T];\n if (k in info) {\n if (info[k].options?.serialize) {\n const tmp = info[k].options?.serialize?.(value);\n if (tmp !== undefined) {\n res.append(k, tmp + '');\n }\n } else {\n res.append(k, value + '');\n }\n }\n return acc;\n }, res);\n return res;\n}\n","import {Page} from '../../../shared/constants/settings';\nimport {Tab as ComponentsTab} from '../../constants/components/main';\nimport {YT} from '../../config/yt-config';\n\nexport * from './navigation';\n\nexport function makeComponentsNodesUrl({host, cluster}: {host?: string; cluster?: string} = {}) {\n return host\n ? `/${cluster || YT.cluster}/${Page.COMPONENTS}/${ComponentsTab.NODES}/${host}`\n : `/${cluster || YT.cluster}/${Page.COMPONENTS}/${ComponentsTab.NODES}`;\n}\n\nexport function makeProxyUrl(cluster: string, address: string) {\n return `/${cluster}/${Page.COMPONENTS}/${ComponentsTab.RPC_PROXIES}?host=${address}`;\n}\n\nexport function makeSchedulingUrl({\n pool,\n poolTree,\n cluster,\n}: {\n pool: string;\n poolTree: string;\n cluster?: string;\n}) {\n return `/${cluster || YT.cluster}/${Page.SCHEDULING}?pool=${pool}&poolTree=${poolTree}`;\n}\n\nexport function makeAccountsUrl(account: string, cluster?: string) {\n return `/${cluster || YT.cluster}/${Page.ACCOUNTS}?account=${account}`;\n}\n","const SvgChevronRight = props => <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 16 16\" {...props}><path fill=\"currentColor\" fillRule=\"evenodd\" d=\"M5.47 13.03a.75.75 0 0 1 0-1.06L9.44 8 5.47 4.03a.75.75 0 0 1 1.06-1.06l4.5 4.5a.75.75 0 0 1 0 1.06l-4.5 4.5a.75.75 0 0 1-1.06 0\" clipRule=\"evenodd\" /></svg>;\nexport default SvgChevronRight;","const SvgCircleCheck = props => <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 16 16\" {...props}><path fill=\"currentColor\" fillRule=\"evenodd\" d=\"M13.5 8a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0M15 8A7 7 0 1 1 1 8a7 7 0 0 1 14 0m-3.9-1.55a.75.75 0 1 0-1.2-.9L7.419 8.858 6.03 7.47a.75.75 0 0 0-1.06 1.06l2 2a.75.75 0 0 0 1.13-.08z\" clipRule=\"evenodd\" /></svg>;\nexport default SvgCircleCheck;"],"names":["block","cn","prepareRoleListValue","roles","otherMembers","arguments","length","undefined","current","toAdd","toRemove","unrecognized","forEach_","item","isUnrecognized","isRequested","isApproved","isDepriving","push","currentArr","map","prepareItemOfCurrent","otherArr","title","data","frozen","newItems","concat","itemClassName","role","extraProps","_objectSpread","text","value","roleListValueToSubjectList","_toConsumableArray","manyListDataItemToSubjectList","manyListDataItem","map_","filter_","_ref2","removed","_ref3","_ref4","type","extractChangedSubjects","added","filter","_ref5","_ref6","user","group","_ref7","_ref8","DialogError","props","_jsx","YTErrorBlock","className","makeErrorFields","errors","compact_","error","index","name","extras","children","FORM_ERROR","makeFormSubmitError","validationErrors","_defineProperty","importYTDFDialog","Component","YTDFDialog","withLazyLoading","React","_asyncToGenerator","_regeneratorRuntime","_callee","_context","prev","next","t0","sent","YTDialog","abrupt","stop","_React$useState","_React$useState2","_slicedToArray","mounted","setMounted","visible","_callee2","_context2","RoleListControl","EditableList","_callee3","_context3","TabFieldVertical","_callee4","_context4","xmlns","fill","viewBox","fillRule","d","clipRule","ExpandButton","_ref","expanded","inline","toggleExpanded","all","showText","qa","titleExpanded","titleCollapsed","_jsxs","Button","view","onClick","Icon","doubleShevronRightSvg","shevronRightSvg","size","toaster","Toaster","LoadDataHandler","_Component","_inherits","_super","_createSuper","_classCallCheck","apply","_createClass","key","_this$props","this","loaded","errorData","add","theme","autoHiding","content","message","hammer","format","NO_VALUE","actions","label","showErrorPopup","_this$props2","_this$props2$alwaysSh","alwaysShowError","SubjectCard","UIFactory","renderSubjectCard","TextInputWithDebounce","_props$debounce","debounce","_props$onUpdate","onUpdate","onBlur","onEnterKeyDown","onKeyDown","rest","_objectWithoutProperties","_excluded","input","setInput","handleChangeExt","throttle_","handleChange","cancel","handleKeyDown","e","handleBlur","TextInput","renderText","settings","mix","elem","mods","textProps","asHTML","dangerouslySetInnerHTML","__html","unipika","decode","String","prepareTextProps","printColumnAsTimeDurationWithMs","columnName","column","getColumn","get","printColumnAsReadableField","printColumnAsTime","ColumnAsTime","printColumnAsError","_typeof","Link","hideOopsMsg","asNumber","__default__","_templates","templateId","templates","Object","keys","reduce","newTemplates","wrapRenderMethods","updateAclFilters","ACL_CHANGE_FILTERS","toggleExpandAclSubject","subject","dispatch","getState","expandedSubjects","Set","getAclFilterExpandedSubjects","has","assign","width","height","EditColumnGroupModal","confirmText","handleClose","handleSubmit","initialData","_ref$disabledFields","disabledFields","_useState","useState","_useState2","setError","initialValues","useMemo","columns","enabled","Boolean","pristineSubmittable","modal","headerProps","footerProps","textApply","onClose","onAdd","form","_form$getState$values","values","err","fields","required","caption","placeholder","disabled","includes_","tooltip","ColumnGroups","columnGroups","path","loadAclDataFn","cluster","_ref$allowEdit","allowEdit","columnsFilter","columnGroupNameFilter","userPermissionsAccessColumns","setModalProps","prevProps","_value","Promise","resolve","modalProps","header","render","row","Power","align","_row$columns","join","_Fragment","delete","id","getAclApi","deleteColumnGroup","then","awesome","edit","editColumnGroup","ErrorBoundary","createColumnGroup","WithStickyToolbar","topMargin","bottomMargin","toolbar","Toolbar","itemsToWrap","node","ColumnGroupsFilter","shrinkable","DataTableYT","noItemsText","sortable","displayIndices","options","Select","multiple","hasClear","filterable","items","maxVisibleValuesTextLength","DeletePermissionModal","_this","_len","args","Array","_key","call","state","confirm","checkConfirmDisabled","toggleConfirm","setState","prevState","deleteItem","idmKind","itemToDelete","deletePermissions","roleKey","_this$props3","isPermissionDeleted","lastItemKey","inherited","subjects","permissions","inheritanceMode","Modal","onConfirm","loading","onCancel","onOutsideClick","isConfirmDisabled","MetaTable","Checkbox","checked","onChange","Label","compose","withVisible","version","handleShow","bossApproval","disableInheritanceResponsible","auditors","responsible","readApprovers","manageAclError","loadAclData","cancelUpdateAcl","updateAcl","handleModalOpen","useCallback","handleUpdateAclClose","inheritanceResponsible","disableInheritance","mode","manageAclDialogFields","maxVisibleCount","comment","manageAclFields","dialogFields","permissionsSettings","getAclPermissionsSettings","idmKindConditions","allowBossApprovals","allowAuditors","allowReadApprovers","allowInheritResponsibles","CommonDialog","open","Header","Body","Loader","formExtras","initialValuesEqual","isEqual_","inheritAcl","hasWarning","setHasWarning","inheritAcl_warning","_UIFactory$getAclApi","manageInheritanceFields","buttonsTitle","allowInheritAcl","_ref$editInheritance","editInheritance","AclActions","_args","requestPermissions","_args2","_args3","aclMode","requestPermissionsError","cancelRequestPermissions","updateAclError","IdmObjectType","UI_EFFECTIVE_ACL","Flex","gap","RequestPermissions","AclMode","COLUMN_GROUPS_PERMISSISONS","ManageInheritance","ManageAcl","MyPermissions","userPermissions","groups","i","slice","PermissionsGroup","direction","action","alignItems","color","xMarkSvg","checkSvg","Readable","ApproversFilters","useDispatch","subjectFilter","useSelector","getApproversSubjectFilter","Filter","approversSubject","autofocus","ObjectPermissionsFilters","getObjectSubjectFilter","selectedPermissons","getObjectPermissionsFilter","permissionList","getObjectPermissionsTypesList","objectSubject","p","ReadableField","objectPermissions","SegmentControl","background","SegmentGroup","rowGap","SegmentValue","url","Value","isValidUrl","target","href","bool","ACL_MODE_OPTIONS","MAIN_PERMISSIONS","AclModeControl","RadioButton","aclCurrentTab","AclColumnsCell","_items$map","expanadable","VisibleValues","counter","v","maxVisibleValues","maxTextLength","fillOpacity","InheritanceMessage","kind","PATH","makeNavigationLink","POOL","makeSchedulingUrl","pool","poolTree","ACCOUNT","makeAccountsUrl","urlFromData","routed","routedPreserveLocation","ACL","handleDeletePermissionClick","handleCloseDeleteModal","deletePermissionsFn","res","hasInherited","openDeleteModal","_this$props4","expand","_UIFactory$getAclApi$","requestPermissionsFlags","inheritedFrom","level","wrap","Popover","hidden","aclInheritedSvg","grow","renderSubjectLink","flagInfo","renderIcon","_row$permissions","inheritance_mode","RoleActions","getComponentForAclRoleActions","onDelete","approve_type","_ref9","depriving","requested","approved","missing","isMissing","_this2","_this$props5","hasApprovers","approversFiltered","tableColumns","getColumnsTemplates","rowClassName","rowClassNameByFlags","_this3","_this$props6","mainPermissions","columnsPermissions","useColumns","_ref10","hasDenyAction","hasExpandable","extraColumns","_this$props7","nodeType","isAllowedToEditColumnGroups","isIdmAclAvailable","_this$props8","disableAclInheritance","userPermissionsRequestError","userPermissionsRequestFn","userPermissionsCancelRequestFn","deletePermissionsLastItemKey","deletePermissionsError","userPermissionsUpdateAcl","userPermissionsUpdateAclError","userPermissionsCancelUpdateAcl","hasColumns","Fragment","renderMeta","renderColumnGroups","renderApprovers","renderObjectPermissions","_this$props9","_UIFactory$getAclPerm","toSegmentItem","invert","isGranted","idmLink","segments","_this$props10","counters","count","_ref11","_this$props11","initialLoading","renderContent","internal","_item$types","_ref12","types","showIcon","subjectType","subjectUrl","username","_item$tvmInfo","tvmId","tvmInfo","_ref15","groupInfo","group_type","Tooltip","ClipboardButton","groupType","responsibles","read_approvers","sets","objectDefault","approvers","handleDelete","mergeProps","stateProps","dispatchProps","ownProps","normalizedPoolTree","aclRequestOptions","restDispatchProps","params","createACLComponent","inputIdmKind","mapStateToProps","normalizedParams","normalizeIdmParams","pool_tree","userPermissionsPath","_state$acl$idmKind","acl","getHasApprovers","getApproversFilteredAndOrdered","_getObjectPermissions","getObjectPermissionsAggregated","getAllColumnGroupsActual","getAllUserPermissions","getAclFilterColumns","getNotInheritedAuditors","getNotInheritedReadApprovers","getNotInheritedResponsibles","getType","getCluster","getIdmPathVersion","getIdmPermissionsRequestError","getAllAccessColumnsNames","getIdmManageAclRequestError","getLastDeletedPermissionKey","permissionDeletionError","getAclFilterColumnGroupName","getAclCurrentTab","mapDispatchToProps","connect","createACLConnector","AccessContentAcl","ACCESS_CONTROL_OBJECT","NavigationAcl","PoolAclPanel","AccountsAcl","BundleAcl","TABLET_CELL_BUNDLE","PermissionsControl","handleCheckboxChange","permissionName","permissionsToSet","_toPropertyKey","disabledChoices","itemDisabled","indexOf_","choices","getChoiceName","renderPermissionCheckbox","renderChoices","choice","isEmpty_","hasErrorRenderer","getDefaultValue","FLAG_NAME_PREFIX","SHORT_TITLE","access_control_object","COLUMNS_FELDS","_SHORT_TITLE$idmKind","buttonClassName","buttonProps","requestPermissionsFields","permissionFlags","forEach","k","currentCaption","permissionsToRequest","getAvailablePermissions","availablePermissions","setAvailablePermissions","onShow","finish","firstItemDisabled","valueWithCheckedFirstChoice","availableFields","docsUrl","makeLink","docsUrls","readColumns","readColumnGroup","allowedTypes","duration","commentHeader","INHERITANCE_MODE_TYPES","hideClear","hideFilter","with","flagsIndex","acc","field","flags","help","initialValue","splice","_ref2$editAcl","editAcl","_ref2$editColumnsAcl","editColumnsAcl","OBJECT_AND_DESCENDANTS","validate","validationError","_WithVisible","ResComponent","_React$Component","WithVisible","toggleVisible","defaultProps","displayName","getDisplayName","RumMeasureTypes","CLUSTER_PARAMS","ACCOUNTS","NAVIGATION_PRELOAD","NAVIGATION_CONTENT_DOCUMENT","NAVIGATION_CONTENT_FILE","NAVIGATION_CONTENT_LINK","NAVIGATION_CONTENT_MAP_NODE","NAVIGATION_CONTENT_REPLICATED_TABLE","NAVIGATION_CONTENT_TABLE_STATIC","NAVIGATION_CONTENT_TABLE_DYNAMIC","NAVIGATION_CONTENT_TRANSACTION","NAVIGATION_CONTENT_TRANSACTION_MAP","NAVIGATION_TAB_ACL","NAVIGATION_TAB_ACL_ACCESS","NAVIGATION_TAB_ANNOTATION","NAVIGATION_TAB_ATTRIBUTES","NAVIGATION_TAB_USER_ATTRIBUTES","NAVIGATION_TAB_LOCKS","NAVIGATION_TAB_SCHEMA","NAVIGATION_TAB_TABLETS","NAVIGATION_TAB_TABLET_ERRORS","OPERATIONS_LIST","OPERATION","OPERATION_TAB_DETAILS","OPERATION_TAB_ATTRIBUTES","OPERATION_TAB_SPECIFICATION","OPERATION_TAB_STATISTICS","OPERATION_TAB_MONITOR","OPERATION_TAB_PARTITION_SIZES","OPERATION_TAB_JOB_SIZES","OPERATION_TAB_JOBS","SCHEDULING","SCHEDULING_OVERVIEW","SCHEDULING_DETAILS","SCHEDULING_MONITOR","SCHEDULING_ACL","YQL_KIT_WIDGET","prepareUserPermissions","permissionTypes","getPathToCheckPermissions","_x","_x2","_x3","_getPathToCheckPermissions","entityName","fullPath","_context5","ytApiV3Id","YTApiId","schedulingPoolFullPath","Error","_state$global","login","_state$global$cluster","pathToCheckPermissions","pathToCheckUserPermissions","global","LOAD_DATA","REQUEST","getTree","getAcl","sysPath","checkUserPermissionsUI","getResponsible","SUCCESS","column_groups","t1","FAILURE","_x4","_x5","_getState$global$clus","deletePermissionsPath","DELETE_PERMISSION","deleteRole","isCancelled","CANCELLED","reject","_x6","_x7","dateToDaysAfterNow","date","Math","round","getTime","Date","now","_values$comment","_state$global$cluster2","daysAfter","rolesGroupedBySubject","_iterator","_step","_loop","requestPermissionsPath","REQUEST_PERMISSION","_createForOfIteratorHelper","commonPart","flattenPermissions","prepareAclSubject","deprive_after_days","entries","_ref13","applyToRequestedRole","flatten_","convertFromUIPermissions","role_type","column_group_id","s","n","done","delegateYield","f","roles_grouped","_x8","_x9","_ref14","_getState$global$clus2","UPDATE_ACL","_error$response","response","_ref17","aclFilters","prepareColumnsNames","permission","uniq_","sort","prepareApprovers","extra","group_name","getAllObjectPermissions","getAllObjectPermissionsWithSplittedSubjects","createSelector","isSplitted","subjectIndex","permissionsFilter","uniquePermisions","sortBy_","subjectFilterPredicate","_item$subjects$","some_","_str","str","split","pop","toLowerCase","indexOf","getAllObjectPermissionsFiltered","_partition_","partition_","_item$columns","_partition_2","withColumns","lowerNameFilter","toLocaleLowerCase","filterBySubject","permissionsFilterSet","filterByPermissions","_permissionsFilterPre","foundCount","some","permissionsFilterPredicate","visibleColumns","filterByColumns","_columns$some","colName","mainPredicates","columnsPredicates","concatByAnd","aggregateBySubject","AggregateBySubject","first","aggrKey","allPermissions","aggregationKey","_item$permissions","_child$permissions","_child$permissions2","_item$columns2","_this$first","_this$first2","_this$first3","_this$first4","JSON","stringify","child","objPermissions","aggregated","aggKey","dst","_item$getItems","getItems","_partition_3","_partition_4","other","OrderByRoleStatus","nameFilter","nameFilterLower","predicates","_item$columns$some","_item$columns3","_item$name","filtered","getReadApprovers","getResponsibles","getAuditors","readApprover","auditros","auditro","getAllApprovers","getApproversFiltered","getAllAccessColumnsPermissions","filteredPermissions","_permission$columns","tmp","getAllDenyColumnsPermissions","_permission$columns2","getAllDenyColumnsNames","getDenyColumnsItems","names","deletionError","deletedItemKey","idmPermissionsRequestError","idmManageAclRequestError","getAclLoadState","calculateLoadingStatus","getTransaction","navigation","transaction","getAttributes","attributes","getAttributesWithTypes","attributesWithTypes","getLoadState","loadState","getError","getRawPath","getIdmSupport","isIdmSupported","getPath","getNavigationDefaultPath","rawPath","defaultPath","getAttributesPath","navigationPath","isNavigationFinalLoadState","isFinalLoadingStatus","getParsedPath","ypath","create","ex","console","getActualPath","checkIsTrash","startsWith","YT","Page","NAVIGATION","search","info","URLSearchParams","_info$k$options","serialize","_info$k$options2","_info$k$options2$seri","append","makeURLSearchParams","getNavigationParams","toString","makeComponentsNodesUrl","host","COMPONENTS","ComponentsTab","NODES","makeProxyUrl","address","RPC_PROXIES","account"],"sourceRoot":""}
|