@ytsaurus/ui 1.42.2 → 1.42.3

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 (26) hide show
  1. package/build/cjs/ui/components/Pagination/Pagination.js +1 -0
  2. package/build/cjs/ui/components/Pagination/Pagination.js.map +1 -1
  3. package/build/cjs/ui/containers/ClusterPage/ClusterPage.css +0 -3
  4. package/build/cjs/ui/containers/ClusterPage/ClusterPage.css.map +1 -1
  5. package/build/cjs/ui/containers/ClusterPage/ClusterPage.js +1 -2
  6. package/build/cjs/ui/containers/ClusterPage/ClusterPage.js.map +1 -1
  7. package/build/cjs/ui/pages/navigation/content/Table/DownloadManager/DownloadManager.js +2 -1
  8. package/build/cjs/ui/pages/navigation/content/Table/DownloadManager/DownloadManager.js.map +1 -1
  9. package/build/esm/ui/components/Pagination/Pagination.js +1 -0
  10. package/build/esm/ui/components/Pagination/Pagination.js.map +1 -1
  11. package/build/esm/ui/containers/ClusterPage/ClusterPage.css +0 -3
  12. package/build/esm/ui/containers/ClusterPage/ClusterPage.css.map +1 -1
  13. package/build/esm/ui/containers/ClusterPage/ClusterPage.js +1 -2
  14. package/build/esm/ui/containers/ClusterPage/ClusterPage.js.map +1 -1
  15. package/build/esm/ui/containers/ClusterPage/ClusterPage.scss +0 -4
  16. package/build/esm/ui/pages/navigation/content/Table/DownloadManager/DownloadManager.js +2 -1
  17. package/build/esm/ui/pages/navigation/content/Table/DownloadManager/DownloadManager.js.map +1 -1
  18. package/dist/public/build/assets-manifest.json +7 -7
  19. package/dist/public/build/css/{main.419150a6.css → main.6591efe0.css} +2 -2
  20. package/dist/public/build/css/{main.419150a6.css.map → main.6591efe0.css.map} +1 -1
  21. package/dist/public/build/js/main.98e3606c.js +3 -0
  22. package/dist/public/build/js/{main.62803f34.js.map → main.98e3606c.js.map} +1 -1
  23. package/dist/public/build/manifest.json +4 -4
  24. package/package.json +2 -2
  25. package/dist/public/build/js/main.62803f34.js +0 -3
  26. /package/dist/public/build/js/{main.62803f34.js.LICENSE.txt → main.98e3606c.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","unmountCluster","updateCluster","updateTitle","getClusterUiConfig","isQueryTrackerAllowed","getClusterConfig","NAMESPACES","SettingName","getClusterPagePaneSizes","getStartingPage","SupportedFeaturesUpdater","useRumMeasureStart","useRumMeasureStop","RumMeasureTypes","useClusterFromLocation","makeExtraPageRoutes","odinPageInfo","hasOdinPage","UIFactory","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","onResize","splitScreen","props","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","cluster","getSnapshotBeforeUpdate","prevProps","pageYOffset","current","scrollTop","componentDidUpdate","prevState","prevScroll","scrollBy","prevCluster","componentWillUnmount","path","page","_this$contentPaneRef$","currentWidth","Infinity","setState","renderError","clusterConfig","_ref","error","errorType","CONNECTION","id","AUTHENTICATION","message","GENERAL","isParamsLoading","_this$props","paramsCluster","renderContent","_this$props2","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$props3","clusters","footer","renderAppFooter","ClusterPageStopRumMeasure","Boolean","paneClassNames","direction","HORIZONTAL","onSplit","onUnSplit","minSize","ref","split","mapStateToProps","_state$global","global","login","maintenancePageEvent","loadState","paramsLoading","clustersMenu","LOADED","ERROR","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 {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 {getClusterPagePaneSizes, getStartingPage} 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';\nimport UIFactory from '../../UIFactory';\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 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);\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);\n }\n }\n\n componentWillUnmount() {\n this.props.updateTitle({path: '', page: ''});\n this.props.unmountCluster();\n }\n\n contentPaneRef = React.createRef();\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 const footer = UIFactory.renderAppFooter();\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 'with-footer': Boolean(footer),\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 {footer}\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 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 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","unmountCluster","updateCluster","updateTitle","getClusterUiConfig","isQueryTrackerAllowed","getClusterConfig","NAMESPACES","SettingName","getClusterPagePaneSizes","getStartingPage","SupportedFeaturesUpdater","useRumMeasureStart","useRumMeasureStop","RumMeasureTypes","useClusterFromLocation","makeExtraPageRoutes","odinPageInfo","hasOdinPage","UIFactory","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","onResize","splitScreen","props","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","cluster","getSnapshotBeforeUpdate","prevProps","pageYOffset","current","scrollTop","componentDidUpdate","prevState","prevScroll","scrollBy","prevCluster","componentWillUnmount","path","page","_this$contentPaneRef$","currentWidth","Infinity","setState","renderError","clusterConfig","_ref","error","errorType","CONNECTION","id","AUTHENTICATION","message","GENERAL","isParamsLoading","_this$props","paramsCluster","renderContent","_this$props2","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$props3","clusters","footer","renderAppFooter","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 {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 {getClusterPagePaneSizes, getStartingPage} 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';\nimport UIFactory from '../../UIFactory';\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 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);\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);\n }\n }\n\n componentWillUnmount() {\n this.props.updateTitle({path: '', page: ''});\n this.props.unmountCluster();\n }\n\n contentPaneRef = React.createRef();\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 const footer = UIFactory.renderAppFooter();\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 {footer}\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 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 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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"}
@@ -19,10 +19,6 @@
19
19
  }
20
20
  }
21
21
 
22
- &__panes-wrapper_with-footer {
23
- overflow: auto;
24
- }
25
-
26
22
  &__content-pane {
27
23
  width: 100%;
28
24
  max-width: 100vw;
@@ -294,7 +294,7 @@ export var DownloadManager = /*#__PURE__*/function (_React$Component) {
294
294
  var _this$state2 = this.state,
295
295
  startRow = _this$state2.startRow,
296
296
  numRows = _this$state2.numRows;
297
- return '[#' + startRow + ':#' + (String(startRow) + String(numRows)) + ']';
297
+ return '[#' + startRow + ':#' + (Number(startRow) + Number(numRows)) + ']';
298
298
  } else {
299
299
  return '';
300
300
  }
@@ -588,6 +588,7 @@ export var DownloadManager = /*#__PURE__*/function (_React$Component) {
588
588
  className: "elements-form__label",
589
589
  children: "Number of rows"
590
590
  }), /*#__PURE__*/_jsx(Filter, {
591
+ qa: "download-manager_number-of-rows",
591
592
  autofocus: false,
592
593
  value: String(numRows),
593
594
  invalid: isNaN(numRows) || numRows === '',
@@ -1 +1 @@
1
- {"version":3,"names":["React","connect","unipika","compose","cn","qs","axios","Checkbox","RadioButton","TextInput","ColumnSelector","Pagination","HelpLink","Filter","Button","Modal","Icon","Link","Tabs","Select","getRowsPerTablePage","getShowDecoded","getSchema","getPath","getTransaction","getCluster","getCurrentClusterConfig","withVisible","getAllColumns","getOffsetValue","getRowCount","getSrcColumns","getColumns","docsUrl","uiSettings","SeparatorInput","prepareSeparatorValue","UIFactory","makeDirectDownloadPath","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","block","messageBlock","EXCEL_BASE_URL","exportTableBaseUrl","checkExcelExporter","cluster","Promise","resolve","get","concat","then","DownloadManager","_React$Component","_inherits","_super","_createSuper","props","_this","_classCallCheck","call","changeFormat","format","setState","changeNumRows","numRows","changeStartRow","startRow","changeRowsMode","rowsMode","changeKeyColumn","keyColumn","changeYsonFormat","ysonFormat","changeValueColumn","valueColumn","changeColumnsMode","columnsMode","changeSubkeyColumn","subkeyColumn","changeValueSentinel","valueSentinel","changeSelectedColumns","selectedColumns","changeSchemafulDsvMissingMode","schemafulDsvMissingMode","toggleEncodeUtf","prevState","encodeUtf","toggleWithSubkey","withSubkey","toggleWithHeaders","withHeaders","setKeyValueSeparator","v","onSeparatorChange","setFieldSeparator","setRecordSeparator","renderConfirmButton","className","state","_ref","getExcelDownloadLink","getDownloadLink","url","error","size","view","title","target","href","disabled","Boolean","qa","children","showDialog","_this$props","handleShow","excelExporter","columns","visible","pageSize","offsetValue","allColumns","separators","keyValue","field","record","length","hasColumn","undefined","number_precision_mode","_createClass","key","value","getOutputFormat","_this$state","currentAttributes","outputFormat","$value","$attributes","prepareColumnsForColumnMode","errors","collectErrors","_ref2","push","inner_errors","message","_this$state2","String","columnNames","path","downloadColumns","downloadRows","getDownloadParams","transaction_id","_this$getOutputFormat","output_format","query","stringify","Object","assign","downloadPath","dump_error_into_response","_this$props2","proxy","externalProxy","base","_this$getDownloadPara","_this$getDownloadPara2","params","URLSearchParams","makeDocsUrl","arguments","docsUrls","isSchematicTable","dsv","name","caption","description","doc","show","schemaful_dsv","join","yamr","yson","json","excel","_map","_values","formats","_ref3","text","parseColumn","column","useQuotes","showDecoded","parsedColumn","decode","_this2","_this$state3","preparedColumns","_reduce","item","checked","prepareYamrColumns","_this3","_ref4","renderPaginator","_this4","rowCount","isStartRowEmpty","isNumRowsInvalid","isStartRowInvalid","Number","showInput","inputValue","onChange","row","prepareValue","first","handler","previous","Math","max","next","last","renderRows","_this5","_this$state4","onUpdate","options","content","autofocus","invalid","isNaN","num","renderColumns","_this6","_this$state5","srcColumns","isSortable","_ref5","items","srcItems","isHeadless","renderSchemafulDsv","_this7","_this$state6","placeholder","renderSeparatorEditors","_ref6","_ref6$showKeyValueSep","showKeyValueSeparator","_this$state$separator","separatorType","_objectSpread","_defineProperty","renderYamr","renderYamrColumns","_this8","_this$state7","vals","hideFilter","width","renderYson","_this9","renderJson","renderExcel","_this10","excelNumberPrecisionMode","renderContent","faqLink","cliLink","_this$formats$format","theme","active","layout","tabItems","onTabChange","render","_this$props3","loading","handleClose","onClick","awesome","onCancel","confirmText","renderCustomConfirm","parsedValue","prepareColumns","_filter","_ref7","_find","getDerivedStateFromProps","nextProps","Component","mapStateToProps","navigation","table","schema","_getCurrentClusterCon","connector"],"sources":["DownloadManager.tsx"],"sourcesContent":["import React from 'react';\nimport {ConnectedProps, connect} from 'react-redux';\nimport unipika from '../../../../../common/thor/unipika';\nimport {compose} from 'redux';\nimport cn from 'bem-cn-lite';\nimport _ from 'lodash';\nimport qs from 'qs';\nimport axios from 'axios';\n\nimport {Checkbox, RadioButton, TextInput} from '@gravity-ui/uikit';\n\nimport ColumnSelector from '../../../../../components/ColumnSelector/ColumnSelector';\nimport Pagination from '../../../../../components/Pagination/Pagination';\nimport HelpLink from '../../../../../components/HelpLink/HelpLink';\nimport Filter from '../../../../../components/Filter/Filter';\nimport Button from '../../../../../components/Button/Button';\nimport Modal from '../../../../../components/Modal/Modal';\nimport Icon from '../../../../../components/Icon/Icon';\nimport Link from '../../../../../components/Link/Link';\nimport Tabs from '../../../../../components/Tabs/Tabs';\nimport Select from '../../../../../components/Select/Select';\n\nimport {getRowsPerTablePage, getShowDecoded} from '../../../../../store/selectors/settings';\nimport {getSchema} from '../../../../../store/selectors/navigation/tabs/schema';\nimport {getPath, getTransaction} from '../../../../../store/selectors/navigation';\nimport {getCluster, getCurrentClusterConfig} from '../../../../../store/selectors/global';\nimport withVisible, {WithVisibleProps} from '../../../../../hocs/withVisible';\nimport {\n getAllColumns,\n getOffsetValue,\n getRowCount,\n getSrcColumns,\n} from '../../../../../store/selectors/navigation/content/table';\nimport {getColumns} from '../../../../../store/selectors/navigation/content/table-ts';\n\nimport './DownloadManager.scss';\nimport {docsUrl} from '../../../../../config';\nimport {uiSettings} from '../../../../../config/ui-settings';\nimport SeparatorInput, {prepareSeparatorValue} from './SeparatorInput';\nimport UIFactory from '../../../../../UIFactory';\nimport {makeDirectDownloadPath} from '../../../../../utils/navigation';\nimport {RootState} from '../../../../../store/reducers';\nimport {FIX_MY_TYPE} from '../../../../../types';\n\nconst block = cn('table-download-manager');\nconst messageBlock = cn('elements-message');\n\nconst EXCEL_BASE_URL = uiSettings?.exportTableBaseUrl;\n\nfunction checkExcelExporter(cluster: string) {\n if (!EXCEL_BASE_URL) {\n return Promise.resolve(false);\n }\n\n return axios\n .get(`${EXCEL_BASE_URL}/${cluster}/api/ready`)\n .then(() => true)\n .catch(() => false);\n}\n\ntype ReduxProps = Omit<ConnectedProps<typeof connector>, 'dispatch'>;\ntype Props = ReduxProps & WithVisibleProps & {className?: string};\n\ntype State = {\n format: 'dsv' | 'schemaful_dsv' | 'yamr' | 'yson' | 'json' | 'excel';\n visible?: boolean;\n excelExporter: boolean;\n rowsMode: 'range' | 'all';\n startRow: string | number;\n numRows: string | number;\n valueSentinel: string;\n ysonFormat: 'text' | 'pretty' | 'binary';\n columnsMode: 'all' | 'custom';\n\n schemafulDsvMissingMode: 'fail' | 'skip_row' | 'print_sentinel';\n separators: {keyValue?: string; record?: string; field?: string};\n\n encodeUtf: boolean;\n withHeaders: boolean;\n\n withSubkey: boolean;\n keyColumn?: string;\n valueColumn?: string;\n subkeyColumn?: string;\n\n selectedColumns?: Props['columns'];\n\n number_precision_mode: 'string' | 'error' | 'lose';\n};\n\nexport class DownloadManager extends React.Component<Props, State> {\n static prepareValue(value: string): number | string {\n const parsedValue = Number(value || undefined); // we need `|| undefined` cause Number('') === 0\n return isNaN(parsedValue) ? value : parsedValue;\n }\n\n static prepareColumns(columns: Array<{checked?: boolean}>) {\n return _.filter(columns, ({checked}) => checked);\n }\n\n static hasColumn(columns: Array<{name?: string}>, name: string) {\n return Boolean(_.find(columns, (column) => column.name === name));\n }\n\n static getDerivedStateFromProps(nextProps: Props, prevState: State) {\n if (nextProps.visible !== prevState.visible) {\n const {columns} = nextProps;\n return {\n visible: nextProps.visible,\n numRows: nextProps.pageSize,\n startRow: nextProps.offsetValue,\n selectedColumns: nextProps.allColumns,\n\n withSubkey: nextProps.columns.length >= 3,\n keyColumn: DownloadManager.hasColumn(columns, 'key') ? 'key' : undefined,\n valueColumn: DownloadManager.hasColumn(columns, 'value') ? 'value' : undefined,\n subkeyColumn: DownloadManager.hasColumn(columns, 'subkey') ? 'subkey' : undefined,\n };\n }\n\n return null;\n }\n\n constructor(props: Props) {\n super(props);\n\n const {columns, visible, pageSize, offsetValue, allColumns} = props;\n\n this.state = {\n format: 'dsv',\n visible,\n rowsMode: 'all',\n valueSentinel: '',\n ysonFormat: 'text',\n columnsMode: 'all',\n schemafulDsvMissingMode: 'fail', //print_sentinel\n\n separators: {\n keyValue: '=',\n field: '\\\\t',\n record: '\\\\n',\n },\n\n encodeUtf: false,\n withHeaders: true,\n\n withSubkey: columns.length >= 3,\n keyColumn: DownloadManager.hasColumn(columns, 'key') ? 'key' : undefined,\n valueColumn: DownloadManager.hasColumn(columns, 'value') ? 'value' : undefined,\n subkeyColumn: DownloadManager.hasColumn(columns, 'subkey') ? 'subkey' : undefined,\n\n numRows: pageSize,\n startRow: offsetValue,\n selectedColumns: allColumns,\n\n excelExporter: false,\n number_precision_mode: 'string',\n };\n }\n\n getOutputFormat() {\n const {\n format,\n encodeUtf,\n ysonFormat,\n withSubkey,\n keyColumn,\n valueColumn,\n subkeyColumn,\n schemafulDsvMissingMode,\n valueSentinel,\n withHeaders,\n separators,\n } = this.state;\n\n const currentAttributes: Record<string, any> = {};\n const outputFormat = {\n $value: format,\n $attributes: currentAttributes,\n };\n\n if (format === 'json') {\n currentAttributes['encode_utf8'] = encodeUtf;\n }\n\n if (format === 'yson') {\n currentAttributes['format'] = ysonFormat;\n }\n\n if (format === 'yamr') {\n currentAttributes['lenval'] = false;\n currentAttributes['has_subkey'] = withSubkey;\n\n if (keyColumn) {\n currentAttributes['key'] = keyColumn;\n }\n\n if (valueColumn) {\n currentAttributes['value'] = valueColumn;\n }\n\n if (subkeyColumn && subkeyColumn) {\n currentAttributes['subkey'] = subkeyColumn;\n }\n }\n\n if (format === 'schemaful_dsv') {\n currentAttributes['missing_value_mode'] = schemafulDsvMissingMode;\n\n if (schemafulDsvMissingMode === 'print_sentinel') {\n currentAttributes['missing_value_sentinel'] = valueSentinel;\n }\n\n currentAttributes['enable_column_names_header'] = withHeaders;\n\n currentAttributes['columns'] = this.prepareColumnsForColumnMode(false);\n }\n\n const errors: Array<string> = [];\n\n function collectErrors<T>({value, error}: {value: T; error?: string}) {\n if (error) {\n errors.push(error);\n }\n return value;\n }\n\n if (format === 'schemaful_dsv' || format === 'dsv') {\n currentAttributes['field_separator'] = collectErrors(\n prepareSeparatorValue(separators.field),\n );\n currentAttributes['record_separator'] = collectErrors(\n prepareSeparatorValue(separators.record),\n );\n }\n\n if (format === 'dsv') {\n currentAttributes['key_value_separator'] = collectErrors(\n prepareSeparatorValue(separators.keyValue),\n );\n }\n\n return {\n value: outputFormat,\n error:\n errors.length === 0\n ? undefined\n : {inner_errors: errors, message: 'There are some values with errors'},\n };\n }\n\n get downloadRows() {\n const {rowsMode} = this.state;\n\n if (rowsMode === 'range') {\n const {startRow, numRows} = this.state;\n\n return '[#' + startRow + ':#' + (String(startRow) + String(numRows)) + ']';\n } else {\n return '';\n }\n }\n\n get downloadColumns() {\n const {columnsMode} = this.state;\n\n if (columnsMode !== 'all') {\n const columnNames = this.prepareColumnsForColumnMode();\n return '{' + String(columnNames) + '}';\n } else {\n return '';\n }\n }\n\n get downloadPath() {\n const {path} = this.props;\n\n return path + this.downloadColumns + this.downloadRows;\n }\n\n getDownloadParams() {\n const {transaction_id} = this.props;\n const {value: output_format, error} = this.getOutputFormat();\n const query = qs.stringify(\n Object.assign(\n {\n path: this.downloadPath,\n output_format,\n dump_error_into_response: true,\n },\n transaction_id ? {transaction_id} : {},\n ),\n );\n return {query, error};\n }\n\n getDownloadLink() {\n const {cluster, proxy, externalProxy} = this.props;\n const base = makeDirectDownloadPath('read_table', {cluster, proxy, externalProxy});\n const {query, error} = this.getDownloadParams();\n return {url: base + '?' + query, error};\n }\n\n getExcelDownloadLink() {\n const {cluster} = this.props;\n const base = `${EXCEL_BASE_URL}/${cluster}/api/export`;\n\n const {query, error} = this.getDownloadParams();\n const {number_precision_mode} = this.state;\n const params = new URLSearchParams({number_precision_mode});\n\n return {url: `${base}?${params}&${query}`, error};\n }\n\n makeDocsUrl(path = '') {\n return docsUrl(UIFactory.docsUrls['storage:formats'] + path);\n }\n\n get formats() {\n const {isSchematicTable} = this.props;\n const {excelExporter} = this.state;\n\n return {\n dsv: {\n name: 'dsv' as const,\n caption: 'TSKV',\n description:\n 'Tab-separated key-value format. ' +\n 'Please note that this format erases type information due to string conversion.',\n doc: this.makeDocsUrl('#dsv'),\n show: true,\n },\n schemaful_dsv: {\n name: 'schemaful_dsv' as const,\n caption: 'Schemaful DSV',\n description: [\n 'Tab-separated format with fixed, ordered set of columns.',\n 'Please note that this format erases type information due to string conversion.',\n ].join(' '),\n doc: this.makeDocsUrl('#schemaful_dsv'),\n show: true,\n },\n yamr: {\n name: 'yamr' as const,\n caption: 'YAMR',\n description:\n 'Legacy tab-separated format with fixed set of columns used in YAMR. ' +\n 'Please note that this format can only contain 2 or 3 columns, ' +\n 'columns named \"key\", \"subkey\" and \"value\" respectively are downloaded by default.',\n doc: this.makeDocsUrl('#yamr'),\n show: true,\n },\n yson: {\n name: 'yson' as const,\n caption: 'YSON',\n description: 'Yet-another Serialized Object Notation.',\n doc: this.makeDocsUrl('#yson'),\n show: true,\n },\n json: {\n name: 'json' as const,\n caption: 'JSON Lines',\n description:\n 'JSON Lines text format, also called newline-delimited JSON (JavaScript Serialized Object Notation).',\n doc: this.makeDocsUrl('#json'),\n show: true,\n },\n excel: {\n name: 'excel' as const,\n caption: 'Excel',\n description: '',\n doc: docsUrl(UIFactory.docsUrls['storage:excel#skachivanie']),\n show: excelExporter && isSchematicTable,\n },\n };\n }\n\n get tabItems() {\n return _.map(_.values(this.formats), ({name, caption, show}) => ({\n value: name,\n text: caption,\n show,\n }));\n }\n\n changeFormat = (format: State['format']) => this.setState({format});\n changeNumRows = (numRows: State['numRows']) => this.setState({numRows});\n changeStartRow = (startRow: State['startRow']) => this.setState({startRow});\n changeRowsMode = (rowsMode: State['rowsMode']) => this.setState({rowsMode});\n changeKeyColumn = (keyColumn: State['keyColumn']) => this.setState({keyColumn});\n changeYsonFormat = (ysonFormat: State['ysonFormat']) => this.setState({ysonFormat});\n changeValueColumn = (valueColumn: State['valueColumn']) => this.setState({valueColumn});\n changeColumnsMode = (columnsMode: State['columnsMode']) => this.setState({columnsMode});\n changeSubkeyColumn = (subkeyColumn: State['subkeyColumn']) => this.setState({subkeyColumn});\n changeValueSentinel = (valueSentinel: State['valueSentinel']) => this.setState({valueSentinel});\n changeSelectedColumns = (selectedColumns: State['selectedColumns']) =>\n this.setState({selectedColumns});\n changeSchemafulDsvMissingMode = (schemafulDsvMissingMode: State['schemafulDsvMissingMode']) =>\n this.setState({schemafulDsvMissingMode});\n\n toggleEncodeUtf = () => this.setState((prevState) => ({encodeUtf: !prevState.encodeUtf}));\n toggleWithSubkey = () => this.setState((prevState) => ({withSubkey: !prevState.withSubkey}));\n toggleWithHeaders = () => this.setState((prevState) => ({withHeaders: !prevState.withHeaders}));\n\n parseColumn(column: string, useQuotes: boolean) {\n const {showDecoded} = this.props;\n const parsedColumn = showDecoded ? unipika.decode(column) : column;\n\n // When forming the url address for reading a table we pass column names as\n // `read_table?path/to/file{\"column1\",\"column2\"}` where they should be wrapped in quotes\n\n // In case of schemaful_dsv format column names are passed as part of request params as well. It looks like:\n // read_table?path/to/file{\"Группа+клиентов\",\"Ранг+оффера\"}&output_format[$attributes][columns][]=Группа+клиентов&output_format[$attributes][columns][]=Ранг+оффера\n\n // [columns][]=Группа+клиентов -- valid,\n // [columns][]=\"Группа+клиентов\" -- invalid\n\n if (useQuotes) {\n return `\"${parsedColumn}\"`;\n }\n\n return parsedColumn;\n }\n\n prepareColumnsForColumnMode(useQuotes = true) {\n const {columnsMode, selectedColumns} = this.state;\n\n if (columnsMode === 'all') {\n const preparedColumns = _.map(selectedColumns, 'name');\n\n return _.map(preparedColumns, (column) => this.parseColumn(column, useQuotes));\n } else if (columnsMode === 'custom') {\n const preparedColumns = _.reduce(\n selectedColumns,\n (columns, item) => {\n if (item.checked) {\n columns.push(item.name);\n }\n\n return columns;\n },\n [] as Array<string>,\n );\n\n return _.map(preparedColumns, (column) => this.parseColumn(column, useQuotes));\n }\n return undefined;\n }\n\n prepareYamrColumns() {\n const {columns} = this.props;\n\n return _.map(columns, ({name}) => {\n const column = this.parseColumn(name, false);\n return {\n value: column,\n title: column,\n name: column,\n };\n });\n }\n\n renderPaginator() {\n const {rowCount} = this.props;\n\n const isStartRowEmpty = this.state.startRow === 0;\n const isNumRowsInvalid = typeof this.state.numRows !== 'number';\n const isStartRowInvalid = typeof this.state.startRow !== 'number';\n\n const startRow = Number(this.state.startRow);\n const numRows = Number(this.state.numRows);\n\n return (\n <Pagination\n showInput\n inputValue={String(startRow)}\n onChange={(value: string) => {\n const row = DownloadManager.prepareValue(value);\n this.changeStartRow(row);\n }}\n first={{\n handler: () => {\n this.changeStartRow(0);\n },\n disabled: isStartRowEmpty || isStartRowInvalid || isNumRowsInvalid,\n }}\n previous={{\n handler: () => {\n const row = Math.max((startRow as number) - (numRows as number), 0);\n this.changeStartRow(row);\n },\n disabled: isStartRowEmpty || isStartRowInvalid || isNumRowsInvalid,\n }}\n next={{\n handler: () => {\n const row =\n startRow + numRows < rowCount - numRows\n ? startRow + numRows\n : Math.max(rowCount - numRows, 0);\n this.changeStartRow(row);\n },\n disabled:\n startRow + numRows >= rowCount || isStartRowInvalid || isNumRowsInvalid,\n }}\n last={{\n handler: () => {\n const row = Math.max(rowCount - numRows, 0);\n this.changeStartRow(row);\n },\n disabled:\n startRow + numRows >= rowCount || isStartRowInvalid || isNumRowsInvalid,\n }}\n />\n );\n }\n\n renderRows() {\n const {rowsMode, numRows} = this.state;\n\n return (\n <React.Fragment>\n <div className=\"elements-form__label\">Rows</div>\n <RadioButton\n size=\"m\"\n value={rowsMode}\n name=\"download-manager-row-mode\"\n onUpdate={(value) => this.changeRowsMode(value)}\n options={[\n {value: 'all', content: 'All'},\n {value: 'range', content: 'Range'},\n ]}\n />\n\n {rowsMode === 'range' && (\n <div className={block('rows')}>\n <div className=\"elements-form__field\">\n <div className=\"elements-form__label\">Start row</div>\n {this.renderPaginator()}\n </div>\n\n <div className=\"elements-form__field\">\n <div className=\"elements-form__label\">Number of rows</div>\n <Filter\n autofocus={false}\n value={String(numRows)}\n invalid={isNaN(numRows as number) || numRows === ''}\n onChange={(value) => {\n const num = DownloadManager.prepareValue(value);\n this.changeNumRows(num);\n }}\n />\n </div>\n </div>\n )}\n </React.Fragment>\n );\n }\n\n renderColumns() {\n const {columnsMode, format, selectedColumns} = this.state;\n const {srcColumns} = this.props;\n\n return (\n <React.Fragment>\n <div className=\"elements-form__label\">Columns</div>\n <RadioButton\n size=\"m\"\n value={columnsMode}\n name=\"download-manager-columns-mode\"\n onUpdate={(value) => this.changeColumnsMode(value)}\n options={[\n {value: 'all', content: 'All'},\n {value: 'custom', content: 'Custom'},\n ]}\n />\n\n {columnsMode === 'custom' && (\n <ColumnSelector\n isSortable={format === 'schemaful_dsv'}\n className={block('columns-selector')}\n onChange={({items}: FIX_MY_TYPE) =>\n this.changeSelectedColumns(items as FIX_MY_TYPE)\n }\n items={selectedColumns}\n srcItems={srcColumns}\n isHeadless\n />\n )}\n </React.Fragment>\n );\n }\n\n renderSchemafulDsv() {\n const {withHeaders, schemafulDsvMissingMode, valueSentinel} = this.state;\n\n return (\n <div className={block('schemaful-dsv')}>\n <div className=\"elements-form__field\">\n <div className=\"elements-form__label\">Missing value mode</div>\n <RadioButton\n size=\"m\"\n value={schemafulDsvMissingMode}\n name=\"download-manager-schemaful-dsv-mode\"\n onUpdate={(value) => this.changeSchemafulDsvMissingMode(value)}\n options={[\n {value: 'fail', content: 'Fail'},\n {value: 'skip_row', content: 'Skip row'},\n {value: 'print_sentinel', content: 'Print sentinel'},\n ]}\n />\n </div>\n\n {schemafulDsvMissingMode === 'print_sentinel' && (\n <div className=\"elements-form__field\">\n <div className=\"elements-form__label\">Missing value sentinel</div>\n <TextInput\n size=\"m\"\n value={valueSentinel}\n onUpdate={this.changeValueSentinel}\n placeholder=\"Please note that sentinels that coerce to number or boolean are not supported\"\n />\n </div>\n )}\n\n <Checkbox size=\"l\" checked={withHeaders} onChange={this.toggleWithHeaders}>\n Prepend with column names header\n </Checkbox>\n {this.renderSeparatorEditors()}\n </div>\n );\n }\n\n renderSeparatorEditors({showKeyValueSeparator = false} = {}) {\n const {keyValue, field, record} = this.state.separators;\n return (\n <div className={block('dsv-separators')}>\n {showKeyValueSeparator && (\n <div className={block('dsv-separators-item')}>\n <div className={'elements-form__label'}>Key-value separator</div>\n <SeparatorInput value={keyValue} onChange={this.setKeyValueSeparator} />\n </div>\n )}\n <div className={block('dsv-separators-item')}>\n <div className={'elements-form__label'}>Field separator</div>\n <SeparatorInput value={field} onChange={this.setFieldSeparator} />\n </div>\n <div className={block('dsv-separators-item')}>\n <div className={'elements-form__label'}>Record separator</div>\n <SeparatorInput value={record} onChange={this.setRecordSeparator} />\n </div>\n </div>\n );\n }\n\n setKeyValueSeparator = (v?: string) => {\n this.onSeparatorChange('keyValue', v);\n };\n\n setFieldSeparator = (v?: string) => {\n this.onSeparatorChange('field', v);\n };\n\n setRecordSeparator = (v?: string) => {\n this.onSeparatorChange('record', v);\n };\n\n onSeparatorChange(separatorType: keyof State['separators'], value?: string) {\n this.setState({\n separators: {\n ...this.state.separators,\n [separatorType]: value,\n },\n });\n }\n\n renderYamr() {\n const {withSubkey} = this.state;\n const {columns} = this.props;\n\n return (\n <div className={block('with-subkey')}>\n <Checkbox\n size=\"l\"\n checked={withSubkey}\n disabled={columns.length < 3}\n onChange={this.toggleWithSubkey}\n >\n With subkey\n </Checkbox>\n </div>\n );\n }\n\n renderYamrColumns() {\n const {withSubkey, keyColumn, subkeyColumn, valueColumn} = this.state;\n\n return (\n <div className={block('yamr-columns')}>\n <div className=\"elements-form__field\">\n <div className=\"elements-form__label\">Key</div>\n <Select\n value={keyColumn ? [keyColumn] : undefined}\n onUpdate={(vals) => this.changeKeyColumn(vals[0])}\n items={this.prepareYamrColumns()}\n placeholder=\"Choose key column...\"\n hideFilter\n width=\"max\"\n />\n </div>\n\n {withSubkey && (\n <div className=\"elements-form__field\">\n <div className=\"elements-form__label\">Subkey</div>\n <Select\n hideFilter\n value={subkeyColumn ? [subkeyColumn] : undefined}\n items={this.prepareYamrColumns()}\n onUpdate={(vals) => this.changeSubkeyColumn(vals[0])}\n placeholder=\"Choose subkey column...\"\n width=\"max\"\n />\n </div>\n )}\n\n <div className=\"elements-form__field\">\n <div className=\"elements-form__label\">Value</div>\n <Select\n hideFilter\n value={valueColumn ? [valueColumn] : undefined}\n onUpdate={(vals) => this.changeValueColumn(vals[0])}\n items={this.prepareYamrColumns()}\n placeholder=\"Choose value column...\"\n width=\"max\"\n />\n </div>\n </div>\n );\n }\n\n renderYson() {\n const {ysonFormat} = this.state;\n\n return (\n <div className={block('yson', 'elements-form__field')}>\n <div className=\"elements-form__label\">Format</div>\n <RadioButton\n size=\"m\"\n value={ysonFormat}\n name=\"download-manager-yson-format\"\n onUpdate={(value) => this.changeYsonFormat(value)}\n options={[\n {value: 'text', content: 'Text'},\n {value: 'pretty', content: 'Pretty'},\n {value: 'binary', content: 'Binary'},\n ]}\n />\n </div>\n );\n }\n\n renderJson() {\n const {encodeUtf} = this.state;\n\n return (\n <div className={block('json')}>\n <Checkbox size=\"l\" checked={encodeUtf} onChange={this.toggleEncodeUtf}>\n Encode as UTF8\n </Checkbox>\n </div>\n );\n }\n\n renderExcel() {\n const {number_precision_mode: excelNumberPrecisionMode} = this.state;\n return (\n <React.Fragment>\n <div className=\"elements-form__label\">Number precision mode</div>\n <RadioButton\n size=\"m\"\n value={excelNumberPrecisionMode}\n onUpdate={(v) => this.setState({number_precision_mode: v})}\n options={[\n {value: 'string' as const, content: 'String'},\n {value: 'error' as const, content: 'Error'},\n {value: 'lose' as const, content: 'Lose'},\n ]}\n />\n </React.Fragment>\n );\n }\n\n renderContent() {\n const {format} = this.state;\n const faqLink = (\n <Link url={UIFactory.docsUrls['faq:web_interface_table_download']}>FAQ</Link>\n );\n const cliLink = <Link url={UIFactory.docsUrls['api:cli']}>CLI</Link>;\n\n const {description, doc} = this.formats[format];\n\n return (\n <div className={block('content')}>\n <div className={messageBlock({theme: 'warning'})}>\n Please note that download error if any is appended at the end of the file and is\n marked with special delimiters.{' '}\n {docsUrl(<>See our {faqLink} for more details.</>)}\n </div>\n <div className={messageBlock({theme: 'warning'})}>\n Please note that this is not a production-ready tool. For production usecases we\n highly recommend using yt read command from our {docsUrl(cliLink, 'CLI')}{' '}\n instead as it provides advanced features like error detection, download retries,\n and more.\n </div>\n\n <div className={block('manager')}>\n <div className={block('format')}>\n <Tabs\n size=\"l\"\n active={format}\n layout=\"vertical\"\n items={this.tabItems}\n className={block('tabs')}\n onTabChange={this.changeFormat}\n />\n\n <div className={block('help')}>\n <p className={block('format-description')}>{description}</p>\n {doc && <HelpLink url={doc} />}\n </div>\n </div>\n\n <div className={block('settings', 'pretty-scroll')}>\n <div className={block('shared-settings')}>\n {this.renderRows()}\n {format !== 'yamr' && this.renderColumns()}\n {format === 'yamr' && this.renderYamr()}\n </div>\n\n <div className={block('type-settings')}>\n {format === 'dsv' &&\n this.renderSeparatorEditors({showKeyValueSeparator: true})}\n {format === 'schemaful_dsv' && this.renderSchemafulDsv()}\n {format === 'yamr' && this.renderYamrColumns()}\n {format === 'json' && this.renderJson()}\n {format === 'yson' && this.renderYson()}\n {format === 'excel' && this.renderExcel()}\n </div>\n </div>\n </div>\n </div>\n );\n }\n\n renderConfirmButton = (className: string) => {\n const {format} = this.state;\n\n const {url, error} =\n format === 'excel' ? this.getExcelDownloadLink() : this.getDownloadLink();\n\n return (\n <Button\n size=\"m\"\n view=\"action\"\n className={className}\n title=\"Download\"\n target=\"_blank\"\n href={url}\n disabled={Boolean(error)}\n qa=\"download-static-table\"\n >\n Download\n </Button>\n );\n };\n\n showDialog = () => {\n const {handleShow, cluster} = this.props;\n handleShow();\n checkExcelExporter(cluster).then((excelExporter) => {\n this.setState({excelExporter});\n });\n };\n\n render() {\n const {loading, className, visible, handleClose} = this.props;\n\n return (\n <div className={block(null, className)}>\n <Button\n size=\"m\"\n title=\"download\"\n disabled={loading}\n onClick={this.showDialog}\n qa={'show-download-static-table'}\n >\n <Icon awesome=\"download\" />\n &nbsp; Download\n </Button>\n\n {visible && (\n <Modal\n size=\"l\"\n title=\"Download\"\n visible={visible}\n onCancel={handleClose}\n confirmText=\"Download\"\n content={this.renderContent()}\n renderCustomConfirm={this.renderConfirmButton}\n />\n )}\n </div>\n );\n }\n}\n\nconst mapStateToProps = (state: RootState) => {\n const {loading}: {loading: boolean} = state.navigation.content.table;\n\n const pageSize: number = getRowsPerTablePage(state);\n const showDecoded: boolean = getShowDecoded(state);\n const offsetValue = getOffsetValue(state);\n const allColumns: Array<{name: string; checked: boolean}> = getAllColumns(state);\n const srcColumns = getSrcColumns(state);\n const rowCount = getRowCount(state);\n const cluster = getCluster(state);\n const columns: typeof allColumns = getColumns(state);\n const schema = getSchema(state);\n const path = getPath(state);\n const {proxy, externalProxy} = getCurrentClusterConfig(state);\n const transaction_id = getTransaction(state);\n\n const isSchematicTable = schema.length > 0;\n\n return {\n loading,\n path,\n cluster,\n offsetValue,\n rowCount,\n pageSize,\n allColumns,\n srcColumns,\n columns,\n showDecoded,\n isSchematicTable,\n proxy,\n externalProxy,\n transaction_id,\n };\n};\nconst connector = connect(mapStateToProps);\nexport default compose(connector, withVisible)(DownloadManager);\n"],"mappings":"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"}
1
+ {"version":3,"names":["React","connect","unipika","compose","cn","qs","axios","Checkbox","RadioButton","TextInput","ColumnSelector","Pagination","HelpLink","Filter","Button","Modal","Icon","Link","Tabs","Select","getRowsPerTablePage","getShowDecoded","getSchema","getPath","getTransaction","getCluster","getCurrentClusterConfig","withVisible","getAllColumns","getOffsetValue","getRowCount","getSrcColumns","getColumns","docsUrl","uiSettings","SeparatorInput","prepareSeparatorValue","UIFactory","makeDirectDownloadPath","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","block","messageBlock","EXCEL_BASE_URL","exportTableBaseUrl","checkExcelExporter","cluster","Promise","resolve","get","concat","then","DownloadManager","_React$Component","_inherits","_super","_createSuper","props","_this","_classCallCheck","call","changeFormat","format","setState","changeNumRows","numRows","changeStartRow","startRow","changeRowsMode","rowsMode","changeKeyColumn","keyColumn","changeYsonFormat","ysonFormat","changeValueColumn","valueColumn","changeColumnsMode","columnsMode","changeSubkeyColumn","subkeyColumn","changeValueSentinel","valueSentinel","changeSelectedColumns","selectedColumns","changeSchemafulDsvMissingMode","schemafulDsvMissingMode","toggleEncodeUtf","prevState","encodeUtf","toggleWithSubkey","withSubkey","toggleWithHeaders","withHeaders","setKeyValueSeparator","v","onSeparatorChange","setFieldSeparator","setRecordSeparator","renderConfirmButton","className","state","_ref","getExcelDownloadLink","getDownloadLink","url","error","size","view","title","target","href","disabled","Boolean","qa","children","showDialog","_this$props","handleShow","excelExporter","columns","visible","pageSize","offsetValue","allColumns","separators","keyValue","field","record","length","hasColumn","undefined","number_precision_mode","_createClass","key","value","getOutputFormat","_this$state","currentAttributes","outputFormat","$value","$attributes","prepareColumnsForColumnMode","errors","collectErrors","_ref2","push","inner_errors","message","_this$state2","Number","columnNames","String","path","downloadColumns","downloadRows","getDownloadParams","transaction_id","_this$getOutputFormat","output_format","query","stringify","Object","assign","downloadPath","dump_error_into_response","_this$props2","proxy","externalProxy","base","_this$getDownloadPara","_this$getDownloadPara2","params","URLSearchParams","makeDocsUrl","arguments","docsUrls","isSchematicTable","dsv","name","caption","description","doc","show","schemaful_dsv","join","yamr","yson","json","excel","_map","_values","formats","_ref3","text","parseColumn","column","useQuotes","showDecoded","parsedColumn","decode","_this2","_this$state3","preparedColumns","_reduce","item","checked","prepareYamrColumns","_this3","_ref4","renderPaginator","_this4","rowCount","isStartRowEmpty","isNumRowsInvalid","isStartRowInvalid","showInput","inputValue","onChange","row","prepareValue","first","handler","previous","Math","max","next","last","renderRows","_this5","_this$state4","onUpdate","options","content","autofocus","invalid","isNaN","num","renderColumns","_this6","_this$state5","srcColumns","isSortable","_ref5","items","srcItems","isHeadless","renderSchemafulDsv","_this7","_this$state6","placeholder","renderSeparatorEditors","_ref6","_ref6$showKeyValueSep","showKeyValueSeparator","_this$state$separator","separatorType","_objectSpread","_defineProperty","renderYamr","renderYamrColumns","_this8","_this$state7","vals","hideFilter","width","renderYson","_this9","renderJson","renderExcel","_this10","excelNumberPrecisionMode","renderContent","faqLink","cliLink","_this$formats$format","theme","active","layout","tabItems","onTabChange","render","_this$props3","loading","handleClose","onClick","awesome","onCancel","confirmText","renderCustomConfirm","parsedValue","prepareColumns","_filter","_ref7","_find","getDerivedStateFromProps","nextProps","Component","mapStateToProps","navigation","table","schema","_getCurrentClusterCon","connector"],"sources":["DownloadManager.tsx"],"sourcesContent":["import React from 'react';\nimport {ConnectedProps, connect} from 'react-redux';\nimport unipika from '../../../../../common/thor/unipika';\nimport {compose} from 'redux';\nimport cn from 'bem-cn-lite';\nimport _ from 'lodash';\nimport qs from 'qs';\nimport axios from 'axios';\n\nimport {Checkbox, RadioButton, TextInput} from '@gravity-ui/uikit';\n\nimport ColumnSelector from '../../../../../components/ColumnSelector/ColumnSelector';\nimport Pagination from '../../../../../components/Pagination/Pagination';\nimport HelpLink from '../../../../../components/HelpLink/HelpLink';\nimport Filter from '../../../../../components/Filter/Filter';\nimport Button from '../../../../../components/Button/Button';\nimport Modal from '../../../../../components/Modal/Modal';\nimport Icon from '../../../../../components/Icon/Icon';\nimport Link from '../../../../../components/Link/Link';\nimport Tabs from '../../../../../components/Tabs/Tabs';\nimport Select from '../../../../../components/Select/Select';\n\nimport {getRowsPerTablePage, getShowDecoded} from '../../../../../store/selectors/settings';\nimport {getSchema} from '../../../../../store/selectors/navigation/tabs/schema';\nimport {getPath, getTransaction} from '../../../../../store/selectors/navigation';\nimport {getCluster, getCurrentClusterConfig} from '../../../../../store/selectors/global';\nimport withVisible, {WithVisibleProps} from '../../../../../hocs/withVisible';\nimport {\n getAllColumns,\n getOffsetValue,\n getRowCount,\n getSrcColumns,\n} from '../../../../../store/selectors/navigation/content/table';\nimport {getColumns} from '../../../../../store/selectors/navigation/content/table-ts';\n\nimport './DownloadManager.scss';\nimport {docsUrl} from '../../../../../config';\nimport {uiSettings} from '../../../../../config/ui-settings';\nimport SeparatorInput, {prepareSeparatorValue} from './SeparatorInput';\nimport UIFactory from '../../../../../UIFactory';\nimport {makeDirectDownloadPath} from '../../../../../utils/navigation';\nimport {RootState} from '../../../../../store/reducers';\nimport {FIX_MY_TYPE} from '../../../../../types';\n\nconst block = cn('table-download-manager');\nconst messageBlock = cn('elements-message');\n\nconst EXCEL_BASE_URL = uiSettings?.exportTableBaseUrl;\n\nfunction checkExcelExporter(cluster: string) {\n if (!EXCEL_BASE_URL) {\n return Promise.resolve(false);\n }\n\n return axios\n .get(`${EXCEL_BASE_URL}/${cluster}/api/ready`)\n .then(() => true)\n .catch(() => false);\n}\n\ntype ReduxProps = Omit<ConnectedProps<typeof connector>, 'dispatch'>;\ntype Props = ReduxProps & WithVisibleProps & {className?: string};\n\ntype State = {\n format: 'dsv' | 'schemaful_dsv' | 'yamr' | 'yson' | 'json' | 'excel';\n visible?: boolean;\n excelExporter: boolean;\n rowsMode: 'range' | 'all';\n startRow: string | number;\n numRows: string | number;\n valueSentinel: string;\n ysonFormat: 'text' | 'pretty' | 'binary';\n columnsMode: 'all' | 'custom';\n\n schemafulDsvMissingMode: 'fail' | 'skip_row' | 'print_sentinel';\n separators: {keyValue?: string; record?: string; field?: string};\n\n encodeUtf: boolean;\n withHeaders: boolean;\n\n withSubkey: boolean;\n keyColumn?: string;\n valueColumn?: string;\n subkeyColumn?: string;\n\n selectedColumns?: Props['columns'];\n\n number_precision_mode: 'string' | 'error' | 'lose';\n};\n\nexport class DownloadManager extends React.Component<Props, State> {\n static prepareValue(value: string): number | string {\n const parsedValue = Number(value || undefined); // we need `|| undefined` cause Number('') === 0\n return isNaN(parsedValue) ? value : parsedValue;\n }\n\n static prepareColumns(columns: Array<{checked?: boolean}>) {\n return _.filter(columns, ({checked}) => checked);\n }\n\n static hasColumn(columns: Array<{name?: string}>, name: string) {\n return Boolean(_.find(columns, (column) => column.name === name));\n }\n\n static getDerivedStateFromProps(nextProps: Props, prevState: State) {\n if (nextProps.visible !== prevState.visible) {\n const {columns} = nextProps;\n return {\n visible: nextProps.visible,\n numRows: nextProps.pageSize,\n startRow: nextProps.offsetValue,\n selectedColumns: nextProps.allColumns,\n\n withSubkey: nextProps.columns.length >= 3,\n keyColumn: DownloadManager.hasColumn(columns, 'key') ? 'key' : undefined,\n valueColumn: DownloadManager.hasColumn(columns, 'value') ? 'value' : undefined,\n subkeyColumn: DownloadManager.hasColumn(columns, 'subkey') ? 'subkey' : undefined,\n };\n }\n\n return null;\n }\n\n constructor(props: Props) {\n super(props);\n\n const {columns, visible, pageSize, offsetValue, allColumns} = props;\n\n this.state = {\n format: 'dsv',\n visible,\n rowsMode: 'all',\n valueSentinel: '',\n ysonFormat: 'text',\n columnsMode: 'all',\n schemafulDsvMissingMode: 'fail', //print_sentinel\n\n separators: {\n keyValue: '=',\n field: '\\\\t',\n record: '\\\\n',\n },\n\n encodeUtf: false,\n withHeaders: true,\n\n withSubkey: columns.length >= 3,\n keyColumn: DownloadManager.hasColumn(columns, 'key') ? 'key' : undefined,\n valueColumn: DownloadManager.hasColumn(columns, 'value') ? 'value' : undefined,\n subkeyColumn: DownloadManager.hasColumn(columns, 'subkey') ? 'subkey' : undefined,\n\n numRows: pageSize,\n startRow: offsetValue,\n selectedColumns: allColumns,\n\n excelExporter: false,\n number_precision_mode: 'string',\n };\n }\n\n getOutputFormat() {\n const {\n format,\n encodeUtf,\n ysonFormat,\n withSubkey,\n keyColumn,\n valueColumn,\n subkeyColumn,\n schemafulDsvMissingMode,\n valueSentinel,\n withHeaders,\n separators,\n } = this.state;\n\n const currentAttributes: Record<string, any> = {};\n const outputFormat = {\n $value: format,\n $attributes: currentAttributes,\n };\n\n if (format === 'json') {\n currentAttributes['encode_utf8'] = encodeUtf;\n }\n\n if (format === 'yson') {\n currentAttributes['format'] = ysonFormat;\n }\n\n if (format === 'yamr') {\n currentAttributes['lenval'] = false;\n currentAttributes['has_subkey'] = withSubkey;\n\n if (keyColumn) {\n currentAttributes['key'] = keyColumn;\n }\n\n if (valueColumn) {\n currentAttributes['value'] = valueColumn;\n }\n\n if (subkeyColumn && subkeyColumn) {\n currentAttributes['subkey'] = subkeyColumn;\n }\n }\n\n if (format === 'schemaful_dsv') {\n currentAttributes['missing_value_mode'] = schemafulDsvMissingMode;\n\n if (schemafulDsvMissingMode === 'print_sentinel') {\n currentAttributes['missing_value_sentinel'] = valueSentinel;\n }\n\n currentAttributes['enable_column_names_header'] = withHeaders;\n\n currentAttributes['columns'] = this.prepareColumnsForColumnMode(false);\n }\n\n const errors: Array<string> = [];\n\n function collectErrors<T>({value, error}: {value: T; error?: string}) {\n if (error) {\n errors.push(error);\n }\n return value;\n }\n\n if (format === 'schemaful_dsv' || format === 'dsv') {\n currentAttributes['field_separator'] = collectErrors(\n prepareSeparatorValue(separators.field),\n );\n currentAttributes['record_separator'] = collectErrors(\n prepareSeparatorValue(separators.record),\n );\n }\n\n if (format === 'dsv') {\n currentAttributes['key_value_separator'] = collectErrors(\n prepareSeparatorValue(separators.keyValue),\n );\n }\n\n return {\n value: outputFormat,\n error:\n errors.length === 0\n ? undefined\n : {inner_errors: errors, message: 'There are some values with errors'},\n };\n }\n\n get downloadRows() {\n const {rowsMode} = this.state;\n\n if (rowsMode === 'range') {\n const {startRow, numRows} = this.state;\n return '[#' + startRow + ':#' + (Number(startRow) + Number(numRows)) + ']';\n } else {\n return '';\n }\n }\n\n get downloadColumns() {\n const {columnsMode} = this.state;\n\n if (columnsMode !== 'all') {\n const columnNames = this.prepareColumnsForColumnMode();\n return '{' + String(columnNames) + '}';\n } else {\n return '';\n }\n }\n\n get downloadPath() {\n const {path} = this.props;\n\n return path + this.downloadColumns + this.downloadRows;\n }\n\n getDownloadParams() {\n const {transaction_id} = this.props;\n const {value: output_format, error} = this.getOutputFormat();\n const query = qs.stringify(\n Object.assign(\n {\n path: this.downloadPath,\n output_format,\n dump_error_into_response: true,\n },\n transaction_id ? {transaction_id} : {},\n ),\n );\n return {query, error};\n }\n\n getDownloadLink() {\n const {cluster, proxy, externalProxy} = this.props;\n const base = makeDirectDownloadPath('read_table', {cluster, proxy, externalProxy});\n const {query, error} = this.getDownloadParams();\n return {url: base + '?' + query, error};\n }\n\n getExcelDownloadLink() {\n const {cluster} = this.props;\n const base = `${EXCEL_BASE_URL}/${cluster}/api/export`;\n\n const {query, error} = this.getDownloadParams();\n const {number_precision_mode} = this.state;\n const params = new URLSearchParams({number_precision_mode});\n\n return {url: `${base}?${params}&${query}`, error};\n }\n\n makeDocsUrl(path = '') {\n return docsUrl(UIFactory.docsUrls['storage:formats'] + path);\n }\n\n get formats() {\n const {isSchematicTable} = this.props;\n const {excelExporter} = this.state;\n\n return {\n dsv: {\n name: 'dsv' as const,\n caption: 'TSKV',\n description:\n 'Tab-separated key-value format. ' +\n 'Please note that this format erases type information due to string conversion.',\n doc: this.makeDocsUrl('#dsv'),\n show: true,\n },\n schemaful_dsv: {\n name: 'schemaful_dsv' as const,\n caption: 'Schemaful DSV',\n description: [\n 'Tab-separated format with fixed, ordered set of columns.',\n 'Please note that this format erases type information due to string conversion.',\n ].join(' '),\n doc: this.makeDocsUrl('#schemaful_dsv'),\n show: true,\n },\n yamr: {\n name: 'yamr' as const,\n caption: 'YAMR',\n description:\n 'Legacy tab-separated format with fixed set of columns used in YAMR. ' +\n 'Please note that this format can only contain 2 or 3 columns, ' +\n 'columns named \"key\", \"subkey\" and \"value\" respectively are downloaded by default.',\n doc: this.makeDocsUrl('#yamr'),\n show: true,\n },\n yson: {\n name: 'yson' as const,\n caption: 'YSON',\n description: 'Yet-another Serialized Object Notation.',\n doc: this.makeDocsUrl('#yson'),\n show: true,\n },\n json: {\n name: 'json' as const,\n caption: 'JSON Lines',\n description:\n 'JSON Lines text format, also called newline-delimited JSON (JavaScript Serialized Object Notation).',\n doc: this.makeDocsUrl('#json'),\n show: true,\n },\n excel: {\n name: 'excel' as const,\n caption: 'Excel',\n description: '',\n doc: docsUrl(UIFactory.docsUrls['storage:excel#skachivanie']),\n show: excelExporter && isSchematicTable,\n },\n };\n }\n\n get tabItems() {\n return _.map(_.values(this.formats), ({name, caption, show}) => ({\n value: name,\n text: caption,\n show,\n }));\n }\n\n changeFormat = (format: State['format']) => this.setState({format});\n changeNumRows = (numRows: State['numRows']) => this.setState({numRows});\n changeStartRow = (startRow: State['startRow']) => this.setState({startRow});\n changeRowsMode = (rowsMode: State['rowsMode']) => this.setState({rowsMode});\n changeKeyColumn = (keyColumn: State['keyColumn']) => this.setState({keyColumn});\n changeYsonFormat = (ysonFormat: State['ysonFormat']) => this.setState({ysonFormat});\n changeValueColumn = (valueColumn: State['valueColumn']) => this.setState({valueColumn});\n changeColumnsMode = (columnsMode: State['columnsMode']) => this.setState({columnsMode});\n changeSubkeyColumn = (subkeyColumn: State['subkeyColumn']) => this.setState({subkeyColumn});\n changeValueSentinel = (valueSentinel: State['valueSentinel']) => this.setState({valueSentinel});\n changeSelectedColumns = (selectedColumns: State['selectedColumns']) =>\n this.setState({selectedColumns});\n changeSchemafulDsvMissingMode = (schemafulDsvMissingMode: State['schemafulDsvMissingMode']) =>\n this.setState({schemafulDsvMissingMode});\n\n toggleEncodeUtf = () => this.setState((prevState) => ({encodeUtf: !prevState.encodeUtf}));\n toggleWithSubkey = () => this.setState((prevState) => ({withSubkey: !prevState.withSubkey}));\n toggleWithHeaders = () => this.setState((prevState) => ({withHeaders: !prevState.withHeaders}));\n\n parseColumn(column: string, useQuotes: boolean) {\n const {showDecoded} = this.props;\n const parsedColumn = showDecoded ? unipika.decode(column) : column;\n\n // When forming the url address for reading a table we pass column names as\n // `read_table?path/to/file{\"column1\",\"column2\"}` where they should be wrapped in quotes\n\n // In case of schemaful_dsv format column names are passed as part of request params as well. It looks like:\n // read_table?path/to/file{\"Группа+клиентов\",\"Ранг+оффера\"}&output_format[$attributes][columns][]=Группа+клиентов&output_format[$attributes][columns][]=Ранг+оффера\n\n // [columns][]=Группа+клиентов -- valid,\n // [columns][]=\"Группа+клиентов\" -- invalid\n\n if (useQuotes) {\n return `\"${parsedColumn}\"`;\n }\n\n return parsedColumn;\n }\n\n prepareColumnsForColumnMode(useQuotes = true) {\n const {columnsMode, selectedColumns} = this.state;\n\n if (columnsMode === 'all') {\n const preparedColumns = _.map(selectedColumns, 'name');\n\n return _.map(preparedColumns, (column) => this.parseColumn(column, useQuotes));\n } else if (columnsMode === 'custom') {\n const preparedColumns = _.reduce(\n selectedColumns,\n (columns, item) => {\n if (item.checked) {\n columns.push(item.name);\n }\n\n return columns;\n },\n [] as Array<string>,\n );\n\n return _.map(preparedColumns, (column) => this.parseColumn(column, useQuotes));\n }\n return undefined;\n }\n\n prepareYamrColumns() {\n const {columns} = this.props;\n\n return _.map(columns, ({name}) => {\n const column = this.parseColumn(name, false);\n return {\n value: column,\n title: column,\n name: column,\n };\n });\n }\n\n renderPaginator() {\n const {rowCount} = this.props;\n\n const isStartRowEmpty = this.state.startRow === 0;\n const isNumRowsInvalid = typeof this.state.numRows !== 'number';\n const isStartRowInvalid = typeof this.state.startRow !== 'number';\n\n const startRow = Number(this.state.startRow);\n const numRows = Number(this.state.numRows);\n\n return (\n <Pagination\n showInput\n inputValue={String(startRow)}\n onChange={(value: string) => {\n const row = DownloadManager.prepareValue(value);\n this.changeStartRow(row);\n }}\n first={{\n handler: () => {\n this.changeStartRow(0);\n },\n disabled: isStartRowEmpty || isStartRowInvalid || isNumRowsInvalid,\n }}\n previous={{\n handler: () => {\n const row = Math.max((startRow as number) - (numRows as number), 0);\n this.changeStartRow(row);\n },\n disabled: isStartRowEmpty || isStartRowInvalid || isNumRowsInvalid,\n }}\n next={{\n handler: () => {\n const row =\n startRow + numRows < rowCount - numRows\n ? startRow + numRows\n : Math.max(rowCount - numRows, 0);\n this.changeStartRow(row);\n },\n disabled:\n startRow + numRows >= rowCount || isStartRowInvalid || isNumRowsInvalid,\n }}\n last={{\n handler: () => {\n const row = Math.max(rowCount - numRows, 0);\n this.changeStartRow(row);\n },\n disabled:\n startRow + numRows >= rowCount || isStartRowInvalid || isNumRowsInvalid,\n }}\n />\n );\n }\n\n renderRows() {\n const {rowsMode, numRows} = this.state;\n\n return (\n <React.Fragment>\n <div className=\"elements-form__label\">Rows</div>\n <RadioButton\n size=\"m\"\n value={rowsMode}\n name=\"download-manager-row-mode\"\n onUpdate={(value) => this.changeRowsMode(value)}\n options={[\n {value: 'all', content: 'All'},\n {value: 'range', content: 'Range'},\n ]}\n />\n\n {rowsMode === 'range' && (\n <div className={block('rows')}>\n <div className=\"elements-form__field\">\n <div className=\"elements-form__label\">Start row</div>\n {this.renderPaginator()}\n </div>\n\n <div className=\"elements-form__field\">\n <div className=\"elements-form__label\">Number of rows</div>\n <Filter\n qa=\"download-manager_number-of-rows\"\n autofocus={false}\n value={String(numRows)}\n invalid={isNaN(numRows as number) || numRows === ''}\n onChange={(value) => {\n const num = DownloadManager.prepareValue(value);\n this.changeNumRows(num);\n }}\n />\n </div>\n </div>\n )}\n </React.Fragment>\n );\n }\n\n renderColumns() {\n const {columnsMode, format, selectedColumns} = this.state;\n const {srcColumns} = this.props;\n\n return (\n <React.Fragment>\n <div className=\"elements-form__label\">Columns</div>\n <RadioButton\n size=\"m\"\n value={columnsMode}\n name=\"download-manager-columns-mode\"\n onUpdate={(value) => this.changeColumnsMode(value)}\n options={[\n {value: 'all', content: 'All'},\n {value: 'custom', content: 'Custom'},\n ]}\n />\n\n {columnsMode === 'custom' && (\n <ColumnSelector\n isSortable={format === 'schemaful_dsv'}\n className={block('columns-selector')}\n onChange={({items}: FIX_MY_TYPE) =>\n this.changeSelectedColumns(items as FIX_MY_TYPE)\n }\n items={selectedColumns}\n srcItems={srcColumns}\n isHeadless\n />\n )}\n </React.Fragment>\n );\n }\n\n renderSchemafulDsv() {\n const {withHeaders, schemafulDsvMissingMode, valueSentinel} = this.state;\n\n return (\n <div className={block('schemaful-dsv')}>\n <div className=\"elements-form__field\">\n <div className=\"elements-form__label\">Missing value mode</div>\n <RadioButton\n size=\"m\"\n value={schemafulDsvMissingMode}\n name=\"download-manager-schemaful-dsv-mode\"\n onUpdate={(value) => this.changeSchemafulDsvMissingMode(value)}\n options={[\n {value: 'fail', content: 'Fail'},\n {value: 'skip_row', content: 'Skip row'},\n {value: 'print_sentinel', content: 'Print sentinel'},\n ]}\n />\n </div>\n\n {schemafulDsvMissingMode === 'print_sentinel' && (\n <div className=\"elements-form__field\">\n <div className=\"elements-form__label\">Missing value sentinel</div>\n <TextInput\n size=\"m\"\n value={valueSentinel}\n onUpdate={this.changeValueSentinel}\n placeholder=\"Please note that sentinels that coerce to number or boolean are not supported\"\n />\n </div>\n )}\n\n <Checkbox size=\"l\" checked={withHeaders} onChange={this.toggleWithHeaders}>\n Prepend with column names header\n </Checkbox>\n {this.renderSeparatorEditors()}\n </div>\n );\n }\n\n renderSeparatorEditors({showKeyValueSeparator = false} = {}) {\n const {keyValue, field, record} = this.state.separators;\n return (\n <div className={block('dsv-separators')}>\n {showKeyValueSeparator && (\n <div className={block('dsv-separators-item')}>\n <div className={'elements-form__label'}>Key-value separator</div>\n <SeparatorInput value={keyValue} onChange={this.setKeyValueSeparator} />\n </div>\n )}\n <div className={block('dsv-separators-item')}>\n <div className={'elements-form__label'}>Field separator</div>\n <SeparatorInput value={field} onChange={this.setFieldSeparator} />\n </div>\n <div className={block('dsv-separators-item')}>\n <div className={'elements-form__label'}>Record separator</div>\n <SeparatorInput value={record} onChange={this.setRecordSeparator} />\n </div>\n </div>\n );\n }\n\n setKeyValueSeparator = (v?: string) => {\n this.onSeparatorChange('keyValue', v);\n };\n\n setFieldSeparator = (v?: string) => {\n this.onSeparatorChange('field', v);\n };\n\n setRecordSeparator = (v?: string) => {\n this.onSeparatorChange('record', v);\n };\n\n onSeparatorChange(separatorType: keyof State['separators'], value?: string) {\n this.setState({\n separators: {\n ...this.state.separators,\n [separatorType]: value,\n },\n });\n }\n\n renderYamr() {\n const {withSubkey} = this.state;\n const {columns} = this.props;\n\n return (\n <div className={block('with-subkey')}>\n <Checkbox\n size=\"l\"\n checked={withSubkey}\n disabled={columns.length < 3}\n onChange={this.toggleWithSubkey}\n >\n With subkey\n </Checkbox>\n </div>\n );\n }\n\n renderYamrColumns() {\n const {withSubkey, keyColumn, subkeyColumn, valueColumn} = this.state;\n\n return (\n <div className={block('yamr-columns')}>\n <div className=\"elements-form__field\">\n <div className=\"elements-form__label\">Key</div>\n <Select\n value={keyColumn ? [keyColumn] : undefined}\n onUpdate={(vals) => this.changeKeyColumn(vals[0])}\n items={this.prepareYamrColumns()}\n placeholder=\"Choose key column...\"\n hideFilter\n width=\"max\"\n />\n </div>\n\n {withSubkey && (\n <div className=\"elements-form__field\">\n <div className=\"elements-form__label\">Subkey</div>\n <Select\n hideFilter\n value={subkeyColumn ? [subkeyColumn] : undefined}\n items={this.prepareYamrColumns()}\n onUpdate={(vals) => this.changeSubkeyColumn(vals[0])}\n placeholder=\"Choose subkey column...\"\n width=\"max\"\n />\n </div>\n )}\n\n <div className=\"elements-form__field\">\n <div className=\"elements-form__label\">Value</div>\n <Select\n hideFilter\n value={valueColumn ? [valueColumn] : undefined}\n onUpdate={(vals) => this.changeValueColumn(vals[0])}\n items={this.prepareYamrColumns()}\n placeholder=\"Choose value column...\"\n width=\"max\"\n />\n </div>\n </div>\n );\n }\n\n renderYson() {\n const {ysonFormat} = this.state;\n\n return (\n <div className={block('yson', 'elements-form__field')}>\n <div className=\"elements-form__label\">Format</div>\n <RadioButton\n size=\"m\"\n value={ysonFormat}\n name=\"download-manager-yson-format\"\n onUpdate={(value) => this.changeYsonFormat(value)}\n options={[\n {value: 'text', content: 'Text'},\n {value: 'pretty', content: 'Pretty'},\n {value: 'binary', content: 'Binary'},\n ]}\n />\n </div>\n );\n }\n\n renderJson() {\n const {encodeUtf} = this.state;\n\n return (\n <div className={block('json')}>\n <Checkbox size=\"l\" checked={encodeUtf} onChange={this.toggleEncodeUtf}>\n Encode as UTF8\n </Checkbox>\n </div>\n );\n }\n\n renderExcel() {\n const {number_precision_mode: excelNumberPrecisionMode} = this.state;\n return (\n <React.Fragment>\n <div className=\"elements-form__label\">Number precision mode</div>\n <RadioButton\n size=\"m\"\n value={excelNumberPrecisionMode}\n onUpdate={(v) => this.setState({number_precision_mode: v})}\n options={[\n {value: 'string' as const, content: 'String'},\n {value: 'error' as const, content: 'Error'},\n {value: 'lose' as const, content: 'Lose'},\n ]}\n />\n </React.Fragment>\n );\n }\n\n renderContent() {\n const {format} = this.state;\n const faqLink = (\n <Link url={UIFactory.docsUrls['faq:web_interface_table_download']}>FAQ</Link>\n );\n const cliLink = <Link url={UIFactory.docsUrls['api:cli']}>CLI</Link>;\n\n const {description, doc} = this.formats[format];\n\n return (\n <div className={block('content')}>\n <div className={messageBlock({theme: 'warning'})}>\n Please note that download error if any is appended at the end of the file and is\n marked with special delimiters.{' '}\n {docsUrl(<>See our {faqLink} for more details.</>)}\n </div>\n <div className={messageBlock({theme: 'warning'})}>\n Please note that this is not a production-ready tool. For production usecases we\n highly recommend using yt read command from our {docsUrl(cliLink, 'CLI')}{' '}\n instead as it provides advanced features like error detection, download retries,\n and more.\n </div>\n\n <div className={block('manager')}>\n <div className={block('format')}>\n <Tabs\n size=\"l\"\n active={format}\n layout=\"vertical\"\n items={this.tabItems}\n className={block('tabs')}\n onTabChange={this.changeFormat}\n />\n\n <div className={block('help')}>\n <p className={block('format-description')}>{description}</p>\n {doc && <HelpLink url={doc} />}\n </div>\n </div>\n\n <div className={block('settings', 'pretty-scroll')}>\n <div className={block('shared-settings')}>\n {this.renderRows()}\n {format !== 'yamr' && this.renderColumns()}\n {format === 'yamr' && this.renderYamr()}\n </div>\n\n <div className={block('type-settings')}>\n {format === 'dsv' &&\n this.renderSeparatorEditors({showKeyValueSeparator: true})}\n {format === 'schemaful_dsv' && this.renderSchemafulDsv()}\n {format === 'yamr' && this.renderYamrColumns()}\n {format === 'json' && this.renderJson()}\n {format === 'yson' && this.renderYson()}\n {format === 'excel' && this.renderExcel()}\n </div>\n </div>\n </div>\n </div>\n );\n }\n\n renderConfirmButton = (className: string) => {\n const {format} = this.state;\n\n const {url, error} =\n format === 'excel' ? this.getExcelDownloadLink() : this.getDownloadLink();\n\n return (\n <Button\n size=\"m\"\n view=\"action\"\n className={className}\n title=\"Download\"\n target=\"_blank\"\n href={url}\n disabled={Boolean(error)}\n qa=\"download-static-table\"\n >\n Download\n </Button>\n );\n };\n\n showDialog = () => {\n const {handleShow, cluster} = this.props;\n handleShow();\n checkExcelExporter(cluster).then((excelExporter) => {\n this.setState({excelExporter});\n });\n };\n\n render() {\n const {loading, className, visible, handleClose} = this.props;\n\n return (\n <div className={block(null, className)}>\n <Button\n size=\"m\"\n title=\"download\"\n disabled={loading}\n onClick={this.showDialog}\n qa={'show-download-static-table'}\n >\n <Icon awesome=\"download\" />\n &nbsp; Download\n </Button>\n\n {visible && (\n <Modal\n size=\"l\"\n title=\"Download\"\n visible={visible}\n onCancel={handleClose}\n confirmText=\"Download\"\n content={this.renderContent()}\n renderCustomConfirm={this.renderConfirmButton}\n />\n )}\n </div>\n );\n }\n}\n\nconst mapStateToProps = (state: RootState) => {\n const {loading}: {loading: boolean} = state.navigation.content.table;\n\n const pageSize: number = getRowsPerTablePage(state);\n const showDecoded: boolean = getShowDecoded(state);\n const offsetValue = getOffsetValue(state);\n const allColumns: Array<{name: string; checked: boolean}> = getAllColumns(state);\n const srcColumns = getSrcColumns(state);\n const rowCount = getRowCount(state);\n const cluster = getCluster(state);\n const columns: typeof allColumns = getColumns(state);\n const schema = getSchema(state);\n const path = getPath(state);\n const {proxy, externalProxy} = getCurrentClusterConfig(state);\n const transaction_id = getTransaction(state);\n\n const isSchematicTable = schema.length > 0;\n\n return {\n loading,\n path,\n cluster,\n offsetValue,\n rowCount,\n pageSize,\n allColumns,\n srcColumns,\n columns,\n showDecoded,\n isSchematicTable,\n proxy,\n externalProxy,\n transaction_id,\n };\n};\nconst connector = connect(mapStateToProps);\nexport default compose(connector, withVisible)(DownloadManager);\n"],"mappings":"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"}