@ytsaurus/ui 1.25.0 → 1.26.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/build/cjs/server/configs/e2e/local.js +8 -0
  2. package/build/cjs/server/configs/e2e/local.js.map +1 -1
  3. package/build/cjs/shared/ui-settings.d.ts +19 -1
  4. package/build/cjs/shared/ui-settings.js.map +1 -1
  5. package/build/cjs/ui/UIFactory.d.ts +11 -2
  6. package/build/cjs/ui/UIFactory.js +8 -0
  7. package/build/cjs/ui/UIFactory.js.map +1 -1
  8. package/build/cjs/ui/components/Tabs/Tabs.d.ts +1 -1
  9. package/build/cjs/ui/components/Tabs/Tabs.js.map +1 -1
  10. package/build/cjs/ui/constants/system/tabs.d.ts +4 -0
  11. package/build/cjs/ui/constants/system/tabs.js +11 -0
  12. package/build/cjs/ui/constants/system/tabs.js.map +1 -0
  13. package/build/cjs/ui/containers/ClusterPage/ClusterPage.js +2 -2
  14. package/build/cjs/ui/containers/ClusterPage/ClusterPage.js.map +1 -1
  15. package/build/cjs/ui/pages/components/tabs/Versions/VersionSummary.css +10 -3
  16. package/build/cjs/ui/pages/components/tabs/Versions/VersionSummary.css.map +1 -1
  17. package/build/cjs/ui/pages/components/tabs/Versions/VersionSummary.d.ts +3 -1
  18. package/build/cjs/ui/pages/components/tabs/Versions/VersionSummary.js +24 -6
  19. package/build/cjs/ui/pages/components/tabs/Versions/VersionSummary.js.map +1 -1
  20. package/build/cjs/ui/pages/system/System/System.d.ts +10 -8
  21. package/build/cjs/ui/pages/system/System/System.js +56 -52
  22. package/build/cjs/ui/pages/system/System/System.js.map +1 -1
  23. package/build/cjs/ui/pages/system/System/SystemGeneralTab.d.ts +2 -0
  24. package/build/cjs/ui/pages/system/System/SystemGeneralTab.js +22 -0
  25. package/build/cjs/ui/pages/system/System/SystemGeneralTab.js.map +1 -0
  26. package/build/cjs/ui/pages/system/System/helpers/getSystemTabItems.d.ts +9 -0
  27. package/build/cjs/ui/pages/system/System/helpers/getSystemTabItems.js +41 -0
  28. package/build/cjs/ui/pages/system/System/helpers/getSystemTabItems.js.map +1 -0
  29. package/build/esm/server/configs/e2e/local.js +8 -0
  30. package/build/esm/server/configs/e2e/local.js.map +1 -1
  31. package/build/esm/shared/ui-settings.d.ts +19 -1
  32. package/build/esm/shared/ui-settings.js.map +1 -1
  33. package/build/esm/ui/UIFactory.d.ts +11 -2
  34. package/build/esm/ui/UIFactory.js +8 -0
  35. package/build/esm/ui/UIFactory.js.map +1 -1
  36. package/build/esm/ui/components/Tabs/Tabs.d.ts +1 -1
  37. package/build/esm/ui/components/Tabs/Tabs.js.map +1 -1
  38. package/build/esm/ui/constants/system/tabs.d.ts +4 -0
  39. package/build/esm/ui/constants/system/tabs.js +5 -0
  40. package/build/esm/ui/constants/system/tabs.js.map +1 -0
  41. package/build/esm/ui/containers/ClusterPage/ClusterPage.js +1 -1
  42. package/build/esm/ui/containers/ClusterPage/ClusterPage.js.map +1 -1
  43. package/build/esm/ui/pages/components/tabs/Versions/VersionSummary.css +10 -3
  44. package/build/esm/ui/pages/components/tabs/Versions/VersionSummary.css.map +1 -1
  45. package/build/esm/ui/pages/components/tabs/Versions/VersionSummary.d.ts +3 -1
  46. package/build/esm/ui/pages/components/tabs/Versions/VersionSummary.js +24 -6
  47. package/build/esm/ui/pages/components/tabs/Versions/VersionSummary.js.map +1 -1
  48. package/build/esm/ui/pages/components/tabs/Versions/VersionSummary.scss +15 -6
  49. package/build/esm/ui/pages/system/System/System.d.ts +10 -8
  50. package/build/esm/ui/pages/system/System/System.js +55 -52
  51. package/build/esm/ui/pages/system/System/System.js.map +1 -1
  52. package/build/esm/ui/pages/system/System/SystemGeneralTab.d.ts +2 -0
  53. package/build/esm/ui/pages/system/System/SystemGeneralTab.js +17 -0
  54. package/build/esm/ui/pages/system/System/SystemGeneralTab.js.map +1 -0
  55. package/build/esm/ui/pages/system/System/helpers/getSystemTabItems.d.ts +9 -0
  56. package/build/esm/ui/pages/system/System/helpers/getSystemTabItems.js +35 -0
  57. package/build/esm/ui/pages/system/System/helpers/getSystemTabItems.js.map +1 -0
  58. package/dist/public/build/assets-manifest.json +7 -7
  59. package/dist/public/build/css/{main.6f740a3e.css → main.2d05e225.css} +2 -2
  60. package/dist/public/build/css/main.2d05e225.css.map +1 -0
  61. package/dist/public/build/js/main.c18a9d22.js +3 -0
  62. package/dist/public/build/js/{main.ccbdcdf6.js.map → main.c18a9d22.js.map} +1 -1
  63. package/dist/public/build/manifest.json +4 -4
  64. package/dist/server/configs/e2e/local.js +8 -0
  65. package/dist/shared/ui-settings.d.ts +19 -1
  66. package/package.json +2 -2
  67. package/dist/public/build/css/main.6f740a3e.css.map +0 -1
  68. package/dist/public/build/js/main.ccbdcdf6.js +0 -3
  69. /package/dist/public/build/js/{main.ccbdcdf6.js.LICENSE.txt → main.c18a9d22.js.LICENSE.txt} +0 -0
@@ -1 +1 @@
1
- {"version":3,"names":["React","Component","Fragment","Redirect","Route","Switch","useLocation","connect","useSelector","cn","BanPage","MaintenancePage","HandleMaintenanceRedirect","Components","Operations","Accounts","Dashboard","System","Navigation","PathViewer","Tablet","TabletCellBundles","GroupsPage","UsersPage","Scheduling","QueryTracker","Job","ChytPage","ClusterPageHeader","PageTracker","PageHeadByCluster","ConnectionErrorRegion","GeneralErrorRegion","FlexSplitPane","ErrorBlock","LOADING_STATUS","LOAD_ERROR","Page","SPLIT_PANE_ID","joinMenuItemsAction","splitMenuItemsAction","trackVisit","setSetting","initClusterParams","unmountCluster","updateCluster","updateTitle","getClusterUiConfig","isQueryTrackerAllowed","getClusterConfig","NAMESPACES","SettingName","getClusterPagePaneSizes","getStartingPage","isRecentClustersFirst","isRecentPagesFirst","isRedirectToBetaSwitched","SupportedFeaturesUpdater","useRumMeasureStart","useRumMeasureStop","RumMeasureTypes","useClusterFromLocation","makeExtraPageRoutes","odinPageInfo","hasOdinPage","jsx","_jsx","jsxs","_jsxs","b","RedirectToBanIfNeededMemo","memo","RedirectToBanIfNeeded","ClusterPage","_Component","_inherits","_super","_createSuper","_this","_classCallCheck","_len","arguments","length","args","Array","_key","call","apply","concat","state","width","contentPaneRef","createRef","_onUpdateEnd","_this$props","props","cluster","Promise","resolve","then","DEVELOPMENT","REDIRECT_TO_BETA_SWITCHED","REDIRECT_TO_BETA","_initMenuCollection","onResize","splitScreen","toolbar","document","querySelector","isSplit","gutterWidth","offset","getElementById","clientWidth","style","right","window","dispatchEvent","Event","handleSplit","updateWidthModifier","onResizeEnd","sizes","NAVIGATION","CLUSTER_PAGE_PANE_SIZES","getInitialSizes","clusterPagePaneSizes","_createClass","key","value","componentDidMount","getSnapshotBeforeUpdate","prevProps","pageYOffset","current","scrollTop","componentDidUpdate","prevState","prevScroll","scrollBy","prevCluster","componentWillUnmount","path","page","itemName","_this$props2","settingsMap","_this$contentPaneRef$","currentWidth","Infinity","setState","renderError","clusterConfig","_ref","error","errorType","CONNECTION","id","AUTHENTICATION","message","GENERAL","isParamsLoading","_this$props3","paramsCluster","renderContent","_this$props4","startingPage","isLoaded","hasError","paramsError","allowChyt","allowQueryTracker","children","to","BAN","component","MAINTENANCE","COMPONENTS","OPERATIONS","JOB","DASHBOARD","SYSTEM","ACCOUNTS","TABLET_CELL_BUNDLES","CHAOS_CELL_BUNDLES","PATH_VIEWER","TABLET","USERS","GROUPS","SCHEDULING","CHYT","QUERIES","pageId","reactComponent","from","VERSIONS","className","render","_this$props5","clusters","ClusterPageStopRumMeasure","paneClassNames","direction","HORIZONTAL","onSplit","onUnSplit","minSize","ref","split","mapStateToProps","_state$global","global","login","maintenancePageEvent","loadState","paramsLoading","clustersMenu","LOADED","ERROR","Boolean","chyt_controller_base_url","mapDispatchToProps","_ref2","_useSelector","blocked","banned","_useLocation","pathname","enableRedirect","endsWith","type","CLUSTER_PARAMS","subPage","allowStop","_ref3","_ref4","_slicedToArray","startDeps","_ref5","_ref6","stopDeps"],"sources":["ClusterPage.js"],"sourcesContent":["import React, {Component, Fragment} from 'react';\nimport {Redirect, Route, Switch, useLocation} from 'react-router';\nimport {connect, useSelector} from 'react-redux';\nimport PropTypes from 'prop-types';\nimport cn from 'bem-cn-lite';\n\nimport BanPage from '../BanPage/BanPage';\nimport MaintenancePage from '../MaintenancePage/MaintenancePage';\nimport HandleMaintenanceRedirect from '../MaintenancePage/HandleRedirect';\nimport Components from '../../pages/components/Components/Components';\nimport Operations from '../../pages/operations/Operations/Operations';\nimport Accounts from '../../pages/accounts/Accounts/Accounts';\nimport Dashboard from '../../pages/dashboard/Dashboard/Dashboard';\nimport System from '../../pages/system/System/System';\nimport Navigation from '../../pages/navigation/Navigation/Navigation';\nimport PathViewer from '../../pages/path-viewer/PathViewer';\nimport Tablet from '../../pages/tablet/Tablet';\nimport TabletCellBundles from '../../pages/tablet_cell_bundles/TabletCellBundles';\nimport GroupsPage from '../../pages/groups/GroupsPage';\nimport UsersPage from '../../pages/users/UsersPage';\nimport Scheduling from '../../pages/scheduling/Scheduling/Scheduling';\nimport QueryTracker from '../../pages/query-tracker/QueryTracker';\nimport Job from '../../pages/job/Job';\nimport {ChytPage} from '../../pages/chyt';\n\nimport ClusterPageHeader from '../ClusterPageHeader/ClusterPageHeader';\nimport PageTracker from './PageTracker';\n\nimport {PageHeadByCluster} from '../../components/PageHead/PageHead';\nimport ConnectionErrorRegion from '../../components/PreloaderErrors/ConnectionErrorRegion';\nimport GeneralErrorRegion from '../../components/PreloaderErrors/GeneralErrorRegion';\nimport FlexSplitPane from '../../components/FlexSplitPane/FlexSplitPane';\nimport ErrorBlock from '../../components/Error/Error';\n\nimport {LOADING_STATUS, LOAD_ERROR, Page, SPLIT_PANE_ID} from '../../constants/index';\nimport {joinMenuItemsAction, splitMenuItemsAction, trackVisit} from '../../store/actions/menu';\nimport {setSetting} from '../../store/actions/settings';\nimport {initClusterParams, unmountCluster, updateCluster} from '../../store/actions/cluster-params';\nimport {updateTitle} from '../../store/actions/global';\nimport {getClusterUiConfig, isQueryTrackerAllowed} from '../../store/selectors/global';\nimport {getClusterConfig} from '../../utils';\nimport {NAMESPACES, SettingName} from '../../../shared/constants/settings';\nimport {\n getClusterPagePaneSizes,\n getStartingPage,\n isRecentClustersFirst,\n isRecentPagesFirst,\n isRedirectToBetaSwitched,\n} from '../../store/selectors/settings';\nimport SupportedFeaturesUpdater from './SupportedFeaturesUpdater';\nimport {useRumMeasureStart, useRumMeasureStop} from '../../rum/RumUiContext';\nimport {RumMeasureTypes} from '../../rum/rum-measure-types';\nimport {useClusterFromLocation} from '../../hooks/use-cluster';\nimport {makeExtraPageRoutes} from './ExtraClusterPageRoutes';\nimport {odinPageInfo} from '../../pages/odin';\nimport {hasOdinPage} from '../../config';\n\nimport './ClusterPage.scss';\n\nconst b = cn('cluster-page');\n\nconst RedirectToBanIfNeededMemo = React.memo(RedirectToBanIfNeeded);\n\nclass ClusterPage extends Component {\n static propTypes = {\n cluster: PropTypes.string,\n\n // from connect\n clusters: PropTypes.object.isRequired,\n clusterPagePaneSizes: PropTypes.array,\n login: PropTypes.string,\n queriesPageAllowed: PropTypes.bool,\n maintenancePageEvent: PropTypes.object,\n startingPage: PropTypes.string.isRequired,\n isLoaded: PropTypes.bool.isRequired,\n hasError: PropTypes.bool.isRequired,\n error: PropTypes.shape({\n errorType: PropTypes.string,\n }).isRequired,\n paramsError: PropTypes.any,\n splitScreen: PropTypes.shape({\n isSplit: PropTypes.bool.isRequired,\n paneClassNames: PropTypes.array.isRequired,\n }).isRequired,\n\n splitMenuItemsAction: PropTypes.func.isRequired,\n setSetting: PropTypes.func.isRequired,\n joinMenuItemsAction: PropTypes.func.isRequired,\n initClusterParams: PropTypes.func.isRequired,\n updateCluster: PropTypes.func.isRequired,\n updateTitle: PropTypes.func.isRequired,\n unmountCluster: PropTypes.func.isRequired,\n trackVisit: PropTypes.func.isRequired,\n\n allowChyt: PropTypes.bool,\n allowQueryTracker: PropTypes.bool,\n };\n\n state = {\n width: 'large',\n };\n\n componentDidMount() {\n const {cluster} = this.props;\n this.props.updateCluster(cluster, this._onUpdateEnd);\n }\n\n getSnapshotBeforeUpdate(prevProps) {\n if (prevProps.splitScreen.isSplit !== this.props.splitScreen.isSplit) {\n return this.props.splitScreen.isSplit\n ? window.pageYOffset\n : this.contentPaneRef.current.scrollTop;\n }\n\n return null;\n }\n\n componentDidUpdate(prevProps, prevState, prevScroll) {\n if (prevScroll !== null) {\n if (this.props.splitScreen.isSplit) {\n this.contentPaneRef.current.scrollTop = prevScroll;\n }\n\n window.scrollBy(0, prevScroll);\n }\n\n const {cluster: prevCluster} = prevProps;\n const {cluster} = this.props;\n\n if (cluster !== prevCluster) {\n this.props.updateCluster(cluster, this._onUpdateEnd);\n }\n }\n\n componentWillUnmount() {\n this.props.updateTitle({path: '', page: ''});\n this.props.unmountCluster();\n }\n\n contentPaneRef = React.createRef();\n\n _onUpdateEnd = () => {\n const {\n cluster,\n trackVisit,\n updateTitle,\n initClusterParams,\n isRedirectToBetaSwitched,\n setSetting,\n } = this.props;\n\n return Promise.resolve().then(() => {\n initClusterParams(cluster);\n updateTitle({cluster});\n\n // todo: get rid of redirectToBetaSwitched setting.\n // It`s exist for set default value of redirectToBeta setting, when settings document is empty yet.\n // Set redirectToBeta on server after get all user settings (home.js). Or get rid of this logic at all.\n if (!isRedirectToBetaSwitched) {\n setSetting(\n SettingName.DEVELOPMENT.REDIRECT_TO_BETA_SWITCHED,\n NAMESPACES.DEVELOPMENT,\n true,\n );\n setSetting(SettingName.DEVELOPMENT.REDIRECT_TO_BETA, NAMESPACES.DEVELOPMENT, true);\n }\n\n this._initMenuCollection('cluster');\n this._initMenuCollection('page');\n trackVisit('cluster', cluster);\n });\n };\n\n _initMenuCollection(itemName) {\n const {splitMenuItemsAction, joinMenuItemsAction} = this.props;\n\n const settingsMap = {\n cluster: 'isRecentClustersFirst',\n page: 'isRecentPagesFirst',\n };\n\n if (this.props[settingsMap[itemName]]) {\n splitMenuItemsAction(itemName);\n } else {\n joinMenuItemsAction(`${itemName}s`);\n }\n }\n\n onResize = () => {\n const {splitScreen} = this.props;\n const toolbar = document.querySelector('#elements-toolbar');\n\n if (splitScreen.isSplit && toolbar) {\n const gutterWidth = 10;\n const offset = document.getElementById(SPLIT_PANE_ID).clientWidth + gutterWidth;\n toolbar.style.right = `${offset}px`;\n } else if (toolbar) {\n toolbar.style.right = '0';\n }\n\n window.dispatchEvent(new Event('resize'));\n };\n\n handleSplit = () => {\n this.onResize();\n // fight the table toolbar becoming invisible after toggling YQLWidget and before first scroll\n window.dispatchEvent(new Event('scroll'));\n this.updateWidthModifier();\n };\n\n updateWidthModifier() {\n const currentWidth = this.contentPaneRef.current?.clientWidth || Infinity;\n if (currentWidth <= 720) {\n this.setState({width: 'small'});\n } else if (currentWidth <= 1024) {\n this.setState({width: 'medium'});\n } else {\n this.setState({width: 'large'});\n }\n }\n\n onResizeEnd = (sizes) => {\n this.props.setSetting(\n SettingName.NAVIGATION.CLUSTER_PAGE_PANE_SIZES,\n NAMESPACES.NAVIGATION,\n sizes,\n );\n this.updateWidthModifier();\n };\n\n getInitialSizes = () => {\n return this.props.clusterPagePaneSizes;\n };\n\n renderError(clusterConfig) {\n const {errorType} = this.props.error || {};\n\n switch (errorType) {\n case LOAD_ERROR.CONNECTION:\n return <ConnectionErrorRegion cluster={clusterConfig.id} />;\n case LOAD_ERROR.AUTHENTICATION:\n return (\n <GeneralErrorRegion\n cluster={clusterConfig.id}\n message={\n 'Could not fetch the XSRF token, therefore preventing further operations. Sometimes ' +\n 'token fetching fails due to the network issues. If the problem persists, please report it ' +\n 'via Bug Reporter.'\n }\n />\n );\n case LOAD_ERROR.GENERAL:\n return (\n <GeneralErrorRegion message=\"Unexpected error occurred. If problem persists please report it via Bug Reporter.\" />\n );\n }\n }\n\n isParamsLoading() {\n const {cluster, paramsCluster} = this.props;\n return cluster !== paramsCluster;\n }\n\n renderContent(clusterConfig) {\n const {\n cluster,\n startingPage,\n isLoaded,\n hasError,\n paramsError,\n allowChyt,\n allowQueryTracker,\n } = this.props;\n\n return isLoaded && !this.isParamsLoading() ? (\n <Fragment>\n <SupportedFeaturesUpdater />\n <HandleMaintenanceRedirect />\n <RedirectToBanIfNeededMemo to={`/${cluster}/${Page.BAN}`} />\n <Switch>\n <Route path={`/:cluster/${Page.BAN}`} component={BanPage} />\n <Route path={`/:cluster/${Page.MAINTENANCE}`} component={MaintenancePage} />\n <Route path={`/:cluster/${Page.COMPONENTS}`} component={Components} />\n <Route path={`/:cluster/${Page.OPERATIONS}`} component={Operations} />\n <Route path={`/:cluster/${Page.JOB}`} component={Job} />\n <Route path={`/:cluster/${Page.DASHBOARD}`} component={Dashboard} />\n <Route path={`/:cluster/${Page.SYSTEM}`} component={System} />\n <Route path={`/:cluster/${Page.ACCOUNTS}`} component={Accounts} />\n <Route\n path={[\n `/:cluster/${Page.TABLET_CELL_BUNDLES}`,\n `/:cluster/${Page.CHAOS_CELL_BUNDLES}`,\n ]}\n component={TabletCellBundles}\n />\n <Route path={`/:cluster/${Page.NAVIGATION}`} component={Navigation} />\n <Route path={`/:cluster/${Page.PATH_VIEWER}`} component={PathViewer} />\n <Route path={`/:cluster/${Page.TABLET}`} component={Tablet} />\n <Route path={`/:cluster/${Page.USERS}`} component={UsersPage} />\n <Route path={`/:cluster/${Page.GROUPS}`} component={GroupsPage} />\n <Route path={`/:cluster/${Page.SCHEDULING}`} component={Scheduling} />\n {allowChyt && <Route path={`/:cluster/${Page.CHYT}`} component={ChytPage} />}\n {allowQueryTracker && (\n <Route path={`/:cluster/${Page.QUERIES}`} component={QueryTracker} />\n )}\n {hasOdinPage() && (\n <Route\n path={`/:cluster/${odinPageInfo.pageId}`}\n component={odinPageInfo.reactComponent}\n />\n )}\n\n <Redirect\n from={`/:cluster/${Page.VERSIONS}`}\n to={`/:cluster/${Page.COMPONENTS}/versions`}\n />\n {makeExtraPageRoutes()}\n <Redirect from={`/${cluster}/`} to={`/${cluster}/${startingPage}`} />\n </Switch>\n\n <Route path=\"/:cluster/:page/:tab?\" component={PageTracker} />\n </Fragment>\n ) : (\n <React.Fragment>\n <div className=\"preloader\">\n {hasError ? (\n this.renderError(clusterConfig)\n ) : (\n <p className=\"preloader__loading\">Loading {clusterConfig?.id}...</p>\n )}\n </div>\n <div className={b('error')}>\n {paramsError && <ErrorBlock error={paramsError} />}\n </div>\n </React.Fragment>\n );\n }\n\n render() {\n const {cluster, splitScreen, clusters} = this.props;\n\n // TODO: put current cluster config into redux state to avoid doing things like these here\n const clusterConfig = getClusterConfig(clusters, cluster);\n\n // FIXME: handle case when clusterConfig is undefined due to wrong cluster name\n return (\n <Fragment>\n <ClusterPageStopRumMeasure />\n <PageHeadByCluster cluster={cluster} />\n\n <ClusterPageHeader />\n\n <FlexSplitPane\n className={b('panes-wrapper', {\n 'with-pane': splitScreen.isSplit,\n })}\n paneClassNames={splitScreen.paneClassNames}\n direction={FlexSplitPane.HORIZONTAL}\n onResize={this.onResize}\n onResizeEnd={this.onResizeEnd}\n onSplit={this.handleSplit}\n onUnSplit={this.handleSplit}\n minSize={600}\n getInitialSizes={this.getInitialSizes}\n id={SPLIT_PANE_ID}\n >\n <div\n ref={this.contentPaneRef}\n className={b('content-pane', {\n split: splitScreen.isSplit && 'yes',\n width: this.state.width,\n })}\n >\n {this.renderContent(clusterConfig)}\n </div>\n\n {null}\n </FlexSplitPane>\n </Fragment>\n );\n }\n}\n\nfunction mapStateToProps(state) {\n const {\n login,\n maintenancePageEvent,\n splitScreen,\n loadState,\n error,\n paramsCluster,\n paramsLoading,\n paramsError,\n } = state.global;\n\n const clusters = state.clustersMenu.clusters;\n\n return {\n clusters,\n isLoaded: !paramsLoading && loadState === LOADING_STATUS.LOADED,\n hasError: loadState === LOADING_STATUS.ERROR,\n error,\n paramsError,\n login,\n splitScreen,\n maintenancePageEvent,\n isRedirectToBetaSwitched: isRedirectToBetaSwitched(state),\n isRecentClustersFirst: isRecentClustersFirst(state),\n isRecentPagesFirst: isRecentPagesFirst(state),\n clusterPagePaneSizes: getClusterPagePaneSizes(state),\n startingPage: getStartingPage(state),\n paramsCluster,\n allowQueryTracker: isQueryTrackerAllowed(state),\n allowChyt: Boolean(getClusterUiConfig(state).chyt_controller_base_url),\n };\n}\n\nconst mapDispatchToProps = {\n setSetting,\n trackVisit,\n splitMenuItemsAction,\n joinMenuItemsAction,\n updateTitle,\n initClusterParams,\n updateCluster,\n unmountCluster,\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(ClusterPage);\n\nfunction RedirectToBanIfNeeded({to}) {\n const {blocked, banned} = useSelector((state) => state.global);\n const {pathname} = useLocation();\n const enableRedirect = (banned || blocked) && !pathname.endsWith('/ban');\n\n if (!enableRedirect) {\n return null;\n }\n\n return <Redirect to={to} />;\n}\n\nfunction ClusterPageStopRumMeasure() {\n const loadState = useSelector((state) => state.global.loadState);\n const paramsLoading = useSelector((state) => state.global.paramsLoading);\n\n const isLoaded =\n loadState === LOADING_STATUS.ERROR ||\n (!paramsLoading && loadState === LOADING_STATUS.LOADED);\n\n const cluster = useClusterFromLocation();\n\n useRumMeasureStart({\n type: RumMeasureTypes.CLUSTER_PARAMS,\n subPage: `ui.${cluster}`,\n allowStop: ([isLoaded]) => !isLoaded,\n startDeps: [isLoaded],\n });\n\n useRumMeasureStop({\n type: RumMeasureTypes.CLUSTER_PARAMS,\n allowStop: ([isLoaded]) => isLoaded,\n stopDeps: [isLoaded],\n });\n return null;\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["React","Component","Fragment","Redirect","Route","Switch","useLocation","connect","useSelector","cn","BanPage","MaintenancePage","HandleMaintenanceRedirect","Components","Operations","Accounts","Dashboard","System","Navigation","PathViewer","Tablet","TabletCellBundles","GroupsPage","UsersPage","Scheduling","QueryTracker","Job","ChytPage","ClusterPageHeader","PageTracker","PageHeadByCluster","ConnectionErrorRegion","GeneralErrorRegion","FlexSplitPane","ErrorBlock","LOADING_STATUS","LOAD_ERROR","Page","SPLIT_PANE_ID","joinMenuItemsAction","splitMenuItemsAction","trackVisit","setSetting","initClusterParams","unmountCluster","updateCluster","updateTitle","getClusterUiConfig","isQueryTrackerAllowed","getClusterConfig","NAMESPACES","SettingName","getClusterPagePaneSizes","getStartingPage","isRecentClustersFirst","isRecentPagesFirst","isRedirectToBetaSwitched","SupportedFeaturesUpdater","useRumMeasureStart","useRumMeasureStop","RumMeasureTypes","useClusterFromLocation","makeExtraPageRoutes","odinPageInfo","hasOdinPage","jsx","_jsx","jsxs","_jsxs","b","RedirectToBanIfNeededMemo","memo","RedirectToBanIfNeeded","ClusterPage","_Component","_inherits","_super","_createSuper","_this","_classCallCheck","_len","arguments","length","args","Array","_key","call","apply","concat","state","width","contentPaneRef","createRef","_onUpdateEnd","_this$props","props","cluster","Promise","resolve","then","DEVELOPMENT","REDIRECT_TO_BETA_SWITCHED","REDIRECT_TO_BETA","_initMenuCollection","onResize","splitScreen","toolbar","document","querySelector","isSplit","gutterWidth","offset","getElementById","clientWidth","style","right","window","dispatchEvent","Event","handleSplit","updateWidthModifier","onResizeEnd","sizes","NAVIGATION","CLUSTER_PAGE_PANE_SIZES","getInitialSizes","clusterPagePaneSizes","_createClass","key","value","componentDidMount","getSnapshotBeforeUpdate","prevProps","pageYOffset","current","scrollTop","componentDidUpdate","prevState","prevScroll","scrollBy","prevCluster","componentWillUnmount","path","page","itemName","_this$props2","settingsMap","_this$contentPaneRef$","currentWidth","Infinity","setState","renderError","clusterConfig","_ref","error","errorType","CONNECTION","id","AUTHENTICATION","message","GENERAL","isParamsLoading","_this$props3","paramsCluster","renderContent","_this$props4","startingPage","isLoaded","hasError","paramsError","allowChyt","allowQueryTracker","children","to","BAN","component","MAINTENANCE","COMPONENTS","OPERATIONS","JOB","DASHBOARD","SYSTEM","ACCOUNTS","TABLET_CELL_BUNDLES","CHAOS_CELL_BUNDLES","PATH_VIEWER","TABLET","USERS","GROUPS","SCHEDULING","CHYT","QUERIES","pageId","reactComponent","from","VERSIONS","className","render","_this$props5","clusters","ClusterPageStopRumMeasure","paneClassNames","direction","HORIZONTAL","onSplit","onUnSplit","minSize","ref","split","mapStateToProps","_state$global","global","login","maintenancePageEvent","loadState","paramsLoading","clustersMenu","LOADED","ERROR","Boolean","chyt_controller_base_url","mapDispatchToProps","_ref2","_useSelector","blocked","banned","_useLocation","pathname","enableRedirect","endsWith","type","CLUSTER_PARAMS","subPage","allowStop","_ref3","_ref4","_slicedToArray","startDeps","_ref5","_ref6","stopDeps"],"sources":["ClusterPage.js"],"sourcesContent":["import React, {Component, Fragment} from 'react';\nimport {Redirect, Route, Switch, useLocation} from 'react-router';\nimport {connect, useSelector} from 'react-redux';\nimport PropTypes from 'prop-types';\nimport cn from 'bem-cn-lite';\n\nimport BanPage from '../BanPage/BanPage';\nimport MaintenancePage from '../MaintenancePage/MaintenancePage';\nimport HandleMaintenanceRedirect from '../MaintenancePage/HandleRedirect';\nimport Components from '../../pages/components/Components/Components';\nimport Operations from '../../pages/operations/Operations/Operations';\nimport Accounts from '../../pages/accounts/Accounts/Accounts';\nimport Dashboard from '../../pages/dashboard/Dashboard/Dashboard';\nimport {System} from '../../pages/system/System/System';\nimport Navigation from '../../pages/navigation/Navigation/Navigation';\nimport PathViewer from '../../pages/path-viewer/PathViewer';\nimport Tablet from '../../pages/tablet/Tablet';\nimport TabletCellBundles from '../../pages/tablet_cell_bundles/TabletCellBundles';\nimport GroupsPage from '../../pages/groups/GroupsPage';\nimport UsersPage from '../../pages/users/UsersPage';\nimport Scheduling from '../../pages/scheduling/Scheduling/Scheduling';\nimport QueryTracker from '../../pages/query-tracker/QueryTracker';\nimport Job from '../../pages/job/Job';\nimport {ChytPage} from '../../pages/chyt';\n\nimport ClusterPageHeader from '../ClusterPageHeader/ClusterPageHeader';\nimport PageTracker from './PageTracker';\n\nimport {PageHeadByCluster} from '../../components/PageHead/PageHead';\nimport ConnectionErrorRegion from '../../components/PreloaderErrors/ConnectionErrorRegion';\nimport GeneralErrorRegion from '../../components/PreloaderErrors/GeneralErrorRegion';\nimport FlexSplitPane from '../../components/FlexSplitPane/FlexSplitPane';\nimport ErrorBlock from '../../components/Error/Error';\n\nimport {LOADING_STATUS, LOAD_ERROR, Page, SPLIT_PANE_ID} from '../../constants/index';\nimport {joinMenuItemsAction, splitMenuItemsAction, trackVisit} from '../../store/actions/menu';\nimport {setSetting} from '../../store/actions/settings';\nimport {initClusterParams, unmountCluster, updateCluster} from '../../store/actions/cluster-params';\nimport {updateTitle} from '../../store/actions/global';\nimport {getClusterUiConfig, isQueryTrackerAllowed} from '../../store/selectors/global';\nimport {getClusterConfig} from '../../utils';\nimport {NAMESPACES, SettingName} from '../../../shared/constants/settings';\nimport {\n getClusterPagePaneSizes,\n getStartingPage,\n isRecentClustersFirst,\n isRecentPagesFirst,\n isRedirectToBetaSwitched,\n} from '../../store/selectors/settings';\nimport SupportedFeaturesUpdater from './SupportedFeaturesUpdater';\nimport {useRumMeasureStart, useRumMeasureStop} from '../../rum/RumUiContext';\nimport {RumMeasureTypes} from '../../rum/rum-measure-types';\nimport {useClusterFromLocation} from '../../hooks/use-cluster';\nimport {makeExtraPageRoutes} from './ExtraClusterPageRoutes';\nimport {odinPageInfo} from '../../pages/odin';\nimport {hasOdinPage} from '../../config';\n\nimport './ClusterPage.scss';\n\nconst b = cn('cluster-page');\n\nconst RedirectToBanIfNeededMemo = React.memo(RedirectToBanIfNeeded);\n\nclass ClusterPage extends Component {\n static propTypes = {\n cluster: PropTypes.string,\n\n // from connect\n clusters: PropTypes.object.isRequired,\n clusterPagePaneSizes: PropTypes.array,\n login: PropTypes.string,\n queriesPageAllowed: PropTypes.bool,\n maintenancePageEvent: PropTypes.object,\n startingPage: PropTypes.string.isRequired,\n isLoaded: PropTypes.bool.isRequired,\n hasError: PropTypes.bool.isRequired,\n error: PropTypes.shape({\n errorType: PropTypes.string,\n }).isRequired,\n paramsError: PropTypes.any,\n splitScreen: PropTypes.shape({\n isSplit: PropTypes.bool.isRequired,\n paneClassNames: PropTypes.array.isRequired,\n }).isRequired,\n\n splitMenuItemsAction: PropTypes.func.isRequired,\n setSetting: PropTypes.func.isRequired,\n joinMenuItemsAction: PropTypes.func.isRequired,\n initClusterParams: PropTypes.func.isRequired,\n updateCluster: PropTypes.func.isRequired,\n updateTitle: PropTypes.func.isRequired,\n unmountCluster: PropTypes.func.isRequired,\n trackVisit: PropTypes.func.isRequired,\n\n allowChyt: PropTypes.bool,\n allowQueryTracker: PropTypes.bool,\n };\n\n state = {\n width: 'large',\n };\n\n componentDidMount() {\n const {cluster} = this.props;\n this.props.updateCluster(cluster, this._onUpdateEnd);\n }\n\n getSnapshotBeforeUpdate(prevProps) {\n if (prevProps.splitScreen.isSplit !== this.props.splitScreen.isSplit) {\n return this.props.splitScreen.isSplit\n ? window.pageYOffset\n : this.contentPaneRef.current.scrollTop;\n }\n\n return null;\n }\n\n componentDidUpdate(prevProps, prevState, prevScroll) {\n if (prevScroll !== null) {\n if (this.props.splitScreen.isSplit) {\n this.contentPaneRef.current.scrollTop = prevScroll;\n }\n\n window.scrollBy(0, prevScroll);\n }\n\n const {cluster: prevCluster} = prevProps;\n const {cluster} = this.props;\n\n if (cluster !== prevCluster) {\n this.props.updateCluster(cluster, this._onUpdateEnd);\n }\n }\n\n componentWillUnmount() {\n this.props.updateTitle({path: '', page: ''});\n this.props.unmountCluster();\n }\n\n contentPaneRef = React.createRef();\n\n _onUpdateEnd = () => {\n const {\n cluster,\n trackVisit,\n updateTitle,\n initClusterParams,\n isRedirectToBetaSwitched,\n setSetting,\n } = this.props;\n\n return Promise.resolve().then(() => {\n initClusterParams(cluster);\n updateTitle({cluster});\n\n // todo: get rid of redirectToBetaSwitched setting.\n // It`s exist for set default value of redirectToBeta setting, when settings document is empty yet.\n // Set redirectToBeta on server after get all user settings (home.js). Or get rid of this logic at all.\n if (!isRedirectToBetaSwitched) {\n setSetting(\n SettingName.DEVELOPMENT.REDIRECT_TO_BETA_SWITCHED,\n NAMESPACES.DEVELOPMENT,\n true,\n );\n setSetting(SettingName.DEVELOPMENT.REDIRECT_TO_BETA, NAMESPACES.DEVELOPMENT, true);\n }\n\n this._initMenuCollection('cluster');\n this._initMenuCollection('page');\n trackVisit('cluster', cluster);\n });\n };\n\n _initMenuCollection(itemName) {\n const {splitMenuItemsAction, joinMenuItemsAction} = this.props;\n\n const settingsMap = {\n cluster: 'isRecentClustersFirst',\n page: 'isRecentPagesFirst',\n };\n\n if (this.props[settingsMap[itemName]]) {\n splitMenuItemsAction(itemName);\n } else {\n joinMenuItemsAction(`${itemName}s`);\n }\n }\n\n onResize = () => {\n const {splitScreen} = this.props;\n const toolbar = document.querySelector('#elements-toolbar');\n\n if (splitScreen.isSplit && toolbar) {\n const gutterWidth = 10;\n const offset = document.getElementById(SPLIT_PANE_ID).clientWidth + gutterWidth;\n toolbar.style.right = `${offset}px`;\n } else if (toolbar) {\n toolbar.style.right = '0';\n }\n\n window.dispatchEvent(new Event('resize'));\n };\n\n handleSplit = () => {\n this.onResize();\n // fight the table toolbar becoming invisible after toggling YQLWidget and before first scroll\n window.dispatchEvent(new Event('scroll'));\n this.updateWidthModifier();\n };\n\n updateWidthModifier() {\n const currentWidth = this.contentPaneRef.current?.clientWidth || Infinity;\n if (currentWidth <= 720) {\n this.setState({width: 'small'});\n } else if (currentWidth <= 1024) {\n this.setState({width: 'medium'});\n } else {\n this.setState({width: 'large'});\n }\n }\n\n onResizeEnd = (sizes) => {\n this.props.setSetting(\n SettingName.NAVIGATION.CLUSTER_PAGE_PANE_SIZES,\n NAMESPACES.NAVIGATION,\n sizes,\n );\n this.updateWidthModifier();\n };\n\n getInitialSizes = () => {\n return this.props.clusterPagePaneSizes;\n };\n\n renderError(clusterConfig) {\n const {errorType} = this.props.error || {};\n\n switch (errorType) {\n case LOAD_ERROR.CONNECTION:\n return <ConnectionErrorRegion cluster={clusterConfig.id} />;\n case LOAD_ERROR.AUTHENTICATION:\n return (\n <GeneralErrorRegion\n cluster={clusterConfig.id}\n message={\n 'Could not fetch the XSRF token, therefore preventing further operations. Sometimes ' +\n 'token fetching fails due to the network issues. If the problem persists, please report it ' +\n 'via Bug Reporter.'\n }\n />\n );\n case LOAD_ERROR.GENERAL:\n return (\n <GeneralErrorRegion message=\"Unexpected error occurred. If problem persists please report it via Bug Reporter.\" />\n );\n }\n }\n\n isParamsLoading() {\n const {cluster, paramsCluster} = this.props;\n return cluster !== paramsCluster;\n }\n\n renderContent(clusterConfig) {\n const {\n cluster,\n startingPage,\n isLoaded,\n hasError,\n paramsError,\n allowChyt,\n allowQueryTracker,\n } = this.props;\n\n return isLoaded && !this.isParamsLoading() ? (\n <Fragment>\n <SupportedFeaturesUpdater />\n <HandleMaintenanceRedirect />\n <RedirectToBanIfNeededMemo to={`/${cluster}/${Page.BAN}`} />\n <Switch>\n <Route path={`/:cluster/${Page.BAN}`} component={BanPage} />\n <Route path={`/:cluster/${Page.MAINTENANCE}`} component={MaintenancePage} />\n <Route path={`/:cluster/${Page.COMPONENTS}`} component={Components} />\n <Route path={`/:cluster/${Page.OPERATIONS}`} component={Operations} />\n <Route path={`/:cluster/${Page.JOB}`} component={Job} />\n <Route path={`/:cluster/${Page.DASHBOARD}`} component={Dashboard} />\n <Route path={`/:cluster/${Page.SYSTEM}`} component={System} />\n <Route path={`/:cluster/${Page.ACCOUNTS}`} component={Accounts} />\n <Route\n path={[\n `/:cluster/${Page.TABLET_CELL_BUNDLES}`,\n `/:cluster/${Page.CHAOS_CELL_BUNDLES}`,\n ]}\n component={TabletCellBundles}\n />\n <Route path={`/:cluster/${Page.NAVIGATION}`} component={Navigation} />\n <Route path={`/:cluster/${Page.PATH_VIEWER}`} component={PathViewer} />\n <Route path={`/:cluster/${Page.TABLET}`} component={Tablet} />\n <Route path={`/:cluster/${Page.USERS}`} component={UsersPage} />\n <Route path={`/:cluster/${Page.GROUPS}`} component={GroupsPage} />\n <Route path={`/:cluster/${Page.SCHEDULING}`} component={Scheduling} />\n {allowChyt && <Route path={`/:cluster/${Page.CHYT}`} component={ChytPage} />}\n {allowQueryTracker && (\n <Route path={`/:cluster/${Page.QUERIES}`} component={QueryTracker} />\n )}\n {hasOdinPage() && (\n <Route\n path={`/:cluster/${odinPageInfo.pageId}`}\n component={odinPageInfo.reactComponent}\n />\n )}\n\n <Redirect\n from={`/:cluster/${Page.VERSIONS}`}\n to={`/:cluster/${Page.COMPONENTS}/versions`}\n />\n {makeExtraPageRoutes()}\n <Redirect from={`/${cluster}/`} to={`/${cluster}/${startingPage}`} />\n </Switch>\n\n <Route path=\"/:cluster/:page/:tab?\" component={PageTracker} />\n </Fragment>\n ) : (\n <React.Fragment>\n <div className=\"preloader\">\n {hasError ? (\n this.renderError(clusterConfig)\n ) : (\n <p className=\"preloader__loading\">Loading {clusterConfig?.id}...</p>\n )}\n </div>\n <div className={b('error')}>\n {paramsError && <ErrorBlock error={paramsError} />}\n </div>\n </React.Fragment>\n );\n }\n\n render() {\n const {cluster, splitScreen, clusters} = this.props;\n\n // TODO: put current cluster config into redux state to avoid doing things like these here\n const clusterConfig = getClusterConfig(clusters, cluster);\n\n // FIXME: handle case when clusterConfig is undefined due to wrong cluster name\n return (\n <Fragment>\n <ClusterPageStopRumMeasure />\n <PageHeadByCluster cluster={cluster} />\n\n <ClusterPageHeader />\n\n <FlexSplitPane\n className={b('panes-wrapper', {\n 'with-pane': splitScreen.isSplit,\n })}\n paneClassNames={splitScreen.paneClassNames}\n direction={FlexSplitPane.HORIZONTAL}\n onResize={this.onResize}\n onResizeEnd={this.onResizeEnd}\n onSplit={this.handleSplit}\n onUnSplit={this.handleSplit}\n minSize={600}\n getInitialSizes={this.getInitialSizes}\n id={SPLIT_PANE_ID}\n >\n <div\n ref={this.contentPaneRef}\n className={b('content-pane', {\n split: splitScreen.isSplit && 'yes',\n width: this.state.width,\n })}\n >\n {this.renderContent(clusterConfig)}\n </div>\n\n {null}\n </FlexSplitPane>\n </Fragment>\n );\n }\n}\n\nfunction mapStateToProps(state) {\n const {\n login,\n maintenancePageEvent,\n splitScreen,\n loadState,\n error,\n paramsCluster,\n paramsLoading,\n paramsError,\n } = state.global;\n\n const clusters = state.clustersMenu.clusters;\n\n return {\n clusters,\n isLoaded: !paramsLoading && loadState === LOADING_STATUS.LOADED,\n hasError: loadState === LOADING_STATUS.ERROR,\n error,\n paramsError,\n login,\n splitScreen,\n maintenancePageEvent,\n isRedirectToBetaSwitched: isRedirectToBetaSwitched(state),\n isRecentClustersFirst: isRecentClustersFirst(state),\n isRecentPagesFirst: isRecentPagesFirst(state),\n clusterPagePaneSizes: getClusterPagePaneSizes(state),\n startingPage: getStartingPage(state),\n paramsCluster,\n allowQueryTracker: isQueryTrackerAllowed(state),\n allowChyt: Boolean(getClusterUiConfig(state).chyt_controller_base_url),\n };\n}\n\nconst mapDispatchToProps = {\n setSetting,\n trackVisit,\n splitMenuItemsAction,\n joinMenuItemsAction,\n updateTitle,\n initClusterParams,\n updateCluster,\n unmountCluster,\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(ClusterPage);\n\nfunction RedirectToBanIfNeeded({to}) {\n const {blocked, banned} = useSelector((state) => state.global);\n const {pathname} = useLocation();\n const enableRedirect = (banned || blocked) && !pathname.endsWith('/ban');\n\n if (!enableRedirect) {\n return null;\n }\n\n return <Redirect to={to} />;\n}\n\nfunction ClusterPageStopRumMeasure() {\n const loadState = useSelector((state) => state.global.loadState);\n const paramsLoading = useSelector((state) => state.global.paramsLoading);\n\n const isLoaded =\n loadState === LOADING_STATUS.ERROR ||\n (!paramsLoading && loadState === LOADING_STATUS.LOADED);\n\n const cluster = useClusterFromLocation();\n\n useRumMeasureStart({\n type: RumMeasureTypes.CLUSTER_PARAMS,\n subPage: `ui.${cluster}`,\n allowStop: ([isLoaded]) => !isLoaded,\n startDeps: [isLoaded],\n });\n\n useRumMeasureStop({\n type: RumMeasureTypes.CLUSTER_PARAMS,\n allowStop: ([isLoaded]) => isLoaded,\n stopDeps: [isLoaded],\n });\n return null;\n}\n"],"mappings":"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"}
@@ -31,11 +31,18 @@
31
31
  .versions-summary__row_special {
32
32
  background-color: var(--light-background);
33
33
  }
34
-
35
- .hide-offline-checkbox {
34
+ .versions-summary__monitoring-link {
35
+ display: flex;
36
+ align-items: center;
37
+ gap: 0 4px;
38
+ }
39
+ .versions-summary__header-actions {
40
+ display: flex;
41
+ align-items: center;
42
+ gap: 0 10px;
36
43
  position: relative;
37
- top: -33px;
38
44
  right: 10px;
45
+ top: -33px;
39
46
  float: right;
40
47
  }
41
48
  /*# sourceMappingURL=VersionSummary.css.map */
@@ -1 +1 @@
1
- {"version":3,"sources":["VersionSummary.scss"],"names":[],"mappings":"AACI;EACI,sBAAA;EACA,6CAAA;EACA,YAAA;AAAR;AAGI;EACI,4CAAA;AADR;AAII;EACI,iBAAA;EACA,sBAAA;AAFR;AAKI;EACI,gBAAA;EACA,gBAAA;AAHR;AAQY;EACI,eAAA;EACA,wBAAA;AANhB;AAWI;EACI,aAAA;EACA,mBAAA;AATR;AAaQ;EACI,kBAAA;AAXZ;AAeY;EACI,mBAAA;AAbhB;AAmBQ;EACI,yCAAA;AAjBZ;;AAsBA;EACI,kBAAA;EACA,UAAA;EACA,WAAA;EACA,YAAA;AAnBJ","file":"VersionSummary.css","sourcesContent":[".versions-summary {\n .data-table__row {\n box-sizing: border-box;\n border-bottom: 1px solid var(--light-divider);\n height: 40px;\n }\n\n .data-table__head-row {\n border-bottom: 1px solid var(--dark-divider);\n }\n\n .data-table__td {\n padding-left: 8px;\n vertical-align: middle;\n }\n\n .data-table__th {\n max-width: 100px;\n min-width: 100px;\n }\n\n &__value {\n &_clickable {\n &:hover {\n cursor: pointer;\n color: var(--hover-link);\n }\n }\n }\n\n &__version {\n display: flex;\n align-items: center;\n }\n\n .data-table__row {\n .yt-clipboard-button {\n visibility: hidden;\n }\n\n &:hover {\n .yt-clipboard-button {\n visibility: unset;\n }\n }\n }\n\n &__row {\n &_special {\n background-color: var(--light-background);\n }\n }\n}\n\n.hide-offline-checkbox {\n position: relative;\n top: -33px;\n right: 10px;\n float: right;\n}\n"],"sourceRoot":""}
1
+ {"version":3,"sources":["VersionSummary.scss"],"names":[],"mappings":"AACI;EACI,sBAAA;EACA,6CAAA;EACA,YAAA;AAAR;AAGI;EACI,4CAAA;AADR;AAII;EACI,iBAAA;EACA,sBAAA;AAFR;AAKI;EACI,gBAAA;EACA,gBAAA;AAHR;AAQY;EACI,eAAA;EACA,wBAAA;AANhB;AAWI;EACI,aAAA;EACA,mBAAA;AATR;AAaQ;EACI,kBAAA;AAXZ;AAeY;EACI,mBAAA;AAbhB;AAmBQ;EACI,yCAAA;AAjBZ;AAqBI;EACI,aAAA;EACA,mBAAA;EACA,UAAA;AAnBR;AAsBI;EACI,aAAA;EACA,mBAAA;EACA,WAAA;EACA,kBAAA;EACA,WAAA;EACA,UAAA;EACA,YAAA;AApBR","file":"VersionSummary.css","sourcesContent":[".versions-summary {\n .data-table__row {\n box-sizing: border-box;\n border-bottom: 1px solid var(--light-divider);\n height: 40px;\n }\n\n .data-table__head-row {\n border-bottom: 1px solid var(--dark-divider);\n }\n\n .data-table__td {\n padding-left: 8px;\n vertical-align: middle;\n }\n\n .data-table__th {\n max-width: 100px;\n min-width: 100px;\n }\n\n &__value {\n &_clickable {\n &:hover {\n cursor: pointer;\n color: var(--hover-link);\n }\n }\n }\n\n &__version {\n display: flex;\n align-items: center;\n }\n\n .data-table__row {\n .yt-clipboard-button {\n visibility: hidden;\n }\n\n &:hover {\n .yt-clipboard-button {\n visibility: unset;\n }\n }\n }\n\n &__row {\n &_special {\n background-color: var(--light-background);\n }\n }\n\n &__monitoring-link {\n display: flex;\n align-items: center;\n gap: 0 4px;\n }\n\n &__header-actions {\n display: flex;\n align-items: center;\n gap: 0 10px;\n position: relative;\n right: 10px;\n top: -33px;\n float: right;\n }\n}\n"],"sourceRoot":""}
@@ -27,6 +27,7 @@ declare class VersionsSummary extends React.Component<Props> {
27
27
  declare const connector: import("react-redux").InferableComponentEnhancerWithProps<{
28
28
  loading: boolean;
29
29
  loaded: boolean;
30
+ cluster: string;
30
31
  items: VersionSummaryItem[];
31
32
  sortState: import("../../../../types").SortState<"version" | import("../../../../store/reducers/components/versions/versions_v2").HostType | "banned" | "online" | "offline"> | undefined;
32
33
  checkedHideOffline: boolean;
@@ -43,6 +44,7 @@ declare const connector: import("react-redux").InferableComponentEnhancerWithPro
43
44
  declare const _default: import("react-redux").ConnectedComponent<typeof VersionsSummary, import("react-redux").Omit<React.ClassAttributes<VersionsSummary> & {
44
45
  loading: boolean;
45
46
  loaded: boolean;
47
+ cluster: string;
46
48
  items: VersionSummaryItem[];
47
49
  sortState: import("../../../../types").SortState<"version" | import("../../../../store/reducers/components/versions/versions_v2").HostType | "banned" | "online" | "offline"> | undefined;
48
50
  checkedHideOffline: boolean;
@@ -55,5 +57,5 @@ declare const _default: import("react-redux").ConnectedComponent<typeof Versions
55
57
  changeVersionStateTypeFilters: typeof changeVersionStateTypeFilters;
56
58
  setVersionsSummarySortState: typeof setVersionsSummarySortState;
57
59
  changeCheckedHideOffline: typeof changeCheckedHideOffline;
58
- }, "loading" | "loaded" | "items" | "checkedHideOffline" | "visibleColumns" | "sortState" | "changeVersionStateTypeFilters" | "setVersionsSummarySortState" | "changeCheckedHideOffline">>;
60
+ }, "cluster" | "loading" | "loaded" | "items" | "checkedHideOffline" | "visibleColumns" | "sortState" | "changeVersionStateTypeFilters" | "setVersionsSummarySortState" | "changeCheckedHideOffline">>;
59
61
  export default _default;
@@ -16,6 +16,9 @@ import Link from '../../../../components/Link/Link';
16
16
  import ColumnHeader from '../../../../components/ColumnHeader/ColumnHeader';
17
17
  import { VersionCellWithAction } from './VersionCell';
18
18
  import "./VersionSummary.css";
19
+ import UIFactory from '../../../../UIFactory';
20
+ import { getCluster } from '../../../../store/selectors/global';
21
+ import { formatByParams } from '../../../../utils/format';
19
22
  import { jsx as _jsx } from "react/jsx-runtime";
20
23
  import { jsxs as _jsxs } from "react/jsx-runtime";
21
24
  var block = cn('versions-summary');
@@ -177,15 +180,28 @@ var VersionsSummary = /*#__PURE__*/function (_React$Component) {
177
180
  items = _this$props2.items,
178
181
  loading = _this$props2.loading,
179
182
  loaded = _this$props2.loaded,
183
+ cluster = _this$props2.cluster,
180
184
  checkedHideOffline = _this$props2.checkedHideOffline;
185
+ var monitoringLink = UIFactory.getVersionMonitoringLink(cluster);
181
186
  return /*#__PURE__*/_jsxs("div", {
182
187
  className: block(),
183
- children: [/*#__PURE__*/_jsx(Checkbox, {
184
- className: 'hide-offline-checkbox',
185
- title: 'Hide offline',
186
- content: 'Hide offline',
187
- defaultChecked: checkedHideOffline,
188
- onUpdate: this.handleHideOffline
188
+ children: [/*#__PURE__*/_jsxs("div", {
189
+ className: block('header-actions'),
190
+ children: [monitoringLink && /*#__PURE__*/_jsxs(Link, {
191
+ url: formatByParams(monitoringLink.urlTemplate, {
192
+ ytCluster: cluster
193
+ }),
194
+ target: "_blank",
195
+ className: block('monitoring-link'),
196
+ children: [monitoringLink.title || 'Monitoring', " ", /*#__PURE__*/_jsx(Icon, {
197
+ awesome: "external-link"
198
+ })]
199
+ }), /*#__PURE__*/_jsx(Checkbox, {
200
+ title: 'Hide offline',
201
+ content: 'Hide offline',
202
+ defaultChecked: checkedHideOffline,
203
+ onUpdate: this.handleHideOffline
204
+ })]
189
205
  }), /*#__PURE__*/_jsx(DataTableYT, {
190
206
  loaded: loaded,
191
207
  loading: loading,
@@ -211,12 +227,14 @@ var mapStateToProps = function mapStateToProps(state) {
211
227
  var _state$components$ver = state.components.versionsV2,
212
228
  loading = _state$components$ver.loading,
213
229
  loaded = _state$components$ver.loaded;
230
+ var cluster = getCluster(state);
214
231
  var items = getVersionsSummaryData(state);
215
232
  var sortState = getSummarySortState(state);
216
233
  var visibleColumns = getVersionsSummaryVisibleColumns(state);
217
234
  return {
218
235
  loading: loading,
219
236
  loaded: loaded,
237
+ cluster: cluster,
220
238
  items: items,
221
239
  sortState: sortState,
222
240
  checkedHideOffline: getHideOfflineValue(state),
@@ -1 +1 @@
1
- {"version":3,"names":["React","connect","cn","Checkbox","DataTableYT","getHideOfflineValue","getSummarySortState","getVersionsSummaryData","getVersionsSummaryVisibleColumns","hammer","changeCheckedHideOffline","changeVersionStateTypeFilters","setVersionsSummarySortState","Icon","Link","ColumnHeader","VersionCellWithAction","jsx","_jsx","jsxs","_jsxs","block","SETTINGS","displayIndices","isSpecialRow","version","VersionsSummary","_React$Component","_inherits","_super","_createSuper","_this","_classCallCheck","_len","arguments","length","args","Array","_key","call","apply","concat","renderVersion","_ref","row","props","content","Fragment","children","theme","onClick","state","awesome","format","className","renderNumber","key","rowData","value","NO_VALUE","undefined","clickable","Boolean","title","handleHideOffline","data","rowVersion","isSpecial","banned","type","_createClass","getColumns","makeColumnInfo","_ref2","name","shortName","sortable","render","bind","align","header","renderHeader","_this$props","sortState","_ref3","column","order","shortTitle","toggleSort","withUndefined","_this2","visibleColumns","columns","sortAccessor","_toConsumableArray","map","item","_this$props2","items","loading","loaded","checkedHideOffline","defaultChecked","onUpdate","settings","rowClassName","special","Component","mapStateToProps","_state$components$ver","components","versionsV2","mapDispatchToProps","connector"],"sources":["VersionSummary.tsx"],"sourcesContent":["import React from 'react';\nimport {ConnectedProps, connect} from 'react-redux';\nimport cn from 'bem-cn-lite';\n\nimport {Checkbox} from '@gravity-ui/uikit';\n\nimport {RootState} from '../../../../store/reducers';\nimport DataTableYT from '../../../../components/DataTableYT/DataTableYT';\nimport * as DT100 from '@gravity-ui/react-data-table';\nimport {\n getHideOfflineValue,\n getSummarySortState,\n getVersionsSummaryData,\n getVersionsSummaryVisibleColumns,\n} from '../../../../store/selectors/components/versions/versions_v2-ts';\n\nimport hammer from '../../../../common/hammer';\n\nimport {\n changeCheckedHideOffline,\n changeVersionStateTypeFilters,\n setVersionsSummarySortState,\n} from '../../../../store/actions/components/versions/versions_v2';\nimport Icon from '../../../../components/Icon/Icon';\nimport Link from '../../../../components/Link/Link';\nimport ColumnHeader from '../../../../components/ColumnHeader/ColumnHeader';\nimport {VersionCellWithAction} from './VersionCell';\nimport {VersionSummaryItem} from '../../../../store/reducers/components/versions/versions_v2';\n\nimport './VersionSummary.scss';\n\nconst block = cn('versions-summary');\n\ntype Props = ConnectedProps<typeof connector>;\n\ntype RenderData = {row: VersionSummaryItem; index: number};\n\nconst SETTINGS: DT100.Settings = {\n displayIndices: false,\n};\n\nfunction isSpecialRow(version: string) {\n return version === 'error' || version === 'total';\n}\n\nclass VersionsSummary extends React.Component<Props> {\n getColumns(): Array<DT100.Column<VersionSummaryItem>> {\n return [];\n }\n renderVersion = ({row: {version}}: RenderData) => {\n const {changeVersionStateTypeFilters} = this.props;\n let content;\n if (version === 'error') {\n content = (\n <React.Fragment>\n <Link\n theme={'primary'}\n onClick={() => {\n changeVersionStateTypeFilters({state: 'error'});\n }}\n >\n <Icon awesome={'exclamation-triangle'} />{' '}\n {hammer.format['Readable'](version)}\n </Link>\n </React.Fragment>\n );\n } else if (version === 'total') {\n content = hammer.format['Readable'](version);\n } else {\n content = (\n <div className={block('version')}>\n <VersionCellWithAction version={version} />\n </div>\n );\n }\n\n return <span className={block('value')}>{content}</span>;\n };\n renderNumber = (key: keyof VersionSummaryItem, rowData: RenderData) => {\n const {row} = rowData;\n const value = row[key];\n const content = !value ? hammer.format.NO_VALUE : hammer.format['Number'](value);\n const onClick = !value\n ? undefined\n : () => {\n this.onClick(key, rowData);\n };\n return (\n <span\n className={block('value', {clickable: Boolean(onClick)})}\n onClick={onClick}\n title={onClick ? 'Click to set corresponding filter values' : undefined}\n >\n {content}\n </span>\n );\n };\n\n makeColumnInfo({\n type,\n name,\n shortName,\n }: {\n type: keyof VersionSummaryItem;\n name: string;\n shortName?: string;\n }): DT100.Column<VersionSummaryItem> {\n return {\n name: shortName || name,\n title: name,\n sortable: false,\n render: this.renderNumber.bind(this, type),\n align: 'right',\n header: this.renderHeader(type, name, shortName),\n };\n }\n\n renderHeader(key: keyof VersionSummaryItem, name: string, shortName?: string) {\n const {sortState, setVersionsSummarySortState} = this.props;\n const {column, order} = sortState || {};\n return (\n <ColumnHeader<typeof key>\n sortable={true}\n column={key}\n title={name}\n shortTitle={shortName || name}\n toggleSort={(column, order) => {\n setVersionsSummarySortState({column, order});\n }}\n order={key === column ? order : ''}\n withUndefined\n />\n );\n }\n\n handleHideOffline = (value: boolean) => {\n this.props.changeCheckedHideOffline(value);\n };\n\n render() {\n const {visibleColumns} = this.props;\n const columns: Array<DT100.Column<VersionSummaryItem>> = [\n {\n name: 'version',\n render: this.renderVersion,\n sortable: false,\n sortAccessor: (row) => row.version,\n header: this.renderHeader('version', 'Versions'),\n },\n\n ...visibleColumns.map((item) => this.makeColumnInfo(item)),\n ];\n\n const {items, loading, loaded, checkedHideOffline} = this.props;\n\n return (\n <div className={block()}>\n <Checkbox\n className={'hide-offline-checkbox'}\n title={'Hide offline'}\n content={'Hide offline'}\n defaultChecked={checkedHideOffline}\n onUpdate={this.handleHideOffline}\n />\n <DataTableYT\n loaded={loaded}\n loading={loading}\n data={items}\n columns={columns}\n theme={'versions'}\n settings={SETTINGS}\n rowClassName={this.rowClassName}\n />\n </div>\n );\n }\n\n rowClassName(row: VersionSummaryItem) {\n return block('row', {special: isSpecialRow(row.version)});\n }\n\n onClick = (key: keyof VersionSummaryItem, data: RenderData) => {\n const {changeVersionStateTypeFilters} = this.props;\n const {\n row: {version: rowVersion},\n } = data;\n const isSpecial = isSpecialRow(rowVersion);\n const version = !isSpecial ? rowVersion : undefined;\n\n const state = rowVersion === 'error' ? 'error' : undefined;\n\n if (key === 'online' || key === 'offline') {\n changeVersionStateTypeFilters({version, state: state || key});\n } else if (key === 'banned') {\n changeVersionStateTypeFilters({version, banned: true});\n } else {\n changeVersionStateTypeFilters({version, type: key, state});\n }\n };\n}\n\nconst mapStateToProps = (state: RootState) => {\n const {loading, loaded} = state.components.versionsV2;\n\n const items = getVersionsSummaryData(state);\n const sortState = getSummarySortState(state);\n\n const visibleColumns = getVersionsSummaryVisibleColumns(state);\n\n return {\n loading: loading as boolean,\n loaded: loaded as boolean,\n items,\n sortState,\n checkedHideOffline: getHideOfflineValue(state),\n visibleColumns,\n };\n};\n\nconst mapDispatchToProps = {\n changeVersionStateTypeFilters,\n setVersionsSummarySortState,\n changeCheckedHideOffline,\n};\n\nconst connector = connect(mapStateToProps, mapDispatchToProps);\n\nexport default connector(VersionsSummary);\n"],"mappings":"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"}
1
+ {"version":3,"names":["React","connect","cn","Checkbox","DataTableYT","getHideOfflineValue","getSummarySortState","getVersionsSummaryData","getVersionsSummaryVisibleColumns","hammer","changeCheckedHideOffline","changeVersionStateTypeFilters","setVersionsSummarySortState","Icon","Link","ColumnHeader","VersionCellWithAction","UIFactory","getCluster","formatByParams","jsx","_jsx","jsxs","_jsxs","block","SETTINGS","displayIndices","isSpecialRow","version","VersionsSummary","_React$Component","_inherits","_super","_createSuper","_this","_classCallCheck","_len","arguments","length","args","Array","_key","call","apply","concat","renderVersion","_ref","row","props","content","Fragment","children","theme","onClick","state","awesome","format","className","renderNumber","key","rowData","value","NO_VALUE","undefined","clickable","Boolean","title","handleHideOffline","data","rowVersion","isSpecial","banned","type","_createClass","getColumns","makeColumnInfo","_ref2","name","shortName","sortable","render","bind","align","header","renderHeader","_this$props","sortState","_ref3","column","order","shortTitle","toggleSort","withUndefined","_this2","visibleColumns","columns","sortAccessor","_toConsumableArray","map","item","_this$props2","items","loading","loaded","cluster","checkedHideOffline","monitoringLink","getVersionMonitoringLink","url","urlTemplate","ytCluster","target","defaultChecked","onUpdate","settings","rowClassName","special","Component","mapStateToProps","_state$components$ver","components","versionsV2","mapDispatchToProps","connector"],"sources":["VersionSummary.tsx"],"sourcesContent":["import React from 'react';\nimport {ConnectedProps, connect} from 'react-redux';\nimport cn from 'bem-cn-lite';\n\nimport {Checkbox} from '@gravity-ui/uikit';\n\nimport {RootState} from '../../../../store/reducers';\nimport DataTableYT from '../../../../components/DataTableYT/DataTableYT';\nimport * as DT100 from '@gravity-ui/react-data-table';\nimport {\n getHideOfflineValue,\n getSummarySortState,\n getVersionsSummaryData,\n getVersionsSummaryVisibleColumns,\n} from '../../../../store/selectors/components/versions/versions_v2-ts';\n\nimport hammer from '../../../../common/hammer';\n\nimport {\n changeCheckedHideOffline,\n changeVersionStateTypeFilters,\n setVersionsSummarySortState,\n} from '../../../../store/actions/components/versions/versions_v2';\nimport Icon from '../../../../components/Icon/Icon';\nimport Link from '../../../../components/Link/Link';\nimport ColumnHeader from '../../../../components/ColumnHeader/ColumnHeader';\nimport {VersionCellWithAction} from './VersionCell';\nimport {VersionSummaryItem} from '../../../../store/reducers/components/versions/versions_v2';\n\nimport './VersionSummary.scss';\nimport UIFactory from '../../../../UIFactory';\nimport {getCluster} from '../../../../store/selectors/global';\nimport {formatByParams} from '../../../../utils/format';\n\nconst block = cn('versions-summary');\n\ntype Props = ConnectedProps<typeof connector>;\n\ntype RenderData = {row: VersionSummaryItem; index: number};\n\nconst SETTINGS: DT100.Settings = {\n displayIndices: false,\n};\n\nfunction isSpecialRow(version: string) {\n return version === 'error' || version === 'total';\n}\n\nclass VersionsSummary extends React.Component<Props> {\n getColumns(): Array<DT100.Column<VersionSummaryItem>> {\n return [];\n }\n renderVersion = ({row: {version}}: RenderData) => {\n const {changeVersionStateTypeFilters} = this.props;\n let content;\n if (version === 'error') {\n content = (\n <React.Fragment>\n <Link\n theme={'primary'}\n onClick={() => {\n changeVersionStateTypeFilters({state: 'error'});\n }}\n >\n <Icon awesome={'exclamation-triangle'} />{' '}\n {hammer.format['Readable'](version)}\n </Link>\n </React.Fragment>\n );\n } else if (version === 'total') {\n content = hammer.format['Readable'](version);\n } else {\n content = (\n <div className={block('version')}>\n <VersionCellWithAction version={version} />\n </div>\n );\n }\n\n return <span className={block('value')}>{content}</span>;\n };\n renderNumber = (key: keyof VersionSummaryItem, rowData: RenderData) => {\n const {row} = rowData;\n const value = row[key];\n const content = !value ? hammer.format.NO_VALUE : hammer.format['Number'](value);\n const onClick = !value\n ? undefined\n : () => {\n this.onClick(key, rowData);\n };\n return (\n <span\n className={block('value', {clickable: Boolean(onClick)})}\n onClick={onClick}\n title={onClick ? 'Click to set corresponding filter values' : undefined}\n >\n {content}\n </span>\n );\n };\n\n makeColumnInfo({\n type,\n name,\n shortName,\n }: {\n type: keyof VersionSummaryItem;\n name: string;\n shortName?: string;\n }): DT100.Column<VersionSummaryItem> {\n return {\n name: shortName || name,\n title: name,\n sortable: false,\n render: this.renderNumber.bind(this, type),\n align: 'right',\n header: this.renderHeader(type, name, shortName),\n };\n }\n\n renderHeader(key: keyof VersionSummaryItem, name: string, shortName?: string) {\n const {sortState, setVersionsSummarySortState} = this.props;\n const {column, order} = sortState || {};\n return (\n <ColumnHeader<typeof key>\n sortable={true}\n column={key}\n title={name}\n shortTitle={shortName || name}\n toggleSort={(column, order) => {\n setVersionsSummarySortState({column, order});\n }}\n order={key === column ? order : ''}\n withUndefined\n />\n );\n }\n\n handleHideOffline = (value: boolean) => {\n this.props.changeCheckedHideOffline(value);\n };\n\n render() {\n const {visibleColumns} = this.props;\n const columns: Array<DT100.Column<VersionSummaryItem>> = [\n {\n name: 'version',\n render: this.renderVersion,\n sortable: false,\n sortAccessor: (row) => row.version,\n header: this.renderHeader('version', 'Versions'),\n },\n\n ...visibleColumns.map((item) => this.makeColumnInfo(item)),\n ];\n\n const {items, loading, loaded, cluster, checkedHideOffline} = this.props;\n const monitoringLink = UIFactory.getVersionMonitoringLink(cluster);\n\n return (\n <div className={block()}>\n <div className={block('header-actions')}>\n {monitoringLink && (\n <Link\n url={formatByParams(monitoringLink.urlTemplate, {ytCluster: cluster})}\n target=\"_blank\"\n className={block('monitoring-link')}\n >\n {monitoringLink.title || 'Monitoring'} <Icon awesome=\"external-link\" />\n </Link>\n )}\n <Checkbox\n title={'Hide offline'}\n content={'Hide offline'}\n defaultChecked={checkedHideOffline}\n onUpdate={this.handleHideOffline}\n />\n </div>\n <DataTableYT\n loaded={loaded}\n loading={loading}\n data={items}\n columns={columns}\n theme={'versions'}\n settings={SETTINGS}\n rowClassName={this.rowClassName}\n />\n </div>\n );\n }\n\n rowClassName(row: VersionSummaryItem) {\n return block('row', {special: isSpecialRow(row.version)});\n }\n\n onClick = (key: keyof VersionSummaryItem, data: RenderData) => {\n const {changeVersionStateTypeFilters} = this.props;\n const {\n row: {version: rowVersion},\n } = data;\n const isSpecial = isSpecialRow(rowVersion);\n const version = !isSpecial ? rowVersion : undefined;\n\n const state = rowVersion === 'error' ? 'error' : undefined;\n\n if (key === 'online' || key === 'offline') {\n changeVersionStateTypeFilters({version, state: state || key});\n } else if (key === 'banned') {\n changeVersionStateTypeFilters({version, banned: true});\n } else {\n changeVersionStateTypeFilters({version, type: key, state});\n }\n };\n}\n\nconst mapStateToProps = (state: RootState) => {\n const {loading, loaded} = state.components.versionsV2;\n const cluster = getCluster(state);\n\n const items = getVersionsSummaryData(state);\n const sortState = getSummarySortState(state);\n\n const visibleColumns = getVersionsSummaryVisibleColumns(state);\n\n return {\n loading: loading as boolean,\n loaded: loaded as boolean,\n cluster,\n items,\n sortState,\n checkedHideOffline: getHideOfflineValue(state),\n visibleColumns,\n };\n};\n\nconst mapDispatchToProps = {\n changeVersionStateTypeFilters,\n setVersionsSummarySortState,\n changeCheckedHideOffline,\n};\n\nconst connector = connect(mapStateToProps, mapDispatchToProps);\n\nexport default connector(VersionsSummary);\n"],"mappings":"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"}
@@ -50,11 +50,20 @@
50
50
  background-color: var(--light-background);
51
51
  }
52
52
  }
53
- }
54
53
 
55
- .hide-offline-checkbox {
56
- position: relative;
57
- top: -33px;
58
- right: 10px;
59
- float: right;
54
+ &__monitoring-link {
55
+ display: flex;
56
+ align-items: center;
57
+ gap: 0 4px;
58
+ }
59
+
60
+ &__header-actions {
61
+ display: flex;
62
+ align-items: center;
63
+ gap: 0 10px;
64
+ position: relative;
65
+ right: 10px;
66
+ top: -33px;
67
+ float: right;
68
+ }
60
69
  }
@@ -1,8 +1,10 @@
1
- export default class System extends React.Component<any, any, any> {
2
- constructor(props: any);
3
- constructor(props: any, context: any);
4
- container: React.RefObject<any>;
5
- renderContent(): React.JSX.Element;
6
- render(): React.JSX.Element;
7
- }
8
- import React from 'react';
1
+ import { FC } from 'react';
2
+ import './System.scss';
3
+ type Props = {
4
+ match: {
5
+ path: string;
6
+ url: string;
7
+ };
8
+ };
9
+ export declare const System: FC<Props>;
10
+ export {};
@@ -1,57 +1,60 @@
1
- import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
2
- import _createClass from "@babel/runtime/helpers/createClass";
3
- import _inherits from "@babel/runtime/helpers/inherits";
4
- import _createSuper from "@babel/runtime/helpers/createSuper";
5
- import React, { Component, Fragment } from 'react';
6
- import SchedulersAndAgents from '../SchedulersAndAgents/SchedulersAndAgents';
7
- import Resources from '../Resources/Resources';
8
- import Masters from '../Masters/Masters';
9
- import Chunks from '../Chunks/Chunks';
10
- import Proxies from '../Proxies/Proxies';
11
- import RpcProxies from '../RpcProxies/RpcProxies';
12
- import Nodes from '../Nodes/Nodes';
1
+ import React, { useMemo } from 'react';
13
2
  import "./System.css";
3
+ import { SystemGeneralTab } from './SystemGeneralTab';
4
+ import UIFactory from '../../../UIFactory';
5
+ import Tabs from '../../../components/Tabs/Tabs';
6
+ import { UI_TAB_SIZE } from '../../../constants/global';
7
+ import { Redirect, Route, Switch } from 'react-router';
8
+ import { SystemTabs } from '../../../constants/system/tabs';
9
+ import { getSystemTabItems } from './helpers/getSystemTabItems';
10
+ import { getCluster } from '../../../store/selectors/global';
11
+ import { useSelector } from 'react-redux';
14
12
  import { jsx as _jsx } from "react/jsx-runtime";
15
13
  import { jsxs as _jsxs } from "react/jsx-runtime";
16
- var CONTAINER_PADDING = 50;
17
- var System = /*#__PURE__*/function (_Component) {
18
- _inherits(System, _Component);
19
- var _super = _createSuper(System);
20
- function System() {
21
- var _this;
22
- _classCallCheck(this, System);
23
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
24
- args[_key] = arguments[_key];
25
- }
26
- _this = _super.call.apply(_super, [this].concat(args));
27
- _this.container = /*#__PURE__*/React.createRef();
28
- return _this;
14
+ var Wrap = function Wrap(_ref) {
15
+ var children = _ref.children;
16
+ return /*#__PURE__*/_jsx("div", {
17
+ className: "elements-page__content",
18
+ children: /*#__PURE__*/_jsx("div", {
19
+ className: 'elements-main-section system',
20
+ children: children
21
+ })
22
+ });
23
+ };
24
+ export var System = function System(_ref2) {
25
+ var match = _ref2.match;
26
+ var cluster = useSelector(getCluster);
27
+ var systemMonitoringTab = UIFactory.getSystemMonitoringTab();
28
+ var items = useMemo(function () {
29
+ return getSystemTabItems({
30
+ url: match.url,
31
+ tabSettings: systemMonitoringTab,
32
+ cluster: cluster
33
+ });
34
+ }, [match.url, systemMonitoringTab, cluster]);
35
+ if (!systemMonitoringTab) {
36
+ return /*#__PURE__*/_jsx(Wrap, {
37
+ children: /*#__PURE__*/_jsx(SystemGeneralTab, {})
38
+ });
29
39
  }
30
- _createClass(System, [{
31
- key: "renderContent",
32
- value: function renderContent() {
33
- var containerWidth = this.container.current ? this.container.current.clientWidth - CONTAINER_PADDING * 2 : undefined;
34
- return /*#__PURE__*/_jsxs(Fragment, {
35
- children: [/*#__PURE__*/_jsx(Resources, {}), /*#__PURE__*/_jsx(Masters, {}), /*#__PURE__*/_jsx(SchedulersAndAgents, {}), /*#__PURE__*/_jsx(Chunks, {}), /*#__PURE__*/_jsx(Proxies, {}), /*#__PURE__*/_jsx(RpcProxies, {}), /*#__PURE__*/_jsx(Nodes, {
36
- containerWidth: containerWidth,
37
- collapsed: false
38
- })]
39
- });
40
- }
41
- }, {
42
- key: "render",
43
- value: function render() {
44
- return /*#__PURE__*/_jsx("div", {
45
- className: "elements-page__content",
46
- children: /*#__PURE__*/_jsx("div", {
47
- className: 'elements-main-section system',
48
- ref: this.container,
49
- children: this.renderContent()
50
- })
51
- });
52
- }
53
- }]);
54
- return System;
55
- }(Component);
56
- export { System as default };
40
+ return /*#__PURE__*/_jsxs(Wrap, {
41
+ children: [/*#__PURE__*/_jsx(Tabs, {
42
+ items: items,
43
+ active: SystemTabs.GENERAL,
44
+ size: UI_TAB_SIZE,
45
+ routed: true,
46
+ underline: true
47
+ }), /*#__PURE__*/_jsxs(Switch, {
48
+ children: [/*#__PURE__*/_jsx(Route, {
49
+ path: "".concat(match.path, "/").concat(SystemTabs.GENERAL),
50
+ component: SystemGeneralTab
51
+ }), 'component' in systemMonitoringTab && /*#__PURE__*/_jsx(Route, {
52
+ path: "".concat(match.path, "/").concat(SystemTabs.MONITORING),
53
+ component: systemMonitoringTab.component
54
+ }), /*#__PURE__*/_jsx(Redirect, {
55
+ to: "".concat(match.path, "/").concat(SystemTabs.GENERAL)
56
+ })]
57
+ })]
58
+ });
59
+ };
57
60
  // #sourceMappingURL=System.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","Component","Fragment","SchedulersAndAgents","Resources","Masters","Chunks","Proxies","RpcProxies","Nodes","jsx","_jsx","jsxs","_jsxs","CONTAINER_PADDING","System","_Component","_inherits","_super","_createSuper","_this","_classCallCheck","_len","arguments","length","args","Array","_key","call","apply","concat","container","createRef","_createClass","key","value","renderContent","containerWidth","current","clientWidth","undefined","children","collapsed","render","className","ref","default"],"sources":["System.js"],"sourcesContent":["import React, {Component, Fragment} from 'react';\n\nimport SchedulersAndAgents from '../SchedulersAndAgents/SchedulersAndAgents';\nimport Resources from '../Resources/Resources';\nimport Masters from '../Masters/Masters';\nimport Chunks from '../Chunks/Chunks';\nimport Proxies from '../Proxies/Proxies';\nimport RpcProxies from '../RpcProxies/RpcProxies';\nimport Nodes from '../Nodes/Nodes';\n\nimport './System.scss';\n\nconst CONTAINER_PADDING = 50;\n\nexport default class System extends Component {\n container = React.createRef();\n\n renderContent() {\n const containerWidth = this.container.current\n ? this.container.current.clientWidth - CONTAINER_PADDING * 2\n : undefined;\n\n return (\n <Fragment>\n <Resources />\n <Masters />\n <SchedulersAndAgents />\n <Chunks />\n <Proxies />\n <RpcProxies />\n <Nodes containerWidth={containerWidth} collapsed={false} />\n </Fragment>\n );\n }\n\n render() {\n return (\n <div className=\"elements-page__content\">\n <div className={'elements-main-section system'} ref={this.container}>\n {this.renderContent()}\n </div>\n </div>\n );\n }\n}\n"],"mappings":";;;;AAAA,OAAOA,KAAK,IAAGC,SAAS,EAAEC,QAAQ,QAAO,OAAO;AAEhD,OAAOC,mBAAmB,MAAM,4CAA4C;AAC5E,OAAOC,SAAS,MAAM,wBAAwB;AAC9C,OAAOC,OAAO,MAAM,oBAAoB;AACxC,OAAOC,MAAM,MAAM,kBAAkB;AACrC,OAAOC,OAAO,MAAM,oBAAoB;AACxC,OAAOC,UAAU,MAAM,0BAA0B;AACjD,OAAOC,KAAK,MAAM,gBAAgB;AAElC,OAAO,cAAe;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAAA,SAAAC,IAAA,IAAAC,KAAA;AAEvB,IAAMC,iBAAiB,GAAG,EAAE;AAAC,IAERC,MAAM,0BAAAC,UAAA;EAAAC,SAAA,CAAAF,MAAA,EAAAC,UAAA;EAAA,IAAAE,MAAA,GAAAC,YAAA,CAAAJ,MAAA;EAAA,SAAAA,OAAA;IAAA,IAAAK,KAAA;IAAAC,eAAA,OAAAN,MAAA;IAAA,SAAAO,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAC,IAAA,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA;MAAAF,IAAA,CAAAE,IAAA,IAAAJ,SAAA,CAAAI,IAAA;IAAA;IAAAP,KAAA,GAAAF,MAAA,CAAAU,IAAA,CAAAC,KAAA,CAAAX,MAAA,SAAAY,MAAA,CAAAL,IAAA;IAAAL,KAAA,CACvBW,SAAS,gBAAG/B,KAAK,CAACgC,SAAS,CAAC,CAAC;IAAA,OAAAZ,KAAA;EAAA;EAAAa,YAAA,CAAAlB,MAAA;IAAAmB,GAAA;IAAAC,KAAA,EAE7B,SAAAC,cAAA,EAAgB;MACZ,IAAMC,cAAc,GAAG,IAAI,CAACN,SAAS,CAACO,OAAO,GACvC,IAAI,CAACP,SAAS,CAACO,OAAO,CAACC,WAAW,GAAGzB,iBAAiB,GAAG,CAAC,GAC1D0B,SAAS;MAEf,oBACI3B,KAAA,CAACX,QAAQ;QAAAuC,QAAA,gBACL9B,IAAA,CAACP,SAAS,IAAE,CAAC,eACbO,IAAA,CAACN,OAAO,IAAE,CAAC,eACXM,IAAA,CAACR,mBAAmB,IAAE,CAAC,eACvBQ,IAAA,CAACL,MAAM,IAAE,CAAC,eACVK,IAAA,CAACJ,OAAO,IAAE,CAAC,eACXI,IAAA,CAACH,UAAU,IAAE,CAAC,eACdG,IAAA,CAACF,KAAK;UAAC4B,cAAc,EAAEA,cAAe;UAACK,SAAS,EAAE;QAAM,CAAE,CAAC;MAAA,CACrD,CAAC;IAEnB;EAAC;IAAAR,GAAA;IAAAC,KAAA,EAED,SAAAQ,OAAA,EAAS;MACL,oBACIhC,IAAA;QAAKiC,SAAS,EAAC,wBAAwB;QAAAH,QAAA,eACnC9B,IAAA;UAAKiC,SAAS,EAAE,8BAA+B;UAACC,GAAG,EAAE,IAAI,CAACd,SAAU;UAAAU,QAAA,EAC/D,IAAI,CAACL,aAAa,CAAC;QAAC,CACpB;MAAC,CACL,CAAC;IAEd;EAAC;EAAA,OAAArB,MAAA;AAAA,EA7B+Bd,SAAS;AAAA,SAAxBc,MAAM,IAAA+B,OAAA"}
1
+ {"version":3,"names":["React","useMemo","SystemGeneralTab","UIFactory","Tabs","UI_TAB_SIZE","Redirect","Route","Switch","SystemTabs","getSystemTabItems","getCluster","useSelector","jsx","_jsx","jsxs","_jsxs","Wrap","_ref","children","className","System","_ref2","match","cluster","systemMonitoringTab","getSystemMonitoringTab","items","url","tabSettings","active","GENERAL","size","routed","underline","path","concat","component","MONITORING","to"],"sources":["System.tsx"],"sourcesContent":["import React, {FC, PropsWithChildren, useMemo} from 'react';\nimport './System.scss';\nimport {SystemGeneralTab} from './SystemGeneralTab';\nimport UIFactory from '../../../UIFactory';\nimport Tabs from '../../../components/Tabs/Tabs';\nimport {UI_TAB_SIZE} from '../../../constants/global';\nimport {Redirect, Route, Switch} from 'react-router';\nimport {SystemTabs} from '../../../constants/system/tabs';\nimport {getSystemTabItems} from './helpers/getSystemTabItems';\nimport {getCluster} from '../../../store/selectors/global';\nimport {useSelector} from 'react-redux';\n\nconst Wrap: FC<PropsWithChildren> = ({children}) => {\n return (\n <div className=\"elements-page__content\">\n <div className={'elements-main-section system'}>{children}</div>\n </div>\n );\n};\n\ntype Props = {\n match: {\n path: string;\n url: string;\n };\n};\n\nexport const System: FC<Props> = ({match}) => {\n const cluster = useSelector(getCluster);\n const systemMonitoringTab = UIFactory.getSystemMonitoringTab();\n\n const items = useMemo(() => {\n return getSystemTabItems({url: match.url, tabSettings: systemMonitoringTab, cluster});\n }, [match.url, systemMonitoringTab, cluster]);\n\n if (!systemMonitoringTab) {\n return (\n <Wrap>\n <SystemGeneralTab />\n </Wrap>\n );\n }\n\n return (\n <Wrap>\n <Tabs items={items} active={SystemTabs.GENERAL} size={UI_TAB_SIZE} routed underline />\n <Switch>\n <Route path={`${match.path}/${SystemTabs.GENERAL}`} component={SystemGeneralTab} />\n {'component' in systemMonitoringTab && (\n <Route\n path={`${match.path}/${SystemTabs.MONITORING}`}\n component={systemMonitoringTab.component}\n />\n )}\n <Redirect to={`${match.path}/${SystemTabs.GENERAL}`} />\n </Switch>\n </Wrap>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,IAA0BC,OAAO,QAAO,OAAO;AAC3D,OAAO,cAAe;AACtB,SAAQC,gBAAgB,QAAO,oBAAoB;AACnD,OAAOC,SAAS,MAAM,oBAAoB;AAC1C,OAAOC,IAAI,MAAM,+BAA+B;AAChD,SAAQC,WAAW,QAAO,2BAA2B;AACrD,SAAQC,QAAQ,EAAEC,KAAK,EAAEC,MAAM,QAAO,cAAc;AACpD,SAAQC,UAAU,QAAO,gCAAgC;AACzD,SAAQC,iBAAiB,QAAO,6BAA6B;AAC7D,SAAQC,UAAU,QAAO,iCAAiC;AAC1D,SAAQC,WAAW,QAAO,aAAa;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAAA,SAAAC,IAAA,IAAAC,KAAA;AAExC,IAAMC,IAA2B,GAAG,SAA9BA,IAA2BA,CAAAC,IAAA,EAAmB;EAAA,IAAdC,QAAQ,GAAAD,IAAA,CAARC,QAAQ;EAC1C,oBACIL,IAAA;IAAKM,SAAS,EAAC,wBAAwB;IAAAD,QAAA,eACnCL,IAAA;MAAKM,SAAS,EAAE,8BAA+B;MAAAD,QAAA,EAAEA;IAAQ,CAAM;EAAC,CAC/D,CAAC;AAEd,CAAC;AASD,OAAO,IAAME,MAAiB,GAAG,SAApBA,MAAiBA,CAAAC,KAAA,EAAgB;EAAA,IAAXC,KAAK,GAAAD,KAAA,CAALC,KAAK;EACpC,IAAMC,OAAO,GAAGZ,WAAW,CAACD,UAAU,CAAC;EACvC,IAAMc,mBAAmB,GAAGtB,SAAS,CAACuB,sBAAsB,CAAC,CAAC;EAE9D,IAAMC,KAAK,GAAG1B,OAAO,CAAC,YAAM;IACxB,OAAOS,iBAAiB,CAAC;MAACkB,GAAG,EAAEL,KAAK,CAACK,GAAG;MAAEC,WAAW,EAAEJ,mBAAmB;MAAED,OAAO,EAAPA;IAAO,CAAC,CAAC;EACzF,CAAC,EAAE,CAACD,KAAK,CAACK,GAAG,EAAEH,mBAAmB,EAAED,OAAO,CAAC,CAAC;EAE7C,IAAI,CAACC,mBAAmB,EAAE;IACtB,oBACIX,IAAA,CAACG,IAAI;MAAAE,QAAA,eACDL,IAAA,CAACZ,gBAAgB,IAAE;IAAC,CAClB,CAAC;EAEf;EAEA,oBACIc,KAAA,CAACC,IAAI;IAAAE,QAAA,gBACDL,IAAA,CAACV,IAAI;MAACuB,KAAK,EAAEA,KAAM;MAACG,MAAM,EAAErB,UAAU,CAACsB,OAAQ;MAACC,IAAI,EAAE3B,WAAY;MAAC4B,MAAM;MAACC,SAAS;IAAA,CAAE,CAAC,eACtFlB,KAAA,CAACR,MAAM;MAAAW,QAAA,gBACHL,IAAA,CAACP,KAAK;QAAC4B,IAAI,KAAAC,MAAA,CAAKb,KAAK,CAACY,IAAI,OAAAC,MAAA,CAAI3B,UAAU,CAACsB,OAAO,CAAG;QAACM,SAAS,EAAEnC;MAAiB,CAAE,CAAC,EAClF,WAAW,IAAIuB,mBAAmB,iBAC/BX,IAAA,CAACP,KAAK;QACF4B,IAAI,KAAAC,MAAA,CAAKb,KAAK,CAACY,IAAI,OAAAC,MAAA,CAAI3B,UAAU,CAAC6B,UAAU,CAAG;QAC/CD,SAAS,EAAEZ,mBAAmB,CAACY;MAAU,CAC5C,CACJ,eACDvB,IAAA,CAACR,QAAQ;QAACiC,EAAE,KAAAH,MAAA,CAAKb,KAAK,CAACY,IAAI,OAAAC,MAAA,CAAI3B,UAAU,CAACsB,OAAO;MAAG,CAAE,CAAC;IAAA,CACnD,CAAC;EAAA,CACP,CAAC;AAEf,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { FC } from 'react';
2
+ export declare const SystemGeneralTab: FC;