@ytsaurus/ui 1.75.0 → 1.76.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. package/dist/public/build/assets-manifest.json +52 -52
  2. package/dist/public/build/css/main.0efa9da5.css +10 -0
  3. package/dist/public/build/css/main.0efa9da5.css.map +1 -0
  4. package/dist/public/build/css/{navigation.0a9042b3.chunk.css → navigation.bf4facc9.chunk.css} +2 -2
  5. package/dist/public/build/css/navigation.bf4facc9.chunk.css.map +1 -0
  6. package/dist/public/build/css/scheduling.00ec9179.chunk.css +2 -0
  7. package/dist/public/build/css/scheduling.00ec9179.chunk.css.map +1 -0
  8. package/dist/public/build/js/{6729.da9aa02f.chunk.js → 6729.ceb75c7e.chunk.js} +2 -2
  9. package/dist/public/build/js/6729.ceb75c7e.chunk.js.map +1 -0
  10. package/dist/public/build/js/{7959.fedd6b2e.chunk.js → 7959.95ebd185.chunk.js} +2 -2
  11. package/dist/public/build/js/7959.95ebd185.chunk.js.map +1 -0
  12. package/dist/public/build/js/{8390.83f4531a.chunk.js → 8390.c3d2de6a.chunk.js} +2 -2
  13. package/dist/public/build/js/{8390.83f4531a.chunk.js.map → 8390.c3d2de6a.chunk.js.map} +1 -1
  14. package/dist/public/build/js/{8460.2d4d237e.chunk.js → 8460.fc8e2238.chunk.js} +2 -2
  15. package/dist/public/build/js/{8460.2d4d237e.chunk.js.map → 8460.fc8e2238.chunk.js.map} +1 -1
  16. package/dist/public/build/js/{8778.e18e655b.chunk.js → 8778.f3ea089f.chunk.js} +2 -2
  17. package/dist/public/build/js/{8778.e18e655b.chunk.js.map → 8778.f3ea089f.chunk.js.map} +1 -1
  18. package/dist/public/build/js/9569.30eceefe.chunk.js +2 -0
  19. package/dist/public/build/js/9569.30eceefe.chunk.js.map +1 -0
  20. package/dist/public/build/js/acl.4cd54663.chunk.js +2 -0
  21. package/dist/public/build/js/acl.4cd54663.chunk.js.map +1 -0
  22. package/dist/public/build/js/{app-navigation.b062662b.chunk.js → app-navigation.13c65573.chunk.js} +2 -2
  23. package/dist/public/build/js/app-navigation.13c65573.chunk.js.map +1 -0
  24. package/dist/public/build/js/chyt.25dce13f.chunk.js +2 -0
  25. package/dist/public/build/js/{chyt.7f99f87d.chunk.js.map → chyt.25dce13f.chunk.js.map} +1 -1
  26. package/dist/public/build/js/cluster-page-wrapper.1d5c0664.chunk.js +2 -0
  27. package/dist/public/build/js/cluster-page-wrapper.1d5c0664.chunk.js.map +1 -0
  28. package/dist/public/build/js/main.2c4538cc.js +3 -0
  29. package/dist/public/build/js/main.2c4538cc.js.map +1 -0
  30. package/dist/public/build/js/manage-tokens.e1e791fc.chunk.js +2 -0
  31. package/dist/public/build/js/manage-tokens.e1e791fc.chunk.js.map +1 -0
  32. package/dist/public/build/js/{navigation-flow.eeb01518.chunk.js → navigation-flow.6d67215a.chunk.js} +2 -2
  33. package/dist/public/build/js/{navigation-flow.eeb01518.chunk.js.map → navigation-flow.6d67215a.chunk.js.map} +1 -1
  34. package/dist/public/build/js/navigation.8103294d.chunk.js +2 -0
  35. package/dist/public/build/js/navigation.8103294d.chunk.js.map +1 -0
  36. package/dist/public/build/js/odin.127bf6dc.chunk.js +2 -0
  37. package/dist/public/build/js/odin.127bf6dc.chunk.js.map +1 -0
  38. package/dist/public/build/js/{query-results.733b1795.chunk.js → query-results.0a05cc41.chunk.js} +2 -2
  39. package/dist/public/build/js/{query-results.733b1795.chunk.js.map → query-results.0a05cc41.chunk.js.map} +1 -1
  40. package/dist/public/build/js/{query-tracker.06cc4fdc.chunk.js → query-tracker.137d1cea.chunk.js} +2 -2
  41. package/dist/public/build/js/{query-tracker.06cc4fdc.chunk.js.map → query-tracker.137d1cea.chunk.js.map} +1 -1
  42. package/dist/public/build/js/{runtime.1c3fbd5b.js → runtime.e1d3f321.js} +2 -2
  43. package/dist/public/build/js/{runtime.1c3fbd5b.js.map → runtime.e1d3f321.js.map} +1 -1
  44. package/dist/public/build/js/{scheduling.b70d4627.chunk.js → scheduling.ad977895.chunk.js} +2 -2
  45. package/dist/public/build/js/{scheduling.b70d4627.chunk.js.map → scheduling.ad977895.chunk.js.map} +1 -1
  46. package/dist/public/build/js/{system.f759d3f0.chunk.js → system.de3869c9.chunk.js} +2 -2
  47. package/dist/public/build/js/system.de3869c9.chunk.js.map +1 -0
  48. package/dist/public/build/js/{yt-df-dialog.9ddda260.chunk.js → yt-df-dialog.4ad719bf.chunk.js} +2 -2
  49. package/dist/public/build/js/yt-df-dialog.4ad719bf.chunk.js.map +1 -0
  50. package/dist/public/build/manifest.json +48 -48
  51. package/dist/server/components/oauth.d.ts +2 -1
  52. package/dist/server/components/oauth.js +15 -7
  53. package/dist/server/controllers/oauth-login.js +8 -3
  54. package/package.json +2 -2
  55. package/dist/public/build/css/main.2d3cbfcd.css +0 -10
  56. package/dist/public/build/css/main.2d3cbfcd.css.map +0 -1
  57. package/dist/public/build/css/navigation.0a9042b3.chunk.css.map +0 -1
  58. package/dist/public/build/css/scheduling.40c36db6.chunk.css +0 -2
  59. package/dist/public/build/css/scheduling.40c36db6.chunk.css.map +0 -1
  60. package/dist/public/build/js/5177.b4cec253.chunk.js +0 -2
  61. package/dist/public/build/js/5177.b4cec253.chunk.js.map +0 -1
  62. package/dist/public/build/js/6729.da9aa02f.chunk.js.map +0 -1
  63. package/dist/public/build/js/7959.fedd6b2e.chunk.js.map +0 -1
  64. package/dist/public/build/js/acl.dd99876f.chunk.js +0 -2
  65. package/dist/public/build/js/acl.dd99876f.chunk.js.map +0 -1
  66. package/dist/public/build/js/app-navigation.b062662b.chunk.js.map +0 -1
  67. package/dist/public/build/js/chyt.7f99f87d.chunk.js +0 -2
  68. package/dist/public/build/js/cluster-page-wrapper.894fbacc.chunk.js +0 -2
  69. package/dist/public/build/js/cluster-page-wrapper.894fbacc.chunk.js.map +0 -1
  70. package/dist/public/build/js/main.7981a440.js +0 -3
  71. package/dist/public/build/js/main.7981a440.js.map +0 -1
  72. package/dist/public/build/js/manage-tokens.286a4da9.chunk.js +0 -2
  73. package/dist/public/build/js/manage-tokens.286a4da9.chunk.js.map +0 -1
  74. package/dist/public/build/js/navigation.105812b5.chunk.js +0 -2
  75. package/dist/public/build/js/navigation.105812b5.chunk.js.map +0 -1
  76. package/dist/public/build/js/odin.df1cfe56.chunk.js +0 -2
  77. package/dist/public/build/js/odin.df1cfe56.chunk.js.map +0 -1
  78. package/dist/public/build/js/system.f759d3f0.chunk.js.map +0 -1
  79. package/dist/public/build/js/yt-df-dialog.9ddda260.chunk.js.map +0 -1
  80. /package/dist/public/build/js/{main.7981a440.js.LICENSE.txt → main.2c4538cc.js.LICENSE.txt} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"js/8460.2d4d237e.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 {sortable && (\n <span className={block('icon')}>\n <SortIcon order={order} />\n </span>\n )}\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, Subject} from '../../../../utils/acl/acl-types';\nimport type {PreparedRole} from '../../../../utils/acl';\nimport {RoleListControlProps} from './RoleListControl';\n\nexport const block = cn('role-list-control');\n\nexport function prepareRoleListValue(roles: Array<PreparedRole>, otherMembers: Array<string> = []) {\n const current: typeof roles = [];\n const toAdd: typeof roles = [];\n const toRemove: typeof roles = [];\n const unrecognized: typeof roles = [];\n forEach_(roles, (item) => {\n const {isUnrecognized, isRequested, isApproved, isDepriving} = item;\n if (isUnrecognized) {\n unrecognized.push(item);\n } else if (isDepriving) {\n toRemove.push(item);\n } else if (isApproved || isRequested) {\n toAdd.push(item);\n } else {\n current.push(item);\n }\n });\n\n const currentArr = current.map((item) => prepareItemOfCurrent(item));\n const otherArr = otherMembers.map((item) => ({\n title: item,\n data: {},\n frozen: true,\n }));\n\n return {\n newItems: [],\n current: {title: 'Current', data: currentArr.concat(otherArr)},\n toAdd: {\n title: 'Will be added',\n itemClassName: block('item-to-add'),\n data: toAdd.map((item) => prepareItemOfCurrent(item, {frozen: true})),\n },\n toRemove: {\n title: 'Will be removed',\n itemClassName: block('item-to-remove'),\n data: toRemove.map((item) => prepareItemOfCurrent(item, {frozen: true})),\n },\n unrecognized: {\n title: 'Unrecognized',\n itemClassName: block('item-unrecognized'),\n data: unrecognized.map((item) => prepareItemOfCurrent(item, {frozen: true})),\n },\n };\n}\n\nfunction prepareItemOfCurrent(role: PreparedRole, extraProps: any = {}) {\n return {\n title: role.text || role.value,\n data: role,\n ...extraProps,\n };\n}\n\nexport function roleListValueToSubjectList(\n value: RoleListControlProps['value'],\n): Array<ResponsibleType> {\n const {current, newItems, toAdd} = value;\n return [\n ...newItems,\n ...manyListDataItemToSubjectList(current),\n ...manyListDataItemToSubjectList(toAdd),\n ];\n}\n\nfunction manyListDataItemToSubjectList(\n manyListDataItem: EditableManyListsItemType<RoleConverted>,\n): Array<ResponsibleType> {\n const {data} = manyListDataItem || {};\n return map_(\n filter_(data, ({removed}) => !removed),\n ({data}) => {\n const {type, value} = data || {};\n return {type: type!, value: value!};\n },\n );\n}\n\nexport function extractChangedSubjects(value: {\n current: EditableManyListsItemType<RoleConverted>;\n newItems: Array<ResponsibleType>;\n}): {\n added: Subject[];\n removed: Subject[];\n} {\n const {current, newItems} = value;\n const added = newItems || [];\n const removed = ((current && current.data) || []).filter(({removed}) => removed);\n return {\n added: added.map(({type, value}) => {\n return type === 'users' ? {user: value} : {group: value};\n }),\n removed: removed.map(({data}) => {\n const {value, type} = data || {};\n return type === 'users' ? {user: value!} : {group: value!};\n }),\n };\n}\n","import 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 inlineMargins?: boolean;\n}\n\nexport function Host({\n address = '',\n prefix,\n className,\n copyBtnClassName,\n onClick,\n useText,\n asTabletNode,\n inlineMargins,\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, 'inline-margins': inlineMargins},\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","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","Host","_ref$address","address","prefix","copyBtnClassName","useText","asTabletNode","inlineMargins","host","re","_res$groups","res","exec","groups","shortname","suffix","join","calcShortNameByRegExp","cluster","useSelector","getCluster","hidden","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.fc8e2238.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 {sortable && (\n <span className={block('icon')}>\n <SortIcon order={order} />\n </span>\n )}\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, Subject} from '../../../../utils/acl/acl-types';\nimport type {PreparedRole} from '../../../../utils/acl';\nimport {RoleListControlProps} from './RoleListControl';\n\nexport const block = cn('role-list-control');\n\nexport function prepareRoleListValue(roles: Array<PreparedRole>, otherMembers: Array<string> = []) {\n const current: typeof roles = [];\n const toAdd: typeof roles = [];\n const toRemove: typeof roles = [];\n const unrecognized: typeof roles = [];\n forEach_(roles, (item) => {\n const {isUnrecognized, isRequested, isApproved, isDepriving} = item;\n if (isUnrecognized) {\n unrecognized.push(item);\n } else if (isDepriving) {\n toRemove.push(item);\n } else if (isApproved || isRequested) {\n toAdd.push(item);\n } else {\n current.push(item);\n }\n });\n\n const currentArr = current.map((item) => prepareItemOfCurrent(item));\n const otherArr = otherMembers.map((item) => ({\n title: item,\n data: {},\n frozen: true,\n }));\n\n return {\n newItems: [],\n current: {title: 'Current', data: currentArr.concat(otherArr)},\n toAdd: {\n title: 'Will be added',\n itemClassName: block('item-to-add'),\n data: toAdd.map((item) => prepareItemOfCurrent(item, {frozen: true})),\n },\n toRemove: {\n title: 'Will be removed',\n itemClassName: block('item-to-remove'),\n data: toRemove.map((item) => prepareItemOfCurrent(item, {frozen: true})),\n },\n unrecognized: {\n title: 'Unrecognized',\n itemClassName: block('item-unrecognized'),\n data: unrecognized.map((item) => prepareItemOfCurrent(item, {frozen: true})),\n },\n };\n}\n\nfunction prepareItemOfCurrent(role: PreparedRole, extraProps: any = {}) {\n return {\n title: role.text || role.value,\n data: role,\n ...extraProps,\n };\n}\n\nexport function roleListValueToSubjectList(\n value: RoleListControlProps['value'],\n): Array<ResponsibleType> {\n const {current, newItems, toAdd} = value;\n return [\n ...newItems,\n ...manyListDataItemToSubjectList(current),\n ...manyListDataItemToSubjectList(toAdd),\n ];\n}\n\nfunction manyListDataItemToSubjectList(\n manyListDataItem: EditableManyListsItemType<RoleConverted>,\n): Array<ResponsibleType> {\n const {data} = manyListDataItem || {};\n return map_(\n filter_(data, ({removed}) => !removed),\n ({data}) => {\n const {type, value} = data || {};\n return {type: type!, value: value!};\n },\n );\n}\n\nexport function extractChangedSubjects(value: {\n current: EditableManyListsItemType<RoleConverted>;\n newItems: Array<ResponsibleType>;\n}): {\n added: Subject[];\n removed: Subject[];\n} {\n const {current, newItems} = value;\n const added = newItems || [];\n const removed = ((current && current.data) || []).filter(({removed}) => removed);\n return {\n added: added.map(({type, value}) => {\n return type === 'users' ? {user: value} : {group: value};\n }),\n removed: removed.map(({data}) => {\n const {value, type} = data || {};\n return type === 'users' ? {user: value!} : {group: value!};\n }),\n };\n}\n","import 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 inlineMargins?: boolean;\n}\n\nexport function Host({\n address = '',\n prefix,\n className,\n copyBtnClassName,\n onClick,\n useText,\n asTabletNode,\n inlineMargins,\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, 'inline-margins': inlineMargins},\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","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","Host","_ref$address","address","prefix","copyBtnClassName","useText","asTabletNode","inlineMargins","host","re","_res$groups","res","exec","groups","shortname","suffix","join","calcShortNameByRegExp","cluster","useSelector","getCluster","hidden","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(2211)),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,m=e.openAttributesModal,h=e.withTooltip,f=void 0===h||h,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());m((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),m=n(38226),h=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,h.Pc)(a,I):(0,h.$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}),z&&(0,f.jsx)("span",{className:C("icon"),children:(0,f.jsx)(m.A,{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,h.Pc)(t,i):(0,h.$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),m=n.n(p),h=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),m=[],h=0;(c.length+1)*p<=o&&d<t.length;){var f=d===t.length-1,v=t[d++],A=l.measureText(v+", ").width;h+=A;var w=o-(c.length+1)*p<p;h<=r-(w&&!f?l.measureText((u=t.length-d," +".concat(u))).width:0)?(m.push(v),f&&c.push(m)):(c.push(m),w?--d:(m=[v],h=A,f&&c.push(m)))}var x={offsetWidth:r,offsetHeight:o,font:i,lineHeight:s,items:t,rows:c,restCounter:t.length-d};e.setStateIfChanged(x)},e.updateState=m()(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)(h.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:()=>m,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 m(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 h(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 h(e,{frozen:!0})}))},toRemove:{title:"Will be removed",itemClassName:p("item-to-remove"),data:o.map((function(e){return h(e,{frozen:!0})}))},unrecognized:{title:"Unrecognized",itemClassName:p("item-unrecognized"),data:a.map((function(e){return h(e,{frozen:!0})}))}}}function h(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),m=n(81738),h=n(29347),f=n.n(h),v=n(27528),A=n.n(v),w=(0,p.A)("yt-dialog-error");function x(e){return(0,c.jsx)(m.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(1879),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:()=>h});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),m=new l.I,h=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&&m.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),m=n(34380),h=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,h.$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)(m.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.e18e655b.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(2211)),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,m=e.openAttributesModal,h=e.withTooltip,f=void 0===h||h,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());m((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),m=n(38226),h=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,h.Pc)(a,I):(0,h.$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}),z&&(0,f.jsx)("span",{className:C("icon"),children:(0,f.jsx)(m.A,{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,h.Pc)(t,i):(0,h.$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),m=n.n(p),h=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),m=[],h=0;(c.length+1)*p<=o&&d<t.length;){var f=d===t.length-1,v=t[d++],A=l.measureText(v+", ").width;h+=A;var w=o-(c.length+1)*p<p;h<=r-(w&&!f?l.measureText((u=t.length-d," +".concat(u))).width:0)?(m.push(v),f&&c.push(m)):(c.push(m),w?--d:(m=[v],h=A,f&&c.push(m)))}var x={offsetWidth:r,offsetHeight:o,font:i,lineHeight:s,items:t,rows:c,restCounter:t.length-d};e.setStateIfChanged(x)},e.updateState=m()(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)(h.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:()=>m,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 m(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 h(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 h(e,{frozen:!0})}))},toRemove:{title:"Will be removed",itemClassName:p("item-to-remove"),data:o.map((function(e){return h(e,{frozen:!0})}))},unrecognized:{title:"Unrecognized",itemClassName:p("item-unrecognized"),data:a.map((function(e){return h(e,{frozen:!0})}))}}}function h(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),m=n(88794),h=n(29347),f=n.n(h),v=n(27528),A=n.n(v),w=(0,p.A)("yt-dialog-error");function x(e){return(0,c.jsx)(m.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(1879),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:()=>h});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),m=new l.I,h=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&&m.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),m=n(34380),h=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,h.$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)(m.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.f3ea089f.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"js/8778.e18e655b.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 {sortable && (\n <span className={block('icon')}>\n <SortIcon order={order} />\n </span>\n )}\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, Subject} from '../../../../utils/acl/acl-types';\nimport type {PreparedRole} from '../../../../utils/acl';\nimport {RoleListControlProps} from './RoleListControl';\n\nexport const block = cn('role-list-control');\n\nexport function prepareRoleListValue(roles: Array<PreparedRole>, otherMembers: Array<string> = []) {\n const current: typeof roles = [];\n const toAdd: typeof roles = [];\n const toRemove: typeof roles = [];\n const unrecognized: typeof roles = [];\n forEach_(roles, (item) => {\n const {isUnrecognized, isRequested, isApproved, isDepriving} = item;\n if (isUnrecognized) {\n unrecognized.push(item);\n } else if (isDepriving) {\n toRemove.push(item);\n } else if (isApproved || isRequested) {\n toAdd.push(item);\n } else {\n current.push(item);\n }\n });\n\n const currentArr = current.map((item) => prepareItemOfCurrent(item));\n const otherArr = otherMembers.map((item) => ({\n title: item,\n data: {},\n frozen: true,\n }));\n\n return {\n newItems: [],\n current: {title: 'Current', data: currentArr.concat(otherArr)},\n toAdd: {\n title: 'Will be added',\n itemClassName: block('item-to-add'),\n data: toAdd.map((item) => prepareItemOfCurrent(item, {frozen: true})),\n },\n toRemove: {\n title: 'Will be removed',\n itemClassName: block('item-to-remove'),\n data: toRemove.map((item) => prepareItemOfCurrent(item, {frozen: true})),\n },\n unrecognized: {\n title: 'Unrecognized',\n itemClassName: block('item-unrecognized'),\n data: unrecognized.map((item) => prepareItemOfCurrent(item, {frozen: true})),\n },\n };\n}\n\nfunction prepareItemOfCurrent(role: PreparedRole, extraProps: any = {}) {\n return {\n title: role.text || role.value,\n data: role,\n ...extraProps,\n };\n}\n\nexport function roleListValueToSubjectList(\n value: RoleListControlProps['value'],\n): Array<ResponsibleType> {\n const {current, newItems, toAdd} = value;\n return [\n ...newItems,\n ...manyListDataItemToSubjectList(current),\n ...manyListDataItemToSubjectList(toAdd),\n ];\n}\n\nfunction manyListDataItemToSubjectList(\n manyListDataItem: EditableManyListsItemType<RoleConverted>,\n): Array<ResponsibleType> {\n const {data} = manyListDataItem || {};\n return map_(\n filter_(data, ({removed}) => !removed),\n ({data}) => {\n const {type, value} = data || {};\n return {type: type!, value: value!};\n },\n );\n}\n\nexport function extractChangedSubjects(value: {\n current: EditableManyListsItemType<RoleConverted>;\n newItems: Array<ResponsibleType>;\n}): {\n added: Subject[];\n removed: Subject[];\n} {\n const {current, newItems} = value;\n const added = newItems || [];\n const removed = ((current && current.data) || []).filter(({removed}) => removed);\n return {\n added: added.map(({type, value}) => {\n return type === 'users' ? {user: value} : {group: value};\n }),\n removed: removed.map(({data}) => {\n const {value, type} = data || {};\n return type === 'users' ? {user: value!} : {group: value!};\n }),\n };\n}\n","import 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","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","hidden","icon","ReadableField","face","xmlns","fill","viewBox","fillRule","d","clipRule"],"sourceRoot":""}
1
+ {"version":3,"file":"js/8778.f3ea089f.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 {sortable && (\n <span className={block('icon')}>\n <SortIcon order={order} />\n </span>\n )}\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, Subject} from '../../../../utils/acl/acl-types';\nimport type {PreparedRole} from '../../../../utils/acl';\nimport {RoleListControlProps} from './RoleListControl';\n\nexport const block = cn('role-list-control');\n\nexport function prepareRoleListValue(roles: Array<PreparedRole>, otherMembers: Array<string> = []) {\n const current: typeof roles = [];\n const toAdd: typeof roles = [];\n const toRemove: typeof roles = [];\n const unrecognized: typeof roles = [];\n forEach_(roles, (item) => {\n const {isUnrecognized, isRequested, isApproved, isDepriving} = item;\n if (isUnrecognized) {\n unrecognized.push(item);\n } else if (isDepriving) {\n toRemove.push(item);\n } else if (isApproved || isRequested) {\n toAdd.push(item);\n } else {\n current.push(item);\n }\n });\n\n const currentArr = current.map((item) => prepareItemOfCurrent(item));\n const otherArr = otherMembers.map((item) => ({\n title: item,\n data: {},\n frozen: true,\n }));\n\n return {\n newItems: [],\n current: {title: 'Current', data: currentArr.concat(otherArr)},\n toAdd: {\n title: 'Will be added',\n itemClassName: block('item-to-add'),\n data: toAdd.map((item) => prepareItemOfCurrent(item, {frozen: true})),\n },\n toRemove: {\n title: 'Will be removed',\n itemClassName: block('item-to-remove'),\n data: toRemove.map((item) => prepareItemOfCurrent(item, {frozen: true})),\n },\n unrecognized: {\n title: 'Unrecognized',\n itemClassName: block('item-unrecognized'),\n data: unrecognized.map((item) => prepareItemOfCurrent(item, {frozen: true})),\n },\n };\n}\n\nfunction prepareItemOfCurrent(role: PreparedRole, extraProps: any = {}) {\n return {\n title: role.text || role.value,\n data: role,\n ...extraProps,\n };\n}\n\nexport function roleListValueToSubjectList(\n value: RoleListControlProps['value'],\n): Array<ResponsibleType> {\n const {current, newItems, toAdd} = value;\n return [\n ...newItems,\n ...manyListDataItemToSubjectList(current),\n ...manyListDataItemToSubjectList(toAdd),\n ];\n}\n\nfunction manyListDataItemToSubjectList(\n manyListDataItem: EditableManyListsItemType<RoleConverted>,\n): Array<ResponsibleType> {\n const {data} = manyListDataItem || {};\n return map_(\n filter_(data, ({removed}) => !removed),\n ({data}) => {\n const {type, value} = data || {};\n return {type: type!, value: value!};\n },\n );\n}\n\nexport function extractChangedSubjects(value: {\n current: EditableManyListsItemType<RoleConverted>;\n newItems: Array<ResponsibleType>;\n}): {\n added: Subject[];\n removed: Subject[];\n} {\n const {current, newItems} = value;\n const added = newItems || [];\n const removed = ((current && current.data) || []).filter(({removed}) => removed);\n return {\n added: added.map(({type, value}) => {\n return type === 'users' ? {user: value} : {group: value};\n }),\n removed: removed.map(({data}) => {\n const {value, type} = data || {};\n return type === 'users' ? {user: value!} : {group: value!};\n }),\n };\n}\n","import 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","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","hidden","icon","ReadableField","face","xmlns","fill","viewBox","fillRule","d","clipRule"],"sourceRoot":""}