@ytsaurus/ui 1.103.0 → 1.103.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/dist/public/build/assets-manifest.json +40 -40
  2. package/dist/public/build/css/default-subject-link.b01c2230.chunk.css +2 -0
  3. package/dist/public/build/css/default-subject-link.b01c2230.chunk.css.map +1 -0
  4. package/dist/public/build/css/{main.d1987746.css → main.23e8d0fd.css} +2 -2
  5. package/dist/public/build/css/main.23e8d0fd.css.map +1 -0
  6. package/dist/public/build/js/6157.6786c942.chunk.js +2 -0
  7. package/dist/public/build/js/6157.6786c942.chunk.js.map +1 -0
  8. package/dist/public/build/js/6983.a2b31b33.chunk.js +2 -0
  9. package/dist/public/build/js/6983.a2b31b33.chunk.js.map +1 -0
  10. package/dist/public/build/js/8165.9684f49e.chunk.js +2 -0
  11. package/dist/public/build/js/8165.9684f49e.chunk.js.map +1 -0
  12. package/dist/public/build/js/{accounts.aaa21eca.chunk.js → accounts.f328f823.chunk.js} +2 -2
  13. package/dist/public/build/js/accounts.f328f823.chunk.js.map +1 -0
  14. package/dist/public/build/js/acl.556f2525.chunk.js +2 -0
  15. package/dist/public/build/js/acl.556f2525.chunk.js.map +1 -0
  16. package/dist/public/build/js/{bundles.b851f32c.chunk.js → bundles.0ab2d6f4.chunk.js} +2 -2
  17. package/dist/public/build/js/{bundles.b851f32c.chunk.js.map → bundles.0ab2d6f4.chunk.js.map} +1 -1
  18. package/dist/public/build/js/cluster-page-wrapper.a5c05070.chunk.js +2 -0
  19. package/dist/public/build/js/{cluster-page-wrapper.45436df6.chunk.js.map → cluster-page-wrapper.a5c05070.chunk.js.map} +1 -1
  20. package/dist/public/build/js/dashboard.efdd63a2.chunk.js +3 -0
  21. package/dist/public/build/js/{dashboard.234b8062.chunk.js.map → dashboard.efdd63a2.chunk.js.map} +1 -1
  22. package/dist/public/build/js/main.a89bac74.js +3 -0
  23. package/dist/public/build/js/main.a89bac74.js.map +1 -0
  24. package/dist/public/build/js/{navigation-flow.a79a25f5.chunk.js → navigation-flow.1d83e216.chunk.js} +2 -2
  25. package/dist/public/build/js/{navigation-flow.a79a25f5.chunk.js.map → navigation-flow.1d83e216.chunk.js.map} +1 -1
  26. package/dist/public/build/js/{navigation.b91a7a0b.chunk.js → navigation.0aff5a3a.chunk.js} +2 -2
  27. package/dist/public/build/js/{navigation.b91a7a0b.chunk.js.map → navigation.0aff5a3a.chunk.js.map} +1 -1
  28. package/dist/public/build/js/{query-tracker.5a0d626f.chunk.js → query-tracker.b7334a6f.chunk.js} +2 -2
  29. package/dist/public/build/js/{query-tracker.5a0d626f.chunk.js.map → query-tracker.b7334a6f.chunk.js.map} +1 -1
  30. package/dist/public/build/js/{runtime.8a460b23.js → runtime.d583e98e.js} +2 -2
  31. package/dist/public/build/js/{runtime.8a460b23.js.map → runtime.d583e98e.js.map} +1 -1
  32. package/dist/public/build/js/users.aec1e380.chunk.js +2 -0
  33. package/dist/public/build/js/users.aec1e380.chunk.js.map +1 -0
  34. package/dist/public/build/js/yt-df-dialog.1d05b0a5.chunk.js +3 -0
  35. package/dist/public/build/js/yt-df-dialog.1d05b0a5.chunk.js.map +1 -0
  36. package/dist/public/build/manifest.json +34 -34
  37. package/package.json +4 -3
  38. package/dist/public/build/css/default-subject-link.4dc8a973.chunk.css +0 -2
  39. package/dist/public/build/css/default-subject-link.4dc8a973.chunk.css.map +0 -1
  40. package/dist/public/build/css/main.d1987746.css.map +0 -1
  41. package/dist/public/build/js/2009.8121a60e.chunk.js +0 -2
  42. package/dist/public/build/js/2009.8121a60e.chunk.js.map +0 -1
  43. package/dist/public/build/js/6157.92170346.chunk.js +0 -2
  44. package/dist/public/build/js/6157.92170346.chunk.js.map +0 -1
  45. package/dist/public/build/js/6960.8b7e01c6.chunk.js +0 -2
  46. package/dist/public/build/js/6960.8b7e01c6.chunk.js.map +0 -1
  47. package/dist/public/build/js/accounts.aaa21eca.chunk.js.map +0 -1
  48. package/dist/public/build/js/acl.1ad3d494.chunk.js +0 -2
  49. package/dist/public/build/js/acl.1ad3d494.chunk.js.map +0 -1
  50. package/dist/public/build/js/cluster-page-wrapper.45436df6.chunk.js +0 -2
  51. package/dist/public/build/js/dashboard.234b8062.chunk.js +0 -3
  52. package/dist/public/build/js/main.aa6a17d8.js +0 -3
  53. package/dist/public/build/js/main.aa6a17d8.js.map +0 -1
  54. package/dist/public/build/js/users.a0dc610f.chunk.js +0 -2
  55. package/dist/public/build/js/users.a0dc610f.chunk.js.map +0 -1
  56. package/dist/public/build/js/yt-df-dialog.acab4eb0.chunk.js +0 -3
  57. package/dist/public/build/js/yt-df-dialog.acab4eb0.chunk.js.map +0 -1
  58. /package/dist/public/build/js/{dashboard.234b8062.chunk.js.LICENSE.txt → dashboard.efdd63a2.chunk.js.LICENSE.txt} +0 -0
  59. /package/dist/public/build/js/{main.aa6a17d8.js.LICENSE.txt → main.a89bac74.js.LICENSE.txt} +0 -0
  60. /package/dist/public/build/js/{yt-df-dialog.acab4eb0.chunk.js.LICENSE.txt → yt-df-dialog.1d05b0a5.chunk.js.LICENSE.txt} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"js/acl.556f2525.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/utils/scheduling/scheduling.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/./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/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 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","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","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 {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","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","i","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","undefined","res","reduce_","sum","tmp","firstValidNumber","NaN","prepareMinGuaranteed","prepareValueDetails","getPoolResourceInitialValue","allowSource","limit","source","getInitialValues","editItem","allowedSources","slug","general","abcService","mode","weight","getNumber","assign","resourceGuarantee","integralGuarantee","resourceLimits","cpu","gpu","memory","userSlots","otherSettings","forbidImmediateOperations","getBoolean","fifoSortParams","createEphemeralSubpools","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","push","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","RumMeasureTypes","SCHEDULING","wrap","preparedPools","getSchedulingPoolsMapByName","getSchedulingPoolsExtraInfo","poolsMap","root","calcChildrenIntegrals","dst","childrenBurstCPU","childrenFlowCPU","itemExtraInfo","getPools","extras","itemExtra","prepareUserPermissions","userPermissions","idmKind","permissionTypes","UIFactory","getAclPermissionsSettings","action","getPathToCheckPermissions","_x","_x2","_x3","_getPathToCheckPermissions","apply","_asyncToGenerator","_regeneratorRuntime","mark","_callee4","entityName","poolTree","fullPath","_context5","prev","next","t0","IdmObjectType","ACCESS_CONTROL_OBJECT","UI_EFFECTIVE_ACL","PATH","ACCOUNT","POOL","TABLET_CELL_BUNDLE","abrupt","ytApiV3Id","get","YTApiId","schedulingPoolFullPath","sent","Error","stop","loadAclData","normalizedPoolTree","options","userPermissionsPath","_ref3","_callee","dispatch","getState","_state$global","login","_state$global$cluster","pathToCheckPermissions","pathToCheckUserPermissions","_context","global","LOAD_DATA","REQUEST","getTree","Promise","getAcl","kind","sysPath","checkUserPermissionsUI","getResponsible","then","_ref4","_ref5","_slicedToArray","acl","responsible","SUCCESS","version","auditors","columnGroups","column_groups","inheritAcl","readApprovers","disableAclInheritance","bossApproval","disableInheritanceResponsible","t1","FAILURE","_x4","_x5","deletePermissions","_ref6","roleKey","itemToDelete","_ref8","_callee2","_getState$global$clus","deletePermissionsPath","_context2","DELETE_PERMISSION","getAclApi","deleteRole","isCancelled","CANCELLED","reject","_x6","_x7","dateToDaysAfterNow","date","Math","round","getTime","Date","now","requestPermissions","_ref9","values","_ref1","_callee3","_values$comment","_state$global$cluster2","_UIFactory$getAclApi","_UIFactory$getAclApi$","requestPermissionsFlags","daysAfter","roles","rolesGroupedBySubject","inheritance_mode","permissionFlags","readColumnGroup","readColumns","_iterator","_step","_loop","requestPermissionsPath","_context4","REQUEST_PERMISSION","duration","_createForOfIteratorHelper","subjects","subject","commonPart","flattenPermissions","_context3","prepareAclSubject","deprive_after_days","entries","forEach","_ref10","_ref11","flagInfo","applyToRequestedRole","flatten_","columns","forEach_","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","visible","poolsTableItems","caption","captionTail","align","_item$attributes$titl","FI","operation_overview","dominant_resource","min_share","fair_share","fair_share_usage","sortWithUndefined","user","operation_type","actions","getOverviewColumnTitle","_poolsTableItems$name","_ref2","OVERVIEW_AVAILABLE_COLUMNS","isAbcPoolName","startsWith","isTopLevelPool","flattenCypressData","getSchedulingOperationsError","getSchedulingOperationsExpandedPools","getExpandedPoolsLoadAll","loadAll","loaded","TextInputWithDebounce","_props$debounce","debounce","_props$onUpdate","onUpdate","onBlur","onEnterKeyDown","onKeyDown","_excluded","_React$useState","_React$useState2","input","setInput","handleChangeExt","debounce_","handleChange","text","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","YTDFDialog","pristineSubmittable","modal","headerProps","footerProps","textApply","onClose","onAdd","form","_form$getState$values","err","fields","required","placeholder","includes_","tooltip","_toConsumableArray","makeErrorFields","ColumnGroups","loadAclDataFn","_ref$allowEdit","allowEdit","userPermissionsAccessColumns","setModalProps","prevProps","_value","resolve","modalProps","header","render","row","Power","_row$columns","renderText","column","_Fragment","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","YTErrorBlock","compose","withVisible","handleShow","manageAclError","errorData","handleModalOpen","useCallback","handleUpdateAclClose","inheritanceResponsible","disableInheritance","roleListValueToSubjectList","manageAclDialogFields","maxVisibleCount","manageAclFields","dialogFields","permissionsSettings","idmKindConditions","allowBossApprovals","allowAuditors","allowReadApprovers","allowInheritResponsibles","filter","CommonDialog","open","Header","Body","LoadDataHandler","prepareRoleListValue","formExtras","initialValuesEqual","isEqual_","hasWarning","setHasWarning","inheritAcl_warning","manageInheritanceFields","buttonsTitle","allowInheritAcl","_ref$editInheritance","editInheritance","AclActions","_args","_args2","_args3","aclMode","requestPermissionsError","updateAclError","Flex","gap","RequestPermissions","AclMode","COLUMN_GROUPS_PERMISSISONS","ManageInheritance","ManageAcl","MyPermissions","groups","slice","PermissionsGroup","direction","alignItems","color","xMarkSvg","checkSvg","Readable","ApproversFilters","useDispatch","subjectFilter","Filter","autofocus","ObjectPermissionsFilters","selectedPermissons","permissionList","getObjectPermissionsTypesList","p","SegmentControl","background","SegmentGroup","rowGap","SegmentValue","role","url","idmLink","Value","isValidUrl","Link","target","href","bool","ACL_MODE_OPTIONS","MAIN_PERMISSIONS","AclModeControl","RadioButton","AclColumnsCell","_items$map","expanadable","VisibleValues","counter","v","unipika","decode","maxVisibleValues","maxTextLength","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","_ref7","RoleActions","getComponentForAclRoleActions","onDelete","approve_type","unrecognized","isUnrecognized","depriving","isDepriving","requested","isRequested","approved","isApproved","missing","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","compact_","_this$props0","counters","count","_this$props1","initialLoading","renderContent","internal","_item$types","types","SubjectCard","showIcon","subjectType","subjectUrl","username","_item$tvmInfo","tvmId","tvmInfo","_ref14","groupInfo","group","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","current","pathStr","reverse","getSchedulingTopPoolOfEditItem","mapOfPools","getSchedulingSourcesOfEditItem","topPool","visitTreeItems","isNeedToSkipChildren","getSchedulingSourcesOfEditItemSkipParent","sources","filter_","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","ACCOUNTS","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","removed","_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","_React$Component","WithVisible","toggleVisible","defaultProps","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":""}