@ytsaurus/ui 2.4.0 → 2.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/public/build/assets-manifest.json +39 -39
- package/dist/public/build/css/{9030.30b67fe6.chunk.css → 3792.a5336147.chunk.css} +1 -1
- package/dist/public/build/css/{9030.30b67fe6.chunk.css.map → 3792.a5336147.chunk.css.map} +1 -1
- package/dist/public/build/js/2142.9a9a44af.chunk.js +2 -0
- package/dist/public/build/js/2142.9a9a44af.chunk.js.map +1 -0
- package/dist/public/build/js/3225.0ca5646d.chunk.js +2 -0
- package/dist/public/build/js/3225.0ca5646d.chunk.js.map +1 -0
- package/dist/public/build/js/{9030.200c7642.chunk.js → 3792.1af8dc36.chunk.js} +2 -2
- package/dist/public/build/js/{9030.200c7642.chunk.js.map → 3792.1af8dc36.chunk.js.map} +1 -1
- package/dist/public/build/js/3848.db687afa.chunk.js +2 -0
- package/dist/public/build/js/3848.db687afa.chunk.js.map +1 -0
- package/dist/public/build/js/{9361.f5606246.chunk.js → 9361.632ac658.chunk.js} +3 -3
- package/dist/public/build/js/9361.632ac658.chunk.js.map +1 -0
- package/dist/public/build/js/acl.86dde5b4.chunk.js +2 -0
- package/dist/public/build/js/acl.86dde5b4.chunk.js.map +1 -0
- package/dist/public/build/js/{chart-kit.6c826f92.chunk.js → chart-kit.bc706a72.chunk.js} +2 -2
- package/dist/public/build/js/{chart-kit.6c826f92.chunk.js.map → chart-kit.bc706a72.chunk.js.map} +1 -1
- package/dist/public/build/js/{cluster-page-wrapper.24759f54.chunk.js → cluster-page-wrapper.69410672.chunk.js} +2 -2
- package/dist/public/build/js/{cluster-page-wrapper.24759f54.chunk.js.map → cluster-page-wrapper.69410672.chunk.js.map} +1 -1
- package/dist/public/build/js/{dashboard.5baf76be.chunk.js → dashboard.705aef5e.chunk.js} +2 -2
- package/dist/public/build/js/{dashboard.5baf76be.chunk.js.map → dashboard.705aef5e.chunk.js.map} +1 -1
- package/dist/public/build/js/{incarnations.db35d3e7.chunk.js → incarnations.b6c8305d.chunk.js} +2 -2
- package/dist/public/build/js/incarnations.b6c8305d.chunk.js.map +1 -0
- package/dist/public/build/js/main.2691b74a.js +3 -0
- package/dist/public/build/js/main.2691b74a.js.map +1 -0
- package/dist/public/build/js/navigation.b95d53a4.chunk.js +2 -0
- package/dist/public/build/js/navigation.b95d53a4.chunk.js.map +1 -0
- package/dist/public/build/js/{runtime.0bd241cc.js → runtime.cd2507d5.js} +2 -2
- package/dist/public/build/js/{runtime.0bd241cc.js.map → runtime.cd2507d5.js.map} +1 -1
- package/dist/public/build/js/settings-panel.5508764a.chunk.js +2 -0
- package/dist/public/build/js/settings-panel.5508764a.chunk.js.map +1 -0
- package/dist/public/build/js/{yt-df-dialog.3c75c1c6.chunk.js → yt-df-dialog.d8b77493.chunk.js} +3 -3
- package/dist/public/build/js/yt-df-dialog.d8b77493.chunk.js.map +1 -0
- package/dist/public/build/js/yt-queries-list.9b028808.chunk.js +2 -0
- package/dist/public/build/js/yt-queries-list.9b028808.chunk.js.map +1 -0
- package/dist/public/build/manifest.json +34 -34
- package/package.json +2 -2
- package/dist/public/build/js/2142.e3f4501e.chunk.js +0 -2
- package/dist/public/build/js/2142.e3f4501e.chunk.js.map +0 -1
- package/dist/public/build/js/3225.1bafd8e7.chunk.js +0 -2
- package/dist/public/build/js/3225.1bafd8e7.chunk.js.map +0 -1
- package/dist/public/build/js/3792.87728e87.chunk.js +0 -2
- package/dist/public/build/js/3792.87728e87.chunk.js.map +0 -1
- package/dist/public/build/js/9361.f5606246.chunk.js.map +0 -1
- package/dist/public/build/js/acl.ad72cb19.chunk.js +0 -2
- package/dist/public/build/js/acl.ad72cb19.chunk.js.map +0 -1
- package/dist/public/build/js/incarnations.db35d3e7.chunk.js.map +0 -1
- package/dist/public/build/js/main.10db4a06.js +0 -3
- package/dist/public/build/js/main.10db4a06.js.map +0 -1
- package/dist/public/build/js/navigation.dd0f8fc8.chunk.js +0 -2
- package/dist/public/build/js/navigation.dd0f8fc8.chunk.js.map +0 -1
- package/dist/public/build/js/settings-panel.4be91fef.chunk.js +0 -2
- package/dist/public/build/js/settings-panel.4be91fef.chunk.js.map +0 -1
- package/dist/public/build/js/yt-df-dialog.3c75c1c6.chunk.js.map +0 -1
- package/dist/public/build/js/yt-queries-list.e40d766e.chunk.js +0 -2
- package/dist/public/build/js/yt-queries-list.e40d766e.chunk.js.map +0 -1
- /package/dist/public/build/js/{9361.f5606246.chunk.js.LICENSE.txt → 9361.632ac658.chunk.js.LICENSE.txt} +0 -0
- /package/dist/public/build/js/{main.10db4a06.js.LICENSE.txt → main.2691b74a.js.LICENSE.txt} +0 -0
- /package/dist/public/build/js/{yt-df-dialog.3c75c1c6.chunk.js.LICENSE.txt → yt-df-dialog.d8b77493.chunk.js.LICENSE.txt} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"js/acl.86dde5b4.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/utils/scheduling/scheduling.ts","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/controls/RoleListControl/utils.ts","webpack://@ytsaurus/ui/./src/ui/utils/scheduling/pool-child.js","webpack://@ytsaurus/ui/./src/ui/store/selectors/scheduling/scheduling-pools.ts","webpack://@ytsaurus/ui/./src/ui/components/Dialog/DialogError.tsx","webpack://@ytsaurus/ui/./src/ui/components/Dialog/index.tsx","webpack://@ytsaurus/ui/./src/ui/hocs/withDelayedMount.tsx","webpack://@ytsaurus/ui/./src/ui/containers/ACL/hooks/use-available-permissions.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/./src/ui/pages/scheduling/Content/tabs/ScherdulingOperataionsLoader/SchedulingOperationsLoader.tsx","webpack://@ytsaurus/ui/./src/ui/utils/scheduling/overviewTable.tsx","webpack://@ytsaurus/ui/./src/ui/utils/scheduling/pool.ts","webpack://@ytsaurus/ui/./src/ui/store/selectors/scheduling/expanded-pools.ts","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/utils/scheduling/overview.js","webpack://@ytsaurus/ui/./src/ui/store/selectors/scheduling/scheduling.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/utils/app-url/index.ts","webpack://@ytsaurus/ui/./src/ui/store/selectors/scheduling/attributes-to-filter.ts","webpack://@ytsaurus/ui/./src/ui/store/selectors/acl.ts","webpack://@ytsaurus/ui/./src/ui/hocs/withVisible.tsx","webpack://@ytsaurus/ui/./src/ui/utils/scheduling/detailsTable.tsx","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 qa?: ButtonProps['qa'];\n};\n\nexport const ExpandButton: FC<Props> = ({\n className,\n expanded,\n inline,\n toggleExpanded,\n all,\n showText,\n qa,\n}) => {\n const titleExpanded = all ? 'Collapse All' : 'Collapse';\n const titleCollapsed = all ? 'Expand All' : 'Expand';\n return (\n <Button\n className={block({inline}, className)}\n view=\"flat-secondary\"\n title={expanded ? titleExpanded : titleCollapsed}\n onClick={toggleExpanded}\n qa={qa}\n >\n {showText && (expanded ? titleExpanded : titleCollapsed) + ' '}\n <Icon\n className={block('expand', {expanded})}\n data={all ? doubleShevronRightSvg : shevronRightSvg}\n size={16}\n />\n </Button>\n );\n};\n","import React, {Component} from 'react';\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 && <>, </>}\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","import find_ from 'lodash/find';\nimport indexOf_ from 'lodash/indexOf';\nimport map_ from 'lodash/map';\nimport reduce_ from 'lodash/reduce';\n\nimport ypath from '../../common/thor/ypath';\nimport {ROOT_POOL_NAME} from '../../constants/scheduling';\nimport type {OperationInfo, PoolInfo} from '../../store/selectors/scheduling/scheduling-pools';\nimport {attachTreeLeaves, prepareTree} from '../../common/hammer/tree-list';\n\nfunction getPool(pools: Array<PoolInfo>, name: string) {\n return find_(pools, (pool) => pool.name === name);\n}\n\nexport function prepareTrees(trees: Array<unknown>) {\n return map_(trees, (tree) => ypath.getValue(tree, '')).sort();\n}\n\nexport function prepareCurrentTree(defaultTree: unknown, trees: Array<string>, tree: string) {\n return tree !== '' && trees.indexOf(tree) !== -1\n ? tree\n : ypath.getValue(defaultTree, '') || trees[0];\n}\n\nexport function preparePools(\n pools: Record<string, PoolInfo>,\n operations: Record<string, OperationInfo>,\n) {\n const treeNodesMap = prepareTree<PoolInfo, OperationInfo>(pools, (entry: PoolInfo) =>\n ypath.getValue(entry, '/parent'),\n );\n\n attachTreeLeaves(treeNodesMap, operations, (operation: OperationInfo) =>\n ypath.getValue(operation, '/pool'),\n );\n\n return map_(treeNodesMap);\n}\n\nexport function computePathItems(pools: Array<PoolInfo>, name: string) {\n let pool: PoolInfo | undefined =\n getPool(pools, name) || ({parent: ROOT_POOL_NAME, name} as PoolInfo);\n const pathItems = [];\n\n // Unknown pool or dynamically created pool\n while (pool) {\n pathItems.unshift(pool.name);\n\n pool = getPool(pools, pool.parent);\n }\n\n return pathItems;\n}\n\nexport function computePoolPath(pool: PoolInfo, pools: Array<PoolInfo>) {\n const partitions = [pool.name];\n let parent: string | undefined = pool.parent;\n\n while (parent && parent !== ROOT_POOL_NAME) {\n // eslint-disable-next-line @typescript-eslint/no-loop-func\n const parentPool = find_(pools, (item) => item.name === parent);\n partitions.unshift(parentPool?.name!);\n parent = parentPool?.parent;\n }\n\n return partitions.join('/');\n}\n\n/* eslint-disable prefer-const */\nexport function flattenAttributes(obj: any) {\n const toReturn: any = {};\n const object = ypath.getValue(obj);\n\n for (let i in object) {\n if (!Object.hasOwnProperty.call(object, i)) {\n continue;\n }\n\n const innerObject = ypath.getValue(object[i]);\n if (\n typeof innerObject === 'object' &&\n !Object.is(innerObject, null) &&\n Object.keys(innerObject).length > 0\n ) {\n toReturn[i] = object[i];\n\n const flatObject = flattenAttributes(object[i]);\n for (let x in flatObject) {\n if (!Object.hasOwnProperty.call(flatObject, x)) {\n continue;\n }\n\n toReturn[x] = flatObject[x];\n }\n } else {\n toReturn[i] = object[i];\n }\n }\n\n return toReturn;\n}\n\nfunction getResourceLimit(pool: PoolInfo | undefined, limitKey: string): number | '' {\n const value = Number(ypath.getValue(pool, `/cypressAttributes/resource_limits/${limitKey}`));\n return isNaN(value) ? '' : value;\n}\n\nfunction prepareValueDetails(pool: PoolInfo | undefined, path: string) {\n if (!pool) {\n return {};\n }\n\n const value = Number(ypath.getValue(pool, path));\n const childrenSum = prepareMinGuaranteed(pool, path);\n\n return {\n value: isNaN(value) ? undefined : value,\n childrenSum: isNaN(childrenSum!) ? undefined : childrenSum,\n };\n}\n\nfunction prepareMinGuaranteed(pool?: PoolInfo, path = '') {\n const res = reduce_(\n pool?.children,\n (sum, item) => {\n const tmp = Number(ypath.getValue(item, path) || 0);\n return isNaN(tmp) ? sum : tmp + firstValidNumber(sum, 0)!;\n },\n NaN,\n );\n return isNaN(res) ? undefined : res;\n}\n\nfunction firstValidNumber(...args: number[]) {\n for (let i = 0; i < args.length; ++i) {\n if (!isNaN(args[i])) {\n return args[i];\n }\n }\n return undefined;\n}\n\nexport const INTEGRAL_GUARANTEES_PREFIX = 'integral_guarantees/';\n\nexport const POOL_INTEGRAL_GUARANTEE_FIELD_TO_ATTR = {\n guaranteeType: INTEGRAL_GUARANTEES_PREFIX + 'guarantee_type',\n burstCpu: INTEGRAL_GUARANTEES_PREFIX + 'burst_guarantee_resources/cpu',\n burstRam: INTEGRAL_GUARANTEES_PREFIX + 'burst_guarantee_resources/memory',\n burstGpu: INTEGRAL_GUARANTEES_PREFIX + 'burst_guarantee_resources/gpu',\n flowCpu: INTEGRAL_GUARANTEES_PREFIX + 'resource_flow/cpu',\n flowRam: INTEGRAL_GUARANTEES_PREFIX + 'resource_flow/memory',\n flowGpu: INTEGRAL_GUARANTEES_PREFIX + 'resource_flow/gpu',\n};\n\nexport const POOL_STRONG_RESOURCE_TYPE_TO_ATTRIBUTE = {\n cpuStrong: 'strong_guarantee_resources/cpu',\n gpuStrong: 'strong_guarantee_resources/gpu',\n memoryStrong: 'strong_guarantee_resources/memory',\n //userSlotsStrong: 'strong_guarantee_resources/user_slots',\n};\n\nexport const POOL_GENERAL_TYPE_TO_ATTRIBUTE = {\n maxOperationCount: 'max_operation_count',\n maxRunningOperationCount: 'max_running_operation_count',\n};\n\nexport const POOL_RESOURCE_TYPE_TO_ATTRIBUTE = {\n ...POOL_GENERAL_TYPE_TO_ATTRIBUTE,\n ...POOL_STRONG_RESOURCE_TYPE_TO_ATTRIBUTE,\n ...POOL_INTEGRAL_GUARANTEE_FIELD_TO_ATTR,\n};\n\nexport type PoolStrongResourceType = keyof typeof POOL_STRONG_RESOURCE_TYPE_TO_ATTRIBUTE;\nexport type PoolIntegralResourceType = keyof typeof POOL_INTEGRAL_GUARANTEE_FIELD_TO_ATTR;\nexport type PoolGeneralResourceType = keyof typeof POOL_GENERAL_TYPE_TO_ATTRIBUTE;\nexport type PoolResourceType = keyof typeof POOL_RESOURCE_TYPE_TO_ATTRIBUTE;\n\nexport function getPoolResourceInfo(pool: PoolInfo, type: PoolResourceType) {\n const path = '/cypressAttributes/' + POOL_RESOURCE_TYPE_TO_ATTRIBUTE[type];\n return prepareValueDetails(pool, path);\n}\n\nexport interface InitialPoolResourceInfo {\n limit?: number;\n source?: string;\n}\n\nexport function getPoolResourceInitialValue(\n pool: PoolInfo | undefined,\n type: PoolResourceType,\n allowSource: boolean,\n): InitialPoolResourceInfo {\n if (!pool) {\n return {};\n }\n const {value} = getPoolResourceInfo(pool, type);\n return {\n limit: value,\n source: allowSource ? pool.parent : undefined,\n };\n}\n\nexport function getInitialValues(editItem: PoolInfo | undefined, allowedSources: Array<string>) {\n const slug = ypath.getValue(editItem, '/abc/slug');\n\n const allowSource = -1 !== indexOf_(allowedSources, editItem?.parent);\n\n return {\n general: {\n name: editItem?.name,\n abcService: slug\n ? {\n key: slug,\n value: slug,\n title: ypath.getValue(editItem, '/abc/name'),\n }\n : undefined,\n parent: editItem?.parent,\n mode: editItem?.mode,\n weight: ypath.getNumber(editItem, '/cypressAttributes/weight'),\n maxOperationCount: Object.assign(\n getPoolResourceInitialValue(editItem, 'maxOperationCount', allowSource),\n {source: undefined},\n ),\n maxRunningOperationCount: Object.assign(\n getPoolResourceInitialValue(editItem, 'maxRunningOperationCount', allowSource),\n {source: undefined},\n ),\n },\n resourceGuarantee: {\n cpuStrong: getPoolResourceInitialValue(editItem, 'cpuStrong', allowSource),\n gpuStrong: getPoolResourceInitialValue(editItem, 'gpuStrong', allowSource),\n memoryStrong: getPoolResourceInitialValue(editItem, 'memoryStrong', allowSource),\n //userSlotsStrong: getPoolResourceInitialValue(editItem, 'userSlotsStrong', allowSource),\n },\n integralGuarantee: {\n guaranteeType:\n ypath.getValue(\n editItem,\n `/cypressAttributes/${POOL_INTEGRAL_GUARANTEE_FIELD_TO_ATTR.guaranteeType}`,\n ) || 'none',\n burstCpu: getPoolResourceInitialValue(editItem, 'burstCpu', allowSource),\n burstRam: getPoolResourceInitialValue(editItem, 'burstRam', allowSource),\n burstGpu: getPoolResourceInitialValue(editItem, 'burstGpu', allowSource),\n flowCpu: getPoolResourceInitialValue(editItem, 'flowCpu', allowSource),\n flowRam: getPoolResourceInitialValue(editItem, 'flowRam', allowSource),\n flowGpu: getPoolResourceInitialValue(editItem, 'flowGpu', allowSource),\n },\n resourceLimits: {\n cpu: getResourceLimit(editItem, 'cpu'),\n gpu: getResourceLimit(editItem, 'gpu'),\n memory: getResourceLimit(editItem, 'memory'),\n userSlots: getResourceLimit(editItem, 'user_slots'),\n },\n otherSettings: {\n forbidImmediateOperations: ypath.getBoolean(editItem, '/forbidImmediateOperations'),\n fifoSortParams: ypath.getValue(editItem, '/fifoSortParams'),\n createEphemeralSubpools: ypath.getBoolean(editItem, '/createEphemeralSubpools'),\n },\n };\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 cn from 'bem-cn-lite';\n\nimport filter_ from 'lodash/filter';\nimport forEach_ from 'lodash/forEach';\nimport map_ from 'lodash/map';\n\nimport type {EditableManyListsItemType} from '../../../../components/Dialog';\nimport type {ResponsibleType, RoleConverted, Subject} from '../../../../utils/acl/acl-types';\nimport type {PreparedRole} from '../../../../utils/acl';\nimport {RoleListControlProps} from './RoleListControl';\n\nexport const block = cn('role-list-control');\n\nexport function prepareRoleListValue(roles: Array<PreparedRole>, otherMembers: Array<string> = []) {\n const current: typeof roles = [];\n const toAdd: typeof roles = [];\n const toRemove: typeof roles = [];\n const unrecognized: typeof roles = [];\n forEach_(roles, (item) => {\n const {isUnrecognized, isRequested, isApproved, isDepriving} = item;\n if (isUnrecognized) {\n unrecognized.push(item);\n } else if (isDepriving) {\n toRemove.push(item);\n } else if (isApproved || isRequested) {\n toAdd.push(item);\n } else {\n current.push(item);\n }\n });\n\n const currentArr = current.map((item) => prepareItemOfCurrent(item));\n const otherArr = otherMembers.map((item) => ({\n title: item,\n data: {},\n frozen: true,\n }));\n\n return {\n newItems: [],\n current: {title: 'Current', data: currentArr.concat(otherArr)},\n toAdd: {\n title: 'Will be added',\n itemClassName: block('item-to-add'),\n data: toAdd.map((item) => prepareItemOfCurrent(item, {frozen: true})),\n },\n toRemove: {\n title: 'Will be removed',\n itemClassName: block('item-to-remove'),\n data: toRemove.map((item) => prepareItemOfCurrent(item, {frozen: true})),\n },\n unrecognized: {\n title: 'Unrecognized',\n itemClassName: block('item-unrecognized'),\n data: unrecognized.map((item) => prepareItemOfCurrent(item, {frozen: true})),\n },\n };\n}\n\nfunction prepareItemOfCurrent(role: PreparedRole, extraProps: any = {}) {\n return {\n title: role.text || role.value,\n data: role,\n ...extraProps,\n };\n}\n\nexport function roleListValueToSubjectList(\n value: RoleListControlProps['value'],\n): Array<ResponsibleType> {\n const {current, newItems, toAdd} = value;\n return [\n ...newItems,\n ...manyListDataItemToSubjectList(current),\n ...manyListDataItemToSubjectList(toAdd),\n ];\n}\n\nfunction manyListDataItemToSubjectList(\n manyListDataItem: EditableManyListsItemType<RoleConverted>,\n): Array<ResponsibleType> {\n const {data} = manyListDataItem || {};\n return map_(\n filter_(data, ({removed}) => !removed),\n ({data}) => {\n const {type, value} = data || {};\n return {type: type!, value: value!};\n },\n );\n}\n\nexport function extractChangedSubjects(value: {\n current: EditableManyListsItemType<RoleConverted>;\n newItems: Array<ResponsibleType>;\n}): {\n added: Subject[];\n removed: Subject[];\n} {\n const {current, newItems} = value;\n const added = newItems || [];\n const removed = ((current && current.data) || []).filter(({removed}) => removed);\n return {\n added: added.map(({type, value}) => {\n return type === 'users' ? {user: value} : {group: value};\n }),\n removed: removed.map(({data}) => {\n const {value, type} = data || {};\n return type === 'users' ? {user: value!} : {group: value!};\n }),\n };\n}\n","import map_ from 'lodash/map';\n\nimport ypath from '../../common/thor/ypath';\nimport {ROOT_POOL_NAME} from '../../constants/scheduling';\nimport {appendInnerErrors} from '../errors';\n\nconst RESOURCE_LIMIT_MAPPER = {\n user_memory: 'memory',\n};\n\nfunction preparePoolChildResource(data, type, treeResources, resource) {\n const attributes = data.attributes;\n\n if (data.name === ROOT_POOL_NAME) {\n data.resources[resource] = {\n guaranteed: ypath.getNumber(treeResources, '/resource_limits/' + resource),\n usage: ypath.getNumber(treeResources, '/resource_usage/' + resource),\n };\n } else {\n const min = ypath.getNumber(attributes, '/strong_guarantee_resources/' + resource);\n const usage = ypath.getNumber(attributes, '/resource_usage/' + resource);\n const demand = ypath.getNumber(attributes, '/resource_demand/' + resource);\n const guaranteed = ypath.getNumber(\n attributes,\n '/estimated_guarantee_resources/' + resource,\n );\n\n const limitResource = RESOURCE_LIMIT_MAPPER[resource] || resource;\n const resourceLimit = ypath.getNumber(\n data.cypressAttributes,\n '/resource_limits/' + limitResource,\n );\n const specifiedResourceLimit = ypath.getNumber(\n data.attributes,\n '/specified_resource_limits/' + limitResource,\n );\n\n const treeLimit = ypath.getNumber(treeResources, '/resource_limits/' + resource);\n const detailed =\n treeLimit * ypath.getNumber(attributes, '/detailed_fair_share/total/' + limitResource);\n\n data.resources[resource] = {\n min,\n guaranteed,\n usage,\n demand,\n limit: resourceLimit || specifiedResourceLimit,\n detailed,\n };\n }\n\n return data;\n}\n\nexport function updatePoolChild(data, cypressData, type, treeResources) {\n try {\n const attributes = data.attributes;\n const cypressAttributes = ypath.getAttributes(cypressData);\n\n data.cypressAttributes = cypressAttributes;\n data.type = type;\n\n if (data.type === 'pool') {\n if (typeof attributes === 'undefined' && data.parent) {\n console.error(\n 'Pool \"%s\" without attributes inited by \"%s\"',\n data.name,\n data._initedBy,\n );\n }\n\n data.mode = ypath.getValue(attributes, '/mode');\n\n data.leaves = map_(data.leaves, (leaf) => {\n return updatePoolChild(leaf, {}, 'operation', treeResources);\n });\n\n const child_pool_count = ypath.getNumber(attributes, '/child_pool_count');\n if (child_pool_count > 0 && !data.children.length) {\n for (let i = 0; i < child_pool_count; ++i) {\n data.children.push({\n parent: data.name,\n type: 'pool',\n name: `#key_${data.name}_${i}`,\n attributes: {},\n leaves: [],\n incomplete: true,\n });\n }\n }\n\n if (!data.leaves?.length) {\n data.pool_operation_count = ypath.getNumber(\n attributes,\n '/pool_operation_count',\n NaN,\n );\n if (data.pool_operation_count > 0) {\n const emptyOp = updatePoolChild(\n {attributes: {}},\n {},\n 'operation',\n treeResources,\n );\n data.leaves = [];\n for (let i = 0; i < data.pool_operation_count; ++i) {\n data.leaves.push({\n ...emptyOp,\n name: `##fake_operation_${data.name}_${i}`,\n });\n }\n }\n }\n\n // Operations\n data.operationCount = ypath.getNumber(attributes, '/operation_count');\n data.maxOperationCount = ypath.getNumber(attributes, '/max_operation_count');\n data.maxOperationCountEdited = ypath.getNumber(\n cypressAttributes,\n '/max_operation_count',\n );\n data.runningOperationCount = ypath.getNumber(attributes, '/running_operation_count');\n data.maxRunningOperationCount = ypath.getNumber(\n attributes,\n '/max_running_operation_count',\n );\n data.maxRunningOperationCountEdited = ypath.getNumber(\n cypressAttributes,\n '/max_running_operation_count',\n );\n }\n\n data.id = data.name;\n data.starvation_status = ypath.getValue(attributes, '/starvation_status');\n\n // General\n data.weight = ypath.getNumber(attributes, '/weight');\n data.weightEdited = ypath.getNumber(cypressAttributes, '/weight');\n data.minShareRatio = ypath.getNumber(attributes, '/min_share_ratio');\n data.maxShareRatio = ypath.getNumber(attributes, '/max_share_ratio');\n data.fairShareRatio = ypath.getNumber(attributes, '/fair_share_ratio');\n data.fifoIndex = ypath.getNumber(attributes, '/fifo_index');\n data.usageRatio = ypath.getNumber(attributes, '/usage_ratio');\n data.demandRatio = ypath.getNumber(attributes, '/demand_ratio');\n data.isEphemeral = ypath.getBoolean(attributes, '/is_ephemeral');\n data.isEffectiveLightweight = ypath.getBoolean(\n attributes,\n '/effective_lightweight_operations_enabled',\n );\n\n data.integralType = ypath.getValue(attributes, '/integral_guarantee_type');\n const userDefinedBurstCPU = ypath.getNumber(\n cypressAttributes,\n '/integral_guarantees/burst_guarantee_resources/cpu',\n NaN,\n );\n data.burstCPU = ypath.getNumber(\n attributes,\n '/specified_burst_guarantee_resources/cpu',\n userDefinedBurstCPU,\n );\n const userDefinedFlowCPU = ypath.getNumber(\n cypressAttributes,\n '/integral_guarantees/resource_flow/cpu',\n NaN,\n );\n data.flowCPU = ypath.getNumber(\n attributes,\n '/specified_resource_flow/cpu',\n userDefinedFlowCPU,\n );\n const userDefinedFlowGPU = ypath.getNumber(\n cypressAttributes,\n '/integral_guarantees/resource_flow/gpu',\n NaN,\n );\n data.flowGPU = ypath.getNumber(\n attributes,\n '/specified_resource_flow/gpu',\n userDefinedFlowGPU,\n );\n\n data.accumulated = ypath.getValue(attributes, '/accumulated_resource_ratio_volume');\n data.accumulatedCpu = ypath.getValue(attributes, '/accumulated_resource_volume/cpu');\n data.burstDuration = ypath.getValue(attributes, '/estimated_burst_usage_duration_sec');\n\n const fifoSortParams = map_(\n ypath.getValue(attributes, '/fifo_sort_parameters') ||\n ypath.getValue(cypressAttributes, '/fifo_sort_parameters'),\n (param) => ypath.getValue(param),\n );\n data.fifoSortParams =\n fifoSortParams.length > 0\n ? fifoSortParams\n : ['start_time', 'weight', 'pending_job_count'];\n data.abc = ypath.getValue(attributes, '/abc') || {};\n data.forbidImmediateOperations =\n ypath.getBoolean(cypressAttributes, '/forbid_immediate_operations') || false;\n data.createEphemeralSubpools =\n ypath.getBoolean(cypressAttributes, '/create_ephemeral_subpools') || false;\n\n // Resources\n data.dominantResource = ypath.getValue(attributes, '/dominant_resource');\n\n data.resources = {};\n\n preparePoolChildResource(data, type, treeResources, 'cpu');\n preparePoolChildResource(data, type, treeResources, 'user_memory');\n preparePoolChildResource(data, type, treeResources, 'gpu');\n preparePoolChildResource(data, type, treeResources, 'user_slots');\n\n return data;\n } catch (e) {\n throw appendInnerErrors(e, {\n message: `An error occured while parsing pool \"${data.name}\" data.`,\n });\n }\n}\n","import isEmpty_ from 'lodash/isEmpty';\nimport map_ from 'lodash/map';\nimport reduce_ from 'lodash/reduce';\n\nimport {createSelector} from 'reselect';\n\nimport {RootState} from '../../../store/reducers';\nimport {ROOT_POOL_NAME} from '../../../constants/scheduling';\nimport {preparePools} from '../../../utils/scheduling/scheduling';\nimport ypath from '../../../common/thor/ypath';\nimport {updatePoolChild} from '../../../utils/scheduling/pool-child';\nimport {\n getExpandedPoolCypressData,\n getExpandedPoolsTree,\n getSchedulingOperations,\n} from './expanded-pools';\nimport {getCluster} from '../../../store/selectors/global';\nimport {RumWrapper} from '../../../rum/rum-wrap-api';\nimport {RumMeasureTypes} from '../../../rum/rum-measure-types';\nimport {EMPTY_OBJECT} from '../../../constants/empty';\n\nexport const getTree = (state: RootState) => state.scheduling.scheduling.tree;\nconst getPoolsRaw = (state: RootState) => state.scheduling.expandedPools.rawPools;\nconst getTreeResources = (state: RootState) => state.scheduling.scheduling.treeResources;\n\nconst getSchedulingTreeOperations = createSelector(\n [getSchedulingOperations, getExpandedPoolsTree, getTree],\n (rawOperations, expandedPoolsTree, tree) => {\n if (tree !== expandedPoolsTree) {\n return EMPTY_OBJECT as typeof rawOperations;\n }\n\n return rawOperations;\n },\n);\n\nconst getOperationsFiltered = createSelector(\n [getPoolsRaw, getSchedulingTreeOperations],\n (rawPools, rawOperations) => {\n return reduce_(\n rawOperations,\n (acc, item, operationId) => {\n if (rawPools[item.pool]) {\n acc[operationId] = item;\n }\n return acc;\n },\n {} as typeof rawOperations,\n );\n },\n);\n\nconst getPoolsPrepared = createSelector(\n [getPoolsRaw, getOperationsFiltered, getExpandedPoolCypressData, getTreeResources, getCluster],\n (rawPools, rawOperations, attributes, treeResources, cluster) => {\n if (isEmpty_(rawPools)) {\n return [];\n }\n\n const rumId = new RumWrapper(cluster, RumMeasureTypes.SCHEDULING);\n\n return rumId.wrap('prepareData', () => {\n const preparedPools = preparePools(rawPools!, rawOperations);\n return map_(preparedPools, (pool) => {\n const cypressAttributes = ypath.getValue(attributes)[pool.name];\n return updatePoolChild(pool, cypressAttributes, 'pool', treeResources);\n });\n });\n },\n);\n\nexport const getSchedulingPoolsMapByName = createSelector(\n [getPoolsPrepared],\n (pools: Array<PoolInfo>) => {\n return reduce_(\n pools,\n (acc, item) => {\n acc[item.name] = item;\n return acc;\n },\n {} as Record<string, PoolInfo>,\n );\n },\n);\n\nexport const getSchedulingPoolsExtraInfo = createSelector(\n [getSchedulingPoolsMapByName],\n (poolsMap) => {\n const root = poolsMap[ROOT_POOL_NAME];\n if (!root) {\n return {};\n }\n\n const res: Record<string, PoolExtraInfo> = {};\n calcChildrenIntegrals(root, res);\n return res;\n },\n);\n\ntype PoolName = string;\n\nfunction calcChildrenIntegrals(pool: PoolInfo, dst: Record<PoolName, PoolExtraInfo>) {\n const {children, name} = pool;\n if (!children?.length) {\n const res = (dst[name] = {\n childrenBurstCPU: 0,\n childrenFlowCPU: 0,\n });\n return res;\n }\n\n const res: PoolExtraInfo = {\n childrenFlowCPU: 0,\n childrenBurstCPU: 0,\n };\n for (let i = 0; i < children.length; ++i) {\n const item = children[i];\n const itemExtraInfo = calcChildrenIntegrals(item, dst);\n\n dst[item.name] = itemExtraInfo;\n\n res.childrenFlowCPU += item.flowCPU || 0 + itemExtraInfo.childrenFlowCPU;\n res.childrenBurstCPU += item.burstCPU || 0 + itemExtraInfo.childrenBurstCPU;\n }\n\n dst[name] = res;\n return res;\n}\n\nexport interface PoolExtraInfo {\n childrenFlowCPU: number;\n childrenBurstCPU: number;\n}\n\nexport interface OperationInfo {\n name: string;\n type: 'operation';\n parent: string;\n attributes: {title?: string; user?: string; type?: string};\n cypressAttributes: object;\n flowCPU: number;\n burstCPU: number;\n flowGPU: number;\n integralType?: string;\n mode?: string;\n\n operationCount?: number;\n maxOperationCount?: number;\n maxRunningOperationCount?: number;\n\n pool: string;\n}\n\nexport interface PoolInfo extends Omit<OperationInfo, 'type' | 'pool'> {\n type: 'pool';\n incomplete?: boolean;\n children?: Array<PoolInfo>;\n leaves: Array<OperationInfo>;\n isEphemeral?: boolean;\n resources?: PoolResources;\n fifoIndex?: number;\n weight?: number;\n minShareRatio?: number;\n maxShareRatio?: number;\n fairShareRatio?: number;\n usageRatio?: number;\n demandRatio?: number;\n dominantResource?: number;\n runningOperationCount?: number;\n operationCount?: number;\n maxOperationCount?: number;\n childrenBurstCPU?: number;\n childrenFlowCPU?: number;\n accumulated?: number;\n accumulatedCpu?: number;\n burstDuration?: number;\n}\n\nexport type PoolResources = Partial<\n Record<'cpu' | 'gpu' | 'user_memory' | 'user_slots', PoolResourceDetails>\n>;\n\nexport type PoolResourceType = keyof PoolResources;\n\nexport type PoolResourceDetails = {\n min?: number;\n usage?: number;\n limit?: number;\n demand?: number;\n detailed?: number;\n guaranteed?: number;\n};\n\nexport const getPools = createSelector(\n [getPoolsPrepared, getSchedulingPoolsExtraInfo],\n (pools, extras) => {\n const res = map_(pools, (item) => {\n const itemExtra = extras[item.name] || {};\n return Object.assign(item, itemExtra);\n });\n return res;\n },\n);\n","import React from 'react';\nimport cn from 'bem-cn-lite';\n\nimport type {FORM_ERROR as FormErrorType} from './index';\n\nimport {FIX_MY_TYPE, YTError} from '../../types';\nimport {YTErrorBlock} from '../../components/Block/Block';\n\nimport compact_ from 'lodash/compact';\nimport map_ from 'lodash/map';\n\nconst block = cn('yt-dialog-error');\n\nexport function DialogError(props: FIX_MY_TYPE) {\n return <YTErrorBlock {...props} className={block()} />;\n}\n\nexport function makeErrorFields(errors: Array<YTError | Error | undefined>) {\n return compact_(\n map_(errors, (error, index) => {\n return error\n ? {\n name: `error_${index}`,\n type: 'block' as const,\n extras: {\n children: <DialogError error={error} />,\n },\n }\n : undefined;\n }),\n );\n}\n\nconst FORM_ERROR: typeof FormErrorType = 'FINAL_FORM/form-error';\n\nexport function makeFormSubmitError(error: YTError) {\n return {\n validationErrors: {\n [FORM_ERROR]: <DialogError error={error} />,\n },\n };\n}\n","import React from 'react';\nimport withLazyLoading from '../../hocs/withLazyLoading';\nimport {withDelayedMount} from '../../hocs/withDelayedMount';\n\nimport type {\n registerDialogControl as RegisterDialogControlFn,\n registerDialogTabControl as RegisterDialogTabControlFn,\n YTDialogType,\n} from './Dialog';\n\nexport type * from './Dialog';\nexport * from './DialogError';\nexport * from './controls/RoleListControl/utils';\n\nexport function importYTDFDialog() {\n return import(/* webpackChunkName: \"yt-df-dialog\" */ './Dialog');\n}\n\nexport const YTDFDialog = withDelayedMount(\n withLazyLoading(\n React.lazy(async () => {\n return {default: (await importYTDFDialog()).YTDialog};\n }),\n '',\n ),\n) as YTDialogType;\n\nexport function useControlRegistration(\n fn: (params: {\n registerDialogControl: typeof RegisterDialogControlFn;\n registerDialogTabControl: typeof RegisterDialogTabControlFn;\n }) => void,\n) {\n importYTDFDialog().then(({registerDialogControl, registerDialogTabControl}) => {\n fn({registerDialogControl, registerDialogTabControl});\n });\n}\n\nexport type {RoleListControlProps} from './controls/RoleListControl/RoleListControl';\nexport const RoleListControl = withLazyLoading(\n React.lazy(async () => {\n return {default: (await importYTDFDialog()).RoleListControl};\n }),\n '',\n);\n\nexport const EditableList = withLazyLoading(\n React.lazy(async () => {\n return {default: (await importYTDFDialog()).EditableList};\n }),\n '',\n);\n\nexport const TabFieldVertical = withLazyLoading(\n React.lazy(async () => {\n return {default: (await importYTDFDialog()).TabFieldVertical};\n }),\n '',\n);\n","import React from 'react';\n\n/**\n * The hoc allows to delay mounting until `props.visible == true`.\n * The hoc might be useful to wrap components wrapped by React.lazy\n * @param Component\n * @returns\n */\nexport function withDelayedMount<P extends {visible?: boolean}>(Component: React.ComponentType<P>) {\n return function MountOnFirstVisible(props: P) {\n const [mounted, setMounted] = React.useState(false);\n React.useEffect(() => {\n if (!mounted && props.visible) {\n setMounted(true);\n }\n }, [props.visible, mounted]);\n return !mounted ? null : <Component {...props} />;\n };\n}\n","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","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 React from 'react';\nimport {getSchedulingOperationsLoadingStatus} from '../../../../../store/selectors/scheduling/expanded-pools';\nimport {useSelector} from 'react-redux';\nimport Loader from '../../../../../components/Loader/Loader';\n\nfunction SchedulingOperationsLoader() {\n const loading = useSelector(getSchedulingOperationsLoadingStatus);\n return <Loader visible={loading} />;\n}\n\nexport default React.memo(SchedulingOperationsLoader);\n","import React from 'react';\n\nimport {SchedulingOverviewColumnNames} from '../../../shared/constants/settings-types';\n\nimport SchedulingOperationsLoader from '../../pages/scheduling/Content/tabs/ScherdulingOperataionsLoader/SchedulingOperationsLoader';\nimport {PoolInfo} from '../../store/selectors/scheduling/scheduling-pools';\nimport {ColumnInfo} from '../../components/ElementsTable/ElementsTableHeader';\n\nexport const poolsTableItems: Record<\n SchedulingOverviewColumnNames,\n Omit<ColumnInfo, 'caption'> & {get(item: PoolInfo): React.ReactNode; caption?: string}\n> = {\n name: {\n sort: true,\n caption: 'Pool / Operation',\n captionTail: <SchedulingOperationsLoader />,\n align: 'left',\n get(item: PoolInfo) {\n if (item.type === 'pool') {\n return item.name;\n }\n return item.attributes.title ?? item.name;\n },\n },\n FI: {\n sort: true,\n align: 'right',\n title: 'FIFO Index',\n get(item: PoolInfo) {\n return item.fifoIndex;\n },\n },\n weight: {\n sort: true,\n align: 'right',\n title: 'Effective weight',\n get(item: PoolInfo) {\n return item.weight;\n },\n },\n operation_overview: {\n caption: 'Operations',\n sort: true,\n align: 'center',\n get(item: PoolInfo) {\n return [item.operationCount, item.runningOperationCount];\n },\n },\n dominant_resource: {\n sort: true,\n get(item: PoolInfo) {\n return item.dominantResource;\n },\n caption: 'Dom. res.',\n title: 'Dominant Resource',\n align: 'left',\n },\n min_share: {\n sort: true,\n caption: 'Guarantee',\n title: 'Effective dominant strong guarantee share',\n get(item: PoolInfo) {\n return item.minShareRatio;\n },\n align: 'right',\n },\n fair_share: {\n sort: true,\n title: 'Dominant fair share',\n align: 'right',\n get(item: PoolInfo) {\n return item.fairShareRatio;\n },\n },\n usage: {\n sort: true,\n title: 'Dominant usage share',\n align: 'right',\n get(item: PoolInfo) {\n return item.usageRatio;\n },\n },\n demand: {\n sort: true,\n title: 'Dominant demand share',\n align: 'right',\n get(item: PoolInfo) {\n return item.demandRatio;\n },\n },\n fair_share_usage: {\n sort: true,\n caption: 'Usage / Fair share',\n align: 'center',\n sortWithUndefined: true,\n get(item: PoolInfo) {\n const {fairShareRatio, usageRatio} = item;\n const x = Number(usageRatio) / Number(fairShareRatio);\n if (isNaN(usageRatio!) || isNaN(fairShareRatio!) || isNaN(x)) {\n return undefined;\n }\n return x;\n },\n },\n user: {\n sort: true,\n title: 'User',\n align: 'left',\n get(item: PoolInfo) {\n return item.attributes.user;\n },\n },\n operation_type: {\n sort: true,\n title: 'Type',\n caption: 'Type',\n align: 'left',\n get(item: PoolInfo) {\n return item.attributes.type;\n },\n },\n actions: {\n caption: '',\n title: 'Actions',\n align: 'left',\n get() {\n return undefined;\n },\n },\n};\n\nexport function getOverviewColumnTitle(name: SchedulingOverviewColumnNames) {\n const {title, caption} = poolsTableItems[name] ?? {};\n return title ?? caption ?? `##${name}##`;\n}\n\nexport const OVERVIEW_AVAILABLE_COLUMNS = Object.keys(\n poolsTableItems,\n) as Array<SchedulingOverviewColumnNames>;\n","import {ROOT_POOL_NAME} from '../../constants/scheduling';\nimport type {PoolInfo} from '../../store/selectors/scheduling/scheduling-pools';\n\nexport function isAbcPoolName(name?: string) {\n return name?.startsWith('abc:');\n}\n\nexport function isTopLevelPool(pool?: PoolInfo) {\n const {parent} = pool || {};\n\n return parent === ROOT_POOL_NAME;\n}\n","import {createSelector} from 'reselect';\n\nimport {RootState} from '../../reducers';\n\nexport const getExpandedPoolCypressData = (state: RootState) =>\n state.scheduling.expandedPools.flattenCypressData;\n\nexport const getSchedulingOperations = (state: RootState) =>\n state.scheduling.expandedPools.rawOperations;\nexport const getExpandedPoolsTree = (state: RootState) =>\n state.scheduling.expandedPools.expandedPoolsTree;\nexport const getSchedulingOperationsError = (state: RootState) =>\n state.scheduling.expandedPools.error;\nexport const getSchedulingOperationsLoading = (state: RootState) =>\n state.scheduling.expandedPools.loading;\nexport const getSchedulingOperationsLoaded = (state: RootState) =>\n state.scheduling.expandedPools.loading;\nexport const getSchedulingOperationsExpandedPools = (state: RootState) =>\n state.scheduling.expandedPools.expandedPools;\nexport const getExpandedPoolsLoadAll = (state: RootState) => state.scheduling.expandedPools.loadAll;\n\nexport const getSchedulingOperationsLoadingStatus = createSelector(\n [getSchedulingOperationsLoading, getSchedulingOperationsLoaded],\n (loading, loaded) => {\n return loading && !loaded;\n },\n);\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 'react-redux';\nimport cn from 'bem-cn-lite';\nimport {changeApproversSubjectFilter} from '../../../store/actions/acl-filters';\nimport {getApproversSubjectFilter} from '../../../store/selectors/acl-filters';\nimport {Toolbar} from '../../../components/WithStickyToolbar/Toolbar/Toolbar';\nimport Filter from '../../../components/Filter/Filter';\nimport './ApproversFilters.scss';\n\nconst block = cn('approvers-filters');\n\nexport default function ApproversFilters() {\n const dispatch = useDispatch();\n const subjectFilter = useSelector(getApproversSubjectFilter);\n\n return (\n <Toolbar\n itemsToWrap={[\n {\n node: (\n <Filter\n placeholder=\"Filter by subject\"\n onChange={(value: string) => {\n dispatch(changeApproversSubjectFilter({approversSubject: value}));\n }}\n className={block('subject-filter')}\n value={subjectFilter}\n size=\"m\"\n autofocus={false}\n />\n ),\n },\n ]}\n />\n );\n}\n","import React from 'react';\nimport {useDispatch, useSelector} from 'react-redux';\nimport cn from 'bem-cn-lite';\nimport map_ from 'lodash/map';\n\nimport format from '../../../common/hammer/format';\n\nimport {\n changeObjectPermissionsFilter,\n changeObjectSubjectFilter,\n} from '../../../store/actions/acl-filters';\nimport {\n getObjectPermissionsFilter,\n getObjectSubjectFilter,\n} from '../../../store/selectors/acl-filters';\nimport {getObjectPermissionsTypesList} from '../../../store/selectors/acl';\nimport Filter from '../../../components/Filter/Filter';\nimport Select from '../../../components/Select/Select';\nimport {Toolbar} from '../../../components/WithStickyToolbar/Toolbar/Toolbar';\nimport './ObjectPermissionsFilters.scss';\nimport {ACLReduxProps} from '../ACL-connect-helpers';\nimport {AclMode} from '../../../constants/acl';\nimport {ColumnGroupsFilter} from '../ColumnGroups/ColumnGroups';\n\nconst block = cn('object-permissions-filters');\n\ntype Props = Pick<\n ACLReduxProps,\n 'aclMode' | 'idmKind' | 'columnsFilter' | 'updateAclFilters' | 'userPermissionsAccessColumns'\n>;\n\nexport default function ObjectPermissionsFilters({\n aclMode,\n idmKind,\n columnsFilter,\n updateAclFilters,\n userPermissionsAccessColumns,\n}: Props) {\n const dispatch = useDispatch();\n const subjectFilter = useSelector(getObjectSubjectFilter);\n const selectedPermissons = useSelector(getObjectPermissionsFilter);\n const permissionList = useSelector(getObjectPermissionsTypesList(idmKind));\n\n return (\n <Toolbar\n itemsToWrap={[\n {\n node: (\n <Filter\n className={block('filter')}\n placeholder=\"Filter by subject\"\n onChange={(value: string) => {\n dispatch(\n changeObjectSubjectFilter({\n objectSubject: value,\n }),\n );\n }}\n value={subjectFilter}\n size=\"m\"\n autofocus={false}\n />\n ),\n },\n {\n shrinkable: true,\n node:\n aclMode === AclMode.COLUMN_GROUPS_PERMISSISONS ? (\n <ColumnGroupsFilter\n {...{columnsFilter, updateAclFilters, userPermissionsAccessColumns}}\n />\n ) : (\n <Select\n className={block('filter')}\n multiple\n placeholder={'filter'}\n value={selectedPermissons}\n items={map_(permissionList, (p) => ({\n value: p,\n text: format.ReadableField(p),\n }))}\n onUpdate={(value: string[]) => {\n dispatch(\n changeObjectPermissionsFilter({\n objectPermissions: value as typeof selectedPermissons,\n }),\n );\n }}\n label={'Permissions'}\n maxVisibleValuesTextLength={60}\n width=\"auto\"\n />\n ),\n },\n ]}\n />\n );\n}\n","import React from 'react';\nimport cn from 'bem-cn-lite';\n\nimport {Flex, Link} from '@gravity-ui/uikit';\n\nimport Icon from '../../components/Icon/Icon';\nimport MetaTable from '../../components/MetaTable/MetaTable';\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 {RadioButton} from '@gravity-ui/uikit';\n\nimport {AclMode} from '../../constants/acl';\nimport format from '../../common/hammer/format';\n\nimport {ACLReduxProps} from './ACL-connect-helpers';\n\nconst ACL_MODE_OPTIONS = [AclMode.MAIN_PERMISSIONS, AclMode.COLUMN_GROUPS_PERMISSISONS].map(\n (value) => {\n return {value, content: format.ReadableField(value)};\n },\n);\n\nexport function AclModeControl({\n updateAclFilters,\n aclMode,\n}: Pick<ACLReduxProps, 'aclMode' | 'updateAclFilters'>) {\n return (\n <RadioButton\n value={aclMode}\n options={ACL_MODE_OPTIONS}\n onUpdate={(value) => {\n updateAclFilters({aclCurrentTab: value as AclMode});\n }}\n />\n );\n}\n","import React from 'react';\nimport format from '../../common/hammer/format';\nimport {VisibleValues} from '../../components/VisibleValues/VisibleValues';\nimport {renderText} from '../../components/templates/utils';\nimport unipika from '../../common/thor/unipika';\n\nexport type AclColumnsCellProps = {\n items?: Array<string>;\n expanadable?: boolean;\n};\n\nexport function AclColumnsCell({expanadable, items}: AclColumnsCellProps) {\n if (!items) {\n return format.NO_VALUE;\n }\n\n return expanadable ? (\n <VisibleValues\n width=\"max\"\n counter=\"missing-values\"\n value={\n items?.map((v) => {\n return `\"${unipika.decode(v)}\"`;\n }) ?? []\n }\n maxVisibleValues={5}\n maxTextLength={40}\n />\n ) : (\n renderText(items?.map((item) => `\"${item}\"`).join(', '))\n );\n}\n","const SvgAclInherited = props => <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 16 16\" {...props}><path fill=\"currentColor\" fillOpacity={0.3} fillRule=\"evenodd\" d=\"M12.25 2.5h-8.5a.75.75 0 0 0-.75.75v1.5c0 .414.336.75.75.75h8.5a.75.75 0 0 0 .75-.75v-1.5a.75.75 0 0 0-.75-.75m0 4.5H5v3.13c0 .69.56 1.25 1.25 1.25H7v-.13A2.25 2.25 0 0 1 9.25 9h3a2.25 2.25 0 0 1 2.25 2.25v1.5A2.25 2.25 0 0 1 12.25 15h-3a2.25 2.25 0 0 1-2.246-2.12H6.25a2.75 2.75 0 0 1-2.75-2.75V6.986a2.25 2.25 0 0 1-2-2.236v-1.5A2.25 2.25 0 0 1 3.75 1h8.5a2.25 2.25 0 0 1 2.25 2.25v1.5A2.25 2.25 0 0 1 12.25 7m-3 3.5h3a.75.75 0 0 1 .75.75v1.5a.75.75 0 0 1-.75.75h-3a.75.75 0 0 1-.75-.75v-1.5a.75.75 0 0 1 .75-.75\" clipRule=\"evenodd\" /></svg>;\nexport default SvgAclInherited;","import React from 'react';\n\nimport {IdmObjectType} from '../../../constants/acl';\nimport Link from '../../../components/Link/Link';\nimport {InheritedFrom} from '../../../utils/acl/acl-types';\nimport {makeAccountsUrl, makeNavigationLink, makeSchedulingUrl} from '../../../utils/app-url';\n\nfunction urlFromData(data?: InheritedFrom) {\n switch (data?.kind) {\n case IdmObjectType.PATH: {\n return makeNavigationLink({path: data.name});\n }\n case IdmObjectType.POOL: {\n return makeSchedulingUrl({pool: data.name, poolTree: data.poolTree!});\n }\n case IdmObjectType.ACCOUNT: {\n return makeAccountsUrl(data.name);\n }\n default:\n return undefined;\n }\n}\n\nexport function InheritanceMessage({data}: {data?: InheritedFrom}) {\n const url = urlFromData(data);\n return !url ? (\n 'Role is inherited'\n ) : (\n <React.Fragment>\n Role is inherited{' '}\n <Link routed url={url} routedPreserveLocation>\n {data?.name}\n </Link>\n </React.Fragment>\n );\n}\n","import React, {Component, Fragment} from 'react';\nimport hammer from '../../common/hammer';\nimport cn from 'bem-cn-lite';\n\nimport compact_ from 'lodash/compact';\n\nimport {Button, ClipboardButton, Flex, Icon, Loader, Popover} from '@gravity-ui/uikit';\nimport {Column} from '@gravity-ui/react-data-table';\n\nimport {AclMode, IdmObjectType} from '../../constants/acl';\n\nimport ColumnGroups from './ColumnGroups/ColumnGroups';\n\nimport DeletePermissionModal from './DeletePermissionModal/DeletePermissionModal';\nimport {AclActions} from './AclActions/AclActions';\nimport {MyPermissions} from './MyPermissinos/MyPermissions';\n\nimport LoadDataHandler from '../../components/LoadDataHandler/LoadDataHandler';\nimport ErrorBoundary from '../../components/ErrorBoundary/ErrorBoundary';\nimport DataTableYT from '../../components/DataTableYT/DataTableYT';\nimport {Tooltip} from '../../components/Tooltip/Tooltip';\nimport {SubjectCard} from '../../components/SubjectLink/SubjectLink';\n\nimport withVisible, {WithVisibleProps} from '../../hocs/withVisible';\nimport {renderText} from '../../components/templates/utils';\nimport Label from '../../components/Label/Label';\nimport {isIdmAclAvailable} from '../../config';\nimport ApproversFilters from './ApproversFilters/ApproversFilters';\nimport ObjectPermissionsFilters from './ObjectPermissionsFilters/ObjectPermissionsFilters';\nimport UIFactory, {AclRoleActionsType} from '../../UIFactory';\n\nimport {ACLReduxProps} from './ACL-connect-helpers';\nimport {PreparedAclSubject} from '../../utils/acl/acl-types';\nimport {ObjectPermissionRowWithExpand, PreparedApprover} from '../../store/selectors/acl';\n\nimport {SegmentControl, SegmentControlItem} from '../../components/SegmentControl/SegmentControl';\nimport WithStickyToolbar from '../../components/WithStickyToolbar/WithStickyToolbar';\nimport {PreparedRole, isGranted} from '../../utils/acl';\nimport {AclModeControl} from './AclModeControl';\nimport {ExpandButton} from '../../components/ExpandButton';\nimport {AclColumnsCell} from './AclColumnsCell';\n\nimport aclInheritedSvg from '../../assets/img/svg/acl-inherited.svg';\n\nimport './ACL.scss';\nimport {InheritanceMessage} from './InheritanceMessage/InheritanceMessage';\n\nconst block = cn('navigation-acl');\n\ntype Props = ACLReduxProps & WithVisibleProps & {className?: string};\n\ntype ApproverRow = PreparedApprover;\ntype PermissionsRow = ObjectPermissionRowWithExpand;\n\nclass ACL extends Component<Props> {\n static tableColumns = {\n items: {\n inherited: {\n caption: '',\n align: 'center',\n },\n subjects: {\n align: 'left',\n },\n permissions: {\n align: 'left',\n },\n columns: {\n caption: 'Private columns',\n align: 'left',\n },\n inheritance_mode: {\n align: 'left',\n },\n actions: {\n caption: '',\n align: 'right',\n },\n responsibles: {\n align: 'left',\n },\n read_approvers: {\n align: 'left',\n },\n auditors: {\n align: 'left',\n },\n approve_type: {\n align: 'left',\n caption: 'Type',\n },\n },\n sets: {\n objectDefault: {\n items: ['inherited', 'subjects', 'permissions', 'inheritance_mode', 'actions'],\n },\n columns: {\n items: ['inherited', 'subjects', 'columns'],\n },\n approvers: {\n items: ['inherited', 'subjects', 'approve_type', 'actions'],\n },\n },\n };\n\n // eslint-disable-next-line react/sort-comp\n static renderSubjectLink(item: PreparedAclSubject | PreparedApprover | PermissionsRow) {\n const {internal} = item;\n if (internal) {\n const [subject] = item.subjects;\n const [type] = item.types ?? [];\n return (\n <SubjectCard\n name={subject!}\n type={type === 'group' ? 'group' : 'user'}\n internal\n showIcon\n />\n );\n }\n\n if (item.subjectType === 'user') {\n const {subjectUrl} = item;\n const username = item.subjects[0];\n return <SubjectCard url={subjectUrl} name={username as string} showIcon />;\n }\n\n if (item.subjectType === 'tvm') {\n const tvmId = item.subjects[0];\n const {name} = item.tvmInfo ?? {};\n\n const text = `${name} (${tvmId})`;\n return (\n <div className={block('subject-with-tvm')}>\n <SubjectCard url={item.subjectUrl} name={text} type=\"tvm\" showIcon />\n <Label text=\"TVM\" />\n </div>\n );\n }\n\n const {name, url, group} = item.groupInfo || {};\n const {group_type} = item;\n return (\n <Tooltip\n content={\n group && (\n <React.Fragment>\n idm-group:{group}\n <span className={block('copy-idm-group')}>\n <ClipboardButton text={`idm-group:${group}`} size=\"s\" />\n </span>\n </React.Fragment>\n )\n }\n >\n <SubjectCard\n name={name ?? group!}\n url={url}\n type=\"group\"\n groupType={group_type}\n showIcon\n />\n </Tooltip>\n );\n }\n\n state = {\n deleteItem: {} as {key?: string},\n };\n\n componentDidMount() {\n const {path, idmKind, loadAclData} = this.props;\n\n if (path) {\n loadAclData({path, idmKind});\n }\n }\n\n componentDidUpdate(prevProps: Props) {\n const {path, idmKind, loadAclData} = this.props;\n if (prevProps.path !== path) {\n loadAclData({path, idmKind});\n }\n }\n\n getColumnsTemplates<T extends ApproverRow | PermissionsRow>({\n hasInherited,\n }: {hasInherited?: boolean} = {}) {\n const openDeleteModal = this.handleDeletePermissionClick;\n const {idmKind, toggleExpandAclSubject} = this.props;\n return {\n expand: {\n name: '',\n align: 'right',\n className: block('table-item', {type: 'expand'}),\n render({row}) {\n const expanded = 'expanded' in row ? row.expanded : undefined;\n return expanded === undefined ? null : (\n <ExpandButton\n inline\n expanded={expanded}\n toggleExpanded={() => {\n toggleExpandAclSubject(row.subjects[0]);\n }}\n qa=\"acl-expand\"\n />\n );\n },\n width: 36,\n } as Column<T>,\n subjects: {\n name: 'Subjects',\n align: 'left',\n className: block('table-item', {type: 'subjects'}),\n render({row}) {\n const {requestPermissionsFlags = {}} = UIFactory.getAclApi();\n\n const {inheritedFrom} = row;\n\n const level = 'level' in row ? row.level : undefined;\n return (\n <Flex className={block('subject', {level: String(level)})} wrap gap={1}>\n {Boolean(hasInherited) && (\n <Popover\n className={block('inherited', {hidden: !row.inherited})}\n content={<InheritanceMessage data={inheritedFrom} />}\n >\n <Icon\n className={block('inherited-icon')}\n data={aclInheritedSvg}\n size={16}\n />\n </Popover>\n )}\n <Flex grow wrap gap={1}>\n {ACL.renderSubjectLink(row)}\n </Flex>\n {Object.keys(requestPermissionsFlags).map((key, index) => {\n const flagInfo = requestPermissionsFlags[key];\n return (\n <React.Fragment key={index}>\n {flagInfo.renderIcon(row)}\n </React.Fragment>\n );\n })}\n </Flex>\n );\n },\n } as Column<T>,\n permissions: {\n name: 'Permissions',\n align: 'left',\n className: block('table-item', {type: 'permissions'}),\n render({row}) {\n const action = row.action === 'deny' ? 'deny' : 'allow';\n const theme = action === 'deny' ? 'danger' : 'success';\n\n return (\n <div className={block('permissions', {type: row.action})}>\n <Label className={block('action-label')} theme={theme}>\n {action}\n </Label>\n <AclColumnsCell\n items={row.permissions?.map(hammer.format.Readable)}\n expanadable={'expanded' in row}\n />\n </div>\n );\n },\n } as Column<T>,\n inheritance_mode: {\n name: 'Inheritance mode',\n render({row}) {\n const {inheritance_mode: mode} = row;\n return mode === undefined\n ? hammer.format.NO_VALUE\n : renderText(hammer.format['ReadableField'](mode));\n },\n align: 'left',\n className: block('table-item', {type: 'inheritance-mode'}),\n } as Column<T>,\n actions: {\n name: 'actions',\n header: '',\n align: 'right',\n className: block('table-item', {type: 'actions'}),\n render({row}) {\n const expanded = 'expanded' in row ? row.expanded : undefined;\n const RoleActions = UIFactory.getComponentForAclRoleActions();\n return expanded !== undefined\n ? null\n : RoleActions !== undefined && (\n <RoleActions\n role={row}\n idmKind={idmKind}\n onDelete={openDeleteModal}\n />\n );\n },\n } as Column<T>,\n approve_type: {\n name: 'Type',\n align: 'left',\n className: block('table-item', {type: 'approve-type'}),\n render({row}) {\n return hammer.format['Readable'](row.type);\n },\n } as Column<T>,\n columns: {\n name: 'Private columns',\n align: 'left',\n className: block('table-item', {type: 'columns'}),\n render({row}) {\n return <AclColumnsCell items={row.columns} expanadable={'expanded' in row} />;\n },\n } as Column<T>,\n };\n }\n\n handleDeletePermissionClick = (deleteItem: AclRoleActionsType) => {\n const {handleShow} = this.props;\n this.setState({deleteItem}, handleShow);\n };\n\n handleCloseDeleteModal = () => {\n const {handleClose} = this.props;\n this.setState({deleteItem: {}}, handleClose);\n };\n\n rowClassNameByFlags<T extends ApproverRow | PermissionsRow>(item: T) {\n const {\n isUnrecognized: unrecognized,\n isDepriving: depriving,\n isRequested: requested,\n isApproved: approved,\n isMissing: missing,\n } = item;\n return block('row', {\n unrecognized: unrecognized || missing,\n depriving,\n requested,\n approved,\n });\n }\n\n renderApprovers() {\n const {hasApprovers, approversFiltered, loaded} = this.props;\n const tableColumns = (['subjects', 'approve_type', 'actions'] as const).map(\n (name) => this.getColumnsTemplates<ApproverRow>({hasInherited: true})[name],\n );\n return (\n hasApprovers && (\n <ErrorBoundary>\n <div className={block('approvers')}>\n <div className=\"elements-heading elements-heading_size_xs\">\n Responsibles\n <Button className={block('sync-with-col-groups')}>\n Hidden button to sync offsets with column groups\n </Button>\n </div>\n <WithStickyToolbar\n topMargin=\"none\"\n toolbar={<ApproversFilters />}\n bottomMargin=\"regular\"\n content={\n <DataTableYT\n data={approversFiltered}\n loaded={loaded}\n noItemsText=\"Thre are no any responsibles\"\n columns={tableColumns}\n theme={'yt-borderless'}\n rowClassName={this.rowClassNameByFlags}\n settings={{\n sortable: false,\n displayIndices: false,\n }}\n />\n }\n />\n </div>\n </ErrorBoundary>\n )\n );\n }\n\n renderObjectPermissions() {\n const {\n aclMode,\n loaded,\n loading,\n mainPermissions,\n columnsPermissions,\n idmKind,\n columnsFilter,\n updateAclFilters,\n userPermissionsAccessColumns,\n } = this.props;\n const useColumns = aclMode === AclMode.COLUMN_GROUPS_PERMISSISONS;\n\n const {items, hasDenyAction, hasExpandable, hasInherited} = useColumns\n ? columnsPermissions\n : mainPermissions;\n const extraColumns = useColumns\n ? ([...(hasDenyAction ? ['permissions' as const] : []), 'columns'] as const)\n : (['permissions'] as const);\n\n const tableColumns: Array<Column<PermissionsRow>> = (\n [\n ...(hasExpandable ? ['expand' as const] : []),\n 'subjects',\n ...extraColumns,\n 'inheritance_mode',\n 'actions',\n ] as const\n ).map((name) => this.getColumnsTemplates<PermissionsRow>({hasInherited})[name]);\n\n return (\n <ErrorBoundary>\n <div className={block('object-permissions')}>\n <div className=\"elements-heading elements-heading_size_xs\">\n {useColumns ? 'Private columns permissions' : 'Object permissions'}\n </div>\n <WithStickyToolbar\n topMargin=\"none\"\n bottomMargin=\"regular\"\n toolbar={\n <ObjectPermissionsFilters\n {...{\n aclMode,\n idmKind,\n columnsFilter,\n updateAclFilters,\n userPermissionsAccessColumns,\n }}\n />\n }\n content={\n <DataTableYT\n noItemsText={\n aclMode === AclMode.COLUMN_GROUPS_PERMISSISONS\n ? 'There are no any column group permissions'\n : 'There are no any object permissions'\n }\n data={items}\n loading={loading}\n loaded={loaded}\n columns={tableColumns}\n theme={'yt-borderless'}\n rowClassName={this.rowClassNameByFlags}\n settings={{\n sortable: false,\n displayIndices: false,\n }}\n />\n }\n />\n </div>\n </ErrorBoundary>\n );\n }\n\n renderColumnGroups() {\n const {\n loaded,\n columnGroups,\n idmKind,\n path,\n loadAclData,\n cluster,\n nodeType,\n updateAclFilters,\n columnsFilter,\n columnGroupNameFilter,\n userPermissionsAccessColumns,\n } = this.props;\n const props = {\n path,\n loadAclDataFn: () => loadAclData({path, idmKind}),\n columnGroups,\n cluster,\n allowEdit: UIFactory.getAclApi().isAllowedToEditColumnGroups({nodeType}),\n updateAclFilters,\n columnsFilter,\n columnGroupNameFilter,\n userPermissionsAccessColumns,\n };\n return isIdmAclAvailable() && idmKind === IdmObjectType.PATH ? (\n <ColumnGroups loaded={loaded} {...props} />\n ) : null;\n }\n\n deletePermissionsFn = async (...args: Parameters<Props['deletePermissionsFn']>) => {\n const {deletePermissionsFn, loadAclData, idmKind, path} = this.props;\n const res = await deletePermissionsFn(...args);\n await loadAclData({path, idmKind});\n return res;\n };\n\n renderContent() {\n const {\n disableAclInheritance,\n visible,\n bossApproval,\n disableInheritanceResponsible,\n path,\n idmKind,\n version,\n userPermissionsRequestError,\n userPermissionsRequestFn,\n userPermissionsCancelRequestFn,\n isPermissionDeleted,\n deletePermissionsLastItemKey,\n deletePermissionsError,\n loadAclData,\n loading,\n loaded,\n error,\n errorData,\n auditors,\n readApprovers,\n responsible,\n userPermissionsUpdateAcl,\n userPermissionsUpdateAclError,\n userPermissionsCancelUpdateAcl,\n cluster,\n columnGroups,\n aclMode,\n updateAclFilters,\n } = this.props;\n const {deleteItem} = this.state;\n\n const hasColumns = Boolean(aclMode);\n const useColumns = aclMode === AclMode.COLUMN_GROUPS_PERMISSISONS;\n\n return (\n <Fragment>\n <Flex className={block('toolbar', {'has-columns': hasColumns})}>\n {hasColumns && (\n <Flex grow>\n <AclModeControl {...{aclMode, updateAclFilters}} />\n </Flex>\n )}\n {loaded && (\n <AclActions\n cluster={cluster}\n className={block('acl-actions')}\n path={path}\n idmKind={idmKind}\n version={version}\n requestPermissions={userPermissionsRequestFn}\n requestPermissionsError={userPermissionsRequestError}\n cancelRequestPermissions={userPermissionsCancelRequestFn}\n loadAclData={loadAclData}\n loading={loading}\n error={error}\n errorData={errorData}\n inheritAcl={!disableAclInheritance}\n bossApproval={bossApproval}\n disableInheritanceResponsible={disableInheritanceResponsible}\n auditors={auditors}\n readApprovers={readApprovers}\n responsible={responsible}\n updateAcl={userPermissionsUpdateAcl}\n updateAclError={userPermissionsUpdateAclError}\n cancelUpdateAcl={userPermissionsCancelUpdateAcl}\n columnGroups={columnGroups}\n aclMode={aclMode}\n />\n )}\n </Flex>\n {this.renderMeta()}\n\n {useColumns ? this.renderColumnGroups() : this.renderApprovers()}\n {this.renderObjectPermissions()}\n\n <DeletePermissionModal\n idmKind={idmKind}\n path={path}\n key={deleteItem?.key}\n visible={visible}\n itemToDelete={deleteItem}\n handleClose={this.handleCloseDeleteModal}\n isPermissionDeleted={isPermissionDeleted}\n lastItemKey={deletePermissionsLastItemKey}\n deletePermissions={this.deletePermissionsFn}\n error={deletePermissionsError}\n />\n </Fragment>\n );\n }\n\n renderMeta() {\n const {\n idmKind,\n 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};\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<{path: string}>;\n}\n\ntype ConnectorType = ReturnType<typeof createACLConnector>;\n\nexport type ACLReduxProps = ConnectedProps<ConnectorType>;\n\nexport const AccessContentAcl = createACLComponent(IdmObjectType.ACCESS_CONTROL_OBJECT);\n\nexport const NavigationAcl = createACLComponent(IdmObjectType.PATH);\n\nexport const PoolAclPanel = createACLComponent(IdmObjectType.POOL);\n\nexport const AccountsAcl = createACLComponent(IdmObjectType.ACCOUNT);\n\nexport const BundleAcl = createACLComponent(IdmObjectType.TABLET_CELL_BUNDLE);\n\nexport {default as RoleActions} from './RoleActions';\n","import {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 = 'Edit ACL', editColumnsAcl = 'Edit columns ACL'} = buttonsTitle ?? {};\n const title = useColumns ? editColumnsAcl : editAcl;\n\n return !choices?.length ? null : (\n <ErrorBoundary>\n <div className={block(null, className)}>\n <Button\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 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 {Toaster} from '@gravity-ui/uikit';\nimport {YTErrorBlock} from '../../components/Error/Error';\nimport hammer from '../../common/hammer';\n\nimport {showErrorPopup} from '../../utils/utils';\nimport {YTError} from '../../types';\n\nconst toaster = new Toaster();\n\ninterface LoadDataHandlerProps {\n alwaysShowError?: boolean;\n loaded?: boolean;\n error?: boolean;\n errorData?: YTError;\n children: React.ReactNode;\n}\n\nexport default class LoadDataHandler extends Component<LoadDataHandlerProps> {\n componentDidUpdate() {\n const {error, loaded, errorData} = this.props;\n\n if (error && loaded) {\n toaster.add({\n theme: 'danger',\n name: 'network',\n autoHiding: 500000,\n title: 'Oops! something went wrong.',\n content: errorData ? (errorData as YTError).message : hammer.format.NO_VALUE,\n actions: [\n {\n label: ' view',\n onClick: () => showErrorPopup(errorData as YTError),\n },\n ],\n });\n }\n }\n\n render() {\n const {alwaysShowError = false, error, errorData, loaded, children} = this.props;\n\n const initialLoading = !loaded;\n\n if (error && (alwaysShowError || initialLoading)) {\n return <YTErrorBlock error={errorData} />;\n }\n\n return children;\n }\n}\n","import ypath from '@ytsaurus/interface-helpers/lib/ypath';\nimport hammer from '../../common/hammer';\n\nimport reduce_ from 'lodash/reduce';\n\nfunction getNetworkResourceText(resourceUsage, resourceLimit) {\n return hammer.format['Percent']((resourceUsage / resourceLimit) * 100);\n}\n\nfunction getMemoryResourceText(resourceUsage, resourceLimit) {\n return hammer.format['Bytes'](resourceUsage) + ' / ' + hammer.format['Bytes'](resourceLimit);\n}\n\nfunction getDefaultResourceText(resourceUsage, resourceLimit) {\n return hammer.format['Number'](resourceUsage) + ' / ' + hammer.format['Number'](resourceLimit);\n}\n\nfunction getResourcesText(data) {\n const resourceUsage = data.usage;\n const resourceLimit = data.limit;\n\n switch (data.type) {\n case 'network':\n return getNetworkResourceText(resourceUsage, resourceLimit);\n case 'user_memory':\n return getMemoryResourceText(resourceUsage, resourceLimit);\n default:\n return getDefaultResourceText(resourceUsage, resourceLimit);\n }\n}\n\nfunction getResourceProgressValue(data) {\n const resourceUsage = data.usage;\n const resourceLimit = data.limit;\n\n return (resourceUsage / resourceLimit) * 100;\n}\n\nfunction getResourceProgress(data) {\n return {\n text: getResourcesText(data),\n value: getResourceProgressValue(data),\n theme: 'info',\n };\n}\n\nexport function prepareResources(data) {\n const resourceUsage = ypath.getValue(data, '/resource_usage');\n const resourceLimits = ypath.getValue(data, '/resource_limits');\n const resourceTypes = ['cpu', 'user_memory', 'user_slots', 'network', 'gpu'];\n\n return reduce_(\n resourceTypes,\n (res, type) => {\n if (resourceUsage && resourceLimits) {\n const data = {\n type,\n usage: Number(ypath.getValue(resourceUsage[type], '')),\n limit: Number(ypath.getValue(resourceLimits[type], '')),\n };\n const progress = getResourceProgress(data);\n\n res.push({...data, progress});\n }\n return res;\n },\n [],\n );\n}\n","import filter_ from 'lodash/filter';\nimport find_ from 'lodash/find';\nimport map_ from 'lodash/map';\nimport reduce_ from 'lodash/reduce';\n\nimport hammer from '../../../common/hammer';\nimport {createSelector} from 'reselect';\nimport {getCluster} from '../../../store/selectors/global';\n\nimport {prepareResources} from '../../../utils/scheduling/overview';\nimport {childTableItems} from '../../../utils/scheduling/detailsTable';\nimport {poolsTableItems} from '../../../utils/scheduling/overviewTable';\nimport {FIELD_AUTO} from '../../../constants/tables';\nimport {\n ROOT_POOL_NAME,\n SCHEDULING_POOL_CHILDREN_TABLE_ID,\n SCHEDULING_POOL_TREE_TABLE_ID,\n} from '../../../constants/scheduling';\n\nimport {OldSortState} from '../../../types';\n\nimport {\n OperationInfo,\n PoolInfo,\n getPools as getPoolsImpl,\n getSchedulingPoolsMapByName,\n} from './scheduling-pools';\nimport {RootState} from '../../../store/reducers';\nimport {isAbcPoolName, isTopLevelPool} from '../../../utils/scheduling/pool';\nimport {visitTreeItems} from '../../../utils/utils';\nimport {getExpandedPoolsLoadAll, getSchedulingOperationsExpandedPools} from './expanded-pools';\nimport {\n getSchedulingAttributesToFilter,\n getSchedulingFilteredPoolNames,\n} from './attributes-to-filter';\n\nexport const getPools = getPoolsImpl;\n\nconst getExpandedPoolsIsInitialLoading = (state: RootState) => {\n const {loaded, loading} = state.scheduling.expandedPools;\n return !loaded && loading;\n};\n\nexport const getSchedulingIsInitialLoading = (state: RootState) => {\n const {loaded, loading} = state.scheduling.scheduling;\n return (!loaded && loading) || getExpandedPoolsIsInitialLoading(state);\n};\n\nexport const getTreeResources = (state: RootState) => state.scheduling.scheduling.treeResources;\nexport const getPoolChildrenFilter = (state: RootState) =>\n state.scheduling.scheduling.poolChildrenFilter;\nexport const getSchedulingTreeState = (state: RootState) => state.scheduling.scheduling.treeState;\nconst getContentModeRaw = (state: RootState) => state.scheduling.scheduling.contentMode;\n\nexport const getTree = (state: RootState) => state.scheduling.scheduling.tree;\nexport const getTrees = (state: RootState) => state.scheduling.scheduling.trees;\n\nexport const getPool = (state: RootState) => state.scheduling.scheduling.pool;\n\nexport const getSchedulingEditItem = (state: RootState) => state.scheduling.scheduling.editItem;\n\nexport const getCurrentPool = createSelector([getPool, getPools], (pool, pools) =>\n find_(pools, (item) => item.name === pool),\n);\n\nconst getSortStateRaw = (state: RootState) => state.tables[SCHEDULING_POOL_TREE_TABLE_ID];\nexport const getSortState = createSelector([getSortStateRaw, getCurrentPool], schedulingSortState);\n\nconst getPoolChildrenSortStateRaw = (state: RootState) =>\n state.tables[SCHEDULING_POOL_CHILDREN_TABLE_ID];\n\nexport const getPoolChildrenSortState = createSelector(\n [getPoolChildrenSortStateRaw, getCurrentPool],\n schedulingSortState,\n);\n\nfunction schedulingSortState(sortState: OldSortState, pool?: {mode?: 'fifo' | string}) {\n const {field, asc} = sortState;\n if (field !== FIELD_AUTO) {\n return sortState;\n }\n\n return pool?.mode === 'fifo' ? {field: 'FI', asc} : {field: 'name', asc};\n}\n\nexport const getPoolsNames = createSelector(\n getSchedulingAttributesToFilter,\n (pools): Array<string> => map_(pools, (_v, name) => name).sort(),\n);\n\nconst DETAILS_CONTENT_MODES = {\n cpu: 'cpu',\n memory: 'memory',\n gpu: 'gpu',\n user_slots: 'user_slots',\n operations: 'operations',\n integral: 'integral',\n};\n\nexport const getContentMode = createSelector([getContentModeRaw], (mode) => {\n return DETAILS_CONTENT_MODES[mode] || DETAILS_CONTENT_MODES.cpu;\n});\n\nexport const getIsRoot = createSelector(getPool, (pool) => pool === ROOT_POOL_NAME);\n\nexport const getTreesSelectItems = createSelector(getTrees, (trees) =>\n map_(trees, (tree) => ({\n value: tree,\n text: hammer.format['Readable'](tree) as string,\n })),\n);\n\nexport const getPoolsSelectItems = createSelector(getPoolsNames, (pools) => {\n const items = map_(pools, (pool) => ({\n value: pool,\n text: pool,\n }));\n\n return items;\n});\n\nexport const getPoolIsEphemeral = createSelector([getCurrentPool], (currentPool) => {\n if (currentPool && currentPool.isEphemeral !== undefined) return currentPool.isEphemeral;\n return undefined;\n});\n\nexport const getCurrentPoolChildren = createSelector(getCurrentPool, (currentPool) => {\n if (currentPool) {\n return currentPool.children;\n }\n\n return undefined;\n});\n\nexport const getCurrentPoolOperations = createSelector(getCurrentPool, (currentPool) => {\n if (currentPool) {\n return currentPool.leaves;\n }\n\n return undefined;\n});\n\nexport const getResources = createSelector(\n [getCurrentPool, getTreeResources],\n (currentPool, resources) => {\n if (currentPool && currentPool.name !== '<Root>') {\n return prepareResources(currentPool.attributes);\n } else if (resources) {\n return prepareResources(resources);\n }\n\n return [];\n },\n);\n\nconst getFilteredTree = createSelector(\n [getCurrentPool, getSchedulingFilteredPoolNames],\n (treeRoot, visiblePools) => {\n if (treeRoot) {\n return hammer.treeList.filterTree(\n treeRoot,\n (pool: {name: string}) => {\n return visiblePools === undefined || visiblePools.has(pool.name);\n },\n true,\n );\n }\n return undefined;\n },\n);\n\nexport const getTableItems = createSelector(\n [getFilteredTree, getSortState],\n (filteredTree, sortState) => {\n if (filteredTree) {\n const isRoot = filteredTree && filteredTree.name === ROOT_POOL_NAME;\n const tree = isRoot ? filteredTree : {children: [filteredTree]};\n const sortedTree = hammer.treeList.sortTree(tree, sortState, poolsTableItems);\n\n return hammer.treeList.flattenTree(sortedTree);\n }\n\n return [];\n },\n);\n\nexport const getSchedulingOverviewMaxDepth = createSelector(\n [getTableItems, getExpandedPoolsLoadAll, getTree, getSchedulingOperationsExpandedPools],\n (items: Array<{level: number; name: string}>, allExpanded, tree, expandedPoolsMap) => {\n if (allExpanded) {\n return reduce_(\n items,\n (acc, item) => {\n const {level = 0} = item || {};\n return acc < level ? level : acc;\n },\n 0,\n );\n }\n\n const expandedPools = expandedPoolsMap[tree];\n if (!expandedPools?.size) {\n return 0;\n }\n\n return reduce_(\n items,\n (acc, item) => {\n if (expandedPools.has(item.name)) {\n return acc < item.level + 1 ? item.level + 1 : acc;\n }\n return acc;\n },\n 0,\n );\n },\n);\n\nconst getPoolChildrenData = createSelector(\n [getCurrentPool, getCurrentPoolChildren, getCurrentPoolOperations],\n (pool, pools, operations = []) => {\n if (pool && pools) {\n return [...pools, ...operations];\n }\n\n return undefined;\n },\n);\n\nconst getFilteredPoolChildren = createSelector(\n [getPoolChildrenData, getPoolChildrenFilter],\n (poolChildrenData, poolChildrenFilter) => {\n return hammer.filter.filter({\n data: poolChildrenData,\n input: poolChildrenFilter,\n factors: ['name'],\n });\n },\n);\n\nexport const getSortedPoolChildren = createSelector(\n [getFilteredPoolChildren, getPoolChildrenSortState, getCurrentPool],\n (filteredPoolChildren, poolChildrenSortState, currentPool) => {\n return hammer.utils.sort(filteredPoolChildren, poolChildrenSortState, childTableItems, {\n addGetParams: [currentPool],\n groupBy: {\n asc: true,\n get(item: PoolInfo | OperationInfo) {\n return item.type === 'operation' ? 0 : 1;\n },\n },\n });\n },\n);\n\nexport const getPollChildrenTableItems = createSelector(\n [getCurrentPool, getSortedPoolChildren],\n (currentPool, sortedPoolChildren) => {\n const extras = [];\n let isChildPool = false;\n if (currentPool && currentPool.name !== ROOT_POOL_NAME) {\n extras.push(currentPool);\n isChildPool = true;\n }\n\n return extras.concat(\n map_(sortedPoolChildren, (item) => {\n return Object.assign({}, item, {isChildPool});\n }),\n );\n },\n);\n\n// The same cluster is ready for bundle's ACL\nconst CLUSTERS_WITHOUT_POOL_ACL = ['locke'];\n\nexport const isPoolAclAllowed = createSelector([getCluster], (cluster) => {\n return CLUSTERS_WITHOUT_POOL_ACL.indexOf(cluster) === -1;\n});\n\nexport const getCurrentPoolPath = createSelector(\n [getPool, getPools, getTree],\n (pool, pools, tree) => {\n return calculatePoolPath(pool, pools, tree);\n },\n);\n\nexport function calculatePoolPath(pool: string, pools: Array<PoolInfo>, tree: string) {\n const prefix = `//sys/pool_trees/${tree}`;\n\n let current = pool;\n const path = [];\n while (current) {\n if (current !== ROOT_POOL_NAME) {\n path.push(current);\n }\n const tmp = current;\n const {parent} = find_(pools, ({name}) => name === tmp) || {};\n current = parent || '';\n }\n const pathStr = !path.length ? '' : '/' + path.reverse().join('/');\n return `${prefix}${pathStr}`;\n}\n\nexport const getSchedulingTopPoolOfEditItem = createSelector(\n [getSchedulingEditItem, getSchedulingPoolsMapByName],\n (pool, mapOfPools) => {\n if (isAbcPoolName(pool?.name)) {\n return undefined;\n }\n\n if (isTopLevelPool(pool)) {\n return pool;\n }\n\n let item = pool;\n while (item) {\n const parent = mapOfPools[item.parent];\n if (isAbcPoolName(item.parent)) {\n return item;\n }\n\n if (isTopLevelPool(item)) {\n return item;\n }\n\n item = parent;\n }\n return undefined;\n },\n);\n\nexport const getSchedulingSourcesOfEditItem = createSelector(\n [getSchedulingEditItem, getSchedulingTopPoolOfEditItem, getSchedulingPoolsMapByName],\n (pool, topPool, mapOfPools): Array<string> => {\n if (!pool?.name || !mapOfPools) {\n return [];\n }\n\n const res: Array<string> = [];\n visitTreeItems(\n topPool,\n (item: PoolInfo) => {\n if (pool.name !== item.name) {\n res.push(item.name);\n }\n },\n {\n isNeedToSkipChildren: (item: PoolInfo) => {\n return item?.name === pool?.name;\n },\n },\n );\n\n return res;\n },\n);\n\nexport const getSchedulingSourcesOfEditItemSkipParent = createSelector(\n [getSchedulingEditItem, getSchedulingSourcesOfEditItem],\n (pool, sources) => {\n if (!pool?.parent) {\n return sources;\n }\n\n return filter_(sources, (item) => item !== pool.parent);\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 {Button, Select, SelectOption, SelectProps, Text, TextInput} 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(props: YTSelectProps) {\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 (value: Required<YTSelectProps>['value']) => {\n onChange?.(value);\n onUpdate?.(value);\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}\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\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 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'> {\n controlRef: React.Ref<HTMLElement>;\n hashByValue: Map<string, SelectOption>;\n maxVisibleValues?: YTSelectProps['maxVisibleValues'];\n placeholder?: SelectProps['placeholder'];\n className?: string;\n}\n\nfunction ValueControl({\n className,\n value,\n label,\n onClick,\n hashByValue,\n controlRef,\n width,\n pin,\n disabled,\n maxVisibleValues,\n maxVisibleValuesTextLength,\n placeholder,\n renderItem,\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={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 {Page} from '../../../shared/constants/settings';\nimport {Tab as ComponentsTab} from '../../constants/components/main';\nimport {YT} from '../../config/yt-config';\n\nexport * from './navigation';\n\nexport function makeComponentsNodesUrl({host, cluster}: {host?: string; cluster?: string} = {}) {\n return host\n ? `/${cluster || YT.cluster}/${Page.COMPONENTS}/${ComponentsTab.NODES}/${host}`\n : `/${cluster || YT.cluster}/${Page.COMPONENTS}/${ComponentsTab.NODES}`;\n}\n\nexport function makeProxyUrl(cluster: string, address: string) {\n return `/${cluster}/${Page.COMPONENTS}/${ComponentsTab.RPC_PROXIES}?host=${address}`;\n}\n\nexport function makeSchedulingUrl({\n pool,\n poolTree,\n cluster,\n}: {\n pool: string;\n poolTree: string;\n cluster?: string;\n}) {\n return `/${cluster || YT.cluster}/${Page.SCHEDULING}?pool=${pool}&poolTree=${poolTree}`;\n}\n\nexport function makeAccountsUrl(account: string, cluster?: string) {\n return `/${cluster || YT.cluster}/${Page.ACCOUNTS}?account=${account}`;\n}\n\nexport function makeBundleUrl({bundle, cluster}: {bundle: string; cluster?: string}) {\n return `/${cluster || YT.cluster}/${Page.TABLET_CELL_BUNDLES}/instances?activeBundle=${bundle}`;\n}\n","import {createSelector} from 'reselect';\nimport reduce_ from 'lodash/reduce';\nimport forEach_ from 'lodash/forEach';\n\nimport {RootState} from '../../reducers';\nimport {getSchedulingPoolsMapByName} from './scheduling-pools';\n\nexport const getSchedulingAbcFilter = (state: RootState) =>\n state.scheduling.scheduling.abcServiceFilter;\n\nexport const getOperationRefId = (state: RootState) => state.scheduling.scheduling.operationRefId;\n\nexport const getSchedulingAttributesToFilter = (state: RootState) =>\n state.scheduling.scheduling.attributesToFilter;\nexport const getSchedulingAttributesToFilterParams = (state: RootState) =>\n state.scheduling.scheduling.attributesToFilterParams;\n\nexport const schedulingOverviewHasFilter = (state: RootState) => {\n const abcFilter = getSchedulingAbcFilter(state);\n\n return abcFilter?.id !== undefined;\n};\n\nexport const getSchedulingFilteredPoolNames = createSelector(\n [getSchedulingAttributesToFilter, getSchedulingPoolsMapByName, getSchedulingAbcFilter],\n (attrsToFilter, loadedPools, abcFilter) => {\n if (!attrsToFilter) {\n return undefined;\n }\n\n if (abcFilter?.id === undefined) {\n return undefined;\n }\n\n const res = reduce_(\n attrsToFilter,\n (acc, attrs, key) => {\n if (attrs.abc?.id !== abcFilter?.id) {\n return acc;\n }\n\n acc.add(key);\n return acc;\n },\n new Set<string>(),\n );\n\n forEach_([...res], (poolName) => {\n let name = poolName;\n let item = attrsToFilter[name];\n while (item?.parent && !loadedPools[name]) {\n res.add(item.parent);\n\n name = item.parent;\n item = attrsToFilter[item.parent];\n }\n });\n\n return res;\n },\n);\n","import {createSelector} from 'reselect';\n\nimport compact_ from 'lodash/compact';\nimport filter_ from 'lodash/filter';\nimport flatten_ from 'lodash/flatten';\nimport forEach_ from 'lodash/forEach';\nimport map_ from 'lodash/map';\nimport sortBy_ from 'lodash/sortBy';\nimport uniq_ from 'lodash/uniq';\nimport partition_ from 'lodash/partition';\nimport isEqual_ from 'lodash/isEqual';\nimport some_ from 'lodash/some';\n\nimport {calculateLoadingStatus} from '../../utils/utils';\nimport {concatByAnd} from '../../common/hammer/predicate';\nimport {\n getAclFilterColumnGroupName,\n getAclFilterColumns,\n getAclFilterExpandedSubjects,\n getApproversSubjectFilter,\n getObjectPermissionsFilter,\n getObjectSubjectFilter,\n} from './acl-filters';\nimport UIFactory from '../../UIFactory';\nimport {RootState} from '../../store/reducers';\nimport {IdmKindType, PreparedAclSubject} from '../../utils/acl/acl-types';\nimport {YTPermissionTypeUI} from '../../utils/acl/acl-api';\nimport {PreparedRole} from '../../utils/acl';\n\nexport type PreparedAclSubjectColumn = Omit<PreparedAclSubject, 'type'> & {type: 'columns'};\n\nfunction prepareColumnsNames(columnsPermissions: Array<{columns?: Array<string>}>) {\n const columns = map_(columnsPermissions, (permission) => permission.columns);\n\n return compact_(uniq_(flatten_(columns))).sort();\n}\n\nfunction prepareApprovers(\n approvers: Array<PreparedRole> | undefined,\n type: 'read_approver' | 'responsible' | 'auditor',\n) {\n return map_(approvers, (subject) => {\n const extra = {\n type,\n subjects: [subject.value],\n subjectType: subject.type === 'users' ? ('user' as const) : ('group' as const),\n groupInfo:\n subject.type === 'groups'\n ? {name: subject.group_name, url: subject.url, group: undefined}\n : undefined,\n action: undefined,\n };\n return {\n ...subject,\n ...extra,\n };\n });\n}\n\nexport type PreparedApprover = ReturnType<typeof prepareApprovers>[number];\n\nexport const getAllUserPermissions = (state: RootState, idmKind: IdmKindType) =>\n state.acl[idmKind].userPermissions;\nconst getAllObjectPermissions = (state: RootState, idmKind: IdmKindType) =>\n state.acl[idmKind].objectPermissions;\n\nconst getAllObjectPermissionsWithSplittedSubjects = createSelector(\n [getAllObjectPermissions],\n splitSubjects,\n);\n\nexport const getObjectPermissionsTypesList = (idmKind: IdmKindType) => {\n return createSelector(\n [\n getObjectPermissionsFilter,\n (state) => getAllObjectPermissionsWithSplittedSubjects(state, idmKind),\n ],\n (permissionsFilter, items) => {\n const uniquePermisions = new Set<YTPermissionTypeUI>();\n const {permissionTypes} = UIFactory.getAclPermissionsSettings()[idmKind] || {};\n [...permissionTypes, ...permissionsFilter].forEach((permission) =>\n uniquePermisions.add(permission),\n );\n items.forEach((item) => {\n const {permissions} = item;\n permissions?.forEach((permission) => uniquePermisions.add(permission));\n });\n return sortBy_([...uniquePermisions], (permission) => permission);\n },\n );\n};\n\ntype HasSplitted = {\n isSplitted?: boolean;\n subjectIndex?: number;\n};\n\nfunction splitSubjects<T extends {subjects: Array<unknown>}>(items: Array<T>) {\n const res: Array<T & HasSplitted> = [];\n forEach_(items, (item) => {\n const {subjects} = item;\n if (subjects && subjects.length > 1) {\n forEach_(subjects, (subject, index) => {\n res.push({...item, subjects: [subject], isSplitted: true, subjectIndex: index});\n });\n } else {\n res.push(item);\n }\n });\n return res;\n}\n\nfunction subjectFilterPredicate<\n T extends {subjectType?: unknown; groupInfo?: unknown; subjects: Array<unknown>},\n>(item: T, filter: string) {\n const {subjectType, groupInfo} = item;\n if (subjectType === 'group') {\n return some_(Object.entries(groupInfo ?? {}), ([key, value]) => {\n let str: string | undefined = String(value);\n if (key === 'url') {\n if (str[str.length - 1] === '/') str = str.slice(0, -1);\n str = str.split('/').pop();\n }\n return -1 !== str?.toLowerCase().indexOf(filter);\n });\n }\n const value = String(item.subjects[0] ?? '');\n return -1 !== value.toLowerCase().indexOf(filter);\n}\n\nfunction FilterBySubject<\n T extends {subjectType?: unknown; groupInfo?: unknown; subjects: Array<unknown>},\n>(items: Array<T>, subjectFilter?: string) {\n if (!subjectFilter) return items;\n const lowerNameFilter = subjectFilter.toLowerCase();\n return filter_(items, (item) => subjectFilterPredicate(item, lowerNameFilter));\n}\n\nconst permissionsFilterPredicate = (item: PreparedAclSubject, filter: Set<YTPermissionTypeUI>) => {\n const {permissions} = item;\n let foundCount = 0;\n return permissions?.some((p) => {\n if (filter.has(p)) {\n foundCount++;\n }\n return foundCount >= filter.size;\n });\n};\n\ntype ObjectPermissionsRow = PreparedAclSubject & HasSplitted;\n\nexport const getAllObjectPermissionsFiltered = createSelector(\n [\n getAllObjectPermissionsWithSplittedSubjects,\n getObjectSubjectFilter,\n getObjectPermissionsFilter,\n getAclFilterColumns,\n ],\n (items, subjectFilter, permissionsFilter, columns) => {\n const [mainPermissions, columnPermissions] = partition_(\n items,\n (item) => !item.columns?.length,\n );\n\n const withColumns = columnPermissions.map((item) => {\n return {...item, columns: sortBy_(item.columns)};\n });\n\n const lowerNameFilter = subjectFilter?.toLocaleLowerCase();\n const filterBySubject = lowerNameFilter\n ? (item: ObjectPermissionsRow) => subjectFilterPredicate(item, lowerNameFilter)\n : undefined;\n\n const permissionsFilterSet = new Set<YTPermissionTypeUI>(permissionsFilter);\n const filterByPermissions = permissionsFilterSet.size\n ? (item: ObjectPermissionsRow) =>\n permissionsFilterPredicate(item, permissionsFilterSet) ?? false\n : undefined;\n\n const visibleColumns = new Set(columns);\n const filterByColumns = visibleColumns.size\n ? ({columns}: ObjectPermissionsRow) => {\n return columns?.some((colName) => visibleColumns.has(colName)) ?? false;\n }\n : undefined;\n\n const mainPredicates = compact_([filterBySubject, filterByPermissions]);\n const columnsPredicates = compact_([filterBySubject, filterByColumns]);\n return {\n mainPermissions: mainPredicates.length\n ? mainPermissions.filter(concatByAnd(...mainPredicates))\n : mainPermissions,\n columnsPermissions: columnsPredicates.length\n ? withColumns.filter(concatByAnd(...columnsPredicates))\n : withColumns,\n };\n },\n);\n\nexport const getObjectPermissionsAggregated = createSelector(\n [getAllObjectPermissionsFiltered, getAclFilterExpandedSubjects],\n ({mainPermissions, columnsPermissions}, expandedSubjects) => {\n return {\n mainPermissions: {\n ...aggregateBySubject(mainPermissions, expandedSubjects),\n count: mainPermissions.length,\n },\n columnsPermissions: {\n ...aggregateBySubject(columnsPermissions, expandedSubjects),\n count: columnsPermissions.length,\n },\n };\n },\n);\n\nclass AggregateBySubject {\n aggrKey: string;\n subject: ObjectPermissionsRow['subjects'][number];\n inherited: boolean;\n\n allPermissions = new Set<YTPermissionTypeUI>();\n columns = new Set<string>();\n first: ObjectPermissionsRow;\n children = new Array<ObjectPermissionsRow & {expanded?: boolean; level?: number}>();\n\n constructor(first: AggregateBySubject['first']) {\n if (first.subjects.length > 1) {\n throw new Error(\n `Unexpected behavior: more than one subject occured: ${first.subjects.join(',')}`,\n );\n }\n\n this.aggrKey = aggregationKey(first);\n this.inherited = Boolean(first.inherited);\n this.subject = first.subjects[0];\n this.first = {...first};\n this.add(first);\n }\n\n add(item: ObjectPermissionsRow) {\n const aggrKey = aggregationKey(item);\n if (this.aggrKey !== aggrKey) {\n throw new Error(\n `Unexpected behavior: aggregation keys are not queal: ${this.aggrKey} !== ${aggrKey}`,\n );\n }\n\n if (item.subjects.length !== 1) {\n throw new Error(\n `Unexpected behavior: item.subjects.length !== 1: ${JSON.stringify(item)}`,\n );\n }\n\n const child = {...item, permissions: [...(item.permissions ?? [])]};\n this.children.push(child);\n\n child.permissions?.sort();\n child.permissions?.forEach((p) => {\n this.allPermissions.add(p);\n });\n item.columns?.forEach((column) => this.columns.add(column));\n\n this.first.isMissing ||= Boolean(item.isMissing);\n this.first.isUnrecognized ||= Boolean(item.isUnrecognized);\n this.first.isApproved ||= Boolean(item.isApproved);\n this.first.isRequested ||= Boolean(item.isRequested);\n }\n\n getItems(expanded: boolean): {\n items: AggregateBySubject['children'];\n hasExpandable?: boolean;\n hasDenyAction?: boolean;\n hasInherited?: boolean;\n } {\n const hasInherited = this.inherited;\n if (this.children.length === 1) {\n return {items: this.children, hasInherited};\n }\n\n const first: typeof this.first & {level?: number; expanded?: boolean} = {\n ...this.first,\n level: 0,\n expanded,\n };\n first.permissions = [...this.allPermissions].sort();\n first.columns = [...this.columns].sort();\n\n let hasDenyAction = false;\n const items = !expanded\n ? [first]\n : [\n first,\n ...sortBy_(this.children, ['inheritance_mode', 'permissions']).map((i) => {\n hasDenyAction ||= i.action === 'deny';\n return {...i, level: 1};\n }),\n ];\n\n this.children.forEach((i) => {\n if (i.inheritance_mode !== first.inheritance_mode) {\n first.inheritance_mode = undefined;\n }\n if (!isEqual_(this.first.inheritedFrom, i.inheritedFrom)) {\n first.inheritedFrom = undefined;\n }\n });\n\n return {items, hasExpandable: true, hasDenyAction, hasInherited};\n }\n}\n\nexport type ObjectPermissionRowWithExpand = AggregateBySubject['children'][number];\n\nfunction aggregationKey(item: ObjectPermissionsRow) {\n const {\n inherited,\n subjects: [subject],\n } = item;\n return `subject:${subject}_inherited:${Boolean(inherited)}`;\n}\n\nfunction aggregateBySubject(\n objPermissions: Array<ObjectPermissionsRow>,\n expandedSubjects: Set<string | number>,\n) {\n const aggregated: Record<string, AggregateBySubject> = {};\n\n objPermissions.forEach((item) => {\n const aggKey = aggregationKey(item);\n const dst = aggregated[aggKey];\n if (!dst) {\n aggregated[aggKey] = new AggregateBySubject(item);\n } else {\n dst.add(item);\n }\n });\n\n const res = Object.values(aggregated).reduce(\n (acc, item) => {\n const {items, hasExpandable, hasInherited} = item.getItems(\n expandedSubjects.has(item.subject),\n );\n acc.items = acc.items.concat(items);\n acc.hasExpandable ||= hasExpandable;\n acc.hasInherited ||= hasInherited;\n return acc;\n },\n {items: []} as ReturnType<AggregateBySubject['getItems']>,\n );\n\n const [inherited, other] = partition_(res.items, (item) => item.inherited);\n\n return {\n ...res,\n items: [...inherited, ...other],\n };\n}\n\nexport const getAllObjectPermissionsOrderedByStatus = createSelector(\n [getAllObjectPermissions],\n OrderByRoleStatus,\n);\nexport const getAllColumnGroups = (state: RootState, idmKind: IdmKindType) =>\n state.acl[idmKind].columnGroups;\nexport const getAllColumnGroupsActual = createSelector(\n [getAllColumnGroups, getAclFilterColumns, getAclFilterColumnGroupName],\n (items, columnsFilter, nameFilter) => {\n const visibleColumns = new Set(columnsFilter);\n type ItemType = (typeof items)[number];\n const nameFilterLower = nameFilter?.toLowerCase();\n const predicates = compact_([\n (item: ItemType) => {\n return !item.removed;\n },\n visibleColumns.size > 0\n ? (item: ItemType) => {\n return item.columns?.some((name) => visibleColumns.has(name)) ?? false;\n }\n : undefined,\n nameFilterLower?.length\n ? (item: ItemType) =>\n -1 !== (item.name?.toLowerCase()?.indexOf(nameFilterLower) ?? -1)\n : undefined,\n ]);\n const filtered = filter_(items, concatByAnd(...predicates)).map((item) => {\n return {...item, columns: sortBy_(item.columns)};\n });\n return sortBy_(filtered, ['name']);\n },\n);\n\nfunction OrderByRoleStatus<\n T extends {\n isDepriving?: boolean;\n isRequested?: boolean;\n isUnrecognized?: boolean;\n isApproved?: boolean;\n },\n>(items: Array<T>) {\n const unrecognized: typeof items = [];\n const requested: typeof items = [];\n const depriving: typeof items = [];\n const rest: typeof items = [];\n forEach_(items, (item) => {\n const {isDepriving, isRequested, isUnrecognized, isApproved} = item;\n if (isUnrecognized) {\n unrecognized.push(item);\n } else if (isDepriving) {\n depriving.push(item);\n } else if (isRequested || isApproved) {\n requested.push(item);\n } else {\n rest.push(item);\n }\n });\n return [...requested, ...depriving, ...unrecognized, ...rest];\n}\n\nfunction OrderByInheritanceAndSubject<T extends {inherited?: boolean; subjects: Array<unknown>}>(\n items: Array<T>,\n) {\n const res = sortBy_(items, [\n (item) => !item.inherited,\n (item) => (item.subjects && item.subjects[0]) || true,\n ]);\n return res;\n}\n\nconst getReadApprovers = (state: RootState, idmKind: IdmKindType) =>\n state.acl[idmKind].readApprovers;\nconst getResponsibles = (state: RootState, idmKind: IdmKindType) => state.acl[idmKind].responsible;\nconst getAuditors = (state: RootState, idmKind: IdmKindType) => state.acl[idmKind].auditors;\n\nexport const getNotInheritedReadApprovers = createSelector([getReadApprovers], (readApprovers) =>\n filter_(readApprovers, (readApprover) => !readApprover.inherited),\n);\nexport const getNotInheritedResponsibles = createSelector([getResponsibles], (responsibles) =>\n filter_(responsibles, (responsible) => !responsible.inherited),\n);\nexport const getNotInheritedAuditors = createSelector([getAuditors], (auditros) =>\n filter_(auditros, (auditro) => !auditro.inherited),\n);\n\nconst getAllApprovers = createSelector(\n [getReadApprovers, getResponsibles, getAuditors],\n (readApprovers, responsibles, auditros) => {\n return [\n ...prepareApprovers(readApprovers, 'read_approver'),\n ...prepareApprovers(responsibles, 'responsible'),\n ...prepareApprovers(auditros, 'auditor'),\n ];\n },\n);\n\nexport const getHasApprovers = createSelector([getAllApprovers], (items) => items.length > 0);\n\nexport const getApproversFiltered = createSelector(\n [getAllApprovers, getApproversSubjectFilter],\n FilterBySubject,\n);\n\nexport const getApproversFilteredAndOrdered = createSelector(\n [getApproversFiltered],\n OrderByInheritanceAndSubject,\n);\n\nexport const getApprovers = createSelector([getAllApprovers], OrderByRoleStatus);\n\nexport const getAllAccessColumnsPermissions = createSelector(\n [getAllObjectPermissions],\n (objectPermissions) => {\n const filteredPermissions = filter_(\n objectPermissions,\n (permission) => permission.action === 'allow' && permission.columns?.length! > 0,\n );\n\n return map_(filteredPermissions, (item) => {\n const tmp: typeof item = {...item};\n tmp.type = 'columns';\n return tmp;\n });\n },\n);\n\nconst getAllDenyColumnsPermissions = createSelector(\n [getAllObjectPermissions],\n (objectPermissions) => {\n const filteredPermissions = filter_(\n objectPermissions,\n (permission) => permission.action === 'deny' && permission.columns?.length! > 0,\n );\n\n return map_(\n filteredPermissions,\n (permission) =>\n ({\n ...permission,\n type: 'columns',\n }) as PreparedAclSubjectColumn,\n );\n },\n);\n\nexport const getAllAccessColumnsNames = createSelector(\n [getAllAccessColumnsPermissions],\n prepareColumnsNames,\n);\n\nexport const getAllDenyColumnsNames = createSelector(\n [getAllDenyColumnsPermissions],\n prepareColumnsNames,\n);\n\nexport const getDenyColumnsItems = createSelector([getAllDenyColumnsNames], (names) =>\n map_(names, (name) => ({key: name, value: name, title: name})),\n);\n\nexport const isPermissionDeleted = (state: RootState, idmKind: IdmKindType) =>\n state.acl[idmKind].isPermissionDeleted;\nexport const permissionDeletionError = (state: RootState, idmKind: IdmKindType) =>\n state.acl[idmKind].deletionError;\nexport const getLastDeletedPermissionKey = (state: RootState, idmKind: IdmKindType) =>\n state.acl[idmKind].deletedItemKey;\nexport const getIdmPermissionsRequestError = (state: RootState, idmKind: IdmKindType) =>\n state.acl[idmKind].idmPermissionsRequestError;\nexport const getIdmManageAclRequestError = (state: RootState, idmKind: IdmKindType) =>\n state.acl[idmKind].idmManageAclRequestError;\nexport const getIdmPathVersion = (state: RootState, idmKind: IdmKindType) =>\n state.acl[idmKind].version;\n\nconst getAclLoading = (state: RootState, idmKind: IdmKindType) => state.acl[idmKind].loading;\nconst getAclLoaded = (state: RootState, idmKind: IdmKindType) => state.acl[idmKind].loaded;\nconst getAclError = (state: RootState, idmKind: IdmKindType) => state.acl[idmKind].error;\n\nexport const getAclLoadState = createSelector(\n [getAclLoading, getAclLoaded, getAclError],\n (loading, loaded, error) => {\n return calculateLoadingStatus(loading, loaded, error);\n },\n);\n","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 React from 'react';\n\nimport format from '../../common/hammer/format';\nimport SchedulingOperationsLoader from '../../pages/scheduling/Content/tabs/ScherdulingOperataionsLoader/SchedulingOperationsLoader';\nimport type {PoolInfo, PoolResourceType} from '../../store/selectors/scheduling/scheduling-pools';\n\nfunction prepareDetailedColumn(resource: PoolResourceType) {\n return {\n get(item: PoolInfo) {\n return item.resources?.[resource]?.detailed;\n },\n sort: true,\n caption: 'Abs fair share',\n align: 'right',\n };\n}\n\nfunction prepareLimitColumn(resource: PoolResourceType) {\n return {\n get(item: PoolInfo) {\n return item.resources?.[resource]?.limit;\n },\n sort: true,\n sortWithUndefined: true,\n caption: 'Limit',\n align: 'right',\n };\n}\n\nfunction prepareMinResourcesColumn(resource: PoolResourceType) {\n return {\n get(item: PoolInfo) {\n return item.resources?.[resource]?.min;\n },\n sort: true,\n caption: 'Strong guar.',\n title: 'Strong guarantee',\n align: 'right',\n };\n}\n\nfunction prepareAbsGuaranteedColumn(resource: PoolResourceType) {\n return {\n get(item: PoolInfo) {\n return item.resources?.[resource]?.guaranteed;\n },\n sort: true,\n caption: 'Estimated guar.',\n title: 'Estimated guarantee',\n align: 'right',\n };\n}\n\nfunction prepareRelGuaranteedColumn(resource: PoolResourceType) {\n return {\n get(item: PoolInfo, currentPool: PoolInfo) {\n return (\n prepareAbsGuaranteedColumn(resource).get(item)! /\n prepareAbsGuaranteedColumn(resource).get(currentPool)!\n );\n },\n sort: true,\n caption: 'Rel guaranteed',\n align: 'right',\n };\n}\n\nfunction prepareAbsDemandColumn(resource: PoolResourceType) {\n return {\n get(item: PoolInfo) {\n return item.resources?.[resource]?.demand;\n },\n sort: true,\n caption: 'Abs demand',\n align: 'right',\n };\n}\n\nfunction prepareAbsUsageColumn(resource: PoolResourceType) {\n return {\n get(item: PoolInfo) {\n return item.resources?.[resource]?.usage;\n },\n sort: true,\n caption: 'Abs usage',\n align: 'right',\n };\n}\n\nfunction prepareRelUsageColumn(resource: PoolResourceType) {\n return {\n get(item: PoolInfo, currentPool: PoolInfo) {\n return (\n prepareAbsUsageColumn(resource).get(item)! /\n prepareAbsUsageColumn(resource).get(currentPool)!\n );\n },\n sort: true,\n caption: 'Rel usage',\n align: 'right',\n };\n}\n\nfunction prepareGuaranteedUsageColumn(resource: PoolResourceType) {\n return {\n get(item: PoolInfo, currentPool: PoolInfo) {\n return {\n guaranteed: prepareRelGuaranteedColumn(resource).get(item, currentPool),\n usage: prepareRelUsageColumn(resource).get(item, currentPool),\n };\n },\n caption: 'Usage / Guaranteed',\n align: 'center',\n };\n}\n\nexport const childTableItems = {\n name: {\n sort(item: PoolInfo) {\n return item.name;\n },\n caption: 'Pool / Operation',\n captionTail: <SchedulingOperationsLoader />,\n align: 'left',\n },\n mode: {\n sort(item: PoolInfo) {\n return item.mode;\n },\n align: 'center',\n },\n FI: {\n sort(item: PoolInfo) {\n return item.fifoIndex;\n },\n align: 'center',\n },\n weight: {\n sort(item: PoolInfo) {\n return item.weight;\n },\n align: 'right',\n },\n min_share: {\n sort(item: PoolInfo) {\n return item.minShareRatio;\n },\n align: 'right',\n },\n max_share: {\n sort(item: PoolInfo) {\n return item.maxShareRatio;\n },\n align: 'right',\n },\n fair_share: {\n get(item: PoolInfo) {\n return item.fairShareRatio;\n },\n sort: true,\n align: 'right',\n },\n usage: {\n get(item: PoolInfo) {\n return item.usageRatio;\n },\n sort: true,\n align: 'right',\n },\n demand: {\n get(item: PoolInfo) {\n return item.demandRatio;\n },\n sort: true,\n align: 'right',\n },\n fair_share_usage: {\n caption: 'Usage / Fair share',\n align: 'left',\n },\n dominant_resource: {\n sort(item: PoolInfo) {\n return item.dominantResource;\n },\n caption: 'Dom. res.',\n title: 'Dominant Resource',\n align: 'left',\n },\n\n resource_detailed_cpu: prepareDetailedColumn('cpu'),\n resource_detailed_memory: prepareDetailedColumn('user_memory'),\n resource_detailed_gpu: prepareDetailedColumn('gpu'),\n resource_detailed_user_slots: prepareDetailedColumn('user_slots'),\n\n resource_limit_cpu: prepareLimitColumn('cpu'),\n resource_limit_memory: prepareLimitColumn('user_memory'),\n resource_limit_gpu: prepareLimitColumn('gpu'),\n resource_limit_user_slots: prepareLimitColumn('user_slots'),\n\n min_resources_cpu: prepareMinResourcesColumn('cpu'),\n min_resources_memory: prepareMinResourcesColumn('user_memory'),\n min_resources_gpu: prepareMinResourcesColumn('gpu'),\n min_resources_user_slots: prepareMinResourcesColumn('user_slots'),\n\n abs_guaranteed_cpu: prepareAbsGuaranteedColumn('cpu'),\n abs_guaranteed_memory: prepareAbsGuaranteedColumn('user_memory'),\n abs_guaranteed_gpu: prepareAbsGuaranteedColumn('gpu'),\n abs_guaranteed_user_slots: prepareAbsGuaranteedColumn('user_slots'),\n\n rel_guaranteed_cpu: prepareRelGuaranteedColumn('cpu'),\n rel_guaranteed_memory: prepareRelGuaranteedColumn('user_memory'),\n rel_guaranteed_gpu: prepareRelGuaranteedColumn('gpu'),\n rel_guaranteed_user_slots: prepareRelGuaranteedColumn('user_slots'),\n\n abs_usage_cpu: prepareAbsUsageColumn('cpu'),\n abs_usage_memory: prepareAbsUsageColumn('user_memory'),\n abs_usage_gpu: prepareAbsUsageColumn('gpu'),\n abs_usage_user_slots: prepareAbsUsageColumn('user_slots'),\n\n abs_demand_cpu: prepareAbsDemandColumn('cpu'),\n abs_demand_memory: prepareAbsDemandColumn('user_memory'),\n abs_demand_gpu: prepareAbsDemandColumn('gpu'),\n abs_demand_user_slots: prepareAbsDemandColumn('user_slots'),\n\n rel_usage_cpu: prepareRelUsageColumn('cpu'),\n rel_usage_memory: prepareRelUsageColumn('user_memory'),\n rel_usage_gpu: prepareRelUsageColumn('gpu'),\n rel_usage_user_slots: prepareRelUsageColumn('user_slots'),\n\n guaranteed_usage_cpu: prepareGuaranteedUsageColumn('cpu'),\n guaranteed_usage_memory: prepareGuaranteedUsageColumn('user_memory'),\n guaranteed_usage_gpu: prepareGuaranteedUsageColumn('gpu'),\n guaranteed_usage_user_slots: prepareGuaranteedUsageColumn('user_slots'),\n\n operation_overview: {\n get(item: PoolInfo) {\n return [item.operationCount, item.runningOperationCount];\n },\n caption: 'Operations',\n sort: true,\n align: 'right',\n },\n operation_count: {\n get(item: PoolInfo) {\n return item.operationCount;\n },\n sort: true,\n align: 'right',\n },\n max_operation_count: {\n get(item: PoolInfo) {\n return item.maxOperationCount;\n },\n sort: true,\n align: 'right',\n },\n operation_progress: {\n get(item: PoolInfo) {\n return item.operationCount! / item.maxOperationCount!;\n },\n text(item: PoolInfo) {\n return `${format.Number(item.operationCount)} / ${format.Number(\n item.maxOperationCount,\n )}`;\n },\n caption: 'Total operations (usage/limit)',\n sort: true,\n align: 'center',\n },\n running_operation_count: {\n get(item: PoolInfo) {\n return item.runningOperationCount;\n },\n sort: true,\n align: 'right',\n },\n max_running_operation_count: {\n get(item: PoolInfo) {\n return item.maxRunningOperationCount;\n },\n sort: true,\n align: 'right',\n },\n running_operation_progress: {\n get(item: PoolInfo) {\n return item.runningOperationCount! / item.maxRunningOperationCount!;\n },\n text(item: PoolInfo) {\n return `${format.Number(item.runningOperationCount)} / ${format.Number(\n item.maxRunningOperationCount,\n )}`;\n },\n caption: 'Running operations (usage/limit)',\n sort: true,\n align: 'center',\n },\n\n integral_type: {\n get(item: PoolInfo) {\n const res = item.integralType;\n return res === 'none' ? undefined : res;\n },\n caption: 'Guarantee type',\n sort: true,\n align: 'right',\n sortWithUndefined: true,\n },\n burst_cpu: {\n get(item: PoolInfo) {\n return item.burstCPU;\n },\n sort(item: PoolInfo) {\n const res = item.burstCPU;\n return isNaN(res) ? undefined : res;\n },\n caption: 'Burst CPU',\n sortWithUndefined: true,\n align: 'right',\n },\n flow_cpu: {\n get(item: PoolInfo) {\n return item.flowCPU;\n },\n sort(item: PoolInfo) {\n const res = item.flowCPU;\n return isNaN(res) ? undefined : res;\n },\n caption: 'Flow CPU',\n sortWithUndefined: true,\n align: 'right',\n },\n children_burst_cpu: {\n get(item: PoolInfo) {\n const res = item.childrenBurstCPU;\n return !res ? undefined : res;\n },\n caption: \"Children's burst CPU\",\n sort: true,\n sortWithUndefined: true,\n align: 'right',\n },\n children_flow_cpu: {\n get(item: PoolInfo) {\n const res = item.childrenFlowCPU;\n return !res ? undefined : res;\n },\n caption: \"Children's flow CPU\",\n sort: true,\n sortWithUndefined: true,\n align: 'right',\n },\n accumulated: {\n get(item: PoolInfo) {\n return item.accumulated;\n },\n caption: 'Acc ratio volume',\n sortWithUndefined: true,\n sort: true,\n align: 'right',\n },\n accumulated_cpu: {\n get(item: PoolInfo) {\n return item.accumulatedCpu;\n },\n caption: 'Acc CPU volume',\n sort: true,\n align: 'right',\n },\n burst_duration: {\n get(item: PoolInfo) {\n return item.burstDuration;\n },\n caption: 'Est burst usage duration ',\n sort: true,\n sortWithUndefined: true,\n align: 'right',\n },\n\n actions: {\n caption: '',\n align: 'left',\n },\n};\n","import {SubjectGroupType} from '../../utils/acl';\nimport UIFactory from '../../UIFactory';\n\nexport type SubjectCardProps = {\n className?: string;\n noLink?: boolean;\n showIcon?: boolean;\n\n internal?: boolean;\n url?: string;\n\n name: string | number;\n type?: 'user' | 'group' | 'tvm';\n groupType?: SubjectGroupType;\n};\n\nexport function SubjectCard(props: SubjectCardProps) {\n return UIFactory.renderSubjectCard(props);\n}\n","import React from 'react';\nimport 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","qa","titleExpanded","titleCollapsed","_jsxs","Button","view","title","onClick","Icon","data","doubleShevronRightSvg","shevronRightSvg","size","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","prepareTrees","trees","tree","ypath","getValue","sort","prepareCurrentTree","defaultTree","indexOf","preparePools","pools","operations","treeNodesMap","prepareTree","entry","attachTreeLeaves","operation","computePoolPath","pool","partitions","parent","ROOT_POOL_NAME","parentPool","find_","unshift","flattenAttributes","obj","toReturn","object","Object","hasOwnProperty","call","innerObject","_typeof","is","keys","flatObject","x","getResourceLimit","limitKey","Number","isNaN","INTEGRAL_GUARANTEES_PREFIX","POOL_INTEGRAL_GUARANTEE_FIELD_TO_ATTR","guaranteeType","burstCpu","burstRam","burstGpu","flowCpu","flowRam","flowGpu","POOL_STRONG_RESOURCE_TYPE_TO_ATTRIBUTE","cpuStrong","gpuStrong","memoryStrong","POOL_GENERAL_TYPE_TO_ATTRIBUTE","maxOperationCount","maxRunningOperationCount","POOL_RESOURCE_TYPE_TO_ATTRIBUTE","getPoolResourceInfo","type","path","childrenSum","res","reduce_","tmp","firstValidNumber","NaN","prepareMinGuaranteed","prepareValueDetails","getPoolResourceInitialValue","allowSource","limit","source","getInitialValues","editItem","allowedSources","slug","general","abcService","weight","getNumber","assign","resourceGuarantee","integralGuarantee","resourceLimits","cpu","gpu","memory","userSlots","otherSettings","forbidImmediateOperations","getBoolean","fifoSortParams","createEphemeralSubpools","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","prepareRoleListValue","roles","otherMembers","current","toAdd","toRemove","unrecognized","forEach_","isUnrecognized","isRequested","isApproved","isDepriving","currentArr","prepareItemOfCurrent","otherArr","frozen","newItems","itemClassName","role","extraProps","text","roleListValueToSubjectList","_toConsumableArray","manyListDataItemToSubjectList","manyListDataItem","filter_","removed","_ref3","_ref4","extractChangedSubjects","added","filter","_ref5","_ref6","user","group","_ref7","_ref8","RESOURCE_LIMIT_MAPPER","user_memory","preparePoolChildResource","treeResources","resource","attributes","resources","guaranteed","usage","min","demand","limitResource","resourceLimit","cypressAttributes","specifiedResourceLimit","detailed","updatePoolChild","cypressData","getAttributes","_data$leaves","console","_initedBy","leaves","leaf","child_pool_count","incomplete","pool_operation_count","emptyOp","operationCount","maxOperationCountEdited","runningOperationCount","maxRunningOperationCountEdited","id","starvation_status","weightEdited","minShareRatio","maxShareRatio","fairShareRatio","fifoIndex","usageRatio","demandRatio","isEphemeral","isEffectiveLightweight","integralType","userDefinedBurstCPU","burstCPU","userDefinedFlowCPU","flowCPU","userDefinedFlowGPU","flowGPU","accumulated","accumulatedCpu","burstDuration","param","abc","dominantResource","e","appendInnerErrors","message","getPoolsRaw","scheduling","expandedPools","rawPools","getSchedulingTreeOperations","createSelector","getSchedulingOperations","getExpandedPoolsTree","rawOperations","expandedPoolsTree","EMPTY_OBJECT","getOperationsFiltered","acc","operationId","getPoolsPrepared","getExpandedPoolCypressData","getCluster","cluster","RumWrapper","wrap","preparedPools","getSchedulingPoolsMapByName","getSchedulingPoolsExtraInfo","poolsMap","root","calcChildrenIntegrals","dst","childrenBurstCPU","childrenFlowCPU","itemExtraInfo","getPools","extras","itemExtra","DialogError","YTErrorBlock","makeErrorFields","errors","compact_","FORM_ERROR","makeFormSubmitError","validationErrors","importYTDFDialog","YTDFDialog","withLazyLoading","_asyncToGenerator","_regeneratorRuntime","mark","_callee","_context","prev","next","t0","sent","YTDialog","abrupt","stop","_React$useState","_React$useState2","_slicedToArray","mounted","setMounted","visible","_callee2","_context2","RoleListControl","EditableList","_callee3","_context3","TabFieldVertical","_callee4","_context4","useAvailablePermissions","idmKind","_UIFactory$getAclPerm","UIFactory","getAclPermissionsSettings","permissionsToRequest","permissionTypes","getAvailablePermissions","requestable","permissionsToCheck","result","setAvailablePermissions","then","prevState","prepareUserPermissions","userPermissions","action","getPathToCheckPermissions","_x","_x2","_x3","_getPathToCheckPermissions","apply","entityName","poolTree","fullPath","_context5","IdmObjectType","ACCESS_CONTROL_OBJECT","UI_EFFECTIVE_ACL","PATH","ACCOUNT","POOL","TABLET_CELL_BUNDLE","ytApiV3Id","get","YTApiId","schedulingPoolFullPath","Error","loadAclData","normalizedPoolTree","options","userPermissionsPath","dispatch","getState","_state$global","login","_state$global$cluster","pathToCheckPermissions","pathToCheckUserPermissions","global","LOAD_DATA","REQUEST","getTree","Promise","getAcl","kind","sysPath","checkUserPermissionsUI","getResponsible","acl","responsible","SUCCESS","version","auditors","columnGroups","column_groups","inheritAcl","readApprovers","disableAclInheritance","bossApproval","disableInheritanceResponsible","t1","FAILURE","_x4","_x5","deletePermissions","roleKey","itemToDelete","_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","rolesGroupedBySubject","inheritance_mode","permissionFlags","readColumnGroup","readColumns","_iterator","_step","_loop","requestPermissionsPath","REQUEST_PERMISSION","duration","_createForOfIteratorHelper","subjects","subject","commonPart","flattenPermissions","prepareAclSubject","deprive_after_days","entries","forEach","_ref10","_ref11","flagInfo","applyToRequestedRole","flatten_","columns","convertFromUIPermissions","role_type","column_group_id","s","n","done","delegateYield","f","finish","roles_grouped","comment","_x8","_x9","cancelRequestPermissions","_ref12","updateAcl","_ref13","_getState$global$clus2","UPDATE_ACL","_error$response","response","cancelUpdateAcl","_ref15","SchedulingOperationsLoader","loading","useSelector","getSchedulingOperationsLoadingStatus","Loader","poolsTableItems","caption","captionTail","align","_item$attributes$titl","FI","operation_overview","dominant_resource","min_share","fair_share","fair_share_usage","sortWithUndefined","operation_type","actions","getOverviewColumnTitle","_poolsTableItems$name","OVERVIEW_AVAILABLE_COLUMNS","isAbcPoolName","startsWith","isTopLevelPool","flattenCypressData","getSchedulingOperationsError","getSchedulingOperationsExpandedPools","getExpandedPoolsLoadAll","loadAll","loaded","TextInputWithDebounce","_props$debounce","debounce","_props$onUpdate","onUpdate","onBlur","onEnterKeyDown","onKeyDown","_excluded","input","setInput","handleChangeExt","debounce_","handleChange","handleKeyDown","handleBlur","cancel","TextInput","updateAclFilters","ACL_CHANGE_FILTERS","toggleExpandAclSubject","Set","has","add","width","height","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","placeholder","includes_","tooltip","ColumnGroups","loadAclDataFn","_ref$allowEdit","allowEdit","userPermissionsAccessColumns","setModalProps","prevProps","_value","resolve","modalProps","header","render","row","Power","_row$columns","renderText","column","delete","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","onCancel","onOutsideClick","isConfirmDisabled","MetaTable","hammer","NO_VALUE","Label","compose","withVisible","handleShow","manageAclError","errorData","handleModalOpen","useCallback","handleUpdateAclClose","inheritanceResponsible","disableInheritance","manageAclDialogFields","maxVisibleCount","manageAclFields","dialogFields","permissionsSettings","idmKindConditions","allowBossApprovals","allowAuditors","allowReadApprovers","allowInheritResponsibles","CommonDialog","open","Header","Body","LoadDataHandler","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","Filter","autofocus","ObjectPermissionsFilters","selectedPermissons","permissionList","getObjectPermissionsTypesList","p","SegmentControl","background","SegmentGroup","rowGap","SegmentValue","url","idmLink","Value","isValidUrl","Link","target","href","bool","ACL_MODE_OPTIONS","MAIN_PERMISSIONS","AclModeControl","RadioButton","AclColumnsCell","_items$map","expanadable","v","unipika","decode","fillOpacity","InheritanceMessage","makeNavigationLink","makeSchedulingUrl","makeAccountsUrl","urlFromData","routed","routedPreserveLocation","ACL","handleDeletePermissionClick","handleCloseDeleteModal","deletePermissionsFn","hasInherited","openDeleteModal","_this$props4","expand","inheritedFrom","level","Popover","hidden","aclInheritedSvg","grow","renderSubjectLink","renderIcon","_row$permissions","RoleActions","getComponentForAclRoleActions","onDelete","approve_type","depriving","requested","approved","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_type","Tooltip","ClipboardButton","groupType","responsibles","read_approvers","sets","objectDefault","approvers","handleDelete","mergeProps","stateProps","dispatchProps","ownProps","aclRequestOptions","restDispatchProps","params","createACLComponent","inputIdmKind","mapStateToProps","normalizedParams","normalizeIdmParams","pool_tree","_state$acl$idmKind","getHasApprovers","getApproversFilteredAndOrdered","_getObjectPermissions","getObjectPermissionsAggregated","getAllColumnGroupsActual","getAllUserPermissions","getNotInheritedAuditors","getNotInheritedReadApprovers","getNotInheritedResponsibles","getType","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","field","flags","help","initialValue","splice","_ref$editAcl","editAcl","_ref$editColumnsAcl","editColumnsAcl","OBJECT_AND_DESCENDANTS","validate","validationError","getTransaction","navigation","transaction","getAttributesWithTypes","attributesWithTypes","getLoadState","loadState","getError","getRawPath","getIdmSupport","isIdmSupported","getPath","getNavigationDefaultPath","rawPath","defaultPath","getAttributesPath","navigationPath","isNavigationFinalLoadState","isFinalLoadingStatus","getParsedPath","create","ex","getActualPath","checkIsTrash","toaster","Toaster","autoHiding","showErrorPopup","_this$props2$alwaysSh","alwaysShowError","getResourcesText","resourceUsage","getNetworkResourceText","getMemoryResourceText","getDefaultResourceText","getResourceProgressValue","prepareResources","progress","getResourceProgress","getPoolsImpl","getSchedulingIsInitialLoading","_state$scheduling$sch","_state$scheduling$exp","getExpandedPoolsIsInitialLoading","getTreeResources","getPoolChildrenFilter","poolChildrenFilter","getSchedulingTreeState","treeState","getPool","getSchedulingEditItem","getCurrentPool","getSortState","tables","SCHEDULING_POOL_TREE_TABLE_ID","schedulingSortState","getPoolChildrenSortState","SCHEDULING_POOL_CHILDREN_TABLE_ID","sortState","asc","FIELD_AUTO","getPoolsNames","getSchedulingAttributesToFilter","_v","DETAILS_CONTENT_MODES","user_slots","integral","getContentMode","contentMode","getIsRoot","getTreesSelectItems","getPoolsSelectItems","getPoolIsEphemeral","currentPool","getCurrentPoolChildren","getCurrentPoolOperations","getResources","getFilteredTree","getSchedulingFilteredPoolNames","treeRoot","visiblePools","treeList","filterTree","getTableItems","filteredTree","sortedTree","sortTree","flattenTree","getSchedulingOverviewMaxDepth","allExpanded","expandedPoolsMap","_ref$level","getPoolChildrenData","getFilteredPoolChildren","poolChildrenData","factors","getSortedPoolChildren","filteredPoolChildren","poolChildrenSortState","utils","childTableItems","addGetParams","groupBy","getPollChildrenTableItems","sortedPoolChildren","isChildPool","CLUSTERS_WITHOUT_POOL_ACL","isPoolAclAllowed","getCurrentPoolPath","calculatePoolPath","prefix","pathStr","reverse","getSchedulingTopPoolOfEditItem","mapOfPools","getSchedulingSourcesOfEditItem","topPool","visitTreeItems","isNeedToSkipChildren","getSchedulingSourcesOfEditItemSkipParent","sources","Chevron","emptyValue","SelectFacade","_React$useMemo","hashByValue","Map","set","prepareItems","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","_excluded5","disablePortal","w","style","variant","defaultProps","YT","Page","NAVIGATION","search","info","URLSearchParams","_info$k$options","serialize","_info$k$options2","_info$k$options2$seri","append","makeURLSearchParams","getNavigationParams","toString","makeComponentsNodesUrl","host","COMPONENTS","ComponentsTab","NODES","makeProxyUrl","address","RPC_PROXIES","account","getSchedulingAbcFilter","abcServiceFilter","getOperationRefId","operationRefId","attributesToFilter","getSchedulingAttributesToFilterParams","attributesToFilterParams","schedulingOverviewHasFilter","abcFilter","attrsToFilter","loadedPools","attrs","_attrs$abc","poolName","_item","prepareColumnsNames","permission","uniq_","prepareApprovers","extra","group_name","getAllObjectPermissions","getAllObjectPermissionsWithSplittedSubjects","isSplitted","subjectIndex","permissionsFilter","uniquePermisions","sortBy_","subjectFilterPredicate","_item$subjects$","some_","_str","str","split","pop","toLowerCase","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","_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","prepareDetailedColumn","_item$resources","prepareLimitColumn","_item$resources2","prepareMinResourcesColumn","_item$resources3","prepareAbsGuaranteedColumn","_item$resources4","prepareRelGuaranteedColumn","prepareAbsDemandColumn","_item$resources5","prepareAbsUsageColumn","_item$resources6","prepareRelUsageColumn","prepareGuaranteedUsageColumn","max_share","resource_detailed_cpu","resource_detailed_memory","resource_detailed_gpu","resource_detailed_user_slots","resource_limit_cpu","resource_limit_memory","resource_limit_gpu","resource_limit_user_slots","min_resources_cpu","min_resources_memory","min_resources_gpu","min_resources_user_slots","abs_guaranteed_cpu","abs_guaranteed_memory","abs_guaranteed_gpu","abs_guaranteed_user_slots","rel_guaranteed_cpu","rel_guaranteed_memory","rel_guaranteed_gpu","rel_guaranteed_user_slots","abs_usage_cpu","abs_usage_memory","abs_usage_gpu","abs_usage_user_slots","abs_demand_cpu","abs_demand_memory","abs_demand_gpu","abs_demand_user_slots","rel_usage_cpu","rel_usage_memory","rel_usage_gpu","rel_usage_user_slots","guaranteed_usage_cpu","guaranteed_usage_memory","guaranteed_usage_gpu","guaranteed_usage_user_slots","operation_count","max_operation_count","operation_progress","running_operation_count","max_running_operation_count","running_operation_progress","integral_type","burst_cpu","flow_cpu","children_burst_cpu","children_flow_cpu","accumulated_cpu","burst_duration","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":""}
|