@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.
Files changed (59) hide show
  1. package/dist/public/build/assets-manifest.json +39 -39
  2. package/dist/public/build/css/{9030.30b67fe6.chunk.css → 3792.a5336147.chunk.css} +1 -1
  3. package/dist/public/build/css/{9030.30b67fe6.chunk.css.map → 3792.a5336147.chunk.css.map} +1 -1
  4. package/dist/public/build/js/2142.9a9a44af.chunk.js +2 -0
  5. package/dist/public/build/js/2142.9a9a44af.chunk.js.map +1 -0
  6. package/dist/public/build/js/3225.0ca5646d.chunk.js +2 -0
  7. package/dist/public/build/js/3225.0ca5646d.chunk.js.map +1 -0
  8. package/dist/public/build/js/{9030.200c7642.chunk.js → 3792.1af8dc36.chunk.js} +2 -2
  9. package/dist/public/build/js/{9030.200c7642.chunk.js.map → 3792.1af8dc36.chunk.js.map} +1 -1
  10. package/dist/public/build/js/3848.db687afa.chunk.js +2 -0
  11. package/dist/public/build/js/3848.db687afa.chunk.js.map +1 -0
  12. package/dist/public/build/js/{9361.f5606246.chunk.js → 9361.632ac658.chunk.js} +3 -3
  13. package/dist/public/build/js/9361.632ac658.chunk.js.map +1 -0
  14. package/dist/public/build/js/acl.86dde5b4.chunk.js +2 -0
  15. package/dist/public/build/js/acl.86dde5b4.chunk.js.map +1 -0
  16. package/dist/public/build/js/{chart-kit.6c826f92.chunk.js → chart-kit.bc706a72.chunk.js} +2 -2
  17. package/dist/public/build/js/{chart-kit.6c826f92.chunk.js.map → chart-kit.bc706a72.chunk.js.map} +1 -1
  18. package/dist/public/build/js/{cluster-page-wrapper.24759f54.chunk.js → cluster-page-wrapper.69410672.chunk.js} +2 -2
  19. package/dist/public/build/js/{cluster-page-wrapper.24759f54.chunk.js.map → cluster-page-wrapper.69410672.chunk.js.map} +1 -1
  20. package/dist/public/build/js/{dashboard.5baf76be.chunk.js → dashboard.705aef5e.chunk.js} +2 -2
  21. package/dist/public/build/js/{dashboard.5baf76be.chunk.js.map → dashboard.705aef5e.chunk.js.map} +1 -1
  22. package/dist/public/build/js/{incarnations.db35d3e7.chunk.js → incarnations.b6c8305d.chunk.js} +2 -2
  23. package/dist/public/build/js/incarnations.b6c8305d.chunk.js.map +1 -0
  24. package/dist/public/build/js/main.2691b74a.js +3 -0
  25. package/dist/public/build/js/main.2691b74a.js.map +1 -0
  26. package/dist/public/build/js/navigation.b95d53a4.chunk.js +2 -0
  27. package/dist/public/build/js/navigation.b95d53a4.chunk.js.map +1 -0
  28. package/dist/public/build/js/{runtime.0bd241cc.js → runtime.cd2507d5.js} +2 -2
  29. package/dist/public/build/js/{runtime.0bd241cc.js.map → runtime.cd2507d5.js.map} +1 -1
  30. package/dist/public/build/js/settings-panel.5508764a.chunk.js +2 -0
  31. package/dist/public/build/js/settings-panel.5508764a.chunk.js.map +1 -0
  32. package/dist/public/build/js/{yt-df-dialog.3c75c1c6.chunk.js → yt-df-dialog.d8b77493.chunk.js} +3 -3
  33. package/dist/public/build/js/yt-df-dialog.d8b77493.chunk.js.map +1 -0
  34. package/dist/public/build/js/yt-queries-list.9b028808.chunk.js +2 -0
  35. package/dist/public/build/js/yt-queries-list.9b028808.chunk.js.map +1 -0
  36. package/dist/public/build/manifest.json +34 -34
  37. package/package.json +2 -2
  38. package/dist/public/build/js/2142.e3f4501e.chunk.js +0 -2
  39. package/dist/public/build/js/2142.e3f4501e.chunk.js.map +0 -1
  40. package/dist/public/build/js/3225.1bafd8e7.chunk.js +0 -2
  41. package/dist/public/build/js/3225.1bafd8e7.chunk.js.map +0 -1
  42. package/dist/public/build/js/3792.87728e87.chunk.js +0 -2
  43. package/dist/public/build/js/3792.87728e87.chunk.js.map +0 -1
  44. package/dist/public/build/js/9361.f5606246.chunk.js.map +0 -1
  45. package/dist/public/build/js/acl.ad72cb19.chunk.js +0 -2
  46. package/dist/public/build/js/acl.ad72cb19.chunk.js.map +0 -1
  47. package/dist/public/build/js/incarnations.db35d3e7.chunk.js.map +0 -1
  48. package/dist/public/build/js/main.10db4a06.js +0 -3
  49. package/dist/public/build/js/main.10db4a06.js.map +0 -1
  50. package/dist/public/build/js/navigation.dd0f8fc8.chunk.js +0 -2
  51. package/dist/public/build/js/navigation.dd0f8fc8.chunk.js.map +0 -1
  52. package/dist/public/build/js/settings-panel.4be91fef.chunk.js +0 -2
  53. package/dist/public/build/js/settings-panel.4be91fef.chunk.js.map +0 -1
  54. package/dist/public/build/js/yt-df-dialog.3c75c1c6.chunk.js.map +0 -1
  55. package/dist/public/build/js/yt-queries-list.e40d766e.chunk.js +0 -2
  56. package/dist/public/build/js/yt-queries-list.e40d766e.chunk.js.map +0 -1
  57. /package/dist/public/build/js/{9361.f5606246.chunk.js.LICENSE.txt → 9361.632ac658.chunk.js.LICENSE.txt} +0 -0
  58. /package/dist/public/build/js/{main.10db4a06.js.LICENSE.txt → main.2691b74a.js.LICENSE.txt} +0 -0
  59. /package/dist/public/build/js/{yt-df-dialog.3c75c1c6.chunk.js.LICENSE.txt → yt-df-dialog.d8b77493.chunk.js.LICENSE.txt} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"js/acl.ad72cb19.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/./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 && <>,&nbsp;</>}\n {renderItem(option, index)}\n </span>\n );\n })}\n </span>\n {!hideSpacer && (\n <span className={block('spacer', {missing: hasMissing})}>\n {hasMissing && ', ...'}\n </span>\n )}\n <SelectedCount count={value.length} visibleCount={visibleItems.length} mode={counter} />\n </div>\n );\n}\n\nfunction SelectedCount({\n count = 0,\n visibleCount = 0,\n mode,\n}: {\n count?: number;\n visibleCount?: number;\n mode: VisbileValuesProps['counter'];\n}) {\n if (mode === 'none') {\n return null;\n }\n\n if (visibleCount === count && mode === 'missing-values') {\n return null;\n }\n\n const value = mode === 'missing-values' ? count - visibleCount : count;\n\n return value! >= 2 ? (\n <div className={block('counter')}>\n <span className={block('counter-value')}>\n {mode === 'missing-values' ? '+' : null}\n {value}\n </span>\n </div>\n ) : null;\n}\n","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","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';\n\nconst block = cn('yt-my-permissions');\n\nexport function MyPermissions({\n userPermissions,\n className,\n}: Pick<ACLReduxProps, 'userPermissions'> & {className?: string}) {\n const groups: Array<typeof userPermissions> = [];\n for (let i = 0; i < userPermissions?.length; i += 4) {\n groups.push(userPermissions.slice(i, i + 4));\n }\n return (\n <Flex className={block(null, className)}>\n {groups.map((items, index) => {\n return <PermissionsGroup items={items} key={index} />;\n })}\n </Flex>\n );\n}\n\nfunction PermissionsGroup({items}: {items: ACLReduxProps['userPermissions']}) {\n return (\n <Flex className={block('group')} direction=\"column\" gap={1}>\n {items.map(({type, action}) => {\n return (\n <Flex\n className={block('item', {type: action})}\n key={type}\n alignItems={'center'}\n gap={1}\n >\n <Icon\n size={16}\n className={block('icon', {\n color: action === 'deny' ? 'danger' : 'success',\n })}\n data={action === 'deny' ? xMarkSvg : checkSvg}\n />\n {format.Readable(type)}\n </Flex>\n );\n })}\n </Flex>\n );\n}\n","import React from 'react';\nimport {useDispatch, useSelector} from 'react-redux';\nimport cn from 'bem-cn-lite';\nimport {changeApproversSubjectFilter} from '../../../store/actions/acl-filters';\nimport {getApproversSubjectFilter} from '../../../store/selectors/acl-filters';\nimport {Toolbar} from '../../../components/WithStickyToolbar/Toolbar/Toolbar';\nimport Filter from '../../../components/Filter/Filter';\nimport './ApproversFilters.scss';\n\nconst block = cn('approvers-filters');\n\nexport default function ApproversFilters() {\n const dispatch = useDispatch();\n const subjectFilter = useSelector(getApproversSubjectFilter);\n\n return (\n <Toolbar\n itemsToWrap={[\n {\n node: (\n <Filter\n placeholder=\"Filter by subject\"\n onChange={(value: string) => {\n dispatch(changeApproversSubjectFilter({approversSubject: value}));\n }}\n className={block('subject-filter')}\n value={subjectFilter}\n size=\"m\"\n autofocus={false}\n />\n ),\n },\n ]}\n />\n );\n}\n","import React from 'react';\nimport {useDispatch, useSelector} from 'react-redux';\nimport cn from 'bem-cn-lite';\nimport map_ from 'lodash/map';\n\nimport format from '../../../common/hammer/format';\n\nimport {\n changeObjectPermissionsFilter,\n changeObjectSubjectFilter,\n} from '../../../store/actions/acl-filters';\nimport {\n getObjectPermissionsFilter,\n getObjectSubjectFilter,\n} from '../../../store/selectors/acl-filters';\nimport {getObjectPermissionsTypesList} from '../../../store/selectors/acl';\nimport Filter from '../../../components/Filter/Filter';\nimport Select from '../../../components/Select/Select';\nimport {Toolbar} from '../../../components/WithStickyToolbar/Toolbar/Toolbar';\nimport './ObjectPermissionsFilters.scss';\nimport {ACLReduxProps} from '../ACL-connect-helpers';\nimport {AclMode} from '../../../constants/acl';\nimport {ColumnGroupsFilter} from '../ColumnGroups/ColumnGroups';\n\nconst block = cn('object-permissions-filters');\n\ntype Props = Pick<\n ACLReduxProps,\n 'aclMode' | 'idmKind' | 'columnsFilter' | 'updateAclFilters' | 'userPermissionsAccessColumns'\n>;\n\nexport default function ObjectPermissionsFilters({\n aclMode,\n idmKind,\n columnsFilter,\n updateAclFilters,\n userPermissionsAccessColumns,\n}: Props) {\n const dispatch = useDispatch();\n const subjectFilter = useSelector(getObjectSubjectFilter);\n const selectedPermissons = useSelector(getObjectPermissionsFilter);\n const permissionList = useSelector(getObjectPermissionsTypesList(idmKind));\n\n return (\n <Toolbar\n itemsToWrap={[\n {\n node: (\n <Filter\n className={block('filter')}\n placeholder=\"Filter by subject\"\n onChange={(value: string) => {\n dispatch(\n changeObjectSubjectFilter({\n objectSubject: value,\n }),\n );\n }}\n value={subjectFilter}\n size=\"m\"\n autofocus={false}\n />\n ),\n },\n {\n shrinkable: true,\n node:\n aclMode === AclMode.COLUMN_GROUPS_PERMISSISONS ? (\n <ColumnGroupsFilter\n {...{columnsFilter, updateAclFilters, userPermissionsAccessColumns}}\n />\n ) : (\n <Select\n className={block('filter')}\n multiple\n placeholder={'filter'}\n value={selectedPermissons}\n items={map_(permissionList, (p) => ({\n value: p,\n text: format.ReadableField(p),\n }))}\n onUpdate={(value: string[]) => {\n dispatch(\n changeObjectPermissionsFilter({\n objectPermissions: value as typeof selectedPermissons,\n }),\n );\n }}\n label={'Permissions'}\n maxVisibleValuesTextLength={60}\n width=\"auto\"\n />\n ),\n },\n ]}\n />\n );\n}\n","import React from 'react';\nimport cn from 'bem-cn-lite';\n\nimport {Flex, Link} from '@gravity-ui/uikit';\n\nimport Icon from '../../components/Icon/Icon';\nimport MetaTable from '../../components/MetaTable/MetaTable';\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 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 />\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';\n\nconst block = cn('acl-request-permissions');\n\nconst FLAG_NAME_PREFIX = '##_flag_';\n\nexport type RequestPermissionsFieldsNames =\n | 'cluster'\n | 'path'\n | 'permissions'\n | 'subjects'\n | 'duration'\n | 'commentHeader'\n | 'comment'\n | 'inheritance_mode'\n | 'permissionFlags'\n | 'readColumns'\n | 'readColumnGroup';\n\nexport interface Props extends WithVisibleProps {\n className?: string;\n buttonClassName?: string;\n buttonProps?: ButtonProps;\n cluster?: string;\n normalizedPoolTree?: string;\n path: string;\n idmKind: IdmKindType;\n requestPermissions: (params: {\n values: PermissionToRequest;\n idmKind: IdmKindType;\n }) => Promise<void>;\n cancelRequestPermissions: (params: {idmKind: IdmKindType}) => unknown;\n error?: YTError;\n onSuccess?: () => void;\n columnGroups?: Array<AclColumnGroup>;\n aclMode?: AclMode;\n}\n\ntype FormValues = {\n path: string;\n cluster: string;\n permissions: {[x: string]: Array<YTPermissionTypeUI>} | null;\n subjects: Array<{\n value: string;\n type: 'users' | 'groups' | 'app';\n text?: string;\n }>;\n inheritance_mode?: string;\n duration?: Date;\n comment?: string;\n readColumnGroup?: string;\n} & Record<`${typeof FLAG_NAME_PREFIX}${string}`, boolean>;\n\nconst SHORT_TITLE: Partial<Record<IdmKindType, string>> = {\n access_control_object: 'ACO',\n};\n\nconst COLUMNS_FELDS = new Set<RequestPermissionsFieldsNames>(['readColumns', 'readColumnGroup']);\n\nfunction RequestPermissions(props: Props) {\n const {\n aclMode,\n visible,\n handleShow,\n handleClose,\n className,\n buttonClassName,\n path,\n idmKind,\n requestPermissions,\n cancelRequestPermissions,\n error,\n cluster,\n columnGroups,\n buttonProps,\n /*denyColumns,*/\n } = props;\n\n const onClose = useCallback(() => {\n handleClose();\n cancelRequestPermissions({idmKind});\n }, [handleClose, cancelRequestPermissions, idmKind]);\n\n const {\n requestPermissionsFields,\n requestPermissionsFlags = {},\n buttonsTitle,\n } = UIFactory.getAclApi();\n\n const onAdd = useCallback(\n (form: FormApi<FormValues, Partial<FormValues>>) => {\n const values = {...form.getState().values};\n const permissionFlags: Record<string, boolean> = {};\n Object.keys(requestPermissionsFlags).forEach((k) => {\n const key = `${FLAG_NAME_PREFIX}${k}` as keyof typeof values;\n permissionFlags[k] = Boolean(values[key]);\n\n delete values[key];\n });\n return requestPermissions({\n values: {...values, permissionFlags},\n idmKind,\n });\n },\n [requestPermissions, idmKind],\n );\n\n const currentCaption = `Current ${SHORT_TITLE[idmKind] ?? idmKind}`;\n const {permissionsToRequest, getAvailablePermissions} =\n UIFactory.getAclPermissionsSettings()[idmKind];\n\n const [availablePermissions, setAvailablePermissions] = React.useState<\n typeof permissionsToRequest | undefined\n >(undefined);\n\n const onShow = useCallback(async () => {\n try {\n const value = await getAvailablePermissions?.({path});\n setAvailablePermissions(value);\n } catch {\n setAvailablePermissions(undefined);\n } finally {\n handleShow();\n }\n }, [path, handleShow, getAvailablePermissions]);\n\n const firstItemDisabled = idmKind === IdmObjectType.ACCOUNT;\n\n const choices = availablePermissions ?? permissionsToRequest;\n const permissions = firstItemDisabled ? valueWithCheckedFirstChoice(choices) : null;\n\n const availableFields: Record<\n RequestPermissionsFieldsNames,\n Omit<DialogField, 'name'>\n > = useMemo(() => {\n const disabledChoices = idmKind === IdmObjectType.ACCOUNT ? [0] : undefined;\n return {\n cluster: {\n type: 'plain',\n caption: 'Cluster',\n extras: {\n className: block('cluster'),\n },\n },\n path: {\n type: 'text',\n caption: currentCaption,\n extras: {\n disabled: !error,\n },\n },\n permissions: {\n type: 'permissions',\n caption: 'Permissions',\n required: true,\n tooltip: (\n <>\n {docsUrl(\n makeLink(UIFactory.docsUrls['acl:permissions'], 'Permissions types'),\n 'Permissions types',\n )}\n </>\n ),\n extras: {\n choices: choices,\n disabledChoices,\n },\n },\n readColumns: {\n type: 'acl-columns',\n caption: 'Read columns',\n required: true,\n },\n readColumnGroup: {\n type: 'acl-column-group',\n caption: 'Read column group',\n required: true,\n extras: {\n columnGroups,\n },\n },\n subjects: {\n type: 'acl-subjects',\n caption: 'Subjects',\n required: true,\n extras: {\n placeholder: 'Enter group name, user name or login...',\n allowedTypes: ['users', 'groups', 'app'],\n },\n },\n duration: {\n type: 'before-date',\n caption: 'Duration',\n },\n commentHeader: {\n type: 'block',\n className: block('modal-comments-header'),\n extras: {\n children: (\n <React.Fragment>\n <div className={'is-dialog__label'}>Comment</div>\n <div className={block('comment-notice')}>\n Teams and people can be requested through the IDM after the access\n group is created. If you have a more complex case please describe it\n in the comments.\n </div>\n </React.Fragment>\n ),\n },\n },\n comment: {\n type: 'textarea',\n className: block('modal-comments'),\n },\n inheritance_mode: {\n type: 'yt-select-single',\n caption: 'Inheritance mode',\n extras: {\n items: map_(INHERITANCE_MODE_TYPES, (value) => ({\n value: value,\n text: hammer.format['ReadableField'](value),\n })),\n hideClear: true,\n hideFilter: true,\n with: 'max',\n },\n },\n permissionFlags: {\n type: 'block',\n caption: 'Permission flags',\n extras: {children: 'Not implemented'},\n },\n };\n }, [choices, currentCaption, error, idmKind]);\n\n const useColumns = aclMode === AclMode.COLUMN_GROUPS_PERMISSISONS;\n\n const dialogFields = useMemo(() => {\n let flagsIndex = -1;\n const res = requestPermissionsFields.reduce(\n (acc, field) => {\n const allowField = useColumns ? field !== 'permissions' : !COLUMNS_FELDS.has(field);\n if (!allowField) {\n return acc;\n }\n\n if (field === 'permissionFlags') {\n flagsIndex = acc.length;\n }\n\n acc.push({\n ...availableFields[field],\n name: field,\n } as DialogField<FormValues>);\n\n return acc;\n },\n [] as Array<DialogField<FormValues>>,\n );\n\n if (flagsIndex !== -1) {\n const flags: typeof res = Object.keys(requestPermissionsFlags ?? []).map((key) => {\n const flagInfo = requestPermissionsFlags[key];\n return {\n type: 'tumbler',\n caption: hammer.format.ReadableField(flagInfo?.title),\n name: `${FLAG_NAME_PREFIX}${key}`,\n tooltip: flagInfo.help,\n initialValue: flagInfo.initialValue,\n };\n });\n res.splice(flagsIndex, 1, ...flags);\n }\n return res;\n }, [availableFields, requestPermissionsFields, useColumns]);\n\n const {editAcl = 'Edit ACL', editColumnsAcl = 'Edit columns ACL'} = buttonsTitle ?? {};\n const title = useColumns ? editColumnsAcl : editAcl;\n\n return !choices?.length ? null : (\n <ErrorBoundary>\n <div className={block(null, className)}>\n <Button className={buttonClassName} view=\"action\" {...buttonProps} onClick={onShow}>\n {title}\n </Button>\n\n <YTDFDialog<FormValues>\n pristineSubmittable\n onClose={onClose}\n className={block('modal')}\n visible={Boolean(visible)}\n onAdd={onAdd}\n headerProps={{\n title,\n }}\n initialValues={{\n path,\n permissions,\n cluster,\n inheritance_mode: INHERITANCE_MODE_TYPES.OBJECT_AND_DESCENDANTS,\n }}\n validate={(values) => {\n const subjects = values.subjects;\n const validationError: Record<\n keyof Pick<FormValues, 'subjects'>,\n string | undefined\n > = {\n subjects: undefined,\n };\n\n if (!subjects.length) {\n const errorMessage = 'At least one subject should be selected.';\n validationError.subjects = errorMessage;\n }\n\n return validationError;\n }}\n fields={[...dialogFields, ...makeErrorFields([error])]}\n />\n </div>\n </ErrorBoundary>\n );\n}\n\nexport default compose(withVisible)(RequestPermissions) as unknown as React.ComponentType<\n Omit<Props, keyof WithVisibleProps>\n>;\n\nfunction valueWithCheckedFirstChoice(choices: string | any[]) {\n if (!choices || choices.length < 1) {\n return {};\n }\n\n return {\n [PermissionsControl.getChoiceName(choices[0])]: choices[0],\n };\n}\n","import {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","prepareUserPermissions","userPermissions","idmKind","permissionTypes","UIFactory","getAclPermissionsSettings","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","then","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","prevState","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","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","_UIFactory$getAclPerm","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","permissionsToRequest","getAvailablePermissions","availablePermissions","setAvailablePermissions","onShow","firstItemDisabled","valueWithCheckedFirstChoice","availableFields","docsUrl","makeLink","docsUrls","allowedTypes","commentHeader","INHERITANCE_MODE_TYPES","hideClear","hideFilter","with","flagsIndex","reduce","field","flags","help","initialValue","splice","_ref2$editAcl","editAcl","_ref2$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":""}