@ytsaurus/ui 1.62.0 → 1.63.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/public/build/assets-manifest.json +69 -69
- package/dist/public/build/css/7540.b48a154e.chunk.css +2 -0
- package/dist/public/build/css/7540.b48a154e.chunk.css.map +1 -0
- package/dist/public/build/css/{cluster-page-wrapper.0b62c90f.chunk.css → cluster-page-wrapper.0b6a786f.chunk.css} +2 -2
- package/dist/public/build/css/cluster-page-wrapper.0b6a786f.chunk.css.map +1 -0
- package/dist/public/build/css/{main.a99b07c5.css → main.070fd473.css} +2 -2
- package/dist/public/build/css/main.070fd473.css.map +1 -0
- package/dist/public/build/css/navigation.0a141599.chunk.css +2 -0
- package/dist/public/build/css/navigation.0a141599.chunk.css.map +1 -0
- package/dist/public/build/css/{system.17b114fc.chunk.css → system.221e5d53.chunk.css} +2 -2
- package/dist/public/build/css/{system.17b114fc.chunk.css.map → system.221e5d53.chunk.css.map} +1 -1
- package/dist/public/build/js/1110.a7382226.chunk.js +2 -0
- package/dist/public/build/js/1110.a7382226.chunk.js.map +1 -0
- package/dist/public/build/js/1394.011da2d1.chunk.js +2 -0
- package/dist/public/build/js/1394.011da2d1.chunk.js.map +1 -0
- package/dist/public/build/js/2447.35b478a9.chunk.js +2 -0
- package/dist/public/build/js/2447.35b478a9.chunk.js.map +1 -0
- package/dist/public/build/js/4364.aa1ab5fb.chunk.js +2 -0
- package/dist/public/build/js/4364.aa1ab5fb.chunk.js.map +1 -0
- package/dist/public/build/js/5451.50d8f2b2.chunk.js +3 -0
- package/dist/public/build/js/5451.50d8f2b2.chunk.js.LICENSE.txt +5 -0
- package/dist/public/build/js/5451.50d8f2b2.chunk.js.map +1 -0
- package/dist/public/build/js/5770.0d8fda01.chunk.js +2 -0
- package/dist/public/build/js/5770.0d8fda01.chunk.js.map +1 -0
- package/dist/public/build/js/{7077.b11a392b.chunk.js → 7077.7dab612c.chunk.js} +2 -2
- package/dist/public/build/js/{7077.b11a392b.chunk.js.map → 7077.7dab612c.chunk.js.map} +1 -1
- package/dist/public/build/js/7959.e0d47dec.chunk.js +2 -0
- package/dist/public/build/js/7959.e0d47dec.chunk.js.map +1 -0
- package/dist/public/build/js/{8460.b18e700b.chunk.js → 8460.2b27e2b7.chunk.js} +2 -2
- package/dist/public/build/js/{8460.b18e700b.chunk.js.map → 8460.2b27e2b7.chunk.js.map} +1 -1
- package/dist/public/build/js/{8778.8d098a1f.chunk.js → 8778.d97acdd6.chunk.js} +2 -2
- package/dist/public/build/js/8778.d97acdd6.chunk.js.map +1 -0
- package/dist/public/build/js/accounts.badfc837.chunk.js +2 -0
- package/dist/public/build/js/{accounts.63268a11.chunk.js.map → accounts.badfc837.chunk.js.map} +1 -1
- package/dist/public/build/js/{acl.aa7a9df7.chunk.js → acl.cd1fe761.chunk.js} +2 -2
- package/dist/public/build/js/acl.cd1fe761.chunk.js.map +1 -0
- package/dist/public/build/js/cluster-menu.bf57160d.chunk.js +2 -0
- package/dist/public/build/js/cluster-menu.bf57160d.chunk.js.map +1 -0
- package/dist/public/build/js/cluster-page-wrapper.c9e6c27c.chunk.js +2 -0
- package/dist/public/build/js/cluster-page-wrapper.c9e6c27c.chunk.js.map +1 -0
- package/dist/public/build/js/job.31c91355.chunk.js +2 -0
- package/dist/public/build/js/job.31c91355.chunk.js.map +1 -0
- package/dist/public/build/js/main.61fc9935.js +3 -0
- package/dist/public/build/js/main.61fc9935.js.map +1 -0
- package/dist/public/build/js/{manage-tokens.c996037c.chunk.js → manage-tokens.e9106aad.chunk.js} +2 -2
- package/dist/public/build/js/{manage-tokens.c996037c.chunk.js.map → manage-tokens.e9106aad.chunk.js.map} +1 -1
- package/dist/public/build/js/navigation.22bd542f.chunk.js +2 -0
- package/dist/public/build/js/navigation.22bd542f.chunk.js.map +1 -0
- package/dist/public/build/js/{odin.ddcd41de.chunk.js → odin.7eefabce.chunk.js} +2 -2
- package/dist/public/build/js/{odin.ddcd41de.chunk.js.map → odin.7eefabce.chunk.js.map} +1 -1
- package/dist/public/build/js/operations.3feb2deb.chunk.js +2 -0
- package/dist/public/build/js/operations.3feb2deb.chunk.js.map +1 -0
- package/dist/public/build/js/{query-results.99804b61.chunk.js → query-results.4c207fef.chunk.js} +2 -2
- package/dist/public/build/js/{query-results.99804b61.chunk.js.map → query-results.4c207fef.chunk.js.map} +1 -1
- package/dist/public/build/js/query-tracker.badbc586.chunk.js +2 -0
- package/dist/public/build/js/query-tracker.badbc586.chunk.js.map +1 -0
- package/dist/public/build/js/{runtime.8be0e5c6.js → runtime.f98c3e55.js} +2 -2
- package/dist/public/build/js/{runtime.8be0e5c6.js.map → runtime.f98c3e55.js.map} +1 -1
- package/dist/public/build/js/scheduling.73b1257c.chunk.js +2 -0
- package/dist/public/build/js/scheduling.73b1257c.chunk.js.map +1 -0
- package/dist/public/build/js/{system.6843a1a3.chunk.js → system.25e9136a.chunk.js} +2 -2
- package/dist/public/build/js/system.25e9136a.chunk.js.map +1 -0
- package/dist/public/build/js/tablet.7401a5ec.chunk.js +2 -0
- package/dist/public/build/js/tablet.7401a5ec.chunk.js.map +1 -0
- package/dist/public/build/js/{yt-df-dialog.6b4604c0.chunk.js → yt-df-dialog.69fc013a.chunk.js} +2 -2
- package/dist/public/build/js/{yt-df-dialog.6b4604c0.chunk.js.map → yt-df-dialog.69fc013a.chunk.js.map} +1 -1
- package/dist/public/build/manifest.json +64 -64
- package/dist/shared/ui-settings.d.ts +0 -1
- package/package.json +3 -3
- package/dist/public/build/css/7540.56f97199.chunk.css +0 -2
- package/dist/public/build/css/7540.56f97199.chunk.css.map +0 -1
- package/dist/public/build/css/cluster-page-wrapper.0b62c90f.chunk.css.map +0 -1
- package/dist/public/build/css/main.a99b07c5.css.map +0 -1
- package/dist/public/build/css/navigation.adb62abd.chunk.css +0 -2
- package/dist/public/build/css/navigation.adb62abd.chunk.css.map +0 -1
- package/dist/public/build/js/1110.d02f593c.chunk.js +0 -2
- package/dist/public/build/js/1110.d02f593c.chunk.js.map +0 -1
- package/dist/public/build/js/1394.f5423b9c.chunk.js +0 -2
- package/dist/public/build/js/1394.f5423b9c.chunk.js.map +0 -1
- package/dist/public/build/js/2447.d0a0e8ad.chunk.js +0 -2
- package/dist/public/build/js/2447.d0a0e8ad.chunk.js.map +0 -1
- package/dist/public/build/js/4364.277e1cfa.chunk.js +0 -2
- package/dist/public/build/js/4364.277e1cfa.chunk.js.map +0 -1
- package/dist/public/build/js/5770.c5499ce7.chunk.js +0 -2
- package/dist/public/build/js/5770.c5499ce7.chunk.js.map +0 -1
- package/dist/public/build/js/7891.2ce56be7.chunk.js +0 -3
- package/dist/public/build/js/7891.2ce56be7.chunk.js.LICENSE.txt +0 -14
- package/dist/public/build/js/7891.2ce56be7.chunk.js.map +0 -1
- package/dist/public/build/js/7959.eb292cbd.chunk.js +0 -2
- package/dist/public/build/js/7959.eb292cbd.chunk.js.map +0 -1
- package/dist/public/build/js/8778.8d098a1f.chunk.js.map +0 -1
- package/dist/public/build/js/accounts.63268a11.chunk.js +0 -2
- package/dist/public/build/js/acl.aa7a9df7.chunk.js.map +0 -1
- package/dist/public/build/js/cluster-menu.e484a2ca.chunk.js +0 -2
- package/dist/public/build/js/cluster-menu.e484a2ca.chunk.js.map +0 -1
- package/dist/public/build/js/cluster-page-wrapper.8c8aa8a1.chunk.js +0 -2
- package/dist/public/build/js/cluster-page-wrapper.8c8aa8a1.chunk.js.map +0 -1
- package/dist/public/build/js/job.5ed7166b.chunk.js +0 -2
- package/dist/public/build/js/job.5ed7166b.chunk.js.map +0 -1
- package/dist/public/build/js/main.00809a7d.js +0 -3
- package/dist/public/build/js/main.00809a7d.js.map +0 -1
- package/dist/public/build/js/navigation.c3108a21.chunk.js +0 -2
- package/dist/public/build/js/navigation.c3108a21.chunk.js.map +0 -1
- package/dist/public/build/js/operations.b353981f.chunk.js +0 -2
- package/dist/public/build/js/operations.b353981f.chunk.js.map +0 -1
- package/dist/public/build/js/query-tracker.fba0ec95.chunk.js +0 -2
- package/dist/public/build/js/query-tracker.fba0ec95.chunk.js.map +0 -1
- package/dist/public/build/js/scheduling.115669fe.chunk.js +0 -2
- package/dist/public/build/js/scheduling.115669fe.chunk.js.map +0 -1
- package/dist/public/build/js/system.6843a1a3.chunk.js.map +0 -1
- package/dist/public/build/js/tablet.40ad9054.chunk.js +0 -2
- package/dist/public/build/js/tablet.40ad9054.chunk.js.map +0 -1
- /package/dist/public/build/js/{main.00809a7d.js.LICENSE.txt → main.61fc9935.js.LICENSE.txt} +0 -0
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"js/1394.011da2d1.chunk.js","mappings":"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","sources":["webpack://@ytsaurus/ui/./src/ui/components/ElementsTable/ElementsTable.js","webpack://@ytsaurus/ui/./src/ui/components/ElementsTable/ElementsTableHeader.tsx","webpack://@ytsaurus/ui/./src/ui/components/ElementsTable/ElementsTableRow.js","webpack://@ytsaurus/ui/./src/ui/components/ElementsTable/utils.js","webpack://@ytsaurus/ui/./src/ui/components/StatusBlock/StatusBlock.tsx","webpack://@ytsaurus/ui/./src/ui/components/StatusBulb/StatusBulb.tsx","webpack://@ytsaurus/ui/./src/ui/components/templates/components/nodes/nodes.tsx","webpack://@ytsaurus/ui/./src/ui/components/templates/meta.js","webpack://@ytsaurus/ui/./src/ui/components/templates/components/nodes/node.js","webpack://@ytsaurus/ui/./src/ui/components/templates/components.js","webpack://@ytsaurus/ui/./src/ui/pages/operations/OperationDetail/tabs/details/FilterOverview/FilterOverview.js","webpack://@ytsaurus/ui/./src/ui/components/templates/operations/specification.js","webpack://@ytsaurus/ui/./src/ui/components/templates/operations/events.js","webpack://@ytsaurus/ui/./src/ui/components/templates/operations/resources.js","webpack://@ytsaurus/ui/./src/ui/components/templates/system.js","webpack://@ytsaurus/ui/./src/ui/components/templates/cluster-menu.js","webpack://@ytsaurus/ui/./src/ui/components/templates/templates.js","webpack://@ytsaurus/ui/./src/ui/hocs/withVisible.tsx","webpack://@ytsaurus/ui/./src/ui/pages/operations/OperationIOLink/OperationIOLink.tsx","webpack://@ytsaurus/ui/./src/ui/store/actions/tables.ts","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/uikit/build/esm/components/Progress/constants.js","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/uikit/build/esm/components/Progress/ProgressInnerText.js","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/uikit/build/esm/components/Progress/ProgressStackItem.js","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/uikit/build/esm/components/Progress/utils.js","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/uikit/build/esm/components/Progress/ProgressWithStack.js","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/uikit/build/esm/components/Progress/ProgressWithValue.js","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/uikit/build/esm/components/Progress/Progress.js","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/uikit/build/esm/components/Progress/types.js"],"sourcesContent":["import React, {Component, createRef} from 'react';\nimport {connect} from 'react-redux';\nimport PropTypes from 'prop-types';\nimport ReactList from 'react-list';\nimport block from 'bem-cn-lite';\n\nimport difference_ from 'lodash/difference';\nimport filter_ from 'lodash/filter';\nimport forEach_ from 'lodash/forEach';\nimport map_ from 'lodash/map';\nimport omit_ from 'lodash/omit';\nimport range_ from 'lodash/range';\n\nimport ElementsTableRow from './ElementsTableRow';\nimport ElementsTableHeader, {sortStateType} from './ElementsTableHeader';\nimport ErrorBoundary from '../../components/ErrorBoundary/ErrorBoundary';\n\nimport {toggleColumnSortOrder} from '../../store/actions/tables';\nimport action from '../../components/action/action';\nimport {\n ELEMENTS_TABLE,\n TemplatesPropType,\n getColumnEdgePosition,\n prepareCellClassName,\n prepareColumnsData,\n prepareTableClassName,\n} from './utils';\n\nimport './ElementsTable.scss';\n\n/**\n * @deprecated Please use DataTableYT\n */\nclass ElementsTable extends Component {\n static propTypes = {\n isLoading: PropTypes.bool,\n css: PropTypes.string,\n cssTableMods: PropTypes.string,\n templates: TemplatesPropType,\n size: PropTypes.string,\n theme: PropTypes.string,\n padded: PropTypes.bool,\n striped: PropTypes.bool,\n // ITEMS\n items: PropTypes.array,\n itemMods: PropTypes.func,\n computeKey: (props, propName, componentName) => {\n if (\n props['tree'] === true &&\n (props[propName] === undefined || typeof props[propName] !== 'function')\n ) {\n return new Error(\n `For tree-like tables, ${propName} prop of ${componentName} has to be a function`,\n );\n }\n },\n onItemClick: PropTypes.func,\n getItemLink: PropTypes.func,\n onItemHover: PropTypes.func,\n toggleColumnSortOrder: PropTypes.func,\n // TREE DATA\n tree: PropTypes.bool,\n treeState: PropTypes.oneOf(['collapsed', 'expanded', 'mixed']),\n treeStateExpanded: PropTypes.arrayOf(PropTypes.string),\n onItemToggleState: PropTypes.func,\n // old SORT\n sortInfo: PropTypes.func, // ko.param, old tables\n // new SORT\n tableId: PropTypes.string,\n emptyDataDescription: PropTypes.string,\n sortState: sortStateType,\n // callBack SORT\n onSort: PropTypes.func,\n // COLUMNS\n columns: PropTypes.shape({\n items: PropTypes.object.isRequired,\n sets: PropTypes.object.isRequired,\n mode: PropTypes.string.isRequired,\n }).isRequired,\n columnsMode: PropTypes.string,\n // VIRTUAL RENDERING\n virtual: PropTypes.bool,\n virtualType: PropTypes.oneOf(['simple', 'variable', 'uniform']),\n header: PropTypes.bool,\n body: function (props, propName, componentName) {\n if (!props[propName] && props['virtual']) {\n return new Error(\n `The ${propName} flag set to false is not allowed in conjunction with virtual flag set to true in ${componentName}.`,\n );\n }\n },\n itemHeight: PropTypes.number,\n // ROW SELECTION\n selectedIndex: PropTypes.number,\n cssHover: PropTypes.bool,\n onItemSelect: PropTypes.func,\n onMouseMove: PropTypes.func,\n\n rowClassName: PropTypes.func,\n colSpan: PropTypes.func,\n headerClassName: PropTypes.string,\n };\n\n static defaultProps = {\n items: [],\n body: true,\n header: true,\n templates: {},\n size: 'm',\n theme: 'bordered',\n padded: false,\n striped: true,\n tree: false,\n treeState: 'collapsed',\n treeStateExpanded: [],\n virtual: true,\n virtualType: 'uniform',\n cssHover: false,\n };\n\n static getEmptinessStates(keys) {\n const totalKeys = keys.length;\n let prevKey, prevKeyParts;\n\n return keys.reduce((states, key, index) => {\n // initially item is not empty\n states[key] = {empty: false};\n\n const keyParts = key.split('/');\n // if we haven't traversed deeper right after the previous item, then the previous item\n // doesn't have children, i.e. is empty\n if (prevKeyParts && prevKeyParts.length >= keyParts.length) {\n states[prevKey] = {empty: true};\n }\n // last item is always empty\n if (index === totalKeys - 1) {\n states[key] = {empty: true};\n }\n [prevKey, prevKeyParts] = [key, keyParts];\n return states;\n }, {});\n }\n\n // For tree start\n static collapsedAncestorExists(key, items, boundaryCondition) {\n // Due to tree-like table properties node's children always come after it in list;\n // we rely on this fact when calculating a child state - by querying its parents' states\n\n // Start by dropping the last component of item's address, which yield its parent address\n const parts = key.split('/').slice(0, -1);\n while (boundaryCondition(parts)) {\n const parentState = items[parts.join('/')];\n // if parent is collapsed, we're done, otherwise try the parent's parent and so on\n if (parentState && parentState.collapsed) {\n return true;\n }\n parts.pop();\n }\n return false;\n }\n\n static updateItemStates(props, state) {\n const {tree, treeState, computeKey} = props;\n const {treeState: prevTreeState} = state;\n let items = null;\n\n if (tree) {\n items = {...state.items};\n\n const oldKeys = Object.keys(items);\n const newKeys = props.items.map(computeKey);\n\n const toRemove = difference_(oldKeys, newKeys);\n let toAdd;\n\n // When new state is 'mixed', table was updated NOT due to clicking\n // 'Expand All'/'Collapse All' button\n if (treeState === 'mixed' || treeState === prevTreeState) {\n toAdd = difference_(newKeys, oldKeys);\n // Sort new keys so that the topmost in the tree come first - we rely on this fact in\n // collapsedAncestorExists() method. However toAdd got in the alternative branch doesn't\n // need to be sorted since props.items come already in the proper order\n toAdd.sort();\n } else {\n // when `treeState` setting changes, we have to recalculate everything from scratch\n toAdd = newKeys;\n }\n\n forEach_(ElementsTable.getEmptinessStates(newKeys), (state, key) => {\n items[key] = Object.assign({}, items[key], state);\n });\n\n items = omit_(items, toRemove);\n toAdd.forEach((key) => {\n // When tree is in mixed state, new subtrees start as collapsed\n const itemState = {collapsed: treeState !== 'expanded'};\n itemState.visible = !ElementsTable.collapsedAncestorExists(\n key,\n items,\n (parts) => parts.length > 1,\n );\n items[key] = Object.assign({}, items[key], itemState);\n });\n }\n return items;\n }\n\n static getDerivedStateFromProps(props, state) {\n const {columns, columnsMode, computeKey} = props;\n const {items: columnItems, set: columnSet} = prepareColumnsData(columns, columnsMode);\n const nextState = {columnItems, columnSet};\n let items = ElementsTable.updateItemStates(props, state);\n forEach_(props.treeStateExpanded, (key) => {\n if (items[key] && items[key].collapsed) {\n items[key].collapsed = false;\n const itemKeys = map_(props.items, computeKey);\n items = ElementsTable.updateVisibilityState(itemKeys, items, key);\n }\n });\n if (items) {\n nextState.items = items;\n }\n if (props.treeState !== state.treeState) {\n nextState.treeState = props.treeState;\n }\n\n return nextState;\n }\n\n static updateVisibilityState(itemKeys, itemsState, toggledItemKey) {\n const itemKeyParts = toggledItemKey.split('/');\n // We process a table section starting from the first child of a clicked date\n // till the first item which is not a descendant of a clicked item.\n // To determine if `nodeA` is a descendant of `nodeX`, keys are examined:\n // if `nodeA` has key = keyX/other/parts, when keyX is the `nodeX` key, then\n // descendancy is proved.\n let currentIndex = itemKeys.indexOf(toggledItemKey) + 1;\n let currentKey = itemKeys[currentIndex];\n\n // TODO: remove implicit knowledge about key structure\n while (currentIndex < itemKeys.length && currentKey.startsWith(toggledItemKey + '/')) {\n const itemState = itemsState[currentKey];\n const visible = !ElementsTable.collapsedAncestorExists(\n currentKey,\n itemsState,\n (parts) => parts.length >= itemKeyParts.length,\n );\n Object.assign(itemState, {visible});\n\n currentIndex += 1;\n currentKey = itemKeys[currentIndex];\n }\n\n return itemsState;\n }\n\n state = {\n items: {},\n };\n\n componentDidUpdate(prevProps) {\n const {selectedIndex, onItemSelect} = this.props;\n const reactList = this.list?.current;\n\n if (prevProps.selectedIndex !== selectedIndex && onItemSelect && reactList) {\n const [firstIndex, lastIndex] = reactList.getVisibleRange();\n\n if (selectedIndex < firstIndex) {\n reactList.scrollAround(selectedIndex);\n window.scrollBy(0, -80);\n } else if (selectedIndex > lastIndex) {\n reactList.scrollAround(selectedIndex);\n window.scrollBy(0, 40);\n }\n }\n }\n\n prevMouseCoordinates = {};\n list = createRef();\n\n toggleItemState(toggledItemKey) {\n const {computeKey, tree} = this.props;\n\n if (tree) {\n let items = Object.assign({}, this.state.items);\n\n // Invert the `collapsed` state of an item which was clicked\n const item = Object.assign(items[toggledItemKey], {\n collapsed: !items[toggledItemKey].collapsed,\n });\n\n const itemKeys = this.props.items.map(computeKey);\n items = ElementsTable.updateVisibilityState(itemKeys, items, toggledItemKey);\n\n this.setState({items});\n\n const {onItemToggleState} = this.props;\n if (onItemToggleState) {\n onItemToggleState(toggledItemKey, item.collapsed);\n }\n }\n }\n\n isItemVisible = (item) => {\n const {computeKey} = this.props;\n return (this.state.items[computeKey(item)] || {}).visible;\n };\n // For tree end\n\n // For mouse hover start\n updateMouseCoordinates(evt) {\n this.prevMouseCoordinates.x = evt.clientX;\n this.prevMouseCoordinates.y = evt.clientY;\n }\n\n mouseCoordinatesChanged(evt) {\n const {x, y} = this.prevMouseCoordinates;\n const firstChange = x === 'undefined' && typeof y === 'undefined';\n\n if (firstChange) {\n this.updateMouseCoordinates(evt);\n\n return false;\n } else {\n return x !== evt.clientX || y !== evt.clientY;\n }\n }\n\n onItemHover = (evt) => {\n const {items, onItemHover} = this.props;\n\n if (this.mouseCoordinatesChanged(evt)) {\n this.updateMouseCoordinates(evt);\n\n if (onItemHover) {\n const index = evt.currentTarget.dataset.index;\n\n onItemHover(items[index], Number(index));\n }\n }\n };\n\n onItemSelect = () => {\n const {items, onItemSelect} = this.props;\n\n if (onItemSelect) {\n const index = this.props.selectedIndex;\n\n onItemSelect(items[index], Number(index));\n }\n };\n // For mouse hover end\n\n // For item click start\n linkOrButtonWasClicked(evt) {\n const isLinkOrButton = (node) => {\n return (\n node.nodeName === 'BUTTON' ||\n node.getAttribute('role') === 'button' ||\n node.nodeName === 'A'\n );\n };\n // one of nested <span>s inside <a> gets the mouse event first, check if its ancestor is a link\n let node = evt.target;\n while (node && node.nodeName !== 'TD') {\n if (isLinkOrButton(node)) {\n return true;\n }\n node = node.parentElement;\n }\n return false;\n }\n\n onItemClick = (evt) => {\n if (this.linkOrButtonWasClicked(evt)) {\n return;\n }\n\n const {items, onItemClick, getItemLink} = this.props;\n const index = Number(evt.currentTarget.dataset.index);\n const handleClick = action.makeEntryClickHandler(evt, onItemClick, getItemLink);\n handleClick(items[index], index, evt);\n };\n // For item click end\n\n // render methods start\n renderEmptyTableContent = (\n <div>\n <div className={block(ELEMENTS_TABLE)('empty-header')}>No items to show </div>\n {this.props.emptyDataDescription && (\n <div className={block(ELEMENTS_TABLE)('empty-content')}>\n {this.props.emptyDataDescription}\n </div>\n )}\n </div>\n );\n\n renderEmptyCell = (cell, columnName, index) => {\n const {css} = this.props;\n const {columnSet, columnItems} = this.state;\n const edgePosition = getColumnEdgePosition(columnSet, columnItems, index);\n const cellClassName = prepareCellClassName(columnItems, columnName, css, edgePosition);\n\n return (\n <td key={columnName} className={cellClassName}>\n <div className={block(ELEMENTS_TABLE)('no-data-placeholder')} />\n </td>\n );\n };\n\n renderSkeletonState = () => {\n const {itemHeight} = this.props;\n const tableClassName = prepareTableClassName(this.props);\n const bodyClassName = block(ELEMENTS_TABLE)('body');\n const rowClassName = block(ELEMENTS_TABLE)('row', {empty: true});\n const rowStyle = {height: itemHeight};\n\n return (\n <table className={tableClassName}>\n {this.props.header && <ElementsTableHeader {...this.props} />}\n <tbody className={bodyClassName}>\n {map_(range_(4), (index) => (\n <tr key={index} className={rowClassName} style={rowStyle}>\n {map_(this.state.columnItems, this.renderEmptyCell)}\n </tr>\n ))}\n </tbody>\n </table>\n );\n };\n\n renderRow(item, index, key = index) {\n const {\n css,\n itemHeight,\n templates,\n itemMods,\n selectedIndex,\n computeKey,\n cssHover,\n onMouseMove,\n rowClassName,\n colSpan,\n } = this.props;\n const {items: itemStates, columnItems, columnSet} = this.state;\n\n const selected = selectedIndex === index;\n const currentKey = typeof computeKey === 'function' ? computeKey(item) : key;\n\n return (\n <ElementsTableRow\n key={currentKey ?? `##elements_table_row_${key}`}\n onItemClick={this.onItemClick}\n onItemHover={this.onItemHover}\n onItemSelect={this.onItemSelect}\n columnSet={columnSet}\n columnItems={columnItems}\n toggleItemState={this.toggleItemState.bind(this, currentKey)}\n itemState={itemStates[currentKey]}\n item={item}\n itemHeight={itemHeight}\n css={css}\n templates={templates}\n selected={selected}\n index={index}\n itemMods={itemMods}\n onMouseMove={onMouseMove}\n cssHover={cssHover}\n rowClassName={rowClassName}\n colSpan={colSpan}\n />\n );\n }\n\n renderTableBody(items, ref) {\n const bodyClassName = block(ELEMENTS_TABLE)('body');\n\n // FIXME: In the case of virtual rendering, we need to consider the table header height among the virtual elements\n return (\n <tbody ref={ref} className={bodyClassName}>\n {items}\n </tbody>\n );\n }\n\n renderTableContent = (items, ref) => (\n <table className={prepareTableClassName(this.props)}>\n {this.props.header && <ElementsTableHeader {...this.props} />}\n {this.props.body && this.renderTableBody(items, ref)}\n </table>\n );\n\n renderDynamicTable(items) {\n const {virtualType, selectedIndex} = this.props;\n const itemRenderer = (index, key) => this.renderRow(items[index], index, key);\n\n return (\n <ReactList\n itemRenderer={itemRenderer}\n itemsRenderer={this.renderTableContent}\n scrollTo={selectedIndex}\n length={items.length}\n type={virtualType}\n ref={this.list}\n useStaticSize\n />\n );\n }\n\n renderSimpleTable(items) {\n const rows = map_(items, (item, index) => this.renderRow(item, index));\n\n return this.renderTableContent(rows);\n }\n\n renderTable() {\n const {items, virtual, tree, isLoading} = this.props;\n\n const visibleItems = tree ? filter_(items, this.isItemVisible) : items;\n\n if (isLoading) {\n return this.renderSkeletonState();\n } else if (items.length) {\n return virtual\n ? this.renderDynamicTable(visibleItems)\n : this.renderSimpleTable(visibleItems);\n } else {\n return this.props.body && this.renderEmptyTableContent;\n }\n }\n\n render() {\n const {virtual} = this.props;\n\n // FIXME: the elements-table-wrapper className was added to account for the <thead> height and get correct container size\n return (\n <ErrorBoundary>\n <div className={virtual ? 'elements-table-wrapper' : undefined}>\n {this.renderTable()}\n </div>\n </ErrorBoundary>\n );\n }\n}\n\nconst mapStateToProps = ({tables}) => {\n return {sortState: tables};\n};\n\nconst mapDispatchToProps = {\n toggleColumnSortOrder,\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(ElementsTable);\n","import React, {CSSProperties, Component} from 'react';\nimport PropTypes from 'prop-types';\nimport block from 'bem-cn-lite';\n\nimport {\n ELEMENTS_TABLE,\n TemplatesPropType,\n getColumnCaption,\n getColumnEdgePosition,\n prepareCellClassName,\n prepareColumnsData,\n prepareGroupCellClassName,\n} from './utils';\nimport {OldSortState} from '../../types';\nimport {OrderType, oldSortStateToOrderType} from '../../utils/sort-helpers';\nimport SortIcon from '../../components/SortIcon/SortIcon';\nimport {Tooltip} from '../../components/Tooltip/Tooltip';\nimport {ToggleColumnSortOrderParams} from '../../store/actions/tables';\nimport {RootState} from '../../store/reducers';\n\nconst b = block(ELEMENTS_TABLE);\n\nexport const sortStateType = PropTypes.shape({\n field: PropTypes.string,\n asc: PropTypes.bool,\n});\n\nexport interface ElementsTableHeaderProps {\n css?: string;\n templates?: unknown;\n size: string;\n theme: string;\n padded: boolean;\n striped: boolean;\n\n items: Array<unknown>;\n //computeKey: () => void;\n onItemClick?: () => void;\n onItemHover?: () => void;\n\n toggleColumnSortOrder: (params: ToggleColumnSortOrderParams) => void;\n\n //sortInfo?: () => OldSortState;\n tableId: keyof RootState['tables'];\n sortState?: Record<string, OldSortState>;\n onSort?: (columnName?: string) => void;\n\n columns: ColumnsItem;\n\n itemHeight?: number;\n selectedIndex?: number;\n headerClassName?: string;\n}\n\ninterface ColumnsItem {\n items: Array<{\n sort?: boolean;\n sortWithUndefined?: boolean;\n }>;\n sets: unknown;\n mode: string;\n}\n\ninterface State {\n columnItems: Record<string, ColumnGroupInfo | ColumnInfo>;\n columnSet: {\n items: Array<string>;\n hasGroups?: boolean;\n };\n}\n\ninterface ColumnGroupInfo {\n groupName: string;\n groupFirstItem?: boolean;\n headerStyle?: CSSProperties;\n groupCount?: number;\n groupId?: string;\n\n tooltipProps?: undefined;\n sort?: undefined;\n renderHeader?: undefined;\n sortWithUndefined?: undefined;\n allowedOrderTypes?: undefined;\n\n caption?: React.ReactNode;\n captionTail?: React.ReactNode; // rendered after sort-order icon\n}\n\nexport interface ColumnInfo {\n align?: 'left' | 'right' | 'center';\n\n tooltipProps?: {\n className?: string;\n };\n sort?: boolean;\n sortWithUndefined?: boolean;\n allowedOrderTypes?: Array<OrderType>;\n\n renderHeader?: (column: ColumnInfo) => React.ReactNode;\n\n groupName?: undefined;\n\n caption?: React.ReactNode;\n captionTail?: React.ReactNode; // rendered after sort-order icon\n}\n\ninterface CellProps {\n style?: CSSProperties;\n colSpan?: number;\n rowSpan?: number;\n className?: string;\n key?: string;\n}\n\nexport default class ElementsTableHeader extends Component<ElementsTableHeaderProps, State> {\n static propTypes = {\n css: PropTypes.string,\n templates: TemplatesPropType.isRequired,\n size: PropTypes.string.isRequired,\n theme: PropTypes.string.isRequired,\n padded: PropTypes.bool.isRequired,\n striped: PropTypes.bool.isRequired,\n // ITEMS\n items: PropTypes.array.isRequired,\n computeKey: PropTypes.func,\n onItemClick: PropTypes.func,\n onItemHover: PropTypes.func,\n // old SORT\n sortInfo: PropTypes.func, // ko.param, old tables\n // new SORT\n tableId: PropTypes.string,\n sortState: sortStateType,\n // COLUMNS\n columns: PropTypes.shape({\n items: PropTypes.object.isRequired,\n sets: PropTypes.object.isRequired,\n mode: PropTypes.string.isRequired,\n }).isRequired,\n // VIRTUAL RENDERING\n itemHeight: PropTypes.number,\n // ROW SELECTION\n selectedIndex: PropTypes.number,\n headerClassName: PropTypes.string,\n };\n\n constructor(props: ElementsTableHeaderProps) {\n super(props);\n\n this.state = {\n columnItems: {},\n columnSet: {\n items: [],\n },\n };\n }\n\n // eslint-disable-next-line @typescript-eslint/member-ordering\n static getDerivedStateFromProps(props: ElementsTableHeaderProps) {\n const {columns} = props;\n const {items, set} = prepareColumnsData(columns);\n\n return {\n columnItems: items,\n columnSet: set,\n };\n }\n\n isColumnSortable(columnName: string) {\n const {columnItems} = this.state;\n const sortable = columnItems[columnName].sort;\n\n return typeof sortable === 'function' || (typeof sortable === 'boolean' && sortable);\n }\n\n renderCellCaptionTail(columnName: string) {\n const {columnItems} = this.state;\n const column = columnItems[columnName];\n\n return column?.captionTail || null;\n }\n\n renderCellCaption(columnName: string) {\n const {columnItems} = this.state;\n const column = columnItems[columnName];\n const withTooltip = Boolean(column?.tooltipProps);\n const content = getColumnCaption(column, columnName);\n const {className: tooltipClassName, ...restTooltipProps} = column?.tooltipProps || {};\n\n if (column?.renderHeader) {\n return column.renderHeader(column);\n }\n\n return withTooltip ? (\n <Tooltip {...restTooltipProps} className={b('column-name', tooltipClassName)}>\n {content}\n </Tooltip>\n ) : (\n <div\n className={b('column-name')}\n title={typeof content === 'string' ? content : undefined}\n >\n {content}\n </div>\n );\n }\n\n renderSortableHeaderCaption(columnName: string) {\n const className = block('g-link')({view: 'primary'});\n const {sortState, onSort} = this.props;\n\n const {sortWithUndefined, allowedOrderTypes} = this.state.columnItems[columnName];\n\n let sortInfo: OldSortState | undefined;\n let sortQuery, toggleOrder;\n if (sortState) {\n const {tableId, toggleColumnSortOrder} = this.props;\n sortInfo = sortState[tableId!];\n toggleOrder = () => {\n toggleColumnSortOrder({\n tableId,\n columnName,\n withUndefined: sortWithUndefined,\n allowedOrderTypes,\n });\n if (typeof onSort === 'function') {\n onSort(columnName);\n }\n };\n }\n\n const orderType = oldSortStateToOrderType(\n sortInfo?.field === columnName ? sortInfo : undefined,\n );\n\n return (\n <a className={className} href={sortQuery} onClick={toggleOrder}>\n {this.renderCellCaption(columnName)}\n <SortIcon className={b('cell-sort')} order={orderType} />\n {this.renderCellCaptionTail(columnName)}\n </a>\n );\n }\n\n renderHeaderCell(columnName: string, edgePosition: 'start' | 'end') {\n const {columnItems} = this.state;\n const cellClassName = prepareCellClassName(\n columnItems,\n columnName,\n this.props.css,\n edgePosition,\n );\n\n return (\n <th className={cellClassName} key={columnName}>\n {this.isColumnSortable(columnName) ? (\n this.renderSortableHeaderCaption(columnName)\n ) : (\n <React.Fragment>\n {this.renderCellCaption(columnName)}\n {this.renderCellCaptionTail(columnName)}\n </React.Fragment>\n )}\n </th>\n );\n }\n\n renderHeaderGroupCell(\n columnName: string,\n groupRowPlacement: 'top' | 'bottom',\n edgePosition: 'start' | 'end',\n ): React.ReactNode {\n const {columnItems} = this.state;\n const {css} = this.props;\n const column = columnItems[columnName];\n const cellClassName = prepareCellClassName(columnItems, columnName, css, edgePosition);\n const cellProps: CellProps = {\n key: columnName,\n className: cellClassName,\n };\n let caption = this.isColumnSortable(columnName)\n ? this.renderSortableHeaderCaption(columnName)\n : this.renderCellCaption(columnName);\n\n if (groupRowPlacement === 'top') {\n if (column.groupName) {\n if (column.groupFirstItem) {\n caption = this.renderCellCaption(column.groupName);\n cellProps.style = column.headerStyle;\n cellProps.colSpan = column.groupCount;\n cellProps.className = prepareGroupCellClassName(\n column.groupId,\n css,\n edgePosition,\n );\n } else {\n return null;\n }\n } else {\n cellProps.rowSpan = 2;\n }\n }\n\n if (groupRowPlacement === 'bottom' && !column.groupName) {\n return null;\n }\n\n return <th {...cellProps}>{caption}</th>;\n }\n\n renderHeaderGroupRow(placement: 'top' | 'bottom') {\n const {columnSet, columnItems} = this.state;\n\n return (\n <tr className={b('row')}>\n {columnSet.items.map((columnName, index) =>\n this.renderHeaderGroupCell(\n columnName,\n placement,\n getColumnEdgePosition(columnSet, columnItems, index, placement)!,\n ),\n )}\n </tr>\n );\n }\n\n renderHeaderRow() {\n const {columnSet, columnItems} = this.state;\n\n return (\n <tr className={b('row')}>\n {columnSet.items.map((columnName, index) =>\n this.renderHeaderCell(\n columnName,\n getColumnEdgePosition(columnSet, columnItems, index)!,\n ),\n )}\n </tr>\n );\n }\n\n render() {\n const {columnSet} = this.state;\n const hasGroups = columnSet.hasGroups;\n const headerClassName = b('head', this.props.headerClassName);\n\n return hasGroups ? (\n <thead className={headerClassName}>\n {this.renderHeaderGroupRow('top')}\n {this.renderHeaderGroupRow('bottom')}\n </thead>\n ) : (\n <thead className={headerClassName}>{this.renderHeaderRow()}</thead>\n );\n }\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport block from 'bem-cn-lite';\n\nimport {\n ELEMENTS_TABLE,\n TemplatesPropType,\n getColumnEdgePosition,\n getRenderer,\n prepareCellClassName,\n} from './utils';\n\nexport default class ElementsTableRow extends React.PureComponent {\n static propTypes = {\n css: PropTypes.string,\n templates: TemplatesPropType,\n item: PropTypes.object.isRequired,\n itemHeight: PropTypes.number,\n itemMods: PropTypes.func,\n index: PropTypes.number.isRequired,\n selected: PropTypes.bool.isRequired,\n columnSet: PropTypes.object.isRequired,\n columnItems: PropTypes.object.isRequired,\n onItemClick: PropTypes.func,\n onItemHover: PropTypes.func,\n toggleItemState: PropTypes.func,\n itemState: PropTypes.object,\n cssHover: PropTypes.bool.isRequired,\n onItemSelect: PropTypes.func,\n rowClassName: PropTypes.func,\n };\n\n componentDidUpdate() {\n const {selected, onItemSelect} = this.props;\n\n if (onItemSelect && selected) {\n onItemSelect();\n }\n }\n\n getItemMods(item, index) {\n const {itemMods, css} = this.props;\n\n return typeof itemMods === 'function' ? block(css)('table-row', itemMods(item, index)) : '';\n }\n\n getColumn(columnName) {\n return this.props.columnItems[columnName];\n }\n\n onMouseClick = (e) => {\n const {onItemClick} = this.props;\n if (typeof onItemClick === 'function') {\n onItemClick(e);\n }\n };\n\n renderCell(cell, columnName, rowIndex, colIndex) {\n const {\n css,\n templates: templatesCollection,\n columnSet,\n columnItems,\n toggleItemState,\n itemState,\n colSpan,\n } = this.props;\n const edgePosition = getColumnEdgePosition(columnSet, columnItems, colIndex);\n const cellClassName = prepareCellClassName(columnItems, columnName, css, edgePosition);\n const renderer = getRenderer(this, templatesCollection, columnName);\n\n const colSpanValue = !colSpan ? undefined : colSpan(cell, rowIndex, colIndex);\n return {\n colSpanValue,\n node: (\n <td key={columnName} className={cellClassName} colSpan={colSpanValue}>\n {renderer(cell, columnName, toggleItemState, itemState)}\n </td>\n ),\n };\n }\n\n render() {\n const {\n columnSet,\n item,\n itemHeight,\n index,\n selected,\n onItemHover,\n cssHover,\n onMouseMove,\n rowClassName: classNameFn,\n } = this.props;\n\n const extraClassName = classNameFn ? classNameFn(item, index) : '';\n const rowClassName = block(ELEMENTS_TABLE)(\n 'row',\n {\n selected: selected ? 'yes' : undefined,\n hover: cssHover ? 'yes' : undefined,\n },\n [this.getItemMods(item, index), extraClassName].filter(Boolean).join(' '),\n );\n const rowStyle = {height: itemHeight};\n\n const cells = [];\n for (let i = 0; i < columnSet.items.length; ) {\n const columnName = columnSet.items[i];\n const {node, colSpanValue} = this.renderCell(item, columnName, index, i);\n cells.push(node);\n i += colSpanValue > 0 ? colSpanValue : 1;\n }\n\n return (\n <tr\n className={rowClassName}\n onMouseMove={onMouseMove}\n onClick={this.onMouseClick}\n onMouseEnter={onItemHover}\n data-index={index}\n style={rowStyle}\n >\n {cells}\n </tr>\n );\n }\n}\n","import React from 'react';\nimport block from 'bem-cn-lite';\nimport PropTypes from 'prop-types';\nimport hammer from '../../common/hammer';\nimport templates from '../templates/templates';\n\nexport const ELEMENTS_TABLE = 'elements-table';\n\nexport const TemplatesPropType = PropTypes.oneOfType([\n PropTypes.shape({\n key: PropTypes.string,\n data: PropTypes.object,\n }),\n PropTypes.objectOf(PropTypes.func),\n]);\n\nexport function getRenderer(context, templatesCollection, columnName) {\n const {key} = templatesCollection;\n let renderer;\n\n if (key) {\n renderer = templates.get(key)[columnName] || templates.get(key).__default__;\n renderer = renderer?.bind(context);\n } else {\n // new way of passing templates\n renderer = templatesCollection[columnName] || templatesCollection.__default__;\n }\n return renderer || templates.__default__;\n}\n\nexport function getColumnCaption(column, columnName) {\n const caption =\n column && typeof column.caption !== 'undefined'\n ? column.caption\n : hammer.format['ReadableField'](columnName);\n\n return column && column.title ? <span title={column.title}>{caption}</span> : caption;\n}\n\nexport function getColumnEdgePosition(columnSet, columnItems, columnIndex, groupRowPlacement) {\n const columnName = columnSet.items[columnIndex];\n const column = columnItems[columnName];\n const isFirstColumn = columnIndex === 0;\n const isLastColumn = columnIndex === columnSet.items.length - 1;\n const isGroupFirstItem =\n groupRowPlacement === 'top' && column.groupName && column.groupFirstItem;\n const isLastGroupColumn =\n isGroupFirstItem && column.groupCount + columnIndex === columnSet.items.length;\n\n if (isFirstColumn) {\n return 'start';\n } else if (isLastColumn || isLastGroupColumn) {\n return 'end';\n }\n}\n\nexport function prepareColumnsData({items, sets, mode}, userMode) {\n const currentColumnSet = sets[userMode || mode];\n const preparedColumnItems = {};\n const preparedColumnSet = {\n items: [],\n };\n\n currentColumnSet.items.forEach((columnName) => {\n const columnItem = items[columnName];\n\n if (!columnItem) {\n return;\n }\n\n if (columnItem.group) {\n const groupName = getColumnCaption(columnItem, columnName);\n\n preparedColumnSet.hasGroups = true;\n columnItem.set.forEach((groupColumnName, groupColumnIndex) => {\n const groupColumnKey = columnName + '_' + groupColumnName;\n const groupColumnItem = {\n ...columnItem.items[groupColumnName],\n groupName,\n };\n\n if (groupColumnIndex === 0) {\n groupColumnItem.groupFirstItem = true;\n groupColumnItem.headerStyle = columnItem.groupHeaderStyle;\n groupColumnItem.groupCount = columnItem.set.length;\n groupColumnItem.groupId = columnName;\n }\n\n groupColumnItem.caption = getColumnCaption(groupColumnItem, groupColumnName);\n preparedColumnItems[groupColumnKey] = groupColumnItem;\n preparedColumnSet.items.push(groupColumnKey);\n });\n } else {\n preparedColumnItems[columnName] = columnItem;\n preparedColumnSet.items.push(columnName);\n }\n });\n\n return {\n items: preparedColumnItems,\n set: preparedColumnSet,\n };\n}\n\nexport function prepareCellClassName(columnItems, columnName, baseClassName, edgePosition) {\n const column = columnItems[columnName];\n const columnClassName = column?.className;\n const mix =\n column && baseClassName\n ? block(baseClassName)(\n 'table-item',\n {\n type: hammer.format['CssTemplateField'](columnName),\n },\n columnClassName,\n )\n : columnClassName;\n\n return block(ELEMENTS_TABLE)(\n 'cell',\n {\n align: column && column.align,\n edge: edgePosition,\n },\n mix,\n );\n}\n\nexport function prepareGroupCellClassName(groupId, baseClassName, edgePosition) {\n const mix = baseClassName\n ? block(baseClassName)('table-group-item', {\n type: hammer.format['CssTemplateField'](groupId),\n })\n : undefined;\n\n return block(ELEMENTS_TABLE)(\n 'cell',\n {\n align: 'center',\n edge: edgePosition,\n },\n mix,\n );\n}\n\nexport function prepareTableClassName({\n css,\n size,\n theme,\n striped,\n padded,\n onItemClick,\n getItemLink,\n selectedIndex,\n cssTableMods,\n}) {\n return block(ELEMENTS_TABLE)(\n {\n size,\n theme,\n striped: striped ? 'yes' : undefined,\n 'padded-edge': padded ? 'yes' : undefined,\n interactive:\n (onItemClick || getItemLink) && typeof selectedIndex === 'undefined' ? 'yes' : '',\n },\n css ? block(css)('table', cssTableMods) : undefined,\n );\n}\n","import React from 'react';\nimport block from 'bem-cn-lite';\n\nimport {Tooltip} from '../../components/Tooltip/Tooltip';\nimport ClipboardButton from '../../components/ClipboardButton/ClipboardButton';\n\nimport './StatusBlock.scss';\n\nconst b = block('status-block');\n\nexport type StatusBlockTheme =\n | 'banned'\n | 'warning'\n | 'info'\n | 'success'\n | 'danger'\n | 'full'\n | 'alerts'\n | 'default'\n | 'decommissioned';\n\nfunction StatusBlock({text, theme = 'default'}: {text: string | number; theme?: StatusBlockTheme}) {\n return (\n <Tooltip\n className={b({theme: theme})}\n content={\n <React.Fragment>\n <ClipboardButton text={text} view=\"clear\" /> {text}\n </React.Fragment>\n }\n >\n {text}\n </Tooltip>\n );\n}\n\nexport default StatusBlock;\n","import React, {Component} from 'react';\nimport PropTypes from 'prop-types';\nimport block from 'bem-cn-lite';\n\nimport './StatusBulb.scss';\n\ninterface Props {\n theme: 'unknown' | 'enabled' | 'disabled';\n}\n\nclass StatusBulb extends Component<Props> {\n static propTypes = {\n theme: PropTypes.string,\n };\n\n render() {\n const className = block('status-bulb')({theme: this.props.theme});\n return <div className={className}></div>;\n }\n}\n\nexport default StatusBulb;\n","import React from 'react';\n\nimport Label from '../../../../components/Label/Label';\n\nexport function renderLabel(flag: boolean): React.ReactNode {\n return (\n <Label\n text={flag ? 'Disabled' : 'Enabled'}\n theme={flag ? 'danger' : 'success'}\n type=\"text\"\n />\n );\n}\n\nexport const TABLET_SLOTS = {\n none: {\n theme: 'default',\n text: 'N',\n },\n stopped: {\n theme: 'default',\n text: 'S',\n },\n elections: {\n theme: 'warning',\n text: 'E',\n },\n follower_recovery: {\n theme: 'warning',\n text: 'FR',\n },\n leader_recovery: {\n theme: 'warning',\n text: 'LR',\n },\n following: {\n theme: 'info',\n text: 'F',\n },\n leading: {\n theme: 'success',\n text: 'L',\n },\n} as const;\n","import React from 'react';\n\nimport templates from './utils.js';\nimport hammer from '../../common/hammer';\n\ntemplates.add('elements/meta', {\n /**\n * @param {Object} settings\n * @param {String} settings.key\n * @param {String} settings.value\n * @param {Function|String} [settings.valueFormat]\n * @param {Function} [settings.valueTemplate]\n * @returns {XML}\n */\n item(settings) {\n // React implementation for 'elements/meta/item'\n\n const {key} = settings;\n const caption = hammer.format['ReadableField'](key);\n const valueFormat =\n typeof settings.valueFormat === 'function'\n ? settings.valueFormat\n : hammer.format[\n typeof settings.valueFormat === 'string'\n ? settings.valueFormat\n : 'ValueOrDefault'\n ];\n\n return (\n <div key={key} className=\"elements-meta-item\">\n <div className=\"elements-meta-item__key\">{caption}</div>\n <div className=\"elements-meta-item__value\">\n {settings.valueTemplate\n ? settings.valueTemplate(settings.value)\n : valueFormat(settings.value)}\n </div>\n </div>\n );\n },\n});\n","/* global YT */\nimport React from 'react';\nimport hammer from '../../../../common/hammer';\n\nimport Link from '../../../../components/Link/Link';\nimport StatusBlock from '../../../../components/StatusBlock/StatusBlock';\n\nimport {TABLET_SLOTS} from './nodes';\nimport templates from '../../../../components/templates/utils';\nimport {genTabletCellBundlesCellUrl} from '../../../../utils/tablet_cell_bundles';\n\ntemplates.add('components/nodes/node', {\n cell_id(item) {\n const url = genTabletCellBundlesCellUrl(item.cell_id, YT.cluster);\n\n return item.cell_id ? (\n <Link url={url} theme=\"ghost\" routed>\n {item.cell_id}\n </Link>\n ) : (\n hammer.format.NO_VALUE\n );\n },\n peer_id(item) {\n return item.peer_id;\n },\n state(item) {\n const {text, theme} = TABLET_SLOTS[item.state];\n\n return item.state ? <StatusBlock theme={theme} text={text} /> : hammer.format.NO_VALUE;\n },\n});\n","import './components/nodes/nodes';\nimport './components/nodes/node';\n\nimport React from 'react';\nimport block from 'bem-cn-lite';\n\nimport keys_ from 'lodash/keys';\nimport map_ from 'lodash/map';\n\nimport {Progress} from '@gravity-ui/uikit';\n\nimport Link from '../../components/Link/Link';\nimport templates from '../../components/templates/utils.js';\n\nimport hammer from '../../common/hammer';\nimport {genTabletCellBundlesCellUrl} from '../../utils/tablet_cell_bundles';\n\nfunction renderUsage(used, limit, format) {\n const left = hammer.format[format](used);\n const right = hammer.format[format](limit);\n\n return (\n <span>\n {left} / {right}\n </span>\n );\n}\n\nconst b = block('elements-label');\n\nconst TABLET_SLOTS = {\n none: {\n theme: 'default',\n text: 'N',\n },\n stopped: {\n theme: 'default',\n text: 'S',\n },\n elections: {\n theme: 'warning',\n text: 'E',\n },\n follower_recovery: {\n theme: 'warning',\n text: 'FR',\n },\n leader_recovery: {\n theme: 'warning',\n text: 'LR',\n },\n following: {\n theme: 'primary',\n text: 'F',\n },\n leading: {\n theme: 'success',\n text: 'L',\n },\n};\n\nconst IO_WEIGHT_PREFIX = 'io_weight_';\n\ntemplates.add('components/nodes', {\n __default__(item, columnName) {\n if (typeof item.IOWeight === 'object' && columnName.indexOf(IO_WEIGHT_PREFIX) === 0) {\n const mediumName = columnName.slice(IO_WEIGHT_PREFIX.length);\n\n return hammer.format['Number'](item.IOWeight[mediumName]);\n }\n },\n\n host: templates.get('components').host,\n\n state: templates.get('components').state,\n\n rack(item) {\n return <span className=\"elements-monospace\">{hammer.format['Address'](item.rack)}</span>;\n },\n\n user_tags(item) {\n if (item.userTags) {\n return item.userTags.map((tag) => (\n <span key={tag} className={b({theme: 'default'})}>\n {tag}\n </span>\n ));\n }\n\n return null;\n },\n\n banned: templates.get('components').banned,\n\n decommissioned(item) {\n return item.decommissioned ? <span className={b({theme: 'default'})}>D</span> : '—';\n },\n\n full(item) {\n return item.full ? <span className={b({theme: 'danger'})}>F</span> : '—';\n },\n\n alerts(item) {\n const alertsCount = item.alerts && item.alerts.length;\n\n return alertsCount ? <span className={b({theme: 'danger'})}>{alertsCount}</span> : '—';\n },\n\n space(item) {\n return <Progress value={item.spaceProgress} text={item.spaceText} theme=\"success\" />;\n },\n\n space_limit(item) {\n return hammer.format['Bytes'](item.spaceUsed + item.spaceAvailable);\n },\n\n locations(item) {\n return item.locations\n ? renderUsage(item.enabledLocations.length, item.locations.length, 'Number')\n : null;\n },\n\n sessions(item) {\n return hammer.format['Number'](item.sessions);\n },\n\n chunks(item) {\n return hammer.format['Number'](item.chunks);\n },\n\n io_weight(item) {\n return hammer.format['Number'](item.IOWeight);\n },\n\n cpu(item) {\n return <Progress value={item.cpuProgress} text={item.cpuText} theme=\"success\" />;\n },\n\n memory(item) {\n const {onMemoryProgressMouseEnter, onMemoryProgressMouseLeave} = this.props.templates.data;\n let onMouseEnterHandler;\n\n if (typeof onMemoryProgressMouseEnter === 'function') {\n onMouseEnterHandler = (event) =>\n onMemoryProgressMouseEnter(item, event.currentTarget, event);\n }\n\n return (\n <div onMouseEnter={onMouseEnterHandler} onMouseLeave={onMemoryProgressMouseLeave}>\n <Progress\n value={item.memoryProgress}\n text={item.memoryText}\n stack={item.memoryData}\n />\n </div>\n );\n },\n\n memory_total(item) {\n return <Progress value={item.memoryProgress} text={item.memoryTotalText} theme=\"success\" />;\n },\n\n network(item) {\n return <Progress value={item.networkProgress} text={item.networkText} theme=\"success\" />;\n },\n\n repair_slots(item) {\n return renderUsage(item.repairSlots.usage, item.repairSlots.limits, 'Number');\n },\n\n removal_slots(item) {\n return renderUsage(item.removalSlots.usage, item.removalSlots.limits, 'Number');\n },\n\n replication_slots(item) {\n return renderUsage(item.replicationSlots.usage, item.replicationSlots.limits, 'Number');\n },\n\n seal_slots(item) {\n return renderUsage(item.sealSlots.usage, item.sealSlots.limits, 'Number');\n },\n\n user_slots(item) {\n return renderUsage(item.userSlots.usage, item.userSlots.limits, 'Number');\n },\n\n tablet_slots(item) {\n if (item.tabletSlots) {\n return map_(keys_(item.tabletSlots.byState), (state) => {\n const tabletSlots = item.tabletSlots.byState[state];\n const {text, theme} = TABLET_SLOTS[state];\n\n return (\n <span key={state} className={b({theme})}>\n {text}: {tabletSlots.length}\n </span>\n );\n });\n }\n\n return null;\n },\n\n tablet_memory_static(item) {\n return renderUsage(item.tabletStaticMemory.used, item.tabletStaticMemory.limit, 'Bytes');\n },\n\n tablet_memory_dynamic(item) {\n return renderUsage(item.tabletDynamicMemory.used, item.tabletDynamicMemory.limit, 'Bytes');\n },\n});\n\ntemplates.add('components/proxies', {\n host: templates.get('components').host,\n\n state: templates.get('components').state,\n\n role(item) {\n const roleThemes = {\n control: 'default',\n data: 'default',\n };\n const labelClassName = b({\n theme: roleThemes[item.role] ? roleThemes[item.role] : 'warning',\n });\n\n return <span className={labelClassName}>{hammer.format['Address'](item.role)}</span>;\n },\n\n banned: templates.get('components').banned,\n\n load_average(item) {\n return <span>{hammer.format['Number'](item.loadAverage, {digits: 2})}</span>;\n },\n\n network_load(item) {\n return <span>{hammer.format['Number'](item.networkLoad, {digits: 2})}</span>;\n },\n\n updated_at(item) {\n return <span>{hammer.format['DateTime'](item.updatedAt, {format: 'short'})}</span>;\n },\n});\n\ntemplates.add('components/tablet-slots', {\n cell_id(tabletSlot) {\n if (typeof tabletSlot.cell_id === 'undefined') {\n return hammer.format.NO_VALUE;\n }\n\n const tabletCellHref = genTabletCellBundlesCellUrl(tabletSlot.cell_id);\n\n return (\n <Link title={tabletSlot.cell_id} url={tabletCellHref}>\n {tabletSlot.cell_id}\n </Link>\n );\n },\n\n peer_id(tabletSlot) {\n if (typeof tabletSlot.peer_id === 'undefined') {\n return hammer.format.NO_VALUE;\n }\n\n return tabletSlot.peer_id;\n },\n\n state(tabletSlot) {\n const {text, theme} = TABLET_SLOTS[tabletSlot.state];\n\n return (\n <span className={b({theme})} title={tabletSlot.state}>\n {text}\n </span>\n );\n },\n});\n","import React from 'react';\nimport unipika from '../../../../../../common/thor/unipika';\nimport {connect} from 'react-redux';\nimport {compose} from 'redux';\nimport PropTypes from 'prop-types';\nimport hammer from '../../../../../../common/hammer';\nimport cn from 'bem-cn-lite';\n\nimport {Button} from '@gravity-ui/uikit';\nimport Modal from '../../../../../../components/Modal/Modal';\nimport Yson from '../../../../../../components/Yson/Yson';\n\nimport withVisible from '../../../../../../hocs/withVisible';\n\nconst block = cn('specification');\n\nFilterOverview.propTypes = {\n // from parent-components\n type: PropTypes.string.isRequired,\n filters: PropTypes.object.isRequired,\n typedFilters: PropTypes.object.isRequired,\n // from connect\n settings: Yson.settingsProps.isRequired,\n // from hoc\n visible: PropTypes.bool.isRequired,\n handleShow: PropTypes.func.isRequired,\n handleClose: PropTypes.func.isRequired,\n};\n\nfunction FilterOverview({type, filters, typedFilters, visible, handleShow, handleClose, settings}) {\n const modalContent = <Yson value={typedFilters} settings={settings} />;\n\n return (\n <li>\n <span className={block('filter-overview')}>\n <span className={block('filter-name')}>{hammer.format['ReadableField'](type)}</span>\n\n <span className={block('filter-count')}>{filters[type].length}</span>\n </span>\n\n <Button view=\"flat-secondary\" size=\"m\" onClick={handleShow}>\n View\n </Button>\n\n <Modal\n onOutsideClick={handleClose}\n onCancel={handleClose}\n content={modalContent}\n visible={visible}\n title=\"Filters\"\n footer={false}\n />\n </li>\n );\n}\n\nconst mapStateToProps = () => {\n const settings = unipika.prepareSettings();\n\n return {settings};\n};\n\nexport default compose(withVisible, connect(mapStateToProps))(FilterOverview);\n","/* global YT */\nimport React from 'react';\nimport cn from 'bem-cn-lite';\n\nimport FilterOverview from '../../../pages/operations/OperationDetail/tabs/details/FilterOverview/FilterOverview';\nimport ClipboardButton from '../../../components/ClipboardButton/ClipboardButton';\nimport Label from '../../../components/Label/Label';\nimport Link from '../../../components/Link/Link';\nimport Icon from '../../../components/Icon/Icon';\n\nimport {TemplateLivePreivew} from '../../../components/MetaTable/templates/OperationTemplate';\nimport templates from '../../../components/templates/utils';\nimport {Page} from '../../../constants/index';\n\nimport hammer from '../../../common/hammer';\nimport {paramsToQuery} from '../../../utils';\nimport OperationIOLink from '../../../pages/operations/OperationIOLink/OperationIOLink';\n\nconst block = cn('specification');\nconst ellipsis = cn('elements-ellipsis');\n\ntemplates.add('operations/detail/specification/io', {\n name(item) {\n const {path, originalPath, transaction, remote, url: itemUrl} = item;\n\n const query = paramsToQuery({path, t: transaction});\n const url = remote ? itemUrl : `/${YT.cluster}/${Page.NAVIGATION}?${query}`;\n\n return item.isFolder ? (\n <div className={block('io-folder', ellipsis())}>\n <Icon awesome=\"folder-open\" />\n \n <OperationIOLink {...item} className={block('io-folder-path')} />\n </div>\n ) : (\n <div className={block('io-name', ellipsis())}>\n <ClipboardButton text={path} view=\"flat-secondary\" size=\"s\" title=\"Copy path\" />\n \n <OperationIOLink {...item} />\n \n {originalPath && (\n <Link title={path} url={url}>\n <Icon awesome=\"folders\" />\n </Link>\n )}\n </div>\n );\n },\n filters(item) {\n if (item.isFolder) {\n return;\n }\n\n const filters = item.filters;\n const typedFilters = item.typedFilters;\n\n return filters ? (\n <ul className={cn('elements-list')({type: 'unstyled'})}>\n {filters?.columns && (\n <FilterOverview type=\"columns\" filters={filters} typedFilters={typedFilters} />\n )}\n {filters?.ranges && (\n <FilterOverview type=\"ranges\" filters={filters} typedFilters={typedFilters} />\n )}\n </ul>\n ) : (\n hammer.format.NO_VALUE\n );\n },\n live_preview(item) {\n if (item.isFolder) {\n return;\n }\n\n return item.livePreview.supported ? (\n <TemplateLivePreivew {...item.livePreview} cluster={YT.cluster} />\n ) : (\n hammer.format.NO_VALUE\n );\n },\n tags(item) {\n if (item.isFolder) {\n return;\n }\n\n return item.primary || item.teleport || item.append || item.foreign ? (\n <div className={block('tags')}>\n {item.primary && <Label text=\"primary\" theme=\"info\" />}\n {item.teleport && <Label text=\"teleport\" theme=\"warning\" />}\n {item.append && <Label text=\"append\" theme=\"warning\" />}\n {item.foreign && <Label text=\"foreign\" theme=\"info\" />}\n </div>\n ) : (\n hammer.format.NO_VALUE\n );\n },\n});\n","import React from 'react';\nimport cn from 'bem-cn-lite';\n\nimport {Progress} from '@gravity-ui/uikit';\nimport {Event} from '../../../utils/operations/tabs/details/events/events';\n\nimport hammer from '../../../common/hammer';\nimport templates, {\n printColumnAsReadableField,\n printColumnAsTime,\n printColumnAsTimeDurationWithMs,\n} from '../../../components/templates/utils';\n\nconst block = cn('operation-detail');\n\ntemplates.add('operations/detail/events', {\n start_time: printColumnAsTime,\n finish_time: printColumnAsTime,\n duration(item, columnName) {\n return Event.isNotFinalState(item)\n ? printColumnAsTimeDurationWithMs.call(this, item, columnName)\n : hammer.format.NO_VALUE;\n },\n progress(item, columnName) {\n if (Event.isNotFinalState(item) && item.state !== 'total') {\n const progress = item.progress.duration;\n const column = this.getColumn(columnName);\n const {theme, value} = column.get(item);\n\n return (\n <div className={block('events-progress', {theme})}>\n <span\n className={block('events-progress-percentage', 'elements-secondary-text')}\n >\n {hammer.format['Percent'](progress)}\n </span>\n\n <Progress value={value} size={'xs'} />\n </div>\n );\n }\n },\n state: printColumnAsReadableField,\n});\n","import templates from '../../../components/templates/utils';\nimport hammer from '../../../common/hammer';\n\ntemplates.add('operations/detail/resources/intermediate', {\n account(item, column) {\n return hammer.format['ValueOrDefault'](item[column]);\n },\n chunk_count(item, column) {\n return hammer.format['Number'](item[column]);\n },\n node_count(item, column) {\n return hammer.format['Number'](item[column]);\n },\n disk_space(item, column) {\n return hammer.format['Bytes'](item[column]);\n },\n});\n","import React from 'react';\nimport block from 'bem-cn-lite';\n\nimport Label from '../../components/Label/Label';\nimport Icon from '../../components/Icon/Icon';\n\nimport templates from './utils.js';\nimport hammer from '../../common/hammer';\n\nconst b = block('system');\n\ntemplates.add('system/chunk-cells', {\n __default__(item, columnName) {\n const column = this.getColumn(columnName);\n const value = column?.get?.(item);\n const theme = column?.label?.(value) || 'default';\n const text = hammer.format['Number'](value);\n\n return <Label theme={theme} text={text} />;\n },\n cell_tag(item, columnName) {\n const column = this.getColumn(columnName);\n const cellTag = column?.get?.(item);\n\n const cellTagClassNames = b('master-quorum-cell');\n const cellTagIconClassNames = b('master-quorum-cell-icon');\n\n return (\n <div className={cellTagClassNames} title={`Cell tag: ${cellTag}`}>\n <Icon className={cellTagIconClassNames} face=\"solid\" awesome=\"tag\" />\n \n <span>{hammer.format['Hex'](cellTag)}</span>\n </div>\n );\n },\n});\n","import React from 'react';\n\nimport StatusBulb from '../../components/StatusBulb/StatusBulb';\nimport hammer from '../../common/hammer';\nimport templates from './utils.js';\nimport Link from '../../components/Link/Link';\nimport {getClusterAppearance} from '../../appearance';\n\ntemplates.add('cluster-menu', {\n image(item) {\n const {theme} = item;\n const itemStyle = {\n backgroundImage: 'url(' + getClusterAppearance(item.id).icon + ')',\n };\n const clusterTheme = theme ? `cluster-color_theme_${theme}` : 'cluster-color';\n return (\n <div\n className={`cluster-menu__table-item-image ${clusterTheme}`}\n style={itemStyle}\n ></div>\n );\n },\n environment(item) {\n return (\n <span className=\"elements-heading elements-heading_theme_system\">\n {hammer.format['ValueOrDefault'](item.environment)}\n </span>\n );\n },\n name(item) {\n return (\n <Link theme=\"primary\" url={'/' + item.id + '/'}>\n {item.name}\n </Link>\n );\n },\n access(item) {\n const theme = {\n none: 'disabled',\n granted: 'enabled',\n }[item.access];\n\n return <StatusBulb theme={theme} />;\n },\n status(item) {\n const theme = {\n available: 'enabled',\n unavailable: 'disabled',\n }[item.status];\n\n return <StatusBulb theme={theme} />;\n },\n version(item) {\n return hammer.format['ValueOrDefault'](item.version);\n },\n});\n","import templates from './utils.js';\nimport './meta';\nimport './components';\nimport './operations';\nimport './system';\nimport './cluster-menu';\n\nexport default templates;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport {getDisplayName} from '../utils';\n\nexport interface WithVisibleProps {\n visible?: boolean;\n handleShow: () => void;\n handleClose: () => void;\n toggleVisible: () => void;\n}\n\nexport interface State {\n visible?: boolean;\n}\n\nexport default function withVisible<P extends WithVisibleProps>(Component: React.ComponentType<P>) {\n const ResComponent = class WithVisible extends React.Component<P, State> {\n static propTypes = {\n visible: PropTypes.bool,\n };\n\n static defaultProps = {\n visible: false,\n };\n\n static displayName = `WithVisible(${getDisplayName(Component)})`;\n\n state = {visible: this.props.visible};\n\n handleShow = () => this.setState({visible: true});\n handleClose = () => this.setState({visible: false});\n toggleVisible = () => this.setState((prevState) => ({visible: !prevState.visible}));\n\n render() {\n const {visible} = this.state;\n\n return (\n <Component\n {...this.props}\n visible={visible}\n handleShow={this.handleShow}\n handleClose={this.handleClose}\n toggleVisible={this.toggleVisible}\n />\n );\n }\n };\n return ResComponent as any as React.ComponentClass<P, State>;\n}\n","import React from 'react';\n\nimport Link, {LinkProps} from '../../../components/Link/Link';\n\nimport {Page} from '../../../constants/index';\n\nimport {paramsToQuery} from '../../../utils';\n\nconst YT = (window as any).YT;\n\ninterface Props {\n name: string;\n cluster?: string;\n path: string;\n originalPath: string;\n transaction: string;\n remote: boolean;\n url: string;\n isFolder: boolean;\n className?: string;\n theme: LinkProps['theme'];\n}\n\nexport default function OperationIOLink(props: Props) {\n const {\n name,\n cluster,\n path,\n originalPath,\n transaction,\n remote,\n url: itemUrl,\n isFolder,\n className,\n theme,\n } = props;\n\n const pathCluster = cluster ?? YT.cluster;\n\n const query = paramsToQuery({path, t: transaction});\n const url = remote ? itemUrl : `/${pathCluster}/${Page.NAVIGATION}?${query}`;\n const originalQuery = paramsToQuery({path: originalPath});\n const originalUrl = `/${pathCluster}/${Page.NAVIGATION}?${originalQuery}`;\n\n return isFolder ? (\n <Link theme={theme} className={className} url={url} title={path}>\n {cluster ? `${cluster}:` : undefined}\n {path}\n </Link>\n ) : (\n <Link\n theme={theme}\n className={className}\n url={originalPath ? originalUrl : url}\n title={originalPath || path || name}\n >\n {cluster ? `${cluster}:` : undefined}\n {originalPath || path || name}\n </Link>\n );\n}\n","import {TOGGLE_COLUMN_SORT_ORDER} from '../../constants/tables';\nimport {\n OrderType,\n calculateNextOrderValue,\n nextSortOrderValue,\n oldSortStateToOrderType,\n orderTypeToOldSortState,\n} from '../../utils/sort-helpers';\nimport {ThunkAction} from 'redux-thunk';\nimport {RootState} from '../reducers';\nimport {TablesSortOrderAction, TablesSortOrderState} from '../reducers/tables';\n\nexport type ToggleColumnSortOrderParams = {\n columnName: string;\n tableId: keyof RootState['tables'];\n /** The field is ignored when **allowedOrderTypes** is defined */\n withUndefined?: boolean;\n /** The field is ignored when **allowedOrderTypes** is defined */\n allowUnordered?: boolean;\n /** When defined **withUndefined** is ignored */\n allowedOrderTypes?: Array<OrderType>;\n};\n\ntype TablesThunkAction = ThunkAction<any, RootState, any, any>;\n\nexport function toggleColumnSortOrder({\n columnName,\n tableId,\n withUndefined,\n allowUnordered,\n allowedOrderTypes,\n}: ToggleColumnSortOrderParams): TablesThunkAction {\n return (dispatch, getState) => {\n const {tables} = getState();\n const sortInfo = tables[tableId];\n\n const orderType = sortInfo.field === columnName ? oldSortStateToOrderType(sortInfo) : '';\n\n let newOrderType;\n if (allowedOrderTypes?.length) {\n newOrderType = calculateNextOrderValue(orderType, allowedOrderTypes);\n } else {\n newOrderType = nextSortOrderValue(orderType, allowUnordered, withUndefined);\n }\n\n const newSortInfo = orderTypeToOldSortState(columnName, newOrderType);\n\n dispatch({\n type: TOGGLE_COLUMN_SORT_ORDER,\n data: {[tableId]: newSortInfo},\n });\n };\n}\n\ninterface ChangeColumnSortOrderParams<K extends keyof TablesSortOrderState> {\n tableId: K;\n columnName: TablesSortOrderState[K]['field'];\n asc?: boolean;\n}\n\nexport function changeColumnSortOrder<K extends keyof TablesSortOrderState>({\n tableId,\n columnName,\n asc,\n}: ChangeColumnSortOrderParams<K>): TablesSortOrderAction {\n return {\n type: TOGGLE_COLUMN_SORT_ORDER,\n data: {[tableId]: {field: columnName, asc}},\n };\n}\n","import { block } from '../utils/cn';\nexport const progressBlock = block('progress');\n","import React from 'react';\nimport { progressBlock } from './constants';\nexport function ProgressInnerText(props) {\n const { text, offset = 0 } = props;\n if (!text) {\n return null;\n }\n return (React.createElement(\"div\", { className: progressBlock('text-inner'), style: { transform: `translateX(calc(var(--g-flow-direction) * ${-offset}%))` } }, text));\n}\n","import React from 'react';\nimport { progressBlock } from './constants';\nexport function ProgressStackItem({ item }) {\n const { value, color, className, theme, title, content, loading } = item;\n const modifiers = {\n loading,\n };\n if (typeof color === 'undefined') {\n modifiers.theme = theme || 'default';\n }\n if (Number.isFinite(value)) {\n return (React.createElement(\"div\", { className: progressBlock('item', modifiers, className), style: { width: `${value}%`, backgroundColor: color }, title: title }, content));\n }\n return null;\n}\n","export function getOffset(value) {\n return value < 100 ? value - 100 : 0;\n}\nexport function getValueFromStack(stack) {\n return stack.reduce((sum, { value }) => sum + value, 0);\n}\nexport function getTheme(props) {\n const { theme, colorStops, colorStopsValue, value } = props;\n if (colorStops) {\n const matchingColorStopItem = colorStops.find((item, index) => {\n const currentValue = typeof colorStopsValue === 'number' ? colorStopsValue : value;\n const minValue = index > 1 ? colorStops[index - 1].stop : 0;\n const maxValue = index < colorStops.length - 1 ? item.stop : 100;\n return currentValue >= minValue && currentValue <= maxValue;\n });\n return matchingColorStopItem ? matchingColorStopItem.theme : theme;\n }\n return theme;\n}\n","import React from 'react';\nimport { ProgressInnerText } from './ProgressInnerText';\nimport { ProgressStackItem } from './ProgressStackItem';\nimport { progressBlock } from './constants';\nimport { getOffset, getValueFromStack } from './utils';\nexport function ProgressWithStack(props) {\n const { stack, stackClassName, value, text } = props;\n const offset = getOffset(value || getValueFromStack(stack));\n return (React.createElement(\"div\", { className: progressBlock('stack', stackClassName), style: { transform: `translateX(calc(var(--g-flow-direction) * ${offset}%))` } },\n React.createElement(\"div\", { className: progressBlock('item'), style: { width: `${-offset}%` } }),\n stack.map((item, index) => (React.createElement(ProgressStackItem, { key: index, item: item }))),\n React.createElement(ProgressInnerText, { offset: offset, text: text })));\n}\n","import React from 'react';\nimport { ProgressInnerText } from './ProgressInnerText';\nimport { progressBlock } from './constants';\nimport { getOffset, getTheme } from './utils';\nexport function ProgressWithValue(props) {\n const { value, loading, text } = props;\n const offset = getOffset(value);\n if (!Number.isFinite(value)) {\n return null;\n }\n return (React.createElement(\"div\", { className: progressBlock('item', { theme: getTheme(props), loading }), style: { transform: `translateX(calc(var(--g-flow-direction) * ${offset}%))` } },\n React.createElement(ProgressInnerText, { offset: offset, text: text })));\n}\n","import React from 'react';\nimport { ProgressWithStack } from './ProgressWithStack';\nimport { ProgressWithValue } from './ProgressWithValue';\nimport { progressBlock } from './constants';\nimport { isProgressWithStack } from './types';\nimport './Progress.css';\nexport const Progress = React.forwardRef(function Progress(props, ref) {\n const { text = '', theme = 'default', size = 'm', loading = false, className, qa } = props;\n const resolvedProps = Object.assign(Object.assign({}, props), { text, theme, size, loading });\n return (React.createElement(\"div\", { ref: ref, className: progressBlock({ size }, className), \"data-qa\": qa },\n React.createElement(\"div\", { className: progressBlock('text') }, text),\n isProgressWithStack(resolvedProps) ? (React.createElement(ProgressWithStack, Object.assign({}, resolvedProps))) : (React.createElement(ProgressWithValue, Object.assign({}, resolvedProps)))));\n});\n","export function isProgressWithStack(props) {\n return props.stack !== undefined;\n}\n"],"names":["ElementsTable","_Component","_inherits","_super","_createSuper","_this","_classCallCheck","_len","arguments","length","args","Array","_key","call","apply","concat","state","items","prevMouseCoordinates","list","createRef","isItemVisible","item","computeKey","props","visible","onItemHover","evt","_this$props","mouseCoordinatesChanged","updateMouseCoordinates","index","currentTarget","dataset","Number","onItemSelect","_this$props2","selectedIndex","onItemClick","linkOrButtonWasClicked","_this$props3","getItemLink","action","makeEntryClickHandler","handleClick","renderEmptyTableContent","_jsxs","children","_jsx","className","block","ELEMENTS_TABLE","emptyDataDescription","renderEmptyCell","cell","columnName","css","_this$state","columnSet","columnItems","edgePosition","getColumnEdgePosition","cellClassName","prepareCellClassName","renderSkeletonState","itemHeight","tableClassName","prepareTableClassName","bodyClassName","rowClassName","empty","rowStyle","height","header","ElementsTableHeader","_objectSpread","map_","range_","style","renderTableContent","ref","body","renderTableBody","_createClass","key","value","prevProps","_this$list","_this$props4","this","reactList","current","_reactList$getVisible","getVisibleRange","_reactList$getVisible2","_slicedToArray","firstIndex","lastIndex","scrollAround","window","scrollBy","toggledItemKey","_this$props5","tree","Object","assign","collapsed","itemKeys","map","updateVisibilityState","setState","onItemToggleState","x","clientX","y","clientY","_this$prevMouseCoordi","isLinkOrButton","node","nodeName","getAttribute","target","parentElement","undefined","_this$props6","templates","itemMods","cssHover","onMouseMove","colSpan","_this$state2","itemStates","selected","currentKey","ElementsTableRow","toggleItemState","bind","itemState","_this2","_this$props7","virtualType","ReactList","itemRenderer","renderRow","itemsRenderer","scrollTo","type","useStaticSize","_this3","rows","_this$props8","virtual","isLoading","visibleItems","filter_","renderDynamicTable","renderSimpleTable","ErrorBoundary","renderTable","keys","prevKey","prevKeyParts","totalKeys","reduce","states","keyParts","split","boundaryCondition","parts","slice","parentState","join","pop","treeState","prevTreeState","toAdd","oldKeys","newKeys","toRemove","difference_","sort","forEach_","getEmptinessStates","omit_","forEach","collapsedAncestorExists","columns","columnsMode","_prepareColumnsData","prepareColumnsData","nextState","set","updateItemStates","treeStateExpanded","itemsState","itemKeyParts","currentIndex","indexOf","startsWith","Component","defaultProps","size","theme","padded","striped","mapDispatchToProps","toggleColumnSortOrder","connect","_ref","sortState","tables","b","PropTypes","field","asc","sortable","column","captionTail","withTooltip","Boolean","tooltipProps","content","getColumnCaption","tooltipClassName","restTooltipProps","_objectWithoutProperties","_excluded","renderHeader","Tooltip","title","_sortInfo","sortInfo","toggleOrder","view","onSort","_this$state$columnIte","sortWithUndefined","allowedOrderTypes","tableId","withUndefined","orderType","oldSortStateToOrderType","href","sortQuery","onClick","renderCellCaption","SortIcon","order","renderCellCaptionTail","isColumnSortable","renderSortableHeaderCaption","React","groupRowPlacement","cellProps","caption","groupName","groupFirstItem","headerStyle","groupCount","prepareGroupCellClassName","groupId","rowSpan","placement","renderHeaderGroupCell","renderHeaderCell","hasGroups","headerClassName","renderHeaderGroupRow","renderHeaderRow","_React$PureComponent","onMouseClick","e","rowIndex","colIndex","templatesCollection","renderer","getRenderer","colSpanValue","classNameFn","extraClassName","hover","getItemMods","filter","cells","i","_this$renderCell","renderCell","push","onMouseEnter","context","_renderer","get","__default__","hammer","format","columnIndex","isFirstColumn","isLastColumn","isLastGroupColumn","userMode","sets","mode","currentColumnSet","preparedColumnItems","preparedColumnSet","columnItem","group","groupColumnName","groupColumnIndex","groupColumnKey","groupColumnItem","groupHeaderStyle","baseClassName","columnClassName","mix","align","edge","_ref2","cssTableMods","interactive","data","text","_ref$theme","ClipboardButton","StatusBulb","renderLabel","flag","Label","TABLET_SLOTS","none","stopped","elections","follower_recovery","leader_recovery","following","leading","add","settings","valueFormat","valueTemplate","cell_id","url","genTabletCellBundlesCellUrl","YT","cluster","Link","routed","NO_VALUE","peer_id","_TABLET_SLOTS$item$st","StatusBlock","renderUsage","used","limit","left","right","_typeof","IOWeight","mediumName","IO_WEIGHT_PREFIX","host","rack","user_tags","userTags","tag","banned","decommissioned","full","alerts","alertsCount","space","Progress","spaceProgress","spaceText","space_limit","spaceUsed","spaceAvailable","locations","enabledLocations","sessions","chunks","io_weight","cpu","cpuProgress","cpuText","memory","onMouseEnterHandler","_this$props$templates","onMemoryProgressMouseEnter","onMemoryProgressMouseLeave","event","onMouseLeave","memoryProgress","memoryText","stack","memoryData","memory_total","memoryTotalText","network","networkProgress","networkText","repair_slots","repairSlots","usage","limits","removal_slots","removalSlots","replication_slots","replicationSlots","seal_slots","sealSlots","user_slots","userSlots","tablet_slots","tabletSlots","keys_","byState","_TABLET_SLOTS$state","tablet_memory_static","tabletStaticMemory","tablet_memory_dynamic","tabletDynamicMemory","role","roleThemes","control","labelClassName","load_average","loadAverage","digits","network_load","networkLoad","updated_at","updatedAt","tabletSlot","tabletCellHref","_TABLET_SLOTS$tabletS","cn","compose","withVisible","unipika","prepareSettings","filters","typedFilters","handleShow","handleClose","modalContent","Yson","Button","Modal","onOutsideClick","onCancel","footer","ellipsis","name","path","originalPath","transaction","remote","itemUrl","query","paramsToQuery","t","Page","NAVIGATION","isFolder","Icon","awesome","OperationIOLink","FilterOverview","ranges","live_preview","livePreview","supported","TemplateLivePreivew","tags","primary","teleport","append","foreign","start_time","printColumnAsTime","finish_time","duration","Event","isNotFinalState","printColumnAsTimeDurationWithMs","progress","_column$get","getColumn","printColumnAsReadableField","account","chunk_count","node_count","disk_space","_column$label","label","cell_tag","_column$get2","cellTag","cellTagClassNames","cellTagIconClassNames","face","image","itemStyle","backgroundImage","getClusterAppearance","id","icon","clusterTheme","environment","access","granted","status","available","unavailable","version","_WithVisible","ResComponent","_React$Component","WithVisible","toggleVisible","prevState","displayName","getDisplayName","pathCluster","originalQuery","originalUrl","allowUnordered","dispatch","getState","newOrderType","calculateNextOrderValue","nextSortOrderValue","newSortInfo","orderTypeToOldSortState","TOGGLE_COLUMN_SORT_ORDER","_defineProperty","changeColumnSortOrder","progressBlock","ProgressInnerText","offset","transform","ProgressStackItem","color","loading","modifiers","isFinite","width","backgroundColor","getOffset","getTheme","colorStops","colorStopsValue","matchingColorStopItem","find","currentValue","minValue","stop","maxValue","ProgressWithStack","stackClassName","sum","getValueFromStack","ProgressWithValue","qa","resolvedProps","isProgressWithStack"],"sourceRoot":""}
|
@@ -0,0 +1,2 @@
|
|
1
|
+
"use strict";(self.webpackChunk_ytsaurus_ui=self.webpackChunk_ytsaurus_ui||[]).push([[2447],{14880:(e,t,n)=>{n.d(t,{A:()=>u});var r=n(40319),a=n(18801),i=(n(77810),n(15647)),s=n(97536),o=n(57614),l=n(64922),c=["title","getPathProps","path","exactPath","attribute","attributes","openAttributesModal","withTooltip","tooltipProps"];const u=(0,i.Ng)(null,{openAttributesModal:o.V6})((function(e){var t=e.title,n=e.getPathProps,i=void 0===n?function(){return{}}:n,o=e.path,u=e.exactPath,d=e.attribute,p=e.attributes,m=e.openAttributesModal,h=e.withTooltip,g=void 0===h||h,v=e.tooltipProps,f=void 0===v?{placement:"bottom-end",content:"Show attributes"}:v,A=(0,a.A)(e,c);return(0,l.jsx)(s.A,(0,r.A)((0,r.A)({},A),{},{tooltipProps:f,withTooltip:g,onClick:function(){var e=(0,r.A)({path:o,exactPath:u},i());m((0,r.A)((0,r.A)({title:t},e),{},{attribute:d,attributes:p}))}}))}))},42324:(e,t,n)=>{n.d(t,{A:()=>l});var r=n(77810),a=n(76426),i=n(60620),s=n(64922);function o(e){var t=e.className,n=e.url,o=e.title,l=e.theme,c=e.children,u=e.hideIcon,d=e.face,p=e.wrapContent;if(!n)return null;var m=u?null:(0,s.jsx)(i.A,{awesome:"chart-bar",face:d}),h=c?(0,s.jsxs)(r.Fragment,{children:[m,c]}):m;return(0,s.jsx)(a.A,{className:t,target:"_blank",theme:l,url:n,title:null!=o?o:"View",children:p?p(h):h})}const l=r.memo(o)},70436:(e,t,n)=>{n.d(t,{O:()=>v,A:()=>f});var r=n(40319),a=n(9736),i=n(29121),s=n(12937),o=n(10785),l=n(26718),c=n(77810),u=n(76872),d=n(69835),p=n(60620),m=n(64922),h=(0,u.A)("collapsible-section"),g=(0,u.A)("elements-heading"),v=function(e){(0,o.A)(n,e);var t=(0,l.A)(n);function n(){var e;(0,i.A)(this,n);for(var r=arguments.length,a=new Array(r),s=0;s<r;s++)a[s]=arguments[s];return(e=t.call.apply(t,[this].concat(a))).toggle=function(){(0,e.props.onToggle)(!e.props.collapsed)},e}return(0,s.A)(n,[{key:"render",value:function(){var e=this.props,t=e.name,n=e.children,r=e.size,a=e.overview,i=e.className,s=e.collapsed,o=e.marginDirection,l=e.togglerRightPadding;return(0,m.jsx)(d.A,{children:(0,m.jsxs)("div",{className:h({margin:o},i),children:[(0,m.jsxs)("div",{className:g({size:r,overview:"yes"}),children:[(0,m.jsxs)("span",{className:g("heading",{clickable:"yes"},h("title")),onClick:this.toggle,children:[t,(0,m.jsx)("a",{children:(0,m.jsx)(p.A,{className:h("toggler",{"right-padding":l}),awesome:s?"angle-down":"angle-up"})})]}),a]}),!s&&(0,m.jsx)(d.A,{children:n})]})})}}]),n}(c.Component);function f(e){var t=e.onToggle,n=c.useState(e.collapsed),i=(0,a.A)(n,2),s=i[0],o=i[1],l=c.useCallback((function(e){o(e),t&&t(e)}),[o,t]);return(0,m.jsx)(v,(0,r.A)((0,r.A)({},e),{},{onToggle:l,collapsed:s}))}v.defaultProps={size:"m",collapsed:!1,marginDirection:"top"}},49133:(e,t,n)=>{n.d(t,{A:()=>g});var r=n(40319),a=n(29121),i=n(12937),s=n(10785),o=n(26718),l=n(77810),c=n(76872),u=n(17036),d=n(92736),p=(n(71801),n(64922)),m=function(e){(0,s.A)(n,e);var t=(0,o.A)(n);function n(e){var r;return(0,a.A)(this,n),(r=t.call(this,e)).state={},r}return(0,i.A)(n,[{key:"renderRow",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:t,r=this.props,a=r.css,i=r.itemHeight,s=r.templates,o=r.itemMods,l=r.selectedIndex,c=r.computeKey,d=r.cssHover,m=this.state,h=m.columnSet,g=m.columnItems,v=l===t,f="function"==typeof c?c(e):n;return(0,p.jsx)(u.A,{columnSet:h,columnItems:g,item:e,itemHeight:i,css:a,templates:s,selected:v,index:t,itemMods:o,cssHover:d},f)}},{key:"render",value:function(){var e=(0,c.A)(d.R9)("footer"),t=this.props.footer;return(0,p.jsx)("tfoot",{className:e,children:this.renderRow(t,0)})}}],[{key:"getDerivedStateFromProps",value:function(e){var t=e.columns,n=(0,d.PM)(t);return{columnItems:n.items,columnSet:n.set}}}]),n}(l.Component);m.defaultProps={templates:{},cssHover:!1};var h=n(53332);const g=function(e){var t;return t=function(t){(0,s.A)(u,t);var n=(0,o.A)(u);function u(){return(0,a.A)(this,u),n.apply(this,arguments)}return(0,i.A)(u,[{key:"renderStickyFooter",value:function(){var e=(0,c.A)("elements-table-wrapper")({sticky:"bottom"}),t=this.props.footer;return(0,p.jsx)("div",{className:e,children:(0,p.jsx)("table",{className:(0,d.xV)(this.props),children:(0,p.jsx)(m,(0,r.A)((0,r.A)({},this.props),{},{footer:t}))})})}},{key:"render",value:function(){return(0,p.jsxs)(l.Fragment,{children:[(0,p.jsx)(e,(0,r.A)({},this.props)),this.props.footer&&this.renderStickyFooter()]})}}]),u}(l.Component),t.displayName="WithStickyFooter(".concat((0,h.Mn)(e),")"),t.defaultProps={size:"m"},t}},41652:(e,t,n)=>{n.d(t,{A:()=>x});var r=n(40319),a=n(29121),i=n(12937),s=n(10785),o=n(26718),l=n(77810),c=n(15647),u=n(5992),d=n(76872),p=n(89067),m=n(33951),h=n(53332),g=n(92736),v=n(26264),f=(n(71801),n(64922)),A={toggleColumnSortOrder:m.z};const x=(0,u.Zz)((0,c.Ng)((function(e){return{sortState:e.tables}}),A),(function(e){var t;return t=function(t){(0,s.A)(c,t);var n=(0,o.A)(c);function c(){return(0,a.A)(this,c),n.apply(this,arguments)}return(0,i.A)(c,[{key:"renderStickyHead",value:function(){var e=this.props.top,t=(0,d.A)("elements-table-wrapper")({sticky:"top"});return(0,f.jsx)("div",{className:t,style:{top:e},children:(0,f.jsx)("table",{className:(0,g.xV)(this.props),children:(0,f.jsx)(p.A,(0,r.A)({},this.props))})})}},{key:"render",value:function(){return(0,f.jsxs)(l.Fragment,{children:[this.renderStickyHead(),(0,f.jsx)(e,(0,r.A)({},this.props))]})}}]),c}(l.Component),t.displayName="WithStickyHead(".concat((0,h.Mn)(e),")"),t.defaultProps={templates:{},size:"m",theme:"bordered",padded:!1,striped:!0,top:v.uF},t}))},63588:(e,t,n)=>{n.d(t,{A:()=>h});var r=n(29121),a=n(12937),i=n(10785),s=n(26718),o=n(77810),l=n(78894),c=n(82060),u=n(73822),d=n(48971),p=n(64922),m=new l.I,h=function(e){(0,i.A)(n,e);var t=(0,s.A)(n);function n(){return(0,r.A)(this,n),t.apply(this,arguments)}return(0,a.A)(n,[{key:"componentDidUpdate",value:function(){var e=this.props,t=e.error,n=e.loaded,r=e.errorData;t&&n&&m.add({theme:"danger",name:"network",autoHiding:5e5,title:"Oops! something went wrong.",content:r?r.message:u.A.format.NO_VALUE,actions:[{label:" view",onClick:function(){return(0,d.eW)(r)}}]})}},{key:"render",value:function(){var e=this.props,t=e.alwaysShowError,n=void 0!==t&&t,r=e.error,a=e.errorData,i=e.loaded,s=e.children;return!r||!n&&i?s:(0,p.jsx)(c.A,{error:a})}}]),n}(o.Component)},80545:(e,t,n)=>{n.d(t,{A:()=>l}),n(77810);var r=n(76872),a=n(73822),i=n(60620),s=n(64922),o=(0,r.A)("status-label");function l(e){var t=e.className,n=e.label,r=e.renderPlaque,l=function(e){var t;return null!==(t={materializing:"preparing",initializing:"preparing",preparing:"preparing",pending:"preparing",starting:"preparing",running:"running",completing:"running",failing:"running",aborting:"running",reviving:"running",suspended:"suspended",failed:"failed",completed:"completed",aborted:"aborted",Unknown:"unknown",Stopped:"suspended",Paused:"suspended",Working:"running",Draining:"running",Pausing:"running",Completed:"completed"}[e])&&void 0!==t?t:"unknown"}(n),c={preparing:"clock",running:"play-circle",suspended:"pause-circle",failed:"times-circle",completed:"check-circle",aborted:"times-circle",unknown:"question-circle"}[l],u={state:l};return n?(0,s.jsxs)("span",{className:o(null,r?o("plaque",u,t):o(u,t)),children:[(0,s.jsx)(i.A,{awesome:c}),(0,s.jsx)("span",{children:a.A.format.ReadableField(n)})]}):(0,s.jsx)("span",{})}},41007:(e,t,n)=>{n.d(t,{A:()=>c}),n(77810);var r=n(76872),a=n(85137),i=n(60620),s=n(34380),o=n(64922),l=(0,r.A)("yt-warning-icon");function c(e){var t=e.className,n=e.hoverContent,r=e.children,c=e.color;return(0,o.jsx)("span",{className:l(null,t),children:(0,o.jsxs)(s.m,{className:l("tooltip"),content:n,children:[(0,o.jsx)(i.A,{className:l("icon",{color:c}),awesome:"exclamation-triangle"}),r&&(0,o.jsx)(a.E,{variant:"inherit",color:c,children:r})]})})}},36161:(e,t,n)=>{n.d(t,{A:()=>l}),n(77810);var r=n(76872),a=n(64965),i=n(73822),s=n(64922),o=(0,r.A)("elements-message");function l(){var e=(0,a.W5)().params.tab;return(0,s.jsx)("div",{className:o({theme:"warning"}),children:(0,s.jsx)("p",{className:o("paragraph"),children:e?'Viewer for tab "'.concat(i.A.format.ReadableField(e),'" is not implemented.'):"Viewer for this tab is not implemented."})})}},40860:(e,t,n)=>{n.d(t,{q:()=>i}),n(77810);var r=n(41007),a=n(64922);function i(e){var t=e.className;return(0,a.jsx)(r.A,{className:t,hoverContent:"The job is stale, the information may be obsolete"})}},70917:(e,t,n)=>{n.d(t,{A:()=>F});var r=n(40319),a=n(29121),i=n(12937),s=n(10785),o=n(26718),l=n(77810),c=n(75826),u=n.n(c),d=n(76872),p=n(5992),m=n(96843),h=n.n(m),g=n(14880),v=n(11394),f=n(49133),A=n(41652),x=n(65873),b=n(16727),j=n(51744),y=n(73822),k=n(68175),w=n(53332),N={state:{align:"left",get:function(e){return e.state}},phase:{align:"left",caption:"State : Phase",get:function(e){if("total"===e.state)return"Total";var t=y.A.format.Readable,n=t(e.state),r=t(e.phase||y.A.format.NO_VALUE);return"".concat(n," : ").concat(r)}},progress:{align:"center",caption:"",get:function(e){return{value:e.progress&&e.progress.duration,theme:{initializing:"grass",preparing:"mint",pending:"aqua",materializing:"bluejeans",running:"lavander",completing:"grapefruit",reviving:"bittersweet",reviving_jobs:"sunflower",failed:"grapefruit"}[e.state]||"mediumgray"}}},duration:{align:"right",get:function(e){return e.duration}},start_time:{align:"left",get:function(e){return e.time}},actions:{align:"center",caption:""}},_="default",z="withActions";function P(e,t){var n=function(e){var t;return{theme:"light",striped:!1,virtual:!0,header:!1,size:"m",computeKey:function(e){return e.state+"/"+e.time},columns:{items:(0,w.TU)(N),sets:(t={},(0,k.A)(t,_,{items:[e,"progress","duration","start_time"]}),(0,k.A)(t,z,{items:[e,"progress","duration","start_time","actions"]}),t),mode:_}}}(t),a=n;return e&&((a=(0,r.A)({},n)).columns=(0,r.A)((0,r.A)({},a.columns),{},{mode:z})),a}var S=n(64922),C=(u().array,(0,d.A)("events")),M=(0,d.A)("operation-detail"),T=(0,p.Zz)(A.A,f.A)(v.A);function D(e,t){var n;return null===(n=N[t])||void 0===n?void 0:n.get(e)}var F=function(e){(0,s.A)(n,e);var t=(0,o.A)(n);function n(){return(0,a.A)(this,n),t.apply(this,arguments)}return(0,i.A)(n,[{key:"templates",get:function(){return{start_time:function(e,t){var n=D(e,t);return n?(0,S.jsx)(b.Bj.Time,{time:n,settings:{format:"full"},valueFormat:"DateTime"}):null},finish_time:function(e,t){var n=D(e,t);return n?(0,S.jsx)(b.Bj.Time,{time:n,settings:{format:"full"},valueFormat:"DateTime"}):null},duration:function(e,t){if(j.Jh.isFinalState(e))return y.A.format.NO_VALUE;var n=D(e,t);return(0,S.jsx)(b.Bj.Time,{time:n,settings:{format:"milliseconds"},valueFormat:"TimeDuration"})},progress:function(e,t){if(j.Jh.isNotFinalState(e)&&"total"!==e.state){var n=e.progress.duration,r=D(e,t),a=r.theme,i=r.value;return(0,S.jsxs)("div",{className:M("events-progress",{theme:a}),children:[(0,S.jsx)("span",{className:M("events-progress-percentage","elements-secondary-text"),children:y.A.format.Percent(n)}),(0,S.jsx)(x.k,{value:i,size:"s"})]})}},state:function(e,t){var n=D(e,t);return(0,S.jsx)(b.Bj.Readable,{value:n})},phase:function(e,t){var n=D(e,t);return(0,S.jsx)(b.Bj.Readable,{value:n})},actions:function(e){var t=(e||{}).attributes;return h()(t)?null:(0,S.jsx)(g.A,{title:"Event attributes",attributes:e.attributes})}}}},{key:"render",value:function(){var e=this.props,t=e.events,n=e.type,a=t.slice(),i=a.pop(),s=i.showAttributesColumn;return(0,S.jsx)("div",{className:C(),children:(0,S.jsx)(T,(0,r.A)((0,r.A)({},P(s,n)),{},{items:a,css:C(),footer:i,templates:this.templates}))})}}]),n}(l.Component);F.defaultProps={type:"state"}},4386:(e,t,n)=>{n.d(t,{Dn:()=>p,MZ:()=>h,VK:()=>m,Ze:()=>v,cm:()=>u,e$:()=>f,eg:()=>x,fj:()=>A,kl:()=>g,lD:()=>d});var r=n(40319),a=n(18472),i=n(30063),s=n.n(i),o=n(29730),l=n(73849),c=(0,a.Mz)([o.gV,o.gd,o.D,o.cX,o.ah],(function(e,t,n,a,i){return(0,r.A)({format:e,showDecoded:t,compact:n,escapeWhitespace:a,binaryAsHex:i,asHTML:!0},(0,l.t)())})),u=(0,a.Mz)([c],s()),d=(0,a.Mz)([c],s()),p=(0,a.Mz)([c],s()),m=(0,a.Mz)([c],s()),h=(0,a.Mz)([c],s()),g=(0,a.Mz)([c],s()),v=(0,a.Mz)([c],s()),f=(0,a.Mz)([c],s()),A=(0,a.Mz)([c],s()),x=(0,a.Mz)([c],s())},94544:(e,t,n)=>{n.d(t,{Af:()=>d,Ut:()=>l,Z3:()=>c});var r=n(13322),a=n(7787),i=n(26264),s=n(42265),o=n(44458);function l(e,t){return a.Ay.makeUrlForTabletCellBundleDashboard(e,t)}function c(e,t){var n=t?"/".concat(t,"/"):"";return"".concat(n).concat(i.YW.TABLET_CELL_BUNDLES,"/").concat(s.R_.TABLET_CELLS,"?id=").concat(e)}function u(e,t){return e.changelog_account===t.changelog_account&&e.snapshot_account===t.snapshot_account?0:e.changelog_account<t.changelog_account||e.snapshot_account<t.snapshot_account?-1:1}var d=function(e){var t=e.bundles,n=e.column,a=e.columnsSortable,i=e.order,s=[],l=(0,o.fA)(i),c=l.orderK,d=l.undefinedOrderK;if("changelog_account"===n)s=(0,r.A)(t).sort(u);else if("nodes"===n)s=(0,r.A)(t).sort((function(e,t){var n=e.nodes,r=void 0===n?[]:n,a=t.nodes,i=void 0===a?[]:a;return r.length-i.length}));else if(a.has(n))return(0,o.Uy)(t,[{key:n,orderK:c,undefinedOrderK:d}]);return i.includes("asc")?s:s.reverse()}}}]);
|
2
|
+
//# sourceMappingURL=2447.35b478a9.chunk.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"js/2447.35b478a9.chunk.js","mappings":"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","sources":["webpack://@ytsaurus/ui/./src/ui/components/AttributesButton/ClickableAttributesButton.tsx","webpack://@ytsaurus/ui/./src/ui/components/ChartLink/ChartLink.tsx","webpack://@ytsaurus/ui/./src/ui/components/CollapsibleSection/CollapsibleSection.tsx","webpack://@ytsaurus/ui/./src/ui/components/ElementsTable/ElementsTableFooter.js","webpack://@ytsaurus/ui/./src/ui/components/ElementsTable/hocs/withStickyFooter.js","webpack://@ytsaurus/ui/./src/ui/components/ElementsTable/hocs/withStickyHead.js","webpack://@ytsaurus/ui/./src/ui/components/LoadDataHandler/LoadDataHandler.tsx","webpack://@ytsaurus/ui/./src/ui/components/StatusLabel/StatusLabel.tsx","webpack://@ytsaurus/ui/./src/ui/components/WarningIcon/WarningIcon.tsx","webpack://@ytsaurus/ui/./src/ui/pages/components/Placeholder.tsx","webpack://@ytsaurus/ui/./src/ui/pages/operations/OperationDetail/tabs/Jobs/StaleJobIcon.tsx","webpack://@ytsaurus/ui/./src/ui/utils/operations/tabs/details/events/eventsTablesProps.js","webpack://@ytsaurus/ui/./src/ui/pages/operations/OperationDetail/tabs/details/Events/Events.js","webpack://@ytsaurus/ui/./src/ui/store/selectors/thor/unipika.ts","webpack://@ytsaurus/ui/./src/ui/utils/tablet_cell_bundles/index.ts"],"sourcesContent":["import React from 'react';\nimport {ConnectedProps, connect} from 'react-redux';\n\nimport AttributesButton, {AttributesButtonProps} from './AttributesButton';\n\nimport {openAttributesModal} from '../../store/actions/modals/attributes-modal';\nimport {ButtonProps} from '../Button/Button';\n\ninterface Props extends Omit<AttributesButtonProps, 'onClick' | 'title'> {\n title: React.ReactNode;\n\n // The function is called inside click handler, and overrides path and exactPath\n getPathProps?: () => Pick<Partial<Props>, 'path' | 'exactPath'>;\n path?: string;\n exactPath?: string;\n\n attribute?: string;\n attributes?: object;\n\n size?: ButtonProps['size'];\n view?: ButtonProps['view'];\n}\n\nfunction ClickableAttributesButton({\n title,\n getPathProps = () => {\n return {};\n },\n path,\n exactPath,\n attribute,\n attributes,\n openAttributesModal,\n withTooltip = true,\n tooltipProps = {placement: 'bottom-end', content: 'Show attributes'},\n ...rest\n}: Props & ConnectedProps<typeof connector>) {\n return (\n <AttributesButton\n {...rest}\n tooltipProps={tooltipProps}\n withTooltip={withTooltip}\n onClick={() => {\n const pathProps = {\n path,\n exactPath,\n ...getPathProps(),\n };\n\n openAttributesModal({\n title,\n ...pathProps,\n attribute,\n attributes,\n });\n }}\n />\n );\n}\n\nconst connector = connect(null, {openAttributesModal});\n\nexport default connector(ClickableAttributesButton);\n","import React from 'react';\nimport Link, {LinkProps} from '../../components/Link/Link';\n\nimport Icon, {IconProps} from '../Icon/Icon';\n\ninterface Props {\n className?: string;\n theme?: LinkProps['theme'];\n face?: IconProps['face'];\n url?: string;\n title?: string;\n children?: React.ReactNode;\n hideIcon?: boolean;\n wrapContent?: (node: React.ReactNode) => React.ReactNode;\n}\n\nfunction ChartLink(props: Props) {\n const {className, url, title, theme, children, hideIcon, face, wrapContent} = props;\n\n if (!url) {\n return null;\n }\n\n const icon = hideIcon ? null : <Icon awesome=\"chart-bar\" face={face} />;\n const content = children ? (\n <React.Fragment>\n {icon}\n {children}\n </React.Fragment>\n ) : (\n icon\n );\n\n return (\n <Link className={className} target=\"_blank\" theme={theme} url={url} title={title ?? 'View'}>\n {wrapContent ? wrapContent(content) : content}\n </Link>\n );\n}\n\nexport default React.memo(ChartLink);\n","import React, {Component} from 'react';\nimport block from 'bem-cn-lite';\n\nimport ErrorBoundary from '../../components/ErrorBoundary/ErrorBoundary';\n\nimport './CollapsibleSection.scss';\nimport Icon from '../../components/Icon/Icon';\n\nconst b = block('collapsible-section');\nconst headingCN = block('elements-heading');\n\ntype PropsStateLess = CollapsibleSectionProps & {\n onToggle: Required<CollapsibleSectionProps>['onToggle'];\n};\n\nexport class CollapsibleSectionStateLess extends Component<PropsStateLess> {\n static defaultProps = {\n size: 'm',\n collapsed: false,\n marginDirection: 'top',\n };\n\n toggle = () => {\n const {onToggle} = this.props;\n\n onToggle(!this.props.collapsed);\n };\n\n render() {\n const {\n name,\n children,\n size,\n overview,\n className,\n collapsed,\n marginDirection,\n togglerRightPadding,\n } = this.props;\n\n return (\n <ErrorBoundary>\n <div className={b({margin: marginDirection}, className)}>\n <div className={headingCN({size, overview: 'yes'})}>\n <span\n className={headingCN(\n 'heading',\n {\n clickable: 'yes',\n },\n b('title'),\n )}\n onClick={this.toggle}\n >\n {name}\n <a>\n <Icon\n className={b('toggler', {'right-padding': togglerRightPadding})}\n awesome={collapsed ? 'angle-down' : 'angle-up'}\n />\n </a>\n </span>\n {overview}\n </div>\n\n {!collapsed && <ErrorBoundary>{children}</ErrorBoundary>}\n </div>\n </ErrorBoundary>\n );\n }\n}\n\nexport interface CollapsibleSectionProps {\n className?: string;\n name: React.ReactNode;\n collapsed?: boolean;\n onToggle?: (value: boolean) => void;\n\n size?: 'unset' | 'xs' | 's' | 'ss' | 'ns' | 'n' | 'm' | 'l';\n children?: React.ReactNode;\n overview?: React.ReactNode;\n\n marginDirection?: 'top' | 'bottom';\n\n togglerRightPadding?: 'small';\n}\n\nexport default function CollapsibleSection(props: CollapsibleSectionProps) {\n const {onToggle} = props;\n const [collapsed, setCollapsed] = React.useState(props.collapsed);\n\n const onChange = React.useCallback(\n (value: boolean) => {\n setCollapsed(value);\n if (onToggle) {\n onToggle(value);\n }\n },\n [setCollapsed, onToggle],\n );\n\n return <CollapsibleSectionStateLess {...props} onToggle={onChange} collapsed={collapsed} />;\n}\n","import React, {Component} from 'react';\nimport PropTypes from 'prop-types';\nimport block from 'bem-cn-lite';\n\nimport ElementsTableRow from '../../components/ElementsTable/ElementsTableRow';\n\nimport {ELEMENTS_TABLE, TemplatesPropType, prepareColumnsData} from './utils';\n\nimport './ElementsTable.scss';\n\nexport default class ElementsTableFooter extends Component {\n static propTypes = {\n footer: PropTypes.object.isRequired,\n templates: TemplatesPropType.isRequired,\n cssHover: PropTypes.bool,\n };\n\n static defaultProps = {\n templates: {},\n cssHover: false,\n };\n\n constructor(props) {\n super(props);\n\n this.state = {};\n }\n\n static getDerivedStateFromProps(props) {\n const {columns} = props;\n const {items, set} = prepareColumnsData(columns);\n\n return {\n columnItems: items,\n columnSet: set,\n };\n }\n\n renderRow(item, index, key = index) {\n const {css, itemHeight, templates, itemMods, selectedIndex, computeKey, cssHover} =\n this.props;\n const {columnSet, columnItems} = this.state;\n\n const selected = selectedIndex === index;\n const currentKey = typeof computeKey === 'function' ? computeKey(item) : key;\n\n return (\n <ElementsTableRow\n key={currentKey}\n columnSet={columnSet}\n columnItems={columnItems}\n item={item}\n itemHeight={itemHeight}\n css={css}\n templates={templates}\n selected={selected}\n index={index}\n itemMods={itemMods}\n cssHover={cssHover}\n />\n );\n }\n\n render() {\n const bFooter = block(ELEMENTS_TABLE)('footer');\n const {footer} = this.props;\n\n return <tfoot className={bFooter}>{this.renderRow(footer, 0)}</tfoot>;\n }\n}\n","import React from 'react';\nimport block from 'bem-cn-lite';\n\nimport ElementsTableFooter from '../../../components/ElementsTable/ElementsTableFooter';\n\nimport {getDisplayName} from '../../../utils';\nimport {prepareTableClassName} from '../../../components/ElementsTable/utils';\n\nimport '../ElementsTable.scss';\n\nexport default (Component) => {\n return class WithStickyFooter extends React.Component {\n static displayName = `WithStickyFooter(${getDisplayName(Component)})`;\n\n static defaultProps = {\n size: 'm',\n };\n\n renderStickyFooter() {\n const bWrapper = block('elements-table-wrapper')({\n sticky: 'bottom',\n });\n const {footer} = this.props;\n\n return (\n <div className={bWrapper}>\n <table className={prepareTableClassName(this.props)}>\n <ElementsTableFooter {...this.props} footer={footer} />\n </table>\n </div>\n );\n }\n\n render() {\n return (\n <React.Fragment>\n <Component {...this.props} />\n {this.props.footer && this.renderStickyFooter()}\n </React.Fragment>\n );\n }\n };\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport {connect} from 'react-redux';\nimport {compose} from 'redux';\nimport block from 'bem-cn-lite';\n\nimport ElementsTableHeader from '../../../components/ElementsTable/ElementsTableHeader';\n\nimport {toggleColumnSortOrder} from '../../../store/actions/tables';\nimport {getDisplayName} from '../../../utils';\nimport {prepareTableClassName} from '../../../components/ElementsTable/utils';\nimport {HEADER_HEIGHT} from '../../../constants/index';\n\nimport '../ElementsTable.scss';\n\nconst withStickyHead = (Component) => {\n return class WithStickyHead extends React.Component {\n static displayName = `WithStickyHead(${getDisplayName(Component)})`;\n\n static propTypes = {\n top: PropTypes.number,\n };\n\n static defaultProps = {\n templates: {},\n size: 'm',\n theme: 'bordered',\n padded: false,\n striped: true,\n top: HEADER_HEIGHT,\n };\n\n renderStickyHead() {\n const {top} = this.props;\n const bWrapper = block('elements-table-wrapper')({sticky: 'top'});\n\n return (\n <div className={bWrapper} style={{top}}>\n <table className={prepareTableClassName(this.props)}>\n <ElementsTableHeader {...this.props} />\n </table>\n </div>\n );\n }\n\n render() {\n return (\n <React.Fragment>\n {this.renderStickyHead()}\n <Component {...this.props} />\n </React.Fragment>\n );\n }\n };\n};\n\nconst mapStateToProps = ({tables}) => {\n return {sortState: tables};\n};\n\nconst mapDispatchToProps = {\n toggleColumnSortOrder,\n};\n\nconst composedWithStickyHead = compose(\n connect(mapStateToProps, mapDispatchToProps),\n withStickyHead,\n);\n\nexport default composedWithStickyHead;\n","import React, {Component} from 'react';\n\nimport {Toaster} from '@gravity-ui/uikit';\nimport Error from '../../components/Error/Error';\nimport hammer from '../../common/hammer';\n\nimport {showErrorPopup} from '../../utils/utils';\nimport {YTError} from '../../types';\n\nconst toaster = new Toaster();\n\ninterface LoadDataHandlerProps {\n alwaysShowError?: boolean;\n loaded: boolean;\n error: boolean;\n errorData?: YTError;\n children: React.ReactNode;\n}\n\nexport default class LoadDataHandler extends Component<LoadDataHandlerProps> {\n componentDidUpdate() {\n const {error, loaded, errorData} = this.props;\n\n if (error && loaded) {\n toaster.add({\n theme: 'danger',\n name: 'network',\n autoHiding: 500000,\n title: 'Oops! something went wrong.',\n content: errorData ? (errorData as YTError).message : hammer.format.NO_VALUE,\n actions: [\n {\n label: ' view',\n onClick: () => showErrorPopup(errorData as YTError),\n },\n ],\n });\n }\n }\n\n render() {\n const {alwaysShowError = false, error, errorData, loaded, children} = this.props;\n\n const initialLoading = !loaded;\n\n if (error && (alwaysShowError || initialLoading)) {\n return <Error error={errorData} />;\n }\n\n return children;\n }\n}\n","import React from 'react';\nimport block from 'bem-cn-lite';\n\nimport hammer from '../../common/hammer';\nimport Icon, {IconName} from '../Icon/Icon';\n\nimport './StatusLabel.scss';\n\nfunction getViewState(label?: StatusLabelProps['label']): ViewState {\n const states: Record<Exclude<typeof label, undefined>, ViewState> = {\n // preparing states\n materializing: 'preparing',\n initializing: 'preparing',\n preparing: 'preparing',\n pending: 'preparing',\n starting: 'preparing',\n\n // running states\n running: 'running',\n completing: 'running',\n failing: 'running',\n aborting: 'running',\n reviving: 'running',\n suspended: 'suspended',\n\n // final states\n failed: 'failed',\n completed: 'completed',\n aborted: 'aborted',\n\n // NavigationFlowState\n Unknown: 'unknown',\n Stopped: 'suspended',\n Paused: 'suspended',\n Working: 'running',\n Draining: 'running',\n Pausing: 'running',\n Completed: 'completed',\n };\n\n return states[label!] ?? 'unknown';\n}\n\n// see https://github.com/ytsaurus/ytsaurus/blob/4ff6c0d/yt/yt/flow/lib/client/public.h#L20-L28\nexport type NavigationFlowState =\n | 'Unknown'\n | 'Stopped'\n | 'Paused'\n | 'Working'\n | 'Draining'\n | 'Pausing'\n | 'Completed';\n\nexport type StatusLabelState =\n | 'aborted'\n | 'aborting'\n | 'completed'\n | 'completing'\n | 'failed'\n | 'failing'\n | 'initializing'\n | 'materializing'\n | 'pending'\n | 'preparing'\n | 'reviving'\n | 'running'\n | 'starting'\n | 'suspended'\n | 'running';\n\ntype ViewState =\n | 'preparing'\n | 'running'\n | 'failed'\n | 'aborted'\n | 'completed'\n | 'suspended'\n | 'unknown';\n\nfunction getIcon(state: ViewState) {\n const iconsByViewState: Record<ViewState, IconName> = {\n preparing: 'clock',\n running: 'play-circle',\n suspended: 'pause-circle',\n failed: 'times-circle',\n completed: 'check-circle',\n aborted: 'times-circle',\n unknown: 'question-circle',\n };\n return iconsByViewState[state];\n}\n\nconst b = block('status-label');\n\nexport type StatusLabelProps = {\n className?: string;\n label?: StatusLabelState | NavigationFlowState;\n renderPlaque?: boolean;\n};\n\nexport default function StatusLabel({className, label, renderPlaque}: StatusLabelProps) {\n const mappedState = getViewState(label);\n const icon = getIcon(mappedState);\n const mods = {state: mappedState};\n\n return !label ? (\n <span />\n ) : (\n <span className={b(null, renderPlaque ? b('plaque', mods, className) : b(mods, className))}>\n <Icon awesome={icon} />\n <span>{hammer.format['ReadableField'](label)}</span>\n </span>\n );\n}\n","import React from 'react';\nimport cn from 'bem-cn-lite';\n\nimport {Text} from '@gravity-ui/uikit';\n\nimport Icon from '../../components/Icon/Icon';\nimport {Tooltip} from '../Tooltip/Tooltip';\n\nimport './WarningIcon.scss';\n\nconst b = cn('yt-warning-icon');\n\ninterface Props {\n className?: string;\n hoverContent?: React.ReactNode;\n color?: 'warning' | 'danger';\n children?: React.ReactNode;\n}\n\nexport default function WarningIcon(props: Props) {\n const {className, hoverContent, children, color} = props;\n return (\n <span className={b(null, className)}>\n <Tooltip className={b('tooltip')} content={hoverContent}>\n <Icon className={b('icon', {color})} awesome=\"exclamation-triangle\" />\n {children && (\n <Text variant=\"inherit\" color={color}>\n {children}\n </Text>\n )}\n </Tooltip>\n </span>\n );\n}\n","import React from 'react';\nimport block from 'bem-cn-lite';\nimport {useRouteMatch} from 'react-router';\n\nimport hammer from '../../common/hammer';\n\nconst b = block('elements-message');\n\ninterface MatchParams {\n tab: string;\n}\n\nexport default function Placeholder() {\n const match = useRouteMatch<MatchParams>();\n const {tab} = match.params;\n\n return (\n <div className={b({theme: 'warning'})}>\n <p className={b('paragraph')}>\n {tab\n ? `Viewer for tab \"${hammer.format['ReadableField'](tab)}\" is not implemented.`\n : 'Viewer for this tab is not implemented.'}\n </p>\n </div>\n );\n}\n","import React from 'react';\n\nimport WarningIcon from '../../../../../components/WarningIcon/WarningIcon';\n\nexport function StaleJobIcon({className}: {className?: string}) {\n return (\n <WarningIcon\n className={className}\n hoverContent={'The job is stale, the information may be obsolete'}\n />\n );\n}\n","import {prepareTableColumns} from '../../../../../utils/index';\nimport hammer from '../../../../../common/hammer';\n\nexport const columns = {\n state: {\n align: 'left',\n get(event) {\n return event.state;\n },\n },\n phase: {\n align: 'left',\n caption: 'State : Phase',\n get(event) {\n if (event.state === 'total') {\n return 'Total';\n }\n\n const formatter = hammer.format['Readable'];\n const state = formatter(event.state);\n const phase = formatter(event.phase || hammer.format.NO_VALUE);\n\n return `${state} : ${phase}`;\n },\n },\n progress: {\n align: 'center',\n caption: '',\n get(event) {\n const progressValue = event.progress && event.progress.duration;\n\n return {\n value: progressValue,\n theme:\n {\n initializing: 'grass',\n preparing: 'mint',\n pending: 'aqua',\n materializing: 'bluejeans',\n running: 'lavander',\n completing: 'grapefruit',\n reviving: 'bittersweet',\n reviving_jobs: 'sunflower',\n failed: 'grapefruit',\n }[event.state] || 'mediumgray',\n };\n },\n },\n duration: {\n align: 'right',\n get(event) {\n return event.duration;\n },\n },\n start_time: {\n align: 'left',\n get(event) {\n return event.time;\n },\n },\n actions: {\n align: 'center',\n caption: '',\n },\n};\n\nconst DEFAULT_MODE = 'default';\nconst WITH_ACTIONS_MODE = 'withActions';\n\nconst getEventsGeneralProps = (type) => ({\n theme: 'light',\n striped: false,\n virtual: true,\n header: false,\n size: 'm',\n computeKey(item) {\n return item.state + '/' + item.time;\n },\n columns: {\n items: prepareTableColumns(columns),\n sets: {\n [DEFAULT_MODE]: {\n items: [type, 'progress', 'duration', 'start_time'],\n },\n [WITH_ACTIONS_MODE]: {\n items: [type, 'progress', 'duration', 'start_time', 'actions'],\n },\n },\n mode: DEFAULT_MODE,\n },\n});\n\nexport function getEventsTableProps(showActions, type) {\n const eventsTableProps = getEventsGeneralProps(type);\n let res = eventsTableProps;\n if (showActions) {\n res = {...eventsTableProps};\n res.columns = {\n ...res.columns,\n mode: WITH_ACTIONS_MODE,\n };\n }\n return res;\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport cn from 'bem-cn-lite';\nimport {compose} from 'redux';\n\nimport isEmpty_ from 'lodash/isEmpty';\n\nimport ClickableAttributesButton from '../../../../../../components/AttributesButton/ClickableAttributesButton';\n\nimport ElementsTableBase from '../../../../../../components/ElementsTable/ElementsTable';\nimport withStickyFooter from '../../../../../../components/ElementsTable/hocs/withStickyFooter';\nimport withStickyHead from '../../../../../../components/ElementsTable/hocs/withStickyHead';\nimport {Progress} from '@gravity-ui/uikit';\nimport {Template} from '../../../../../../components/MetaTable/templates/Template';\nimport {Event} from '../../../../../../utils/operations/tabs/details/events/events';\n\nimport hammer from '../../../../../../common/hammer';\nimport {\n columns,\n getEventsTableProps,\n} from '../../../../../../utils/operations/tabs/details/events/eventsTablesProps';\n\nimport './Events.scss';\n\nexport const eventsProps = PropTypes.array;\nconst block = cn('events');\n\nconst odBlock = cn('operation-detail');\n\nconst ElementsTable = compose(withStickyHead, withStickyFooter)(ElementsTableBase);\n\nfunction getValue(event, columnName) {\n return columns[columnName]?.get(event);\n}\n\nexport default class Events extends React.Component {\n static propTypes = {\n events: eventsProps,\n type: PropTypes.string,\n };\n\n static defaultProps = {\n type: 'state',\n };\n\n get templates() {\n return {\n start_time(event, columnName) {\n const value = getValue(event, columnName);\n return value ? (\n <Template.Time\n time={value}\n settings={{format: 'full'}}\n valueFormat={'DateTime'}\n />\n ) : null;\n },\n finish_time(event, columnName) {\n const value = getValue(event, columnName);\n return value ? (\n <Template.Time\n time={value}\n settings={{format: 'full'}}\n valueFormat={'DateTime'}\n />\n ) : null;\n },\n duration(item, columnName) {\n if (Event.isFinalState(item)) {\n return hammer.format.NO_VALUE;\n }\n const value = getValue(item, columnName);\n return (\n <Template.Time\n time={value}\n settings={{format: 'milliseconds'}}\n valueFormat={'TimeDuration'}\n />\n );\n },\n progress(item, columnName) {\n if (Event.isNotFinalState(item) && item.state !== 'total') {\n const progress = item.progress.duration;\n const {theme, value} = getValue(item, columnName);\n\n return (\n <div className={odBlock('events-progress', {theme})}>\n <span\n className={odBlock(\n 'events-progress-percentage',\n 'elements-secondary-text',\n )}\n >\n {hammer.format['Percent'](progress)}\n </span>\n <Progress value={value} size=\"s\" />\n </div>\n );\n }\n },\n state(event, columnName) {\n const value = getValue(event, columnName);\n return <Template.Readable value={value} />;\n },\n phase(event, columnName) {\n const value = getValue(event, columnName);\n return <Template.Readable value={value} />;\n },\n actions: (event) => {\n const {attributes} = event || {};\n if (isEmpty_(attributes)) {\n return null;\n }\n return (\n <ClickableAttributesButton\n title={'Event attributes'}\n attributes={event.attributes}\n />\n );\n },\n };\n }\n\n render() {\n const {events, type} = this.props;\n const eventsItems = events.slice();\n const totalRow = eventsItems.pop();\n const {showAttributesColumn} = totalRow;\n\n return (\n <div className={block()}>\n <ElementsTable\n {...getEventsTableProps(showAttributesColumn, type)}\n items={eventsItems}\n css={block()}\n footer={totalRow}\n templates={this.templates}\n />\n </div>\n );\n }\n}\n","import {createSelector} from 'reselect';\nimport clone_ from 'lodash/clone';\n\nimport {\n getFormat,\n getShowDecoded,\n shouldCompact,\n shouldEscapeWhitespace,\n useBinaryAsHex,\n} from '../../../store/selectors/settings';\nimport {getUnipikaSettingsFromConfig} from '../../../common/thor/unipika-settings';\n\nexport interface YsonSettings {\n format: string;\n showDecoded: boolean;\n compact: boolean;\n escapeWhitespace: boolean;\n binaryAsHex: boolean;\n asHTML: boolean;\n}\n\n/**\n * !!! Do not use this selector directly, result should be copied by another selector !!!\n * unipika.format && unipika.foramtRaw mix different properties into settings-object.\n * So, to minimize side-effects each UI-component should use his-own copy of settings-object.\n */\nconst getYsonSettings = createSelector(\n [getFormat, getShowDecoded, shouldCompact, shouldEscapeWhitespace, useBinaryAsHex],\n (\n format: string,\n showDecoded: boolean,\n compact: boolean,\n escapeWhitespace: boolean,\n binaryAsHex: boolean,\n ): YsonSettings => {\n return {\n format,\n showDecoded,\n compact,\n escapeWhitespace,\n binaryAsHex,\n asHTML: true,\n ...getUnipikaSettingsFromConfig(),\n };\n },\n);\n\nexport const getJobGeneralYsonSettings = createSelector([getYsonSettings], clone_);\n\nexport const getJobSpecificationYsonSettings = createSelector([getYsonSettings], clone_);\n\nexport const getTableYsonSettings = createSelector([getYsonSettings], clone_);\n\nexport const getOperationAttributesYsonSettings = createSelector([getYsonSettings], clone_);\n\nexport const getOperationExperimentsYsonSettings = createSelector([getYsonSettings], clone_);\n\nexport const getNavigationMountConfigYsonSettings = createSelector([getYsonSettings], clone_);\n\nexport const getEditJsonYsonSettings = createSelector([getYsonSettings], clone_);\n\nexport const getNodeUnrecognizedOptionsYsonSettings = createSelector([getYsonSettings], clone_);\n\nexport const getPreviewCellYsonSettings = createSelector([getYsonSettings], clone_);\n\nexport const getFlowSpecYsonSettings = createSelector([getYsonSettings], clone_);\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"],"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","ChartLink","props","className","url","theme","children","hideIcon","face","wrapContent","icon","Icon","awesome","_jsxs","React","Link","target","b","block","headingCN","CollapsibleSectionStateLess","_Component","_inherits","_super","_createSuper","_this","_classCallCheck","_len","arguments","length","args","Array","_key","call","apply","concat","toggle","onToggle","collapsed","_createClass","key","value","_this$props","this","name","size","overview","marginDirection","togglerRightPadding","ErrorBoundary","margin","clickable","Component","CollapsibleSection","_React$useState","_React$useState2","_slicedToArray","setCollapsed","onChange","defaultProps","ElementsTableFooter","state","item","index","undefined","css","itemHeight","templates","itemMods","selectedIndex","computeKey","cssHover","_this$state","columnSet","columnItems","selected","currentKey","ElementsTableRow","bFooter","ELEMENTS_TABLE","footer","renderRow","columns","_prepareColumnsData","prepareColumnsData","items","set","_WithStickyFooter","_React$Component","WithStickyFooter","bWrapper","sticky","prepareTableClassName","renderStickyFooter","displayName","getDisplayName","mapDispatchToProps","toggleColumnSortOrder","compose","sortState","tables","_WithStickyHead","WithStickyHead","top","style","ElementsTableHeader","renderStickyHead","padded","striped","HEADER_HEIGHT","toaster","Toaster","LoadDataHandler","error","loaded","errorData","add","autoHiding","message","hammer","format","NO_VALUE","actions","label","showErrorPopup","_this$props2","_this$props2$alwaysSh","alwaysShowError","Error","StatusLabel","renderPlaque","mappedState","_states","materializing","initializing","preparing","pending","starting","running","completing","failing","aborting","reviving","suspended","failed","completed","aborted","Unknown","Stopped","Paused","Working","Draining","Pausing","Completed","getViewState","unknown","mods","cn","WarningIcon","hoverContent","color","Tooltip","Text","variant","Placeholder","tab","useRouteMatch","params","StaleJobIcon","align","get","event","phase","caption","formatter","progress","duration","reviving_jobs","start_time","time","DEFAULT_MODE","WITH_ACTIONS_MODE","getEventsTableProps","showActions","type","eventsTableProps","_sets","virtual","header","prepareTableColumns","sets","_defineProperty","mode","getEventsGeneralProps","res","PropTypes","odBlock","ElementsTable","withStickyHead","withStickyFooter","ElementsTableBase","getValue","columnName","_columns$columnName","Events","Template","Time","settings","valueFormat","finish_time","Event","isFinalState","isNotFinalState","_getValue","Progress","Readable","isEmpty_","ClickableAttributesButton","events","eventsItems","slice","totalRow","pop","showAttributesColumn","getYsonSettings","createSelector","getFormat","getShowDecoded","shouldCompact","shouldEscapeWhitespace","useBinaryAsHex","showDecoded","compact","escapeWhitespace","binaryAsHex","asHTML","getUnipikaSettingsFromConfig","getJobGeneralYsonSettings","clone_","getJobSpecificationYsonSettings","getTableYsonSettings","getOperationAttributesYsonSettings","getOperationExperimentsYsonSettings","getNavigationMountConfigYsonSettings","getEditJsonYsonSettings","getNodeUnrecognizedOptionsYsonSettings","getPreviewCellYsonSettings","getFlowSpecYsonSettings","tabletCellBundleDashboardUrl","cluster","bundle","UIFactory","makeUrlForTabletCellBundleDashboard","genTabletCellBundlesCellUrl","cellId","prefix","Page","TABLET_CELL_BUNDLES","TabletsTab","TABLET_CELLS","compareBundlesByAccount","left","right","changelog_account","snapshot_account","sortTableBundles","bundles","column","columnsSortable","order","sorted","_orderTypeToOrderK","orderTypeToOrderK","orderK","undefinedOrderK","_toConsumableArray","sort","_ref2","_ref3","_ref2$nodes","nodes","l","_ref3$nodes","r","has","multiSortWithUndefined","includes","reverse"],"sourceRoot":""}
|