├── .github └── workflows │ ├── ci-commit-titles.yaml │ ├── ci-e2e.yaml │ ├── ci-lint-unit.yaml │ ├── ci-statoscope.yaml │ ├── manual-docker-build.yaml │ ├── manual-docker-copy-to-ghcr.io.yaml │ ├── manual-docker-tag.yaml │ ├── manual-pr-nda-link.yaml │ ├── release-please-hotfix.yaml │ └── release-please.yaml ├── .gitignore ├── .npmrc ├── .nvmrc ├── .release-please-manifest.json ├── CODEOWNERS ├── LICENSE ├── README.md ├── ROADMAP.md ├── lerna.json ├── nx.json ├── package-lock.json ├── package.json ├── packages ├── custom-ytsaurus-ui.example │ ├── .editorconfig │ ├── .eslintrc │ ├── .gitignore │ ├── .nvmrc │ ├── .prettierrc.js │ ├── .stylelintrc │ ├── .vscode │ │ └── settings.json │ ├── README.md │ ├── app-builder.config.ts │ ├── clusters-config.json.example │ ├── package-lock.json │ ├── package.json │ ├── scripts │ │ ├── check-files.sh │ │ ├── check-links.sh │ │ ├── init-links.sh │ │ ├── sync-dependencies.sh │ │ └── sync-dependencies.ts │ ├── src │ │ ├── .eslintrc │ │ ├── custom-shared │ │ │ ├── .eslintrc │ │ │ └── types.ts │ │ ├── server │ │ │ ├── .eslintrc │ │ │ ├── _custom │ │ │ │ └── settings-overrides.ts │ │ │ ├── configs │ │ │ │ ├── common.ts │ │ │ │ ├── custom │ │ │ │ │ └── common.ts │ │ │ │ ├── development.ts │ │ │ │ ├── local.ts │ │ │ │ └── production.ts │ │ │ ├── index.ts │ │ │ ├── routes.ts │ │ │ └── tsconfig.json │ │ └── ui │ │ │ ├── .eslintrc │ │ │ ├── _custom │ │ │ └── customize-ui-factory.ts │ │ │ ├── entries │ │ │ ├── main.scss │ │ │ └── main.tsx │ │ │ ├── global.d.ts │ │ │ └── tsconfig.json │ └── tsconfig.json ├── interface-helpers │ ├── .eslintrc │ ├── .gitignore │ ├── .npmignore │ ├── .npmrc │ ├── .prettierrc.js │ ├── CHANGELOG.md │ ├── README.md │ ├── jest.config.js │ ├── lib │ │ ├── hammer.js │ │ ├── hammer │ │ │ ├── format.js │ │ │ ├── format.spec.js │ │ │ ├── type.js │ │ │ └── utils.js │ │ ├── ypath.js │ │ └── ypath │ │ │ ├── ypath.js │ │ │ └── ypath.spec.js │ ├── package-lock.json │ └── package.json ├── javascript-wrapper │ ├── .eslintrc │ ├── .eslintrc.json │ ├── .gitignore │ ├── .npmignore │ ├── .npmrc │ ├── .prettierrc.js │ ├── .stylelintrc │ ├── CHANGELOG.md │ ├── README.md │ ├── lib │ │ ├── commands │ │ │ ├── codes.js │ │ │ ├── index.js │ │ │ ├── utils.js │ │ │ ├── v2.js │ │ │ ├── v3.js │ │ │ └── v4.js │ │ ├── core.js │ │ ├── index.js │ │ ├── utils │ │ │ ├── error.js │ │ │ ├── interceptors.js │ │ │ ├── meta.js │ │ │ └── setup.js │ │ └── yt.js │ ├── package-lock.json │ ├── package.json │ └── test │ │ ├── axios.test.js │ │ ├── environment.js │ │ ├── utils.js │ │ └── yt.test.js ├── ui-helm-chart │ ├── .helmignore │ ├── CHANGELOG.md │ ├── Chart.yaml │ ├── README.md │ ├── templates │ │ ├── _helpers.tpl │ │ ├── config-map.yaml │ │ ├── deployment.yaml │ │ ├── ingress.yaml │ │ └── service.yaml │ └── values.yaml └── ui │ ├── .dockerignore │ ├── .editorconfig │ ├── .eslintignore │ ├── .eslintrc │ ├── .gitignore │ ├── .npmrc │ ├── .prettierrc.js │ ├── .stylelintrc │ ├── CHANGELOG.md │ ├── Dockerfile │ ├── README.md │ ├── babel.config.js │ ├── build.app.config.ts │ ├── build.lib.config.ts │ ├── build.server.tsconfig.json │ ├── clusters-config.json.example │ ├── deploy │ ├── nginx │ │ ├── nginx.conf │ │ ├── sites-enabled │ │ │ └── app.conf │ │ └── yt.development.conf.example │ ├── scripts │ │ └── preflight.sh │ └── supervisor │ │ ├── conf.d │ │ └── app.conf │ │ └── supervisord.conf │ ├── docs │ └── configuration.md │ ├── jest.config.js │ ├── package-lock.json │ ├── package.json │ ├── scripts │ ├── check-file-names-for-js-duplicates.sh │ ├── check-lodash-imports.sh │ ├── check-start-files.sh │ ├── dev.localmode-env.sh │ ├── notify.js │ ├── update-icons.sh │ └── yaml-cli.js │ ├── src │ ├── .eslintrc │ ├── @types │ │ ├── core.d.ts │ │ └── types.d.ts │ ├── server │ │ ├── .arcignore │ │ ├── .eslintrc │ │ ├── ServerFactory.ts │ │ ├── components │ │ │ ├── cluster-params.ts │ │ │ ├── cluster-queries.ts │ │ │ ├── layout-config.ts │ │ │ ├── oauth.ts │ │ │ ├── requestsSetup.ts │ │ │ ├── settings.ts │ │ │ ├── table.ts │ │ │ ├── utils.ts │ │ │ ├── vcs │ │ │ │ ├── GithubApi.ts │ │ │ │ ├── GitlabApi.ts │ │ │ │ └── index.ts │ │ │ └── yt-auth.ts │ │ ├── config.localcluster.ts │ │ ├── config.realcluster.ts │ │ ├── configs │ │ │ ├── common.ts │ │ │ ├── e2e │ │ │ │ └── local.ts │ │ │ └── local.ts │ │ ├── configure-app.ts │ │ ├── constants │ │ │ └── index.ts │ │ ├── controllers │ │ │ ├── availability.ts │ │ │ ├── cluster-info.ts │ │ │ ├── cluster-params.ts │ │ │ ├── clusters.ts │ │ │ ├── home.ts │ │ │ ├── login.ts │ │ │ ├── logout.ts │ │ │ ├── markdown-to-html.ts │ │ │ ├── oauth-login.ts │ │ │ ├── odin-proxy-api.ts │ │ │ ├── ping.ts │ │ │ ├── remote-copy.ts │ │ │ ├── scheduling-pools.ts │ │ │ ├── settings.ts │ │ │ ├── strawberry-api.ts │ │ │ ├── table-column-preset.ts │ │ │ ├── vcs.ts │ │ │ ├── yt-api.ts │ │ │ ├── yt-proxy-api.ts │ │ │ └── yt-tablet-errors-api.ts │ │ ├── index.ts │ │ ├── lib.ts │ │ ├── middlewares │ │ │ ├── authorization.ts │ │ │ ├── check-configuration.ts │ │ │ ├── oauth.ts │ │ │ └── yt-auth.ts │ │ ├── render-layout.ts │ │ ├── routes.ts │ │ ├── tsconfig.json │ │ └── utils │ │ │ ├── authorization.ts │ │ │ ├── auto-updated-cache.spec.ts │ │ │ ├── auto-updated-cache.ts │ │ │ ├── default-settings.ts │ │ │ ├── index.ts │ │ │ └── is-root-page.ts │ ├── shared │ │ ├── .eslintrc │ │ ├── constants │ │ │ ├── engines.ts │ │ │ ├── index.ts │ │ │ ├── settings-ts.ts │ │ │ ├── settings-types.ts │ │ │ ├── settings.ts │ │ │ ├── system.ts │ │ │ ├── vcs.ts │ │ │ ├── yt-api-id.ts │ │ │ └── yt-api.ts │ │ ├── keys-by-dot.ts │ │ ├── lib.ts │ │ ├── tablet-errors-manager.ts │ │ ├── ui-settings.ts │ │ ├── utils │ │ │ ├── check-permission.ts │ │ │ ├── index.ts │ │ │ └── settings.ts │ │ ├── vcs.ts │ │ └── yt-types.d.ts │ └── ui │ │ ├── .eslintrc │ │ ├── @types │ │ └── worker.d.ts │ │ ├── UIFactory │ │ ├── default-ui-factory.tsx │ │ └── index.tsx │ │ ├── appearance.ts │ │ ├── assets │ │ ├── fonts │ │ │ ├── Manrope │ │ │ │ ├── OFL.txt │ │ │ │ ├── README.txt │ │ │ │ └── otf │ │ │ │ │ ├── Manrope-Bold.otf │ │ │ │ │ ├── Manrope-ExtraBold.otf │ │ │ │ │ ├── Manrope-ExtraLight.otf │ │ │ │ │ ├── Manrope-Light.otf │ │ │ │ │ ├── Manrope-Medium.otf │ │ │ │ │ ├── Manrope-Regular.otf │ │ │ │ │ └── Manrope-SemiBold.otf │ │ │ └── Roboto_Mono │ │ │ │ ├── LICENSE.txt │ │ │ │ ├── README.txt │ │ │ │ ├── RobotoMono-Italic-VariableFont_wght.ttf │ │ │ │ ├── RobotoMono-VariableFont_wght.ttf │ │ │ │ └── static │ │ │ │ ├── RobotoMono-Bold.ttf │ │ │ │ ├── RobotoMono-BoldItalic.ttf │ │ │ │ ├── RobotoMono-ExtraLight.ttf │ │ │ │ ├── RobotoMono-ExtraLightItalic.ttf │ │ │ │ ├── RobotoMono-Italic.ttf │ │ │ │ ├── RobotoMono-Light.ttf │ │ │ │ ├── RobotoMono-LightItalic.ttf │ │ │ │ ├── RobotoMono-Medium.ttf │ │ │ │ ├── RobotoMono-MediumItalic.ttf │ │ │ │ ├── RobotoMono-Regular.ttf │ │ │ │ ├── RobotoMono-SemiBold.ttf │ │ │ │ ├── RobotoMono-SemiBoldItalic.ttf │ │ │ │ ├── RobotoMono-Thin.ttf │ │ │ │ └── RobotoMono-ThinItalic.ttf │ │ └── img │ │ │ ├── cluster-2x.svg │ │ │ ├── cluster.svg │ │ │ ├── favicon-aqua.png │ │ │ ├── favicon-bittersweet.png │ │ │ ├── favicon-bluejeans.png │ │ │ ├── favicon-darkgray.png │ │ │ ├── favicon-dorn-yellow.png │ │ │ ├── favicon-grapefruit.png │ │ │ ├── favicon-grass.png │ │ │ ├── favicon-lavander.png │ │ │ ├── favicon-lightgray.png │ │ │ ├── favicon-mediumgray.png │ │ │ ├── favicon-mint.png │ │ │ ├── favicon-pinkrose.png │ │ │ ├── favicon-rubber.png │ │ │ ├── favicon-sunflower.png │ │ │ ├── favicon.png │ │ │ ├── favicon.svg │ │ │ ├── placeholder.svg │ │ │ ├── svg │ │ │ ├── 500.svg │ │ │ ├── 901.svg │ │ │ ├── YT-login-page-background-dark.svg │ │ │ ├── YT-login-page-background-light.svg │ │ │ ├── YTsaurus-logo-dark.svg │ │ │ ├── YTsaurus-logo-light.svg │ │ │ ├── acl-inherited.svg │ │ │ ├── appLogo.svg │ │ │ ├── calendar.svg │ │ │ ├── chevron-right.svg │ │ │ ├── chevron.svg │ │ │ ├── close-icon.svg │ │ │ ├── close-tag-icon.svg │ │ │ ├── data-icon.svg │ │ │ ├── ellipsis.svg │ │ │ ├── empty-chart.svg │ │ │ ├── empty.svg │ │ │ ├── feather.svg │ │ │ ├── icons │ │ │ │ ├── acl-namespace-map.svg │ │ │ │ ├── acl-namespace.svg │ │ │ │ ├── acl-object.svg │ │ │ │ ├── angle-double-left.svg │ │ │ │ ├── angle-double-right.svg │ │ │ │ ├── angle-down.svg │ │ │ │ ├── angle-left.svg │ │ │ │ ├── angle-right.svg │ │ │ │ ├── angle-up.svg │ │ │ │ ├── arrow-from-bottm.svg │ │ │ │ ├── arrow-from-bottom.svg │ │ │ │ ├── arrow-from-top.svg │ │ │ │ ├── arrow-right-from-square.svg │ │ │ │ ├── arrow-to-bottm.svg │ │ │ │ ├── arrow-to-bottom.svg │ │ │ │ ├── arrow-to-top.svg │ │ │ │ ├── at.svg │ │ │ │ ├── ban.svg │ │ │ │ ├── book.svg │ │ │ │ ├── calendar-alt.svg │ │ │ │ ├── chaos-replicated-table.svg │ │ │ │ ├── chart-bar.svg │ │ │ │ ├── chart-line.svg │ │ │ │ ├── chart_line.svg │ │ │ │ ├── check-circle.svg │ │ │ │ ├── check.svg │ │ │ │ ├── chevron-down.svg │ │ │ │ ├── chevron-up.svg │ │ │ │ ├── circle.svg │ │ │ │ ├── clipboard-list.svg │ │ │ │ ├── clock.svg │ │ │ │ ├── clone.svg │ │ │ │ ├── cloud.svg │ │ │ │ ├── code-branch.svg │ │ │ │ ├── code-merge.svg │ │ │ │ ├── cog.svg │ │ │ │ ├── cogs.svg │ │ │ │ ├── compress.svg │ │ │ │ ├── copy.svg │ │ │ │ ├── digging.svg │ │ │ │ ├── download.svg │ │ │ │ ├── dyn-th.svg │ │ │ │ ├── ellipsis-h.svg │ │ │ │ ├── eraser.svg │ │ │ │ ├── exclamation-circle.svg │ │ │ │ ├── exclamation-triangle.svg │ │ │ │ ├── exclamation.svg │ │ │ │ ├── expand.svg │ │ │ │ ├── external-link.svg │ │ │ │ ├── eye-slash.svg │ │ │ │ ├── eye.svg │ │ │ │ ├── file-alt.svg │ │ │ │ ├── file-export.svg │ │ │ │ ├── file.svg │ │ │ │ ├── filter.svg │ │ │ │ ├── flame.svg │ │ │ │ ├── folder-open.svg │ │ │ │ ├── folder-tree.svg │ │ │ │ ├── folder.svg │ │ │ │ ├── folders.svg │ │ │ │ ├── ghost.svg │ │ │ │ ├── hand-paper.svg │ │ │ │ ├── hashtag.svg │ │ │ │ ├── intersection.svg │ │ │ │ ├── key.svg │ │ │ │ ├── layout-columns-3.svg │ │ │ │ ├── level-down-alt.svg │ │ │ │ ├── link.svg │ │ │ │ ├── list.svg │ │ │ │ ├── map.svg │ │ │ │ ├── mapReduce.svg │ │ │ │ ├── not-suported.svg │ │ │ │ ├── pause-circle.svg │ │ │ │ ├── pencil-alt.svg │ │ │ │ ├── pencil.svg │ │ │ │ ├── plane.svg │ │ │ │ ├── play-circle.svg │ │ │ │ ├── plus.svg │ │ │ │ ├── poll-people.svg │ │ │ │ ├── question-circle.svg │ │ │ │ ├── queue-table.svg │ │ │ │ ├── redo.svg │ │ │ │ ├── reduce.svg │ │ │ │ ├── replication-log-table.svg │ │ │ │ ├── rocket.svg │ │ │ │ ├── save.svg │ │ │ │ ├── share.svg │ │ │ │ ├── snowflake.svg │ │ │ │ ├── sort-alt.svg │ │ │ │ ├── sort-amount-down-alt.svg │ │ │ │ ├── sort-amount-up.svg │ │ │ │ ├── sort-down.svg │ │ │ │ ├── sort-up.svg │ │ │ │ ├── sort.svg │ │ │ │ ├── star-alt.svg │ │ │ │ ├── star.svg │ │ │ │ ├── stop-circle.svg │ │ │ │ ├── sync-alt.svg │ │ │ │ ├── table.svg │ │ │ │ ├── tag.svg │ │ │ │ ├── tasks.svg │ │ │ │ ├── th.svg │ │ │ │ ├── times.svg │ │ │ │ ├── trash-alt.svg │ │ │ │ ├── trash-bin.svg │ │ │ │ ├── triangle.svg │ │ │ │ ├── undo.svg │ │ │ │ ├── union.svg │ │ │ │ ├── unlink.svg │ │ │ │ ├── upload.svg │ │ │ │ ├── user.svg │ │ │ │ ├── weight-hanging.svg │ │ │ │ └── window-maximize.svg │ │ │ ├── info-icon.svg │ │ │ ├── info-icon2.svg │ │ │ ├── jupyter-logo.svg │ │ │ ├── learn.svg │ │ │ ├── modal-no-content.svg │ │ │ ├── no-content.svg │ │ │ ├── page-accounts.svg │ │ │ ├── page-chyt.svg │ │ │ ├── page-components.svg │ │ │ ├── page-dashboard.svg │ │ │ ├── page-groups.svg │ │ │ ├── page-navigation.svg │ │ │ ├── page-no-icon.svg │ │ │ ├── page-operations.svg │ │ │ ├── page-path-viewer.svg │ │ │ ├── page-query-tracker.svg │ │ │ ├── page-scheduling.svg │ │ │ ├── page-system.svg │ │ │ ├── page-tablet-cell-bundles.svg │ │ │ ├── page-users.svg │ │ │ ├── page-versions.svg │ │ │ ├── palette-icon.svg │ │ │ ├── pin-solid.svg │ │ │ ├── pin.svg │ │ │ ├── play.svg │ │ │ ├── read-only-icon.svg │ │ │ ├── remove.svg │ │ │ ├── reset-icon.svg │ │ │ ├── settings-2.svg │ │ │ ├── shield-icon.svg │ │ │ ├── square-semifill.svg │ │ │ ├── square.svg │ │ │ ├── staff-icon.svg │ │ │ ├── table-icon.svg │ │ │ ├── tools-icon.svg │ │ │ ├── tooltip-icon.svg │ │ │ ├── transpose.svg │ │ │ ├── warmup-icon.svg │ │ │ └── yt.svg │ │ │ ├── ui-2x.jpg │ │ │ ├── ui-big.jpg │ │ │ ├── ui.jpg │ │ │ ├── unknown-2x.png │ │ │ ├── unknown.png │ │ │ └── user-avatar.svg │ │ ├── common │ │ ├── .eslintrc │ │ ├── __mocks__ │ │ │ └── hammer.js │ │ ├── hammer.js │ │ ├── hammer │ │ │ ├── .eslintrc.json │ │ │ ├── aggregation.js │ │ │ ├── aggregation.spec.js │ │ │ ├── concat-validators.spec.js │ │ │ ├── concat-validators.ts │ │ │ ├── field-tree.spec.ts │ │ │ ├── field-tree.ts │ │ │ ├── filter.js │ │ │ ├── format.js │ │ │ ├── guid.js │ │ │ ├── predicate.spec.js │ │ │ ├── predicate.ts │ │ │ ├── stat.js │ │ │ ├── storage.js │ │ │ ├── tables-utils.js │ │ │ ├── tables.js │ │ │ ├── tables.spec.js │ │ │ ├── tree-list.spec.js │ │ │ ├── tree-list.ts │ │ │ ├── utils.js │ │ │ ├── utils.spec.js │ │ │ ├── validate-number.spec.ts │ │ │ └── validate-number.ts │ │ ├── thor │ │ │ ├── getNumber.spec.js │ │ │ ├── unipika-settings.ts │ │ │ ├── unipika.ts │ │ │ ├── ypath-base.ts │ │ │ ├── ypath.spec.js │ │ │ └── ypath.ts │ │ ├── utils │ │ │ ├── metrics.ts │ │ │ ├── redux.js │ │ │ ├── settings-local-provider.ts │ │ │ ├── settings-remote-provider.ts │ │ │ └── url.ts │ │ └── yt-api-init.ts │ │ ├── components │ │ ├── AclUpdateMessage │ │ │ ├── AclUpdateMessage.scss │ │ │ └── AclUpdateMessage.tsx │ │ ├── Alert │ │ │ └── Alert.tsx │ │ ├── AlertEvents │ │ │ ├── AlertEvents.scss │ │ │ └── AlertEvents.tsx │ │ ├── Alerts │ │ │ └── Alerts.tsx │ │ ├── AttributesButton │ │ │ ├── AttributesButton.tsx │ │ │ └── ClickableAttributesButton.tsx │ │ ├── AttributesModal │ │ │ └── AttributesModal.js │ │ ├── Block │ │ │ ├── Block.scss │ │ │ └── Block.tsx │ │ ├── Breadcrumbs │ │ │ ├── Breadcrumbs.scss │ │ │ ├── Breadcrumbs.tsx │ │ │ └── index.ts │ │ ├── BundleMetaResourceProgress │ │ │ ├── BundleMetaResourceProgress.scss │ │ │ └── BundleMetaResourceProgress.tsx │ │ ├── Button │ │ │ ├── Button.scss │ │ │ └── Button.tsx │ │ ├── ButtonPopup │ │ │ ├── ButtonPopup.scss │ │ │ └── index.tsx │ │ ├── ChartLink │ │ │ └── ChartLink.tsx │ │ ├── ClickableText │ │ │ ├── ClickableText.scss │ │ │ └── ClickableText.tsx │ │ ├── ClipboardButton │ │ │ ├── ClipboardButton.js │ │ │ └── ClipboardButton.scss │ │ ├── ClusterIcon │ │ │ ├── ClusterIcon.scss │ │ │ └── ClusterIcon.tsx │ │ ├── CollapsableText │ │ │ ├── CollapsableText.scss │ │ │ └── CollapsableText.tsx │ │ ├── CollapsedString │ │ │ ├── CollapsedString.scss │ │ │ ├── CollapsedString.tsx │ │ │ └── index.ts │ │ ├── CollapsibleList │ │ │ ├── CollapsibleList.scss │ │ │ └── CollapsibleList.tsx │ │ ├── CollapsibleSection │ │ │ ├── CollapsibleSection.scss │ │ │ └── CollapsibleSection.tsx │ │ ├── CollapsibleTable │ │ │ ├── CollapsibleTable.js │ │ │ └── CollapsibleTable.scss │ │ ├── ColorCircle │ │ │ ├── ColorCircle.scss │ │ │ └── ColorCircle.tsx │ │ ├── ColumnCell │ │ │ ├── ColumnCell.scss │ │ │ └── ColumnCell.tsx │ │ ├── ColumnHeader │ │ │ ├── ColumnHeader.scss │ │ │ └── ColumnHeader.tsx │ │ ├── ColumnSelector │ │ │ ├── ColumnSelector.js │ │ │ ├── ColumnSelector.scss │ │ │ └── constants.scss │ │ ├── ColumnSelectorModal │ │ │ ├── ColumnSelectorModal.scss │ │ │ └── ColumnSelectorModal.tsx │ │ ├── CommaSeparateListWithRestCounter │ │ │ ├── CommaSeparateListWithRestCounter.js │ │ │ └── CommaSeparateListWithRestCounter.scss │ │ ├── CompactError │ │ │ ├── CompactError.scss │ │ │ └── CompactError.tsx │ │ ├── ConfirmInput │ │ │ ├── ConfirmInput.js │ │ │ └── ConfirmInput.scss │ │ ├── DataTableYT │ │ │ ├── DataTableYT.scss │ │ │ └── DataTableYT.tsx │ │ ├── Dialog │ │ │ ├── Dialog.scss │ │ │ ├── Dialog.tsx │ │ │ ├── Dialog.types.ts │ │ │ ├── DialogError.scss │ │ │ ├── DialogError.tsx │ │ │ ├── controls │ │ │ │ ├── AbcControl │ │ │ │ │ └── AbcControl.tsx │ │ │ │ ├── BeforeDatePicker │ │ │ │ │ ├── BeforeDatePicker.scss │ │ │ │ │ └── BeforeDatePicker.tsx │ │ │ │ ├── BytesControl.scss │ │ │ │ ├── BytesControl.tsx │ │ │ │ ├── ClusterSelectControl │ │ │ │ │ ├── ClusterSelectControl.scss │ │ │ │ │ └── ClusterSelectControl.tsx │ │ │ │ ├── DatePickerControl │ │ │ │ │ └── DatePickerControl.tsx │ │ │ │ ├── EditablePathList │ │ │ │ │ ├── EditablePathList.scss │ │ │ │ │ └── EditablePathList.tsx │ │ │ │ ├── OutputPathControl │ │ │ │ │ ├── AddOptionForm.scss │ │ │ │ │ ├── AddOptionForm.tsx │ │ │ │ │ ├── CompressionCodecAttribute.tsx │ │ │ │ │ ├── ErasureCodecAttribute.tsx │ │ │ │ │ ├── FormOptionItem.scss │ │ │ │ │ ├── FormOptionItem.tsx │ │ │ │ │ ├── OptimizeForAttribute.tsx │ │ │ │ │ ├── OutputPathControl.scss │ │ │ │ │ ├── OutputPathControl.tsx │ │ │ │ │ ├── getTooltipByType.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── PathEditorControl │ │ │ │ │ └── PathEditorControl.tsx │ │ │ │ ├── PoolSuggestControl │ │ │ │ │ ├── PoolSuggestControl.scss │ │ │ │ │ └── PoolSuggestControl.tsx │ │ │ │ ├── PoolTreeSuggestControl │ │ │ │ │ └── PoolTreeSuggestControl.tsx │ │ │ │ ├── RangeInputPickerControl │ │ │ │ │ ├── RangeInputPickerControl.scss │ │ │ │ │ └── RangeInputPickerControl.tsx │ │ │ │ ├── RoleListControl │ │ │ │ │ ├── RoleListControl.scss │ │ │ │ │ ├── RoleListControl.tsx │ │ │ │ │ └── utils.ts │ │ │ │ ├── SelectWithSubItems │ │ │ │ │ ├── SelectWithSubItems.scss │ │ │ │ │ └── SelectWithSubItems.tsx │ │ │ │ └── SortableListControl │ │ │ │ │ ├── SortableListControl.scss │ │ │ │ │ └── SortableListControl.tsx │ │ │ ├── df-dialog-utils.ts │ │ │ └── index.tsx │ │ ├── DialogWrapper │ │ │ └── DialogWrapper.tsx │ │ ├── DownloadAttributesButton │ │ │ ├── DownloadFileButton.tsx │ │ │ ├── YsonDownloadButton.tsx │ │ │ ├── helpers │ │ │ │ └── attributesToString.ts │ │ │ └── index.ts │ │ ├── Dropdown │ │ │ └── Dropdown.js │ │ ├── EditAnnotationWithPreview │ │ │ └── EditAnnotationWithPreview.tsx │ │ ├── EditJsonWithPreview │ │ │ └── EditJsonWithPreview.tsx │ │ ├── EditTextWithPreview │ │ │ ├── EditTextWithPreview.scss │ │ │ ├── EditTextWithPreview.tsx │ │ │ ├── TabbedContent.scss │ │ │ ├── TabbedContent.tsx │ │ │ ├── constants.scss │ │ │ └── index.ts │ │ ├── EditableAsText │ │ │ ├── EditableAsText.scss │ │ │ └── EditableAsText.tsx │ │ ├── Editor │ │ │ └── Editor.js │ │ ├── ElementWidthAsCssVariable │ │ │ └── ElementWidthAsCssVariable.tsx │ │ ├── ElementsTable │ │ │ ├── ElementsTable.js │ │ │ ├── ElementsTable.scss │ │ │ ├── ElementsTableFooter.js │ │ │ ├── ElementsTableHeader.tsx │ │ │ ├── ElementsTableRow.js │ │ │ ├── ElementsTableSticky.js │ │ │ ├── constants.scss │ │ │ ├── hocs │ │ │ │ ├── withKeyboardNavigation.js │ │ │ │ ├── withStickyFooter.js │ │ │ │ └── withStickyHead.js │ │ │ └── utils.js │ │ ├── Error │ │ │ └── Error.tsx │ │ ├── ErrorBoundary │ │ │ └── ErrorBoundary.tsx │ │ ├── ErrorDetails │ │ │ ├── ErrorDetails.scss │ │ │ └── ErrorDetails.tsx │ │ ├── ErrorIcon │ │ │ ├── ErrorIcon.scss │ │ │ └── ErrorIcon.tsx │ │ ├── ErrorMessage │ │ │ ├── ErrorMessage.js │ │ │ └── ErrorMessage.scss │ │ ├── ErrorToClipboardButton │ │ │ └── ErrorToClipboardButton.tsx │ │ ├── ExpandButton │ │ │ ├── ExpandButton.scss │ │ │ ├── ExpandButton.tsx │ │ │ └── index.ts │ │ ├── ExpandIcon │ │ │ ├── ExpandIcon.scss │ │ │ └── ExpandIcon.tsx │ │ ├── Favourites │ │ │ ├── Favourites.scss │ │ │ └── Favourites.tsx │ │ ├── FilePicker │ │ │ ├── FilePicker.scss │ │ │ └── FilePicker.tsx │ │ ├── Filter │ │ │ ├── Filter.tsx │ │ │ ├── FilterWithRegExp.scss │ │ │ └── FilterWithRegExp.tsx │ │ ├── FlexSplitPane │ │ │ ├── FlexSplitPane.scss │ │ │ └── FlexSplitPane.tsx │ │ ├── FullScreen │ │ │ └── FullScreen.js │ │ ├── HelpLink │ │ │ ├── HelpLink.scss │ │ │ └── HelpLink.tsx │ │ ├── HighlightedText │ │ │ └── HighlightedText.tsx │ │ ├── Histogram │ │ │ ├── Histogram.js │ │ │ ├── Histogram.scss │ │ │ └── HistogramChart.tsx │ │ ├── Hotkey │ │ │ └── Hotkey.tsx │ │ ├── Icon │ │ │ ├── Icon.scss │ │ │ ├── Icon.tsx │ │ │ ├── auto-imported-icons.ts │ │ │ ├── icons-table.md │ │ │ ├── importGravityIcons.ts │ │ │ └── importIcons.ts │ │ ├── Info │ │ │ ├── Info.scss │ │ │ └── Info.tsx │ │ ├── IntersectionObserverContainer │ │ │ └── IntersectionObserverContainer.tsx │ │ ├── Label │ │ │ ├── Label.scss │ │ │ └── Label.tsx │ │ ├── LabelsGroup │ │ │ ├── LabelsGroup.js │ │ │ └── LabelsGroup.scss │ │ ├── Link │ │ │ └── Link.tsx │ │ ├── Linkify │ │ │ └── Linkify.tsx │ │ ├── LoadDataHandler │ │ │ └── LoadDataHandler.tsx │ │ ├── Loader │ │ │ ├── Loader.scss │ │ │ └── Loader.tsx │ │ ├── Login │ │ │ ├── ChangePasswordFormPage │ │ │ │ └── ChangePasswordFormPage.tsx │ │ │ ├── LoginFormPage │ │ │ │ └── LoginFormPage.tsx │ │ │ └── LoginPageWrapper │ │ │ │ ├── LoginPageWrapper.scss │ │ │ │ ├── LoginPageWrapper.tsx │ │ │ │ ├── login-page-theme-dark.scss │ │ │ │ └── login-page-theme-light.scss │ │ ├── MaintenanceRequests │ │ │ └── MaintenanceRequests.tsx │ │ ├── Markdown │ │ │ ├── Markdown.scss │ │ │ ├── Markdown.tsx │ │ │ └── yfm-overrides.scss │ │ ├── MarkdownLinePreview │ │ │ ├── MarkdownLinePreview.scss │ │ │ └── MarkdownLinePreview.tsx │ │ ├── Message │ │ │ └── Message.js │ │ ├── MetaTable │ │ │ ├── MetaTable.scss │ │ │ ├── MetaTable.tsx │ │ │ ├── presets │ │ │ │ ├── compression.js │ │ │ │ ├── erasure-replication.js │ │ │ │ ├── index.js │ │ │ │ ├── main.js │ │ │ │ ├── presets.tsx │ │ │ │ ├── size.js │ │ │ │ ├── ttl.scss │ │ │ │ └── ttl.tsx │ │ │ └── templates │ │ │ │ ├── OperationTemplate.tsx │ │ │ │ └── Template.js │ │ ├── Modal │ │ │ ├── Modal.scss │ │ │ ├── Modal.tsx │ │ │ └── SimpleModal.tsx │ │ ├── ModalWrapper │ │ │ └── ModalWrapper.tsx │ │ ├── MonacoEditor │ │ │ ├── MonacoEditor.scss │ │ │ ├── MonacoEditor.tsx │ │ │ ├── MonacoEditorThemes.tsx │ │ │ └── index.tsx │ │ ├── Multimeter │ │ │ ├── BarChart.scss │ │ │ ├── BarChart.tsx │ │ │ ├── Multimeter.scss │ │ │ └── Multimeter.tsx │ │ ├── NoContent │ │ │ ├── NoContent.scss │ │ │ └── NoContent.tsx │ │ ├── NumberInput │ │ │ ├── NumberInput.scss │ │ │ └── NumberInput.tsx │ │ ├── OperationId │ │ │ └── OperationId.tsx │ │ ├── OperationPool │ │ │ ├── LightWeightIcon.tsx │ │ │ ├── OperationPool.scss │ │ │ └── OperationPool.tsx │ │ ├── PageCounter │ │ │ └── PageCounter.tsx │ │ ├── PageHead │ │ │ └── PageHead.tsx │ │ ├── Pagination │ │ │ ├── Pagination.js │ │ │ ├── Pagination.scss │ │ │ └── SimplePagination.tsx │ │ ├── ProgressCircle │ │ │ └── ProgressCircle.tsx │ │ ├── QuotaEditor │ │ │ ├── QuotaEditor.scss │ │ │ ├── QuotaEditor.tsx │ │ │ ├── QuotaEditorWithHide.scss │ │ │ └── QuotaEditorWithHide.tsx │ │ ├── RadioButton │ │ │ └── RadioButton.tsx │ │ ├── Radiobox │ │ │ ├── Radiobox.scss │ │ │ └── Radiobox.tsx │ │ ├── RedirectConfirmModal │ │ │ ├── RedirectConfirmModal.tsx │ │ │ └── index.ts │ │ ├── SchemaDataType │ │ │ ├── DataType │ │ │ │ ├── DataType.js │ │ │ │ └── DataType.scss │ │ │ ├── SchemaDataType.tsx │ │ │ ├── dataTypes.ts │ │ │ └── dateTypesV3.ts │ │ ├── SegmentControl │ │ │ ├── SegmentControl.scss │ │ │ └── SegmentControl.tsx │ │ ├── Select │ │ │ ├── Select.scss │ │ │ └── Select.tsx │ │ ├── SortIcon │ │ │ ├── SortIcon.scss │ │ │ └── SortIcon.tsx │ │ ├── StarTrackLink │ │ │ └── StarTrackLink.tsx │ │ ├── StatisticTable │ │ │ ├── StatisticTable.scss │ │ │ ├── StatisticTable.tsx │ │ │ ├── Toolbar.tsx │ │ │ ├── get-min-width.ts │ │ │ ├── index.ts │ │ │ ├── prepare-statistic.ts.ts │ │ │ ├── types.ts │ │ │ └── utils.ts │ │ ├── StatusBlock │ │ │ ├── StatusBlock.scss │ │ │ └── StatusBlock.tsx │ │ ├── StatusBulb │ │ │ ├── StatusBulb.scss │ │ │ └── StatusBulb.tsx │ │ ├── StatusLabel │ │ │ ├── StatusLabel.scss │ │ │ └── StatusLabel.tsx │ │ ├── StickyContainer │ │ │ ├── StickyContainer.scss │ │ │ └── StickyContainer.tsx │ │ ├── SubjectLink │ │ │ ├── DefaultSubjectLink.scss │ │ │ ├── DefaultSubjectLink.tsx │ │ │ ├── SubjectLink.tsx │ │ │ └── lazy.tsx │ │ ├── Suggest │ │ │ ├── Suggest.scss │ │ │ └── Suggest.tsx │ │ ├── TTLInfo │ │ │ └── TTLInfo.tsx │ │ ├── Tabs │ │ │ ├── Tabs.scss │ │ │ ├── Tabs.tsx │ │ │ └── __mocks__ │ │ │ │ └── Tabs.js │ │ ├── Tag │ │ │ ├── Tag.scss │ │ │ └── Tag.tsx │ │ ├── TagSelector │ │ │ └── TagSelector.tsx │ │ ├── Text │ │ │ ├── Text.scss │ │ │ └── Text.tsx │ │ ├── TextInputWithDebounce │ │ │ └── TextInputWithDebounce.tsx │ │ ├── TimeDuration │ │ │ ├── TimeDuration.scss │ │ │ └── TimeDuration.tsx │ │ ├── TimeInput │ │ │ └── TimeInput.tsx │ │ ├── TimePicker │ │ │ ├── TimePicker.js │ │ │ └── TimePicker.scss │ │ ├── Tooltip │ │ │ ├── Tooltip.scss │ │ │ └── Tooltip.tsx │ │ ├── VisibleValues │ │ │ ├── VisibleValues.scss │ │ │ └── VisibleValues.tsx │ │ ├── WarningIcon │ │ │ ├── WarningIcon.scss │ │ │ └── WarningIcon.tsx │ │ ├── WithStickyToolbar │ │ │ ├── Toolbar │ │ │ │ ├── Toolbar.scss │ │ │ │ └── Toolbar.tsx │ │ │ ├── WithStickyToolbar.scss │ │ │ └── WithStickyToolbar.tsx │ │ ├── YTGraph │ │ │ ├── PopupLayer │ │ │ │ ├── HoverPopup.scss │ │ │ │ ├── HoverPopup.tsx │ │ │ │ ├── PopupLayer.ts │ │ │ │ ├── PopupPortal.tsx │ │ │ │ └── index.ts │ │ │ ├── YTGraph.scss │ │ │ ├── YTGraph.tsx │ │ │ ├── canvas │ │ │ │ └── NodeBlock.tsx │ │ │ ├── config.tsx │ │ │ ├── constants │ │ │ │ └── index.ts │ │ │ ├── hooks │ │ │ │ └── useHoverBlock.ts │ │ │ └── index.ts │ │ ├── YTHistogram │ │ │ ├── YTHistogram.scss │ │ │ └── YTHistogram.tsx │ │ ├── YagrChartKit │ │ │ └── YagrChartKit.tsx │ │ ├── YqlValue │ │ │ └── YqlValue.tsx │ │ ├── Yson │ │ │ ├── StructuredYson │ │ │ │ ├── StructuredYsonTypes.ts │ │ │ │ ├── flattenUnipika.spec.ts │ │ │ │ └── flattenUnipika.ts │ │ │ ├── StructuredYsonVirtualized │ │ │ │ ├── StructuredYsonVirtualized.scss │ │ │ │ └── StructuredYsonVirtualized.tsx │ │ │ └── Yson.tsx │ │ ├── action │ │ │ └── action.js │ │ ├── common │ │ │ ├── ColumnSelector │ │ │ │ ├── ColumnSelector.scss │ │ │ │ ├── ColumnSelector.tsx │ │ │ │ ├── i18n │ │ │ │ │ ├── en.json │ │ │ │ │ └── index.ts │ │ │ │ └── index.ts │ │ │ ├── Datepicker │ │ │ │ ├── Calendar │ │ │ │ │ ├── Calendar.js │ │ │ │ │ └── Calendar.scss │ │ │ │ ├── Datepicker.d.ts │ │ │ │ ├── Datepicker.js │ │ │ │ ├── Datepicker.scss │ │ │ │ ├── Month │ │ │ │ │ ├── Month.js │ │ │ │ │ └── Month.scss │ │ │ │ ├── Months │ │ │ │ │ ├── Months.js │ │ │ │ │ └── Months.scss │ │ │ │ ├── PopupContent │ │ │ │ │ ├── PopupContent.js │ │ │ │ │ └── PopupContent.scss │ │ │ │ ├── Presets │ │ │ │ │ ├── Presets.js │ │ │ │ │ └── Presets.scss │ │ │ │ ├── Quarters │ │ │ │ │ ├── Quarters.js │ │ │ │ │ └── Quarters.scss │ │ │ │ ├── YearSwitcher │ │ │ │ │ ├── YearSwitcher.js │ │ │ │ │ └── YearSwitcher.scss │ │ │ │ ├── Years │ │ │ │ │ ├── Years.js │ │ │ │ │ └── Years.scss │ │ │ │ ├── constants.js │ │ │ │ ├── i18n │ │ │ │ │ ├── en.json │ │ │ │ │ └── index.ts │ │ │ │ ├── index.tsx │ │ │ │ ├── readme.md │ │ │ │ └── utils.js │ │ │ ├── EnterInput │ │ │ │ └── EnterInput.js │ │ │ ├── FieldWrapper │ │ │ │ ├── FieldWrapper.scss │ │ │ │ ├── FieldWrapper.tsx │ │ │ │ └── index.ts │ │ │ ├── README.md │ │ │ ├── RangeInputPicker │ │ │ │ ├── RangeInputPicker.scss │ │ │ │ ├── RangeInputPicker.tsx │ │ │ │ ├── constants.ts │ │ │ │ ├── index.ts │ │ │ │ └── utils.ts │ │ │ ├── SelectControl │ │ │ │ ├── SelectControl.scss │ │ │ │ └── SelectControl.tsx │ │ │ ├── Timeline │ │ │ │ ├── Timeline.d.ts │ │ │ │ ├── Timeline.js │ │ │ │ ├── Timeline.scss │ │ │ │ ├── TimelinePicker │ │ │ │ │ ├── TimelineDatepicker.js │ │ │ │ │ ├── TimelinePicker.scss │ │ │ │ │ └── TimelinePicker.tsx │ │ │ │ ├── TimelineRuler │ │ │ │ │ ├── TimelineRuler.js │ │ │ │ │ ├── TimelineRuler.scss │ │ │ │ │ └── util.ts │ │ │ │ ├── i18n │ │ │ │ │ ├── en.json │ │ │ │ │ └── index.ts │ │ │ │ ├── index.ts │ │ │ │ └── util.ts │ │ │ ├── YTTimeline.scss │ │ │ └── YTTimeline.tsx │ │ ├── formatters │ │ │ ├── FormattedId │ │ │ │ ├── FormattedId.js │ │ │ │ └── FormattedId.scss │ │ │ ├── FormattedLink.js │ │ │ ├── FormattedText.js │ │ │ ├── FormattedTextOrLink.js │ │ │ └── index.js │ │ └── templates │ │ │ ├── cluster-menu.js │ │ │ ├── components.js │ │ │ ├── components │ │ │ └── nodes │ │ │ │ ├── node.js │ │ │ │ └── nodes.tsx │ │ │ ├── operations.js │ │ │ ├── operations │ │ │ ├── events.js │ │ │ ├── resources.js │ │ │ └── specification.js │ │ │ ├── system.js │ │ │ ├── templates.js │ │ │ ├── utils.js │ │ │ └── utils.scss │ │ ├── config │ │ ├── index.ts │ │ ├── ui-settings.ts │ │ └── yt-config.ts │ │ ├── constants │ │ ├── accounts │ │ │ ├── accounts.ts │ │ │ ├── editor.js │ │ │ └── index.ts │ │ ├── acl.ts │ │ ├── actions.js │ │ ├── chyt-page.ts │ │ ├── cluster-menu.ts │ │ ├── colors.ts │ │ ├── components │ │ │ ├── main.ts │ │ │ ├── node-maintenance-modal.ts │ │ │ ├── nodes │ │ │ │ ├── memory.ts │ │ │ │ ├── node.ts │ │ │ │ └── nodes.ts │ │ │ ├── proxies │ │ │ │ └── proxies.js │ │ │ ├── shards.ts │ │ │ └── versions │ │ │ │ └── versions_v2.ts │ │ ├── dashboard │ │ │ └── index.js │ │ ├── docsUrls.ts │ │ ├── empty.ts │ │ ├── execute-batch.ts │ │ ├── global │ │ │ └── index.ts │ │ ├── groups.ts │ │ ├── index.ts │ │ ├── job.ts │ │ ├── manage-tokens.ts │ │ ├── modals │ │ │ ├── attributes-modal.js │ │ │ ├── cell-preview.ts │ │ │ └── errors.js │ │ ├── monaco.ts │ │ ├── navigation │ │ │ ├── content │ │ │ │ ├── document.js │ │ │ │ ├── file.js │ │ │ │ ├── replicated-table.ts │ │ │ │ ├── table.js │ │ │ │ ├── transaction-map.js │ │ │ │ └── transaction.js │ │ │ ├── index.ts │ │ │ ├── modals │ │ │ │ ├── attributes-editor.ts │ │ │ │ ├── copy-object.js │ │ │ │ ├── create-directory.ts │ │ │ │ ├── create-table.ts │ │ │ │ ├── delete-object.ts │ │ │ │ ├── dyn-tables-state-modal.ts │ │ │ │ ├── index.ts │ │ │ │ ├── move-object.js │ │ │ │ ├── path-editing-popup.js │ │ │ │ ├── restore-object.js │ │ │ │ └── table-erase-modal.ts │ │ │ ├── path-editor.js │ │ │ └── tabs │ │ │ │ ├── access-log.ts │ │ │ │ ├── annotation.ts │ │ │ │ ├── consumer.ts │ │ │ │ ├── locks.js │ │ │ │ ├── queue.ts │ │ │ │ ├── schema.js │ │ │ │ ├── tablet-errors.ts │ │ │ │ └── tablets.js │ │ ├── operations │ │ │ ├── detail.ts │ │ │ ├── index.ts │ │ │ ├── jobs.ts │ │ │ ├── list.ts │ │ │ └── statistics.ts │ │ ├── pagination.ts │ │ ├── path-viewer.js │ │ ├── scheduling │ │ │ └── index.ts │ │ ├── settings │ │ │ └── table.ts │ │ ├── slideoutMenu.ts │ │ ├── suggests.ts │ │ ├── system │ │ │ ├── masters.js │ │ │ ├── nodes.ts │ │ │ ├── schedulers.js │ │ │ └── tabs.ts │ │ ├── tables.js │ │ ├── tablet.js │ │ ├── tablets.ts │ │ ├── users.js │ │ └── utils.ts │ │ ├── containers │ │ ├── ACL │ │ │ ├── ACL-connect-helpers.tsx │ │ │ ├── ACL.scss │ │ │ ├── ACL.tsx │ │ │ ├── AclActions │ │ │ │ └── AclActions.tsx │ │ │ ├── AclColumnsCell.tsx │ │ │ ├── AclModeControl.tsx │ │ │ ├── ApproversFilters │ │ │ │ ├── ApproversFilters.scss │ │ │ │ └── ApproversFilters.tsx │ │ │ ├── ColumnGroups │ │ │ │ ├── ColumnGroups.scss │ │ │ │ ├── ColumnGroups.tsx │ │ │ │ └── EditColumnGroupModal.tsx │ │ │ ├── DeletePermissionModal │ │ │ │ ├── DeletePermissionModal.js │ │ │ │ └── DeletePermissionModal.scss │ │ │ ├── InheritanceMessage │ │ │ │ └── InheritanceMessage.tsx │ │ │ ├── ManageAcl │ │ │ │ ├── ManageAcl.scss │ │ │ │ └── ManageAcl.tsx │ │ │ ├── ManageInheritance │ │ │ │ ├── ManageInheritance.scss │ │ │ │ └── ManageInheritance.tsx │ │ │ ├── MyPermissinos │ │ │ │ ├── MyPermissions.scss │ │ │ │ └── MyPermissions.tsx │ │ │ ├── ObjectPermissionsFilters │ │ │ │ ├── ObjectPermissionsFilters.scss │ │ │ │ └── ObjectPermissionsFilters.tsx │ │ │ ├── RequestPermissions │ │ │ │ ├── AclColumnGroupControl │ │ │ │ │ └── AclColumnGroupControl.tsx │ │ │ │ ├── AclColumnsControl │ │ │ │ │ └── AclColumnsControl.tsx │ │ │ │ ├── PermissionsControl │ │ │ │ │ ├── PermissionsControl.scss │ │ │ │ │ └── PermissionsControl.tsx │ │ │ │ ├── RequestPermissions.scss │ │ │ │ └── RequestPermissions.tsx │ │ │ ├── RoleActions.scss │ │ │ ├── RoleActions.tsx │ │ │ ├── SubjectsControl │ │ │ │ ├── SubjectsControl.tsx │ │ │ │ ├── YTSubjectSuggest.scss │ │ │ │ ├── YTSubjectSuggest.tsx │ │ │ │ └── lazy.tsx │ │ │ └── index.tsx │ │ ├── ActionModal │ │ │ └── ActionModal.js │ │ ├── App │ │ │ ├── App.scss │ │ │ ├── App.tsx │ │ │ ├── AppStoreProvider.tsx │ │ │ └── AppThemeFont.tsx │ │ ├── AppNavigation │ │ │ ├── AppNavigation.scss │ │ │ ├── AppNavigation.tsx │ │ │ ├── AppNavigationComponent.scss │ │ │ ├── AppNavigationComponent.tsx │ │ │ ├── AppNavigationPageLayout.tsx │ │ │ ├── PagesEditorPanel.scss │ │ │ ├── PagesEditorPanel.tsx │ │ │ ├── PagesPanel.scss │ │ │ ├── PagesPanel.tsx │ │ │ ├── PagesSettingsEditor.scss │ │ │ ├── PagesSettingsEditor.tsx │ │ │ └── TopRowContent │ │ │ │ ├── SectionName.scss │ │ │ │ ├── SectionName.tsx │ │ │ │ └── TopRowContent.tsx │ │ ├── BanPage │ │ │ ├── BanPage.js │ │ │ └── lazy.tsx │ │ ├── CellPreviewModal │ │ │ ├── CellPreviewModal.scss │ │ │ └── CellPreviewModal.tsx │ │ ├── ClusterPage │ │ │ ├── ClusterPage.js │ │ │ ├── ClusterPage.scss │ │ │ ├── ExtraClusterPageRoutes.tsx │ │ │ ├── OngoingEventsNotice.scss │ │ │ ├── PageTracker.js │ │ │ └── SupportedFeaturesUpdater.tsx │ │ ├── ClusterPageHeader │ │ │ ├── ClusterColor.scss │ │ │ ├── ClusterColor.ts │ │ │ ├── ClusterPageHeader.scss │ │ │ ├── ClusterPageHeader.tsx │ │ │ ├── ClusterPicker.tsx │ │ │ ├── ClustersPanel.scss │ │ │ ├── ClustersPanel.tsx │ │ │ ├── HeadSpacer.scss │ │ │ ├── HeadSpacer.tsx │ │ │ └── helpers │ │ │ │ └── makeClusterUrl.ts │ │ ├── ClusterPageWrapper │ │ │ ├── ClusterPageWrapper.tsx │ │ │ └── lazy.tsx │ │ ├── ClustersMenu │ │ │ ├── ClusterMenuBody.scss │ │ │ ├── ClusterMenuHeader.scss │ │ │ ├── ClustersMenu.js │ │ │ ├── ClustersMenuBody.tsx │ │ │ ├── ClustersMenuHeader.tsx │ │ │ ├── HeaderLinks.tsx │ │ │ ├── header-links-items.ts │ │ │ └── lazy.tsx │ │ ├── ErrorYsonSettingsProvider │ │ │ └── ErrorYsonSettingsProvider.tsx │ │ ├── GridWithMediaMinWidth │ │ │ └── GridWithMediaMinWidth.tsx │ │ ├── Host │ │ │ ├── Host.scss │ │ │ └── Host.tsx │ │ ├── MaintenancePage │ │ │ ├── HandleMaintenance.tsx │ │ │ ├── MaintenancePage.scss │ │ │ └── MaintenancePage.tsx │ │ ├── ManageTokens │ │ │ ├── ManageTokensModal.tsx │ │ │ ├── ManageTokensModalContent │ │ │ │ ├── ManageTokensModalContent.scss │ │ │ │ └── ManageTokensModalContent.tsx │ │ │ ├── ManageTokensPasswordModal │ │ │ │ ├── ManageTokensPasswordModal.tsx │ │ │ │ └── password-strategies.ts │ │ │ ├── index.impl.tsx │ │ │ └── index.tsx │ │ ├── MaxContentWidth │ │ │ ├── MaxContentWidth.scss │ │ │ ├── MaxContentWidth.tsx │ │ │ ├── hooks.tsx │ │ │ └── index.tsx │ │ ├── ModalErrors │ │ │ └── ModalErrors.tsx │ │ ├── NavigationExtraActions │ │ │ └── NavigationExtraActions.tsx │ │ ├── OpenQueryButtons │ │ │ ├── OpenQueryButtons.scss │ │ │ └── OpenQueryButtons.tsx │ │ ├── PathEditor │ │ │ ├── PathEditor.scss │ │ │ └── PathEditor.tsx │ │ ├── PathFragment │ │ │ └── PathFragment.tsx │ │ ├── PreloadError │ │ │ ├── PreloadError.scss │ │ │ └── PreloadError.tsx │ │ ├── RetryBatchModal │ │ │ └── RetryBatchModal.tsx │ │ ├── RootPage │ │ │ ├── RootPage.scss │ │ │ └── RootPage.tsx │ │ ├── SettingsMenu │ │ │ ├── BooleanSettingItem.tsx │ │ │ ├── SettingsItemLayout.scss │ │ │ ├── SettingsItemLayout.tsx │ │ │ ├── SettingsMenu.scss │ │ │ ├── SettingsMenuInput.js │ │ │ ├── SettingsMenuItem.js │ │ │ ├── SettingsMenuRadio.tsx │ │ │ └── SettingsMenuSelect.tsx │ │ ├── SettingsPanel │ │ │ ├── SettingsPanel.scss │ │ │ ├── SettingsPanel.tsx │ │ │ └── settings-description.tsx │ │ ├── SupportComponent │ │ │ ├── SupportComponent.tsx │ │ │ └── lazy.tsx │ │ ├── UserSuggest │ │ │ ├── UserSuggest.tsx │ │ │ ├── YTUserSuggest.tsx │ │ │ └── YTUserSuggestLazy.tsx │ │ ├── WaitForFont │ │ │ └── WaitForFont.tsx │ │ └── YQLKitButton │ │ │ └── YQLKitButton.tsx │ │ ├── entries │ │ ├── main.scss │ │ └── main.tsx │ │ ├── global.d.ts │ │ ├── hocs │ │ ├── components │ │ │ └── Modal │ │ │ │ ├── withHandledScrollBar.js │ │ │ │ └── withScope.tsx │ │ ├── withBlockedNavigation.js │ │ ├── withCollapsible.js │ │ ├── withDelayedMount.tsx │ │ ├── withLazyLoading.tsx │ │ ├── withSplit.tsx │ │ └── withVisible.tsx │ │ ├── hooks │ │ ├── global-pool-trees.ts │ │ ├── global.tsx │ │ ├── use-cluster.ts │ │ ├── use-hotkeysjs-scope.tsx │ │ ├── use-intersection.ts │ │ ├── use-prevent-unload.ts │ │ ├── use-scrollable-element.ts │ │ ├── use-side-panel.tsx │ │ ├── use-updater.ts │ │ ├── useAppSelector.ts │ │ ├── useErrorYsonSettings.tsx │ │ ├── useIsDesktop.ts │ │ └── useResizeObserver.tsx │ │ ├── icons │ │ ├── Chevron.tsx │ │ └── PageOdin.tsx │ │ ├── legacy-styles │ │ ├── cluster-menu │ │ │ └── cluster-menu.scss │ │ ├── cluster-page │ │ │ └── cluster-page.scss │ │ ├── elements │ │ │ ├── attributes-modal │ │ │ │ └── attributes-modal.scss │ │ │ ├── button │ │ │ │ └── button.scss │ │ │ ├── code │ │ │ │ └── code.scss │ │ │ ├── confirmation │ │ │ │ └── confirmation.scss │ │ │ ├── definition-list │ │ │ │ └── definition-list.scss │ │ │ ├── elements.scss │ │ │ ├── ellipsis.scss │ │ │ ├── error-message │ │ │ │ └── error-message.scss │ │ │ ├── filter │ │ │ │ └── filter.scss │ │ │ ├── form │ │ │ │ └── form.scss │ │ │ ├── globals.scss │ │ │ ├── heading │ │ │ │ └── heading.scss │ │ │ ├── histogram │ │ │ │ └── histogram.scss │ │ │ ├── island │ │ │ │ └── island.scss │ │ │ ├── link.scss │ │ │ ├── list │ │ │ │ └── list.scss │ │ │ ├── message │ │ │ │ └── message.scss │ │ │ ├── meta │ │ │ │ └── meta.scss │ │ │ ├── mixins.scss │ │ │ ├── modals │ │ │ │ └── modals.scss │ │ │ ├── monospace.scss │ │ │ ├── page │ │ │ │ └── page.scss │ │ │ ├── pretty-scroll │ │ │ │ └── pretty-scroll.scss │ │ │ ├── section │ │ │ │ └── section.scss │ │ │ ├── suggest │ │ │ │ └── suggest.scss │ │ │ ├── toolbar │ │ │ │ └── toolbar.scss │ │ │ ├── unipika │ │ │ │ └── unipika.scss │ │ │ └── user-suggest │ │ │ │ └── user-suggest.scss │ │ └── legacy.scss │ │ ├── libs │ │ └── monaco-yql-languages │ │ │ ├── _.contribution.ts │ │ │ ├── clickhouse │ │ │ ├── clickhouse.contribution.ts │ │ │ ├── clickhouse.keywords.ts │ │ │ └── clickhouse.ts │ │ │ ├── fillers │ │ │ └── monaco-editor-core.ts │ │ │ ├── helpers │ │ │ ├── createProvideSuggestionsFunction.ts │ │ │ ├── generateSuggestions.ts │ │ │ ├── getClusterAndPath.ts │ │ │ ├── getColumnSuggestions.ts │ │ │ ├── getDirectoryContent.ts │ │ │ ├── getPathFromMonacoModel.ts │ │ │ ├── getRangeToInsertSuggestion.ts │ │ │ ├── getSuggestions.ts │ │ │ ├── getTemplateSuggestions.ts │ │ │ ├── loadTableData.ts │ │ │ └── suggestionIndexToWeight.ts │ │ │ ├── monaco.contribution.ts │ │ │ ├── s-expressions │ │ │ ├── s-expressions.contribution.ts │ │ │ ├── s-expressions.keywords.ts │ │ │ └── s-expressions.ts │ │ │ ├── themes │ │ │ └── themes.contribution.ts │ │ │ ├── yql │ │ │ ├── yql.contribution.ts │ │ │ ├── yql.keywords.ts │ │ │ └── yql.ts │ │ │ └── yql_ansi │ │ │ ├── yql_ansi.contribution.ts │ │ │ ├── yql_ansi.keywords.ts │ │ │ └── yql_ansi.ts │ │ ├── packages │ │ ├── .eslintrc │ │ ├── delays │ │ │ └── index.ts │ │ ├── math │ │ │ └── index.ts │ │ └── ya-timeline │ │ │ ├── TimelineCanvasApi.ts │ │ │ ├── YaTimeline.ts │ │ │ ├── components │ │ │ ├── AreaSelectionComponent.ts │ │ │ ├── Axes.ts │ │ │ ├── BasicEventsProvider.ts │ │ │ ├── BasicRemoteEventsProvider.ts │ │ │ ├── Events │ │ │ │ ├── AbstractEventRenderer.ts │ │ │ │ ├── EventGroupRenderer.ts │ │ │ │ ├── ProcessGroupRenderer.ts │ │ │ │ ├── common.ts │ │ │ │ └── index.ts │ │ │ ├── Grid.ts │ │ │ ├── LoaderRegions.ts │ │ │ ├── Markers.ts │ │ │ ├── RealtimeFollow.ts │ │ │ ├── Ruler.ts │ │ │ └── TimelineComponent.ts │ │ │ ├── config.ts │ │ │ ├── definitions.ts │ │ │ ├── index.ts │ │ │ └── lib │ │ │ ├── AbstractTimelineDataLoader.ts │ │ │ ├── AxesIndex.ts │ │ │ ├── EventMapper.ts │ │ │ ├── Range.ts │ │ │ └── utils.ts │ │ ├── pages.ts │ │ ├── pages │ │ ├── accounts │ │ │ ├── AccountLink.tsx │ │ │ ├── AccountQuota │ │ │ │ ├── AccountQuota.scss │ │ │ │ └── AccountQuota.tsx │ │ │ ├── Accounts │ │ │ │ ├── Accounts.scss │ │ │ │ ├── Accounts.tsx │ │ │ │ ├── AccountsTopRowContent.scss │ │ │ │ ├── AccountsTopRowContent.tsx │ │ │ │ └── AccountsUpdater.tsx │ │ │ ├── AccountsNoContent.js │ │ │ ├── AccountsSuggest.scss │ │ │ ├── AccountsSuggest.tsx │ │ │ ├── UsableAccountSuggest.tsx │ │ │ ├── index.tsx │ │ │ ├── lazy.tsx │ │ │ ├── selector.js │ │ │ └── tabs │ │ │ │ ├── acl │ │ │ │ └── AccountsAclTab.js │ │ │ │ ├── detailed-usage │ │ │ │ ├── AccountActionsField.tsx │ │ │ │ ├── AccountUsageColumnsButton.tsx │ │ │ │ ├── AccountUsageDetails.scss │ │ │ │ ├── AccountUsageDetails.tsx │ │ │ │ ├── AccountUsageTab.tsx │ │ │ │ ├── AccountUsageToolbar.scss │ │ │ │ ├── AccountUsageToolbar.tsx │ │ │ │ ├── DetailTableCell.scss │ │ │ │ └── DetailTableCell.tsx │ │ │ │ ├── general │ │ │ │ ├── AccountAlerts.scss │ │ │ │ ├── AccountAlerts.tsx │ │ │ │ ├── AccountStaticConfiguration │ │ │ │ │ ├── AccountStaticConfiguration.scss │ │ │ │ │ └── AccountStaticConfiguration.tsx │ │ │ │ ├── AccountsGeneralTab.js │ │ │ │ ├── AccountsGeneralTab.scss │ │ │ │ ├── AccountsTotal.tsx │ │ │ │ ├── Editor │ │ │ │ │ ├── AccountCreate.js │ │ │ │ │ ├── AccountCreateDialog.scss │ │ │ │ │ ├── AccountCreateDialog.tsx │ │ │ │ │ ├── AccountTransferQuotaMessage.tsx │ │ │ │ │ ├── ConfirmMessage.js │ │ │ │ │ ├── Editor.js │ │ │ │ │ ├── Editor.scss │ │ │ │ │ └── content │ │ │ │ │ │ ├── ChunksContent.tsx │ │ │ │ │ │ ├── DeleteContent.js │ │ │ │ │ │ ├── GeneralContent.tsx │ │ │ │ │ │ ├── MasterMemoryContent.tsx │ │ │ │ │ │ ├── MediumContent.tsx │ │ │ │ │ │ ├── NodesContent.tsx │ │ │ │ │ │ ├── TabletsContent.scss │ │ │ │ │ │ └── TabletsContent.tsx │ │ │ │ ├── MasterMemoryTableMode.tsx │ │ │ │ ├── ProgressStack.js │ │ │ │ ├── ProgressTooltip.scss │ │ │ │ └── ProgressTooltip.tsx │ │ │ │ ├── monitor │ │ │ │ └── AccountsMonitorTab.tsx │ │ │ │ └── statistic │ │ │ │ └── AccountStatisticTab.tsx │ │ ├── chaos_cell_bundles │ │ │ ├── ChaosCellBundlesTopRowContent.connected.ts │ │ │ ├── bundles │ │ │ │ ├── Bundles.tsx │ │ │ │ ├── BundlesTable.connected.ts │ │ │ │ ├── BundlesTableInstruments.connected.ts │ │ │ │ └── ChaosBundleEditorDialog │ │ │ │ │ ├── ChaosBundleEditorDialog.connected.ts │ │ │ │ │ ├── ChaosBundleEditorDialog.scss │ │ │ │ │ └── ChaosBundleEditorDialog.tsx │ │ │ └── cells │ │ │ │ ├── Cells.tsx │ │ │ │ ├── CellsInstruments.connected.ts │ │ │ │ └── CellsTable.connected.ts │ │ ├── chyt │ │ │ ├── ChytCliqueActions │ │ │ │ ├── ChytCliqueActions.scss │ │ │ │ └── ChytCliqueActions.tsx │ │ │ ├── ChytConfirmation │ │ │ │ ├── ChytConfirmation.scss │ │ │ │ └── ChytConfirmation.tsx │ │ │ ├── ChytPage.tsx │ │ │ ├── ChytPageClique │ │ │ │ ├── ChytPageClique.scss │ │ │ │ ├── ChytPageClique.tsx │ │ │ │ ├── ChytPageCliqueAcl.tsx │ │ │ │ ├── ChytPageCliqueMonitoring.tsx │ │ │ │ ├── ChytPageCliqueSpeclet.scss │ │ │ │ ├── ChytPageCliqueSpeclet.tsx │ │ │ │ └── ChytPageCliqueTabs.tsx │ │ │ ├── ChytPageList │ │ │ │ ├── ChytPageList.tsx │ │ │ │ ├── ChytPageListTable.scss │ │ │ │ ├── ChytPageListTable.tsx │ │ │ │ ├── ChytPageListToolbar.scss │ │ │ │ └── ChytPageListToolbar.tsx │ │ │ ├── ChytPageTopRow.scss │ │ │ ├── ChytPageTopRow.tsx │ │ │ ├── components │ │ │ │ └── CliqueState.tsx │ │ │ ├── index.tsx │ │ │ └── lazy.tsx │ │ ├── components │ │ │ ├── Components │ │ │ │ ├── Component.scss │ │ │ │ ├── Components.js │ │ │ │ ├── ComponentsTopRowContent.scss │ │ │ │ ├── ComponentsTopRowContent.tsx │ │ │ │ └── index.tsx │ │ │ ├── GroupSuggest │ │ │ │ ├── GroupSuggest.scss │ │ │ │ └── GroupSuggest.tsx │ │ │ ├── NodeMaintenanceModal │ │ │ │ ├── NodeMaintenanceModal.scss │ │ │ │ └── NodeMaintenanceModal.tsx │ │ │ ├── OperationShortInfo │ │ │ │ ├── OperationShortInfo.scss │ │ │ │ └── OperationShortInfo.tsx │ │ │ ├── Placeholder.tsx │ │ │ ├── RequestQoutaButton │ │ │ │ └── RequestQuotaButton.tsx │ │ │ ├── SwitchLeaderShortInfo │ │ │ │ ├── SwitchLeaderShortInfo.scss │ │ │ │ └── SwitchLeaderShortInfo.tsx │ │ │ ├── TableInfo │ │ │ │ ├── TableInfo.scss │ │ │ │ └── TableInfo.tsx │ │ │ ├── TabletCellBundlesSuggest │ │ │ │ └── TabletCellBundlesSuggest.tsx │ │ │ ├── lazy.tsx │ │ │ └── tabs │ │ │ │ ├── NodeColumns.scss │ │ │ │ ├── NodeColumns.tsx │ │ │ │ ├── Proxies │ │ │ │ ├── Proxies.js │ │ │ │ ├── Proxies.scss │ │ │ │ ├── ProxyActions │ │ │ │ │ └── ProxyActions.tsx │ │ │ │ ├── ProxyCard │ │ │ │ │ ├── ProxyCard.scss │ │ │ │ │ └── ProxyCard.tsx │ │ │ │ └── __mocks__ │ │ │ │ │ └── Proxies.js │ │ │ │ ├── Shards │ │ │ │ ├── Name.tsx │ │ │ │ ├── NodeCount.tsx │ │ │ │ ├── Shards.scss │ │ │ │ ├── Shards.tsx │ │ │ │ └── __mocks__ │ │ │ │ │ └── Shards.js │ │ │ │ ├── Versions │ │ │ │ ├── VersionCell.scss │ │ │ │ ├── VersionCell.tsx │ │ │ │ ├── VersionSummary.scss │ │ │ │ ├── VersionSummary.tsx │ │ │ │ ├── Versions.scss │ │ │ │ ├── VersionsV2.tsx │ │ │ │ ├── __mocks__ │ │ │ │ │ ├── Versions.js │ │ │ │ │ └── VersionsV2.js │ │ │ │ └── tables_v2.js │ │ │ │ ├── node │ │ │ │ ├── NodeAlerts │ │ │ │ │ ├── NodeAlerts.scss │ │ │ │ │ └── NodeAlerts.tsx │ │ │ │ ├── NodeBundles │ │ │ │ │ └── NodeBundles.tsx │ │ │ │ ├── NodeBundlesTotal │ │ │ │ │ ├── NodeBundlesTotal.scss │ │ │ │ │ └── NodeBundlesTotal.tsx │ │ │ │ ├── NodeCpuAndMemory │ │ │ │ │ └── NodeCpuAndMemory.tsx │ │ │ │ ├── NodeGeneralTab │ │ │ │ │ ├── NodeGeneralTab.scss │ │ │ │ │ └── NodeGeneralTab.tsx │ │ │ │ ├── NodeLocations │ │ │ │ │ └── NodeLocations.tsx │ │ │ │ ├── NodeMemoryDetailsTable │ │ │ │ │ ├── NodeMemoryDetailsTable.scss │ │ │ │ │ └── NodeMemoryDetailsTable.tsx │ │ │ │ ├── NodeMemoryUsage │ │ │ │ │ ├── NodeMemoryUsage.tsx │ │ │ │ │ ├── NodeMemoryUsageToolbar.scss │ │ │ │ │ └── NodeMemoryUsageToolbar.tsx │ │ │ │ ├── NodeMeta │ │ │ │ │ ├── NodeMeta.scss │ │ │ │ │ └── NodeMeta.tsx │ │ │ │ ├── NodePage.scss │ │ │ │ ├── NodePage.tsx │ │ │ │ ├── NodeResources │ │ │ │ │ └── NodeResources.tsx │ │ │ │ ├── NodeStorage │ │ │ │ │ ├── NodeStorage.scss │ │ │ │ │ └── NodeStorage.tsx │ │ │ │ ├── NodeTables │ │ │ │ │ └── NodeTables.tsx │ │ │ │ ├── NodeTabletSlots │ │ │ │ │ └── NodeTabletSlots.tsx │ │ │ │ ├── NodeTabletSlotsTab │ │ │ │ │ └── NodeTabletSlotsTab.tsx │ │ │ │ └── NodeUnrecognizedOptions │ │ │ │ │ ├── NodeUnrecognizedOptions.scss │ │ │ │ │ └── NodeUnrecognizedOptions.tsx │ │ │ │ └── nodes │ │ │ │ ├── FilterPresets │ │ │ │ ├── FiltersPresets.js │ │ │ │ └── FiltersPresets.scss │ │ │ │ ├── MemoryProgress │ │ │ │ ├── MemoryProgress.scss │ │ │ │ └── MemoryProgress.tsx │ │ │ │ ├── NodeActions │ │ │ │ └── NodeActions.tsx │ │ │ │ ├── NodeCard │ │ │ │ ├── NodeCard.js │ │ │ │ └── NodeCard.scss │ │ │ │ ├── Nodes │ │ │ │ ├── Nodes.scss │ │ │ │ ├── Nodes.tsx │ │ │ │ ├── NodesColumnHeader.tsx │ │ │ │ └── __mocks__ │ │ │ │ │ └── Nodes.js │ │ │ │ ├── SetupModal │ │ │ │ ├── SetupModal.js │ │ │ │ ├── SetupModal.scss │ │ │ │ └── TagsFilter │ │ │ │ │ ├── TagsFilter.scss │ │ │ │ │ └── TagsFilter.tsx │ │ │ │ ├── Version.js │ │ │ │ ├── tables.scss │ │ │ │ └── tables.tsx │ │ ├── dashboard │ │ │ ├── Dashboard │ │ │ │ ├── Dashboard.js │ │ │ │ ├── Dashboard.scss │ │ │ │ ├── DashboardTopRowContent.scss │ │ │ │ └── DashboardTopRowContent.tsx │ │ │ ├── Links │ │ │ │ ├── Links.js │ │ │ │ └── Links.scss │ │ │ ├── index.tsx │ │ │ └── lazy.tsx │ │ ├── groups │ │ │ ├── CreateGroupModal │ │ │ │ └── CreateGroupModal.tsx │ │ │ ├── DeleteGroupModal │ │ │ │ └── DeleteUserModal.tsx │ │ │ ├── GroupActions │ │ │ │ └── GroupActions.tsx │ │ │ ├── GroupEditorDialog │ │ │ │ ├── GroupEditorDialog.scss │ │ │ │ └── GroupEditorDialog.tsx │ │ │ ├── GroupsPage.tsx │ │ │ ├── GroupsPageFilters │ │ │ │ ├── GroupsPageFilters.scss │ │ │ │ └── GroupsPageFilters.tsx │ │ │ ├── GroupsPageTable │ │ │ │ ├── GroupsPageTable.scss │ │ │ │ └── GroupsPageTable.tsx │ │ │ ├── index.tsx │ │ │ └── lazy.tsx │ │ ├── job │ │ │ ├── Job.tsx │ │ │ ├── JobActions │ │ │ │ ├── JobActions.scss │ │ │ │ └── JobActions.tsx │ │ │ ├── JobBreadcrumbs │ │ │ │ ├── JobBreadcrumbs.scss │ │ │ │ └── JobBreadcrumbs.tsx │ │ │ ├── JobDetails │ │ │ │ ├── JobDetails.scss │ │ │ │ └── JobDetails.tsx │ │ │ ├── JobGeneral │ │ │ │ ├── JobGeneral.scss │ │ │ │ └── JobGeneral.tsx │ │ │ ├── lazy.tsx │ │ │ └── tabs │ │ │ │ ├── Details │ │ │ │ ├── Details.scss │ │ │ │ └── Details.tsx │ │ │ │ ├── PivotKeys │ │ │ │ └── PivotKeys.tsx │ │ │ │ ├── Specification │ │ │ │ ├── Specification.scss │ │ │ │ └── Specification.tsx │ │ │ │ ├── Speculative │ │ │ │ ├── Speculative.scss │ │ │ │ └── Speculative.tsx │ │ │ │ ├── Statistics │ │ │ │ ├── Statistics.scss │ │ │ │ └── Statistics.tsx │ │ │ │ └── StatisticsIO │ │ │ │ ├── StatisticsIO.scss │ │ │ │ └── StatisticsIO.tsx │ │ ├── navigation │ │ │ ├── Navigation │ │ │ │ ├── ContentViewer │ │ │ │ │ ├── ContentViewer.tsx │ │ │ │ │ └── helpers │ │ │ │ │ │ ├── checkContentIsSupported.ts │ │ │ │ │ │ ├── getComponentByContentType.ts │ │ │ │ │ │ ├── getComponentByMode.ts │ │ │ │ │ │ └── index.ts │ │ │ │ ├── Navigation.js │ │ │ │ ├── Navigation.scss │ │ │ │ ├── NavigationError │ │ │ │ │ ├── NavigationError.scss │ │ │ │ │ ├── NavigationError.tsx │ │ │ │ │ ├── NavigationErrorImage.tsx │ │ │ │ │ ├── RequestPermission │ │ │ │ │ │ ├── RequestPermission.scss │ │ │ │ │ │ ├── RequestPermission.tsx │ │ │ │ │ │ ├── RequestPermissionIsNotAllowed.tsx │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── helpers │ │ │ │ │ │ ├── helpers.ts │ │ │ │ │ │ └── index.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── NavigationPermissionsNotice.scss │ │ │ │ ├── NavigationPermissionsNotice.tsx │ │ │ │ ├── NavigationTopRowContent.scss │ │ │ │ ├── NavigationTopRowContent.tsx │ │ │ │ └── PathEditorModal │ │ │ │ │ ├── CopyObjectModal │ │ │ │ │ └── CopyObjectModal.js │ │ │ │ │ ├── CreateDirectoryModal │ │ │ │ │ └── CreateDirectoryModal.tsx │ │ │ │ │ ├── DeleteObjectModal │ │ │ │ │ ├── DeleteObjectModal.scss │ │ │ │ │ └── DeleteObjectModal.tsx │ │ │ │ │ ├── MoveObjectModal │ │ │ │ │ └── MoveObjectModal.js │ │ │ │ │ ├── PathEditorModal.js │ │ │ │ │ ├── PathEditorModal.scss │ │ │ │ │ ├── RestoreObjectModal │ │ │ │ │ └── RestoreObjectModal.js │ │ │ │ │ └── index.js │ │ │ ├── NavigationDescription │ │ │ │ ├── AnnotationWithPartial.tsx │ │ │ │ ├── EditButtons.tsx │ │ │ │ ├── NavigationDescription.scss │ │ │ │ ├── NavigationDescription.tsx │ │ │ │ ├── NavigationDescriptionOverview.tsx │ │ │ │ ├── SwitchDescription.tsx │ │ │ │ └── hooks │ │ │ │ │ ├── use-description-actions.ts │ │ │ │ │ ├── use-description-collapse.ts │ │ │ │ │ ├── use-description-type-on-load.ts │ │ │ │ │ ├── use-description.ts │ │ │ │ │ ├── use-external-annotation.ts │ │ │ │ │ ├── use-update-annotaton.ts │ │ │ │ │ └── use-yt-annotation.ts │ │ │ ├── content │ │ │ │ ├── Document │ │ │ │ │ ├── Document.scss │ │ │ │ │ ├── Document.tsx │ │ │ │ │ ├── DocumentBody.scss │ │ │ │ │ ├── DocumentBody.tsx │ │ │ │ │ ├── DocumentEditModal.scss │ │ │ │ │ ├── DocumentEditModal.tsx │ │ │ │ │ └── DocumentWithRum.tsx │ │ │ │ ├── File │ │ │ │ │ ├── File.js │ │ │ │ │ └── File.scss │ │ │ │ ├── Link │ │ │ │ │ └── Link.js │ │ │ │ ├── MapNode │ │ │ │ │ ├── Chooser.tsx │ │ │ │ │ ├── MapNode.js │ │ │ │ │ ├── MapNode.scss │ │ │ │ │ ├── MapNodesTable.js │ │ │ │ │ ├── MapNodesTable.scss │ │ │ │ │ ├── MultipleActions.scss │ │ │ │ │ ├── MultipleActions.tsx │ │ │ │ │ ├── NodesTypes │ │ │ │ │ │ ├── NodesTypes.js │ │ │ │ │ │ └── NodesTypes.scss │ │ │ │ │ └── PathActions.tsx │ │ │ │ ├── ReplicatedTable │ │ │ │ │ ├── ReplicatedTable.js │ │ │ │ │ ├── ReplicatedTable.scss │ │ │ │ │ ├── ReplicatedTableMeta.tsx │ │ │ │ │ ├── ReplicatedTableSettings.scss │ │ │ │ │ └── ReplicatedTableSettings.tsx │ │ │ │ ├── Table │ │ │ │ │ ├── DataTableWrapper │ │ │ │ │ │ ├── DataTableWrapper.js │ │ │ │ │ │ └── DataTableWrapper.scss │ │ │ │ │ ├── DownloadManager │ │ │ │ │ │ ├── ConfirmButton.tsx │ │ │ │ │ │ ├── DownloadManager.scss │ │ │ │ │ │ ├── DownloadManager.tsx │ │ │ │ │ │ ├── DownloadShortInfo │ │ │ │ │ │ │ └── DownloadShortInfo.tsx │ │ │ │ │ │ ├── SeparatorInput.scss │ │ │ │ │ │ └── SeparatorInput.tsx │ │ │ │ │ ├── OffsetSelectorModal │ │ │ │ │ │ ├── OffsetSelectorModal.js │ │ │ │ │ │ └── OffsetSelectorModal.scss │ │ │ │ │ ├── RemountAlert │ │ │ │ │ │ ├── RemountAlert.scss │ │ │ │ │ │ └── RemountAlert.tsx │ │ │ │ │ ├── Table.js │ │ │ │ │ ├── Table.scss │ │ │ │ │ ├── TableMeta │ │ │ │ │ │ ├── AutomaticModeSwitch.tsx │ │ │ │ │ │ ├── RowsCount │ │ │ │ │ │ │ ├── RowsCount.scss │ │ │ │ │ │ │ └── RowsCount.tsx │ │ │ │ │ │ ├── TableMeta.scss │ │ │ │ │ │ ├── TableMeta.tsx │ │ │ │ │ │ └── commonFields.tsx │ │ │ │ │ ├── TableOverview │ │ │ │ │ │ ├── ColumnSelectorButton.tsx │ │ │ │ │ │ ├── ColumnsPresetButton.tsx │ │ │ │ │ │ ├── DatalensButton.tsx │ │ │ │ │ │ ├── EditTableAction.scss │ │ │ │ │ │ ├── EditTableActions.tsx │ │ │ │ │ │ ├── FullScreenButton.js │ │ │ │ │ │ ├── JupyterButton.js │ │ │ │ │ │ ├── OffsetInput.js │ │ │ │ │ │ ├── OffsetSelectorButton.js │ │ │ │ │ │ ├── Paginator.js │ │ │ │ │ │ ├── SettingsButton.tsx │ │ │ │ │ │ ├── TableActions.js │ │ │ │ │ │ ├── TableColumnsPresetNotice.scss │ │ │ │ │ │ ├── TableColumnsPresetNotice.tsx │ │ │ │ │ │ ├── TableOverview.js │ │ │ │ │ │ └── TableOverview.scss │ │ │ │ │ └── UploadManager │ │ │ │ │ │ ├── UploadManager.scss │ │ │ │ │ │ ├── UploadManager.tsx │ │ │ │ │ │ └── UploadManagerCreate.tsx │ │ │ │ ├── Transaction │ │ │ │ │ └── Transaction.js │ │ │ │ └── TransactionMap │ │ │ │ │ ├── TransactionMap.js │ │ │ │ │ └── TransactionMap.scss │ │ │ ├── helpers │ │ │ │ └── pathToFileName.ts │ │ │ ├── index.tsx │ │ │ ├── lazy.tsx │ │ │ ├── modals │ │ │ │ ├── AttributesEditor.scss │ │ │ │ ├── AttributesEditor.tsx │ │ │ │ ├── CreateACOModal.tsx │ │ │ │ ├── CreateTableModal │ │ │ │ │ ├── CreateTableModal.scss │ │ │ │ │ ├── CreateTableModal.tsx │ │ │ │ │ ├── CreateTableSuggests │ │ │ │ │ │ └── CreateTableSuggests.tsx │ │ │ │ │ └── CreateTableTabField │ │ │ │ │ │ ├── CreateTableTabField.scss │ │ │ │ │ │ └── CreateTableTabField.tsx │ │ │ │ ├── DynTablesStateModal.scss │ │ │ │ ├── DynTablesStateModal.tsx │ │ │ │ ├── LinkToModal.tsx │ │ │ │ ├── RemoteCopyModal.tsx │ │ │ │ ├── TableEraseModal.tsx │ │ │ │ └── TableMergeSortModal │ │ │ │ │ ├── TableChunkSize.scss │ │ │ │ │ ├── TableChunkSize.tsx │ │ │ │ │ ├── TableMergeModal.tsx │ │ │ │ │ ├── TableSortByControl.scss │ │ │ │ │ ├── TableSortByControl.tsx │ │ │ │ │ ├── TableSortModal.scss │ │ │ │ │ └── TableSortModal.tsx │ │ │ └── tabs │ │ │ │ ├── ACL │ │ │ │ ├── ACL.js │ │ │ │ └── RequestPermissions │ │ │ │ │ └── RequestPermissions.js │ │ │ │ ├── AccessLog │ │ │ │ ├── AccessLog.tsx │ │ │ │ ├── AccessLogError.tsx │ │ │ │ ├── AccessLogFilters.scss │ │ │ │ ├── AccessLogFilters.tsx │ │ │ │ ├── AccessLogOpenQtButton.tsx │ │ │ │ ├── AccessLogTable.scss │ │ │ │ ├── AccessLogTable.tsx │ │ │ │ ├── AccountsLogTransactionInfo.scss │ │ │ │ └── AccountsLogTransactionInfo.tsx │ │ │ │ ├── Attributes │ │ │ │ ├── Attributes.scss │ │ │ │ └── Attributes.tsx │ │ │ │ ├── Consumer │ │ │ │ ├── Consumer.tsx │ │ │ │ ├── Meta │ │ │ │ │ ├── Meta.scss │ │ │ │ │ └── Meta.tsx │ │ │ │ ├── TargetQueue │ │ │ │ │ ├── TargetQueue.scss │ │ │ │ │ └── TargetQueue.tsx │ │ │ │ ├── Toolbar │ │ │ │ │ ├── Toolbar.scss │ │ │ │ │ └── Toolbar.tsx │ │ │ │ └── views │ │ │ │ │ ├── ConsumerMetrics │ │ │ │ │ └── ConsumerMetrics.tsx │ │ │ │ │ └── Partitions │ │ │ │ │ ├── Partitions.scss │ │ │ │ │ ├── Partitions.tsx │ │ │ │ │ ├── PartitionsExtraControls.scss │ │ │ │ │ └── PartitionsExtraControls.tsx │ │ │ │ ├── Flow │ │ │ │ ├── Flow.scss │ │ │ │ ├── Flow.tsx │ │ │ │ ├── FlowLayout │ │ │ │ │ ├── FlowLayout.scss │ │ │ │ │ └── FlowLayout.tsx │ │ │ │ ├── PipelineSpec │ │ │ │ │ ├── PipelineSpec.scss │ │ │ │ │ └── PipelineSpec.tsx │ │ │ │ └── index.tsx │ │ │ │ ├── Locks │ │ │ │ ├── Locks.js │ │ │ │ └── Locks.scss │ │ │ │ ├── Queue │ │ │ │ ├── ColumnsButton │ │ │ │ │ └── ColumnsButton.tsx │ │ │ │ ├── Meta │ │ │ │ │ ├── Meta.scss │ │ │ │ │ └── Meta.tsx │ │ │ │ ├── Queue.tsx │ │ │ │ ├── QueueError.tsx │ │ │ │ ├── Toolbar │ │ │ │ │ ├── Toolbar.scss │ │ │ │ │ └── Toolbar.tsx │ │ │ │ ├── utils │ │ │ │ │ └── column-builder.tsx │ │ │ │ └── views │ │ │ │ │ ├── Consumers │ │ │ │ │ ├── Consumers.scss │ │ │ │ │ ├── Consumers.tsx │ │ │ │ │ ├── ConsumersExtraControls.scss │ │ │ │ │ └── ConsumersExtraControls.tsx │ │ │ │ │ ├── Exports │ │ │ │ │ ├── Exports.tsx │ │ │ │ │ ├── ExportsEdit │ │ │ │ │ │ └── ExportsEdit.tsx │ │ │ │ │ ├── ExportsEditDialog │ │ │ │ │ │ ├── ExportsEditDialog.tsx │ │ │ │ │ │ └── utils │ │ │ │ │ │ │ ├── consts.tsx │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ ├── prepareValues.ts │ │ │ │ │ │ │ └── validate.ts │ │ │ │ │ ├── ExportsExtraControls.tsx │ │ │ │ │ └── use-exports.ts │ │ │ │ │ ├── Partitions │ │ │ │ │ ├── ColumnsButton.connected.ts │ │ │ │ │ ├── Partitions.scss │ │ │ │ │ ├── Partitions.tsx │ │ │ │ │ ├── PartitionsExtraControls.scss │ │ │ │ │ └── PartitionsExtraControls.tsx │ │ │ │ │ └── QueueMetrics │ │ │ │ │ └── QueueMetrics.tsx │ │ │ │ ├── Schema │ │ │ │ ├── ExternalDescription │ │ │ │ │ ├── ExternalDescription.scss │ │ │ │ │ └── ExternalDescription.tsx │ │ │ │ ├── Schema.scss │ │ │ │ └── Schema.tsx │ │ │ │ ├── TableMountConfig │ │ │ │ └── TableMountConfig.tsx │ │ │ │ ├── TabletErrors │ │ │ │ ├── TabletErrors.tsx │ │ │ │ ├── TabletErrorsBackground.scss │ │ │ │ ├── TabletErrorsBackground.tsx │ │ │ │ └── TabletErrorsByPath │ │ │ │ │ ├── TabletErrorsByPath.scss │ │ │ │ │ ├── TabletErrorsByPath.tsx │ │ │ │ │ ├── TabletErrorsByPathTable.scss │ │ │ │ │ └── TabletErrorsByPathTable.tsx │ │ │ │ ├── Tablets │ │ │ │ ├── Tablets.js │ │ │ │ └── Tablets.scss │ │ │ │ └── UserAttributes │ │ │ │ ├── UserAttributes.scss │ │ │ │ └── UserAttributes.tsx │ │ ├── odin │ │ │ ├── _actions │ │ │ │ ├── index.js │ │ │ │ └── odin-overview.ts │ │ │ ├── _reducers │ │ │ │ ├── index.ts │ │ │ │ ├── odin-details.ts │ │ │ │ ├── odin-overview.ts │ │ │ │ └── url-mapping.ts │ │ │ ├── _selectors │ │ │ │ ├── index.ts │ │ │ │ └── odin-overview.ts │ │ │ ├── controls │ │ │ │ ├── AvailabilityMonitor.js │ │ │ │ ├── Odin.js │ │ │ │ ├── Odin.scss │ │ │ │ ├── OdinMonitor.js │ │ │ │ ├── OdinOverview.scss │ │ │ │ ├── OdinOverview.tsx │ │ │ │ ├── OdinOverviewCreatePresetDialog.tsx │ │ │ │ ├── OdinToolbar.js │ │ │ │ ├── OdinTopRowContent.scss │ │ │ │ └── OdinTopRowContent.tsx │ │ │ ├── index.tsx │ │ │ ├── lazy.ts │ │ │ ├── odin-constants.ts │ │ │ ├── odin-settings.ts │ │ │ └── odin-utils.ts │ │ ├── operations │ │ │ ├── OperationDetail │ │ │ │ ├── ExperimentAssignments │ │ │ │ │ ├── ExperimentAssignments.scss │ │ │ │ │ └── ExperimentAssignments.tsx │ │ │ │ ├── OperationDetail.scss │ │ │ │ ├── OperationDetail.tsx │ │ │ │ └── tabs │ │ │ │ │ ├── Jobs │ │ │ │ │ ├── Jobs.js │ │ │ │ │ ├── OperationJobsErrors │ │ │ │ │ │ ├── OperationJobsErrors.scss │ │ │ │ │ │ └── OperationJobsErrors.tsx │ │ │ │ │ ├── OperationJobsTable │ │ │ │ │ │ ├── JobDetails.tsx │ │ │ │ │ │ ├── JobTemplate.tsx │ │ │ │ │ │ ├── OperationJobsTable.js │ │ │ │ │ │ ├── OperationJobsTable.scss │ │ │ │ │ │ ├── StatusInfo.scss │ │ │ │ │ │ └── StatusInfo.tsx │ │ │ │ │ ├── OperationJobsToolbar │ │ │ │ │ │ ├── JobsAttributesFilter.tsx │ │ │ │ │ │ ├── JobsFilterBy.tsx │ │ │ │ │ │ ├── JobsOperationsIncarnationsFilter.scss │ │ │ │ │ │ ├── JobsOperationsIncarnationsFilter.tsx │ │ │ │ │ │ ├── JobsPaginator.js │ │ │ │ │ │ ├── JobsSelectFilter.js │ │ │ │ │ │ ├── JobsSuggestFilter.js │ │ │ │ │ │ ├── OperationJobsToolbar.js │ │ │ │ │ │ └── OperationJobsToolbar.scss │ │ │ │ │ ├── StaleJobIcon.tsx │ │ │ │ │ ├── job-selector.ts │ │ │ │ │ └── utils.js │ │ │ │ │ ├── JobsMonitor │ │ │ │ │ └── JobsMonitor.tsx │ │ │ │ │ ├── attributes │ │ │ │ │ └── OperationAttributes.tsx │ │ │ │ │ ├── details │ │ │ │ │ ├── DataFlow │ │ │ │ │ │ ├── DataFlow.js │ │ │ │ │ │ └── DataFlow.scss │ │ │ │ │ ├── Description.js │ │ │ │ │ ├── DetailedJobsCounter │ │ │ │ │ │ └── DetailedJobsCounter.js │ │ │ │ │ ├── Details │ │ │ │ │ │ ├── Details.js │ │ │ │ │ │ └── Details.scss │ │ │ │ │ ├── Events │ │ │ │ │ │ ├── Events.js │ │ │ │ │ │ └── Events.scss │ │ │ │ │ ├── FilterOverview │ │ │ │ │ │ └── FilterOverview.js │ │ │ │ │ ├── Runtime │ │ │ │ │ │ └── Runtime.js │ │ │ │ │ ├── Specification │ │ │ │ │ │ ├── Specification.js │ │ │ │ │ │ └── Specification.scss │ │ │ │ │ └── Tasks │ │ │ │ │ │ ├── Tasks.scss │ │ │ │ │ │ └── Tasks.tsx │ │ │ │ │ ├── job-sizes │ │ │ │ │ └── JobSizes │ │ │ │ │ │ ├── JobSizes.scss │ │ │ │ │ │ └── JobSizes.tsx │ │ │ │ │ ├── monitor │ │ │ │ │ ├── OperationDetailsMonitor.tsx │ │ │ │ │ ├── OperationDetailsMonitorLinks.tsx │ │ │ │ │ └── lazy.tsx │ │ │ │ │ ├── partition-sizes │ │ │ │ │ └── PartitionSizes │ │ │ │ │ │ ├── PartitionSizes.scss │ │ │ │ │ │ └── PartitionSizes.tsx │ │ │ │ │ ├── specification │ │ │ │ │ ├── Specification.js │ │ │ │ │ └── Specification.scss │ │ │ │ │ └── statistics │ │ │ │ │ ├── OperationStatisticName.tsx │ │ │ │ │ ├── Statistics.scss │ │ │ │ │ └── Statistics.tsx │ │ │ ├── OperationIOLink │ │ │ │ └── OperationIOLink.tsx │ │ │ ├── OperationProgress │ │ │ │ ├── OperationProgress.js │ │ │ │ └── OperationProgress.scss │ │ │ ├── OperationSelectFilter │ │ │ │ └── OperationSelectFilter.js │ │ │ ├── OperationSuggestFilter │ │ │ │ └── OperationSuggestFilter.js │ │ │ ├── OperationWeight │ │ │ │ ├── OperationWeight.js │ │ │ │ └── OperationWeight.scss │ │ │ ├── Operations │ │ │ │ └── Operations.js │ │ │ ├── OperationsList │ │ │ │ ├── OperationsList.js │ │ │ │ ├── OperationsListTable │ │ │ │ │ ├── OperationsListTable.js │ │ │ │ │ ├── OperationsListTable.scss │ │ │ │ │ ├── PathItem.scss │ │ │ │ │ └── PathItem.tsx │ │ │ │ └── OperationsListToolbar │ │ │ │ │ ├── OperationsArchiveFilter.scss │ │ │ │ │ ├── OperationsArchiveFilter.tsx │ │ │ │ │ ├── OperationsFilterPresets.js │ │ │ │ │ ├── OperationsFilterPresets.scss │ │ │ │ │ ├── OperationsListPaginator.js │ │ │ │ │ ├── OperationsListSuggestFilters.tsx │ │ │ │ │ ├── OperationsListToolbar.js │ │ │ │ │ ├── OperationsListToolbar.scss │ │ │ │ │ ├── OperationsSelectFilter.js │ │ │ │ │ └── OperationsTextFilter.js │ │ │ ├── PoolsWeightsEditModal │ │ │ │ ├── PoolsWeightsEditModal.js │ │ │ │ └── PoolsWeightsEditModal.scss │ │ │ ├── lazy.tsx │ │ │ └── selectors.ts │ │ ├── path-viewer │ │ │ ├── PathViewer.js │ │ │ ├── PathViewer.scss │ │ │ └── lazy.tsx │ │ ├── query-tracker │ │ │ ├── FileEditor │ │ │ │ ├── FileEditor.scss │ │ │ │ ├── FileEditor.tsx │ │ │ │ └── index.ts │ │ │ ├── Navigation │ │ │ │ ├── ClusterList │ │ │ │ │ ├── ClusterList.scss │ │ │ │ │ ├── ClusterList.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── ItemsList.scss │ │ │ │ ├── ItemsList.tsx │ │ │ │ ├── Navigation.scss │ │ │ │ ├── Navigation.tsx │ │ │ │ ├── NavigationBody │ │ │ │ │ ├── LoadingPlaceholder.tsx │ │ │ │ │ ├── NavigationBody.tsx │ │ │ │ │ ├── NavigationEmpty.scss │ │ │ │ │ ├── NavigationEmpty.tsx │ │ │ │ │ ├── NavigationError.scss │ │ │ │ │ ├── NavigationError.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── NavigationHeader │ │ │ │ │ ├── BreadcrumbsItem.tsx │ │ │ │ │ ├── HeaderActions.scss │ │ │ │ │ ├── HeaderActions.tsx │ │ │ │ │ ├── NavigationBreadcrumbs.tsx │ │ │ │ │ ├── NavigationHeader.scss │ │ │ │ │ ├── NavigationHeader.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── NavigationTable │ │ │ │ │ ├── NavigationTable.scss │ │ │ │ │ ├── NavigationTable.tsx │ │ │ │ │ ├── PreviewTab.scss │ │ │ │ │ ├── PreviewTab.tsx │ │ │ │ │ ├── SchemaTab.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── NodeList │ │ │ │ │ ├── NodeList.scss │ │ │ │ │ ├── NodeList.tsx │ │ │ │ │ ├── NodeListRow.scss │ │ │ │ │ ├── NodeListRow.tsx │ │ │ │ │ ├── TableWithSorting.scss │ │ │ │ │ ├── TableWithSorting.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── api │ │ │ │ │ ├── loadDynamicTable.ts │ │ │ │ │ ├── loadStaticTable.ts │ │ │ │ │ └── loadTableAttributes.ts │ │ │ │ ├── helpers │ │ │ │ │ ├── createTableSelect.ts │ │ │ │ │ ├── getIconBySortType.ts │ │ │ │ │ ├── getNavigationUrl.ts │ │ │ │ │ ├── insertTextWhereCursor.ts │ │ │ │ │ └── makePathByQueryEngine.ts │ │ │ │ └── index.ts │ │ │ ├── NewQueryButton │ │ │ │ ├── NewQueryButton.tsx │ │ │ │ └── index.ts │ │ │ ├── NotRenderUntilFirstVisible │ │ │ │ ├── Freeze.tsx │ │ │ │ └── NotRenderUntilFirstVisible.tsx │ │ │ ├── Plan │ │ │ │ ├── Graph.scss │ │ │ │ ├── Graph.tsx │ │ │ │ ├── GraphColors.tsx │ │ │ │ ├── GraphEditor │ │ │ │ │ ├── DetailBlock │ │ │ │ │ │ ├── DetailBlock.scss │ │ │ │ │ │ ├── DetailBlock.tsx │ │ │ │ │ │ ├── DetailBlockHeader.tsx │ │ │ │ │ │ ├── DetailBlockTitle.scss │ │ │ │ │ │ ├── DetailBlockTitle.tsx │ │ │ │ │ │ ├── JobItem.scss │ │ │ │ │ │ ├── JobItem.tsx │ │ │ │ │ │ ├── OperationContent.scss │ │ │ │ │ │ ├── OperationContent.tsx │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── QueriesGraph.tsx │ │ │ │ │ ├── QueriesNodeBlock.ts │ │ │ │ │ ├── enums │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── helpers │ │ │ │ │ │ ├── createBlocks.tsx │ │ │ │ │ │ ├── getBlockIcon.tsx │ │ │ │ │ │ ├── getNodesAndAges.ts │ │ │ │ │ │ ├── getOperationType.ts │ │ │ │ │ │ ├── iconToBase.ts │ │ │ │ │ │ └── makeJobsScope.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── NodeDetailsInfo.scss │ │ │ │ ├── NodeDetailsInfo.tsx │ │ │ │ ├── NodeJobs.scss │ │ │ │ ├── NodeJobs.tsx │ │ │ │ ├── NodeSchemas.scss │ │ │ │ ├── NodeSchemas.tsx │ │ │ │ ├── NodeStages.scss │ │ │ │ ├── NodeStages.tsx │ │ │ │ ├── OperationNodeInfo.scss │ │ │ │ ├── OperationNodeInfo.tsx │ │ │ │ ├── Plan.scss │ │ │ │ ├── Plan.tsx │ │ │ │ ├── PlanActions.tsx │ │ │ │ ├── PlanContext.tsx │ │ │ │ ├── Timeline │ │ │ │ │ ├── OperationRenderer.ts │ │ │ │ │ ├── Timeline.scss │ │ │ │ │ ├── Timeline.tsx │ │ │ │ │ ├── TimelineCanvas.tsx │ │ │ │ │ ├── TimelineTable.tsx │ │ │ │ │ └── utils.ts │ │ │ │ ├── components │ │ │ │ │ ├── DataType │ │ │ │ │ │ ├── DataType.scss │ │ │ │ │ │ └── DataType.tsx │ │ │ │ │ ├── Legend │ │ │ │ │ │ ├── Legend.scss │ │ │ │ │ │ └── Legend.tsx │ │ │ │ │ ├── List │ │ │ │ │ │ ├── VirtualList.scss │ │ │ │ │ │ ├── VirtualList.tsx │ │ │ │ │ │ ├── helpers.ts │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── Loader │ │ │ │ │ │ ├── Loader.scss │ │ │ │ │ │ └── Loader.tsx │ │ │ │ │ ├── Minimap │ │ │ │ │ │ ├── Minimap.scss │ │ │ │ │ │ └── Minimap.tsx │ │ │ │ │ ├── NodeName │ │ │ │ │ │ ├── NodeName.scss │ │ │ │ │ │ └── NodeName.tsx │ │ │ │ │ ├── SchemaTable │ │ │ │ │ │ ├── SchemaTable.scss │ │ │ │ │ │ └── SchemaTable.tsx │ │ │ │ │ ├── Table │ │ │ │ │ │ ├── Table.scss │ │ │ │ │ │ ├── Table.tsx │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── types.ts │ │ │ │ │ │ └── utils.tsx │ │ │ │ │ └── VisNetwork │ │ │ │ │ │ └── VisNetwork.tsx │ │ │ │ ├── models │ │ │ │ │ ├── dataTypes.ts │ │ │ │ │ ├── plan.ts │ │ │ │ │ ├── shared │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ └── yql │ │ │ │ │ │ │ ├── data-type.ts │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ └── operation.ts │ │ │ │ │ └── yql │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ └── yql.ts │ │ │ │ ├── services │ │ │ │ │ ├── keyboard.ts │ │ │ │ │ ├── layout.ts │ │ │ │ │ ├── resultTable.ts │ │ │ │ │ └── tables.ts │ │ │ │ ├── styles │ │ │ │ │ ├── index.ts │ │ │ │ │ └── mixins.scss │ │ │ │ └── utils.ts │ │ │ ├── QueriesList │ │ │ │ ├── EditQueryNameModal │ │ │ │ │ └── EditQueryNameModal.tsx │ │ │ │ ├── QueriesHistoryList │ │ │ │ │ ├── index.scss │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── useQueryListColumns.ts │ │ │ │ ├── QueriesListFilter │ │ │ │ │ ├── QueryEngineFilter.tsx │ │ │ │ │ ├── QueryTextFilter.tsx │ │ │ │ │ ├── index.scss │ │ │ │ │ └── index.tsx │ │ │ │ ├── QueriesTutorialList │ │ │ │ │ ├── index.scss │ │ │ │ │ └── index.tsx │ │ │ │ ├── index.scss │ │ │ │ └── index.tsx │ │ │ ├── QueriesListSidebarToggleButton │ │ │ │ └── QueriesListSidebarToggleButton.tsx │ │ │ ├── QueryACO │ │ │ │ ├── EditQueryACOModal │ │ │ │ │ └── EditQueryACOModal.tsx │ │ │ │ ├── QueryACOSelect │ │ │ │ │ ├── QueryACOSelect.scss │ │ │ │ │ ├── hideSharedAco.ts │ │ │ │ │ └── index.tsx │ │ │ │ └── useQueryACO.ts │ │ │ ├── QueryDuration │ │ │ │ └── index.tsx │ │ │ ├── QueryEditor │ │ │ │ ├── QueryEditor.scss │ │ │ │ ├── QueryEditor.tsx │ │ │ │ ├── QueryEditorMonaco.scss │ │ │ │ ├── QueryEditorMonaco.tsx │ │ │ │ ├── QueryEditorView.scss │ │ │ │ ├── QueryEditorView.tsx │ │ │ │ ├── ResultView.scss │ │ │ │ ├── ResultView.tsx │ │ │ │ ├── decorators │ │ │ │ │ ├── BaseDecorator.ts │ │ │ │ │ ├── ErrorDecorator.ts │ │ │ │ │ ├── LineDecoration.ts │ │ │ │ │ └── LinkDecorator.ts │ │ │ │ ├── getMonacoConfig.ts │ │ │ │ ├── helpers │ │ │ │ │ ├── getHashLineNumber.ts │ │ │ │ │ └── getLanguageByEngine.ts │ │ │ │ └── index.ts │ │ │ ├── QueryEngineSelector │ │ │ │ ├── QueryEngineSelect.tsx │ │ │ │ ├── QueryEngineSelector.tsx │ │ │ │ └── index.ts │ │ │ ├── QueryFilesButton │ │ │ │ ├── ActionsWithAddForm.tsx │ │ │ │ ├── AddFileButton.tsx │ │ │ │ ├── DeletedFileItem.scss │ │ │ │ ├── DeletedFileItem.tsx │ │ │ │ ├── FileItem.scss │ │ │ │ ├── FileItem.tsx │ │ │ │ ├── FileItemForm.scss │ │ │ │ ├── FileItemForm.tsx │ │ │ │ ├── FilesAddForm.scss │ │ │ │ ├── FilesTabs.scss │ │ │ │ ├── FilesTabs.tsx │ │ │ │ ├── QueryFilesButton.scss │ │ │ │ └── index.tsx │ │ │ ├── QueryMetaTable │ │ │ │ ├── index.scss │ │ │ │ └── index.tsx │ │ │ ├── QueryResults │ │ │ │ ├── ErrorTree │ │ │ │ │ ├── ErrorCloud.scss │ │ │ │ │ ├── ErrorCloud.tsx │ │ │ │ │ ├── ErrorList.tsx │ │ │ │ │ ├── ErrorTree.tsx │ │ │ │ │ ├── ErrorTreeNode.scss │ │ │ │ │ ├── ErrorTreeNode.tsx │ │ │ │ │ ├── helpers │ │ │ │ │ │ └── isInfoNode.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── PlanContainer.tsx │ │ │ │ ├── QueryChartTab.tsx │ │ │ │ ├── QueryMetaRow │ │ │ │ │ ├── index.scss │ │ │ │ │ └── index.tsx │ │ │ │ ├── QueryResultActions │ │ │ │ │ ├── QueryProgress.tsx │ │ │ │ │ ├── QueryResultDownloadManager.tsx │ │ │ │ │ ├── TableColumnsSelector.tsx │ │ │ │ │ ├── index.scss │ │ │ │ │ └── index.tsx │ │ │ │ ├── QueryResultContainer.tsx │ │ │ │ ├── ShareButton │ │ │ │ │ ├── index.scss │ │ │ │ │ └── index.tsx │ │ │ │ ├── helpers │ │ │ │ │ ├── buildOperationUrl.ts │ │ │ │ │ ├── calculateCloudLevel.ts │ │ │ │ │ ├── calculateQueryProgress.ts │ │ │ │ │ ├── extractOperationIdToCluster.ts │ │ │ │ │ ├── getIssuePosition.ts │ │ │ │ │ ├── getOperationUrl.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── hooks │ │ │ │ │ ├── useCurrentQuery.ts │ │ │ │ │ └── useQueryResultTabs.tsx │ │ │ │ ├── index.scss │ │ │ │ └── index.tsx │ │ │ ├── QueryResultsView │ │ │ │ ├── DataTypePopup │ │ │ │ │ ├── DataTypePopup.scss │ │ │ │ │ └── DataTypePopup.tsx │ │ │ │ ├── ResultPaginator │ │ │ │ │ ├── index.scss │ │ │ │ │ └── index.tsx │ │ │ │ ├── ResultsTable.tsx │ │ │ │ ├── YQLSchemeTable │ │ │ │ │ ├── index.scss │ │ │ │ │ └── index.tsx │ │ │ │ ├── YQLStatistics │ │ │ │ │ ├── index.scss │ │ │ │ │ └── index.tsx │ │ │ │ ├── YQLTable │ │ │ │ │ ├── YQLTable.scss │ │ │ │ │ ├── YQLTable.tsx │ │ │ │ │ └── utils.ts │ │ │ │ ├── index.scss │ │ │ │ └── index.tsx │ │ │ ├── QueryResultsVisualization │ │ │ │ ├── components │ │ │ │ │ ├── Chart.tsx │ │ │ │ │ ├── ChartLeftMenu.scss │ │ │ │ │ ├── ChartLeftMenu.tsx │ │ │ │ │ ├── EmptyPlaceholdersMessage.scss │ │ │ │ │ ├── EmptyPlaceholdersMessage.tsx │ │ │ │ │ ├── QueryResultsVisualization.scss │ │ │ │ │ ├── QueryResultsVisualization.tsx │ │ │ │ │ └── Wizard │ │ │ │ │ │ ├── ChartField.scss │ │ │ │ │ │ ├── ChartField.tsx │ │ │ │ │ │ ├── ConfigWizard.scss │ │ │ │ │ │ ├── ConfigWizard.tsx │ │ │ │ │ │ ├── Wizard.scss │ │ │ │ │ │ ├── Wizard.tsx │ │ │ │ │ │ └── index.ts │ │ │ │ ├── constants │ │ │ │ │ └── index.ts │ │ │ │ ├── helpers │ │ │ │ │ └── getAxisNameByType.ts │ │ │ │ ├── index.tsx │ │ │ │ └── preparers │ │ │ │ │ ├── getPointData.ts │ │ │ │ │ ├── prepareData.ts │ │ │ │ │ ├── preparePie.ts │ │ │ │ │ ├── prepareWaterfall.ts │ │ │ │ │ ├── prepareWidgetData.ts │ │ │ │ │ └── types.ts │ │ │ ├── QuerySettingsButton │ │ │ │ ├── PopupWithCloseButton.scss │ │ │ │ ├── PopupWithCloseButton.tsx │ │ │ │ ├── SettingsAddForm.scss │ │ │ │ ├── SettingsAddForm.tsx │ │ │ │ ├── SettingsItem.scss │ │ │ │ ├── SettingsItem.tsx │ │ │ │ ├── SettingsItemForm.scss │ │ │ │ ├── SettingsItemForm.tsx │ │ │ │ ├── formValidator.ts │ │ │ │ ├── index.scss │ │ │ │ └── index.tsx │ │ │ ├── QueryStatus │ │ │ │ ├── index.scss │ │ │ │ └── index.tsx │ │ │ ├── QueryTracker │ │ │ │ ├── QueryEditorSplit.tsx │ │ │ │ ├── QueryTracker.scss │ │ │ │ └── QueryTracker.tsx │ │ │ ├── QueryTrackerOpenButton │ │ │ │ └── QueryTrackerOpenButton.tsx │ │ │ ├── QueryTrackerTopRow │ │ │ │ ├── QueryCliqueSelector │ │ │ │ │ ├── QueryCliqueItem.scss │ │ │ │ │ ├── QueryCliqueItem.tsx │ │ │ │ │ ├── QueryCliqueSelector.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── QueryClusterSelector │ │ │ │ │ ├── QueryClusterItem.scss │ │ │ │ │ ├── QueryClusterItem.tsx │ │ │ │ │ ├── QueryClusterSelector.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── QuerySelector.scss │ │ │ │ ├── QuerySelector.tsx │ │ │ │ ├── QuerySelectorsByEngine.tsx │ │ │ │ ├── QueryTrackerTopRow.scss │ │ │ │ ├── RightButtonsGroup.tsx │ │ │ │ └── index.tsx │ │ │ ├── QueryWidget │ │ │ │ ├── QueryMetaForm.scss │ │ │ │ ├── QueryMetaForm.tsx │ │ │ │ ├── index.scss │ │ │ │ ├── index.tsx │ │ │ │ └── side-panel.tsx │ │ │ ├── Vcs │ │ │ │ ├── SettingsMenu │ │ │ │ │ ├── AddTokenForm.scss │ │ │ │ │ ├── AddTokenForm.tsx │ │ │ │ │ ├── VcsList.scss │ │ │ │ │ ├── VcsList.tsx │ │ │ │ │ ├── VcsListItem.scss │ │ │ │ │ ├── VcsListItem.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── Vcs.scss │ │ │ │ ├── Vcs.tsx │ │ │ │ ├── VcsHeader │ │ │ │ │ ├── VcsHeader.scss │ │ │ │ │ ├── VcsHeader.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── VcsItemsList │ │ │ │ │ ├── VcsItemsList.scss │ │ │ │ │ ├── VcsItemsList.tsx │ │ │ │ │ ├── VcsListFile.scss │ │ │ │ │ ├── VcsListFile.tsx │ │ │ │ │ ├── VcsListFolder.scss │ │ │ │ │ ├── VcsListFolder.tsx │ │ │ │ │ ├── VcsListPreview.scss │ │ │ │ │ ├── VcsListPreview.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── VcsPath │ │ │ │ │ ├── VcsPath.scss │ │ │ │ │ ├── VcsPath.tsx │ │ │ │ │ └── index.ts │ │ │ │ └── index.ts │ │ │ ├── context │ │ │ │ └── MonacoContext.ts │ │ │ ├── hooks │ │ │ │ ├── QueriesList │ │ │ │ │ └── index.ts │ │ │ │ ├── QueriesPooling │ │ │ │ │ ├── QueriesPolling.tsx │ │ │ │ │ └── context.tsx │ │ │ │ ├── Query │ │ │ │ │ └── index.ts │ │ │ │ ├── QueryListFilter │ │ │ │ │ └── index.ts │ │ │ │ └── useMonaco.ts │ │ │ ├── index.tsx │ │ │ ├── lazy.tsx │ │ │ ├── module │ │ │ │ ├── api.ts │ │ │ │ ├── cell-preview │ │ │ │ │ └── actions.ts │ │ │ │ ├── index.ts │ │ │ │ ├── queries_list │ │ │ │ │ ├── actions.ts │ │ │ │ │ ├── reducer.ts │ │ │ │ │ ├── selectors.ts │ │ │ │ │ └── types.ts │ │ │ │ ├── query-tracker-contants.ts │ │ │ │ ├── query │ │ │ │ │ ├── actions.ts │ │ │ │ │ ├── reducer.ts │ │ │ │ │ ├── selectors.ts │ │ │ │ │ ├── url_mapping.ts │ │ │ │ │ └── utills.ts │ │ │ │ ├── queryChart │ │ │ │ │ ├── actions.ts │ │ │ │ │ ├── queryChartSlice.ts │ │ │ │ │ └── selectors.ts │ │ │ │ ├── queryFilesForm │ │ │ │ │ ├── actions.ts │ │ │ │ │ ├── queryFilesFormSlice.ts │ │ │ │ │ └── selectors.ts │ │ │ │ ├── queryNavigation │ │ │ │ │ ├── actions.ts │ │ │ │ │ ├── queryNavigationSlice.ts │ │ │ │ │ └── selectors.ts │ │ │ │ ├── query_aco │ │ │ │ │ ├── actions.ts │ │ │ │ │ ├── constants.ts │ │ │ │ │ ├── reducer.ts │ │ │ │ │ └── selectors.ts │ │ │ │ ├── query_result │ │ │ │ │ ├── actions.ts │ │ │ │ │ ├── reducer.ts │ │ │ │ │ ├── selectors.ts │ │ │ │ │ ├── types.ts │ │ │ │ │ └── utils │ │ │ │ │ │ └── format.ts │ │ │ │ ├── settings │ │ │ │ │ └── selector.ts │ │ │ │ ├── types │ │ │ │ │ ├── editor.ts │ │ │ │ │ └── plan.ts │ │ │ │ └── vcs │ │ │ │ │ ├── actions.ts │ │ │ │ │ ├── selectors.ts │ │ │ │ │ └── vcsSlice.ts │ │ │ ├── querySuggestionsModule │ │ │ │ ├── createInlineSuggestions.ts │ │ │ │ └── useMonacoQuerySuggestions.ts │ │ │ └── utils │ │ │ │ ├── date.ts │ │ │ │ ├── navigation.ts │ │ │ │ ├── query.ts │ │ │ │ └── query_generate.ts │ │ ├── scheduling │ │ │ ├── Content │ │ │ │ ├── Content.js │ │ │ │ ├── Content.scss │ │ │ │ ├── PoolMetaData.tsx │ │ │ │ ├── SchedulingExpandedPoolsUpdater.tsx │ │ │ │ ├── SchedulingResources.scss │ │ │ │ ├── SchedulingResources.tsx │ │ │ │ ├── controls │ │ │ │ │ ├── ShareUsageBar.scss │ │ │ │ │ └── ShareUsageBar.tsx │ │ │ │ └── tabs │ │ │ │ │ ├── Details │ │ │ │ │ ├── Details.js │ │ │ │ │ └── Details.scss │ │ │ │ │ ├── Overview │ │ │ │ │ ├── Overview.js │ │ │ │ │ ├── Overview.scss │ │ │ │ │ ├── PoolTags.scss │ │ │ │ │ └── PoolTags.tsx │ │ │ │ │ ├── PoolAcl │ │ │ │ │ └── PoolAcl.js │ │ │ │ │ ├── SchedulingOperationsError │ │ │ │ │ └── SchedulingOperationsError.tsx │ │ │ │ │ └── ScherdulingOperataionsLoader │ │ │ │ │ └── SchedulingOperationsLoader.tsx │ │ │ ├── Instruments │ │ │ │ └── CreatePoolDialog │ │ │ │ │ ├── CreatePoolDialog.tsx │ │ │ │ │ └── CreatePoolParentSuggest.tsx │ │ │ ├── PoolQoutaEditor │ │ │ │ └── PoolQuotaEditor.tsx │ │ │ ├── PoolStaticConfiguration │ │ │ │ ├── SchedulingStaticConfiguration.scss │ │ │ │ └── SchedulingStaticConfiguration.tsx │ │ │ ├── PoolsSuggest │ │ │ │ ├── PoolsSuggest.scss │ │ │ │ └── PoolsSuggest.tsx │ │ │ ├── Scheduling │ │ │ │ ├── PoolEditorDialog │ │ │ │ │ ├── PoolEditorDialog.scss │ │ │ │ │ └── PoolEditorDialog.tsx │ │ │ │ ├── Scheduling.scss │ │ │ │ ├── Scheduling.tsx │ │ │ │ ├── SchedulingTopRowContent.scss │ │ │ │ └── SchedulingTopRowContent.tsx │ │ │ ├── index.tsx │ │ │ └── lazy.tsx │ │ ├── system │ │ │ ├── Chunks │ │ │ │ ├── Chunks.js │ │ │ │ └── Chunks.scss │ │ │ ├── HttpProxies │ │ │ │ └── HttpProxies.tsx │ │ │ ├── Masters │ │ │ │ ├── ChangeMaintenanceButton.tsx │ │ │ │ ├── Instance.tsx │ │ │ │ ├── MasterGroup.js │ │ │ │ ├── MasterGroup.scss │ │ │ │ ├── Masters.js │ │ │ │ ├── Masters.scss │ │ │ │ ├── SwitchLeader.tsx │ │ │ │ └── SystemAlert.tsx │ │ │ ├── NodeQuad │ │ │ │ ├── NodeQuad.scss │ │ │ │ └── NodeQuad.tsx │ │ │ ├── Nodes │ │ │ │ ├── NodeTypeSelector.tsx │ │ │ │ ├── Nodes.scss │ │ │ │ └── Nodes.tsx │ │ │ ├── ProxiesImpl │ │ │ │ ├── ProxiesImpl.tsx │ │ │ │ ├── RoleGroup.scss │ │ │ │ ├── RoleGroup.tsx │ │ │ │ ├── StatsInfo.scss │ │ │ │ └── StatsInfo.tsx │ │ │ ├── Resources │ │ │ │ ├── Resources.js │ │ │ │ └── Resources.scss │ │ │ ├── RpcProxies │ │ │ │ └── RpcProxies.tsx │ │ │ ├── SchedulersAndAgents │ │ │ │ ├── Scheduler │ │ │ │ │ └── Scheduler.tsx │ │ │ │ ├── Schedulers.scss │ │ │ │ ├── SchedulersAndAgents.js │ │ │ │ └── prepareTags.js │ │ │ ├── System │ │ │ │ ├── System.scss │ │ │ │ ├── System.tsx │ │ │ │ ├── SystemGeneralTab.tsx │ │ │ │ ├── SystemTopRowContent.scss │ │ │ │ ├── SystemTopRowContent.tsx │ │ │ │ └── helpers │ │ │ │ │ └── getSystemTabItems.ts │ │ │ ├── SystemCounters │ │ │ │ ├── SystemCounters.scss │ │ │ │ └── SystemCounters.tsx │ │ │ ├── SystemStateOverview │ │ │ │ ├── SystemStateLabels.tsx │ │ │ │ ├── SystemStateOverview.scss │ │ │ │ └── SystemStateOverview.tsx │ │ │ ├── VisibleHostTypeRadioButton.js │ │ │ ├── helpers │ │ │ │ └── makeShortSystemAddress.ts │ │ │ ├── index.tsx │ │ │ └── lazy.tsx │ │ ├── tablet-errors-by-bundle │ │ │ ├── TabletErrorsByBundle.scss │ │ │ ├── TabletErrorsByBundle.tsx │ │ │ ├── TabletErrorsByBundleToolbar.scss │ │ │ ├── TabletErrorsByBundleToolbar.tsx │ │ │ └── lazy.tsx │ │ ├── tablet │ │ │ ├── Tablet.js │ │ │ ├── TabletDetails │ │ │ │ ├── Overview.js │ │ │ │ ├── Partitions.js │ │ │ │ ├── Stores.js │ │ │ │ ├── Stores.scss │ │ │ │ ├── StoresDialog.tsx │ │ │ │ ├── TabletDetails.js │ │ │ │ └── TabletDetails.scss │ │ │ ├── TabletTopRowContent.scss │ │ │ ├── TabletTopRowContent.tsx │ │ │ ├── index.ts │ │ │ └── lazy.tsx │ │ ├── tablet_cell_bundles │ │ │ ├── TabletCellBundles.scss │ │ │ ├── TabletCellBundles.tsx │ │ │ ├── TabletCellBundlesTopRowContent.connected.ts │ │ │ ├── TabletCellBundlesTopRowContent.scss │ │ │ ├── TabletCellBundlesTopRowContent.tsx │ │ │ ├── bundle │ │ │ │ ├── BundleAclTab.tsx │ │ │ │ ├── BundleConfigurationMeta.scss │ │ │ │ ├── BundleConfigurationMeta.tsx │ │ │ │ ├── BundleGeneralMeta.scss │ │ │ │ ├── BundleGeneralMeta.tsx │ │ │ │ ├── BundleInstancesTab.tsx │ │ │ │ ├── BundleMetaTable.scss │ │ │ │ ├── BundleMetaTable.tsx │ │ │ │ ├── BundleMonitorTab.scss │ │ │ │ ├── BundleMonitorTab.tsx │ │ │ │ ├── BundleProxiesTab.tsx │ │ │ │ └── BundleStatisticsTab.tsx │ │ │ ├── bundles │ │ │ │ ├── BundleEditorDialog │ │ │ │ │ ├── BundleEditorDialog.scss │ │ │ │ │ ├── BundleEditorDialog.tsx │ │ │ │ │ └── components │ │ │ │ │ │ ├── BundleInput │ │ │ │ │ │ ├── BundleInput.scss │ │ │ │ │ │ └── BundleInput.tsx │ │ │ │ │ │ ├── BundleParamsList │ │ │ │ │ │ ├── BundleParamsList.scss │ │ │ │ │ │ └── BundleParamsList.tsx │ │ │ │ │ │ ├── BundleTableField │ │ │ │ │ │ ├── BundleTableField.scss │ │ │ │ │ │ └── BundleTableField.tsx │ │ │ │ │ │ └── BundleTitle │ │ │ │ │ │ ├── BundleTitle.scss │ │ │ │ │ │ └── BundleTitle.tsx │ │ │ │ ├── Bundles.tsx │ │ │ │ ├── BundlesTable.connected.ts │ │ │ │ ├── BundlesTable.scss │ │ │ │ ├── BundlesTable.tsx │ │ │ │ ├── BundlesTableInstruments.connected.ts │ │ │ │ ├── BundlesTableInstruments.scss │ │ │ │ ├── BundlesTableInstruments.tsx │ │ │ │ └── BundlesTableModeRadio.tsx │ │ │ ├── cells │ │ │ │ ├── Cells.tsx │ │ │ │ ├── CellsBundleController.scss │ │ │ │ ├── CellsBundleController.tsx │ │ │ │ ├── CellsInstruments.connected.ts │ │ │ │ ├── CellsInstruments.scss │ │ │ │ ├── CellsInstruments.tsx │ │ │ │ ├── CellsTable.connected.ts │ │ │ │ ├── CellsTable.scss │ │ │ │ └── CellsTable.tsx │ │ │ ├── index.tsx │ │ │ └── lazy.tsx │ │ └── users │ │ │ ├── CreateUserModal │ │ │ └── CreateUserModal.tsx │ │ │ ├── DeleteUserModal │ │ │ └── DeleteUserModal.tsx │ │ │ ├── UserActions │ │ │ ├── UserActions.scss │ │ │ └── UserActions.tsx │ │ │ ├── UsersPage.tsx │ │ │ ├── UsersPageEditor │ │ │ ├── UsersPageEditor.scss │ │ │ └── UsersPageEditor.tsx │ │ │ ├── UsersPageFilters │ │ │ ├── UsersPageFilters.js │ │ │ └── UsersPageFilters.scss │ │ │ ├── UsersPageTable │ │ │ ├── UsersPageTable.js │ │ │ └── UsersPageTable.scss │ │ │ ├── index.tsx │ │ │ └── lazy.tsx │ │ ├── redefinitions.ts │ │ ├── render-app.tsx │ │ ├── rum │ │ ├── RumUiContext.tsx │ │ ├── constants.ts │ │ ├── rum-app-measures.ts │ │ ├── rum-counter.ts │ │ ├── rum-measure-types.ts │ │ └── rum-wrap-api.ts │ │ ├── services │ │ ├── parse-accounts.worker.ts │ │ └── promisified-worker.ts │ │ ├── state-url-mapping.js │ │ ├── store │ │ ├── __mocks__ │ │ │ └── index.js │ │ ├── actions │ │ │ ├── accounts │ │ │ │ ├── account-usage-diff.ts │ │ │ │ ├── account-usage.ts │ │ │ │ ├── accounts-ts.ts │ │ │ │ ├── accounts.js │ │ │ │ ├── editor-ts.tsx │ │ │ │ └── editor.js │ │ │ ├── acl-filters.ts │ │ │ ├── acl.ts │ │ │ ├── actions.js │ │ │ ├── chaos_cell_bundles │ │ │ │ ├── index.ts │ │ │ │ └── tablet-cell-bundle-editor.ts │ │ │ ├── chyt │ │ │ │ ├── clique.ts │ │ │ │ ├── list-fitlers.ts │ │ │ │ ├── list.ts │ │ │ │ ├── options.ts │ │ │ │ └── speclet.ts │ │ │ ├── cluster-params.ts │ │ │ ├── clusters-menu.ts │ │ │ ├── components │ │ │ │ ├── node-maintenance-modal.ts │ │ │ │ ├── node │ │ │ │ │ ├── memory.ts │ │ │ │ │ ├── node.ts │ │ │ │ │ └── unrecognized-options.ts │ │ │ │ ├── nodes │ │ │ │ │ └── nodes.ts │ │ │ │ ├── proxies │ │ │ │ │ └── proxies.js │ │ │ │ ├── shards.ts │ │ │ │ └── versions │ │ │ │ │ └── versions_v2.ts │ │ │ ├── dashboard │ │ │ │ └── dashboad.js │ │ │ ├── execute-batch.ts │ │ │ ├── favourites.js │ │ │ ├── flow │ │ │ │ ├── layout.ts │ │ │ │ ├── specs.ts │ │ │ │ └── status.ts │ │ │ ├── global │ │ │ │ ├── experimental-pages.ts │ │ │ │ ├── fonts.ts │ │ │ │ ├── index.ts │ │ │ │ ├── max-content-width.ts │ │ │ │ └── supported-features.ts │ │ │ ├── groups.ts │ │ │ ├── job │ │ │ │ ├── competitors.ts │ │ │ │ ├── general.ts │ │ │ │ └── specification.ts │ │ │ ├── manage-tokens │ │ │ │ └── index.ts │ │ │ ├── menu.js │ │ │ ├── modals │ │ │ │ ├── attributes-modal.ts │ │ │ │ ├── cell-preview.ts │ │ │ │ └── errors.ts │ │ │ ├── navigation │ │ │ │ ├── content │ │ │ │ │ ├── document.ts │ │ │ │ │ ├── file.js │ │ │ │ │ ├── map-node.js │ │ │ │ │ ├── replicated-table.js │ │ │ │ │ ├── table │ │ │ │ │ │ ├── columns-preset.ts │ │ │ │ │ │ ├── download-manager.tsx │ │ │ │ │ │ ├── pagination.js │ │ │ │ │ │ ├── readDynamicTable.ts │ │ │ │ │ │ ├── readStaticTable.ts │ │ │ │ │ │ ├── remount-table.ts │ │ │ │ │ │ ├── table-mount-config.ts │ │ │ │ │ │ ├── table-rum-id.ts │ │ │ │ │ │ └── table.js │ │ │ │ │ ├── transaction-map.js │ │ │ │ │ └── transaction.js │ │ │ │ ├── index.ts │ │ │ │ ├── modals │ │ │ │ │ ├── attributes-editor.tsx │ │ │ │ │ ├── cell-preview │ │ │ │ │ │ ├── dynamic-table.ts │ │ │ │ │ │ ├── format.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ └── static-table.ts │ │ │ │ │ ├── copy-object.tsx │ │ │ │ │ ├── create-aco.ts │ │ │ │ │ ├── create-directory.tsx │ │ │ │ │ ├── create-table.js │ │ │ │ │ ├── delete-object.tsx │ │ │ │ │ ├── dyn-tables-state-modal.ts │ │ │ │ │ ├── link-to-modal.tsx │ │ │ │ │ ├── move-object.tsx │ │ │ │ │ ├── path-editing-popup.js │ │ │ │ │ ├── remote-copy-modal.tsx │ │ │ │ │ ├── restore-object.js │ │ │ │ │ ├── table-erase-modal.tsx │ │ │ │ │ └── table-merge-sort-modal.tsx │ │ │ │ ├── path-editor │ │ │ │ │ ├── path-editor.js │ │ │ │ │ └── path-editor.spec.js │ │ │ │ └── tabs │ │ │ │ │ ├── access-log │ │ │ │ │ └── access-log.ts │ │ │ │ │ ├── attributes │ │ │ │ │ └── attributes.ts │ │ │ │ │ ├── consumer │ │ │ │ │ ├── filters.ts │ │ │ │ │ ├── partitions.ts │ │ │ │ │ └── status.ts │ │ │ │ │ ├── locks.js │ │ │ │ │ ├── queue │ │ │ │ │ ├── exports.ts │ │ │ │ │ ├── filters.ts │ │ │ │ │ ├── partitions.ts │ │ │ │ │ └── status.ts │ │ │ │ │ ├── schema.js │ │ │ │ │ ├── tablet-errors │ │ │ │ │ ├── tablet-errors-background.ts │ │ │ │ │ └── tablet-errors-by-path.ts │ │ │ │ │ ├── tablets.js │ │ │ │ │ └── user-attributes.ts │ │ │ ├── operations │ │ │ │ ├── detail.ts │ │ │ │ ├── index.js │ │ │ │ ├── jobs-monitor.ts │ │ │ │ ├── jobs-operation-incarnations.ts │ │ │ │ ├── jobs.ts │ │ │ │ ├── list.js │ │ │ │ ├── monitor.ts │ │ │ │ ├── operation-incarnations.ts │ │ │ │ ├── statistics.js │ │ │ │ └── utils.js │ │ │ ├── path-viewer.js │ │ │ ├── scheduling │ │ │ │ ├── create-pool-dialog.tsx │ │ │ │ ├── expanded-pools.tsx │ │ │ │ ├── monitor.ts │ │ │ │ ├── scheduling-ts.ts │ │ │ │ └── scheduling.js │ │ │ ├── settings │ │ │ │ ├── index.ts │ │ │ │ ├── settings-base.ts │ │ │ │ └── settings.ts │ │ │ ├── slideoutMenu.ts │ │ │ ├── suggests │ │ │ │ └── index.ts │ │ │ ├── system │ │ │ │ ├── chunks.js │ │ │ │ ├── index.js │ │ │ │ ├── masters.ts │ │ │ │ ├── nodes-ts.ts │ │ │ │ ├── nodes.ts │ │ │ │ ├── proxies.ts │ │ │ │ ├── resources.js │ │ │ │ ├── rpc-proxies.ts │ │ │ │ └── schedulers.js │ │ │ ├── tables.ts │ │ │ ├── tablet-errors │ │ │ │ └── tablet-errors-by-bundle.ts │ │ │ ├── tablet │ │ │ │ ├── stores.js │ │ │ │ └── tablet.js │ │ │ ├── tablet_cell_bundles │ │ │ │ ├── index.ts │ │ │ │ └── tablet-cell-bundle-editor.ts │ │ │ ├── users-typed.ts │ │ │ └── users.js │ │ ├── api │ │ │ ├── index.ts │ │ │ ├── navigation │ │ │ │ └── tabs │ │ │ │ │ ├── description.ts │ │ │ │ │ └── queue │ │ │ │ │ └── queue.ts │ │ │ └── yt │ │ │ │ ├── endpoints │ │ │ │ └── executeBatch.ts │ │ │ │ ├── index.ts │ │ │ │ └── types.ts │ │ ├── location.main.ts │ │ ├── location.ts │ │ ├── reducers │ │ │ ├── accounts │ │ │ │ ├── accounts │ │ │ │ │ ├── index.js │ │ │ │ │ └── url-mapping.ts │ │ │ │ ├── editor │ │ │ │ │ └── index.js │ │ │ │ ├── index.ts │ │ │ │ └── usage │ │ │ │ │ ├── account-usage-types.d.ts │ │ │ │ │ ├── accounts-usage-filters.ts │ │ │ │ │ ├── accounts-usage-list-diff.ts │ │ │ │ │ ├── accounts-usage-list.ts │ │ │ │ │ ├── accounts-usage-snapshots.ts │ │ │ │ │ ├── accounts-usage-tree-diff.ts │ │ │ │ │ ├── accounts-usage-tree.ts │ │ │ │ │ └── index.ts │ │ │ ├── acl │ │ │ │ ├── acl-filters.ts │ │ │ │ ├── acl.ts │ │ │ │ └── url-mapping.ts │ │ │ ├── actions.js │ │ │ ├── chaos_cell_bundles │ │ │ │ ├── index.ts │ │ │ │ ├── tablet-cell-bundle-editor.ts │ │ │ │ └── url-mapping.ts │ │ │ ├── chyt │ │ │ │ ├── clique.ts │ │ │ │ ├── index.ts │ │ │ │ ├── list-filters.ts │ │ │ │ ├── list.ts │ │ │ │ ├── options.ts │ │ │ │ ├── speclet.ts │ │ │ │ └── url-mapping.ts │ │ │ ├── clusters-menu │ │ │ │ ├── clusters-menu.ts │ │ │ │ └── url-mapping.ts │ │ │ ├── components │ │ │ │ ├── index.ts │ │ │ │ ├── node-maintenance-modal.ts │ │ │ │ ├── node │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── memory.ts │ │ │ │ │ ├── node.ts │ │ │ │ │ └── unrecognized-options.ts │ │ │ │ ├── nodes │ │ │ │ │ ├── index.js │ │ │ │ │ ├── nodes │ │ │ │ │ │ ├── node.tsx │ │ │ │ │ │ └── nodes.ts │ │ │ │ │ ├── setup │ │ │ │ │ │ └── setup.ts │ │ │ │ │ └── url-mapping.ts │ │ │ │ ├── proxies │ │ │ │ │ ├── index.js │ │ │ │ │ └── proxies │ │ │ │ │ │ ├── proxies.js │ │ │ │ │ │ ├── proxy.js │ │ │ │ │ │ └── url-mapping.ts │ │ │ │ ├── shards.ts │ │ │ │ └── versions │ │ │ │ │ ├── url-mapping_v2.ts │ │ │ │ │ └── versions_v2.ts │ │ │ ├── dashboard │ │ │ │ ├── index.js │ │ │ │ └── url-mapping.js │ │ │ ├── execute-batch.ts │ │ │ ├── flow │ │ │ │ ├── filters.ts │ │ │ │ ├── index.ts │ │ │ │ ├── layout.ts │ │ │ │ ├── specs.ts │ │ │ │ ├── status.ts │ │ │ │ └── url-mapping.ts │ │ │ ├── global │ │ │ │ ├── cluster-ui-config.ts │ │ │ │ ├── index.ts │ │ │ │ └── supported-features.ts │ │ │ ├── groups │ │ │ │ ├── editor.ts │ │ │ │ ├── index.ts │ │ │ │ ├── table.ts │ │ │ │ └── url-mapping.ts │ │ │ ├── index.embedded.ts │ │ │ ├── index.main.ts │ │ │ ├── index.ts │ │ │ ├── job │ │ │ │ ├── competitors.ts │ │ │ │ ├── general.ts │ │ │ │ ├── index.ts │ │ │ │ └── specification.ts │ │ │ ├── manage-tokens │ │ │ │ ├── index.ts │ │ │ │ ├── modal.ts │ │ │ │ └── tokens.ts │ │ │ ├── modals │ │ │ │ ├── attributes-modal.js │ │ │ │ ├── cell-preview.ts │ │ │ │ ├── errors.ts │ │ │ │ └── index.js │ │ │ ├── navigation │ │ │ │ ├── content │ │ │ │ │ ├── document.ts │ │ │ │ │ ├── file.js │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── map-node │ │ │ │ │ │ ├── map-node.js │ │ │ │ │ │ └── url-mapping.ts │ │ │ │ │ ├── replicated-table.ts │ │ │ │ │ ├── table │ │ │ │ │ │ ├── download-manager.ts │ │ │ │ │ │ ├── table-mount-config.ts │ │ │ │ │ │ ├── table.js │ │ │ │ │ │ └── url-mapping.ts │ │ │ │ │ ├── transaction-map │ │ │ │ │ │ ├── transaction-map.js │ │ │ │ │ │ └── url-mapping.ts │ │ │ │ │ └── transaction.js │ │ │ │ ├── description.ts │ │ │ │ ├── index.ts │ │ │ │ ├── modals │ │ │ │ │ ├── attributes-editor.ts │ │ │ │ │ ├── copy-object.js │ │ │ │ │ ├── create-aco.ts │ │ │ │ │ ├── create-directory.js │ │ │ │ │ ├── create-table.js │ │ │ │ │ ├── delete-object.ts │ │ │ │ │ ├── dyn-tables-state-modal.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── link-to-modal.ts │ │ │ │ │ ├── move-object.js │ │ │ │ │ ├── remote-copy-modal.ts │ │ │ │ │ ├── restore-object.js │ │ │ │ │ ├── table-erase-modal.ts │ │ │ │ │ └── tableMergeSortModalSlice.ts │ │ │ │ ├── navigation.tsx │ │ │ │ ├── path-editor │ │ │ │ │ ├── path-editor.js │ │ │ │ │ └── path-editor.spec.js │ │ │ │ ├── tabs │ │ │ │ │ ├── access-log │ │ │ │ │ │ ├── access-log-filters.ts │ │ │ │ │ │ ├── access-log.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ └── url-mapping.ts │ │ │ │ │ ├── attributes │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── consumer │ │ │ │ │ │ ├── filters.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── partitions.ts │ │ │ │ │ │ ├── status.ts │ │ │ │ │ │ ├── types.ts │ │ │ │ │ │ └── url-mapping.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── locks.js │ │ │ │ │ ├── queue │ │ │ │ │ │ ├── filters.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── partitions.ts │ │ │ │ │ │ ├── status.ts │ │ │ │ │ │ ├── types.ts │ │ │ │ │ │ └── url-mapping.ts │ │ │ │ │ ├── schema │ │ │ │ │ │ ├── schema.js │ │ │ │ │ │ └── url-mapping.ts │ │ │ │ │ ├── tablet-errors │ │ │ │ │ │ ├── tablet-errors-background.ts │ │ │ │ │ │ ├── tablet-errors-by-path.ts │ │ │ │ │ │ └── url-mapping.ts │ │ │ │ │ ├── tablets │ │ │ │ │ │ ├── tablets.js │ │ │ │ │ │ └── url-mapping.ts │ │ │ │ │ └── user-attributes.ts │ │ │ │ └── url-mapping.ts │ │ │ ├── operations │ │ │ │ ├── detail.ts │ │ │ │ ├── index.ts │ │ │ │ ├── jobs │ │ │ │ │ ├── jobs-monitor.ts │ │ │ │ │ ├── jobs-operation-incarnations.ts │ │ │ │ │ ├── jobs.ts │ │ │ │ │ └── url-mapping.ts │ │ │ │ ├── list │ │ │ │ │ ├── list.ts │ │ │ │ │ └── url-mapping.ts │ │ │ │ ├── page.js │ │ │ │ └── statistics │ │ │ │ │ ├── statistics.ts │ │ │ │ │ └── url-mapping.ts │ │ │ ├── path-viewer │ │ │ │ ├── index.js │ │ │ │ └── url-mapping.ts │ │ │ ├── scheduling │ │ │ │ ├── create-pool-dialog.ts │ │ │ │ ├── expanded-pools.ts │ │ │ │ ├── index.ts │ │ │ │ ├── scheduling.ts │ │ │ │ └── url-mapping.ts │ │ │ ├── settings.ts │ │ │ ├── slideoutMenu.js │ │ │ ├── suggests │ │ │ │ ├── index.ts │ │ │ │ └── tablet-cell-bundless.ts │ │ │ ├── system │ │ │ │ ├── chunks.js │ │ │ │ ├── index.ts │ │ │ │ ├── masters.ts │ │ │ │ ├── nodes.ts │ │ │ │ ├── proxies.ts │ │ │ │ ├── resources.js │ │ │ │ ├── rpc-proxies.ts │ │ │ │ ├── schedulers.js │ │ │ │ └── url-mapping.ts │ │ │ ├── tables.ts │ │ │ ├── tablet-errors │ │ │ │ ├── index.ts │ │ │ │ ├── tablet-errors-by-bundle.ts │ │ │ │ └── url-mapping.ts │ │ │ ├── tablet │ │ │ │ ├── index.js │ │ │ │ ├── stores.js │ │ │ │ ├── tablet.js │ │ │ │ └── url-mapping.ts │ │ │ ├── tablet_cell_bundles │ │ │ │ ├── index.ts │ │ │ │ ├── tablet-cell-bundle-editor.ts │ │ │ │ └── url-mapping.ts │ │ │ ├── url-mapping.ts │ │ │ ├── users │ │ │ │ ├── delete-user.ts │ │ │ │ ├── edit-user.js │ │ │ │ ├── index.js │ │ │ │ ├── table.js │ │ │ │ └── url-mapping.ts │ │ │ └── utils.ts │ │ ├── selectors │ │ │ ├── accounts │ │ │ │ ├── account-usage.ts │ │ │ │ ├── accounts-ts.ts │ │ │ │ ├── accounts.js │ │ │ │ └── dashboard.js │ │ │ ├── acl-filters.ts │ │ │ ├── acl.ts │ │ │ ├── chaos_cell_bundles │ │ │ │ ├── index.ts │ │ │ │ └── tablet-cell-bundle-editor.ts │ │ │ ├── chyt │ │ │ │ ├── clique.ts │ │ │ │ ├── index.ts │ │ │ │ ├── options.ts │ │ │ │ └── speclet.ts │ │ │ ├── components │ │ │ │ ├── node-maintenance-modal.ts │ │ │ │ ├── node │ │ │ │ │ ├── memory.ts │ │ │ │ │ ├── node.ts │ │ │ │ │ └── unrecognized-options.ts │ │ │ │ ├── nodes │ │ │ │ │ ├── filters-presets.js │ │ │ │ │ ├── node-card.ts │ │ │ │ │ └── nodes │ │ │ │ │ │ ├── data.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ └── predicates.ts │ │ │ │ ├── proxies │ │ │ │ │ └── proxies.js │ │ │ │ └── versions │ │ │ │ │ ├── versions_v2-ts.ts │ │ │ │ │ └── versions_v2.ts │ │ │ ├── execute-batch.ts │ │ │ ├── favourites.js │ │ │ ├── flow │ │ │ │ ├── filters.ts │ │ │ │ ├── layout.ts │ │ │ │ ├── specs.ts │ │ │ │ └── status.ts │ │ │ ├── global │ │ │ │ ├── cluster.ts │ │ │ │ ├── experimental-pages.ts │ │ │ │ ├── fonts.ts │ │ │ │ ├── index.ts │ │ │ │ ├── is-developer.ts │ │ │ │ ├── maintenance.ts │ │ │ │ ├── max-content-width.ts │ │ │ │ ├── supported-features.ts │ │ │ │ └── username.ts │ │ │ ├── groups.ts │ │ │ ├── histogram.js │ │ │ ├── job │ │ │ │ ├── detail.ts │ │ │ │ └── statistics.ts │ │ │ ├── manage-tokens │ │ │ │ └── index.ts │ │ │ ├── modals │ │ │ │ ├── cell-preview.ts │ │ │ │ └── errors.ts │ │ │ ├── navigation │ │ │ │ ├── content │ │ │ │ │ ├── document.ts │ │ │ │ │ ├── download-manager.ts │ │ │ │ │ ├── file.js │ │ │ │ │ ├── map-node-ts.ts │ │ │ │ │ ├── map-node.js │ │ │ │ │ ├── replicated-table.ts │ │ │ │ │ ├── table-mount-config.ts │ │ │ │ │ ├── table-ts.ts │ │ │ │ │ ├── table.js │ │ │ │ │ └── transaction-map.js │ │ │ │ ├── index.js │ │ │ │ ├── modals │ │ │ │ │ ├── attributes-editor.ts │ │ │ │ │ ├── create-aco-modal.ts │ │ │ │ │ ├── create-table.js │ │ │ │ │ ├── dyn-tables-state-modal.ts │ │ │ │ │ ├── link-to-modal.ts │ │ │ │ │ ├── remote-copy-modal.ts │ │ │ │ │ ├── table-erase-modal.ts │ │ │ │ │ └── table-merge-sort-modal.tsx │ │ │ │ ├── navigation.ts │ │ │ │ └── tabs │ │ │ │ │ ├── access-log.ts │ │ │ │ │ ├── attributes.ts │ │ │ │ │ ├── consumer.ts │ │ │ │ │ ├── locks.ts │ │ │ │ │ ├── queue.ts │ │ │ │ │ ├── schema.js │ │ │ │ │ ├── tablet-errors-background.ts │ │ │ │ │ ├── tablet-errors-by-path.ts │ │ │ │ │ ├── tablets-ts.ts │ │ │ │ │ ├── tablets.js │ │ │ │ │ └── user-attributes.ts │ │ │ ├── operations │ │ │ │ ├── index.ts │ │ │ │ ├── jobs-monitor.ts │ │ │ │ ├── jobs.ts │ │ │ │ ├── operation.ts │ │ │ │ ├── operations-list.ts │ │ │ │ └── statistics-v2.ts │ │ │ ├── scheduling │ │ │ │ ├── attributes-to-filter.ts │ │ │ │ ├── create-pool-dialog.ts │ │ │ │ ├── expanded-pools.ts │ │ │ │ ├── index.ts │ │ │ │ ├── monitor.ts │ │ │ │ ├── scheduling-pools.ts │ │ │ │ ├── scheduling-ts.tsx │ │ │ │ └── scheduling.ts │ │ │ ├── settings │ │ │ │ ├── index.js │ │ │ │ ├── navigation.ts │ │ │ │ ├── settings-base.ts │ │ │ │ ├── settings-queries.ts │ │ │ │ ├── settings-ts.ts │ │ │ │ └── settings-vcs.ts │ │ │ ├── slideoutMenu.ts │ │ │ ├── suggests │ │ │ │ └── index.ts │ │ │ ├── system │ │ │ │ ├── index.ts │ │ │ │ ├── masters.ts │ │ │ │ ├── nodes.ts │ │ │ │ └── schedulers.js │ │ │ ├── tables.ts │ │ │ ├── tablet-errors │ │ │ │ └── tablet-errors-by-bundle.ts │ │ │ ├── tablet │ │ │ │ ├── stores.js │ │ │ │ └── tablet.js │ │ │ ├── tablet_cell_bundles │ │ │ │ ├── index.ts │ │ │ │ └── tablet-cell-bundle-editor.ts │ │ │ ├── thor │ │ │ │ ├── .eslintrc │ │ │ │ ├── index.js │ │ │ │ └── unipika.ts │ │ │ └── users.js │ │ ├── store.main.ts │ │ ├── thunkDispatch.ts │ │ └── window-store.ts │ │ ├── styles │ │ ├── common.scss │ │ ├── fonts.scss │ │ ├── fonts │ │ │ ├── manrope.scss │ │ │ └── roboto-mono.scss │ │ ├── mixins.scss │ │ ├── redefinitions │ │ │ ├── DataTable.scss │ │ │ ├── chartkit.scss │ │ │ ├── common │ │ │ │ ├── Breadcrumbs.scss │ │ │ │ ├── common.scss │ │ │ │ ├── icon.scss │ │ │ │ ├── illustrations.scss │ │ │ │ ├── link.scss │ │ │ │ └── progress.scss │ │ │ └── redefinitions.scss │ │ └── themes │ │ │ ├── dark-theme.scss │ │ │ └── light-theme.scss │ │ ├── tsconfig.json │ │ ├── types │ │ ├── components │ │ │ └── node.ts │ │ ├── index.ts │ │ ├── navigation │ │ │ └── queue │ │ │ │ └── queue.ts │ │ └── operations │ │ │ └── job.ts │ │ └── utils │ │ ├── accounts │ │ ├── accounts-selector.ts │ │ ├── accounts.ts │ │ ├── accountsTotal.ts │ │ ├── editor.js │ │ ├── index.ts │ │ └── tables.js │ │ ├── acl │ │ ├── acl-api.ts │ │ ├── acl-types.ts │ │ ├── external-acl-api.ts │ │ └── index.ts │ │ ├── actions.js │ │ ├── app-url │ │ ├── index.ts │ │ ├── navigation.ts │ │ └── utils.ts │ │ ├── axios-no-xsrf.js │ │ ├── batch.ts │ │ ├── cancel-helper.ts │ │ ├── clusters.ts │ │ ├── components │ │ ├── nodes │ │ │ ├── node-meta-items.tsx │ │ │ ├── node.ts │ │ │ └── setup.ts │ │ ├── proxies │ │ │ └── table.js │ │ └── tablet-cells │ │ │ └── index.js │ │ ├── copy-file-to-clipboard.ts │ │ ├── cypress-attributes.ts │ │ ├── download-file.ts │ │ ├── empty.ts │ │ ├── errors │ │ ├── index.ts │ │ └── ui-error.ts │ │ ├── format.spec.ts │ │ ├── format.ts │ │ ├── get-css-color.ts │ │ ├── hammer │ │ └── updater.ts │ │ ├── index.ts │ │ ├── job │ │ └── tabs │ │ │ └── statistics.ts │ │ ├── logger.ts │ │ ├── maintenance.ts │ │ ├── navigation │ │ ├── content │ │ │ ├── map-nodes │ │ │ │ └── node.ts │ │ │ ├── table │ │ │ │ ├── columns.js │ │ │ │ ├── query.js │ │ │ │ ├── table-ts.ts │ │ │ │ └── table.js │ │ │ └── transaction-map │ │ │ │ ├── table.js │ │ │ │ └── transaction.js │ │ ├── getTableTypeByAttributes.ts │ │ ├── index.ts │ │ ├── isFolderNode.ts │ │ ├── isTableNode.ts │ │ ├── navigation.spec.ts │ │ ├── navigation.ts │ │ ├── path-editing-popup.js │ │ ├── path-editor.js │ │ ├── prepareColumns.tsx │ │ ├── restore-object.js │ │ └── tabs │ │ │ ├── access-log.ts │ │ │ ├── tables.js │ │ │ └── tablets.js │ │ ├── operations │ │ ├── detail.ts │ │ ├── jobs.ts │ │ ├── list.js │ │ └── tabs │ │ │ ├── details │ │ │ ├── alerts.ts │ │ │ ├── data-flow.js │ │ │ ├── error.js │ │ │ ├── events │ │ │ │ ├── events.js │ │ │ │ └── eventsTablesProps.js │ │ │ ├── resources │ │ │ │ └── resourcesTablesProps.js │ │ │ ├── runtime.js │ │ │ ├── specification │ │ │ │ ├── specification.ts │ │ │ │ └── specificationTablesProps.js │ │ │ └── tasks.js │ │ │ └── statistics │ │ │ └── statisticsTableProps.js │ │ ├── parse-serialize.spec.ts │ │ ├── parse-serialize.ts │ │ ├── poolTrees.ts │ │ ├── progress.ts │ │ ├── scheduling │ │ ├── details.js │ │ ├── detailsTable.tsx │ │ ├── index.ts │ │ ├── overview.js │ │ ├── overviewTable.js │ │ ├── pool-child.js │ │ ├── pool.ts │ │ └── scheduling.ts │ │ ├── sha256.ts │ │ ├── sort-helpers.spec.ts │ │ ├── sort-helpers.ts │ │ ├── strawberryControllerApi.ts │ │ ├── system │ │ └── proxies.ts │ │ ├── tablet │ │ ├── partition.js │ │ ├── store.js │ │ ├── stores.js │ │ ├── table.js │ │ └── tablet.js │ │ ├── tablet_cell_bundles │ │ ├── bundles │ │ │ └── bundle-editor-dialog │ │ │ │ └── index.ts │ │ └── index.ts │ │ ├── unipika.ts │ │ ├── url-mapping.spec.ts │ │ ├── url-mapping.ts │ │ ├── users-groups.ts │ │ ├── utils.tsx │ │ ├── yql-types.ts │ │ └── yt-local-storage.ts │ ├── statoscope.config.js │ ├── tests │ ├── .eslintrc │ ├── .gitignore │ ├── data │ │ ├── static-table │ │ │ └── static-table │ │ └── truncated-table │ │ │ ├── data.json │ │ │ └── table.schema │ ├── e2e │ │ └── pages │ │ │ ├── accounts.base.spec.ts │ │ │ ├── aco.spec.ts │ │ │ ├── clusters-menu.base.spec.ts │ │ │ ├── clusters-menu.spec.ts │ │ │ ├── components.base.spec.ts │ │ │ ├── groups.spec.ts │ │ │ ├── link.base.spec.ts │ │ │ ├── monitoring.spec.ts │ │ │ ├── navigation.base.spec.ts │ │ │ ├── operations.base.spec.ts │ │ │ ├── query-tracker.spec.ts │ │ │ ├── scheduling.base.spec.ts │ │ │ ├── system.spec.ts │ │ │ ├── table-truncated.base.spec.ts │ │ │ ├── table.download-manager.base.spec.ts │ │ │ ├── table.dynamic.base.spec.ts │ │ │ ├── table.queue.base.spec.ts │ │ │ ├── table.static.base.spec.ts │ │ │ ├── table.unipika.base.spec.ts │ │ │ └── tablet-cell-bundles.base.spec.ts │ ├── init-cluster-e2e.sh │ ├── init-self-hosted-agent.sh │ ├── package-lock.json │ ├── package.json │ ├── playwright.config.ts │ ├── playwright.yml.github-action-example │ ├── screenshots │ │ └── pages │ │ │ ├── accounts │ │ │ ├── accounts.base.screen.ts │ │ │ └── accounts.base.screen.ts-snapshots │ │ │ │ ├── Accounts---ACL-1-chromium-linux.png │ │ │ │ ├── Accounts---ACL-2-chromium-linux.png │ │ │ │ ├── Accounts---Editor-1-chromium-linux.png │ │ │ │ ├── Accounts---Editor-2-chromium-linux.png │ │ │ │ ├── Accounts---Editor-3-chromium-linux.png │ │ │ │ ├── Accounts---Editor-4-chromium-linux.png │ │ │ │ ├── Accounts---Editor-5-chromium-linux.png │ │ │ │ ├── Accounts---Editor-6-chromium-linux.png │ │ │ │ ├── Accounts---General-1-chromium-linux.png │ │ │ │ ├── Accounts---General-2-chromium-linux.png │ │ │ │ ├── Accounts---General-3-chromium-linux.png │ │ │ │ ├── Accounts---General-4-chromium-linux.png │ │ │ │ ├── Accounts---General-5-chromium-linux.png │ │ │ │ ├── Accounts---General-6-chromium-linux.png │ │ │ │ ├── Accounts---List-1-chromium-linux.png │ │ │ │ ├── Accounts---List-2-chromium-linux.png │ │ │ │ ├── Accounts---List-3-chromium-linux.png │ │ │ │ ├── Accounts---List-4-chromium-linux.png │ │ │ │ ├── Accounts---List-5-chromium-linux.png │ │ │ │ └── Accounts---List-6-chromium-linux.png │ │ │ ├── bundles │ │ │ ├── bundles.base.screen.ts │ │ │ └── bundles.base.screen.ts-snapshots │ │ │ │ ├── Bundles---ACL-1-chromium-linux.png │ │ │ │ ├── Bundles---ACL-2-chromium-linux.png │ │ │ │ ├── Bundles---Active-bundle-1-chromium-linux.png │ │ │ │ ├── Bundles---Active-bundle-2-chromium-linux.png │ │ │ │ ├── Bundles---Active-bundle-3-chromium-linux.png │ │ │ │ ├── Bundles---List---Default-1-chromium-linux.png │ │ │ │ ├── Bundles---List---Tablet-cells-1-chromium-linux.png │ │ │ │ ├── Bundles---List---Tablet-cells-2-chromium-linux.png │ │ │ │ ├── Bundles---List---Tablet-cells-3-chromium-linux.png │ │ │ │ ├── Bundles---List---Tablets-1-chromium-linux.png │ │ │ │ └── Bundles---List---Tablets-memory-1-chromium-linux.png │ │ │ ├── clusters-menu │ │ │ ├── clusters-menu.base.screen.ts │ │ │ └── clusters-menu.base.screen.ts-snapshots │ │ │ │ └── ClustersMenu-1-chromium-linux.png │ │ │ ├── components │ │ │ ├── components.base.screen.ts │ │ │ └── components.base.screen.ts-snapshots │ │ │ │ ├── Components---HTTP-Proxies-1-chromium-linux.png │ │ │ │ ├── Components---Node---Memory-popup-1-chromium-linux.png │ │ │ │ ├── Components---Nodes---Flavor-1-chromium-linux.png │ │ │ │ ├── Components---RPC-Proxies-1-chromium-linux.png │ │ │ │ ├── Components---Shards-1-chromium-linux.png │ │ │ │ ├── Components---Tablets-1-chromium-linux.png │ │ │ │ ├── Components---Versions-1-chromium-linux.png │ │ │ │ └── Components---Versions-2-chromium-linux.png │ │ │ ├── navigation │ │ │ ├── NavigationPage.ts │ │ │ ├── TablePage.ts │ │ │ ├── navigation.base.screen.ts │ │ │ ├── navigation.base.screen.ts-snapshots │ │ │ │ ├── Navigation---Locks-1-chromium-linux.png │ │ │ │ ├── Navigation---map-node---select-by-first-cell-1-chromium-linux.png │ │ │ │ ├── Navigation-map-node---ACL-1-chromium-linux.png │ │ │ │ ├── Navigation-map-node---ACL-2-chromium-linux.png │ │ │ │ ├── Navigation-map-node---ACL-3-chromium-linux.png │ │ │ │ ├── Navigation-map-node---ACL-4-chromium-linux.png │ │ │ │ ├── Navigation-map-node---Attributes-1-chromium-linux.png │ │ │ │ ├── Navigation-map-node---Content-1-chromium-linux.png │ │ │ │ ├── Navigation-map-node---Content-2-chromium-linux.png │ │ │ │ ├── Navigation-map-node---Content-3-chromium-linux.png │ │ │ │ ├── Navigation-map-node---Pipeline---flow-tab-1-chromium-linux.png │ │ │ │ └── Navigation-map-node---bad-names-1-chromium-linux.png │ │ │ ├── navigation.symlinks.screen.ts │ │ │ ├── navigation.symlinks.screen.ts-snapshots │ │ │ │ ├── Navigation---symlinks-1-chromium-linux.png │ │ │ │ └── Navigation---symlinks-2-chromium-linux.png │ │ │ ├── navigation.table.base.screen.ts │ │ │ ├── navigation.table.base.screen.ts-snapshots │ │ │ │ ├── Navigation-static-table---rowselector-1-chromium-linux.png │ │ │ │ ├── Navigation-table---Content-1-chromium-linux.png │ │ │ │ ├── Navigation-table---Content-2-chromium-linux.png │ │ │ │ ├── Navigation-table---Content-3-chromium-linux.png │ │ │ │ ├── Navigation-table---Remount-needed-1-chromium-linux.png │ │ │ │ ├── Navigation-table---Remount-needed-2-chromium-linux.png │ │ │ │ ├── Navigation-table---Schema-1-chromium-linux.png │ │ │ │ ├── Navigation-table---Tablets-1-chromium-linux.png │ │ │ │ ├── Navigation-table---userColumnPresets-1-chromium-linux.png │ │ │ │ ├── Navigation-table---userColumnPresets-2-chromium-linux.png │ │ │ │ ├── Navigation-table---userColumnPresets-3-chromium-linux.png │ │ │ │ ├── Navigation-yql-v3-types-1-chromium-linux.png │ │ │ │ └── Navigation-yql-v3-types-2-chromium-linux.png │ │ │ ├── navigation.table.truncated.base.screen.ts │ │ │ └── navigation.table.truncated.base.screen.ts-snapshots │ │ │ │ ├── Navigation-truncated-table---Content-1-chromium-linux.png │ │ │ │ ├── Navigation-truncated-table---Content-2-chromium-linux.png │ │ │ │ ├── Navigation-truncated-table---Content-3-chromium-linux.png │ │ │ │ └── Navigation-truncated-table---Content-4-chromium-linux.png │ │ │ ├── operations │ │ │ ├── jobs.base.screen.ts │ │ │ ├── jobs.base.screen.ts-snapshots │ │ │ │ ├── Job---Details-1-chromium-linux.png │ │ │ │ ├── Job---Details-2-chromium-linux.png │ │ │ │ ├── Job---Details-3-chromium-linux.png │ │ │ │ └── Job---Details-4-chromium-linux.png │ │ │ ├── operations.base.screen.ts │ │ │ └── operations.base.screen.ts-snapshots │ │ │ │ ├── Operation---Details-1-chromium-linux.png │ │ │ │ ├── Operation---Jobs-1-chromium-linux.png │ │ │ │ ├── Operation---Statistics-1-chromium-linux.png │ │ │ │ └── Operations---List-1-chromium-linux.png │ │ │ ├── scheduling │ │ │ ├── scheduling.base.screen.ts │ │ │ └── scheduling.base.screen.ts-snapshots │ │ │ │ ├── Scheduling---ACL-1-chromium-linux.png │ │ │ │ ├── Scheduling---ACL-2-chromium-linux.png │ │ │ │ ├── Scheduling---ACL-3-chromium-linux.png │ │ │ │ ├── Scheduling---Details-1-chromium-linux.png │ │ │ │ ├── Scheduling---Details-2-chromium-linux.png │ │ │ │ ├── Scheduling---Details-3-chromium-linux.png │ │ │ │ ├── Scheduling---Details-4-chromium-linux.png │ │ │ │ ├── Scheduling---Details-5-chromium-linux.png │ │ │ │ ├── Scheduling---Details-6-chromium-linux.png │ │ │ │ ├── Scheduling---Editor-1-chromium-linux.png │ │ │ │ ├── Scheduling---Editor-2-chromium-linux.png │ │ │ │ ├── Scheduling---Editor-3-chromium-linux.png │ │ │ │ ├── Scheduling---Editor-4-chromium-linux.png │ │ │ │ ├── Scheduling---Editor-5-chromium-linux.png │ │ │ │ └── Scheduling---Overview-1-chromium-linux.png │ │ │ ├── settings │ │ │ ├── settings.base.screen.ts │ │ │ └── settings.base.screen.ts-snapshots │ │ │ │ ├── Settings-checking-the-functionality-of-the-menu-1-chromium-linux.png │ │ │ │ └── Settings-checking-the-functionality-of-the-menu-2-chromium-linux.png │ │ │ └── sticky-toolbar │ │ │ ├── sticky-toolbar.screen.ts │ │ │ └── sticky-toolbar.screen.ts-snapshots │ │ │ ├── StickyToolbar-components-1-chromium-linux.png │ │ │ ├── StickyToolbar-components-2-chromium-linux.png │ │ │ ├── StickyToolbar-navigation-1-chromium-linux.png │ │ │ ├── StickyToolbar-navigation-2-chromium-linux.png │ │ │ ├── StickyToolbar-navigation-3-chromium-linux.png │ │ │ ├── StickyToolbar-navigation-4-chromium-linux.png │ │ │ └── StickyToolbar-operations-1-chromium-linux.png │ └── utils │ │ ├── BasePage.ts │ │ ├── afterEach.ts │ │ ├── dom.ts │ │ ├── index.ts │ │ └── settings.ts │ ├── tsconfig.json │ └── tsconfig.publish.json └── release-please-config.json /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | 3 | #personal 4 | .idea/ 5 | .DS_Store -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- 1 | registry=https://registry.npmjs.org 2 | access=public 3 | -------------------------------------------------------------------------------- /.nvmrc: -------------------------------------------------------------------------------- 1 | 20 2 | -------------------------------------------------------------------------------- /.release-please-manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "packages/javascript-wrapper": "0.12.1", 3 | "packages/interface-helpers": "0.3.1", 4 | "packages/ui": "1.93.0", 5 | "packages/ui-helm-chart": "0.2.0" 6 | } 7 | -------------------------------------------------------------------------------- /CODEOWNERS: -------------------------------------------------------------------------------- 1 | * @ma-efremoff @evtaranov @SimbiozizV @KostyaAvtushko -------------------------------------------------------------------------------- /lerna.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "node_modules/lerna/schemas/lerna-schema.json", 3 | "version": "0.0.0" 4 | } 5 | -------------------------------------------------------------------------------- /packages/custom-ytsaurus-ui.example/.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | indent_style = space 5 | indent_size = 4 6 | end_of_line = lf 7 | charset = utf-8 8 | trim_trailing_whitespace = true 9 | insert_final_newline = true 10 | 11 | [{*.json,*.yml}] 12 | indent_style = space 13 | indent_size = 2 14 | 15 | [GNUmakefile] 16 | indent_style = tab 17 | indent_size = 4 18 | -------------------------------------------------------------------------------- /packages/custom-ytsaurus-ui.example/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["@gravity-ui/eslint-config", "@gravity-ui/eslint-config/prettier"], 3 | "root": true, 4 | "rules": { 5 | "new-cap": 0, 6 | "import/order": 0 7 | }, 8 | "env": { 9 | "jest": true 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /packages/custom-ytsaurus-ui.example/.nvmrc: -------------------------------------------------------------------------------- 1 | 18 2 | -------------------------------------------------------------------------------- /packages/custom-ytsaurus-ui.example/.prettierrc.js: -------------------------------------------------------------------------------- 1 | module.exports = require("@gravity-ui/prettier-config"); 2 | -------------------------------------------------------------------------------- /packages/custom-ytsaurus-ui.example/.stylelintrc: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["@gravity-ui/stylelint-config"], 3 | "rules": { 4 | "property-case": null, 5 | "at-rule-no-unknown": null, 6 | "scss/at-rule-no-unknown": true, 7 | "declaration-no-important": null 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /packages/custom-ytsaurus-ui.example/.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "explorer.excludeGitIgnore": false, 3 | "search.useIgnoreFiles": false 4 | } 5 | -------------------------------------------------------------------------------- /packages/custom-ytsaurus-ui.example/src/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "overrides": [{ 3 | "files": ["**/*.ts", "**/*.tsx", "**/*.js"], 4 | "rules": { 5 | "camelcase": "off", 6 | "no-negated-condition": "off", 7 | "import/order": 0 8 | } 9 | }] 10 | } 11 | -------------------------------------------------------------------------------- /packages/custom-ytsaurus-ui.example/src/custom-shared/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "env": { 3 | "browser": true, 4 | "node": true 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /packages/custom-ytsaurus-ui.example/src/server/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@gravity-ui/eslint-config/server", 3 | "rules": { 4 | "import/order": 0 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /packages/custom-ytsaurus-ui.example/src/server/configs/custom/common.ts: -------------------------------------------------------------------------------- 1 | import {CustomAppConfig} from '../../../custom-shared/types'; 2 | 3 | const config: Partial = { 4 | allowPasswordAuth: true, 5 | }; 6 | 7 | export default config; 8 | -------------------------------------------------------------------------------- /packages/custom-ytsaurus-ui.example/src/ui/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@gravity-ui/eslint-config/client", 3 | "rules": { 4 | "import/order": 0, 5 | "react/sort-comp": 0 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /packages/custom-ytsaurus-ui.example/src/ui/_custom/customize-ui-factory.ts: -------------------------------------------------------------------------------- 1 | import {UIFactory} from '../../ytsaurus-ui.ui/UIFactory'; 2 | 3 | export const factoryOverrides: Partial = {}; 4 | -------------------------------------------------------------------------------- /packages/custom-ytsaurus-ui.example/src/ui/entries/main.scss: -------------------------------------------------------------------------------- 1 | body.g-root { 2 | .yt-tag__text_as-user::first-letter, 3 | .user-link__name::first-letter { 4 | color: var(--danger-color); 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /packages/custom-ytsaurus-ui.example/src/ui/entries/main.tsx: -------------------------------------------------------------------------------- 1 | import '../../ytsaurus-ui.ui/entries/main'; 2 | -------------------------------------------------------------------------------- /packages/custom-ytsaurus-ui.example/src/ui/global.d.ts: -------------------------------------------------------------------------------- 1 | declare module '*.svg' { 2 | const content: SVGIconData; 3 | 4 | export default content; 5 | } 6 | 7 | declare module 'redux-location-state/lib/stateToParams' { 8 | export const stateToParams: any; 9 | } 10 | -------------------------------------------------------------------------------- /packages/custom-ytsaurus-ui.example/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@gravity-ui/tsconfig/tsconfig.json", 3 | "compilerOptions": { 4 | "resolveJsonModule": true, 5 | "allowSyntheticDefaultImports": true 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /packages/interface-helpers/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["@gravity-ui/eslint-config", "@gravity-ui/eslint-config/prettier"], 3 | "root": true, 4 | "rules": { 5 | "new-cap": 0 6 | }, 7 | "env": { 8 | "commonjs": true, 9 | "jest": true 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /packages/interface-helpers/.gitignore: -------------------------------------------------------------------------------- 1 | #npm 2 | npm-debug.log 3 | node_modules 4 | 5 | #personal 6 | .idea/ 7 | -------------------------------------------------------------------------------- /packages/interface-helpers/.npmignore: -------------------------------------------------------------------------------- 1 | .arcignore 2 | .eslintrc 3 | .prettierrc.js 4 | jest.config.js 5 | *.spec.js 6 | -------------------------------------------------------------------------------- /packages/interface-helpers/.npmrc: -------------------------------------------------------------------------------- 1 | registry=https://registry.npmjs.org 2 | -------------------------------------------------------------------------------- /packages/interface-helpers/.prettierrc.js: -------------------------------------------------------------------------------- 1 | module.exports = require('@gravity-ui/prettier-config'); 2 | -------------------------------------------------------------------------------- /packages/interface-helpers/README.md: -------------------------------------------------------------------------------- 1 | # interface-helpers 2 | 3 | JavaScript helpers for YTsaurus platform UI 4 | 5 | ## Install 6 | 7 | `npm install --save @ytsaurus/interface-helpers` 8 | 9 | ## Example 10 | 11 | hammer.format\['Bytes'\](123456789) ----> "117.74 MiB" 12 | -------------------------------------------------------------------------------- /packages/interface-helpers/jest.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | moduleDirectories: [ 3 | "node_modules", 4 | "lib", 5 | ], 6 | moduleFileExtensions: ['js'], 7 | testMatch: ['/lib/**/*.spec.js'], 8 | transform: {}, 9 | }; 10 | -------------------------------------------------------------------------------- /packages/interface-helpers/lib/hammer.js: -------------------------------------------------------------------------------- 1 | const format = require('./hammer/format'); 2 | const type = require('./hammer/type'); 3 | const utils = require('./hammer/utils'); 4 | 5 | module.exports = { 6 | utils: utils, 7 | format: format, 8 | type: type, 9 | }; 10 | -------------------------------------------------------------------------------- /packages/interface-helpers/lib/ypath.js: -------------------------------------------------------------------------------- 1 | const ypath = require('./ypath/ypath'); 2 | 3 | module.exports = ypath; 4 | -------------------------------------------------------------------------------- /packages/javascript-wrapper/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["@gravity-ui/eslint-config", "@gravity-ui/eslint-config/prettier"], 3 | "root": true, 4 | "rules": { 5 | "new-cap": 0, 6 | "import/order": 0 7 | }, 8 | "env": { 9 | "jest": true 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /packages/javascript-wrapper/.gitignore: -------------------------------------------------------------------------------- 1 | #npm 2 | npm-debug.log 3 | node_modules 4 | 5 | #personal 6 | .idea/ 7 | 8 | ytsaurus-javascript-wrapper*.tgz -------------------------------------------------------------------------------- /packages/javascript-wrapper/.npmignore: -------------------------------------------------------------------------------- 1 | #npm 2 | npm-debug.log 3 | node_modules 4 | 5 | #personal 6 | .idea/ 7 | 8 | #build 9 | test/ 10 | karma.conf.js 11 | -------------------------------------------------------------------------------- /packages/javascript-wrapper/.npmrc: -------------------------------------------------------------------------------- 1 | registry=https://registry.npmjs.org 2 | -------------------------------------------------------------------------------- /packages/javascript-wrapper/.prettierrc.js: -------------------------------------------------------------------------------- 1 | module.exports = require("@gravity-ui/prettier-config"); 2 | -------------------------------------------------------------------------------- /packages/javascript-wrapper/.stylelintrc: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["@gravity-ui/stylelint-config"], 3 | "rules": { 4 | "property-case": null, 5 | "at-rule-no-unknown": null, 6 | "scss/at-rule-no-unknown": true, 7 | "declaration-no-important": null 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /packages/javascript-wrapper/lib/commands/index.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | v2: require('./v2.js'), 3 | v3: require('./v3.js'), 4 | v4: require('./v4.js') 5 | }; 6 | -------------------------------------------------------------------------------- /packages/javascript-wrapper/lib/utils/error.js: -------------------------------------------------------------------------------- 1 | var error = {}; 2 | 3 | error.prepare = function (message) { 4 | return 'yt: ' + message; 5 | }; 6 | 7 | error.requiredParameter = function (parameter) { 8 | var error = this; 9 | 10 | return error.prepare('Parameter ' + parameter + ' is required.'); 11 | }; 12 | 13 | module.exports = error; 14 | -------------------------------------------------------------------------------- /packages/javascript-wrapper/lib/yt.js: -------------------------------------------------------------------------------- 1 | module.exports = require('../lib')({ exportBrowserModule: true }); 2 | -------------------------------------------------------------------------------- /packages/javascript-wrapper/test/environment.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/javascript-wrapper/test/environment.js -------------------------------------------------------------------------------- /packages/ui-helm-chart/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | name: ytsaurus-ui-chart 3 | description: A Helm chart for Kubernetes 4 | type: application 5 | version: 0.2.0 6 | sources: 7 | - https://github.com/ytsaurus/ytsaurus-ui 8 | appVersion: "1.60.1" 9 | -------------------------------------------------------------------------------- /packages/ui/.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | indent_style = space 5 | indent_size = 4 6 | end_of_line = lf 7 | charset = utf-8 8 | trim_trailing_whitespace = true 9 | insert_final_newline = true 10 | 11 | [{*.json,*.yml}] 12 | indent_style = space 13 | indent_size = 2 14 | 15 | [GNUmakefile] 16 | indent_style = tab 17 | indent_size = 4 18 | -------------------------------------------------------------------------------- /packages/ui/.eslintignore: -------------------------------------------------------------------------------- 1 | dist 2 | node_modules 3 | -------------------------------------------------------------------------------- /packages/ui/.npmrc: -------------------------------------------------------------------------------- 1 | registry=https://registry.npmjs.org 2 | -------------------------------------------------------------------------------- /packages/ui/.prettierrc.js: -------------------------------------------------------------------------------- 1 | module.exports = require("@gravity-ui/prettier-config"); 2 | -------------------------------------------------------------------------------- /packages/ui/.stylelintrc: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["@gravity-ui/stylelint-config"], 3 | "rules": { 4 | "property-case": null, 5 | "at-rule-no-unknown": null, 6 | "scss/at-rule-no-unknown": true, 7 | "declaration-no-important": null 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /packages/ui/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | env: { 3 | 'test:unit': { 4 | presets: [ 5 | ['@babel/preset-env', {targets: {node: 'current'}}], 6 | '@babel/preset-typescript', 7 | ], 8 | }, 9 | }, 10 | }; 11 | -------------------------------------------------------------------------------- /packages/ui/build.lib.config.ts: -------------------------------------------------------------------------------- 1 | import {LibraryConfig} from '@gravity-ui/app-builder'; 2 | 3 | const config: LibraryConfig = { 4 | lib: {}, 5 | }; 6 | 7 | export default config; 8 | -------------------------------------------------------------------------------- /packages/ui/build.server.tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@gravity-ui/tsconfig/tsconfig.json", 3 | "compilerOptions": { 4 | "declaration": true, 5 | "allowJs": true, 6 | "outDir": "build/cjs" 7 | }, 8 | "include": ["src/server/**/*", "src/@types/*.d.ts", "src/shared/**/*"], 9 | "exclude": ["src/ui/"], 10 | "types": ["node"] 11 | } 12 | -------------------------------------------------------------------------------- /packages/ui/deploy/scripts/preflight.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | 4 | APP_ENV=${APP_ENV:-production} 5 | 6 | sed -e "s/%APP_HTTP_PORT%/${APP_HTTP_PORT:-80}/" -i /etc/nginx/sites-enabled/*.conf 7 | 8 | mkdir -p /opt/app/secrets /opt/app/dist/run 9 | 10 | chown -R app /opt/app/secrets 11 | chown app /opt/app/dist/run 12 | 13 | supervisorctl start node 14 | supervisorctl start nginx 15 | -------------------------------------------------------------------------------- /packages/ui/scripts/check-start-files.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | clusterConfig=./clusters-config.json 4 | 5 | if [ "$APP_ENV" != "local" -a ! -f ${clusterConfig} ]; then 6 | echo "You have to provide '${clusterConfig}' file before start" 7 | echo "see clusters-config.json.example for some details" 8 | echo 9 | exit 1 10 | fi 11 | -------------------------------------------------------------------------------- /packages/ui/src/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "overrides": [{ 3 | "files": ["**/*.ts", "**/*.tsx", "**/*.js"], 4 | "rules": { 5 | "camelcase": "off", 6 | "no-negated-condition": "off", 7 | "import/order": 0 8 | } 9 | }] 10 | } 11 | -------------------------------------------------------------------------------- /packages/ui/src/server/.arcignore: -------------------------------------------------------------------------------- 1 | #socket 2 | run/node.sock 3 | 4 | #build 5 | public/ 6 | !public/.keep 7 | 8 | #secrets 9 | ../../secrets/yt-interface-secret.json 10 | -------------------------------------------------------------------------------- /packages/ui/src/server/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@gravity-ui/eslint-config/server" 3 | } 4 | -------------------------------------------------------------------------------- /packages/ui/src/server/constants/index.ts: -------------------------------------------------------------------------------- 1 | export const YT_LOCAL_CLUSTER_ID = process.env.YT_LOCAL_CLUSTER_ID ?? 'ui'; 2 | -------------------------------------------------------------------------------- /packages/ui/src/server/controllers/ping.ts: -------------------------------------------------------------------------------- 1 | import type {Request, Response} from 'express'; 2 | 3 | export function ping(_req: Request, res: Response) { 4 | res.send({result: 'pong'}); 5 | } 6 | -------------------------------------------------------------------------------- /packages/ui/src/server/lib.ts: -------------------------------------------------------------------------------- 1 | export type {ServerFactory} from './ServerFactory'; 2 | export {rememberApp, getApp} from './ServerFactory'; 3 | -------------------------------------------------------------------------------- /packages/ui/src/shared/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "env": { 3 | "browser": true, 4 | "node": true 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /packages/ui/src/shared/constants/engines.ts: -------------------------------------------------------------------------------- 1 | export enum QueryEngine { 2 | YQL = 'yql', 3 | CHYT = 'chyt', 4 | SPYT = 'spyt', 5 | YT_QL = 'ql', 6 | } 7 | -------------------------------------------------------------------------------- /packages/ui/src/shared/constants/system.ts: -------------------------------------------------------------------------------- 1 | import {ValueOf} from '../../@types/types'; 2 | 3 | export const NODE_TYPE = { 4 | ALL_NODES: 'cluster_nodes', 5 | DATA_NODES: 'data_nodes', 6 | EXEC_NODES: 'exec_nodes', 7 | TABLET_NODES: 'tablet_nodes', 8 | CHAOS_NODES: 'chaos_nodes', 9 | } as const; 10 | 11 | export type NodeType = ValueOf; 12 | -------------------------------------------------------------------------------- /packages/ui/src/shared/constants/vcs.ts: -------------------------------------------------------------------------------- 1 | export const VCS_DEFAULT_MAX_FILE_SIZE = 10 * 1024 * 1024; // 10Mb 2 | -------------------------------------------------------------------------------- /packages/ui/src/shared/constants/yt-api.ts: -------------------------------------------------------------------------------- 1 | export const USE_CACHE = { 2 | read_from: 'cache', 3 | disable_per_user_cache: true, 4 | } as const; 5 | 6 | const LIST_MAX_SIZE = 1000000; 7 | 8 | export const USE_MAX_SIZE = { 9 | max_size: LIST_MAX_SIZE, 10 | }; 11 | -------------------------------------------------------------------------------- /packages/ui/src/shared/lib.ts: -------------------------------------------------------------------------------- 1 | export type {YTConfig, ClusterConfig} from './yt-types'; 2 | -------------------------------------------------------------------------------- /packages/ui/src/ui/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@gravity-ui/eslint-config/client", 3 | "rules": { 4 | "import/order": 0, 5 | "react/sort-comp": 0 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /packages/ui/src/ui/@types/worker.d.ts: -------------------------------------------------------------------------------- 1 | declare module '*.worker.ts' { 2 | class WebpackWorker extends Worker { 3 | constructor(); 4 | } 5 | 6 | export default WebpackWorker; 7 | } 8 | -------------------------------------------------------------------------------- /packages/ui/src/ui/assets/fonts/Manrope/otf/Manrope-Bold.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/src/ui/assets/fonts/Manrope/otf/Manrope-Bold.otf -------------------------------------------------------------------------------- /packages/ui/src/ui/assets/fonts/Manrope/otf/Manrope-ExtraBold.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/src/ui/assets/fonts/Manrope/otf/Manrope-ExtraBold.otf -------------------------------------------------------------------------------- /packages/ui/src/ui/assets/fonts/Manrope/otf/Manrope-ExtraLight.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/src/ui/assets/fonts/Manrope/otf/Manrope-ExtraLight.otf -------------------------------------------------------------------------------- /packages/ui/src/ui/assets/fonts/Manrope/otf/Manrope-Light.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/src/ui/assets/fonts/Manrope/otf/Manrope-Light.otf -------------------------------------------------------------------------------- /packages/ui/src/ui/assets/fonts/Manrope/otf/Manrope-Medium.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/src/ui/assets/fonts/Manrope/otf/Manrope-Medium.otf -------------------------------------------------------------------------------- /packages/ui/src/ui/assets/fonts/Manrope/otf/Manrope-Regular.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/src/ui/assets/fonts/Manrope/otf/Manrope-Regular.otf -------------------------------------------------------------------------------- /packages/ui/src/ui/assets/fonts/Manrope/otf/Manrope-SemiBold.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/src/ui/assets/fonts/Manrope/otf/Manrope-SemiBold.otf -------------------------------------------------------------------------------- /packages/ui/src/ui/assets/fonts/Roboto_Mono/RobotoMono-Italic-VariableFont_wght.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/src/ui/assets/fonts/Roboto_Mono/RobotoMono-Italic-VariableFont_wght.ttf -------------------------------------------------------------------------------- /packages/ui/src/ui/assets/fonts/Roboto_Mono/RobotoMono-VariableFont_wght.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/src/ui/assets/fonts/Roboto_Mono/RobotoMono-VariableFont_wght.ttf -------------------------------------------------------------------------------- /packages/ui/src/ui/assets/fonts/Roboto_Mono/static/RobotoMono-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/src/ui/assets/fonts/Roboto_Mono/static/RobotoMono-Bold.ttf -------------------------------------------------------------------------------- /packages/ui/src/ui/assets/fonts/Roboto_Mono/static/RobotoMono-BoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/src/ui/assets/fonts/Roboto_Mono/static/RobotoMono-BoldItalic.ttf -------------------------------------------------------------------------------- /packages/ui/src/ui/assets/fonts/Roboto_Mono/static/RobotoMono-ExtraLight.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/src/ui/assets/fonts/Roboto_Mono/static/RobotoMono-ExtraLight.ttf -------------------------------------------------------------------------------- /packages/ui/src/ui/assets/fonts/Roboto_Mono/static/RobotoMono-ExtraLightItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/src/ui/assets/fonts/Roboto_Mono/static/RobotoMono-ExtraLightItalic.ttf -------------------------------------------------------------------------------- /packages/ui/src/ui/assets/fonts/Roboto_Mono/static/RobotoMono-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/src/ui/assets/fonts/Roboto_Mono/static/RobotoMono-Italic.ttf -------------------------------------------------------------------------------- /packages/ui/src/ui/assets/fonts/Roboto_Mono/static/RobotoMono-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/src/ui/assets/fonts/Roboto_Mono/static/RobotoMono-Light.ttf -------------------------------------------------------------------------------- /packages/ui/src/ui/assets/fonts/Roboto_Mono/static/RobotoMono-LightItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/src/ui/assets/fonts/Roboto_Mono/static/RobotoMono-LightItalic.ttf -------------------------------------------------------------------------------- /packages/ui/src/ui/assets/fonts/Roboto_Mono/static/RobotoMono-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/src/ui/assets/fonts/Roboto_Mono/static/RobotoMono-Medium.ttf -------------------------------------------------------------------------------- /packages/ui/src/ui/assets/fonts/Roboto_Mono/static/RobotoMono-MediumItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/src/ui/assets/fonts/Roboto_Mono/static/RobotoMono-MediumItalic.ttf -------------------------------------------------------------------------------- /packages/ui/src/ui/assets/fonts/Roboto_Mono/static/RobotoMono-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/src/ui/assets/fonts/Roboto_Mono/static/RobotoMono-Regular.ttf -------------------------------------------------------------------------------- /packages/ui/src/ui/assets/fonts/Roboto_Mono/static/RobotoMono-SemiBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/src/ui/assets/fonts/Roboto_Mono/static/RobotoMono-SemiBold.ttf -------------------------------------------------------------------------------- /packages/ui/src/ui/assets/fonts/Roboto_Mono/static/RobotoMono-SemiBoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/src/ui/assets/fonts/Roboto_Mono/static/RobotoMono-SemiBoldItalic.ttf -------------------------------------------------------------------------------- /packages/ui/src/ui/assets/fonts/Roboto_Mono/static/RobotoMono-Thin.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/src/ui/assets/fonts/Roboto_Mono/static/RobotoMono-Thin.ttf -------------------------------------------------------------------------------- /packages/ui/src/ui/assets/fonts/Roboto_Mono/static/RobotoMono-ThinItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/src/ui/assets/fonts/Roboto_Mono/static/RobotoMono-ThinItalic.ttf -------------------------------------------------------------------------------- /packages/ui/src/ui/assets/img/favicon-aqua.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/src/ui/assets/img/favicon-aqua.png -------------------------------------------------------------------------------- /packages/ui/src/ui/assets/img/favicon-bittersweet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/src/ui/assets/img/favicon-bittersweet.png -------------------------------------------------------------------------------- /packages/ui/src/ui/assets/img/favicon-bluejeans.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/src/ui/assets/img/favicon-bluejeans.png -------------------------------------------------------------------------------- /packages/ui/src/ui/assets/img/favicon-darkgray.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/src/ui/assets/img/favicon-darkgray.png -------------------------------------------------------------------------------- /packages/ui/src/ui/assets/img/favicon-dorn-yellow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/src/ui/assets/img/favicon-dorn-yellow.png -------------------------------------------------------------------------------- /packages/ui/src/ui/assets/img/favicon-grapefruit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/src/ui/assets/img/favicon-grapefruit.png -------------------------------------------------------------------------------- /packages/ui/src/ui/assets/img/favicon-grass.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/src/ui/assets/img/favicon-grass.png -------------------------------------------------------------------------------- /packages/ui/src/ui/assets/img/favicon-lavander.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/src/ui/assets/img/favicon-lavander.png -------------------------------------------------------------------------------- /packages/ui/src/ui/assets/img/favicon-lightgray.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/src/ui/assets/img/favicon-lightgray.png -------------------------------------------------------------------------------- /packages/ui/src/ui/assets/img/favicon-mediumgray.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/src/ui/assets/img/favicon-mediumgray.png -------------------------------------------------------------------------------- /packages/ui/src/ui/assets/img/favicon-mint.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/src/ui/assets/img/favicon-mint.png -------------------------------------------------------------------------------- /packages/ui/src/ui/assets/img/favicon-pinkrose.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/src/ui/assets/img/favicon-pinkrose.png -------------------------------------------------------------------------------- /packages/ui/src/ui/assets/img/favicon-rubber.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/src/ui/assets/img/favicon-rubber.png -------------------------------------------------------------------------------- /packages/ui/src/ui/assets/img/favicon-sunflower.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/src/ui/assets/img/favicon-sunflower.png -------------------------------------------------------------------------------- /packages/ui/src/ui/assets/img/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/src/ui/assets/img/favicon.png -------------------------------------------------------------------------------- /packages/ui/src/ui/assets/img/placeholder.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /packages/ui/src/ui/assets/img/svg/calendar.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /packages/ui/src/ui/assets/img/svg/chevron-right.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /packages/ui/src/ui/assets/img/svg/chevron.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /packages/ui/src/ui/assets/img/svg/empty.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /packages/ui/src/ui/assets/img/svg/icons/intersection.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /packages/ui/src/ui/assets/img/svg/icons/window-maximize.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /packages/ui/src/ui/assets/img/svg/page-no-icon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /packages/ui/src/ui/assets/img/svg/remove.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | -------------------------------------------------------------------------------- /packages/ui/src/ui/assets/img/svg/square-semifill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /packages/ui/src/ui/assets/img/svg/square.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /packages/ui/src/ui/assets/img/svg/yt.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /packages/ui/src/ui/assets/img/ui-2x.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/src/ui/assets/img/ui-2x.jpg -------------------------------------------------------------------------------- /packages/ui/src/ui/assets/img/ui-big.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/src/ui/assets/img/ui-big.jpg -------------------------------------------------------------------------------- /packages/ui/src/ui/assets/img/ui.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/src/ui/assets/img/ui.jpg -------------------------------------------------------------------------------- /packages/ui/src/ui/assets/img/unknown-2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/src/ui/assets/img/unknown-2x.png -------------------------------------------------------------------------------- /packages/ui/src/ui/assets/img/unknown.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/src/ui/assets/img/unknown.png -------------------------------------------------------------------------------- /packages/ui/src/ui/common/__mocks__/hammer.js: -------------------------------------------------------------------------------- 1 | export default { 2 | format: { 3 | ReadableField(item) { 4 | return item; 5 | }, 6 | }, 7 | }; 8 | -------------------------------------------------------------------------------- /packages/ui/src/ui/common/hammer/.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "env": { 3 | "es6": true, 4 | "commonjs": true 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /packages/ui/src/ui/common/utils/redux.js: -------------------------------------------------------------------------------- 1 | export function getSettingBySelector(selector) { 2 | const state = window.store.getState(); 3 | return selector(state); 4 | } 5 | -------------------------------------------------------------------------------- /packages/ui/src/ui/components/AclUpdateMessage/AclUpdateMessage.scss: -------------------------------------------------------------------------------- 1 | .acl-update-message { 2 | display: flex; 3 | flex-wrap: wrap; 4 | align-items: center; 5 | 6 | &__link { 7 | margin: 0 3px; 8 | } 9 | 10 | &__subject { 11 | margin: 0 2px; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/ui/src/ui/components/Alert/Alert.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | 3 | import {YTErrorBlock, YTErrorBlockProps} from '../../components/Block/Block'; 4 | 5 | export function YTAlertBlock(props: YTErrorBlockProps) { 6 | return ; 7 | } 8 | -------------------------------------------------------------------------------- /packages/ui/src/ui/components/AlertEvents/AlertEvents.scss: -------------------------------------------------------------------------------- 1 | .yt-alert-events { 2 | overflow-x: auto; 3 | 4 | &__row_current { 5 | background-color: var(--alert-background); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /packages/ui/src/ui/components/Breadcrumbs/index.ts: -------------------------------------------------------------------------------- 1 | export {Breadcrumbs} from './Breadcrumbs'; 2 | export {unstable_BreadcrumbsItem as BreadcrumbsItem} from '@gravity-ui/uikit/unstable'; 3 | -------------------------------------------------------------------------------- /packages/ui/src/ui/components/Button/Button.scss: -------------------------------------------------------------------------------- 1 | .yt-button { 2 | &_inline { 3 | margin-top: -4px; 4 | margin-bottom: -4px; 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /packages/ui/src/ui/components/ButtonPopup/ButtonPopup.scss: -------------------------------------------------------------------------------- 1 | .button-popup { 2 | min-width: 620px; 3 | padding: 16px 20px; 4 | 5 | &__top-row { 6 | display: flex; 7 | justify-content: space-between; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /packages/ui/src/ui/components/ClickableText/ClickableText.scss: -------------------------------------------------------------------------------- 1 | .yt-clickable-text { 2 | &_color_info { 3 | color: var(--g-color-text-info); 4 | } 5 | &_color_secondary { 6 | color: var(--g-color-text-secondary); 7 | } 8 | 9 | &:hover { 10 | color: var(--g-color-text-danger); 11 | cursor: pointer; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/ui/src/ui/components/CollapsableText/CollapsableText.scss: -------------------------------------------------------------------------------- 1 | .elements-collapsable-text { 2 | &__text { 3 | overflow: hidden; 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /packages/ui/src/ui/components/CollapsedString/CollapsedString.scss: -------------------------------------------------------------------------------- 1 | .yt-collapsed-string { 2 | &__toggle { 3 | margin-left: 10px; 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /packages/ui/src/ui/components/CollapsedString/index.ts: -------------------------------------------------------------------------------- 1 | export {CollapsedString} from './CollapsedString'; 2 | -------------------------------------------------------------------------------- /packages/ui/src/ui/components/CollapsibleList/CollapsibleList.scss: -------------------------------------------------------------------------------- 1 | @import '../../styles/mixins'; 2 | 3 | .collapsible-list { 4 | &__list { 5 | &_use-flex { 6 | display: flex; 7 | flex-wrap: wrap; 8 | } 9 | 10 | @include reset-ul(); 11 | 12 | li { 13 | @include reset-li(); 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /packages/ui/src/ui/components/CollapsibleTable/CollapsibleTable.scss: -------------------------------------------------------------------------------- 1 | .collapsible-table { 2 | &__heading { 3 | margin-right: 5px; 4 | } 5 | 6 | &__size { 7 | font-size: 0.9em; 8 | color: var(--secondary-text); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /packages/ui/src/ui/components/ColorCircle/ColorCircle.scss: -------------------------------------------------------------------------------- 1 | .yt-color-circle { 2 | display: inline-block; 3 | width: 1.3ex; 4 | height: 1.3ex; 5 | border-radius: 50%; 6 | 7 | &_margin-right { 8 | margin-right: 0.5ex; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /packages/ui/src/ui/components/ColumnSelector/constants.scss: -------------------------------------------------------------------------------- 1 | $column-selector-offset-vertical: 15px; 2 | $column-selector-offset-horizontal: 24px; 3 | -------------------------------------------------------------------------------- /packages/ui/src/ui/components/CompactError/CompactError.scss: -------------------------------------------------------------------------------- 1 | .compact-error-block { 2 | margin: 10px; 3 | 4 | &__link { 5 | margin: 8px; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /packages/ui/src/ui/components/ConfirmInput/ConfirmInput.scss: -------------------------------------------------------------------------------- 1 | .confirm-input { 2 | &__description { 3 | margin: 0; 4 | margin-bottom: 5px; 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /packages/ui/src/ui/components/Dialog/Dialog.types.ts: -------------------------------------------------------------------------------- 1 | export type DialogControlProps = Extras & { 2 | value: T; 3 | onChange: (v: T) => void; 4 | required?: boolean; 5 | validator?: (v: T) => string | undefined; 6 | placeholder?: string; 7 | }; 8 | -------------------------------------------------------------------------------- /packages/ui/src/ui/components/Dialog/DialogError.scss: -------------------------------------------------------------------------------- 1 | .yt-dialog-error { 2 | margin: 0 -32px; 3 | padding: 20px 32px; 4 | overflow: auto; 5 | } 6 | -------------------------------------------------------------------------------- /packages/ui/src/ui/components/Dialog/controls/BeforeDatePicker/BeforeDatePicker.scss: -------------------------------------------------------------------------------- 1 | .before-date-picker { 2 | display: flex; 3 | 4 | &__input-container { 5 | flex-grow: 1; 6 | width: 25ex; 7 | padding-left: 2ex; 8 | display: flex; 9 | flex-direction: column; 10 | justify-items: stretch; 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /packages/ui/src/ui/components/Dialog/controls/BytesControl.scss: -------------------------------------------------------------------------------- 1 | .ic-bytes-control { 2 | .yt-number-input__pretty-value { 3 | height: 0px; 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /packages/ui/src/ui/components/Dialog/controls/ClusterSelectControl/ClusterSelectControl.scss: -------------------------------------------------------------------------------- 1 | .cluster-select-control { 2 | &__warning { 3 | color: var(--warning-text); 4 | } 5 | 6 | &__name { 7 | color: var(--secondary-text); 8 | text-transform: capitalize; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /packages/ui/src/ui/components/Dialog/controls/EditablePathList/EditablePathList.scss: -------------------------------------------------------------------------------- 1 | .editable-path-list { 2 | &__list { 3 | margin-top: 0.5ex; 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /packages/ui/src/ui/components/Dialog/controls/OutputPathControl/AddOptionForm.scss: -------------------------------------------------------------------------------- 1 | .add-option-form { 2 | display: grid; 3 | grid-template-columns: repeat(2, 1fr); 4 | grid-gap: 12px 32px; 5 | padding: 16px; 6 | width: 450px; 7 | } 8 | -------------------------------------------------------------------------------- /packages/ui/src/ui/components/Dialog/controls/OutputPathControl/index.ts: -------------------------------------------------------------------------------- 1 | export {OutputPathControl} from './OutputPathControl'; 2 | -------------------------------------------------------------------------------- /packages/ui/src/ui/components/Dialog/controls/PoolSuggestControl/PoolSuggestControl.scss: -------------------------------------------------------------------------------- 1 | .pool-suggest-control { 2 | $popupMaxHeight: 35vh; 3 | 4 | &__popup { 5 | max-height: $popupMaxHeight; 6 | overflow: hidden; 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /packages/ui/src/ui/components/Dialog/controls/RangeInputPickerControl/RangeInputPickerControl.scss: -------------------------------------------------------------------------------- 1 | .df-dialog { 2 | &__field-wrapper_type_range-input-picker { 3 | margin-bottom: 24px; 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /packages/ui/src/ui/components/DownloadAttributesButton/index.ts: -------------------------------------------------------------------------------- 1 | export {DownloadFileButton} from './DownloadFileButton'; 2 | export {YsonDownloadButton} from './YsonDownloadButton'; 3 | -------------------------------------------------------------------------------- /packages/ui/src/ui/components/EditTextWithPreview/constants.scss: -------------------------------------------------------------------------------- 1 | $tabbed-content-header-height: 48px; 2 | -------------------------------------------------------------------------------- /packages/ui/src/ui/components/EditTextWithPreview/index.ts: -------------------------------------------------------------------------------- 1 | export {EditTextWithPreview} from './EditTextWithPreview'; 2 | export type {EditTextWithPreviewProps} from './EditTextWithPreview'; 3 | -------------------------------------------------------------------------------- /packages/ui/src/ui/components/ElementsTable/constants.scss: -------------------------------------------------------------------------------- 1 | $thick-border: 1px solid var(--dark-divider); 2 | $thin-border: 1px solid var(--light-divider); 3 | 4 | $row-height_size_s: 35px; 5 | $row-height_size_m: 40px; 6 | -------------------------------------------------------------------------------- /packages/ui/src/ui/components/Error/Error.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | 3 | import {YTErrorBlock as Block, YTErrorBlockProps} from '../../components/Block/Block'; 4 | 5 | export function YTErrorBlock(props: YTErrorBlockProps) { 6 | return ; 7 | } 8 | -------------------------------------------------------------------------------- /packages/ui/src/ui/components/ErrorIcon/ErrorIcon.scss: -------------------------------------------------------------------------------- 1 | .yt-error-icon { 2 | &__icon { 3 | color: var(--danger-color); 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /packages/ui/src/ui/components/ErrorMessage/ErrorMessage.scss: -------------------------------------------------------------------------------- 1 | .error-message { 2 | margin: 0; 3 | font-size: 13px; 4 | color: var(--danger-color); 5 | 6 | &__message-text { 7 | margin-left: 5px; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /packages/ui/src/ui/components/ExpandButton/ExpandButton.scss: -------------------------------------------------------------------------------- 1 | .yt-expanded-button { 2 | &_inline { 3 | margin-top: -4px; 4 | margin-bottom: -4px; 5 | } 6 | 7 | &__expand { 8 | &_expanded { 9 | transform: rotate(90deg); 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /packages/ui/src/ui/components/ExpandButton/index.ts: -------------------------------------------------------------------------------- 1 | export {ExpandButton} from './ExpandButton'; 2 | -------------------------------------------------------------------------------- /packages/ui/src/ui/components/ExpandIcon/ExpandIcon.scss: -------------------------------------------------------------------------------- 1 | .expand-icon { 2 | padding: 0 1ex; 3 | visibility: hidden; 4 | 5 | &_visible { 6 | visibility: unset; 7 | } 8 | 9 | &_clickable { 10 | cursor: pointer; 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /packages/ui/src/ui/components/FilePicker/FilePicker.scss: -------------------------------------------------------------------------------- 1 | .yt-file-picker { 2 | &__input { 3 | visibility: hidden; 4 | position: absolute; 5 | z-index: -1; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /packages/ui/src/ui/components/Filter/FilterWithRegExp.scss: -------------------------------------------------------------------------------- 1 | .filter-with-regexp { 2 | &__controls { 3 | display: flex; 4 | flex-wrap: nowrap; 5 | } 6 | 7 | &__filter { 8 | flex-grow: 1; 9 | } 10 | 11 | &__error { 12 | color: var(--danger-text); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /packages/ui/src/ui/components/HelpLink/HelpLink.scss: -------------------------------------------------------------------------------- 1 | .yt-help-link { 2 | &__text { 3 | padding-left: 5px; 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /packages/ui/src/ui/components/Loader/Loader.scss: -------------------------------------------------------------------------------- 1 | .yt-loader { 2 | padding-left: 15px; 3 | transform: scale(0.75); 4 | 5 | &_centered { 6 | margin: auto; 7 | text-align: center; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /packages/ui/src/ui/components/Markdown/Markdown.scss: -------------------------------------------------------------------------------- 1 | .yt-markdown { 2 | a { 3 | color: var(--external-link) !important; 4 | text-decoration: none; 5 | 6 | &:hover { 7 | color: var(--hover-link) !important; 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /packages/ui/src/ui/components/MarkdownLinePreview/MarkdownLinePreview.scss: -------------------------------------------------------------------------------- 1 | .one-line-text-preview { 2 | display: flex; 3 | align-items: center; 4 | justify-content: space-between; 5 | overflow: hidden; 6 | text-overflow: ellipsis; 7 | 8 | &__preview-text { 9 | margin-right: 1ex; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /packages/ui/src/ui/components/MetaTable/presets/index.js: -------------------------------------------------------------------------------- 1 | export {default as main} from './main'; 2 | export {default as size} from './size'; 3 | export {default as compression} from './compression'; 4 | export {default as erasureReplication} from './erasure-replication'; 5 | -------------------------------------------------------------------------------- /packages/ui/src/ui/components/MetaTable/presets/ttl.scss: -------------------------------------------------------------------------------- 1 | .meta-table-ttl { 2 | &__ttl { 3 | display: inline-flex; 4 | flex-wrap: nowrap; 5 | align-items: center; 6 | } 7 | 8 | &__ttl-info { 9 | padding: 0 4px; 10 | margin-top: -2px; 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /packages/ui/src/ui/components/Multimeter/BarChart.scss: -------------------------------------------------------------------------------- 1 | .multimeter { 2 | &__barchart { 3 | display: inline-block; 4 | } 5 | 6 | &__barchart-bar { 7 | display: inline-block; 8 | background-color: var(--g-color-text-info); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /packages/ui/src/ui/components/NumberInput/NumberInput.scss: -------------------------------------------------------------------------------- 1 | .yt-number-input { 2 | &__top { 3 | display: flex; 4 | } 5 | 6 | &__hint, 7 | &__pretty-value { 8 | color: var(--secondary-text); 9 | 10 | font-size: 13px; 11 | padding: 4px 8px 0px; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/ui/src/ui/components/Radiobox/Radiobox.scss: -------------------------------------------------------------------------------- 1 | $block: '.elements-radiobox'; 2 | 3 | #{$block} { 4 | &_layout_vertical { 5 | #{$block}__radio { 6 | display: block; 7 | } 8 | } 9 | 10 | &_layout_horizontal { 11 | #{$block}__radio { 12 | margin-right: 10px; 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /packages/ui/src/ui/components/RedirectConfirmModal/index.ts: -------------------------------------------------------------------------------- 1 | export {RedirectConfirmModal} from './RedirectConfirmModal'; 2 | -------------------------------------------------------------------------------- /packages/ui/src/ui/components/SortIcon/SortIcon.scss: -------------------------------------------------------------------------------- 1 | .sort-icon { 2 | margin-left: 4px; 3 | 4 | &_hidden { 5 | visibility: hidden; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /packages/ui/src/ui/components/StatisticTable/index.ts: -------------------------------------------------------------------------------- 1 | export * from './StatisticTable'; 2 | export type {StatisticTree} from './types'; 3 | export * from './utils'; 4 | -------------------------------------------------------------------------------- /packages/ui/src/ui/components/Tabs/__mocks__/Tabs.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | 3 | export default function Tabs() { 4 | return
; 5 | } 6 | -------------------------------------------------------------------------------- /packages/ui/src/ui/components/TimeDuration/TimeDuration.scss: -------------------------------------------------------------------------------- 1 | .yt-time-duration { 2 | display: flex; 3 | align-items: top; 4 | 5 | &__input { 6 | flex-grow: 1; 7 | } 8 | 9 | &__info { 10 | padding-left: 4px; 11 | padding-top: 4px; 12 | color: var(--secondary-text); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /packages/ui/src/ui/components/TimePicker/TimePicker.scss: -------------------------------------------------------------------------------- 1 | .timepicker { 2 | .icon_awesome { 3 | display: flex; 4 | justify-content: center; 5 | align-items: center; 6 | } 7 | 8 | &__control { 9 | width: 80px; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /packages/ui/src/ui/components/YTGraph/PopupLayer/index.ts: -------------------------------------------------------------------------------- 1 | export {PopupPortal} from './PopupPortal'; 2 | -------------------------------------------------------------------------------- /packages/ui/src/ui/components/YTGraph/YTGraph.scss: -------------------------------------------------------------------------------- 1 | .yt-graph { 2 | &__graph { 3 | canvas.layer:nth-child(-n + 2) { 4 | background: var(--main-background); 5 | } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /packages/ui/src/ui/components/YTGraph/index.ts: -------------------------------------------------------------------------------- 1 | export * from './YTGraph'; 2 | export * from './config'; 3 | export * from './canvas/NodeBlock'; 4 | -------------------------------------------------------------------------------- /packages/ui/src/ui/components/YTHistogram/YTHistogram.scss: -------------------------------------------------------------------------------- 1 | .yt-histogram { 2 | min-height: 300px; 3 | min-width: 300px; 4 | } 5 | -------------------------------------------------------------------------------- /packages/ui/src/ui/components/common/ColumnSelector/i18n/en.json: -------------------------------------------------------------------------------- 1 | { 2 | "button_apply": "Apply", 3 | "button_cancel": "Cancel", 4 | "label_columns": "Columns", 5 | "label_placeholder": "Select 1 or more columns" 6 | } 7 | -------------------------------------------------------------------------------- /packages/ui/src/ui/components/common/ColumnSelector/i18n/index.ts: -------------------------------------------------------------------------------- 1 | import {I18N} from '@gravity-ui/i18n'; 2 | import en from './en.json'; 3 | 4 | const i18n = new I18N(); 5 | 6 | i18n.setLang('en'); 7 | 8 | const COMPONENT = 'yc-column-selector'; 9 | 10 | i18n.registerKeyset('en', COMPONENT, en); 11 | 12 | export default i18n.keyset(COMPONENT); 13 | -------------------------------------------------------------------------------- /packages/ui/src/ui/components/common/ColumnSelector/index.ts: -------------------------------------------------------------------------------- 1 | export * from './ColumnSelector'; 2 | -------------------------------------------------------------------------------- /packages/ui/src/ui/components/common/Datepicker/Calendar/Calendar.scss: -------------------------------------------------------------------------------- 1 | .yc-datepicker-calendar { 2 | flex: 1 1 auto; 3 | overflow-y: auto; 4 | } 5 | -------------------------------------------------------------------------------- /packages/ui/src/ui/components/common/Datepicker/i18n/index.ts: -------------------------------------------------------------------------------- 1 | import {I18N} from '@gravity-ui/i18n'; 2 | import en from './en.json'; 3 | 4 | const i18n = new I18N(); 5 | 6 | i18n.setLang('en'); 7 | 8 | const COMPONENT = 'yc-datepicker'; 9 | 10 | i18n.registerKeyset('en', COMPONENT, en); 11 | 12 | export default i18n.keyset(COMPONENT); 13 | -------------------------------------------------------------------------------- /packages/ui/src/ui/components/common/Datepicker/index.tsx: -------------------------------------------------------------------------------- 1 | import React, {FC} from 'react'; 2 | import {Datepicker, DatepickerProps, datepickerDefaultProps} from './Datepicker'; 3 | 4 | export * from './Datepicker'; 5 | 6 | export const DatePickerWrapper: FC = (props) => ; 7 | DatePickerWrapper.defaultProps = datepickerDefaultProps; 8 | -------------------------------------------------------------------------------- /packages/ui/src/ui/components/common/Datepicker/readme.md: -------------------------------------------------------------------------------- 1 | TODO: replace the component with component from uikit 2 | -------------------------------------------------------------------------------- /packages/ui/src/ui/components/common/FieldWrapper/index.ts: -------------------------------------------------------------------------------- 1 | export * from './FieldWrapper'; 2 | -------------------------------------------------------------------------------- /packages/ui/src/ui/components/common/README.md: -------------------------------------------------------------------------------- 1 | All the components from this directory should be replaced with corresponding components from uikit 2 | -------------------------------------------------------------------------------- /packages/ui/src/ui/components/common/RangeInputPicker/index.ts: -------------------------------------------------------------------------------- 1 | export * from './RangeInputPicker'; 2 | -------------------------------------------------------------------------------- /packages/ui/src/ui/components/common/Timeline/Timeline.scss: -------------------------------------------------------------------------------- 1 | :root { 2 | --yc-timeline-line-margin: 5px; 3 | } 4 | 5 | .yc-timeline { 6 | display: flex; 7 | 8 | .yc-timeline-picker { 9 | margin-bottom: var(--yc-timeline-line-margin); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /packages/ui/src/ui/components/common/Timeline/i18n/en.json: -------------------------------------------------------------------------------- 1 | { 2 | "label_now": "Now", 3 | "label_custom": "Custom", 4 | "label_shortcut-list": "Show chart in" 5 | } 6 | -------------------------------------------------------------------------------- /packages/ui/src/ui/components/common/Timeline/i18n/index.ts: -------------------------------------------------------------------------------- 1 | import {I18N} from '@gravity-ui/i18n'; 2 | import en from './en.json'; 3 | 4 | const COMPONENT = 'timeline'; 5 | 6 | const i18n = new I18N(); 7 | i18n.setLang('en'); 8 | 9 | i18n.registerKeyset('en', COMPONENT, en); 10 | 11 | export default i18n.keyset(COMPONENT); 12 | -------------------------------------------------------------------------------- /packages/ui/src/ui/components/common/YTTimeline.scss: -------------------------------------------------------------------------------- 1 | .yt-timeline { 2 | display: flex; 3 | align-items: center; 4 | 5 | &__picker { 6 | flex-shrink: 0; 7 | } 8 | 9 | &__ruler { 10 | flex-grow: 1; 11 | flex-shrink: 0; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/ui/src/ui/components/templates/operations.js: -------------------------------------------------------------------------------- 1 | import './operations/specification'; 2 | import './operations/events'; 3 | import './operations/resources'; 4 | -------------------------------------------------------------------------------- /packages/ui/src/ui/components/templates/templates.js: -------------------------------------------------------------------------------- 1 | import templates from './utils.js'; 2 | import './components'; 3 | import './operations'; 4 | import './system'; 5 | import './cluster-menu'; 6 | 7 | export default templates; 8 | -------------------------------------------------------------------------------- /packages/ui/src/ui/components/templates/utils.scss: -------------------------------------------------------------------------------- 1 | .elements-column { 2 | &_type { 3 | &_id { 4 | display: inline-flex; 5 | align-items: center; 6 | max-width: 100%; 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /packages/ui/src/ui/constants/components/main.ts: -------------------------------------------------------------------------------- 1 | export const Tab = { 2 | NODES: 'nodes', 3 | HTTP_PROXIES: 'http_proxies', 4 | RPC_PROXIES: 'rpc_proxies', 5 | VERSIONS: 'versions', 6 | SHARDS: 'shards', 7 | } as const; 8 | 9 | export const DEFAULT_TAB = Tab.VERSIONS; 10 | -------------------------------------------------------------------------------- /packages/ui/src/ui/constants/components/node-maintenance-modal.ts: -------------------------------------------------------------------------------- 1 | export const NODE_MAINTENANCE_PARTIAL = 'NODE_MAINTENANCE_PARTIAL'; 2 | export const NODE_MAINTENANCE_RESET = 'NODE_MAINTENANCE_RESET'; 3 | -------------------------------------------------------------------------------- /packages/ui/src/ui/constants/components/nodes/memory.ts: -------------------------------------------------------------------------------- 1 | export const NODE_MEMORY_LOAD_REQUEST = 'NODE_MEMORY_LOAD_REQUEST'; 2 | export const NODE_MEMORY_LOAD_SUCCESS = 'NODE_MEMORY_LOAD_SUCCESS'; 3 | export const NODE_MEMORY_LOAD_FAILURE = 'NODE_MEMORY_LOAD_FAILURE'; 4 | 5 | export const NODE_MEMORY_PARTIAL = 'NODE_MEMORY_PARTIAL'; 6 | -------------------------------------------------------------------------------- /packages/ui/src/ui/constants/dashboard/index.js: -------------------------------------------------------------------------------- 1 | import {createPrefix} from '../utils'; 2 | 3 | const DASHBOARD_PREFIX = createPrefix('DASHBOARD'); 4 | 5 | export const CHANGE_ACTIVE_TAB = DASHBOARD_PREFIX + 'CHANGE_ACTIVE_TAB'; 6 | 7 | export const LinksTab = { 8 | LAST_VISITED: 'lastVisited', 9 | POPULAR: 'popular', 10 | FAVOURITES: 'favourites', 11 | }; 12 | -------------------------------------------------------------------------------- /packages/ui/src/ui/constants/empty.ts: -------------------------------------------------------------------------------- 1 | export const EMPTY_ARRAY = []; 2 | export const EMPTY_OBJECT = {}; 3 | export const EMPTY_MAP = new Map(); 4 | export const EMPTY_SET = new Set(); 5 | -------------------------------------------------------------------------------- /packages/ui/src/ui/constants/execute-batch.ts: -------------------------------------------------------------------------------- 1 | export const EXECUTE_BATCH_RETRY_SHOW_MODAL = 'EXECUTE_BATCH_RETRY_SHOW_MODAL'; 2 | export const EXECUTE_BATCH_RETRY_HIDE_MODAL = 'EXECUTE_BATCH_RETRY_HIDE_MODAL'; 3 | -------------------------------------------------------------------------------- /packages/ui/src/ui/constants/manage-tokens.ts: -------------------------------------------------------------------------------- 1 | import createActionTypes from './utils'; 2 | 3 | export const MANAGE_TOKENS_LIST = createActionTypes('MANAGE_TOKENS_LIST'); 4 | export const MANAGE_TOKENS_MODALS_OPEN = 'MANAGE_TOKENS_MODALS_OPEN'; 5 | export const MANAGE_TOKENS_MODALS_CLOSE = 'MANAGE_TOKENS_MODALS_CLOSE'; 6 | -------------------------------------------------------------------------------- /packages/ui/src/ui/constants/modals/attributes-modal.js: -------------------------------------------------------------------------------- 1 | import createActionTypes, {createPrefix} from '../utils'; 2 | 3 | const PREFIX = createPrefix('GLOBAL'); 4 | 5 | export const LOAD_ATTRIBUTES = createActionTypes(PREFIX + 'LOAD_ATTRIBUTES'); 6 | export const OPEN_ATTRIBUTES_MODAL = PREFIX + 'OPEN_ATTRIBUTES_MODAL'; 7 | export const CLOSE_ATTRIBUTES_MODAL = PREFIX + 'CLOSE_ATTRIBUTES_MODAL'; 8 | -------------------------------------------------------------------------------- /packages/ui/src/ui/constants/modals/cell-preview.ts: -------------------------------------------------------------------------------- 1 | import createActionTypes from '../utils'; 2 | 3 | export const PREVIEW_LIMIT = 16 * 1024 * 1024; // 16MiB; 4 | 5 | export const CELL_PREVIEW = createActionTypes('CELL_PREVIEW'); 6 | -------------------------------------------------------------------------------- /packages/ui/src/ui/constants/modals/errors.js: -------------------------------------------------------------------------------- 1 | export const SHOW_ERROR_MODAL = 'GLOBAL:SHOW_ERROR_MODAL'; 2 | export const HIDE_ERROR_MODAL = 'GLOBAL:HIDE_ERROR_MODAL'; 3 | -------------------------------------------------------------------------------- /packages/ui/src/ui/constants/monaco.ts: -------------------------------------------------------------------------------- 1 | export const enum MonacoLanguage { 2 | YQL = 'yql', 3 | YTQL = 'yql_ansi', 4 | CHYT = 'clickhouse', 5 | SPYT = 's-expression', 6 | } 7 | -------------------------------------------------------------------------------- /packages/ui/src/ui/constants/navigation/content/file.js: -------------------------------------------------------------------------------- 1 | import createActionTypes, {createPrefix} from '../../utils'; 2 | import {Page} from '../../index'; 3 | import {Tab} from '../index'; 4 | 5 | const PREFIX = createPrefix(Page.NAVIGATION, Tab.CONTENT, 'FILE'); 6 | 7 | export const LOAD_FILE = createActionTypes(PREFIX + 'LOAD_FILE'); 8 | export const MAX_FILE_SIZE = 5 * 16 * 1024; 9 | -------------------------------------------------------------------------------- /packages/ui/src/ui/constants/navigation/content/replicated-table.ts: -------------------------------------------------------------------------------- 1 | export const LOAD_REPLICAS_REQUEST = 'LOAD_REPLICAS_REQUEST'; 2 | export const LOAD_REPLICAS_SUCCESS = 'LOAD_REPLICAS_SUCCESS'; 3 | export const LOAD_REPLICAS_FAILURE = 'LOAD_REPLICAS_FAILURE'; 4 | export const LOAD_REPLICAS_CANCELLED = 'LOAD_REPLICAS_CANCELLED'; 5 | -------------------------------------------------------------------------------- /packages/ui/src/ui/constants/navigation/content/transaction.js: -------------------------------------------------------------------------------- 1 | import createActionTypes, {createPrefix} from '../../utils'; 2 | import {Page} from '../../index'; 3 | import {Tab} from '../index'; 4 | 5 | const PREFIX = createPrefix(Page.NAVIGATION, Tab.CONTENT, 'TRANSACTION'); 6 | 7 | export const ABORT_TRANSACTION = createActionTypes(PREFIX + 'ABORT_TRANSACTION'); 8 | -------------------------------------------------------------------------------- /packages/ui/src/ui/constants/navigation/modals/dyn-tables-state-modal.ts: -------------------------------------------------------------------------------- 1 | export const DYN_TABLES_STATE_MODAL_PARTIAL = 'DYN_TABLES_STATE_MODAL_PARTIAL'; 2 | -------------------------------------------------------------------------------- /packages/ui/src/ui/constants/navigation/modals/index.ts: -------------------------------------------------------------------------------- 1 | export const LINK_TO_MODAL_PARTIAL = 'LINK_TO_MODAL_PARTIAL'; 2 | export const REMOTE_COPY_MODAL_PARTIAL = 'REMOTE_COPY_MODAL_PARTIAL'; 3 | 4 | export const CREATE_ACO_MODAL = 'CREATE_ACO_MODAL'; 5 | -------------------------------------------------------------------------------- /packages/ui/src/ui/constants/navigation/modals/table-erase-modal.ts: -------------------------------------------------------------------------------- 1 | export const TABLE_ERASE_MODAL_PARTIAL = 'TABLE_ERASE_MODAL_PARTIAL'; 2 | -------------------------------------------------------------------------------- /packages/ui/src/ui/constants/navigation/path-editor.js: -------------------------------------------------------------------------------- 1 | import createActionTypes, {createPrefix} from '../utils'; 2 | import {Page} from '../index'; 3 | 4 | const PREFIX = createPrefix(Page.NAVIGATION); 5 | 6 | export const FETCH_SUGGESTIONS = createActionTypes(PREFIX + 'FETCH_SUGGESTIONS'); 7 | -------------------------------------------------------------------------------- /packages/ui/src/ui/constants/navigation/tabs/schema.js: -------------------------------------------------------------------------------- 1 | import {createPrefix} from '../../utils'; 2 | import {Page} from '../../index'; 3 | import {Tab} from '../index'; 4 | 5 | const PREFIX = createPrefix(Page.NAVIGATION, Tab.SCHEMA); 6 | 7 | export const SCHEMA_UPDATE_FILTER = PREFIX + 'UPDATE_FILTER'; 8 | -------------------------------------------------------------------------------- /packages/ui/src/ui/constants/pagination.ts: -------------------------------------------------------------------------------- 1 | export const ROWS_PER_PAGE = 100; 2 | -------------------------------------------------------------------------------- /packages/ui/src/ui/constants/settings/table.ts: -------------------------------------------------------------------------------- 1 | export const TABLE_DEFAULTS = { 2 | rowsPerTablePage: 10, 3 | maximumTableStringSize: 1024, 4 | } as const; 5 | -------------------------------------------------------------------------------- /packages/ui/src/ui/constants/suggests.ts: -------------------------------------------------------------------------------- 1 | export const SUGGEST_TABLET_CELL_BUNDLES_REQUEST = 'SUGGEST_TABLET_CELL_BUNDLES_REQUEST'; 2 | export const SUGGEST_TABLET_CELL_BUNDLES_SUCCESS = 'SUGGEST_TABLET_CELL_BUNDLES_SUCCESS'; 3 | export const SUGGEST_TABLET_CELL_BUNDLES_ERROR = 'SUGGEST_TABLET_CELL_BUNDLES_ERROR'; 4 | -------------------------------------------------------------------------------- /packages/ui/src/ui/constants/system/masters.js: -------------------------------------------------------------------------------- 1 | export const VisibleHostType = { 2 | host: 'host', 3 | physicalHost: 'physicalHost', 4 | }; 5 | 6 | export const mastersRadioButtonItems = [ 7 | {value: VisibleHostType.host, text: 'Container'}, 8 | {value: VisibleHostType.physicalHost, text: 'Host'}, 9 | ]; 10 | -------------------------------------------------------------------------------- /packages/ui/src/ui/constants/system/schedulers.js: -------------------------------------------------------------------------------- 1 | import createActionTypes from '../../constants/utils'; 2 | 3 | export const FETCH_SCHEDULERS = createActionTypes('SCHEDULERS'); 4 | -------------------------------------------------------------------------------- /packages/ui/src/ui/constants/system/tabs.ts: -------------------------------------------------------------------------------- 1 | export const SystemTabs = { 2 | GENERAL: 'general', 3 | MONITORING: 'monitoring', 4 | }; 5 | -------------------------------------------------------------------------------- /packages/ui/src/ui/constants/tables.js: -------------------------------------------------------------------------------- 1 | import {createPrefix} from './utils'; 2 | 3 | const TABLES_PREFIX = createPrefix('TABLES'); 4 | 5 | export const TOGGLE_COLUMN_SORT_ORDER = TABLES_PREFIX + 'TOGGLE_COLUMN_SORT_ORDER'; 6 | 7 | export const CLUSTER_MENU_TABLE_ID = 'clusters'; 8 | export const SYSTEM_CHUNKS_TABLE_ID = 'system/chunks'; 9 | -------------------------------------------------------------------------------- /packages/ui/src/ui/containers/ACL/ApproversFilters/ApproversFilters.scss: -------------------------------------------------------------------------------- 1 | .approvers-filters { 2 | &__subject-filter { 3 | width: 250px; 4 | margin-right: 16px; 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /packages/ui/src/ui/containers/ACL/ObjectPermissionsFilters/ObjectPermissionsFilters.scss: -------------------------------------------------------------------------------- 1 | .object-permissions-filters { 2 | display: flex; 3 | 4 | &__filter { 5 | min-width: 250px; 6 | 7 | &:not(:last-child) { 8 | margin-right: 16px; 9 | } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /packages/ui/src/ui/containers/ACL/RoleActions.scss: -------------------------------------------------------------------------------- 1 | .yt-role-actions { 2 | &__button { 3 | margin-top: -4px; 4 | margin-bottom: -4px; 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /packages/ui/src/ui/containers/ACL/SubjectsControl/YTSubjectSuggest.scss: -------------------------------------------------------------------------------- 1 | .yt-subject-suggest { 2 | .yt-select { 3 | display: block; 4 | } 5 | 6 | .yt-select:not(:first-child) { 7 | margin-top: 1em; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /packages/ui/src/ui/containers/AppNavigation/AppNavigationComponent.scss: -------------------------------------------------------------------------------- 1 | .yt-app-navigation { 2 | &__user-icon { 3 | border-radius: 50%; 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /packages/ui/src/ui/containers/BanPage/lazy.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import withLazyLoading from '../../hocs/withLazyLoading'; 3 | 4 | export const BanPageLazy = withLazyLoading( 5 | React.lazy(() => import(/* webpackChunkName: "ban-page" */ './BanPage')), 6 | ); 7 | -------------------------------------------------------------------------------- /packages/ui/src/ui/containers/ClusterPageHeader/HeadSpacer.scss: -------------------------------------------------------------------------------- 1 | .yt-head-spacer { 2 | height: 24px; 3 | border-left: 1px solid var(--dark-divider); 4 | } 5 | -------------------------------------------------------------------------------- /packages/ui/src/ui/containers/ClusterPageHeader/HeadSpacer.tsx: -------------------------------------------------------------------------------- 1 | import React, {FC} from 'react'; 2 | import './HeadSpacer.scss'; 3 | import cn from 'bem-cn-lite'; 4 | 5 | const block = cn('yt-head-spacer'); 6 | 7 | export const HeadSpacer: FC = () => { 8 | return
; 9 | }; 10 | -------------------------------------------------------------------------------- /packages/ui/src/ui/containers/ClusterPageWrapper/lazy.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import withLazyLoading from '../../hocs/withLazyLoading'; 3 | 4 | export const ClusterPageWrapperLazy = withLazyLoading( 5 | React.lazy( 6 | async () => import(/* webpackChunkName: "cluster-page-wrapper" */ './ClusterPageWrapper'), 7 | ), 8 | ); 9 | -------------------------------------------------------------------------------- /packages/ui/src/ui/containers/ClustersMenu/ClusterMenuBody.scss: -------------------------------------------------------------------------------- 1 | @import '../ClusterPageHeader/ClusterColor.scss'; 2 | 3 | .cluster-menu { 4 | flex-grow: 1; 5 | 6 | &__item-image { 7 | @include cluster-styled; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /packages/ui/src/ui/containers/ClustersMenu/lazy.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import withLazyLoading from '../../hocs/withLazyLoading'; 3 | 4 | export const ClustersMenuLazy = withLazyLoading( 5 | React.lazy(async () => await import(/* webpackChunkName: "cluster-menu" */ './ClustersMenu')), 6 | ); 7 | -------------------------------------------------------------------------------- /packages/ui/src/ui/containers/ManageTokens/index.impl.tsx: -------------------------------------------------------------------------------- 1 | export {ManageTokensModalContent} from './ManageTokensModalContent/ManageTokensModalContent'; 2 | export {openManageTokensModal, closeManageTokensModal} from '../../store/actions/manage-tokens'; 3 | -------------------------------------------------------------------------------- /packages/ui/src/ui/containers/ManageTokens/index.tsx: -------------------------------------------------------------------------------- 1 | export function importManageTokens() { 2 | return import(/* webpackChunkName: "manage-tokens" */ './index.impl'); 3 | } 4 | 5 | export {ManageTokensModal} from './ManageTokensModal'; 6 | -------------------------------------------------------------------------------- /packages/ui/src/ui/containers/MaxContentWidth/index.tsx: -------------------------------------------------------------------------------- 1 | export * from './MaxContentWidth'; 2 | export * from './hooks'; 3 | -------------------------------------------------------------------------------- /packages/ui/src/ui/containers/RootPage/RootPage.scss: -------------------------------------------------------------------------------- 1 | .yt-root-page { 2 | &__content { 3 | flex-grow: 1; 4 | margin-top: var(--app-header-height); 5 | padding-top: 4px; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /packages/ui/src/ui/containers/SettingsPanel/SettingsPanel.scss: -------------------------------------------------------------------------------- 1 | .settings-panel { 2 | height: 100%; 3 | 4 | .nv-settings-menu__item { 5 | .link__inner { 6 | color: var(--primary-text); 7 | } 8 | 9 | &-icon { 10 | margin-top: 1px; 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/ui/src/ui/containers/YQLKitButton/YQLKitButton.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import UIFactory, {YQLButtonProps} from '../../UIFactory'; 3 | 4 | export function YQLKitButton(props: YQLButtonProps) { 5 | return {UIFactory.yqlWidgetSetup?.renderButton(props)}; 6 | } 7 | -------------------------------------------------------------------------------- /packages/ui/src/ui/global.d.ts: -------------------------------------------------------------------------------- 1 | declare module '*.svg' { 2 | const content: SVGIconData; 3 | 4 | export default content; 5 | } 6 | 7 | declare module 'redux-location-state/lib/stateToParams' { 8 | export const stateToParams: any; 9 | } 10 | -------------------------------------------------------------------------------- /packages/ui/src/ui/hooks/use-cluster.ts: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import {useLocation} from 'react-router'; 3 | 4 | export function useClusterFromLocation() { 5 | const {pathname} = useLocation(); 6 | const res = React.useMemo(() => { 7 | const [_first, cluster] = pathname.split('/'); 8 | return cluster; 9 | }, [pathname]); 10 | return res; 11 | } 12 | -------------------------------------------------------------------------------- /packages/ui/src/ui/hooks/use-scrollable-element.ts: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | 3 | export const ScrollableElementContext = React.createContext(undefined); 4 | 5 | export function useScrollableElementContenxt() { 6 | const value = React.useContext(ScrollableElementContext); 7 | return value; 8 | } 9 | -------------------------------------------------------------------------------- /packages/ui/src/ui/hooks/useAppSelector.ts: -------------------------------------------------------------------------------- 1 | import {TypedUseSelectorHook, useSelector} from 'react-redux'; 2 | import {StoreType} from '../store/store.main'; 3 | export const useAppSelector: TypedUseSelectorHook = useSelector; 4 | -------------------------------------------------------------------------------- /packages/ui/src/ui/legacy-styles/elements/attributes-modal/attributes-modal.scss: -------------------------------------------------------------------------------- 1 | @import '../globals'; 2 | 3 | .attributes-modal { 4 | width: 720px; 5 | 6 | .unipika { 7 | padding: 0; 8 | border: 0; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /packages/ui/src/ui/legacy-styles/elements/button/button.scss: -------------------------------------------------------------------------------- 1 | @import '../globals'; 2 | 3 | .elements-button { 4 | &_checked_yes { 5 | &:before { 6 | background: var(--radio-button-color) !important; 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /packages/ui/src/ui/legacy-styles/elements/confirmation/confirmation.scss: -------------------------------------------------------------------------------- 1 | @import '../globals'; 2 | 3 | .elements-confirmation { 4 | &__option { 5 | display: flex; 6 | 7 | &-message { 8 | margin: 0; 9 | 10 | flex: 0 0 60%; 11 | } 12 | 13 | &-control { 14 | flex: 0 0 40%; 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /packages/ui/src/ui/legacy-styles/elements/filter/filter.scss: -------------------------------------------------------------------------------- 1 | .elements-toolbar__component { 2 | .elements-filter { 3 | flex: 1 1 100%; 4 | } 5 | } 6 | 7 | .elements-filter { 8 | &_invalid { 9 | .textinput__box { 10 | border: 1px solid var(--danger-color) !important; 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/ui/src/ui/legacy-styles/elements/globals.scss: -------------------------------------------------------------------------------- 1 | $section-offset: 20px; 2 | $section-main-padding-horizontal-fullscreen: 10px; 3 | -------------------------------------------------------------------------------- /packages/ui/src/ui/legacy-styles/elements/island/island.scss: -------------------------------------------------------------------------------- 1 | @import '../globals'; 2 | 3 | .elements-island { 4 | background-color: var(--light-background); 5 | border: 1px solid var(--light-divider); 6 | border-radius: 3px; 7 | padding: 24px 20px 32px; 8 | } 9 | -------------------------------------------------------------------------------- /packages/ui/src/ui/legacy-styles/elements/monospace.scss: -------------------------------------------------------------------------------- 1 | @import 'globals'; 2 | 3 | .elements-monospace { 4 | font-family: var(--g-font-family-monospace); 5 | } 6 | -------------------------------------------------------------------------------- /packages/ui/src/ui/libs/monaco-yql-languages/fillers/monaco-editor-core.ts: -------------------------------------------------------------------------------- 1 | export * from 'monaco-editor/esm/vs/editor/editor.api'; 2 | -------------------------------------------------------------------------------- /packages/ui/src/ui/libs/monaco-yql-languages/monaco.contribution.ts: -------------------------------------------------------------------------------- 1 | import './clickhouse/clickhouse.contribution'; 2 | import './yql/yql.contribution'; 3 | import './yql_ansi/yql_ansi.contribution'; 4 | import './s-expressions/s-expressions.contribution'; 5 | import './themes/themes.contribution'; 6 | -------------------------------------------------------------------------------- /packages/ui/src/ui/packages/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "ignorePatterns": ["**/*.*"] 3 | } 4 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/accounts/AccountsSuggest.scss: -------------------------------------------------------------------------------- 1 | .accounts-suggest { 2 | &__error { 3 | padding-top: 4px; 4 | font-size: 13px; 5 | color: var(--g-color-text-danger); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/accounts/index.tsx: -------------------------------------------------------------------------------- 1 | export {default as Accounts} from './Accounts/Accounts'; 2 | export {default as AccountsTopRowContent} from './Accounts/AccountsTopRowContent'; 3 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/accounts/tabs/detailed-usage/DetailTableCell.scss: -------------------------------------------------------------------------------- 1 | .detail-table-cell { 2 | &__value { 3 | &_diff_plus { 4 | color: var(--danger-color); 5 | } 6 | &_diff_minus { 7 | color: var(--success-color); 8 | } 9 | } 10 | 11 | &__alert-icon { 12 | height: 14px; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/accounts/tabs/general/AccountAlerts.scss: -------------------------------------------------------------------------------- 1 | .yt-account-alerts { 2 | &__tooltip-title { 3 | font-weight: var(--yt-font-weight-bold); 4 | padding-bottom: 10px; 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/accounts/tabs/general/Editor/AccountCreateDialog.scss: -------------------------------------------------------------------------------- 1 | .account-create-dialog { 2 | &__name { 3 | *::placeholder { 4 | color: var(--g-color-text-hint) !important; 5 | } 6 | 7 | .textinput__box { 8 | border-width: 2px !important; 9 | } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/accounts/tabs/general/Editor/content/TabletsContent.scss: -------------------------------------------------------------------------------- 1 | .accounts-editor-tablets { 2 | &__warning { 3 | color: var(--warning-text); 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/chyt/ChytCliqueActions/ChytCliqueActions.scss: -------------------------------------------------------------------------------- 1 | .chyt-clique-actions { 2 | &__item { 3 | padding-right: 1ex; 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/chyt/ChytConfirmation/ChytConfirmation.scss: -------------------------------------------------------------------------------- 1 | .chyt-confirmation { 2 | &__start { 3 | .df-dialog { 4 | min-height: 148px; 5 | } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/chyt/ChytPageList/ChytPageListToolbar.scss: -------------------------------------------------------------------------------- 1 | .chyt-list-toolbar { 2 | &__name-filter { 3 | max-width: 300px; 4 | } 5 | 6 | &__select-filter { 7 | min-width: 150px; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/chyt/index.tsx: -------------------------------------------------------------------------------- 1 | export {default as ChytPage} from './ChytPage'; 2 | export {default as ChytPageTopRow} from './ChytPageTopRow'; 3 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/components/Components/Component.scss: -------------------------------------------------------------------------------- 1 | .components { 2 | margin-bottom: 30px; 3 | 4 | &__heading { 5 | margin-bottom: 20px; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/components/Components/index.tsx: -------------------------------------------------------------------------------- 1 | export {default as Components} from './Components'; 2 | export {default as ComponentsTopRow} from './ComponentsTopRowContent'; 3 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/components/GroupSuggest/GroupSuggest.scss: -------------------------------------------------------------------------------- 1 | .group-suggest { 2 | width: 100%; 3 | } 4 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/components/NodeMaintenanceModal/NodeMaintenanceModal.scss: -------------------------------------------------------------------------------- 1 | .node-maintenance-modal { 2 | &__limit-default { 3 | max-width: 15ex; 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/components/SwitchLeaderShortInfo/SwitchLeaderShortInfo.scss: -------------------------------------------------------------------------------- 1 | .switch-leader-short-info { 2 | &__state { 3 | text-transform: capitalize; 4 | 5 | &_state_complete { 6 | color: var(--success-color); 7 | } 8 | } 9 | 10 | &__value { 11 | text-transform: capitalize; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/components/tabs/Proxies/__mocks__/Proxies.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | 3 | export default function Proxies() { 4 | return
; 5 | } 6 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/components/tabs/Shards/__mocks__/Shards.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | 3 | export default function Shards() { 4 | return
; 5 | } 6 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/components/tabs/Versions/VersionCell.scss: -------------------------------------------------------------------------------- 1 | .version-cell { 2 | &__tooltip { 3 | display: inline; 4 | } 5 | 6 | &__text { 7 | font-family: var(--yt-font-family-monospace); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/components/tabs/Versions/__mocks__/Versions.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | 3 | export default function Versions() { 4 | return
; 5 | } 6 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/components/tabs/Versions/__mocks__/VersionsV2.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | 3 | export default function Versions() { 4 | return
; 5 | } 6 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/components/tabs/node/NodeAlerts/NodeAlerts.scss: -------------------------------------------------------------------------------- 1 | .yt-node-alerts { 2 | &__item { 3 | margin-bottom: 10px; 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/components/tabs/node/NodeMemoryUsage/NodeMemoryUsageToolbar.scss: -------------------------------------------------------------------------------- 1 | .node-memory-usage-toolbar { 2 | display: flex; 3 | 4 | &__filter { 5 | width: 80ex; 6 | padding-right: 20px; 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/components/tabs/node/NodePage.scss: -------------------------------------------------------------------------------- 1 | .node-page { 2 | &__host { 3 | display: flex; 4 | align-items: center; 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/components/tabs/node/NodeUnrecognizedOptions/NodeUnrecognizedOptions.scss: -------------------------------------------------------------------------------- 1 | .node-unrecognized-options { 2 | &__yson { 3 | margin-top: -10px; 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/components/tabs/nodes/Nodes/__mocks__/Nodes.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | 3 | export default function Nodes() { 4 | return
; 5 | } 6 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/components/tabs/nodes/SetupModal/TagsFilter/TagsFilter.scss: -------------------------------------------------------------------------------- 1 | .tags-filter { 2 | display: flex; 3 | 4 | &__control { 5 | flex-grow: 1; 6 | max-width: 370px; 7 | } 8 | 9 | &__icon { 10 | height: unset; 11 | margin-right: 2px; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/components/tabs/nodes/tables.scss: -------------------------------------------------------------------------------- 1 | .components-nodes-templates { 2 | &__tags-container { 3 | display: flex; 4 | align-items: center; 5 | flex-wrap: wrap; 6 | &_inline { 7 | display: inline-flex; 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/dashboard/Dashboard/DashboardTopRowContent.scss: -------------------------------------------------------------------------------- 1 | .dashboard-top-row-content { 2 | text-align: right; 3 | flex-grow: 1; 4 | } 5 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/dashboard/index.tsx: -------------------------------------------------------------------------------- 1 | export {default as Dashboard} from './Dashboard/Dashboard'; 2 | export {default as DashboardTopRow} from './Dashboard/DashboardTopRowContent'; 3 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/groups/GroupEditorDialog/GroupEditorDialog.scss: -------------------------------------------------------------------------------- 1 | .group-editor-dialog { 2 | .df-tab-field-vertical { 3 | min-height: 400px; 4 | } 5 | 6 | &__list-title { 7 | color: var(--secondary-text); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/groups/index.tsx: -------------------------------------------------------------------------------- 1 | export {default as GroupsPage} from './GroupsPage'; 2 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/job/JobActions/JobActions.scss: -------------------------------------------------------------------------------- 1 | .job-actions { 2 | display: flex; 3 | align-items: center; 4 | 5 | &__action { 6 | margin-right: 12px; 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/job/JobDetails/JobDetails.scss: -------------------------------------------------------------------------------- 1 | .job-detail { 2 | &__content { 3 | &_loading { 4 | height: 200px; 5 | display: flex; 6 | align-items: center; 7 | justify-content: center; 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/job/lazy.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import withLazyLoading from '../../hocs/withLazyLoading'; 3 | 4 | export const JobLazy = withLazyLoading( 5 | React.lazy(async () => import(/* webpackChunkName: "job" */ './Job')), 6 | ); 7 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/job/tabs/Statistics/Statistics.scss: -------------------------------------------------------------------------------- 1 | .yt-job-statistics { 2 | margin-bottom: 50px; 3 | } 4 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/navigation/Navigation/ContentViewer/helpers/index.ts: -------------------------------------------------------------------------------- 1 | export {default as getComponentByContentType} from './getComponentByContentType'; 2 | export {default as getComponentByMode} from './getComponentByMode'; 3 | export {checkContentIsSupported, itemNavigationAllowed} from './checkContentIsSupported'; 4 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/navigation/Navigation/NavigationError/RequestPermission/RequestPermission.scss: -------------------------------------------------------------------------------- 1 | .request-permission { 2 | &__request-permissions-button { 3 | --_--height: auto; 4 | width: fit-content; 5 | 6 | padding: 5px 12px; 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/navigation/Navigation/NavigationError/RequestPermission/index.ts: -------------------------------------------------------------------------------- 1 | export {RequestPermission} from './RequestPermission'; 2 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/navigation/Navigation/NavigationError/helpers/index.ts: -------------------------------------------------------------------------------- 1 | export * from './helpers'; 2 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/navigation/Navigation/NavigationError/index.ts: -------------------------------------------------------------------------------- 1 | export {NavigationError} from './NavigationError'; 2 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/navigation/Navigation/NavigationPermissionsNotice.scss: -------------------------------------------------------------------------------- 1 | .navigation-permissions-notice { 2 | &__path, 3 | &__use { 4 | color: var(--secondary-text); 5 | font-weight: var(--yt-font-weight-bold); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/navigation/NavigationDescription/NavigationDescription.scss: -------------------------------------------------------------------------------- 1 | @import '../../../styles/common.scss'; 2 | 3 | .error-description { 4 | margin-top: 20px; 5 | } 6 | 7 | .navigation-description { 8 | &__collapsible { 9 | margin-top: unset; 10 | } 11 | 12 | &__edit-block { 13 | height: 300px; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/navigation/content/Document/Document.scss: -------------------------------------------------------------------------------- 1 | .navigation-document { 2 | padding-top: 10px; 3 | 4 | &_loading { 5 | height: 200px; 6 | display: flex; 7 | align-items: center; 8 | justify-content: center; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/navigation/content/Document/DocumentBody.scss: -------------------------------------------------------------------------------- 1 | .yt-document-body { 2 | &__yql { 3 | margin-right: 10px; 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/navigation/content/Document/DocumentEditModal.scss: -------------------------------------------------------------------------------- 1 | .document-edit-modal { 2 | width: 95vw; 3 | 4 | &__editor { 5 | height: calc(90vh - 150px); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/navigation/content/MapNode/MultipleActions.scss: -------------------------------------------------------------------------------- 1 | .multiple-actions { 2 | display: inline-flex; 3 | align-items: center; 4 | flex-wrap: nowrap; 5 | 6 | &__item { 7 | padding-left: 20px; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/navigation/content/ReplicatedTable/ReplicatedTableSettings.scss: -------------------------------------------------------------------------------- 1 | .replicated-table-settings { 2 | &__error { 3 | margin: 0 -33px; 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/navigation/content/Table/RemountAlert/RemountAlert.scss: -------------------------------------------------------------------------------- 1 | .remount-alert { 2 | &__button { 3 | width: fit-content; 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/navigation/content/Table/TableMeta/RowsCount/RowsCount.scss: -------------------------------------------------------------------------------- 1 | .rows-count { 2 | &__question { 3 | color: var(--secondary-text); 4 | padding: 0 1ex; 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/navigation/content/Table/TableMeta/TableMeta.scss: -------------------------------------------------------------------------------- 1 | .navigation-meta-table { 2 | justify-content: space-between; 3 | 4 | &__question { 5 | color: var(--secondary-text); 6 | padding: 0 1ex; 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/navigation/content/Table/TableOverview/EditTableAction.scss: -------------------------------------------------------------------------------- 1 | .edit-table-actions { 2 | &__button { 3 | margin-left: 10px; 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/navigation/content/Table/TableOverview/TableColumnsPresetNotice.scss: -------------------------------------------------------------------------------- 1 | .table-columns-preset-notice { 2 | display: inline-block; 3 | padding-bottom: 10px; 4 | 5 | &__column { 6 | display: inline-block; 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/navigation/helpers/pathToFileName.ts: -------------------------------------------------------------------------------- 1 | export const pathToFileName = (path: string) => { 2 | return path.replace(/\/+/g, '_'); 3 | }; 4 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/navigation/index.tsx: -------------------------------------------------------------------------------- 1 | export {default as Navigation} from './Navigation/Navigation'; 2 | export {default as NavigationTopRow} from './Navigation/NavigationTopRowContent'; 3 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/navigation/modals/DynTablesStateModal.scss: -------------------------------------------------------------------------------- 1 | .dyn-tables-state-modal { 2 | &__path-list { 3 | max-height: 50vh; 4 | overflow: auto; 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/navigation/modals/TableMergeSortModal/TableChunkSize.scss: -------------------------------------------------------------------------------- 1 | .table-chunk-size { 2 | &__pretty { 3 | color: var(--secondary-text); 4 | height: 0px; 5 | font-size: 13px; 6 | padding-left: 8px; 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/navigation/modals/TableMergeSortModal/TableSortModal.scss: -------------------------------------------------------------------------------- 1 | .table-sort-modal { 2 | ::placeholder { 3 | color: var(--g-color-text-hint) !important; 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/navigation/tabs/Attributes/Attributes.scss: -------------------------------------------------------------------------------- 1 | .yt-attributes { 2 | &_loading { 3 | height: 200px; 4 | display: flex; 5 | align-items: center; 6 | justify-content: center; 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/navigation/tabs/Consumer/Toolbar/Toolbar.scss: -------------------------------------------------------------------------------- 1 | .consumer-toolbar { 2 | display: flex; 3 | margin: 10px 0; 4 | gap: 2ex; 5 | } 6 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/navigation/tabs/Consumer/views/Partitions/Partitions.scss: -------------------------------------------------------------------------------- 1 | .consumer-partitions { 2 | &__table-row { 3 | --data-table-cell-align: baseline; 4 | } 5 | 6 | &__error { 7 | margin-top: -4px; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/navigation/tabs/Consumer/views/Partitions/PartitionsExtraControls.scss: -------------------------------------------------------------------------------- 1 | .consumer-partitions { 2 | &__filter { 3 | width: 15%; 4 | max-width: 30ex; 5 | } 6 | 7 | &__divider { 8 | border-left: 1px solid var(--dark-divider); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/navigation/tabs/Flow/PipelineSpec/PipelineSpec.scss: -------------------------------------------------------------------------------- 1 | .yt-pipeline-spec { 2 | &__editor { 3 | min-height: 50vh; 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/navigation/tabs/Queue/Meta/Meta.scss: -------------------------------------------------------------------------------- 1 | .queue-meta { 2 | align-items: baseline; 3 | 4 | .meta-table__group { 5 | align-items: baseline; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/navigation/tabs/Queue/Toolbar/Toolbar.scss: -------------------------------------------------------------------------------- 1 | .queue-toolbar { 2 | display: flex; 3 | margin: 2ex 0; 4 | gap: 2ex; 5 | } 6 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/navigation/tabs/Queue/views/Consumers/Consumers.scss: -------------------------------------------------------------------------------- 1 | .queue-consumers { 2 | &__table-row { 3 | --data-table-cell-align: baseline; 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/navigation/tabs/Queue/views/Consumers/ConsumersExtraControls.scss: -------------------------------------------------------------------------------- 1 | .queue-consumers { 2 | &__filter { 3 | width: 15%; 4 | max-width: 30ex; 5 | } 6 | 7 | &__divider { 8 | border-left: 1px solid var(--dark-divider); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/navigation/tabs/Queue/views/Partitions/PartitionsExtraControls.scss: -------------------------------------------------------------------------------- 1 | .queue-partitions { 2 | &__filter { 3 | width: 15%; 4 | max-width: 30ex; 5 | } 6 | 7 | &__divider { 8 | border-left: 1px solid var(--dark-divider); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/navigation/tabs/TabletErrors/TabletErrorsByPath/TabletErrorsByPath.scss: -------------------------------------------------------------------------------- 1 | .yt-tablet-errors-by-path { 2 | &__toolbar { 3 | padding-top: 10px; 4 | } 5 | 6 | &__tablet-id-filter { 7 | min-width: 300px; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/navigation/tabs/TabletErrors/TabletErrorsByPath/TabletErrorsByPathTable.scss: -------------------------------------------------------------------------------- 1 | @import '../../../../../styles/mixins.scss'; 2 | 3 | .yt-tablet-errors-by-path-table { 4 | &__cell-error-msg { 5 | @include ellipsis(); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/navigation/tabs/UserAttributes/UserAttributes.scss: -------------------------------------------------------------------------------- 1 | .navigation-user-attributes { 2 | &_loading { 3 | height: 200px; 4 | display: flex; 5 | align-items: center; 6 | justify-content: center; 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/odin/_reducers/index.ts: -------------------------------------------------------------------------------- 1 | import {combineReducers} from 'redux'; 2 | import details from './odin-details'; 3 | import overview from './odin-overview'; 4 | 5 | const odin = combineReducers({details, overview}); 6 | 7 | export type OdinRootState = {odin: ReturnType}; 8 | 9 | export default {odin}; 10 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/odin/controls/OdinTopRowContent.scss: -------------------------------------------------------------------------------- 1 | .odin-top-row-content { 2 | &__create-notification { 3 | text-align: right; 4 | flex-grow: 1; 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/odin/index.tsx: -------------------------------------------------------------------------------- 1 | export {default as Odin, IndependentOdin} from './controls/Odin'; 2 | export {default as OdinTopRow} from './controls/OdinTopRowContent'; 3 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/operations/OperationDetail/ExperimentAssignments/ExperimentAssignments.scss: -------------------------------------------------------------------------------- 1 | .experiment-assignments { 2 | 3 | } 4 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/operations/OperationDetail/tabs/Jobs/OperationJobsErrors/OperationJobsErrors.scss: -------------------------------------------------------------------------------- 1 | .operation-jobs-errors { 2 | margin-bottom: 10px; 3 | } 4 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/operations/OperationDetail/tabs/Jobs/OperationJobsTable/StatusInfo.scss: -------------------------------------------------------------------------------- 1 | .yt-job-status-info { 2 | &__popup { 3 | padding: 10px; 4 | max-width: 400px; 5 | display: flex; 6 | gap: 5px; 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/operations/OperationDetail/tabs/Jobs/OperationJobsToolbar/JobsOperationsIncarnationsFilter.scss: -------------------------------------------------------------------------------- 1 | .yt-jobs-incarnation-filter { 2 | &__popup { 3 | min-width: 300px; 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/operations/OperationDetail/tabs/partition-sizes/PartitionSizes/PartitionSizes.scss: -------------------------------------------------------------------------------- 1 | .operation-detail-partition-sizes { 2 | margin-top: 40px; 3 | 4 | .chartkit { 5 | height: 400px; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/operations/OperationDetail/tabs/specification/Specification.scss: -------------------------------------------------------------------------------- 1 | .operation-specification { 2 | position: relative; 3 | 4 | &__help { 5 | margin: 0; 6 | 7 | position: absolute; 8 | top: 20px; 9 | right: 0; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/operations/OperationDetail/tabs/statistics/Statistics.scss: -------------------------------------------------------------------------------- 1 | .operation-statistics { 2 | margin-bottom: 50px; 3 | 4 | &__group-icon, 5 | &__group-icon-toggler, 6 | &__metric-icon { 7 | margin-right: 10px; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/operations/lazy.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import withLazyLoading from '../../hocs/withLazyLoading'; 3 | 4 | export const OperationsLazy = withLazyLoading( 5 | React.lazy(async () => import(/* webpackChunkName: "operations" */ './Operations/Operations')), 6 | ); 7 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/path-viewer/lazy.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import withLazyLoading from '../../hocs/withLazyLoading'; 3 | 4 | export const PathViewerLazy = withLazyLoading( 5 | React.lazy(async () => await import(/* webpackChunkName: "path-viewer" */ './PathViewer')), 6 | ); 7 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/query-tracker/FileEditor/index.ts: -------------------------------------------------------------------------------- 1 | export {FileEditor} from './FileEditor'; 2 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/query-tracker/Navigation/ClusterList/ClusterList.scss: -------------------------------------------------------------------------------- 1 | .navigation-cluster-list { 2 | &__item { 3 | border-radius: 0; 4 | 5 | &_active, &:hover { 6 | background-color: var(--g-color-base-simple-hover-solid); 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/query-tracker/Navigation/ClusterList/index.ts: -------------------------------------------------------------------------------- 1 | export {ClusterList} from './ClusterList'; 2 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/query-tracker/Navigation/ItemsList.scss: -------------------------------------------------------------------------------- 1 | .yt-qt-navigation-items-list { 2 | &__header { 3 | width: 100%; 4 | } 5 | 6 | &__row td { 7 | padding: 0 !important; 8 | } 9 | 10 | .data-table__head-cell { 11 | width: 100%; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/query-tracker/Navigation/Navigation.scss: -------------------------------------------------------------------------------- 1 | .query-navigation { 2 | display: flex; 3 | flex-direction: column; 4 | height: 100%; 5 | width: 100%; 6 | padding: 10px 0; 7 | } 8 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/query-tracker/Navigation/NavigationBody/LoadingPlaceholder.tsx: -------------------------------------------------------------------------------- 1 | import React, {FC} from 'react'; 2 | import {Flex, Loader} from '@gravity-ui/uikit'; 3 | 4 | export const LoadingPlaceholder: FC = () => { 5 | return ( 6 | 7 | 8 | 9 | ); 10 | }; 11 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/query-tracker/Navigation/NavigationBody/NavigationEmpty.scss: -------------------------------------------------------------------------------- 1 | .navigation-empty { 2 | display: flex; 3 | flex-direction: column; 4 | justify-content: center; 5 | align-items: center; 6 | height: 100%; 7 | width: 100%; 8 | } 9 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/query-tracker/Navigation/NavigationBody/NavigationError.scss: -------------------------------------------------------------------------------- 1 | .yt-qt-navigation-error { 2 | padding: 20px; 3 | word-break: break-word; 4 | } 5 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/query-tracker/Navigation/NavigationBody/index.ts: -------------------------------------------------------------------------------- 1 | export {NavigationBody} from './NavigationBody'; 2 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/query-tracker/Navigation/NavigationHeader/HeaderActions.scss: -------------------------------------------------------------------------------- 1 | .navigation-header-actions { 2 | display: flex; 3 | gap: 0 4px; 4 | } 5 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/query-tracker/Navigation/NavigationHeader/index.ts: -------------------------------------------------------------------------------- 1 | export {NavigationHeader} from './NavigationHeader'; 2 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/query-tracker/Navigation/NavigationTable/PreviewTab.scss: -------------------------------------------------------------------------------- 1 | .navigation-preview-tab { 2 | pre { 3 | margin: 0; 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/query-tracker/Navigation/NavigationTable/index.ts: -------------------------------------------------------------------------------- 1 | export {NavigationTable} from './NavigationTable'; 2 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/query-tracker/Navigation/NodeList/TableWithSorting.scss: -------------------------------------------------------------------------------- 1 | .table-with-sorting { 2 | & > table { 3 | width: 100%; 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/query-tracker/Navigation/NodeList/index.ts: -------------------------------------------------------------------------------- 1 | export {NodeList} from './NodeList'; 2 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/query-tracker/NewQueryButton/index.ts: -------------------------------------------------------------------------------- 1 | export {NewQueryButton} from './NewQueryButton'; 2 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/query-tracker/Plan/GraphEditor/DetailBlock/JobItem.scss: -------------------------------------------------------------------------------- 1 | .yt-operation-job-item { 2 | display: flex; 3 | align-items: center; 4 | gap: 0 4px; 5 | 6 | &__block { 7 | height: 10px; 8 | width: 10px; 9 | border-radius: 2px; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/query-tracker/Plan/GraphEditor/DetailBlock/index.ts: -------------------------------------------------------------------------------- 1 | export {DetailBlock} from './DetailBlock'; 2 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/query-tracker/Plan/GraphEditor/index.ts: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import withLazyLoading from '../../../../hocs/withLazyLoading'; 3 | 4 | export const QueriesGraphLazy = withLazyLoading( 5 | React.lazy(() => import(/* webpackChunkName: "yt-queries-graph" */ './QueriesGraph')), 6 | ); 7 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/query-tracker/Plan/components/List/index.ts: -------------------------------------------------------------------------------- 1 | export {VirtualList as List} from './VirtualList'; 2 | export type {VirtualListProps as ListProps, ListInstance} from './VirtualList'; 3 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/query-tracker/Plan/components/Table/index.ts: -------------------------------------------------------------------------------- 1 | export {default as Table} from './Table'; 2 | 3 | export type {ColumnType, SortOrder, SortOrderShape, Align, DataTableProps} from './types'; 4 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/query-tracker/Plan/models/shared/index.ts: -------------------------------------------------------------------------------- 1 | export * as yqlModel from './yql'; 2 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/query-tracker/Plan/models/shared/yql/index.ts: -------------------------------------------------------------------------------- 1 | export * as value from './data-type'; 2 | export * from './operation'; 3 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/query-tracker/Plan/models/yql/index.ts: -------------------------------------------------------------------------------- 1 | export type {definitions as YQLAPIDefinitions} from './yql'; 2 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/query-tracker/Plan/styles/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/src/ui/pages/query-tracker/Plan/styles/index.ts -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/query-tracker/QueryACO/QueryACOSelect/QueryACOSelect.scss: -------------------------------------------------------------------------------- 1 | .query-aco-select { 2 | min-width: 210px; 3 | } 4 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/query-tracker/QueryEditor/ResultView.scss: -------------------------------------------------------------------------------- 1 | .yt-qt-result-view { 2 | flex: 1; 3 | 4 | &__results-toolbar-buttons { 5 | margin-right: 8px; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/query-tracker/QueryEditor/helpers/getHashLineNumber.ts: -------------------------------------------------------------------------------- 1 | export const getHashLineNumber = (): number | null => { 2 | const {hash} = window.location; 3 | if (!hash.startsWith('#L')) return null; 4 | 5 | const lineNumber = parseInt(hash.replace(/[^0-9]/g, ''), 10); 6 | return isNaN(lineNumber) ? null : lineNumber; 7 | }; 8 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/query-tracker/QueryEditor/index.ts: -------------------------------------------------------------------------------- 1 | export {QueryEditor} from './QueryEditor'; 2 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/query-tracker/QueryEngineSelector/index.ts: -------------------------------------------------------------------------------- 1 | export {QueryEngineSelector} from './QueryEngineSelector'; 2 | export {QueryEngineSelect} from './QueryEngineSelect'; 3 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/query-tracker/QueryFilesButton/FilesAddForm.scss: -------------------------------------------------------------------------------- 1 | .files-add-form { 2 | &__buttons { 3 | display: flex; 4 | gap: 0 20px; 5 | margin-top: 12px; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/query-tracker/QueryFilesButton/FilesTabs.scss: -------------------------------------------------------------------------------- 1 | .files-tabs { 2 | &__list { 3 | margin-top: 12px; 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/query-tracker/QueryResults/ErrorTree/helpers/isInfoNode.ts: -------------------------------------------------------------------------------- 1 | import {QueryError} from '../../../module/api'; 2 | 3 | const INFO_NODE_SEVERITY = 'Info'; 4 | 5 | export const isInfoNode = (node: QueryError) => { 6 | return node.attributes.severity === INFO_NODE_SEVERITY; 7 | }; 8 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/query-tracker/QueryResults/ErrorTree/index.ts: -------------------------------------------------------------------------------- 1 | export {ErrorTree} from './ErrorTree'; 2 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/query-tracker/QueryResults/QueryMetaRow/index.scss: -------------------------------------------------------------------------------- 1 | .query-meta-info { 2 | display: flex; 3 | align-items: center; 4 | 5 | &__item:not(:last-child) { 6 | margin-right: 8px; 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/query-tracker/QueryResults/QueryResultActions/index.scss: -------------------------------------------------------------------------------- 1 | .query-result-actions { 2 | display: flex; 3 | &__item:not(:last-child) { 4 | margin-right: 8px; 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/query-tracker/QueryResults/ShareButton/index.scss: -------------------------------------------------------------------------------- 1 | .query-share-button { 2 | display: flex; 3 | gap: 0 2px; 4 | } 5 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/query-tracker/QueryResults/helpers/getIssuePosition.ts: -------------------------------------------------------------------------------- 1 | import {QueryError} from '../../module/api'; 2 | 3 | export const getIssuePosition = (issue: QueryError) => { 4 | const position = issue.attributes?.start_position; 5 | if (!position) { 6 | return false; 7 | } 8 | return `${position.row}:${position.column}`; 9 | }; 10 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/query-tracker/QueryResults/helpers/index.ts: -------------------------------------------------------------------------------- 1 | export {calculateCloudLevel} from './calculateCloudLevel'; 2 | export {getIssuePosition} from './getIssuePosition'; 3 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/query-tracker/QueryResultsView/ResultPaginator/index.scss: -------------------------------------------------------------------------------- 1 | .query-result-paginator { 2 | display: inline-flex; 3 | 4 | &__control:not(:last-child) { 5 | margin-right: 4px; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/query-tracker/QueryResultsVisualization/components/ChartLeftMenu.scss: -------------------------------------------------------------------------------- 1 | .yt-chart-left-menu { 2 | display: flex; 3 | flex-direction: column; 4 | gap: 8px; 5 | min-width: 200px; 6 | overflow-y: auto; 7 | 8 | &__separator { 9 | border-bottom: 1px solid var(--g-color-line-generic); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/query-tracker/QueryResultsVisualization/components/Wizard/ConfigWizard.scss: -------------------------------------------------------------------------------- 1 | .yt-chart-config-wizard { 2 | display: flex; 3 | flex-direction: column; 4 | gap: 8px; 5 | } 6 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/query-tracker/QueryResultsVisualization/components/Wizard/Wizard.scss: -------------------------------------------------------------------------------- 1 | .yt-chart-wizard { 2 | display: flex; 3 | flex-direction: column; 4 | gap: 8px; 5 | } 6 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/query-tracker/QueryResultsVisualization/components/Wizard/index.ts: -------------------------------------------------------------------------------- 1 | export {Wizard} from './Wizard'; 2 | export {ConfigWizard} from './ConfigWizard'; 3 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/query-tracker/QueryResultsVisualization/constants/index.ts: -------------------------------------------------------------------------------- 1 | export enum ChartType { 2 | Area = 'area', 3 | BarX = 'bar-x', 4 | BarY = 'bar-y', 5 | Line = 'line', 6 | Pie = 'pie', 7 | Scatter = 'scatter', 8 | Waterfall = 'waterfall', 9 | } 10 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/query-tracker/QueryResultsVisualization/preparers/types.ts: -------------------------------------------------------------------------------- 1 | import {Result} from '../../module/query_result/types'; 2 | 3 | export type QueryResult = Record[]; 4 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/query-tracker/QuerySettingsButton/PopupWithCloseButton.scss: -------------------------------------------------------------------------------- 1 | .popup-with-close-button { 2 | .g-popup__content { 3 | position: relative; 4 | border-radius: var(--g-border-radius-l); 5 | } 6 | 7 | &__close-button { 8 | position: absolute; 9 | top: 16px; 10 | right: 16px; 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/query-tracker/QuerySettingsButton/SettingsAddForm.scss: -------------------------------------------------------------------------------- 1 | .settings-add-form { 2 | &__button { 3 | margin-top: 12px; 4 | } 5 | 6 | &__add-form { 7 | margin-top: 8px; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/query-tracker/QueryTrackerTopRow/QueryCliqueSelector/QueryCliqueItem.scss: -------------------------------------------------------------------------------- 1 | .query-clique-item { 2 | padding: 8px 16px; 3 | font-size: 13px; 4 | cursor: pointer; 5 | border-radius: var(--g-border-radius-l); 6 | } 7 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/query-tracker/QueryTrackerTopRow/QueryCliqueSelector/index.ts: -------------------------------------------------------------------------------- 1 | export {QueryCliqueSelector} from './QueryCliqueSelector'; 2 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/query-tracker/QueryTrackerTopRow/QueryClusterSelector/index.ts: -------------------------------------------------------------------------------- 1 | export {QueryClusterSelector} from './QueryClusterSelector'; 2 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/query-tracker/QueryWidget/QueryMetaForm.scss: -------------------------------------------------------------------------------- 1 | .query-tracker-meta-form { 2 | display: flex; 3 | align-items: center; 4 | 5 | &__control { 6 | &_name { 7 | display: inline-flex; 8 | align-items: center; 9 | } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/query-tracker/Vcs/SettingsMenu/AddTokenForm.scss: -------------------------------------------------------------------------------- 1 | .add-token-form { 2 | display: flex; 3 | gap: 0 8px; 4 | width: 100%; 5 | min-width: 305px; 6 | } 7 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/query-tracker/Vcs/SettingsMenu/VcsList.scss: -------------------------------------------------------------------------------- 1 | .vcs-list { 2 | width: 100%; 3 | min-width: 305px; 4 | display: flex; 5 | flex-direction: column; 6 | gap: 12px; 7 | } 8 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/query-tracker/Vcs/SettingsMenu/VcsListItem.scss: -------------------------------------------------------------------------------- 1 | .vcs-list-item { 2 | display: flex; 3 | justify-content: space-between; 4 | align-items: center; 5 | width: 100%; 6 | padding: 4px 0; 7 | border-bottom: 1px solid var(--g-color-line-generic); 8 | } 9 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/query-tracker/Vcs/SettingsMenu/index.ts: -------------------------------------------------------------------------------- 1 | export {AddTokenForm} from './AddTokenForm'; 2 | export {VcsList} from './VcsList'; 3 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/query-tracker/Vcs/Vcs.scss: -------------------------------------------------------------------------------- 1 | .vsc { 2 | height: 100%; 3 | display: flex; 4 | flex-direction: column; 5 | 6 | &_error { 7 | padding: 10px; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/query-tracker/Vcs/VcsHeader/index.ts: -------------------------------------------------------------------------------- 1 | export {VcsHeader} from './VcsHeader'; 2 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/query-tracker/Vcs/VcsItemsList/VcsItemsList.scss: -------------------------------------------------------------------------------- 1 | .vcs-items-list { 2 | height: 100%; 3 | padding: 0 12px 12px; 4 | 5 | &__empty-block { 6 | height: 100%; 7 | flex-direction: column; 8 | } 9 | 10 | &__error { 11 | margin-top: 12px; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/query-tracker/Vcs/VcsItemsList/VcsListFolder.scss: -------------------------------------------------------------------------------- 1 | .vcs-list-folder { 2 | display: flex; 3 | align-items: center; 4 | gap: 0 8px; 5 | padding: 10px 0; 6 | border-bottom: 1px solid var(--g-color-line-generic); 7 | cursor: pointer; 8 | overflow: hidden; 9 | 10 | &__icon { 11 | flex-shrink: 0; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/query-tracker/Vcs/VcsItemsList/index.ts: -------------------------------------------------------------------------------- 1 | export {VcsItemsList} from './VcsItemsList'; 2 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/query-tracker/Vcs/VcsPath/VcsPath.scss: -------------------------------------------------------------------------------- 1 | .vcs-path { 2 | display: grid; 3 | grid-template-columns: 24px calc(100% - 52px - 16px) 28px; 4 | gap: 0 8px; 5 | 6 | &_open { 7 | grid-template-columns: 1fr; 8 | } 9 | 10 | .editable-as-text { 11 | &__control { 12 | margin-left: 0; 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/query-tracker/Vcs/VcsPath/index.ts: -------------------------------------------------------------------------------- 1 | export {VcsPath} from './VcsPath'; 2 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/query-tracker/Vcs/index.ts: -------------------------------------------------------------------------------- 1 | import {lazy} from 'react'; 2 | import withLazyLoading from '../../../hocs/withLazyLoading'; 3 | 4 | function importVcs() { 5 | return import(/* webpackChunkName: "vcs" */ './Vcs'); 6 | } 7 | 8 | export const Vcs = withLazyLoading( 9 | lazy(async () => { 10 | return {default: (await importVcs()).Vcs}; 11 | }), 12 | ); 13 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/query-tracker/context/MonacoContext.ts: -------------------------------------------------------------------------------- 1 | import {createContext} from 'react'; 2 | import * as monaco from 'monaco-editor/esm/vs/editor/editor.api'; 3 | 4 | export const MonacoContext = createContext>( 5 | new Map(), 6 | ); 7 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/query-tracker/index.tsx: -------------------------------------------------------------------------------- 1 | export {default as QueryTracker} from './QueryTracker/QueryTracker'; 2 | export {default as QueryTrackerTopRow} from './QueryTrackerTopRow'; 3 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/query-tracker/module/query_aco/constants.ts: -------------------------------------------------------------------------------- 1 | import createActionTypes, {createPrefix} from '../../../../constants/utils'; 2 | 3 | const PREFIX = createPrefix('query-tracker/QUERY_ACO'); 4 | 5 | export const QUERY_ACO_LOADING = createActionTypes(PREFIX + 'LOADING'); 6 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/scheduling/Content/Content.scss: -------------------------------------------------------------------------------- 1 | .scheduling-content { 2 | &__tabs { 3 | margin-bottom: 20px; 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/scheduling/Content/SchedulingResources.scss: -------------------------------------------------------------------------------- 1 | .scheduling-resources { 2 | display: grid; 3 | grid-template-columns: repeat(3, 1fr); 4 | grid-gap: 20px 30px; 5 | 6 | padding-top: 10px; 7 | margin-bottom: 20px; 8 | } 9 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/scheduling/PoolsSuggest/PoolsSuggest.scss: -------------------------------------------------------------------------------- 1 | .yt-pools-suggest { 2 | &__popup { 3 | min-width: 220px; 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/scheduling/index.tsx: -------------------------------------------------------------------------------- 1 | export {default as Scheduling} from './Scheduling/Scheduling'; 2 | export {default as SchedulingTopRow} from './Scheduling/SchedulingTopRowContent'; 3 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/system/Nodes/Nodes.scss: -------------------------------------------------------------------------------- 1 | .system-nodes { 2 | .elements-heading { 3 | margin-bottom: 0; 4 | } 5 | 6 | &__group-summary { 7 | padding-left: 4px; 8 | padding-bottom: 20px; 9 | } 10 | 11 | &__expand-btn { 12 | margin-left: 8px; 13 | margin-right: 10px; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/system/System/SystemTopRowContent.scss: -------------------------------------------------------------------------------- 1 | .system-top-row-content { 2 | &__create-notification { 3 | text-align: right; 4 | flex-grow: 1; 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/system/index.tsx: -------------------------------------------------------------------------------- 1 | export {System} from './System/System'; 2 | export {default as SystemTopRow} from './System/SystemTopRowContent'; 3 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/tablet-errors-by-bundle/TabletErrorsByBundle.scss: -------------------------------------------------------------------------------- 1 | .yt-tablet-errors-by-byndle { 2 | &__table { 3 | margin-bottom: 20px; 4 | } 5 | 6 | &__toolbar { 7 | padding-top: 10px; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/tablet-errors-by-bundle/TabletErrorsByBundleToolbar.scss: -------------------------------------------------------------------------------- 1 | .yt-tablet-errors-by-bundle-toolbar { 2 | &__path-filter { 3 | width: 300px; 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/tablet/TabletDetails/Stores.scss: -------------------------------------------------------------------------------- 1 | .tablet-stores { 2 | &_loading { 3 | height: 100px; 4 | display: flex; 5 | align-items: center; 6 | justify-content: center; 7 | } 8 | 9 | .meta-table-item { 10 | &__key { 11 | min-width: 130px; 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/tablet/TabletTopRowContent.scss: -------------------------------------------------------------------------------- 1 | @import '../../styles/fonts.scss'; 2 | 3 | .tablet-top-row-content { 4 | 5 | &__editable { 6 | @include font-body2; 7 | 8 | min-width: 40ex; 9 | color: var(--secondary-text); 10 | gap: 0 8px; 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/tablet/index.ts: -------------------------------------------------------------------------------- 1 | export {default as Tablet} from './Tablet'; 2 | export {default as TabletTopRow} from './TabletTopRowContent'; 3 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/tablet_cell_bundles/bundle/BundleMetaTable.scss: -------------------------------------------------------------------------------- 1 | .bundle-meta-table { 2 | .meta-table__group { 3 | grid-gap: 6px 27px; 4 | } 5 | 6 | .g-progress { 7 | width: 200px; 8 | } 9 | 10 | &__container { 11 | display: flex; 12 | align-items: flex-start; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/tablet_cell_bundles/bundles/BundleEditorDialog/components/BundleTableField/BundleTableField.scss: -------------------------------------------------------------------------------- 1 | .bundle-table-field { 2 | &__table { 3 | .g-table__th-content { 4 | display: inline; 5 | } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/tablet_cell_bundles/bundles/BundleEditorDialog/components/BundleTitle/BundleTitle.scss: -------------------------------------------------------------------------------- 1 | .bundle-title { 2 | display: flex; 3 | align-items: center; 4 | width: 100%; 5 | 6 | &__btn { 7 | margin-left: auto; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/tablet_cell_bundles/index.tsx: -------------------------------------------------------------------------------- 1 | export {default as TabletCellBundles} from './TabletCellBundles'; 2 | export {default as TabletCellBundlesTopRow} from './TabletCellBundlesTopRowContent.connected'; 3 | export {default as ChaosCellBundlesTopRow} from '../chaos_cell_bundles/ChaosCellBundlesTopRowContent.connected'; 4 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/users/UserActions/UserActions.scss: -------------------------------------------------------------------------------- 1 | .yt-user-actions { 2 | justify-content: space-between; 3 | } -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/users/UsersPageEditor/UsersPageEditor.scss: -------------------------------------------------------------------------------- 1 | .users-page-editor { 2 | .df-tab-field-vertical { 3 | min-height: 400px; 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /packages/ui/src/ui/pages/users/index.tsx: -------------------------------------------------------------------------------- 1 | export {default as UsersPage} from './UsersPage'; 2 | -------------------------------------------------------------------------------- /packages/ui/src/ui/store/__mocks__/index.js: -------------------------------------------------------------------------------- 1 | import configureMockStore from 'redux-mock-store'; 2 | import {thunk} from 'redux-thunk'; 3 | 4 | export default configureMockStore([thunk]); 5 | -------------------------------------------------------------------------------- /packages/ui/src/ui/store/actions/dashboard/dashboad.js: -------------------------------------------------------------------------------- 1 | import {CHANGE_ACTIVE_TAB} from '../../../constants/dashboard'; 2 | 3 | export function changeActiveTab(activeTab) { 4 | return { 5 | type: CHANGE_ACTIVE_TAB, 6 | data: {activeTab}, 7 | }; 8 | } 9 | -------------------------------------------------------------------------------- /packages/ui/src/ui/store/actions/global/max-content-width.ts: -------------------------------------------------------------------------------- 1 | import {GLOBAL_PARTIAL} from '../../../constants/global'; 2 | import {GloablStateAction} from '../../../store/reducers/global'; 3 | 4 | export function setMaxContentWidthEnabled(enableMaxContentWidth: boolean): GloablStateAction { 5 | return {type: GLOBAL_PARTIAL, data: {enableMaxContentWidth}}; 6 | } 7 | -------------------------------------------------------------------------------- /packages/ui/src/ui/store/actions/navigation/tabs/schema.js: -------------------------------------------------------------------------------- 1 | import {SCHEMA_UPDATE_FILTER} from '../../../../constants/navigation/tabs/schema'; 2 | 3 | export function updateSchemaFilter(column) { 4 | return { 5 | type: SCHEMA_UPDATE_FILTER, 6 | data: {column}, 7 | }; 8 | } 9 | -------------------------------------------------------------------------------- /packages/ui/src/ui/store/actions/operations/operation-incarnations.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/src/ui/store/actions/operations/operation-incarnations.ts -------------------------------------------------------------------------------- /packages/ui/src/ui/store/reducers/accounts/index.ts: -------------------------------------------------------------------------------- 1 | import {combineReducers} from 'redux'; 2 | 3 | import accounts from './accounts/index'; 4 | import editor from './editor/index'; 5 | import usage from './usage'; 6 | 7 | export default combineReducers({ 8 | accounts, 9 | editor, 10 | usage, 11 | }); 12 | -------------------------------------------------------------------------------- /packages/ui/src/ui/store/reducers/chyt/index.ts: -------------------------------------------------------------------------------- 1 | import {combineReducers} from 'redux'; 2 | 3 | import list from './list'; 4 | import listFilters from './list-filters'; 5 | import clique from './clique'; 6 | import options from './options'; 7 | import speclet from './speclet'; 8 | 9 | export const chyt = combineReducers({list, listFilters, clique, options, speclet}); 10 | -------------------------------------------------------------------------------- /packages/ui/src/ui/store/reducers/components/node/index.ts: -------------------------------------------------------------------------------- 1 | import {combineReducers} from 'redux'; 2 | 3 | import node from './node'; 4 | import memory from './memory'; 5 | import unrecognizedOptions from './unrecognized-options'; 6 | 7 | export default combineReducers({ 8 | node, 9 | memory, 10 | unrecognizedOptions, 11 | }); 12 | -------------------------------------------------------------------------------- /packages/ui/src/ui/store/reducers/components/nodes/index.js: -------------------------------------------------------------------------------- 1 | import {combineReducers} from 'redux'; 2 | 3 | import nodes from './nodes/nodes'; 4 | import setup from './setup/setup'; 5 | 6 | export default combineReducers({ 7 | nodes, 8 | setup, 9 | }); 10 | -------------------------------------------------------------------------------- /packages/ui/src/ui/store/reducers/components/proxies/index.js: -------------------------------------------------------------------------------- 1 | import {combineReducers} from 'redux'; 2 | 3 | import proxies from './proxies/proxies'; 4 | 5 | export default combineReducers({ 6 | proxies, 7 | }); 8 | -------------------------------------------------------------------------------- /packages/ui/src/ui/store/reducers/flow/index.ts: -------------------------------------------------------------------------------- 1 | import {combineReducers} from 'redux'; 2 | 3 | import {filters} from './filters'; 4 | import {dynamicSpec, staticSpec} from './specs'; 5 | import {status} from './status'; 6 | import {layout} from './layout'; 7 | 8 | export const flow = combineReducers({filters, dynamicSpec, staticSpec, status, layout}); 9 | -------------------------------------------------------------------------------- /packages/ui/src/ui/store/reducers/global/cluster-ui-config.ts: -------------------------------------------------------------------------------- 1 | import {ClusterUiConfig} from '../../../../shared/yt-types'; 2 | 3 | export const defaultClusterUiConfig: Partial = {}; 4 | -------------------------------------------------------------------------------- /packages/ui/src/ui/store/reducers/groups/index.ts: -------------------------------------------------------------------------------- 1 | import {combineReducers} from 'redux'; 2 | import table from './table'; 3 | import editor from './editor'; 4 | 5 | export default combineReducers({ 6 | table, 7 | editor, 8 | }); 9 | -------------------------------------------------------------------------------- /packages/ui/src/ui/store/reducers/index.ts: -------------------------------------------------------------------------------- 1 | export type {RootState} from './index.main'; 2 | -------------------------------------------------------------------------------- /packages/ui/src/ui/store/reducers/job/index.ts: -------------------------------------------------------------------------------- 1 | import {combineReducers} from 'redux'; 2 | 3 | import general from './general'; 4 | import competitors from './competitors'; 5 | import specification from './specification'; 6 | 7 | export default combineReducers({ 8 | general, 9 | competitors, 10 | specification, 11 | }); 12 | -------------------------------------------------------------------------------- /packages/ui/src/ui/store/reducers/manage-tokens/index.ts: -------------------------------------------------------------------------------- 1 | import {combineReducers} from 'redux'; 2 | import modal from './modal'; 3 | import tokens from './tokens'; 4 | 5 | export const manageTokens = combineReducers({tokens, modal}); 6 | -------------------------------------------------------------------------------- /packages/ui/src/ui/store/reducers/modals/index.js: -------------------------------------------------------------------------------- 1 | import {combineReducers} from 'redux'; 2 | 3 | import attributesModal from './attributes-modal'; 4 | import errors from './errors'; 5 | 6 | export default combineReducers({ 7 | attributesModal, 8 | errors, 9 | }); 10 | -------------------------------------------------------------------------------- /packages/ui/src/ui/store/reducers/navigation/tabs/access-log/index.ts: -------------------------------------------------------------------------------- 1 | import {combineReducers} from 'redux'; 2 | 3 | import accessLog from './access-log'; 4 | import accessLogFilters from './access-log-filters'; 5 | 6 | export default combineReducers({ 7 | accessLog, 8 | accessLogFilters, 9 | }); 10 | -------------------------------------------------------------------------------- /packages/ui/src/ui/store/reducers/navigation/tabs/consumer/index.ts: -------------------------------------------------------------------------------- 1 | import {combineReducers} from 'redux'; 2 | 3 | import filters from './filters'; 4 | import partitions from './partitions'; 5 | import status from './status'; 6 | 7 | export default combineReducers({ 8 | filters, 9 | partitions, 10 | status, 11 | }); 12 | -------------------------------------------------------------------------------- /packages/ui/src/ui/store/reducers/navigation/tabs/queue/index.ts: -------------------------------------------------------------------------------- 1 | import {combineReducers} from 'redux'; 2 | 3 | import filters from './filters'; 4 | import partitions from './partitions'; 5 | import status from './status'; 6 | 7 | export default combineReducers({ 8 | filters, 9 | partitions, 10 | status, 11 | }); 12 | -------------------------------------------------------------------------------- /packages/ui/src/ui/store/reducers/scheduling/index.ts: -------------------------------------------------------------------------------- 1 | import {combineReducers} from 'redux'; 2 | 3 | import scheduling from './scheduling'; 4 | import expandedPools from './expanded-pools'; 5 | import createPoolDialog from './create-pool-dialog'; 6 | 7 | export default combineReducers({scheduling, expandedPools, createPoolDialog}); 8 | -------------------------------------------------------------------------------- /packages/ui/src/ui/store/reducers/suggests/index.ts: -------------------------------------------------------------------------------- 1 | import {combineReducers} from 'redux'; 2 | 3 | import tabletCellBundles from './tablet-cell-bundless'; 4 | 5 | export default combineReducers({ 6 | tabletCellBundles, 7 | }); 8 | -------------------------------------------------------------------------------- /packages/ui/src/ui/store/reducers/tablet-errors/index.ts: -------------------------------------------------------------------------------- 1 | import {combineReducers} from 'redux'; 2 | import {tabletErrorsByBundle} from './tablet-errors-by-bundle'; 3 | 4 | export default combineReducers({ 5 | tabletErrorsByBundle, 6 | }); 7 | -------------------------------------------------------------------------------- /packages/ui/src/ui/store/reducers/tablet/index.js: -------------------------------------------------------------------------------- 1 | import {combineReducers} from 'redux'; 2 | 3 | import stores from './stores'; 4 | import tablet from './tablet'; 5 | 6 | export default combineReducers({ 7 | tablet, 8 | stores, 9 | }); 10 | -------------------------------------------------------------------------------- /packages/ui/src/ui/store/reducers/users/index.js: -------------------------------------------------------------------------------- 1 | import {combineReducers} from 'redux'; 2 | import table from './table'; 3 | import editUser from './edit-user'; 4 | import {deleteUserModalSlice} from './delete-user'; 5 | 6 | export default combineReducers({ 7 | table, 8 | editUser, 9 | deleteUser: deleteUserModalSlice.reducer, 10 | }); 11 | -------------------------------------------------------------------------------- /packages/ui/src/ui/store/selectors/chaos_cell_bundles/tablet-cell-bundle-editor.ts: -------------------------------------------------------------------------------- 1 | import type {RootState} from '../../../store/reducers'; 2 | 3 | export const getChaosCellBundleEditorData = (state: RootState) => state.chaosCellBundleEditor; 4 | -------------------------------------------------------------------------------- /packages/ui/src/ui/store/selectors/chyt/options.ts: -------------------------------------------------------------------------------- 1 | import {RootState} from '../../reducers'; 2 | 3 | export const getChytOptionsData = (state: RootState) => state.chyt.options.data; 4 | export const getChytOptionsDataAlias = (state: RootState) => state.chyt.options.dataAlias; 5 | export const getChytOptionsError = (state: RootState) => state.chyt.options.error; 6 | -------------------------------------------------------------------------------- /packages/ui/src/ui/store/selectors/components/node/unrecognized-options.ts: -------------------------------------------------------------------------------- 1 | import {RootState} from '../../../reducers'; 2 | 3 | export const getNodeUnrecognizedOptionsData = (state: RootState) => 4 | state.components.node.unrecognizedOptions.data; 5 | export const getNodeUnrecognizedOptionsError = (state: RootState) => 6 | state.components.node.unrecognizedOptions.error; 7 | -------------------------------------------------------------------------------- /packages/ui/src/ui/store/selectors/components/nodes/nodes/index.ts: -------------------------------------------------------------------------------- 1 | export * from './data'; 2 | export * from './predicates'; 3 | -------------------------------------------------------------------------------- /packages/ui/src/ui/store/selectors/execute-batch.ts: -------------------------------------------------------------------------------- 1 | import {RootState} from '../reducers'; 2 | 3 | export function getExecuteBatchState(state: RootState) { 4 | return state.executeBatch; 5 | } 6 | -------------------------------------------------------------------------------- /packages/ui/src/ui/store/selectors/flow/filters.ts: -------------------------------------------------------------------------------- 1 | import {RootState} from '../../../store/reducers'; 2 | 3 | export const getFlowViewMode = (state: RootState) => state.flow.filters.flowViewMode; 4 | -------------------------------------------------------------------------------- /packages/ui/src/ui/store/selectors/flow/status.ts: -------------------------------------------------------------------------------- 1 | import {RootState} from '../../reducers'; 2 | 3 | export const getFlowStatusData = (state: RootState) => state.flow.status.data; 4 | export const getFlowStatusPipelinePath = (state: RootState) => state.flow.status.pipeline_path; 5 | export const getFlowStatusError = (state: RootState) => state.flow.status.error; 6 | -------------------------------------------------------------------------------- /packages/ui/src/ui/store/selectors/global/username.ts: -------------------------------------------------------------------------------- 1 | import {RootState} from '../../../store/reducers'; 2 | 3 | export const getCurrentUserName = (state: RootState): string => state?.global?.login; 4 | -------------------------------------------------------------------------------- /packages/ui/src/ui/store/selectors/job/statistics.ts: -------------------------------------------------------------------------------- 1 | import {RootState} from '../../reducers'; 2 | 3 | export const getRawStatistic = (state: RootState) => state.job.general.job.attributes?.statistics; 4 | -------------------------------------------------------------------------------- /packages/ui/src/ui/store/selectors/navigation/content/download-manager.ts: -------------------------------------------------------------------------------- 1 | import {RootState} from '../../../reducers'; 2 | 3 | export const getDownloadTableInfo = (state: RootState, id: string) => 4 | state.navigation.content.downloadManager.downloads[id]; 5 | -------------------------------------------------------------------------------- /packages/ui/src/ui/store/selectors/navigation/modals/create-aco-modal.ts: -------------------------------------------------------------------------------- 1 | import {RootState} from '../../../../store/reducers'; 2 | 3 | export const getCreateACOModalState = (state: RootState) => state.navigation.modals.createACOModal; 4 | -------------------------------------------------------------------------------- /packages/ui/src/ui/store/selectors/navigation/modals/link-to-modal.ts: -------------------------------------------------------------------------------- 1 | import {RootState} from '../../../../store/reducers'; 2 | 3 | export const getLinkToModalState = (state: RootState) => state.navigation.modals.linkToModal; 4 | -------------------------------------------------------------------------------- /packages/ui/src/ui/store/selectors/navigation/modals/table-erase-modal.ts: -------------------------------------------------------------------------------- 1 | import {RootState} from '../../../../store/reducers'; 2 | 3 | export const getNavigationTableEraseModalVisible = (state: RootState) => 4 | state.navigation.modals.tableEraseModal.visible; 5 | export const getNavigationTableEraseModalPath = (state: RootState) => 6 | state.navigation.modals.tableEraseModal.path; 7 | -------------------------------------------------------------------------------- /packages/ui/src/ui/store/selectors/scheduling/monitor.ts: -------------------------------------------------------------------------------- 1 | import {RootState} from '../../reducers'; 2 | 3 | type MonitorChartStuts = {[chartType: string]: boolean}; 4 | 5 | export const getSchedulingMonitorChartStates = (state: RootState): MonitorChartStuts => 6 | state.scheduling.scheduling.monitorChartStatus; 7 | -------------------------------------------------------------------------------- /packages/ui/src/ui/store/selectors/settings/settings-base.ts: -------------------------------------------------------------------------------- 1 | import {DescribedSettings} from '../../../../shared/constants/settings-types'; 2 | import {RootState} from '../../../store/reducers'; 3 | 4 | export const getSettingsData = (state: RootState) => 5 | state.settings.data as unknown as DescribedSettings; 6 | -------------------------------------------------------------------------------- /packages/ui/src/ui/store/selectors/suggests/index.ts: -------------------------------------------------------------------------------- 1 | import {RootState} from '../../reducers'; 2 | 3 | export const getTabletCellBundlesSuggests = (state: RootState) => 4 | state.suggests.tabletCellBundles.items; 5 | -------------------------------------------------------------------------------- /packages/ui/src/ui/store/selectors/system/index.ts: -------------------------------------------------------------------------------- 1 | import {RootState} from '../../reducers'; 2 | 3 | export const isSystemResourcesLoaded = (state: RootState) => { 4 | const {loaded, nodeAttrsLoaded} = state.system.resources; 5 | return loaded && nodeAttrsLoaded; 6 | }; 7 | -------------------------------------------------------------------------------- /packages/ui/src/ui/store/selectors/tables.ts: -------------------------------------------------------------------------------- 1 | import {RootState} from '../../store/reducers'; 2 | import {initialState} from '../../store/reducers/tables'; 3 | 4 | export const getTables = (state: RootState) => state.tables || initialState; 5 | -------------------------------------------------------------------------------- /packages/ui/src/ui/store/selectors/tablet_cell_bundles/tablet-cell-bundle-editor.ts: -------------------------------------------------------------------------------- 1 | import type {RootState} from '../../../store/reducers'; 2 | 3 | export const getTabletCellBundleEditorState = (state: RootState) => state.tabletCellBundleEditor; 4 | export const getTabletCellBundleControllerInstanceDetailsMap = (state: RootState) => 5 | state.tabletCellBundleEditor.instanceDetailsMap; 6 | -------------------------------------------------------------------------------- /packages/ui/src/ui/store/selectors/thor/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "env": { 3 | "node": true 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /packages/ui/src/ui/store/thunkDispatch.ts: -------------------------------------------------------------------------------- 1 | import {AnyAction} from 'redux'; 2 | import {ThunkDispatch} from 'redux-thunk'; 3 | import {RootState} from './reducers'; 4 | import {useDispatch} from 'react-redux'; 5 | 6 | export type AppThunkDispatch = ThunkDispatch; 7 | 8 | export const useThunkDispatch = () => useDispatch>(); 9 | -------------------------------------------------------------------------------- /packages/ui/src/ui/styles/fonts/roboto-mono.scss: -------------------------------------------------------------------------------- 1 | @font-face { 2 | font-family: 'RobotoMono'; 3 | src: url('../../assets/fonts/Roboto_Mono/RobotoMono-VariableFont_wght.ttf') format('truetype'); 4 | font-weight: 400 700; 5 | } 6 | -------------------------------------------------------------------------------- /packages/ui/src/ui/styles/redefinitions/common/icon.scss: -------------------------------------------------------------------------------- 1 | .g-root { 2 | .icon_awesome { 3 | text-align: center; 4 | 5 | &::after { 6 | content: none; 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /packages/ui/src/ui/utils/accounts/accounts.ts: -------------------------------------------------------------------------------- 1 | import {Page} from '../../constants'; 2 | import {AccountsTab} from '../../constants/accounts/accounts'; 3 | 4 | export function genAccountsAclLink(cluster: string, account: string) { 5 | return `/${cluster}/${Page.ACCOUNTS}/${AccountsTab.ACL}?account=${account}`; 6 | } 7 | -------------------------------------------------------------------------------- /packages/ui/src/ui/utils/actions.js: -------------------------------------------------------------------------------- 1 | export const PLEASE_PROCEED_TEXT = 'Please proceed, I understand the risks.'; 2 | -------------------------------------------------------------------------------- /packages/ui/src/ui/utils/axios-no-xsrf.js: -------------------------------------------------------------------------------- 1 | import axios from 'axios'; 2 | 3 | const axiosNoXSRF = axios.create(); 4 | 5 | // Do not send xsrf token by default, request will result in error 6 | axiosNoXSRF.defaults.xsrfCookieName = ''; 7 | 8 | export default axiosNoXSRF; 9 | -------------------------------------------------------------------------------- /packages/ui/src/ui/utils/navigation/isTableNode.ts: -------------------------------------------------------------------------------- 1 | export const isTableNode = (type?: string) => { 2 | if (!type) return false; 3 | 4 | return ['table', 'tablet_cell', 'replicated_table'].includes(type); 5 | }; 6 | -------------------------------------------------------------------------------- /packages/ui/src/ui/utils/operations/tabs/details/error.js: -------------------------------------------------------------------------------- 1 | import ypath from '../../../../common/thor/ypath'; 2 | 3 | export function prepareError(operation) { 4 | if (operation.state === 'aborted' || operation.state === 'failed') { 5 | return ypath.getValue(operation, '/@result'); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /packages/ui/src/ui/utils/sha256.ts: -------------------------------------------------------------------------------- 1 | export async function sha256(str: string) { 2 | const buf = await crypto.subtle.digest('SHA-256', new TextEncoder().encode(str)); 3 | 4 | return [...new Uint8Array(buf)].map((x) => ('00' + x.toString(16)).slice(-2)).join(''); 5 | } 6 | 7 | export const isCryptoSubtleAvailable = () => { 8 | return Boolean(crypto?.subtle?.digest); 9 | }; 10 | -------------------------------------------------------------------------------- /packages/ui/src/ui/utils/yql-types.ts: -------------------------------------------------------------------------------- 1 | export function isImageTag(value: string) { 2 | return /image\/.*/.test(value); 3 | } 4 | 5 | export function isVideoTag(value: string) { 6 | return /video\/.*/.test(value); 7 | } 8 | 9 | export function isMediaTag(value: string) { 10 | return isImageTag(value) || isVideoTag(value); 11 | } 12 | -------------------------------------------------------------------------------- /packages/ui/tests/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "overrides": [{ 3 | "files": ["**/*.ts", "**/*.tsx", "**/*.js"], 4 | "rules": { 5 | "camelcase": "off", 6 | "no-negated-condition": "off", 7 | "import/order": 0, 8 | "no-implicit-globals": "off" 9 | } 10 | }] 11 | } 12 | -------------------------------------------------------------------------------- /packages/ui/tests/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | /test-results/ 3 | /playwright-report/ 4 | /playwright/.cache/ 5 | .env 6 | downloads/static-table 7 | -------------------------------------------------------------------------------- /packages/ui/tests/screenshots/pages/accounts/accounts.base.screen.ts-snapshots/Accounts---ACL-1-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/tests/screenshots/pages/accounts/accounts.base.screen.ts-snapshots/Accounts---ACL-1-chromium-linux.png -------------------------------------------------------------------------------- /packages/ui/tests/screenshots/pages/accounts/accounts.base.screen.ts-snapshots/Accounts---ACL-2-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/tests/screenshots/pages/accounts/accounts.base.screen.ts-snapshots/Accounts---ACL-2-chromium-linux.png -------------------------------------------------------------------------------- /packages/ui/tests/screenshots/pages/accounts/accounts.base.screen.ts-snapshots/Accounts---Editor-1-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/tests/screenshots/pages/accounts/accounts.base.screen.ts-snapshots/Accounts---Editor-1-chromium-linux.png -------------------------------------------------------------------------------- /packages/ui/tests/screenshots/pages/accounts/accounts.base.screen.ts-snapshots/Accounts---Editor-2-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/tests/screenshots/pages/accounts/accounts.base.screen.ts-snapshots/Accounts---Editor-2-chromium-linux.png -------------------------------------------------------------------------------- /packages/ui/tests/screenshots/pages/accounts/accounts.base.screen.ts-snapshots/Accounts---Editor-3-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/tests/screenshots/pages/accounts/accounts.base.screen.ts-snapshots/Accounts---Editor-3-chromium-linux.png -------------------------------------------------------------------------------- /packages/ui/tests/screenshots/pages/accounts/accounts.base.screen.ts-snapshots/Accounts---Editor-4-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/tests/screenshots/pages/accounts/accounts.base.screen.ts-snapshots/Accounts---Editor-4-chromium-linux.png -------------------------------------------------------------------------------- /packages/ui/tests/screenshots/pages/accounts/accounts.base.screen.ts-snapshots/Accounts---Editor-5-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/tests/screenshots/pages/accounts/accounts.base.screen.ts-snapshots/Accounts---Editor-5-chromium-linux.png -------------------------------------------------------------------------------- /packages/ui/tests/screenshots/pages/accounts/accounts.base.screen.ts-snapshots/Accounts---Editor-6-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/tests/screenshots/pages/accounts/accounts.base.screen.ts-snapshots/Accounts---Editor-6-chromium-linux.png -------------------------------------------------------------------------------- /packages/ui/tests/screenshots/pages/accounts/accounts.base.screen.ts-snapshots/Accounts---General-1-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/tests/screenshots/pages/accounts/accounts.base.screen.ts-snapshots/Accounts---General-1-chromium-linux.png -------------------------------------------------------------------------------- /packages/ui/tests/screenshots/pages/accounts/accounts.base.screen.ts-snapshots/Accounts---General-2-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/tests/screenshots/pages/accounts/accounts.base.screen.ts-snapshots/Accounts---General-2-chromium-linux.png -------------------------------------------------------------------------------- /packages/ui/tests/screenshots/pages/accounts/accounts.base.screen.ts-snapshots/Accounts---General-3-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/tests/screenshots/pages/accounts/accounts.base.screen.ts-snapshots/Accounts---General-3-chromium-linux.png -------------------------------------------------------------------------------- /packages/ui/tests/screenshots/pages/accounts/accounts.base.screen.ts-snapshots/Accounts---General-4-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/tests/screenshots/pages/accounts/accounts.base.screen.ts-snapshots/Accounts---General-4-chromium-linux.png -------------------------------------------------------------------------------- /packages/ui/tests/screenshots/pages/accounts/accounts.base.screen.ts-snapshots/Accounts---General-5-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/tests/screenshots/pages/accounts/accounts.base.screen.ts-snapshots/Accounts---General-5-chromium-linux.png -------------------------------------------------------------------------------- /packages/ui/tests/screenshots/pages/accounts/accounts.base.screen.ts-snapshots/Accounts---General-6-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/tests/screenshots/pages/accounts/accounts.base.screen.ts-snapshots/Accounts---General-6-chromium-linux.png -------------------------------------------------------------------------------- /packages/ui/tests/screenshots/pages/accounts/accounts.base.screen.ts-snapshots/Accounts---List-1-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/tests/screenshots/pages/accounts/accounts.base.screen.ts-snapshots/Accounts---List-1-chromium-linux.png -------------------------------------------------------------------------------- /packages/ui/tests/screenshots/pages/accounts/accounts.base.screen.ts-snapshots/Accounts---List-2-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/tests/screenshots/pages/accounts/accounts.base.screen.ts-snapshots/Accounts---List-2-chromium-linux.png -------------------------------------------------------------------------------- /packages/ui/tests/screenshots/pages/accounts/accounts.base.screen.ts-snapshots/Accounts---List-3-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/tests/screenshots/pages/accounts/accounts.base.screen.ts-snapshots/Accounts---List-3-chromium-linux.png -------------------------------------------------------------------------------- /packages/ui/tests/screenshots/pages/accounts/accounts.base.screen.ts-snapshots/Accounts---List-4-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/tests/screenshots/pages/accounts/accounts.base.screen.ts-snapshots/Accounts---List-4-chromium-linux.png -------------------------------------------------------------------------------- /packages/ui/tests/screenshots/pages/accounts/accounts.base.screen.ts-snapshots/Accounts---List-5-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/tests/screenshots/pages/accounts/accounts.base.screen.ts-snapshots/Accounts---List-5-chromium-linux.png -------------------------------------------------------------------------------- /packages/ui/tests/screenshots/pages/accounts/accounts.base.screen.ts-snapshots/Accounts---List-6-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/tests/screenshots/pages/accounts/accounts.base.screen.ts-snapshots/Accounts---List-6-chromium-linux.png -------------------------------------------------------------------------------- /packages/ui/tests/screenshots/pages/bundles/bundles.base.screen.ts-snapshots/Bundles---ACL-1-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/tests/screenshots/pages/bundles/bundles.base.screen.ts-snapshots/Bundles---ACL-1-chromium-linux.png -------------------------------------------------------------------------------- /packages/ui/tests/screenshots/pages/bundles/bundles.base.screen.ts-snapshots/Bundles---ACL-2-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/tests/screenshots/pages/bundles/bundles.base.screen.ts-snapshots/Bundles---ACL-2-chromium-linux.png -------------------------------------------------------------------------------- /packages/ui/tests/screenshots/pages/bundles/bundles.base.screen.ts-snapshots/Bundles---Active-bundle-1-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/tests/screenshots/pages/bundles/bundles.base.screen.ts-snapshots/Bundles---Active-bundle-1-chromium-linux.png -------------------------------------------------------------------------------- /packages/ui/tests/screenshots/pages/bundles/bundles.base.screen.ts-snapshots/Bundles---Active-bundle-2-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/tests/screenshots/pages/bundles/bundles.base.screen.ts-snapshots/Bundles---Active-bundle-2-chromium-linux.png -------------------------------------------------------------------------------- /packages/ui/tests/screenshots/pages/bundles/bundles.base.screen.ts-snapshots/Bundles---Active-bundle-3-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/tests/screenshots/pages/bundles/bundles.base.screen.ts-snapshots/Bundles---Active-bundle-3-chromium-linux.png -------------------------------------------------------------------------------- /packages/ui/tests/screenshots/pages/bundles/bundles.base.screen.ts-snapshots/Bundles---List---Default-1-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/tests/screenshots/pages/bundles/bundles.base.screen.ts-snapshots/Bundles---List---Default-1-chromium-linux.png -------------------------------------------------------------------------------- /packages/ui/tests/screenshots/pages/bundles/bundles.base.screen.ts-snapshots/Bundles---List---Tablet-cells-1-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/tests/screenshots/pages/bundles/bundles.base.screen.ts-snapshots/Bundles---List---Tablet-cells-1-chromium-linux.png -------------------------------------------------------------------------------- /packages/ui/tests/screenshots/pages/bundles/bundles.base.screen.ts-snapshots/Bundles---List---Tablet-cells-2-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/tests/screenshots/pages/bundles/bundles.base.screen.ts-snapshots/Bundles---List---Tablet-cells-2-chromium-linux.png -------------------------------------------------------------------------------- /packages/ui/tests/screenshots/pages/bundles/bundles.base.screen.ts-snapshots/Bundles---List---Tablet-cells-3-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/tests/screenshots/pages/bundles/bundles.base.screen.ts-snapshots/Bundles---List---Tablet-cells-3-chromium-linux.png -------------------------------------------------------------------------------- /packages/ui/tests/screenshots/pages/bundles/bundles.base.screen.ts-snapshots/Bundles---List---Tablets-1-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/tests/screenshots/pages/bundles/bundles.base.screen.ts-snapshots/Bundles---List---Tablets-1-chromium-linux.png -------------------------------------------------------------------------------- /packages/ui/tests/screenshots/pages/bundles/bundles.base.screen.ts-snapshots/Bundles---List---Tablets-memory-1-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/tests/screenshots/pages/bundles/bundles.base.screen.ts-snapshots/Bundles---List---Tablets-memory-1-chromium-linux.png -------------------------------------------------------------------------------- /packages/ui/tests/screenshots/pages/clusters-menu/clusters-menu.base.screen.ts-snapshots/ClustersMenu-1-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/tests/screenshots/pages/clusters-menu/clusters-menu.base.screen.ts-snapshots/ClustersMenu-1-chromium-linux.png -------------------------------------------------------------------------------- /packages/ui/tests/screenshots/pages/components/components.base.screen.ts-snapshots/Components---HTTP-Proxies-1-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/tests/screenshots/pages/components/components.base.screen.ts-snapshots/Components---HTTP-Proxies-1-chromium-linux.png -------------------------------------------------------------------------------- /packages/ui/tests/screenshots/pages/components/components.base.screen.ts-snapshots/Components---Node---Memory-popup-1-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/tests/screenshots/pages/components/components.base.screen.ts-snapshots/Components---Node---Memory-popup-1-chromium-linux.png -------------------------------------------------------------------------------- /packages/ui/tests/screenshots/pages/components/components.base.screen.ts-snapshots/Components---Nodes---Flavor-1-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/tests/screenshots/pages/components/components.base.screen.ts-snapshots/Components---Nodes---Flavor-1-chromium-linux.png -------------------------------------------------------------------------------- /packages/ui/tests/screenshots/pages/components/components.base.screen.ts-snapshots/Components---RPC-Proxies-1-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/tests/screenshots/pages/components/components.base.screen.ts-snapshots/Components---RPC-Proxies-1-chromium-linux.png -------------------------------------------------------------------------------- /packages/ui/tests/screenshots/pages/components/components.base.screen.ts-snapshots/Components---Shards-1-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/tests/screenshots/pages/components/components.base.screen.ts-snapshots/Components---Shards-1-chromium-linux.png -------------------------------------------------------------------------------- /packages/ui/tests/screenshots/pages/components/components.base.screen.ts-snapshots/Components---Tablets-1-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/tests/screenshots/pages/components/components.base.screen.ts-snapshots/Components---Tablets-1-chromium-linux.png -------------------------------------------------------------------------------- /packages/ui/tests/screenshots/pages/components/components.base.screen.ts-snapshots/Components---Versions-1-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/tests/screenshots/pages/components/components.base.screen.ts-snapshots/Components---Versions-1-chromium-linux.png -------------------------------------------------------------------------------- /packages/ui/tests/screenshots/pages/components/components.base.screen.ts-snapshots/Components---Versions-2-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/tests/screenshots/pages/components/components.base.screen.ts-snapshots/Components---Versions-2-chromium-linux.png -------------------------------------------------------------------------------- /packages/ui/tests/screenshots/pages/navigation/navigation.base.screen.ts-snapshots/Navigation---Locks-1-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/tests/screenshots/pages/navigation/navigation.base.screen.ts-snapshots/Navigation---Locks-1-chromium-linux.png -------------------------------------------------------------------------------- /packages/ui/tests/screenshots/pages/navigation/navigation.base.screen.ts-snapshots/Navigation---map-node---select-by-first-cell-1-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/tests/screenshots/pages/navigation/navigation.base.screen.ts-snapshots/Navigation---map-node---select-by-first-cell-1-chromium-linux.png -------------------------------------------------------------------------------- /packages/ui/tests/screenshots/pages/navigation/navigation.base.screen.ts-snapshots/Navigation-map-node---ACL-1-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/tests/screenshots/pages/navigation/navigation.base.screen.ts-snapshots/Navigation-map-node---ACL-1-chromium-linux.png -------------------------------------------------------------------------------- /packages/ui/tests/screenshots/pages/navigation/navigation.base.screen.ts-snapshots/Navigation-map-node---ACL-2-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/tests/screenshots/pages/navigation/navigation.base.screen.ts-snapshots/Navigation-map-node---ACL-2-chromium-linux.png -------------------------------------------------------------------------------- /packages/ui/tests/screenshots/pages/navigation/navigation.base.screen.ts-snapshots/Navigation-map-node---ACL-3-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/tests/screenshots/pages/navigation/navigation.base.screen.ts-snapshots/Navigation-map-node---ACL-3-chromium-linux.png -------------------------------------------------------------------------------- /packages/ui/tests/screenshots/pages/navigation/navigation.base.screen.ts-snapshots/Navigation-map-node---ACL-4-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/tests/screenshots/pages/navigation/navigation.base.screen.ts-snapshots/Navigation-map-node---ACL-4-chromium-linux.png -------------------------------------------------------------------------------- /packages/ui/tests/screenshots/pages/navigation/navigation.base.screen.ts-snapshots/Navigation-map-node---Attributes-1-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/tests/screenshots/pages/navigation/navigation.base.screen.ts-snapshots/Navigation-map-node---Attributes-1-chromium-linux.png -------------------------------------------------------------------------------- /packages/ui/tests/screenshots/pages/navigation/navigation.base.screen.ts-snapshots/Navigation-map-node---Content-1-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/tests/screenshots/pages/navigation/navigation.base.screen.ts-snapshots/Navigation-map-node---Content-1-chromium-linux.png -------------------------------------------------------------------------------- /packages/ui/tests/screenshots/pages/navigation/navigation.base.screen.ts-snapshots/Navigation-map-node---Content-2-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/tests/screenshots/pages/navigation/navigation.base.screen.ts-snapshots/Navigation-map-node---Content-2-chromium-linux.png -------------------------------------------------------------------------------- /packages/ui/tests/screenshots/pages/navigation/navigation.base.screen.ts-snapshots/Navigation-map-node---Content-3-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/tests/screenshots/pages/navigation/navigation.base.screen.ts-snapshots/Navigation-map-node---Content-3-chromium-linux.png -------------------------------------------------------------------------------- /packages/ui/tests/screenshots/pages/navigation/navigation.base.screen.ts-snapshots/Navigation-map-node---Pipeline---flow-tab-1-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/tests/screenshots/pages/navigation/navigation.base.screen.ts-snapshots/Navigation-map-node---Pipeline---flow-tab-1-chromium-linux.png -------------------------------------------------------------------------------- /packages/ui/tests/screenshots/pages/navigation/navigation.base.screen.ts-snapshots/Navigation-map-node---bad-names-1-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/tests/screenshots/pages/navigation/navigation.base.screen.ts-snapshots/Navigation-map-node---bad-names-1-chromium-linux.png -------------------------------------------------------------------------------- /packages/ui/tests/screenshots/pages/navigation/navigation.symlinks.screen.ts-snapshots/Navigation---symlinks-1-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/tests/screenshots/pages/navigation/navigation.symlinks.screen.ts-snapshots/Navigation---symlinks-1-chromium-linux.png -------------------------------------------------------------------------------- /packages/ui/tests/screenshots/pages/navigation/navigation.symlinks.screen.ts-snapshots/Navigation---symlinks-2-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/tests/screenshots/pages/navigation/navigation.symlinks.screen.ts-snapshots/Navigation---symlinks-2-chromium-linux.png -------------------------------------------------------------------------------- /packages/ui/tests/screenshots/pages/navigation/navigation.table.base.screen.ts-snapshots/Navigation-static-table---rowselector-1-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/tests/screenshots/pages/navigation/navigation.table.base.screen.ts-snapshots/Navigation-static-table---rowselector-1-chromium-linux.png -------------------------------------------------------------------------------- /packages/ui/tests/screenshots/pages/navigation/navigation.table.base.screen.ts-snapshots/Navigation-table---Content-1-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/tests/screenshots/pages/navigation/navigation.table.base.screen.ts-snapshots/Navigation-table---Content-1-chromium-linux.png -------------------------------------------------------------------------------- /packages/ui/tests/screenshots/pages/navigation/navigation.table.base.screen.ts-snapshots/Navigation-table---Content-2-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/tests/screenshots/pages/navigation/navigation.table.base.screen.ts-snapshots/Navigation-table---Content-2-chromium-linux.png -------------------------------------------------------------------------------- /packages/ui/tests/screenshots/pages/navigation/navigation.table.base.screen.ts-snapshots/Navigation-table---Content-3-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/tests/screenshots/pages/navigation/navigation.table.base.screen.ts-snapshots/Navigation-table---Content-3-chromium-linux.png -------------------------------------------------------------------------------- /packages/ui/tests/screenshots/pages/navigation/navigation.table.base.screen.ts-snapshots/Navigation-table---Remount-needed-1-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/tests/screenshots/pages/navigation/navigation.table.base.screen.ts-snapshots/Navigation-table---Remount-needed-1-chromium-linux.png -------------------------------------------------------------------------------- /packages/ui/tests/screenshots/pages/navigation/navigation.table.base.screen.ts-snapshots/Navigation-table---Remount-needed-2-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/tests/screenshots/pages/navigation/navigation.table.base.screen.ts-snapshots/Navigation-table---Remount-needed-2-chromium-linux.png -------------------------------------------------------------------------------- /packages/ui/tests/screenshots/pages/navigation/navigation.table.base.screen.ts-snapshots/Navigation-table---Schema-1-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/tests/screenshots/pages/navigation/navigation.table.base.screen.ts-snapshots/Navigation-table---Schema-1-chromium-linux.png -------------------------------------------------------------------------------- /packages/ui/tests/screenshots/pages/navigation/navigation.table.base.screen.ts-snapshots/Navigation-table---Tablets-1-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/tests/screenshots/pages/navigation/navigation.table.base.screen.ts-snapshots/Navigation-table---Tablets-1-chromium-linux.png -------------------------------------------------------------------------------- /packages/ui/tests/screenshots/pages/navigation/navigation.table.base.screen.ts-snapshots/Navigation-table---userColumnPresets-1-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/tests/screenshots/pages/navigation/navigation.table.base.screen.ts-snapshots/Navigation-table---userColumnPresets-1-chromium-linux.png -------------------------------------------------------------------------------- /packages/ui/tests/screenshots/pages/navigation/navigation.table.base.screen.ts-snapshots/Navigation-table---userColumnPresets-2-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/tests/screenshots/pages/navigation/navigation.table.base.screen.ts-snapshots/Navigation-table---userColumnPresets-2-chromium-linux.png -------------------------------------------------------------------------------- /packages/ui/tests/screenshots/pages/navigation/navigation.table.base.screen.ts-snapshots/Navigation-table---userColumnPresets-3-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/tests/screenshots/pages/navigation/navigation.table.base.screen.ts-snapshots/Navigation-table---userColumnPresets-3-chromium-linux.png -------------------------------------------------------------------------------- /packages/ui/tests/screenshots/pages/navigation/navigation.table.base.screen.ts-snapshots/Navigation-yql-v3-types-1-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/tests/screenshots/pages/navigation/navigation.table.base.screen.ts-snapshots/Navigation-yql-v3-types-1-chromium-linux.png -------------------------------------------------------------------------------- /packages/ui/tests/screenshots/pages/navigation/navigation.table.base.screen.ts-snapshots/Navigation-yql-v3-types-2-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/tests/screenshots/pages/navigation/navigation.table.base.screen.ts-snapshots/Navigation-yql-v3-types-2-chromium-linux.png -------------------------------------------------------------------------------- /packages/ui/tests/screenshots/pages/navigation/navigation.table.truncated.base.screen.ts-snapshots/Navigation-truncated-table---Content-1-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/tests/screenshots/pages/navigation/navigation.table.truncated.base.screen.ts-snapshots/Navigation-truncated-table---Content-1-chromium-linux.png -------------------------------------------------------------------------------- /packages/ui/tests/screenshots/pages/navigation/navigation.table.truncated.base.screen.ts-snapshots/Navigation-truncated-table---Content-2-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/tests/screenshots/pages/navigation/navigation.table.truncated.base.screen.ts-snapshots/Navigation-truncated-table---Content-2-chromium-linux.png -------------------------------------------------------------------------------- /packages/ui/tests/screenshots/pages/navigation/navigation.table.truncated.base.screen.ts-snapshots/Navigation-truncated-table---Content-3-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/tests/screenshots/pages/navigation/navigation.table.truncated.base.screen.ts-snapshots/Navigation-truncated-table---Content-3-chromium-linux.png -------------------------------------------------------------------------------- /packages/ui/tests/screenshots/pages/navigation/navigation.table.truncated.base.screen.ts-snapshots/Navigation-truncated-table---Content-4-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/tests/screenshots/pages/navigation/navigation.table.truncated.base.screen.ts-snapshots/Navigation-truncated-table---Content-4-chromium-linux.png -------------------------------------------------------------------------------- /packages/ui/tests/screenshots/pages/operations/jobs.base.screen.ts-snapshots/Job---Details-1-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/tests/screenshots/pages/operations/jobs.base.screen.ts-snapshots/Job---Details-1-chromium-linux.png -------------------------------------------------------------------------------- /packages/ui/tests/screenshots/pages/operations/jobs.base.screen.ts-snapshots/Job---Details-2-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/tests/screenshots/pages/operations/jobs.base.screen.ts-snapshots/Job---Details-2-chromium-linux.png -------------------------------------------------------------------------------- /packages/ui/tests/screenshots/pages/operations/jobs.base.screen.ts-snapshots/Job---Details-3-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/tests/screenshots/pages/operations/jobs.base.screen.ts-snapshots/Job---Details-3-chromium-linux.png -------------------------------------------------------------------------------- /packages/ui/tests/screenshots/pages/operations/jobs.base.screen.ts-snapshots/Job---Details-4-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/tests/screenshots/pages/operations/jobs.base.screen.ts-snapshots/Job---Details-4-chromium-linux.png -------------------------------------------------------------------------------- /packages/ui/tests/screenshots/pages/operations/operations.base.screen.ts-snapshots/Operation---Details-1-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/tests/screenshots/pages/operations/operations.base.screen.ts-snapshots/Operation---Details-1-chromium-linux.png -------------------------------------------------------------------------------- /packages/ui/tests/screenshots/pages/operations/operations.base.screen.ts-snapshots/Operation---Jobs-1-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/tests/screenshots/pages/operations/operations.base.screen.ts-snapshots/Operation---Jobs-1-chromium-linux.png -------------------------------------------------------------------------------- /packages/ui/tests/screenshots/pages/operations/operations.base.screen.ts-snapshots/Operation---Statistics-1-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/tests/screenshots/pages/operations/operations.base.screen.ts-snapshots/Operation---Statistics-1-chromium-linux.png -------------------------------------------------------------------------------- /packages/ui/tests/screenshots/pages/operations/operations.base.screen.ts-snapshots/Operations---List-1-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/tests/screenshots/pages/operations/operations.base.screen.ts-snapshots/Operations---List-1-chromium-linux.png -------------------------------------------------------------------------------- /packages/ui/tests/screenshots/pages/scheduling/scheduling.base.screen.ts-snapshots/Scheduling---ACL-1-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/tests/screenshots/pages/scheduling/scheduling.base.screen.ts-snapshots/Scheduling---ACL-1-chromium-linux.png -------------------------------------------------------------------------------- /packages/ui/tests/screenshots/pages/scheduling/scheduling.base.screen.ts-snapshots/Scheduling---ACL-2-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/tests/screenshots/pages/scheduling/scheduling.base.screen.ts-snapshots/Scheduling---ACL-2-chromium-linux.png -------------------------------------------------------------------------------- /packages/ui/tests/screenshots/pages/scheduling/scheduling.base.screen.ts-snapshots/Scheduling---ACL-3-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/tests/screenshots/pages/scheduling/scheduling.base.screen.ts-snapshots/Scheduling---ACL-3-chromium-linux.png -------------------------------------------------------------------------------- /packages/ui/tests/screenshots/pages/scheduling/scheduling.base.screen.ts-snapshots/Scheduling---Details-1-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/tests/screenshots/pages/scheduling/scheduling.base.screen.ts-snapshots/Scheduling---Details-1-chromium-linux.png -------------------------------------------------------------------------------- /packages/ui/tests/screenshots/pages/scheduling/scheduling.base.screen.ts-snapshots/Scheduling---Details-2-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/tests/screenshots/pages/scheduling/scheduling.base.screen.ts-snapshots/Scheduling---Details-2-chromium-linux.png -------------------------------------------------------------------------------- /packages/ui/tests/screenshots/pages/scheduling/scheduling.base.screen.ts-snapshots/Scheduling---Details-3-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/tests/screenshots/pages/scheduling/scheduling.base.screen.ts-snapshots/Scheduling---Details-3-chromium-linux.png -------------------------------------------------------------------------------- /packages/ui/tests/screenshots/pages/scheduling/scheduling.base.screen.ts-snapshots/Scheduling---Details-4-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/tests/screenshots/pages/scheduling/scheduling.base.screen.ts-snapshots/Scheduling---Details-4-chromium-linux.png -------------------------------------------------------------------------------- /packages/ui/tests/screenshots/pages/scheduling/scheduling.base.screen.ts-snapshots/Scheduling---Details-5-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/tests/screenshots/pages/scheduling/scheduling.base.screen.ts-snapshots/Scheduling---Details-5-chromium-linux.png -------------------------------------------------------------------------------- /packages/ui/tests/screenshots/pages/scheduling/scheduling.base.screen.ts-snapshots/Scheduling---Details-6-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/tests/screenshots/pages/scheduling/scheduling.base.screen.ts-snapshots/Scheduling---Details-6-chromium-linux.png -------------------------------------------------------------------------------- /packages/ui/tests/screenshots/pages/scheduling/scheduling.base.screen.ts-snapshots/Scheduling---Editor-1-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/tests/screenshots/pages/scheduling/scheduling.base.screen.ts-snapshots/Scheduling---Editor-1-chromium-linux.png -------------------------------------------------------------------------------- /packages/ui/tests/screenshots/pages/scheduling/scheduling.base.screen.ts-snapshots/Scheduling---Editor-2-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/tests/screenshots/pages/scheduling/scheduling.base.screen.ts-snapshots/Scheduling---Editor-2-chromium-linux.png -------------------------------------------------------------------------------- /packages/ui/tests/screenshots/pages/scheduling/scheduling.base.screen.ts-snapshots/Scheduling---Editor-3-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/tests/screenshots/pages/scheduling/scheduling.base.screen.ts-snapshots/Scheduling---Editor-3-chromium-linux.png -------------------------------------------------------------------------------- /packages/ui/tests/screenshots/pages/scheduling/scheduling.base.screen.ts-snapshots/Scheduling---Editor-4-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/tests/screenshots/pages/scheduling/scheduling.base.screen.ts-snapshots/Scheduling---Editor-4-chromium-linux.png -------------------------------------------------------------------------------- /packages/ui/tests/screenshots/pages/scheduling/scheduling.base.screen.ts-snapshots/Scheduling---Editor-5-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/tests/screenshots/pages/scheduling/scheduling.base.screen.ts-snapshots/Scheduling---Editor-5-chromium-linux.png -------------------------------------------------------------------------------- /packages/ui/tests/screenshots/pages/scheduling/scheduling.base.screen.ts-snapshots/Scheduling---Overview-1-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/tests/screenshots/pages/scheduling/scheduling.base.screen.ts-snapshots/Scheduling---Overview-1-chromium-linux.png -------------------------------------------------------------------------------- /packages/ui/tests/screenshots/pages/settings/settings.base.screen.ts-snapshots/Settings-checking-the-functionality-of-the-menu-1-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/tests/screenshots/pages/settings/settings.base.screen.ts-snapshots/Settings-checking-the-functionality-of-the-menu-1-chromium-linux.png -------------------------------------------------------------------------------- /packages/ui/tests/screenshots/pages/settings/settings.base.screen.ts-snapshots/Settings-checking-the-functionality-of-the-menu-2-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/tests/screenshots/pages/settings/settings.base.screen.ts-snapshots/Settings-checking-the-functionality-of-the-menu-2-chromium-linux.png -------------------------------------------------------------------------------- /packages/ui/tests/screenshots/pages/sticky-toolbar/sticky-toolbar.screen.ts-snapshots/StickyToolbar-components-1-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/tests/screenshots/pages/sticky-toolbar/sticky-toolbar.screen.ts-snapshots/StickyToolbar-components-1-chromium-linux.png -------------------------------------------------------------------------------- /packages/ui/tests/screenshots/pages/sticky-toolbar/sticky-toolbar.screen.ts-snapshots/StickyToolbar-components-2-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/tests/screenshots/pages/sticky-toolbar/sticky-toolbar.screen.ts-snapshots/StickyToolbar-components-2-chromium-linux.png -------------------------------------------------------------------------------- /packages/ui/tests/screenshots/pages/sticky-toolbar/sticky-toolbar.screen.ts-snapshots/StickyToolbar-navigation-1-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/tests/screenshots/pages/sticky-toolbar/sticky-toolbar.screen.ts-snapshots/StickyToolbar-navigation-1-chromium-linux.png -------------------------------------------------------------------------------- /packages/ui/tests/screenshots/pages/sticky-toolbar/sticky-toolbar.screen.ts-snapshots/StickyToolbar-navigation-2-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/tests/screenshots/pages/sticky-toolbar/sticky-toolbar.screen.ts-snapshots/StickyToolbar-navigation-2-chromium-linux.png -------------------------------------------------------------------------------- /packages/ui/tests/screenshots/pages/sticky-toolbar/sticky-toolbar.screen.ts-snapshots/StickyToolbar-navigation-3-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/tests/screenshots/pages/sticky-toolbar/sticky-toolbar.screen.ts-snapshots/StickyToolbar-navigation-3-chromium-linux.png -------------------------------------------------------------------------------- /packages/ui/tests/screenshots/pages/sticky-toolbar/sticky-toolbar.screen.ts-snapshots/StickyToolbar-navigation-4-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/tests/screenshots/pages/sticky-toolbar/sticky-toolbar.screen.ts-snapshots/StickyToolbar-navigation-4-chromium-linux.png -------------------------------------------------------------------------------- /packages/ui/tests/screenshots/pages/sticky-toolbar/sticky-toolbar.screen.ts-snapshots/StickyToolbar-operations-1-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ytsaurus/ytsaurus-ui/237e207a04b68bf311f52d6ad3eb326ada718ff2/packages/ui/tests/screenshots/pages/sticky-toolbar/sticky-toolbar.screen.ts-snapshots/StickyToolbar-operations-1-chromium-linux.png -------------------------------------------------------------------------------- /packages/ui/tests/utils/afterEach.ts: -------------------------------------------------------------------------------- 1 | import {test} from '@playwright/test'; 2 | 3 | test.afterEach(async ({page}, testInfo) => { 4 | if (testInfo.status !== testInfo.expectedStatus) { 5 | console.log(`Finished ${testInfo.title} with status ${testInfo.status}`); 6 | console.log(`Did not run as expected, ended up at ${page.url()}`); 7 | } 8 | }); 9 | -------------------------------------------------------------------------------- /packages/ui/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@gravity-ui/tsconfig/tsconfig.json", 3 | "compilerOptions": { 4 | "target": "ES2018", 5 | "resolveJsonModule": true, 6 | "allowSyntheticDefaultImports": true 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /packages/ui/tsconfig.publish.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig", 3 | "compilerOptions": { 4 | "declaration": true, 5 | "allowJs": true, 6 | "module": "esnext", 7 | "target": "ES2018", 8 | "jsx": "react", 9 | "resolveJsonModule": true, 10 | "baseUrl": ".", 11 | "isolatedModules": true 12 | }, 13 | "include": ["src/**/*"] 14 | } 15 | --------------------------------------------------------------------------------