@ytsaurus/ui 3.6.0 → 3.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/dist/public/build/assets-manifest.json +37 -37
  2. package/dist/public/build/css/{main.89a1698b.css → main.eac511a5.css} +2 -2
  3. package/dist/public/build/css/main.eac511a5.css.map +1 -0
  4. package/dist/public/build/js/{1394.45bb669a.chunk.js → 1394.9f9c9f9a.chunk.js} +2 -2
  5. package/dist/public/build/js/{1394.45bb669a.chunk.js.map → 1394.9f9c9f9a.chunk.js.map} +1 -1
  6. package/dist/public/build/js/4804.2d9406dc.chunk.js +3 -0
  7. package/dist/public/build/js/4804.2d9406dc.chunk.js.map +1 -0
  8. package/dist/public/build/js/{accounts-monitoring-prometheus.262cacd8.chunk.js → accounts-monitoring-prometheus.38e8206a.chunk.js} +2 -2
  9. package/dist/public/build/js/accounts-monitoring-prometheus.38e8206a.chunk.js.map +1 -0
  10. package/dist/public/build/js/acl.00a69fe0.chunk.js +2 -0
  11. package/dist/public/build/js/acl.00a69fe0.chunk.js.map +1 -0
  12. package/dist/public/build/js/{bundle-monitoring-prometheus.d49a9a1a.chunk.js → bundle-monitoring-prometheus.dc8084bb.chunk.js} +2 -2
  13. package/dist/public/build/js/bundle-monitoring-prometheus.dc8084bb.chunk.js.map +1 -0
  14. package/dist/public/build/js/components.c4fc1d81.chunk.js +2 -0
  15. package/dist/public/build/js/components.c4fc1d81.chunk.js.map +1 -0
  16. package/dist/public/build/js/main.a04f2740.js +3 -0
  17. package/dist/public/build/js/{main.3e360b19.js.map → main.a04f2740.js.map} +1 -1
  18. package/dist/public/build/js/navigation.cd66d63f.chunk.js +2 -0
  19. package/dist/public/build/js/{navigation.8d91701a.chunk.js.map → navigation.cd66d63f.chunk.js.map} +1 -1
  20. package/dist/public/build/js/{prometheus-dashboard.3c9f3a99.chunk.js → prometheus-dashboard.d3814a09.chunk.js} +2 -2
  21. package/dist/public/build/js/prometheus-dashboard.d3814a09.chunk.js.map +1 -0
  22. package/dist/public/build/js/query-navigation.f7f5a1b5.chunk.js +2 -0
  23. package/dist/public/build/js/{query-navigation.f52623cc.chunk.js.map → query-navigation.f7f5a1b5.chunk.js.map} +1 -1
  24. package/dist/public/build/js/{runtime.2344fc6d.js → runtime.3af0a91e.js} +2 -2
  25. package/dist/public/build/js/{runtime.2344fc6d.js.map → runtime.3af0a91e.js.map} +1 -1
  26. package/dist/public/build/js/scheduling.4f518a8a.chunk.js +2 -0
  27. package/dist/public/build/js/scheduling.4f518a8a.chunk.js.map +1 -0
  28. package/dist/public/build/js/{system-monitoring-prometheus.b6ce8ed8.chunk.js → system-monitoring-prometheus.4004494c.chunk.js} +2 -2
  29. package/dist/public/build/js/system-monitoring-prometheus.4004494c.chunk.js.map +1 -0
  30. package/dist/public/build/js/{system.08fe4f55.chunk.js → system.2e84d486.chunk.js} +2 -2
  31. package/dist/public/build/js/{system.08fe4f55.chunk.js.map → system.2e84d486.chunk.js.map} +1 -1
  32. package/dist/public/build/js/yt-monaco-editor.4ad443b3.chunk.js +2 -0
  33. package/dist/public/build/js/{yt-monaco-editor.ba9a69f6.chunk.js.map → yt-monaco-editor.4ad443b3.chunk.js.map} +1 -1
  34. package/dist/public/build/manifest.json +32 -32
  35. package/package.json +2 -2
  36. package/dist/public/build/css/main.89a1698b.css.map +0 -1
  37. package/dist/public/build/js/4804.05d44971.chunk.js +0 -3
  38. package/dist/public/build/js/4804.05d44971.chunk.js.map +0 -1
  39. package/dist/public/build/js/accounts-monitoring-prometheus.262cacd8.chunk.js.map +0 -1
  40. package/dist/public/build/js/acl.91a762f3.chunk.js +0 -2
  41. package/dist/public/build/js/acl.91a762f3.chunk.js.map +0 -1
  42. package/dist/public/build/js/bundle-monitoring-prometheus.d49a9a1a.chunk.js.map +0 -1
  43. package/dist/public/build/js/components.aa32cd54.chunk.js +0 -2
  44. package/dist/public/build/js/components.aa32cd54.chunk.js.map +0 -1
  45. package/dist/public/build/js/main.3e360b19.js +0 -3
  46. package/dist/public/build/js/navigation.8d91701a.chunk.js +0 -2
  47. package/dist/public/build/js/prometheus-dashboard.3c9f3a99.chunk.js.map +0 -1
  48. package/dist/public/build/js/query-navigation.f52623cc.chunk.js +0 -2
  49. package/dist/public/build/js/scheduling.6f68a262.chunk.js +0 -2
  50. package/dist/public/build/js/scheduling.6f68a262.chunk.js.map +0 -1
  51. package/dist/public/build/js/system-monitoring-prometheus.b6ce8ed8.chunk.js.map +0 -1
  52. package/dist/public/build/js/yt-monaco-editor.ba9a69f6.chunk.js +0 -2
  53. /package/dist/public/build/js/{4804.05d44971.chunk.js.LICENSE.txt → 4804.2d9406dc.chunk.js.LICENSE.txt} +0 -0
  54. /package/dist/public/build/js/{main.3e360b19.js.LICENSE.txt → main.a04f2740.js.LICENSE.txt} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"js/acl.91a762f3.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/containers/ACL/RequestPermissions/PermissionsControl/PermissionsControl.tsx","webpack://@ytsaurus/ui/./src/ui/store/selectors/acl-filters.ts","webpack://@ytsaurus/ui/./src/ui/components/VisibleValues/VisibleValues.tsx","webpack://@ytsaurus/ui/./src/ui/rum/rum-measure-types.ts","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/icons/svgs/circle-check.svg","webpack://@ytsaurus/ui/./src/ui/components/Dialog/DialogError.tsx","webpack://@ytsaurus/ui/./src/ui/components/Dialog/index.tsx","webpack://@ytsaurus/ui/./src/ui/hocs/withDelayedMount.tsx","webpack://@ytsaurus/ui/./src/ui/containers/ACL/hooks/use-available-permissions.ts","webpack://@ytsaurus/ui/./src/ui/utils/app-url/index.ts","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/icons/svgs/chevron-right.svg","webpack://@ytsaurus/ui/./src/ui/store/actions/acl.ts","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/icons/esm/ChevronDown.js","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/ManageInheritance/ManageInheritance.tsx","webpack://@ytsaurus/ui/./src/ui/containers/ACL/AclActions/AclActions.tsx","webpack://@ytsaurus/ui/./src/ui/containers/ACL/MyPermissinos/MyPermissions.tsx","webpack://@ytsaurus/ui/./src/ui/containers/ACL/ApproversFilters/ApproversFilters.tsx","webpack://@ytsaurus/ui/./src/ui/containers/ACL/ObjectPermissionsFilters/ObjectPermissionsFilters.tsx","webpack://@ytsaurus/ui/./src/ui/components/SegmentControl/SegmentControl.tsx","webpack://@ytsaurus/ui/./src/ui/containers/ACL/AclModeControl.tsx","webpack://@ytsaurus/ui/./src/ui/containers/ACL/AclColumnsCell.tsx","webpack://@ytsaurus/ui/./src/ui/assets/img/svg/acl-inherited.svg","webpack://@ytsaurus/ui/./src/ui/containers/ACL/InheritanceMessage/InheritanceMessage.tsx","webpack://@ytsaurus/ui/./src/ui/containers/ACL/ACL.tsx","webpack://@ytsaurus/ui/./src/ui/containers/ACL/RoleActions.tsx","webpack://@ytsaurus/ui/./src/ui/containers/ACL/ACL-connect-helpers.tsx","webpack://@ytsaurus/ui/./src/ui/containers/ACL/RequestPermissions/RequestPermissions.tsx","webpack://@ytsaurus/ui/./src/ui/store/selectors/navigation/index.js","webpack://@ytsaurus/ui/./src/ui/components/LoadDataHandler/LoadDataHandler.tsx","webpack://@ytsaurus/ui/./src/ui/components/Dialog/controls/RoleListControl/i18n/index.ts","webpack://@ytsaurus/ui/./src/ui/components/Dialog/controls/RoleListControl/utils.ts","webpack://@ytsaurus/ui/./src/ui/icons/Chevron.tsx","webpack://@ytsaurus/ui/./src/ui/components/Select/Select.tsx","webpack://@ytsaurus/ui/./src/ui/utils/app-url/navigation.ts","webpack://@ytsaurus/ui/./src/ui/utils/app-url/utils.ts","webpack://@ytsaurus/ui/./src/ui/store/selectors/acl.ts","webpack://@ytsaurus/ui/./src/ui/hocs/withVisible.tsx","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/icons/esm/Check.js","webpack://@ytsaurus/ui/./src/ui/components/SubjectLink/SubjectLink.tsx","webpack://@ytsaurus/ui/./src/ui/components/templates/utils.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 size?: ButtonProps['size'];\n qa?: ButtonProps['qa'];\n};\n\nexport const ExpandButton: FC<Props> = ({\n className,\n expanded,\n inline,\n toggleExpanded,\n all,\n showText,\n size,\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 size={size}\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';\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 {RootState} from '../reducers';\n\nexport function getExecuteBatchState(state: RootState) {\n return state.executeBatch;\n}\n\nexport const getApproversSubjectFilter = (state: RootState) => state.aclFilters.approversSubject;\nexport const getObjectSubjectFilter = (state: RootState) => state.aclFilters.objectSubject;\nexport const getObjectPermissionsFilter = (state: RootState) => state.aclFilters.objectPermissions;\nexport const getAclFilterColumns = (state: RootState) => state.aclFilters.columnsFilter;\nexport const getAclFilterColumnGroupName = (state: RootState) =>\n state.aclFilters.columnGroupNameFilter;\nexport const getAclFilterExpandedSubjects = (state: RootState) => state.aclFilters.expandedSubjects;\nexport const getAclCurrentTab = (state: RootState) => state.aclFilters.aclCurrentTab;\n","import React from 'react';\nimport cn from 'bem-cn-lite';\nimport min_ from 'lodash/min';\nimport max_ from 'lodash/max';\n\nimport './VisibleValues.scss';\n\nconst block = cn('yt-visible-values');\n\nexport type VisbileValuesProps = {\n className?: string;\n value: Array<string>;\n maxVisibleValues?: number;\n maxTextLength?: number;\n renderItem?: (item: VisbileValuesProps['value'][number], index: number) => React.ReactNode;\n\n width?: 'max';\n counter?: 'all-values' | 'missing-values' | 'none';\n};\n\nexport function VisibleValues({\n className,\n value,\n maxVisibleValues,\n maxTextLength,\n renderItem = (value) => value,\n counter,\n}: VisbileValuesProps) {\n const visibleItems = React.useMemo(() => {\n const maxCounts = [maxVisibleValues];\n if (maxTextLength !== undefined) {\n let i = 1;\n let sum = value[0].length;\n for (; i < value?.length; ++i) {\n const newSum = sum + value[i].length;\n if (newSum < maxTextLength) {\n sum = newSum;\n } else {\n break;\n }\n }\n maxCounts.push(i);\n }\n const visibleCount = min_(maxCounts);\n return value.slice(0, max_([1, visibleCount]));\n }, [value, maxTextLength, maxVisibleValues]);\n\n const hasMissing = value.length > visibleItems.length;\n const hideSpacer = counter === 'missing-values';\n return (\n <div className={block(null, className)}>\n <span className={block('values')}>\n {visibleItems.map((option, index) => {\n return (\n <span key={index} className={block('values-item')}>\n {index !== 0 && <>,&nbsp;</>}\n {renderItem(option, index)}\n </span>\n );\n })}\n </span>\n {!hideSpacer && (\n <span className={block('spacer', {missing: hasMissing})}>\n {hasMissing && ', ...'}\n </span>\n )}\n <SelectedCount count={value.length} visibleCount={visibleItems.length} mode={counter} />\n </div>\n );\n}\n\nfunction SelectedCount({\n count = 0,\n visibleCount = 0,\n mode,\n}: {\n count?: number;\n visibleCount?: number;\n mode: VisbileValuesProps['counter'];\n}) {\n if (mode === 'none') {\n return null;\n }\n\n if (visibleCount === count && mode === 'missing-values') {\n return null;\n }\n\n const value = mode === 'missing-values' ? count - visibleCount : count;\n\n return value! >= 2 ? (\n <div className={block('counter')}>\n <span className={block('counter-value')}>\n {mode === 'missing-values' ? '+' : null}\n {value}\n </span>\n </div>\n ) : null;\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","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';\n\nimport type {FORM_ERROR as FormErrorType} from './index';\n\nimport {FIX_MY_TYPE, YTError} from '../../types';\nimport {YTErrorBlock} from '../../components/Block/Block';\n\nimport compact_ from 'lodash/compact';\nimport map_ from 'lodash/map';\n\nconst block = cn('yt-dialog-error');\n\nexport function DialogError(props: FIX_MY_TYPE) {\n return <YTErrorBlock {...props} className={block()} />;\n}\n\nexport function makeErrorFields(errors: Array<YTError | Error | undefined>) {\n return compact_(\n map_(errors, (error, index) => {\n return error\n ? {\n name: `error_${index}`,\n type: 'block' as const,\n extras: {\n children: <DialogError error={error} />,\n },\n }\n : undefined;\n }),\n );\n}\n\nconst FORM_ERROR: typeof FormErrorType = 'FINAL_FORM/form-error';\n\nexport function makeFormSubmitError(error: YTError) {\n return {\n validationErrors: {\n [FORM_ERROR]: <DialogError error={error} />,\n },\n };\n}\n","import React from 'react';\nimport withLazyLoading from '../../hocs/withLazyLoading';\nimport {withDelayedMount} from '../../hocs/withDelayedMount';\n\nimport type {\n registerDialogControl as RegisterDialogControlFn,\n registerDialogTabControl as RegisterDialogTabControlFn,\n YTDialogType,\n} from './Dialog';\n\nexport type * from './Dialog';\nexport * from './DialogError';\nexport * from './controls/RoleListControl/utils';\n\nexport function importYTDFDialog() {\n return import(/* webpackChunkName: \"yt-df-dialog\" */ './Dialog');\n}\n\nexport const YTDFDialog = withDelayedMount(\n withLazyLoading(\n React.lazy(async () => {\n return {default: (await importYTDFDialog()).YTDialog};\n }),\n '',\n ),\n) as YTDialogType;\n\nexport function useControlRegistration(\n fn: (params: {\n registerDialogControl: typeof RegisterDialogControlFn;\n registerDialogTabControl: typeof RegisterDialogTabControlFn;\n }) => void,\n) {\n importYTDFDialog().then(({registerDialogControl, registerDialogTabControl}) => {\n fn({registerDialogControl, registerDialogTabControl});\n });\n}\n\nexport type {RoleListControlProps} from './controls/RoleListControl/RoleListControl';\nexport const RoleListControl = withLazyLoading(\n React.lazy(async () => {\n return {default: (await importYTDFDialog()).RoleListControl};\n }),\n '',\n);\n\nexport const EditableList = withLazyLoading(\n React.lazy(async () => {\n return {default: (await importYTDFDialog()).EditableList};\n }),\n '',\n);\n\nexport const TabFieldVertical = withLazyLoading(\n React.lazy(async () => {\n return {default: (await importYTDFDialog()).TabFieldVertical};\n }),\n '',\n);\n","import React from 'react';\n\n/**\n * The hoc allows to delay mounting until `props.visible == true`.\n * The hoc might be useful to wrap components wrapped by React.lazy\n * @param Component\n * @returns\n */\nexport function withDelayedMount<P extends {visible?: boolean}>(Component: React.ComponentType<P>) {\n return function MountOnFirstVisible(props: P) {\n const [mounted, setMounted] = React.useState(false);\n React.useEffect(() => {\n if (!mounted && props.visible) {\n setMounted(true);\n }\n }, [props.visible, mounted]);\n return !mounted ? null : <Component {...props} />;\n };\n}\n","import React from 'react';\n\nimport {IdmKindType} from '../../../utils/acl/acl-types';\nimport UIFactory from '../../../UIFactory';\nimport {YTError} from '../../../../@types/types';\n\nexport function useAvailablePermissions({idmKind, path}: {idmKind: IdmKindType; path: string}) {\n const {permissionsToRequest, permissionTypes, getAvailablePermissions} =\n UIFactory.getAclPermissionsSettings()[idmKind];\n\n const requestable = Boolean(getAvailablePermissions);\n\n const [result, setAvailablePermissions] = React.useState<{\n permissionsToRequest: typeof permissionsToRequest;\n permissionsToCheck: typeof permissionTypes;\n error?: YTError;\n }>({\n permissionsToRequest: requestable ? [] : permissionsToRequest,\n permissionsToCheck: requestable ? [] : permissionTypes,\n });\n\n React.useEffect(() => {\n getAvailablePermissions?.({path})\n .then((value) => {\n setAvailablePermissions((prevState) => {\n return {...prevState, ...value};\n });\n })\n .catch((error: any) => {\n setAvailablePermissions((prevState) => {\n return {\n ...prevState,\n permissionsToRequest,\n permissionTypes,\n error,\n };\n });\n });\n }, [path, getAvailablePermissions]);\n\n return result;\n}\n","import {Page} from '../../../shared/constants/settings';\nimport {YT} from '../../config/yt-config';\nimport {Tab as ComponentsTab} from '../../constants/components/main';\nimport {FlowTab, FlowTabType} from '../../store/reducers/flow/filters';\n\nexport * from './navigation';\n\nexport function makeComponentsNodesUrl({host, cluster}: {host?: string; cluster?: string} = {}) {\n return host\n ? `/${cluster || YT.cluster}/${Page.COMPONENTS}/${ComponentsTab.NODES}/${host}`\n : `/${cluster || YT.cluster}/${Page.COMPONENTS}/${ComponentsTab.NODES}`;\n}\n\nexport function makeProxyUrl(cluster: string, address: string) {\n return `/${cluster}/${Page.COMPONENTS}/${ComponentsTab.RPC_PROXIES}?host=${address}`;\n}\n\nexport function makeSchedulingUrl({\n pool,\n poolTree,\n cluster,\n tab,\n}: {\n pool: string;\n poolTree: string;\n cluster?: string;\n tab?: 'attributes';\n}) {\n const path = [cluster || YT.cluster, Page.SCHEDULING, tab].filter(Boolean).join('/');\n return `/${path}?pool=${pool}&poolTree=${poolTree}`;\n}\n\nexport function makeAccountsUrl(account: string, cluster?: string) {\n return `/${cluster || YT.cluster}/${Page.ACCOUNTS}?account=${account}`;\n}\n\nexport function makeBundleUrl({bundle, cluster}: {bundle: string; cluster?: string}) {\n return `/${cluster || YT.cluster}/${Page.TABLET_CELL_BUNDLES}/instances?activeBundle=${bundle}`;\n}\n\nexport function makeFlowLink({\n path,\n cluster,\n tab = FlowTab.GRAPH,\n computation,\n partition,\n partitionIdFilter,\n worker,\n}: {\n path: string;\n cluster?: string;\n tab?: FlowTabType;\n computation?: string;\n partition?: string;\n partitionIdFilter?: string;\n worker?: string;\n}) {\n let pathname = `/${cluster || YT.cluster}/${Page.FLOWS}/${tab}`;\n\n const params = new URLSearchParams({path});\n\n if (tab === FlowTab.COMPUTATIONS && computation) {\n pathname += `/${encodeURIComponent(computation)}`;\n if (partition) {\n pathname += `/partition/${encodeURIComponent(partition)}`;\n } else {\n pathname += '/details';\n if (partitionIdFilter) {\n params.append('partition', partitionIdFilter);\n }\n }\n }\n\n if (tab === FlowTab.WORKERS) {\n if (worker) {\n pathname += `/${encodeURIComponent(worker)}/details`;\n }\n }\n\n return `${pathname}?${params}`;\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;","import {ThunkAction} from 'redux-thunk';\n\nimport flatten_ from 'lodash/flatten';\nimport forEach_ from 'lodash/forEach';\nimport map_ from 'lodash/map';\n\nimport {\n DELETE_PERMISSION,\n IdmObjectType,\n LOAD_DATA,\n REQUEST_PERMISSION,\n UPDATE_ACL,\n} from '../../constants/acl';\nimport {getTree} from '../../store/selectors/scheduling/scheduling';\nimport {\n YTPermissionTypeUI,\n checkUserPermissionsUI,\n getAcl,\n getResponsible,\n} from '../../utils/acl/acl-api';\nimport {convertFromUIPermissions, prepareAclSubject} from '../../utils/acl';\nimport UIFactory from '../../UIFactory';\nimport {AclAction, HasIdmKind} from '../../store/reducers/acl/acl';\nimport {isCancelled} from '../../utils/cancel-helper';\nimport {RootState} from '../../store/reducers';\nimport {IdmKindType, PreparedAclSubject, ResponsibleType, Role} from '../../utils/acl/acl-types';\nimport {CheckPermissionResult} from '../../../shared/utils/check-permission';\nimport {YTApiId, ytApiV3Id} from '../../rum/rum-wrap-api';\n\ntype ThunkAclAction<T = unknown> = ThunkAction<T, RootState, unknown, AclAction>;\n\nconst prepareUserPermissions = (\n userPermissions: Array<CheckPermissionResult>,\n idmKind: IdmKindType,\n) => {\n const {permissionTypes} = UIFactory.getAclPermissionsSettings()[idmKind];\n return map_(userPermissions, (item, index) => {\n return {\n type: permissionTypes[index],\n action: item.action,\n };\n });\n};\n\ntype HasNormPoolTree = {normalizedPoolTree?: string};\n\nasync function getPathToCheckPermissions(\n idmKind: IdmKindType,\n entityName: string,\n poolTree?: string,\n) {\n switch (idmKind) {\n case IdmObjectType.ACCESS_CONTROL_OBJECT:\n case IdmObjectType.UI_EFFECTIVE_ACL:\n case IdmObjectType.PATH:\n return entityName;\n case IdmObjectType.ACCOUNT:\n return `//sys/accounts/${entityName}`;\n case IdmObjectType.POOL: {\n const fullPath: string = await ytApiV3Id.get(YTApiId.schedulingPoolFullPath, {\n path: `//sys/scheduler/orchid/scheduler/pool_trees/${poolTree}/pools/${entityName}/full_path`,\n });\n return `//sys/pool_trees/${poolTree}${fullPath}`;\n }\n case IdmObjectType.TABLET_CELL_BUNDLE: {\n return `//sys/tablet_cell_bundles/${entityName}`;\n }\n }\n throw new Error('Unexpected value of parameter idmKind');\n}\n\nexport function loadAclData(\n {path, idmKind}: {path: string} & HasIdmKind,\n {normalizedPoolTree}: HasNormPoolTree = {},\n options: {userPermissionsPath?: string} = {userPermissionsPath: undefined},\n): ThunkAclAction {\n return async (dispatch, getState) => {\n const state = getState();\n const {login, cluster = ''} = state.global;\n\n dispatch({type: LOAD_DATA.REQUEST, idmKind});\n\n const poolTree =\n idmKind === IdmObjectType.POOL ? normalizedPoolTree || getTree(state) : undefined;\n const {permissionTypes} = UIFactory.getAclPermissionsSettings()[idmKind];\n\n const {userPermissionsPath} = options;\n\n try {\n const pathToCheckPermissions = await getPathToCheckPermissions(idmKind, path, poolTree);\n const pathToCheckUserPermissions = userPermissionsPath\n ? await getPathToCheckPermissions(idmKind, userPermissionsPath, poolTree)\n : pathToCheckPermissions;\n\n return await Promise.all([\n getAcl({\n cluster,\n path,\n kind: idmKind,\n poolTree,\n sysPath: pathToCheckPermissions,\n }),\n checkUserPermissionsUI(pathToCheckUserPermissions, login, permissionTypes),\n getResponsible({\n cluster,\n path,\n kind: idmKind,\n poolTree,\n sysPath: pathToCheckPermissions,\n }),\n ]).then(([acl, userPermissions, responsible]) => {\n dispatch({\n type: LOAD_DATA.SUCCESS,\n data: {\n path,\n version: responsible.version,\n auditors: responsible.auditors,\n objectPermissions: acl.permissions,\n columnGroups: acl.column_groups,\n inheritAcl: acl.inheritAcl,\n responsible: responsible.responsible,\n userPermissions: prepareUserPermissions(userPermissions, idmKind),\n readApprovers: responsible.readApprovers,\n disableAclInheritance: responsible.disableAclInheritance,\n bossApproval: responsible.bossApproval,\n disableInheritanceResponsible: responsible.disableInheritanceResponsible,\n },\n idmKind,\n });\n });\n } catch (error: any) {\n dispatch({\n type: LOAD_DATA.FAILURE,\n data: {\n error,\n },\n idmKind,\n });\n }\n };\n}\n\nexport function deletePermissions(\n {\n roleKey,\n idmKind,\n path,\n itemToDelete,\n }: HasIdmKind & {path: string; roleKey: string; itemToDelete: PreparedAclSubject},\n {normalizedPoolTree}: HasNormPoolTree = {},\n): ThunkAclAction<Promise<void>> {\n return async (dispatch, getState) => {\n const {cluster = ''} = getState().global;\n const state = getState();\n\n dispatch({\n type: DELETE_PERMISSION.REQUEST,\n data: roleKey,\n idmKind,\n });\n\n const poolTree =\n idmKind === IdmObjectType.POOL ? normalizedPoolTree || getTree(state) : undefined;\n\n try {\n const deletePermissionsPath = await getPathToCheckPermissions(idmKind, path, poolTree);\n\n return await UIFactory.getAclApi()\n .deleteRole({\n idmKind,\n cluster,\n roleKey,\n path,\n sysPath: deletePermissionsPath,\n itemToDelete,\n })\n .then(() => {\n dispatch({\n type: DELETE_PERMISSION.SUCCESS,\n data: roleKey,\n idmKind,\n });\n });\n } catch (error: any) {\n if (isCancelled(error)) {\n dispatch({type: DELETE_PERMISSION.CANCELLED, idmKind});\n return undefined;\n } else {\n dispatch({\n type: DELETE_PERMISSION.FAILURE,\n data: error,\n idmKind,\n });\n return Promise.reject(error);\n }\n }\n };\n}\n\nfunction dateToDaysAfterNow(date?: Date) {\n if (!date) {\n return undefined;\n }\n\n return Math.round((date.getTime() - Date.now()) / 3600 / 24 / 1000);\n}\n\nexport type PermissionToRequest = {\n path: string;\n cluster: string;\n permissions: {[x: string]: Array<YTPermissionTypeUI>} | null;\n subjects: Array<ResponsibleType>;\n inheritance_mode?: string;\n duration?: Date;\n comment?: string;\n permissionFlags?: Record<string, boolean>;\n readColumnGroup?: string;\n readColumns?: Array<string>;\n};\n\nexport function requestPermissions(\n {values, idmKind}: {values: PermissionToRequest} & HasIdmKind,\n {normalizedPoolTree}: HasNormPoolTree = {},\n): ThunkAclAction {\n return async (dispatch, getState) => {\n const state = getState();\n const {\n global: {cluster = ''},\n } = state;\n\n dispatch({\n type: REQUEST_PERMISSION.REQUEST,\n idmKind,\n });\n\n const {requestPermissionsFlags = {}} = UIFactory.getAclApi();\n\n const daysAfter = dateToDaysAfterNow(values.duration);\n const roles: Array<Role> = [];\n const rolesGroupedBySubject = [];\n const {inheritance_mode, permissionFlags, readColumnGroup, readColumns} = values;\n for (const item of values.subjects) {\n const subject = prepareAclSubject(item);\n const commonPart = {\n subject,\n deprive_after_days: daysAfter,\n ...(inheritance_mode ? {inheritance_mode} : {}),\n };\n Object.entries(requestPermissionsFlags).forEach(([key, flagInfo]) => {\n flagInfo?.applyToRequestedRole(commonPart, permissionFlags?.[key]);\n });\n const flattenPermissions = flatten_(map_(values.permissions));\n if (flattenPermissions.length) {\n rolesGroupedBySubject.push({\n permissions: flattenPermissions,\n ...commonPart,\n });\n }\n if (readColumns?.length) {\n rolesGroupedBySubject.push({\n ...rolesGroupedBySubject[rolesGroupedBySubject.length - 1],\n ...commonPart,\n columns: readColumns,\n permissions: ['read' as const],\n });\n }\n forEach_(values.permissions, (permissions) => {\n roles.push({\n ...convertFromUIPermissions({permissions}),\n ...commonPart,\n });\n });\n if (readColumnGroup) {\n roles.push({\n role_type: 'column_read',\n column_group_id: readColumnGroup,\n ...commonPart,\n });\n }\n }\n\n const poolTree =\n idmKind === IdmObjectType.POOL ? normalizedPoolTree || getTree(state) : undefined;\n\n const requestPermissionsPath = await getPathToCheckPermissions(\n idmKind,\n values.path,\n poolTree,\n );\n\n //cluster, path, roles, comment, columns\n return UIFactory.getAclApi()\n .requestPermissions({\n cluster,\n path: values.path,\n sysPath: requestPermissionsPath,\n roles,\n roles_grouped: rolesGroupedBySubject.map(convertFromUIPermissions),\n comment: values.comment ?? '',\n kind: idmKind,\n poolTree,\n })\n .then(() => {\n dispatch({\n type: REQUEST_PERMISSION.SUCCESS,\n idmKind,\n });\n })\n .catch((error: any) => {\n if (isCancelled(error)) {\n dispatch({type: REQUEST_PERMISSION.CANCELLED, idmKind});\n return undefined;\n } else {\n dispatch({\n type: REQUEST_PERMISSION.FAILURE,\n data: error,\n idmKind,\n });\n return Promise.reject(error);\n }\n });\n };\n}\n\nexport function cancelRequestPermissions({idmKind}: HasIdmKind) {\n return {type: REQUEST_PERMISSION.CANCELLED, idmKind};\n}\n\nexport interface UpdateAclValues {\n responsible: Array<ResponsibleType>;\n auditors: Array<ResponsibleType>;\n readApprovers: Array<ResponsibleType>;\n disableInheritance: boolean;\n bossApproval: boolean;\n inheritAcl: boolean;\n comment: string;\n}\n\nexport function updateAcl(\n {\n path,\n values,\n version,\n idmKind,\n }: {\n path: string;\n values: Partial<UpdateAclValues>;\n version?: string;\n } & HasIdmKind,\n {normalizedPoolTree}: HasNormPoolTree = {},\n): ThunkAclAction {\n return (dispatch, getState) => {\n const state = getState();\n const {\n global: {cluster = ''},\n } = getState();\n\n dispatch({\n type: UPDATE_ACL.REQUEST,\n idmKind,\n });\n\n const poolTree =\n idmKind === IdmObjectType.POOL ? normalizedPoolTree || getTree(state) : undefined;\n return UIFactory.getAclApi()\n .updateAcl(cluster, path, {\n ...values,\n version,\n idmKind,\n poolTree,\n })\n .then(() => {\n dispatch({\n type: UPDATE_ACL.SUCCESS,\n idmKind,\n });\n })\n .catch((error) => {\n if (isCancelled(error)) {\n return dispatch({type: UPDATE_ACL.CANCELLED, idmKind});\n } else {\n const data = error?.response?.data || error?.response || error;\n dispatch({\n type: UPDATE_ACL.FAILURE,\n data,\n idmKind,\n });\n return Promise.reject(error);\n }\n });\n };\n}\n\nexport function cancelUpdateAcl({idmKind}: HasIdmKind): AclAction {\n return {type: UPDATE_ACL.CANCELLED, idmKind};\n}\n","import * as React from 'react';\nconst ChevronDown = (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: \"M2.97 5.47a.75.75 0 0 1 1.06 0L8 9.44l3.97-3.97a.75.75 0 1 1 1.06 1.06l-4.5 4.5a.75.75 0 0 1-1.06 0l-4.5-4.5a.75.75 0 0 1 0-1.06\", clipRule: \"evenodd\" })));\nexport default ChevronDown;\n","import React from 'react';\nimport debounce_ from 'lodash/debounce';\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 debounce_(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 React.useEffect(() => {\n return () => {\n handleChangeExt.cancel();\n };\n }, [handleChangeExt]);\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 0zM4.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 0\", clipRule: \"evenodd\" })));\nexport default Power;\n","import React, {useMemo, useState} from 'react';\nimport {YTDFDialog, makeErrorFields} from '../../../components/Dialog';\nimport {AclColumnGroup} from '../../../utils/acl/acl-types';\nimport includes_ from 'lodash/includes';\n\nexport interface Props {\n title: string;\n confirmText: string;\n handleClose: () => void;\n handleSubmit: (value: Partial<AclColumnGroup>) => Promise<void>;\n initialData?: Partial<AclColumnGroup>;\n disabledFields?: Array<keyof FormValues>;\n visible: boolean;\n}\n\ninterface FormValues {\n name: string;\n columns: Array<string>;\n enabled: boolean;\n}\n\nexport default function EditColumnGroupModal({\n visible,\n title,\n confirmText,\n handleClose,\n handleSubmit,\n initialData,\n disabledFields = [],\n}: Props) {\n const [error, setError] = useState(undefined);\n\n const initialValues = useMemo(() => {\n return {\n name: String(initialData?.name),\n columns: initialData?.columns,\n enabled: Boolean(initialData?.enabled),\n };\n }, [initialData]);\n\n return (\n <YTDFDialog<FormValues>\n pristineSubmittable\n visible={visible}\n modal={true}\n headerProps={{title}}\n footerProps={{textApply: confirmText}}\n onClose={() => {\n setError(undefined);\n handleClose();\n }}\n onAdd={(form) => {\n const {name, columns, enabled} = form.getState().values;\n const submitResult: Partial<AclColumnGroup> = {\n name: name,\n columns,\n enabled: enabled,\n };\n return handleSubmit(submitResult).catch((err) => {\n setError(err);\n throw err;\n });\n }}\n initialValues={initialValues}\n fields={[\n {\n name: 'name',\n type: 'text',\n required: true,\n caption: 'Name',\n extras: {\n placeholder: 'column group name',\n disabled: includes_(disabledFields, 'name'),\n },\n },\n {\n name: 'columns',\n type: 'acl-columns',\n required: true,\n caption: 'Columns',\n tooltip: 'One column name per line',\n extras: {\n disabled: includes_(disabledFields, 'columns'),\n },\n },\n {\n name: 'enabled',\n type: 'tumbler',\n caption: 'Enabled',\n extras: {\n disabled: includes_(disabledFields, 'enabled'),\n },\n },\n ...makeErrorFields([error]),\n ]}\n />\n );\n}\n","import React, {useState} from 'react';\n\nimport cn from 'bem-cn-lite';\n\nimport {Power} from '@gravity-ui/icons';\n\nimport ErrorBoundary from '../../../components/ErrorBoundary/ErrorBoundary';\n\nimport DataTableYT from '../../../components/DataTableYT/DataTableYT';\nimport type {Column} from '@gravity-ui/react-data-table';\nimport Icon from '../../../components/Icon/Icon';\nimport Button from '../../../components/Button/Button';\nimport {renderText} from '../../../components/templates/utils';\nimport {Toolbar} from '../../../components/WithStickyToolbar/Toolbar/Toolbar';\nimport Select from '../../../components/Select/Select';\nimport WithStickyToolbar from '../../../components/WithStickyToolbar/WithStickyToolbar';\n\nimport EditColumnGroupModal, {Props as ModalProps} from './EditColumnGroupModal';\nimport {AclColumnGroup} from '../../../utils/acl/acl-types';\nimport UIFactory from '../../../UIFactory';\n\nimport './ColumnGroups.scss';\nimport TextInputWithDebounce from '../../../components/TextInputWithDebounce/TextInputWithDebounce';\nimport {ACLReduxProps} from '../ACL-connect-helpers';\n\nconst block = cn('column-groups');\n\ntype Props = ColumnGropsToolbarProps &\n Pick<\n ACLReduxProps,\n | 'loaded'\n | 'columnGroups'\n | 'columnsFilter'\n | 'columnGroupNameFilter'\n | 'updateAclFilters'\n | 'userPermissionsAccessColumns'\n > & {\n path: string;\n loadAclDataFn: () => void;\n cluster: string;\n allowEdit?: boolean;\n };\n\nexport default function ColumnGroups({\n loaded,\n columnGroups,\n path,\n loadAclDataFn,\n cluster,\n allowEdit = false,\n updateAclFilters,\n columnsFilter,\n columnGroupNameFilter,\n userPermissionsAccessColumns,\n}: Props) {\n const [modalProps, setModalProps] = useState({\n title: '',\n confirmText: '',\n disabledFields: [],\n initialData: undefined,\n visible: false,\n handleClose: () => {\n setModalProps((prevProps) => ({\n ...prevProps,\n visible: false,\n }));\n },\n handleSubmit: (_value: Partial<AclColumnGroup>) => Promise.resolve(),\n } as ModalProps);\n\n const handleAddClick = () => {\n setModalProps((prevProps) => ({\n ...prevProps,\n title: 'Add new column group',\n confirmText: 'Add',\n disabledFields: ['enabled'],\n visible: true,\n initialData: {\n name: '',\n columns: [],\n enabled: false,\n },\n handleSubmit: (value: Partial<AclColumnGroup>) => {\n return UIFactory.getAclApi()\n .createColumnGroup(cluster, path, value)\n .then(() => {\n loadAclDataFn();\n });\n },\n }));\n };\n\n const handleEditClick = (item: AclColumnGroup) => {\n setModalProps((prevProps) => ({\n ...prevProps,\n title: 'Edit column group',\n confirmText: 'Save',\n initialData: {...item},\n disabledFields: [],\n visible: true,\n handleSubmit: (value: Partial<AclColumnGroup>) => {\n return UIFactory.getAclApi()\n .editColumnGroup(cluster, {...value, id: item.id})\n .then(() => {\n loadAclDataFn();\n });\n },\n }));\n };\n\n const handleDeleteClick = (item: AclColumnGroup) => {\n setModalProps((prevProps) => ({\n ...prevProps,\n title: 'Delete column group',\n confirmText: 'Delete',\n initialData: {...item},\n disabledFields: ['name', 'columns', 'enabled'],\n visible: true,\n handleSubmit: () => {\n const {id} = item;\n return UIFactory.getAclApi()\n .deleteColumnGroup(cluster, id)\n .then(() => {\n loadAclDataFn();\n });\n },\n }));\n };\n\n const columns: Array<Column<AclColumnGroup>> = [\n {\n name: 'Empty',\n className: block('empty'),\n header: null,\n render({row}) {\n return <Power className={block('active-icon', {enabled: row.enabled})} />;\n },\n },\n {\n name: 'Name',\n render({row}) {\n return <span title={row.name}>{row.name}</span>;\n },\n align: 'left',\n className: block('name'),\n },\n {\n name: 'Columns',\n render({row}) {\n return renderText(row.columns?.map((column) => `\"${column}\"`).join(', '));\n },\n className: block('columns'),\n align: 'left',\n },\n {\n name: '',\n className: block('actions'),\n render({row}) {\n return allowEdit ? (\n <>\n <span\n className={block('icon', {delete: true})}\n onClick={() => handleDeleteClick(row)}\n >\n <Icon awesome=\"trash-alt\" />\n </span>\n <span\n className={block('icon', {edit: true})}\n onClick={() => handleEditClick(row)}\n >\n <Icon awesome=\"pencil\" />\n </span>\n </>\n ) : null;\n },\n align: 'right',\n },\n ];\n\n return (\n <ErrorBoundary>\n <div>\n <div className=\"elements-heading elements-heading_size_xs\">\n Column groups\n {allowEdit && (\n <Button className={block('button', {add: true})} onClick={handleAddClick}>\n <Icon awesome={'plus'} />\n Add\n </Button>\n )}\n </div>\n <WithStickyToolbar\n topMargin=\"none\"\n bottomMargin=\"regular\"\n toolbar={\n <Toolbar\n itemsToWrap={[\n {\n node: (\n <TextInputWithDebounce\n placeholder=\"Filter by name\"\n className={block('filter')}\n value={columnGroupNameFilter}\n onUpdate={(columnGroupNameFilter) =>\n updateAclFilters({columnGroupNameFilter})\n }\n />\n ),\n },\n {\n node: (\n <ColumnGroupsFilter\n {...{\n columnsFilter,\n updateAclFilters,\n userPermissionsAccessColumns,\n }}\n />\n ),\n shrinkable: true,\n },\n ]}\n />\n }\n content={\n <DataTableYT<AclColumnGroup>\n loaded={loaded}\n noItemsText=\"There are not any column groups\"\n data={columnGroups}\n columns={columns}\n theme={'yt-borderless'}\n settings={{\n sortable: false,\n displayIndices: false,\n }}\n />\n }\n />\n </div>\n {modalProps.visible ? <EditColumnGroupModal {...modalProps} /> : null}\n </ErrorBoundary>\n );\n}\n\ninterface ColumnGropsToolbarProps\n extends Pick<\n ACLReduxProps,\n 'updateAclFilters' | 'columnsFilter' | 'userPermissionsAccessColumns'\n > {}\n\nexport function ColumnGroupsFilter({\n columnsFilter: value,\n userPermissionsAccessColumns,\n updateAclFilters,\n}: ColumnGropsToolbarProps) {\n const options = React.useMemo(() => {\n return userPermissionsAccessColumns?.map((value) => {\n return {value, title: value};\n });\n }, [userPermissionsAccessColumns]);\n return (\n <Select\n className={block('columns-filter')}\n multiple\n hasClear\n filterable\n label=\"Columns\"\n placeholder=\"filter\"\n items={options}\n value={value}\n onUpdate={(columnsFilter) => updateAclFilters({columnsFilter})}\n maxVisibleValuesTextLength={60}\n width=\"max\"\n />\n );\n}\n","import React, {Component} from 'react';\nimport PropTypes from 'prop-types';\nimport cn from 'bem-cn-lite';\nimport {Checkbox} from '@gravity-ui/uikit';\n\nimport {YTErrorBlock} from '../../../components/Error/Error';\nimport Label from '../../../components/Label/Label';\nimport MetaTable from '../../../components/MetaTable/MetaTable';\nimport Modal from '../../../components/Modal/Modal';\nimport {renderText} from '../../../components/templates/utils';\n\nimport hammer from '../../../common/hammer';\n\nimport './DeletePermissionModal.scss';\n\nconst block = cn('navigation-acl-delete-modal');\n\nexport default class DeletePermissionModal extends Component {\n static propTypes = {\n // from parent\n idmKind: PropTypes.string,\n path: PropTypes.string.isRequired,\n itemToDelete: PropTypes.shape({\n key: PropTypes.string,\n action: PropTypes.string,\n inherited: PropTypes.bool,\n inheritanceMode: PropTypes.string,\n subjects: PropTypes.arrayOf(PropTypes.string),\n permissions: PropTypes.arrayOf(PropTypes.string),\n columns: PropTypes.arrayOf(PropTypes.string),\n }).isRequired,\n visible: PropTypes.bool.isRequired,\n handleClose: PropTypes.func.isRequired,\n // from connect\n deletePermissions: PropTypes.func.isRequired,\n isPermissionDeleted: PropTypes.bool.isRequired,\n error: PropTypes.object,\n lastItemKey: PropTypes.string,\n };\n\n state = {\n confirm: false,\n };\n\n checkConfirmDisabled = () => !this.state.confirm;\n toggleConfirm = () => this.setState((prevState) => ({confirm: !prevState.confirm}));\n\n deleteItem = () => {\n const {idmKind, path, itemToDelete} = this.props;\n const {\n itemToDelete: {key},\n deletePermissions,\n } = this.props;\n return deletePermissions({\n roleKey: key,\n idmKind,\n path,\n itemToDelete,\n }).then((error) => {\n if (!error) {\n this.onClose();\n }\n });\n };\n\n onClose = () => {\n const {handleClose} = this.props;\n this.setState(() => ({confirm: false}));\n handleClose();\n };\n\n render() {\n const {confirm} = this.state;\n const {visible, itemToDelete, isPermissionDeleted, error, lastItemKey} = this.props;\n const {key, type, inherited, subjects, permissions, columns, inheritanceMode} =\n itemToDelete;\n\n return (\n <Modal\n onConfirm={this.deleteItem}\n loading={isPermissionDeleted}\n visible={visible}\n confirmText=\"Delete\"\n onCancel={this.onClose}\n title=\"Delete permissions\"\n onOutsideClick={this.onClose}\n isConfirmDisabled={this.checkConfirmDisabled}\n content={\n <div className={block()}>\n <MetaTable\n className={block('meta')}\n items={[\n {\n key: 'inherited',\n value: String(inherited),\n },\n {\n key: 'subjects',\n value: renderText(subjects?.join(', ')),\n },\n {\n key: 'permissions',\n value: renderText(permissions?.join(', ')),\n visible: type === 'object',\n },\n {\n key: 'private columns',\n value: renderText(columns?.join(', ')),\n visible: type === 'columns',\n },\n {\n key: 'inheritance mode',\n value:\n hammer.format['ReadableField'](inheritanceMode) ||\n hammer.format.NO_VALUE,\n visible: type === 'object',\n },\n ]}\n />\n\n <p className={block('delete', {confirm})}>\n <Checkbox\n size={'l'}\n content=\"Yes, I'm sure\"\n checked={confirm}\n onChange={this.toggleConfirm}\n />\n\n <Label theme=\"danger\" text=\"This action CANNOT be undone\" />\n </p>\n\n {error && key === lastItemKey && (\n <YTErrorBlock message=\"Could not delete permission\" error={error} />\n )}\n </div>\n }\n />\n );\n }\n}\n","import React, {useCallback, useMemo} from 'react';\nimport {compose} from 'redux';\nimport cn from 'bem-cn-lite';\n\nimport isEqual_ from 'lodash/isEqual';\n\nimport {Loader} from '@gravity-ui/uikit';\nimport {DialogWrapper as CommonDialog} from '../../../components/DialogWrapper/DialogWrapper';\n\nimport {\n DialogField,\n FormApi,\n RoleListControlProps,\n YTDFDialog,\n prepareRoleListValue,\n roleListValueToSubjectList,\n} from '../../../components/Dialog';\n\nimport {IdmKindType} from '../../../utils/acl/acl-types';\nimport {PreparedRole} from '../../../utils/acl';\nimport {YTError} from '../../../types';\n\nimport LoadDataHandler from '../../../components/LoadDataHandler/LoadDataHandler';\nimport {YTErrorBlock} from '../../../components/Error/Error';\nimport ErrorBoundary from '../../../components/ErrorBoundary/ErrorBoundary';\nimport Button from '../../../components/Button/Button';\n\nimport withVisible, {WithVisibleProps} from '../../../hocs/withVisible';\n\nimport UIFactory from '../../../UIFactory';\nimport {ACLReduxProps} from '../ACL-connect-helpers';\n\nimport './ManageAcl.scss';\n\nconst block = cn('acl-manage');\n\nexport type ManageAclFieldsNames =\n | 'responsible'\n | 'inheritanceResponsible'\n | 'readApprovers'\n | 'auditors'\n | 'bossApproval'\n | 'inheritAcl'\n | 'comment';\n\nexport type ManageInheritanceFieldNames = 'inheritAcl' | 'inheritAcl_warning' | 'comment';\n\ninterface Props extends WithVisibleProps {\n className?: string;\n path: string;\n idmKind: IdmKindType;\n version?: string;\n normalizedPoolTree?: string;\n loading: boolean;\n auditors: Array<PreparedRole>;\n responsible: Array<PreparedRole>;\n readApprovers: Array<PreparedRole>;\n disableInheritanceResponsible?: boolean | PreparedRole;\n bossApproval?: PreparedRole;\n error: boolean;\n manageAclError?: YTError;\n errorData?: YTError;\n loadAclData: (args: {path: string; idmKind: IdmKindType}) => void;\n updateAcl: (...args: Parameters<ACLReduxProps['userPermissionsUpdateAcl']>) => Promise<void>;\n cancelUpdateAcl: (args: {idmKind: IdmKindType}) => void;\n}\n\ninterface FormValues {\n auditors: RoleListControlProps['value'];\n responsible: RoleListControlProps['value'];\n readApprovers: RoleListControlProps['value'];\n inheritanceResponsible: boolean;\n bossApproval: boolean;\n comment?: string;\n}\n\nfunction ManageAcl(props: Props) {\n const {\n className,\n path,\n idmKind,\n version,\n visible,\n loading,\n handleShow,\n handleClose,\n bossApproval,\n disableInheritanceResponsible,\n auditors,\n responsible,\n readApprovers,\n manageAclError,\n error,\n errorData,\n loadAclData,\n cancelUpdateAcl,\n updateAcl,\n } = props;\n\n const handleModalOpen = useCallback(() => {\n loadAclData({path, idmKind});\n handleShow();\n }, [handleShow, idmKind, loadAclData, path]);\n\n const handleUpdateAclClose = useCallback(() => {\n handleClose();\n cancelUpdateAcl({idmKind});\n }, [cancelUpdateAcl, handleClose, idmKind]);\n\n const onAdd = useCallback(\n (form: FormApi<FormValues, Partial<FormValues>>) => {\n const {auditors, readApprovers, responsible, inheritanceResponsible, ...rest} =\n form.getState().values;\n\n return updateAcl({\n path,\n idmKind,\n values: {\n ...rest,\n disableInheritance: !inheritanceResponsible,\n responsible: roleListValueToSubjectList(responsible),\n auditors: roleListValueToSubjectList(auditors),\n readApprovers: roleListValueToSubjectList(readApprovers),\n },\n version,\n });\n },\n [idmKind, path, updateAcl, version],\n );\n\n const manageAclDialogFields = useMemo(\n () =>\n ({\n responsible: {\n name: 'responsible',\n type: 'acl-roles',\n caption: 'Responsible',\n extras: {\n maxVisibleCount: 3,\n placeholder: 'Who should approve...',\n },\n },\n inheritanceResponsible: {\n name: 'inheritanceResponsible',\n type: 'tumbler',\n caption: 'Inherit responsible',\n },\n readApprovers: {\n name: 'readApprovers',\n type: 'acl-roles',\n caption: 'Read approvers',\n extras: {\n maxVisibleCount: 3,\n placeholder: 'Who should approve read requests...',\n },\n },\n auditors: {\n name: 'auditors',\n type: 'acl-roles',\n caption: 'Auditors',\n extras: {\n maxVisibleCount: 3,\n placeholder: 'Who should audit ACL change...',\n },\n },\n bossApproval: {\n name: 'bossApproval',\n type: 'tumbler',\n caption: 'Boss approval',\n },\n comment: {\n name: 'comment',\n caption: 'Comment for IDM',\n type: 'textarea',\n },\n }) as Record<ManageAclFieldsNames, DialogField<FormValues>>,\n [],\n );\n\n const {manageAclFields} = UIFactory.getAclApi();\n const dialogFields = useMemo(() => {\n const permissionsSettings = UIFactory.getAclPermissionsSettings();\n const idmKindConditions: {[Key in ManageAclFieldsNames]?: boolean} = {\n bossApproval: permissionsSettings[idmKind].allowBossApprovals,\n auditors: permissionsSettings[idmKind].allowAuditors,\n readApprovers: permissionsSettings[idmKind].allowReadApprovers,\n inheritanceResponsible: permissionsSettings[idmKind].allowInheritResponsibles,\n };\n\n return manageAclFields\n .filter((name) =>\n idmKindConditions[name] !== undefined ? idmKindConditions[name] : true,\n )\n .map((name) => manageAclDialogFields[name]);\n }, [idmKind, manageAclDialogFields, manageAclFields]);\n\n const renderDialog = () => {\n return (\n <YTDFDialog<FormValues>\n pristineSubmittable\n modal={false}\n visible={Boolean(visible)}\n onClose={handleUpdateAclClose}\n onAdd={onAdd}\n initialValues={{\n responsible: prepareRoleListValue(responsible),\n inheritanceResponsible: !disableInheritanceResponsible,\n readApprovers: prepareRoleListValue(readApprovers),\n auditors: prepareRoleListValue(auditors),\n bossApproval: Boolean(bossApproval),\n }}\n formExtras={{initialValuesEqual: isEqual_}}\n fields={[\n ...dialogFields,\n {\n name: 'error-block',\n type: 'block',\n extras: {\n children: manageAclError && (\n <YTErrorBlock message=\"Acl update failure\" error={manageAclError} />\n ),\n },\n },\n ]}\n />\n );\n };\n\n const renderForm = () => {\n return (\n <LoadDataHandler loaded={false} error={error} errorData={errorData}>\n {loading ? <Loader /> : renderDialog()}\n </LoadDataHandler>\n );\n };\n\n return !manageAclFields?.length ? null : (\n <ErrorBoundary>\n <div className={block(null, className)}>\n <Button onClick={handleModalOpen}>Manage responsibles</Button>\n\n <CommonDialog\n size=\"m\"\n open={Boolean(visible)}\n onClose={handleClose}\n className={block('modal', {loading, error})}\n >\n <CommonDialog.Header caption=\"Manage responsibles\" />\n <CommonDialog.Body>{renderForm()}</CommonDialog.Body>\n </CommonDialog>\n </div>\n </ErrorBoundary>\n );\n}\n\nexport default compose(withVisible)(ManageAcl) as unknown as React.ComponentType<\n Omit<Props, keyof WithVisibleProps>\n>;\n","import React, {useCallback, useMemo, useState} from 'react';\nimport {compose} from 'redux';\nimport cn from 'bem-cn-lite';\n\nimport {Loader} from '@gravity-ui/uikit';\nimport {DialogWrapper as CommonDialog} from '../../../components/DialogWrapper/DialogWrapper';\n\nimport isEqual_ from 'lodash/isEqual';\n\nimport {DialogField, FormApi, YTDFDialog} from '../../../components/Dialog';\n\nimport {IdmKindType} from '../../../utils/acl/acl-types';\nimport {PreparedRole} from '../../../utils/acl';\nimport {YTError} from '../../../types';\n\nimport Button from '../../../components/Button/Button';\nimport {YTErrorBlock} from '../../../components/Error/Error';\nimport ErrorBoundary from '../../../components/ErrorBoundary/ErrorBoundary';\nimport LoadDataHandler from '../../../components/LoadDataHandler/LoadDataHandler';\n\nimport withVisible, {WithVisibleProps} from '../../../hocs/withVisible';\n\nimport './ManageInheritance.scss';\nimport UIFactory from '../../../UIFactory';\nimport {ACLReduxProps} from '../ACL-connect-helpers';\nimport {ManageInheritanceFieldNames} from '../ManageAcl/ManageAcl';\n\nconst block = cn('acl-inheritance');\n\ninterface Props extends WithVisibleProps {\n className?: string;\n path: string;\n idmKind: IdmKindType;\n version?: string;\n normalizedPoolTree?: string;\n loading: boolean;\n inheritAcl?: boolean | PreparedRole;\n error: boolean;\n manageAclError?: YTError;\n errorData?: YTError;\n loadAclData: (args: {path: string; idmKind: IdmKindType}) => void;\n updateAcl: (...args: Parameters<ACLReduxProps['userPermissionsUpdateAcl']>) => Promise<void>;\n cancelUpdateAcl: (args: {idmKind: IdmKindType}) => void;\n}\n\ninterface FormValues {\n inheritAcl: boolean;\n comment?: string;\n}\n\nfunction ManageInheritance(props: Props) {\n const {\n className,\n path,\n idmKind,\n version,\n visible,\n loading,\n handleShow,\n handleClose,\n inheritAcl,\n manageAclError,\n loadAclData,\n cancelUpdateAcl,\n updateAcl,\n error,\n errorData,\n } = props;\n\n const [hasWarning, setHasWarning] = useState(false);\n\n const handleModalOpen = useCallback(() => {\n loadAclData({path, idmKind});\n handleShow();\n }, [handleShow, idmKind, loadAclData, path]);\n\n const handleUpdateAclClose = useCallback(() => {\n handleClose();\n cancelUpdateAcl({idmKind});\n }, [cancelUpdateAcl, handleClose, idmKind]);\n\n const onAdd = useCallback(\n (form: FormApi<FormValues, Partial<FormValues>>) => {\n const {values} = form.getState();\n\n return updateAcl({\n path,\n idmKind,\n values,\n version,\n });\n },\n [idmKind, path, updateAcl, version],\n );\n\n const manageAclDialogFields = useMemo(\n () =>\n ({\n inheritAcl: {\n name: 'inheritAcl',\n type: 'tumbler',\n caption: 'Inherit ACL',\n onChange: (value) => {\n setHasWarning(!value);\n },\n },\n inheritAcl_warning: {\n name: 'inheritAcl_warning',\n type: 'block',\n extras: {\n children: hasWarning ? (\n <YTErrorBlock\n type={'alert'}\n message={\n <>\n Setting <span className={block('flag')}>inherit_acl</span>{' '}\n flag to <span className={block('flag')}>false</span> may\n result in the loss of permissions sufficient to undo this\n operation.{' '}\n </>\n }\n />\n ) : null,\n },\n },\n comment: {\n name: 'comment',\n caption: 'Comment for IDM',\n type: 'textarea',\n },\n }) as Record<ManageInheritanceFieldNames, DialogField<FormValues>>,\n [hasWarning],\n );\n\n const {manageInheritanceFields, buttonsTitle} = UIFactory.getAclApi();\n const dialogFields = useMemo(() => {\n const permissionsSettings = UIFactory.getAclPermissionsSettings();\n const {allowInheritAcl} = permissionsSettings[idmKind];\n return allowInheritAcl\n ? manageInheritanceFields.map((name) => manageAclDialogFields[name])\n : [];\n }, [idmKind, manageAclDialogFields, manageInheritanceFields]);\n\n const renderDialog = () => {\n return (\n <YTDFDialog<FormValues>\n pristineSubmittable\n modal={false}\n visible={Boolean(visible)}\n onClose={handleUpdateAclClose}\n onAdd={onAdd}\n initialValues={{\n inheritAcl: Boolean(inheritAcl),\n }}\n formExtras={{initialValuesEqual: isEqual_}}\n fields={[\n ...dialogFields,\n {\n name: 'error-block',\n type: 'block',\n extras: {\n children: manageAclError && (\n <YTErrorBlock message=\"Acl update failure\" error={manageAclError} />\n ),\n },\n },\n ]}\n />\n );\n };\n\n const renderForm = () => {\n return (\n <LoadDataHandler loaded={false} error={error} errorData={errorData}>\n {loading ? <Loader /> : renderDialog()}\n </LoadDataHandler>\n );\n };\n\n const {editInheritance = 'Edit inheritance'} = buttonsTitle ?? {};\n\n return !dialogFields.length ? null : (\n <ErrorBoundary>\n <div className={block(null, className)}>\n <Button onClick={handleModalOpen}>{editInheritance}</Button>\n\n <CommonDialog\n size=\"m\"\n open={Boolean(visible)}\n onClose={handleClose}\n className={block('modal', {loading, error})}\n >\n <CommonDialog.Header caption={editInheritance} />\n <CommonDialog.Body>{renderForm()}</CommonDialog.Body>\n </CommonDialog>\n </div>\n </ErrorBoundary>\n );\n}\n\nexport default compose(withVisible)(ManageInheritance) as unknown as React.ComponentType<\n Omit<Props, keyof WithVisibleProps>\n>;\n","import React, {Component} from 'react';\nimport cn from 'bem-cn-lite';\n\nimport {Flex} from '@gravity-ui/uikit';\n\nimport ErrorBoundary from '../../../components/ErrorBoundary/ErrorBoundary';\nimport {AclMode, IdmObjectType} from '../../../constants/acl';\n\nimport RequestPermissions from '../RequestPermissions/RequestPermissions';\nimport ManageAcl from '../ManageAcl/ManageAcl';\nimport {ACLReduxProps} from '../ACL-connect-helpers';\nimport {IdmKindType} from '../../../utils/acl/acl-types';\nimport ManageInheritance from '../ManageInheritance/ManageInheritance';\n\nconst block = cn('acl-user-permissions');\n\ntype Props = Pick<\n ACLReduxProps,\n | 'path'\n | 'cluster'\n | 'version'\n | 'loadAclData'\n | 'loading'\n | 'error'\n | 'errorData'\n | 'responsible'\n | 'auditors'\n | 'readApprovers'\n | 'bossApproval'\n | 'disableInheritanceResponsible'\n | 'columnGroups'\n | 'aclMode'\n> & {\n className?: string;\n idmKind: IdmKindType;\n\n // for RequestPermissions\n requestPermissions: ACLReduxProps['userPermissionsRequestFn'];\n requestPermissionsError: ACLReduxProps['userPermissionsRequestError'];\n cancelRequestPermissions: ACLReduxProps['userPermissionsCancelRequestFn'];\n\n // for ManageAcl\n inheritAcl: ACLReduxProps['disableAclInheritance'];\n\n updateAcl: ACLReduxProps['userPermissionsUpdateAcl'];\n updateAclError: ACLReduxProps['userPermissionsUpdateAclError'];\n cancelUpdateAcl: ACLReduxProps['userPermissionsCancelUpdateAcl'];\n};\n\nexport class AclActions extends Component<Props> {\n requestPermissions = async (...args: Parameters<ACLReduxProps['userPermissionsRequestFn']>) => {\n const {requestPermissions, loadAclData, path, idmKind} = this.props;\n await requestPermissions(...args);\n await loadAclData({path, idmKind});\n };\n\n updateAcl = async (...args: Parameters<ACLReduxProps['userPermissionsUpdateAcl']>) => {\n const {updateAcl, loadAclData, path, idmKind} = this.props;\n await updateAcl(...args);\n await loadAclData({path, idmKind});\n };\n\n render() {\n const {\n aclMode,\n path,\n idmKind,\n version,\n className,\n requestPermissionsError,\n cancelRequestPermissions,\n\n loadAclData,\n loading,\n error,\n errorData,\n\n inheritAcl,\n bossApproval,\n disableInheritanceResponsible,\n\n auditors,\n readApprovers,\n responsible,\n\n updateAclError,\n cancelUpdateAcl,\n cluster,\n\n columnGroups,\n } = this.props;\n\n return (\n <ErrorBoundary>\n {idmKind !== IdmObjectType.UI_EFFECTIVE_ACL && (\n <Flex className={block(null, className)} gap={4}>\n <React.Fragment>\n <RequestPermissions\n aclMode={aclMode}\n path={path}\n idmKind={idmKind}\n error={requestPermissionsError}\n requestPermissions={this.requestPermissions}\n cancelRequestPermissions={cancelRequestPermissions}\n cluster={cluster}\n columnGroups={columnGroups}\n />\n {aclMode !== AclMode.COLUMN_GROUPS_PERMISSISONS && (\n <ManageInheritance\n loadAclData={loadAclData}\n loading={loading}\n error={error}\n errorData={errorData}\n path={path}\n idmKind={idmKind}\n version={version}\n inheritAcl={inheritAcl}\n updateAcl={this.updateAcl}\n manageAclError={updateAclError}\n cancelUpdateAcl={cancelUpdateAcl}\n />\n )}\n {aclMode !== AclMode.COLUMN_GROUPS_PERMISSISONS && (\n <ManageAcl\n loadAclData={loadAclData}\n loading={loading}\n error={error}\n errorData={errorData}\n path={path}\n idmKind={idmKind}\n version={version}\n bossApproval={bossApproval}\n disableInheritanceResponsible={disableInheritanceResponsible}\n auditors={auditors}\n readApprovers={readApprovers}\n responsible={responsible}\n updateAcl={this.updateAcl}\n manageAclError={updateAclError}\n cancelUpdateAcl={cancelUpdateAcl}\n />\n )}\n </React.Fragment>\n </Flex>\n )}\n </ErrorBoundary>\n );\n }\n}\n","import React from 'react';\nimport cn from 'bem-cn-lite';\nimport {Flex, Icon} from '@gravity-ui/uikit';\nimport checkSvg from '@gravity-ui/icons/svgs/circle-check.svg';\nimport xMarkSvg from '@gravity-ui/icons/svgs/circle-xmark.svg';\n\nimport format from '../../../common/hammer/format';\n\nimport {ACLReduxProps} from '../ACL-connect-helpers';\n\nimport './MyPermissions.scss';\nimport {useAvailablePermissions} from '../hooks/use-available-permissions';\n\nconst block = cn('yt-my-permissions');\n\nexport function MyPermissions({\n idmKind,\n path,\n userPermissions,\n className,\n}: Pick<ACLReduxProps, 'userPermissions' | 'idmKind' | 'path'> & {className?: string}) {\n const {permissionsToCheck} = useAvailablePermissions({idmKind, path});\n\n const visibleUserPermissions = React.useMemo(() => {\n const visible = new Set(permissionsToCheck);\n return userPermissions.filter(({type}) => {\n return visible.has(type);\n });\n }, [userPermissions, permissionsToCheck]);\n\n if (!permissionsToCheck.length) {\n return null;\n }\n\n const groups: Array<typeof visibleUserPermissions> = [];\n for (let i = 0; i < visibleUserPermissions?.length; i += 4) {\n groups.push(visibleUserPermissions.slice(i, i + 4));\n }\n return (\n <Flex className={block(null, className)}>\n {groups.map((items, index) => {\n return <PermissionsGroup items={items} key={index} />;\n })}\n </Flex>\n );\n}\n\nfunction PermissionsGroup({items}: {items: ACLReduxProps['userPermissions']}) {\n return (\n <Flex className={block('group')} direction=\"column\" gap={1}>\n {items.map(({type, action}) => {\n return (\n <Flex\n className={block('item', {type: action})}\n key={type}\n alignItems={'center'}\n gap={1}\n >\n <Icon\n size={16}\n className={block('icon', {\n color: action === 'deny' ? 'danger' : 'success',\n })}\n data={action === 'deny' ? xMarkSvg : checkSvg}\n />\n {format.Readable(type)}\n </Flex>\n );\n })}\n </Flex>\n );\n}\n","import React from 'react';\nimport {useDispatch, useSelector} from '../../../store/redux-hooks';\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 '../../../store/redux-hooks';\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';\nimport {PreparedRole} from '../../utils/acl';\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 role?: PreparedRole;\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 {\n key: item.name,\n value: <SegmentValue value={item.value} role={item.role} />,\n };\n })}\n />\n );\n}\n\nfunction SegmentValue({value, role}: Pick<SegmentControlItem, 'value' | 'role'>) {\n const url = role?.idmLink;\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 {SegmentedRadioGroup} 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 <SegmentedRadioGroup\n value={aclMode}\n options={ACL_MODE_OPTIONS}\n onUpdate={(value) => {\n updateAclFilters({aclCurrentTab: value as AclMode});\n }}\n />\n );\n}\n","import React from 'react';\nimport format from '../../common/hammer/format';\nimport {VisibleValues} from '../../components/VisibleValues/VisibleValues';\nimport {renderText} from '../../components/templates/utils';\nimport unipika from '../../common/thor/unipika';\n\nexport type AclColumnsCellProps = {\n items?: Array<string>;\n expanadable?: boolean;\n};\n\nexport function AclColumnsCell({expanadable, items}: AclColumnsCellProps) {\n if (!items) {\n return format.NO_VALUE;\n }\n\n return expanadable ? (\n <VisibleValues\n width=\"max\"\n counter=\"missing-values\"\n value={\n items?.map((v) => {\n return `\"${unipika.decode(v)}\"`;\n }) ?? []\n }\n maxVisibleValues={5}\n maxTextLength={40}\n />\n ) : (\n renderText(items?.map((item) => `\"${item}\"`).join(', '))\n );\n}\n","const SvgAclInherited = props => <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 16 16\" {...props}><path fill=\"currentColor\" fillOpacity={0.3} fillRule=\"evenodd\" d=\"M12.25 2.5h-8.5a.75.75 0 0 0-.75.75v1.5c0 .414.336.75.75.75h8.5a.75.75 0 0 0 .75-.75v-1.5a.75.75 0 0 0-.75-.75m0 4.5H5v3.13c0 .69.56 1.25 1.25 1.25H7v-.13A2.25 2.25 0 0 1 9.25 9h3a2.25 2.25 0 0 1 2.25 2.25v1.5A2.25 2.25 0 0 1 12.25 15h-3a2.25 2.25 0 0 1-2.246-2.12H6.25a2.75 2.75 0 0 1-2.75-2.75V6.986a2.25 2.25 0 0 1-2-2.236v-1.5A2.25 2.25 0 0 1 3.75 1h8.5a2.25 2.25 0 0 1 2.25 2.25v1.5A2.25 2.25 0 0 1 12.25 7m-3 3.5h3a.75.75 0 0 1 .75.75v1.5a.75.75 0 0 1-.75.75h-3a.75.75 0 0 1-.75-.75v-1.5a.75.75 0 0 1 .75-.75\" clipRule=\"evenodd\" /></svg>;\nexport default SvgAclInherited;","import React from 'react';\n\nimport {IdmObjectType} from '../../../constants/acl';\nimport Link from '../../../components/Link/Link';\nimport {InheritedFrom} from '../../../utils/acl/acl-types';\nimport {makeAccountsUrl, makeNavigationLink, makeSchedulingUrl} from '../../../utils/app-url';\n\nfunction urlFromData(data?: InheritedFrom) {\n switch (data?.kind) {\n case IdmObjectType.PATH: {\n return makeNavigationLink({path: data.name});\n }\n case IdmObjectType.POOL: {\n return makeSchedulingUrl({pool: data.name, poolTree: data.poolTree!});\n }\n case IdmObjectType.ACCOUNT: {\n return makeAccountsUrl(data.name);\n }\n default:\n return undefined;\n }\n}\n\nexport function InheritanceMessage({data}: {data?: InheritedFrom}) {\n const url = urlFromData(data);\n return !url ? (\n 'Role is inherited'\n ) : (\n <React.Fragment>\n Role is inherited{' '}\n <Link routed url={url} routedPreserveLocation>\n {data?.name}\n </Link>\n </React.Fragment>\n );\n}\n","import React, {Component, Fragment} from 'react';\nimport hammer from '../../common/hammer';\nimport cn from 'bem-cn-lite';\n\nimport compact_ from 'lodash/compact';\n\nimport {Button, ClipboardButton, Flex, Icon, Loader} 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 {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 {Tooltip} from '../../components/Tooltip/Tooltip';\nimport {isIdmAclAvailable} from '../../config';\nimport ApproversFilters from './ApproversFilters/ApproversFilters';\nimport ObjectPermissionsFilters from './ObjectPermissionsFilters/ObjectPermissionsFilters';\nimport UIFactory, {AclRoleActionsType} from '../../UIFactory';\n\nimport {ACLReduxProps} from './ACL-connect-helpers';\nimport {PreparedAclSubject} from '../../utils/acl/acl-types';\nimport {ObjectPermissionRowWithExpand, PreparedApprover} from '../../store/selectors/acl';\n\nimport {SegmentControl, SegmentControlItem} from '../../components/SegmentControl/SegmentControl';\nimport WithStickyToolbar from '../../components/WithStickyToolbar/WithStickyToolbar';\nimport {PreparedRole, isGranted} from '../../utils/acl';\nimport {AclModeControl} from './AclModeControl';\nimport {ExpandButton} from '../../components/ExpandButton';\nimport {AclColumnsCell} from './AclColumnsCell';\n\nimport aclInheritedSvg from '../../assets/img/svg/acl-inherited.svg';\n\nimport './ACL.scss';\nimport {InheritanceMessage} from './InheritanceMessage/InheritanceMessage';\n\nconst block = cn('navigation-acl');\n\ntype Props = ACLReduxProps & WithVisibleProps & {className?: string};\n\ntype ApproverRow = PreparedApprover;\ntype PermissionsRow = ObjectPermissionRowWithExpand;\n\nclass ACL extends Component<Props> {\n static tableColumns = {\n items: {\n inherited: {\n caption: '',\n align: 'center',\n },\n subjects: {\n align: 'left',\n },\n permissions: {\n align: 'left',\n },\n columns: {\n caption: 'Private columns',\n align: 'left',\n },\n inheritance_mode: {\n align: 'left',\n },\n actions: {\n caption: '',\n align: 'right',\n },\n responsibles: {\n align: 'left',\n },\n read_approvers: {\n align: 'left',\n },\n auditors: {\n align: 'left',\n },\n approve_type: {\n align: 'left',\n caption: 'Type',\n },\n },\n sets: {\n objectDefault: {\n items: ['inherited', 'subjects', 'permissions', 'inheritance_mode', 'actions'],\n },\n columns: {\n items: ['inherited', 'subjects', 'columns'],\n },\n approvers: {\n items: ['inherited', 'subjects', 'approve_type', 'actions'],\n },\n },\n };\n\n // eslint-disable-next-line react/sort-comp\n static renderSubjectLink(item: PreparedAclSubject | PreparedApprover | PermissionsRow) {\n const {internal} = item;\n if (internal) {\n const [subject] = item.subjects;\n const [type] = item.types ?? [];\n return (\n <SubjectCard\n name={subject!}\n type={type === 'group' ? 'group' : 'user'}\n internal\n showIcon\n />\n );\n }\n\n if (item.subjectType === 'user') {\n const {subjectUrl} = item;\n const username = item.subjects[0];\n return <SubjectCard url={subjectUrl} name={username as string} showIcon />;\n }\n\n if (item.subjectType === 'tvm') {\n const tvmId = item.subjects[0];\n const {name} = item.tvmInfo ?? {};\n\n const text = `${name} (${tvmId})`;\n return (\n <div className={block('subject-with-tvm')}>\n <SubjectCard url={item.subjectUrl} name={text} type=\"tvm\" showIcon />\n <Label text=\"TVM\" />\n </div>\n );\n }\n\n const {name, url, group} = item.groupInfo || {};\n const {group_type} = item;\n return (\n <Tooltip\n content={\n group && (\n <React.Fragment>\n idm-group:{group}\n <span className={block('copy-idm-group')}>\n <ClipboardButton text={`idm-group:${group}`} size=\"s\" />\n </span>\n </React.Fragment>\n )\n }\n >\n <SubjectCard\n name={name ?? group!}\n url={url}\n type=\"group\"\n groupType={group_type}\n showIcon\n />\n </Tooltip>\n );\n }\n\n state = {\n deleteItem: {} as {key?: string},\n };\n\n componentDidMount() {\n const {path, idmKind, loadAclData} = this.props;\n\n if (path) {\n loadAclData({path, idmKind});\n }\n }\n\n componentDidUpdate(prevProps: Props) {\n const {path, idmKind, loadAclData} = this.props;\n if (prevProps.path !== path) {\n loadAclData({path, idmKind});\n }\n }\n\n getColumnsTemplates<T extends ApproverRow | PermissionsRow>({\n hasInherited,\n }: {hasInherited?: boolean} = {}) {\n const openDeleteModal = this.handleDeletePermissionClick;\n const {idmKind, toggleExpandAclSubject} = this.props;\n return {\n expand: {\n name: '',\n align: 'right',\n className: block('table-item', {type: 'expand'}),\n render({row}) {\n const expanded = 'expanded' in row ? row.expanded : undefined;\n return expanded === undefined ? null : (\n <ExpandButton\n inline\n expanded={expanded}\n toggleExpanded={() => {\n toggleExpandAclSubject(row.subjects[0]);\n }}\n qa=\"acl-expand\"\n />\n );\n },\n width: 36,\n } as Column<T>,\n subjects: {\n name: 'Subjects',\n align: 'left',\n className: block('table-item', {type: 'subjects'}),\n render({row}) {\n const {requestPermissionsFlags = {}} = UIFactory.getAclApi();\n\n const {inheritedFrom} = row;\n\n const level = 'level' in row ? row.level : undefined;\n return (\n <Flex className={block('subject', {level: String(level)})} wrap gap={1}>\n {Boolean(hasInherited) && (\n <Tooltip\n content={<InheritanceMessage data={inheritedFrom} />}\n placement={['top-start']}\n >\n <div className={block('inherited', {hidden: !row.inherited})}>\n <Icon\n className={block('inherited-icon')}\n data={aclInheritedSvg}\n size={16}\n />\n </div>\n </Tooltip>\n )}\n <Flex grow wrap gap={1}>\n {ACL.renderSubjectLink(row)}\n </Flex>\n {Object.keys(requestPermissionsFlags).map((key, index) => {\n const flagInfo = requestPermissionsFlags[key];\n return (\n <React.Fragment key={index}>\n {flagInfo.renderIcon(row)}\n </React.Fragment>\n );\n })}\n </Flex>\n );\n },\n } as Column<T>,\n permissions: {\n name: 'Permissions',\n align: 'left',\n className: block('table-item', {type: 'permissions'}),\n render({row}) {\n const action = row.action === 'deny' ? 'deny' : 'allow';\n const theme = action === 'deny' ? 'danger' : 'success';\n\n return (\n <div className={block('permissions', {type: row.action})}>\n <Label className={block('action-label')} theme={theme}>\n {action}\n </Label>\n <AclColumnsCell\n items={row.permissions?.map(hammer.format.Readable)}\n expanadable={'expanded' in row}\n />\n </div>\n );\n },\n } as Column<T>,\n inheritance_mode: {\n name: 'Inheritance mode',\n render({row}) {\n const {inheritance_mode: mode} = row;\n return mode === undefined\n ? hammer.format.NO_VALUE\n : renderText(hammer.format['ReadableField'](mode));\n },\n align: 'left',\n className: block('table-item', {type: 'inheritance-mode'}),\n } as Column<T>,\n actions: {\n name: 'actions',\n header: '',\n align: 'right',\n className: block('table-item', {type: 'actions'}),\n render({row}) {\n const expanded = 'expanded' in row ? row.expanded : undefined;\n const RoleActions = UIFactory.getComponentForAclRoleActions();\n return expanded !== undefined\n ? null\n : RoleActions !== undefined && (\n <RoleActions\n role={row}\n idmKind={idmKind}\n onDelete={openDeleteModal}\n />\n );\n },\n } as Column<T>,\n approve_type: {\n name: 'Type',\n align: 'left',\n className: block('table-item', {type: 'approve-type'}),\n render({row}) {\n return hammer.format['Readable'](row.type);\n },\n } as Column<T>,\n columns: {\n name: 'Private columns',\n align: 'left',\n className: block('table-item', {type: 'columns'}),\n render({row}) {\n return <AclColumnsCell items={row.columns} expanadable={'expanded' in row} />;\n },\n } as Column<T>,\n };\n }\n\n handleDeletePermissionClick = (deleteItem: AclRoleActionsType) => {\n const {handleShow} = this.props;\n this.setState({deleteItem}, handleShow);\n };\n\n handleCloseDeleteModal = () => {\n const {handleClose} = this.props;\n this.setState({deleteItem: {}}, handleClose);\n };\n\n rowClassNameByFlags<T extends ApproverRow | PermissionsRow>(item: T) {\n const {\n isUnrecognized: unrecognized,\n isDepriving: depriving,\n isRequested: requested,\n isApproved: approved,\n isMissing: missing,\n } = item;\n return block('row', {\n unrecognized: unrecognized || missing,\n depriving,\n requested,\n approved,\n });\n }\n\n renderApprovers() {\n const {hasApprovers, approversFiltered, loaded} = this.props;\n const tableColumns = (['subjects', 'approve_type', 'actions'] as const).map(\n (name) => this.getColumnsTemplates<ApproverRow>({hasInherited: true})[name],\n );\n return (\n hasApprovers && (\n <ErrorBoundary>\n <div className={block('approvers')}>\n <div className=\"elements-heading elements-heading_size_xs\">\n Responsibles\n <Button className={block('sync-with-col-groups')}>\n Hidden button to sync offsets with column groups\n </Button>\n </div>\n <WithStickyToolbar\n topMargin=\"none\"\n toolbar={<ApproversFilters />}\n bottomMargin=\"regular\"\n content={\n <DataTableYT\n data={approversFiltered}\n loaded={loaded}\n noItemsText=\"Thre are no any responsibles\"\n columns={tableColumns}\n theme={'yt-borderless'}\n rowClassName={this.rowClassNameByFlags}\n settings={{\n sortable: false,\n displayIndices: false,\n }}\n />\n }\n />\n </div>\n </ErrorBoundary>\n )\n );\n }\n\n renderObjectPermissions() {\n const {\n aclMode,\n loaded,\n loading,\n mainPermissions,\n columnsPermissions,\n idmKind,\n columnsFilter,\n updateAclFilters,\n userPermissionsAccessColumns,\n } = this.props;\n const useColumns = aclMode === AclMode.COLUMN_GROUPS_PERMISSISONS;\n\n const {items, hasDenyAction, hasExpandable, hasInherited} = useColumns\n ? columnsPermissions\n : mainPermissions;\n const extraColumns = useColumns\n ? ([...(hasDenyAction ? ['permissions' as const] : []), 'columns'] as const)\n : (['permissions'] as const);\n\n const tableColumns: Array<Column<PermissionsRow>> = (\n [\n ...(hasExpandable ? ['expand' as const] : []),\n 'subjects',\n ...extraColumns,\n 'inheritance_mode',\n 'actions',\n ] as const\n ).map((name) => this.getColumnsTemplates<PermissionsRow>({hasInherited})[name]);\n\n return (\n <ErrorBoundary>\n <div className={block('object-permissions')}>\n <div className=\"elements-heading elements-heading_size_xs\">\n {useColumns ? 'Private columns permissions' : 'Object permissions'}\n </div>\n <WithStickyToolbar\n topMargin=\"none\"\n bottomMargin=\"regular\"\n toolbar={\n <ObjectPermissionsFilters\n {...{\n aclMode,\n idmKind,\n columnsFilter,\n updateAclFilters,\n userPermissionsAccessColumns,\n }}\n />\n }\n content={\n <DataTableYT\n noItemsText={\n aclMode === AclMode.COLUMN_GROUPS_PERMISSISONS\n ? 'There are no any column group permissions'\n : 'There are no any object permissions'\n }\n data={items}\n loading={loading}\n loaded={loaded}\n columns={tableColumns}\n theme={'yt-borderless'}\n rowClassName={this.rowClassNameByFlags}\n settings={{\n sortable: false,\n displayIndices: false,\n }}\n />\n }\n />\n </div>\n </ErrorBoundary>\n );\n }\n\n renderColumnGroups() {\n const {\n loaded,\n columnGroups,\n idmKind,\n path,\n loadAclData,\n cluster,\n nodeType,\n updateAclFilters,\n columnsFilter,\n columnGroupNameFilter,\n userPermissionsAccessColumns,\n } = this.props;\n const props = {\n path,\n loadAclDataFn: () => loadAclData({path, idmKind}),\n columnGroups,\n cluster,\n allowEdit: UIFactory.getAclApi().isAllowedToEditColumnGroups({nodeType}),\n updateAclFilters,\n columnsFilter,\n columnGroupNameFilter,\n userPermissionsAccessColumns,\n };\n return isIdmAclAvailable() && idmKind === IdmObjectType.PATH ? (\n <ColumnGroups loaded={loaded} {...props} />\n ) : null;\n }\n\n deletePermissionsFn = async (...args: Parameters<Props['deletePermissionsFn']>) => {\n const {deletePermissionsFn, loadAclData, idmKind, path} = this.props;\n const res = await deletePermissionsFn(...args);\n await loadAclData({path, idmKind});\n return res;\n };\n\n renderContent() {\n const {\n disableAclInheritance,\n visible,\n bossApproval,\n disableInheritanceResponsible,\n path,\n idmKind,\n version,\n userPermissionsRequestError,\n userPermissionsRequestFn,\n userPermissionsCancelRequestFn,\n isPermissionDeleted,\n deletePermissionsLastItemKey,\n deletePermissionsError,\n loadAclData,\n loading,\n loaded,\n error,\n errorData,\n auditors,\n readApprovers,\n responsible,\n userPermissionsUpdateAcl,\n userPermissionsUpdateAclError,\n userPermissionsCancelUpdateAcl,\n cluster,\n columnGroups,\n aclMode,\n updateAclFilters,\n } = this.props;\n const {deleteItem} = this.state;\n\n const hasColumns = Boolean(aclMode);\n const useColumns = aclMode === AclMode.COLUMN_GROUPS_PERMISSISONS;\n\n return (\n <Fragment>\n <Flex className={block('toolbar', {'has-columns': hasColumns})}>\n {hasColumns && (\n <Flex grow>\n <AclModeControl {...{aclMode, updateAclFilters}} />\n </Flex>\n )}\n {loaded && (\n <AclActions\n cluster={cluster}\n className={block('acl-actions')}\n path={path}\n idmKind={idmKind}\n version={version}\n requestPermissions={userPermissionsRequestFn}\n requestPermissionsError={userPermissionsRequestError}\n cancelRequestPermissions={userPermissionsCancelRequestFn}\n loadAclData={loadAclData}\n loading={loading}\n error={error}\n errorData={errorData}\n inheritAcl={!disableAclInheritance}\n bossApproval={bossApproval}\n disableInheritanceResponsible={disableInheritanceResponsible}\n auditors={auditors}\n readApprovers={readApprovers}\n responsible={responsible}\n updateAcl={userPermissionsUpdateAcl}\n updateAclError={userPermissionsUpdateAclError}\n cancelUpdateAcl={userPermissionsCancelUpdateAcl}\n columnGroups={columnGroups}\n aclMode={aclMode}\n />\n )}\n </Flex>\n {this.renderMeta()}\n\n {useColumns ? this.renderColumnGroups() : this.renderApprovers()}\n {this.renderObjectPermissions()}\n\n <DeletePermissionModal\n idmKind={idmKind}\n path={path}\n key={deleteItem?.key}\n visible={visible}\n itemToDelete={deleteItem}\n handleClose={this.handleCloseDeleteModal}\n isPermissionDeleted={isPermissionDeleted}\n lastItemKey={deletePermissionsLastItemKey}\n deletePermissions={this.deletePermissionsFn}\n error={deletePermissionsError}\n />\n </Fragment>\n );\n }\n\n renderMeta() {\n const {\n idmKind,\n path,\n disableAclInheritance,\n bossApproval,\n disableInheritanceResponsible,\n userPermissions,\n inheritAcl,\n } = this.props;\n const {allowBossApprovals, allowInheritAcl, allowInheritResponsibles} =\n UIFactory.getAclPermissionsSettings()[idmKind];\n\n function toSegmentItem(\n name: string,\n role?: boolean | PreparedRole,\n {invertRole, envforceValue}: {invertRole?: boolean; envforceValue?: boolean} = {},\n ) {\n const granted = isGranted(role);\n return {\n name,\n value: envforceValue ?? (invertRole ? !granted : granted),\n role: typeof role === 'object' ? role : undefined,\n };\n }\n\n const segments: Array<SegmentControlItem> = compact_([\n allowInheritAcl &&\n toSegmentItem('Inherit ACL', disableAclInheritance, {\n invertRole: true,\n envforceValue: inheritAcl,\n }),\n isIdmAclAvailable() &&\n allowBossApprovals &&\n toSegmentItem('Boss approval', bossApproval),\n isIdmAclAvailable() &&\n allowInheritResponsibles &&\n toSegmentItem('Inherit responsibles', disableInheritanceResponsible, {\n invertRole: true,\n }),\n ]);\n\n const {mainPermissions, columnsPermissions, approversFiltered, columnGroups, aclMode} =\n this.props;\n\n const counters: Array<SegmentControlItem> =\n aclMode === AclMode.COLUMN_GROUPS_PERMISSISONS\n ? [\n {name: 'Column groups', value: columnGroups.length},\n {name: 'Column permissions', value: columnsPermissions.count},\n ]\n : [\n {name: 'Responsibles', value: approversFiltered.length},\n {name: 'Object permissions', value: mainPermissions.count},\n ];\n\n const hasColumns = Boolean(aclMode);\n return (\n <Flex className={block('meta')} wrap alignItems=\"center\">\n <SegmentControl\n className={block('meta-item')}\n background=\"neutral-light\"\n groups={[segments, counters].filter(({length}) => length > 0)}\n />\n {aclMode !== AclMode.COLUMN_GROUPS_PERMISSISONS && (\n <MyPermissions\n className={block('meta-item', {'with-buttons': !hasColumns})}\n userPermissions={userPermissions}\n path={path}\n idmKind={idmKind}\n />\n )}\n </Flex>\n );\n }\n\n render() {\n const {loading, loaded, className} = this.props;\n const initialLoading = loading && !loaded;\n\n return (\n <ErrorBoundary>\n <LoadDataHandler {...this.props}>\n <div className={block({loading: initialLoading}, className)}>\n {initialLoading ? <Loader /> : this.renderContent()}\n </div>\n </LoadDataHandler>\n </ErrorBoundary>\n );\n }\n}\n\nexport default withVisible(ACL);\n","import React from 'react';\nimport cn from 'bem-cn-lite';\n\nimport {Button} from '@gravity-ui/uikit';\n\nimport Icon from '../../components/Icon/Icon';\nimport {IdmKindType} from '../../utils/acl/acl-types';\nimport {AclRoleActionsType} from '../../UIFactory';\n\nimport './RoleActions.scss';\n\nconst block = cn('navigation-acl');\n\nexport interface Props {\n idmKind?: IdmKindType;\n role: AclRoleActionsType;\n onDelete?: (role: AclRoleActionsType) => void;\n}\n\nexport default function RoleActions(props: Props) {\n const {role, onDelete} = props;\n const {inherited} = role;\n\n const handleDelete = React.useCallback(() => {\n onDelete?.(role);\n }, [onDelete, role]);\n\n return (\n <React.Fragment>\n {!inherited && onDelete !== undefined && (\n <Button className={block('button')} onClick={() => handleDelete()}>\n <Icon awesome=\"trash-alt\" />\n </Button>\n )}\n </React.Fragment>\n );\n}\n","import {ConnectedProps, connect} from 'react-redux';\n\nimport {\n getAllAccessColumnsNames,\n getAllColumnGroupsActual,\n getAllUserPermissions,\n getApproversFilteredAndOrdered,\n getHasApprovers,\n getIdmManageAclRequestError,\n getIdmPathVersion,\n getIdmPermissionsRequestError,\n getLastDeletedPermissionKey,\n getNotInheritedAuditors,\n getNotInheritedReadApprovers,\n getNotInheritedResponsibles,\n getObjectPermissionsAggregated,\n isPermissionDeleted,\n permissionDeletionError,\n} from '../../store/selectors/acl';\n\nimport {getType} from '../../store/selectors/navigation';\n\nimport {\n getAclCurrentTab,\n getAclFilterColumnGroupName,\n getAclFilterColumns,\n} from '../../store/selectors/acl-filters';\n\nimport {\n cancelRequestPermissions,\n cancelUpdateAcl,\n deletePermissions,\n loadAclData,\n requestPermissions,\n updateAcl,\n} from '../../store/actions/acl';\n\nimport {getCluster} from '../../store/selectors/global';\nimport {normalizeIdmParams} from '../../utils/acl';\nimport {IdmObjectType} from '../../constants/acl';\nimport {IdmKindType} from '../../utils/acl/acl-types';\nimport {RootState} from '../../store/reducers';\nimport {toggleExpandAclSubject, updateAclFilters} from '../../store/actions/acl-filters';\n\nimport ACL from './ACL';\n\nexport type ACLOwnProps = {\n path: string;\n poolTree?: 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 inheritAcl,\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 inheritAcl,\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<\n Pick<React.ComponentProps<typeof ACL>, 'path' | 'poolTree'>\n >;\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 {compose} from 'redux';\nimport cn from 'bem-cn-lite';\nimport React, {useCallback, useMemo} from 'react';\nimport {DialogField, FormApi, YTDFDialog, makeErrorFields} from '../../../components/Dialog';\nimport ErrorBoundary from '../../../components/ErrorBoundary/ErrorBoundary';\nimport {Button, ButtonProps} from '@gravity-ui/uikit';\nimport PermissionsControl from '../RequestPermissions/PermissionsControl/PermissionsControl';\n\nimport withVisible, {WithVisibleProps} from '../../../hocs/withVisible';\n\nimport './RequestPermissions.scss';\nimport {YTError} from '../../../types';\nimport {AclMode, INHERITANCE_MODE_TYPES, IdmObjectType} from '../../../constants/acl';\n\nimport UIFactory from '../../../UIFactory';\nimport hammer from '../../../common/hammer';\nimport map_ from 'lodash/map';\n\nimport {docsUrl} from '../../../config';\nimport {makeLink} from '../../../utils/utils';\nimport {AclColumnGroup, IdmKindType} from '../../../utils/acl/acl-types';\nimport {YTPermissionTypeUI} from '../../../utils/acl/acl-api';\nimport {PermissionToRequest} from '../../../store/actions/acl';\nimport {useAvailablePermissions} from '../hooks/use-available-permissions';\n\nconst block = cn('acl-request-permissions');\n\nconst FLAG_NAME_PREFIX = '##_flag_';\n\nexport type RequestPermissionsFieldsNames =\n | 'cluster'\n | 'path'\n | 'permissions'\n | 'subjects'\n | 'duration'\n | 'commentHeader'\n | 'comment'\n | 'inheritance_mode'\n | 'permissionFlags'\n | 'readColumns'\n | 'readColumnGroup';\n\nexport interface Props extends WithVisibleProps {\n className?: string;\n buttonClassName?: string;\n buttonProps?: ButtonProps;\n cluster?: string;\n normalizedPoolTree?: string;\n path: string;\n idmKind: IdmKindType;\n requestPermissions: (params: {\n values: PermissionToRequest;\n idmKind: IdmKindType;\n }) => Promise<void>;\n cancelRequestPermissions: (params: {idmKind: IdmKindType}) => unknown;\n error?: YTError;\n onSuccess?: () => void;\n columnGroups?: Array<AclColumnGroup>;\n aclMode?: AclMode;\n}\n\ntype FormValues = {\n path: string;\n cluster: string;\n permissions: {[x: string]: Array<YTPermissionTypeUI>} | null;\n subjects: Array<{\n value: string;\n type: 'users' | 'groups' | 'app';\n text?: string;\n }>;\n inheritance_mode?: string;\n duration?: Date;\n comment?: string;\n readColumnGroup?: string;\n} & Record<`${typeof FLAG_NAME_PREFIX}${string}`, boolean>;\n\nconst SHORT_TITLE: Partial<Record<IdmKindType, string>> = {\n access_control_object: 'ACO',\n};\n\nconst COLUMNS_FELDS = new Set<RequestPermissionsFieldsNames>(['readColumns', 'readColumnGroup']);\n\nfunction RequestPermissions(props: Props) {\n const {\n aclMode,\n visible,\n handleShow,\n handleClose,\n className,\n buttonClassName,\n path,\n idmKind,\n requestPermissions,\n cancelRequestPermissions,\n error,\n cluster,\n columnGroups,\n buttonProps,\n /*denyColumns,*/\n } = props;\n\n const onClose = useCallback(() => {\n handleClose();\n cancelRequestPermissions({idmKind});\n }, [handleClose, cancelRequestPermissions, idmKind]);\n\n const {\n requestPermissionsFields,\n requestPermissionsFlags = {},\n buttonsTitle,\n } = UIFactory.getAclApi();\n\n const onAdd = useCallback(\n (form: FormApi<FormValues, Partial<FormValues>>) => {\n const values = {...form.getState().values};\n const permissionFlags: Record<string, boolean> = {};\n Object.keys(requestPermissionsFlags).forEach((k) => {\n const key = `${FLAG_NAME_PREFIX}${k}` as keyof typeof values;\n permissionFlags[k] = Boolean(values[key]);\n\n delete values[key];\n });\n return requestPermissions({\n values: {...values, permissionFlags},\n idmKind,\n });\n },\n [requestPermissions, idmKind],\n );\n\n const currentCaption = `Current ${SHORT_TITLE[idmKind] ?? idmKind}`;\n\n const {permissionsToRequest: choices} = useAvailablePermissions({idmKind, path});\n\n const firstItemDisabled = idmKind === IdmObjectType.ACCOUNT;\n\n const permissions = firstItemDisabled ? valueWithCheckedFirstChoice(choices) : null;\n\n const availableFields: Record<\n RequestPermissionsFieldsNames,\n Omit<DialogField, 'name'>\n > = useMemo(() => {\n const disabledChoices = idmKind === IdmObjectType.ACCOUNT ? [0] : undefined;\n return {\n cluster: {\n type: 'plain',\n caption: 'Cluster',\n extras: {\n className: block('cluster'),\n },\n },\n path: {\n type: 'text',\n caption: currentCaption,\n extras: {\n disabled: !error,\n },\n },\n permissions: {\n type: 'permissions',\n caption: 'Permissions',\n required: true,\n tooltip: (\n <>\n {docsUrl(\n makeLink(UIFactory.docsUrls['acl:permissions'], 'Permissions types'),\n 'Permissions types',\n )}\n </>\n ),\n extras: {\n choices: choices,\n disabledChoices,\n },\n },\n readColumns: {\n type: 'acl-columns',\n caption: 'Read columns',\n required: true,\n },\n readColumnGroup: {\n type: 'acl-column-group',\n caption: 'Read column group',\n required: true,\n extras: {\n columnGroups,\n },\n },\n subjects: {\n type: 'acl-subjects',\n caption: 'Subjects',\n required: true,\n extras: {\n placeholder: 'Enter group name, user name or login...',\n allowedTypes: ['users', 'groups', 'app'],\n },\n },\n duration: {\n type: 'before-date',\n caption: 'Duration',\n },\n commentHeader: {\n type: 'block',\n className: block('modal-comments-header'),\n extras: {\n children: (\n <React.Fragment>\n <div className={'is-dialog__label'}>Comment</div>\n <div className={block('comment-notice')}>\n Teams and people can be requested through the IDM after the access\n group is created. If you have a more complex case please describe it\n in the comments.\n </div>\n </React.Fragment>\n ),\n },\n },\n comment: {\n type: 'textarea',\n className: block('modal-comments'),\n },\n inheritance_mode: {\n type: 'yt-select-single',\n caption: 'Inheritance mode',\n extras: {\n items: map_(INHERITANCE_MODE_TYPES, (value) => ({\n value: value,\n text: hammer.format['ReadableField'](value),\n })),\n hideClear: true,\n hideFilter: true,\n with: 'max',\n },\n },\n permissionFlags: {\n type: 'block',\n caption: 'Permission flags',\n extras: {children: 'Not implemented'},\n },\n };\n }, [choices, currentCaption, error, idmKind]);\n\n const useColumns = aclMode === AclMode.COLUMN_GROUPS_PERMISSISONS;\n\n const dialogFields = useMemo(() => {\n let flagsIndex = -1;\n const res = requestPermissionsFields.reduce(\n (acc, field) => {\n const allowField = useColumns ? field !== 'permissions' : !COLUMNS_FELDS.has(field);\n if (!allowField) {\n return acc;\n }\n\n if (field === 'permissionFlags') {\n flagsIndex = acc.length;\n }\n\n acc.push({\n ...availableFields[field],\n name: field,\n } as DialogField<FormValues>);\n\n return acc;\n },\n [] as Array<DialogField<FormValues>>,\n );\n\n if (flagsIndex !== -1) {\n const flags: typeof res = Object.keys(requestPermissionsFlags ?? []).map((key) => {\n const flagInfo = requestPermissionsFlags[key];\n return {\n type: 'tumbler',\n caption: hammer.format.ReadableField(flagInfo?.title),\n name: `${FLAG_NAME_PREFIX}${key}`,\n tooltip: flagInfo.help,\n initialValue: flagInfo.initialValue,\n };\n });\n res.splice(flagsIndex, 1, ...flags);\n }\n return res;\n }, [availableFields, requestPermissionsFields, useColumns]);\n\n const {editAcl = 'Add ACL', editColumnsAcl = 'Edit columns ACL'} = buttonsTitle ?? {};\n const title = useColumns ? editColumnsAcl : editAcl;\n\n return !choices?.length ? null : (\n <ErrorBoundary>\n <div className={block(null, className)}>\n <Button\n className={buttonClassName}\n view=\"action\"\n {...buttonProps}\n onClick={handleShow}\n >\n {title}\n </Button>\n\n <YTDFDialog<FormValues>\n pristineSubmittable\n onClose={onClose}\n className={block('modal')}\n visible={Boolean(visible)}\n onAdd={onAdd}\n headerProps={{\n title,\n }}\n initialValues={{\n path,\n permissions,\n cluster,\n inheritance_mode: INHERITANCE_MODE_TYPES.OBJECT_AND_DESCENDANTS,\n }}\n validate={(values) => {\n const subjects = values.subjects;\n const validationError: Record<\n keyof Pick<FormValues, 'subjects'>,\n string | undefined\n > = {\n subjects: undefined,\n };\n\n if (!subjects.length) {\n const errorMessage = 'At least one subject should be selected.';\n validationError.subjects = errorMessage;\n }\n\n return validationError;\n }}\n fields={[...dialogFields, ...makeErrorFields([error])]}\n />\n </div>\n </ErrorBoundary>\n );\n}\n\nexport default compose(withVisible)(RequestPermissions) as unknown as React.ComponentType<\n Omit<Props, keyof WithVisibleProps>\n>;\n\nfunction valueWithCheckedFirstChoice(choices: string | any[]) {\n if (!choices || choices.length < 1) {\n return {};\n }\n\n return {\n [PermissionsControl.getChoiceName(choices[0])]: choices[0],\n };\n}\n","import {createSelector} from 'reselect';\nimport ypath from '@ytsaurus/interface-helpers/lib/ypath';\n\nimport {NAVIGATION_MAP_NODE_TABLE_ID} from '../../../constants/navigation/index';\nimport {getNavigationDefaultPath} from '../../../store/selectors/settings';\nimport {isFinalLoadingStatus} from '../../../utils/utils';\n\nexport const getTransaction = (state) => state.navigation.navigation.transaction;\nexport const getAttributes = (state) => state.navigation.navigation.attributes;\nexport const getAttributesWithTypes = (state) => state.navigation.navigation.attributesWithTypes;\nexport const getLoadState = (state) => state.navigation.navigation.loadState;\nexport const getError = (state) => state.navigation.navigation.error;\nexport const getRawPath = (state) => state.navigation.navigation.path;\nexport const getIdmSupport = (state) => state.navigation.navigation.isIdmSupported;\nexport const getSortState = (state) => state.tables[NAVIGATION_MAP_NODE_TABLE_ID];\n\nexport const getType = createSelector(getAttributes, (attributes) => attributes?.type);\n\nexport const getPath = createSelector(\n [getRawPath, getNavigationDefaultPath],\n (rawPath, defaultPath) => rawPath || defaultPath,\n);\n\nexport const getAttributesPath = createSelector(\n [getAttributes, getPath],\n (attributes, navigationPath) => attributes?.path || navigationPath,\n);\n\nexport const isNavigationFinalLoadState = createSelector([getLoadState], (state) => {\n return isFinalLoadingStatus(state);\n});\n\nexport const getParsedPath = createSelector(getPath, (path) => {\n try {\n return ypath.YPath.create(path, 'absolute');\n } catch (ex) {\n // eslint-disable-next-line no-console\n console.error(ex);\n }\n});\nexport const getActualPath = createSelector([getPath, getType], (path, type) => {\n return type === 'map_node' ? path + '/' : path;\n});\n\nexport const checkIsTrash = createSelector(\n [getPath],\n (path) => path.startsWith('//tmp/trash') || path.startsWith('//trash'),\n);\n","import React, {Component} from 'react';\n\nimport {YTErrorBlock} from '../../components/Error/Error';\nimport hammer from '../../common/hammer';\n\nimport {showErrorPopup} from '../../utils/utils';\nimport {YTError} from '../../types';\nimport {toaster} from '../../utils/toaster';\n\ninterface LoadDataHandlerProps {\n alwaysShowError?: boolean;\n loaded?: boolean;\n error?: boolean;\n errorData?: YTError;\n children: React.ReactNode;\n}\n\nexport default class LoadDataHandler extends Component<LoadDataHandlerProps> {\n componentDidUpdate() {\n const {error, loaded, errorData} = this.props;\n\n if (error && loaded) {\n toaster.add({\n theme: 'danger',\n name: 'network',\n autoHiding: 500000,\n title: 'Oops! something went wrong.',\n content: errorData ? (errorData as YTError).message : hammer.format.NO_VALUE,\n actions: [\n {\n label: ' view',\n onClick: () => showErrorPopup(errorData as YTError),\n },\n ],\n });\n }\n }\n\n render() {\n const {alwaysShowError = false, error, errorData, loaded, children} = this.props;\n\n const initialLoading = !loaded;\n\n if (error && (alwaysShowError || initialLoading)) {\n return <YTErrorBlock error={errorData} />;\n }\n\n return children;\n }\n}\n","import {addI18Keysets} from '../../../../../i18n/index';\n\nimport en from './en.json';\nimport ru from './ru.json';\n\nexport default addI18Keysets('yt:dialog-role-list', {en, ru});\n","import cn from 'bem-cn-lite';\n\nimport filter_ from 'lodash/filter';\nimport forEach_ from 'lodash/forEach';\nimport map_ from 'lodash/map';\n\nimport type {EditableManyListsItemType} from '../../../../components/Dialog';\nimport type {ResponsibleType, RoleConverted, Subject} from '../../../../utils/acl/acl-types';\nimport type {PreparedRole} from '../../../../utils/acl';\nimport {RoleListControlProps} from './RoleListControl';\n\nimport i18n from './i18n';\n\nexport const block = cn('role-list-control');\n\nexport function prepareRoleListValue(roles: Array<PreparedRole>, otherMembers: Array<string> = []) {\n const current: typeof roles = [];\n const toAdd: typeof roles = [];\n const toRemove: typeof roles = [];\n const unrecognized: typeof roles = [];\n forEach_(roles, (item) => {\n const {isUnrecognized, isRequested, isApproved, isDepriving} = item;\n if (isUnrecognized) {\n unrecognized.push(item);\n } else if (isDepriving) {\n toRemove.push(item);\n } else if (isApproved || isRequested) {\n toAdd.push(item);\n } else {\n current.push(item);\n }\n });\n\n const currentArr = current.map((item) => prepareItemOfCurrent(item));\n const otherArr = otherMembers.map((item) => ({\n title: item,\n data: {},\n frozen: true,\n }));\n\n return {\n newItems: [],\n current: {title: i18n('title_current'), data: currentArr.concat(otherArr)},\n toAdd: {\n title: i18n('title_will-be-added'),\n itemClassName: block('item-to-add'),\n data: toAdd.map((item) => prepareItemOfCurrent(item, {frozen: true})),\n },\n toRemove: {\n title: i18n('title_will-be-removed'),\n itemClassName: block('item-to-remove'),\n data: toRemove.map((item) => prepareItemOfCurrent(item, {frozen: true})),\n },\n unrecognized: {\n title: i18n('title_unrecognized'),\n itemClassName: block('item-unrecognized'),\n data: unrecognized.map((item) => prepareItemOfCurrent(item, {frozen: true})),\n },\n };\n}\n\nfunction prepareItemOfCurrent(role: PreparedRole, extraProps: any = {}) {\n return {\n title: role.text || role.value,\n data: role,\n ...extraProps,\n };\n}\n\nexport function roleListValueToSubjectList(\n value: RoleListControlProps['value'],\n): Array<ResponsibleType> {\n const {current, newItems, toAdd} = value;\n return [\n ...newItems,\n ...manyListDataItemToSubjectList(current),\n ...manyListDataItemToSubjectList(toAdd),\n ];\n}\n\nfunction manyListDataItemToSubjectList(\n manyListDataItem: EditableManyListsItemType<RoleConverted>,\n): Array<ResponsibleType> {\n const {data} = manyListDataItem || {};\n return map_(\n filter_(data, ({removed}) => !removed),\n ({data}) => {\n const {type, value} = data || {};\n return {type: type!, value: value!};\n },\n );\n}\n\nexport function extractChangedSubjects(value: {\n current: EditableManyListsItemType<RoleConverted>;\n newItems: Array<ResponsibleType>;\n}): {\n added: Subject[];\n removed: Subject[];\n} {\n const {current, newItems} = value;\n const added = newItems || [];\n const removed = ((current && current.data) || []).filter(({removed}) => removed);\n return {\n added: added.map(({type, value}) => {\n return type === 'users' ? {user: value} : {group: value};\n }),\n removed: removed.map(({data}) => {\n const {value, type} = data || {};\n return type === 'users' ? {user: value!} : {group: value!};\n }),\n };\n}\n","import React from 'react';\n\nexport function Chevron(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 16 16\"\n width=\"16\"\n height=\"16\"\n fill=\"currentColor\"\n aria-hidden\n {...props}\n >\n <path d=\"M3.50172 5.44253C3.19384 5.16544 2.71962 5.19039 2.44253 5.49828C2.16544 5.80616 2.19039 6.28038 2.49828 6.55747L3.50172 5.44253ZM8 10.5L7.49828 11.0575C7.7835 11.3142 8.2165 11.3142 8.50172 11.0575L8 10.5ZM13.5017 6.55747C13.8096 6.28038 13.8346 5.80616 13.5575 5.49828C13.2804 5.19039 12.8062 5.16544 12.4983 5.44253L13.5017 6.55747ZM2.49828 6.55747L7.49828 11.0575L8.50172 9.94253L3.50172 5.44253L2.49828 6.55747ZM8.50172 11.0575L13.5017 6.55747L12.4983 5.44253L7.49828 9.94253L8.50172 11.0575Z\" />\n </svg>\n );\n}\n","import React from 'react';\nimport filter_ from 'lodash/filter';\nimport cn from 'bem-cn-lite';\n\nimport {\n Button,\n Select,\n SelectOption,\n SelectProps,\n SelectRenderControlProps,\n Text,\n TextInput,\n} from '@gravity-ui/uikit';\n\nimport {Chevron} from '../../icons/Chevron';\nimport hammer from '../../common/hammer';\n\nimport {VisibleValues} from '../../components/VisibleValues/VisibleValues';\n\nimport './Select.scss';\n\nconst block = cn('yt-select');\n\nexport interface YTSelectProps<T extends string = string>\n extends Omit<SelectProps, 'options' | 'filter' | 'onChange' | 'onUpdate' | 'value'> {\n className?: string;\n value?: Array<T>;\n items: Array<Item<T>>;\n maxVisibleValues?: number;\n maxVisibleValuesTextLength?: number;\n hideClear?: boolean;\n hideFilter?: boolean;\n onChange?: (v: Required<YTSelectProps>['value']) => void;\n onUpdate?: (v: Array<T>) => void;\n\n renderItem?: (item: Item, useNoValue?: boolean) => React.ReactNode;\n}\n\nexport interface Item<T extends string = string> {\n value: T;\n text?: React.ReactNode;\n count?: number;\n icon?: React.ReactNode;\n}\n\nconst emptyValue: Array<string> = [];\n\nexport default function SelectFacade<T extends string = string>(props: YTSelectProps<T>) {\n const {items, onUpdate, onChange, value, ...rest} = props;\n const {options, hashByValue} = React.useMemo(() => {\n return prepareItems(items);\n }, [items]);\n\n const handleChange = React.useCallback(\n (newValue: Required<YTSelectProps<T>>['value']) => {\n onChange?.(newValue);\n onUpdate?.(newValue);\n },\n [onChange, onUpdate],\n );\n\n const filteredValue = React.useMemo(() => {\n const res = filter_(value, Boolean);\n return res.length ? res : emptyValue;\n }, [value]);\n\n return (\n <CustomSelect\n onUpdate={handleChange as any}\n {...rest}\n {...{value: filteredValue, options, hashByValue}}\n />\n );\n}\n\nSelectFacade.isEmpty = (value: YTSelectProps['value']) => {\n return !value?.length || (value.length === 1 && !value[0]);\n};\n\nSelectFacade.getDefaultValue = () => {\n return undefined;\n};\n\ninterface SelectSingleProps<T extends string>\n extends Omit<YTSelectProps<T>, 'value' | 'onUpdate' | 'onChange'> {\n value?: string;\n onChange?: (v?: string) => void;\n}\n\nexport function SelectSingle<T extends string = string>(props: SelectSingleProps<T>) {\n const {onChange, value, ...rest} = props;\n const handleChange = React.useCallback(\n (vals?: Array<string>) => {\n onChange?.(vals?.[0]);\n },\n [onChange],\n );\n return (\n <SelectFacade\n value={value !== undefined ? [value] : undefined}\n onChange={handleChange}\n {...rest}\n />\n );\n}\n\nSelectSingle.isEmpty = (value: SelectSingleProps<string>['value']) => {\n return !value;\n};\n\nSelectSingle.getDefaultValue = () => {\n return undefined;\n};\n\nfunction prepareItems(items: YTSelectProps['items']) {\n const hashByValue: Map<string, SelectOption> = new Map();\n const options = items.map((item) => {\n const {value} = item;\n const res = {\n value,\n data: item,\n };\n hashByValue.set(value, res);\n return res;\n });\n return {options, hashByValue};\n}\n\nfunction renderItemContent(item: Item, useNoValue = false) {\n const {value, text, icon} = item;\n const content = text || (value ? hammer.format['ReadableField'](value) : undefined);\n const empty = !content;\n return (\n <>\n {icon && <span className={block('item-icon')}>{icon}</span>}\n {empty ? (\n <Text className={block('empty')} color={'secondary'}>\n {useNoValue ? hammer.format.NO_VALUE : 'Empty string'}\n </Text>\n ) : (\n content\n )}\n </>\n );\n}\n\nclass CustomSelect extends React.Component<\n SelectProps &\n Pick<ValueControlProps, 'hashByValue' | 'maxVisibleValues'> &\n Pick<\n YTSelectProps,\n 'hideClear' | 'hideFilter' | 'renderItem' | 'maxVisibleValuesTextLength'\n >\n> {\n static defaultProps = {\n width: 'max',\n };\n\n render() {\n const {className, hideFilter, ...props} = this.props;\n return (\n <Select\n className={block(null, className)}\n disablePortal={false}\n {...props}\n options={props.options}\n filterable={!hideFilter}\n renderOption={this.renderOption}\n renderControl={this.renderControl}\n renderFilter={this.renderFilter}\n />\n );\n }\n\n renderControl: SelectProps['renderControl'] = ({ref, ...props}) => {\n const {\n value,\n className,\n label,\n pin,\n placeholder,\n disabled,\n width,\n hashByValue,\n maxVisibleValues,\n maxVisibleValuesTextLength,\n } = this.props;\n return (\n <ValueControl\n controlRef={ref}\n renderItem={this.renderItem}\n {...props}\n {...{\n className,\n value,\n placeholder,\n hashByValue,\n label,\n width,\n pin,\n disabled,\n maxVisibleValues,\n maxVisibleValuesTextLength,\n }}\n />\n );\n };\n\n renderItem = (item: Item, useNoValue?: boolean) => {\n const {renderItem} = this.props;\n return renderItem ? renderItem(item, useNoValue) : renderItemContent(item, useNoValue);\n };\n\n renderOption = (option: SelectOption) => {\n const {data: item} = option;\n const {count} = item as Item;\n\n const content = this.renderItem(item);\n\n const meta = typeof count === 'number' ? String(count) : undefined;\n\n const text = <Text className={block('item-text')}>{content}</Text>;\n\n if (meta) {\n return (\n <>\n {text}\n <Text ellipsis className={block('item-count')} color=\"secondary\">\n {' '}\n {count}\n </Text>\n </>\n );\n }\n\n return text;\n };\n\n renderFilter: SelectProps['renderFilter'] = ({ref, onChange, ...props}) => {\n const {hideClear, value} = this.props;\n const filter = <TextInput controlRef={ref} onUpdate={onChange} {...props} />;\n if (hideClear || !value?.length) {\n return filter;\n }\n\n return (\n <div className={block('filter')}>\n {filter}\n <span className={block('filter-btn')}>\n <Button view=\"flat-secondary\" onClick={() => this.props.onUpdate?.([])}>\n Clear\n </Button>\n </span>\n </div>\n );\n };\n}\n\ntype Extra = Parameters<Required<SelectProps>['renderControl']>[0];\n\ninterface ValueControlProps extends Omit<Extra, 'ref' | 'triggerProps'> {\n controlRef: React.Ref<HTMLElement>;\n hashByValue: Map<string, SelectOption>;\n maxVisibleValues?: YTSelectProps['maxVisibleValues'];\n placeholder?: SelectProps['placeholder'];\n className?: string;\n triggerProps?: SelectRenderControlProps['triggerProps'];\n}\n\nfunction ValueControl({\n className,\n value,\n label,\n hashByValue,\n controlRef,\n width,\n pin,\n disabled,\n maxVisibleValues,\n maxVisibleValuesTextLength,\n placeholder,\n renderItem,\n triggerProps,\n}: ValueControlProps &\n Pick<SelectProps, 'value' | 'pin' | 'label' | 'width' | 'disabled'> &\n Pick<Required<YTSelectProps>, 'renderItem'> &\n Pick<YTSelectProps, 'maxVisibleValuesTextLength'>) {\n const {w, style} =\n typeof width !== 'number' ? {w: width, style: undefined} : {style: {width}, w: undefined};\n\n return (\n <Button\n className={block(null, className)}\n ref={controlRef as any}\n view=\"outlined\"\n onClick={triggerProps?.onClick}\n width={w}\n style={style}\n {...{pin, disabled}}\n >\n <span className={block('control-value')}>\n {label && <Text className={block('control-label')}>{label}</Text>}\n {!value?.length ? (\n <Text color=\"hint\" variant=\"inherit\">\n {placeholder ?? hammer.format.NO_VALUE}\n </Text>\n ) : (\n <VisibleValues\n value={value}\n maxVisibleValues={maxVisibleValues}\n maxTextLength={maxVisibleValuesTextLength}\n renderItem={(item: string) => {\n const option = hashByValue.get(item);\n if (option) {\n return renderItem(option.data, true);\n }\n return <Text color=\"secondary\">{renderItem({value: item}, true)}</Text>;\n }}\n />\n )}\n </span>\n <Chevron className={block('chevron')} />\n </Button>\n );\n}\n","import {Page} from '../../../shared/constants/settings';\nimport {YT} from '../../config/yt-config';\nimport type {Tab as NavigationTab} from '../../constants/navigation';\nimport {ValueOf} from '../../types';\n\nimport {TabletErrorsByPathState} from '../../store/reducers/navigation/tabs/tablet-errors/tablet-errors-by-path';\nimport {getNavigationParams} from '../../store/reducers/navigation/url-mapping';\nimport {makeURLSearchParams} from './utils';\n\nexport function makeNavigationLink(params: {\n path: string;\n cluster?: string;\n navmode?: ValueOf<typeof NavigationTab>;\n teMode?: 'request_errors';\n teTime?: TabletErrorsByPathState['timeRangeFilter'];\n teMethods?: Array<string>;\n}) {\n const {cluster, ...rest} = params;\n const res = `/${cluster || YT.cluster}/${Page.NAVIGATION}`;\n const search = makeURLSearchParams(rest, getNavigationParams()).toString();\n return search ? `${res}?${search}` : res;\n}\n","import {LocationParameters} from '../../store/location';\n\nexport function makeURLSearchParams<T extends object>(params: T, info: LocationParameters) {\n const res = new URLSearchParams();\n Object.keys(params).reduce((acc, k) => {\n const value = params[k as keyof T];\n if (k in info) {\n if (info[k].options?.serialize) {\n const tmp = info[k].options?.serialize?.(value);\n if (tmp !== undefined) {\n res.append(k, tmp + '');\n }\n } else {\n res.append(k, value + '');\n }\n }\n return acc;\n }, res);\n return res;\n}\n","import {createSelector} from 'reselect';\n\nimport compact_ from 'lodash/compact';\nimport filter_ from 'lodash/filter';\nimport flatten_ from 'lodash/flatten';\nimport forEach_ from 'lodash/forEach';\nimport map_ from 'lodash/map';\nimport sortBy_ from 'lodash/sortBy';\nimport uniq_ from 'lodash/uniq';\nimport partition_ from 'lodash/partition';\nimport isEqual_ from 'lodash/isEqual';\nimport some_ from 'lodash/some';\n\nimport {calculateLoadingStatus} from '../../utils/utils';\nimport {concatByAnd} from '../../common/hammer/predicate';\nimport {\n getAclFilterColumnGroupName,\n getAclFilterColumns,\n getAclFilterExpandedSubjects,\n getApproversSubjectFilter,\n getObjectPermissionsFilter,\n getObjectSubjectFilter,\n} from './acl-filters';\nimport UIFactory from '../../UIFactory';\nimport {RootState} from '../../store/reducers';\nimport {IdmKindType, PreparedAclSubject} from '../../utils/acl/acl-types';\nimport {YTPermissionTypeUI} from '../../utils/acl/acl-api';\nimport {PreparedRole} from '../../utils/acl';\n\nexport type PreparedAclSubjectColumn = Omit<PreparedAclSubject, 'type'> & {type: 'columns'};\n\nfunction prepareColumnsNames(columnsPermissions: Array<{columns?: Array<string>}>) {\n const columns = map_(columnsPermissions, (permission) => permission.columns);\n\n return compact_(uniq_(flatten_(columns))).sort();\n}\n\nfunction prepareApprovers(\n approvers: Array<PreparedRole> | undefined,\n type: 'read_approver' | 'responsible' | 'auditor',\n) {\n return map_(approvers, (subject) => {\n const extra = {\n type,\n subjects: [subject.value],\n subjectType: subject.type === 'users' ? ('user' as const) : ('group' as const),\n groupInfo:\n subject.type === 'groups'\n ? {name: subject.group_name, url: subject.url, group: undefined}\n : undefined,\n action: undefined,\n };\n return {\n ...subject,\n ...extra,\n };\n });\n}\n\nexport type PreparedApprover = ReturnType<typeof prepareApprovers>[number];\n\nexport const getAllUserPermissions = (state: RootState, idmKind: IdmKindType) =>\n state.acl[idmKind].userPermissions;\nconst getAllObjectPermissions = (state: RootState, idmKind: IdmKindType) =>\n state.acl[idmKind].objectPermissions;\n\nconst getAllObjectPermissionsWithSplittedSubjects = createSelector(\n [getAllObjectPermissions],\n splitSubjects,\n);\n\nexport const getObjectPermissionsTypesList = (idmKind: IdmKindType) => {\n return createSelector(\n [\n getObjectPermissionsFilter,\n (state) => getAllObjectPermissionsWithSplittedSubjects(state, idmKind),\n ],\n (permissionsFilter, items) => {\n const uniquePermisions = new Set<YTPermissionTypeUI>();\n const {permissionTypes} = UIFactory.getAclPermissionsSettings()[idmKind] || {};\n [...permissionTypes, ...permissionsFilter].forEach((permission) =>\n uniquePermisions.add(permission),\n );\n items.forEach((item) => {\n const {permissions} = item;\n permissions?.forEach((permission) => uniquePermisions.add(permission));\n });\n return sortBy_([...uniquePermisions], (permission) => permission);\n },\n );\n};\n\ntype HasSplitted = {\n isSplitted?: boolean;\n subjectIndex?: number;\n};\n\nfunction splitSubjects<T extends {subjects: Array<unknown>}>(items: Array<T>) {\n const res: Array<T & HasSplitted> = [];\n forEach_(items, (item) => {\n const {subjects} = item;\n if (subjects && subjects.length > 1) {\n forEach_(subjects, (subject, index) => {\n res.push({...item, subjects: [subject], isSplitted: true, subjectIndex: index});\n });\n } else {\n res.push(item);\n }\n });\n return res;\n}\n\nfunction subjectFilterPredicate<\n T extends {subjectType?: unknown; groupInfo?: unknown; subjects: Array<unknown>},\n>(item: T, filter: string) {\n const {subjectType, groupInfo} = item;\n if (subjectType === 'group') {\n return some_(Object.entries(groupInfo ?? {}), ([key, value]) => {\n let str: string | undefined = String(value);\n if (key === 'url') {\n if (str[str.length - 1] === '/') str = str.slice(0, -1);\n str = str.split('/').pop();\n }\n return -1 !== str?.toLowerCase().indexOf(filter);\n });\n }\n const value = String(item.subjects[0] ?? '');\n return -1 !== value.toLowerCase().indexOf(filter);\n}\n\nfunction FilterBySubject<\n T extends {subjectType?: unknown; groupInfo?: unknown; subjects: Array<unknown>},\n>(items: Array<T>, subjectFilter?: string) {\n if (!subjectFilter) return items;\n const lowerNameFilter = subjectFilter.toLowerCase();\n return filter_(items, (item) => subjectFilterPredicate(item, lowerNameFilter));\n}\n\nconst permissionsFilterPredicate = (item: PreparedAclSubject, filter: Set<YTPermissionTypeUI>) => {\n const {permissions} = item;\n let foundCount = 0;\n return permissions?.some((p) => {\n if (filter.has(p)) {\n foundCount++;\n }\n return foundCount >= filter.size;\n });\n};\n\ntype ObjectPermissionsRow = PreparedAclSubject & HasSplitted;\n\nexport const getAllObjectPermissionsFiltered = createSelector(\n [\n getAllObjectPermissionsWithSplittedSubjects,\n getObjectSubjectFilter,\n getObjectPermissionsFilter,\n getAclFilterColumns,\n ],\n (items, subjectFilter, permissionsFilter, columns) => {\n const [mainPermissions, columnPermissions] = partition_(\n items,\n (item) => !item.columns?.length,\n );\n\n const withColumns = columnPermissions.map((item) => {\n return {...item, columns: sortBy_(item.columns)};\n });\n\n const lowerNameFilter = subjectFilter?.toLocaleLowerCase();\n const filterBySubject = lowerNameFilter\n ? (item: ObjectPermissionsRow) => subjectFilterPredicate(item, lowerNameFilter)\n : undefined;\n\n const permissionsFilterSet = new Set<YTPermissionTypeUI>(permissionsFilter);\n const filterByPermissions = permissionsFilterSet.size\n ? (item: ObjectPermissionsRow) =>\n permissionsFilterPredicate(item, permissionsFilterSet) ?? false\n : undefined;\n\n const visibleColumns = new Set(columns);\n const filterByColumns = visibleColumns.size\n ? ({columns}: ObjectPermissionsRow) => {\n return columns?.some((colName) => visibleColumns.has(colName)) ?? false;\n }\n : undefined;\n\n const mainPredicates = compact_([filterBySubject, filterByPermissions]);\n const columnsPredicates = compact_([filterBySubject, filterByColumns]);\n return {\n mainPermissions: mainPredicates.length\n ? mainPermissions.filter(concatByAnd(...mainPredicates))\n : mainPermissions,\n columnsPermissions: columnsPredicates.length\n ? withColumns.filter(concatByAnd(...columnsPredicates))\n : withColumns,\n };\n },\n);\n\nexport const getObjectPermissionsAggregated = createSelector(\n [getAllObjectPermissionsFiltered, getAclFilterExpandedSubjects],\n ({mainPermissions, columnsPermissions}, expandedSubjects) => {\n return {\n mainPermissions: {\n ...aggregateBySubject(mainPermissions, expandedSubjects),\n count: mainPermissions.length,\n },\n columnsPermissions: {\n ...aggregateBySubject(columnsPermissions, expandedSubjects),\n count: columnsPermissions.length,\n },\n };\n },\n);\n\nclass AggregateBySubject {\n aggrKey: string;\n subject: ObjectPermissionsRow['subjects'][number];\n inherited: boolean;\n\n allPermissions = new Set<YTPermissionTypeUI>();\n columns = new Set<string>();\n first: ObjectPermissionsRow;\n children = new Array<ObjectPermissionsRow & {expanded?: boolean; level?: number}>();\n\n constructor(first: AggregateBySubject['first']) {\n if (first.subjects.length > 1) {\n throw new Error(\n `Unexpected behavior: more than one subject occured: ${first.subjects.join(',')}`,\n );\n }\n\n this.aggrKey = aggregationKey(first);\n this.inherited = Boolean(first.inherited);\n this.subject = first.subjects[0];\n this.first = {...first};\n this.add(first);\n }\n\n add(item: ObjectPermissionsRow) {\n const aggrKey = aggregationKey(item);\n if (this.aggrKey !== aggrKey) {\n throw new Error(\n `Unexpected behavior: aggregation keys are not queal: ${this.aggrKey} !== ${aggrKey}`,\n );\n }\n\n if (item.subjects.length !== 1) {\n throw new Error(\n `Unexpected behavior: item.subjects.length !== 1: ${JSON.stringify(item)}`,\n );\n }\n\n const child = {...item, permissions: [...(item.permissions ?? [])]};\n this.children.push(child);\n\n child.permissions?.sort();\n child.permissions?.forEach((p) => {\n this.allPermissions.add(p);\n });\n item.columns?.forEach((column) => this.columns.add(column));\n\n this.first.isMissing ||= Boolean(item.isMissing);\n this.first.isUnrecognized ||= Boolean(item.isUnrecognized);\n this.first.isApproved ||= Boolean(item.isApproved);\n this.first.isRequested ||= Boolean(item.isRequested);\n }\n\n getItems(expanded: boolean): {\n items: AggregateBySubject['children'];\n hasExpandable?: boolean;\n hasDenyAction?: boolean;\n hasInherited?: boolean;\n } {\n const hasInherited = this.inherited;\n if (this.children.length === 1) {\n return {items: this.children, hasInherited};\n }\n\n const first: typeof this.first & {level?: number; expanded?: boolean} = {\n ...this.first,\n level: 0,\n expanded,\n };\n first.permissions = [...this.allPermissions].sort();\n first.columns = [...this.columns].sort();\n\n let hasDenyAction = false;\n const items = !expanded\n ? [first]\n : [\n first,\n ...sortBy_(this.children, ['inheritance_mode', 'permissions']).map((i) => {\n hasDenyAction ||= i.action === 'deny';\n return {...i, level: 1};\n }),\n ];\n\n this.children.forEach((i) => {\n if (i.inheritance_mode !== first.inheritance_mode) {\n first.inheritance_mode = undefined;\n }\n if (!isEqual_(this.first.inheritedFrom, i.inheritedFrom)) {\n first.inheritedFrom = undefined;\n }\n });\n\n return {items, hasExpandable: true, hasDenyAction, hasInherited};\n }\n}\n\nexport type ObjectPermissionRowWithExpand = AggregateBySubject['children'][number];\n\nfunction aggregationKey(item: ObjectPermissionsRow) {\n const {\n inherited,\n subjects: [subject],\n } = item;\n return `subject:${subject}_inherited:${Boolean(inherited)}`;\n}\n\nfunction aggregateBySubject(\n objPermissions: Array<ObjectPermissionsRow>,\n expandedSubjects: Set<string | number>,\n) {\n const aggregated: Record<string, AggregateBySubject> = {};\n\n objPermissions.forEach((item) => {\n const aggKey = aggregationKey(item);\n const dst = aggregated[aggKey];\n if (!dst) {\n aggregated[aggKey] = new AggregateBySubject(item);\n } else {\n dst.add(item);\n }\n });\n\n const res = Object.values(aggregated).reduce(\n (acc, item) => {\n const {items, hasExpandable, hasInherited} = item.getItems(\n expandedSubjects.has(item.subject),\n );\n acc.items = acc.items.concat(items);\n acc.hasExpandable ||= hasExpandable;\n acc.hasInherited ||= hasInherited;\n return acc;\n },\n {items: []} as ReturnType<AggregateBySubject['getItems']>,\n );\n\n const [inherited, other] = partition_(res.items, (item) => item.inherited);\n\n return {\n ...res,\n items: [...inherited, ...other],\n };\n}\n\nexport const getAllObjectPermissionsOrderedByStatus = createSelector(\n [getAllObjectPermissions],\n OrderByRoleStatus,\n);\nexport const getAllColumnGroups = (state: RootState, idmKind: IdmKindType) =>\n state.acl[idmKind].columnGroups;\nexport const getAllColumnGroupsActual = createSelector(\n [getAllColumnGroups, getAclFilterColumns, getAclFilterColumnGroupName],\n (items, columnsFilter, nameFilter) => {\n const visibleColumns = new Set(columnsFilter);\n type ItemType = (typeof items)[number];\n const nameFilterLower = nameFilter?.toLowerCase();\n const predicates = compact_([\n (item: ItemType) => {\n return !item.removed;\n },\n visibleColumns.size > 0\n ? (item: ItemType) => {\n return item.columns?.some((name) => visibleColumns.has(name)) ?? false;\n }\n : undefined,\n nameFilterLower?.length\n ? (item: ItemType) =>\n -1 !== (item.name?.toLowerCase()?.indexOf(nameFilterLower) ?? -1)\n : undefined,\n ]);\n const filtered = filter_(items, concatByAnd(...predicates)).map((item) => {\n return {...item, columns: sortBy_(item.columns)};\n });\n return sortBy_(filtered, ['name']);\n },\n);\n\nfunction OrderByRoleStatus<\n T extends {\n isDepriving?: boolean;\n isRequested?: boolean;\n isUnrecognized?: boolean;\n isApproved?: boolean;\n },\n>(items: Array<T>) {\n const unrecognized: typeof items = [];\n const requested: typeof items = [];\n const depriving: typeof items = [];\n const rest: typeof items = [];\n forEach_(items, (item) => {\n const {isDepriving, isRequested, isUnrecognized, isApproved} = item;\n if (isUnrecognized) {\n unrecognized.push(item);\n } else if (isDepriving) {\n depriving.push(item);\n } else if (isRequested || isApproved) {\n requested.push(item);\n } else {\n rest.push(item);\n }\n });\n return [...requested, ...depriving, ...unrecognized, ...rest];\n}\n\nfunction OrderByInheritanceAndSubject<T extends {inherited?: boolean; subjects: Array<unknown>}>(\n items: Array<T>,\n) {\n const res = sortBy_(items, [\n (item) => !item.inherited,\n (item) => (item.subjects && item.subjects[0]) || true,\n ]);\n return res;\n}\n\nconst getReadApprovers = (state: RootState, idmKind: IdmKindType) =>\n state.acl[idmKind].readApprovers;\nconst getResponsibles = (state: RootState, idmKind: IdmKindType) => state.acl[idmKind].responsible;\nconst getAuditors = (state: RootState, idmKind: IdmKindType) => state.acl[idmKind].auditors;\n\nexport const getNotInheritedReadApprovers = createSelector([getReadApprovers], (readApprovers) =>\n filter_(readApprovers, (readApprover) => !readApprover.inherited),\n);\nexport const getNotInheritedResponsibles = createSelector([getResponsibles], (responsibles) =>\n filter_(responsibles, (responsible) => !responsible.inherited),\n);\nexport const getNotInheritedAuditors = createSelector([getAuditors], (auditros) =>\n filter_(auditros, (auditro) => !auditro.inherited),\n);\n\nconst getAllApprovers = createSelector(\n [getReadApprovers, getResponsibles, getAuditors],\n (readApprovers, responsibles, auditros) => {\n return [\n ...prepareApprovers(readApprovers, 'read_approver'),\n ...prepareApprovers(responsibles, 'responsible'),\n ...prepareApprovers(auditros, 'auditor'),\n ];\n },\n);\n\nexport const getHasApprovers = createSelector([getAllApprovers], (items) => items.length > 0);\n\nexport const getApproversFiltered = createSelector(\n [getAllApprovers, getApproversSubjectFilter],\n FilterBySubject,\n);\n\nexport const getApproversFilteredAndOrdered = createSelector(\n [getApproversFiltered],\n OrderByInheritanceAndSubject,\n);\n\nexport const getApprovers = createSelector([getAllApprovers], OrderByRoleStatus);\n\nexport const getAllAccessColumnsPermissions = createSelector(\n [getAllObjectPermissions],\n (objectPermissions) => {\n const filteredPermissions = filter_(\n objectPermissions,\n (permission) => permission.action === 'allow' && permission.columns?.length! > 0,\n );\n\n return map_(filteredPermissions, (item) => {\n const tmp: typeof item = {...item};\n tmp.type = 'columns';\n return tmp;\n });\n },\n);\n\nconst getAllDenyColumnsPermissions = createSelector(\n [getAllObjectPermissions],\n (objectPermissions) => {\n const filteredPermissions = filter_(\n objectPermissions,\n (permission) => permission.action === 'deny' && permission.columns?.length! > 0,\n );\n\n return map_(\n filteredPermissions,\n (permission) =>\n ({\n ...permission,\n type: 'columns',\n }) as PreparedAclSubjectColumn,\n );\n },\n);\n\nexport const getAllAccessColumnsNames = createSelector(\n [getAllAccessColumnsPermissions],\n prepareColumnsNames,\n);\n\nexport const getAllDenyColumnsNames = createSelector(\n [getAllDenyColumnsPermissions],\n prepareColumnsNames,\n);\n\nexport const getDenyColumnsItems = createSelector([getAllDenyColumnsNames], (names) =>\n map_(names, (name) => ({key: name, value: name, title: name})),\n);\n\nexport const isPermissionDeleted = (state: RootState, idmKind: IdmKindType) =>\n state.acl[idmKind].isPermissionDeleted;\nexport const permissionDeletionError = (state: RootState, idmKind: IdmKindType) =>\n state.acl[idmKind].deletionError;\nexport const getLastDeletedPermissionKey = (state: RootState, idmKind: IdmKindType) =>\n state.acl[idmKind].deletedItemKey;\nexport const getIdmPermissionsRequestError = (state: RootState, idmKind: IdmKindType) =>\n state.acl[idmKind].idmPermissionsRequestError;\nexport const getIdmManageAclRequestError = (state: RootState, idmKind: IdmKindType) =>\n state.acl[idmKind].idmManageAclRequestError;\nexport const getIdmPathVersion = (state: RootState, idmKind: IdmKindType) =>\n state.acl[idmKind].version;\n\nconst getAclLoading = (state: RootState, idmKind: IdmKindType) => state.acl[idmKind].loading;\nconst getAclLoaded = (state: RootState, idmKind: IdmKindType) => state.acl[idmKind].loaded;\nconst getAclError = (state: RootState, idmKind: IdmKindType) => state.acl[idmKind].error;\n\nexport const getAclLoadState = createSelector(\n [getAclLoading, getAclLoaded, getAclError],\n (loading, loaded, error) => {\n return calculateLoadingStatus(loading, loaded, error);\n },\n);\n","import React from 'react';\nimport PropTypes from 'prop-types';\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","import * as React from 'react';\nconst Check = (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: \"M13.488 3.43a.75.75 0 0 1 .081 1.058l-6 7a.75.75 0 0 1-1.1.042l-3.5-3.5A.75.75 0 0 1 4.03 6.97l2.928 2.927 5.473-6.385a.75.75 0 0 1 1.057-.081\", clipRule: \"evenodd\" })));\nexport default Check;\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 unipika from '../../common/thor/unipika';\nimport block from 'bem-cn-lite';\n\nimport Link from '../../components/Link/Link';\n\nimport hammer from '../../common/hammer';\nimport {showErrorPopup} from '../../utils/utils';\n\nimport './utils.scss';\n\nfunction wrapRenderMethods(templates) {\n return Object.keys(templates).reduce((newTemplates, key) => {\n newTemplates[key] = templates[key];\n\n return newTemplates;\n }, {});\n}\n\n/**\n * Template must be a scoped function, because they are bound to elements-table component instance\n * @param {ViewModel} item\n * @param {String} columnName\n */\nfunction defaultTemplate(item, columnName) {\n return String(hammer.format['ValueOrDefault'](item[columnName]));\n}\n\nfunction prepareTextProps(text, asHTML) {\n const props = {};\n\n if (asHTML) {\n // Need to render html strings\n props.dangerouslySetInnerHTML = {__html: text};\n } else {\n props.children = unipika.decode(String(text));\n }\n\n return props;\n}\n\nexport function renderText(text, settings = {}) {\n let className = block('elements-text');\n\n if (settings.mix) {\n className = className(\n false,\n block(settings.mix.block)(settings.mix.elem, {\n ...settings.mix.mods,\n }),\n );\n } else {\n className = className();\n }\n\n const textProps = prepareTextProps(text, settings.asHTML);\n\n const title = settings.title || text;\n\n return <span {...textProps} title={title} className={className} />;\n}\n\nexport function printColumnAsBytes(item, columnName) {\n const column = this.getColumn(columnName);\n return hammer.format['Bytes'](column.get(item));\n}\n\nexport function printColumnAsNumber(item, columnName) {\n const column = this.getColumn(columnName);\n return hammer.format['Number'](column.get(item));\n}\n\nexport function printColumnAsTimeDurationWithMs(item, columnName) {\n const column = this.getColumn(columnName);\n return hammer.format['TimeDuration'](column.get(item), {\n format: 'milliseconds',\n });\n}\n\nexport function printColumnAsReadableField(item, columnName) {\n const column = this.getColumn(columnName);\n return (\n <span className=\"elements-ellipsis\">\n {hammer.format['ReadableField'](column.get(item))}\n </span>\n );\n}\n\nexport function printColumnAsTime(item, columnName) {\n const value = this?.getColumn ? this.getColumn(columnName).get(item) : item[columnName];\n return <ColumnAsTime value={value} />;\n}\n\nexport function ColumnAsTime({value}) {\n return (\n <span className=\"elements-ellipsis\">\n {hammer.format['DateTime'](value, {format: 'full'})}\n </span>\n );\n}\n\nexport function printColumnAsError(error) {\n const showError = () => {\n showErrorPopup(error, {hideOopsMsg: true});\n };\n return typeof error === 'object' ? (\n <Link theme=\"ghost\" onClick={showError}>\n View\n </Link>\n ) : (\n hammer.format.NO_VALUE\n );\n}\n\n// Using prepared table data\nexport function asBytes(item, columnName) {\n return hammer.format['Bytes'](item[columnName]);\n}\n\nexport function asNumber(item, columnName) {\n return hammer.format['Number'](item[columnName]);\n}\n\nexport default {\n __default__: defaultTemplate,\n _templates: {},\n add: function (templateId, templates) {\n this._templates[templateId] = wrapRenderMethods(templates);\n },\n get: function (templateId) {\n return this._templates[templateId] || {};\n },\n};\n"],"names":["props","_jsx","_objectSpread","xmlns","fill","viewBox","children","fillRule","d","clipRule","block","cn","ExpandButton","_ref","className","expanded","inline","toggleExpanded","all","showText","size","qa","titleExpanded","titleCollapsed","_jsxs","Button","view","title","onClick","Icon","data","doubleShevronRightSvg","shevronRightSvg","PermissionsControl","_Component","_this","_classCallCheck","_len","arguments","length","args","Array","_key","_callSuper","concat","state","handleCheckboxChange","permissionName","permissionsToSet","_this$props","value","onChange","permissions","rest","_objectWithoutProperties","map","_toPropertyKey","_defineProperty","_inherits","_createClass","key","index","_this2","_this$props2","this","disabled","disabledChoices","itemDisabled","indexOf_","Checkbox","checked","Boolean","content","format","ReadableField","choices","_this3","map_","item","name","getChoiceName","React","renderPermissionCheckbox","_this$props3","error","renderChoices","choice","join","isEmpty_","Component","hasErrorRenderer","getDefaultValue","getApproversSubjectFilter","aclFilters","approversSubject","getObjectSubjectFilter","objectSubject","getObjectPermissionsFilter","objectPermissions","getAclFilterColumns","columnsFilter","getAclFilterColumnGroupName","columnGroupNameFilter","getAclFilterExpandedSubjects","expandedSubjects","getAclCurrentTab","aclCurrentTab","VisibleValues","maxVisibleValues","maxTextLength","_ref$renderItem","renderItem","counter","visibleItems","maxCounts","undefined","i","sum","newSum","push","visibleCount","min_","slice","max_","hasMissing","hideSpacer","option","_Fragment","missing","SelectedCount","count","mode","_ref2","_ref2$count","_ref2$visibleCount","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","DialogError","YTErrorBlock","makeErrorFields","errors","compact_","type","extras","FORM_ERROR","makeFormSubmitError","validationErrors","importYTDFDialog","YTDFDialog","withLazyLoading","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_context","prev","next","t0","sent","YTDialog","abrupt","stop","_React$useState","_React$useState2","_slicedToArray","mounted","setMounted","visible","_callee2","_context2","RoleListControl","EditableList","_callee3","_context3","TabFieldVertical","_callee4","_context4","useAvailablePermissions","idmKind","path","_UIFactory$getAclPerm","UIFactory","getAclPermissionsSettings","permissionsToRequest","permissionTypes","getAvailablePermissions","requestable","permissionsToCheck","result","setAvailablePermissions","then","prevState","makeComponentsNodesUrl","host","cluster","YT","Page","COMPONENTS","ComponentsTab","NODES","makeProxyUrl","address","RPC_PROXIES","makeSchedulingUrl","pool","poolTree","tab","filter","makeAccountsUrl","account","makeFlowLink","_ref4","_ref4$tab","FlowTab","GRAPH","computation","partition","partitionIdFilter","worker","pathname","FLOWS","params","URLSearchParams","COMPUTATIONS","encodeURIComponent","append","WORKERS","prepareUserPermissions","userPermissions","action","getPathToCheckPermissions","_x","_x2","_x3","_getPathToCheckPermissions","apply","entityName","fullPath","_context5","IdmObjectType","ACCESS_CONTROL_OBJECT","UI_EFFECTIVE_ACL","PATH","ACCOUNT","POOL","TABLET_CELL_BUNDLE","ytApiV3Id","get","YTApiId","schedulingPoolFullPath","Error","loadAclData","normalizedPoolTree","options","userPermissionsPath","_ref3","dispatch","getState","_state$global","login","_state$global$cluster","pathToCheckPermissions","pathToCheckUserPermissions","global","LOAD_DATA","REQUEST","getTree","Promise","getAcl","kind","sysPath","checkUserPermissionsUI","getResponsible","_ref5","acl","responsible","SUCCESS","version","auditors","columnGroups","column_groups","inheritAcl","readApprovers","disableAclInheritance","bossApproval","disableInheritanceResponsible","t1","FAILURE","_x4","_x5","deletePermissions","_ref6","roleKey","itemToDelete","_ref8","_getState$global$clus","deletePermissionsPath","DELETE_PERMISSION","getAclApi","deleteRole","isCancelled","CANCELLED","reject","_x6","_x7","dateToDaysAfterNow","date","Math","round","getTime","Date","now","requestPermissions","_ref9","values","_ref1","_values$comment","_state$global$cluster2","_UIFactory$getAclApi","_UIFactory$getAclApi$","requestPermissionsFlags","daysAfter","roles","rolesGroupedBySubject","inheritance_mode","permissionFlags","readColumnGroup","readColumns","_iterator","_step","_loop","requestPermissionsPath","REQUEST_PERMISSION","duration","_createForOfIteratorHelper","subjects","subject","commonPart","flattenPermissions","prepareAclSubject","deprive_after_days","Object","entries","forEach","_ref10","_ref11","flagInfo","applyToRequestedRole","flatten_","columns","forEach_","convertFromUIPermissions","role_type","column_group_id","s","n","done","delegateYield","e","f","finish","roles_grouped","comment","_x8","_x9","cancelRequestPermissions","_ref12","updateAcl","_ref13","_getState$global$clus2","UPDATE_ACL","_error$response","response","cancelUpdateAcl","_ref15","assign","width","height","TextInputWithDebounce","_props$debounce","debounce","_props$onUpdate","onUpdate","onBlur","onEnterKeyDown","onKeyDown","_excluded","input","setInput","handleChangeExt","debounce_","handleChange","text","handleKeyDown","handleBlur","cancel","TextInput","updateAclFilters","ACL_CHANGE_FILTERS","toggleExpandAclSubject","Set","has","add","EditColumnGroupModal","confirmText","handleClose","handleSubmit","initialData","_ref$disabledFields","disabledFields","_useState","useState","_useState2","setError","initialValues","useMemo","String","enabled","pristineSubmittable","modal","headerProps","footerProps","textApply","onClose","onAdd","form","_form$getState$values","err","fields","required","caption","placeholder","includes_","tooltip","_toConsumableArray","ColumnGroups","loaded","loadAclDataFn","_ref$allowEdit","allowEdit","userPermissionsAccessColumns","setModalProps","prevProps","_value","resolve","modalProps","header","render","row","Power","align","_row$columns","renderText","column","delete","id","deleteColumnGroup","awesome","edit","editColumnGroup","ErrorBoundary","createColumnGroup","WithStickyToolbar","topMargin","bottomMargin","toolbar","Toolbar","itemsToWrap","node","ColumnGroupsFilter","shrinkable","DataTableYT","noItemsText","theme","settings","sortable","displayIndices","Select","multiple","hasClear","filterable","label","items","maxVisibleValuesTextLength","DeletePermissionModal","confirm","checkConfirmDisabled","toggleConfirm","setState","deleteItem","isPermissionDeleted","lastItemKey","inherited","inheritanceMode","Modal","onConfirm","loading","onCancel","onOutsideClick","isConfirmDisabled","MetaTable","hammer","NO_VALUE","Label","message","compose","withVisible","handleShow","manageAclError","errorData","handleModalOpen","useCallback","handleUpdateAclClose","inheritanceResponsible","disableInheritance","roleListValueToSubjectList","manageAclDialogFields","maxVisibleCount","manageAclFields","dialogFields","permissionsSettings","idmKindConditions","allowBossApprovals","allowAuditors","allowReadApprovers","allowInheritResponsibles","CommonDialog","open","Header","Body","LoadDataHandler","Loader","prepareRoleListValue","formExtras","initialValuesEqual","isEqual_","hasWarning","setHasWarning","inheritAcl_warning","manageInheritanceFields","buttonsTitle","allowInheritAcl","_ref$editInheritance","editInheritance","AclActions","_args","_args2","_args3","aclMode","requestPermissionsError","updateAclError","Flex","gap","RequestPermissions","AclMode","COLUMN_GROUPS_PERMISSISONS","ManageInheritance","ManageAcl","MyPermissions","visibleUserPermissions","groups","PermissionsGroup","direction","alignItems","color","xMarkSvg","checkSvg","Readable","ApproversFilters","useDispatch","subjectFilter","useSelector","Filter","autofocus","ObjectPermissionsFilters","selectedPermissons","permissionList","getObjectPermissionsTypesList","p","SegmentControl","background","SegmentGroup","rowGap","SegmentValue","role","url","idmLink","Value","isValidUrl","Link","target","href","_typeof","bool","ACL_MODE_OPTIONS","MAIN_PERMISSIONS","AclModeControl","SegmentedRadioGroup","AclColumnsCell","_items$map","expanadable","v","unipika","decode","fillOpacity","InheritanceMessage","makeNavigationLink","urlFromData","routed","routedPreserveLocation","ACL","handleDeletePermissionClick","handleCloseDeleteModal","deletePermissionsFn","res","hasInherited","openDeleteModal","_this$props4","expand","inheritedFrom","level","Tooltip","placement","hidden","aclInheritedSvg","grow","renderSubjectLink","keys","renderIcon","_row$permissions","actions","_ref7","RoleActions","getComponentForAclRoleActions","onDelete","approve_type","unrecognized","isUnrecognized","depriving","isDepriving","requested","isRequested","approved","isApproved","isMissing","_this$props5","hasApprovers","approversFiltered","tableColumns","getColumnsTemplates","rowClassName","rowClassNameByFlags","_this$props6","mainPermissions","columnsPermissions","useColumns","_ref0","hasDenyAction","hasExpandable","extraColumns","_this$props7","nodeType","isAllowedToEditColumnGroups","isIdmAclAvailable","_this$props8","userPermissionsRequestError","userPermissionsRequestFn","userPermissionsCancelRequestFn","deletePermissionsLastItemKey","deletePermissionsError","userPermissionsUpdateAcl","userPermissionsUpdateAclError","userPermissionsCancelUpdateAcl","hasColumns","Fragment","renderMeta","renderColumnGroups","renderApprovers","renderObjectPermissions","_this$props9","toSegmentItem","invertRole","envforceValue","granted","isGranted","segments","_this$props0","counters","_this$props1","initialLoading","renderContent","internal","_item$types","types","SubjectCard","showIcon","subjectType","subjectUrl","username","_item$tvmInfo","tvmId","tvmInfo","_ref14","groupInfo","group","group_type","ClipboardButton","groupType","responsibles","read_approvers","sets","objectDefault","approvers","handleDelete","mergeProps","stateProps","dispatchProps","ownProps","aclRequestOptions","restDispatchProps","createACLComponent","inputIdmKind","mapStateToProps","normalizedParams","normalizeIdmParams","pool_tree","_state$acl$idmKind","getHasApprovers","getApproversFilteredAndOrdered","_getObjectPermissions","getObjectPermissionsAggregated","getAllColumnGroupsActual","getAllUserPermissions","getNotInheritedAuditors","getNotInheritedReadApprovers","getNotInheritedResponsibles","getType","getCluster","getIdmPathVersion","getIdmPermissionsRequestError","getAllAccessColumnsNames","getIdmManageAclRequestError","getLastDeletedPermissionKey","permissionDeletionError","mapDispatchToProps","connect","createACLConnector","AccessContentAcl","NavigationAcl","PoolAclPanel","AccountsAcl","BundleAcl","FLAG_NAME_PREFIX","SHORT_TITLE","access_control_object","COLUMNS_FELDS","_SHORT_TITLE$idmKind","buttonClassName","buttonProps","requestPermissionsFields","k","currentCaption","valueWithCheckedFirstChoice","availableFields","docsUrl","makeLink","docsUrls","allowedTypes","commentHeader","INHERITANCE_MODE_TYPES","hideClear","hideFilter","with","flagsIndex","reduce","acc","field","flags","help","initialValue","splice","_ref$editAcl","editAcl","_ref$editColumnsAcl","editColumnsAcl","OBJECT_AND_DESCENDANTS","validate","validationError","getTransaction","navigation","transaction","getAttributes","attributes","getAttributesWithTypes","attributesWithTypes","getLoadState","loadState","getError","getRawPath","getIdmSupport","isIdmSupported","createSelector","getPath","getNavigationDefaultPath","rawPath","defaultPath","getAttributesPath","navigationPath","isNavigationFinalLoadState","isFinalLoadingStatus","getParsedPath","ypath","create","ex","console","getActualPath","checkIsTrash","startsWith","toaster","autoHiding","showErrorPopup","_this$props2$alwaysSh","alwaysShowError","addI18Keysets","en","ru","otherMembers","current","toAdd","toRemove","currentArr","prepareItemOfCurrent","otherArr","frozen","newItems","i18n","itemClassName","extraProps","manyListDataItemToSubjectList","manyListDataItem","filter_","removed","extractChangedSubjects","added","user","Chevron","emptyValue","SelectFacade","_React$useMemo","hashByValue","Map","set","prepareItems","newValue","filteredValue","CustomSelect","SelectSingle","_excluded2","vals","isEmpty","_React$Component","renderControl","ref","_excluded3","pin","ValueControl","controlRef","useNoValue","icon","empty","Text","renderItemContent","renderOption","meta","ellipsis","renderFilter","_excluded4","_this$props$onUpdate","call","_excluded5","disablePortal","triggerProps","w","style","variant","defaultProps","NAVIGATION","search","info","_info$k$options","serialize","_info$k$options2","_info$k$options2$seri","tmp","makeURLSearchParams","getNavigationParams","toString","prepareColumnsNames","permission","uniq_","sort","prepareApprovers","extra","group_name","getAllObjectPermissions","getAllObjectPermissionsWithSplittedSubjects","isSplitted","subjectIndex","permissionsFilter","uniquePermisions","sortBy_","subjectFilterPredicate","_item$subjects$","some_","_str","str","split","pop","toLowerCase","indexOf","getAllObjectPermissionsFiltered","_partition_","partition_","_item$columns","_partition_2","withColumns","lowerNameFilter","toLocaleLowerCase","filterBySubject","permissionsFilterSet","filterByPermissions","_permissionsFilterPre","foundCount","some","permissionsFilterPredicate","visibleColumns","filterByColumns","_columns$some","colName","mainPredicates","columnsPredicates","concatByAnd","aggregateBySubject","AggregateBySubject","first","aggrKey","allPermissions","aggregationKey","_item$permissions","_child$permissions","_child$permissions2","_item$columns2","_this$first","_this$first2","_this$first3","_this$first4","JSON","stringify","child","objPermissions","aggregated","aggKey","dst","_item$getItems","getItems","_partition_3","_partition_4","other","OrderByRoleStatus","nameFilter","nameFilterLower","predicates","_item$columns$some","_item$columns3","_item$name$toLowerCas","_item$name","filtered","getReadApprovers","getResponsibles","getAuditors","readApprover","auditros","auditro","getAllApprovers","getApproversFiltered","getAllAccessColumnsPermissions","filteredPermissions","_permission$columns","getAllDenyColumnsPermissions","_permission$columns2","getAllDenyColumnsNames","getDenyColumnsItems","names","deletionError","deletedItemKey","idmPermissionsRequestError","idmManageAclRequestError","getAclLoadState","calculateLoadingStatus","_WithVisible","ResComponent","WithVisible","toggleVisible","displayName","getDisplayName","renderSubjectCard","mix","elem","mods","textProps","asHTML","dangerouslySetInnerHTML","__html","prepareTextProps","printColumnAsTimeDurationWithMs","columnName","getColumn","printColumnAsReadableField","printColumnAsTime","ColumnAsTime","printColumnAsError","hideOopsMsg","asNumber","__default__","_templates","templateId","templates","newTemplates","wrapRenderMethods"],"sourceRoot":""}