@ytsaurus/ui 1.16.2 → 1.17.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -11
- package/build/cjs/@types/core.d.ts +7 -7
- package/build/cjs/server/components/layout-config.js +3 -3
- package/build/cjs/server/components/layout-config.js.map +1 -1
- package/build/cjs/server/components/requestsSetup.js +13 -5
- package/build/cjs/server/components/requestsSetup.js.map +1 -1
- package/build/cjs/server/components/settings.d.ts +10 -5
- package/build/cjs/server/components/settings.js +24 -23
- package/build/cjs/server/components/settings.js.map +1 -1
- package/build/cjs/server/components/table.d.ts +3 -3
- package/build/cjs/server/components/table.js +4 -4
- package/build/cjs/server/components/table.js.map +1 -1
- package/build/cjs/server/components/yt-auth.d.ts +0 -2
- package/build/cjs/server/components/yt-auth.js +5 -14
- package/build/cjs/server/components/yt-auth.js.map +1 -1
- package/build/cjs/server/configs/common.js +5 -13
- package/build/cjs/server/configs/common.js.map +1 -1
- package/build/cjs/server/configs/local.js +0 -5
- package/build/cjs/server/configs/local.js.map +1 -1
- package/build/cjs/server/controllers/chyt-api.js +1 -1
- package/build/cjs/server/controllers/chyt-api.js.map +1 -1
- package/build/cjs/server/controllers/cluster-info.js +2 -2
- package/build/cjs/server/controllers/cluster-info.js.map +1 -1
- package/build/cjs/server/controllers/cluster-params.js +1 -1
- package/build/cjs/server/controllers/cluster-params.js.map +1 -1
- package/build/cjs/server/controllers/clusters.d.ts +1 -0
- package/build/cjs/server/controllers/clusters.js +24 -1
- package/build/cjs/server/controllers/clusters.js.map +1 -1
- package/build/cjs/server/controllers/home.js +10 -6
- package/build/cjs/server/controllers/home.js.map +1 -1
- package/build/cjs/server/controllers/login.js +18 -5
- package/build/cjs/server/controllers/login.js.map +1 -1
- package/build/cjs/server/controllers/odin-proxy-api.js +1 -1
- package/build/cjs/server/controllers/odin-proxy-api.js.map +1 -1
- package/build/cjs/server/controllers/scheduling-pools.js +2 -2
- package/build/cjs/server/controllers/scheduling-pools.js.map +1 -1
- package/build/cjs/server/controllers/settings.js +10 -10
- package/build/cjs/server/controllers/settings.js.map +1 -1
- package/build/cjs/server/controllers/table-column-preset.js +4 -3
- package/build/cjs/server/controllers/table-column-preset.js.map +1 -1
- package/build/cjs/server/controllers/yt-api.js +1 -1
- package/build/cjs/server/controllers/yt-api.js.map +1 -1
- package/build/cjs/server/controllers/yt-proxy-api.js +2 -2
- package/build/cjs/server/controllers/yt-proxy-api.js.map +1 -1
- package/build/cjs/server/index.js +11 -8
- package/build/cjs/server/index.js.map +1 -1
- package/build/cjs/server/middlewares/authorization.d.ts +1 -1
- package/build/cjs/server/middlewares/authorization.js +3 -2
- package/build/cjs/server/middlewares/authorization.js.map +1 -1
- package/build/cjs/server/middlewares/yt-auth.js +3 -2
- package/build/cjs/server/middlewares/yt-auth.js.map +1 -1
- package/build/cjs/server/routes.js +26 -25
- package/build/cjs/server/routes.js.map +1 -1
- package/build/cjs/server/utils/index.d.ts +1 -1
- package/build/cjs/server/utils/index.js +12 -4
- package/build/cjs/server/utils/index.js.map +1 -1
- package/build/cjs/shared/yt-types.d.ts +1 -0
- package/build/cjs/ui/common/utils/settings-remote-provider.d.ts +5 -5
- package/build/cjs/ui/common/utils/settings-remote-provider.js +42 -16
- package/build/cjs/ui/common/utils/settings-remote-provider.js.map +1 -1
- package/build/cjs/ui/components/ElementsTable/ElementsTable.d.ts +1 -1
- package/build/cjs/ui/components/Login/ChangePasswordFormPage/ChangePasswordFormPage.d.ts +2 -1
- package/build/cjs/ui/components/Login/ChangePasswordFormPage/ChangePasswordFormPage.js +11 -6
- package/build/cjs/ui/components/Login/ChangePasswordFormPage/ChangePasswordFormPage.js.map +1 -1
- package/build/cjs/ui/components/Login/LoginFormPage/LoginFormPage.js +7 -4
- package/build/cjs/ui/components/Login/LoginFormPage/LoginFormPage.js.map +1 -1
- package/build/cjs/ui/config/ui-settings.d.ts +1 -0
- package/build/cjs/ui/config/ui-settings.js +3 -2
- package/build/cjs/ui/config/ui-settings.js.map +1 -1
- package/build/cjs/ui/constants/index.d.ts +7 -0
- package/build/cjs/ui/constants/index.js +3 -1
- package/build/cjs/ui/constants/index.js.map +1 -1
- package/build/cjs/ui/containers/App/App.js +4 -3
- package/build/cjs/ui/containers/App/App.js.map +1 -1
- package/build/cjs/ui/containers/AppNavigation/AppNavigationComponent.js +39 -22
- package/build/cjs/ui/containers/AppNavigation/AppNavigationComponent.js.map +1 -1
- package/build/cjs/ui/containers/ClusterPage/ClusterPage.d.ts +3 -1
- package/build/cjs/ui/containers/ClusterPage/ClusterPage.js +3 -1
- package/build/cjs/ui/containers/ClusterPage/ClusterPage.js.map +1 -1
- package/build/cjs/ui/containers/ClustersMenu/ClusterMenuHeader.css +5 -0
- package/build/cjs/ui/containers/ClustersMenu/ClusterMenuHeader.css.map +1 -1
- package/build/cjs/ui/containers/ClustersMenu/ClustersMenuBody.d.ts +3 -1
- package/build/cjs/ui/containers/ClustersMenu/ClustersMenuBody.js +11 -3
- package/build/cjs/ui/containers/ClustersMenu/ClustersMenuBody.js.map +1 -1
- package/build/cjs/ui/containers/ClustersMenu/ClustersMenuHeader.d.ts +4 -4
- package/build/cjs/ui/containers/ClustersMenu/ClustersMenuHeader.js.map +1 -1
- package/build/cjs/ui/containers/MaintenancePage/HandleRedirect.js.map +1 -1
- package/build/cjs/ui/entries/main.js +4 -1
- package/build/cjs/ui/entries/main.js.map +1 -1
- package/build/cjs/ui/pages/operations/selectors.d.ts +5 -0
- package/build/cjs/ui/pages/query-tracker/module/queries_list/selectors.d.ts +20 -0
- package/build/cjs/ui/pages/query-tracker/module/query/selectors.d.ts +5 -0
- package/build/cjs/ui/pages/query-tracker/module/settings/selector.d.ts +5 -0
- package/build/cjs/ui/pages/system/Chunks/Chunks.d.ts +1 -1
- package/build/cjs/ui/store/actions/cluster-params.d.ts +1 -0
- package/build/cjs/ui/store/actions/cluster-params.js +13 -0
- package/build/cjs/ui/store/actions/cluster-params.js.map +1 -1
- package/build/cjs/ui/store/actions/clusters-menu.d.ts +1 -0
- package/build/cjs/ui/store/actions/clusters-menu.js +22 -2
- package/build/cjs/ui/store/actions/clusters-menu.js.map +1 -1
- package/build/cjs/ui/store/actions/global/index.d.ts +3 -1
- package/build/cjs/ui/store/actions/global/index.js +19 -4
- package/build/cjs/ui/store/actions/global/index.js.map +1 -1
- package/build/cjs/ui/store/actions/navigation/content/table/columns-preset.d.ts +1 -1
- package/build/cjs/ui/store/actions/navigation/content/table/columns-preset.js +6 -4
- package/build/cjs/ui/store/actions/navigation/content/table/columns-preset.js.map +1 -1
- package/build/cjs/ui/store/actions/navigation/content/table/table.js +2 -1
- package/build/cjs/ui/store/actions/navigation/content/table/table.js.map +1 -1
- package/build/cjs/ui/store/actions/settings/index.js +25 -19
- package/build/cjs/ui/store/actions/settings/index.js.map +1 -1
- package/build/cjs/ui/store/reducers/accounts/usage/index.d.ts +1 -1
- package/build/cjs/ui/store/reducers/clusters-menu/clusters-menu.d.ts +4 -0
- package/build/cjs/ui/store/reducers/clusters-menu/clusters-menu.js +8 -0
- package/build/cjs/ui/store/reducers/clusters-menu/clusters-menu.js.map +1 -1
- package/build/cjs/ui/store/reducers/index.d.ts +5 -0
- package/build/cjs/ui/store/reducers/index.js.map +1 -1
- package/build/cjs/ui/store/reducers/settings.js +1 -1
- package/build/cjs/ui/store/reducers/settings.js.map +1 -1
- package/build/cjs/ui/store/selectors/accounts/account-usage.d.ts +40 -0
- package/build/cjs/ui/store/selectors/accounts/accounts-ts.d.ts +40 -0
- package/build/cjs/ui/store/selectors/chaos_cell_bundles/index.d.ts +55 -0
- package/build/cjs/ui/store/selectors/chyt/index.d.ts +35 -0
- package/build/cjs/ui/store/selectors/components/node/memory.d.ts +35 -0
- package/build/cjs/ui/store/selectors/components/node-maintenance-modal.d.ts +15 -0
- package/build/cjs/ui/store/selectors/components/nodes/node-card.d.ts +5 -0
- package/build/cjs/ui/store/selectors/components/nodes/nodes/data.d.ts +10 -0
- package/build/cjs/ui/store/selectors/components/nodes/nodes/predicates.d.ts +30 -0
- package/build/cjs/ui/store/selectors/components/versions/versions_v2-ts.d.ts +10 -0
- package/build/cjs/ui/store/selectors/components/versions/versions_v2.d.ts +25 -0
- package/build/cjs/ui/store/selectors/global/index.d.ts +912 -0
- package/build/cjs/ui/store/selectors/global/index.js +10 -1
- package/build/cjs/ui/store/selectors/global/index.js.map +1 -1
- package/build/cjs/ui/store/selectors/global/supported-features.d.ts +30 -0
- package/build/cjs/ui/store/selectors/modals/errors.d.ts +5 -0
- package/build/cjs/ui/store/selectors/navigation/content/document.d.ts +5 -0
- package/build/cjs/ui/store/selectors/navigation/content/replicated-table.d.ts +15 -0
- package/build/cjs/ui/store/selectors/navigation/content/table-mount-config.d.ts +5 -0
- package/build/cjs/ui/store/selectors/navigation/content/table-ts.d.ts +20 -0
- package/build/cjs/ui/store/selectors/navigation/content/table.d.ts +35 -0
- package/build/cjs/ui/store/selectors/navigation/modals/attributes-editor.d.ts +15 -0
- package/build/cjs/ui/store/selectors/navigation/modals/remote-copy-modal.d.ts +5 -0
- package/build/cjs/ui/store/selectors/navigation/navigation.d.ts +10 -0
- package/build/cjs/ui/store/selectors/navigation/tabs/access-log.d.ts +5 -0
- package/build/cjs/ui/store/selectors/navigation/tabs/annotation.d.ts +5 -0
- package/build/cjs/ui/store/selectors/navigation/tabs/consumer.d.ts +5 -0
- package/build/cjs/ui/store/selectors/navigation/tabs/locks.d.ts +10 -0
- package/build/cjs/ui/store/selectors/navigation/tabs/queue.d.ts +10 -0
- package/build/cjs/ui/store/selectors/navigation/tabs/tablet-errors.d.ts +5 -0
- package/build/cjs/ui/store/selectors/operations/index.d.ts +60 -0
- package/build/cjs/ui/store/selectors/operations/jobs-monitor.d.ts +20 -0
- package/build/cjs/ui/store/selectors/operations/operation.d.ts +60 -0
- package/build/cjs/ui/store/selectors/operations/operations-list.d.ts +15 -0
- package/build/cjs/ui/store/selectors/operations/statistics-v2.d.ts +40 -0
- package/build/cjs/ui/store/selectors/scheduling/attributes-to-filter.d.ts +5 -0
- package/build/cjs/ui/store/selectors/scheduling/create-pool-dialog.d.ts +5 -0
- package/build/cjs/ui/store/selectors/scheduling/expanded-pools.d.ts +5 -0
- package/build/cjs/ui/store/selectors/scheduling/index.d.ts +5 -0
- package/build/cjs/ui/store/selectors/scheduling/scheduling-pools.d.ts +15 -0
- package/build/cjs/ui/store/selectors/scheduling/scheduling-ts.d.ts +30 -0
- package/build/cjs/ui/store/selectors/scheduling/scheduling.d.ts +100 -0
- package/build/cjs/ui/store/selectors/tablet_cell_bundles/index.d.ts +75 -0
- package/build/cjs/ui/store/selectors/thor/support.d.ts +25 -0
- package/build/esm/@types/core.d.ts +7 -7
- package/build/esm/server/components/layout-config.js +4 -3
- package/build/esm/server/components/layout-config.js.map +1 -1
- package/build/esm/server/components/requestsSetup.js +12 -5
- package/build/esm/server/components/requestsSetup.js.map +1 -1
- package/build/esm/server/components/settings.d.ts +10 -5
- package/build/esm/server/components/settings.js +33 -22
- package/build/esm/server/components/settings.js.map +1 -1
- package/build/esm/server/components/table.d.ts +3 -3
- package/build/esm/server/components/table.js +10 -10
- package/build/esm/server/components/table.js.map +1 -1
- package/build/esm/server/components/yt-auth.d.ts +0 -2
- package/build/esm/server/components/yt-auth.js +6 -11
- package/build/esm/server/components/yt-auth.js.map +1 -1
- package/build/esm/server/configs/common.js +4 -14
- package/build/esm/server/configs/common.js.map +1 -1
- package/build/esm/server/configs/local.js +0 -5
- package/build/esm/server/configs/local.js.map +1 -1
- package/build/esm/server/controllers/chyt-api.js +1 -1
- package/build/esm/server/controllers/chyt-api.js.map +1 -1
- package/build/esm/server/controllers/cluster-info.js +3 -3
- package/build/esm/server/controllers/cluster-info.js.map +1 -1
- package/build/esm/server/controllers/cluster-params.js +1 -1
- package/build/esm/server/controllers/cluster-params.js.map +1 -1
- package/build/esm/server/controllers/clusters.d.ts +1 -0
- package/build/esm/server/controllers/clusters.js +23 -0
- package/build/esm/server/controllers/clusters.js.map +1 -1
- package/build/esm/server/controllers/home.js +32 -28
- package/build/esm/server/controllers/home.js.map +1 -1
- package/build/esm/server/controllers/login.js +35 -21
- package/build/esm/server/controllers/login.js.map +1 -1
- package/build/esm/server/controllers/odin-proxy-api.js +1 -1
- package/build/esm/server/controllers/odin-proxy-api.js.map +1 -1
- package/build/esm/server/controllers/scheduling-pools.js +3 -3
- package/build/esm/server/controllers/scheduling-pools.js.map +1 -1
- package/build/esm/server/controllers/settings.js +26 -15
- package/build/esm/server/controllers/settings.js.map +1 -1
- package/build/esm/server/controllers/table-column-preset.js +15 -14
- package/build/esm/server/controllers/table-column-preset.js.map +1 -1
- package/build/esm/server/controllers/yt-api.js +1 -1
- package/build/esm/server/controllers/yt-api.js.map +1 -1
- package/build/esm/server/controllers/yt-proxy-api.js +3 -3
- package/build/esm/server/controllers/yt-proxy-api.js.map +1 -1
- package/build/esm/server/index.js +12 -8
- package/build/esm/server/index.js.map +1 -1
- package/build/esm/server/middlewares/authorization.d.ts +1 -1
- package/build/esm/server/middlewares/authorization.js +21 -16
- package/build/esm/server/middlewares/authorization.js.map +1 -1
- package/build/esm/server/middlewares/yt-auth.js +8 -7
- package/build/esm/server/middlewares/yt-auth.js.map +1 -1
- package/build/esm/server/routes.js +29 -26
- package/build/esm/server/routes.js.map +1 -1
- package/build/esm/server/utils/index.d.ts +1 -1
- package/build/esm/server/utils/index.js +12 -6
- package/build/esm/server/utils/index.js.map +1 -1
- package/build/esm/shared/yt-types.d.ts +1 -0
- package/build/esm/ui/common/utils/settings-remote-provider.d.ts +5 -5
- package/build/esm/ui/common/utils/settings-remote-provider.js +42 -16
- package/build/esm/ui/common/utils/settings-remote-provider.js.map +1 -1
- package/build/esm/ui/components/ElementsTable/ElementsTable.d.ts +1 -1
- package/build/esm/ui/components/Login/ChangePasswordFormPage/ChangePasswordFormPage.d.ts +2 -1
- package/build/esm/ui/components/Login/ChangePasswordFormPage/ChangePasswordFormPage.js +11 -6
- package/build/esm/ui/components/Login/ChangePasswordFormPage/ChangePasswordFormPage.js.map +1 -1
- package/build/esm/ui/components/Login/LoginFormPage/LoginFormPage.js +8 -5
- package/build/esm/ui/components/Login/LoginFormPage/LoginFormPage.js.map +1 -1
- package/build/esm/ui/config/ui-settings.d.ts +1 -0
- package/build/esm/ui/config/ui-settings.js +2 -1
- package/build/esm/ui/config/ui-settings.js.map +1 -1
- package/build/esm/ui/constants/index.d.ts +7 -0
- package/build/esm/ui/constants/index.js +1 -0
- package/build/esm/ui/constants/index.js.map +1 -1
- package/build/esm/ui/containers/App/App.js +4 -3
- package/build/esm/ui/containers/App/App.js.map +1 -1
- package/build/esm/ui/containers/AppNavigation/AppNavigationComponent.js +39 -22
- package/build/esm/ui/containers/AppNavigation/AppNavigationComponent.js.map +1 -1
- package/build/esm/ui/containers/ClusterPage/ClusterPage.d.ts +3 -1
- package/build/esm/ui/containers/ClusterPage/ClusterPage.js +4 -2
- package/build/esm/ui/containers/ClusterPage/ClusterPage.js.map +1 -1
- package/build/esm/ui/containers/ClustersMenu/ClusterMenuHeader.css +5 -0
- package/build/esm/ui/containers/ClustersMenu/ClusterMenuHeader.css.map +1 -1
- package/build/esm/ui/containers/ClustersMenu/ClusterMenuHeader.scss +6 -0
- package/build/esm/ui/containers/ClustersMenu/ClustersMenuBody.d.ts +3 -1
- package/build/esm/ui/containers/ClustersMenu/ClustersMenuBody.js +12 -4
- package/build/esm/ui/containers/ClustersMenu/ClustersMenuBody.js.map +1 -1
- package/build/esm/ui/containers/ClustersMenu/ClustersMenuHeader.d.ts +4 -4
- package/build/esm/ui/containers/ClustersMenu/ClustersMenuHeader.js.map +1 -1
- package/build/esm/ui/containers/MaintenancePage/HandleRedirect.js.map +1 -1
- package/build/esm/ui/entries/main.js +4 -1
- package/build/esm/ui/entries/main.js.map +1 -1
- package/build/esm/ui/pages/operations/selectors.d.ts +5 -0
- package/build/esm/ui/pages/query-tracker/module/queries_list/selectors.d.ts +20 -0
- package/build/esm/ui/pages/query-tracker/module/query/selectors.d.ts +5 -0
- package/build/esm/ui/pages/query-tracker/module/settings/selector.d.ts +5 -0
- package/build/esm/ui/pages/system/Chunks/Chunks.d.ts +1 -1
- package/build/esm/ui/store/actions/cluster-params.d.ts +1 -0
- package/build/esm/ui/store/actions/cluster-params.js +12 -0
- package/build/esm/ui/store/actions/cluster-params.js.map +1 -1
- package/build/esm/ui/store/actions/clusters-menu.d.ts +1 -0
- package/build/esm/ui/store/actions/clusters-menu.js +22 -3
- package/build/esm/ui/store/actions/clusters-menu.js.map +1 -1
- package/build/esm/ui/store/actions/global/index.d.ts +3 -1
- package/build/esm/ui/store/actions/global/index.js +19 -4
- package/build/esm/ui/store/actions/global/index.js.map +1 -1
- package/build/esm/ui/store/actions/navigation/content/table/columns-preset.d.ts +1 -1
- package/build/esm/ui/store/actions/navigation/content/table/columns-preset.js +6 -4
- package/build/esm/ui/store/actions/navigation/content/table/columns-preset.js.map +1 -1
- package/build/esm/ui/store/actions/navigation/content/table/table.js +2 -1
- package/build/esm/ui/store/actions/navigation/content/table/table.js.map +1 -1
- package/build/esm/ui/store/actions/settings/index.js +25 -19
- package/build/esm/ui/store/actions/settings/index.js.map +1 -1
- package/build/esm/ui/store/reducers/accounts/usage/index.d.ts +1 -1
- package/build/esm/ui/store/reducers/clusters-menu/clusters-menu.d.ts +4 -0
- package/build/esm/ui/store/reducers/clusters-menu/clusters-menu.js +9 -1
- package/build/esm/ui/store/reducers/clusters-menu/clusters-menu.js.map +1 -1
- package/build/esm/ui/store/reducers/index.d.ts +5 -0
- package/build/esm/ui/store/reducers/index.js.map +1 -1
- package/build/esm/ui/store/reducers/settings.js +1 -1
- package/build/esm/ui/store/reducers/settings.js.map +1 -1
- package/build/esm/ui/store/selectors/accounts/account-usage.d.ts +40 -0
- package/build/esm/ui/store/selectors/accounts/accounts-ts.d.ts +40 -0
- package/build/esm/ui/store/selectors/chaos_cell_bundles/index.d.ts +55 -0
- package/build/esm/ui/store/selectors/chyt/index.d.ts +35 -0
- package/build/esm/ui/store/selectors/components/node/memory.d.ts +35 -0
- package/build/esm/ui/store/selectors/components/node-maintenance-modal.d.ts +15 -0
- package/build/esm/ui/store/selectors/components/nodes/node-card.d.ts +5 -0
- package/build/esm/ui/store/selectors/components/nodes/nodes/data.d.ts +10 -0
- package/build/esm/ui/store/selectors/components/nodes/nodes/predicates.d.ts +30 -0
- package/build/esm/ui/store/selectors/components/versions/versions_v2-ts.d.ts +10 -0
- package/build/esm/ui/store/selectors/components/versions/versions_v2.d.ts +25 -0
- package/build/esm/ui/store/selectors/global/index.d.ts +912 -0
- package/build/esm/ui/store/selectors/global/index.js +10 -1
- package/build/esm/ui/store/selectors/global/index.js.map +1 -1
- package/build/esm/ui/store/selectors/global/supported-features.d.ts +30 -0
- package/build/esm/ui/store/selectors/modals/errors.d.ts +5 -0
- package/build/esm/ui/store/selectors/navigation/content/document.d.ts +5 -0
- package/build/esm/ui/store/selectors/navigation/content/replicated-table.d.ts +15 -0
- package/build/esm/ui/store/selectors/navigation/content/table-mount-config.d.ts +5 -0
- package/build/esm/ui/store/selectors/navigation/content/table-ts.d.ts +20 -0
- package/build/esm/ui/store/selectors/navigation/content/table.d.ts +35 -0
- package/build/esm/ui/store/selectors/navigation/modals/attributes-editor.d.ts +15 -0
- package/build/esm/ui/store/selectors/navigation/modals/remote-copy-modal.d.ts +5 -0
- package/build/esm/ui/store/selectors/navigation/navigation.d.ts +10 -0
- package/build/esm/ui/store/selectors/navigation/tabs/access-log.d.ts +5 -0
- package/build/esm/ui/store/selectors/navigation/tabs/annotation.d.ts +5 -0
- package/build/esm/ui/store/selectors/navigation/tabs/consumer.d.ts +5 -0
- package/build/esm/ui/store/selectors/navigation/tabs/locks.d.ts +10 -0
- package/build/esm/ui/store/selectors/navigation/tabs/queue.d.ts +10 -0
- package/build/esm/ui/store/selectors/navigation/tabs/tablet-errors.d.ts +5 -0
- package/build/esm/ui/store/selectors/operations/index.d.ts +60 -0
- package/build/esm/ui/store/selectors/operations/jobs-monitor.d.ts +20 -0
- package/build/esm/ui/store/selectors/operations/operation.d.ts +60 -0
- package/build/esm/ui/store/selectors/operations/operations-list.d.ts +15 -0
- package/build/esm/ui/store/selectors/operations/statistics-v2.d.ts +40 -0
- package/build/esm/ui/store/selectors/scheduling/attributes-to-filter.d.ts +5 -0
- package/build/esm/ui/store/selectors/scheduling/create-pool-dialog.d.ts +5 -0
- package/build/esm/ui/store/selectors/scheduling/expanded-pools.d.ts +5 -0
- package/build/esm/ui/store/selectors/scheduling/index.d.ts +5 -0
- package/build/esm/ui/store/selectors/scheduling/scheduling-pools.d.ts +15 -0
- package/build/esm/ui/store/selectors/scheduling/scheduling-ts.d.ts +30 -0
- package/build/esm/ui/store/selectors/scheduling/scheduling.d.ts +100 -0
- package/build/esm/ui/store/selectors/tablet_cell_bundles/index.d.ts +75 -0
- package/build/esm/ui/store/selectors/thor/support.d.ts +25 -0
- package/dist/public/build/assets-manifest.json +12 -12
- package/dist/public/build/css/main.8a4cd357.css +2 -0
- package/dist/public/build/css/main.8a4cd357.css.map +1 -0
- package/dist/public/build/js/{861.9703a31c.chunk.js → 861.a0939319.chunk.js} +2 -2
- package/dist/public/build/js/861.a0939319.chunk.js.map +1 -0
- package/dist/public/build/js/main.72d0cb41.js +3 -0
- package/dist/public/build/js/{main.005c6512.js.map → main.72d0cb41.js.map} +1 -1
- package/dist/public/build/js/runtime.0ac0f2e8.js +2 -0
- package/dist/public/build/js/{runtime.a87a1f88.js.map → runtime.0ac0f2e8.js.map} +1 -1
- package/dist/public/build/manifest.json +8 -8
- package/dist/server/components/layout-config.js +3 -3
- package/dist/server/components/requestsSetup.js +13 -5
- package/dist/server/components/settings.d.ts +10 -5
- package/dist/server/components/settings.js +24 -23
- package/dist/server/components/table.d.ts +3 -3
- package/dist/server/components/table.js +4 -4
- package/dist/server/components/yt-auth.d.ts +0 -2
- package/dist/server/components/yt-auth.js +5 -14
- package/dist/server/configs/common.js +5 -13
- package/dist/server/configs/local.js +0 -5
- package/dist/server/controllers/chyt-api.js +1 -1
- package/dist/server/controllers/cluster-info.js +2 -2
- package/dist/server/controllers/cluster-params.js +1 -1
- package/dist/server/controllers/clusters.d.ts +1 -0
- package/dist/server/controllers/clusters.js +24 -1
- package/dist/server/controllers/home.js +10 -6
- package/dist/server/controllers/login.js +18 -5
- package/dist/server/controllers/odin-proxy-api.js +1 -1
- package/dist/server/controllers/scheduling-pools.js +2 -2
- package/dist/server/controllers/settings.js +10 -10
- package/dist/server/controllers/table-column-preset.js +4 -3
- package/dist/server/controllers/yt-api.js +1 -1
- package/dist/server/controllers/yt-proxy-api.js +2 -2
- package/dist/server/index.js +11 -8
- package/dist/server/middlewares/authorization.d.ts +1 -1
- package/dist/server/middlewares/authorization.js +3 -2
- package/dist/server/middlewares/yt-auth.js +3 -2
- package/dist/server/routes.js +26 -25
- package/dist/server/utils/index.d.ts +1 -1
- package/dist/server/utils/index.js +12 -4
- package/package.json +3 -3
- package/dist/public/build/css/main.4aa70d7b.css +0 -2
- package/dist/public/build/css/main.4aa70d7b.css.map +0 -1
- package/dist/public/build/js/861.9703a31c.chunk.js.map +0 -1
- package/dist/public/build/js/main.005c6512.js +0 -3
- package/dist/public/build/js/runtime.a87a1f88.js +0 -2
- /package/dist/public/build/js/{main.005c6512.js.LICENSE.txt → main.72d0cb41.js.LICENSE.txt} +0 -0
@@ -35,7 +35,7 @@ import ErrorBlock from '../../components/Error/Error';
|
|
35
35
|
import { LOADING_STATUS, LOAD_ERROR, Page, SPLIT_PANE_ID } from '../../constants/index';
|
36
36
|
import { joinMenuItemsAction, splitMenuItemsAction, trackVisit } from '../../store/actions/menu';
|
37
37
|
import { setSetting } from '../../store/actions/settings';
|
38
|
-
import { initClusterParams, updateCluster } from '../../store/actions/cluster-params';
|
38
|
+
import { initClusterParams, unmountCluster, updateCluster } from '../../store/actions/cluster-params';
|
39
39
|
import { updateTitle } from '../../store/actions/global';
|
40
40
|
import { getClusterUiConfig, isQueryTrackerAllowed } from '../../store/selectors/global';
|
41
41
|
import { getClusterConfig } from '../../utils';
|
@@ -155,6 +155,7 @@ var ClusterPage = /*#__PURE__*/function (_Component) {
|
|
155
155
|
path: '',
|
156
156
|
page: ''
|
157
157
|
});
|
158
|
+
this.props.unmountCluster();
|
158
159
|
}
|
159
160
|
}, {
|
160
161
|
key: "_initMenuCollection",
|
@@ -394,7 +395,8 @@ var mapDispatchToProps = {
|
|
394
395
|
joinMenuItemsAction: joinMenuItemsAction,
|
395
396
|
updateTitle: updateTitle,
|
396
397
|
initClusterParams: initClusterParams,
|
397
|
-
updateCluster: updateCluster
|
398
|
+
updateCluster: updateCluster,
|
399
|
+
unmountCluster: unmountCluster
|
398
400
|
};
|
399
401
|
export default connect(mapStateToProps, mapDispatchToProps)(ClusterPage);
|
400
402
|
function RedirectToBanIfNeeded(_ref2) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["React","Component","Fragment","Redirect","Route","Switch","useLocation","connect","useSelector","cn","BanPage","MaintenancePage","HandleMaintenanceRedirect","Components","Operations","Accounts","Dashboard","System","Navigation","PathViewer","Tablet","TabletCellBundles","GroupsPage","UsersPage","Scheduling","QueryTracker","Job","ChytPage","ClusterPageHeader","PageTracker","PageHeadByCluster","ConnectionErrorRegion","GeneralErrorRegion","FlexSplitPane","ErrorBlock","LOADING_STATUS","LOAD_ERROR","Page","SPLIT_PANE_ID","joinMenuItemsAction","splitMenuItemsAction","trackVisit","setSetting","initClusterParams","updateCluster","updateTitle","getClusterUiConfig","isQueryTrackerAllowed","getClusterConfig","NAMESPACES","SettingName","getClusterPagePaneSizes","getStartingPage","isRecentClustersFirst","isRecentPagesFirst","isRedirectToBetaSwitched","SupportedFeaturesUpdater","useRumMeasureStart","useRumMeasureStop","RumMeasureTypes","useClusterFromLocation","makeExtraPageRoutes","odinPageInfo","hasOdinPage","jsx","_jsx","jsxs","_jsxs","b","RedirectToBanIfNeededMemo","memo","RedirectToBanIfNeeded","ClusterPage","_Component","_inherits","_super","_createSuper","_this","_classCallCheck","_len","arguments","length","args","Array","_key","call","apply","concat","state","width","contentPaneRef","createRef","_onUpdateEnd","_this$props","props","cluster","Promise","resolve","then","DEVELOPMENT","REDIRECT_TO_BETA_SWITCHED","REDIRECT_TO_BETA","_initMenuCollection","onResize","splitScreen","toolbar","document","querySelector","isSplit","gutterWidth","offset","getElementById","clientWidth","style","right","window","dispatchEvent","Event","handleSplit","updateWidthModifier","onResizeEnd","sizes","NAVIGATION","CLUSTER_PAGE_PANE_SIZES","getInitialSizes","clusterPagePaneSizes","_createClass","key","value","componentDidMount","getSnapshotBeforeUpdate","prevProps","pageYOffset","current","scrollTop","componentDidUpdate","prevState","prevScroll","scrollBy","prevCluster","componentWillUnmount","path","page","itemName","_this$props2","settingsMap","_this$contentPaneRef$","currentWidth","Infinity","setState","renderError","clusterConfig","_ref","error","errorType","CONNECTION","id","AUTHENTICATION","message","GENERAL","isParamsLoading","_this$props3","paramsCluster","renderContent","_this$props4","startingPage","isLoaded","hasError","paramsError","allowChyt","allowQueryTracker","children","to","BAN","component","MAINTENANCE","COMPONENTS","OPERATIONS","JOB","DASHBOARD","SYSTEM","ACCOUNTS","TABLET_CELL_BUNDLES","CHAOS_CELL_BUNDLES","PATH_VIEWER","TABLET","USERS","GROUPS","SCHEDULING","CHYT","QUERIES","pageId","reactComponent","from","VERSIONS","className","render","_this$props5","clusters","ClusterPageStopRumMeasure","paneClassNames","direction","HORIZONTAL","onSplit","onUnSplit","minSize","ref","split","mapStateToProps","_state$global","global","login","maintenancePageEvent","loadState","paramsLoading","clustersMenu","LOADED","ERROR","Boolean","chyt_controller_base_url","mapDispatchToProps","_ref2","_useSelector","blocked","banned","_useLocation","pathname","enableRedirect","endsWith","type","CLUSTER_PARAMS","subPage","allowStop","_ref3","_ref4","_slicedToArray","startDeps","_ref5","_ref6","stopDeps"],"sources":["ClusterPage.js"],"sourcesContent":["import React, {Component, Fragment} from 'react';\nimport {Redirect, Route, Switch, useLocation} from 'react-router';\nimport {connect, useSelector} from 'react-redux';\nimport PropTypes from 'prop-types';\nimport cn from 'bem-cn-lite';\n\nimport BanPage from '../BanPage/BanPage';\nimport MaintenancePage from '../MaintenancePage/MaintenancePage';\nimport HandleMaintenanceRedirect from '../MaintenancePage/HandleRedirect';\nimport Components from '../../pages/components/Components/Components';\nimport Operations from '../../pages/operations/Operations/Operations';\nimport Accounts from '../../pages/accounts/Accounts/Accounts';\nimport Dashboard from '../../pages/dashboard/Dashboard/Dashboard';\nimport System from '../../pages/system/System/System';\nimport Navigation from '../../pages/navigation/Navigation/Navigation';\nimport PathViewer from '../../pages/path-viewer/PathViewer';\nimport Tablet from '../../pages/tablet/Tablet';\nimport TabletCellBundles from '../../pages/tablet_cell_bundles/TabletCellBundles';\nimport GroupsPage from '../../pages/groups/GroupsPage';\nimport UsersPage from '../../pages/users/UsersPage';\nimport Scheduling from '../../pages/scheduling/Scheduling/Scheduling';\nimport QueryTracker from '../../pages/query-tracker/QueryTracker';\nimport Job from '../../pages/job/Job';\nimport {ChytPage} from '../../pages/chyt';\n\nimport ClusterPageHeader from '../ClusterPageHeader/ClusterPageHeader';\nimport PageTracker from './PageTracker';\n\nimport {PageHeadByCluster} from '../../components/PageHead/PageHead';\nimport ConnectionErrorRegion from '../../components/PreloaderErrors/ConnectionErrorRegion';\nimport GeneralErrorRegion from '../../components/PreloaderErrors/GeneralErrorRegion';\nimport FlexSplitPane from '../../components/FlexSplitPane/FlexSplitPane';\nimport ErrorBlock from '../../components/Error/Error';\n\nimport {LOADING_STATUS, LOAD_ERROR, Page, SPLIT_PANE_ID} from '../../constants/index';\nimport {joinMenuItemsAction, splitMenuItemsAction, trackVisit} from '../../store/actions/menu';\nimport {setSetting} from '../../store/actions/settings';\nimport {initClusterParams, updateCluster} from '../../store/actions/cluster-params';\nimport {updateTitle} from '../../store/actions/global';\nimport {getClusterUiConfig, isQueryTrackerAllowed} from '../../store/selectors/global';\nimport {getClusterConfig} from '../../utils';\nimport {NAMESPACES, SettingName} from '../../../shared/constants/settings';\nimport {\n getClusterPagePaneSizes,\n getStartingPage,\n isRecentClustersFirst,\n isRecentPagesFirst,\n isRedirectToBetaSwitched,\n} from '../../store/selectors/settings';\nimport SupportedFeaturesUpdater from './SupportedFeaturesUpdater';\nimport {useRumMeasureStart, useRumMeasureStop} from '../../rum/RumUiContext';\nimport {RumMeasureTypes} from '../../rum/rum-measure-types';\nimport {useClusterFromLocation} from '../../hooks/use-cluster';\nimport {makeExtraPageRoutes} from './ExtraClusterPageRoutes';\nimport {odinPageInfo} from '../../pages/odin';\nimport {hasOdinPage} from '../../config';\n\nimport './ClusterPage.scss';\n\nconst b = cn('cluster-page');\n\nconst RedirectToBanIfNeededMemo = React.memo(RedirectToBanIfNeeded);\n\nclass ClusterPage extends Component {\n static propTypes = {\n cluster: PropTypes.string,\n\n // from connect\n clusters: PropTypes.object.isRequired,\n clusterPagePaneSizes: PropTypes.array,\n login: PropTypes.string,\n queriesPageAllowed: PropTypes.bool,\n maintenancePageEvent: PropTypes.object,\n startingPage: PropTypes.string.isRequired,\n isLoaded: PropTypes.bool.isRequired,\n hasError: PropTypes.bool.isRequired,\n error: PropTypes.shape({\n errorType: PropTypes.string,\n }).isRequired,\n paramsError: PropTypes.any,\n splitScreen: PropTypes.shape({\n isSplit: PropTypes.bool.isRequired,\n paneClassNames: PropTypes.array.isRequired,\n }).isRequired,\n\n splitMenuItemsAction: PropTypes.func.isRequired,\n setSetting: PropTypes.func.isRequired,\n joinMenuItemsAction: PropTypes.func.isRequired,\n initClusterParams: PropTypes.func.isRequired,\n updateCluster: PropTypes.func.isRequired,\n updateTitle: PropTypes.func.isRequired,\n trackVisit: PropTypes.func.isRequired,\n\n allowChyt: PropTypes.bool,\n allowQueryTracker: PropTypes.bool,\n };\n\n state = {\n width: 'large',\n };\n\n componentDidMount() {\n const {cluster} = this.props;\n this.props.updateCluster(cluster, this._onUpdateEnd);\n }\n\n getSnapshotBeforeUpdate(prevProps) {\n if (prevProps.splitScreen.isSplit !== this.props.splitScreen.isSplit) {\n return this.props.splitScreen.isSplit\n ? window.pageYOffset\n : this.contentPaneRef.current.scrollTop;\n }\n\n return null;\n }\n\n componentDidUpdate(prevProps, prevState, prevScroll) {\n if (prevScroll !== null) {\n if (this.props.splitScreen.isSplit) {\n this.contentPaneRef.current.scrollTop = prevScroll;\n }\n\n window.scrollBy(0, prevScroll);\n }\n\n const {cluster: prevCluster} = prevProps;\n const {cluster} = this.props;\n\n if (cluster !== prevCluster) {\n this.props.updateCluster(cluster, this._onUpdateEnd);\n }\n }\n\n componentWillUnmount() {\n this.props.updateTitle({path: '', page: ''});\n }\n\n contentPaneRef = React.createRef();\n\n _onUpdateEnd = () => {\n const {\n cluster,\n trackVisit,\n updateTitle,\n initClusterParams,\n isRedirectToBetaSwitched,\n setSetting,\n } = this.props;\n\n return Promise.resolve().then(() => {\n // todo: get rid of redirectToBetaSwitched setting.\n // It`s exist for set default value of redirectToBeta setting, when settings document is empty yet.\n // Set redirectToBeta on server after get all user settings (home.js). Or get rid of this logic at all.\n if (!isRedirectToBetaSwitched) {\n setSetting(\n SettingName.DEVELOPMENT.REDIRECT_TO_BETA_SWITCHED,\n NAMESPACES.DEVELOPMENT,\n true,\n );\n setSetting(SettingName.DEVELOPMENT.REDIRECT_TO_BETA, NAMESPACES.DEVELOPMENT, true);\n }\n\n initClusterParams(cluster);\n this._initMenuCollection('cluster');\n this._initMenuCollection('page');\n trackVisit('cluster', cluster);\n updateTitle({cluster});\n });\n };\n\n _initMenuCollection(itemName) {\n const {splitMenuItemsAction, joinMenuItemsAction} = this.props;\n\n const settingsMap = {\n cluster: 'isRecentClustersFirst',\n page: 'isRecentPagesFirst',\n };\n\n if (this.props[settingsMap[itemName]]) {\n splitMenuItemsAction(itemName);\n } else {\n joinMenuItemsAction(`${itemName}s`);\n }\n }\n\n onResize = () => {\n const {splitScreen} = this.props;\n const toolbar = document.querySelector('#elements-toolbar');\n\n if (splitScreen.isSplit && toolbar) {\n const gutterWidth = 10;\n const offset = document.getElementById(SPLIT_PANE_ID).clientWidth + gutterWidth;\n toolbar.style.right = `${offset}px`;\n } else if (toolbar) {\n toolbar.style.right = '0';\n }\n\n window.dispatchEvent(new Event('resize'));\n };\n\n handleSplit = () => {\n this.onResize();\n // fight the table toolbar becoming invisible after toggling YQLWidget and before first scroll\n window.dispatchEvent(new Event('scroll'));\n this.updateWidthModifier();\n };\n\n updateWidthModifier() {\n const currentWidth = this.contentPaneRef.current?.clientWidth || Infinity;\n if (currentWidth <= 720) {\n this.setState({width: 'small'});\n } else if (currentWidth <= 1024) {\n this.setState({width: 'medium'});\n } else {\n this.setState({width: 'large'});\n }\n }\n\n onResizeEnd = (sizes) => {\n this.props.setSetting(\n SettingName.NAVIGATION.CLUSTER_PAGE_PANE_SIZES,\n NAMESPACES.NAVIGATION,\n sizes,\n );\n this.updateWidthModifier();\n };\n\n getInitialSizes = () => {\n return this.props.clusterPagePaneSizes;\n };\n\n renderError(clusterConfig) {\n const {errorType} = this.props.error || {};\n\n switch (errorType) {\n case LOAD_ERROR.CONNECTION:\n return <ConnectionErrorRegion cluster={clusterConfig.id} />;\n case LOAD_ERROR.AUTHENTICATION:\n return (\n <GeneralErrorRegion\n cluster={clusterConfig.id}\n message={\n 'Could not fetch the XSRF token, therefore preventing further operations. Sometimes ' +\n 'token fetching fails due to the network issues. If the problem persists, please report it ' +\n 'via Bug Reporter.'\n }\n />\n );\n case LOAD_ERROR.GENERAL:\n return (\n <GeneralErrorRegion message=\"Unexpected error occurred. If problem persists please report it via Bug Reporter.\" />\n );\n }\n }\n\n isParamsLoading() {\n const {cluster, paramsCluster} = this.props;\n return cluster !== paramsCluster;\n }\n\n renderContent(clusterConfig) {\n const {\n cluster,\n startingPage,\n isLoaded,\n hasError,\n paramsError,\n allowChyt,\n allowQueryTracker,\n } = this.props;\n\n return isLoaded && !this.isParamsLoading() ? (\n <Fragment>\n <SupportedFeaturesUpdater />\n <HandleMaintenanceRedirect />\n <RedirectToBanIfNeededMemo to={`/${cluster}/${Page.BAN}`} />\n <Switch>\n <Route path={`/:cluster/${Page.BAN}`} component={BanPage} />\n <Route path={`/:cluster/${Page.MAINTENANCE}`} component={MaintenancePage} />\n <Route path={`/:cluster/${Page.COMPONENTS}`} component={Components} />\n <Route path={`/:cluster/${Page.OPERATIONS}`} component={Operations} />\n <Route path={`/:cluster/${Page.JOB}`} component={Job} />\n <Route path={`/:cluster/${Page.DASHBOARD}`} component={Dashboard} />\n <Route path={`/:cluster/${Page.SYSTEM}`} component={System} />\n <Route path={`/:cluster/${Page.ACCOUNTS}`} component={Accounts} />\n <Route\n path={[\n `/:cluster/${Page.TABLET_CELL_BUNDLES}`,\n `/:cluster/${Page.CHAOS_CELL_BUNDLES}`,\n ]}\n component={TabletCellBundles}\n />\n <Route path={`/:cluster/${Page.NAVIGATION}`} component={Navigation} />\n <Route path={`/:cluster/${Page.PATH_VIEWER}`} component={PathViewer} />\n <Route path={`/:cluster/${Page.TABLET}`} component={Tablet} />\n <Route path={`/:cluster/${Page.USERS}`} component={UsersPage} />\n <Route path={`/:cluster/${Page.GROUPS}`} component={GroupsPage} />\n <Route path={`/:cluster/${Page.SCHEDULING}`} component={Scheduling} />\n {allowChyt && <Route path={`/:cluster/${Page.CHYT}`} component={ChytPage} />}\n {allowQueryTracker && (\n <Route path={`/:cluster/${Page.QUERIES}`} component={QueryTracker} />\n )}\n {hasOdinPage() && (\n <Route\n path={`/:cluster/${odinPageInfo.pageId}`}\n component={odinPageInfo.reactComponent}\n />\n )}\n\n <Redirect\n from={`/:cluster/${Page.VERSIONS}`}\n to={`/:cluster/${Page.COMPONENTS}/versions`}\n />\n {makeExtraPageRoutes()}\n <Redirect from={`/${cluster}/`} to={`/${cluster}/${startingPage}`} />\n </Switch>\n\n <Route path=\"/:cluster/:page/:tab?\" component={PageTracker} />\n </Fragment>\n ) : (\n <React.Fragment>\n <div className=\"preloader\">\n {hasError ? (\n this.renderError(clusterConfig)\n ) : (\n <p className=\"preloader__loading\">Loading {clusterConfig?.id}...</p>\n )}\n </div>\n <div className={b('error')}>\n {paramsError && <ErrorBlock error={paramsError} />}\n </div>\n </React.Fragment>\n );\n }\n\n render() {\n const {cluster, splitScreen, clusters} = this.props;\n\n // TODO: put current cluster config into redux state to avoid doing things like these here\n const clusterConfig = getClusterConfig(clusters, cluster);\n\n // FIXME: handle case when clusterConfig is undefined due to wrong cluster name\n return (\n <Fragment>\n <ClusterPageStopRumMeasure />\n <PageHeadByCluster cluster={cluster} />\n\n <ClusterPageHeader />\n\n <FlexSplitPane\n className={b('panes-wrapper', {\n 'with-pane': splitScreen.isSplit,\n })}\n paneClassNames={splitScreen.paneClassNames}\n direction={FlexSplitPane.HORIZONTAL}\n onResize={this.onResize}\n onResizeEnd={this.onResizeEnd}\n onSplit={this.handleSplit}\n onUnSplit={this.handleSplit}\n minSize={600}\n getInitialSizes={this.getInitialSizes}\n id={SPLIT_PANE_ID}\n >\n <div\n ref={this.contentPaneRef}\n className={b('content-pane', {\n split: splitScreen.isSplit && 'yes',\n width: this.state.width,\n })}\n >\n {this.renderContent(clusterConfig)}\n </div>\n\n {null}\n </FlexSplitPane>\n </Fragment>\n );\n }\n}\n\nfunction mapStateToProps(state) {\n const {\n login,\n maintenancePageEvent,\n splitScreen,\n loadState,\n error,\n paramsCluster,\n paramsLoading,\n paramsError,\n } = state.global;\n\n const clusters = state.clustersMenu.clusters;\n\n return {\n clusters,\n isLoaded: !paramsLoading && loadState === LOADING_STATUS.LOADED,\n hasError: loadState === LOADING_STATUS.ERROR,\n error,\n paramsError,\n login,\n splitScreen,\n maintenancePageEvent,\n isRedirectToBetaSwitched: isRedirectToBetaSwitched(state),\n isRecentClustersFirst: isRecentClustersFirst(state),\n isRecentPagesFirst: isRecentPagesFirst(state),\n clusterPagePaneSizes: getClusterPagePaneSizes(state),\n startingPage: getStartingPage(state),\n paramsCluster,\n allowQueryTracker: isQueryTrackerAllowed(state),\n allowChyt: Boolean(getClusterUiConfig(state).chyt_controller_base_url),\n };\n}\n\nconst mapDispatchToProps = {\n setSetting,\n trackVisit,\n splitMenuItemsAction,\n joinMenuItemsAction,\n updateTitle,\n initClusterParams,\n updateCluster,\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(ClusterPage);\n\nfunction RedirectToBanIfNeeded({to}) {\n const {blocked, banned} = useSelector((state) => state.global);\n const {pathname} = useLocation();\n const enableRedirect = (banned || blocked) && !pathname.endsWith('/ban');\n\n if (!enableRedirect) {\n return null;\n }\n\n return <Redirect to={to} />;\n}\n\nfunction ClusterPageStopRumMeasure() {\n const loadState = useSelector((state) => state.global.loadState);\n const paramsLoading = useSelector((state) => state.global.paramsLoading);\n\n const isLoaded =\n loadState === LOADING_STATUS.ERROR ||\n (!paramsLoading && loadState === LOADING_STATUS.LOADED);\n\n const cluster = useClusterFromLocation();\n\n useRumMeasureStart({\n type: RumMeasureTypes.CLUSTER_PARAMS,\n subPage: `ui.${cluster}`,\n allowStop: ([isLoaded]) => !isLoaded,\n startDeps: [isLoaded],\n });\n\n useRumMeasureStop({\n type: RumMeasureTypes.CLUSTER_PARAMS,\n allowStop: ([isLoaded]) => isLoaded,\n stopDeps: [isLoaded],\n });\n return null;\n}\n"],"mappings":"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"}
|
1
|
+
{"version":3,"names":["React","Component","Fragment","Redirect","Route","Switch","useLocation","connect","useSelector","cn","BanPage","MaintenancePage","HandleMaintenanceRedirect","Components","Operations","Accounts","Dashboard","System","Navigation","PathViewer","Tablet","TabletCellBundles","GroupsPage","UsersPage","Scheduling","QueryTracker","Job","ChytPage","ClusterPageHeader","PageTracker","PageHeadByCluster","ConnectionErrorRegion","GeneralErrorRegion","FlexSplitPane","ErrorBlock","LOADING_STATUS","LOAD_ERROR","Page","SPLIT_PANE_ID","joinMenuItemsAction","splitMenuItemsAction","trackVisit","setSetting","initClusterParams","unmountCluster","updateCluster","updateTitle","getClusterUiConfig","isQueryTrackerAllowed","getClusterConfig","NAMESPACES","SettingName","getClusterPagePaneSizes","getStartingPage","isRecentClustersFirst","isRecentPagesFirst","isRedirectToBetaSwitched","SupportedFeaturesUpdater","useRumMeasureStart","useRumMeasureStop","RumMeasureTypes","useClusterFromLocation","makeExtraPageRoutes","odinPageInfo","hasOdinPage","jsx","_jsx","jsxs","_jsxs","b","RedirectToBanIfNeededMemo","memo","RedirectToBanIfNeeded","ClusterPage","_Component","_inherits","_super","_createSuper","_this","_classCallCheck","_len","arguments","length","args","Array","_key","call","apply","concat","state","width","contentPaneRef","createRef","_onUpdateEnd","_this$props","props","cluster","Promise","resolve","then","DEVELOPMENT","REDIRECT_TO_BETA_SWITCHED","REDIRECT_TO_BETA","_initMenuCollection","onResize","splitScreen","toolbar","document","querySelector","isSplit","gutterWidth","offset","getElementById","clientWidth","style","right","window","dispatchEvent","Event","handleSplit","updateWidthModifier","onResizeEnd","sizes","NAVIGATION","CLUSTER_PAGE_PANE_SIZES","getInitialSizes","clusterPagePaneSizes","_createClass","key","value","componentDidMount","getSnapshotBeforeUpdate","prevProps","pageYOffset","current","scrollTop","componentDidUpdate","prevState","prevScroll","scrollBy","prevCluster","componentWillUnmount","path","page","itemName","_this$props2","settingsMap","_this$contentPaneRef$","currentWidth","Infinity","setState","renderError","clusterConfig","_ref","error","errorType","CONNECTION","id","AUTHENTICATION","message","GENERAL","isParamsLoading","_this$props3","paramsCluster","renderContent","_this$props4","startingPage","isLoaded","hasError","paramsError","allowChyt","allowQueryTracker","children","to","BAN","component","MAINTENANCE","COMPONENTS","OPERATIONS","JOB","DASHBOARD","SYSTEM","ACCOUNTS","TABLET_CELL_BUNDLES","CHAOS_CELL_BUNDLES","PATH_VIEWER","TABLET","USERS","GROUPS","SCHEDULING","CHYT","QUERIES","pageId","reactComponent","from","VERSIONS","className","render","_this$props5","clusters","ClusterPageStopRumMeasure","paneClassNames","direction","HORIZONTAL","onSplit","onUnSplit","minSize","ref","split","mapStateToProps","_state$global","global","login","maintenancePageEvent","loadState","paramsLoading","clustersMenu","LOADED","ERROR","Boolean","chyt_controller_base_url","mapDispatchToProps","_ref2","_useSelector","blocked","banned","_useLocation","pathname","enableRedirect","endsWith","type","CLUSTER_PARAMS","subPage","allowStop","_ref3","_ref4","_slicedToArray","startDeps","_ref5","_ref6","stopDeps"],"sources":["ClusterPage.js"],"sourcesContent":["import React, {Component, Fragment} from 'react';\nimport {Redirect, Route, Switch, useLocation} from 'react-router';\nimport {connect, useSelector} from 'react-redux';\nimport PropTypes from 'prop-types';\nimport cn from 'bem-cn-lite';\n\nimport BanPage from '../BanPage/BanPage';\nimport MaintenancePage from '../MaintenancePage/MaintenancePage';\nimport HandleMaintenanceRedirect from '../MaintenancePage/HandleRedirect';\nimport Components from '../../pages/components/Components/Components';\nimport Operations from '../../pages/operations/Operations/Operations';\nimport Accounts from '../../pages/accounts/Accounts/Accounts';\nimport Dashboard from '../../pages/dashboard/Dashboard/Dashboard';\nimport System from '../../pages/system/System/System';\nimport Navigation from '../../pages/navigation/Navigation/Navigation';\nimport PathViewer from '../../pages/path-viewer/PathViewer';\nimport Tablet from '../../pages/tablet/Tablet';\nimport TabletCellBundles from '../../pages/tablet_cell_bundles/TabletCellBundles';\nimport GroupsPage from '../../pages/groups/GroupsPage';\nimport UsersPage from '../../pages/users/UsersPage';\nimport Scheduling from '../../pages/scheduling/Scheduling/Scheduling';\nimport QueryTracker from '../../pages/query-tracker/QueryTracker';\nimport Job from '../../pages/job/Job';\nimport {ChytPage} from '../../pages/chyt';\n\nimport ClusterPageHeader from '../ClusterPageHeader/ClusterPageHeader';\nimport PageTracker from './PageTracker';\n\nimport {PageHeadByCluster} from '../../components/PageHead/PageHead';\nimport ConnectionErrorRegion from '../../components/PreloaderErrors/ConnectionErrorRegion';\nimport GeneralErrorRegion from '../../components/PreloaderErrors/GeneralErrorRegion';\nimport FlexSplitPane from '../../components/FlexSplitPane/FlexSplitPane';\nimport ErrorBlock from '../../components/Error/Error';\n\nimport {LOADING_STATUS, LOAD_ERROR, Page, SPLIT_PANE_ID} from '../../constants/index';\nimport {joinMenuItemsAction, splitMenuItemsAction, trackVisit} from '../../store/actions/menu';\nimport {setSetting} from '../../store/actions/settings';\nimport {initClusterParams, unmountCluster, updateCluster} from '../../store/actions/cluster-params';\nimport {updateTitle} from '../../store/actions/global';\nimport {getClusterUiConfig, isQueryTrackerAllowed} from '../../store/selectors/global';\nimport {getClusterConfig} from '../../utils';\nimport {NAMESPACES, SettingName} from '../../../shared/constants/settings';\nimport {\n getClusterPagePaneSizes,\n getStartingPage,\n isRecentClustersFirst,\n isRecentPagesFirst,\n isRedirectToBetaSwitched,\n} from '../../store/selectors/settings';\nimport SupportedFeaturesUpdater from './SupportedFeaturesUpdater';\nimport {useRumMeasureStart, useRumMeasureStop} from '../../rum/RumUiContext';\nimport {RumMeasureTypes} from '../../rum/rum-measure-types';\nimport {useClusterFromLocation} from '../../hooks/use-cluster';\nimport {makeExtraPageRoutes} from './ExtraClusterPageRoutes';\nimport {odinPageInfo} from '../../pages/odin';\nimport {hasOdinPage} from '../../config';\n\nimport './ClusterPage.scss';\n\nconst b = cn('cluster-page');\n\nconst RedirectToBanIfNeededMemo = React.memo(RedirectToBanIfNeeded);\n\nclass ClusterPage extends Component {\n static propTypes = {\n cluster: PropTypes.string,\n\n // from connect\n clusters: PropTypes.object.isRequired,\n clusterPagePaneSizes: PropTypes.array,\n login: PropTypes.string,\n queriesPageAllowed: PropTypes.bool,\n maintenancePageEvent: PropTypes.object,\n startingPage: PropTypes.string.isRequired,\n isLoaded: PropTypes.bool.isRequired,\n hasError: PropTypes.bool.isRequired,\n error: PropTypes.shape({\n errorType: PropTypes.string,\n }).isRequired,\n paramsError: PropTypes.any,\n splitScreen: PropTypes.shape({\n isSplit: PropTypes.bool.isRequired,\n paneClassNames: PropTypes.array.isRequired,\n }).isRequired,\n\n splitMenuItemsAction: PropTypes.func.isRequired,\n setSetting: PropTypes.func.isRequired,\n joinMenuItemsAction: PropTypes.func.isRequired,\n initClusterParams: PropTypes.func.isRequired,\n updateCluster: PropTypes.func.isRequired,\n updateTitle: PropTypes.func.isRequired,\n unmountCluster: PropTypes.func.isRequired,\n trackVisit: PropTypes.func.isRequired,\n\n allowChyt: PropTypes.bool,\n allowQueryTracker: PropTypes.bool,\n };\n\n state = {\n width: 'large',\n };\n\n componentDidMount() {\n const {cluster} = this.props;\n this.props.updateCluster(cluster, this._onUpdateEnd);\n }\n\n getSnapshotBeforeUpdate(prevProps) {\n if (prevProps.splitScreen.isSplit !== this.props.splitScreen.isSplit) {\n return this.props.splitScreen.isSplit\n ? window.pageYOffset\n : this.contentPaneRef.current.scrollTop;\n }\n\n return null;\n }\n\n componentDidUpdate(prevProps, prevState, prevScroll) {\n if (prevScroll !== null) {\n if (this.props.splitScreen.isSplit) {\n this.contentPaneRef.current.scrollTop = prevScroll;\n }\n\n window.scrollBy(0, prevScroll);\n }\n\n const {cluster: prevCluster} = prevProps;\n const {cluster} = this.props;\n\n if (cluster !== prevCluster) {\n this.props.updateCluster(cluster, this._onUpdateEnd);\n }\n }\n\n componentWillUnmount() {\n this.props.updateTitle({path: '', page: ''});\n this.props.unmountCluster();\n }\n\n contentPaneRef = React.createRef();\n\n _onUpdateEnd = () => {\n const {\n cluster,\n trackVisit,\n updateTitle,\n initClusterParams,\n isRedirectToBetaSwitched,\n setSetting,\n } = this.props;\n\n return Promise.resolve().then(() => {\n // todo: get rid of redirectToBetaSwitched setting.\n // It`s exist for set default value of redirectToBeta setting, when settings document is empty yet.\n // Set redirectToBeta on server after get all user settings (home.js). Or get rid of this logic at all.\n if (!isRedirectToBetaSwitched) {\n setSetting(\n SettingName.DEVELOPMENT.REDIRECT_TO_BETA_SWITCHED,\n NAMESPACES.DEVELOPMENT,\n true,\n );\n setSetting(SettingName.DEVELOPMENT.REDIRECT_TO_BETA, NAMESPACES.DEVELOPMENT, true);\n }\n\n initClusterParams(cluster);\n this._initMenuCollection('cluster');\n this._initMenuCollection('page');\n trackVisit('cluster', cluster);\n updateTitle({cluster});\n });\n };\n\n _initMenuCollection(itemName) {\n const {splitMenuItemsAction, joinMenuItemsAction} = this.props;\n\n const settingsMap = {\n cluster: 'isRecentClustersFirst',\n page: 'isRecentPagesFirst',\n };\n\n if (this.props[settingsMap[itemName]]) {\n splitMenuItemsAction(itemName);\n } else {\n joinMenuItemsAction(`${itemName}s`);\n }\n }\n\n onResize = () => {\n const {splitScreen} = this.props;\n const toolbar = document.querySelector('#elements-toolbar');\n\n if (splitScreen.isSplit && toolbar) {\n const gutterWidth = 10;\n const offset = document.getElementById(SPLIT_PANE_ID).clientWidth + gutterWidth;\n toolbar.style.right = `${offset}px`;\n } else if (toolbar) {\n toolbar.style.right = '0';\n }\n\n window.dispatchEvent(new Event('resize'));\n };\n\n handleSplit = () => {\n this.onResize();\n // fight the table toolbar becoming invisible after toggling YQLWidget and before first scroll\n window.dispatchEvent(new Event('scroll'));\n this.updateWidthModifier();\n };\n\n updateWidthModifier() {\n const currentWidth = this.contentPaneRef.current?.clientWidth || Infinity;\n if (currentWidth <= 720) {\n this.setState({width: 'small'});\n } else if (currentWidth <= 1024) {\n this.setState({width: 'medium'});\n } else {\n this.setState({width: 'large'});\n }\n }\n\n onResizeEnd = (sizes) => {\n this.props.setSetting(\n SettingName.NAVIGATION.CLUSTER_PAGE_PANE_SIZES,\n NAMESPACES.NAVIGATION,\n sizes,\n );\n this.updateWidthModifier();\n };\n\n getInitialSizes = () => {\n return this.props.clusterPagePaneSizes;\n };\n\n renderError(clusterConfig) {\n const {errorType} = this.props.error || {};\n\n switch (errorType) {\n case LOAD_ERROR.CONNECTION:\n return <ConnectionErrorRegion cluster={clusterConfig.id} />;\n case LOAD_ERROR.AUTHENTICATION:\n return (\n <GeneralErrorRegion\n cluster={clusterConfig.id}\n message={\n 'Could not fetch the XSRF token, therefore preventing further operations. Sometimes ' +\n 'token fetching fails due to the network issues. If the problem persists, please report it ' +\n 'via Bug Reporter.'\n }\n />\n );\n case LOAD_ERROR.GENERAL:\n return (\n <GeneralErrorRegion message=\"Unexpected error occurred. If problem persists please report it via Bug Reporter.\" />\n );\n }\n }\n\n isParamsLoading() {\n const {cluster, paramsCluster} = this.props;\n return cluster !== paramsCluster;\n }\n\n renderContent(clusterConfig) {\n const {\n cluster,\n startingPage,\n isLoaded,\n hasError,\n paramsError,\n allowChyt,\n allowQueryTracker,\n } = this.props;\n\n return isLoaded && !this.isParamsLoading() ? (\n <Fragment>\n <SupportedFeaturesUpdater />\n <HandleMaintenanceRedirect />\n <RedirectToBanIfNeededMemo to={`/${cluster}/${Page.BAN}`} />\n <Switch>\n <Route path={`/:cluster/${Page.BAN}`} component={BanPage} />\n <Route path={`/:cluster/${Page.MAINTENANCE}`} component={MaintenancePage} />\n <Route path={`/:cluster/${Page.COMPONENTS}`} component={Components} />\n <Route path={`/:cluster/${Page.OPERATIONS}`} component={Operations} />\n <Route path={`/:cluster/${Page.JOB}`} component={Job} />\n <Route path={`/:cluster/${Page.DASHBOARD}`} component={Dashboard} />\n <Route path={`/:cluster/${Page.SYSTEM}`} component={System} />\n <Route path={`/:cluster/${Page.ACCOUNTS}`} component={Accounts} />\n <Route\n path={[\n `/:cluster/${Page.TABLET_CELL_BUNDLES}`,\n `/:cluster/${Page.CHAOS_CELL_BUNDLES}`,\n ]}\n component={TabletCellBundles}\n />\n <Route path={`/:cluster/${Page.NAVIGATION}`} component={Navigation} />\n <Route path={`/:cluster/${Page.PATH_VIEWER}`} component={PathViewer} />\n <Route path={`/:cluster/${Page.TABLET}`} component={Tablet} />\n <Route path={`/:cluster/${Page.USERS}`} component={UsersPage} />\n <Route path={`/:cluster/${Page.GROUPS}`} component={GroupsPage} />\n <Route path={`/:cluster/${Page.SCHEDULING}`} component={Scheduling} />\n {allowChyt && <Route path={`/:cluster/${Page.CHYT}`} component={ChytPage} />}\n {allowQueryTracker && (\n <Route path={`/:cluster/${Page.QUERIES}`} component={QueryTracker} />\n )}\n {hasOdinPage() && (\n <Route\n path={`/:cluster/${odinPageInfo.pageId}`}\n component={odinPageInfo.reactComponent}\n />\n )}\n\n <Redirect\n from={`/:cluster/${Page.VERSIONS}`}\n to={`/:cluster/${Page.COMPONENTS}/versions`}\n />\n {makeExtraPageRoutes()}\n <Redirect from={`/${cluster}/`} to={`/${cluster}/${startingPage}`} />\n </Switch>\n\n <Route path=\"/:cluster/:page/:tab?\" component={PageTracker} />\n </Fragment>\n ) : (\n <React.Fragment>\n <div className=\"preloader\">\n {hasError ? (\n this.renderError(clusterConfig)\n ) : (\n <p className=\"preloader__loading\">Loading {clusterConfig?.id}...</p>\n )}\n </div>\n <div className={b('error')}>\n {paramsError && <ErrorBlock error={paramsError} />}\n </div>\n </React.Fragment>\n );\n }\n\n render() {\n const {cluster, splitScreen, clusters} = this.props;\n\n // TODO: put current cluster config into redux state to avoid doing things like these here\n const clusterConfig = getClusterConfig(clusters, cluster);\n\n // FIXME: handle case when clusterConfig is undefined due to wrong cluster name\n return (\n <Fragment>\n <ClusterPageStopRumMeasure />\n <PageHeadByCluster cluster={cluster} />\n\n <ClusterPageHeader />\n\n <FlexSplitPane\n className={b('panes-wrapper', {\n 'with-pane': splitScreen.isSplit,\n })}\n paneClassNames={splitScreen.paneClassNames}\n direction={FlexSplitPane.HORIZONTAL}\n onResize={this.onResize}\n onResizeEnd={this.onResizeEnd}\n onSplit={this.handleSplit}\n onUnSplit={this.handleSplit}\n minSize={600}\n getInitialSizes={this.getInitialSizes}\n id={SPLIT_PANE_ID}\n >\n <div\n ref={this.contentPaneRef}\n className={b('content-pane', {\n split: splitScreen.isSplit && 'yes',\n width: this.state.width,\n })}\n >\n {this.renderContent(clusterConfig)}\n </div>\n\n {null}\n </FlexSplitPane>\n </Fragment>\n );\n }\n}\n\nfunction mapStateToProps(state) {\n const {\n login,\n maintenancePageEvent,\n splitScreen,\n loadState,\n error,\n paramsCluster,\n paramsLoading,\n paramsError,\n } = state.global;\n\n const clusters = state.clustersMenu.clusters;\n\n return {\n clusters,\n isLoaded: !paramsLoading && loadState === LOADING_STATUS.LOADED,\n hasError: loadState === LOADING_STATUS.ERROR,\n error,\n paramsError,\n login,\n splitScreen,\n maintenancePageEvent,\n isRedirectToBetaSwitched: isRedirectToBetaSwitched(state),\n isRecentClustersFirst: isRecentClustersFirst(state),\n isRecentPagesFirst: isRecentPagesFirst(state),\n clusterPagePaneSizes: getClusterPagePaneSizes(state),\n startingPage: getStartingPage(state),\n paramsCluster,\n allowQueryTracker: isQueryTrackerAllowed(state),\n allowChyt: Boolean(getClusterUiConfig(state).chyt_controller_base_url),\n };\n}\n\nconst mapDispatchToProps = {\n setSetting,\n trackVisit,\n splitMenuItemsAction,\n joinMenuItemsAction,\n updateTitle,\n initClusterParams,\n updateCluster,\n unmountCluster,\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(ClusterPage);\n\nfunction RedirectToBanIfNeeded({to}) {\n const {blocked, banned} = useSelector((state) => state.global);\n const {pathname} = useLocation();\n const enableRedirect = (banned || blocked) && !pathname.endsWith('/ban');\n\n if (!enableRedirect) {\n return null;\n }\n\n return <Redirect to={to} />;\n}\n\nfunction ClusterPageStopRumMeasure() {\n const loadState = useSelector((state) => state.global.loadState);\n const paramsLoading = useSelector((state) => state.global.paramsLoading);\n\n const isLoaded =\n loadState === LOADING_STATUS.ERROR ||\n (!paramsLoading && loadState === LOADING_STATUS.LOADED);\n\n const cluster = useClusterFromLocation();\n\n useRumMeasureStart({\n type: RumMeasureTypes.CLUSTER_PARAMS,\n subPage: `ui.${cluster}`,\n allowStop: ([isLoaded]) => !isLoaded,\n startDeps: [isLoaded],\n });\n\n useRumMeasureStop({\n type: RumMeasureTypes.CLUSTER_PARAMS,\n allowStop: ([isLoaded]) => isLoaded,\n stopDeps: [isLoaded],\n });\n return null;\n}\n"],"mappings":"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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["ClusterMenuHeader.scss"],"names":[],"mappings":"AAGI;EACI,gCAAA;AAFR;AAKI;EACI,iBAAA;AAHR;AAMI;EACI,YAAA;EACA,aAAA;EACA,mBAAA;EACA,4CAAA;AAJR;AAMQ;EACI,eAAA;EACA,cAAA;EACA,mBAAA;EACA,YAAA;EACA,eAAA;AAJZ;AAOQ;EACI,eAAA;EACA,YAAA;AALZ;AAQQ;EACI,iBAAA;AANZ;AASQ;EACI,aAAA;EACA,mBAAA;EACA,YAAA;AAPZ;AAWI;EACI,kBAAA;EACA,yCAAA;EACA,gBAAA;EACA,6CAAA;AATR;AAYI;EACI,sCAAA;AAVR;AAaI;EACI,2CAAA;AAXR","file":"ClusterMenuHeader.css","sourcesContent":["@import '../../styles/common.scss';\n\n.cluster-menu {\n &__header-inner {\n height: var(--app-header-height);\n }\n\n &__user {\n padding: 5px 10px;\n }\n\n &__header {\n height: 56px;\n display: flex;\n align-items: center;\n left: var(--gn-aside-header-size) !important;\n\n &-yt {\n font-size: 40px;\n line-height: 1;\n letter-spacing: 1px;\n flex-grow: 1;\n padding: 0 15px;\n }\n\n &-docs {\n font-size: 20px;\n padding: 5px;\n }\n\n &-user {\n padding: 5px 10px;\n }\n\n .yc-radio-button__option-text {\n display: flex;\n align-items: center;\n height: 100%;\n }\n }\n\n &__page-name {\n padding-left: 16px;\n font-size: var(--g-text-body-3-font-size);\n font-weight: 500;\n line-height: var(--g-text-body-3-line-height);\n }\n\n &__popup {\n z-index: var(--dialog-suggest-z-index);\n }\n\n &__item-version {\n font-family: var(--g-font-family-monospace);\n }\n}\n"],"sourceRoot":""}
|
1
|
+
{"version":3,"sources":["ClusterMenuHeader.scss"],"names":[],"mappings":"AAGI;EACI,gCAAA;AAFR;AAKI;EACI,iBAAA;AAHR;AAMI;EACI,YAAA;EACA,aAAA;EACA,mBAAA;EACA,4CAAA;AAJR;AAMQ;EACI,eAAA;EACA,cAAA;EACA,mBAAA;EACA,YAAA;EACA,eAAA;AAJZ;AAOQ;EACI,eAAA;EACA,YAAA;AALZ;AAQQ;EACI,iBAAA;AANZ;AASQ;EACI,aAAA;EACA,mBAAA;EACA,YAAA;AAPZ;AAWI;EACI,kBAAA;EACA,yCAAA;EACA,gBAAA;EACA,6CAAA;AATR;AAYI;EACI,sCAAA;AAVR;AAaI;EACI,2CAAA;AAXR;AAcI;EACI,QAAA;EACA,UAAA;EACA,kBAAA;AAZR","file":"ClusterMenuHeader.css","sourcesContent":["@import '../../styles/common.scss';\n\n.cluster-menu {\n &__header-inner {\n height: var(--app-header-height);\n }\n\n &__user {\n padding: 5px 10px;\n }\n\n &__header {\n height: 56px;\n display: flex;\n align-items: center;\n left: var(--gn-aside-header-size) !important;\n\n &-yt {\n font-size: 40px;\n line-height: 1;\n letter-spacing: 1px;\n flex-grow: 1;\n padding: 0 15px;\n }\n\n &-docs {\n font-size: 20px;\n padding: 5px;\n }\n\n &-user {\n padding: 5px 10px;\n }\n\n .yc-radio-button__option-text {\n display: flex;\n align-items: center;\n height: 100%;\n }\n }\n\n &__page-name {\n padding-left: 16px;\n font-size: var(--g-text-body-3-font-size);\n font-weight: 500;\n line-height: var(--g-text-body-3-line-height);\n }\n\n &__popup {\n z-index: var(--dialog-suggest-z-index);\n }\n\n &__item-version {\n font-family: var(--g-font-family-monospace);\n }\n\n &__item-auth-status {\n top: 3px;\n right: 3px;\n position: absolute;\n }\n}\n"],"sourceRoot":""}
|
@@ -3,12 +3,13 @@ declare const _default: import("react-redux").ConnectedComponent<typeof Clusters
|
|
3
3
|
viewMode: PropTypes.Requireable<string>;
|
4
4
|
clusters: PropTypes.Requireable<object>;
|
5
5
|
fetchClusterVersions: PropTypes.Validator<(...args: any[]) => any>;
|
6
|
+
fetchClusterAuthStatus: PropTypes.Validator<(...args: any[]) => any>;
|
6
7
|
fetchClusterAvailability: PropTypes.Validator<(...args: any[]) => any>;
|
7
8
|
sortState: PropTypes.Validator<NonNullable<PropTypes.InferProps<{
|
8
9
|
field: PropTypes.Requireable<string>;
|
9
10
|
asc: PropTypes.Requireable<boolean>;
|
10
11
|
}>>>;
|
11
|
-
}>, "clusters" | "
|
12
|
+
}>, "clusters" | "sortState" | "viewMode" | "clusterFilter" | "fetchClusterVersions" | "fetchClusterAvailability" | "fetchClusterAuthStatus">>;
|
12
13
|
export default _default;
|
13
14
|
declare class ClustersMenuBody extends React.Component<any, any, any> {
|
14
15
|
static propTypes: {
|
@@ -16,6 +17,7 @@ declare class ClustersMenuBody extends React.Component<any, any, any> {
|
|
16
17
|
viewMode: PropTypes.Requireable<string>;
|
17
18
|
clusters: PropTypes.Requireable<object>;
|
18
19
|
fetchClusterVersions: PropTypes.Validator<(...args: any[]) => any>;
|
20
|
+
fetchClusterAuthStatus: PropTypes.Validator<(...args: any[]) => any>;
|
19
21
|
fetchClusterAvailability: PropTypes.Validator<(...args: any[]) => any>;
|
20
22
|
sortState: PropTypes.Validator<NonNullable<PropTypes.InferProps<{
|
21
23
|
field: PropTypes.Requireable<string>;
|
@@ -11,12 +11,13 @@ import React, { Component } from 'react';
|
|
11
11
|
import { connect } from 'react-redux';
|
12
12
|
import block from 'bem-cn-lite';
|
13
13
|
import { Link } from 'react-router-dom';
|
14
|
+
import { Lock } from '@gravity-ui/icons';
|
14
15
|
import { CLUSTER_GROUPS, CLUSTER_GROUPS_ORDER, DEFAULT_GROUP } from '../../constants/cluster-menu';
|
15
16
|
import format from '@ytsaurus/interface-helpers/lib/hammer/format';
|
16
17
|
import { utils } from '../../common/hammer/utils';
|
17
18
|
import ElementsTable from '../../components/ElementsTable/ElementsTable';
|
18
19
|
import { sortStateType } from '../../components/ElementsTable/ElementsTableHeader';
|
19
|
-
import { fetchClusterAvailability, fetchClusterVersions } from '../../store/actions/clusters-menu';
|
20
|
+
import { fetchClusterAuthStatus, fetchClusterAvailability, fetchClusterVersions } from '../../store/actions/clusters-menu';
|
20
21
|
import { CLUSTER_MENU_TABLE_ID } from '../../constants/tables';
|
21
22
|
import { getClusterAppearance } from '../../appearance';
|
22
23
|
import YT from '../../config/yt-config';
|
@@ -36,8 +37,10 @@ var ClustersMenuBody = /*#__PURE__*/function (_Component) {
|
|
36
37
|
value: function componentDidMount() {
|
37
38
|
var _this$props = this.props,
|
38
39
|
fetchClusterVersions = _this$props.fetchClusterVersions,
|
39
|
-
fetchClusterAvailability = _this$props.fetchClusterAvailability
|
40
|
+
fetchClusterAvailability = _this$props.fetchClusterAvailability,
|
41
|
+
fetchClusterAuthStatus = _this$props.fetchClusterAuthStatus;
|
40
42
|
fetchClusterVersions();
|
43
|
+
fetchClusterAuthStatus();
|
41
44
|
if (YT.environment !== 'localmode') {
|
42
45
|
fetchClusterAvailability();
|
43
46
|
}
|
@@ -97,7 +100,8 @@ var ClustersMenuBody = /*#__PURE__*/function (_Component) {
|
|
97
100
|
environment = cluster.environment,
|
98
101
|
descriptionEnglish = cluster.descriptionEnglish,
|
99
102
|
description = cluster.description,
|
100
|
-
theme = cluster.theme
|
103
|
+
theme = cluster.theme,
|
104
|
+
authorized = cluster.authorized;
|
101
105
|
var className = b('item', {
|
102
106
|
state: status,
|
103
107
|
access: status === 'available' && access,
|
@@ -112,7 +116,10 @@ var ClustersMenuBody = /*#__PURE__*/function (_Component) {
|
|
112
116
|
to: '/' + id,
|
113
117
|
children: /*#__PURE__*/_jsxs("div", {
|
114
118
|
className: b('item-body'),
|
115
|
-
children: [/*#__PURE__*/_jsx("
|
119
|
+
children: [authorized ? null : /*#__PURE__*/_jsx("span", {
|
120
|
+
className: b('item-auth-status'),
|
121
|
+
children: /*#__PURE__*/_jsx(Lock, {})
|
122
|
+
}), /*#__PURE__*/_jsx("div", {
|
116
123
|
className: b('item-heading'),
|
117
124
|
children: name
|
118
125
|
}), /*#__PURE__*/_jsx("div", {
|
@@ -315,6 +322,7 @@ function mapStateToProps(_ref4) {
|
|
315
322
|
}
|
316
323
|
var mapDispatchToProps = {
|
317
324
|
fetchClusterVersions: fetchClusterVersions,
|
325
|
+
fetchClusterAuthStatus: fetchClusterAuthStatus,
|
318
326
|
fetchClusterAvailability: fetchClusterAvailability
|
319
327
|
};
|
320
328
|
export default connect(mapStateToProps, mapDispatchToProps)(ClustersMenuBody);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["React","Component","connect","block","Link","CLUSTER_GROUPS","CLUSTER_GROUPS_ORDER","DEFAULT_GROUP","format","utils","ElementsTable","sortStateType","fetchClusterAvailability","fetchClusterVersions","CLUSTER_MENU_TABLE_ID","getClusterAppearance","YT","jsx","_jsx","jsxs","_jsxs","b","ClustersMenuBody","_Component","_inherits","_super","_createSuper","_classCallCheck","apply","arguments","_createClass","key","value","componentDidMount","_this$props","props","environment","prepareGroups","clusters","sortByClusterName","clusterA","clusterB","name","groups","_reduce","cluster","currentGroup","group","push","_each","sort","renderVersion","_ref","loadState","access","version","status","title","text","concat","className","children","renderCluster","size","id","descriptionEnglish","description","theme","state","clusterTheme","_getClusterAppearance","iconbig","icon2x","to","style","backgroundImage","renderDashboard","_this","clusterGroups","unknown","_filter","Object","keys","groupName","_map","_CLUSTER_GROUPS$group","_ref2","caption","length","position","renderTable","tableSettings","css","striped","tableId","computeKey","item","onItemClick","window","location","columns","items","image","align","get","sets","mode","templates","data","sortState","table","assign","_objectSpread","renderEmptyContent","render","_this$props2","viewMode","clusterFilter","regexp","RegExp","filterByField","field","search","filteredClusters","_ref3","some","mapStateToProps","_ref4","clustersMenu","tables","mapDispatchToProps"],"sources":["ClustersMenuBody.js"],"sourcesContent":["import React, {Component} from 'react';\nimport PropTypes from 'prop-types';\nimport {connect} from 'react-redux';\nimport block from 'bem-cn-lite';\nimport {Link} from 'react-router-dom';\nimport _ from 'lodash';\n\nimport {CLUSTER_GROUPS, CLUSTER_GROUPS_ORDER, DEFAULT_GROUP} from '../../constants/cluster-menu';\nimport format from '@ytsaurus/interface-helpers/lib/hammer/format';\nimport {utils} from '../../common/hammer/utils';\nimport ElementsTable from '../../components/ElementsTable/ElementsTable';\nimport {sortStateType} from '../../components/ElementsTable/ElementsTableHeader';\nimport {fetchClusterAvailability, fetchClusterVersions} from '../../store/actions/clusters-menu';\nimport {CLUSTER_MENU_TABLE_ID} from '../../constants/tables';\nimport {getClusterAppearance} from '../../appearance';\nimport YT from '../../config/yt-config';\nimport './ClusterMenuBody.scss';\n\nconst b = block('cluster-menu');\n\nclass ClustersMenuBody extends Component {\n static propTypes = {\n // from connect\n clusterFilter: PropTypes.string,\n viewMode: PropTypes.oneOf(['dashboard', 'table']),\n clusters: PropTypes.object,\n fetchClusterVersions: PropTypes.func.isRequired,\n fetchClusterAvailability: PropTypes.func.isRequired,\n sortState: sortStateType.isRequired,\n };\n\n componentDidMount() {\n const {fetchClusterVersions, fetchClusterAvailability} = this.props;\n\n fetchClusterVersions();\n if (YT.environment !== 'localmode') {\n fetchClusterAvailability();\n }\n }\n\n prepareGroups(clusters) {\n function sortByClusterName(clusterA, clusterB) {\n return clusterA.name > clusterB.name ? 1 : -1;\n }\n\n const groups = _.reduce(\n clusters,\n (groups, cluster) => {\n const currentGroup = cluster.group || DEFAULT_GROUP;\n groups[currentGroup] = groups[currentGroup] || [];\n groups[currentGroup].push(cluster);\n return groups;\n },\n {},\n );\n\n _.each(groups, (clusters) => {\n clusters.sort(sortByClusterName);\n });\n\n return groups;\n }\n\n renderVersion({loadState, access, version, status}) {\n let title;\n let text = '—';\n if (loadState === 'loaded') {\n if (access === 'granted') {\n title = `Current cluster version: ${version}`;\n text = version;\n } else if (access === 'none' && status === 'available') {\n title = 'Please refer to Getting Started for more details';\n text = 'No access';\n } else if (access === 'none' && status !== 'available') {\n title = 'Could not load version, cluster is unavailable';\n }\n } else {\n title = 'Please wait, loading cluster version';\n }\n return (\n <div className={b('item-version')} title={title}>\n {text}\n </div>\n );\n }\n\n renderCluster(cluster, size) {\n const {status, access, id, name, environment, descriptionEnglish, description, theme} =\n cluster;\n const className = b('item', {\n state: status,\n access: status === 'available' && access,\n size,\n });\n\n const clusterTheme = theme ? `cluster-color_theme_${theme}` : 'cluster-color';\n const {iconbig, icon2x} = getClusterAppearance(id);\n\n return (\n <Link key={id} className={className} to={'/' + id}>\n <div className={b('item-body')}>\n <div className={b('item-heading')}>{name}</div>\n\n <div className={b('item-image-wrapper')}>\n <div\n className={b('item-image', clusterTheme)}\n style={{\n backgroundImage: 'url(' + (iconbig || icon2x) + ')',\n }}\n />\n </div>\n\n <div className={b('item-image-veil')} />\n\n {this.renderVersion(cluster)}\n\n <div className={b('item-environment')}>\n <span>{format['ValueOrDefault'](environment)}</span>\n </div>\n\n <div className={b('item-description', 'elements-multiline-ellipsis')}>\n {descriptionEnglish ? descriptionEnglish : description}\n </div>\n </div>\n </Link>\n );\n }\n\n renderDashboard(clusters) {\n const clusterGroups = this.prepareGroups(clusters);\n\n const unknown = _.filter(\n Object.keys(clusterGroups),\n (groupName) => !(groupName in CLUSTER_GROUPS),\n );\n\n return (\n <main key=\"body\" className={b(false, 'elements-page__content')}>\n {_.map(CLUSTER_GROUPS_ORDER.concat(unknown), (groupName) => {\n const clusters = clusterGroups[groupName];\n const {caption, size} = CLUSTER_GROUPS[groupName] ?? {caption: groupName};\n\n return (\n clusters &&\n clusters.length && (\n <div key={groupName} className={b('group')}>\n <div\n className={b(\n 'heading',\n {position: 'center', size: 'l'},\n b('group-heading'),\n )}\n >\n {caption}\n </div>\n <div className={b('list')}>\n {_.map(clusters, (cluster) =>\n this.renderCluster(cluster, size),\n )}\n </div>\n </div>\n )\n );\n })}\n </main>\n );\n }\n\n renderTable(clusters) {\n const tableSettings = {\n css: 'cluster-menu',\n theme: 'light',\n striped: true,\n tableId: CLUSTER_MENU_TABLE_ID,\n computeKey: function (item) {\n return item.name;\n },\n onItemClick: function (item) {\n // FIXME: give back control to react-router once we no longer need to render full page on server\n // to get cluster credentials\n window.location = `/${item.id}`;\n },\n columns: {\n items: {\n image: {\n align: 'center',\n caption: '',\n sort: false,\n },\n name: {\n get: function (cluster) {\n return cluster.name;\n },\n sort: true,\n align: 'left',\n },\n environment: {\n get: function (cluster) {\n return cluster.environment;\n },\n sort: true,\n align: 'left',\n },\n version: {\n get: function (cluster) {\n return [cluster.version, cluster.id];\n },\n sort: true,\n align: 'right',\n },\n status: {\n get: function (cluster) {\n return [cluster.status, cluster.id];\n },\n sort: true,\n align: 'center',\n },\n access: {\n get: function (cluster) {\n return [cluster.access, cluster.id];\n },\n sort: true,\n align: 'center',\n },\n },\n sets: {\n default: {\n items: ['image', 'name', 'environment', 'version', 'status', 'access'],\n },\n },\n mode: 'default',\n },\n templates: {\n key: 'cluster-menu',\n data: {},\n },\n };\n\n const {sortState} = this.props;\n const table = Object.assign({}, tableSettings, {\n items: utils.sort(clusters, sortState, tableSettings.columns.items),\n columns: Object.assign({}, tableSettings.columns),\n });\n\n return (\n <main key=\"body\" className={b(false, 'elements-page__content')}>\n <div className={b('table-wrapper')}>\n <ElementsTable {...table} />\n </div>\n </main>\n );\n }\n\n renderEmptyContent() {\n const className = b('heading', {position: 'center', size: 'l'});\n return (\n <main key=\"body\" className={b(false, 'elements-page__content')}>\n <div className={b('message', className)}>No clusters matching your selection</div>\n </main>\n );\n }\n\n render() {\n const {viewMode, clusterFilter, clusters} = this.props;\n const regexp = new RegExp(clusterFilter, 'i');\n\n const filterByField = (field) => {\n return typeof field === 'string' && field.search(regexp) > -1;\n };\n\n const filteredClusters = _.filter(clusters, ({id, version, environment}) => {\n return [id, version, environment].some(filterByField);\n });\n\n if (viewMode === 'dashboard' && filteredClusters.length) {\n return this.renderDashboard(filteredClusters);\n } else if (viewMode === 'table' && filteredClusters.length) {\n return this.renderTable(filteredClusters);\n } else if (!filteredClusters.length) {\n return this.renderEmptyContent();\n }\n }\n}\n\nfunction mapStateToProps({clustersMenu, tables}) {\n const {viewMode, clusterFilter, clusters} = clustersMenu;\n return {\n viewMode,\n clusterFilter,\n clusters,\n sortState: tables[CLUSTER_MENU_TABLE_ID],\n };\n}\n\nconst mapDispatchToProps = {\n fetchClusterVersions,\n fetchClusterAvailability,\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(ClustersMenuBody);\n"],"mappings":"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"}
|
1
|
+
{"version":3,"names":["React","Component","connect","block","Link","Lock","CLUSTER_GROUPS","CLUSTER_GROUPS_ORDER","DEFAULT_GROUP","format","utils","ElementsTable","sortStateType","fetchClusterAuthStatus","fetchClusterAvailability","fetchClusterVersions","CLUSTER_MENU_TABLE_ID","getClusterAppearance","YT","jsx","_jsx","jsxs","_jsxs","b","ClustersMenuBody","_Component","_inherits","_super","_createSuper","_classCallCheck","apply","arguments","_createClass","key","value","componentDidMount","_this$props","props","environment","prepareGroups","clusters","sortByClusterName","clusterA","clusterB","name","groups","_reduce","cluster","currentGroup","group","push","_each","sort","renderVersion","_ref","loadState","access","version","status","title","text","concat","className","children","renderCluster","size","id","descriptionEnglish","description","theme","authorized","state","clusterTheme","_getClusterAppearance","iconbig","icon2x","to","style","backgroundImage","renderDashboard","_this","clusterGroups","unknown","_filter","Object","keys","groupName","_map","_CLUSTER_GROUPS$group","_ref2","caption","length","position","renderTable","tableSettings","css","striped","tableId","computeKey","item","onItemClick","window","location","columns","items","image","align","get","sets","mode","templates","data","sortState","table","assign","_objectSpread","renderEmptyContent","render","_this$props2","viewMode","clusterFilter","regexp","RegExp","filterByField","field","search","filteredClusters","_ref3","some","mapStateToProps","_ref4","clustersMenu","tables","mapDispatchToProps"],"sources":["ClustersMenuBody.js"],"sourcesContent":["import React, {Component} from 'react';\nimport PropTypes from 'prop-types';\nimport {connect} from 'react-redux';\nimport block from 'bem-cn-lite';\nimport {Link} from 'react-router-dom';\nimport _ from 'lodash';\nimport {Lock} from '@gravity-ui/icons';\n\nimport {CLUSTER_GROUPS, CLUSTER_GROUPS_ORDER, DEFAULT_GROUP} from '../../constants/cluster-menu';\nimport format from '@ytsaurus/interface-helpers/lib/hammer/format';\nimport {utils} from '../../common/hammer/utils';\nimport ElementsTable from '../../components/ElementsTable/ElementsTable';\nimport {sortStateType} from '../../components/ElementsTable/ElementsTableHeader';\nimport {\n fetchClusterAuthStatus,\n fetchClusterAvailability,\n fetchClusterVersions,\n} from '../../store/actions/clusters-menu';\nimport {CLUSTER_MENU_TABLE_ID} from '../../constants/tables';\nimport {getClusterAppearance} from '../../appearance';\nimport YT from '../../config/yt-config';\nimport './ClusterMenuBody.scss';\n\nconst b = block('cluster-menu');\n\nclass ClustersMenuBody extends Component {\n static propTypes = {\n // from connect\n clusterFilter: PropTypes.string,\n viewMode: PropTypes.oneOf(['dashboard', 'table']),\n clusters: PropTypes.object,\n fetchClusterVersions: PropTypes.func.isRequired,\n fetchClusterAuthStatus: PropTypes.func.isRequired,\n fetchClusterAvailability: PropTypes.func.isRequired,\n sortState: sortStateType.isRequired,\n };\n\n componentDidMount() {\n const {fetchClusterVersions, fetchClusterAvailability, fetchClusterAuthStatus} = this.props;\n\n fetchClusterVersions();\n fetchClusterAuthStatus();\n if (YT.environment !== 'localmode') {\n fetchClusterAvailability();\n }\n }\n\n prepareGroups(clusters) {\n function sortByClusterName(clusterA, clusterB) {\n return clusterA.name > clusterB.name ? 1 : -1;\n }\n\n const groups = _.reduce(\n clusters,\n (groups, cluster) => {\n const currentGroup = cluster.group || DEFAULT_GROUP;\n groups[currentGroup] = groups[currentGroup] || [];\n groups[currentGroup].push(cluster);\n return groups;\n },\n {},\n );\n\n _.each(groups, (clusters) => {\n clusters.sort(sortByClusterName);\n });\n\n return groups;\n }\n\n renderVersion({loadState, access, version, status}) {\n let title;\n let text = '—';\n if (loadState === 'loaded') {\n if (access === 'granted') {\n title = `Current cluster version: ${version}`;\n text = version;\n } else if (access === 'none' && status === 'available') {\n title = 'Please refer to Getting Started for more details';\n text = 'No access';\n } else if (access === 'none' && status !== 'available') {\n title = 'Could not load version, cluster is unavailable';\n }\n } else {\n title = 'Please wait, loading cluster version';\n }\n return (\n <div className={b('item-version')} title={title}>\n {text}\n </div>\n );\n }\n\n renderCluster(cluster, size) {\n const {\n status,\n access,\n id,\n name,\n environment,\n descriptionEnglish,\n description,\n theme,\n authorized,\n } = cluster;\n const className = b('item', {\n state: status,\n access: status === 'available' && access,\n size,\n });\n\n const clusterTheme = theme ? `cluster-color_theme_${theme}` : 'cluster-color';\n const {iconbig, icon2x} = getClusterAppearance(id);\n\n return (\n <Link key={id} className={className} to={'/' + id}>\n <div className={b('item-body')}>\n {authorized ? null : (\n <span className={b('item-auth-status')}>\n <Lock />\n </span>\n )}\n <div className={b('item-heading')}>{name}</div>\n\n <div className={b('item-image-wrapper')}>\n <div\n className={b('item-image', clusterTheme)}\n style={{\n backgroundImage: 'url(' + (iconbig || icon2x) + ')',\n }}\n />\n </div>\n\n <div className={b('item-image-veil')} />\n\n {this.renderVersion(cluster)}\n\n <div className={b('item-environment')}>\n <span>{format['ValueOrDefault'](environment)}</span>\n </div>\n\n <div className={b('item-description', 'elements-multiline-ellipsis')}>\n {descriptionEnglish ? descriptionEnglish : description}\n </div>\n </div>\n </Link>\n );\n }\n\n renderDashboard(clusters) {\n const clusterGroups = this.prepareGroups(clusters);\n\n const unknown = _.filter(\n Object.keys(clusterGroups),\n (groupName) => !(groupName in CLUSTER_GROUPS),\n );\n\n return (\n <main key=\"body\" className={b(false, 'elements-page__content')}>\n {_.map(CLUSTER_GROUPS_ORDER.concat(unknown), (groupName) => {\n const clusters = clusterGroups[groupName];\n const {caption, size} = CLUSTER_GROUPS[groupName] ?? {caption: groupName};\n\n return (\n clusters &&\n clusters.length && (\n <div key={groupName} className={b('group')}>\n <div\n className={b(\n 'heading',\n {position: 'center', size: 'l'},\n b('group-heading'),\n )}\n >\n {caption}\n </div>\n <div className={b('list')}>\n {_.map(clusters, (cluster) =>\n this.renderCluster(cluster, size),\n )}\n </div>\n </div>\n )\n );\n })}\n </main>\n );\n }\n\n renderTable(clusters) {\n const tableSettings = {\n css: 'cluster-menu',\n theme: 'light',\n striped: true,\n tableId: CLUSTER_MENU_TABLE_ID,\n computeKey: function (item) {\n return item.name;\n },\n onItemClick: function (item) {\n // FIXME: give back control to react-router once we no longer need to render full page on server\n // to get cluster credentials\n window.location = `/${item.id}`;\n },\n columns: {\n items: {\n image: {\n align: 'center',\n caption: '',\n sort: false,\n },\n name: {\n get: function (cluster) {\n return cluster.name;\n },\n sort: true,\n align: 'left',\n },\n environment: {\n get: function (cluster) {\n return cluster.environment;\n },\n sort: true,\n align: 'left',\n },\n version: {\n get: function (cluster) {\n return [cluster.version, cluster.id];\n },\n sort: true,\n align: 'right',\n },\n status: {\n get: function (cluster) {\n return [cluster.status, cluster.id];\n },\n sort: true,\n align: 'center',\n },\n access: {\n get: function (cluster) {\n return [cluster.access, cluster.id];\n },\n sort: true,\n align: 'center',\n },\n },\n sets: {\n default: {\n items: ['image', 'name', 'environment', 'version', 'status', 'access'],\n },\n },\n mode: 'default',\n },\n templates: {\n key: 'cluster-menu',\n data: {},\n },\n };\n\n const {sortState} = this.props;\n const table = Object.assign({}, tableSettings, {\n items: utils.sort(clusters, sortState, tableSettings.columns.items),\n columns: Object.assign({}, tableSettings.columns),\n });\n\n return (\n <main key=\"body\" className={b(false, 'elements-page__content')}>\n <div className={b('table-wrapper')}>\n <ElementsTable {...table} />\n </div>\n </main>\n );\n }\n\n renderEmptyContent() {\n const className = b('heading', {position: 'center', size: 'l'});\n return (\n <main key=\"body\" className={b(false, 'elements-page__content')}>\n <div className={b('message', className)}>No clusters matching your selection</div>\n </main>\n );\n }\n\n render() {\n const {viewMode, clusterFilter, clusters} = this.props;\n const regexp = new RegExp(clusterFilter, 'i');\n\n const filterByField = (field) => {\n return typeof field === 'string' && field.search(regexp) > -1;\n };\n\n const filteredClusters = _.filter(clusters, ({id, version, environment}) => {\n return [id, version, environment].some(filterByField);\n });\n\n if (viewMode === 'dashboard' && filteredClusters.length) {\n return this.renderDashboard(filteredClusters);\n } else if (viewMode === 'table' && filteredClusters.length) {\n return this.renderTable(filteredClusters);\n } else if (!filteredClusters.length) {\n return this.renderEmptyContent();\n }\n }\n}\n\nfunction mapStateToProps({clustersMenu, tables}) {\n const {viewMode, clusterFilter, clusters} = clustersMenu;\n return {\n viewMode,\n clusterFilter,\n clusters,\n sortState: tables[CLUSTER_MENU_TABLE_ID],\n };\n}\n\nconst mapDispatchToProps = {\n fetchClusterVersions,\n fetchClusterAuthStatus,\n fetchClusterAvailability,\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(ClustersMenuBody);\n"],"mappings":"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"}
|
@@ -8,13 +8,13 @@ declare const _default: import("react-redux").ConnectedComponent<typeof Clusters
|
|
8
8
|
viewMode: PropTypes.Validator<string>;
|
9
9
|
updateFilter: PropTypes.Validator<(...args: any[]) => any>;
|
10
10
|
updateViewMode: PropTypes.Validator<(...args: any[]) => any>;
|
11
|
-
login: PropTypes.
|
12
|
-
}>, "clusterFilter" | PropTypes.RequiredKeys<{
|
11
|
+
login: PropTypes.Requireable<string>;
|
12
|
+
}>, "login" | "clusterFilter" | PropTypes.RequiredKeys<{
|
13
13
|
clusterFilter: PropTypes.Requireable<string>;
|
14
14
|
viewMode: PropTypes.Validator<string>;
|
15
15
|
updateFilter: PropTypes.Validator<(...args: any[]) => any>;
|
16
16
|
updateViewMode: PropTypes.Validator<(...args: any[]) => any>;
|
17
|
-
login: PropTypes.
|
17
|
+
login: PropTypes.Requireable<string>;
|
18
18
|
}>>, "login" | "viewMode" | "updateFilter" | "clusterFilter" | "updateViewMode">>;
|
19
19
|
export default _default;
|
20
20
|
declare function ClustersMenuHeader({ viewMode, updateViewMode, clusterFilter, updateFilter }: {
|
@@ -29,7 +29,7 @@ declare namespace ClustersMenuHeader {
|
|
29
29
|
let viewMode: PropTypes.Validator<string>;
|
30
30
|
let updateFilter: PropTypes.Validator<(...args: any[]) => any>;
|
31
31
|
let updateViewMode: PropTypes.Validator<(...args: any[]) => any>;
|
32
|
-
let login: PropTypes.
|
32
|
+
let login: PropTypes.Requireable<string>;
|
33
33
|
}
|
34
34
|
}
|
35
35
|
import PropTypes from 'prop-types';
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["React","block","connect","Filter","RadioButton","updateFilter","updateViewMode","HeaderLinks","LINKS_ITEM_CLUSTERS","jsx","_jsx","jsxs","_jsxs","b","ClustersMenuHeader","_ref","viewMode","clusterFilter","className","children","value","placeholder","onChange","size","name","event","target","items","text","icon","awesome","currentUrl","href","mapStateToProps","_ref2","clustersMenu","global","login","mapDispatchToProps"],"sources":["ClustersMenuHeader.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport block from 'bem-cn-lite';\nimport {connect} from 'react-redux';\n\nimport Filter from '../../components/Filter/Filter';\nimport RadioButton from '../../components/RadioButton/RadioButton';\nimport {updateFilter, updateViewMode} from '../../store/actions/clusters-menu';\nimport {HeaderLinks} from '../../containers/ClustersMenu/HeaderLinks';\nimport {LINKS_ITEM_CLUSTERS} from '../../containers/ClustersMenu/header-links-items';\n\nimport './ClusterMenuHeader.scss';\n\nconst b = block('cluster-menu');\n\nClustersMenuHeader.propTypes = {\n clusterFilter: PropTypes.string,\n viewMode: PropTypes.oneOf(['dashboard', 'table']).isRequired,\n updateFilter: PropTypes.func.isRequired,\n updateViewMode: PropTypes.func.isRequired,\n login: PropTypes.string
|
1
|
+
{"version":3,"names":["React","block","connect","Filter","RadioButton","updateFilter","updateViewMode","HeaderLinks","LINKS_ITEM_CLUSTERS","jsx","_jsx","jsxs","_jsxs","b","ClustersMenuHeader","_ref","viewMode","clusterFilter","className","children","value","placeholder","onChange","size","name","event","target","items","text","icon","awesome","currentUrl","href","mapStateToProps","_ref2","clustersMenu","global","login","mapDispatchToProps"],"sources":["ClustersMenuHeader.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport block from 'bem-cn-lite';\nimport {connect} from 'react-redux';\n\nimport Filter from '../../components/Filter/Filter';\nimport RadioButton from '../../components/RadioButton/RadioButton';\nimport {updateFilter, updateViewMode} from '../../store/actions/clusters-menu';\nimport {HeaderLinks} from '../../containers/ClustersMenu/HeaderLinks';\nimport {LINKS_ITEM_CLUSTERS} from '../../containers/ClustersMenu/header-links-items';\n\nimport './ClusterMenuHeader.scss';\n\nconst b = block('cluster-menu');\n\nClustersMenuHeader.propTypes = {\n clusterFilter: PropTypes.string,\n viewMode: PropTypes.oneOf(['dashboard', 'table']).isRequired,\n updateFilter: PropTypes.func.isRequired,\n updateViewMode: PropTypes.func.isRequired,\n login: PropTypes.string,\n};\n\nfunction ClustersMenuHeader({viewMode, updateViewMode, clusterFilter, updateFilter}) {\n return (\n <header className={b('header', 'elements-page__header')}>\n <div className={b('header-inner')}>\n <div className={b('filter')}>\n <div className=\"elements-filter\">\n <Filter\n value={clusterFilter}\n placeholder=\"Filter clusters\"\n onChange={updateFilter}\n />\n </div>\n </div>\n <div className={b('view')}>\n <RadioButton\n size=\"m\"\n name=\"cluster-menu-mode\"\n value={viewMode}\n onChange={(event) => updateViewMode(event.target.value)}\n items={[\n {\n value: 'table',\n text: '',\n icon: {awesome: 'list'},\n },\n {\n value: 'dashboard',\n text: '',\n icon: {awesome: 'table'},\n },\n ]}\n />\n </div>\n\n <HeaderLinks currentUrl={LINKS_ITEM_CLUSTERS.href} />\n </div>\n </header>\n );\n}\n\nfunction mapStateToProps({clustersMenu, global}) {\n const {viewMode, clusterFilter} = clustersMenu;\n const {login} = global;\n return {\n viewMode,\n clusterFilter,\n login,\n };\n}\n\nconst mapDispatchToProps = {\n updateViewMode,\n updateFilter,\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(ClustersMenuHeader);\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AAEzB,OAAOC,KAAK,MAAM,aAAa;AAC/B,SAAQC,OAAO,QAAO,aAAa;AAEnC,OAAOC,MAAM,MAAM,gCAAgC;AACnD,OAAOC,WAAW,MAAM,0CAA0C;AAClE,SAAQC,YAAY,EAAEC,cAAc,QAAO,mCAAmC;AAC9E,SAAQC,WAAW,QAAO,2CAA2C;AACrE,SAAQC,mBAAmB,QAAO,kDAAkD;AAEpF,OAAO,yBAA0B;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAAA,SAAAC,IAAA,IAAAC,KAAA;AAElC,IAAMC,CAAC,GAAGZ,KAAK,CAAC,cAAc,CAAC;AAU/B,SAASa,kBAAkBA,CAAAC,IAAA,EAA0D;EAAA,IAAxDC,QAAQ,GAAAD,IAAA,CAARC,QAAQ;IAAEV,cAAc,GAAAS,IAAA,CAAdT,cAAc;IAAEW,aAAa,GAAAF,IAAA,CAAbE,aAAa;IAAEZ,YAAY,GAAAU,IAAA,CAAZV,YAAY;EAC9E,oBACIK,IAAA;IAAQQ,SAAS,EAAEL,CAAC,CAAC,QAAQ,EAAE,uBAAuB,CAAE;IAAAM,QAAA,eACpDP,KAAA;MAAKM,SAAS,EAAEL,CAAC,CAAC,cAAc,CAAE;MAAAM,QAAA,gBAC9BT,IAAA;QAAKQ,SAAS,EAAEL,CAAC,CAAC,QAAQ,CAAE;QAAAM,QAAA,eACxBT,IAAA;UAAKQ,SAAS,EAAC,iBAAiB;UAAAC,QAAA,eAC5BT,IAAA,CAACP,MAAM;YACHiB,KAAK,EAAEH,aAAc;YACrBI,WAAW,EAAC,iBAAiB;YAC7BC,QAAQ,EAAEjB;UAAa,CAC1B;QAAC,CACD;MAAC,CACL,CAAC,eACNK,IAAA;QAAKQ,SAAS,EAAEL,CAAC,CAAC,MAAM,CAAE;QAAAM,QAAA,eACtBT,IAAA,CAACN,WAAW;UACRmB,IAAI,EAAC,GAAG;UACRC,IAAI,EAAC,mBAAmB;UACxBJ,KAAK,EAAEJ,QAAS;UAChBM,QAAQ,EAAE,SAAAA,SAACG,KAAK;YAAA,OAAKnB,cAAc,CAACmB,KAAK,CAACC,MAAM,CAACN,KAAK,CAAC;UAAA,CAAC;UACxDO,KAAK,EAAE,CACH;YACIP,KAAK,EAAE,OAAO;YACdQ,IAAI,EAAE,EAAE;YACRC,IAAI,EAAE;cAACC,OAAO,EAAE;YAAM;UAC1B,CAAC,EACD;YACIV,KAAK,EAAE,WAAW;YAClBQ,IAAI,EAAE,EAAE;YACRC,IAAI,EAAE;cAACC,OAAO,EAAE;YAAO;UAC3B,CAAC;QACH,CACL;MAAC,CACD,CAAC,eAENpB,IAAA,CAACH,WAAW;QAACwB,UAAU,EAAEvB,mBAAmB,CAACwB;MAAK,CAAE,CAAC;IAAA,CACpD;EAAC,CACF,CAAC;AAEjB;AAEA,SAASC,eAAeA,CAAAC,KAAA,EAAyB;EAAA,IAAvBC,YAAY,GAAAD,KAAA,CAAZC,YAAY;IAAEC,MAAM,GAAAF,KAAA,CAANE,MAAM;EAC1C,IAAOpB,QAAQ,GAAmBmB,YAAY,CAAvCnB,QAAQ;IAAEC,aAAa,GAAIkB,YAAY,CAA7BlB,aAAa;EAC9B,IAAOoB,KAAK,GAAID,MAAM,CAAfC,KAAK;EACZ,OAAO;IACHrB,QAAQ,EAARA,QAAQ;IACRC,aAAa,EAAbA,aAAa;IACboB,KAAK,EAALA;EACJ,CAAC;AACL;AAEA,IAAMC,kBAAkB,GAAG;EACvBhC,cAAc,EAAdA,cAAc;EACdD,YAAY,EAAZA;AACJ,CAAC;AAED,eAAeH,OAAO,CAAC+B,eAAe,EAAEK,kBAAkB,CAAC,CAACxB,kBAAkB,CAAC"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["withRouter","React","Component","Redirect","connect","compose","MaintenancePage","Page","jsx","_jsx","HandleRedirect","_Component","_inherits","_super","_createSuper","_classCallCheck","apply","arguments","_createClass","key","value","shouldComponentUpdate","nextProps","location","props","eventsFirstUpdate","nextLocation","isDifferentLocation","render","_this$props","cluster","maintenancePageEvent","isMaintenancePage","checkMaintenancePageUrl","isIgnored","getBypassCookie","makeRedirect","Boolean","referrer","pathname","search","to","concat","MAINTENANCE","state","mapStateToProps","_ref","global"],"sources":["HandleRedirect.js"],"sourcesContent":["import {withRouter} from 'react-router-dom';\nimport React, {Component} from 'react';\nimport {Redirect} from 'react-router';\nimport {connect} from 'react-redux';\nimport PropTypes from 'prop-types';\nimport {compose} from 'redux';\n\nimport MaintenancePage from '../../containers/MaintenancePage/MaintenancePage';\n\nimport {Page} from '../../constants/index';\n\nclass HandleRedirect extends Component {\n static propTypes = {\n location: PropTypes.object.isRequired,\n cluster: PropTypes.string
|
1
|
+
{"version":3,"names":["withRouter","React","Component","Redirect","connect","compose","MaintenancePage","Page","jsx","_jsx","HandleRedirect","_Component","_inherits","_super","_createSuper","_classCallCheck","apply","arguments","_createClass","key","value","shouldComponentUpdate","nextProps","location","props","eventsFirstUpdate","nextLocation","isDifferentLocation","render","_this$props","cluster","maintenancePageEvent","isMaintenancePage","checkMaintenancePageUrl","isIgnored","getBypassCookie","makeRedirect","Boolean","referrer","pathname","search","to","concat","MAINTENANCE","state","mapStateToProps","_ref","global"],"sources":["HandleRedirect.js"],"sourcesContent":["import {withRouter} from 'react-router-dom';\nimport React, {Component} from 'react';\nimport {Redirect} from 'react-router';\nimport {connect} from 'react-redux';\nimport PropTypes from 'prop-types';\nimport {compose} from 'redux';\n\nimport MaintenancePage from '../../containers/MaintenancePage/MaintenancePage';\n\nimport {Page} from '../../constants/index';\n\nclass HandleRedirect extends Component {\n static propTypes = {\n location: PropTypes.object.isRequired,\n cluster: PropTypes.string,\n eventsFirstUpdate: PropTypes.bool.isRequired,\n maintenancePageEvent: PropTypes.object,\n };\n\n shouldComponentUpdate(nextProps) {\n const {location} = this.props;\n const {eventsFirstUpdate, location: nextLocation} = nextProps;\n const isDifferentLocation = location !== nextLocation;\n\n return isDifferentLocation || eventsFirstUpdate;\n }\n\n render() {\n const {location, cluster, maintenancePageEvent} = this.props;\n\n if (maintenancePageEvent) {\n const isMaintenancePage = MaintenancePage.checkMaintenancePageUrl(location);\n const isIgnored = MaintenancePage.getBypassCookie(cluster);\n const makeRedirect = Boolean(!isMaintenancePage && !isIgnored);\n\n if (makeRedirect) {\n const referrer = location.pathname + location.search;\n\n return (\n <Redirect\n to={{\n pathname: `/${cluster}/${Page.MAINTENANCE}`,\n state: {referrer},\n }}\n />\n );\n }\n\n return null;\n }\n\n return null;\n }\n}\n\nconst mapStateToProps = ({global}) => {\n const {maintenancePageEvent, eventsFirstUpdate, cluster} = global;\n\n return {maintenancePageEvent, eventsFirstUpdate, cluster};\n};\n\nexport default compose(withRouter, connect(mapStateToProps))(HandleRedirect);\n"],"mappings":";;;;AAAA,SAAQA,UAAU,QAAO,kBAAkB;AAC3C,OAAOC,KAAK,IAAGC,SAAS,QAAO,OAAO;AACtC,SAAQC,QAAQ,QAAO,cAAc;AACrC,SAAQC,OAAO,QAAO,aAAa;AAEnC,SAAQC,OAAO,QAAO,OAAO;AAE7B,OAAOC,eAAe,MAAM,kDAAkD;AAE9E,SAAQC,IAAI,QAAO,uBAAuB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAAA,IAErCC,cAAc,0BAAAC,UAAA;EAAAC,SAAA,CAAAF,cAAA,EAAAC,UAAA;EAAA,IAAAE,MAAA,GAAAC,YAAA,CAAAJ,cAAA;EAAA,SAAAA,eAAA;IAAAK,eAAA,OAAAL,cAAA;IAAA,OAAAG,MAAA,CAAAG,KAAA,OAAAC,SAAA;EAAA;EAAAC,YAAA,CAAAR,cAAA;IAAAS,GAAA;IAAAC,KAAA,EAQhB,SAAAC,sBAAsBC,SAAS,EAAE;MAC7B,IAAOC,QAAQ,GAAI,IAAI,CAACC,KAAK,CAAtBD,QAAQ;MACf,IAAOE,iBAAiB,GAA4BH,SAAS,CAAtDG,iBAAiB;QAAYC,YAAY,GAAIJ,SAAS,CAAnCC,QAAQ;MAClC,IAAMI,mBAAmB,GAAGJ,QAAQ,KAAKG,YAAY;MAErD,OAAOC,mBAAmB,IAAIF,iBAAiB;IACnD;EAAC;IAAAN,GAAA;IAAAC,KAAA,EAED,SAAAQ,OAAA,EAAS;MACL,IAAAC,WAAA,GAAkD,IAAI,CAACL,KAAK;QAArDD,QAAQ,GAAAM,WAAA,CAARN,QAAQ;QAAEO,OAAO,GAAAD,WAAA,CAAPC,OAAO;QAAEC,oBAAoB,GAAAF,WAAA,CAApBE,oBAAoB;MAE9C,IAAIA,oBAAoB,EAAE;QACtB,IAAMC,iBAAiB,GAAG1B,eAAe,CAAC2B,uBAAuB,CAACV,QAAQ,CAAC;QAC3E,IAAMW,SAAS,GAAG5B,eAAe,CAAC6B,eAAe,CAACL,OAAO,CAAC;QAC1D,IAAMM,YAAY,GAAGC,OAAO,CAAC,CAACL,iBAAiB,IAAI,CAACE,SAAS,CAAC;QAE9D,IAAIE,YAAY,EAAE;UACd,IAAME,QAAQ,GAAGf,QAAQ,CAACgB,QAAQ,GAAGhB,QAAQ,CAACiB,MAAM;UAEpD,oBACI/B,IAAA,CAACN,QAAQ;YACLsC,EAAE,EAAE;cACAF,QAAQ,MAAAG,MAAA,CAAMZ,OAAO,OAAAY,MAAA,CAAInC,IAAI,CAACoC,WAAW,CAAE;cAC3CC,KAAK,EAAE;gBAACN,QAAQ,EAARA;cAAQ;YACpB;UAAE,CACL,CAAC;QAEV;QAEA,OAAO,IAAI;MACf;MAEA,OAAO,IAAI;IACf;EAAC;EAAA,OAAA5B,cAAA;AAAA,EAzCwBR,SAAS;AA4CtC,IAAM2C,eAAe,GAAG,SAAlBA,eAAeA,CAAAC,IAAA,EAAiB;EAAA,IAAZC,MAAM,GAAAD,IAAA,CAANC,MAAM;EAC5B,IAAOhB,oBAAoB,GAAgCgB,MAAM,CAA1DhB,oBAAoB;IAAEN,iBAAiB,GAAasB,MAAM,CAApCtB,iBAAiB;IAAEK,OAAO,GAAIiB,MAAM,CAAjBjB,OAAO;EAEvD,OAAO;IAACC,oBAAoB,EAApBA,oBAAoB;IAAEN,iBAAiB,EAAjBA,iBAAiB;IAAEK,OAAO,EAAPA;EAAO,CAAC;AAC7D,CAAC;AAED,eAAezB,OAAO,CAACL,UAAU,EAAEI,OAAO,CAACyC,eAAe,CAAC,CAAC,CAACnC,cAAc,CAAC"}
|
@@ -15,7 +15,10 @@ function onError(e) {
|
|
15
15
|
var _e$response;
|
16
16
|
var isAuthError = axios.isAxiosError(e) && ((_e$response = e.response) === null || _e$response === void 0 ? void 0 : _e$response.status) === 401;
|
17
17
|
if (isAuthError) {
|
18
|
-
|
18
|
+
var _e$response2;
|
19
|
+
handleAuthError({
|
20
|
+
ytAuthCluster: e === null || e === void 0 || (_e$response2 = e.response) === null || _e$response2 === void 0 || (_e$response2 = _e$response2.data) === null || _e$response2 === void 0 || (_e$response2 = _e$response2.extraData) === null || _e$response2 === void 0 ? void 0 : _e$response2.ytAuthCluster
|
21
|
+
});
|
19
22
|
}
|
20
23
|
}
|
21
24
|
// #sourceMappingURL=main.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["renderApp","yt","axios","handleAuthError","subscribe","onError","interceptors","response","use","undefined","onAxiosError","e","Promise","reject","_e$response","isAuthError","isAxiosError","status"],"sources":["main.tsx"],"sourcesContent":["import {renderApp} from '../render-app';\n// @ts-ignore\nimport yt from '@ytsaurus/javascript-wrapper/lib/yt';\nimport axios from 'axios';\nimport {handleAuthError} from '../store/actions/global';\nimport './main.scss';\n\nyt.subscribe('error', onError);\naxios.interceptors.response.use(undefined, onAxiosError);\n\nrenderApp({});\n\nfunction onAxiosError(e: any) {\n onError(e);\n return Promise.reject(e);\n}\n\nfunction onError(e: any) {\n const isAuthError = axios.isAxiosError(e) && e.response?.status === 401;\n if (isAuthError) {\n handleAuthError();\n }\n}\n"],"mappings":"AAAA,SAAQA,SAAS,QAAO,eAAe;AACvC;AACA,OAAOC,EAAE,MAAM,qCAAqC;AACpD,OAAOC,KAAK,MAAM,OAAO;AACzB,SAAQC,eAAe,QAAO,yBAAyB;AACvD,OAAO,YAAa;AAEpBF,EAAE,CAACG,SAAS,CAAC,OAAO,EAAEC,OAAO,CAAC;AAC9BH,KAAK,CAACI,YAAY,CAACC,QAAQ,CAACC,GAAG,CAACC,SAAS,EAAEC,YAAY,CAAC;AAExDV,SAAS,CAAC,CAAC,CAAC,CAAC;AAEb,SAASU,YAAYA,CAACC,CAAM,EAAE;EAC1BN,OAAO,CAACM,CAAC,CAAC;EACV,OAAOC,OAAO,CAACC,MAAM,CAACF,CAAC,CAAC;AAC5B;AAEA,SAASN,OAAOA,CAACM,CAAM,EAAE;EAAA,IAAAG,WAAA;EACrB,IAAMC,WAAW,GAAGb,KAAK,CAACc,YAAY,CAACL,CAAC,CAAC,IAAI,EAAAG,WAAA,GAAAH,CAAC,CAACJ,QAAQ,cAAAO,WAAA,uBAAVA,WAAA,CAAYG,MAAM,MAAK,GAAG;EACvE,IAAIF,WAAW,EAAE;
|
1
|
+
{"version":3,"names":["renderApp","yt","axios","handleAuthError","subscribe","onError","interceptors","response","use","undefined","onAxiosError","e","Promise","reject","_e$response","isAuthError","isAxiosError","status","_e$response2","ytAuthCluster","data","extraData"],"sources":["main.tsx"],"sourcesContent":["import {renderApp} from '../render-app';\n// @ts-ignore\nimport yt from '@ytsaurus/javascript-wrapper/lib/yt';\nimport axios from 'axios';\nimport {handleAuthError} from '../store/actions/global';\nimport './main.scss';\n\nyt.subscribe('error', onError);\naxios.interceptors.response.use(undefined, onAxiosError);\n\nrenderApp({});\n\nfunction onAxiosError(e: any) {\n onError(e);\n return Promise.reject(e);\n}\n\nfunction onError(e: any) {\n const isAuthError = axios.isAxiosError(e) && e.response?.status === 401;\n if (isAuthError) {\n handleAuthError({ytAuthCluster: e?.response?.data?.extraData?.ytAuthCluster});\n }\n}\n"],"mappings":"AAAA,SAAQA,SAAS,QAAO,eAAe;AACvC;AACA,OAAOC,EAAE,MAAM,qCAAqC;AACpD,OAAOC,KAAK,MAAM,OAAO;AACzB,SAAQC,eAAe,QAAO,yBAAyB;AACvD,OAAO,YAAa;AAEpBF,EAAE,CAACG,SAAS,CAAC,OAAO,EAAEC,OAAO,CAAC;AAC9BH,KAAK,CAACI,YAAY,CAACC,QAAQ,CAACC,GAAG,CAACC,SAAS,EAAEC,YAAY,CAAC;AAExDV,SAAS,CAAC,CAAC,CAAC,CAAC;AAEb,SAASU,YAAYA,CAACC,CAAM,EAAE;EAC1BN,OAAO,CAACM,CAAC,CAAC;EACV,OAAOC,OAAO,CAACC,MAAM,CAACF,CAAC,CAAC;AAC5B;AAEA,SAASN,OAAOA,CAACM,CAAM,EAAE;EAAA,IAAAG,WAAA;EACrB,IAAMC,WAAW,GAAGb,KAAK,CAACc,YAAY,CAACL,CAAC,CAAC,IAAI,EAAAG,WAAA,GAAAH,CAAC,CAACJ,QAAQ,cAAAO,WAAA,uBAAVA,WAAA,CAAYG,MAAM,MAAK,GAAG;EACvE,IAAIF,WAAW,EAAE;IAAA,IAAAG,YAAA;IACbf,eAAe,CAAC;MAACgB,aAAa,EAAER,CAAC,aAADA,CAAC,gBAAAO,YAAA,GAADP,CAAC,CAAEJ,QAAQ,cAAAW,YAAA,gBAAAA,YAAA,GAAXA,YAAA,CAAaE,IAAI,cAAAF,YAAA,gBAAAA,YAAA,GAAjBA,YAAA,CAAmBG,SAAS,cAAAH,YAAA,uBAA5BA,YAAA,CAA8BC;IAAa,CAAC,CAAC;EACjF;AACJ"}
|
@@ -99,6 +99,10 @@ export declare const getShowCompetitiveJobs: ((state: Omit<import("redux").Combi
|
|
99
99
|
aclFilters: import("../../store/reducers/acl/acl-filters").AclFiltersState;
|
100
100
|
actions: never;
|
101
101
|
clustersMenu: {
|
102
|
+
clusters: any;
|
103
|
+
viewMode: string;
|
104
|
+
clusterFilter: string;
|
105
|
+
} | {
|
102
106
|
viewMode: any;
|
103
107
|
clusters: {};
|
104
108
|
clusterFilter: string;
|
@@ -924,6 +928,7 @@ export declare const getShowCompetitiveJobs: ((state: Omit<import("redux").Combi
|
|
924
928
|
rootPagesCluster?: string | undefined;
|
925
929
|
asideHeaderWidth: number;
|
926
930
|
allowedExperimentalPages: string[];
|
931
|
+
ytAuthCluster?: string | undefined;
|
927
932
|
};
|
928
933
|
}) => boolean) & import("reselect").OutputSelectorFields<(args_0: any, args_1: any) => boolean, {
|
929
934
|
clearCache: () => void;
|