@ytsaurus/ui 1.64.0 → 1.65.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -0
- package/dist/public/build/assets-manifest.json +37 -37
- package/dist/public/build/css/{577.b41224cd.chunk.css → 577.f8556dcc.chunk.css} +2 -2
- package/dist/public/build/css/577.f8556dcc.chunk.css.map +1 -0
- package/dist/public/build/css/{cluster-menu.1242e46d.chunk.css → cluster-menu.d8cafef3.chunk.css} +2 -2
- package/dist/public/build/css/cluster-menu.d8cafef3.chunk.css.map +1 -0
- package/dist/public/build/css/cluster-page-wrapper.4610796b.chunk.css +2 -0
- package/dist/public/build/css/cluster-page-wrapper.4610796b.chunk.css.map +1 -0
- package/dist/public/build/css/main.fb5dcfa3.css +10 -0
- package/dist/public/build/css/{main.b2af1626.css.map → main.fb5dcfa3.css.map} +1 -1
- package/dist/public/build/js/2081.b642c3c2.chunk.js +2 -0
- package/dist/public/build/js/{2081.56ca6548.chunk.js.map → 2081.b642c3c2.chunk.js.map} +1 -1
- package/dist/public/build/js/4016.37d0a2f0.chunk.js +3 -0
- package/dist/public/build/js/4016.37d0a2f0.chunk.js.map +1 -0
- package/dist/public/build/js/{6729.91ef11dc.chunk.js → 6729.6403cc56.chunk.js} +2 -2
- package/dist/public/build/js/6729.6403cc56.chunk.js.map +1 -0
- package/dist/public/build/js/{7077.7dab612c.chunk.js → 7077.fb18710a.chunk.js} +2 -2
- package/dist/public/build/js/7077.fb18710a.chunk.js.map +1 -0
- package/dist/public/build/js/acl.19d28cd7.chunk.js +2 -0
- package/dist/public/build/js/acl.19d28cd7.chunk.js.map +1 -0
- package/dist/public/build/js/{cluster-page-wrapper.eddde18f.chunk.js → cluster-page-wrapper.697b0741.chunk.js} +2 -2
- package/dist/public/build/js/cluster-page-wrapper.697b0741.chunk.js.map +1 -0
- package/dist/public/build/js/job.bddddc9e.chunk.js +2 -0
- package/dist/public/build/js/job.bddddc9e.chunk.js.map +1 -0
- package/dist/public/build/js/main.5d8871a8.js +3 -0
- package/dist/public/build/js/main.5d8871a8.js.map +1 -0
- package/dist/public/build/js/navigation-flow.c43f2927.chunk.js +2 -0
- package/dist/public/build/js/navigation-flow.c43f2927.chunk.js.map +1 -0
- package/dist/public/build/js/navigation.e4272357.chunk.js +2 -0
- package/dist/public/build/js/navigation.e4272357.chunk.js.map +1 -0
- package/dist/public/build/js/{runtime.7752c183.js → runtime.8fed68b1.js} +2 -2
- package/dist/public/build/js/{runtime.7752c183.js.map → runtime.8fed68b1.js.map} +1 -1
- package/dist/public/build/js/system.92b7afc7.chunk.js +2 -0
- package/dist/public/build/js/system.92b7afc7.chunk.js.map +1 -0
- package/dist/public/build/manifest.json +32 -32
- package/dist/public/favicon-dorn-yellow.png +0 -0
- package/dist/public/favicon-rubber.png +0 -0
- package/dist/server/configs/e2e/local.js +4 -0
- package/package.json +2 -2
- package/dist/public/build/css/577.b41224cd.chunk.css.map +0 -1
- package/dist/public/build/css/cluster-menu.1242e46d.chunk.css.map +0 -1
- package/dist/public/build/css/cluster-page-wrapper.0b6a786f.chunk.css +0 -2
- package/dist/public/build/css/cluster-page-wrapper.0b6a786f.chunk.css.map +0 -1
- package/dist/public/build/css/main.b2af1626.css +0 -10
- package/dist/public/build/js/2081.56ca6548.chunk.js +0 -2
- package/dist/public/build/js/4016.03291f63.chunk.js +0 -3
- package/dist/public/build/js/4016.03291f63.chunk.js.map +0 -1
- package/dist/public/build/js/6729.91ef11dc.chunk.js.map +0 -1
- package/dist/public/build/js/7077.7dab612c.chunk.js.map +0 -1
- package/dist/public/build/js/acl.cd1fe761.chunk.js +0 -2
- package/dist/public/build/js/acl.cd1fe761.chunk.js.map +0 -1
- package/dist/public/build/js/cluster-page-wrapper.eddde18f.chunk.js.map +0 -1
- package/dist/public/build/js/job.31c91355.chunk.js +0 -2
- package/dist/public/build/js/job.31c91355.chunk.js.map +0 -1
- package/dist/public/build/js/main.693c4cb1.js +0 -3
- package/dist/public/build/js/main.693c4cb1.js.map +0 -1
- package/dist/public/build/js/navigation-flow.f7bcba21.chunk.js +0 -2
- package/dist/public/build/js/navigation-flow.f7bcba21.chunk.js.map +0 -1
- package/dist/public/build/js/navigation.c8c7b9cc.chunk.js +0 -2
- package/dist/public/build/js/navigation.c8c7b9cc.chunk.js.map +0 -1
- package/dist/public/build/js/system.57ed0f9d.chunk.js +0 -2
- package/dist/public/build/js/system.57ed0f9d.chunk.js.map +0 -1
- /package/dist/public/build/js/{4016.03291f63.chunk.js.LICENSE.txt → 4016.37d0a2f0.chunk.js.LICENSE.txt} +0 -0
- /package/dist/public/build/js/{main.693c4cb1.js.LICENSE.txt → main.5d8871a8.js.LICENSE.txt} +0 -0
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"js/acl.19d28cd7.chunk.js","mappings":"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","sources":["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/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/AclActions/AclActions.tsx","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/icons/svgs/circle-check.svg","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/utils/app-url.ts","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/icons/svgs/chevron-right.svg","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/uikit/build/esm/components/Hotkey/definitions.js","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/uikit/build/esm/components/Hotkey/utils.js","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/uikit/build/esm/components/Hotkey/parse.js","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/uikit/build/esm/components/Hotkey/Hotkey.js","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/uikit/build/esm/components/ActionTooltip/ActionTooltip.js","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/uikit/build/esm/components/ClipboardButton/i18n/index.js","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/uikit/build/esm/components/ClipboardButton/ClipboardButton.js","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/uikit/build/esm/hooks/private/useTooltipVisible/index.js","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/uikit/build/esm/hooks/private/useBoolean/useBoolean.js"],"sourcesContent":["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 Error 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 <Error 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(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 {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 padding=\"skip-vertical\"\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 Error 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 <Error message=\"Could not delete permission\" error={error} />\n )}\n </div>\n }\n />\n );\n }\n}\n","import React, {useCallback, useMemo, useState} from 'react';\nimport {compose} from 'redux';\nimport cn from 'bem-cn-lite';\n\nimport isEqual_ from 'lodash/isEqual';\n\nimport {Dialog as CommonDialog, Loader} from '@gravity-ui/uikit';\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 Error 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 ErrorBlock from '../../../components/Block/Block';\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 | 'inheritAcl_warning'\n | '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 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 auditors: RoleListControlProps['value'];\n responsible: RoleListControlProps['value'];\n readApprovers: RoleListControlProps['value'];\n inheritanceResponsible: boolean;\n bossApproval: boolean;\n inheritAcl: 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 inheritAcl,\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 [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 {auditors, readApprovers, responsible, ...rest} = form.getState().values;\n\n return updateAcl({\n path,\n idmKind,\n values: {\n ...rest,\n responsibleApproval: roleListValueToSubjectList(responsible),\n auditors: roleListValueToSubjectList(auditors),\n readApprovers: roleListValueToSubjectList(readApprovers),\n },\n version,\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 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 <ErrorBlock\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 ></ErrorBlock>\n ) : null,\n },\n },\n comment: {\n name: 'comment',\n caption: 'Comment for IDM',\n type: 'textarea',\n },\n }) as Record<ManageAclFieldsNames, DialogField<FormValues>>,\n [hasWarning],\n );\n\n const dialogFields = useMemo(() => {\n const permissionsSettings = UIFactory.getAclPermissionsSettings();\n const idmKindConditions: {[Key in ManageAclFieldsNames]?: boolean} = {\n inheritAcl: permissionsSettings[idmKind].allowInheritAcl,\n bossApproval: permissionsSettings[idmKind].allowBossApprovals,\n auditors: permissionsSettings[idmKind].allowAuditors,\n readApprovers: permissionsSettings[idmKind].allowReadApprovers,\n inheritanceResponsible: permissionsSettings[idmKind].allowInheritResponsibles,\n };\n\n return UIFactory.getAclApi()\n .manageAclFields.filter((name) =>\n idmKindConditions[name] !== undefined ? idmKindConditions[name] : true,\n )\n .map((name) => manageAclDialogFields[name]);\n }, [idmKind, manageAclDialogFields]);\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 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 <Error 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 (\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, {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';\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 <ManageAcl\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 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","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;","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({userPermissions}: Pick<ACLReduxProps, 'userPermissions'>) {\n const groups: Array<typeof userPermissions> = [];\n for (let i = 0; i < userPermissions?.length ?? 0; i += 4) {\n groups.push(userPermissions.slice(i, i + 4));\n }\n return (\n <Flex className={block()}>\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(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} 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 level = 'level' in row ? row.level : undefined;\n const RoleActions = UIFactory.getComponentForAclRoleActions();\n return level === 0\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 padding=\"skip-vertical\"\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 padding=\"skip-vertical\"\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: nodeType === 'map_node',\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 return {\n name,\n value: invert ? !role : Boolean(role),\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 return (\n <Flex className={block('meta')} wrap alignItems=\"center\">\n <SegmentControl\n className={block('meta-overview')}\n background=\"neutral-light\"\n groups={[segments, counters].filter(({length}) => length > 0)}\n />\n {aclMode !== AclMode.COLUMN_GROUPS_PERMISSISONS && (\n <MyPermissions userPermissions={userPermissions} />\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 {requestPermissionsFields, requestPermissionsFlags = {}} = 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: false,\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 title = useColumns ? 'Request column permissions' : 'Request permissions';\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 {getPools, getTree} from '../../store/selectors/scheduling/scheduling';\nimport {computePathItems} from '../../utils/scheduling/scheduling';\nimport {\n YTPermissionTypeUI,\n checkUserPermissionsUI,\n getAcl,\n getResponsible,\n} from '../../utils/acl/acl-api';\nimport {convertFromUIPermissions, prepareAclSubject} from '../../utils/acl';\nimport {ROOT_POOL_NAME} from '../../constants/scheduling';\nimport UIFactory from '../../UIFactory';\nimport {AclAction, HasIdmKind} from '../../store/reducers/acl/acl';\nimport {isCancelled} from '../../utils/cancel-helper';\nimport {RootState} from '../../store/reducers';\nimport {IdmKindType, PreparedAclSubject, ResponsibleType, Role} from '../../utils/acl/acl-types';\nimport {CheckPermissionResult} from '../../../shared/utils/check-permission';\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\nfunction getPathToCheckPermissions(\n idmKind: IdmKindType,\n state: RootState,\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 pools = getPools(state);\n if (pools?.length) {\n const poolPath = computePathItems(pools, entityName).filter(\n (item) => item !== ROOT_POOL_NAME,\n );\n return `//sys/pool_trees/${poolTree}/${poolPath.join('/')}`;\n } else {\n const params = new URLSearchParams(window.location.search);\n const path = params.get('path');\n if (!path) {\n break;\n }\n return path;\n }\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 (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 const pathToCheckPermissions = getPathToCheckPermissions(idmKind, state, path, poolTree);\n const pathToCheckUserPermissions = userPermissionsPath\n ? getPathToCheckPermissions(idmKind, state, userPermissionsPath, poolTree)\n : pathToCheckPermissions;\n\n return 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 ])\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) => {\n dispatch({\n type: LOAD_DATA.FAILURE,\n data: {\n error: error?.response?.data || error?.response || 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 (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 const deletePermissionsPath = getPathToCheckPermissions(idmKind, state, path, poolTree);\n\n return 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) => {\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?.response?.data || error?.response || 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 (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 = getPathToCheckPermissions(\n idmKind,\n state,\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) => {\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?.response?.data || error?.response || 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 responsibleApproval: Array<ResponsibleType>;\n auditors: Array<ResponsibleType>;\n readApprovers: Array<ResponsibleType>;\n inheritanceResponsible: 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 }: {path: string; values: UpdateAclValues; version?: string} & 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 responsible: values.responsibleApproval,\n auditors: values.auditors,\n disableInheritance: !values.inheritanceResponsible,\n bossApproval: values.bossApproval,\n inheritAcl: values.inheritAcl,\n readApprovers: values.readApprovers,\n version,\n idmKind,\n poolTree,\n comment: values.comment,\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 {Page} from '../../shared/constants/settings';\nimport {Tab as ComponentsTab} from '../constants/components/main';\nimport YT from '../config/yt-config';\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 makeNavigationLink(path: string, cluster?: string) {\n return `/${cluster || YT.cluster}/${Page.NAVIGATION}?path=${path}`;\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 PcNormalizeMap = {\n arrowup: 'up',\n arrowdown: 'down',\n arrowleft: 'left',\n arrowright: 'right',\n esc: 'escape',\n return: 'enter',\n mod: 'ctrl',\n control: 'ctrl',\n opt: 'alt',\n option: 'alt',\n cmd: 'ctrl',\n command: 'ctrl',\n};\nconst MacNormalizeMap = {\n arrowup: 'up',\n arrowdown: 'down',\n arrowleft: 'left',\n arrowright: 'right',\n esc: 'escape',\n enter: 'return',\n mod: 'command',\n ctrl: 'control',\n alt: 'option',\n opt: 'option',\n cmd: 'command',\n};\nconst PcDisplayName = {\n up: '↑',\n down: '↓',\n left: '←',\n right: '→',\n escape: 'Esc',\n plus: '+',\n enter: 'Enter',\n ctrl: 'Ctrl',\n alt: 'Alt',\n shift: 'Shift',\n tab: 'Tab',\n backspace: 'Backspace',\n};\nconst MacDisplayName = {\n up: '▲',\n down: '▼',\n left: '◀',\n right: '▶',\n escape: '⎋',\n plus: '+',\n return: '⏎',\n command: '⌘',\n option: '⌥',\n control: '⌃',\n shift: '⇧',\n backspace: '⌫',\n tab: '⇥',\n};\nconst PcKeyPriority = {\n shift: 200,\n alt: 300,\n ctrl: 400,\n};\nconst MacKeyPriority = {\n command: 100,\n shift: 200,\n option: 300,\n control: 400,\n};\nexport const defsByPlatform = {\n pc: {\n NormalizeMap: PcNormalizeMap,\n Priority: PcKeyPriority,\n DisplayName: PcDisplayName,\n },\n mac: {\n NormalizeMap: MacNormalizeMap,\n Priority: MacKeyPriority,\n DisplayName: MacDisplayName,\n },\n};\n","export const isMac = () => typeof navigator !== 'undefined' ? /Mac|iP(hone|[oa]d)/.test(navigator.platform) : false;\nexport function split(val, separator) {\n return val.trim().split(separator).filter(Boolean);\n}\n","import capitalize from 'lodash/capitalize';\nimport uniqBy from 'lodash/uniqBy';\nimport { split } from './utils';\nconst GROUPS_SEPARATOR = /\\s/;\nconst KEYS_SEPARATOR = '+';\nexport function parseKeyGroups(defs, value) {\n return split(value, GROUPS_SEPARATOR).map((keys) => uniqBy(split(keys, KEYS_SEPARATOR)\n .map(keyParser(defs))\n .sort((a, b) => b.priority - a.priority), // high to low\n (key) => key.id).map(renderKey));\n}\nfunction keyParser(defs) {\n return function (raw) {\n var _a;\n const keyId = getKeyId(defs, raw);\n return {\n raw,\n id: keyId,\n priority: (_a = defs.Priority[keyId]) !== null && _a !== void 0 ? _a : 0,\n displayName: defs.DisplayName[keyId],\n };\n };\n}\nfunction getKeyId(defs, val) {\n var _a;\n val = val.toLowerCase();\n return (_a = defs.NormalizeMap[val]) !== null && _a !== void 0 ? _a : val;\n}\nfunction renderKey(key) {\n var _a;\n return (_a = key.displayName) !== null && _a !== void 0 ? _a : capitalize(key.id);\n}\n","'use client';\nimport React from 'react';\nimport { block } from '../utils/cn';\nimport { defsByPlatform } from './definitions';\nimport { parseKeyGroups } from './parse';\nimport { isMac } from './utils';\nimport './Hotkey.css';\nconst b = block('hotkey');\nconst Spaces = {\n BetweenGroups: String.fromCharCode(160), // \n BetweenKeys: String.fromCharCode(8239), // Narrow No-Break Space\n};\nexport const Hotkey = React.forwardRef(function Hotkey(props, ref) {\n const { value, platform, view = 'light', qa, style, className } = props;\n const groups = parseHotkeys(value, { platform });\n const content = [];\n let hasGroups = false;\n groups.forEach((keys, groupIdx) => {\n if (keys.length === 0)\n return;\n if (hasGroups) {\n content.push(Spaces.BetweenGroups);\n }\n else {\n hasGroups = true;\n }\n keys.forEach((key, keyIdx) => {\n const isFirstKey = keyIdx === 0;\n if (!isFirstKey) {\n content.push(Spaces.BetweenKeys, React.createElement(\"span\", { key: `${key}_${groupIdx}_${keyIdx}_plus`, className: b('plus') }, \"+\"), Spaces.BetweenKeys);\n }\n content.push(React.createElement(\"kbd\", { key: `${key}_${groupIdx}_${keyIdx}` }, key));\n });\n });\n if (content.length === 0)\n return null;\n return (React.createElement(\"kbd\", { ref: ref, style: style, \"data-qa\": qa, className: b({ view }, className) }, content));\n});\nexport function parseHotkeys(value, opts) {\n var _a;\n const platform = (_a = opts.platform) !== null && _a !== void 0 ? _a : (isMac() ? 'mac' : 'pc');\n const defs = defsByPlatform[platform];\n return parseKeyGroups(defs, value);\n}\n","'use client';\nimport { __rest } from \"tslib\";\nimport React from 'react';\nimport { useForkRef } from '../../hooks';\nimport { useTooltipVisible } from '../../hooks/private';\nimport { Hotkey } from '../Hotkey';\nimport { Popup } from '../Popup';\nimport { block } from '../utils/cn';\nimport './ActionTooltip.css';\nconst DEFAULT_PLACEMENT = ['bottom', 'top'];\nconst b = block('action-tooltip');\nexport function ActionTooltip(props) {\n const { placement = DEFAULT_PLACEMENT, title, hotkey, children, className, contentClassName, description, disabled = false, style, qa, id, disablePortal } = props, delayProps = __rest(props, [\"placement\", \"title\", \"hotkey\", \"children\", \"className\", \"contentClassName\", \"description\", \"disabled\", \"style\", \"qa\", \"id\", \"disablePortal\"]);\n const [anchorElement, setAnchorElement] = React.useState(null);\n const tooltipVisible = useTooltipVisible(anchorElement, delayProps);\n const renderPopup = () => {\n return (React.createElement(Popup, { id: id, disablePortal: disablePortal, role: \"tooltip\", className: b(null, className), style: style, open: tooltipVisible && !disabled, placement: placement, anchorRef: { current: anchorElement }, disableEscapeKeyDown: true, disableOutsideClick: true, disableLayer: true, qa: qa },\n React.createElement(\"div\", { className: b('content', contentClassName) },\n React.createElement(\"div\", { className: b('heading') },\n React.createElement(\"div\", { className: b('title') }, title),\n hotkey && React.createElement(Hotkey, { view: \"dark\", value: hotkey, className: b('hotkey') })),\n description && React.createElement(\"div\", { className: b('description') }, description))));\n };\n const child = React.Children.only(children);\n const childRef = child.ref;\n const ref = useForkRef(setAnchorElement, childRef);\n return (React.createElement(React.Fragment, null,\n React.cloneElement(child, { ref }),\n anchorElement ? renderPopup() : null));\n}\n","import { addComponentKeysets } from '../../utils/addComponentKeysets';\nimport en from './en.json';\nimport ru from './ru.json';\nconst COMPONENT = 'ClipboardButton';\nexport default addComponentKeysets({ en, ru }, COMPONENT);\n","'use client';\nimport { __rest } from \"tslib\";\nimport React from 'react';\nimport { ActionTooltip } from '../ActionTooltip';\nimport { Button } from '../Button';\nimport { ClipboardIcon } from '../ClipboardIcon';\nimport { CopyToClipboard } from '../CopyToClipboard';\nimport i18n from './i18n';\nconst DEFAULT_TIMEOUT = 1000;\nconst ButtonSizeToIconSize = {\n xs: 12,\n s: 16,\n m: 16,\n l: 16,\n xl: 20,\n};\nconst ClipboardButtonComponent = (props) => {\n const { size = 'm', hasTooltip = true, tooltipInitialText = i18n('startCopy'), tooltipSuccessText = i18n('endCopy'), status, view = 'flat', extraProps = {} } = props, rest = __rest(props, [\"size\", \"hasTooltip\", \"tooltipInitialText\", \"tooltipSuccessText\", \"status\", \"view\", \"extraProps\"]);\n return (React.createElement(ActionTooltip, { disabled: !hasTooltip, title: status === 'success' ? tooltipSuccessText : tooltipInitialText },\n React.createElement(Button, Object.assign({ view: view, size: size, extraProps: Object.assign({ 'aria-label': tooltipInitialText }, extraProps) }, rest),\n React.createElement(Button.Icon, null,\n React.createElement(ClipboardIcon, { size: ButtonSizeToIconSize[size], status: status })))));\n};\nexport function ClipboardButton(props) {\n const { text, timeout = DEFAULT_TIMEOUT, onCopy, options } = props, buttonProps = __rest(props, [\"text\", \"timeout\", \"onCopy\", \"options\"]);\n return (React.createElement(CopyToClipboard, { text: text, timeout: timeout, onCopy: onCopy, options: options }, (status) => React.createElement(ClipboardButtonComponent, Object.assign({}, buttonProps, { status: status }))));\n}\n","import React from 'react';\nimport { KeyCode } from '../../../constants';\nimport { useBoolean } from '../useBoolean';\nexport const useTooltipVisible = (anchor, { openDelay = 250, closeDelay, preventTriggerOnFocus = false, }) => {\n const [tooltipVisible, showTooltip, hideTooltip] = useBoolean(false);\n const timeoutRef = React.useRef();\n const isFocusWithinRef = React.useRef(false);\n React.useEffect(() => {\n if (!anchor) {\n return undefined;\n }\n function handleMouseEnter() {\n clearTimeout(timeoutRef.current);\n timeoutRef.current = window.setTimeout(showTooltip, openDelay);\n }\n function handleMouseLeave() {\n clearTimeout(timeoutRef.current);\n timeoutRef.current = window.setTimeout(hideTooltip, closeDelay);\n }\n function handleFocusWithin(e) {\n if (!isFocusWithinRef.current && document.activeElement === e.target) {\n isFocusWithinRef.current = true;\n clearTimeout(timeoutRef.current);\n showTooltip();\n }\n }\n function handleBlurWithin(e) {\n if (isFocusWithinRef.current &&\n !e.currentTarget.contains(e.relatedTarget)) {\n isFocusWithinRef.current = false;\n clearTimeout(timeoutRef.current);\n hideTooltip();\n }\n }\n function handleKeyDown(e) {\n if (e.key === KeyCode.ESCAPE) {\n clearTimeout(timeoutRef.current);\n hideTooltip();\n }\n }\n anchor.addEventListener('mouseenter', handleMouseEnter);\n anchor.addEventListener('mouseleave', handleMouseLeave);\n anchor.addEventListener('keydown', handleKeyDown);\n if (!preventTriggerOnFocus) {\n anchor.addEventListener('focus', handleFocusWithin);\n anchor.addEventListener('blur', handleBlurWithin);\n }\n return () => {\n anchor.removeEventListener('mouseenter', handleMouseEnter);\n anchor.removeEventListener('mouseleave', handleMouseLeave);\n anchor.removeEventListener('focus', handleFocusWithin);\n anchor.removeEventListener('blur', handleBlurWithin);\n anchor.removeEventListener('keydown', handleKeyDown);\n };\n }, [anchor, showTooltip, hideTooltip, openDelay, closeDelay, preventTriggerOnFocus]);\n return tooltipVisible;\n};\n","import React from 'react';\nexport function useBoolean(initialState) {\n const [value, setValue] = React.useState(initialState);\n return [\n value,\n React.useCallback(() => setValue(true), []),\n React.useCallback(() => setValue(false), []),\n React.useCallback(() => setValue((val) => !val), []),\n ];\n}\n"],"names":["props","_jsx","_objectSpread","xmlns","fill","viewBox","children","fillRule","d","clipRule","block","cn","ExpandButton","_ref","className","expanded","inline","toggleExpanded","all","showText","qa","titleExpanded","titleCollapsed","_jsxs","Button","view","title","onClick","Icon","data","doubleShevronRightSvg","shevronRightSvg","size","toaster","Toaster","LoadDataHandler","_Component","_inherits","_super","_createSuper","_classCallCheck","apply","arguments","_createClass","key","value","_this$props","this","error","loaded","errorData","add","theme","name","autoHiding","content","message","hammer","format","NO_VALUE","actions","label","showErrorPopup","_this$props2","_this$props2$alwaysSh","alwaysShowError","Error","Component","SubjectCard","UIFactory","renderSubjectCard","TextInputWithDebounce","_props$debounce","debounce","_props$onUpdate","onUpdate","onBlur","onEnterKeyDown","onKeyDown","rest","_objectWithoutProperties","_excluded","_React$useState","React","_React$useState2","_slicedToArray","input","setInput","handleChangeExt","throttle_","handleChange","text","handleKeyDown","e","handleBlur","undefined","TextInput","updateAclFilters","type","ACL_CHANGE_FILTERS","toggleExpandAclSubject","subject","dispatch","getState","expandedSubjects","Set","getAclFilterExpandedSubjects","has","Object","assign","width","height","EditColumnGroupModal","visible","confirmText","handleClose","handleSubmit","initialData","_ref$disabledFields","disabledFields","_useState","useState","_useState2","setError","initialValues","useMemo","String","columns","enabled","Boolean","YTDFDialog","pristineSubmittable","modal","headerProps","footerProps","textApply","onClose","onAdd","form","_form$getState$values","values","err","fields","required","caption","extras","placeholder","disabled","includes_","tooltip","concat","_toConsumableArray","makeErrorFields","ColumnGroups","columnGroups","path","loadAclDataFn","cluster","_ref$allowEdit","allowEdit","columnsFilter","columnGroupNameFilter","userPermissionsAccessColumns","setModalProps","prevProps","_value","Promise","resolve","modalProps","header","render","_ref2","row","Power","_ref3","align","_ref4","_row$columns","renderText","map","column","join","_ref5","_Fragment","delete","item","id","getAclApi","deleteColumnGroup","then","awesome","edit","editColumnGroup","ErrorBoundary","createColumnGroup","WithStickyToolbar","padding","bottomMargin","toolbar","Toolbar","itemsToWrap","node","ColumnGroupsFilter","shrinkable","DataTableYT","noItemsText","settings","sortable","displayIndices","_ref6","options","Select","multiple","hasClear","filterable","items","maxVisibleValuesTextLength","DeletePermissionModal","_this","_len","length","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","inheritAcl","disableInheritanceResponsible","auditors","responsible","readApprovers","manageAclError","loadAclData","cancelUpdateAcl","updateAcl","hasWarning","setHasWarning","handleModalOpen","useCallback","handleUpdateAclClose","responsibleApproval","roleListValueToSubjectList","manageAclDialogFields","maxVisibleCount","inheritanceResponsible","inheritAcl_warning","ErrorBlock","comment","dialogFields","permissionsSettings","getAclPermissionsSettings","idmKindConditions","allowInheritAcl","allowBossApprovals","allowAuditors","allowReadApprovers","allowInheritResponsibles","manageAclFields","filter","CommonDialog","open","Header","Body","Loader","prepareRoleListValue","formExtras","initialValuesEqual","isEqual_","AclActions","_args","requestPermissions","_asyncToGenerator","_regeneratorRuntime","_callee","_args2","_context","prev","next","stop","_callee2","_args3","_context2","aclMode","requestPermissionsError","cancelRequestPermissions","updateAclError","IdmObjectType","UI_EFFECTIVE_ACL","Flex","gap","RequestPermissions","AclMode","COLUMN_GROUPS_PERMISSISONS","ManageAcl","MyPermissions","userPermissions","groups","i","push","slice","index","PermissionsGroup","direction","action","alignItems","color","xMarkSvg","checkSvg","Readable","ApproversFilters","useDispatch","subjectFilter","useSelector","getApproversSubjectFilter","Filter","approversSubject","autofocus","ObjectPermissionsFilters","getObjectSubjectFilter","selectedPermissons","getObjectPermissionsFilter","permissionList","getObjectPermissionsTypesList","objectSubject","map_","p","ReadableField","objectPermissions","SegmentControl","background","SegmentGroup","rowGap","SegmentValue","url","Value","isValidUrl","Link","target","href","_typeof","bool","ACL_MODE_OPTIONS","MAIN_PERMISSIONS","AclModeControl","RadioButton","aclCurrentTab","AclColumnsCell","_items$map","expanadable","VisibleValues","counter","v","unipika","decode","maxVisibleValues","maxTextLength","fillOpacity","InheritanceMessage","kind","PATH","makeNavigationLink","POOL","makeSchedulingUrl","pool","poolTree","ACCOUNT","makeAccountsUrl","urlFromData","routed","routedPreserveLocation","ACL","handleDeletePermissionClick","handleCloseDeleteModal","deletePermissionsFn","res","sent","abrupt","hasInherited","openDeleteModal","_this$props4","expand","_UIFactory$getAclApi$","requestPermissionsFlags","inheritedFrom","level","wrap","Popover","hidden","aclInheritedSvg","grow","renderSubjectLink","keys","flagInfo","renderIcon","_row$permissions","inheritance_mode","mode","_ref7","RoleActions","getComponentForAclRoleActions","role","onDelete","approve_type","_ref8","_ref9","unrecognized","isUnrecognized","depriving","isDepriving","requested","isRequested","approved","isApproved","missing","isMissing","_this2","_this$props5","hasApprovers","approversFiltered","tableColumns","getColumnsTemplates","rowClassName","rowClassNameByFlags","_this3","_this$props6","mainPermissions","columnsPermissions","useColumns","_ref10","hasDenyAction","hasExpandable","extraColumns","_this$props7","nodeType","isIdmAclAvailable","_this$props8","disableAclInheritance","userPermissionsRequestError","userPermissionsRequestFn","userPermissionsCancelRequestFn","deletePermissionsLastItemKey","deletePermissionsError","userPermissionsUpdateAcl","userPermissionsUpdateAclError","userPermissionsCancelUpdateAcl","hasColumns","Fragment","renderMeta","renderColumnGroups","renderApprovers","renderObjectPermissions","_this$props9","_UIFactory$getAclPerm","toSegmentItem","invert","idmLink","segments","compact_","_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","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","_defineProperty","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","_UIFactory$getAclApi","requestPermissionsFields","permissionFlags","forEach","k","currentCaption","permissionsToRequest","getAvailablePermissions","availablePermissions","setAvailablePermissions","onShow","t0","finish","firstItemDisabled","valueWithCheckedFirstChoice","availableFields","docsUrl","makeLink","docsUrls","readColumns","readColumnGroup","allowedTypes","duration","commentHeader","INHERITANCE_MODE_TYPES","hideClear","hideFilter","with","flagsIndex","reduce","acc","field","flags","help","initialValue","splice","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","entityName","pools","getPools","poolPath","computePathItems","ROOT_POOL_NAME","URLSearchParams","window","location","search","get","_state$global","global","login","_state$global$cluster","LOAD_DATA","REQUEST","getTree","pathToCheckPermissions","pathToCheckUserPermissions","getAcl","sysPath","checkUserPermissionsUI","getResponsible","SUCCESS","column_groups","_error$response","FAILURE","response","_getState$global$clus","DELETE_PERMISSION","deletePermissionsPath","deleteRole","isCancelled","CANCELLED","_error$response2","reject","_values$comment","_state$global$cluster2","REQUEST_PERMISSION","_step","daysAfter","date","Math","round","getTime","Date","now","dateToDaysAfterNow","roles","rolesGroupedBySubject","_iterator","_createForOfIteratorHelper","_loop","prepareAclSubject","commonPart","deprive_after_days","entries","applyToRequestedRole","flattenPermissions","flatten_","forEach_","convertFromUIPermissions","role_type","column_group_id","s","n","done","f","requestPermissionsPath","roles_grouped","_error$response3","_getState$global$clus2","UPDATE_ACL","disableInheritance","_error$response4","_ref14","makeComponentsNodesUrl","host","YT","Page","COMPONENTS","ComponentsTab","NODES","makeProxyUrl","address","RPC_PROXIES","NAVIGATION","account","defsByPlatform","pc","NormalizeMap","arrowup","arrowdown","arrowleft","arrowright","esc","return","mod","control","opt","option","cmd","command","Priority","shift","alt","ctrl","DisplayName","up","down","left","right","escape","plus","enter","tab","backspace","mac","split","val","separator","trim","GROUPS_SEPARATOR","renderKey","_a","b","Spaces","BetweenGroups","fromCharCode","BetweenKeys","Hotkey","ref","platform","style","opts","navigator","test","defs","raw","keyId","toLowerCase","getKeyId","priority","keyParser","sort","a","parseKeyGroups","parseHotkeys","hasGroups","groupIdx","keyIdx","DEFAULT_PLACEMENT","ActionTooltip","placement","hotkey","contentClassName","description","disablePortal","delayProps","anchorElement","setAnchorElement","tooltipVisible","useTooltipVisible","child","only","childRef","useForkRef","Popup","anchorRef","current","disableEscapeKeyDown","disableOutsideClick","disableLayer","addComponentKeysets","en","DEFAULT_TIMEOUT","ButtonSizeToIconSize","xs","m","l","xl","ClipboardButtonComponent","hasTooltip","tooltipInitialText","i18n","tooltipSuccessText","status","extraProps","ClipboardIcon","timeout","onCopy","CopyToClipboard","anchor","openDelay","closeDelay","preventTriggerOnFocus","showTooltip","hideTooltip","initialState","setValue","useBoolean","timeoutRef","isFocusWithinRef","addEventListener","handleMouseEnter","handleMouseLeave","handleFocusWithin","handleBlurWithin","removeEventListener","clearTimeout","setTimeout","document","activeElement","currentTarget","contains","relatedTarget","ESCAPE"],"sourceRoot":""}
|