@ytsaurus/ui 1.62.0 → 1.63.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 (113) hide show
  1. package/dist/public/build/assets-manifest.json +69 -69
  2. package/dist/public/build/css/7540.b48a154e.chunk.css +2 -0
  3. package/dist/public/build/css/7540.b48a154e.chunk.css.map +1 -0
  4. package/dist/public/build/css/{cluster-page-wrapper.0b62c90f.chunk.css → cluster-page-wrapper.0b6a786f.chunk.css} +2 -2
  5. package/dist/public/build/css/cluster-page-wrapper.0b6a786f.chunk.css.map +1 -0
  6. package/dist/public/build/css/{main.a99b07c5.css → main.070fd473.css} +2 -2
  7. package/dist/public/build/css/main.070fd473.css.map +1 -0
  8. package/dist/public/build/css/navigation.0a141599.chunk.css +2 -0
  9. package/dist/public/build/css/navigation.0a141599.chunk.css.map +1 -0
  10. package/dist/public/build/css/{system.17b114fc.chunk.css → system.221e5d53.chunk.css} +2 -2
  11. package/dist/public/build/css/{system.17b114fc.chunk.css.map → system.221e5d53.chunk.css.map} +1 -1
  12. package/dist/public/build/js/1110.a7382226.chunk.js +2 -0
  13. package/dist/public/build/js/1110.a7382226.chunk.js.map +1 -0
  14. package/dist/public/build/js/1394.011da2d1.chunk.js +2 -0
  15. package/dist/public/build/js/1394.011da2d1.chunk.js.map +1 -0
  16. package/dist/public/build/js/2447.35b478a9.chunk.js +2 -0
  17. package/dist/public/build/js/2447.35b478a9.chunk.js.map +1 -0
  18. package/dist/public/build/js/4364.aa1ab5fb.chunk.js +2 -0
  19. package/dist/public/build/js/4364.aa1ab5fb.chunk.js.map +1 -0
  20. package/dist/public/build/js/5451.50d8f2b2.chunk.js +3 -0
  21. package/dist/public/build/js/5451.50d8f2b2.chunk.js.LICENSE.txt +5 -0
  22. package/dist/public/build/js/5451.50d8f2b2.chunk.js.map +1 -0
  23. package/dist/public/build/js/5770.0d8fda01.chunk.js +2 -0
  24. package/dist/public/build/js/5770.0d8fda01.chunk.js.map +1 -0
  25. package/dist/public/build/js/{7077.b11a392b.chunk.js → 7077.7dab612c.chunk.js} +2 -2
  26. package/dist/public/build/js/{7077.b11a392b.chunk.js.map → 7077.7dab612c.chunk.js.map} +1 -1
  27. package/dist/public/build/js/7959.e0d47dec.chunk.js +2 -0
  28. package/dist/public/build/js/7959.e0d47dec.chunk.js.map +1 -0
  29. package/dist/public/build/js/{8460.b18e700b.chunk.js → 8460.2b27e2b7.chunk.js} +2 -2
  30. package/dist/public/build/js/{8460.b18e700b.chunk.js.map → 8460.2b27e2b7.chunk.js.map} +1 -1
  31. package/dist/public/build/js/{8778.8d098a1f.chunk.js → 8778.d97acdd6.chunk.js} +2 -2
  32. package/dist/public/build/js/8778.d97acdd6.chunk.js.map +1 -0
  33. package/dist/public/build/js/accounts.badfc837.chunk.js +2 -0
  34. package/dist/public/build/js/{accounts.63268a11.chunk.js.map → accounts.badfc837.chunk.js.map} +1 -1
  35. package/dist/public/build/js/{acl.aa7a9df7.chunk.js → acl.cd1fe761.chunk.js} +2 -2
  36. package/dist/public/build/js/acl.cd1fe761.chunk.js.map +1 -0
  37. package/dist/public/build/js/cluster-menu.bf57160d.chunk.js +2 -0
  38. package/dist/public/build/js/cluster-menu.bf57160d.chunk.js.map +1 -0
  39. package/dist/public/build/js/cluster-page-wrapper.c9e6c27c.chunk.js +2 -0
  40. package/dist/public/build/js/cluster-page-wrapper.c9e6c27c.chunk.js.map +1 -0
  41. package/dist/public/build/js/job.31c91355.chunk.js +2 -0
  42. package/dist/public/build/js/job.31c91355.chunk.js.map +1 -0
  43. package/dist/public/build/js/main.61fc9935.js +3 -0
  44. package/dist/public/build/js/main.61fc9935.js.map +1 -0
  45. package/dist/public/build/js/{manage-tokens.c996037c.chunk.js → manage-tokens.e9106aad.chunk.js} +2 -2
  46. package/dist/public/build/js/{manage-tokens.c996037c.chunk.js.map → manage-tokens.e9106aad.chunk.js.map} +1 -1
  47. package/dist/public/build/js/navigation.22bd542f.chunk.js +2 -0
  48. package/dist/public/build/js/navigation.22bd542f.chunk.js.map +1 -0
  49. package/dist/public/build/js/{odin.ddcd41de.chunk.js → odin.7eefabce.chunk.js} +2 -2
  50. package/dist/public/build/js/{odin.ddcd41de.chunk.js.map → odin.7eefabce.chunk.js.map} +1 -1
  51. package/dist/public/build/js/operations.3feb2deb.chunk.js +2 -0
  52. package/dist/public/build/js/operations.3feb2deb.chunk.js.map +1 -0
  53. package/dist/public/build/js/{query-results.99804b61.chunk.js → query-results.4c207fef.chunk.js} +2 -2
  54. package/dist/public/build/js/{query-results.99804b61.chunk.js.map → query-results.4c207fef.chunk.js.map} +1 -1
  55. package/dist/public/build/js/query-tracker.badbc586.chunk.js +2 -0
  56. package/dist/public/build/js/query-tracker.badbc586.chunk.js.map +1 -0
  57. package/dist/public/build/js/{runtime.8be0e5c6.js → runtime.f98c3e55.js} +2 -2
  58. package/dist/public/build/js/{runtime.8be0e5c6.js.map → runtime.f98c3e55.js.map} +1 -1
  59. package/dist/public/build/js/scheduling.73b1257c.chunk.js +2 -0
  60. package/dist/public/build/js/scheduling.73b1257c.chunk.js.map +1 -0
  61. package/dist/public/build/js/{system.6843a1a3.chunk.js → system.25e9136a.chunk.js} +2 -2
  62. package/dist/public/build/js/system.25e9136a.chunk.js.map +1 -0
  63. package/dist/public/build/js/tablet.7401a5ec.chunk.js +2 -0
  64. package/dist/public/build/js/tablet.7401a5ec.chunk.js.map +1 -0
  65. package/dist/public/build/js/{yt-df-dialog.6b4604c0.chunk.js → yt-df-dialog.69fc013a.chunk.js} +2 -2
  66. package/dist/public/build/js/{yt-df-dialog.6b4604c0.chunk.js.map → yt-df-dialog.69fc013a.chunk.js.map} +1 -1
  67. package/dist/public/build/manifest.json +64 -64
  68. package/dist/shared/ui-settings.d.ts +0 -1
  69. package/package.json +3 -3
  70. package/dist/public/build/css/7540.56f97199.chunk.css +0 -2
  71. package/dist/public/build/css/7540.56f97199.chunk.css.map +0 -1
  72. package/dist/public/build/css/cluster-page-wrapper.0b62c90f.chunk.css.map +0 -1
  73. package/dist/public/build/css/main.a99b07c5.css.map +0 -1
  74. package/dist/public/build/css/navigation.adb62abd.chunk.css +0 -2
  75. package/dist/public/build/css/navigation.adb62abd.chunk.css.map +0 -1
  76. package/dist/public/build/js/1110.d02f593c.chunk.js +0 -2
  77. package/dist/public/build/js/1110.d02f593c.chunk.js.map +0 -1
  78. package/dist/public/build/js/1394.f5423b9c.chunk.js +0 -2
  79. package/dist/public/build/js/1394.f5423b9c.chunk.js.map +0 -1
  80. package/dist/public/build/js/2447.d0a0e8ad.chunk.js +0 -2
  81. package/dist/public/build/js/2447.d0a0e8ad.chunk.js.map +0 -1
  82. package/dist/public/build/js/4364.277e1cfa.chunk.js +0 -2
  83. package/dist/public/build/js/4364.277e1cfa.chunk.js.map +0 -1
  84. package/dist/public/build/js/5770.c5499ce7.chunk.js +0 -2
  85. package/dist/public/build/js/5770.c5499ce7.chunk.js.map +0 -1
  86. package/dist/public/build/js/7891.2ce56be7.chunk.js +0 -3
  87. package/dist/public/build/js/7891.2ce56be7.chunk.js.LICENSE.txt +0 -14
  88. package/dist/public/build/js/7891.2ce56be7.chunk.js.map +0 -1
  89. package/dist/public/build/js/7959.eb292cbd.chunk.js +0 -2
  90. package/dist/public/build/js/7959.eb292cbd.chunk.js.map +0 -1
  91. package/dist/public/build/js/8778.8d098a1f.chunk.js.map +0 -1
  92. package/dist/public/build/js/accounts.63268a11.chunk.js +0 -2
  93. package/dist/public/build/js/acl.aa7a9df7.chunk.js.map +0 -1
  94. package/dist/public/build/js/cluster-menu.e484a2ca.chunk.js +0 -2
  95. package/dist/public/build/js/cluster-menu.e484a2ca.chunk.js.map +0 -1
  96. package/dist/public/build/js/cluster-page-wrapper.8c8aa8a1.chunk.js +0 -2
  97. package/dist/public/build/js/cluster-page-wrapper.8c8aa8a1.chunk.js.map +0 -1
  98. package/dist/public/build/js/job.5ed7166b.chunk.js +0 -2
  99. package/dist/public/build/js/job.5ed7166b.chunk.js.map +0 -1
  100. package/dist/public/build/js/main.00809a7d.js +0 -3
  101. package/dist/public/build/js/main.00809a7d.js.map +0 -1
  102. package/dist/public/build/js/navigation.c3108a21.chunk.js +0 -2
  103. package/dist/public/build/js/navigation.c3108a21.chunk.js.map +0 -1
  104. package/dist/public/build/js/operations.b353981f.chunk.js +0 -2
  105. package/dist/public/build/js/operations.b353981f.chunk.js.map +0 -1
  106. package/dist/public/build/js/query-tracker.fba0ec95.chunk.js +0 -2
  107. package/dist/public/build/js/query-tracker.fba0ec95.chunk.js.map +0 -1
  108. package/dist/public/build/js/scheduling.115669fe.chunk.js +0 -2
  109. package/dist/public/build/js/scheduling.115669fe.chunk.js.map +0 -1
  110. package/dist/public/build/js/system.6843a1a3.chunk.js.map +0 -1
  111. package/dist/public/build/js/tablet.40ad9054.chunk.js +0 -2
  112. package/dist/public/build/js/tablet.40ad9054.chunk.js.map +0 -1
  113. /package/dist/public/build/js/{main.00809a7d.js.LICENSE.txt → main.61fc9935.js.LICENSE.txt} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"js/8460.b18e700b.chunk.js","mappings":"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","sources":["webpack://@ytsaurus/ui/./src/ui/components/AttributesButton/ClickableAttributesButton.tsx","webpack://@ytsaurus/ui/./src/ui/components/PageCounter/PageCounter.tsx","webpack://@ytsaurus/ui/./src/ui/components/ColumnHeader/ColumnHeader.tsx","webpack://@ytsaurus/ui/./src/ui/components/Dialog/controls/RoleListControl/utils.ts","webpack://@ytsaurus/ui/./src/ui/components/Dialog/DialogError.tsx","webpack://@ytsaurus/ui/./src/ui/components/Dialog/index.tsx","webpack://@ytsaurus/ui/./src/ui/hocs/withDelayedMount.tsx","webpack://@ytsaurus/ui/./src/ui/containers/Host/Host.tsx","webpack://@ytsaurus/ui/./src/ui/utils/cypress-attributes.ts","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/icons/svgs/bars-descending-align-left.svg"],"sourcesContent":["import React from 'react';\nimport {ConnectedProps, connect} from 'react-redux';\n\nimport AttributesButton, {AttributesButtonProps} from './AttributesButton';\n\nimport {openAttributesModal} from '../../store/actions/modals/attributes-modal';\nimport {ButtonProps} from '../Button/Button';\n\ninterface Props extends Omit<AttributesButtonProps, 'onClick' | 'title'> {\n title: React.ReactNode;\n\n // The function is called inside click handler, and overrides path and exactPath\n getPathProps?: () => Pick<Partial<Props>, 'path' | 'exactPath'>;\n path?: string;\n exactPath?: string;\n\n attribute?: string;\n attributes?: object;\n\n size?: ButtonProps['size'];\n view?: ButtonProps['view'];\n}\n\nfunction ClickableAttributesButton({\n title,\n getPathProps = () => {\n return {};\n },\n path,\n exactPath,\n attribute,\n attributes,\n openAttributesModal,\n withTooltip = true,\n tooltipProps = {placement: 'bottom-end', content: 'Show attributes'},\n ...rest\n}: Props & ConnectedProps<typeof connector>) {\n return (\n <AttributesButton\n {...rest}\n tooltipProps={tooltipProps}\n withTooltip={withTooltip}\n onClick={() => {\n const pathProps = {\n path,\n exactPath,\n ...getPathProps(),\n };\n\n openAttributesModal({\n title,\n ...pathProps,\n attribute,\n attributes,\n });\n }}\n />\n );\n}\n\nconst connector = connect(null, {openAttributesModal});\n\nexport default connector(ClickableAttributesButton);\n","import React from 'react';\nimport cn from 'bem-cn-lite';\n\nconst block = cn('yt-page-counter');\n\nexport interface PageCounterProps {\n className?: string;\n pageIndex?: number;\n pageCount?: number;\n}\n\nfunction PageCounter({pageIndex, pageCount, className}: PageCounterProps) {\n if (pageIndex === undefined || pageCount === undefined) {\n return null;\n }\n\n return pageCount! > 1 ? (\n <span className={block(null, className)}>\n Page: {(pageIndex || 0) + 1} / {pageCount}\n </span>\n ) : null;\n}\n\nexport default React.memo(PageCounter);\n","import React from 'react';\nimport cn from 'bem-cn-lite';\nimport capitalize_ from 'lodash/capitalize';\n\nimport barsDescendingSvg from '@gravity-ui/icons/svgs/bars-descending-align-left.svg';\nimport {Button, DropdownMenu, Icon, Text} from '@gravity-ui/uikit';\n\nimport SortIcon from '../../components/SortIcon/SortIcon';\n\nimport {OrderType, calculateNextOrderValue, nextSortOrderValue} from '../../utils/sort-helpers';\nimport PageCounter, {PageCounterProps} from '../../components/PageCounter/PageCounter';\nimport Loader from '../../components/Loader/Loader';\nimport {rumLogError} from '../../rum/rum-counter';\n\nimport './ColumnHeader.scss';\n\nconst block = cn('column-header');\n\nexport type ColumnInfo<T> = {\n column: T;\n title?: string;\n shortTitle?: string;\n /**\n * Ignored when allowedOrderTypes is defined\n */\n allowUnordered?: boolean;\n /**\n * Ignored when allowedOrderTypes is defined\n */\n withUndefined?: boolean;\n allowedOrderTypes?: Array<OrderType>;\n};\n\nexport type HasSortColumn<T> =\n | (ColumnInfo<T> & {options?: undefined})\n | ({\n title: string;\n shortTitle?: string;\n column: T;\n options: Array<ColumnInfo<T>>;\n } & Partial<Record<keyof Omit<ColumnInfo<T>, 'column' | 'title' | 'shortTitle'>, undefined>>);\n\nexport type ColumnHeaderProps<T extends string = string> = PageCounterProps &\n HasSortColumn<T> & {\n className?: string;\n order?: OrderType;\n multisortIndex?: number;\n onSort?: (\n column: T,\n nextOrder: OrderType,\n options: {currentOrder?: OrderType; multisort?: boolean},\n ) => void;\n\n loading?: boolean;\n\n align?: 'center' | 'left' | 'right';\n };\n\ntype NameTitleContent = {\n nameContent: string;\n titleContent: string;\n};\n\nfunction getNameTitle<T extends string>({\n column,\n title,\n shortTitle,\n}: Pick<ColumnInfo<T>, 'column' | 'title' | 'shortTitle'>): NameTitleContent {\n const t = title ?? capitalize_(column);\n const nameContent = !shortTitle ? t : shortTitle;\n return {nameContent, titleContent: t};\n}\n\nfunction useColumnInfo<T extends string = string>(\n props: ColumnHeaderProps<T>,\n): ColumnInfo<T> & NameTitleContent & {subColumn?: NameTitleContent} {\n if (props.options === undefined) {\n const {column, allowUnordered, withUndefined, title, shortTitle, allowedOrderTypes} = props;\n return {\n column,\n allowUnordered,\n withUndefined,\n allowedOrderTypes,\n ...getNameTitle({column, title, shortTitle}),\n };\n }\n\n const {column: value, options, title, shortTitle} = props;\n const columnData = options.find(({column}) => value === column)!;\n if (!columnData) {\n rumLogError({\n message: 'Unexpected behavior: missing value in ColumnHeader.props.options',\n additional: props,\n });\n }\n return {\n subColumn: getNameTitle({...columnData}),\n ...columnData,\n ...getNameTitle({column: '', title, shortTitle}),\n };\n}\n\nexport default function ColumnHeader<T extends string = string>(props: ColumnHeaderProps<T>) {\n const {className, align, order, onSort, multisortIndex, loading, pageIndex, pageCount} = props;\n const {\n column,\n allowUnordered,\n withUndefined,\n nameContent,\n titleContent,\n allowedOrderTypes,\n subColumn,\n } = useColumnInfo(props);\n\n const changeHandler = React.useCallback(\n (e: React.MouseEvent) => {\n const nextOrder = allowedOrderTypes\n ? calculateNextOrderValue(order, allowedOrderTypes)\n : nextSortOrderValue(order, allowUnordered, withUndefined);\n onSort?.(column, nextOrder, {\n currentOrder: order,\n multisort: e.ctrlKey || e.metaKey,\n });\n },\n [column, order, onSort, allowUnordered, allowedOrderTypes, withUndefined],\n );\n\n const sortable = Boolean(onSort);\n\n return (\n <div className={block(null, className)}>\n <div\n className={block('label-icon', {sortable, align})}\n onClick={sortable ? changeHandler : undefined}\n >\n <span className={block('label')} title={titleContent}>\n {nameContent}\n </span>\n <span className={block('icon')}>\n <SortIcon hidden={!sortable} order={order} />\n </span>\n {multisortIndex !== undefined && (\n <span className={block('multisort')}>\n &nbsp;<sup>{multisortIndex}</sup>\n </span>\n )}\n {Boolean(order) && Boolean(subColumn) && (\n <Text\n className={block('label', {'sub-column': true})}\n variant=\"caption-2\"\n title={subColumn?.titleContent}\n color=\"dark-secondary\"\n >\n {subColumn?.nameContent}\n </Text>\n )}\n </div>\n <SubColumnSelector options={props.options} order={order} onSort={onSort} />\n {loading !== undefined && (\n <div className={block('loader')}>\n <Loader visible={loading} />\n </div>\n )}\n {Boolean(pageCount) && (\n <PageCounter\n className={block('page-counter')}\n pageIndex={pageIndex}\n pageCount={pageCount}\n />\n )}\n </div>\n );\n}\n\nfunction SubColumnSelector<T extends string>({\n order,\n options,\n onSort,\n}: Pick<ColumnHeaderProps<T>, 'onSort'> & {\n order?: ColumnHeaderProps<T>['order'];\n options?: Array<ColumnInfo<T>>;\n}) {\n return !options ? null : (\n <DropdownMenu\n items={options.map((x) => {\n const {titleContent} = getNameTitle(x);\n return {\n text: titleContent,\n action() {\n if (!onSort) {\n return;\n }\n const {column, allowUnordered, withUndefined, allowedOrderTypes} = x;\n const nextOrder = allowedOrderTypes\n ? calculateNextOrderValue(order, allowedOrderTypes)\n : nextSortOrderValue(order, allowUnordered, withUndefined);\n onSort(column, nextOrder, {\n currentOrder: order,\n });\n },\n };\n })}\n renderSwitcher={({onClick}) => (\n <Button onClick={onClick} view=\"flat\" size=\"xs\">\n <Icon size={12} data={barsDescendingSvg} />\n </Button>\n )}\n />\n );\n}\n","import cn from 'bem-cn-lite';\n\nimport filter_ from 'lodash/filter';\nimport forEach_ from 'lodash/forEach';\nimport map_ from 'lodash/map';\n\nimport type {EditableManyListsItemType} from '../../../../components/Dialog';\nimport type {ResponsibleType, RoleConverted} from '../../../../utils/acl/acl-types';\nimport type {PreparedRole} from '../../../../utils/acl';\nimport {RoleListControlProps} from './RoleListControl';\n\nexport const block = cn('role-list-control');\n\nexport function prepareRoleListValue(roles: Array<PreparedRole>, otherMembers: Array<string> = []) {\n const current: typeof roles = [];\n const toAdd: typeof roles = [];\n const toRemove: typeof roles = [];\n const unrecognized: typeof roles = [];\n forEach_(roles, (item) => {\n const {isUnrecognized, isRequested, isApproved, isDepriving} = item;\n if (isUnrecognized) {\n unrecognized.push(item);\n } else if (isDepriving) {\n toRemove.push(item);\n } else if (isApproved || isRequested) {\n toAdd.push(item);\n } else {\n current.push(item);\n }\n });\n\n const currentArr = current.map((item) => prepareItemOfCurrent(item));\n const otherArr = otherMembers.map((item) => ({\n title: item,\n data: {},\n frozen: true,\n }));\n\n return {\n newItems: [],\n current: {title: 'Current', data: currentArr.concat(otherArr)},\n toAdd: {\n title: 'Will be added',\n itemClassName: block('item-to-add'),\n data: toAdd.map((item) => prepareItemOfCurrent(item, {frozen: true})),\n },\n toRemove: {\n title: 'Will be removed',\n itemClassName: block('item-to-remove'),\n data: toRemove.map((item) => prepareItemOfCurrent(item, {frozen: true})),\n },\n unrecognized: {\n title: 'Unrecognized',\n itemClassName: block('item-unrecognized'),\n data: unrecognized.map((item) => prepareItemOfCurrent(item, {frozen: true})),\n },\n };\n}\n\nfunction prepareItemOfCurrent(role: PreparedRole, extraProps: any = {}) {\n return {\n title: role.text || role.value,\n data: role,\n ...extraProps,\n };\n}\n\nexport function roleListValueToSubjectList(\n value: RoleListControlProps['value'],\n): Array<ResponsibleType> {\n const {current, newItems, toAdd} = value;\n return [\n ...newItems,\n ...manyListDataItemToSubjectList(current),\n ...manyListDataItemToSubjectList(toAdd),\n ];\n}\n\nfunction manyListDataItemToSubjectList(\n manyListDataItem: EditableManyListsItemType<RoleConverted>,\n): Array<ResponsibleType> {\n const {data} = manyListDataItem || {};\n return map_(\n filter_(data, ({removed}) => !removed),\n ({data}) => {\n const {type, value} = data || {};\n return {type: type!, value: value!};\n },\n );\n}\n\nexport function extractChangedSubjects(value: {\n current: EditableManyListsItemType<RoleConverted>;\n newItems: Array<ResponsibleType>;\n}) {\n const {current, newItems} = value;\n const added = newItems || [];\n const removed = ((current && current.data) || []).filter(({removed}) => removed);\n return {\n added: added.map(({type, value}) => {\n return type === 'users' ? {user: value} : {group: value};\n }),\n removed: removed.map(({data}) => {\n const {value, type} = data || {};\n return type === 'users' ? {user: value} : {group: value};\n }),\n };\n}\n","import React from 'react';\nimport cn from 'bem-cn-lite';\n\nimport type {FORM_ERROR as FormErrorType} from './index';\n\nimport {FIX_MY_TYPE, YTError} from '../../types';\nimport Block from '../../components/Block/Block';\n\nimport compact_ from 'lodash/compact';\nimport map_ from 'lodash/map';\n\nconst block = cn('yt-dialog-error');\n\nexport function DialogError(props: FIX_MY_TYPE) {\n return <Block {...props} className={block()} />;\n}\n\nexport function makeErrorFields(errors: Array<YTError | Error | undefined>) {\n return compact_(\n map_(errors, (error, index) => {\n return error\n ? {\n name: `error_${index}`,\n type: 'block' as const,\n extras: {\n children: <DialogError error={error} />,\n },\n }\n : undefined;\n }),\n );\n}\n\nconst FORM_ERROR: typeof FormErrorType = 'FINAL_FORM/form-error';\n\nexport function makeFormSubmitError(error: YTError) {\n return {\n validationErrors: {\n [FORM_ERROR]: <DialogError error={error} />,\n },\n };\n}\n","import React from 'react';\nimport withLazyLoading from '../../hocs/withLazyLoading';\nimport {withDelayedMount} from '../../hocs/withDelayedMount';\n\nimport type {\n registerDialogControl as RegisterDialogControlFn,\n registerDialogTabControl as RegisterDialogTabControlFn,\n YTDialogType,\n} from './Dialog';\n\nexport type * from './Dialog';\nexport * from './DialogError';\nexport * from './controls/RoleListControl/utils';\n\nexport function importYTDFDialog() {\n return import(/* webpackChunkName: \"yt-df-dialog\" */ './Dialog');\n}\n\nexport const YTDFDialog = withDelayedMount(\n withLazyLoading(\n React.lazy(async () => {\n return {default: (await importYTDFDialog()).YTDialog};\n }),\n '',\n ),\n) as YTDialogType;\n\nexport function useControlRegistration(\n fn: (params: {\n registerDialogControl: typeof RegisterDialogControlFn;\n registerDialogTabControl: typeof RegisterDialogTabControlFn;\n }) => void,\n) {\n importYTDFDialog().then(({registerDialogControl, registerDialogTabControl}) => {\n fn({registerDialogControl, registerDialogTabControl});\n });\n}\n\nexport type {RoleListControlProps} from './controls/RoleListControl/RoleListControl';\nexport const RoleListControl = withLazyLoading(\n React.lazy(async () => {\n return {default: (await importYTDFDialog()).RoleListControl};\n }),\n '',\n);\n\nexport const EditableList = withLazyLoading(\n React.lazy(async () => {\n return {default: (await importYTDFDialog()).EditableList};\n }),\n '',\n);\n\nexport const TabFieldVertical = withLazyLoading(\n React.lazy(async () => {\n return {default: (await importYTDFDialog()).TabFieldVertical};\n }),\n '',\n);\n","import React from 'react';\n\n/**\n * The hoc allows to delay mounting until `props.visible == true`.\n * The hoc might be useful to wrap components wrapped by React.lazy\n * @param Component\n * @returns\n */\nexport function withDelayedMount<P extends {visible?: boolean}>(Component: React.ComponentType<P>) {\n return function MountOnFirstVisible(props: P) {\n const [mounted, setMounted] = React.useState(false);\n React.useEffect(() => {\n if (!mounted && props.visible) {\n setMounted(true);\n }\n }, [props.visible, mounted]);\n return !mounted ? null : <Component {...props} />;\n };\n}\n","import React from 'react';\nimport {useSelector} from 'react-redux';\nimport cn from 'bem-cn-lite';\n\nimport {getCluster} from '../../store/selectors/global';\nimport Link from '../../components/Link/Link';\nimport ClipboardButton from '../../components/ClipboardButton/ClipboardButton';\nimport {Tooltip} from '../../components/Tooltip/Tooltip';\nimport {uiSettings} from '../../config/ui-settings';\nimport {makeRegexpFromSettings} from '../../../shared/utils';\n\nimport './Host.scss';\n\nconst reShortName = makeRegexpFromSettings(uiSettings.reShortNameFromAddress);\nconst reTabletNodeShortName = makeRegexpFromSettings(uiSettings.reShortNameFromTabletNodeAddress);\n\nexport function calcShortNameByRegExp(address: string, asTabletNode?: boolean) {\n const re = asTabletNode ? reTabletNodeShortName : reShortName;\n if (re) {\n const res = re?.exec(address);\n if (res?.groups?.shortname) {\n return [res.groups.shortname, res.groups.suffix].filter(Boolean).join('');\n }\n }\n return undefined;\n}\n\nconst block = cn('yt-host');\n\ninterface Props {\n address: string;\n className?: string;\n copyBtnClassName?: string;\n onClick?: () => void;\n useText?: boolean;\n prefix?: React.ReactNode;\n asTabletNode?: boolean;\n}\n\nexport function Host({\n address = '',\n prefix,\n className,\n copyBtnClassName,\n onClick,\n useText,\n asTabletNode,\n}: Props) {\n const host = React.useMemo(() => {\n return calcShortNameByRegExp(address, asTabletNode) || address;\n }, [address, asTabletNode]);\n\n const cluster = useSelector(getCluster);\n\n return (\n <span\n className={block(\n {hidden: !host},\n ['elements-monospace', className].filter(Boolean).join(' '),\n )}\n onClick={onClick}\n >\n {prefix}\n <Tooltip className={block('tooltip')} content={address}>\n {useText ? (\n host\n ) : (\n <Link url={`/${cluster}/components/nodes/${address}`} routed>\n {host}\n </Link>\n )}\n </Tooltip>\n <span className={block('copy-btn', copyBtnClassName)}>\n <ClipboardButton view={'flat-secondary'} text={address} />\n </span>\n </span>\n );\n}\n","import cloneDeep_ from 'lodash/cloneDeep';\nimport forEach_ from 'lodash/forEach';\nimport isEqual_ from 'lodash/isEqual';\nimport isEmpty_ from 'lodash/isEmpty';\nimport map_ from 'lodash/map';\nimport partition_ from 'lodash/partition';\n\n// @ts-ignore\nimport yt from '@ytsaurus/javascript-wrapper/lib/yt';\n\nimport {SELECT_EMPTY_VALUE} from '../constants/navigation/modals/create-table';\nimport {SelectWithSubItemsProps} from '../components/Dialog/controls/SelectWithSubItems/SelectWithSubItems';\nimport {wrapBatchPromise} from './utils';\nimport {YTApiId, ytApiV3Id} from '../rum/rum-wrap-api';\nimport {BatchSubRequest, GetParams} from '../../shared/yt-types';\nimport {ValueOf} from '../../@types/types';\n\nexport interface WithAttrs<T> {\n $attributes: T;\n}\n\nexport const compressionExtras: Pick<SelectWithSubItemsProps, 'labels' | 'items' | 'subItemsMap'> =\n {\n labels: ['codec:', 'level:'],\n items: [\n ...[\n 'none',\n 'snappy',\n 'zlib_',\n 'lz4',\n 'lz4_high_compression',\n 'quick_lz',\n 'zstd_',\n 'brotli_',\n 'lzma_',\n 'bzip2_',\n ].map((value) => ({value, content: value})),\n ],\n subItemsMap: {\n zlib_: genComperessionLevelItems(1, 9),\n zstd_: genComperessionLevelItems(1, 21),\n brotli_: genComperessionLevelItems(1, 11),\n lzma_: genComperessionLevelItems(0, 9),\n bzip2_: genComperessionLevelItems(1, 9),\n },\n };\n\nfunction genComperessionLevelItems(from: number, to: number) {\n const res = [];\n for (let i = from; i <= to; ++i) {\n res.push({value: String(i), content: String(i)});\n }\n return res;\n}\n\nexport function compressionCodecValueFromString(value: string) {\n if (!value) {\n return [SELECT_EMPTY_VALUE];\n }\n\n for (const k in compressionExtras.subItemsMap) {\n if (value.startsWith(k)) {\n return [k, value.substr(k.length)];\n }\n }\n return [value];\n}\n\nexport function compressionCodecValueToString(value: Array<string>) {\n if (isEqual_(value, [SELECT_EMPTY_VALUE])) {\n return '';\n }\n return value?.join('');\n}\n\ntype StorageOptionsType = 'replication' | 'erasure';\n\nexport const StorageOptions = {\n REPLICATION: 'replication' as StorageOptionsType,\n ERASURE: 'erasure' as StorageOptionsType,\n};\n\nexport const ERASURE_CODECS = [\n {value: 'lrc_12_2_2', title: 'lrc_12_2_2 (recommended)'},\n {value: 'reed_solomon_6_3', title: 'reed_solomon_6_3'},\n];\n\nexport function storageOptionFromErasureCodec(codec: string) {\n return !codec || codec === 'none' ? StorageOptions.REPLICATION : StorageOptions.ERASURE;\n}\n\nexport function normalizeErasureCodec(erasureCodec: string) {\n return !erasureCodec || erasureCodec === 'none' ? ERASURE_CODECS[0].value : erasureCodec;\n}\n\nexport function erasureCodecFromStorageOption(type?: StorageOptionsType, erasureCodec?: string) {\n if (type === StorageOptions.REPLICATION) {\n return 'none';\n }\n return erasureCodec || ERASURE_CODECS[0].value;\n}\n\nexport type InMemoryModeType = ValueOf<typeof InMemoryMode>;\n\nexport const InMemoryMode = {\n NONE: 'none',\n COMPRESSED: 'compressed',\n UNCOMPRESSED: 'uncompressed',\n} as const;\n\nexport function makeUiMarker(ui_marker: string) {\n return {ui_marker};\n}\n\nexport function prepareSetCommandForBatch(path: string, value: any, additionalParameters?: object) {\n if (value === undefined || value === null) {\n return {\n command: 'remove' as const,\n parameters: {\n path,\n ...additionalParameters,\n },\n };\n }\n\n return {\n command: 'set' as const,\n parameters: {\n path,\n ...additionalParameters,\n force: true,\n },\n input: value,\n };\n}\n\nexport const CypressNodeTypes = {\n REPLICATED_TABLE: 'replicated_table',\n REPLICATION_LOG_TABLE: 'replication_log_table',\n CHAOS_REPLICATED_TABLE: 'chaos_replicated_table',\n MAP_NODE: 'map_node',\n TABLE: 'table',\n // TODO: add more types\n};\n\nexport async function createParentsBeforeSet(nodePath: string, attributesToSet: Array<string>) {\n if (!attributesToSet.length) {\n return Promise.resolve();\n }\n\n const parentPaths: Record<string, boolean> = {};\n forEach_(attributesToSet, (attr) => {\n const parents = attr.split('/');\n for (let i = 1; i < parents.length; ++i) {\n const key = parents.slice(0, i).join('/');\n if (key) {\n parentPaths[key] = true;\n }\n }\n });\n const toCreate = Object.keys(parentPaths).sort();\n\n for (const attr of toCreate) {\n const path = nodePath + '/@' + attr;\n await yt.v3.exists({path}).then((isCreated: boolean) => {\n if (!isCreated) {\n return yt.v3.set({path}, {});\n }\n });\n }\n}\n\nexport function updateNodeAttributes(\n nodePath: string,\n changes: Array<{attr: string; value: any}>,\n): Promise<unknown> {\n if (isEmpty_(changes)) {\n return Promise.resolve();\n }\n\n const requests: Array<BatchSubRequest> = [];\n\n const oneLevelDiffsParents: Array<string> = [];\n const oneLevelDiffs: Record<string, Record<string, unknown>> = {};\n forEach_(changes, ({attr, value}) => {\n const attrPath = attr.split('/');\n if (attrPath.length === 1) {\n const path = nodePath + '/@' + attrPath.join('/');\n requests.push(prepareSetCommandForBatch(path, value));\n } else {\n const [last] = attrPath.splice(attrPath.length - 1, 1);\n const parentPath = attrPath.join('/');\n oneLevelDiffsParents.push(parentPath);\n const path = nodePath + '/@' + parentPath;\n const diff = (oneLevelDiffs[path] = oneLevelDiffs[path] || {});\n diff[last] = value;\n }\n });\n\n return Promise.all([\n ...(requests.length\n ? [\n wrapBatchPromise(\n ytApiV3Id.executeBatch(YTApiId.updateNodeAttributes, {requests}),\n 'Failed to update node attributes',\n ),\n ]\n : []),\n createParentsBeforeSet(nodePath, oneLevelDiffsParents).then(() => {\n if (isEmpty_(oneLevelDiffs)) {\n return Promise.resolve([]);\n }\n\n const promises: Array<Promise<unknown>> = map_(oneLevelDiffs, async (diff, path) => {\n const p = updateAttributes(path, diff);\n await p;\n return p;\n });\n\n return Promise.all(promises);\n }),\n ]);\n}\n\nfunction updateAttributes(path: string, oneLevelDiff: Record<'string', unknown>) {\n if (isEmpty_(oneLevelDiff)) {\n return Promise.resolve();\n }\n\n const modifyGuarantee = (data: any = {}) => {\n const res = cloneDeep_(data);\n forEach_(oneLevelDiff, (value, key) => {\n if (value === undefined) {\n delete res[key];\n } else {\n res[key] = value;\n }\n });\n if (isEqual_(data, res)) {\n return Promise.resolve();\n }\n return yt.v3.set({path}, res);\n };\n\n return yt.v3.exists({path}).then((isExists: boolean) => {\n if (isExists) {\n return ytApiV3Id.get(YTApiId.updateAttributes, {path}).then(modifyGuarantee);\n }\n return modifyGuarantee({});\n });\n}\n\nexport function makeBatchSubRequest<T extends BatchSubRequest>(\n command: T['command'],\n parameters: T['parameters'],\n setup?: T['setup'],\n) {\n return {\n command,\n parameters,\n setup,\n } as BatchSubRequest;\n}\n\nexport function prepareAttributes(attributes: readonly string[]): GetParams['attributes'] {\n const [keys, paths] = partition_(attributes, (k) => -1 === k.indexOf('/'));\n\n if (!paths.length) {\n return keys;\n }\n\n return {keys, paths};\n}\n","const SvgBarsDescendingAlignLeft = props => <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 16 16\" {...props}><path fill=\"currentColor\" fillRule=\"evenodd\" d=\"M1 3.25a.75.75 0 0 1 .75-.75h12.5a.75.75 0 0 1 0 1.5H1.75A.75.75 0 0 1 1 3.25M1 8a.75.75 0 0 1 .75-.75h8.5a.75.75 0 0 1 0 1.5h-8.5A.75.75 0 0 1 1 8m.75 4a.75.75 0 0 0 0 1.5h2.5a.75.75 0 0 0 0-1.5z\" clipRule=\"evenodd\" /></svg>;\nexport default SvgBarsDescendingAlignLeft;"],"names":["connect","openAttributesModal","_ref","title","_ref$getPathProps","getPathProps","path","exactPath","attribute","attributes","_ref$withTooltip","withTooltip","_ref$tooltipProps","tooltipProps","placement","content","rest","_objectWithoutProperties","_excluded","_jsx","AttributesButton","_objectSpread","onClick","pathProps","block","cn","PageCounter","pageIndex","pageCount","className","undefined","_jsxs","children","React","getNameTitle","column","shortTitle","t","capitalize_","nameContent","titleContent","ColumnHeader","props","align","order","onSort","multisortIndex","loading","_useColumnInfo","options","allowUnordered","withUndefined","allowedOrderTypes","value","columnData","find","_ref2","rumLogError","message","additional","subColumn","useColumnInfo","changeHandler","e","nextOrder","calculateNextOrderValue","nextSortOrderValue","currentOrder","multisort","ctrlKey","metaKey","sortable","Boolean","SortIcon","hidden","Text","variant","color","SubColumnSelector","Loader","visible","_ref3","DropdownMenu","items","map","x","text","action","renderSwitcher","_ref4","Button","view","size","Icon","data","barsDescendingSvg","prepareRoleListValue","roles","otherMembers","arguments","length","current","toAdd","toRemove","unrecognized","forEach_","item","isUnrecognized","isRequested","isApproved","isDepriving","push","currentArr","prepareItemOfCurrent","otherArr","frozen","newItems","concat","itemClassName","role","extraProps","roleListValueToSubjectList","_toConsumableArray","manyListDataItemToSubjectList","manyListDataItem","map_","filter_","removed","type","extractChangedSubjects","added","filter","_ref5","_ref6","user","group","_ref7","_ref8","DialogError","Block","makeErrorFields","errors","compact_","error","index","name","extras","FORM_ERROR","makeFormSubmitError","validationErrors","_defineProperty","importYTDFDialog","Component","YTDFDialog","withLazyLoading","_asyncToGenerator","_regeneratorRuntime","_callee","_context","prev","next","t0","sent","YTDialog","abrupt","stop","_React$useState","_React$useState2","_slicedToArray","mounted","setMounted","_callee2","_context2","RoleListControl","EditableList","_callee3","_context3","TabFieldVertical","_callee4","_context4","reShortName","makeRegexpFromSettings","uiSettings","reShortNameFromAddress","reTabletNodeShortName","reShortNameFromTabletNodeAddress","calcShortNameByRegExp","address","asTabletNode","re","_res$groups","res","exec","groups","shortname","suffix","join","Host","_ref$address","prefix","copyBtnClassName","useText","host","cluster","useSelector","getCluster","Tooltip","Link","url","routed","ClipboardButton","compressionExtras","labels","subItemsMap","zlib_","genComperessionLevelItems","zstd_","brotli_","lzma_","bzip2_","from","to","i","String","compressionCodecValueFromString","SELECT_EMPTY_VALUE","k","startsWith","substr","compressionCodecValueToString","isEqual_","StorageOptions","REPLICATION","ERASURE","ERASURE_CODECS","storageOptionFromErasureCodec","codec","normalizeErasureCodec","erasureCodec","erasureCodecFromStorageOption","InMemoryMode","NONE","COMPRESSED","UNCOMPRESSED","makeUiMarker","ui_marker","prepareSetCommandForBatch","additionalParameters","command","parameters","force","input","CypressNodeTypes","REPLICATED_TABLE","REPLICATION_LOG_TABLE","CHAOS_REPLICATED_TABLE","MAP_NODE","TABLE","createParentsBeforeSet","_x","_x2","_createParentsBeforeSet","apply","nodePath","attributesToSet","parentPaths","toCreate","_iterator","_step","_loop","Promise","resolve","attr","parents","split","key","slice","Object","keys","sort","_createForOfIteratorHelper","yt","exists","then","isCreated","set","s","n","done","delegateYield","t1","f","finish","updateNodeAttributes","changes","isEmpty_","requests","oneLevelDiffsParents","oneLevelDiffs","attrPath","_attrPath$splice","splice","last","parentPath","all","wrapBatchPromise","ytApiV3Id","executeBatch","YTApiId","promises","diff","p","updateAttributes","_x3","_x4","oneLevelDiff","modifyGuarantee","cloneDeep_","isExists","get","makeBatchSubRequest","setup","prepareAttributes","_partition_","partition_","indexOf","_partition_2","paths","xmlns","fill","viewBox","fillRule","d","clipRule"],"sourceRoot":""}
1
+ {"version":3,"file":"js/8460.2b27e2b7.chunk.js","mappings":"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","sources":["webpack://@ytsaurus/ui/./src/ui/components/AttributesButton/ClickableAttributesButton.tsx","webpack://@ytsaurus/ui/./src/ui/components/PageCounter/PageCounter.tsx","webpack://@ytsaurus/ui/./src/ui/components/ColumnHeader/ColumnHeader.tsx","webpack://@ytsaurus/ui/./src/ui/components/Dialog/controls/RoleListControl/utils.ts","webpack://@ytsaurus/ui/./src/ui/components/Dialog/DialogError.tsx","webpack://@ytsaurus/ui/./src/ui/components/Dialog/index.tsx","webpack://@ytsaurus/ui/./src/ui/hocs/withDelayedMount.tsx","webpack://@ytsaurus/ui/./src/ui/containers/Host/Host.tsx","webpack://@ytsaurus/ui/./src/ui/utils/cypress-attributes.ts","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/icons/svgs/bars-descending-align-left.svg"],"sourcesContent":["import React from 'react';\nimport {ConnectedProps, connect} from 'react-redux';\n\nimport AttributesButton, {AttributesButtonProps} from './AttributesButton';\n\nimport {openAttributesModal} from '../../store/actions/modals/attributes-modal';\nimport {ButtonProps} from '../Button/Button';\n\ninterface Props extends Omit<AttributesButtonProps, 'onClick' | 'title'> {\n title: React.ReactNode;\n\n // The function is called inside click handler, and overrides path and exactPath\n getPathProps?: () => Pick<Partial<Props>, 'path' | 'exactPath'>;\n path?: string;\n exactPath?: string;\n\n attribute?: string;\n attributes?: object;\n\n size?: ButtonProps['size'];\n view?: ButtonProps['view'];\n}\n\nfunction ClickableAttributesButton({\n title,\n getPathProps = () => {\n return {};\n },\n path,\n exactPath,\n attribute,\n attributes,\n openAttributesModal,\n withTooltip = true,\n tooltipProps = {placement: 'bottom-end', content: 'Show attributes'},\n ...rest\n}: Props & ConnectedProps<typeof connector>) {\n return (\n <AttributesButton\n {...rest}\n tooltipProps={tooltipProps}\n withTooltip={withTooltip}\n onClick={() => {\n const pathProps = {\n path,\n exactPath,\n ...getPathProps(),\n };\n\n openAttributesModal({\n title,\n ...pathProps,\n attribute,\n attributes,\n });\n }}\n />\n );\n}\n\nconst connector = connect(null, {openAttributesModal});\n\nexport default connector(ClickableAttributesButton);\n","import React from 'react';\nimport cn from 'bem-cn-lite';\n\nconst block = cn('yt-page-counter');\n\nexport interface PageCounterProps {\n className?: string;\n pageIndex?: number;\n pageCount?: number;\n}\n\nfunction PageCounter({pageIndex, pageCount, className}: PageCounterProps) {\n if (pageIndex === undefined || pageCount === undefined) {\n return null;\n }\n\n return pageCount! > 1 ? (\n <span className={block(null, className)}>\n Page: {(pageIndex || 0) + 1} / {pageCount}\n </span>\n ) : null;\n}\n\nexport default React.memo(PageCounter);\n","import React from 'react';\nimport cn from 'bem-cn-lite';\nimport capitalize_ from 'lodash/capitalize';\n\nimport barsDescendingSvg from '@gravity-ui/icons/svgs/bars-descending-align-left.svg';\nimport {Button, DropdownMenu, Icon, Text} from '@gravity-ui/uikit';\n\nimport SortIcon from '../../components/SortIcon/SortIcon';\n\nimport {OrderType, calculateNextOrderValue, nextSortOrderValue} from '../../utils/sort-helpers';\nimport PageCounter, {PageCounterProps} from '../../components/PageCounter/PageCounter';\nimport Loader from '../../components/Loader/Loader';\nimport {rumLogError} from '../../rum/rum-counter';\n\nimport './ColumnHeader.scss';\n\nconst block = cn('column-header');\n\nexport type ColumnInfo<T> = {\n column: T;\n title?: string;\n shortTitle?: string;\n /**\n * Ignored when allowedOrderTypes is defined\n */\n allowUnordered?: boolean;\n /**\n * Ignored when allowedOrderTypes is defined\n */\n withUndefined?: boolean;\n allowedOrderTypes?: Array<OrderType>;\n};\n\nexport type HasSortColumn<T> =\n | (ColumnInfo<T> & {options?: undefined})\n | ({\n title: string;\n shortTitle?: string;\n column: T;\n options: Array<ColumnInfo<T>>;\n } & Partial<Record<keyof Omit<ColumnInfo<T>, 'column' | 'title' | 'shortTitle'>, undefined>>);\n\nexport type ColumnHeaderProps<T extends string = string> = PageCounterProps &\n HasSortColumn<T> & {\n className?: string;\n order?: OrderType;\n multisortIndex?: number;\n onSort?: (\n column: T,\n nextOrder: OrderType,\n options: {currentOrder?: OrderType; multisort?: boolean},\n ) => void;\n\n loading?: boolean;\n\n align?: 'center' | 'left' | 'right';\n };\n\ntype NameTitleContent = {\n nameContent: string;\n titleContent: string;\n};\n\nfunction getNameTitle<T extends string>({\n column,\n title,\n shortTitle,\n}: Pick<ColumnInfo<T>, 'column' | 'title' | 'shortTitle'>): NameTitleContent {\n const t = title ?? capitalize_(column);\n const nameContent = !shortTitle ? t : shortTitle;\n return {nameContent, titleContent: t};\n}\n\nfunction useColumnInfo<T extends string = string>(\n props: ColumnHeaderProps<T>,\n): ColumnInfo<T> & NameTitleContent & {subColumn?: NameTitleContent} {\n if (props.options === undefined) {\n const {column, allowUnordered, withUndefined, title, shortTitle, allowedOrderTypes} = props;\n return {\n column,\n allowUnordered,\n withUndefined,\n allowedOrderTypes,\n ...getNameTitle({column, title, shortTitle}),\n };\n }\n\n const {column: value, options, title, shortTitle} = props;\n const columnData = options.find(({column}) => value === column)!;\n if (!columnData) {\n rumLogError({\n message: 'Unexpected behavior: missing value in ColumnHeader.props.options',\n additional: props,\n });\n }\n return {\n subColumn: getNameTitle({...columnData}),\n ...columnData,\n ...getNameTitle({column: '', title, shortTitle}),\n };\n}\n\nexport default function ColumnHeader<T extends string = string>(props: ColumnHeaderProps<T>) {\n const {className, align, order, onSort, multisortIndex, loading, pageIndex, pageCount} = props;\n const {\n column,\n allowUnordered,\n withUndefined,\n nameContent,\n titleContent,\n allowedOrderTypes,\n subColumn,\n } = useColumnInfo(props);\n\n const changeHandler = React.useCallback(\n (e: React.MouseEvent) => {\n const nextOrder = allowedOrderTypes\n ? calculateNextOrderValue(order, allowedOrderTypes)\n : nextSortOrderValue(order, allowUnordered, withUndefined);\n onSort?.(column, nextOrder, {\n currentOrder: order,\n multisort: e.ctrlKey || e.metaKey,\n });\n },\n [column, order, onSort, allowUnordered, allowedOrderTypes, withUndefined],\n );\n\n const sortable = Boolean(onSort);\n\n return (\n <div className={block(null, className)}>\n <div\n className={block('label-icon', {sortable, align})}\n onClick={sortable ? changeHandler : undefined}\n >\n <span className={block('label')} title={titleContent}>\n {nameContent}\n </span>\n <span className={block('icon')}>\n <SortIcon hidden={!sortable} order={order} />\n </span>\n {multisortIndex !== undefined && (\n <span className={block('multisort')}>\n &nbsp;<sup>{multisortIndex}</sup>\n </span>\n )}\n {Boolean(order) && Boolean(subColumn) && (\n <Text\n className={block('label', {'sub-column': true})}\n variant=\"caption-2\"\n title={subColumn?.titleContent}\n color=\"dark-secondary\"\n >\n {subColumn?.nameContent}\n </Text>\n )}\n </div>\n <SubColumnSelector options={props.options} order={order} onSort={onSort} />\n {loading !== undefined && (\n <div className={block('loader')}>\n <Loader visible={loading} />\n </div>\n )}\n {Boolean(pageCount) && (\n <PageCounter\n className={block('page-counter')}\n pageIndex={pageIndex}\n pageCount={pageCount}\n />\n )}\n </div>\n );\n}\n\nfunction SubColumnSelector<T extends string>({\n order,\n options,\n onSort,\n}: Pick<ColumnHeaderProps<T>, 'onSort'> & {\n order?: ColumnHeaderProps<T>['order'];\n options?: Array<ColumnInfo<T>>;\n}) {\n return !options ? null : (\n <DropdownMenu\n items={options.map((x) => {\n const {titleContent} = getNameTitle(x);\n return {\n text: titleContent,\n action() {\n if (!onSort) {\n return;\n }\n const {column, allowUnordered, withUndefined, allowedOrderTypes} = x;\n const nextOrder = allowedOrderTypes\n ? calculateNextOrderValue(order, allowedOrderTypes)\n : nextSortOrderValue(order, allowUnordered, withUndefined);\n onSort(column, nextOrder, {\n currentOrder: order,\n });\n },\n };\n })}\n renderSwitcher={({onClick}) => (\n <Button onClick={onClick} view=\"flat\" size=\"xs\">\n <Icon size={12} data={barsDescendingSvg} />\n </Button>\n )}\n />\n );\n}\n","import cn from 'bem-cn-lite';\n\nimport filter_ from 'lodash/filter';\nimport forEach_ from 'lodash/forEach';\nimport map_ from 'lodash/map';\n\nimport type {EditableManyListsItemType} from '../../../../components/Dialog';\nimport type {ResponsibleType, RoleConverted} from '../../../../utils/acl/acl-types';\nimport type {PreparedRole} from '../../../../utils/acl';\nimport {RoleListControlProps} from './RoleListControl';\n\nexport const block = cn('role-list-control');\n\nexport function prepareRoleListValue(roles: Array<PreparedRole>, otherMembers: Array<string> = []) {\n const current: typeof roles = [];\n const toAdd: typeof roles = [];\n const toRemove: typeof roles = [];\n const unrecognized: typeof roles = [];\n forEach_(roles, (item) => {\n const {isUnrecognized, isRequested, isApproved, isDepriving} = item;\n if (isUnrecognized) {\n unrecognized.push(item);\n } else if (isDepriving) {\n toRemove.push(item);\n } else if (isApproved || isRequested) {\n toAdd.push(item);\n } else {\n current.push(item);\n }\n });\n\n const currentArr = current.map((item) => prepareItemOfCurrent(item));\n const otherArr = otherMembers.map((item) => ({\n title: item,\n data: {},\n frozen: true,\n }));\n\n return {\n newItems: [],\n current: {title: 'Current', data: currentArr.concat(otherArr)},\n toAdd: {\n title: 'Will be added',\n itemClassName: block('item-to-add'),\n data: toAdd.map((item) => prepareItemOfCurrent(item, {frozen: true})),\n },\n toRemove: {\n title: 'Will be removed',\n itemClassName: block('item-to-remove'),\n data: toRemove.map((item) => prepareItemOfCurrent(item, {frozen: true})),\n },\n unrecognized: {\n title: 'Unrecognized',\n itemClassName: block('item-unrecognized'),\n data: unrecognized.map((item) => prepareItemOfCurrent(item, {frozen: true})),\n },\n };\n}\n\nfunction prepareItemOfCurrent(role: PreparedRole, extraProps: any = {}) {\n return {\n title: role.text || role.value,\n data: role,\n ...extraProps,\n };\n}\n\nexport function roleListValueToSubjectList(\n value: RoleListControlProps['value'],\n): Array<ResponsibleType> {\n const {current, newItems, toAdd} = value;\n return [\n ...newItems,\n ...manyListDataItemToSubjectList(current),\n ...manyListDataItemToSubjectList(toAdd),\n ];\n}\n\nfunction manyListDataItemToSubjectList(\n manyListDataItem: EditableManyListsItemType<RoleConverted>,\n): Array<ResponsibleType> {\n const {data} = manyListDataItem || {};\n return map_(\n filter_(data, ({removed}) => !removed),\n ({data}) => {\n const {type, value} = data || {};\n return {type: type!, value: value!};\n },\n );\n}\n\nexport function extractChangedSubjects(value: {\n current: EditableManyListsItemType<RoleConverted>;\n newItems: Array<ResponsibleType>;\n}) {\n const {current, newItems} = value;\n const added = newItems || [];\n const removed = ((current && current.data) || []).filter(({removed}) => removed);\n return {\n added: added.map(({type, value}) => {\n return type === 'users' ? {user: value} : {group: value};\n }),\n removed: removed.map(({data}) => {\n const {value, type} = data || {};\n return type === 'users' ? {user: value} : {group: value};\n }),\n };\n}\n","import React from 'react';\nimport cn from 'bem-cn-lite';\n\nimport type {FORM_ERROR as FormErrorType} from './index';\n\nimport {FIX_MY_TYPE, YTError} from '../../types';\nimport Block from '../../components/Block/Block';\n\nimport compact_ from 'lodash/compact';\nimport map_ from 'lodash/map';\n\nconst block = cn('yt-dialog-error');\n\nexport function DialogError(props: FIX_MY_TYPE) {\n return <Block {...props} className={block()} />;\n}\n\nexport function makeErrorFields(errors: Array<YTError | Error | undefined>) {\n return compact_(\n map_(errors, (error, index) => {\n return error\n ? {\n name: `error_${index}`,\n type: 'block' as const,\n extras: {\n children: <DialogError error={error} />,\n },\n }\n : undefined;\n }),\n );\n}\n\nconst FORM_ERROR: typeof FormErrorType = 'FINAL_FORM/form-error';\n\nexport function makeFormSubmitError(error: YTError) {\n return {\n validationErrors: {\n [FORM_ERROR]: <DialogError error={error} />,\n },\n };\n}\n","import React from 'react';\nimport withLazyLoading from '../../hocs/withLazyLoading';\nimport {withDelayedMount} from '../../hocs/withDelayedMount';\n\nimport type {\n registerDialogControl as RegisterDialogControlFn,\n registerDialogTabControl as RegisterDialogTabControlFn,\n YTDialogType,\n} from './Dialog';\n\nexport type * from './Dialog';\nexport * from './DialogError';\nexport * from './controls/RoleListControl/utils';\n\nexport function importYTDFDialog() {\n return import(/* webpackChunkName: \"yt-df-dialog\" */ './Dialog');\n}\n\nexport const YTDFDialog = withDelayedMount(\n withLazyLoading(\n React.lazy(async () => {\n return {default: (await importYTDFDialog()).YTDialog};\n }),\n '',\n ),\n) as YTDialogType;\n\nexport function useControlRegistration(\n fn: (params: {\n registerDialogControl: typeof RegisterDialogControlFn;\n registerDialogTabControl: typeof RegisterDialogTabControlFn;\n }) => void,\n) {\n importYTDFDialog().then(({registerDialogControl, registerDialogTabControl}) => {\n fn({registerDialogControl, registerDialogTabControl});\n });\n}\n\nexport type {RoleListControlProps} from './controls/RoleListControl/RoleListControl';\nexport const RoleListControl = withLazyLoading(\n React.lazy(async () => {\n return {default: (await importYTDFDialog()).RoleListControl};\n }),\n '',\n);\n\nexport const EditableList = withLazyLoading(\n React.lazy(async () => {\n return {default: (await importYTDFDialog()).EditableList};\n }),\n '',\n);\n\nexport const TabFieldVertical = withLazyLoading(\n React.lazy(async () => {\n return {default: (await importYTDFDialog()).TabFieldVertical};\n }),\n '',\n);\n","import React from 'react';\n\n/**\n * The hoc allows to delay mounting until `props.visible == true`.\n * The hoc might be useful to wrap components wrapped by React.lazy\n * @param Component\n * @returns\n */\nexport function withDelayedMount<P extends {visible?: boolean}>(Component: React.ComponentType<P>) {\n return function MountOnFirstVisible(props: P) {\n const [mounted, setMounted] = React.useState(false);\n React.useEffect(() => {\n if (!mounted && props.visible) {\n setMounted(true);\n }\n }, [props.visible, mounted]);\n return !mounted ? null : <Component {...props} />;\n };\n}\n","import React from 'react';\nimport {useSelector} from 'react-redux';\nimport cn from 'bem-cn-lite';\n\nimport {getCluster} from '../../store/selectors/global';\nimport Link from '../../components/Link/Link';\nimport ClipboardButton from '../../components/ClipboardButton/ClipboardButton';\nimport {Tooltip} from '../../components/Tooltip/Tooltip';\nimport {uiSettings} from '../../config/ui-settings';\nimport {makeRegexpFromSettings} from '../../../shared/utils';\n\nimport './Host.scss';\n\nconst reShortName = makeRegexpFromSettings(uiSettings.reShortNameFromAddress);\nconst reTabletNodeShortName = makeRegexpFromSettings(uiSettings.reShortNameFromTabletNodeAddress);\n\nexport function calcShortNameByRegExp(address: string, asTabletNode?: boolean) {\n const re = asTabletNode ? reTabletNodeShortName : reShortName;\n if (re) {\n const res = re?.exec(address);\n if (res?.groups?.shortname) {\n return [res.groups.shortname, res.groups.suffix].filter(Boolean).join('');\n }\n }\n return undefined;\n}\n\nconst block = cn('yt-host');\n\ninterface Props {\n address: string;\n className?: string;\n copyBtnClassName?: string;\n onClick?: () => void;\n useText?: boolean;\n prefix?: React.ReactNode;\n asTabletNode?: boolean;\n}\n\nexport function Host({\n address = '',\n prefix,\n className,\n copyBtnClassName,\n onClick,\n useText,\n asTabletNode,\n}: Props) {\n const host = React.useMemo(() => {\n return calcShortNameByRegExp(address, asTabletNode) || address;\n }, [address, asTabletNode]);\n\n const cluster = useSelector(getCluster);\n\n return (\n <span\n className={block(\n {hidden: !host},\n ['elements-monospace', className].filter(Boolean).join(' '),\n )}\n onClick={onClick}\n >\n {prefix}\n <Tooltip className={block('tooltip')} content={address}>\n {useText ? (\n host\n ) : (\n <Link url={`/${cluster}/components/nodes/${address}`} routed>\n {host}\n </Link>\n )}\n </Tooltip>\n <span className={block('copy-btn', copyBtnClassName)}>\n <ClipboardButton view={'flat-secondary'} text={address} />\n </span>\n </span>\n );\n}\n","import cloneDeep_ from 'lodash/cloneDeep';\nimport forEach_ from 'lodash/forEach';\nimport isEqual_ from 'lodash/isEqual';\nimport isEmpty_ from 'lodash/isEmpty';\nimport map_ from 'lodash/map';\nimport partition_ from 'lodash/partition';\n\n// @ts-ignore\nimport yt from '@ytsaurus/javascript-wrapper/lib/yt';\n\nimport {SELECT_EMPTY_VALUE} from '../constants/navigation/modals/create-table';\nimport {SelectWithSubItemsProps} from '../components/Dialog/controls/SelectWithSubItems/SelectWithSubItems';\nimport {wrapBatchPromise} from './utils';\nimport {YTApiId, ytApiV3Id} from '../rum/rum-wrap-api';\nimport {BatchSubRequest, GetParams} from '../../shared/yt-types';\nimport {ValueOf} from '../../@types/types';\n\nexport interface WithAttrs<T> {\n $attributes: T;\n}\n\nexport const compressionExtras: Pick<SelectWithSubItemsProps, 'labels' | 'items' | 'subItemsMap'> =\n {\n labels: ['codec:', 'level:'],\n items: [\n ...[\n 'none',\n 'snappy',\n 'zlib_',\n 'lz4',\n 'lz4_high_compression',\n 'quick_lz',\n 'zstd_',\n 'brotli_',\n 'lzma_',\n 'bzip2_',\n ].map((value) => ({value, content: value})),\n ],\n subItemsMap: {\n zlib_: genComperessionLevelItems(1, 9),\n zstd_: genComperessionLevelItems(1, 21),\n brotli_: genComperessionLevelItems(1, 11),\n lzma_: genComperessionLevelItems(0, 9),\n bzip2_: genComperessionLevelItems(1, 9),\n },\n };\n\nfunction genComperessionLevelItems(from: number, to: number) {\n const res = [];\n for (let i = from; i <= to; ++i) {\n res.push({value: String(i), content: String(i)});\n }\n return res;\n}\n\nexport function compressionCodecValueFromString(value: string) {\n if (!value) {\n return [SELECT_EMPTY_VALUE];\n }\n\n for (const k in compressionExtras.subItemsMap) {\n if (value.startsWith(k)) {\n return [k, value.substr(k.length)];\n }\n }\n return [value];\n}\n\nexport function compressionCodecValueToString(value: Array<string>) {\n if (isEqual_(value, [SELECT_EMPTY_VALUE])) {\n return '';\n }\n return value?.join('');\n}\n\ntype StorageOptionsType = 'replication' | 'erasure';\n\nexport const StorageOptions = {\n REPLICATION: 'replication' as StorageOptionsType,\n ERASURE: 'erasure' as StorageOptionsType,\n};\n\nexport const ERASURE_CODECS = [\n {value: 'lrc_12_2_2', title: 'lrc_12_2_2 (recommended)'},\n {value: 'reed_solomon_6_3', title: 'reed_solomon_6_3'},\n];\n\nexport function storageOptionFromErasureCodec(codec: string) {\n return !codec || codec === 'none' ? StorageOptions.REPLICATION : StorageOptions.ERASURE;\n}\n\nexport function normalizeErasureCodec(erasureCodec: string) {\n return !erasureCodec || erasureCodec === 'none' ? ERASURE_CODECS[0].value : erasureCodec;\n}\n\nexport function erasureCodecFromStorageOption(type?: StorageOptionsType, erasureCodec?: string) {\n if (type === StorageOptions.REPLICATION) {\n return 'none';\n }\n return erasureCodec || ERASURE_CODECS[0].value;\n}\n\nexport type InMemoryModeType = ValueOf<typeof InMemoryMode>;\n\nexport const InMemoryMode = {\n NONE: 'none',\n COMPRESSED: 'compressed',\n UNCOMPRESSED: 'uncompressed',\n} as const;\n\nexport function makeUiMarker(ui_marker: string) {\n return {ui_marker};\n}\n\nexport function prepareSetCommandForBatch(path: string, value: any, additionalParameters?: object) {\n if (value === undefined || value === null) {\n return {\n command: 'remove' as const,\n parameters: {\n path,\n ...additionalParameters,\n },\n };\n }\n\n return {\n command: 'set' as const,\n parameters: {\n path,\n ...additionalParameters,\n force: true,\n },\n input: value,\n };\n}\n\nexport const CypressNodeTypes = {\n REPLICATED_TABLE: 'replicated_table',\n REPLICATION_LOG_TABLE: 'replication_log_table',\n CHAOS_REPLICATED_TABLE: 'chaos_replicated_table',\n MAP_NODE: 'map_node',\n TABLE: 'table',\n // TODO: add more types\n};\n\nexport async function createParentsBeforeSet(nodePath: string, attributesToSet: Array<string>) {\n if (!attributesToSet.length) {\n return Promise.resolve();\n }\n\n const parentPaths: Record<string, boolean> = {};\n forEach_(attributesToSet, (attr) => {\n const parents = attr.split('/');\n for (let i = 1; i < parents.length; ++i) {\n const key = parents.slice(0, i).join('/');\n if (key) {\n parentPaths[key] = true;\n }\n }\n });\n const toCreate = Object.keys(parentPaths).sort();\n\n for (const attr of toCreate) {\n const path = nodePath + '/@' + attr;\n await yt.v3.exists({path}).then((isCreated: boolean) => {\n if (!isCreated) {\n return yt.v3.set({path}, {});\n }\n });\n }\n}\n\nexport function updateNodeAttributes(\n nodePath: string,\n changes: Array<{attr: string; value: any}>,\n): Promise<unknown> {\n if (isEmpty_(changes)) {\n return Promise.resolve();\n }\n\n const requests: Array<BatchSubRequest> = [];\n\n const oneLevelDiffsParents: Array<string> = [];\n const oneLevelDiffs: Record<string, Record<string, unknown>> = {};\n forEach_(changes, ({attr, value}) => {\n const attrPath = attr.split('/');\n if (attrPath.length === 1) {\n const path = nodePath + '/@' + attrPath.join('/');\n requests.push(prepareSetCommandForBatch(path, value));\n } else {\n const [last] = attrPath.splice(attrPath.length - 1, 1);\n const parentPath = attrPath.join('/');\n oneLevelDiffsParents.push(parentPath);\n const path = nodePath + '/@' + parentPath;\n const diff = (oneLevelDiffs[path] = oneLevelDiffs[path] || {});\n diff[last] = value;\n }\n });\n\n return Promise.all([\n ...(requests.length\n ? [\n wrapBatchPromise(\n ytApiV3Id.executeBatch(YTApiId.updateNodeAttributes, {requests}),\n 'Failed to update node attributes',\n ),\n ]\n : []),\n createParentsBeforeSet(nodePath, oneLevelDiffsParents).then(() => {\n if (isEmpty_(oneLevelDiffs)) {\n return Promise.resolve([]);\n }\n\n const promises: Array<Promise<unknown>> = map_(oneLevelDiffs, async (diff, path) => {\n const p = updateAttributes(path, diff);\n await p;\n return p;\n });\n\n return Promise.all(promises);\n }),\n ]);\n}\n\nfunction updateAttributes(path: string, oneLevelDiff: Record<'string', unknown>) {\n if (isEmpty_(oneLevelDiff)) {\n return Promise.resolve();\n }\n\n const modifyGuarantee = (data: any = {}) => {\n const res = cloneDeep_(data);\n forEach_(oneLevelDiff, (value, key) => {\n if (value === undefined) {\n delete res[key];\n } else {\n res[key] = value;\n }\n });\n if (isEqual_(data, res)) {\n return Promise.resolve();\n }\n return yt.v3.set({path}, res);\n };\n\n return yt.v3.exists({path}).then((isExists: boolean) => {\n if (isExists) {\n return ytApiV3Id.get(YTApiId.updateAttributes, {path}).then(modifyGuarantee);\n }\n return modifyGuarantee({});\n });\n}\n\nexport function makeBatchSubRequest<T extends BatchSubRequest>(\n command: T['command'],\n parameters: T['parameters'],\n setup?: T['setup'],\n) {\n return {\n command,\n parameters,\n setup,\n } as BatchSubRequest;\n}\n\nexport function prepareAttributes(attributes: readonly string[]): GetParams['attributes'] {\n const [keys, paths] = partition_(attributes, (k) => -1 === k.indexOf('/'));\n\n if (!paths.length) {\n return keys;\n }\n\n return {keys, paths};\n}\n","const SvgBarsDescendingAlignLeft = props => <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 16 16\" {...props}><path fill=\"currentColor\" fillRule=\"evenodd\" d=\"M1 3.25a.75.75 0 0 1 .75-.75h12.5a.75.75 0 0 1 0 1.5H1.75A.75.75 0 0 1 1 3.25M1 8a.75.75 0 0 1 .75-.75h8.5a.75.75 0 0 1 0 1.5h-8.5A.75.75 0 0 1 1 8m.75 4a.75.75 0 0 0 0 1.5h2.5a.75.75 0 0 0 0-1.5z\" clipRule=\"evenodd\" /></svg>;\nexport default SvgBarsDescendingAlignLeft;"],"names":["connect","openAttributesModal","_ref","title","_ref$getPathProps","getPathProps","path","exactPath","attribute","attributes","_ref$withTooltip","withTooltip","_ref$tooltipProps","tooltipProps","placement","content","rest","_objectWithoutProperties","_excluded","_jsx","AttributesButton","_objectSpread","onClick","pathProps","block","cn","PageCounter","pageIndex","pageCount","className","undefined","_jsxs","children","React","getNameTitle","column","shortTitle","t","capitalize_","nameContent","titleContent","ColumnHeader","props","align","order","onSort","multisortIndex","loading","_useColumnInfo","options","allowUnordered","withUndefined","allowedOrderTypes","value","columnData","find","_ref2","rumLogError","message","additional","subColumn","useColumnInfo","changeHandler","e","nextOrder","calculateNextOrderValue","nextSortOrderValue","currentOrder","multisort","ctrlKey","metaKey","sortable","Boolean","SortIcon","hidden","Text","variant","color","SubColumnSelector","Loader","visible","_ref3","DropdownMenu","items","map","x","text","action","renderSwitcher","_ref4","Button","view","size","Icon","data","barsDescendingSvg","prepareRoleListValue","roles","otherMembers","arguments","length","current","toAdd","toRemove","unrecognized","forEach_","item","isUnrecognized","isRequested","isApproved","isDepriving","push","currentArr","prepareItemOfCurrent","otherArr","frozen","newItems","concat","itemClassName","role","extraProps","roleListValueToSubjectList","_toConsumableArray","manyListDataItemToSubjectList","manyListDataItem","map_","filter_","removed","type","extractChangedSubjects","added","filter","_ref5","_ref6","user","group","_ref7","_ref8","DialogError","Block","makeErrorFields","errors","compact_","error","index","name","extras","FORM_ERROR","makeFormSubmitError","validationErrors","_defineProperty","importYTDFDialog","Component","YTDFDialog","withLazyLoading","_asyncToGenerator","_regeneratorRuntime","_callee","_context","prev","next","t0","sent","YTDialog","abrupt","stop","_React$useState","_React$useState2","_slicedToArray","mounted","setMounted","_callee2","_context2","RoleListControl","EditableList","_callee3","_context3","TabFieldVertical","_callee4","_context4","reShortName","makeRegexpFromSettings","uiSettings","reShortNameFromAddress","reTabletNodeShortName","reShortNameFromTabletNodeAddress","calcShortNameByRegExp","address","asTabletNode","re","_res$groups","res","exec","groups","shortname","suffix","join","Host","_ref$address","prefix","copyBtnClassName","useText","host","cluster","useSelector","getCluster","Tooltip","Link","url","routed","ClipboardButton","compressionExtras","labels","subItemsMap","zlib_","genComperessionLevelItems","zstd_","brotli_","lzma_","bzip2_","from","to","i","String","compressionCodecValueFromString","SELECT_EMPTY_VALUE","k","startsWith","substr","compressionCodecValueToString","isEqual_","StorageOptions","REPLICATION","ERASURE","ERASURE_CODECS","storageOptionFromErasureCodec","codec","normalizeErasureCodec","erasureCodec","erasureCodecFromStorageOption","InMemoryMode","NONE","COMPRESSED","UNCOMPRESSED","makeUiMarker","ui_marker","prepareSetCommandForBatch","additionalParameters","command","parameters","force","input","CypressNodeTypes","REPLICATED_TABLE","REPLICATION_LOG_TABLE","CHAOS_REPLICATED_TABLE","MAP_NODE","TABLE","createParentsBeforeSet","_x","_x2","_createParentsBeforeSet","apply","nodePath","attributesToSet","parentPaths","toCreate","_iterator","_step","_loop","Promise","resolve","attr","parents","split","key","slice","Object","keys","sort","_createForOfIteratorHelper","yt","exists","then","isCreated","set","s","n","done","delegateYield","t1","f","finish","updateNodeAttributes","changes","isEmpty_","requests","oneLevelDiffsParents","oneLevelDiffs","attrPath","_attrPath$splice","splice","last","parentPath","all","wrapBatchPromise","ytApiV3Id","executeBatch","YTApiId","promises","diff","p","updateAttributes","_x3","_x4","oneLevelDiff","modifyGuarantee","cloneDeep_","isExists","get","makeBatchSubRequest","setup","prepareAttributes","_partition_","partition_","indexOf","_partition_2","paths","xmlns","fill","viewBox","fillRule","d","clipRule"],"sourceRoot":""}
@@ -1,2 +1,2 @@
1
- "use strict";(self.webpackChunk_ytsaurus_ui=self.webpackChunk_ytsaurus_ui||[]).push([[8778],{97536:(e,t,n)=>{n.d(t,{A:()=>u});var r=n(40319),o=n(18801),a=(n(77810),n(51806)),i=n(60620),s=n(64922),l=["view","size"];function u(e){var t=e.view,n=void 0===t?"flat-secondary":t,u=e.size,c=void 0===u?"m":u,d=(0,o.A)(e,l);return(0,s.jsx)(a.A,(0,r.A)((0,r.A)({view:n,size:c},d),{},{children:(0,s.jsx)(i.A,{awesome:"at"})}))}},14880:(e,t,n)=>{n.d(t,{A:()=>c});var r=n(40319),o=n(18801),a=(n(77810),n(15647)),i=n(97536),s=n(57614),l=n(64922),u=["title","getPathProps","path","exactPath","attribute","attributes","openAttributesModal","withTooltip","tooltipProps"];const c=(0,a.Ng)(null,{openAttributesModal:s.V6})((function(e){var t=e.title,n=e.getPathProps,a=void 0===n?function(){return{}}:n,s=e.path,c=e.exactPath,d=e.attribute,p=e.attributes,h=e.openAttributesModal,m=e.withTooltip,f=void 0===m||m,v=e.tooltipProps,A=void 0===v?{placement:"bottom-end",content:"Show attributes"}:v,w=(0,o.A)(e,u);return(0,l.jsx)(i.A,(0,r.A)((0,r.A)({},w),{},{tooltipProps:A,withTooltip:f,onClick:function(){var e=(0,r.A)({path:s,exactPath:c},a());h((0,r.A)((0,r.A)({title:t},e),{},{attribute:d,attributes:p}))}}))}))},34413:(e,t,n)=>{n.d(t,{A:()=>b});var r=n(40319),o=n(77810),a=n(76872),i=n(88314),s=n.n(i),l=n(10559),u=n(85137),c=n(55695),d=n(92423),p=n(72679),h=n(38226),m=n(44458),f=n(64922),v=(0,a.A)("yt-page-counter");function A(e){var t=e.pageIndex,n=e.pageCount,r=e.className;return void 0===t||void 0===n?null:n>1?(0,f.jsxs)("span",{className:v(null,r),children:["Page: ",(t||0)+1," / ",n]}):null}const w=o.memo(A);var x=n(38198),g=n(12680),C=(0,a.A)("column-header");function y(e){var t=e.column,n=e.title,r=e.shortTitle,o=null!=n?n:s()(t);return{nameContent:r||o,titleContent:o}}function b(e){var t=e.className,n=e.align,a=e.order,i=e.onSort,s=e.multisortIndex,l=e.loading,c=e.pageIndex,d=e.pageCount,p=function(e){if(void 0===e.options){var t=e.column,n=e.allowUnordered,o=e.withUndefined,a=e.title,i=e.shortTitle,s=e.allowedOrderTypes;return(0,r.A)({column:t,allowUnordered:n,withUndefined:o,allowedOrderTypes:s},y({column:t,title:a,shortTitle:i}))}var l=e.column,u=e.options,c=e.title,d=e.shortTitle,p=u.find((function(e){var t=e.column;return l===t}));return p||(0,g.N1)({message:"Unexpected behavior: missing value in ColumnHeader.props.options",additional:e}),(0,r.A)((0,r.A)({subColumn:y((0,r.A)({},p))},p),y({column:"",title:c,shortTitle:d}))}(e),v=p.column,A=p.allowUnordered,b=p.withUndefined,k=p.nameContent,N=p.titleContent,I=p.allowedOrderTypes,T=p.subColumn,S=o.useCallback((function(e){var t=I?(0,m.Pc)(a,I):(0,m.$N)(a,A,b);null==i||i(v,t,{currentOrder:a,multisort:e.ctrlKey||e.metaKey})}),[v,a,i,A,I,b]),z=Boolean(i);return(0,f.jsxs)("div",{className:C(null,t),children:[(0,f.jsxs)("div",{className:C("label-icon",{sortable:z,align:n}),onClick:z?S:void 0,children:[(0,f.jsx)("span",{className:C("label"),title:N,children:k}),(0,f.jsx)("span",{className:C("icon"),children:(0,f.jsx)(h.A,{hidden:!z,order:a})}),void 0!==s&&(0,f.jsxs)("span",{className:C("multisort"),children:[" ",(0,f.jsx)("sup",{children:s})]}),Boolean(a)&&Boolean(T)&&(0,f.jsx)(u.E,{className:C("label",{"sub-column":!0}),variant:"caption-2",title:null==T?void 0:T.titleContent,color:"dark-secondary",children:null==T?void 0:T.nameContent})]}),(0,f.jsx)(j,{options:e.options,order:a,onSort:i}),void 0!==l&&(0,f.jsx)("div",{className:C("loader"),children:(0,f.jsx)(x.A,{visible:l})}),Boolean(d)&&(0,f.jsx)(w,{className:C("page-counter"),pageIndex:c,pageCount:d})]})}function j(e){var t=e.order,n=e.options,r=e.onSort;return n?(0,f.jsx)(c.r,{items:n.map((function(e){return{text:y(e).titleContent,action:function(){if(r){var n=e.column,o=e.allowUnordered,a=e.withUndefined,i=e.allowedOrderTypes,s=i?(0,m.Pc)(t,i):(0,m.$N)(t,o,a);r(n,s,{currentOrder:t})}}}})),renderSwitcher:function(e){var t=e.onClick;return(0,f.jsx)(d.$,{onClick:t,view:"flat",size:"xs",children:(0,f.jsx)(p.I,{size:12,data:l.A})})}}):null}},62640:(e,t,n)=>{n.d(t,{A:()=>w});var r=n(40319),o=n(29121),a=n(12937),i=n(10785),s=n(26718),l=n(77810),u=n(76872),c=n(31470),d=n.n(c),p=n(31680),h=n.n(p),m=n(63366),f=n(34380),v=n(64922),A=(0,u.A)("comma-separated-list-with-rest-counter"),w=function(e){(0,i.A)(n,e);var t=(0,s.A)(n);function n(){var e;(0,o.A)(this,n);for(var r=arguments.length,a=new Array(r),i=0;i<r;i++)a[i]=arguments[i];return(e=t.call.apply(t,[this].concat(a))).ref=void 0,e.unmounted=!1,e.state={restCounter:0,rows:[],showDialog:!1},e.onRef=function(t){e.ref=t,e.updateState()},e.updateStateImpl=function(){e.unmounted&&(e.unmounted=!0);var t=e.props.items;if(!e.ref||!t||!t.length)return e.setStateIfChanged({rows:[],restCounter:0});var n=e.ref,r=n.offsetWidth,o=n.offsetHeight,a=getComputedStyle(e.ref),i=a.font,s=a.lineHeight;if(!r||!o)return e.setStateIfChanged({rows:[],restCounter:0});var l=document.createElement("canvas").getContext("2d");l.font=i;for(var u,c=[],d=0,p=parseInt(s),h=[],m=0;(c.length+1)*p<=o&&d<t.length;){var f=d===t.length-1,v=t[d++],A=l.measureText(v+", ").width;m+=A;var w=o-(c.length+1)*p<p;m<=r-(w&&!f?l.measureText((u=t.length-d," +".concat(u))).width:0)?(h.push(v),f&&c.push(h)):(c.push(h),w?--d:(h=[v],m=A,f&&c.push(h)))}var x={offsetWidth:r,offsetHeight:o,font:i,lineHeight:s,items:t,rows:c,restCounter:t.length-d};e.setStateIfChanged(x)},e.updateState=h()(e.updateStateImpl,30),e.renderItem=function(t){var n=e.props.itemRenderer;return n?n(t):t},e.closeDialog=function(){e.setState({showDialog:!1})},e.onCounterClick=function(){e.allowItemsInTooltip()||e.setState({showDialog:!0})},e}return(0,a.A)(n,[{key:"componentWillUnmount",value:function(){this.unmounted=!0}},{key:"componentDidUpdate",value:function(){this.updateState()}},{key:"setStateIfChanged",value:function(e){var t=this,n=Object.keys(e).some((function(n){return!d()(t.state[n],e[n])}));return n&&this.setState((0,r.A)({},e)),n}},{key:"renderRows",value:function(){var e=this,t=this.state.rows;return t.map((function(n,r){return(0,v.jsx)("div",{className:A("row"),children:e.renderRow(n,r===t.length-1)},r)}))}},{key:"renderRow",value:function(e,t){return(0,v.jsxs)(l.Fragment,{children:[(0,v.jsx)("div",{className:A("row-items"),children:this.renderItems(e,t)}),t&&this.renderCounter()]})}},{key:"renderItems",value:function(e,t){var n=this;return e.map((function(r,o){var a=o===e.length-1,i=t&&a&&!n.state.restCounter?"":", ";return(0,v.jsxs)("span",{className:A("row-item"),children:[n.renderItem(r),i]},o)}))}},{key:"renderCounter",value:function(){var e=this.state.restCounter;if(!e)return null;var t=!this.allowItemsInTooltip(),n=t?"Click to show all items":this.renderTooltip(),r=this.state.showDialog,o=r;return(0,v.jsxs)(f.m,{className:A("hover-tooltip"),content:n,children:[(0,v.jsxs)("div",{className:A("row-counter",{clickable:t}),onClick:this.onCounterClick,children:["+",e]}),(0,v.jsx)(m.A,{title:"All items",visible:r,onCancel:this.closeDialog,children:r&&this.renderTooltip()})]},o)}},{key:"renderTooltip",value:function(){var e=this,t=this.state.items;return(0,v.jsx)("div",{className:A("tooltip","yc-root"),children:t.map((function(t){return(0,v.jsx)("div",{children:e.renderItem(t)},t)}))})}},{key:"allowItemsInTooltip",value:function(){var e=this.props.maxTooltipCount;return this.state.items.length<=Math.min(20,e)}},{key:"render",value:function(){var e=this.props.className;return(0,v.jsx)("div",{ref:this.onRef,className:A(null,e),children:this.renderRows()})}}]),n}(l.Component);w.defaultProps={maxTooltipCount:20}},17852:(e,t,n)=>{n.d(t,{D7:()=>h,lN:()=>A,om:()=>p,ps:()=>f});var r=n(13322),o=n(40319),a=n(76872),i=n(49214),s=n.n(i),l=n(39760),u=n.n(l),c=n(27528),d=n.n(c),p=(0,a.A)("role-list-control");function h(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=[],r=[],o=[],a=[];u()(e,(function(e){var t=e.isUnrecognized,i=e.isRequested,s=e.isApproved,l=e.isDepriving;t?a.push(e):l?o.push(e):s||i?r.push(e):n.push(e)}));var i=n.map((function(e){return m(e)})),s=t.map((function(e){return{title:e,data:{},frozen:!0}}));return{newItems:[],current:{title:"Current",data:i.concat(s)},toAdd:{title:"Will be added",itemClassName:p("item-to-add"),data:r.map((function(e){return m(e,{frozen:!0})}))},toRemove:{title:"Will be removed",itemClassName:p("item-to-remove"),data:o.map((function(e){return m(e,{frozen:!0})}))},unrecognized:{title:"Unrecognized",itemClassName:p("item-unrecognized"),data:a.map((function(e){return m(e,{frozen:!0})}))}}}function m(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return(0,o.A)({title:e.text||e.value,data:e},t)}function f(e){var t=e.current,n=e.newItems,o=e.toAdd;return[].concat((0,r.A)(n),(0,r.A)(v(t)),(0,r.A)(v(o)))}function v(e){var t=(e||{}).data;return d()(s()(t,(function(e){return!e.removed})),(function(e){var t=e.data||{};return{type:t.type,value:t.value}}))}function A(e){var t=e.current,n=e.newItems||[],r=(t&&t.data||[]).filter((function(e){return e.removed}));return{added:n.map((function(e){var t=e.type,n=e.value;return"users"===t?{user:n}:{group:n}})),removed:r.map((function(e){var t=e.data||{},n=t.value;return"users"===t.type?{user:n}:{group:n}}))}}},20361:(e,t,n)=>{n.d(t,{J_:()=>x,Vm:()=>I,yz:()=>T,yZ:()=>N,lN:()=>b.lN,Y:()=>g,Ln:()=>y,D7:()=>b.D7,ps:()=>b.ps});var r=n(28407),o=n(70232),a=n.n(o),i=n(77810),s=n(33882),l=n(40319),u=n(9736),c=n(64922),d=n(68175),p=n(76872),h=n(81738),m=n(29347),f=n.n(m),v=n(27528),A=n.n(v),w=(0,p.A)("yt-dialog-error");function x(e){return(0,c.jsx)(h.A,(0,l.A)((0,l.A)({},e),{},{className:w()}))}function g(e){return f()(A()(e,(function(e,t){return e?{name:"error_".concat(t),type:"block",extras:{children:(0,c.jsx)(x,{error:e})}}:void 0})))}var C="FINAL_FORM/form-error";function y(e){return{validationErrors:(0,d.A)({},C,(0,c.jsx)(x,{error:e}))}}var b=n(17852);function j(){return Promise.all([n.e(8096),n.e(4724),n.e(6030),n.e(1086),n.e(164),n.e(2209),n.e(6756),n.e(2640),n.e(6652),n.e(937),n.e(3776),n.e(3716),n.e(5423),n.e(9641),n.e(6019),n.e(3320),n.e(1051),n.e(8512),n.e(7315),n.e(5695),n.e(3990),n.e(3724),n.e(9558),n.e(8427),n.e(7891),n.e(3784),n.e(2736)]).then(n.bind(n,36381))}var k,N=(k=(0,s.A)(i.lazy((0,r.A)(a().mark((function e(){return a().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,j();case 2:return e.t0=e.sent.YTDialog,e.abrupt("return",{default:e.t0});case 4:case"end":return e.stop()}}),e)})))),""),function(e){var t=i.useState(!1),n=(0,u.A)(t,2),r=n[0],o=n[1];return i.useEffect((function(){!r&&e.visible&&o(!0)}),[e.visible,r]),r?(0,c.jsx)(k,(0,l.A)({},e)):null});(0,s.A)(i.lazy((0,r.A)(a().mark((function e(){return a().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,j();case 2:return e.t0=e.sent.RoleListControl,e.abrupt("return",{default:e.t0});case 4:case"end":return e.stop()}}),e)})))),"");var I=(0,s.A)(i.lazy((0,r.A)(a().mark((function e(){return a().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,j();case 2:return e.t0=e.sent.EditableList,e.abrupt("return",{default:e.t0});case 4:case"end":return e.stop()}}),e)})))),""),T=(0,s.A)(i.lazy((0,r.A)(a().mark((function e(){return a().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,j();case 2:return e.t0=e.sent.TabFieldVertical,e.abrupt("return",{default:e.t0});case 4:case"end":return e.stop()}}),e)})))),"")},63588:(e,t,n)=>{n.d(t,{A:()=>m});var r=n(29121),o=n(12937),a=n(10785),i=n(26718),s=n(77810),l=n(78894),u=n(82060),c=n(73822),d=n(48971),p=n(64922),h=new l.I,m=function(e){(0,a.A)(n,e);var t=(0,i.A)(n);function n(){return(0,r.A)(this,n),t.apply(this,arguments)}return(0,o.A)(n,[{key:"componentDidUpdate",value:function(){var e=this.props,t=e.error,n=e.loaded,r=e.errorData;t&&n&&h.add({theme:"danger",name:"network",autoHiding:5e5,title:"Oops! something went wrong.",content:r?r.message:c.A.format.NO_VALUE,actions:[{label:" view",onClick:function(){return(0,d.eW)(r)}}]})}},{key:"render",value:function(){var e=this.props,t=e.alwaysShowError,n=void 0!==t&&t,r=e.error,o=e.errorData,a=e.loaded,i=e.children;return!r||!n&&a?i:(0,p.jsx)(u.A,{error:o})}}]),n}(s.Component)},38226:(e,t,n)=>{n.d(t,{A:()=>v});var r,o=n(29121),a=n(12937),i=n(10785),s=n(26718),l=n(68175),u=n(77810),c=n(76872),d=n(60620),p=n(44458),h=n(64922),m=(0,c.A)("sort-icon"),f=(r={},(0,l.A)(r,"","sort"),(0,l.A)(r,"asc","sort-up"),(0,l.A)(r,"desc","sort-down"),(0,l.A)(r,"asc-undefined","arrow-to-bottom"),(0,l.A)(r,"desc-undefined","arrow-from-bottom"),(0,l.A)(r,"undefined-asc","arrow-from-top"),(0,l.A)(r,"undefined-desc","arrow-to-top"),r),v=function(e){(0,i.A)(n,e);var t=(0,s.A)(n);function n(){var e;(0,o.A)(this,n);for(var r=arguments.length,a=new Array(r),i=0;i<r;i++)a[i]=arguments[i];return(e=t.call.apply(t,[this].concat(a))).onClick=function(){var t=e.props,n=t.order,r=t.onChange,o=t.allowUnordered,a=t.withUndefined;r&&r((0,p.$N)(n,o,a))},e}return(0,a.A)(n,[{key:"render",value:function(){var e=this.props,t=e.className,n=e.label,r=e.order,o=e.hidden,a=f[r||""];return(0,h.jsxs)("span",{className:m({hidden:o},t),onClick:this.onClick,children:[n&&(0,h.jsx)("span",{className:m("label"),children:n}),(0,h.jsx)("span",{className:m("icon"),children:(0,h.jsx)(d.A,{awesome:a,face:"solid"})})]})}}]),n}(u.Component)},10559:(e,t,n)=>{n.d(t,{A:()=>a});var r=n(40319),o=n(64922);const a=function(e){return(0,o.jsx)("svg",(0,r.A)((0,r.A)({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 16 16"},e),{},{children:(0,o.jsx)("path",{fill:"currentColor",fillRule:"evenodd",d:"M1 3.25a.75.75 0 0 1 .75-.75h12.5a.75.75 0 0 1 0 1.5H1.75A.75.75 0 0 1 1 3.25M1 8a.75.75 0 0 1 .75-.75h8.5a.75.75 0 0 1 0 1.5h-8.5A.75.75 0 0 1 1 8m.75 4a.75.75 0 0 0 0 1.5h2.5a.75.75 0 0 0 0-1.5z",clipRule:"evenodd"})}))}}}]);
2
- //# sourceMappingURL=8778.8d098a1f.chunk.js.map
1
+ "use strict";(self.webpackChunk_ytsaurus_ui=self.webpackChunk_ytsaurus_ui||[]).push([[8778],{97536:(e,t,n)=>{n.d(t,{A:()=>u});var r=n(40319),o=n(18801),a=(n(77810),n(51806)),i=n(60620),s=n(64922),l=["view","size"];function u(e){var t=e.view,n=void 0===t?"flat-secondary":t,u=e.size,c=void 0===u?"m":u,d=(0,o.A)(e,l);return(0,s.jsx)(a.A,(0,r.A)((0,r.A)({view:n,size:c},d),{},{children:(0,s.jsx)(i.A,{awesome:"at"})}))}},14880:(e,t,n)=>{n.d(t,{A:()=>c});var r=n(40319),o=n(18801),a=(n(77810),n(15647)),i=n(97536),s=n(57614),l=n(64922),u=["title","getPathProps","path","exactPath","attribute","attributes","openAttributesModal","withTooltip","tooltipProps"];const c=(0,a.Ng)(null,{openAttributesModal:s.V6})((function(e){var t=e.title,n=e.getPathProps,a=void 0===n?function(){return{}}:n,s=e.path,c=e.exactPath,d=e.attribute,p=e.attributes,h=e.openAttributesModal,m=e.withTooltip,f=void 0===m||m,v=e.tooltipProps,A=void 0===v?{placement:"bottom-end",content:"Show attributes"}:v,w=(0,o.A)(e,u);return(0,l.jsx)(i.A,(0,r.A)((0,r.A)({},w),{},{tooltipProps:A,withTooltip:f,onClick:function(){var e=(0,r.A)({path:s,exactPath:c},a());h((0,r.A)((0,r.A)({title:t},e),{},{attribute:d,attributes:p}))}}))}))},34413:(e,t,n)=>{n.d(t,{A:()=>b});var r=n(40319),o=n(77810),a=n(76872),i=n(88314),s=n.n(i),l=n(10559),u=n(85137),c=n(55695),d=n(92423),p=n(72679),h=n(38226),m=n(44458),f=n(64922),v=(0,a.A)("yt-page-counter");function A(e){var t=e.pageIndex,n=e.pageCount,r=e.className;return void 0===t||void 0===n?null:n>1?(0,f.jsxs)("span",{className:v(null,r),children:["Page: ",(t||0)+1," / ",n]}):null}const w=o.memo(A);var x=n(38198),g=n(12680),C=(0,a.A)("column-header");function y(e){var t=e.column,n=e.title,r=e.shortTitle,o=null!=n?n:s()(t);return{nameContent:r||o,titleContent:o}}function b(e){var t=e.className,n=e.align,a=e.order,i=e.onSort,s=e.multisortIndex,l=e.loading,c=e.pageIndex,d=e.pageCount,p=function(e){if(void 0===e.options){var t=e.column,n=e.allowUnordered,o=e.withUndefined,a=e.title,i=e.shortTitle,s=e.allowedOrderTypes;return(0,r.A)({column:t,allowUnordered:n,withUndefined:o,allowedOrderTypes:s},y({column:t,title:a,shortTitle:i}))}var l=e.column,u=e.options,c=e.title,d=e.shortTitle,p=u.find((function(e){var t=e.column;return l===t}));return p||(0,g.N1)({message:"Unexpected behavior: missing value in ColumnHeader.props.options",additional:e}),(0,r.A)((0,r.A)({subColumn:y((0,r.A)({},p))},p),y({column:"",title:c,shortTitle:d}))}(e),v=p.column,A=p.allowUnordered,b=p.withUndefined,k=p.nameContent,N=p.titleContent,I=p.allowedOrderTypes,T=p.subColumn,S=o.useCallback((function(e){var t=I?(0,m.Pc)(a,I):(0,m.$N)(a,A,b);null==i||i(v,t,{currentOrder:a,multisort:e.ctrlKey||e.metaKey})}),[v,a,i,A,I,b]),z=Boolean(i);return(0,f.jsxs)("div",{className:C(null,t),children:[(0,f.jsxs)("div",{className:C("label-icon",{sortable:z,align:n}),onClick:z?S:void 0,children:[(0,f.jsx)("span",{className:C("label"),title:N,children:k}),(0,f.jsx)("span",{className:C("icon"),children:(0,f.jsx)(h.A,{hidden:!z,order:a})}),void 0!==s&&(0,f.jsxs)("span",{className:C("multisort"),children:[" ",(0,f.jsx)("sup",{children:s})]}),Boolean(a)&&Boolean(T)&&(0,f.jsx)(u.E,{className:C("label",{"sub-column":!0}),variant:"caption-2",title:null==T?void 0:T.titleContent,color:"dark-secondary",children:null==T?void 0:T.nameContent})]}),(0,f.jsx)(j,{options:e.options,order:a,onSort:i}),void 0!==l&&(0,f.jsx)("div",{className:C("loader"),children:(0,f.jsx)(x.A,{visible:l})}),Boolean(d)&&(0,f.jsx)(w,{className:C("page-counter"),pageIndex:c,pageCount:d})]})}function j(e){var t=e.order,n=e.options,r=e.onSort;return n?(0,f.jsx)(c.r,{items:n.map((function(e){return{text:y(e).titleContent,action:function(){if(r){var n=e.column,o=e.allowUnordered,a=e.withUndefined,i=e.allowedOrderTypes,s=i?(0,m.Pc)(t,i):(0,m.$N)(t,o,a);r(n,s,{currentOrder:t})}}}})),renderSwitcher:function(e){var t=e.onClick;return(0,f.jsx)(d.$,{onClick:t,view:"flat",size:"xs",children:(0,f.jsx)(p.I,{size:12,data:l.A})})}}):null}},62640:(e,t,n)=>{n.d(t,{A:()=>w});var r=n(40319),o=n(29121),a=n(12937),i=n(10785),s=n(26718),l=n(77810),u=n(76872),c=n(31470),d=n.n(c),p=n(31680),h=n.n(p),m=n(63366),f=n(34380),v=n(64922),A=(0,u.A)("comma-separated-list-with-rest-counter"),w=function(e){(0,i.A)(n,e);var t=(0,s.A)(n);function n(){var e;(0,o.A)(this,n);for(var r=arguments.length,a=new Array(r),i=0;i<r;i++)a[i]=arguments[i];return(e=t.call.apply(t,[this].concat(a))).ref=void 0,e.unmounted=!1,e.state={restCounter:0,rows:[],showDialog:!1},e.onRef=function(t){e.ref=t,e.updateState()},e.updateStateImpl=function(){e.unmounted&&(e.unmounted=!0);var t=e.props.items;if(!e.ref||!t||!t.length)return e.setStateIfChanged({rows:[],restCounter:0});var n=e.ref,r=n.offsetWidth,o=n.offsetHeight,a=getComputedStyle(e.ref),i=a.font,s=a.lineHeight;if(!r||!o)return e.setStateIfChanged({rows:[],restCounter:0});var l=document.createElement("canvas").getContext("2d");l.font=i;for(var u,c=[],d=0,p=parseInt(s),h=[],m=0;(c.length+1)*p<=o&&d<t.length;){var f=d===t.length-1,v=t[d++],A=l.measureText(v+", ").width;m+=A;var w=o-(c.length+1)*p<p;m<=r-(w&&!f?l.measureText((u=t.length-d," +".concat(u))).width:0)?(h.push(v),f&&c.push(h)):(c.push(h),w?--d:(h=[v],m=A,f&&c.push(h)))}var x={offsetWidth:r,offsetHeight:o,font:i,lineHeight:s,items:t,rows:c,restCounter:t.length-d};e.setStateIfChanged(x)},e.updateState=h()(e.updateStateImpl,30),e.renderItem=function(t){var n=e.props.itemRenderer;return n?n(t):t},e.closeDialog=function(){e.setState({showDialog:!1})},e.onCounterClick=function(){e.allowItemsInTooltip()||e.setState({showDialog:!0})},e}return(0,a.A)(n,[{key:"componentWillUnmount",value:function(){this.unmounted=!0}},{key:"componentDidUpdate",value:function(){this.updateState()}},{key:"setStateIfChanged",value:function(e){var t=this,n=Object.keys(e).some((function(n){return!d()(t.state[n],e[n])}));return n&&this.setState((0,r.A)({},e)),n}},{key:"renderRows",value:function(){var e=this,t=this.state.rows;return t.map((function(n,r){return(0,v.jsx)("div",{className:A("row"),children:e.renderRow(n,r===t.length-1)},r)}))}},{key:"renderRow",value:function(e,t){return(0,v.jsxs)(l.Fragment,{children:[(0,v.jsx)("div",{className:A("row-items"),children:this.renderItems(e,t)}),t&&this.renderCounter()]})}},{key:"renderItems",value:function(e,t){var n=this;return e.map((function(r,o){var a=o===e.length-1,i=t&&a&&!n.state.restCounter?"":", ";return(0,v.jsxs)("span",{className:A("row-item"),children:[n.renderItem(r),i]},o)}))}},{key:"renderCounter",value:function(){var e=this.state.restCounter;if(!e)return null;var t=!this.allowItemsInTooltip(),n=t?"Click to show all items":this.renderTooltip(),r=this.state.showDialog,o=r;return(0,v.jsxs)(f.m,{className:A("hover-tooltip"),content:n,children:[(0,v.jsxs)("div",{className:A("row-counter",{clickable:t}),onClick:this.onCounterClick,children:["+",e]}),(0,v.jsx)(m.A,{title:"All items",visible:r,onCancel:this.closeDialog,children:r&&this.renderTooltip()})]},o)}},{key:"renderTooltip",value:function(){var e=this,t=this.state.items;return(0,v.jsx)("div",{className:A("tooltip","yc-root"),children:t.map((function(t){return(0,v.jsx)("div",{children:e.renderItem(t)},t)}))})}},{key:"allowItemsInTooltip",value:function(){var e=this.props.maxTooltipCount;return this.state.items.length<=Math.min(20,e)}},{key:"render",value:function(){var e=this.props.className;return(0,v.jsx)("div",{ref:this.onRef,className:A(null,e),children:this.renderRows()})}}]),n}(l.Component);w.defaultProps={maxTooltipCount:20}},17852:(e,t,n)=>{n.d(t,{D7:()=>h,lN:()=>A,om:()=>p,ps:()=>f});var r=n(13322),o=n(40319),a=n(76872),i=n(49214),s=n.n(i),l=n(39760),u=n.n(l),c=n(27528),d=n.n(c),p=(0,a.A)("role-list-control");function h(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=[],r=[],o=[],a=[];u()(e,(function(e){var t=e.isUnrecognized,i=e.isRequested,s=e.isApproved,l=e.isDepriving;t?a.push(e):l?o.push(e):s||i?r.push(e):n.push(e)}));var i=n.map((function(e){return m(e)})),s=t.map((function(e){return{title:e,data:{},frozen:!0}}));return{newItems:[],current:{title:"Current",data:i.concat(s)},toAdd:{title:"Will be added",itemClassName:p("item-to-add"),data:r.map((function(e){return m(e,{frozen:!0})}))},toRemove:{title:"Will be removed",itemClassName:p("item-to-remove"),data:o.map((function(e){return m(e,{frozen:!0})}))},unrecognized:{title:"Unrecognized",itemClassName:p("item-unrecognized"),data:a.map((function(e){return m(e,{frozen:!0})}))}}}function m(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return(0,o.A)({title:e.text||e.value,data:e},t)}function f(e){var t=e.current,n=e.newItems,o=e.toAdd;return[].concat((0,r.A)(n),(0,r.A)(v(t)),(0,r.A)(v(o)))}function v(e){var t=(e||{}).data;return d()(s()(t,(function(e){return!e.removed})),(function(e){var t=e.data||{};return{type:t.type,value:t.value}}))}function A(e){var t=e.current,n=e.newItems||[],r=(t&&t.data||[]).filter((function(e){return e.removed}));return{added:n.map((function(e){var t=e.type,n=e.value;return"users"===t?{user:n}:{group:n}})),removed:r.map((function(e){var t=e.data||{},n=t.value;return"users"===t.type?{user:n}:{group:n}}))}}},20361:(e,t,n)=>{n.d(t,{J_:()=>x,Vm:()=>I,yz:()=>T,yZ:()=>N,lN:()=>b.lN,Y:()=>g,Ln:()=>y,D7:()=>b.D7,ps:()=>b.ps});var r=n(28407),o=n(70232),a=n.n(o),i=n(77810),s=n(33882),l=n(40319),u=n(9736),c=n(64922),d=n(68175),p=n(76872),h=n(81738),m=n(29347),f=n.n(m),v=n(27528),A=n.n(v),w=(0,p.A)("yt-dialog-error");function x(e){return(0,c.jsx)(h.A,(0,l.A)((0,l.A)({},e),{},{className:w()}))}function g(e){return f()(A()(e,(function(e,t){return e?{name:"error_".concat(t),type:"block",extras:{children:(0,c.jsx)(x,{error:e})}}:void 0})))}var C="FINAL_FORM/form-error";function y(e){return{validationErrors:(0,d.A)({},C,(0,c.jsx)(x,{error:e}))}}var b=n(17852);function j(){return Promise.all([n.e(8096),n.e(4724),n.e(6030),n.e(1086),n.e(164),n.e(2209),n.e(6756),n.e(2640),n.e(6652),n.e(937),n.e(3776),n.e(3716),n.e(5423),n.e(9641),n.e(6019),n.e(3320),n.e(1051),n.e(8512),n.e(7315),n.e(5695),n.e(3990),n.e(3724),n.e(9558),n.e(8427),n.e(5451),n.e(3784),n.e(2736)]).then(n.bind(n,36381))}var k,N=(k=(0,s.A)(i.lazy((0,r.A)(a().mark((function e(){return a().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,j();case 2:return e.t0=e.sent.YTDialog,e.abrupt("return",{default:e.t0});case 4:case"end":return e.stop()}}),e)})))),""),function(e){var t=i.useState(!1),n=(0,u.A)(t,2),r=n[0],o=n[1];return i.useEffect((function(){!r&&e.visible&&o(!0)}),[e.visible,r]),r?(0,c.jsx)(k,(0,l.A)({},e)):null});(0,s.A)(i.lazy((0,r.A)(a().mark((function e(){return a().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,j();case 2:return e.t0=e.sent.RoleListControl,e.abrupt("return",{default:e.t0});case 4:case"end":return e.stop()}}),e)})))),"");var I=(0,s.A)(i.lazy((0,r.A)(a().mark((function e(){return a().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,j();case 2:return e.t0=e.sent.EditableList,e.abrupt("return",{default:e.t0});case 4:case"end":return e.stop()}}),e)})))),""),T=(0,s.A)(i.lazy((0,r.A)(a().mark((function e(){return a().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,j();case 2:return e.t0=e.sent.TabFieldVertical,e.abrupt("return",{default:e.t0});case 4:case"end":return e.stop()}}),e)})))),"")},63588:(e,t,n)=>{n.d(t,{A:()=>m});var r=n(29121),o=n(12937),a=n(10785),i=n(26718),s=n(77810),l=n(78894),u=n(82060),c=n(73822),d=n(48971),p=n(64922),h=new l.I,m=function(e){(0,a.A)(n,e);var t=(0,i.A)(n);function n(){return(0,r.A)(this,n),t.apply(this,arguments)}return(0,o.A)(n,[{key:"componentDidUpdate",value:function(){var e=this.props,t=e.error,n=e.loaded,r=e.errorData;t&&n&&h.add({theme:"danger",name:"network",autoHiding:5e5,title:"Oops! something went wrong.",content:r?r.message:c.A.format.NO_VALUE,actions:[{label:" view",onClick:function(){return(0,d.eW)(r)}}]})}},{key:"render",value:function(){var e=this.props,t=e.alwaysShowError,n=void 0!==t&&t,r=e.error,o=e.errorData,a=e.loaded,i=e.children;return!r||!n&&a?i:(0,p.jsx)(u.A,{error:o})}}]),n}(s.Component)},38226:(e,t,n)=>{n.d(t,{A:()=>w});var r,o=n(29121),a=n(12937),i=n(10785),s=n(26718),l=n(68175),u=n(77810),c=n(76872),d=n(64772),p=n(60620),h=n(34380),m=n(44458),f=n(64922),v=(0,c.A)("sort-icon"),A=(r={},(0,l.A)(r,"","sort"),(0,l.A)(r,"asc","sort-up"),(0,l.A)(r,"desc","sort-down"),(0,l.A)(r,"asc-undefined","arrow-to-bottom"),(0,l.A)(r,"desc-undefined","arrow-from-bottom"),(0,l.A)(r,"undefined-asc","arrow-from-top"),(0,l.A)(r,"undefined-desc","arrow-to-top"),r),w=function(e){(0,i.A)(n,e);var t=(0,s.A)(n);function n(){var e;(0,o.A)(this,n);for(var r=arguments.length,a=new Array(r),i=0;i<r;i++)a[i]=arguments[i];return(e=t.call.apply(t,[this].concat(a))).onClick=function(){var t=e.props,n=t.order,r=t.onChange,o=t.allowUnordered,a=t.withUndefined;r&&r((0,m.$N)(n,o,a))},e}return(0,a.A)(n,[{key:"render",value:function(){var e=this.props,t=e.className,n=e.label,r=e.order,o=e.hidden,a=A[r||""];return(0,f.jsxs)("span",{className:v({hidden:o},t),onClick:this.onClick,children:[n&&(0,f.jsx)("span",{className:v("label"),children:n}),(0,f.jsx)(h.m,{className:v("icon"),content:r?d.A.ReadableField(r):"Unordered",children:(0,f.jsx)(p.A,{awesome:a,face:"solid"})})]})}}]),n}(u.Component)},10559:(e,t,n)=>{n.d(t,{A:()=>a});var r=n(40319),o=n(64922);const a=function(e){return(0,o.jsx)("svg",(0,r.A)((0,r.A)({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 16 16"},e),{},{children:(0,o.jsx)("path",{fill:"currentColor",fillRule:"evenodd",d:"M1 3.25a.75.75 0 0 1 .75-.75h12.5a.75.75 0 0 1 0 1.5H1.75A.75.75 0 0 1 1 3.25M1 8a.75.75 0 0 1 .75-.75h8.5a.75.75 0 0 1 0 1.5h-8.5A.75.75 0 0 1 1 8m.75 4a.75.75 0 0 0 0 1.5h2.5a.75.75 0 0 0 0-1.5z",clipRule:"evenodd"})}))}}}]);
2
+ //# sourceMappingURL=8778.d97acdd6.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"js/8778.d97acdd6.chunk.js","mappings":"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","sources":["webpack://@ytsaurus/ui/./src/ui/components/AttributesButton/AttributesButton.tsx","webpack://@ytsaurus/ui/./src/ui/components/AttributesButton/ClickableAttributesButton.tsx","webpack://@ytsaurus/ui/./src/ui/components/PageCounter/PageCounter.tsx","webpack://@ytsaurus/ui/./src/ui/components/ColumnHeader/ColumnHeader.tsx","webpack://@ytsaurus/ui/./src/ui/components/CommaSeparateListWithRestCounter/CommaSeparateListWithRestCounter.js","webpack://@ytsaurus/ui/./src/ui/components/Dialog/controls/RoleListControl/utils.ts","webpack://@ytsaurus/ui/./src/ui/components/Dialog/DialogError.tsx","webpack://@ytsaurus/ui/./src/ui/components/Dialog/index.tsx","webpack://@ytsaurus/ui/./src/ui/hocs/withDelayedMount.tsx","webpack://@ytsaurus/ui/./src/ui/components/LoadDataHandler/LoadDataHandler.tsx","webpack://@ytsaurus/ui/./src/ui/components/SortIcon/SortIcon.tsx","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/icons/svgs/bars-descending-align-left.svg"],"sourcesContent":["import React from 'react';\n\nimport Button, {ButtonProps} from '../../components/Button/Button';\nimport Icon from '../../components/Icon/Icon';\n\nexport interface AttributesButtonProps extends ButtonProps {}\n\nexport default function AttributesButton({\n view = 'flat-secondary',\n size = 'm',\n ...rest\n}: AttributesButtonProps) {\n return (\n <Button view={view} size={size} {...rest}>\n <Icon awesome=\"at\" />\n </Button>\n );\n}\n","import React from 'react';\nimport {ConnectedProps, connect} from 'react-redux';\n\nimport AttributesButton, {AttributesButtonProps} from './AttributesButton';\n\nimport {openAttributesModal} from '../../store/actions/modals/attributes-modal';\nimport {ButtonProps} from '../Button/Button';\n\ninterface Props extends Omit<AttributesButtonProps, 'onClick' | 'title'> {\n title: React.ReactNode;\n\n // The function is called inside click handler, and overrides path and exactPath\n getPathProps?: () => Pick<Partial<Props>, 'path' | 'exactPath'>;\n path?: string;\n exactPath?: string;\n\n attribute?: string;\n attributes?: object;\n\n size?: ButtonProps['size'];\n view?: ButtonProps['view'];\n}\n\nfunction ClickableAttributesButton({\n title,\n getPathProps = () => {\n return {};\n },\n path,\n exactPath,\n attribute,\n attributes,\n openAttributesModal,\n withTooltip = true,\n tooltipProps = {placement: 'bottom-end', content: 'Show attributes'},\n ...rest\n}: Props & ConnectedProps<typeof connector>) {\n return (\n <AttributesButton\n {...rest}\n tooltipProps={tooltipProps}\n withTooltip={withTooltip}\n onClick={() => {\n const pathProps = {\n path,\n exactPath,\n ...getPathProps(),\n };\n\n openAttributesModal({\n title,\n ...pathProps,\n attribute,\n attributes,\n });\n }}\n />\n );\n}\n\nconst connector = connect(null, {openAttributesModal});\n\nexport default connector(ClickableAttributesButton);\n","import React from 'react';\nimport cn from 'bem-cn-lite';\n\nconst block = cn('yt-page-counter');\n\nexport interface PageCounterProps {\n className?: string;\n pageIndex?: number;\n pageCount?: number;\n}\n\nfunction PageCounter({pageIndex, pageCount, className}: PageCounterProps) {\n if (pageIndex === undefined || pageCount === undefined) {\n return null;\n }\n\n return pageCount! > 1 ? (\n <span className={block(null, className)}>\n Page: {(pageIndex || 0) + 1} / {pageCount}\n </span>\n ) : null;\n}\n\nexport default React.memo(PageCounter);\n","import React from 'react';\nimport cn from 'bem-cn-lite';\nimport capitalize_ from 'lodash/capitalize';\n\nimport barsDescendingSvg from '@gravity-ui/icons/svgs/bars-descending-align-left.svg';\nimport {Button, DropdownMenu, Icon, Text} from '@gravity-ui/uikit';\n\nimport SortIcon from '../../components/SortIcon/SortIcon';\n\nimport {OrderType, calculateNextOrderValue, nextSortOrderValue} from '../../utils/sort-helpers';\nimport PageCounter, {PageCounterProps} from '../../components/PageCounter/PageCounter';\nimport Loader from '../../components/Loader/Loader';\nimport {rumLogError} from '../../rum/rum-counter';\n\nimport './ColumnHeader.scss';\n\nconst block = cn('column-header');\n\nexport type ColumnInfo<T> = {\n column: T;\n title?: string;\n shortTitle?: string;\n /**\n * Ignored when allowedOrderTypes is defined\n */\n allowUnordered?: boolean;\n /**\n * Ignored when allowedOrderTypes is defined\n */\n withUndefined?: boolean;\n allowedOrderTypes?: Array<OrderType>;\n};\n\nexport type HasSortColumn<T> =\n | (ColumnInfo<T> & {options?: undefined})\n | ({\n title: string;\n shortTitle?: string;\n column: T;\n options: Array<ColumnInfo<T>>;\n } & Partial<Record<keyof Omit<ColumnInfo<T>, 'column' | 'title' | 'shortTitle'>, undefined>>);\n\nexport type ColumnHeaderProps<T extends string = string> = PageCounterProps &\n HasSortColumn<T> & {\n className?: string;\n order?: OrderType;\n multisortIndex?: number;\n onSort?: (\n column: T,\n nextOrder: OrderType,\n options: {currentOrder?: OrderType; multisort?: boolean},\n ) => void;\n\n loading?: boolean;\n\n align?: 'center' | 'left' | 'right';\n };\n\ntype NameTitleContent = {\n nameContent: string;\n titleContent: string;\n};\n\nfunction getNameTitle<T extends string>({\n column,\n title,\n shortTitle,\n}: Pick<ColumnInfo<T>, 'column' | 'title' | 'shortTitle'>): NameTitleContent {\n const t = title ?? capitalize_(column);\n const nameContent = !shortTitle ? t : shortTitle;\n return {nameContent, titleContent: t};\n}\n\nfunction useColumnInfo<T extends string = string>(\n props: ColumnHeaderProps<T>,\n): ColumnInfo<T> & NameTitleContent & {subColumn?: NameTitleContent} {\n if (props.options === undefined) {\n const {column, allowUnordered, withUndefined, title, shortTitle, allowedOrderTypes} = props;\n return {\n column,\n allowUnordered,\n withUndefined,\n allowedOrderTypes,\n ...getNameTitle({column, title, shortTitle}),\n };\n }\n\n const {column: value, options, title, shortTitle} = props;\n const columnData = options.find(({column}) => value === column)!;\n if (!columnData) {\n rumLogError({\n message: 'Unexpected behavior: missing value in ColumnHeader.props.options',\n additional: props,\n });\n }\n return {\n subColumn: getNameTitle({...columnData}),\n ...columnData,\n ...getNameTitle({column: '', title, shortTitle}),\n };\n}\n\nexport default function ColumnHeader<T extends string = string>(props: ColumnHeaderProps<T>) {\n const {className, align, order, onSort, multisortIndex, loading, pageIndex, pageCount} = props;\n const {\n column,\n allowUnordered,\n withUndefined,\n nameContent,\n titleContent,\n allowedOrderTypes,\n subColumn,\n } = useColumnInfo(props);\n\n const changeHandler = React.useCallback(\n (e: React.MouseEvent) => {\n const nextOrder = allowedOrderTypes\n ? calculateNextOrderValue(order, allowedOrderTypes)\n : nextSortOrderValue(order, allowUnordered, withUndefined);\n onSort?.(column, nextOrder, {\n currentOrder: order,\n multisort: e.ctrlKey || e.metaKey,\n });\n },\n [column, order, onSort, allowUnordered, allowedOrderTypes, withUndefined],\n );\n\n const sortable = Boolean(onSort);\n\n return (\n <div className={block(null, className)}>\n <div\n className={block('label-icon', {sortable, align})}\n onClick={sortable ? changeHandler : undefined}\n >\n <span className={block('label')} title={titleContent}>\n {nameContent}\n </span>\n <span className={block('icon')}>\n <SortIcon hidden={!sortable} order={order} />\n </span>\n {multisortIndex !== undefined && (\n <span className={block('multisort')}>\n &nbsp;<sup>{multisortIndex}</sup>\n </span>\n )}\n {Boolean(order) && Boolean(subColumn) && (\n <Text\n className={block('label', {'sub-column': true})}\n variant=\"caption-2\"\n title={subColumn?.titleContent}\n color=\"dark-secondary\"\n >\n {subColumn?.nameContent}\n </Text>\n )}\n </div>\n <SubColumnSelector options={props.options} order={order} onSort={onSort} />\n {loading !== undefined && (\n <div className={block('loader')}>\n <Loader visible={loading} />\n </div>\n )}\n {Boolean(pageCount) && (\n <PageCounter\n className={block('page-counter')}\n pageIndex={pageIndex}\n pageCount={pageCount}\n />\n )}\n </div>\n );\n}\n\nfunction SubColumnSelector<T extends string>({\n order,\n options,\n onSort,\n}: Pick<ColumnHeaderProps<T>, 'onSort'> & {\n order?: ColumnHeaderProps<T>['order'];\n options?: Array<ColumnInfo<T>>;\n}) {\n return !options ? null : (\n <DropdownMenu\n items={options.map((x) => {\n const {titleContent} = getNameTitle(x);\n return {\n text: titleContent,\n action() {\n if (!onSort) {\n return;\n }\n const {column, allowUnordered, withUndefined, allowedOrderTypes} = x;\n const nextOrder = allowedOrderTypes\n ? calculateNextOrderValue(order, allowedOrderTypes)\n : nextSortOrderValue(order, allowUnordered, withUndefined);\n onSort(column, nextOrder, {\n currentOrder: order,\n });\n },\n };\n })}\n renderSwitcher={({onClick}) => (\n <Button onClick={onClick} view=\"flat\" size=\"xs\">\n <Icon size={12} data={barsDescendingSvg} />\n </Button>\n )}\n />\n );\n}\n","import React from 'react';\nimport cn from 'bem-cn-lite';\nimport PropTypes from 'prop-types';\n\nimport isEqual_ from 'lodash/isEqual';\nimport throttle_ from 'lodash/throttle';\n\nimport SimpleModal from '../../components/Modal/SimpleModal';\nimport {Tooltip} from '../Tooltip/Tooltip';\n\nimport './CommaSeparateListWithRestCounter.scss';\n\nconst block = cn('comma-separated-list-with-rest-counter');\n\nfunction counterText(length) {\n return ` +${length}`; // one space more than required\n}\n\nconst MAX_TOOLTIP_COUNT = 20;\n\n/**\n * The rendered result depends on:\n * - offsetWidth\n * - offsetHeight\n * - lineHeight (from getComputedStyle(...))\n * - font (from getComputedStyle(...))\n * properties of main-block of the component,\n * but the component does not try to detect any changes of these properties.\n * So you must force re-rendering of the component from outside\n * for each changing of these properties. Or the properties should be constant.\n */\nexport default class CommaSeparatedListWithRestCounter extends React.Component {\n static propTypes = {\n className: PropTypes.string,\n items: PropTypes.arrayOf(PropTypes.string),\n maxTooltipCount: PropTypes.number, // maximum items in tooltip should be <= MAX_TOOLTIP_COUNT\n\n itemRenderer: PropTypes.func,\n };\n\n static defaultProps = {\n maxTooltipCount: MAX_TOOLTIP_COUNT,\n };\n\n ref;\n unmounted = false;\n\n state = {\n restCounter: 0,\n rows: [],\n showDialog: false,\n };\n\n onRef = (ref) => {\n this.ref = ref;\n this.updateState();\n };\n\n componentWillUnmount() {\n this.unmounted = true;\n }\n\n componentDidUpdate() {\n this.updateState();\n }\n\n updateStateImpl = () => {\n if (this.unmounted) {\n this.unmounted = true;\n }\n\n const {items} = this.props;\n if (!this.ref || !items || !items.length) {\n return this.setStateIfChanged({rows: [], restCounter: 0});\n }\n\n const {offsetWidth, offsetHeight} = this.ref;\n const {font, lineHeight} = getComputedStyle(this.ref);\n if (!offsetWidth || !offsetHeight) {\n return this.setStateIfChanged({rows: [], restCounter: 0});\n }\n\n const canvas = document.createElement('canvas');\n const ctx = canvas.getContext('2d');\n ctx.font = font;\n const rows = [];\n let pos = 0;\n\n const lh = parseInt(lineHeight);\n\n let currentRow = [];\n let currentRowWidth = 0;\n while ((rows.length + 1) * lh <= offsetHeight && pos < items.length) {\n const isLastItem = pos === items.length - 1;\n\n const text = items[pos++];\n const {width} = ctx.measureText(text + ', ');\n currentRowWidth += width;\n\n const isLastRow = offsetHeight - (rows.length + 1) * lh < lh;\n const counterWidth =\n isLastRow && !isLastItem\n ? ctx.measureText(counterText(items.length - pos)).width\n : 0;\n const maxWidth = offsetWidth - counterWidth;\n\n if (currentRowWidth <= maxWidth) {\n currentRow.push(text);\n if (isLastItem) {\n rows.push(currentRow);\n }\n } else {\n rows.push(currentRow);\n\n if (isLastRow) {\n --pos;\n } else {\n currentRow = [text];\n currentRowWidth = width;\n if (isLastItem) {\n rows.push(currentRow);\n }\n }\n }\n }\n\n const stateToCompare = {\n offsetWidth,\n offsetHeight,\n font,\n lineHeight,\n items,\n rows,\n restCounter: items.length - pos,\n };\n this.setStateIfChanged(stateToCompare);\n };\n\n updateState = throttle_(this.updateStateImpl, 30);\n\n setStateIfChanged(toCompare) {\n const changed = Object.keys(toCompare).some((key) => {\n return !isEqual_(this.state[key], toCompare[key]);\n });\n\n if (changed) {\n this.setState({...toCompare});\n }\n return changed;\n }\n\n renderRows() {\n const {rows} = this.state;\n return rows.map((row, index) => {\n return (\n <div key={index} className={block('row')}>\n {this.renderRow(row, index === rows.length - 1)}\n </div>\n );\n });\n }\n\n renderRow(items, isLastRow) {\n return (\n <React.Fragment>\n <div className={block('row-items')}>{this.renderItems(items, isLastRow)}</div>\n {isLastRow && this.renderCounter()}\n </React.Fragment>\n );\n }\n\n renderItems(items, isLastRow) {\n return items.map((item, index) => {\n const isLastItem = index === items.length - 1;\n const comma = !isLastRow || !isLastItem || this.state.restCounter ? ', ' : '';\n return (\n <span key={index} className={block('row-item')}>\n {this.renderItem(item)}\n {comma}\n </span>\n );\n });\n }\n\n renderItem = (item) => {\n const {itemRenderer} = this.props;\n return itemRenderer ? itemRenderer(item) : item;\n };\n\n renderCounter() {\n const {restCounter} = this.state;\n if (!restCounter) {\n return null;\n }\n\n const clickable = !this.allowItemsInTooltip();\n const toolTip = !clickable ? this.renderTooltip() : 'Click to show all items';\n\n const {showDialog} = this.state;\n const key = showDialog; // the key is required to hide tooltip behind the dialog with all items\n\n return (\n <Tooltip key={key} className={block('hover-tooltip')} content={toolTip}>\n <div className={block('row-counter', {clickable})} onClick={this.onCounterClick}>\n +{restCounter}\n </div>\n <SimpleModal title={'All items'} visible={showDialog} onCancel={this.closeDialog}>\n {showDialog && this.renderTooltip()}\n </SimpleModal>\n </Tooltip>\n );\n }\n\n closeDialog = () => {\n this.setState({showDialog: false});\n };\n\n onCounterClick = () => {\n if (this.allowItemsInTooltip()) {\n return;\n }\n\n this.setState({showDialog: true});\n };\n\n renderTooltip() {\n const {items} = this.state;\n return (\n <div className={block('tooltip', 'yc-root')}>\n {items.map((item) => {\n return <div key={item}>{this.renderItem(item)}</div>;\n })}\n </div>\n );\n }\n\n allowItemsInTooltip() {\n const {maxTooltipCount} = this.props;\n const {items} = this.state;\n return items.length <= Math.min(MAX_TOOLTIP_COUNT, maxTooltipCount);\n }\n\n render() {\n const {className} = this.props;\n return (\n <div ref={this.onRef} className={block(null, className)}>\n {this.renderRows()}\n </div>\n );\n }\n}\n","import cn from 'bem-cn-lite';\n\nimport filter_ from 'lodash/filter';\nimport forEach_ from 'lodash/forEach';\nimport map_ from 'lodash/map';\n\nimport type {EditableManyListsItemType} from '../../../../components/Dialog';\nimport type {ResponsibleType, RoleConverted} from '../../../../utils/acl/acl-types';\nimport type {PreparedRole} from '../../../../utils/acl';\nimport {RoleListControlProps} from './RoleListControl';\n\nexport const block = cn('role-list-control');\n\nexport function prepareRoleListValue(roles: Array<PreparedRole>, otherMembers: Array<string> = []) {\n const current: typeof roles = [];\n const toAdd: typeof roles = [];\n const toRemove: typeof roles = [];\n const unrecognized: typeof roles = [];\n forEach_(roles, (item) => {\n const {isUnrecognized, isRequested, isApproved, isDepriving} = item;\n if (isUnrecognized) {\n unrecognized.push(item);\n } else if (isDepriving) {\n toRemove.push(item);\n } else if (isApproved || isRequested) {\n toAdd.push(item);\n } else {\n current.push(item);\n }\n });\n\n const currentArr = current.map((item) => prepareItemOfCurrent(item));\n const otherArr = otherMembers.map((item) => ({\n title: item,\n data: {},\n frozen: true,\n }));\n\n return {\n newItems: [],\n current: {title: 'Current', data: currentArr.concat(otherArr)},\n toAdd: {\n title: 'Will be added',\n itemClassName: block('item-to-add'),\n data: toAdd.map((item) => prepareItemOfCurrent(item, {frozen: true})),\n },\n toRemove: {\n title: 'Will be removed',\n itemClassName: block('item-to-remove'),\n data: toRemove.map((item) => prepareItemOfCurrent(item, {frozen: true})),\n },\n unrecognized: {\n title: 'Unrecognized',\n itemClassName: block('item-unrecognized'),\n data: unrecognized.map((item) => prepareItemOfCurrent(item, {frozen: true})),\n },\n };\n}\n\nfunction prepareItemOfCurrent(role: PreparedRole, extraProps: any = {}) {\n return {\n title: role.text || role.value,\n data: role,\n ...extraProps,\n };\n}\n\nexport function roleListValueToSubjectList(\n value: RoleListControlProps['value'],\n): Array<ResponsibleType> {\n const {current, newItems, toAdd} = value;\n return [\n ...newItems,\n ...manyListDataItemToSubjectList(current),\n ...manyListDataItemToSubjectList(toAdd),\n ];\n}\n\nfunction manyListDataItemToSubjectList(\n manyListDataItem: EditableManyListsItemType<RoleConverted>,\n): Array<ResponsibleType> {\n const {data} = manyListDataItem || {};\n return map_(\n filter_(data, ({removed}) => !removed),\n ({data}) => {\n const {type, value} = data || {};\n return {type: type!, value: value!};\n },\n );\n}\n\nexport function extractChangedSubjects(value: {\n current: EditableManyListsItemType<RoleConverted>;\n newItems: Array<ResponsibleType>;\n}) {\n const {current, newItems} = value;\n const added = newItems || [];\n const removed = ((current && current.data) || []).filter(({removed}) => removed);\n return {\n added: added.map(({type, value}) => {\n return type === 'users' ? {user: value} : {group: value};\n }),\n removed: removed.map(({data}) => {\n const {value, type} = data || {};\n return type === 'users' ? {user: value} : {group: value};\n }),\n };\n}\n","import React from 'react';\nimport cn from 'bem-cn-lite';\n\nimport type {FORM_ERROR as FormErrorType} from './index';\n\nimport {FIX_MY_TYPE, YTError} from '../../types';\nimport Block from '../../components/Block/Block';\n\nimport compact_ from 'lodash/compact';\nimport map_ from 'lodash/map';\n\nconst block = cn('yt-dialog-error');\n\nexport function DialogError(props: FIX_MY_TYPE) {\n return <Block {...props} className={block()} />;\n}\n\nexport function makeErrorFields(errors: Array<YTError | Error | undefined>) {\n return compact_(\n map_(errors, (error, index) => {\n return error\n ? {\n name: `error_${index}`,\n type: 'block' as const,\n extras: {\n children: <DialogError error={error} />,\n },\n }\n : undefined;\n }),\n );\n}\n\nconst FORM_ERROR: typeof FormErrorType = 'FINAL_FORM/form-error';\n\nexport function makeFormSubmitError(error: YTError) {\n return {\n validationErrors: {\n [FORM_ERROR]: <DialogError error={error} />,\n },\n };\n}\n","import React from 'react';\nimport withLazyLoading from '../../hocs/withLazyLoading';\nimport {withDelayedMount} from '../../hocs/withDelayedMount';\n\nimport type {\n registerDialogControl as RegisterDialogControlFn,\n registerDialogTabControl as RegisterDialogTabControlFn,\n YTDialogType,\n} from './Dialog';\n\nexport type * from './Dialog';\nexport * from './DialogError';\nexport * from './controls/RoleListControl/utils';\n\nexport function importYTDFDialog() {\n return import(/* webpackChunkName: \"yt-df-dialog\" */ './Dialog');\n}\n\nexport const YTDFDialog = withDelayedMount(\n withLazyLoading(\n React.lazy(async () => {\n return {default: (await importYTDFDialog()).YTDialog};\n }),\n '',\n ),\n) as YTDialogType;\n\nexport function useControlRegistration(\n fn: (params: {\n registerDialogControl: typeof RegisterDialogControlFn;\n registerDialogTabControl: typeof RegisterDialogTabControlFn;\n }) => void,\n) {\n importYTDFDialog().then(({registerDialogControl, registerDialogTabControl}) => {\n fn({registerDialogControl, registerDialogTabControl});\n });\n}\n\nexport type {RoleListControlProps} from './controls/RoleListControl/RoleListControl';\nexport const RoleListControl = withLazyLoading(\n React.lazy(async () => {\n return {default: (await importYTDFDialog()).RoleListControl};\n }),\n '',\n);\n\nexport const EditableList = withLazyLoading(\n React.lazy(async () => {\n return {default: (await importYTDFDialog()).EditableList};\n }),\n '',\n);\n\nexport const TabFieldVertical = withLazyLoading(\n React.lazy(async () => {\n return {default: (await importYTDFDialog()).TabFieldVertical};\n }),\n '',\n);\n","import React from 'react';\n\n/**\n * The hoc allows to delay mounting until `props.visible == true`.\n * The hoc might be useful to wrap components wrapped by React.lazy\n * @param Component\n * @returns\n */\nexport function withDelayedMount<P extends {visible?: boolean}>(Component: React.ComponentType<P>) {\n return function MountOnFirstVisible(props: P) {\n const [mounted, setMounted] = React.useState(false);\n React.useEffect(() => {\n if (!mounted && props.visible) {\n setMounted(true);\n }\n }, [props.visible, mounted]);\n return !mounted ? null : <Component {...props} />;\n };\n}\n","import React, {Component} from 'react';\n\nimport {Toaster} from '@gravity-ui/uikit';\nimport Error from '../../components/Error/Error';\nimport hammer from '../../common/hammer';\n\nimport {showErrorPopup} from '../../utils/utils';\nimport {YTError} from '../../types';\n\nconst toaster = new Toaster();\n\ninterface LoadDataHandlerProps {\n alwaysShowError?: boolean;\n loaded: boolean;\n error: boolean;\n errorData?: YTError;\n children: React.ReactNode;\n}\n\nexport default class LoadDataHandler extends Component<LoadDataHandlerProps> {\n componentDidUpdate() {\n const {error, loaded, errorData} = this.props;\n\n if (error && loaded) {\n toaster.add({\n theme: 'danger',\n name: 'network',\n autoHiding: 500000,\n title: 'Oops! something went wrong.',\n content: errorData ? (errorData as YTError).message : hammer.format.NO_VALUE,\n actions: [\n {\n label: ' view',\n onClick: () => showErrorPopup(errorData as YTError),\n },\n ],\n });\n }\n }\n\n render() {\n const {alwaysShowError = false, error, errorData, loaded, children} = this.props;\n\n const initialLoading = !loaded;\n\n if (error && (alwaysShowError || initialLoading)) {\n return <Error error={errorData} />;\n }\n\n return children;\n }\n}\n","import React from 'react';\nimport cn from 'bem-cn-lite';\n\nimport format from '../../common/hammer/format';\nimport Icon from '../../components/Icon/Icon';\nimport {Tooltip} from '../../components/Tooltip/Tooltip';\nimport {OrderType, nextSortOrderValue} from '../../utils/sort-helpers';\n\nimport './SortIcon.scss';\n\nconst block = cn('sort-icon');\n\nconst ICON_BY_TYPE = {\n ['']: 'sort',\n asc: 'sort-up',\n desc: 'sort-down',\n 'asc-undefined': 'arrow-to-bottom',\n 'desc-undefined': 'arrow-from-bottom',\n 'undefined-asc': 'arrow-from-top',\n 'undefined-desc': 'arrow-to-top',\n} as const;\n\ninterface Props {\n className?: string;\n label?: string;\n onChange?: (nextOrder: OrderType) => void;\n order?: OrderType;\n hidden?: boolean;\n allowUnordered?: boolean;\n withUndefined?: boolean;\n}\n\nexport default class SortIcon extends React.Component<Props> {\n onClick = () => {\n const {order, onChange, allowUnordered, withUndefined} = this.props;\n if (!onChange) {\n return;\n }\n\n const nextOrder = nextSortOrderValue(order, allowUnordered, withUndefined);\n onChange(nextOrder);\n };\n\n render() {\n const {className, label, order, hidden} = this.props;\n const icon = ICON_BY_TYPE[order || ''];\n\n return (\n <span className={block({hidden}, className)} onClick={this.onClick}>\n {label && <span className={block('label')}>{label}</span>}\n <Tooltip\n className={block('icon')}\n content={order ? format.ReadableField(order) : 'Unordered'}\n >\n <Icon awesome={icon} face=\"solid\" />\n </Tooltip>\n </span>\n );\n }\n}\n","const SvgBarsDescendingAlignLeft = props => <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 16 16\" {...props}><path fill=\"currentColor\" fillRule=\"evenodd\" d=\"M1 3.25a.75.75 0 0 1 .75-.75h12.5a.75.75 0 0 1 0 1.5H1.75A.75.75 0 0 1 1 3.25M1 8a.75.75 0 0 1 .75-.75h8.5a.75.75 0 0 1 0 1.5h-8.5A.75.75 0 0 1 1 8m.75 4a.75.75 0 0 0 0 1.5h2.5a.75.75 0 0 0 0-1.5z\" clipRule=\"evenodd\" /></svg>;\nexport default SvgBarsDescendingAlignLeft;"],"names":["AttributesButton","_ref","_ref$view","view","_ref$size","size","rest","_objectWithoutProperties","_excluded","_jsx","Button","_objectSpread","children","Icon","awesome","connect","openAttributesModal","title","_ref$getPathProps","getPathProps","path","exactPath","attribute","attributes","_ref$withTooltip","withTooltip","_ref$tooltipProps","tooltipProps","placement","content","onClick","pathProps","block","cn","PageCounter","pageIndex","pageCount","className","undefined","_jsxs","React","getNameTitle","column","shortTitle","t","capitalize_","nameContent","titleContent","ColumnHeader","props","align","order","onSort","multisortIndex","loading","_useColumnInfo","options","allowUnordered","withUndefined","allowedOrderTypes","value","columnData","find","_ref2","rumLogError","message","additional","subColumn","useColumnInfo","changeHandler","e","nextOrder","calculateNextOrderValue","nextSortOrderValue","currentOrder","multisort","ctrlKey","metaKey","sortable","Boolean","SortIcon","hidden","Text","variant","color","SubColumnSelector","Loader","visible","_ref3","DropdownMenu","items","map","x","text","action","renderSwitcher","_ref4","data","barsDescendingSvg","CommaSeparatedListWithRestCounter","_React$Component","_inherits","_super","_createSuper","_this","_classCallCheck","_len","arguments","length","args","Array","_key","call","apply","concat","ref","unmounted","state","restCounter","rows","showDialog","onRef","updateState","updateStateImpl","setStateIfChanged","_this$ref","offsetWidth","offsetHeight","_getComputedStyle","getComputedStyle","font","lineHeight","ctx","document","createElement","getContext","pos","lh","parseInt","currentRow","currentRowWidth","isLastItem","width","measureText","isLastRow","push","stateToCompare","throttle_","renderItem","item","itemRenderer","closeDialog","setState","onCounterClick","allowItemsInTooltip","_createClass","key","this","toCompare","_this2","changed","Object","keys","some","isEqual_","_this3","row","index","renderRow","renderItems","renderCounter","_this4","comma","clickable","toolTip","renderTooltip","Tooltip","SimpleModal","onCancel","_this5","maxTooltipCount","Math","min","renderRows","defaultProps","prepareRoleListValue","roles","otherMembers","current","toAdd","toRemove","unrecognized","forEach_","isUnrecognized","isRequested","isApproved","isDepriving","currentArr","prepareItemOfCurrent","otherArr","frozen","newItems","itemClassName","role","extraProps","roleListValueToSubjectList","_toConsumableArray","manyListDataItemToSubjectList","manyListDataItem","map_","filter_","removed","type","extractChangedSubjects","added","filter","_ref5","_ref6","user","group","_ref7","_ref8","DialogError","Block","makeErrorFields","errors","compact_","error","name","extras","FORM_ERROR","makeFormSubmitError","validationErrors","_defineProperty","importYTDFDialog","Component","YTDFDialog","withLazyLoading","_asyncToGenerator","_regeneratorRuntime","_callee","_context","prev","next","t0","sent","YTDialog","abrupt","stop","_React$useState","_React$useState2","_slicedToArray","mounted","setMounted","_callee2","_context2","RoleListControl","EditableList","_callee3","_context3","TabFieldVertical","_callee4","_context4","toaster","Toaster","LoadDataHandler","_Component","_this$props","loaded","errorData","add","theme","autoHiding","hammer","format","NO_VALUE","actions","label","showErrorPopup","_this$props2","_this$props2$alwaysSh","alwaysShowError","Error","ICON_BY_TYPE","_ICON_BY_TYPE","onChange","icon","ReadableField","face","xmlns","fill","viewBox","fillRule","d","clipRule"],"sourceRoot":""}