@ytsaurus/ui 1.88.0 → 1.89.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/public/build/assets-manifest.json +48 -48
- package/dist/public/build/css/{3508.6c1c2786.chunk.css → 6429.ea79c9b6.chunk.css} +2 -2
- package/dist/public/build/css/6429.ea79c9b6.chunk.css.map +1 -0
- package/dist/public/build/css/components.70e435f3.chunk.css +2 -0
- package/dist/public/build/css/{components.40635897.chunk.css.map → components.70e435f3.chunk.css.map} +1 -1
- package/dist/public/build/css/navigation.23c4f062.chunk.css +2 -0
- package/dist/public/build/css/navigation.23c4f062.chunk.css.map +1 -0
- package/dist/public/build/css/{scheduling.5be9116a.chunk.css → scheduling.caa109d4.chunk.css} +2 -2
- package/dist/public/build/css/scheduling.caa109d4.chunk.css.map +1 -0
- package/dist/public/build/js/31.7fbb68da.chunk.js +2 -0
- package/dist/public/build/js/31.7fbb68da.chunk.js.map +1 -0
- package/dist/public/build/js/4326.35533baf.chunk.js +2 -0
- package/dist/public/build/js/4326.35533baf.chunk.js.map +1 -0
- package/dist/public/build/js/531.c9b75152.chunk.js +2 -0
- package/dist/public/build/js/531.c9b75152.chunk.js.map +1 -0
- package/dist/public/build/js/655.b9ca9e1c.chunk.js +2 -0
- package/dist/public/build/js/655.b9ca9e1c.chunk.js.map +1 -0
- package/dist/public/build/js/{6842.bde8a16b.chunk.js → 6842.b271abc1.chunk.js} +2 -2
- package/dist/public/build/js/6842.b271abc1.chunk.js.map +1 -0
- package/dist/public/build/js/9312.ae95dc3d.chunk.js +3 -0
- package/dist/public/build/js/9312.ae95dc3d.chunk.js.map +1 -0
- package/dist/public/build/js/cluster-page-wrapper.e590c7e4.chunk.js +2 -0
- package/dist/public/build/js/{cluster-page-wrapper.10097b2e.chunk.js.map → cluster-page-wrapper.e590c7e4.chunk.js.map} +1 -1
- package/dist/public/build/js/{dashboard.7d59b37c.chunk.js → dashboard.faa22a7b.chunk.js} +2 -2
- package/dist/public/build/js/{dashboard.7d59b37c.chunk.js.map → dashboard.faa22a7b.chunk.js.map} +1 -1
- package/dist/public/build/js/main.6a7f28d8.js +3 -0
- package/dist/public/build/js/main.6a7f28d8.js.map +1 -0
- package/dist/public/build/js/navigation.4c787adc.chunk.js +2 -0
- package/dist/public/build/js/navigation.4c787adc.chunk.js.map +1 -0
- package/dist/public/build/js/odin.94be07ae.chunk.js +2 -0
- package/dist/public/build/js/odin.94be07ae.chunk.js.map +1 -0
- package/dist/public/build/js/operations.2bf06800.chunk.js +2 -0
- package/dist/public/build/js/operations.2bf06800.chunk.js.map +1 -0
- package/dist/public/build/js/runtime.013ac4e9.js +2 -0
- package/dist/public/build/js/runtime.013ac4e9.js.map +1 -0
- package/dist/public/build/js/scheduling.9311689d.chunk.js +2 -0
- package/dist/public/build/js/scheduling.9311689d.chunk.js.map +1 -0
- package/dist/public/build/js/tablet.bfd0b58c.chunk.js +2 -0
- package/dist/public/build/js/tablet.bfd0b58c.chunk.js.map +1 -0
- package/dist/public/build/js/{vendors.68feab29.js → vendors.cdadc029.js} +3 -3
- package/dist/public/build/js/vendors.cdadc029.js.map +1 -0
- package/dist/public/build/js/{yt-df-dialog.aebd8107.chunk.js → yt-df-dialog.d89174c7.chunk.js} +2 -2
- package/dist/public/build/js/yt-df-dialog.d89174c7.chunk.js.map +1 -0
- package/dist/public/build/manifest.json +42 -42
- package/package.json +3 -3
- package/dist/public/build/css/3508.6c1c2786.chunk.css.map +0 -1
- package/dist/public/build/css/components.40635897.chunk.css +0 -2
- package/dist/public/build/css/navigation.3fcb92a4.chunk.css +0 -2
- package/dist/public/build/css/navigation.3fcb92a4.chunk.css.map +0 -1
- package/dist/public/build/css/scheduling.5be9116a.chunk.css.map +0 -1
- package/dist/public/build/js/4326.f0f9ad02.chunk.js +0 -2
- package/dist/public/build/js/4326.f0f9ad02.chunk.js.map +0 -1
- package/dist/public/build/js/5145.f54452ce.chunk.js +0 -2
- package/dist/public/build/js/5145.f54452ce.chunk.js.map +0 -1
- package/dist/public/build/js/531.c1a47a3c.chunk.js +0 -2
- package/dist/public/build/js/531.c1a47a3c.chunk.js.map +0 -1
- package/dist/public/build/js/655.2c8a30bf.chunk.js +0 -2
- package/dist/public/build/js/655.2c8a30bf.chunk.js.map +0 -1
- package/dist/public/build/js/6842.bde8a16b.chunk.js.map +0 -1
- package/dist/public/build/js/9312.54862b59.chunk.js +0 -3
- package/dist/public/build/js/9312.54862b59.chunk.js.map +0 -1
- package/dist/public/build/js/cluster-page-wrapper.10097b2e.chunk.js +0 -2
- package/dist/public/build/js/main.e311e250.js +0 -3
- package/dist/public/build/js/main.e311e250.js.map +0 -1
- package/dist/public/build/js/navigation.532fa983.chunk.js +0 -2
- package/dist/public/build/js/navigation.532fa983.chunk.js.map +0 -1
- package/dist/public/build/js/odin.b5abd8af.chunk.js +0 -2
- package/dist/public/build/js/odin.b5abd8af.chunk.js.map +0 -1
- package/dist/public/build/js/operations.5ab0f962.chunk.js +0 -2
- package/dist/public/build/js/operations.5ab0f962.chunk.js.map +0 -1
- package/dist/public/build/js/runtime.02e67b1d.js +0 -2
- package/dist/public/build/js/runtime.02e67b1d.js.map +0 -1
- package/dist/public/build/js/scheduling.34609dfc.chunk.js +0 -2
- package/dist/public/build/js/scheduling.34609dfc.chunk.js.map +0 -1
- package/dist/public/build/js/tablet.ee9b4b62.chunk.js +0 -2
- package/dist/public/build/js/tablet.ee9b4b62.chunk.js.map +0 -1
- package/dist/public/build/js/vendors.68feab29.js.map +0 -1
- package/dist/public/build/js/yt-df-dialog.aebd8107.chunk.js.map +0 -1
- /package/dist/public/build/js/{9312.54862b59.chunk.js.LICENSE.txt → 9312.ae95dc3d.chunk.js.LICENSE.txt} +0 -0
- /package/dist/public/build/js/{main.e311e250.js.LICENSE.txt → main.6a7f28d8.js.LICENSE.txt} +0 -0
- /package/dist/public/build/js/{vendors.68feab29.js.LICENSE.txt → vendors.cdadc029.js.LICENSE.txt} +0 -0
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"js/tablet.ee9b4b62.chunk.js","mappings":"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","sources":["webpack://@ytsaurus/ui/./src/ui/components/AttributesButton/ClickableAttributesButton.tsx","webpack://@ytsaurus/ui/./src/ui/components/EditableAsText/EditableAsText.tsx","webpack://@ytsaurus/ui/./src/ui/store/selectors/histogram.js","webpack://@ytsaurus/ui/./src/ui/components/Histogram/HistogramChart.tsx","webpack://@ytsaurus/ui/./src/ui/components/Histogram/Histogram.js","webpack://@ytsaurus/ui/./src/ui/components/LoadDataHandler/LoadDataHandler.tsx","webpack://@ytsaurus/ui/./src/ui/components/MetaTable/presets/compression.js","webpack://@ytsaurus/ui/./src/ui/components/MetaTable/presets/erasure-replication.js","webpack://@ytsaurus/ui/./src/ui/components/MetaTable/presets/main.js","webpack://@ytsaurus/ui/./src/ui/components/MetaTable/presets/size.js","webpack://@ytsaurus/ui/./src/ui/components/MetaTable/presets/ttl.tsx","webpack://@ytsaurus/ui/./src/ui/components/NumberInput/NumberInput.tsx","webpack://@ytsaurus/ui/./src/ui/components/TimeDuration/TimeDuration.tsx","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/chartkit/build/utils/react.js","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/chartkit/build/components/ErrorBoundary/ErrorBoundary.js","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/chartkit/build/utils/getErrorMessage.js","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/chartkit/build/components/Loader/Loader.js","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/chartkit/build/components/ChartKit.js","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/chartkit/build/index.js","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/chartkit/build/plugins/yagr/index.js","webpack://@ytsaurus/ui/./src/ui/components/YagrChartKit/YagrChartKit.tsx","webpack://@ytsaurus/ui/./src/ui/components/templates/utils.js","webpack://@ytsaurus/ui/./src/ui/pages/accounts/AccountLink.tsx","webpack://@ytsaurus/ui/./src/ui/utils/tablet/partition.js","webpack://@ytsaurus/ui/./src/ui/utils/tablet/tablet.js","webpack://@ytsaurus/ui/./src/ui/store/actions/tablet/tablet.js","webpack://@ytsaurus/ui/./src/ui/utils/tablet/table.js","webpack://@ytsaurus/ui/./src/ui/store/selectors/tablet/tablet.js","webpack://@ytsaurus/ui/./src/ui/utils/tablet/store.js","webpack://@ytsaurus/ui/./src/ui/utils/tablet/stores.js","webpack://@ytsaurus/ui/./src/ui/store/actions/tablet/stores.js","webpack://@ytsaurus/ui/./src/ui/store/selectors/tablet/stores.js","webpack://@ytsaurus/ui/./src/ui/pages/tablet/TabletDetails/Stores.js","webpack://@ytsaurus/ui/./src/ui/pages/tablet/TabletDetails/StoresDialog.tsx","webpack://@ytsaurus/ui/./src/ui/pages/tablet/TabletDetails/Partitions.js","webpack://@ytsaurus/ui/./src/ui/pages/tablet/TabletDetails/Overview.js","webpack://@ytsaurus/ui/./src/ui/pages/tablet/TabletDetails/TabletDetails.js","webpack://@ytsaurus/ui/./src/ui/pages/tablet/Tablet.js","webpack://@ytsaurus/ui/./src/ui/pages/tablet/TabletTopRowContent.tsx","webpack://@ytsaurus/ui/./src/ui/utils/app-url/navigation.ts","webpack://@ytsaurus/ui/./src/ui/utils/app-url/utils.ts","webpack://@ytsaurus/ui/./src/ui/utils/app-url/index.ts","webpack://@ytsaurus/ui/./src/ui/utils/tablet_cell_bundles/index.ts","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/chartkit/build/i18n/index.js","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/chartkit/build/libs/chartkit-error/chartkit-error.js","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/chartkit/build/libs/settings/mergeSettingStrategy.js","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/chartkit/build/libs/settings/settings.js","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/chartkit/build/libs/settings/eventEmitter.js","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/chartkit/build/utils/cn.js","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/chartkit/build/utils/common.js"],"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, {useCallback, useEffect} from 'react';\nimport cn from 'bem-cn-lite';\n\nimport {TextInput} from '@gravity-ui/uikit';\nimport Icon from '../Icon/Icon';\n\nimport './EditableAsText.scss';\nimport Button, {ButtonProps} from '../Button/Button';\nconst block = cn('editable-as-text');\n\ninterface Props {\n className?: string;\n editorClassName?: string;\n\n text?: string;\n children: React.ReactNode;\n onChange: (v?: string) => void;\n disableEdit?: boolean;\n withControls?: boolean;\n cancelOnClose?: boolean;\n openOnClick?: boolean;\n size?: 's' | 'm' | 'l' | 'xl';\n saveButtonView?: ButtonProps['view'];\n cancelButtonView?: ButtonProps['view'];\n\n renderEditor?: (props: {\n value?: string;\n onBlur: () => void;\n onChange: (value?: string) => void;\n className?: string;\n onApply: (value?: string) => void;\n }) => React.ReactNode;\n onModeChange?: (isEdit: boolean) => void;\n}\n\nexport function EditableAsText(props: Props) {\n const {\n children,\n onChange,\n text,\n className,\n withControls,\n size,\n disableEdit,\n cancelOnClose,\n openOnClick,\n renderEditor,\n onModeChange,\n saveButtonView = 'normal',\n cancelButtonView = 'normal',\n } = props;\n const [editMode, setEditMode] = React.useState(false);\n const [input, setInput] = React.useState(text || '');\n\n useEffect(() => {\n setInput(text || '');\n }, [text]);\n\n const handleChangeMode = useCallback(\n (isEdit: boolean) => {\n if (onModeChange) onModeChange(isEdit);\n setEditMode(isEdit);\n },\n [onModeChange],\n );\n\n const closeEditMode = React.useCallback(() => {\n handleChangeMode(false);\n if (cancelOnClose) setInput(text || '');\n }, [cancelOnClose, handleChangeMode, text]);\n\n const startTextEdit = useCallback(() => {\n handleChangeMode(true);\n }, [handleChangeMode]);\n\n const handleWrapClick = () => {\n if (!editMode && openOnClick) {\n startTextEdit();\n }\n };\n\n const handleChange = React.useCallback((val?: string) => setInput(val ?? ''), [setInput]);\n\n const applyValue = useCallback(() => {\n handleChangeMode(false);\n onChange(input);\n }, [onChange, handleChangeMode, input]);\n\n const closeAndResetValue = useCallback(() => {\n handleChangeMode(false);\n setInput(text || '');\n }, [handleChangeMode, text]);\n\n const onApply = useCallback(\n (value?: string) => {\n handleChangeMode(false);\n onChange(value);\n },\n [handleChangeMode, onChange],\n );\n\n const handleKeyDown = React.useCallback(\n (evt: React.KeyboardEvent<HTMLElement>) => {\n if (evt.key === 'Enter') {\n applyValue();\n }\n if (evt.key === 'Escape') {\n closeAndResetValue();\n }\n },\n [applyValue, closeAndResetValue],\n );\n\n const controlSize = size ? size : 'm';\n\n return (\n <div\n className={block(null, [className || '', editMode ? 'edit' : ''])}\n onClick={handleWrapClick}\n >\n {editMode ? (\n <>\n {renderEditor ? (\n renderEditor({\n value: input,\n onChange: handleChange,\n className: block('control'),\n onBlur: closeEditMode,\n onApply,\n })\n ) : (\n <TextInput\n className={block('control')}\n autoFocus\n size={controlSize}\n value={input}\n onUpdate={handleChange}\n onKeyDown={handleKeyDown}\n onBlur={closeEditMode}\n />\n )}\n {withControls && (\n <>\n <Button\n className={block('control')}\n view={saveButtonView}\n extraProps={{onMouseDown: applyValue}}\n size={controlSize}\n >\n <Icon awesome={'check'} size={controlSize} />\n </Button>\n <Button\n className={block('control')}\n view={cancelButtonView}\n extraProps={{onMouseDown: closeAndResetValue}}\n size={controlSize}\n >\n <Icon awesome={'times'} size={controlSize} />\n </Button>\n </>\n )}\n </>\n ) : (\n <React.Fragment>\n {children}\n {!disableEdit && (\n <Button\n className={block('control', {type: 'edit'})}\n view=\"outlined\"\n onClick={startTextEdit}\n size={controlSize}\n >\n <Icon awesome={'pencil'} size={controlSize} />\n </Button>\n )}\n </React.Fragment>\n )}\n </div>\n );\n}\n\nexport function EditButton({\n onClick,\n size = 'm',\n}: {\n onClick: () => void;\n size?: ButtonProps['size'];\n}) {\n return (\n <Button className={block('edit-btn')} onClick={onClick} size={size}>\n <Icon awesome={'pencil'} />\n </Button>\n );\n}\n","import hammer from '../../common/hammer';\nimport {createSelector} from 'reselect';\n\nconst getHistogram = (state, props) => props.histogram;\n\nexport const createGetQuartiles = () =>\n createSelector(getHistogram, (histogram) => hammer.stat.quartiles(histogram.data));\n\nexport const createGetPDF = () =>\n createSelector(getHistogram, (histogram) => hammer.stat.pdf(histogram.data));\n\nexport const createGetECDF = () =>\n createSelector([getHistogram, createGetPDF()], (histogram, pdf) => {\n const ecdf = hammer.stat.ecdf(histogram.data);\n\n // Create fake points\n ecdf.steps.unshift({\n x: pdf.min,\n y: 0,\n });\n ecdf.steps.push({\n x: pdf.min + pdf.bucketNumber * pdf.bucketSize,\n y: 100,\n });\n\n return ecdf;\n });\n\nexport const createGetIsDataGood = () =>\n createSelector(\n [createGetPDF(), createGetECDF(), createGetQuartiles()],\n (pdfData, ecdfData, quartiles) => {\n if (pdfData.min === pdfData.max) {\n // All points are the same\n return false;\n } else if (ecdfData.steps.length < 5) {\n // We have got too few different points in data (including fake points)\n return false;\n } else if (quartiles.q75 - quartiles.q25 === 0) {\n // All points are almost the same\n return false;\n } else {\n return true;\n }\n },\n );\n","import compact_ from 'lodash/compact';\nimport React from 'react';\nimport YagrChartKit, {\n RawSerieData,\n YagrWidgetData,\n getSerieColor,\n} from '../YagrChartKit/YagrChartKit';\n\nimport formatLib from '../../common/hammer/format';\n\nexport interface HistogramChartProps {\n className: string;\n format: 'Number' | 'Bytes';\n ecdf: ECDFData;\n pdf: PDFData;\n dataName: string;\n lineOnly?: boolean;\n}\n\ninterface ECDFData {\n min: number;\n max: number;\n steps: Array<XY>;\n}\n\ntype XY = [X, Y] | {x: X; y: Y};\n\ninterface PDFData {\n bucketNumber: number;\n bucketSize: number;\n buckets: Array<[X, Y]>;\n min: X;\n max: X;\n}\n\ntype X = number;\ntype Y = number;\n\nfunction HistogramChart({className, pdf, ecdf, format, dataName, lineOnly}: HistogramChartProps) {\n const yagrData = React.useMemo(() => {\n const xFormat = format === 'Bytes' ? formatLib.Bytes : formatLib.Number;\n const {timeline, graphs, step} = lineOnly\n ? getLineOnlyData(pdf, ecdf)\n : getColumnData(pdf, ecdf);\n const res: YagrWidgetData = {\n data: {\n timeline,\n graphs,\n },\n libraryConfig: {\n axes: {\n x: {\n values: (_d, x) => x.map(xFormat),\n side: 'bottom',\n grid: {\n show: false,\n },\n },\n y1: {\n side: 'right',\n show: false,\n },\n y: {\n side: 'left',\n show: false,\n },\n },\n scales: {\n y1: {\n min: 0,\n max: 100,\n },\n y: {\n min: 0,\n },\n },\n tooltip: {\n render: (tooltipData) => {\n const {\n x,\n scales: [first, second],\n } = tooltipData;\n const columnValue = lineOnly ? undefined : first?.rows?.[0]?.originalValue;\n const lineValue = lineOnly\n ? first?.rows?.[0]?.originalValue\n : second?.rows?.[0]?.originalValue;\n\n return (\n renderDefaultTooltip({\n colValue:\n columnValue !== undefined\n ? formatLib.Number(columnValue)\n : undefined,\n colX0: xFormat(x - step / 2),\n colX1: xFormat(x + step / 2),\n lineValue:\n lineValue !== undefined\n ? formatLib.Number(lineValue, {digits: 2}) + '%'\n : undefined,\n lineX: xFormat(x),\n dataName,\n lineOnly,\n }) ?? '-'\n );\n },\n },\n },\n sources: {},\n };\n return res;\n }, [pdf, ecdf, format, lineOnly]);\n\n return (\n <div className={className}>\n <YagrChartKit type={'yagr'} data={yagrData} />\n </div>\n );\n}\n\nexport default React.memo(HistogramChart);\n\nfunction getColumnData(\n {buckets, min, bucketSize}: PDFData,\n {steps}: ECDFData,\n): YagrWidgetData['data'] & {step: number} {\n const timeline = [min - 0.1 * bucketSize];\n const data: Array<number> = [undefined!];\n const lineData: Array<number> = [undefined!];\n let j = 0;\n for (let i = 0; i < buckets.length; ++i) {\n const [x, y] = buckets[i];\n const bestX = x + bucketSize / 2;\n data.push(y);\n timeline.push(bestX);\n while (j < steps.length) {\n const item = steps[j];\n const itemX = getX(item);\n if (itemX === bestX) {\n lineData[i + 1] = Array.isArray(item) ? item[1] : item.y;\n break;\n } else if (itemX === undefined || itemX < bestX) {\n ++j;\n continue;\n } else {\n lineData[i + 1] = calcBestY(\n bestX,\n steps[Math.min(steps.length - 1, j - 1)],\n steps[j],\n )!;\n break;\n }\n }\n }\n timeline.push(min + (0.1 + bucketSize) * buckets.length);\n data.push(undefined!);\n lineData.push(undefined!);\n\n const graphs: RawSerieData[] = [\n {\n type: 'line' as const,\n data: lineData,\n scale: 'y1',\n color: getSerieColor(1),\n },\n {\n type: 'column' as const,\n data,\n color: getSerieColor(0),\n ...{\n renderOptions: {\n size: [1],\n gap: 1,\n },\n },\n },\n ];\n return {\n graphs,\n timeline,\n step: bucketSize,\n };\n}\n\nfunction getLineOnlyData(\n {min, buckets, bucketSize}: PDFData,\n {steps}: ECDFData,\n): ReturnType<typeof getColumnData> {\n const timeline: Array<number> = [min - 0.1 * bucketSize];\n const data: Array<number> = [NaN];\n\n for (const item of steps) {\n timeline.push(getX(item)!);\n data.push(getY(item)!);\n }\n\n timeline.push(min + (0.1 + bucketSize) * buckets.length);\n data.push(NaN);\n\n const graphs: Array<RawSerieData> = [\n {\n type: 'line' as const,\n data,\n color: getSerieColor(1),\n },\n ];\n\n return {\n timeline,\n graphs,\n step: NaN,\n };\n}\n\nfunction renderDefaultTooltip({\n colValue,\n colX0,\n colX1,\n lineValue,\n lineX,\n dataName,\n lineOnly,\n}: {\n colValue?: string;\n colX0: string;\n colX1: string;\n lineValue?: string;\n lineX: string;\n dataName: string;\n lineOnly?: boolean;\n}) {\n const lp = lineOnly ? '' : '~';\n return compact_([\n colValue !== undefined\n ? `<b>${colValue}</b> partitions contain in range from <b>${colX0}</b> to <b>${colX1}</b> - ${dataName}`\n : undefined,\n lineValue !== undefined\n ? `<b>${lp}${lineValue}</b> of tablets conains <b>${lp}${lineX}</b> or less`\n : undefined,\n ]).join('<br/>');\n}\n\nfunction getX(v?: XY) {\n return Array.isArray(v) ? v[0] : v?.x;\n}\n\nfunction getY(v?: XY) {\n return Array.isArray(v) ? v[1] : v?.y;\n}\n\nfunction calcBestY(bestX: number, left?: XY, right?: XY) {\n const ly = getY(left);\n const ry = getY(right);\n if (ly === undefined) {\n return ry;\n }\n\n if (ry === undefined) {\n return ly;\n }\n\n const lx = getX(left);\n const rx = getX(right);\n const k = (bestX - lx!) / (rx! - lx!);\n\n return ly + k * (ry - ly);\n}\n","import {connect} from 'react-redux';\nimport PropTypes from 'prop-types';\nimport hammer from '../../common/hammer';\nimport cn from 'bem-cn-lite';\nimport React from 'react';\n\nimport keys_ from 'lodash/keys';\nimport map_ from 'lodash/map';\n\nimport {\n createGetECDF,\n createGetIsDataGood,\n createGetPDF,\n createGetQuartiles,\n} from '../../store/selectors/histogram';\nimport HistogramChart from './HistogramChart';\n\nimport './Histogram.scss';\nimport {Checkbox, Select} from '@gravity-ui/uikit';\n\nconst block = cn('histogram');\n\nHistogram.quartilesProps = PropTypes.shape({\n min: PropTypes.number,\n q25: PropTypes.number,\n q50: PropTypes.number,\n q75: PropTypes.number,\n max: PropTypes.number,\n});\n\nHistogram.pdfProps = PropTypes.shape({\n bucketNumber: PropTypes.number,\n bucketSize: PropTypes.number,\n max: PropTypes.number,\n min: PropTypes.number,\n valueMax: PropTypes.number,\n valueMin: PropTypes.number,\n quartiles: Histogram.quartilesProps,\n buckets: PropTypes.array,\n});\n\nHistogram.ecdfProps = PropTypes.shape({\n min: PropTypes.number,\n max: PropTypes.number,\n steps: PropTypes.array,\n});\n\nHistogram.propTypes = {\n // from parent\n activeHistogram: PropTypes.string.isRequired,\n handleHistogramChange: PropTypes.func.isRequired,\n histogramItems: PropTypes.object.isRequired,\n\n histogram: PropTypes.shape({\n data: PropTypes.array.isRequired,\n format: PropTypes.string.isRequired,\n dataName: PropTypes.string.isRequired,\n dataFormat: PropTypes.string.isRequired,\n }).isRequired,\n\n // from connect\n quartiles: Histogram.quartilesProps.isRequired,\n pdf: Histogram.pdfProps.isRequired,\n ecdf: Histogram.ecdfProps.isRequired,\n isDataGood: PropTypes.bool.isRequired,\n};\n\nfunction Histogram(props) {\n const {activeHistogram, handleHistogramChange, histogramItems} = props;\n const {histogram, quartiles, pdf, ecdf, isDataGood} = props;\n\n const params = {...histogram, pdf, ecdf};\n\n const [isDatailedLine, setDetailed] = React.useState(false);\n\n return (\n <div className={block()}>\n <div className={block('toolbar')}>\n <Select\n value={[activeHistogram]}\n onUpdate={(values) => handleHistogramChange(values[0])}\n options={map_(keys_(histogramItems), (value) => {\n return {value, content: value};\n })}\n width=\"max\"\n />\n <Checkbox\n className={block('detailed')}\n checked={isDatailedLine}\n onUpdate={setDetailed}\n >\n Detailed line\n </Checkbox>\n </div>\n\n {isDataGood ? (\n <HistogramChart className={block('chart')} {...params} lineOnly={isDatailedLine} />\n ) : (\n <div className={block('bad-data')}>\n <p className={block('bad-data-message')}>\n Could not draw a descriptive chart with given data.\n </p>\n </div>\n )}\n\n <ul className={block('quartiles')}>\n <li className={block('quartiles-item')}>\n Min –{' '}\n <span className={block('quartiles-count')}>\n {hammer.format[histogram.format](quartiles.min)}\n </span>\n </li>\n <li className={block('quartiles-item')}>\n Q25% –{' '}\n <span className={block('quartiles-count')}>\n {hammer.format[histogram.format](quartiles.q25)}\n </span>\n </li>\n <li className={block('quartiles-item')}>\n Q50% –{' '}\n <span className={block('quartiles-count')}>\n {hammer.format[histogram.format](quartiles.q50)}\n </span>\n </li>\n <li className={block('quartiles-item')}>\n Q75% –{' '}\n <span className={block('quartiles-count')}>\n {hammer.format[histogram.format](quartiles.q75)}\n </span>\n </li>\n <li className={block('quartiles-item')}>\n Max –{' '}\n <span className={block('quartiles-count')}>\n {hammer.format[histogram.format](quartiles.max)}\n </span>\n </li>\n </ul>\n </div>\n );\n}\n\n// https://github.com/reduxjs/reselect#sharing-selectors-with-props-across-multiple-component-instances\nconst makeMapStateToProps = () => {\n const getQuartiles = createGetQuartiles();\n const getPDF = createGetPDF();\n const getECDF = createGetECDF();\n const getIsDataGood = createGetIsDataGood();\n\n return (state, props) => {\n const quartiles = getQuartiles(state, props);\n const pdf = getPDF(state, props);\n const ecdf = getECDF(state, props);\n const isDataGood = getIsDataGood(state, props);\n\n return {quartiles, pdf, ecdf, isDataGood};\n };\n};\n\nexport default connect(makeMapStateToProps)(Histogram);\n","import React, {Component} from 'react';\n\nimport {Toaster} from '@gravity-ui/uikit';\nimport {YTErrorBlock} from '../../components/Error/Error';\nimport hammer from '../../common/hammer';\n\nimport {showErrorPopup} from '../../utils/utils';\nimport {YTError} from '../../types';\n\nconst toaster = new Toaster();\n\ninterface LoadDataHandlerProps {\n alwaysShowError?: boolean;\n loaded: boolean;\n error: boolean;\n errorData?: YTError;\n children: React.ReactNode;\n}\n\nexport default class LoadDataHandler extends Component<LoadDataHandlerProps> {\n componentDidUpdate() {\n const {error, loaded, errorData} = this.props;\n\n if (error && loaded) {\n toaster.add({\n theme: 'danger',\n name: 'network',\n autoHiding: 500000,\n title: 'Oops! something went wrong.',\n content: errorData ? (errorData as YTError).message : hammer.format.NO_VALUE,\n actions: [\n {\n label: ' view',\n onClick: () => showErrorPopup(errorData as YTError),\n },\n ],\n });\n }\n }\n\n render() {\n const {alwaysShowError = false, error, errorData, loaded, children} = this.props;\n\n const initialLoading = !loaded;\n\n if (error && (alwaysShowError || initialLoading)) {\n return <YTErrorBlock error={errorData} />;\n }\n\n return children;\n }\n}\n","import ypath from '@ytsaurus/interface-helpers/lib/ypath';\nimport hammer from '@ytsaurus/interface-helpers/lib/hammer';\n\nexport default (attributes) => {\n const [compressionRatio, compressionCodec] = ypath.getValues(attributes, [\n '/compression_ratio',\n '/compression_codec',\n ]);\n\n return [\n {\n key: 'compression_ratio',\n value: hammer.format['Number'](compressionRatio, {digits: 5}),\n },\n {\n key: 'compression_codec',\n value: compressionCodec,\n },\n ];\n};\n","import ypath from '@ytsaurus/interface-helpers/lib/ypath';\nimport {docsUrl} from '../../../config';\nimport UIFactory from '../../../UIFactory';\n\nexport default (attributes) => {\n const [erasureCodec, replicationFactor] = ypath.getValues(attributes, [\n '/erasure_codec',\n '/replication_factor',\n ]);\n\n const hideReplicationFactor = erasureCodec && erasureCodec !== 'none';\n return [\n {\n key: 'erasure codec',\n value: erasureCodec,\n helpUrl: docsUrl(UIFactory.docsUrls['storage:replication#erasure']),\n visible: erasureCodec !== 'none',\n },\n {\n key: 'replication factor',\n value: replicationFactor,\n visible: !hideReplicationFactor && replicationFactor !== 'none',\n },\n ];\n};\n","import React from 'react';\nimport ypath from '@ytsaurus/interface-helpers/lib/ypath';\nimport {Template} from '../../../components/MetaTable/templates/Template';\nimport {SubjectCard} from '../../SubjectLink/SubjectLink';\nimport AccountLink from '../../../pages/accounts/AccountLink';\nimport UIFactory from '../../../UIFactory';\nimport {makeTTLItems} from './ttl';\n\nexport default function metaTablePresetMain(attributes) {\n const [id, owner, account, creationTime, modificationTime, accessTime, yql_op_id] =\n ypath.getValues(attributes, [\n '/id',\n '/owner',\n '/account',\n '/creation_time',\n '/modification_time',\n '/access_time',\n '/_yql_op_id',\n ]);\n\n const yqlLink = yql_op_id ? UIFactory.yqlWidgetSetup?.renderYqlOperationLink(yql_op_id) : null;\n\n return [\n {\n key: 'id',\n value: <Template.Id id={id} />,\n },\n {\n key: 'owner',\n value: <SubjectCard name={owner} />,\n },\n {\n key: 'account',\n value: <AccountLink account={account} />,\n visible: Boolean(account),\n },\n {\n key: 'creation_time',\n value: <Template.Time time={creationTime} valueFormat=\"DateTime\" />,\n visible: Boolean(creationTime),\n },\n ...makeTTLItems(attributes, {showTTLLabel: true}),\n {\n key: 'modification_time',\n value: <Template.Time time={modificationTime} valueFormat=\"DateTime\" />,\n visible: Boolean(modificationTime),\n },\n {\n key: 'access_time',\n value: <Template.Time time={accessTime} valueFormat=\"DateTime\" />,\n visible: Boolean(accessTime),\n },\n {\n key: 'YQL operation',\n value: yqlLink,\n visible: Boolean(yqlLink),\n },\n ];\n}\n","import map_ from 'lodash/map';\n\nimport React from 'react';\nimport ypath from '@ytsaurus/interface-helpers/lib/ypath';\nimport {Template} from '../../../components/MetaTable/templates/Template';\n\nexport default function metaTablePresetSize(attributes, mediumList) {\n const [uncompressedDataSize, compressedDataSize, primaryMedium] = ypath.getValues(attributes, [\n '/uncompressed_data_size',\n '/compressed_data_size',\n '/primary_medium',\n ]);\n const [usageDiskSpace, diskSpace] = ypath.getValues(attributes, [\n '/resource_usage/disk_space',\n '/disk_space',\n ]);\n\n const mediumsTemplates = map_(mediumList, (medium) => {\n const usageMediumDiskSpace = ypath.getValue(\n attributes,\n `/resource_usage/disk_space_per_medium/${medium}`,\n );\n const mediumDiskSpace = ypath.getValue(attributes, `/disk_space_per_medium/${medium}`);\n\n return {\n key: medium + '_disk_space',\n value: (\n <Template.FormattedValue\n value={usageMediumDiskSpace || mediumDiskSpace}\n format=\"Bytes\"\n />\n ),\n visible: Boolean(usageMediumDiskSpace || mediumDiskSpace),\n };\n });\n\n const showMediums = mediumsTemplates.filter((medium) => medium.visible).length > 1;\n\n return [\n {\n key: 'uncompressed_data_size',\n value: <Template.FormattedValue value={uncompressedDataSize} format=\"Bytes\" />,\n visible: Boolean(uncompressedDataSize),\n },\n {\n key: 'compressed_data_size',\n value: <Template.FormattedValue value={compressedDataSize} format=\"Bytes\" />,\n visible: Boolean(compressedDataSize),\n },\n {\n key: 'primary_medium',\n value: <Template.Readable value={primaryMedium} />,\n visible: Boolean(primaryMedium),\n },\n {\n key: 'disk_space',\n label: 'Total disk space',\n value: <Template.FormattedValue value={usageDiskSpace || diskSpace} format=\"Bytes\" />,\n visible: Boolean(usageDiskSpace || diskSpace),\n },\n ...(showMediums ? mediumsTemplates : []),\n ];\n}\n","import React from 'react';\nimport moment from 'moment';\nimport cn from 'bem-cn-lite';\n\nimport {Label, LabelProps} from '@gravity-ui/uikit';\n\nimport ypath from '../../../common/thor/ypath';\n\nimport {formatTimeDuration} from '../../../components/TimeDuration/TimeDuration';\nimport Link from '../../../components/Link/Link';\nimport Icon from '../../../components/Icon/Icon';\nimport UIFactory from '../../../UIFactory';\n\nimport {MetaTableItem} from '../MetaTable';\nimport {Template} from '../templates/Template';\nimport {makeNavigationLink} from '../../../utils/app-url';\n\nconst block = cn('meta-table-ttl');\n\nexport function makeTTLItems(attrs: unknown, {showTTLLabel}: {showTTLLabel?: false} = {}) {\n const expiration_time = ypath.getValue(attrs, '/expiration_time');\n const expiration_timeout = ypath.getValue(attrs, '/expiration_timeout');\n const {time, timeout} = ypath.getValue(attrs, '/effective_expiration') ?? {};\n\n const res: Array<MetaTableItem> = [];\n\n const className = block('ttl');\n\n if (time && time.value !== expiration_time) {\n res.push({\n key: 'effective_expiration_time',\n value: withTTL(moment(time.value).format('DD MMM YYYY HH:mm:ss'), showTTLLabel),\n className,\n });\n res.push({\n key: 'effective_expiration_time_path',\n qa: 'expiration_timeout_path',\n value: <Template.Link url={makeNavigationLink({path: time.path})} text={time.path} />,\n });\n }\n if (expiration_time) {\n res.push({\n key: 'expiration_time',\n value: withTTL(moment(expiration_time).format('DD MMM YYYY HH:mm:ss'), showTTLLabel),\n className,\n });\n }\n\n if (timeout && timeout.value !== expiration_timeout) {\n res.push({\n key: 'effective_expiration_timeout',\n value: withTTL(formatTimeDuration(timeout.value), showTTLLabel),\n className,\n });\n res.push({\n key: 'effective_expiration_timeout_path',\n qa: 'expiration_timeout_path',\n value: (\n <Template.Link url={makeNavigationLink({path: timeout.path})} text={timeout.path} />\n ),\n });\n }\n if (expiration_timeout) {\n res.push({\n key: 'expiration_timeout',\n value: withTTL(formatTimeDuration(expiration_timeout), showTTLLabel),\n className,\n });\n }\n\n return res;\n}\n\nfunction withTTL(children: React.ReactNode, showTTLLabel = false) {\n return (\n <React.Fragment>\n {children}{' '}\n <Link\n className={block('ttl-info')}\n url={UIFactory.docsUrls['cypress:ttl']}\n theme=\"secondary\"\n >\n <Icon awesome={'question-circle'} />\n </Link>{' '}\n {showTTLLabel && <TTLLabel />}\n </React.Fragment>\n );\n}\n\nexport function TTLLabel({size}: {size?: LabelProps['size']}) {\n return (\n <Label theme={'warning'} size={size}>\n TTL\n </Label>\n );\n}\n","import React from 'react';\nimport cn from 'bem-cn-lite';\n\nimport {TextInput, TextInputProps} from '@gravity-ui/uikit';\nimport {Tooltip} from '../../components/Tooltip/Tooltip';\n\nimport hammer from '../../common/hammer';\n\nimport {parseBytes} from '../../utils';\nimport {KeyCode} from '../../constants';\nimport './NumberInput.scss';\n\nconst block = cn('yt-number-input');\n\nexport function parseValue(rawValue: string, format: NumberInputProps['format']) {\n if (rawValue === '') {\n return undefined;\n }\n const skipSpaces = rawValue.replace(/\\s/g, '');\n return format === 'Bytes' ? parseBytes(skipSpaces) : Number(skipSpaces);\n}\n\nexport function formatValue(\n value: NumberInputProps['value'],\n format?: NumberInputProps['format'],\n settings?: object,\n) {\n if (value === undefined) {\n return '';\n }\n\n const res =\n format === 'Bytes'\n ? hammer.format['Bytes'](value, settings)\n : hammer.format['Number'](value, settings);\n return res === hammer.format.NO_VALUE ? '' : res;\n}\n\nfunction toRawValue(value: NumberInputProps['value']) {\n return value === undefined ? '' : value;\n}\n\nexport interface NumberInputWithErrorProps\n extends Omit<TextInputProps, 'value' | 'onChange' | 'theme' | 'error' | 'defaultValue'> {\n className?: string;\n\n format?: 'Number' | 'Bytes'; // 'Number' by default\n\n formatFn?: (v: NumberInputProps['value']) => string;\n parseFn?: (v: string) => NumberInputWithErrorProps['value'];\n\n decimalPlaces?: number;\n value?: {\n value: number | undefined;\n error?: string;\n };\n\n showDefaultValue?: boolean;\n defaultValue?: number;\n defaultValueClassName?: string;\n\n onChange: (v: NumberInputWithErrorProps['value']) => void;\n onEnterKeyDown?: () => void;\n\n validator?: (v?: number) => string | undefined;\n min?: number;\n max?: number;\n integerOnly?: boolean;\n\n showHint?: boolean;\n\n hidePrettyValue?: boolean;\n preciseInitialRawValue?: boolean;\n\n bottomLineVisibility?: 'visible' | 'hidden' | 'focused';\n\n disabled?: boolean;\n}\n\ninterface State {\n parsedValue?: number;\n parsedError?: string;\n rawValue?: string;\n formattedValue?: string;\n focused?: boolean;\n}\n\nexport class NumberInputWithError extends React.Component<NumberInputWithErrorProps, State> {\n static defaultProps = {\n size: 'm',\n view: 'normal',\n hasClear: true,\n bottomLineVisibility: 'visible',\n };\n\n static getDerivedStateFromProps(\n props: NumberInputWithErrorProps,\n state: State,\n ): Partial<State> | null {\n const {value, format, preciseInitialRawValue, decimalPlaces, formatFn} = props;\n if (state.rawValue === undefined) {\n const formatted = formatFn\n ? formatFn(value?.value)\n : formatValue(value?.value, format, {\n digits: decimalPlaces,\n });\n return {\n parsedValue: value?.value,\n parsedError: NumberInputWithError.errorFromValue(value, props),\n rawValue: preciseInitialRawValue ? toRawValue(value?.value) : formatted,\n formattedValue: formatted,\n };\n }\n\n return null;\n }\n\n static errorFromValue(v: NumberInputWithErrorProps['value'], props: NumberInputWithErrorProps) {\n const {validator = () => undefined, min, max, integerOnly} = props;\n const {value, error} = v || {};\n\n if (error) {\n return error;\n }\n\n if (value === undefined || value === null) {\n return undefined;\n }\n\n try {\n if (isNaN(value)) {\n return 'wrong format';\n }\n\n const error = validator(value);\n if (error) {\n return error;\n }\n } catch (error) {\n return String(error);\n }\n\n if (integerOnly && value % 1 !== 0) {\n return `The value must be an integer`;\n }\n\n if (min !== undefined && value < min) {\n return `The value must be \\u2265 ${min}`;\n }\n\n if (max !== undefined && value > max) {\n return `The value must be \\u2264 ${max}`;\n }\n\n return undefined;\n }\n\n state: State = {parsedValue: NaN};\n\n // eslint-disable-next-line react/sort-comp\n parseValue(rawValue: string): NumberInputWithErrorProps['value'] {\n if (this.props.parseFn) {\n return this.props.parseFn(rawValue);\n }\n return {value: parseValue(rawValue, this.props.format)};\n }\n\n format(value: NumberInputProps['value']) {\n const {format, decimalPlaces, formatFn} = this.props;\n if (formatFn) {\n return formatFn(value);\n }\n return formatValue(value, format, {digits: decimalPlaces});\n }\n\n onChange = (rawValue: string) => {\n const parsedValue = this.parseValue(rawValue);\n const error = NumberInputWithError.errorFromValue(parsedValue, this.props);\n const formattedValue = this.format(parsedValue?.value);\n this.setState({\n parsedValue: parsedValue?.value,\n parsedError: error,\n rawValue,\n formattedValue,\n });\n\n const {onChange} = this.props;\n onChange({value: parsedValue?.value, error});\n };\n\n onBlur = () => {\n this.setState({focused: false});\n };\n\n onFocus = () => {\n this.setState({focused: true});\n };\n\n getRestProps() {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const {value, onChange, min, max, validator, format, defaultValue, ...rest} = this.props;\n return rest;\n }\n\n onKeyDown = (e: React.KeyboardEvent) => {\n if (e.keyCode === KeyCode.ENTER && this.props.onEnterKeyDown) {\n this.props.onEnterKeyDown();\n }\n };\n\n renderMinMaxHint() {\n const {min, max, showHint, size} = this.props;\n const showMin = !isNaN(min!);\n const showMax = !isNaN(max!);\n if (!showHint || (!showMin && !showMax)) {\n return null;\n }\n return (\n <div className={block('hint', {size})}>\n {showMin && (\n <Tooltip content={String(min)} placement={'bottom'}>\n min: <b>{this.format(min)}</b>\n </Tooltip>\n )}\n {showMin && <> </>}\n {showMax && (\n <Tooltip content={String(max)} placement={'bottom'}>\n max: <b>{this.format(max)}</b>\n </Tooltip>\n )}\n </div>\n );\n }\n\n renderPrettyValue() {\n const {size, hidePrettyValue} = this.props;\n const {formattedValue} = this.state;\n\n if (hidePrettyValue) {\n return null;\n }\n\n return <div className={block('pretty-value', {size})}>{formattedValue} </div>;\n }\n\n renderDefaultValue() {\n const {defaultValue, defaultValueClassName} = this.props;\n\n return (\n <TextInput\n disabled\n className={defaultValueClassName}\n value={this.format(defaultValue)}\n pin={'clear-round'}\n />\n );\n }\n\n isBottomLineVisible() {\n const {bottomLineVisibility} = this.props;\n const {focused} = this.state;\n\n return (\n bottomLineVisibility === 'visible' || (focused && bottomLineVisibility === 'focused')\n );\n }\n\n render() {\n const {\n value: propsValue,\n className,\n showHint,\n hidePrettyValue,\n showDefaultValue,\n } = this.props;\n const {parsedError, rawValue, formattedValue, focused} = this.state;\n const rest = this.getRestProps();\n const {size, view, hasClear} = rest;\n\n const {error} = propsValue ?? {};\n\n const err = error || parsedError;\n\n const text = focused ? rawValue : formattedValue;\n\n return (\n <div className={block(null, className)}>\n <div className={block('top')}>\n <TextInput\n {...rest}\n error={err as any}\n autoComplete={false}\n onUpdate={this.onChange}\n onKeyDown={this.onKeyDown}\n hasClear={hasClear}\n value={text}\n size={size}\n view={view}\n onBlur={this.onBlur}\n onFocus={this.onFocus}\n pin={showDefaultValue ? 'round-brick' : undefined}\n />\n {showDefaultValue && this.renderDefaultValue()}\n </div>\n {!err && this.isBottomLineVisible() && (\n <React.Fragment>\n {showHint && (!focused || hidePrettyValue)\n ? this.renderMinMaxHint()\n : this.renderPrettyValue()}\n </React.Fragment>\n )}\n </div>\n );\n }\n}\n\nexport interface NumberInputProps extends Omit<NumberInputWithErrorProps, 'value' | 'onChange'> {\n value: number | undefined;\n onChange: (value: NumberInputProps['value']) => void;\n\n error?: string;\n}\n\nexport default class NumberInput extends React.Component<NumberInputProps> {\n static format(\n value: NumberInputProps['value'],\n format?: NumberInputWithErrorProps['format'],\n settings?: object,\n ) {\n return formatValue(value, format, settings);\n }\n\n render() {\n const {\n value,\n error,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n onChange,\n ...rest\n } = this.props;\n\n return <NumberInputWithError {...rest} onChange={this.onChange} value={{value, error}} />;\n }\n\n onChange: NumberInputWithErrorProps['onChange'] = (v) => {\n this.props.onChange(v?.value);\n };\n}\n","import React from 'react';\nimport moment from 'moment';\nimport cn from 'bem-cn-lite';\n\nimport {\n NumberInputWithError,\n NumberInputWithErrorProps,\n} from '../../components/NumberInput/NumberInput';\nimport {Tooltip} from '../../components/Tooltip/Tooltip';\nimport MetaTable from '../../components/MetaTable/MetaTable';\nimport Icon from '../../components/Icon/Icon';\n\nimport './TimeDuration.scss';\n\nconst block = cn('yt-time-duration');\n\nexport type TimeDurationProps = {\n className?: string;\n\n value: NumberInputWithErrorProps['value'];\n onChange: (value: TimeDurationProps['value']) => void;\n};\n\nexport function TimeDuration({value, onChange}: TimeDurationProps) {\n return (\n <div className={block()}>\n <NumberInputWithError\n className={block('input')}\n value={value}\n onChange={onChange}\n formatFn={formatTimeDuration}\n parseFn={parseTimeDuration}\n />\n <Tooltip\n content={\n <div>\n <MetaTable\n items={[\n makeItems({\n y: 'years',\n w: 'weeks',\n M: 'months',\n d: 'days',\n }),\n makeItems({\n h: 'hours',\n m: 'minutes',\n s: 'seconds',\n ms: 'milliseconds',\n }),\n ]}\n />\n Examles: 1M2d3h, 4h15m\n </div>\n }\n >\n <Icon className={block('info')} awesome={'question-circle'} />\n </Tooltip>\n </div>\n );\n}\n\nTimeDuration.hasErrorRenderer = true;\n\nTimeDuration.getDefaultValue = (): TimeDurationProps['value'] => {\n return {value: undefined};\n};\n\nTimeDuration.isEmpty = (v: TimeDurationProps['value']) => {\n return !v;\n};\n\nTimeDuration.validate = (v: TimeDurationProps['value']) => {\n return v?.error;\n};\n\nexport function formatTimeDuration(value?: number) {\n if (!value && value !== 0) {\n return '';\n }\n\n let rest = value;\n let res = '';\n\n const h = 3600 * 1000;\n const d = 24 * h;\n const M = 30 * d;\n const y = 365 * d;\n\n const parts = {\n y,\n M,\n d,\n h,\n m: 60 * 1000,\n s: 1000,\n ['']: 1,\n };\n\n Object.keys(parts).forEach((k) => {\n const p: number = parts[k as keyof typeof parts];\n const count = Math.floor(rest / p);\n if (count > 0) {\n res += `${count}${k} `;\n rest -= count * p;\n }\n });\n\n return res;\n}\n\nexport function parseTimeDuration(rawValue: string) {\n if (!rawValue) {\n return {value: undefined};\n }\n const skipSpaces = rawValue.replace(/\\s+/g, '');\n const res = [...skipSpaces.matchAll(/\\d+[a-zA-Z]*/g)];\n if (!res.length || res[0].index !== 0) {\n return {value: undefined, error: 'wrong format'};\n }\n\n let value = 0;\n for (const match of res) {\n const {[0]: digits, input} = match[0].match(/\\d+/) || {};\n if (!digits) {\n return {value: undefined, error: 'wring fromat 1'};\n }\n\n const type = input?.substring(digits.length) ?? '';\n const d = Number(digits);\n const toAdd = moment.duration(d, type as any).valueOf() as number;\n if (toAdd === 0 && d !== 0) {\n return {value: undefined, error: `wrong format of ${input}`};\n }\n\n value += toAdd;\n }\n return {value};\n}\n\nfunction makeItems(data: Record<string, string>) {\n return Object.keys(data).map((key) => ({key: key, label: key, value: data[key]}));\n}\n","import React from 'react';\n// For some reason React.memo drops the generic prop type and creates a regular union type\n// https://github.com/DefinitelyTyped/DefinitelyTyped/issues/37087#issuecomment-542793243\nexport const typedMemo = React.memo;\n","import React from 'react';\nimport { CHARTKIT_ERROR_CODE } from '../../libs';\nimport { getErrorMessage } from '../../utils/getErrorMessage';\nexport class ErrorBoundary extends React.Component {\n constructor() {\n super(...arguments);\n this.state = {\n error: undefined,\n };\n this.resetError = () => {\n if (this.state.error) {\n this.setState({ error: undefined });\n }\n };\n }\n static getDerivedStateFromError(error) {\n return { error };\n }\n componentDidCatch() {\n var _a, _b;\n const { error } = this.state;\n if (error) {\n (_b = (_a = this.props).onError) === null || _b === void 0 ? void 0 : _b.call(_a, { error });\n }\n }\n componentDidUpdate(prevProps) {\n if (prevProps.data !== this.props.data) {\n const { error } = this.state;\n if (error && 'code' in error && error.code === CHARTKIT_ERROR_CODE.NO_DATA) {\n this.resetError();\n }\n }\n }\n render() {\n const { error } = this.state;\n if (error) {\n const message = getErrorMessage(error);\n if (this.props.renderError) {\n return this.props.renderError({\n error,\n message,\n resetError: this.resetError,\n });\n }\n return React.createElement(\"div\", null, message);\n }\n return this.props.children;\n }\n}\n","import { i18n } from '../i18n';\nexport function getErrorMessage(error) {\n const code = 'code' in error && error.code;\n return (error.message || code || i18n('error', 'label_unknown-error')).toString();\n}\n","import { __rest } from \"tslib\";\nimport React from 'react';\nimport { Loader as BaseLoader } from '@gravity-ui/uikit';\nimport { block } from '../../utils/cn';\nimport './Loader.css';\nconst b = block('loader');\nexport const Loader = (_a) => {\n var { renderPluginLoader } = _a, props = __rest(_a, [\"renderPluginLoader\"]);\n const pluginLoader = renderPluginLoader === null || renderPluginLoader === void 0 ? void 0 : renderPluginLoader();\n // React.Suspense complains about possible undefined in \"fallback\" property\n if (typeof pluginLoader !== 'undefined') {\n return pluginLoader;\n }\n return (React.createElement(\"div\", { className: b() },\n React.createElement(BaseLoader, Object.assign({}, props))));\n};\n","import { __rest } from \"tslib\";\nimport React from 'react';\nimport { i18n } from '../i18n';\nimport { CHARTKIT_ERROR_CODE, ChartKitError, settings } from '../libs';\nimport { getRandomCKId, typedMemo } from '../utils';\nimport { cn } from '../utils/cn';\nimport { ErrorBoundary } from './ErrorBoundary/ErrorBoundary';\nimport { Loader } from './Loader/Loader';\nimport './ChartKit.css';\nconst b = cn('chartkit');\nconst ChartKitComponent = (props) => {\n const widgetRef = React.useRef();\n const { instanceRef, id: propsId, type, isMobile, renderPluginLoader } = props, restProps = __rest(props, [\"instanceRef\", \"id\", \"type\", \"isMobile\", \"renderPluginLoader\"]);\n const ckId = React.useMemo(() => getRandomCKId(), []);\n const id = propsId || ckId;\n const lang = settings.get('lang');\n const plugins = settings.get('plugins');\n const plugin = plugins.find((iteratedPlugin) => iteratedPlugin.type === type);\n if (!plugin) {\n throw new ChartKitError({\n code: CHARTKIT_ERROR_CODE.UNKNOWN_PLUGIN,\n message: i18n('error', 'label_unknown-plugin', { type }),\n });\n }\n const ChartComponent = plugin.renderer;\n React.useImperativeHandle(instanceRef, () => ({\n reflow(details) {\n var _a;\n if ((_a = widgetRef.current) === null || _a === void 0 ? void 0 : _a.reflow) {\n widgetRef.current.reflow(details);\n }\n },\n }), []);\n return (React.createElement(React.Suspense, { fallback: React.createElement(Loader, { renderPluginLoader: renderPluginLoader }) },\n React.createElement(\"div\", { className: b({ mobile: isMobile }, 'chartkit-theme_common') },\n React.createElement(ChartComponent, Object.assign({ ref: widgetRef, id: id, lang: lang }, restProps)))));\n};\nconst ChartKitComponentWithErrorBoundary = React.forwardRef(function ChartKitComponentWithErrorBoundary(props, ref) {\n return (React.createElement(ErrorBoundary, { onError: props.onError, data: props.data, renderError: props.renderError },\n React.createElement(ChartKitComponent, Object.assign({ instanceRef: ref }, props))));\n}) /* https://stackoverflow.com/a/58473012 */;\nexport const ChartKit = typedMemo(ChartKitComponentWithErrorBoundary);\n","import { ChartKit } from './components/ChartKit';\nimport { settings } from './libs';\nexport * from './types/widget-data';\nexport * from './libs/chartkit-error/chartkit-error';\nexport { settings };\nexport default ChartKit;\n","import React from 'react';\nexport * from './types';\nexport const YagrPlugin = {\n type: 'yagr',\n renderer: React.lazy(() => import('./renderer/YagrWidget')),\n};\n","import ChartKit, {settings} from '@gravity-ui/chartkit';\nimport {YagrPlugin} from '@gravity-ui/chartkit/yagr';\nexport type {RawSerieData, YagrWidgetData} from '@gravity-ui/chartkit/yagr';\n\nimport '@gravity-ui/yagr/dist/index.css';\n\nsettings.set({plugins: [YagrPlugin]});\n\nconst COLORS = ['rgb(77, 162, 241)', 'rgb(255, 61, 100)'];\n\nexport function getSerieColor(serieIndex: number) {\n return COLORS[serieIndex % COLORS.length];\n}\n\nexport default ChartKit;\n","import React from 'react';\nimport unipika from '../../common/thor/unipika';\nimport block from 'bem-cn-lite';\n\nimport Link from '../../components/Link/Link';\n\nimport hammer from '../../common/hammer';\nimport {showErrorPopup} from '../../utils/utils';\n\nimport './utils.scss';\n\nfunction wrapRenderMethods(templates) {\n return Object.keys(templates).reduce((newTemplates, key) => {\n newTemplates[key] = templates[key];\n\n return newTemplates;\n }, {});\n}\n\n/**\n * Template must be a scoped function, because they are bound to elements-table component instance\n * @param {ViewModel} item\n * @param {String} columnName\n */\nfunction defaultTemplate(item, columnName) {\n return String(hammer.format['ValueOrDefault'](item[columnName]));\n}\n\nfunction prepareTextProps(text, asHTML) {\n const props = {};\n\n if (asHTML) {\n // Need to render html strings\n props.dangerouslySetInnerHTML = {__html: text};\n } else {\n props.children = unipika.decode(String(text));\n }\n\n return props;\n}\n\nexport function renderText(text, settings = {}) {\n let className = block('elements-text');\n\n if (settings.mix) {\n className = className(\n false,\n block(settings.mix.block)(settings.mix.elem, {\n ...settings.mix.mods,\n }),\n );\n } else {\n className = className();\n }\n\n const textProps = prepareTextProps(text, settings.asHTML);\n\n const title = settings.title || text;\n\n return <span {...textProps} title={title} className={className} />;\n}\n\nexport function printColumnAsBytes(item, columnName) {\n const column = this.getColumn(columnName);\n return hammer.format['Bytes'](column.get(item));\n}\n\nexport function printColumnAsNumber(item, columnName) {\n const column = this.getColumn(columnName);\n return hammer.format['Number'](column.get(item));\n}\n\nexport function printColumnAsTimeDurationWithMs(item, columnName) {\n const column = this.getColumn(columnName);\n return hammer.format['TimeDuration'](column.get(item), {\n format: 'milliseconds',\n });\n}\n\nexport function printColumnAsReadableField(item, columnName) {\n const column = this.getColumn(columnName);\n return (\n <span className=\"elements-ellipsis\">\n {hammer.format['ReadableField'](column.get(item))}\n </span>\n );\n}\n\nexport function printColumnAsTime(item, columnName) {\n const value = this?.getColumn ? this.getColumn(columnName).get(item) : item[columnName];\n return <ColumnAsTime value={value} />;\n}\n\nexport function ColumnAsTime({value}) {\n return (\n <span className=\"elements-ellipsis\">\n {hammer.format['DateTime'](value, {format: 'full'})}\n </span>\n );\n}\n\nexport function printColumnAsError(error) {\n const showError = () => {\n showErrorPopup(error, {hideOopsMsg: true});\n };\n return typeof error === 'object' ? (\n <Link theme=\"ghost\" onClick={showError}>\n View\n </Link>\n ) : (\n hammer.format.NO_VALUE\n );\n}\n\n// Using prepared table data\nexport function asBytes(item, columnName) {\n return hammer.format['Bytes'](item[columnName]);\n}\n\nexport function asNumber(item, columnName) {\n return hammer.format['Number'](item[columnName]);\n}\n\nexport default {\n __default__: defaultTemplate,\n _templates: {},\n add: function (templateId, templates) {\n this._templates[templateId] = wrapRenderMethods(templates);\n },\n get: function (templateId) {\n return this._templates[templateId] || {};\n },\n};\n","import React from 'react';\nimport Link from '../../components/Link/Link';\nimport {AccountsTab} from '../../constants/accounts/accounts';\nimport {Page} from '../../constants';\nimport {useSelector} from 'react-redux';\nimport {getCluster} from '../../store/selectors/global';\nimport hammer from '../../common/hammer';\nimport {Tooltip} from '../../components/Tooltip/Tooltip';\nimport ClipboardButton from '../../components/ClipboardButton/ClipboardButton';\n\ninterface Props {\n className?: string;\n account?: string;\n cluster?: string;\n\n inline?: boolean;\n}\n\nexport function genAccountsUrl(cluster: string, account: string) {\n return `/${cluster}/${Page.ACCOUNTS}/${AccountsTab.GENERAL}?account=${account}`;\n}\n\nexport default function AccountLink(props: Props) {\n const {cluster: propsCluster, account, className, inline} = props;\n const currentCluster = useSelector(getCluster);\n const cluster = propsCluster || currentCluster;\n\n return (\n <Tooltip\n ellipsis={inline}\n className={className}\n content={\n !account ? null : (\n <>\n <ClipboardButton text={account} view=\"flat-secondary\" /> {account}\n </>\n )\n }\n >\n {account ? (\n <Link theme={'primary'} routed url={genAccountsUrl(cluster, account)}>\n {account}\n </Link>\n ) : (\n hammer.format.NO_VALUE\n )}\n </Tooltip>\n );\n}\n","import ypath from '@ytsaurus/interface-helpers/lib/ypath';\n\nimport keys_ from 'lodash/keys';\n\nexport default class Partition {\n constructor(data) {\n this.$value = data.index;\n this.$attributes = data;\n\n this.index = data.index;\n this.pivotKey = ypath.getValue(data, '/pivot_key');\n this.isEden = ypath.getValue(data, '/isEden');\n\n this.state = ypath.getValue(data, '/state');\n this.compressed = Number(ypath.getValue(data, '/compressed_data_size'));\n this.uncompressed = Number(ypath.getValue(data, '/uncompressed_data_size'));\n this.unmergedRows = Number(ypath.getValue(data, '/unmerged_row_count'));\n this.sampleKeyCount = Number(ypath.getValue(data, '/sample_key_count'));\n\n let stores = ypath.getValue(data, '/stores');\n stores = stores ? keys_(stores) : [];\n\n this.stores = stores;\n this.storeCount = stores.length;\n }\n}\n","import extend_ from 'lodash/extend';\nimport map_ from 'lodash/map';\n\nimport Partition from '../../utils/tablet/partition';\n\nexport const histogramItems = {\n unmerged_row_count: {\n format: 'Number',\n },\n uncompressed_data_size: {\n dataName: 'bytes',\n format: 'Bytes',\n },\n store_count: {\n format: 'Number',\n },\n};\n\nexport function preparePartitions(contents) {\n const partitions = map_(contents.partitions, (partition, index) => {\n partition.attributes = Object.assign({}, partition);\n partition.index = index;\n return new Partition(partition);\n });\n\n const eden = new Partition(\n extend_(\n {\n isEden: true,\n index: -1,\n attributes: extend_({}, contents.eden),\n },\n contents.eden,\n ),\n );\n\n partitions.unshift(eden);\n\n return partitions;\n}\n","import yt from '@ytsaurus/javascript-wrapper/lib/yt';\n\nimport find_ from 'lodash/find';\n\nimport ypath from '@ytsaurus/interface-helpers/lib/ypath';\nimport CancelHelper from '../../../utils/cancel-helper';\nimport {GENERIC_ERROR_MESSAGE, TYPED_OUTPUT_FORMAT} from '../../../constants/index';\nimport {preparePartitions} from '../../../utils/tablet/tablet';\nimport {\n CHANGE_ACTIVE_HISTOGRAM,\n CHANGE_CONTENT_MODE,\n LOAD_TABLET_DATA,\n} from '../../../constants/tablet';\nimport {YTApiId, ytApiV3Id} from '../../../rum/rum-wrap-api';\n\nconst requests = new CancelHelper();\n\nfunction loadPartitions({cellLeadingPeer, tabletPath, unorderedDynamicTable, ...rest}) {\n if (cellLeadingPeer) {\n return ytApiV3Id\n .get(YTApiId.tabletPartitions, {\n path: tabletPath,\n output_format: TYPED_OUTPUT_FORMAT,\n })\n .then((data) => {\n const contents = ypath.getValue(data, '');\n const tabletErrors = ypath.getValue(data, '/errors') || [];\n const replicationErrors = ypath.getValue(data, '/replication_errors') || {};\n\n const pivotKey = contents.pivot_key;\n const nextPivotKey = contents.next_pivot_key;\n const partitions = unorderedDynamicTable ? [] : preparePartitions(contents);\n\n const res = {\n pivotKey,\n nextPivotKey,\n partitions,\n tabletErrors,\n replicationErrors,\n tabletPath,\n cellLeadingPeer,\n unorderedDynamicTable,\n ...rest,\n };\n if (!unorderedDynamicTable) {\n return res;\n }\n\n const storesPath = `${tabletPath}/stores`;\n return ytApiV3Id\n .get(YTApiId.tabletStores, {\n path: storesPath,\n output_format: TYPED_OUTPUT_FORMAT,\n })\n .then((stores) => {\n return {...res, stores};\n });\n })\n .catch((error) => {\n return Promise.reject({\n message:\n 'Could not load tablet partitions information. ' + GENERIC_ERROR_MESSAGE,\n details: error,\n });\n });\n } else {\n return Promise.reject({\n message: 'Tablet cell has no leading peer. No information to show.',\n details: {},\n });\n }\n}\n\nfunction loadCellAttributes({id, attributes, tablePath, unorderedDynamicTable}) {\n if (attributes.cell_id) {\n return ytApiV3Id\n .get(YTApiId.tabletCellAttributes, {\n path: '//sys/tablet_cells/' + attributes.cell_id + '/@',\n })\n .then((tabletCellAttributes) => {\n const cellLeadingPeer = find_(\n tabletCellAttributes.peers,\n (peer) => peer.state === 'leading',\n );\n let tabletPath;\n\n if (id && cellLeadingPeer) {\n tabletPath = `//sys/cluster_nodes/${cellLeadingPeer.address}/orchid/tablet_cells/${attributes.cell_id}/tablets/${id}`;\n }\n\n return {\n id,\n attributes,\n tablePath,\n tabletCellAttributes,\n cellLeadingPeer,\n tabletPath,\n unorderedDynamicTable,\n };\n })\n .catch((error) => {\n return Promise.reject({\n message:\n \"Could not load tablet's tablet cell attributes.\" + GENERIC_ERROR_MESSAGE,\n details: error,\n });\n });\n } else {\n return Promise.reject({\n message: 'Tablet is not mounted. No information to show.',\n details: {},\n });\n }\n}\n\nfunction loadTableAttributes({id, attributes}) {\n return ytApiV3Id\n .get(YTApiId.tabletTableAttributes, {\n path: '#' + attributes.table_id + '/@',\n attributes: ['path', 'sorted', 'type', 'dynamic'],\n })\n .catch((error) => {\n return Promise.reject({\n message: \"Could not load tablet's table attributes. \" + GENERIC_ERROR_MESSAGE,\n details: error,\n });\n })\n .then((tableAttributes) => {\n const tablePath = ypath.getValue(tableAttributes, '/path');\n\n return {\n id,\n attributes,\n tablePath,\n unorderedDynamicTable: isUnorderedDynamicTable(tableAttributes),\n };\n });\n}\n\nfunction loadAttributes(id) {\n return ytApiV3Id\n .get(YTApiId.tabletAttribute, {path: '//sys/tablets/' + id + '/@'})\n .then((attributes) => {\n return {id, attributes};\n })\n .catch((error) => {\n return Promise.reject({\n message: 'Could not load tablet attributes. ' + GENERIC_ERROR_MESSAGE,\n details: error,\n });\n });\n}\n\nexport function loadTabletData(id) {\n return (dispatch) => {\n dispatch({type: LOAD_TABLET_DATA.REQUEST});\n\n return loadAttributes(id)\n .then(loadTableAttributes)\n .then(loadCellAttributes)\n .then(loadPartitions)\n .then((data) => {\n dispatch({\n type: LOAD_TABLET_DATA.SUCCESS,\n data,\n });\n })\n .catch((error) => {\n if (error.code !== yt.codes.CANCELLED) {\n dispatch({\n type: LOAD_TABLET_DATA.FAILURE,\n data: {error},\n });\n }\n });\n };\n}\n\nexport function changeContentMode(contentMode) {\n return {\n type: CHANGE_CONTENT_MODE,\n data: {contentMode},\n };\n}\n\nexport function changeActiveHistogram(activeHistogram) {\n return {\n type: CHANGE_ACTIVE_HISTOGRAM,\n data: {activeHistogram},\n };\n}\n\nexport function abortAndReset() {\n return (dispatch) => {\n requests.removeAllRequests();\n dispatch({type: LOAD_TABLET_DATA.CANCELLED});\n };\n}\n\nfunction isUnorderedDynamicTable(attributes) {\n const type = ypath.getValue(attributes, '/type');\n const dynamic = type === 'table' && ypath.getValue(attributes, '/dynamic');\n return dynamic && !ypath.getValue(attributes, '/sorted');\n}\n","export const partitionsTableItems = {\n index: {\n sort: true,\n caption: '#',\n align: 'right',\n get(partition) {\n return partition.index;\n },\n },\n state: {\n align: 'center',\n sort(partition) {\n return {\n normal: 0,\n splitting: 1,\n merging: 2,\n compacting: 3,\n sampling: 4,\n partitioning: 5,\n }[partition.state];\n },\n get(partition) {\n return partition.state;\n },\n },\n unmerged_row_count: {\n sort: true,\n align: 'right',\n get(partition) {\n return partition.unmergedRows;\n },\n },\n uncompressed_data_size: {\n sort: true,\n align: 'right',\n get(partition) {\n return partition.uncompressed;\n },\n },\n compressed_data_size: {\n sort: true,\n align: 'right',\n get(partition) {\n return partition.compressed;\n },\n },\n store_count: {\n sort: true,\n align: 'right',\n get(partition) {\n return partition.storeCount;\n },\n },\n sample_key_count: {\n sort: true,\n align: 'right',\n get(partition) {\n return partition.sampleKeyCount;\n },\n },\n pivot_key: {\n sort: false,\n align: 'left',\n get(partition) {\n return partition.pivotKey;\n },\n },\n actions: {\n caption: '',\n align: 'right',\n sort: false,\n },\n};\n\nexport const storesTableItems = {\n id: {\n align: 'left',\n show: true,\n sort(store) {\n return store.$value;\n },\n get(store) {\n return store.$value;\n },\n },\n store_state: {\n align: 'center',\n sort: true,\n show: true,\n get(store) {\n return store.storeState;\n },\n },\n row_count: {\n align: 'left',\n sort: true,\n show: true,\n get(store) {\n return store.rowCount;\n },\n },\n attributes: {\n caption: '',\n align: 'left',\n sort: false,\n },\n};\n","import mapValues_ from 'lodash/mapValues';\nimport map_ from 'lodash/map';\n\nimport hammer from '../../../common/hammer';\nimport {createSelector} from 'reselect';\nimport {histogramItems} from '../../../utils/tablet/tablet';\nimport {partitionsTableItems} from '../../../utils/tablet/table';\nimport {TABLET_PARTITIONS_TABLE_ID} from '../../../constants/tablet';\n\nconst getRawPartitions = (state) => state.tablet.tablet.partitions;\nconst getSortState = (state) => state.tables[TABLET_PARTITIONS_TABLE_ID];\nexport const getActiveHistogram = (state) => state.tablet.tablet.activeHistogram;\n\nexport const getSortedPartitions = createSelector(\n [getRawPartitions, getSortState],\n (partitions, sortState) => hammer.utils.sort(partitions, sortState, partitionsTableItems),\n);\n\nexport const getPartitions = createSelector(getSortedPartitions, (sortedPartitions) => {\n const aggregation = hammer.aggregation.prepare(sortedPartitions, [\n {name: 'stores', type: 'concat-array'},\n {name: 'storeCount', type: 'sum'},\n {name: 'unmergedRows', type: 'sum'},\n {name: 'uncompressed', type: 'sum'},\n {name: 'compressed', type: 'sum'},\n {name: 'sampleKeyCount', type: 'sum'},\n ])[0];\n\n aggregation.index = -2;\n\n return [aggregation, ...sortedPartitions];\n});\n\nconst getHistograms = createSelector(getRawPartitions, (partitions) =>\n mapValues_(histogramItems, (settings, key) => {\n const partitionsWithoutEden = partitions.slice(1);\n\n return {\n ...settings,\n dataSource: 'partitions',\n dataFormat: settings.format,\n caption: hammer.format['ReadableField'](key),\n dataName: settings.dataName || hammer.format['ReadableField'](key, {caps: 'none'}),\n data: map_(partitionsWithoutEden, partitionsTableItems[key].get),\n };\n }),\n);\n\nexport const getHistogram = createSelector(\n [getHistograms, getActiveHistogram],\n (histograms, activeHistogram) => histograms[activeHistogram],\n);\n","import ypath from '@ytsaurus/interface-helpers/lib/ypath';\n\nexport default class Store {\n constructor(data) {\n this.$value = data.$value;\n this.$attributes = data.$attributes;\n\n this.rowCount = Number(ypath.getValue(this.$attributes, '/row_count'));\n this.storeState = ypath.getValue(this.$attributes, '/store_state');\n\n // Dynamic\n this.poolSize = Number(ypath.getValue(this.$attributes, '/pool_size'));\n this.poolCapacity = Number(ypath.getValue(this.$attributes, '/pool_capacity'));\n this.lockCount = Number(ypath.getValue(this.$attributes, '/lock_count'));\n this.valueCount = Number(ypath.getValue(this.$attributes, '/value_count'));\n this.flushState = ypath.getValue(this.$attributes, '/flush_state');\n\n // Persistent\n this.uncompressed = Number(ypath.getValue(this.$attributes, '/uncompressed_data_size'));\n this.compressed = Number(ypath.getValue(this.$attributes, '/compressed_data_size'));\n this.compactionState = ypath.getValue(this.$attributes, '/compaction_state');\n this.preloadState = ypath.getValue(this.$attributes, '/preload_state');\n }\n}\n","import ypath from '@ytsaurus/interface-helpers/lib/ypath';\n\nimport map_ from 'lodash/map';\n\nimport Store from '../../utils/tablet/store';\n\nexport function prepareRelativePath(partitionIndex, storeId) {\n return (\n (partitionIndex === -1 ? '/eden' : '/partitions/' + partitionIndex) +\n '/stores' +\n (typeof storeId !== 'undefined' ? '/' + storeId : '')\n );\n}\n\nexport function preparePath(tabletPath, partitionIndex, storeId) {\n return tabletPath + prepareRelativePath(partitionIndex, storeId);\n}\n\nexport function prepareStores(stores, storesId) {\n return map_(\n stores,\n (store, index) =>\n new Store({\n $value: storesId[index],\n $attributes: ypath.getValue(stores[index], ''),\n }),\n );\n}\n","import yt from '@ytsaurus/javascript-wrapper/lib/yt';\n\nimport map_ from 'lodash/map';\n\nimport CancelHelper from '../../../utils/cancel-helper';\nimport {TYPED_OUTPUT_FORMAT} from '../../../constants/index';\nimport {LOAD_STORES} from '../../../constants/tablet';\nimport {preparePath, prepareStores} from '../../../utils/tablet/stores';\nimport {YTApiId, ytApiV3Id} from '../../../rum/rum-wrap-api';\nimport {splitBatchResults} from '../../../utils/utils';\n\nconst requests = new CancelHelper();\n\nexport function loadStoresData(storesId, index, unorderedDynamicTable) {\n return (dispatch, getState) => {\n dispatch({type: LOAD_STORES.REQUEST});\n\n const {tabletPath} = getState().tablet.tablet;\n\n const requests = map_(storesId, (storeId) => {\n const path = unorderedDynamicTable\n ? tabletPath + '/stores/' + storeId\n : preparePath(tabletPath, index, storeId);\n return {\n command: 'get',\n parameters: {\n path,\n },\n };\n });\n\n return ytApiV3Id\n .executeBatch(YTApiId.tabletStoresByIds, {\n parameters: {requests, output_format: TYPED_OUTPUT_FORMAT},\n })\n .then((data) => {\n const {error, results} = splitBatchResults(data, 'Failed to fetch stores');\n if (error) {\n return Promise.reject(error);\n }\n dispatch({\n type: LOAD_STORES.SUCCESS,\n data: {\n stores: prepareStores(results, storesId),\n },\n });\n })\n .catch((error) => {\n if (error.code !== yt.codes.CANCELLED) {\n dispatch({\n type: LOAD_STORES.FAILURE,\n data: {error},\n });\n }\n });\n };\n}\n\nexport function abortAndReset() {\n return (dispatch) => {\n requests.removeAllRequests();\n dispatch({type: LOAD_STORES.CANCELLED});\n };\n}\n","import hammer from '../../../common/hammer';\nimport {createSelector} from 'reselect';\nimport {storesTableItems} from '../../../utils/tablet/table';\nimport {TABLET_PARTITION_STORES_TABLE_ID} from '../../../constants/tablet';\n\nconst getRawStores = (state) => state.tablet.stores.stores;\nconst getSortState = (state) => state.tables[TABLET_PARTITION_STORES_TABLE_ID];\n\nexport const getStores = createSelector([getRawStores, getSortState], (stores, sortState) =>\n hammer.utils.sort(stores, sortState, storesTableItems),\n);\n","import React, {Component} from 'react';\nimport {connect} from 'react-redux';\nimport PropTypes from 'prop-types';\nimport cn from 'bem-cn-lite';\nimport hammer from '../../../common/hammer';\n\nimport Label from '../../../components/Label/Label';\nimport {Loader} from '@gravity-ui/uikit';\nimport {FormattedId} from '../../../components/formatters';\nimport MetaTable from '../../../components/MetaTable/MetaTable';\nimport ElementsTable from '../../../components/ElementsTable/ElementsTable';\nimport ErrorBoundary from '../../../components/ErrorBoundary/ErrorBoundary';\nimport LoadDataHandler from '../../../components/LoadDataHandler/LoadDataHandler';\n\nimport {abortAndReset, loadStoresData} from '../../../store/actions/tablet/stores';\nimport {TABLET_PARTITION_STORES_TABLE_ID} from '../../../constants/tablet';\nimport {storesTableItems} from '../../../utils/tablet/table';\nimport {getStores} from '../../../store/selectors/tablet/stores';\n\nimport './Stores.scss';\n\nconst block = cn('tablet-stores');\n\nconst PRELOAD_STATE_TO_THEME = {\n scheduled: 'warning',\n running: 'warning',\n complete: 'success',\n failed: 'danger',\n};\n\nconst FLUSH_STATE_TO_THEME = {\n complete: 'success',\n none: 'success',\n running: 'warning',\n};\n\nfunction stateToTheme(state, theme) {\n return theme[state] || 'default';\n}\n\nclass Stores extends Component {\n static propTypes = {\n // from parent\n index: PropTypes.number.isRequired,\n storesId: PropTypes.arrayOf(PropTypes.string).isRequired,\n stores: PropTypes.arrayOf(PropTypes.object).isRequired,\n\n // from connect\n loading: PropTypes.bool.isRequired,\n loaded: PropTypes.bool.isRequired,\n error: PropTypes.bool.isRequired,\n errorData: PropTypes.object.isRequired,\n\n loadStoresData: PropTypes.func.isRequired,\n abortAndReset: PropTypes.func.isRequired,\n\n unorderedDynamicTable: PropTypes.bool,\n };\n\n static renderStoreState(state) {\n return typeof state !== 'undefined' ? (\n <Label theme=\"success\" text={state} />\n ) : (\n hammer.format.NO_VALUE\n );\n }\n\n static renderPreloadState(state) {\n if (!state) {\n return hammer.format.NO_VALUE;\n }\n\n const theme = stateToTheme(state, PRELOAD_STATE_TO_THEME);\n return <Label theme={theme} text={state} />;\n }\n\n static renderFlushState(state) {\n if (!state) {\n return hammer.format.NO_VALUE;\n }\n\n const theme = stateToTheme(state, FLUSH_STATE_TO_THEME);\n return <Label theme={theme} text={state} />;\n }\n\n static renderAsId(store, columnName) {\n const id = storesTableItems[columnName].get(store);\n return <FormattedId id={id} />;\n }\n\n static renderAsState(store, columnName) {\n const state = storesTableItems[columnName].get(store);\n return Stores.renderStoreState(state);\n }\n\n static renderAsNumber(store, columnName) {\n const data = storesTableItems[columnName].get(store);\n return hammer.format['Number'](data);\n }\n\n static renderAsAttributes(store) {\n const dynamicStore = store.storeState.indexOf('dynamic') !== -1;\n const persistentStore = store.storeState.indexOf('persistent') !== -1;\n\n return (\n <MetaTable\n items={[\n {\n key: 'lock_count',\n value: hammer.format['Number'](store.lockCount),\n visible: dynamicStore,\n },\n {\n key: 'value_count',\n value: hammer.format['Number'](store.valueCount),\n visible: dynamicStore,\n },\n {\n key: 'pool_size',\n value: hammer.format['Bytes'](store.poolSize),\n visible: dynamicStore,\n },\n {\n key: 'pool_capacity',\n value: hammer.format['Bytes'](store.poolCapacity),\n visible: dynamicStore,\n },\n {\n key: 'flush_state',\n value: Stores.renderFlushState(store.flushState),\n visible: dynamicStore,\n },\n\n {\n key: 'uncompressed_data_size',\n value: hammer.format['Bytes'](store.uncompressed),\n visible: persistentStore,\n },\n {\n key: 'compressed_data_size',\n value: hammer.format['Bytes'](store.compressed),\n visible: persistentStore,\n },\n {\n key: 'compaction_state',\n value: Stores.renderFlushState(store.compactionState),\n visible: persistentStore,\n },\n {\n key: 'preload_state',\n value: Stores.renderPreloadState(store.preloadState),\n visible: persistentStore,\n },\n ]}\n />\n );\n }\n\n componentDidMount() {\n const {index, storesId, loadStoresData, unorderedDynamicTable} = this.props;\n\n loadStoresData(storesId, index, unorderedDynamicTable);\n }\n\n componentDidUpdate(prevProps) {\n const {index, storesId, loadStoresData, unorderedDynamicTable} = this.props;\n\n if (prevProps.index !== index) {\n loadStoresData(storesId, index, unorderedDynamicTable);\n }\n }\n\n componentWillUnmount() {\n this.props.abortAndReset();\n }\n\n get tableSets() {\n return {\n default: {\n items: ['id', 'store_state', 'row_count', 'attributes'],\n },\n };\n }\n\n get tableSettings() {\n return {\n css: 'tablet-partitions-stores',\n theme: 'light',\n cssHover: true,\n striped: false,\n virtual: false,\n tableId: TABLET_PARTITION_STORES_TABLE_ID,\n columns: {\n items: storesTableItems,\n sets: this.tableSets,\n mode: 'default',\n },\n templates: {\n id: Stores.renderAsId,\n store_state: Stores.renderAsState,\n row_count: Stores.renderAsNumber,\n attributes: Stores.renderAsAttributes,\n },\n computeKey: function (store) {\n return store.$value;\n },\n };\n }\n\n render() {\n const {loading, loaded, error, errorData, stores} = this.props;\n\n return (\n <div className={block({loading})}>\n <ErrorBoundary>\n <LoadDataHandler loaded={loaded} error={error} errorData={errorData}>\n {loading ? (\n <Loader />\n ) : (\n <ElementsTable {...this.tableSettings} items={stores} />\n )}\n </LoadDataHandler>\n </ErrorBoundary>\n </div>\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n const {loading, loaded, error, errorData} = state.tablet.stores;\n const stores = getStores(state);\n\n return {loading, loaded, error, errorData, stores};\n};\n\nconst mapDispatchToProps = {\n loadStoresData,\n abortAndReset,\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Stores);\n","import React from 'react';\n\nimport {DialogWrapper as Dialog} from '../../../components/DialogWrapper/DialogWrapper';\nimport Stores from './Stores';\n\ninterface Props {\n visible: boolean;\n unorderedDynamicTable?: boolean;\n stores: Array<string>;\n index: number;\n\n onClose: () => void;\n}\n\nfunction StoresDialog(props: Props) {\n const {visible, unorderedDynamicTable, stores, index, onClose} = props;\n const title = unorderedDynamicTable\n ? '/stores'\n : index === -1\n ? '/eden/stores'\n : `partitions/${index}/stores`;\n\n return (\n <Dialog open={visible} onClose={onClose} hasCloseButton>\n <Dialog.Header caption={title} />\n <Dialog.Body>\n <Stores\n storesId={stores}\n index={index}\n unorderedDynamicTable={unorderedDynamicTable}\n />\n </Dialog.Body>\n </Dialog>\n );\n}\n\nexport default React.memo(StoresDialog);\n","import {Sticky, StickyContainer} from 'react-sticky';\nimport React, {Component} from 'react';\nimport {connect} from 'react-redux';\nimport hammer from '../../../common/hammer';\nimport PropTypes from 'prop-types';\nimport unipika from '../../../common/thor/unipika';\nimport cn from 'bem-cn-lite';\n\nimport keys_ from 'lodash/keys';\n\nimport {Button} from '@gravity-ui/uikit';\n\nimport ClickableAttributesButton from '../../../components/AttributesButton/ClickableAttributesButton';\nimport ElementsTable from '../../../components/ElementsTable/ElementsTable';\nimport ErrorBoundary from '../../../components/ErrorBoundary/ErrorBoundary';\nimport RadioButton from '../../../components/RadioButton/RadioButton';\nimport {FormattedText} from '../../../components/formatters';\nimport Label from '../../../components/Label/Label';\n\nimport {TABLET_PARTITIONS_TABLE_ID} from '../../../constants/tablet';\nimport {changeContentMode} from '../../../store/actions/tablet/tablet';\nimport {getPartitions} from '../../../store/selectors/tablet/tablet';\nimport {partitionsTableItems} from '../../../utils/tablet/table';\nimport {HEADER_HEIGHT} from '../../../constants/index';\nimport StoresDialog from './StoresDialog';\n\nconst headingBlock = cn('elements-heading');\n\nclass Partitions extends Component {\n static propTypes = {\n // from parent\n block: PropTypes.func.isRequired,\n\n // from connect\n contentMode: PropTypes.string.isRequired,\n partitions: PropTypes.array.isRequired,\n tabletPath: PropTypes.string,\n\n changeContentMode: PropTypes.func.isRequired,\n };\n\n static renderIndex(item, columnName) {\n const index = partitionsTableItems[columnName].get(item);\n\n if (index === -1) {\n return 'Eden';\n } else if (index === -2) {\n return 'Aggregation';\n } else {\n return hammer.format['Number'](index);\n }\n }\n\n static renderState(item, columnName) {\n const state = partitionsTableItems[columnName].get(item);\n const theme = {\n normal: 'success',\n splitting: 'warning',\n merging: 'warning',\n compacting: 'warning',\n sampling: 'warning',\n partitioning: 'warning',\n }[state];\n\n return typeof state !== 'undefined' ? (\n <Label theme={theme} text={state} />\n ) : (\n hammer.format.NO_VALUE\n );\n }\n\n static renderAsBytes(item, columnName) {\n const data = partitionsTableItems[columnName].get(item);\n return hammer.format['Bytes'](data);\n }\n\n static renderAsNumber(item, columnName) {\n const data = partitionsTableItems[columnName].get(item);\n return hammer.format['Number'](data);\n }\n\n static renderPivotKey(item, columnName) {\n const pivotKey = partitionsTableItems[columnName].get(item);\n const unipikaClassName = 'unipika-wrapper unipika-wrapper_inline_yes';\n const unipikaSettings = {break: false, indent: 0};\n const text = unipika.prettyprint(pivotKey, unipikaSettings);\n const title = unipika.prettyprint(pivotKey, {\n ...unipikaSettings,\n asHTML: false,\n });\n\n return typeof pivotKey !== 'undefined' ? (\n <FormattedText asHTML className={unipikaClassName} text={text} title={title} />\n ) : (\n hammer.format.NO_VALUE\n );\n }\n\n state = {\n stores: {},\n };\n\n renderStores = (item) => {\n const storeCount = item.storeCount;\n const partitionIndex = item.index;\n const onClick = () => this.handleShowStores(item);\n\n return (\n <span>\n {partitionIndex >= -1 && storeCount > 0 && (\n <Button view=\"flat-secondary\" size=\"m\" onClick={onClick}>\n View\n </Button>\n )}\n {hammer.format['Number'](storeCount)}\n </span>\n );\n };\n\n renderActions = (item) => {\n const {tabletPath} = this.props;\n const partitionIndex = item.index;\n const path =\n tabletPath + (partitionIndex === -1 ? '/eden' : '/partitions/' + partitionIndex);\n\n return (\n partitionIndex >= -1 && (\n <ClickableAttributesButton\n title={String(partitionIndex)}\n exactPath={path}\n withTooltip\n />\n )\n );\n };\n\n get tableSets() {\n return {\n default: {\n items: [\n 'index',\n 'state',\n 'unmerged_row_count',\n 'uncompressed_data_size',\n 'compressed_data_size',\n 'store_count',\n 'sample_key_count',\n 'actions',\n ],\n },\n keys: {\n items: ['index', 'pivot_key', 'actions'],\n },\n };\n }\n\n get tableSettings() {\n const {contentMode, block} = this.props;\n\n return {\n css: block(),\n theme: 'light',\n cssHover: true,\n striped: false,\n tableId: TABLET_PARTITIONS_TABLE_ID,\n columns: {\n items: partitionsTableItems,\n sets: this.tableSets,\n mode: contentMode,\n },\n templates: {\n index: Partitions.renderIndex,\n state: Partitions.renderState,\n unmerged_row_count: Partitions.renderAsNumber,\n uncompressed_data_size: Partitions.renderAsBytes,\n compressed_data_size: Partitions.renderAsBytes,\n store_count: this.renderStores,\n sample_key_count: Partitions.renderAsNumber,\n pivot_key: Partitions.renderPivotKey,\n actions: this.renderActions,\n },\n computeKey(tablet) {\n return tablet.index;\n },\n itemMods(tablet) {\n if (tablet.index === -1) {\n return {\n eden: 'yes',\n };\n } else if (tablet.index === -2) {\n return {\n aggregation: 'yes',\n };\n }\n },\n };\n }\n\n handleModeChange = (evt) => this.props.changeContentMode(evt.target.value);\n handleCloseStores = () => this.setState({stores: {}});\n handleShowStores = (stores) => this.setState({stores});\n\n renderStoresDialog() {\n const visible = keys_(this.state.stores).length > 0;\n\n if (!visible) {\n return null;\n }\n\n const {block, unorderedDynamicTable} = this.props;\n const {stores, index} = this.state.stores;\n\n return (\n <StoresDialog\n unorderedDynamicTable={unorderedDynamicTable}\n block={block}\n stores={stores}\n index={index}\n visible={true}\n onClose={this.handleCloseStores}\n />\n );\n }\n\n renderTableOverview() {\n const {contentMode, block} = this.props;\n\n return (\n <Sticky topOffset={-HEADER_HEIGHT}>\n {({isSticky}) => (\n <div\n className={block('table-overview', {\n sticky: isSticky,\n })}\n >\n <RadioButton\n size=\"m\"\n value={contentMode}\n onChange={this.handleModeChange}\n name=\"tablet-partitions-content-mode\"\n items={[\n {value: 'default', text: 'Default'},\n {value: 'keys', text: 'Keys'},\n ]}\n />\n </div>\n )}\n </Sticky>\n );\n }\n\n renderPartitions() {\n const {partitions} = this.props;\n\n return (\n <ErrorBoundary>\n <div className={headingBlock({size: 'm'})}>Partitions</div>\n\n <StickyContainer>\n {this.renderTableOverview()}\n\n <ElementsTable {...this.tableSettings} items={partitions} />\n </StickyContainer>\n </ErrorBoundary>\n );\n }\n\n render() {\n const {block, unorderedDynamicTable} = this.props;\n\n return (\n <div className={block('partitions')}>\n {unorderedDynamicTable ? null : this.renderPartitions()}\n {this.renderStoresDialog()}\n </div>\n );\n }\n}\n\nconst mapDispatchToProps = {\n changeContentMode,\n};\n\nconst mapStateToProps = (state) => {\n const {contentMode, tabletPath, unorderedDynamicTable} = state.tablet.tablet;\n const partitions = getPartitions(state);\n\n return {contentMode, tabletPath, partitions, unorderedDynamicTable};\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Partitions);\n","import {useDispatch, useSelector} from 'react-redux';\nimport React, {useCallback, useState} from 'react';\nimport hammer from '../../../common/hammer';\nimport PropTypes from 'prop-types';\nimport ypath from '@ytsaurus/interface-helpers/lib/ypath';\n\nimport keys_ from 'lodash/keys';\nimport map_ from 'lodash/map';\n\nimport {Button} from '@gravity-ui/uikit';\nimport {DialogWrapper as Dialog} from '../../../components/DialogWrapper/DialogWrapper';\n\nimport ErrorBoundary from '../../../components/ErrorBoundary/ErrorBoundary';\nimport MetaTable, {Template} from '../../../components/MetaTable/MetaTable';\nimport Histogram from '../../../components/Histogram/Histogram';\nimport {size} from '../../../components/MetaTable/presets';\nimport {YTErrorBlock} from '../../../components/Error/Error';\nimport Label from '../../../components/Label/Label';\nimport Yson from '../../../components/Yson/Yson';\n\nimport {histogramItems} from '../../../utils/tablet/tablet';\nimport {getActiveHistogram, getHistogram} from '../../../store/selectors/tablet/tablet';\nimport {changeActiveHistogram} from '../../../store/actions/tablet/tablet';\nimport {Tab as NavigationTab} from '../../../constants/navigation';\nimport {Page} from '../../../constants/index';\nimport {genTabletCellBundlesCellUrl} from '../../../utils/tablet_cell_bundles';\nimport StoresDialog from './StoresDialog';\nimport {Tooltip} from '../../../components/Tooltip/Tooltip';\nimport {makeComponentsNodesUrl} from '../../../utils/app-url';\n\nfunction makeMetaItem(format, data, key, visible) {\n return {\n key,\n value: hammer.format[format](data[key]),\n visible,\n };\n}\n\nOverview.propTypes = {\n // from parent\n id: PropTypes.string.isRequired,\n block: PropTypes.func.isRequired,\n};\n\nconst renderErrorsDialog = (errors, handleClose) => {\n const visible = errors.length > 0;\n\n return (\n <Dialog size=\"l\" open={visible} onClose={handleClose} hasButtonClose autoclosable>\n <Dialog.Header caption=\"Tablet errors\" />\n <Dialog.Body>\n {map_(errors, (err, index) => {\n const error = {\n ...err,\n message: ypath.getValue(err, '/message'),\n };\n return <YTErrorBlock error={error} key={index} />;\n })}\n </Dialog.Body>\n </Dialog>\n );\n};\n\nconst renderReplicationErrorsDialog = (replicationErrors, handleClose) => {\n const visible = keys_(replicationErrors).length > 0;\n\n return (\n <Dialog size=\"l\" open={visible} onClose={handleClose} hasButtonClose autoclosable>\n <Dialog.Header caption=\"Replication errors\" />\n <Dialog.Body>\n {map_(replicationErrors, (err, replica) => {\n const error = {\n ...err,\n message: ypath.getValue(err, '/message'),\n };\n const message = `Replica ID: ${replica}`;\n return <YTErrorBlock message={message} error={error} key={replica} />;\n })}\n </Dialog.Body>\n </Dialog>\n );\n};\n\nfunction Overview({id, block}) {\n const dispatch = useDispatch();\n const {\n attributes,\n cellLeadingPeer,\n tablePath,\n tabletPath,\n tabletErrors,\n replicationErrors,\n pivotKey,\n nextPivotKey,\n stores,\n unorderedDynamicTable,\n } = useSelector((state) => state.tablet.tablet);\n\n const {mediumList, cluster} = useSelector((state) => state.global);\n const [errors, setErrorsVisibility] = useState([]);\n const [replicaErrors, setReplicationErrorsVisibility] = useState({});\n\n const [cellId, state, index, statistics, performance] = ypath.getValues(attributes, [\n '/cell_id',\n '/state',\n '/index',\n '/statistics',\n '/performance_counters',\n ]);\n const [unmergedRowCount, chunkCount] = ypath.getValues(statistics, [\n '/unmerged_row_count',\n '/chunk_count',\n ]);\n\n const [storesVisible, setStoresVisible] = React.useState(false);\n const toggleStoresVisibility = React.useCallback(() => {\n setStoresVisible(!storesVisible);\n }, [stores, setStoresVisible, storesVisible]);\n\n const resourcesMeta = !statistics\n ? []\n : [\n makeMetaItem('Number', statistics, 'partition_count', !unorderedDynamicTable),\n {\n key: 'store_count',\n value: (() => {\n const disableStoresDialog = statistics.store_count >= 200;\n return (\n <span>\n {hammer.format.Number(statistics.store_count)}\n {unorderedDynamicTable && (\n <>\n \n <Tooltip\n disabled={!disableStoresDialog}\n content=\"Too many stores to show\"\n >\n <Button\n disabled={disableStoresDialog}\n view=\"flat-secondary\"\n onClick={toggleStoresVisibility}\n >\n View\n </Button>\n </Tooltip>\n </>\n )}\n </span>\n );\n })(),\n },\n makeMetaItem('Number', statistics, 'overlapping_store_count', !unorderedDynamicTable),\n makeMetaItem('Number', statistics, 'preload_completed_store_count'),\n makeMetaItem('Number', statistics, 'preload_failed_store_count'),\n makeMetaItem('Number', statistics, 'preload_pending_store_count'),\n ];\n\n const performanceMeta = !performance\n ? []\n : [\n makeMetaItem('Number', performance, 'dynamic_row_read_rate'),\n makeMetaItem('Number', performance, 'dynamic_row_lookup_rate'),\n makeMetaItem('Number', performance, 'dynamic_row_write_rate'),\n makeMetaItem('Number', performance, 'dynamic_row_delete_rate'),\n makeMetaItem('Number', performance, 'static_chunk_row_read_rate'),\n makeMetaItem('Number', performance, 'static_chunk_row_lookup_rate'),\n makeMetaItem('Number', performance, 'unmerged_row_read_rate', !unorderedDynamicTable),\n makeMetaItem('Number', performance, 'merged_row_read_rate', !unorderedDynamicTable),\n ];\n\n const stateTheme = {\n none: 'default',\n unmounted: 'default',\n mounted: 'info',\n frozen: 'info',\n freezing: 'warning',\n unfreezing: 'warning',\n mounting: 'warning',\n unmounting: 'warning',\n mixed: 'danger',\n }[state];\n\n const activeHistogram = useSelector(getActiveHistogram);\n const histogram = useSelector(getHistogram);\n\n const handleHistogramChange = useCallback(\n (histogram) => dispatch(changeActiveHistogram(histogram)),\n [dispatch, activeHistogram],\n );\n const handleErrorsClick = useCallback(() => setErrorsVisibility(tabletErrors), [tabletErrors]);\n const handleReplicationErrorsClick = useCallback(\n () => setReplicationErrorsVisibility(replicationErrors),\n [replicationErrors],\n );\n\n const handleErrorsCloseClick = useCallback(() => setErrorsVisibility([]), []);\n const handleReplicationErrorsCloseClick = useCallback(\n () => setReplicationErrorsVisibility({}),\n [],\n );\n\n return (\n <ErrorBoundary>\n {storesVisible && (\n <StoresDialog\n visible={true}\n onClose={toggleStoresVisibility}\n index={0}\n unorderedDynamicTable={unorderedDynamicTable}\n stores={Object.keys(stores)}\n />\n )}\n <div className={block('overview')}>\n <div className={block('meta')}>\n <MetaTable\n items={[\n [\n {\n key: 'id',\n value: <Template.Id id={id} />,\n },\n {\n key: 'tablet_cell_id',\n label: 'Tablet cell id',\n value: (\n <Template.Link\n withClipboard\n text={cellId}\n shiftText={tabletPath}\n hoverContent={'Hold SHIFT-key to copy full path'}\n url={genTabletCellBundlesCellUrl(cellId, cluster)}\n />\n ),\n },\n {\n key: 'table_path',\n value: (\n <Template.Link\n withClipboard\n text={tablePath}\n url={`/${cluster}/${Page.NAVIGATION}?path=${tablePath}&mode=${NavigationTab.TABLETS}`}\n />\n ),\n },\n {\n key: 'tablet cell leader node',\n value: (\n <Template.Link\n withClipboard\n text={cellLeadingPeer.address}\n url={makeComponentsNodesUrl({\n cluster,\n host: cellLeadingPeer.address,\n })}\n />\n ),\n visible: Boolean(cellLeadingPeer),\n },\n {\n key: 'errors',\n value: (\n <span>\n {hammer.format['Number'](tabletErrors.length)}\n <Button\n view=\"flat-secondary\"\n size=\"m\"\n onClick={handleErrorsClick}\n >\n View\n </Button>\n </span>\n ),\n visible: tabletErrors.length > 0,\n },\n {\n key: 'replication_errors',\n value: (\n <span>\n {hammer.format['Number'](\n keys_(replicationErrors).length,\n )}\n <Button\n view=\"flat-secondary\"\n size=\"m\"\n onClick={handleReplicationErrorsClick}\n >\n View\n </Button>\n </span>\n ),\n visible: keys_(replicationErrors).length > 0,\n },\n {\n key: 'state',\n value: (\n <Label\n theme={stateTheme}\n text={hammer.format['ReadableField'](state)}\n />\n ),\n },\n {\n key: 'index',\n value: hammer.format['Number'](index),\n },\n {\n key: 'pivot_key',\n value: (\n <Yson\n value={pivotKey}\n settings={{\n indent: 0,\n break: false,\n }}\n />\n ),\n visible: Boolean(pivotKey),\n },\n {\n key: 'next_pivot_key',\n value: (\n <Yson\n value={nextPivotKey}\n settings={{\n indent: 0,\n break: false,\n }}\n />\n ),\n visible: Boolean(nextPivotKey),\n },\n ],\n [\n {\n key: 'unmerged_row_count',\n value: hammer.format['Number'](unmergedRowCount),\n visible: !unorderedDynamicTable,\n },\n {\n key: 'chunks',\n value: hammer.format['Number'](chunkCount),\n },\n ...size(statistics, mediumList),\n ],\n ]}\n />\n\n <MetaTable items={[performanceMeta, resourcesMeta]} />\n </div>\n\n {!unorderedDynamicTable && (\n <Histogram\n handleHistogramChange={handleHistogramChange}\n activeHistogram={activeHistogram}\n histogramItems={histogramItems}\n histogram={histogram}\n />\n )}\n\n {renderErrorsDialog(errors, handleErrorsCloseClick)}\n {renderReplicationErrorsDialog(replicaErrors, handleReplicationErrorsCloseClick)}\n </div>\n </ErrorBoundary>\n );\n}\n\nexport default Overview;\n","import {useDispatch, useSelector} from 'react-redux';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport cn from 'bem-cn-lite';\n\nimport LoadDataHandler from '../../../components/LoadDataHandler/LoadDataHandler';\nimport {Loader} from '@gravity-ui/uikit';\n\nimport Partitions from './Partitions';\nimport Overview from './Overview';\n\nimport {abortAndReset, loadTabletData} from '../../../store/actions/tablet/tablet';\nimport {useUpdater} from '../../../hooks/use-updater';\n\nimport './TabletDetails.scss';\n\nconst block = cn('tablet-details');\n\nTabletDetails.propTypes = {\n // from react-router\n match: PropTypes.shape({\n params: PropTypes.shape({\n id: PropTypes.string.isRequired,\n }),\n }),\n};\n\nfunction TabletDetails({match}) {\n const dispatch = useDispatch();\n\n const {loading, loaded, error, errorData} = useSelector((state) => state.tablet.tablet);\n const {id} = match.params;\n\n const {updateFn, destructFn} = React.useMemo(() => {\n return {\n updateFn: () => dispatch(loadTabletData(id)),\n destructFn: () => dispatch(abortAndReset()),\n };\n }, [dispatch, id]);\n\n useUpdater(updateFn, {timeout: 15 * 1000, destructFn});\n\n const initialLoading = loading && !loaded;\n\n return (\n <div className={block()}>\n <div className={block('content', {loading: initialLoading})}>\n {initialLoading ? (\n <Loader />\n ) : (\n <LoadDataHandler loaded={loaded} error={error} errorData={errorData}>\n <Overview id={id} block={block} />\n <Partitions block={block} />\n </LoadDataHandler>\n )}\n </div>\n </div>\n );\n}\n\nexport default TabletDetails;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport {Route, Switch, withRouter} from 'react-router';\n\nimport ErrorBoundary from '../../components/ErrorBoundary/ErrorBoundary';\nimport TabletDetails from '../../pages/tablet/TabletDetails/TabletDetails';\n\nTablet.propTypes = {\n // from react-router\n match: PropTypes.shape({\n path: PropTypes.string.isRequired,\n }).isRequired,\n};\n\nfunction Tablet({match}) {\n return (\n <div className=\"elements-main-section\">\n <ErrorBoundary>\n <Switch>\n <Route path={`${match.path}/:id/`} component={TabletDetails} />\n </Switch>\n </ErrorBoundary>\n </div>\n );\n}\n\nexport default withRouter(Tablet);\n","import React from 'react';\nimport cn from 'bem-cn-lite';\n\nimport {RowWithName} from '../../containers/AppNavigation/TopRowContent/SectionName';\nimport {Page} from '../../constants';\nimport {EditableAsText} from '../../components/EditableAsText/EditableAsText';\nimport {getCluster} from '../../store/selectors/global';\nimport {useSelector} from 'react-redux';\nimport {useRouteMatch} from 'react-router';\n\nimport './TabletTopRowContent.scss';\nimport {Breadcrumbs, BreadcrumbsItem} from '../../components/Breadcrumbs';\nimport {getAppBrowserHistory} from '../../store/window-store';\nconst block = cn('tablet-top-row-content');\n\nfunction TabletTopRowContent() {\n return (\n <RowWithName page={Page.TABLET}>\n <TabletBreadcrumbs />\n </RowWithName>\n );\n}\n\nexport default React.memo(TabletTopRowContent);\n\nfunction TabletBreadcrumbs() {\n const {\n params: {id},\n } = useRouteMatch<{id: string}>();\n const cluster = useSelector(getCluster);\n\n const handleEdit = React.useCallback(\n (tabletId?: string) => {\n getAppBrowserHistory().push(`/${cluster}/${Page.TABLET}/${tabletId || ''}`);\n },\n [cluster],\n );\n\n return (\n <>\n <EditableAsText className={block('editable')} text={id} onChange={handleEdit}>\n <Breadcrumbs showRoot>\n <BreadcrumbsItem>{id}</BreadcrumbsItem>\n </Breadcrumbs>\n </EditableAsText>\n </>\n );\n}\n","import {Page} from '../../../shared/constants/settings';\nimport {YT} from '../../config/yt-config';\nimport type {Tab as NavigationTab} from '../../constants/navigation';\nimport {ValueOf} from '../../types';\n\nimport {TabletErrorsByPathState} from '../../store/reducers/navigation/tabs/tablet-errors/tablet-errors-by-path';\nimport {getNavigationParams} from '../../store/reducers/navigation/url-mapping';\nimport {makeURLSearchParams} from './utils';\n\nexport function makeNavigationLink(params: {\n path: string;\n cluster?: string;\n navmode?: ValueOf<typeof NavigationTab>;\n teMode?: 'request_errors';\n teTime?: TabletErrorsByPathState['timeRangeFilter'];\n teMethods?: Array<string>;\n}) {\n const {cluster, ...rest} = params;\n const res = `/${cluster || YT.cluster}/${Page.NAVIGATION}`;\n const search = makeURLSearchParams(rest, getNavigationParams()).toString();\n return search ? `${res}?${search}` : res;\n}\n","import {LocationParameters} from '../../store/location';\n\nexport function makeURLSearchParams<T extends object>(params: T, info: LocationParameters) {\n const res = new URLSearchParams();\n Object.keys(params).reduce((acc, k) => {\n const value = params[k as keyof T];\n if (k in info) {\n if (info[k].options?.serialize) {\n const tmp = info[k].options?.serialize?.(value);\n if (tmp !== undefined) {\n res.append(k, tmp + '');\n }\n } else {\n res.append(k, value + '');\n }\n }\n return acc;\n }, res);\n return res;\n}\n","import {Page} from '../../../shared/constants/settings';\nimport {Tab as ComponentsTab} from '../../constants/components/main';\nimport {YT} from '../../config/yt-config';\n\nexport * from './navigation';\n\nexport function makeComponentsNodesUrl({host, cluster}: {host?: string; cluster?: string} = {}) {\n return host\n ? `/${cluster || YT.cluster}/${Page.COMPONENTS}/${ComponentsTab.NODES}/${host}`\n : `/${cluster || YT.cluster}/${Page.COMPONENTS}/${ComponentsTab.NODES}`;\n}\n\nexport function makeProxyUrl(cluster: string, address: string) {\n return `/${cluster}/${Page.COMPONENTS}/${ComponentsTab.RPC_PROXIES}?host=${address}`;\n}\n\nexport function makeSchedulingUrl({\n pool,\n poolTree,\n cluster,\n}: {\n pool: string;\n poolTree: string;\n cluster?: string;\n}) {\n return `/${cluster || YT.cluster}/${Page.SCHEDULING}?pool=${pool}&poolTree=${poolTree}`;\n}\n\nexport function makeAccountsUrl(account: string, cluster?: string) {\n return `/${cluster || YT.cluster}/${Page.ACCOUNTS}?account=${account}`;\n}\n","import UIFactory from '../../UIFactory';\nimport {Page} from '../../constants';\nimport {TabletsTab} from '../../constants/tablets';\nimport {OrderType, multiSortWithUndefined, orderTypeToOrderK} from '../sort-helpers';\n\nexport function tabletCellBundleDashboardUrl(cluster: string, bundle: string) {\n return UIFactory.makeUrlForTabletCellBundleDashboard(cluster, bundle);\n}\n\nexport function genTabletCellBundlesCellUrl(cellId: string, cluster?: string) {\n const prefix = cluster ? `/${cluster}/` : '';\n return `${prefix}${Page.TABLET_CELL_BUNDLES}/${TabletsTab.TABLET_CELLS}?id=${cellId}`;\n}\n\nfunction compareBundlesByAccount<T extends Record<string, any>>(left: T, right: T) {\n if (\n left.changelog_account === right.changelog_account &&\n left.snapshot_account === right.snapshot_account\n ) {\n return 0;\n }\n\n return left.changelog_account < right.changelog_account\n ? -1\n : left.snapshot_account < right.snapshot_account\n ? -1\n : 1;\n}\n\nexport const sortTableBundles = <T extends Record<string, any>>({\n bundles,\n column,\n columnsSortable,\n order,\n}: {\n bundles: T[];\n column: keyof T;\n columnsSortable: Set<string>;\n order: OrderType;\n}) => {\n let sorted: T[] = [];\n\n const {orderK, undefinedOrderK} = orderTypeToOrderK(order);\n\n if (column === 'changelog_account') {\n sorted = [...bundles].sort(compareBundlesByAccount);\n } else if (column === 'nodes') {\n sorted = [...bundles].sort(({nodes: l = []}, {nodes: r = []}) => l.length - r.length);\n } else if (columnsSortable.has(column as string)) {\n return multiSortWithUndefined(bundles, [{key: column, orderK, undefinedOrderK}]);\n }\n\n return (order as string).includes('asc') ? sorted : sorted.reverse();\n};\n","import { I18N } from '@gravity-ui/i18n';\nimport en from './keysets/en.json';\nimport ru from './keysets/ru.json';\nconst i18nFactory = new I18N();\nconst EN = 'en';\nconst RU = 'ru';\ni18nFactory.registerKeysets(EN, en);\ni18nFactory.registerKeysets(RU, ru);\nconst i18n = i18nFactory.i18n.bind(i18nFactory);\nexport { i18nFactory, i18n };\n","export const CHARTKIT_ERROR_CODE = {\n NO_DATA: 'ERR.CK.NO_DATA',\n INVALID_DATA: 'ERR.CK.INVALID_DATA',\n UNKNOWN: 'ERR.CK.UNKNOWN_ERROR',\n UNKNOWN_PLUGIN: 'ERR.CK.UNKNOWN_PLUGIN',\n TOO_MANY_LINES: 'ERR.CK.TOO_MANY_LINES',\n};\nexport class ChartKitError extends Error {\n constructor({ originalError, message, code = CHARTKIT_ERROR_CODE.UNKNOWN, } = {}) {\n super(message);\n this.isCustomError = true;\n this.code = code;\n if (originalError) {\n this.name = originalError.name;\n this.stack = originalError.stack;\n }\n }\n}\nexport const isChartKitError = (error) => {\n return error instanceof Error && 'isCustomError' in error;\n};\n","import isObject from 'lodash/isObject';\nimport mergeWith from 'lodash/mergeWith';\n// @ts-ignore\nexport function mergeSettingStrategy(objValue, srcValue, key) {\n if (key === 'plugins') {\n const currentPlugins = [...objValue];\n const newPlugins = [...srcValue];\n // modify existing plugins\n let newSettingsPlugins = currentPlugins.map((currentPlugin) => {\n const newPluginIndex = newPlugins.findIndex(({ type }) => type === currentPlugin.type);\n if (newPluginIndex !== -1) {\n const newPlugin = newPlugins[newPluginIndex];\n newPlugins.splice(newPluginIndex, 1);\n return {\n type: currentPlugin.type,\n renderer: newPlugin.renderer,\n };\n }\n return currentPlugin;\n });\n // add new plugins if it exist after modified\n if (newPlugins.length > 0) {\n newSettingsPlugins = [...newSettingsPlugins, ...newPlugins];\n }\n return newSettingsPlugins;\n }\n if (isObject(objValue)) {\n return mergeWith(objValue, srcValue, mergeSettingStrategy);\n }\n return srcValue;\n}\n","import { configure } from '@gravity-ui/uikit';\nimport get from 'lodash/get';\nimport mergeWith from 'lodash/mergeWith';\nimport { i18nFactory } from '../../i18n';\nimport { EventEmitter } from './eventEmitter';\nimport { mergeSettingStrategy } from './mergeSettingStrategy';\nexport const settingsEventEmitter = new EventEmitter();\nconst removeUndefinedValues = (data) => {\n return Object.entries(data).reduce((acc, [key, value]) => {\n if (typeof value !== 'undefined') {\n acc[key] = value;\n }\n return acc;\n }, {});\n};\nconst updateLang = (lang) => {\n configure({ lang });\n i18nFactory.setLang(lang);\n};\nclass ChartKitSettings {\n constructor() {\n this.settings = {\n plugins: [],\n lang: 'en',\n };\n updateLang(this.get('lang'));\n }\n get(key) {\n return get(this.settings, key);\n }\n set(updates) {\n const filteredUpdates = removeUndefinedValues(updates);\n this.settings = mergeWith(this.settings, filteredUpdates, mergeSettingStrategy);\n if (filteredUpdates.lang) {\n const lang = filteredUpdates.lang || this.get('lang');\n updateLang(lang);\n settingsEventEmitter.dispatch('change-lang', lang);\n }\n }\n}\nexport const settings = new ChartKitSettings();\n","export class EventEmitter {\n constructor() {\n this.events = {};\n }\n on(type, event) {\n if (this.events[type]) {\n this.events[type].push(event);\n }\n else {\n this.events[type] = [event];\n }\n }\n off(type, eventId) {\n if (this.events[type]) {\n this.events[type] = this.events[type].filter(({ id }) => id !== eventId);\n }\n }\n dispatch(type, args) {\n if (this.events[type]) {\n this.events[type].forEach(({ action }) => {\n action(args);\n });\n }\n }\n}\n","import { withNaming } from '@bem-react/classname';\nexport const NAMESPACE = 'chartkit-';\nexport const cn = withNaming({ e: '__', m: '_' });\nexport const block = withNaming({ n: NAMESPACE, e: '__', m: '_' });\n","export const randomString = (length, chars) => {\n let result = '';\n for (let i = length; i > 0; --i) {\n result += chars[Math.floor(Math.random() * chars.length)];\n }\n return result;\n};\nexport const getRandomCKId = () => `ck.${randomString(10, '0123456789abcdefghijklmnopqrstuvwxyz')}`;\n"],"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","EditableAsText","props","children","onChange","text","className","withControls","size","disableEdit","cancelOnClose","openOnClick","renderEditor","onModeChange","_props$saveButtonView","saveButtonView","_props$cancelButtonVi","cancelButtonView","_React$useState","React","_React$useState2","_slicedToArray","editMode","setEditMode","_React$useState3","_React$useState4","input","setInput","useEffect","handleChangeMode","useCallback","isEdit","closeEditMode","startTextEdit","handleChange","val","applyValue","closeAndResetValue","onApply","value","handleKeyDown","evt","key","controlSize","_jsxs","_Fragment","onBlur","TextInput","autoFocus","onUpdate","onKeyDown","Button","view","extraProps","onMouseDown","Icon","awesome","type","EditButton","_ref$size","getHistogram","state","histogram","createGetQuartiles","createSelector","hammer","stat","quartiles","data","createGetPDF","pdf","createGetECDF","ecdf","steps","unshift","x","min","y","push","bucketNumber","bucketSize","HistogramChart","format","dataName","lineOnly","yagrData","xFormat","formatLib","Bytes","Number","_ref2","_ref5","_ref6","_step","buckets","timeline","NaN","_iterator","_createForOfIteratorHelper","s","n","done","item","getX","getY","err","e","f","length","graphs","color","getSerieColor","step","getLineOnlyData","_ref3","_ref4","undefined","lineData","j","i","_buckets$i","bestX","itemX","Array","isArray","calcBestY","Math","scale","renderOptions","gap","getColumnData","res","libraryConfig","axes","values","_d","map","side","grid","show","y1","scales","max","tooltip","render","tooltipData","_first$rows","_first$rows2","_second$rows","_renderDefaultTooltip","_tooltipData$scales","first","second","columnValue","rows","originalValue","lineValue","_ref7","colValue","colX0","colX1","lineX","lp","compact_","concat","join","renderDefaultTooltip","digits","sources","YagrChartKit","v","left","right","ly","ry","lx","Histogram","activeHistogram","handleHistogramChange","histogramItems","isDataGood","params","isDatailedLine","setDetailed","Select","options","map_","keys_","width","Checkbox","checked","q25","q50","q75","quartilesProps","PropTypes","pdfProps","valueMax","valueMin","ecdfProps","getQuartiles","getPDF","getECDF","getIsDataGood","pdfData","ecdfData","toaster","Toaster","LoadDataHandler","_Component","_inherits","_super","_createSuper","_classCallCheck","apply","arguments","_createClass","_this$props","this","error","loaded","errorData","add","theme","name","autoHiding","message","NO_VALUE","actions","label","showErrorPopup","_this$props2","_this$props2$alwaysSh","alwaysShowError","YTErrorBlock","Component","_ypath$getValues","ypath","_ypath$getValues2","compressionRatio","compressionCodec","erasureCodec","replicationFactor","hideReplicationFactor","helpUrl","docsUrl","UIFactory","docsUrls","visible","metaTablePresetMain","_UIFactory$yqlWidgetS","id","owner","account","creationTime","modificationTime","accessTime","yql_op_id","yqlLink","yqlWidgetSetup","renderYqlOperationLink","Template","Id","SubjectCard","AccountLink","Boolean","Time","time","valueFormat","_toConsumableArray","makeTTLItems","showTTLLabel","metaTablePresetSize","mediumList","uncompressedDataSize","compressedDataSize","primaryMedium","_ypath$getValues3","_ypath$getValues4","usageDiskSpace","diskSpace","mediumsTemplates","medium","usageMediumDiskSpace","mediumDiskSpace","FormattedValue","showMediums","filter","Readable","attrs","_ypath$getValue","expiration_time","getValue","expiration_timeout","timeout","withTTL","moment","qa","Link","url","makeNavigationLink","formatTimeDuration","TTLLabel","Label","parseValue","rawValue","skipSpaces","replace","parseBytes","formatValue","settings","toRawValue","NumberInputWithError","_React$Component","_this","_len","args","_key","call","parsedValue","errorFromValue","formattedValue","setState","parsedError","focused","onFocus","keyCode","KeyCode","ENTER","onEnterKeyDown","parseFn","decimalPlaces","formatFn","validator","defaultValue","_this$props3","showHint","showMin","isNaN","showMax","Tooltip","String","_this$props4","hidePrettyValue","_this$props5","defaultValueClassName","disabled","pin","bottomLineVisibility","_this$props6","propsValue","showDefaultValue","_this$state","getRestProps","hasClear","autoComplete","renderDefaultValue","isBottomLineVisible","renderPrettyValue","renderMinMaxHint","preciseInitialRawValue","formatted","_props$validator","integerOnly","defaultProps","NumberInput","_React$Component2","_super2","_this2","_len2","_key2","_this$props7","_excluded2","TimeDuration","parseTimeDuration","MetaTable","items","makeItems","w","M","d","h","m","ms","parts","_defineProperty","Object","keys","forEach","k","p","count","floor","matchAll","index","_input$substring","match","substring","toAdd","valueOf","hasErrorRenderer","getDefaultValue","isEmpty","validate","typedMemo","ErrorBoundary","constructor","super","resetError","getDerivedStateFromError","componentDidCatch","_a","_b","onError","componentDidUpdate","prevProps","code","NO_DATA","i18n","toString","getErrorMessage","renderError","b","renderPluginLoader","pluginLoader","assign","ChartKitComponent","widgetRef","instanceRef","propsId","isMobile","restProps","ckId","lang","get","plugin","find","iteratedPlugin","UNKNOWN_PLUGIN","ChartComponent","renderer","reflow","details","current","fallback","mobile","ref","YagrPlugin","set","plugins","COLORS","serieIndex","renderText","mix","elem","mods","textProps","asHTML","dangerouslySetInnerHTML","__html","unipika","decode","prepareTextProps","printColumnAsTimeDurationWithMs","columnName","column","getColumn","printColumnAsReadableField","printColumnAsTime","ColumnAsTime","printColumnAsError","_typeof","hideOopsMsg","asNumber","__default__","_templates","templateId","templates","reduce","newTemplates","wrapRenderMethods","genAccountsUrl","cluster","Page","ACCOUNTS","AccountsTab","GENERAL","propsCluster","inline","currentCluster","useSelector","getCluster","ellipsis","ClipboardButton","routed","Partition","$value","$attributes","pivotKey","isEden","compressed","uncompressed","unmergedRows","sampleKeyCount","stores","storeCount","unmerged_row_count","uncompressed_data_size","store_count","requests","CancelHelper","loadPartitions","cellLeadingPeer","tabletPath","unorderedDynamicTable","ytApiV3Id","YTApiId","tabletPartitions","output_format","TYPED_OUTPUT_FORMAT","then","contents","tabletErrors","replicationErrors","pivot_key","nextPivotKey","next_pivot_key","partitions","partition","eden","extend_","preparePartitions","storesPath","tabletStores","Promise","reject","GENERIC_ERROR_MESSAGE","loadCellAttributes","tablePath","cell_id","tabletCellAttributes","find_","peers","peer","address","loadTableAttributes","tabletTableAttributes","table_id","tableAttributes","isUnorderedDynamicTable","partitionsTableItems","sort","caption","align","normal","splitting","merging","compacting","sampling","partitioning","compressed_data_size","sample_key_count","storesTableItems","store","store_state","storeState","row_count","rowCount","getRawPartitions","tablet","getActiveHistogram","getSortedPartitions","tables","TABLET_PARTITIONS_TABLE_ID","sortState","utils","getPartitions","sortedPartitions","aggregation","prepare","getHistograms","mapValues_","partitionsWithoutEden","slice","dataSource","dataFormat","caps","histograms","Store","poolSize","poolCapacity","lockCount","valueCount","flushState","compactionState","preloadState","prepareStores","storesId","getStores","TABLET_PARTITION_STORES_TABLE_ID","PRELOAD_STATE_TO_THEME","scheduled","running","complete","failed","FLUSH_STATE_TO_THEME","none","stateToTheme","Stores","loadStoresData","abortAndReset","default","css","cssHover","striped","virtual","tableId","columns","sets","tableSets","mode","renderAsId","renderAsState","renderAsNumber","renderAsAttributes","computeKey","loading","Loader","ElementsTable","tableSettings","FormattedId","renderStoreState","dynamicStore","indexOf","persistentStore","renderFlushState","renderPreloadState","mapDispatchToProps","dispatch","getState","LOAD_STORES","REQUEST","storeId","partitionIndex","prepareRelativePath","preparePath","command","parameters","executeBatch","tabletStoresByIds","_splitBatchResults","splitBatchResults","results","SUCCESS","yt","CANCELLED","FAILURE","removeAllRequests","_state$tablet$stores","StoresDialog","onClose","Dialog","open","hasCloseButton","Header","Body","headingBlock","Partitions","renderStores","handleShowStores","renderActions","ClickableAttributesButton","handleModeChange","changeContentMode","target","handleCloseStores","contentMode","renderIndex","renderState","renderAsBytes","renderPivotKey","itemMods","_this$state$stores","Sticky","topOffset","HEADER_HEIGHT","isSticky","sticky","RadioButton","StickyContainer","renderTableOverview","renderPartitions","renderStoresDialog","unipikaSettings","break","indent","prettyprint","FormattedText","CHANGE_CONTENT_MODE","_state$tablet$tablet","makeMetaItem","renderErrorsDialog","errors","handleClose","hasButtonClose","autoclosable","renderReplicationErrorsDialog","replica","disableStoresDialog","useDispatch","_useSelector","_useSelector2","global","_useState","useState","_useState2","setErrorsVisibility","_useState3","_useState4","replicaErrors","setReplicationErrorsVisibility","cellId","statistics","performance","unmergedRowCount","chunkCount","storesVisible","setStoresVisible","toggleStoresVisibility","resourcesMeta","performanceMeta","stateTheme","unmounted","mounted","frozen","freezing","unfreezing","mounting","unmounting","mixed","CHANGE_ACTIVE_HISTOGRAM","changeActiveHistogram","handleErrorsClick","handleReplicationErrorsClick","handleErrorsCloseClick","handleReplicationErrorsCloseClick","withClipboard","shiftText","hoverContent","genTabletCellBundlesCellUrl","NAVIGATION","NavigationTab","TABLETS","makeComponentsNodesUrl","host","Yson","_React$useMemo","updateFn","LOAD_TABLET_DATA","tabletAttribute","loadAttributes","loadTabletData","destructFn","useUpdater","initialLoading","Overview","withRouter","Switch","Route","component","TabletDetails","TabletTopRowContent","RowWithName","page","TABLET","TabletBreadcrumbs","useRouteMatch","handleEdit","tabletId","getAppBrowserHistory","Breadcrumbs","showRoot","BreadcrumbsItem","YT","search","info","URLSearchParams","acc","_info$k$options","serialize","_info$k$options2","_info$k$options2$seri","tmp","append","makeURLSearchParams","getNavigationParams","COMPONENTS","ComponentsTab","NODES","makeProxyUrl","RPC_PROXIES","makeSchedulingUrl","pool","poolTree","SCHEDULING","makeAccountsUrl","tabletCellBundleDashboardUrl","bundle","makeUrlForTabletCellBundleDashboard","prefix","TABLET_CELL_BUNDLES","TabletsTab","TABLET_CELLS","compareBundlesByAccount","changelog_account","snapshot_account","sortTableBundles","bundles","columnsSortable","order","sorted","_orderTypeToOrderK","orderTypeToOrderK","orderK","undefinedOrderK","_ref2$nodes","nodes","l","_ref3$nodes","r","has","multiSortWithUndefined","includes","reverse","i18nFactory","registerKeysets","bind","CHARTKIT_ERROR_CODE","INVALID_DATA","UNKNOWN","TOO_MANY_LINES","ChartKitError","Error","originalError","isCustomError","stack","mergeSettingStrategy","objValue","srcValue","currentPlugins","newPlugins","newSettingsPlugins","currentPlugin","newPluginIndex","findIndex","newPlugin","splice","settingsEventEmitter","events","on","event","off","eventId","action","updateLang","configure","setLang","updates","filteredUpdates","entries","withNaming","getRandomCKId","chars","result","random","randomString"],"sourceRoot":""}
|