├── .codecov.yml
├── .cz-config.js
├── .dockerignore
├── .editorconfig
├── .erda
└── pipelines
│ └── ci-build-ce.yml
├── .eslintignore
├── .eslintrc.js
├── .github
├── CONTRIBUTING.md
├── ISSUE_TEMPLATE
│ └── bug-template.md
├── PULL_REQUEST_TEMPLATE.md
├── prlint.json
├── semantic.yml
└── workflows
│ ├── codecov.yml
│ ├── codeql-analysis.yml
│ ├── git-sync.yml
│ └── license-check.yml
├── .gitignore
├── .husky
├── .gitignore
├── commit-msg
└── pre-commit
├── .licenserc.json
├── .npmrc
├── .prettierrc.js
├── .stylelintignore
├── .stylelintrc.js
├── Dockerfile
├── LICENSE
├── README.md
├── VERSION
├── cert
├── dev
│ ├── server.crt
│ ├── server.csr
│ ├── server.key
│ └── server.pass.key
└── test
│ ├── server.crt
│ ├── server.csr
│ ├── server.key
│ └── server.pass.key
├── cli
├── .eslintrc.js
├── .gitignore
├── .npmignore
├── LICENSE
├── README.md
├── bin
│ └── erda.ts
├── lib
│ ├── add-license.ts
│ ├── build-enterprise-online.ts
│ ├── build-enterprise.ts
│ ├── build-online.ts
│ ├── build.ts
│ ├── check-build-status.ts
│ ├── check-license.ts
│ ├── clear-installed-dependencies.ts
│ ├── fetch-image-content.ts
│ ├── i18n.ts
│ ├── init.ts
│ ├── local-icon.ts
│ ├── pkg-version-setter.ts
│ ├── service-generator.ts
│ └── util
│ │ ├── env.ts
│ │ ├── file-walker.ts
│ │ ├── gen-version.ts
│ │ ├── git-commands.ts
│ │ ├── google-translate.ts
│ │ ├── i18n-config.ts
│ │ ├── i18n-extract.ts
│ │ ├── i18n-utils.ts
│ │ ├── log.ts
│ │ └── youdao-translate.ts
├── package.json
├── templates
│ └── license.ts
└── tsconfig.json
├── commitlint.config.js
├── core
├── package.json
├── src
│ ├── agent.ts
│ ├── config.ts
│ ├── cube.ts
│ ├── framework
│ │ ├── regist-router.tsx
│ │ └── regist-store.ts
│ ├── history.ts
│ ├── i18n.ts
│ ├── index.tsx
│ ├── service
│ │ └── index.ts
│ ├── stores
│ │ ├── loading.ts
│ │ ├── route.ts
│ │ └── user-map.ts
│ ├── types
│ │ ├── global.d.ts
│ │ └── shell.d.ts
│ └── utils
│ │ ├── event-hub.ts
│ │ ├── global-space.ts
│ │ ├── mf-helper.ts
│ │ └── ws.ts
├── tsconfig.json
├── webpack.analyze.js
├── webpack.config.js
├── webpack.development.js
└── webpack.production.js
├── cspell.json
├── docs
├── files
│ ├── architecture.jpg
│ └── logo.png
├── introduction_en.md
└── introduction_zh.md
├── erda.yml
├── f2elint.config.js
├── install-cli.js
├── locales
├── en.json
└── zh.json
├── modules
├── components
│ ├── .dumi
│ │ └── theme
│ │ │ └── layout.tsx
│ ├── .eslintrc.js
│ ├── .fatherrc.ts
│ ├── .gitignore
│ ├── .prettierignore
│ ├── .prettierrc.js
│ ├── .umirc.ts
│ ├── CHANGELOG.md
│ ├── README.md
│ ├── __tests__
│ │ ├── config-provider
│ │ │ └── index.test.tsx
│ │ ├── ellipsis
│ │ │ └── index.test.tsx
│ │ ├── extend-expect.ts
│ │ ├── form-modal
│ │ │ └── index.test.tsx
│ │ ├── form
│ │ │ └── index.test.tsx
│ │ ├── icon
│ │ │ └── index.test.tsx
│ │ ├── pagination
│ │ │ └── index.test.tsx
│ │ ├── setupJest.ts
│ │ ├── table
│ │ │ ├── batch-operation.test.tsx
│ │ │ └── index.test.tsx
│ │ ├── types
│ │ │ └── index.d.ts
│ │ └── utils
│ │ │ └── hooks
│ │ │ └── index.test.tsx
│ ├── babel.config.js
│ ├── cspell.json
│ ├── docs
│ │ ├── components
│ │ │ ├── configProvider
│ │ │ │ ├── demos
│ │ │ │ │ └── basic.tsx
│ │ │ │ └── index.md
│ │ │ ├── ellipsis
│ │ │ │ ├── demos
│ │ │ │ │ └── basic.tsx
│ │ │ │ └── index.md
│ │ │ ├── form
│ │ │ │ ├── demos
│ │ │ │ │ ├── array
│ │ │ │ │ │ ├── array-field.tsx
│ │ │ │ │ │ ├── array-object.tsx
│ │ │ │ │ │ └── array-tabs.tsx
│ │ │ │ │ ├── async-dataSource.tsx
│ │ │ │ │ ├── basic.tsx
│ │ │ │ │ ├── custom-comp.tsx
│ │ │ │ │ ├── edit.tsx
│ │ │ │ │ ├── form-tabs.tsx
│ │ │ │ │ ├── layout
│ │ │ │ │ │ ├── custom.tsx
│ │ │ │ │ │ ├── multi-col.tsx
│ │ │ │ │ │ └── none-form.tsx
│ │ │ │ │ ├── linkage
│ │ │ │ │ │ ├── async1.tsx
│ │ │ │ │ │ ├── async2.tsx
│ │ │ │ │ │ ├── dependency.tsx
│ │ │ │ │ │ ├── one-to-one.tsx
│ │ │ │ │ │ └── self.tsx
│ │ │ │ │ ├── performance
│ │ │ │ │ │ ├── antd.tsx
│ │ │ │ │ │ └── erda.tsx
│ │ │ │ │ ├── reset.tsx
│ │ │ │ │ ├── selectTable.tsx
│ │ │ │ │ ├── step-form.tsx
│ │ │ │ │ └── validator.tsx
│ │ │ │ └── index.md
│ │ │ ├── formModal
│ │ │ │ ├── demos
│ │ │ │ │ ├── basic.tsx
│ │ │ │ │ ├── edit.tsx
│ │ │ │ │ └── exact-title.tsx
│ │ │ │ └── index.md
│ │ │ ├── icon
│ │ │ │ ├── demos
│ │ │ │ │ ├── basic.tsx
│ │ │ │ │ ├── color-size.tsx
│ │ │ │ │ └── custom.tsx
│ │ │ │ └── index.md
│ │ │ ├── pagination
│ │ │ │ ├── demos
│ │ │ │ │ └── basic.tsx
│ │ │ │ └── index.md
│ │ │ └── table
│ │ │ │ ├── demos
│ │ │ │ ├── basic.tsx
│ │ │ │ ├── batch-operation.tsx
│ │ │ │ ├── empty-text.tsx
│ │ │ │ ├── pagination.tsx
│ │ │ │ ├── row-action.tsx
│ │ │ │ ├── row-selection.tsx
│ │ │ │ └── sort.tsx
│ │ │ │ └── index.md
│ │ ├── index.md
│ │ └── logo.png
│ ├── gulpfile-build.js
│ ├── gulpfile.js
│ ├── jest.config.js
│ ├── lint-staged.config.js
│ ├── package.json
│ ├── public
│ │ └── favicon.ico
│ ├── renovate.json
│ ├── src
│ │ ├── _util
│ │ │ └── hooks.ts
│ │ ├── context-provider
│ │ │ ├── index.tsx
│ │ │ └── style
│ │ │ │ └── index.tsx
│ │ ├── ellipsis
│ │ │ ├── index.tsx
│ │ │ └── style
│ │ │ │ ├── index.less
│ │ │ │ └── index.tsx
│ │ ├── form-modal
│ │ │ ├── index.tsx
│ │ │ └── style
│ │ │ │ └── index.ts
│ │ ├── form
│ │ │ ├── array-tabs
│ │ │ │ └── index.tsx
│ │ │ ├── index.tsx
│ │ │ ├── interface.ts
│ │ │ ├── select-table
│ │ │ │ ├── index.tsx
│ │ │ │ └── style.less
│ │ │ ├── style
│ │ │ │ ├── index.less
│ │ │ │ └── index.tsx
│ │ │ └── utils.tsx
│ │ ├── icon
│ │ │ ├── index.tsx
│ │ │ └── style
│ │ │ │ ├── index.less
│ │ │ │ └── index.ts
│ │ ├── index.tsx
│ │ ├── locale-provider
│ │ │ ├── context.ts
│ │ │ └── index.tsx
│ │ ├── locale
│ │ │ ├── default.tsx
│ │ │ ├── en_US.tsx
│ │ │ └── zh_CN.tsx
│ │ ├── pagination
│ │ │ ├── index.tsx
│ │ │ └── style
│ │ │ │ ├── index.less
│ │ │ │ └── index.tsx
│ │ ├── style.ts
│ │ ├── table
│ │ │ ├── batch-operation.tsx
│ │ │ ├── index.tsx
│ │ │ ├── interface.ts
│ │ │ ├── sorter.tsx
│ │ │ ├── style
│ │ │ │ ├── batch-operation.less
│ │ │ │ ├── index.less
│ │ │ │ ├── index.ts
│ │ │ │ ├── table-config-header.less
│ │ │ │ └── table-footer.less
│ │ │ ├── table-config-header.tsx
│ │ │ ├── table-footer.tsx
│ │ │ └── utils.tsx
│ │ ├── themes
│ │ │ ├── color.less
│ │ │ └── default.less
│ │ └── types
│ │ │ └── global.d.ts
│ ├── tsconfig-jest.json
│ ├── tsconfig.json
│ ├── utils
│ │ └── transformLess.js
│ └── webpack.config.js
├── market
│ ├── .env
│ ├── .gitignore
│ ├── craco.config.js
│ ├── package.json
│ ├── paths.json
│ ├── public
│ │ ├── favicon.ico
│ │ ├── index.html
│ │ └── manifest.json
│ ├── src
│ │ ├── App.tsx
│ │ ├── images
│ │ │ ├── download
│ │ │ │ ├── download-bg1@2x.png
│ │ │ │ ├── download-bg2@2x.png
│ │ │ │ ├── download-bg@2x.png
│ │ │ │ ├── download-c@2x.png
│ │ │ │ ├── download-r1@2x.png
│ │ │ │ ├── download-s1@2x.png
│ │ │ │ ├── download-y1@2x.png
│ │ │ │ └── download-y2@2x.png
│ │ │ └── favicon.ico
│ │ ├── index.js
│ │ ├── pages
│ │ │ ├── download-pc.scss
│ │ │ ├── download-pc.tsx
│ │ │ ├── download.scss
│ │ │ ├── download.tsx
│ │ │ └── utils.ts
│ │ ├── react-app-env.d.ts
│ │ └── styles
│ │ │ ├── _resources.scss
│ │ │ ├── _util.scss
│ │ │ └── _variable.scss
│ └── tsconfig.json
└── uc
│ ├── .env
│ ├── .gitignore
│ ├── craco.config.js
│ ├── package.json
│ ├── paths.json
│ ├── public
│ ├── favicon.ico
│ ├── index.html
│ ├── logo192.png
│ ├── manifest.json
│ └── robots.txt
│ ├── src
│ ├── common
│ │ ├── components
│ │ │ ├── container.css
│ │ │ ├── container.tsx
│ │ │ ├── form-input.tsx
│ │ │ └── message.tsx
│ │ ├── history.ts
│ │ ├── i18n.ts
│ │ ├── index.ts
│ │ └── utils.tsx
│ ├── images
│ │ ├── default-user.svg
│ │ ├── edit.svg
│ │ ├── favicon.ico
│ │ ├── favicon.png
│ │ ├── login.png
│ │ ├── login.svg
│ │ ├── logo.svg
│ │ ├── s_error.svg
│ │ ├── s_info.svg
│ │ ├── s_success.svg
│ │ └── s_warning.svg
│ ├── index.css
│ ├── index.js
│ ├── locales
│ │ ├── en.json
│ │ └── zh.json
│ ├── ory
│ │ ├── errors.ts
│ │ ├── flow.tsx
│ │ ├── index.tsx
│ │ ├── node.tsx
│ │ └── utils.tsx
│ ├── pages
│ │ ├── login
│ │ │ └── index.tsx
│ │ ├── recovery
│ │ │ └── index.tsx
│ │ ├── registration
│ │ │ └── index.tsx
│ │ └── setting
│ │ │ └── index.tsx
│ ├── react-app-env.d.ts
│ ├── router.tsx
│ ├── services
│ │ └── uc.tsx
│ └── types
│ │ └── uc.d.ts
│ ├── tailwind.config.js
│ └── tsconfig.json
├── package.json
├── pipeline.yml
├── pnpm-lock.yaml
├── pnpm-workspace.yaml
├── scheduler
├── .babelrc
├── .gitignore
├── nest-cli.json
├── package.json
├── src
│ ├── app.module.ts
│ ├── controllers
│ │ ├── health.controller.ts
│ │ ├── legacy-route.controller.ts
│ │ ├── linkS-token.controller.ts
│ │ ├── market.controller.ts
│ │ ├── uc.controller.ts
│ │ └── version.controller.ts
│ ├── filters
│ │ ├── error-catch.filter.ts
│ │ └── not-found.filter.ts
│ ├── main.ts
│ ├── middlewares
│ │ └── guard.middleware.ts
│ ├── proxy.ts
│ └── util.ts
├── tsconfig.build.json
└── tsconfig.json
└── shell
├── __mocks__
└── react.js
├── app
├── App-vite.tsx
├── App.tsx
├── agent.js
├── antd-default-props.tsx
├── antd-overwrite
│ ├── avatar
│ │ └── index.tsx
│ ├── button
│ │ └── index.tsx
│ ├── input
│ │ └── index.tsx
│ ├── popconfirm
│ │ └── index.tsx
│ ├── range-picker
│ │ └── index.tsx
│ ├── select
│ │ └── index.tsx
│ ├── table
│ │ ├── index.scss
│ │ └── index.tsx
│ ├── tabs
│ │ └── index.tsx
│ └── tag
│ │ └── index.tsx
├── bootstrap.js
├── charts
│ ├── components
│ │ ├── bar-chart.jsx
│ │ ├── chart-render.jsx
│ │ ├── echarts.jsx
│ │ ├── echarts.scss
│ │ ├── hollow-pie-chart.jsx
│ │ ├── map-chart.jsx
│ │ ├── monitor-chart-new.jsx
│ │ └── pie-chart.jsx
│ ├── index.js
│ ├── text-map.js
│ ├── theme.js
│ └── utils
│ │ ├── convertor.ts
│ │ ├── formatter.js
│ │ ├── index.tsx
│ │ ├── line-option.ts
│ │ └── regist.tsx
├── common
│ ├── __tests__
│ │ └── use-hook.test.tsx
│ ├── components
│ │ ├── add-member-modal
│ │ │ ├── __tests__
│ │ │ │ ├── add-member-modal.test.tsx
│ │ │ │ └── index.test.tsx
│ │ │ ├── add-member-modal.tsx
│ │ │ └── index.ts
│ │ ├── addon-settings
│ │ │ ├── __tests__
│ │ │ │ └── index.test.tsx
│ │ │ ├── addon-settings.scss
│ │ │ ├── addon-settings.tsx
│ │ │ └── index.tsx
│ │ ├── authorize-member-modal
│ │ │ ├── __tests__
│ │ │ │ └── index.test.tsx
│ │ │ └── index.tsx
│ │ ├── avatar
│ │ │ ├── __tests__
│ │ │ │ └── index.test.tsx
│ │ │ ├── index.scss
│ │ │ └── index.tsx
│ │ ├── back-to-top
│ │ │ ├── __tests__
│ │ │ │ └── index.test.tsx
│ │ │ ├── index.scss
│ │ │ └── index.tsx
│ │ ├── badge
│ │ │ ├── __tests__
│ │ │ │ └── index.test.tsx
│ │ │ ├── index.scss
│ │ │ └── index.tsx
│ │ ├── base-list
│ │ │ ├── __tests__
│ │ │ │ ├── index.test.tsx
│ │ │ │ └── list-item.test.tsx
│ │ │ ├── index.scss
│ │ │ ├── index.spec.d.ts
│ │ │ ├── index.tsx
│ │ │ └── list-item.tsx
│ │ ├── batch-authorize-member-modal
│ │ │ ├── __tests__
│ │ │ │ └── index.test.tsx
│ │ │ └── index.tsx
│ │ ├── batch-operation
│ │ │ ├── __tests__
│ │ │ │ └── index.test.tsx
│ │ │ └── index.tsx
│ │ ├── board-grid
│ │ │ ├── __tests__
│ │ │ │ └── index.test.tsx
│ │ │ └── index.tsx
│ │ ├── card-container
│ │ │ ├── __tests__
│ │ │ │ └── index.test.tsx
│ │ │ ├── index.scss
│ │ │ └── index.tsx
│ │ ├── cards-layout
│ │ │ ├── __tests__
│ │ │ │ └── index.test.tsx
│ │ │ ├── index.scss
│ │ │ └── index.tsx
│ │ ├── common-range-picker
│ │ │ ├── __tests__
│ │ │ │ └── index.test.tsx
│ │ │ └── index.tsx
│ │ ├── comp-switcher
│ │ │ ├── __tests__
│ │ │ │ └── index.test.tsx
│ │ │ └── index.tsx
│ │ ├── config-layout
│ │ │ ├── __tests__
│ │ │ │ └── index.test.tsx
│ │ │ ├── index.scss
│ │ │ └── index.tsx
│ │ ├── configurable-filter
│ │ │ ├── config-selector.scss
│ │ │ ├── config-selector.tsx
│ │ │ ├── external-item.scss
│ │ │ ├── external-item.tsx
│ │ │ ├── for__tests__
│ │ │ │ ├── config-selector.test.tsx
│ │ │ │ ├── external-item.test.tsx
│ │ │ │ └── index.test.tsx
│ │ │ ├── index.scss
│ │ │ └── index.tsx
│ │ ├── confirm-delete
│ │ │ ├── __tests__
│ │ │ │ └── index.test.tsx
│ │ │ └── index.tsx
│ │ ├── contractive-filter
│ │ │ ├── __tests__
│ │ │ │ └── index.test.tsx
│ │ │ ├── index.scss
│ │ │ └── index.tsx
│ │ ├── copy
│ │ │ ├── __tests__
│ │ │ │ └── index.test.tsx
│ │ │ └── index.tsx
│ │ ├── crud-table
│ │ │ ├── __tests__
│ │ │ │ └── index.test.tsx
│ │ │ └── index.tsx
│ │ ├── custom-filter
│ │ │ └── index.tsx
│ │ ├── debounce-search
│ │ │ ├── __tests__
│ │ │ │ └── index.test.tsx
│ │ │ └── index.tsx
│ │ ├── delete-confirm
│ │ │ ├── __tests__
│ │ │ │ └── index.test.tsx
│ │ │ └── index.tsx
│ │ ├── details-panel
│ │ │ ├── __tests__
│ │ │ │ └── index.test.tsx
│ │ │ ├── index.scss
│ │ │ └── index.tsx
│ │ ├── dropdown-select-new
│ │ │ ├── __tests__
│ │ │ │ └── index.test.tsx
│ │ │ ├── index.scss
│ │ │ └── index.tsx
│ │ ├── dropdown-select
│ │ │ ├── __tests__
│ │ │ │ └── index.test.tsx
│ │ │ └── index.tsx
│ │ ├── duration
│ │ │ ├── __tests__
│ │ │ │ └── index.test.tsx
│ │ │ ├── duration.scss
│ │ │ └── index.tsx
│ │ ├── edit-field
│ │ │ ├── __tests__
│ │ │ │ └── index.test.tsx
│ │ │ ├── index.scss
│ │ │ └── index.tsx
│ │ ├── ellipsis
│ │ │ ├── __tests__
│ │ │ │ └── index.test.tsx
│ │ │ └── index.tsx
│ │ ├── empty-holder
│ │ │ ├── __tests__
│ │ │ │ └── index.test.tsx
│ │ │ ├── index.scss
│ │ │ └── index.tsx
│ │ ├── empty-list-holder
│ │ │ ├── __tests__
│ │ │ │ └── index.test.tsx
│ │ │ └── index.tsx
│ │ ├── erda-alert
│ │ │ ├── __tests__
│ │ │ │ └── index.test.tsx
│ │ │ ├── index.scss
│ │ │ └── index.tsx
│ │ ├── erda-icon
│ │ │ ├── __tests__
│ │ │ │ └── index.test.tsx
│ │ │ ├── index.scss
│ │ │ └── index.tsx
│ │ ├── error-boundary
│ │ │ ├── __tests__
│ │ │ │ └── index.test.tsx
│ │ │ ├── index.scss
│ │ │ └── index.tsx
│ │ ├── file-editor
│ │ │ ├── __tests__
│ │ │ │ └── index.test.tsx
│ │ │ ├── index.scss
│ │ │ └── index.tsx
│ │ ├── file-select
│ │ │ ├── __tests__
│ │ │ │ └── index.test.tsx
│ │ │ ├── index.scss
│ │ │ └── index.tsx
│ │ ├── filter-group
│ │ │ ├── __tests__
│ │ │ │ └── index.test.tsx
│ │ │ ├── index.scss
│ │ │ └── index.tsx
│ │ ├── filter
│ │ │ ├── __tests__
│ │ │ │ ├── base-filter.test.tsx
│ │ │ │ └── index.test.tsx
│ │ │ ├── base-filter.tsx
│ │ │ └── index.tsx
│ │ ├── form-builder
│ │ │ ├── __tests__
│ │ │ │ ├── fields.test.tsx
│ │ │ │ ├── form-builder.test.tsx
│ │ │ │ ├── index.test.tsx
│ │ │ │ └── readonly-field.test.tsx
│ │ │ ├── fields.tsx
│ │ │ ├── form-builder.tsx
│ │ │ ├── index.tsx
│ │ │ └── readonly-field.tsx
│ │ ├── form-modal
│ │ │ ├── __tests__
│ │ │ │ └── index.test.tsx
│ │ │ ├── index.scss
│ │ │ └── index.tsx
│ │ ├── head-operation-bar
│ │ │ ├── __tests__
│ │ │ │ └── index.test.tsx
│ │ │ ├── index.scss
│ │ │ └── index.tsx
│ │ ├── holder
│ │ │ ├── __tests__
│ │ │ │ └── index.test.tsx
│ │ │ └── index.tsx
│ │ ├── icon
│ │ │ ├── __tests__
│ │ │ │ └── index.test.tsx
│ │ │ ├── index.scss
│ │ │ └── index.tsx
│ │ ├── if
│ │ │ ├── __tests__
│ │ │ │ └── index.test.tsx
│ │ │ └── index.tsx
│ │ ├── image-upload
│ │ │ ├── __tests__
│ │ │ │ └── index.test.tsx
│ │ │ ├── index.scss
│ │ │ └── index.tsx
│ │ ├── input-select
│ │ │ ├── __tests__
│ │ │ │ └── index.test.tsx
│ │ │ ├── index.scss
│ │ │ └── index.tsx
│ │ ├── intro
│ │ │ ├── __tests__
│ │ │ │ └── index.test.tsx
│ │ │ └── index.tsx
│ │ ├── json-checker
│ │ │ ├── __tests__
│ │ │ │ └── index.test.tsx
│ │ │ ├── index.scss
│ │ │ └── index.tsx
│ │ ├── key-value-editor
│ │ │ ├── __tests__
│ │ │ │ └── index.test.tsx
│ │ │ ├── index.scss
│ │ │ └── index.tsx
│ │ ├── key-value-list
│ │ │ ├── __tests__
│ │ │ │ └── index.test.tsx
│ │ │ ├── index.scss
│ │ │ └── index.tsx
│ │ ├── key-value-table
│ │ │ ├── __tests__
│ │ │ │ └── index.test.tsx
│ │ │ ├── index.scss
│ │ │ └── index.tsx
│ │ ├── key-value-textarea
│ │ │ ├── __tests__
│ │ │ │ └── index.test.tsx
│ │ │ ├── index.scss
│ │ │ └── index.tsx
│ │ ├── kv-pair
│ │ │ ├── __tests__
│ │ │ │ └── index.test.tsx
│ │ │ └── index.tsx
│ │ ├── lazy-render
│ │ │ ├── __tests__
│ │ │ │ └── index.test.tsx
│ │ │ └── index.tsx
│ │ ├── load-more-selector
│ │ │ ├── index.scss
│ │ │ └── index.tsx
│ │ ├── load-more
│ │ │ ├── __tests__
│ │ │ │ └── index.test.tsx
│ │ │ └── index.tsx
│ │ ├── loading
│ │ │ ├── __tests__
│ │ │ │ └── index.test.tsx
│ │ │ └── index.tsx
│ │ ├── log-roller
│ │ │ ├── __tests__
│ │ │ │ └── index.test.tsx
│ │ │ └── index.tsx
│ │ ├── markdown-editor
│ │ │ ├── __tests__
│ │ │ │ ├── index.test.tsx
│ │ │ │ └── upload-plugin.test.tsx
│ │ │ ├── editor.tsx
│ │ │ ├── index.scss
│ │ │ ├── index.tsx
│ │ │ ├── upload-plugin.scss
│ │ │ └── upload-plugin.tsx
│ │ ├── markdown-render
│ │ │ ├── __tests__
│ │ │ │ └── index.test.tsx
│ │ │ ├── index.scss
│ │ │ └── index.tsx
│ │ ├── member-selector
│ │ │ ├── __tests__
│ │ │ │ └── index.test.tsx
│ │ │ └── index.tsx
│ │ ├── members-table
│ │ │ ├── __tests__
│ │ │ │ ├── index.test.tsx
│ │ │ │ └── url-invite-modal.test.tsx
│ │ │ ├── index.scss
│ │ │ ├── index.tsx
│ │ │ └── url-invite-modal.tsx
│ │ ├── menu-popover
│ │ │ ├── __tests__
│ │ │ │ └── index.test.tsx
│ │ │ ├── index.scss
│ │ │ └── index.tsx
│ │ ├── menu
│ │ │ ├── __tests__
│ │ │ │ └── index.test.tsx
│ │ │ └── index.tsx
│ │ ├── metrics-monitor
│ │ │ ├── __tests__
│ │ │ │ └── index.test.tsx
│ │ │ └── index.tsx
│ │ ├── monitor-chart
│ │ │ ├── __tests__
│ │ │ │ └── index.test.tsx
│ │ │ └── index.tsx
│ │ ├── monitor
│ │ │ ├── __tests__
│ │ │ │ ├── components
│ │ │ │ │ ├── timeRangeSelector.test.tsx
│ │ │ │ │ └── timeSelector.test.tsx
│ │ │ │ ├── index.test.tsx
│ │ │ │ ├── monitor-chart-panel.test.tsx
│ │ │ │ ├── monitor-chart.test.tsx
│ │ │ │ └── timeSelector.test.tsx
│ │ │ ├── components
│ │ │ │ ├── timeRangeSelector.tsx
│ │ │ │ ├── timeSelector.scss
│ │ │ │ └── timeSelector.tsx
│ │ │ ├── index.ts
│ │ │ ├── monitor-chart-panel.scss
│ │ │ ├── monitor-chart-panel.tsx
│ │ │ ├── monitor-chart.scss
│ │ │ ├── monitor-chart.tsx
│ │ │ └── timeSelector.tsx
│ │ ├── no-auth-tip
│ │ │ ├── __tests__
│ │ │ │ └── index.test.tsx
│ │ │ ├── index.ts
│ │ │ └── no-auth-tip.tsx
│ │ ├── operation-bar
│ │ │ ├── __tests__
│ │ │ │ └── index.test.tsx
│ │ │ ├── index.scss
│ │ │ └── index.tsx
│ │ ├── pagination
│ │ │ ├── __tests__
│ │ │ │ └── index.test.tsx
│ │ │ ├── index.scss
│ │ │ └── index.tsx
│ │ ├── panel
│ │ │ ├── __tests__
│ │ │ │ └── index.test.tsx
│ │ │ ├── index.scss
│ │ │ └── index.tsx
│ │ ├── pure-log-roller
│ │ │ ├── __tests__
│ │ │ │ ├── download-log-modal.test.tsx
│ │ │ │ ├── index.test.tsx
│ │ │ │ ├── log-content.test.tsx
│ │ │ │ ├── log-roller.test.tsx
│ │ │ │ └── log-utils.test.tsx
│ │ │ ├── download-log-modal.tsx
│ │ │ ├── index.ts
│ │ │ ├── log-content.scss
│ │ │ ├── log-content.tsx
│ │ │ ├── log-roller.scss
│ │ │ ├── log-roller.tsx
│ │ │ └── log-util.ts
│ │ ├── radio-tabs
│ │ │ ├── __tests__
│ │ │ │ └── index.test.tsx
│ │ │ ├── index.scss
│ │ │ └── index.tsx
│ │ ├── readme.md
│ │ ├── readonly-form
│ │ │ ├── __tests__
│ │ │ │ └── index.test.tsx
│ │ │ └── index.tsx
│ │ ├── render-form-item
│ │ │ ├── __tests__
│ │ │ │ └── index.test.tsx
│ │ │ └── index.tsx
│ │ ├── render-form
│ │ │ ├── __tests__
│ │ │ │ └── index.test.tsx
│ │ │ └── index.tsx
│ │ ├── render-pure-form
│ │ │ ├── __tests__
│ │ │ │ └── index.test.tsx
│ │ │ ├── index.scss
│ │ │ └── index.tsx
│ │ ├── responsive
│ │ │ ├── __tests__
│ │ │ │ └── index.test.tsx
│ │ │ └── index.tsx
│ │ ├── search-table
│ │ │ ├── __tests__
│ │ │ │ └── index.test.tsx
│ │ │ ├── index.scss
│ │ │ └── index.tsx
│ │ ├── setting-tabs
│ │ │ ├── __tests__
│ │ │ │ └── index.test.tsx
│ │ │ ├── index.scss
│ │ │ └── index.tsx
│ │ ├── simple-log
│ │ │ ├── __tests__
│ │ │ │ ├── index.test.tsx
│ │ │ │ ├── simple-log-roller.test.tsx
│ │ │ │ ├── simple-log-search.test.tsx
│ │ │ │ └── simple-log.test.tsx
│ │ │ ├── index.ts
│ │ │ ├── simple-log-roller.tsx
│ │ │ ├── simple-log-search.tsx
│ │ │ ├── simple-log.jsx
│ │ │ └── simple-log.scss
│ │ ├── simple-panel
│ │ │ ├── __tests__
│ │ │ │ └── index.test.tsx
│ │ │ ├── index.scss
│ │ │ └── index.tsx
│ │ ├── simple-tabs
│ │ │ ├── __tests__
│ │ │ │ └── index.test.tsx
│ │ │ ├── index.scss
│ │ │ └── index.tsx
│ │ ├── switch-auto-scroll
│ │ │ ├── __tests__
│ │ │ │ └── index.test.tsx
│ │ │ └── index.tsx
│ │ ├── table-actions
│ │ │ ├── __tests__
│ │ │ │ └── operate-btn.test.tsx
│ │ │ ├── index.scss
│ │ │ └── index.tsx
│ │ ├── table
│ │ │ ├── __tests__
│ │ │ │ ├── index.test.tsx
│ │ │ │ ├── table-config.test.tsx
│ │ │ │ └── table-footer.test.tsx
│ │ │ ├── index.scss
│ │ │ ├── index.tsx
│ │ │ ├── interface.ts
│ │ │ ├── table-config.tsx
│ │ │ └── table-footer.tsx
│ │ ├── tags-row
│ │ │ ├── __tests__
│ │ │ │ └── index.test.tsx
│ │ │ ├── index.scss
│ │ │ └── index.tsx
│ │ ├── tags
│ │ │ ├── __tests__
│ │ │ │ └── index.test.tsx
│ │ │ ├── index.scss
│ │ │ └── index.tsx
│ │ ├── terminal
│ │ │ ├── __tests__
│ │ │ │ └── index.test.tsx
│ │ │ ├── index.scss
│ │ │ └── index.tsx
│ │ ├── text-block-info
│ │ │ ├── __tests__
│ │ │ │ └── index.test.tsx
│ │ │ ├── index.scss
│ │ │ └── index.tsx
│ │ ├── time-select
│ │ │ ├── __tests__
│ │ │ │ ├── index.test.tsx
│ │ │ │ ├── time-select.test.tsx
│ │ │ │ └── utils.test.tsx
│ │ │ ├── index.ts
│ │ │ ├── time-select.scss
│ │ │ ├── time-select.tsx
│ │ │ └── utils.ts
│ │ ├── title
│ │ │ ├── __tests__
│ │ │ │ └── index.test.tsx
│ │ │ └── index.tsx
│ │ ├── top-button-group
│ │ │ ├── __tests__
│ │ │ │ └── index.test.tsx
│ │ │ └── index.tsx
│ │ ├── user-info
│ │ │ ├── __tests__
│ │ │ │ └── user-info.test.tsx
│ │ │ └── index.tsx
│ │ └── user-profile
│ │ │ ├── __tests__
│ │ │ └── index.test.tsx
│ │ │ ├── index.scss
│ │ │ └── index.tsx
│ ├── constants.ts
│ ├── index.ts
│ ├── services
│ │ ├── addon.ts
│ │ ├── dashboard.ts
│ │ ├── index.ts
│ │ ├── metrics.ts
│ │ └── monitorCommon.ts
│ ├── stores
│ │ ├── _crud_module.ts
│ │ ├── _member.ts
│ │ ├── addon.ts
│ │ ├── application-member.ts
│ │ ├── common.ts
│ │ ├── dashboard.ts
│ │ ├── member-label.ts
│ │ ├── member-scope.ts
│ │ ├── metrics.ts
│ │ ├── monitorCommon.ts
│ │ ├── msp-project-member.ts
│ │ ├── org-member.ts
│ │ ├── project-member.ts
│ │ └── sys-member.ts
│ ├── types
│ │ ├── common.d.ts
│ │ ├── member.d.ts
│ │ ├── metrics.d.ts
│ │ ├── pipeline.d.ts
│ │ ├── route.d.ts
│ │ └── tree.d.ts
│ ├── use-hooks.tsx
│ └── utils
│ │ ├── __tests__
│ │ ├── browser.test.tsx
│ │ ├── chart-utils.test.tsx
│ │ ├── component-utils.test.tsx
│ │ ├── connect-cube.test.tsx
│ │ ├── emoji.test.tsx
│ │ ├── go-to.test.tsx
│ │ ├── i18n-replace-link.test.tsx
│ │ ├── index.test.tsx
│ │ ├── query-string.test.tsx
│ │ ├── str-num-date.test.tsx
│ │ └── upload-props.test.tsx
│ │ ├── axios-config.ts
│ │ ├── browser.tsx
│ │ ├── chart-utils.js
│ │ ├── component-utils.tsx
│ │ ├── connect-cube.tsx
│ │ ├── create-scroll-component.tsx
│ │ ├── emoji.ts
│ │ ├── go-to.tsx
│ │ ├── i18n-replace-link.tsx
│ │ ├── index.ts
│ │ ├── query-string.tsx
│ │ ├── str-num-date.tsx
│ │ ├── upload-props.tsx
│ │ └── xterm.js
├── config-page
│ ├── components
│ │ ├── action-form.tsx
│ │ ├── alert
│ │ │ ├── alert.mock.ts
│ │ │ ├── alert.scss
│ │ │ ├── alert.spec.d.ts
│ │ │ └── alert.tsx
│ │ ├── api-editor
│ │ │ ├── api-editor.mock.ts
│ │ │ ├── api-editor.scss
│ │ │ ├── api-editor.spec.d.ts
│ │ │ └── api-editor.tsx
│ │ ├── badge
│ │ │ ├── badge.mock.ts
│ │ │ ├── badge.scss
│ │ │ ├── badge.spec.d.ts
│ │ │ └── badge.tsx
│ │ ├── bar-chart
│ │ │ ├── bar-chart.mock.ts
│ │ │ ├── bar-chart.scss
│ │ │ ├── bar-chart.spec.d.ts
│ │ │ └── bar-chart.tsx
│ │ ├── base-list
│ │ │ ├── base-list.mock.ts
│ │ │ ├── base-list.spec.d.ts
│ │ │ └── base-list.tsx
│ │ ├── breadcrumb
│ │ │ ├── breadcrumb.mock.ts
│ │ │ ├── breadcrumb.spec.d.ts
│ │ │ └── breadcrumb.tsx
│ │ ├── bubble-graph
│ │ │ ├── bubble-graph.spec.d.ts
│ │ │ └── index.tsx
│ │ ├── button
│ │ │ ├── button.mock.ts
│ │ │ ├── button.spec.d.ts
│ │ │ └── button.tsx
│ │ ├── card-container
│ │ │ ├── card-container.mock.ts
│ │ │ ├── card-container.spec.d.ts
│ │ │ └── card-container.tsx
│ │ ├── card
│ │ │ ├── card.mock.ts
│ │ │ ├── card.scss
│ │ │ ├── card.spec.d.ts
│ │ │ └── card.tsx
│ │ ├── chart-block
│ │ │ ├── chart-block.mock.ts
│ │ │ ├── chart-block.spec.d.ts
│ │ │ └── chart-block.tsx
│ │ ├── chart-dashboard
│ │ │ ├── chart-dashboard.spec.d.ts
│ │ │ └── chart-dashboard.tsx
│ │ ├── chart
│ │ │ ├── chart.spec.d.ts
│ │ │ └── chart.tsx
│ │ ├── common.spec.d.ts
│ │ ├── complex-graph
│ │ │ ├── complex-graph.spec.d.ts
│ │ │ └── index.tsx
│ │ ├── compose-table
│ │ │ ├── compose-table.spec.d.ts
│ │ │ └── compose-table.tsx
│ │ ├── configurable-filter
│ │ │ ├── configurable-filter.mock.ts
│ │ │ ├── configurable-filter.spec.d.ts
│ │ │ └── configurable-filter.tsx
│ │ ├── container
│ │ │ ├── container.mock.ts
│ │ │ ├── container.scss
│ │ │ ├── container.spec.d.ts
│ │ │ └── container.tsx
│ │ ├── contractive-filter
│ │ │ ├── contractive-filter.mock.ts
│ │ │ ├── contractive-filter.spec.d.ts
│ │ │ └── contractive-filter.tsx
│ │ ├── copy-button
│ │ │ ├── copy-button.mock.ts
│ │ │ ├── copy-button.spec.d.ts
│ │ │ └── copy-button.tsx
│ │ ├── date-picker
│ │ │ ├── date-picker.spec.d.ts
│ │ │ └── date-picker.tsx
│ │ ├── drawer
│ │ │ ├── drawer.mock.ts
│ │ │ ├── drawer.scss
│ │ │ ├── drawer.spec.d.ts
│ │ │ └── drawer.tsx
│ │ ├── dropdown-select
│ │ │ ├── dropdown-select.mock.ts
│ │ │ ├── dropdown-select.scss
│ │ │ ├── dropdown-select.spec.d.ts
│ │ │ ├── dropdown-select.tsx
│ │ │ └── v2
│ │ │ │ ├── dropdown-select.mock.ts
│ │ │ │ ├── dropdown-select.scss
│ │ │ │ ├── dropdown-select.spec.d.ts
│ │ │ │ └── dropdown-select.tsx
│ │ ├── dropdown
│ │ │ ├── dropdown.spec.d.ts
│ │ │ └── dropdown.tsx
│ │ ├── edit-list
│ │ │ ├── edit-list.spec.d.ts
│ │ │ ├── edit-list.tsx
│ │ │ ├── pure-edit-list.scss
│ │ │ └── pure-edit-list.tsx
│ │ ├── empty-holder
│ │ │ ├── empty-holder.scss
│ │ │ ├── empty-holder.spec.d.ts
│ │ │ └── empty-holder.tsx
│ │ ├── file-editor
│ │ │ ├── file-editor.spec.d.ts
│ │ │ └── file-editor.tsx
│ │ ├── file-tree
│ │ │ ├── file-tree.scss
│ │ │ ├── file-tree.spec.d.ts
│ │ │ └── file-tree.tsx
│ │ ├── form-modal
│ │ │ ├── form-modal.mock.ts
│ │ │ ├── form-modal.spec.d.ts
│ │ │ └── form-modal.tsx
│ │ ├── form
│ │ │ ├── form.mock.ts
│ │ │ ├── form.spec.d.ts
│ │ │ └── form.tsx
│ │ ├── gantt
│ │ │ ├── components
│ │ │ │ ├── calendar
│ │ │ │ │ ├── calendar.scss
│ │ │ │ │ ├── calendar.tsx
│ │ │ │ │ └── top-part-of-calendar.tsx
│ │ │ │ ├── gantt
│ │ │ │ │ ├── gantt.scss
│ │ │ │ │ ├── gantt.tsx
│ │ │ │ │ ├── task-gantt-content.tsx
│ │ │ │ │ └── task-gantt.tsx
│ │ │ │ ├── grid
│ │ │ │ │ ├── grid-body.tsx
│ │ │ │ │ ├── grid.scss
│ │ │ │ │ └── grid.tsx
│ │ │ │ ├── other
│ │ │ │ │ ├── arrow.tsx
│ │ │ │ │ ├── scroll.scss
│ │ │ │ │ ├── scroll.tsx
│ │ │ │ │ ├── tooltip.scss
│ │ │ │ │ └── tooltip.tsx
│ │ │ │ ├── task-item
│ │ │ │ │ ├── bar
│ │ │ │ │ │ ├── bar-date-handle.tsx
│ │ │ │ │ │ ├── bar-display.tsx
│ │ │ │ │ │ ├── bar-progress-handle.tsx
│ │ │ │ │ │ ├── bar-small.tsx
│ │ │ │ │ │ ├── bar.scss
│ │ │ │ │ │ └── bar.tsx
│ │ │ │ │ ├── milestone
│ │ │ │ │ │ ├── milestone.scss
│ │ │ │ │ │ └── milestone.tsx
│ │ │ │ │ ├── project
│ │ │ │ │ │ ├── project.scss
│ │ │ │ │ │ └── project.tsx
│ │ │ │ │ ├── task-item.tsx
│ │ │ │ │ └── task-list.scss
│ │ │ │ └── task-list
│ │ │ │ │ ├── task-list-header.scss
│ │ │ │ │ ├── task-list-header.tsx
│ │ │ │ │ ├── task-list-table.scss
│ │ │ │ │ ├── task-list-table.tsx
│ │ │ │ │ ├── task-list.scss
│ │ │ │ │ └── task-list.tsx
│ │ │ ├── gantt.scss
│ │ │ ├── gantt.spec.d.ts
│ │ │ ├── gantt.tsx
│ │ │ ├── helpers
│ │ │ │ ├── bar-helper.ts
│ │ │ │ ├── date-helper.ts
│ │ │ │ └── other-helper.ts
│ │ │ ├── types
│ │ │ │ ├── bar-task.ts
│ │ │ │ ├── date-setup.ts
│ │ │ │ ├── gantt-task-actions.ts
│ │ │ │ └── public-types.ts
│ │ │ └── utils.ts
│ │ ├── grid
│ │ │ ├── grid.spec.d.ts
│ │ │ └── grid.tsx
│ │ ├── icon
│ │ │ ├── icon.mock..ts
│ │ │ ├── icon.spec.d.ts
│ │ │ └── icon.tsx
│ │ ├── image
│ │ │ ├── image.scss
│ │ │ ├── image.spec.d.ts
│ │ │ └── image.tsx
│ │ ├── index.tsx
│ │ ├── info-preview
│ │ │ ├── info-preview.mock.ts
│ │ │ ├── info-preview.scss
│ │ │ ├── info-preview.spec.d.ts
│ │ │ └── info-preview.tsx
│ │ ├── input-select
│ │ │ ├── input-select.mock.ts
│ │ │ ├── input-select.spec.d.ts
│ │ │ └── input-select.tsx
│ │ ├── input
│ │ │ ├── input.spec.d.ts
│ │ │ └── input.tsx
│ │ ├── kanban
│ │ │ ├── kanban.mock.ts
│ │ │ ├── kanban.scss
│ │ │ ├── kanban.spec.d.ts
│ │ │ └── kanban.tsx
│ │ ├── kv
│ │ │ ├── index.scss
│ │ │ ├── index.tsx
│ │ │ └── kv.spec.d.ts
│ │ ├── line-graph
│ │ │ ├── index.tsx
│ │ │ └── line-graph.spec.d.ts
│ │ ├── linear-distribution
│ │ │ ├── linear-distribution.scss
│ │ │ ├── linear-distribution.spce.d.ts
│ │ │ └── linear-distribution.tsx
│ │ ├── list-new
│ │ │ ├── list-new.scss
│ │ │ ├── list-new.spec.d.ts
│ │ │ ├── list-new.tsx
│ │ │ └── list
│ │ │ │ ├── index.scss
│ │ │ │ ├── index.spec.d.ts
│ │ │ │ ├── index.tsx
│ │ │ │ └── list-item.tsx
│ │ ├── list
│ │ │ ├── list.mock.ts
│ │ │ ├── list.scss
│ │ │ ├── list.spec.d.ts
│ │ │ └── list.tsx
│ │ ├── markdown-editor
│ │ │ ├── markdown-editor.spec.d.ts
│ │ │ └── markdown-editor.tsx
│ │ ├── markdown-preview
│ │ │ ├── index.tsx
│ │ │ ├── markdown-preview.mock.ts
│ │ │ └── markdown-preview.spec.d.ts
│ │ ├── modal
│ │ │ ├── modal.spec.d.ts
│ │ │ └── modal.tsx
│ │ ├── not-found.tsx
│ │ ├── panel
│ │ │ ├── panel.scss
│ │ │ ├── panel.spec.d.ts
│ │ │ └── panel.tsx
│ │ ├── pie-chart
│ │ │ ├── pie-chart.mock.ts
│ │ │ ├── pie-chart.scss
│ │ │ ├── pie-chart.spec.d.ts
│ │ │ └── pie-chart.tsx
│ │ ├── popover
│ │ │ ├── popover.scss
│ │ │ ├── popover.spec.d.ts
│ │ │ └── popover.tsx
│ │ ├── radio-tabs
│ │ │ ├── radio-tabs.mock.ts
│ │ │ ├── radio-tabs.spec.d.ts
│ │ │ └── radio-tabs.tsx
│ │ ├── radio
│ │ │ ├── radio.mock.ts
│ │ │ ├── radio.spec.d.ts
│ │ │ └── radio.tsx
│ │ ├── scale-card
│ │ │ ├── scale-card.mock.ts
│ │ │ ├── scale-card.scss
│ │ │ ├── scale-card.spec.d.ts
│ │ │ └── scale-card.tsx
│ │ ├── select-pro
│ │ │ ├── select-pro.spec.d.ts
│ │ │ └── select-pro.tsx
│ │ ├── simple-chart
│ │ │ ├── simple-chart.mock.ts
│ │ │ ├── simple-chart.scss
│ │ │ ├── simple-chart.spec.d.ts
│ │ │ └── simple-chart.tsx
│ │ ├── sort-drag-group
│ │ │ ├── pure-sort-drag-group-list
│ │ │ │ ├── index.scss
│ │ │ │ └── index.tsx
│ │ │ ├── sort-drag-group.mock.ts
│ │ │ ├── sort-drag-group.spec.d.ts
│ │ │ └── sort-drag-group.tsx
│ │ ├── split-page
│ │ │ ├── split-page.spec.d.ts
│ │ │ └── split-page.tsx
│ │ ├── table-group
│ │ │ ├── table-group.scss
│ │ │ ├── table-group.spec.d.ts
│ │ │ └── table-group.tsx
│ │ ├── table
│ │ │ ├── render-types.tsx
│ │ │ ├── table.mock.ts
│ │ │ ├── table.scss
│ │ │ ├── table.spec.d.ts
│ │ │ ├── table.tsx
│ │ │ └── v2
│ │ │ │ ├── table.spec.d.ts
│ │ │ │ ├── table.tsx
│ │ │ │ └── utils.tsx
│ │ ├── tabs
│ │ │ ├── tabs.scss
│ │ │ ├── tabs.spec.d.ts
│ │ │ └── tabs.tsx
│ │ ├── tags
│ │ │ ├── tags.spec.d.ts
│ │ │ └── tags.tsx
│ │ ├── text-block-group
│ │ │ ├── text-block-group.mock.ts
│ │ │ ├── text-block-group.scss
│ │ │ ├── text-block-group.spec.d.ts
│ │ │ └── text-block-group.tsx
│ │ ├── text-block
│ │ │ ├── text-block.spec.d.ts
│ │ │ └── text-block.tsx
│ │ ├── text-group
│ │ │ ├── text-group.mock.ts
│ │ │ ├── text-group.scss
│ │ │ ├── text-group.spec.d.ts
│ │ │ └── text-group.tsx
│ │ ├── text
│ │ │ ├── text.mock.ts
│ │ │ ├── text.scss
│ │ │ ├── text.spec.d.ts
│ │ │ └── text.tsx
│ │ ├── tiled-filter
│ │ │ ├── tiled-filter-comp.tsx
│ │ │ ├── tiled-filter.scss
│ │ │ ├── tiled-filter.spec.d.ts
│ │ │ └── tiled-filter.tsx
│ │ ├── title
│ │ │ ├── title.mock.ts
│ │ │ ├── title.scss
│ │ │ ├── title.spec.d.ts
│ │ │ └── title.tsx
│ │ ├── top-n
│ │ │ ├── index.scss
│ │ │ ├── index.tsx
│ │ │ ├── top-n.mock.ts
│ │ │ └── top-n.spec.d.ts
│ │ ├── tree-select
│ │ │ ├── tree-select.mock.ts
│ │ │ ├── tree-select.spec.d.ts
│ │ │ └── tree-select.tsx
│ │ └── user-profile
│ │ │ ├── user-profile.mock.ts
│ │ │ ├── user-profile.spec.d.ts
│ │ │ └── user-profile.tsx
│ ├── config-page.d.ts
│ ├── debug.scss
│ ├── debug.tsx
│ ├── docs
│ │ ├── alert.spec.md
│ │ ├── api-editor.spec.md
│ │ ├── badge.spec.md
│ │ ├── breadcrumb.spec.md
│ │ ├── button.spec.md
│ │ ├── card.spec.md
│ │ ├── chart-dashboard.spec.md
│ │ ├── chart.spec.md
│ │ ├── common.spec.md
│ │ ├── container.spec.md
│ │ ├── contractive-filter.spec.md
│ │ ├── date-picker.spec.md
│ │ ├── drawer.spec.md
│ │ ├── dropdown-select.spec.md
│ │ ├── dropdown.spec.md
│ │ ├── edit-list.spec.md
│ │ ├── empty-holder.spec.md
│ │ ├── file-editor.spec.md
│ │ ├── file-tree.spec.md
│ │ ├── form-modal.spec.md
│ │ ├── form.spec.md
│ │ ├── grid.spec.md
│ │ ├── icon.spec.md
│ │ ├── image.spec.md
│ │ ├── info-preview.spec.md
│ │ ├── input-select.spec.md
│ │ ├── input.spec.md
│ │ ├── linear-distribution.spce.md
│ │ ├── list.spec.md
│ │ ├── markdown-editor.spec.md
│ │ ├── modal.spec.md
│ │ ├── panel.spec.md
│ │ ├── popover.spec.md
│ │ ├── radio.spec.md
│ │ ├── select-pro.spec.md
│ │ ├── select.spec.md
│ │ ├── sort-drag-group.spec.md
│ │ ├── split-page.spec.md
│ │ ├── table-group.spec.md
│ │ ├── table.spec.md
│ │ ├── tabs.spec.md
│ │ ├── tags.spec.md
│ │ ├── test.spec.md
│ │ ├── text-group.spec.md
│ │ ├── text.spec.md
│ │ ├── tiled-filter.spec.md
│ │ ├── title.spec.md
│ │ └── tree-select.spec.md
│ ├── img-map.ts
│ ├── index.tsx
│ ├── mock
│ │ ├── crud.mock.ts
│ │ ├── data-rank.mock.ts
│ │ ├── dev.mock.ts
│ │ ├── gallery.tsx
│ │ ├── index.tsx
│ │ └── mock.tsx
│ ├── page-render.tsx
│ ├── readme.md
│ ├── test.spec.d.ts
│ └── utils.tsx
├── configForm
│ ├── editor
│ │ ├── common
│ │ │ ├── components
│ │ │ │ ├── drawer.scss
│ │ │ │ ├── drawer.tsx
│ │ │ │ ├── modal.scss
│ │ │ │ ├── modal.tsx
│ │ │ │ ├── tabs.scss
│ │ │ │ └── tabs.tsx
│ │ │ ├── index.ts
│ │ │ └── util.scss
│ │ ├── config.ts
│ │ ├── form-editor.scss
│ │ ├── form-editor.tsx
│ │ ├── form-preview.scss
│ │ ├── form-preview.tsx
│ │ ├── index.scss
│ │ ├── index.tsx
│ │ └── types
│ │ │ └── index.d.ts
│ ├── form
│ │ ├── context.ts
│ │ ├── form-button.tsx
│ │ ├── form-item
│ │ │ ├── index.scss
│ │ │ ├── index.tsx
│ │ │ ├── input.tsx
│ │ │ └── select.tsx
│ │ ├── form.tsx
│ │ ├── index.tsx
│ │ ├── utils.scss
│ │ └── utils.ts
│ └── nusi-form
│ │ ├── config.tsx
│ │ ├── form-editor.scss
│ │ ├── form-editor.tsx
│ │ ├── form-items
│ │ ├── array-obj.scss
│ │ ├── array-obj.tsx
│ │ ├── check-when.scss
│ │ ├── check-when.tsx
│ │ ├── checkbox.tsx
│ │ ├── clear-when.tsx
│ │ ├── common
│ │ │ ├── combiner.scss
│ │ │ ├── combiner.tsx
│ │ │ ├── config.ts
│ │ │ └── index.tsx
│ │ ├── custom-defined.tsx
│ │ ├── custom.tsx
│ │ ├── data-dynamic.scss
│ │ ├── data-dynamic.tsx
│ │ ├── data-static.tsx
│ │ ├── date-picker.tsx
│ │ ├── group.scss
│ │ ├── group.tsx
│ │ ├── index.tsx
│ │ ├── input-array.scss
│ │ ├── input-array.tsx
│ │ ├── input-select.scss
│ │ ├── input-select.tsx
│ │ ├── input.tsx
│ │ ├── inputNumber.tsx
│ │ ├── map.tsx
│ │ ├── radio.tsx
│ │ ├── rules-input.tsx
│ │ ├── select.tsx
│ │ ├── switch.tsx
│ │ ├── textarea.tsx
│ │ ├── upload.scss
│ │ └── upload.tsx
│ │ ├── form-modal.scss
│ │ ├── form-modal.tsx
│ │ ├── form-test.tsx
│ │ ├── form.tsx
│ │ └── utils.ts
├── constants.ts
├── error-handler.jsx
├── files
│ └── china.json
├── i18n-easy-edit
│ ├── config.ts
│ ├── index.ts
│ ├── pages
│ │ ├── edit-modal
│ │ │ └── index.tsx
│ │ ├── fixed-widget
│ │ │ └── index.tsx
│ │ ├── i18n-wrapper
│ │ │ ├── index.less
│ │ │ └── index.tsx
│ │ ├── index.tsx
│ │ └── publish-modal
│ │ │ └── index.tsx
│ ├── store
│ │ └── index.ts
│ └── utils
│ │ ├── cache.ts
│ │ ├── index.ts
│ │ ├── mergedJSON.ts
│ │ └── overwrite-i18n.tsx
├── i18n.ts
├── images
│ ├── .gitkeep
│ ├── Erda.png
│ ├── Erda.svg
│ ├── ali-cloud-cluster-bg.svg
│ ├── android.svg
│ ├── backlog-db.svg
│ ├── backlog-dd.svg
│ ├── cloud
│ │ ├── aly.svg
│ │ ├── aly_2.svg
│ │ ├── txy.svg
│ │ └── txy_2.svg
│ ├── dcos-cluster-bg.svg
│ ├── default-app-icon.png
│ ├── default-breathing.gif
│ ├── default-k8s-node.svg
│ ├── default-k8s-pod.svg
│ ├── default-k8s-workload.svg
│ ├── default-loading.gif
│ ├── default-market-service.svg
│ ├── default-org-icon.svg
│ ├── default-project-icon.png
│ ├── default-project-main-bg.webp
│ ├── default-test-case.svg
│ ├── default-user-avatar.svg
│ ├── defaultFileImage.png
│ ├── dmtd.svg
│ ├── dmtd_1.svg
│ ├── dsjyy.svg
│ ├── ecp.svg
│ ├── edas-cluster-bg.svg
│ ├── editor-background.png
│ ├── empty-holder
│ │ ├── create-app.svg
│ │ ├── create-project.svg
│ │ ├── empty-message.svg
│ │ ├── star-app.svg
│ │ ├── star-project.svg
│ │ └── upload.svg
│ ├── empty-project.png
│ ├── empty-white-bg.svg
│ ├── empty.svg
│ ├── gallery-header.jpg
│ ├── intro.png
│ ├── invalid-doc.svg
│ ├── k8s-cluster-bg.svg
│ ├── kyy.svg
│ ├── land-spring.jpg
│ ├── msp
│ │ ├── header-bg-large.svg
│ │ ├── header-bg-middle.svg
│ │ ├── header-bg-small.svg
│ │ ├── microservice-governance-background.svg
│ │ ├── microservice-governance-bottom.svg
│ │ ├── microservice-governance-decoration.svg
│ │ ├── microservice-governance-middle.svg
│ │ └── microservice-governance-top.svg
│ ├── no-cluster.png
│ ├── org-home
│ │ ├── tab-pane-header-selected-first.png
│ │ ├── tab-pane-header-selected.png
│ │ ├── tab-pane-header-unselected-first.png
│ │ └── tab-pane-header-unselected.png
│ ├── resources
│ │ ├── addon.png
│ │ ├── ali-cloud-1.svg
│ │ ├── ali-cloud.svg
│ │ ├── coding.png
│ │ ├── container-service-1.svg
│ │ ├── container-service.svg
│ │ ├── edas-1.svg
│ │ ├── edas.svg
│ │ ├── github.png
│ │ ├── gitlab.png
│ │ ├── k8s-1.svg
│ │ ├── k8s.svg
│ │ ├── org.png
│ │ ├── tg.svg
│ │ ├── tg2.svg
│ │ ├── zyb.svg
│ │ └── zyb2.svg
│ ├── ts.svg
│ ├── upload_empty.svg
│ ├── xmjyy.svg
│ ├── ywyy.svg
│ ├── zx-gray.svg
│ └── zx.svg
├── index.js
├── interface
│ ├── common.d.ts
│ └── global.d.ts
├── layout
│ ├── common
│ │ ├── check-version.tsx
│ │ ├── error-page.scss
│ │ ├── error-page.tsx
│ │ ├── index.ts
│ │ ├── invite-to-org.tsx
│ │ ├── split-page.scss
│ │ └── split-page.tsx
│ ├── entry.js
│ ├── pages
│ │ ├── page-container
│ │ │ ├── components
│ │ │ │ ├── announcement
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── breadcrumb.tsx
│ │ │ │ ├── chat-GPT
│ │ │ │ │ ├── chat.tsx
│ │ │ │ │ ├── functional-test-cases
│ │ │ │ │ │ ├── desc-list.tsx
│ │ │ │ │ │ ├── index.tsx
│ │ │ │ │ │ └── requirements-list.tsx
│ │ │ │ │ ├── gpt-item.tsx
│ │ │ │ │ ├── index.scss
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ ├── knowledge-base
│ │ │ │ │ │ ├── index.tsx
│ │ │ │ │ │ └── simple-chat.tsx
│ │ │ │ │ ├── sidebar.tsx
│ │ │ │ │ └── user-item.tsx
│ │ │ │ ├── header.scss
│ │ │ │ ├── header.tsx
│ │ │ │ ├── message
│ │ │ │ │ ├── message.scss
│ │ │ │ │ └── message.tsx
│ │ │ │ ├── navigation
│ │ │ │ │ ├── index.scss
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ ├── user-menu.scss
│ │ │ │ │ └── user-menu.tsx
│ │ │ │ ├── org-selector.tsx
│ │ │ │ ├── shell
│ │ │ │ │ ├── index.scss
│ │ │ │ │ └── index.tsx
│ │ │ │ └── sidebar
│ │ │ │ │ ├── index.scss
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ ├── menu-head.scss
│ │ │ │ │ ├── menu-head.tsx
│ │ │ │ │ └── sidebar-menu.tsx
│ │ │ ├── layout.scss
│ │ │ ├── layout.tsx
│ │ │ ├── page-container.scss
│ │ │ └── page-container.tsx
│ │ └── tab
│ │ │ └── tab.tsx
│ ├── router.tsx
│ ├── services
│ │ ├── ai-chat.ts
│ │ ├── ai-knowledge.ts
│ │ ├── ai-test.ts
│ │ ├── index.ts
│ │ └── message.ts
│ ├── stores
│ │ ├── breadcrumb.ts
│ │ ├── layout.ts
│ │ └── message.ts
│ └── types
│ │ └── layout.d.ts
├── links-service.ts
├── locales
│ ├── en.json
│ ├── utils.ts
│ └── zh.json
├── menus
│ ├── appCenter.tsx
│ ├── cmp.tsx
│ ├── dop.tsx
│ ├── ecp.tsx
│ ├── index.ts
│ ├── msp.tsx
│ ├── orgCenter.tsx
│ ├── project.tsx
│ └── util.ts
├── modules
│ ├── addonPlatform
│ │ ├── entry.js
│ │ ├── pages
│ │ │ ├── addon-resource
│ │ │ │ ├── addon-resource.scss
│ │ │ │ ├── addon-resource.tsx
│ │ │ │ └── pure-addon-resource.jsx
│ │ │ ├── common
│ │ │ │ ├── components
│ │ │ │ │ ├── addon-card-list.scss
│ │ │ │ │ ├── addon-card-list.tsx
│ │ │ │ │ ├── addon-cards.scss
│ │ │ │ │ ├── addon-cards.tsx
│ │ │ │ │ ├── addon-detail-drawer.scss
│ │ │ │ │ ├── addon-detail-drawer.tsx
│ │ │ │ │ └── create-log.tsx
│ │ │ │ └── configs.ts
│ │ │ ├── jvm-profiler
│ │ │ │ ├── analysis.tsx
│ │ │ │ ├── jvm-overview.scss
│ │ │ │ └── jvm-overview.tsx
│ │ │ └── mysql
│ │ │ │ ├── account.tsx
│ │ │ │ └── consumer.tsx
│ │ ├── services
│ │ │ └── jvm.ts
│ │ ├── stores
│ │ │ └── jvm.ts
│ │ └── types
│ │ │ ├── addon.d.ts
│ │ │ └── jvm.d.ts
│ ├── apiManagePlatform
│ │ ├── api-ws.ts
│ │ ├── components
│ │ │ ├── auth-wrap.tsx
│ │ │ ├── chart.tsx
│ │ │ ├── select-pro.scss
│ │ │ ├── select-pro.tsx
│ │ │ ├── sla-select.scss
│ │ │ ├── sla-select.tsx
│ │ │ ├── traffic-audit-drawer.tsx
│ │ │ └── update-sla.tsx
│ │ ├── configs.ts
│ │ ├── entry.js
│ │ ├── pages
│ │ │ ├── access-manage
│ │ │ │ ├── components
│ │ │ │ │ ├── config.tsx
│ │ │ │ │ ├── multi-input.scss
│ │ │ │ │ └── multi-input.tsx
│ │ │ │ ├── detail
│ │ │ │ │ ├── authorization-user.tsx
│ │ │ │ │ ├── detail-modal.tsx
│ │ │ │ │ ├── index.scss
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ ├── limit.tsx
│ │ │ │ │ ├── overview-chart.tsx
│ │ │ │ │ ├── sla-editor.tsx
│ │ │ │ │ ├── sla.scss
│ │ │ │ │ └── sla.tsx
│ │ │ │ ├── edit
│ │ │ │ │ └── index.tsx
│ │ │ │ └── list
│ │ │ │ │ └── index.tsx
│ │ │ ├── api-market
│ │ │ │ ├── components
│ │ │ │ │ ├── api-resource
│ │ │ │ │ │ ├── api-resource.spec.d.ts
│ │ │ │ │ │ ├── query-params-config.tsx
│ │ │ │ │ │ ├── resource-summary.tsx
│ │ │ │ │ │ ├── resource.mock.ts
│ │ │ │ │ │ ├── resource.scss
│ │ │ │ │ │ ├── resource.tsx
│ │ │ │ │ │ └── response-config.tsx
│ │ │ │ │ ├── apply-modal.tsx
│ │ │ │ │ ├── asset-modal.tsx
│ │ │ │ │ ├── config.ts
│ │ │ │ │ ├── export-file.tsx
│ │ │ │ │ ├── export-record.scss
│ │ │ │ │ ├── export-record.tsx
│ │ │ │ │ └── relation.tsx
│ │ │ │ ├── design
│ │ │ │ │ ├── api-doc-add-modal.tsx
│ │ │ │ │ ├── api-doc-tree.tsx
│ │ │ │ │ ├── api-params-modal.scss
│ │ │ │ │ ├── api-params-modal.tsx
│ │ │ │ │ ├── api-publish-modal.tsx
│ │ │ │ │ ├── basic-params-config.scss
│ │ │ │ │ ├── basic-params-config.tsx
│ │ │ │ │ ├── datatype-config.tsx
│ │ │ │ │ ├── index.scss
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ ├── property-field.tsx
│ │ │ │ │ ├── summary.tsx
│ │ │ │ │ └── title.tsx
│ │ │ │ ├── detail
│ │ │ │ │ ├── components
│ │ │ │ │ │ ├── api-body
│ │ │ │ │ │ │ ├── index.scss
│ │ │ │ │ │ │ └── index.tsx
│ │ │ │ │ │ ├── api-detail.scss
│ │ │ │ │ │ ├── api-detail.tsx
│ │ │ │ │ │ ├── api-menu.scss
│ │ │ │ │ │ ├── api-menu.tsx
│ │ │ │ │ │ ├── api-preview-2.0.tsx
│ │ │ │ │ │ ├── api-preview-3.0.tsx
│ │ │ │ │ │ ├── api-view.scss
│ │ │ │ │ │ ├── api-view.tsx
│ │ │ │ │ │ ├── key-val-edit
│ │ │ │ │ │ │ ├── index.scss
│ │ │ │ │ │ │ └── index.tsx
│ │ │ │ │ │ ├── select-version.tsx
│ │ │ │ │ │ ├── test-modal-utils.tsx
│ │ │ │ │ │ ├── test-modal.scss
│ │ │ │ │ │ └── test-modal.tsx
│ │ │ │ │ ├── index.scss
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── list
│ │ │ │ │ ├── index.scss
│ │ │ │ │ └── index.tsx
│ │ │ │ └── version
│ │ │ │ │ ├── index.scss
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ └── version-info.tsx
│ │ │ └── client
│ │ │ │ ├── components
│ │ │ │ └── config.tsx
│ │ │ │ ├── detail
│ │ │ │ ├── index.scss
│ │ │ │ └── index.tsx
│ │ │ │ └── list
│ │ │ │ └── index.tsx
│ │ ├── router.ts
│ │ ├── services
│ │ │ ├── api-access.ts
│ │ │ ├── api-client.ts
│ │ │ ├── api-design.ts
│ │ │ ├── api-export.ts
│ │ │ └── api-market.ts
│ │ ├── stores
│ │ │ ├── api-access.ts
│ │ │ ├── api-client.ts
│ │ │ ├── api-design.ts
│ │ │ └── api-market.ts
│ │ └── types
│ │ │ ├── api-access.d.ts
│ │ │ ├── api-client.d.ts
│ │ │ ├── api-market.d.ts
│ │ │ └── api-setting.d.ts
│ ├── application
│ │ ├── common
│ │ │ ├── app-selector.scss
│ │ │ ├── app-selector.tsx
│ │ │ ├── components
│ │ │ │ ├── action-select.scss
│ │ │ │ ├── action-select.tsx
│ │ │ │ ├── comment-box.scss
│ │ │ │ ├── comment-box.tsx
│ │ │ │ ├── create-add-on.scss
│ │ │ │ ├── create-add-on.tsx
│ │ │ │ ├── data-list.scss
│ │ │ │ ├── data-list.tsx
│ │ │ │ ├── deployments-field.tsx
│ │ │ │ ├── dice-job-node.scss
│ │ │ │ ├── dice-job-node.tsx
│ │ │ │ ├── dice-service-node.scss
│ │ │ │ ├── dice-service-node.tsx
│ │ │ │ ├── dice-yaml-canvas.tsx
│ │ │ │ ├── dice-yaml-editor-drawer.tsx
│ │ │ │ ├── dice-yaml-editor-item-container.tsx
│ │ │ │ ├── dice-yaml-editor-item.tsx
│ │ │ │ ├── dice-yaml-editor-type.ts
│ │ │ │ ├── dice-yaml-editor.scss
│ │ │ │ ├── dice-yaml-editor.tsx
│ │ │ │ ├── edit-global-variable.tsx
│ │ │ │ ├── edit-stage.scss
│ │ │ │ ├── edit-stage.tsx
│ │ │ │ ├── file-container.scss
│ │ │ │ ├── file-container.tsx
│ │ │ │ ├── flow-item.scss
│ │ │ │ ├── flow-item.tsx
│ │ │ │ ├── goto-commit.scss
│ │ │ │ ├── goto-commit.tsx
│ │ │ │ ├── health-check-field.tsx
│ │ │ │ ├── list-input-group.tsx
│ │ │ │ ├── object-input-group.tsx
│ │ │ │ ├── pipeline-node.scss
│ │ │ │ ├── pipeline-node.tsx
│ │ │ │ ├── point-component-abstract.ts
│ │ │ │ ├── port-field.tsx
│ │ │ │ ├── property-view.scss
│ │ │ │ ├── property-view.tsx
│ │ │ │ ├── resource-field.tsx
│ │ │ │ ├── table-drawer.scss
│ │ │ │ ├── table-drawer.tsx
│ │ │ │ ├── task-resource-field.scss
│ │ │ │ ├── variable-input-group.scss
│ │ │ │ └── variable-input-group.tsx
│ │ │ ├── config.ts
│ │ │ ├── depends-on-data-filter.ts
│ │ │ ├── dice-flow-util.ts
│ │ │ ├── dice-yml-data-convert.tsx
│ │ │ ├── dice-yml-editor-validator.ts
│ │ │ ├── pipeline-yml-data-convert.tsx
│ │ │ ├── types
│ │ │ │ └── common.d.ts
│ │ │ ├── yml-editor
│ │ │ │ ├── dice-editor.tsx
│ │ │ │ ├── index.tsx
│ │ │ │ ├── pipeline-editor.scss
│ │ │ │ ├── pipeline-editor.tsx
│ │ │ │ └── utils.tsx
│ │ │ └── yml-flow-util.ts
│ │ ├── entry.js
│ │ ├── pages
│ │ │ ├── build-detail
│ │ │ │ ├── build-log.tsx
│ │ │ │ ├── config.tsx
│ │ │ │ ├── index.scss
│ │ │ │ ├── index.tsx
│ │ │ │ ├── pipeline-chart
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ ├── pipeline-node.scss
│ │ │ │ │ └── pipeline-node.tsx
│ │ │ │ ├── pipeline-log.scss
│ │ │ │ └── pipeline-log.tsx
│ │ │ ├── build
│ │ │ │ ├── build.scss
│ │ │ │ ├── build.tsx
│ │ │ │ ├── data-task-creation.scss
│ │ │ │ ├── data-task-creation.tsx
│ │ │ │ └── dataTask.tsx
│ │ │ ├── data-market
│ │ │ │ └── data-market.tsx
│ │ │ ├── data-model
│ │ │ │ ├── data-model.tsx
│ │ │ │ ├── index.scss
│ │ │ │ └── model-star-chart.tsx
│ │ │ ├── deploy-list
│ │ │ │ ├── approve.tsx
│ │ │ │ ├── deploy-list.tsx
│ │ │ │ └── initiate.tsx
│ │ │ ├── obsoleted-pipeline
│ │ │ │ ├── config-detail
│ │ │ │ │ ├── case-info.tsx
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ └── pipeline-editor
│ │ │ │ │ │ └── index.tsx
│ │ │ │ ├── config.tsx
│ │ │ │ ├── index.tsx
│ │ │ │ ├── pipeline-detail.tsx
│ │ │ │ ├── run-detail
│ │ │ │ │ ├── build-detail.scss
│ │ │ │ │ ├── build-detail.tsx
│ │ │ │ │ ├── build-log.scss
│ │ │ │ │ ├── build-log.tsx
│ │ │ │ │ ├── config.tsx
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ ├── pipeline-chart
│ │ │ │ │ │ ├── index.tsx
│ │ │ │ │ │ ├── pipeline-node.scss
│ │ │ │ │ │ └── pipeline-node.tsx
│ │ │ │ │ ├── pipeline-log.scss
│ │ │ │ │ └── pipeline-log.tsx
│ │ │ │ └── scope-config.tsx
│ │ │ ├── pipeline
│ │ │ │ ├── index.tsx
│ │ │ │ └── obsoleted-pipeline.tsx
│ │ │ ├── problem
│ │ │ │ ├── problem-detail.scss
│ │ │ │ ├── problem-detail.tsx
│ │ │ │ ├── problem-form.tsx
│ │ │ │ ├── problem-list.scss
│ │ │ │ └── problem-list.tsx
│ │ │ ├── quality
│ │ │ │ ├── entry.tsx
│ │ │ │ ├── index.scss
│ │ │ │ └── index.tsx
│ │ │ ├── repo
│ │ │ │ ├── branch-compare-detail.tsx
│ │ │ │ ├── commit-detail.tsx
│ │ │ │ ├── common.scss
│ │ │ │ ├── common.tsx
│ │ │ │ ├── components
│ │ │ │ │ ├── add-pipelineyml.scss
│ │ │ │ │ ├── add-pipelineyml.tsx
│ │ │ │ │ ├── branch-compare.scss
│ │ │ │ │ ├── branch-compare.tsx
│ │ │ │ │ ├── branch-select.scss
│ │ │ │ │ ├── branch-select.tsx
│ │ │ │ │ ├── compare-detail.tsx
│ │ │ │ │ ├── file-diff.scss
│ │ │ │ │ ├── file-diff.tsx
│ │ │ │ │ ├── mr-comments.tsx
│ │ │ │ │ ├── repo-blame.scss
│ │ │ │ │ ├── repo-blame.tsx
│ │ │ │ │ ├── repo-breadcrumb.scss
│ │ │ │ │ ├── repo-breadcrumb.tsx
│ │ │ │ │ ├── repo-editor.scss
│ │ │ │ │ ├── repo-editor.tsx
│ │ │ │ │ ├── repo-file-container.tsx
│ │ │ │ │ ├── repo-file.scss
│ │ │ │ │ ├── repo-file.tsx
│ │ │ │ │ ├── repo-mr-form.scss
│ │ │ │ │ ├── repo-mr-form.tsx
│ │ │ │ │ ├── repo-mr-table.scss
│ │ │ │ │ ├── repo-mr-table.tsx
│ │ │ │ │ ├── repo-nav.tsx
│ │ │ │ │ ├── source-target-select.scss
│ │ │ │ │ ├── source-target-select.tsx
│ │ │ │ │ ├── start-tip.scss
│ │ │ │ │ ├── start-tip.tsx
│ │ │ │ │ ├── yml-editor.scss
│ │ │ │ │ └── yml-editor.tsx
│ │ │ │ ├── mr-detail.scss
│ │ │ │ ├── mr-detail.tsx
│ │ │ │ ├── repo-backup.tsx
│ │ │ │ ├── repo-branch.scss
│ │ │ │ ├── repo-branch.tsx
│ │ │ │ ├── repo-commit.scss
│ │ │ │ ├── repo-commit.tsx
│ │ │ │ ├── repo-mr-creation.scss
│ │ │ │ ├── repo-mr-creation.tsx
│ │ │ │ ├── repo-mr.tsx
│ │ │ │ ├── repo-tag.scss
│ │ │ │ ├── repo-tag.tsx
│ │ │ │ ├── repo-tree.scss
│ │ │ │ ├── repo-tree.tsx
│ │ │ │ └── util.tsx
│ │ │ ├── settings
│ │ │ │ ├── app-settings.scss
│ │ │ │ ├── app-settings.tsx
│ │ │ │ └── components
│ │ │ │ │ ├── app-certificate-reference.tsx
│ │ │ │ │ ├── app-info.tsx
│ │ │ │ │ ├── app-library-reference.tsx
│ │ │ │ │ ├── app-merge-description.scss
│ │ │ │ │ ├── app-merge-description.tsx
│ │ │ │ │ ├── app-notify
│ │ │ │ │ ├── common-notify-group.tsx
│ │ │ │ │ ├── external-user-table.tsx
│ │ │ │ │ ├── index.scss
│ │ │ │ │ └── notify-config.tsx
│ │ │ │ │ ├── app-variable-config.tsx
│ │ │ │ │ ├── app-version-push.tsx
│ │ │ │ │ ├── sonar-config.tsx
│ │ │ │ │ └── variable-config-form.tsx
│ │ │ └── test
│ │ │ │ ├── coverage-report.tsx
│ │ │ │ ├── test-detail-container.tsx
│ │ │ │ ├── test-detail.scss
│ │ │ │ ├── test-detail.tsx
│ │ │ │ ├── test-list.scss
│ │ │ │ ├── test-list.tsx
│ │ │ │ └── test-pie-chart.tsx
│ │ ├── router.ts
│ │ ├── services
│ │ │ ├── app-setting.ts
│ │ │ ├── application.ts
│ │ │ ├── build.ts
│ │ │ ├── dataTask.js
│ │ │ ├── deploy.ts
│ │ │ ├── notify-group.ts
│ │ │ ├── notify.ts
│ │ │ ├── pipeline-config.ts
│ │ │ ├── problem.ts
│ │ │ ├── quality.ts
│ │ │ ├── repo.ts
│ │ │ └── test.js
│ │ ├── stores
│ │ │ ├── application.tsx
│ │ │ ├── build.ts
│ │ │ ├── certificate-reference.ts
│ │ │ ├── dataTask.ts
│ │ │ ├── deploy.ts
│ │ │ ├── library-reference.ts
│ │ │ ├── notify-group.ts
│ │ │ ├── notify.ts
│ │ │ ├── pipeline-config.ts
│ │ │ ├── quality.ts
│ │ │ ├── repo.ts
│ │ │ └── test.ts
│ │ ├── tabs.tsx
│ │ └── types
│ │ │ ├── application.d.ts
│ │ │ ├── build.d.ts
│ │ │ ├── common-notify-group.d.ts
│ │ │ ├── config.d.ts
│ │ │ ├── deploy.d.ts
│ │ │ ├── notify.d.ts
│ │ │ ├── pipeline-config.d.ts
│ │ │ ├── problem.d.ts
│ │ │ ├── quality.d.ts
│ │ │ ├── release.d.ts
│ │ │ ├── repo.d.ts
│ │ │ ├── setting.d.ts
│ │ │ └── test.d.ts
│ ├── cmp
│ │ ├── common
│ │ │ ├── addon-detail
│ │ │ │ ├── detail.scss
│ │ │ │ ├── detail.tsx
│ │ │ │ └── resource.tsx
│ │ │ ├── alarm-record
│ │ │ │ ├── detail.scss
│ │ │ │ └── detail.tsx
│ │ │ ├── alarm-state.tsx
│ │ │ ├── alarm-strategy
│ │ │ │ ├── index.scss
│ │ │ │ ├── index.tsx
│ │ │ │ ├── notify-strategy-select.tsx
│ │ │ │ ├── strategy-form.tsx
│ │ │ │ └── trigger-condition-select.tsx
│ │ │ ├── cloud-common
│ │ │ │ └── index.tsx
│ │ │ ├── cluster-terminal
│ │ │ │ ├── index.scss
│ │ │ │ ├── index.tsx
│ │ │ │ ├── xterm-binary.tsx
│ │ │ │ └── xterm-channel.tsx
│ │ │ ├── components
│ │ │ │ ├── cluster-selector.tsx
│ │ │ │ ├── instance-operation.scss
│ │ │ │ ├── instance-operation.tsx
│ │ │ │ ├── machine-form-modal.tsx
│ │ │ │ ├── set-tag-form.tsx
│ │ │ │ └── table-col.tsx
│ │ │ ├── custom-alarm
│ │ │ │ ├── index.scss
│ │ │ │ └── index.tsx
│ │ │ ├── custom-dashboard
│ │ │ │ ├── custom-dashboard.tsx
│ │ │ │ ├── data-loader.ts
│ │ │ │ ├── import-export.scss
│ │ │ │ ├── import-export.tsx
│ │ │ │ └── index.tsx
│ │ │ ├── regionData.ts
│ │ │ ├── select-project-modal.tsx
│ │ │ └── utils.ts
│ │ ├── entry.js
│ │ ├── pages
│ │ │ ├── account-guidance
│ │ │ │ ├── config.ts
│ │ │ │ ├── index.scss
│ │ │ │ └── index.tsx
│ │ │ ├── alarm-overview
│ │ │ │ └── index.tsx
│ │ │ ├── alarm-record
│ │ │ │ ├── detail.tsx
│ │ │ │ ├── events
│ │ │ │ │ ├── detail.tsx
│ │ │ │ │ └── index.tsx
│ │ │ │ └── notification
│ │ │ │ │ ├── detail.tsx
│ │ │ │ │ └── index.tsx
│ │ │ ├── alarm-report
│ │ │ │ ├── custom-dashboard
│ │ │ │ │ ├── custom-dashboard.tsx
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── index.tsx
│ │ │ │ └── report-records
│ │ │ │ │ ├── index.scss
│ │ │ │ │ └── index.tsx
│ │ │ ├── alarm-strategy
│ │ │ │ ├── cmp-stratege.tsx
│ │ │ │ └── index.tsx
│ │ │ ├── cloud-accounts
│ │ │ │ └── index.tsx
│ │ │ ├── cloud-source
│ │ │ │ ├── config.ts
│ │ │ │ ├── index.scss
│ │ │ │ └── index.tsx
│ │ │ ├── cluster-container
│ │ │ │ ├── cluster-event-log.tsx
│ │ │ │ ├── cluster-nodes-detail.tsx
│ │ │ │ ├── cluster-nodes.tsx
│ │ │ │ ├── cluster-pod-detail.tsx
│ │ │ │ ├── cluster-pods.tsx
│ │ │ │ ├── cluster-selector.tsx
│ │ │ │ ├── cluster-terminal.scss
│ │ │ │ ├── cluster-terminal.tsx
│ │ │ │ ├── cluster-workload-detail.tsx
│ │ │ │ ├── cluster-workload.tsx
│ │ │ │ └── index.tsx
│ │ │ ├── cluster-manage
│ │ │ │ ├── add-cluster-forms
│ │ │ │ │ ├── aliCloud-container-cluster-form.tsx
│ │ │ │ │ ├── aliCloud-erdc-form.tsx
│ │ │ │ │ ├── aliCloud-preview.tsx
│ │ │ │ │ ├── cluster-form.scss
│ │ │ │ │ ├── cluster-form.tsx
│ │ │ │ │ ├── cluster-type-modal.scss
│ │ │ │ │ ├── cluster-type-modal.tsx
│ │ │ │ │ └── index.ts
│ │ │ │ ├── cloud-machine-form-modal.tsx
│ │ │ │ ├── cluster-detail.scss
│ │ │ │ ├── cluster-detail.tsx
│ │ │ │ ├── cluster-list.scss
│ │ │ │ ├── cluster-list.tsx
│ │ │ │ ├── cluster-log.scss
│ │ │ │ ├── cluster-log.tsx
│ │ │ │ ├── config.tsx
│ │ │ │ ├── deploy-cluster-form.scss
│ │ │ │ ├── deploy-cluster-form.tsx
│ │ │ │ ├── deploy-cluster-forms
│ │ │ │ │ ├── cluster-config-form.tsx
│ │ │ │ │ ├── cluster-fps-form.tsx
│ │ │ │ │ ├── cluster-ssh-form.tsx
│ │ │ │ │ ├── docker-form.tsx
│ │ │ │ │ ├── edit-table.scss
│ │ │ │ │ ├── edit-table.tsx
│ │ │ │ │ ├── jump-board-form.tsx
│ │ │ │ │ ├── nodes-form.tsx
│ │ │ │ │ ├── platform-form.tsx
│ │ │ │ │ └── storage-form.tsx
│ │ │ │ ├── deploy-cluster-log.scss
│ │ │ │ ├── deploy-cluster-log.tsx
│ │ │ │ ├── deploy-cluster.scss
│ │ │ │ ├── deploy-cluster.tsx
│ │ │ │ ├── form-utils.tsx
│ │ │ │ ├── index.tsx
│ │ │ │ ├── operation-history.tsx
│ │ │ │ └── token-manage-modal.tsx
│ │ │ ├── computing
│ │ │ │ └── ecs
│ │ │ │ │ ├── ecsCloud-operation-form.tsx
│ │ │ │ │ └── index.tsx
│ │ │ ├── custom-alarm
│ │ │ │ └── index.tsx
│ │ │ ├── domain-manage
│ │ │ │ └── index.tsx
│ │ │ ├── middleware-chart
│ │ │ │ └── index.tsx
│ │ │ ├── middleware-dashboard
│ │ │ │ ├── index.scss
│ │ │ │ ├── index.tsx
│ │ │ │ ├── modal.scss
│ │ │ │ ├── scale-modal.tsx
│ │ │ │ ├── upgrade-modal.tsx
│ │ │ │ └── usage-chart.tsx
│ │ │ ├── middleware-detail
│ │ │ │ ├── detail.tsx
│ │ │ │ ├── index.scss
│ │ │ │ ├── monitor.tsx
│ │ │ │ ├── resource.tsx
│ │ │ │ ├── scale-info.tsx
│ │ │ │ └── upgrade-info.tsx
│ │ │ ├── networks
│ │ │ │ ├── common
│ │ │ │ │ ├── components
│ │ │ │ │ │ ├── cidr-input.scss
│ │ │ │ │ │ └── cidr-input.tsx
│ │ │ │ │ ├── config.tsx
│ │ │ │ │ └── util.ts
│ │ │ │ ├── vpc
│ │ │ │ │ ├── index.scss
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ └── vpc-form-modal.tsx
│ │ │ │ └── vsw
│ │ │ │ │ └── index.tsx
│ │ │ ├── pod-detail
│ │ │ │ ├── index.scss
│ │ │ │ └── index.tsx
│ │ │ ├── storage
│ │ │ │ └── oss
│ │ │ │ │ └── index.tsx
│ │ │ └── tasks
│ │ │ │ ├── config.ts
│ │ │ │ ├── job.tsx
│ │ │ │ └── task-list.tsx
│ │ ├── router.ts
│ │ ├── services
│ │ │ ├── _common-custom-dashboard.ts
│ │ │ ├── alarm-record.ts
│ │ │ ├── alarm-report.ts
│ │ │ ├── alarm-strategy.ts
│ │ │ ├── cloud-accounts.ts
│ │ │ ├── cloud-common.ts
│ │ │ ├── cloud-overview.ts
│ │ │ ├── cluster.ts
│ │ │ ├── computing.ts
│ │ │ ├── custom-alarm.ts
│ │ │ ├── custom-dashboard.ts
│ │ │ ├── domain-manage.ts
│ │ │ ├── machine.ts
│ │ │ ├── middleware-chart.ts
│ │ │ ├── middleware-dashboard.ts
│ │ │ ├── monitor-common-metadata.ts
│ │ │ ├── networks.ts
│ │ │ ├── pod-detail.ts
│ │ │ ├── storage.ts
│ │ │ ├── task.ts
│ │ │ └── token-manage.ts
│ │ ├── stores
│ │ │ ├── _common-custom-alarm.ts
│ │ │ ├── _common-custom-dashboard.ts
│ │ │ ├── _common-monitor-metadata.ts
│ │ │ ├── alarm-record.ts
│ │ │ ├── alarm-report.ts
│ │ │ ├── alarm-strategy.ts
│ │ │ ├── analysis-monitor-metadata.ts
│ │ │ ├── cloud-account.ts
│ │ │ ├── cloud-common.ts
│ │ │ ├── cloud-source.ts
│ │ │ ├── cluster.ts
│ │ │ ├── computing.ts
│ │ │ ├── custom-alarm.ts
│ │ │ ├── custom-dashboard.ts
│ │ │ ├── machine.ts
│ │ │ ├── middleware-chart.ts
│ │ │ ├── middleware-dashboard.ts
│ │ │ ├── networks.ts
│ │ │ ├── pod-detail.ts
│ │ │ ├── query-monitor-metadata.ts
│ │ │ ├── storage.ts
│ │ │ └── task.ts
│ │ └── types
│ │ │ ├── alarm-record.d.ts
│ │ │ ├── alarm-report.d.ts
│ │ │ ├── alarm-strategy.d.ts
│ │ │ ├── cloud-accounts.d.ts
│ │ │ ├── cloud-common.d.ts
│ │ │ ├── cloud-overview.d.ts
│ │ │ ├── cluster.d.ts
│ │ │ ├── computing.d.ts
│ │ │ ├── custom-alarm.d.ts
│ │ │ ├── dashboard-model.d.ts
│ │ │ ├── domain-manage.d.ts
│ │ │ ├── machine.d.ts
│ │ │ ├── middleware-dashboard.d.ts
│ │ │ ├── monitor-common-metadata.d.ts
│ │ │ ├── networks.d.ts
│ │ │ ├── storage.d.ts
│ │ │ └── task.d.ts
│ ├── dcos
│ │ ├── common
│ │ │ ├── config.js
│ │ │ ├── containers
│ │ │ │ ├── terminal.scss
│ │ │ │ └── terminal.tsx
│ │ │ ├── custom-label.scss
│ │ │ ├── custom-label.tsx
│ │ │ ├── label-selector.scss
│ │ │ └── label-selector.tsx
│ │ ├── entry.js
│ │ ├── pages
│ │ │ ├── alarm-report
│ │ │ │ ├── config
│ │ │ │ │ ├── processChartList.ts
│ │ │ │ │ └── topChartList.ts
│ │ │ │ ├── index.tsx
│ │ │ │ ├── processDetail.scss
│ │ │ │ ├── processDetail.tsx
│ │ │ │ └── topTable.tsx
│ │ │ ├── associated-addon
│ │ │ │ └── index.tsx
│ │ │ ├── cluster-dashboard
│ │ │ │ ├── alarm-record.tsx
│ │ │ │ ├── groupTabs.tsx
│ │ │ │ ├── index.scss
│ │ │ │ ├── index.tsx
│ │ │ │ ├── instance-list.scss
│ │ │ │ ├── instance-list.tsx
│ │ │ │ ├── machine-detail.scss
│ │ │ │ ├── machine-detail.tsx
│ │ │ │ ├── machine-list.tsx
│ │ │ │ ├── machineTabs.tsx
│ │ │ │ ├── resources-summary.scss
│ │ │ │ ├── resources-summary.tsx
│ │ │ │ └── resources-usage-trend.tsx
│ │ │ ├── machine-manager
│ │ │ │ ├── machine-offline-modal.tsx
│ │ │ │ ├── machine-table.scss
│ │ │ │ ├── machine-table.tsx
│ │ │ │ └── tag-form.tsx
│ │ │ └── service-manager
│ │ │ │ ├── index.scss
│ │ │ │ ├── index.tsx
│ │ │ │ ├── info-box.tsx
│ │ │ │ ├── mq-manager
│ │ │ │ ├── group.tsx
│ │ │ │ ├── index.tsx
│ │ │ │ ├── info.tsx
│ │ │ │ └── topic.tsx
│ │ │ │ ├── mq.tsx
│ │ │ │ ├── rds-manager
│ │ │ │ ├── account-form
│ │ │ │ │ ├── add-account-form.tsx
│ │ │ │ │ ├── change-permission-form.scss
│ │ │ │ │ ├── change-permission-form.tsx
│ │ │ │ │ └── reset-password-form.tsx
│ │ │ │ ├── database.tsx
│ │ │ │ ├── index.tsx
│ │ │ │ ├── info.tsx
│ │ │ │ └── rds-account.tsx
│ │ │ │ ├── rds.tsx
│ │ │ │ ├── redis-manager
│ │ │ │ ├── index.tsx
│ │ │ │ └── info.tsx
│ │ │ │ ├── redis.tsx
│ │ │ │ ├── service-list.scss
│ │ │ │ └── service-list.tsx
│ │ ├── router.ts
│ │ ├── services
│ │ │ ├── alarm.ts
│ │ │ ├── cloud-service.ts
│ │ │ ├── dashboard.ts
│ │ │ ├── machine.ts
│ │ │ ├── purchase.ts
│ │ │ └── service.ts
│ │ ├── stores
│ │ │ ├── cloud-service.ts
│ │ │ ├── dashboard.ts
│ │ │ ├── machine.ts
│ │ │ ├── purchase.ts
│ │ │ └── services.ts
│ │ └── types
│ │ │ ├── alarm.d.ts
│ │ │ ├── cloud-service.d.ts
│ │ │ ├── dashboard.d.ts
│ │ │ ├── purchase.d.ts
│ │ │ └── services.d.ts
│ ├── dop
│ │ ├── entry.js
│ │ ├── locales
│ │ │ ├── en.json
│ │ │ └── zh.json
│ │ ├── pages
│ │ │ ├── addons
│ │ │ │ └── sidebar-menu.tsx
│ │ │ ├── form-editor
│ │ │ │ ├── components
│ │ │ │ │ ├── api-test.scss
│ │ │ │ │ └── api-test.tsx
│ │ │ │ ├── form-items
│ │ │ │ │ ├── api-test.tsx
│ │ │ │ │ ├── datasource-selector.tsx
│ │ │ │ │ └── member-selector.tsx
│ │ │ │ └── index.tsx
│ │ │ ├── projects
│ │ │ │ ├── apply-unblock-modal.tsx
│ │ │ │ └── project-list-protocol.tsx
│ │ │ ├── publisher
│ │ │ │ └── index.tsx
│ │ │ └── report
│ │ │ │ ├── chart-column.tsx
│ │ │ │ ├── index.tsx
│ │ │ │ └── rate-select.tsx
│ │ ├── router.ts
│ │ ├── services
│ │ │ └── index.ts
│ │ └── stores
│ │ │ └── index.tsx
│ ├── ecp
│ │ ├── entry.js
│ │ ├── pages
│ │ │ ├── application
│ │ │ │ ├── index.tsx
│ │ │ │ ├── site-ip-manage.tsx
│ │ │ │ └── site-manage.tsx
│ │ │ ├── components
│ │ │ │ └── monitor-drawer.tsx
│ │ │ ├── resource
│ │ │ │ ├── index.tsx
│ │ │ │ └── machine-manage.tsx
│ │ │ └── setting
│ │ │ │ ├── detail.tsx
│ │ │ │ └── index.tsx
│ │ ├── router.ts
│ │ ├── services
│ │ │ └── machine-manage.ts
│ │ ├── stores
│ │ │ └── machine-manage.ts
│ │ └── types
│ │ │ └── machine-manage.d.ts
│ ├── extra
│ │ └── entry.js
│ ├── gallery
│ │ ├── entry.js
│ │ ├── pages
│ │ │ ├── detail.scss
│ │ │ ├── detail.tsx
│ │ │ ├── index.scss
│ │ │ └── index.tsx
│ │ ├── router.ts
│ │ ├── services
│ │ │ └── index.ts
│ │ └── types
│ │ │ └── market.d.ts
│ ├── msp
│ │ ├── alarm-manage
│ │ │ ├── alarm-record
│ │ │ │ ├── services
│ │ │ │ │ └── alarm-record.ts
│ │ │ │ └── stores
│ │ │ │ │ └── alarm-record.ts
│ │ │ ├── alarm-strategy
│ │ │ │ ├── index.js
│ │ │ │ ├── pages
│ │ │ │ │ ├── alarm-index
│ │ │ │ │ │ ├── index.tsx
│ │ │ │ │ │ └── msp-strategy.tsx
│ │ │ │ │ └── custom-alarm
│ │ │ │ │ │ └── index.tsx
│ │ │ │ ├── services
│ │ │ │ │ ├── alarm-strategy.ts
│ │ │ │ │ └── custom-alarm.ts
│ │ │ │ └── stores
│ │ │ │ │ ├── alarm-strategy.ts
│ │ │ │ │ ├── analysis-monitor-metadata.ts
│ │ │ │ │ └── custom-alarm.ts
│ │ │ ├── alert-list
│ │ │ │ ├── component
│ │ │ │ │ └── alarm-detail-title.tsx
│ │ │ │ ├── events
│ │ │ │ │ ├── base-event-detail.tsx
│ │ │ │ │ ├── base-event-list.tsx
│ │ │ │ │ ├── detail.tsx
│ │ │ │ │ └── index.tsx
│ │ │ │ └── notification
│ │ │ │ │ ├── base-notification-detail.tsx
│ │ │ │ │ ├── base-notification-list.tsx
│ │ │ │ │ ├── detail.tsx
│ │ │ │ │ └── index.tsx
│ │ │ ├── index.ts
│ │ │ ├── notify-group
│ │ │ │ ├── index.scss
│ │ │ │ └── index.tsx
│ │ │ └── overview
│ │ │ │ ├── base-overview.tsx
│ │ │ │ └── index.tsx
│ │ ├── components
│ │ │ ├── analyzer-chart.tsx
│ │ │ ├── card-list.tsx
│ │ │ ├── intro-page.tsx
│ │ │ └── time-select.tsx
│ │ ├── config.tsx
│ │ ├── entry.js
│ │ ├── env-overview
│ │ │ ├── router.ts
│ │ │ ├── service-list
│ │ │ │ ├── pages
│ │ │ │ │ ├── anomaly.tsx
│ │ │ │ │ ├── index.scss
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ ├── no-services-holder.tsx
│ │ │ │ │ ├── overview.tsx
│ │ │ │ │ ├── process.tsx
│ │ │ │ │ ├── service-list-dashboard.tsx
│ │ │ │ │ ├── service-list.scss
│ │ │ │ │ ├── service-name-select.scss
│ │ │ │ │ ├── service-name-select.tsx
│ │ │ │ │ ├── trace.tsx
│ │ │ │ │ ├── transaction-detail.tsx
│ │ │ │ │ ├── transaction.scss
│ │ │ │ │ └── transaction.tsx
│ │ │ │ └── router.ts
│ │ │ └── topology
│ │ │ │ ├── pages
│ │ │ │ └── topology
│ │ │ │ │ ├── component
│ │ │ │ │ ├── floating-edge
│ │ │ │ │ │ ├── connection-line.tsx
│ │ │ │ │ │ ├── index.tsx
│ │ │ │ │ │ └── utils.ts
│ │ │ │ │ ├── nodes
│ │ │ │ │ │ ├── addon-node.tsx
│ │ │ │ │ │ ├── api-gateway-node.tsx
│ │ │ │ │ │ ├── common-node.scss
│ │ │ │ │ │ ├── common-node.tsx
│ │ │ │ │ │ ├── external-service-node.tsx
│ │ │ │ │ │ ├── index.scss
│ │ │ │ │ │ ├── index.tsx
│ │ │ │ │ │ └── services-node.tsx
│ │ │ │ │ ├── progress
│ │ │ │ │ │ ├── circular.tsx
│ │ │ │ │ │ ├── hexagon.tsx
│ │ │ │ │ │ └── index.scss
│ │ │ │ │ ├── topology-comp.tsx
│ │ │ │ │ ├── topology-detail.tsx
│ │ │ │ │ ├── topology-overview.scss
│ │ │ │ │ └── topology-overview.tsx
│ │ │ │ │ ├── index.scss
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ └── utils
│ │ │ │ │ └── index.ts
│ │ │ │ ├── services
│ │ │ │ └── topology.ts
│ │ │ │ └── types
│ │ │ │ └── topology.d.ts
│ │ ├── env-setting
│ │ │ ├── configuration
│ │ │ │ ├── index.tsx
│ │ │ │ ├── type-select.scss
│ │ │ │ └── type-select.tsx
│ │ │ ├── info
│ │ │ │ └── index.tsx
│ │ │ └── member-manage
│ │ │ │ └── index.tsx
│ │ ├── monitor
│ │ │ ├── api-insight
│ │ │ │ ├── common
│ │ │ │ │ └── components
│ │ │ │ │ │ ├── apiDelayPanel.tsx
│ │ │ │ │ │ ├── apiRenderFactory.tsx
│ │ │ │ │ │ ├── apiSizePanel.tsx
│ │ │ │ │ │ ├── connectChart.tsx
│ │ │ │ │ │ ├── filterNav.scss
│ │ │ │ │ │ ├── filterNav.tsx
│ │ │ │ │ │ └── topPVPanel.tsx
│ │ │ │ ├── pages
│ │ │ │ │ ├── config.ts
│ │ │ │ │ ├── delay
│ │ │ │ │ │ ├── config
│ │ │ │ │ │ │ ├── apiConfig.ts
│ │ │ │ │ │ │ └── chartMap.ts
│ │ │ │ │ │ └── index.tsx
│ │ │ │ │ ├── indices
│ │ │ │ │ │ ├── config
│ │ │ │ │ │ │ ├── apiConfig.ts
│ │ │ │ │ │ │ └── chartMap.ts
│ │ │ │ │ │ └── index.tsx
│ │ │ │ │ ├── request
│ │ │ │ │ │ ├── config
│ │ │ │ │ │ │ ├── apiConfig.ts
│ │ │ │ │ │ │ └── chartMap.ts
│ │ │ │ │ │ └── index.tsx
│ │ │ │ │ └── transport
│ │ │ │ │ │ ├── config
│ │ │ │ │ │ ├── apiConfig.ts
│ │ │ │ │ │ └── chartMap.ts
│ │ │ │ │ │ └── index.tsx
│ │ │ │ ├── router.ts
│ │ │ │ └── stores
│ │ │ │ │ ├── filter.ts
│ │ │ │ │ └── request.ts
│ │ │ ├── browser-insight
│ │ │ │ ├── common
│ │ │ │ │ ├── components
│ │ │ │ │ │ ├── biRenderFactory.tsx
│ │ │ │ │ │ ├── slow-track-panel.tsx
│ │ │ │ │ │ ├── sort-list
│ │ │ │ │ │ │ ├── sort-list.scss
│ │ │ │ │ │ │ ├── sort-list.tsx
│ │ │ │ │ │ │ ├── sort-tab.scss
│ │ │ │ │ │ │ ├── sort-tab.tsx
│ │ │ │ │ │ │ ├── sortFactory.tsx
│ │ │ │ │ │ │ ├── sub-tab.scss
│ │ │ │ │ │ │ └── sub-tab.tsx
│ │ │ │ │ │ └── table-panel.tsx
│ │ │ │ │ └── utils
│ │ │ │ │ │ └── index.ts
│ │ │ │ ├── pages
│ │ │ │ │ ├── ajax
│ │ │ │ │ │ ├── ajax.tsx
│ │ │ │ │ │ └── config
│ │ │ │ │ │ │ ├── apiConfig.ts
│ │ │ │ │ │ │ └── chartMap.ts
│ │ │ │ │ ├── browser
│ │ │ │ │ │ ├── browser.tsx
│ │ │ │ │ │ └── config
│ │ │ │ │ │ │ ├── apiConfig.ts
│ │ │ │ │ │ │ └── chartMap.ts
│ │ │ │ │ ├── comparative
│ │ │ │ │ │ ├── comparative.scss
│ │ │ │ │ │ └── comparative.tsx
│ │ │ │ │ ├── domain
│ │ │ │ │ │ ├── config
│ │ │ │ │ │ │ ├── apiConfig.ts
│ │ │ │ │ │ │ └── chartMap.ts
│ │ │ │ │ │ ├── domain.scss
│ │ │ │ │ │ └── domain.tsx
│ │ │ │ │ ├── exception
│ │ │ │ │ │ ├── config
│ │ │ │ │ │ │ ├── apiConfig.ts
│ │ │ │ │ │ │ └── chartMap.ts
│ │ │ │ │ │ ├── exception-trace-panel.tsx
│ │ │ │ │ │ ├── exception.scss
│ │ │ │ │ │ └── exception.tsx
│ │ │ │ │ ├── geography-china
│ │ │ │ │ │ ├── config
│ │ │ │ │ │ │ ├── apiConfig.ts
│ │ │ │ │ │ │ └── chartMap.ts
│ │ │ │ │ │ ├── geography-china.tsx
│ │ │ │ │ │ └── slow-track.tsx
│ │ │ │ │ ├── overview
│ │ │ │ │ │ ├── config
│ │ │ │ │ │ │ ├── apiConfig.ts
│ │ │ │ │ │ │ └── chartMap.ts
│ │ │ │ │ │ └── overview.tsx
│ │ │ │ │ ├── page
│ │ │ │ │ │ ├── config
│ │ │ │ │ │ │ ├── apiConfig.ts
│ │ │ │ │ │ │ └── chartMap.ts
│ │ │ │ │ │ ├── page.scss
│ │ │ │ │ │ └── page.tsx
│ │ │ │ │ ├── position
│ │ │ │ │ │ ├── config
│ │ │ │ │ │ │ ├── apiConfig.ts
│ │ │ │ │ │ │ └── chartMap.ts
│ │ │ │ │ │ ├── position.scss
│ │ │ │ │ │ └── position.tsx
│ │ │ │ │ ├── script
│ │ │ │ │ │ ├── config
│ │ │ │ │ │ │ ├── apiConfig.ts
│ │ │ │ │ │ │ └── chartMap.ts
│ │ │ │ │ │ ├── script-detail.tsx
│ │ │ │ │ │ └── script.tsx
│ │ │ │ │ └── summary
│ │ │ │ │ │ ├── config
│ │ │ │ │ │ ├── apiConfig.ts
│ │ │ │ │ │ └── chartMap.ts
│ │ │ │ │ │ ├── summary-detail.tsx
│ │ │ │ │ │ ├── summary.scss
│ │ │ │ │ │ └── summary.tsx
│ │ │ │ ├── router.ts
│ │ │ │ ├── services
│ │ │ │ │ └── comparative.js
│ │ │ │ └── stores
│ │ │ │ │ └── comparative.ts
│ │ │ ├── error-insight
│ │ │ │ ├── pages
│ │ │ │ │ └── errors
│ │ │ │ │ │ ├── error-card.scss
│ │ │ │ │ │ ├── error-card.tsx
│ │ │ │ │ │ ├── error-detail.scss
│ │ │ │ │ │ ├── error-detail.tsx
│ │ │ │ │ │ ├── error-filters.scss
│ │ │ │ │ │ ├── error-filters.tsx
│ │ │ │ │ │ ├── error-overview.scss
│ │ │ │ │ │ └── error-overview.tsx
│ │ │ │ ├── router.ts
│ │ │ │ ├── services
│ │ │ │ │ └── errors.ts
│ │ │ │ ├── stores
│ │ │ │ │ └── error.ts
│ │ │ │ └── types
│ │ │ │ │ └── index.d.ts
│ │ │ ├── gateway-ingress
│ │ │ │ ├── common
│ │ │ │ │ └── components
│ │ │ │ │ │ ├── domain-selector.scss
│ │ │ │ │ │ ├── domain-selector.tsx
│ │ │ │ │ │ ├── giRenderFactory.tsx
│ │ │ │ │ │ ├── http-status-input.scss
│ │ │ │ │ │ ├── http-status-input.tsx
│ │ │ │ │ │ ├── statistics-selector.scss
│ │ │ │ │ │ ├── statistics-selector.tsx
│ │ │ │ │ │ ├── tab-right.scss
│ │ │ │ │ │ └── tab-right.tsx
│ │ │ │ ├── pages
│ │ │ │ │ ├── connection
│ │ │ │ │ │ ├── config
│ │ │ │ │ │ │ ├── apiConfig.ts
│ │ │ │ │ │ │ └── chartMap.ts
│ │ │ │ │ │ └── connection.tsx
│ │ │ │ │ ├── latency
│ │ │ │ │ │ ├── config
│ │ │ │ │ │ │ ├── apiConfig.ts
│ │ │ │ │ │ │ └── chartMap.ts
│ │ │ │ │ │ └── latency.tsx
│ │ │ │ │ ├── qps
│ │ │ │ │ │ ├── config
│ │ │ │ │ │ │ ├── apiConfig.ts
│ │ │ │ │ │ │ └── chartMap.ts
│ │ │ │ │ │ └── qps.tsx
│ │ │ │ │ └── traffic
│ │ │ │ │ │ ├── config
│ │ │ │ │ │ ├── apiConfig.ts
│ │ │ │ │ │ └── chartMap.ts
│ │ │ │ │ │ └── traffic.tsx
│ │ │ │ ├── router.ts
│ │ │ │ ├── services
│ │ │ │ │ └── common.ts
│ │ │ │ └── stores
│ │ │ │ │ └── common.ts
│ │ │ ├── monitor-common
│ │ │ │ ├── components
│ │ │ │ │ ├── appGroupSelector.tsx
│ │ │ │ │ ├── appsSelector.scss
│ │ │ │ │ ├── appsSelector.tsx
│ │ │ │ │ ├── chartFactory.tsx
│ │ │ │ │ ├── moduleSelector.tsx
│ │ │ │ │ ├── resource-usage
│ │ │ │ │ │ ├── config.ts
│ │ │ │ │ │ ├── resource-usage-charts.scss
│ │ │ │ │ │ └── resource-usage-charts.tsx
│ │ │ │ │ ├── sort-list
│ │ │ │ │ │ ├── sort-list.scss
│ │ │ │ │ │ ├── sort-list.tsx
│ │ │ │ │ │ ├── sort-tab.scss
│ │ │ │ │ │ ├── sort-tab.tsx
│ │ │ │ │ │ ├── sortFactory.tsx
│ │ │ │ │ │ ├── sub-tab.scss
│ │ │ │ │ │ └── sub-tab.tsx
│ │ │ │ │ ├── top-nav-right.scss
│ │ │ │ │ └── top-tab-right.tsx
│ │ │ │ ├── index.js
│ │ │ │ ├── services
│ │ │ │ │ └── monitorChart.ts
│ │ │ │ └── stores
│ │ │ │ │ └── monitorChart.ts
│ │ │ ├── monitor-overview
│ │ │ │ └── router.ts
│ │ │ ├── status-insight
│ │ │ │ ├── pages
│ │ │ │ │ └── status
│ │ │ │ │ │ ├── 3-month-uptime.tsx
│ │ │ │ │ │ ├── add-modal.scss
│ │ │ │ │ │ ├── add-modal.tsx
│ │ │ │ │ │ ├── constants.ts
│ │ │ │ │ │ ├── month-uptime.scss
│ │ │ │ │ │ ├── month-uptime.tsx
│ │ │ │ │ │ ├── past-incidents.tsx
│ │ │ │ │ │ ├── status-chart.tsx
│ │ │ │ │ │ ├── status-common.scss
│ │ │ │ │ │ ├── status-detail-chart.tsx
│ │ │ │ │ │ ├── status-detail.scss
│ │ │ │ │ │ ├── status-detail.tsx
│ │ │ │ │ │ ├── status.scss
│ │ │ │ │ │ └── status.tsx
│ │ │ │ ├── router.ts
│ │ │ │ ├── services
│ │ │ │ │ └── status.ts
│ │ │ │ ├── stores
│ │ │ │ │ └── status.ts
│ │ │ │ └── types
│ │ │ │ │ └── index.d.ts
│ │ │ └── trace-insight
│ │ │ │ ├── common
│ │ │ │ └── utils
│ │ │ │ │ ├── traceConstants.ts
│ │ │ │ │ ├── traceConvert.ts
│ │ │ │ │ └── traceSummary.ts
│ │ │ │ ├── pages
│ │ │ │ ├── trace-detail
│ │ │ │ │ ├── components
│ │ │ │ │ │ ├── trace-detail-filter.tsx
│ │ │ │ │ │ ├── trace-detail.scss
│ │ │ │ │ │ └── trace-detail.tsx
│ │ │ │ │ ├── containers
│ │ │ │ │ │ └── trace-detail.tsx
│ │ │ │ │ └── index.ts
│ │ │ │ └── trace-querier
│ │ │ │ │ ├── constants.ts
│ │ │ │ │ ├── trace-common-panel.scss
│ │ │ │ │ ├── trace-common-panel.tsx
│ │ │ │ │ ├── trace-detail-filter.tsx
│ │ │ │ │ ├── trace-detail-new.tsx
│ │ │ │ │ ├── trace-graph
│ │ │ │ │ ├── index.scss
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ ├── span-time-info.tsx
│ │ │ │ │ ├── span-title-info.tsx
│ │ │ │ │ ├── trace-detail-info.tsx
│ │ │ │ │ ├── trace-header.tsx
│ │ │ │ │ └── utils.ts
│ │ │ │ │ ├── trace-history-list.scss
│ │ │ │ │ ├── trace-history-list.tsx
│ │ │ │ │ ├── trace-querier.scss
│ │ │ │ │ ├── trace-querier.tsx
│ │ │ │ │ ├── trace-search-detail.scss
│ │ │ │ │ ├── trace-search-detail.tsx
│ │ │ │ │ ├── trace-search.tsx
│ │ │ │ │ ├── trace-status-viewer.scss
│ │ │ │ │ └── trace-status-viewer.tsx
│ │ │ │ ├── router.ts
│ │ │ │ ├── services
│ │ │ │ ├── trace-detail.ts
│ │ │ │ └── trace-querier.ts
│ │ │ │ ├── stores
│ │ │ │ ├── trace-detail.ts
│ │ │ │ └── trace-querier.ts
│ │ │ │ └── types
│ │ │ │ └── index.d.ts
│ │ ├── pages
│ │ │ ├── micro-service
│ │ │ │ ├── overview.scss
│ │ │ │ ├── overview.tsx
│ │ │ │ └── switch-env.tsx
│ │ │ ├── transfer
│ │ │ │ └── si.tsx
│ │ │ └── wait-wrapper.tsx
│ │ ├── query-analysis
│ │ │ ├── custom-dashboard
│ │ │ │ ├── index.ts
│ │ │ │ ├── pages
│ │ │ │ │ ├── custom-dashboard.tsx
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── services
│ │ │ │ │ └── custom-dashboard.ts
│ │ │ │ └── stores
│ │ │ │ │ ├── custom-dashboard.ts
│ │ │ │ │ └── query-monitor-metadata.ts
│ │ │ └── index.ts
│ │ ├── router.ts
│ │ ├── services
│ │ │ ├── configCenter.ts
│ │ │ ├── configuration.ts
│ │ │ ├── dubbo.ts
│ │ │ ├── gateway.ts
│ │ │ ├── http.ts
│ │ │ ├── index.ts
│ │ │ ├── info.ts
│ │ │ ├── log-analytics.ts
│ │ │ ├── log-analyze.ts
│ │ │ ├── service-list.ts
│ │ │ ├── topology-service-analyze.ts
│ │ │ ├── trace.ts
│ │ │ └── zkproxy.ts
│ │ ├── stores
│ │ │ ├── config-center.ts
│ │ │ ├── dubbo.ts
│ │ │ ├── gateway.ts
│ │ │ ├── http.ts
│ │ │ ├── info.ts
│ │ │ ├── log-analytics.ts
│ │ │ ├── log-analyze.ts
│ │ │ ├── micro-service.tsx
│ │ │ ├── service-analytics.ts
│ │ │ ├── topology-service-analyze.ts
│ │ │ ├── trace.ts
│ │ │ └── zkproxy.ts
│ │ └── types
│ │ │ ├── config-center.d.ts
│ │ │ ├── configuration.d.ts
│ │ │ ├── gateway.d.ts
│ │ │ ├── index.d.ts
│ │ │ ├── info.d.ts
│ │ │ ├── log-analytics.d.ts
│ │ │ ├── log-analyze.d.ts
│ │ │ ├── monitor.d.ts
│ │ │ ├── service-analytics.d.ts
│ │ │ ├── service.d.ts
│ │ │ ├── topology-service-analyze.d.ts
│ │ │ └── zkproxy.d.ts
│ ├── org
│ │ ├── common
│ │ │ ├── audit-render.tsx
│ │ │ ├── audit-templates.json
│ │ │ ├── card
│ │ │ │ ├── index.scss
│ │ │ │ └── index.tsx
│ │ │ ├── cluster-quota.tsx
│ │ │ ├── compact-select
│ │ │ │ ├── index.scss
│ │ │ │ └── index.tsx
│ │ │ ├── config.ts
│ │ │ ├── field-options-setting.tsx
│ │ │ ├── issue-field-icon.scss
│ │ │ └── issue-field-icon.tsx
│ │ ├── entry.js
│ │ ├── pages
│ │ │ ├── announcement
│ │ │ │ ├── index.scss
│ │ │ │ └── index.tsx
│ │ │ ├── approval
│ │ │ │ └── index.tsx
│ │ │ ├── certificate
│ │ │ │ ├── detail-modal.tsx
│ │ │ │ ├── index.scss
│ │ │ │ └── index.tsx
│ │ │ ├── projects
│ │ │ │ ├── add-project.tsx
│ │ │ │ ├── create-project.scss
│ │ │ │ ├── create-project.tsx
│ │ │ │ ├── import-project-template.scss
│ │ │ │ ├── import-project-template.tsx
│ │ │ │ ├── import-project.tsx
│ │ │ │ ├── issue-field-manage.tsx
│ │ │ │ ├── issue-field-modal.tsx
│ │ │ │ ├── issue-field-setting-modal.scss
│ │ │ │ ├── issue-field-setting-modal.tsx
│ │ │ │ ├── issue-type-manage.tsx
│ │ │ │ ├── operation-project-record.tsx
│ │ │ │ ├── project-list.scss
│ │ │ │ ├── project-list.tsx
│ │ │ │ └── settings
│ │ │ │ │ ├── info
│ │ │ │ │ ├── index.scss
│ │ │ │ │ └── index.tsx
│ │ │ │ │ └── member
│ │ │ │ │ └── index.tsx
│ │ │ ├── safety
│ │ │ │ └── index.tsx
│ │ │ └── setting
│ │ │ │ ├── block-network.tsx
│ │ │ │ ├── license-info.tsx
│ │ │ │ ├── member-label.scss
│ │ │ │ ├── member-label.tsx
│ │ │ │ ├── notice-channel.tsx
│ │ │ │ ├── operation-log-setting.tsx
│ │ │ │ ├── org-info.tsx
│ │ │ │ ├── org-setting.scss
│ │ │ │ └── org-setting.tsx
│ │ ├── router.ts
│ │ ├── services
│ │ │ ├── announcement.ts
│ │ │ ├── approval.ts
│ │ │ ├── audit.ts
│ │ │ ├── certificate.ts
│ │ │ ├── issue-field.ts
│ │ │ ├── license.ts
│ │ │ ├── notice-channel.ts
│ │ │ └── project-list.ts
│ │ ├── stores
│ │ │ ├── announcement.ts
│ │ │ ├── approval.ts
│ │ │ ├── audit.ts
│ │ │ ├── certificate.ts
│ │ │ ├── index.ts
│ │ │ └── issue-field.ts
│ │ └── types
│ │ │ ├── announcement.d.ts
│ │ │ ├── approval.d.ts
│ │ │ ├── audit.d.ts
│ │ │ ├── certificate.d.ts
│ │ │ ├── import-export-file-list.d.ts
│ │ │ ├── issue-field.d.ts
│ │ │ └── notice-channel.d.ts
│ ├── project
│ │ ├── common
│ │ │ ├── components
│ │ │ │ ├── activity.scss
│ │ │ │ ├── activity.tsx
│ │ │ │ ├── branch-rule.tsx
│ │ │ │ ├── configuration-center
│ │ │ │ │ └── config-form-modal.jsx
│ │ │ │ ├── datasource-selector.tsx
│ │ │ │ ├── health-point.scss
│ │ │ │ ├── health-point.tsx
│ │ │ │ ├── issue-workflow-setting-modal.scss
│ │ │ │ ├── issue-workflow-setting-modal.tsx
│ │ │ │ ├── issue-workflow.scss
│ │ │ │ ├── issue-workflow.tsx
│ │ │ │ ├── issue
│ │ │ │ │ ├── add-mr-relation.scss
│ │ │ │ │ ├── add-mr-relation.tsx
│ │ │ │ │ ├── comment-box.scss
│ │ │ │ │ ├── comment-box.tsx
│ │ │ │ │ ├── edit-issue-drawer
│ │ │ │ │ │ ├── index.tsx
│ │ │ │ │ │ ├── meta-fields.scss
│ │ │ │ │ │ └── meta-fields.tsx
│ │ │ │ │ ├── issue-activities.scss
│ │ │ │ │ ├── issue-activities.tsx
│ │ │ │ │ ├── issue-config.scss
│ │ │ │ │ ├── issue-config.tsx
│ │ │ │ │ ├── issue-drawer.scss
│ │ │ │ │ ├── issue-drawer.tsx
│ │ │ │ │ ├── issue-icon.scss
│ │ │ │ │ ├── issue-icon.tsx
│ │ │ │ │ ├── issue-relation.scss
│ │ │ │ │ ├── issue-relation.tsx
│ │ │ │ │ ├── issue-state.tsx
│ │ │ │ │ ├── issue-testCase-relation.tsx
│ │ │ │ │ ├── iteration-select.tsx
│ │ │ │ │ ├── subscribers-selector.tsx
│ │ │ │ │ ├── text-field-input.tsx
│ │ │ │ │ ├── time-input.scss
│ │ │ │ │ ├── time-input.tsx
│ │ │ │ │ ├── time-trace.scss
│ │ │ │ │ └── time-trace.tsx
│ │ │ │ ├── iteration-selector.scss
│ │ │ │ ├── iteration-selector.tsx
│ │ │ │ ├── params-config
│ │ │ │ │ ├── config.ts
│ │ │ │ │ ├── index.scss
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ ├── list-edit.tsx
│ │ │ │ │ └── text-edit.tsx
│ │ │ │ ├── pipeline-manage
│ │ │ │ │ ├── common
│ │ │ │ │ │ ├── config-env-selector.tsx
│ │ │ │ │ │ └── tree-category
│ │ │ │ │ │ │ ├── edit-category.tsx
│ │ │ │ │ │ │ ├── index.ts
│ │ │ │ │ │ │ ├── tree.scss
│ │ │ │ │ │ │ ├── tree.tsx
│ │ │ │ │ │ │ └── utils.tsx
│ │ │ │ │ ├── config-detail
│ │ │ │ │ │ ├── case-edit-form.tsx
│ │ │ │ │ │ ├── case-info.tsx
│ │ │ │ │ │ ├── index.tsx
│ │ │ │ │ │ ├── pipeline-editor
│ │ │ │ │ │ │ ├── case-node.scss
│ │ │ │ │ │ │ ├── case-node.tsx
│ │ │ │ │ │ │ ├── case-tree-selector.tsx
│ │ │ │ │ │ │ ├── case-yml-graphic-editor.scss
│ │ │ │ │ │ │ ├── case-yml-graphic-editor.tsx
│ │ │ │ │ │ │ └── index.tsx
│ │ │ │ │ │ ├── record-list.scss
│ │ │ │ │ │ └── record-list.tsx
│ │ │ │ │ ├── config.tsx
│ │ │ │ │ ├── file-tree.tsx
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ ├── pipeline-detail.tsx
│ │ │ │ │ ├── run-detail
│ │ │ │ │ │ ├── base-info.scss
│ │ │ │ │ │ ├── base-info.tsx
│ │ │ │ │ │ ├── config.ts
│ │ │ │ │ │ ├── index.scss
│ │ │ │ │ │ ├── index.tsx
│ │ │ │ │ │ ├── pipeline-chart
│ │ │ │ │ │ │ ├── index.tsx
│ │ │ │ │ │ │ ├── run-case-node.scss
│ │ │ │ │ │ │ └── run-case-node.tsx
│ │ │ │ │ │ ├── record-list.scss
│ │ │ │ │ │ ├── record-list.tsx
│ │ │ │ │ │ ├── result-view.scss
│ │ │ │ │ │ ├── result-view.tsx
│ │ │ │ │ │ ├── snippet-detail.scss
│ │ │ │ │ │ └── snippet-detail.tsx
│ │ │ │ │ └── scope-config.tsx
│ │ │ │ ├── pipeline-new
│ │ │ │ │ ├── category.scss
│ │ │ │ │ ├── category.tsx
│ │ │ │ │ ├── config.tsx
│ │ │ │ │ ├── detail
│ │ │ │ │ │ ├── build-log.scss
│ │ │ │ │ │ ├── build-log.tsx
│ │ │ │ │ │ ├── editor.tsx
│ │ │ │ │ │ ├── execute.scss
│ │ │ │ │ │ ├── execute.tsx
│ │ │ │ │ │ ├── in-params-form.tsx
│ │ │ │ │ │ ├── index.tsx
│ │ │ │ │ │ ├── info.tsx
│ │ │ │ │ │ ├── pipeline-chart
│ │ │ │ │ │ │ ├── index.tsx
│ │ │ │ │ │ │ ├── pipeline-node.scss
│ │ │ │ │ │ │ └── pipeline-node.tsx
│ │ │ │ │ │ ├── pipeline-node.scss
│ │ │ │ │ │ └── pipeline-node.tsx
│ │ │ │ │ ├── form.scss
│ │ │ │ │ ├── form.tsx
│ │ │ │ │ ├── guide.scss
│ │ │ │ │ ├── guide.tsx
│ │ │ │ │ ├── index.scss
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ ├── list.tsx
│ │ │ │ │ ├── record-detail.scss
│ │ │ │ │ ├── record-detail.tsx
│ │ │ │ │ └── records.tsx
│ │ │ │ ├── project-selector.scss
│ │ │ │ ├── project-selector.tsx
│ │ │ │ ├── runtime-selector.scss
│ │ │ │ ├── runtime-selector.tsx
│ │ │ │ ├── scan-rule.tsx
│ │ │ │ ├── section-info-edit.tsx
│ │ │ │ ├── workflow-state-form.tsx
│ │ │ │ └── workflow
│ │ │ │ │ ├── add-flow.tsx
│ │ │ │ │ ├── cards
│ │ │ │ │ ├── base.tsx
│ │ │ │ │ ├── code.tsx
│ │ │ │ │ ├── merge-request.tsx
│ │ │ │ │ ├── merge.tsx
│ │ │ │ │ └── pipeline.tsx
│ │ │ │ │ ├── config.ts
│ │ │ │ │ ├── index.scss
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ ├── issue-workflow.tsx
│ │ │ │ │ └── mr-workflow.tsx
│ │ │ ├── config.ts
│ │ │ └── issue-config.ts
│ │ ├── constants.ts
│ │ ├── entry.js
│ │ ├── pages
│ │ │ ├── addon
│ │ │ │ ├── addon-category.tsx
│ │ │ │ └── custom-config.tsx
│ │ │ ├── apps
│ │ │ │ ├── app-form.scss
│ │ │ │ ├── app-form.tsx
│ │ │ │ ├── app-list.tsx
│ │ │ │ ├── app-type-select.scss
│ │ │ │ └── app-type-select.tsx
│ │ │ ├── auto-test
│ │ │ │ ├── import-file.tsx
│ │ │ │ ├── index.tsx
│ │ │ │ ├── scenes-import-record.tsx
│ │ │ │ └── scenes.tsx
│ │ │ ├── backlog
│ │ │ │ ├── backlog.scss
│ │ │ │ ├── backlog.tsx
│ │ │ │ ├── index.scss
│ │ │ │ ├── index.tsx
│ │ │ │ ├── issue-item.scss
│ │ │ │ ├── issue-item.tsx
│ │ │ │ ├── iteration-item.scss
│ │ │ │ ├── iteration-item.tsx
│ │ │ │ ├── iterations.scss
│ │ │ │ └── iterations.tsx
│ │ │ ├── config-sheet
│ │ │ │ └── index.tsx
│ │ │ ├── data-source
│ │ │ │ └── index.tsx
│ │ │ ├── deploy
│ │ │ │ ├── add-deploy
│ │ │ │ │ ├── add-release.scss
│ │ │ │ │ ├── add-release.tsx
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ └── release-list.tsx
│ │ │ │ ├── config.ts
│ │ │ │ ├── deploy-config
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── deploy-detail
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── index.scss
│ │ │ │ └── index.tsx
│ │ │ ├── flow
│ │ │ │ └── records.tsx
│ │ │ ├── homepage
│ │ │ │ ├── index.scss
│ │ │ │ ├── index.tsx
│ │ │ │ └── readme-markdown.tsx
│ │ │ ├── issue
│ │ │ │ ├── all.tsx
│ │ │ │ ├── board.tsx
│ │ │ │ ├── component
│ │ │ │ │ ├── table-view.scss
│ │ │ │ │ └── table-view.tsx
│ │ │ │ ├── gantt
│ │ │ │ │ ├── index.scss
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── import-export.scss
│ │ │ │ ├── import-export.tsx
│ │ │ │ ├── issue-dashboard.tsx
│ │ │ │ ├── issue-protocol.tsx
│ │ │ │ ├── statistics.tsx
│ │ │ │ └── task-summary.tsx
│ │ │ ├── iteration
│ │ │ │ ├── iteration-modal.tsx
│ │ │ │ └── table.tsx
│ │ │ ├── milestone
│ │ │ │ ├── index.scss
│ │ │ │ ├── index.tsx
│ │ │ │ ├── milestone-group.scss
│ │ │ │ ├── milestone-group.tsx
│ │ │ │ ├── milestone-item.scss
│ │ │ │ ├── milestone-item.tsx
│ │ │ │ ├── milestone-table.scss
│ │ │ │ └── milestone-table.tsx
│ │ │ ├── pipelines
│ │ │ │ ├── index.tsx
│ │ │ │ ├── old-pipeline.tsx
│ │ │ │ └── pipeline-config.tsx
│ │ │ ├── plan-detail
│ │ │ │ ├── batch-processing
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── case-import-button
│ │ │ │ │ ├── index.scss
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── change-result
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── columns
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ └── operation.tsx
│ │ │ │ ├── common-comp.tsx
│ │ │ │ ├── index.scss
│ │ │ │ ├── index.tsx
│ │ │ │ ├── pass-and-next.scss
│ │ │ │ ├── pass-and-next.tsx
│ │ │ │ ├── report
│ │ │ │ │ ├── basic-info
│ │ │ │ │ │ └── index.tsx
│ │ │ │ │ ├── charts-result
│ │ │ │ │ │ └── index.tsx
│ │ │ │ │ ├── export-pdf
│ │ │ │ │ │ └── index.tsx
│ │ │ │ │ ├── index.scss
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ ├── number-info
│ │ │ │ │ │ └── index.tsx
│ │ │ │ │ └── personal-usecase
│ │ │ │ │ │ └── index.tsx
│ │ │ │ ├── status-toggle.tsx
│ │ │ │ └── test-record
│ │ │ │ │ ├── build-history.scss
│ │ │ │ │ ├── build-history.tsx
│ │ │ │ │ ├── pipeline-detail.tsx
│ │ │ │ │ └── test-record.tsx
│ │ │ ├── release
│ │ │ │ ├── application.scss
│ │ │ │ ├── application.tsx
│ │ │ │ ├── components
│ │ │ │ │ ├── addon.scss
│ │ │ │ │ ├── addon.tsx
│ │ │ │ │ ├── application-detail.tsx
│ │ │ │ │ ├── form.scss
│ │ │ │ │ ├── form.tsx
│ │ │ │ │ ├── project-detail.tsx
│ │ │ │ │ ├── release-select.scss
│ │ │ │ │ ├── release-select.tsx
│ │ │ │ │ └── update.tsx
│ │ │ │ ├── project.tsx
│ │ │ │ └── release-protocol.tsx
│ │ │ ├── resource
│ │ │ │ ├── components
│ │ │ │ │ ├── chart.jsx
│ │ │ │ │ ├── config.js
│ │ │ │ │ ├── resource.jsx
│ │ │ │ │ ├── resource.scss
│ │ │ │ │ ├── service-list.jsx
│ │ │ │ │ └── service-list.scss
│ │ │ │ ├── containers
│ │ │ │ │ ├── chart.jsx
│ │ │ │ │ └── service-list.tsx
│ │ │ │ └── index.js
│ │ │ ├── settings
│ │ │ │ ├── components
│ │ │ │ │ ├── project-cluster.scss
│ │ │ │ │ ├── project-cluster.tsx
│ │ │ │ │ ├── project-info.tsx
│ │ │ │ │ ├── project-label.scss
│ │ │ │ │ ├── project-label.tsx
│ │ │ │ │ ├── project-settings.tsx
│ │ │ │ │ └── workflow-setting
│ │ │ │ │ │ ├── branch-policy-card.tsx
│ │ │ │ │ │ ├── branch-policy.tsx
│ │ │ │ │ │ ├── devops-workflow-drawer.tsx
│ │ │ │ │ │ ├── devops-workflow.tsx
│ │ │ │ │ │ └── line.tsx
│ │ │ │ └── index.js
│ │ │ ├── statistics
│ │ │ │ ├── code-coverage.tsx
│ │ │ │ └── test-dashboard.tsx
│ │ │ ├── test-env
│ │ │ │ ├── protocol-input.tsx
│ │ │ │ ├── test-env-detail.tsx
│ │ │ │ ├── test-env.scss
│ │ │ │ └── test-env.tsx
│ │ │ ├── test-manage
│ │ │ │ ├── case
│ │ │ │ │ ├── case-drawer
│ │ │ │ │ │ ├── case-api.scss
│ │ │ │ │ │ ├── case-api.tsx
│ │ │ │ │ │ ├── case-footer.tsx
│ │ │ │ │ │ ├── case-meta.tsx
│ │ │ │ │ │ ├── case-step.scss
│ │ │ │ │ │ ├── case-step.tsx
│ │ │ │ │ │ ├── content-panel.scss
│ │ │ │ │ │ ├── content-panel.tsx
│ │ │ │ │ │ ├── index.scss
│ │ │ │ │ │ ├── index.tsx
│ │ │ │ │ │ ├── related-bugs.scss
│ │ │ │ │ │ ├── related-bugs.tsx
│ │ │ │ │ │ └── select-env.tsx
│ │ │ │ │ ├── columns
│ │ │ │ │ │ ├── index.tsx
│ │ │ │ │ │ └── more-operation
│ │ │ │ │ │ │ └── index.tsx
│ │ │ │ │ ├── filter-drawer.tsx
│ │ │ │ │ ├── header
│ │ │ │ │ │ ├── batch-processing
│ │ │ │ │ │ │ └── index.tsx
│ │ │ │ │ │ ├── plan-modal
│ │ │ │ │ │ │ └── index.tsx
│ │ │ │ │ │ └── tag-modal
│ │ │ │ │ │ │ └── index.tsx
│ │ │ │ │ ├── import-export.scss
│ │ │ │ │ ├── import-export.tsx
│ │ │ │ │ ├── manual-test.scss
│ │ │ │ │ ├── manual-test.tsx
│ │ │ │ │ ├── new-set.tsx
│ │ │ │ │ ├── project-tree-modal
│ │ │ │ │ │ └── index.tsx
│ │ │ │ │ └── test-env-drawer
│ │ │ │ │ │ └── index.tsx
│ │ │ │ ├── components
│ │ │ │ │ ├── case-table
│ │ │ │ │ │ ├── all-checkbox
│ │ │ │ │ │ │ ├── index.scss
│ │ │ │ │ │ │ └── index.tsx
│ │ │ │ │ │ ├── case-checkbox
│ │ │ │ │ │ │ └── index.tsx
│ │ │ │ │ │ └── index.tsx
│ │ │ │ │ ├── case-tree
│ │ │ │ │ │ ├── index.scss
│ │ │ │ │ │ ├── index.tsx
│ │ │ │ │ │ ├── title
│ │ │ │ │ │ │ └── index.tsx
│ │ │ │ │ │ └── utils.ts
│ │ │ │ │ ├── index.js
│ │ │ │ │ └── meta-modal
│ │ │ │ │ │ └── index.tsx
│ │ │ │ ├── constants.ts
│ │ │ │ └── types
│ │ │ │ │ └── index.d.ts
│ │ │ ├── test-plan
│ │ │ │ ├── auto-test-plan-detail
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── plan-modal.tsx
│ │ │ │ ├── test-plan-protocol.tsx
│ │ │ │ ├── test-plan.scss
│ │ │ │ └── test-plan.tsx
│ │ │ ├── test-report
│ │ │ │ ├── create.tsx
│ │ │ │ ├── download.tsx
│ │ │ │ └── index.tsx
│ │ │ ├── third-service
│ │ │ │ └── components
│ │ │ │ │ ├── addon-modal.scss
│ │ │ │ │ ├── addon-modal.tsx
│ │ │ │ │ ├── config.tsx
│ │ │ │ │ ├── instance-form.tsx
│ │ │ │ │ └── third-addon-form.tsx
│ │ │ └── ticket
│ │ │ │ └── index.tsx
│ │ ├── router.tsx
│ │ ├── services
│ │ │ ├── addon.ts
│ │ │ ├── auto-test-case.ts
│ │ │ ├── branch-rule.ts
│ │ │ ├── deploy.ts
│ │ │ ├── file-tree.tsx
│ │ │ ├── issue-workflow.ts
│ │ │ ├── issue.ts
│ │ │ ├── label.ts
│ │ │ ├── pipeline.tsx
│ │ │ ├── project-iteration.ts
│ │ │ ├── project-workflow.ts
│ │ │ ├── project.ts
│ │ │ ├── release.ts
│ │ │ ├── resource.ts
│ │ │ ├── scan-rule.ts
│ │ │ ├── test-case.ts
│ │ │ ├── test-env.ts
│ │ │ ├── test-plan.ts
│ │ │ └── test-set.ts
│ │ ├── stores
│ │ │ ├── auto-test-case.ts
│ │ │ ├── branch-rule.ts
│ │ │ ├── custom-addon.ts
│ │ │ ├── file-tree.tsx
│ │ │ ├── issue-workflow.ts
│ │ │ ├── issues.ts
│ │ │ ├── iteration.ts
│ │ │ ├── label.ts
│ │ │ ├── project.tsx
│ │ │ ├── release.ts
│ │ │ ├── resource.ts
│ │ │ ├── scan-rule.ts
│ │ │ ├── test-case.ts
│ │ │ ├── test-env.ts
│ │ │ ├── test-plan.ts
│ │ │ └── test-set.ts
│ │ ├── tabs.tsx
│ │ ├── types
│ │ │ ├── auto-test.d.ts
│ │ │ ├── custom-addon.d.ts
│ │ │ ├── deploy.d.ts
│ │ │ ├── devops-workflow.d.ts
│ │ │ ├── issue-workflow.d.ts
│ │ │ ├── issue.d.ts
│ │ │ ├── iteration.d.ts
│ │ │ ├── label.d.ts
│ │ │ ├── project.d.ts
│ │ │ ├── release.d.ts
│ │ │ ├── resource.d.ts
│ │ │ ├── scan-rule.d.ts
│ │ │ ├── test-env.d.ts
│ │ │ ├── test-plan.d.ts
│ │ │ └── test.d.ts
│ │ └── utils
│ │ │ └── test-case.ts
│ ├── publisher
│ │ ├── entry.js
│ │ ├── pages
│ │ │ ├── artifacts
│ │ │ │ ├── artifacts-detail.scss
│ │ │ │ ├── artifacts-detail.tsx
│ │ │ │ ├── artifacts-form-modal.tsx
│ │ │ │ ├── artifacts-info.tsx
│ │ │ │ ├── config.ts
│ │ │ │ ├── gray-form-modal.tsx
│ │ │ │ ├── index.scss
│ │ │ │ ├── index.tsx
│ │ │ │ ├── upload-modal.tsx
│ │ │ │ ├── version-form-modal.tsx
│ │ │ │ ├── version-list.tsx
│ │ │ │ └── vsrsion-list.scss
│ │ │ ├── authenticate
│ │ │ │ └── index.tsx
│ │ │ ├── error-report
│ │ │ │ ├── detail.tsx
│ │ │ │ ├── index.scss
│ │ │ │ └── index.tsx
│ │ │ ├── publisher-manage
│ │ │ │ ├── publisher-form-modal.tsx
│ │ │ │ ├── publisher-info.tsx
│ │ │ │ ├── publisher-list-v2.scss
│ │ │ │ ├── publisher-list-v2.tsx
│ │ │ │ ├── publisher-setting.scss
│ │ │ │ └── publisher-setting.tsx
│ │ │ ├── safety-manage
│ │ │ │ └── index.tsx
│ │ │ └── statistics
│ │ │ │ ├── detail.tsx
│ │ │ │ ├── index.scss
│ │ │ │ └── index.tsx
│ │ ├── router.ts
│ │ ├── services
│ │ │ ├── authenticate.ts
│ │ │ ├── error-report.ts
│ │ │ ├── publisher.ts
│ │ │ ├── safety.ts
│ │ │ └── statistics.ts
│ │ ├── stores
│ │ │ ├── authenticate.ts
│ │ │ ├── blacklist.ts
│ │ │ ├── erase.ts
│ │ │ ├── error-report.ts
│ │ │ ├── publisher.ts
│ │ │ └── statistics.ts
│ │ └── types
│ │ │ └── publisher.d.ts
│ └── runtime
│ │ ├── common
│ │ ├── components
│ │ │ ├── deployment-table.tsx
│ │ │ ├── instance-table.scss
│ │ │ ├── instance-table.tsx
│ │ │ ├── pod-table.tsx
│ │ │ ├── slide-panel-tabs.scss
│ │ │ └── slide-panel-tabs.tsx
│ │ └── logs
│ │ │ ├── components
│ │ │ ├── container-log.scss
│ │ │ ├── container-log.tsx
│ │ │ ├── deploy-log.scss
│ │ │ ├── deploy-log.tsx
│ │ │ ├── log-filter.tsx
│ │ │ └── migration-log.tsx
│ │ │ └── containers
│ │ │ ├── container-log.scss
│ │ │ └── container-log.tsx
│ │ ├── entry.js
│ │ ├── pages
│ │ └── overview
│ │ │ ├── components
│ │ │ ├── activity.scss
│ │ │ ├── activity.tsx
│ │ │ ├── addon-card.scss
│ │ │ ├── addon-card.tsx
│ │ │ ├── deploy-status.scss
│ │ │ ├── deploy-status.tsx
│ │ │ ├── domain-modal.scss
│ │ │ ├── domain-modal.tsx
│ │ │ ├── elastic-scaling.scss
│ │ │ ├── elastic-scaling.tsx
│ │ │ ├── index.scss
│ │ │ ├── index.tsx
│ │ │ ├── info.scss
│ │ │ ├── info.tsx
│ │ │ ├── resource-modal.scss
│ │ │ ├── resource-modal.tsx
│ │ │ ├── rollback-list.tsx
│ │ │ ├── service-card.scss
│ │ │ ├── service-card.tsx
│ │ │ ├── service-dropdown.scss
│ │ │ └── service-dropdown.tsx
│ │ │ ├── containers
│ │ │ └── index.tsx
│ │ │ └── index.js
│ │ ├── services
│ │ ├── domain.ts
│ │ ├── log.ts
│ │ ├── runtime.ts
│ │ └── service.ts
│ │ ├── stores
│ │ ├── domain.ts
│ │ ├── log.ts
│ │ ├── runtime.ts
│ │ └── service.ts
│ │ └── types
│ │ ├── domain.d.ts
│ │ ├── log.d.ts
│ │ ├── runtime.d.ts
│ │ └── service.d.ts
├── org-home
│ ├── entry.js
│ ├── pages
│ │ └── land
│ │ │ ├── index.scss
│ │ │ └── index.tsx
│ ├── router.tsx
│ ├── services
│ │ └── org.tsx
│ ├── stores
│ │ └── org.tsx
│ └── types
│ │ ├── org.d.ts
│ │ └── personal-home.d.ts
├── static
│ ├── api-design-worker.js
│ ├── dom-to-image.min.js
│ ├── favicon.ico
│ ├── jspdf.min.js
│ ├── roboto-regular.ttf
│ ├── usecase_model_en.xlsx
│ ├── usecase_model_en.xmind
│ ├── usecase_model_zh.xlsx
│ └── usecase_model_zh.xmind
├── styles
│ ├── _color.scss
│ ├── _mixin.scss
│ ├── _variable.scss
│ ├── antd-extension.scss
│ ├── app.scss
│ └── util.scss
├── theme-color.mjs
├── themes
│ ├── dice.ts
│ ├── index.ts
│ └── theme.ts
├── user
│ ├── common
│ │ ├── connect-user.tsx
│ │ ├── index.ts
│ │ ├── perm-editor
│ │ │ ├── add-scope.tsx
│ │ │ ├── perm-editor.scss
│ │ │ ├── perm-editor.tsx
│ │ │ ├── perm-export.scss
│ │ │ ├── perm-export.tsx
│ │ │ ├── perm-table.tsx
│ │ │ ├── role-editor.tsx
│ │ │ └── utils.tsx
│ │ └── with-auth.tsx
│ ├── entry.js
│ ├── services
│ │ └── user.ts
│ ├── stores
│ │ ├── _perm-app.ts
│ │ ├── _perm-msp.ts
│ │ ├── _perm-org.ts
│ │ ├── _perm-project.ts
│ │ ├── _perm-state.ts
│ │ ├── _perm-sys.ts
│ │ ├── index.ts
│ │ └── permission.ts
│ └── types
│ │ └── user.d.ts
├── views
│ ├── css.js
│ ├── index.ejs
│ └── skeleton.html
└── yml-chart
│ ├── chart
│ ├── config.ts
│ ├── index.tsx
│ ├── yml-chart-utils.tsx
│ ├── yml-chart.scss
│ └── yml-chart.tsx
│ ├── common
│ ├── action-config-form.tsx
│ ├── action-select.scss
│ ├── action-select.tsx
│ ├── in-params-drawer.scss
│ ├── in-params-drawer.tsx
│ ├── out-params-drawer.scss
│ ├── out-params-drawer.tsx
│ ├── pipeline-graphic-editor.tsx
│ ├── pipeline-node-drawer.scss
│ └── pipeline-node-drawer.tsx
│ ├── config.tsx
│ ├── form-editor-for-pipeline
│ ├── form-editor-config.ts
│ └── form-editor.tsx
│ ├── nodes
│ ├── add-node.scss
│ ├── add-node.tsx
│ ├── add-row.scss
│ ├── add-row.tsx
│ ├── end-node.scss
│ ├── end-node.tsx
│ ├── index.tsx
│ ├── pipeline-node.scss
│ ├── pipeline-node.tsx
│ ├── start-node.scss
│ └── start-node.tsx
│ ├── pipeline-editor.scss
│ ├── pipeline-editor.tsx
│ └── utils.tsx
├── auto_test
├── README.md
├── fixtures.ts
├── global-setup.ts
├── login.spec.ts
├── playwright.config.ts
├── tests
│ ├── admin
│ │ ├── audit.spec.ts
│ │ ├── cluster-manage.spec.ts
│ │ ├── global-config.spec.ts
│ │ ├── org-manage.spec.ts
│ │ └── user-manage.spec.ts
│ ├── dop
│ │ ├── add-ticket.spec.ts
│ │ ├── app
│ │ │ ├── app-config.spec.ts
│ │ │ ├── app-manage.spec.ts
│ │ │ ├── branch-rule.spec.ts
│ │ │ ├── notify.spec.ts
│ │ │ └── private-config.spec.ts
│ │ ├── branches.spec.ts
│ │ ├── deploy.spec.ts
│ │ ├── history.spec.ts
│ │ ├── layout.spec.ts
│ │ ├── merge-requests.spec.ts
│ │ ├── pipeline.spec.ts
│ │ ├── project-manage.spec.ts
│ │ ├── repo.spec.ts
│ │ ├── sonar-test.spec.ts
│ │ └── unit-test.spec.ts
│ ├── org
│ │ ├── audit-log.spec.ts
│ │ ├── deployment-logging.spec.ts
│ │ ├── matters-related.spec.ts
│ │ ├── member-management.spec.ts
│ │ ├── mobile-development-management.spec.ts
│ │ ├── organization-information.spec.ts
│ │ └── organization-manage.spec.ts
│ └── pages
│ │ ├── app-manage.ts
│ │ ├── base.ts
│ │ ├── notify.ts
│ │ ├── project-manage.ts
│ │ ├── user-manage.ts
│ │ └── variable-config.ts
└── util.ts
├── babel.config.js
├── index.html
├── jest.config.js
├── mf.config.js
├── package.json
├── postcss.config.mjs
├── snippets
├── filter.tsx
├── hook.ts
└── layout.tsx
├── tailwind.config.mjs
├── test
├── extend-expect.d.ts
├── extend-expect.ts
├── jsx-control-statements.tsx
├── mock-stroe.js
├── setupJest.ts
└── utils.ts
├── tools
├── comparison.js
├── detect-unused-files.ts
├── file-walker.js
├── find-unused-module.ts
├── gen-cp-go.js
├── gen-cp-md.js
├── gen-snippets.js
├── testcase-checker.js
├── traverse-module.ts
└── tsconfig.json
├── tsconfig-jest.json
├── tsconfig-webpack.json
├── tsconfig.json
├── vite.config.js
├── webpack.analyze.js
├── webpack.config.js
├── webpack.development.js
└── webpack.production.js
/.dockerignore:
--------------------------------------------------------------------------------
1 | *node_modules/
--------------------------------------------------------------------------------
/.editorconfig:
--------------------------------------------------------------------------------
1 | root = true
2 |
3 | [*]
4 | indent_style = space
5 | indent_size = 2
6 | end_of_line = lf
7 | charset = utf-8
8 | trim_trailing_whitespace = true
9 | insert_final_newline = true
10 | quote_type = single
11 |
12 | [*.md]
13 | trim_trailing_whitespace = false
14 |
--------------------------------------------------------------------------------
/.eslintignore:
--------------------------------------------------------------------------------
1 | **/node_modules/*
2 | public/*
3 | shell/app/static
4 | shell/app/files
5 | shell/app/external
6 | shell/tools
7 | shell/snippets
8 | shell/test/*
--------------------------------------------------------------------------------
/.github/prlint.json:
--------------------------------------------------------------------------------
1 | {
2 | "title": [
3 | {
4 | "pattern": "^(build|ci|docs|feat|fix|perf|refactor|style|test|chore|revert)(\\([a-zA-Z,-]+\\))?:\\s",
5 | "message": "Your title needs to be prefixed with a topic"
6 | }
7 | ],
8 | "body": [
9 | {
10 | "pattern": "\\|[^\\|]*中文[^\\|]*\\|[^\\|]*[^\\|\\s]+[^\\|]*\\|",
11 | "message": "You need fulfil chinese changelog"
12 | },
13 | {
14 | "pattern": "\\|[^\\|]*English[^\\|]*\\|[^\\|]*[^\\|\\s]+[^\\|]*\\|",
15 | "message": "You need fulfil english changelog"
16 | }
17 | ]
18 | }
19 |
--------------------------------------------------------------------------------
/.github/semantic.yml:
--------------------------------------------------------------------------------
1 | titleOnly: true
2 | commitsOnly: false
3 | titleAndCommits: false
4 |
5 | types:
6 | - feat
7 | - fix
8 | - docs
9 | - style
10 | - refactor
11 | - perf
12 | - test
13 | - build
14 | - ci
15 | - chore
16 | - revert
17 |
--------------------------------------------------------------------------------
/.github/workflows/git-sync.yml:
--------------------------------------------------------------------------------
1 | name: GIT SYNC
2 |
3 | on: [ push, delete ]
4 |
5 | jobs:
6 | build:
7 | if: github.repository == 'erda-project/erda-ui'
8 | runs-on: ubuntu-latest
9 | steps:
10 | - uses: actions/checkout@v2
11 | - name: unshallow
12 | run: git fetch --unshallow origin
13 | - name: add remote
14 | run: git remote add mirror https://${{ secrets.ERDA_CLOUD_MIRROR_GIT_USERNAME }}:${{ secrets.ERDA_CLOUD_MIRROR_GIT_PASSWORD }}@erda.cloud/erda/dop/erda-project/erda-ui
15 | - name: push
16 | run: git push --tags --force --prune mirror "refs/remotes/origin/*:refs/heads/*"
17 |
--------------------------------------------------------------------------------
/.github/workflows/license-check.yml:
--------------------------------------------------------------------------------
1 | name: LICENSE CHECK
2 | on:
3 | push:
4 | tags:
5 | - v*
6 | branches:
7 | - develop
8 | - master
9 | - release/*
10 | pull_request:
11 | jobs:
12 | LICENSE-CHECK:
13 | runs-on: ubuntu-latest
14 | steps:
15 | - uses: actions/checkout@v2
16 | - name: Check License Lines
17 | uses: kt3k/license_checker@v1.0.6
18 | with:
19 | args: -q
--------------------------------------------------------------------------------
/.husky/.gitignore:
--------------------------------------------------------------------------------
1 | _
2 |
--------------------------------------------------------------------------------
/.husky/commit-msg:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | . "$(dirname "$0")/_/husky.sh"
3 |
4 | pnpx --no-install commitlint --edit $1
5 |
--------------------------------------------------------------------------------
/.husky/pre-commit:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | . "$(dirname "$0")/_/husky.sh"
3 |
4 | # lint-staged may casuse issue when run concurrently, so set concurrency to 1
5 | pnpm run -r --parallel --workspace-concurrency=1 precommit
6 |
--------------------------------------------------------------------------------
/.licenserc.json:
--------------------------------------------------------------------------------
1 | {
2 | "**/*.{js,ts,jsx,tsx}": [
3 | "Copyright (c) 2021 Terminus, Inc.",
4 | "This program is free software: you can use, redistribute, and/or modify",
5 | "it under the terms of the GNU Affero General Public License, version 3"
6 | ],
7 | "ignore": [
8 | "node_modules/",
9 | "core/.eslintrc.js",
10 | "shell/.cz-config.js",
11 | "shell/.eslintrc.js"
12 | ]
13 | }
14 |
15 |
--------------------------------------------------------------------------------
/.npmrc:
--------------------------------------------------------------------------------
1 | registry=https://registry.npmmirror.com/
2 | @nodelib:registry=https://registry.npmmirror.com/
3 | @mrmlnc:registry=https://registry.npmmirror.com/
4 | sass_binary_site=https://npmmirror.com/mirrors/node-sass/
5 | @terminus:registry=https://registry.npm.terminus.io
6 |
--------------------------------------------------------------------------------
/.prettierrc.js:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2021 Terminus, Inc.
2 | //
3 | // This program is free software: you can use, redistribute, and/or modify
4 | // it under the terms of the GNU Affero General Public License, version 3
5 | // or later ("AGPL"), as published by the Free Software Foundation.
6 | //
7 | // This program is distributed in the hope that it will be useful, but WITHOUT
8 | // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
9 | // FITNESS FOR A PARTICULAR PURPOSE.
10 | //
11 | // You should have received a copy of the GNU Affero General Public License
12 | // along with this program. If not, see .
13 |
14 | module.exports = {
15 | printWidth: 120,
16 | tabWidth: 2,
17 | semi: true,
18 | singleQuote: true,
19 | trailingComma: 'all',
20 | arrowParens: 'always',
21 | };
22 |
--------------------------------------------------------------------------------
/.stylelintignore:
--------------------------------------------------------------------------------
1 | node_modules/
2 | build/
3 | dist/
4 | public/
--------------------------------------------------------------------------------
/.stylelintrc.js:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2021 Terminus, Inc.
2 | //
3 | // This program is free software: you can use, redistribute, and/or modify
4 | // it under the terms of the GNU Affero General Public License, version 3
5 | // or later ("AGPL"), as published by the Free Software Foundation.
6 | //
7 | // This program is distributed in the hope that it will be useful, but WITHOUT
8 | // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
9 | // FITNESS FOR A PARTICULAR PURPOSE.
10 | //
11 | // You should have received a copy of the GNU Affero General Public License
12 | // along with this program. If not, see .
13 |
14 | module.exports = {
15 | extends: 'stylelint-config-ali',
16 | };
17 |
--------------------------------------------------------------------------------
/VERSION:
--------------------------------------------------------------------------------
1 | 2.4
2 |
--------------------------------------------------------------------------------
/cli/.gitignore:
--------------------------------------------------------------------------------
1 | /dist
2 | .pnpm-debug.log
--------------------------------------------------------------------------------
/cli/.npmignore:
--------------------------------------------------------------------------------
1 | .*.swp
2 | ._*
3 | .DS_Store
4 | .git
5 | .hg
6 | .npmrc
7 | .lock-wscript
8 | .svn
9 | .wafpickle-*
10 | config.gypi
11 | CVS
12 | npm-debug.log
13 | .local-pack
14 |
--------------------------------------------------------------------------------
/core/src/history.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2021 Terminus, Inc.
2 | //
3 | // This program is free software: you can use, redistribute, and/or modify
4 | // it under the terms of the GNU Affero General Public License, version 3
5 | // or later ("AGPL"), as published by the Free Software Foundation.
6 | //
7 | // This program is distributed in the hope that it will be useful, but WITHOUT
8 | // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
9 | // FITNESS FOR A PARTICULAR PURPOSE.
10 | //
11 | // You should have received a copy of the GNU Affero General Public License
12 | // along with this program. If not, see .
13 | import { createBrowserHistory } from 'history';
14 |
15 | const history = createBrowserHistory();
16 |
17 | export default history;
18 |
--------------------------------------------------------------------------------
/core/src/types/global.d.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2021 Terminus, Inc.
2 | //
3 | // This program is free software: you can use, redistribute, and/or modify
4 | // it under the terms of the GNU Affero General Public License, version 3
5 | // or later ("AGPL"), as published by the Free Software Foundation.
6 | //
7 | // This program is distributed in the hope that it will be useful, but WITHOUT
8 | // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
9 | // FITNESS FOR A PARTICULAR PURPOSE.
10 | //
11 | // You should have received a copy of the GNU Affero General Public License
12 | // along with this program. If not, see .
13 |
14 | interface Obj {
15 | [k: string]: T;
16 | }
17 | type Nullable = T | null;
18 |
--------------------------------------------------------------------------------
/docs/files/architecture.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/erda-project/erda-ui/ec3b437ea40569bb2856310997b4b11ceece1f21/docs/files/architecture.jpg
--------------------------------------------------------------------------------
/docs/files/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/erda-project/erda-ui/ec3b437ea40569bb2856310997b4b11ceece1f21/docs/files/logo.png
--------------------------------------------------------------------------------
/f2elint.config.js:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2021 Terminus, Inc.
2 | //
3 | // This program is free software: you can use, redistribute, and/or modify
4 | // it under the terms of the GNU Affero General Public License, version 3
5 | // or later ("AGPL"), as published by the Free Software Foundation.
6 | //
7 | // This program is distributed in the hope that it will be useful, but WITHOUT
8 | // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
9 | // FITNESS FOR A PARTICULAR PURPOSE.
10 | //
11 | // You should have received a copy of the GNU Affero General Public License
12 | // along with this program. If not, see .
13 |
14 | module.exports = {
15 | enableStylelint: true,
16 | enableMarkdownlint: false,
17 | enablePrettier: true,
18 | };
19 |
--------------------------------------------------------------------------------
/modules/components/.fatherrc.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2021 Terminus, Inc.
2 | //
3 | // This program is free software: you can use, redistribute, and/or modify
4 | // it under the terms of the GNU Affero General Public License, version 3
5 | // or later ("AGPL"), as published by the Free Software Foundation.
6 | //
7 | // This program is distributed in the hope that it will be useful, but WITHOUT
8 | // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
9 | // FITNESS FOR A PARTICULAR PURPOSE.
10 | //
11 | // You should have received a copy of the GNU Affero General Public License
12 | // along with this program. If not, see .
13 |
14 | export default {
15 | esm: 'rollup',
16 | cjs: 'rollup',
17 | };
18 |
--------------------------------------------------------------------------------
/modules/components/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules/*
2 | .umi/*
3 | .eslintcache
4 | src/.umi/
5 | docs-dist/
6 | dist
7 | lib
8 | es
9 | coverage
10 |
--------------------------------------------------------------------------------
/modules/components/.prettierignore:
--------------------------------------------------------------------------------
1 | **/*.png
2 | **/*.svg
3 | CODEOWNERS
4 | .dockerignore
5 | package.json
6 | .umi
7 | .umi-production
8 | lib/
9 | es/
10 | dist/
11 | public/
12 | _site/
13 | coverage/
14 | CNAME
15 | LICENSE
16 | pmpm-lock.yaml
17 | netlify.toml
18 | yarn-error.log
19 | *.sh
20 | *.snap
21 | .gitignore
22 | .npmignore
23 | .prettierignore
24 | .DS_Store
25 | .editorconfig
26 | .eslintignore
27 | .history
28 | **/*.yml
29 | src/form/interface.ts
30 |
--------------------------------------------------------------------------------
/modules/components/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # Changelog
2 |
3 | All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
4 |
5 | ### [0.1.6](https://github.com/erda-project/erda-ui/compare/v0.1.5...v0.1.6) (2022-05-18)
6 |
7 |
8 | ### Features
9 |
10 | * **components:** add changelog & fix menu color issue ([3830a3b](https://github.com/erda-project/erda-ui/commit/3830a3b9d5a2038b80021a916f9e84586612d1f2))
11 |
12 |
13 | ### Bug Fixes
14 |
15 | * **components:** change script ([f1379c5](https://github.com/erda-project/erda-ui/commit/f1379c57d0b32032d21ff8c4e6ade47ec4f546b8))
16 |
17 | ### [0.1.5](https://github.com/erda-project/erda-ui/compare/v1.3.0-rc...v0.1.5) (2022-05-18)
18 |
19 |
20 |
--------------------------------------------------------------------------------
/modules/components/cspell.json:
--------------------------------------------------------------------------------
1 | {
2 | "words": [
3 | "alicdn",
4 | "aliyun",
5 | "antd",
6 | "arrowParens",
7 | "automerge",
8 | "bisheng",
9 | "browserslist",
10 | "chevronleft",
11 | "chevronright",
12 | "compat",
13 | "datasource",
14 | "docsearch",
15 | "dumi",
16 | "elint",
17 | "erda",
18 | "esbuild",
19 | "formily",
20 | "gulpfile",
21 | "huiche",
22 | "iconpark",
23 | "jinru",
24 | "jsonml",
25 | "modifyVars",
26 | "navs",
27 | "pnpm",
28 | "Popover",
29 | "precommit",
30 | "prettierrc",
31 | "shengxu",
32 | "stylelint",
33 | "tinycolor",
34 | "umirc",
35 | "unshift",
36 | "Unsort",
37 | "vars"
38 | ]
39 | }
40 |
--------------------------------------------------------------------------------
/modules/components/docs/components/configProvider/index.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: ConfigProvider
3 | order: 7
4 | nav:
5 | path: /components
6 | title: 组件
7 | ---
8 |
9 | # ConfigProvider
10 |
11 | > 全局配置上下文
12 |
13 | ## 基本用法
14 |
15 |
16 |
17 | ## API
18 |
19 | | 参数 | 说明 | 类型 | 默认值 |
20 | | --------- | ------------------------------------------------------------------------------------------- | ------ | ------ |
21 | | locale | 语言包配置,语言包可到 @erda-ui/components/es/locale 目录下寻找,也可以添加自己的自定义语言 | object | - |
22 | | clsPrefix | 设置统一样式前缀。注意:需要配合 less 变量 @erda-prefix 使用 | string | erda |
23 |
--------------------------------------------------------------------------------
/modules/components/docs/components/ellipsis/index.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Ellipsis
3 | order: 1
4 | nav:
5 | path: /components
6 | title: 组件
7 | ---
8 |
9 | # 自动省略 Ellipsis
10 |
11 |
12 |
13 | ## API
14 |
15 | 参考[Antd Tooltip](https://ant.design/components/tooltip-cn/#API)
16 |
--------------------------------------------------------------------------------
/modules/components/docs/components/icon/index.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Icon
3 | nav:
4 | path: /components
5 | title: 组件
6 | ---
7 |
8 | # Icon 图标
9 |
10 | ## 图标组件
11 |
12 |
13 |
14 | ## 添加自定义 iconfont
15 |
16 |
17 |
18 | ## 图标颜色大小
19 |
20 |
21 |
22 | ## API
23 |
24 | | 参数 | 说明 | 类型 | 默认值 |
25 | | --------- | ------------ | --------- | ------ |
26 | | isEditing | 是否编辑状态 | boolean | false |
27 | | formProps | 表单属性 | FormProps | - |
28 | | loading | 是否加载中 | boolean | false |
29 |
--------------------------------------------------------------------------------
/modules/components/docs/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/erda-project/erda-ui/ec3b437ea40569bb2856310997b4b11ceece1f21/modules/components/docs/logo.png
--------------------------------------------------------------------------------
/modules/components/lint-staged.config.js:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2021 Terminus, Inc.
2 | //
3 | // This program is free software: you can use, redistribute, and/or modify
4 | // it under the terms of the GNU Affero General Public License, version 3
5 | // or later ("AGPL"), as published by the Free Software Foundation.
6 | //
7 | // This program is distributed in the hope that it will be useful, but WITHOUT
8 | // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
9 | // FITNESS FOR A PARTICULAR PURPOSE.
10 | //
11 | // You should have received a copy of the GNU Affero General Public License
12 | // along with this program. If not, see .
13 |
14 | module.exports = {
15 | '*.{ts,tsx},!.umirc.ts': 'eslint --cache --fix --max-warnings=0',
16 | '**/*.ts?(x)': () => 'tsc --noEmit',
17 | };
18 |
--------------------------------------------------------------------------------
/modules/components/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/erda-project/erda-ui/ec3b437ea40569bb2856310997b4b11ceece1f21/modules/components/public/favicon.ico
--------------------------------------------------------------------------------
/modules/components/renovate.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://docs.renovatebot.com/renovate-schema.json",
3 | "automerge": false,
4 | "dependencyDashboard": true,
5 | "rebaseWhen": "conflicted",
6 | "ignoreDeps": [],
7 | "labels": ["dependencies"],
8 | "postUpdateOptions": ["yarnDedupeHighest"],
9 | "prConcurrentLimit": 30,
10 | "prHourlyLimit": 0,
11 | "schedule": "on sunday before 6:00am",
12 | "timezone": "UTC"
13 | }
14 |
--------------------------------------------------------------------------------
/modules/components/src/context-provider/style/index.tsx:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2021 Terminus, Inc.
2 | //
3 | // This program is free software: you can use, redistribute, and/or modify
4 | // it under the terms of the GNU Affero General Public License, version 3
5 | // or later ("AGPL"), as published by the Free Software Foundation.
6 | //
7 | // This program is distributed in the hope that it will be useful, but WITHOUT
8 | // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
9 | // FITNESS FOR A PARTICULAR PURPOSE.
10 | //
11 | // You should have received a copy of the GNU Affero General Public License
12 | // along with this program. If not, see .
13 |
--------------------------------------------------------------------------------
/modules/components/src/ellipsis/style/index.less:
--------------------------------------------------------------------------------
1 | @import '../../themes/default.less';
2 |
3 | .@{erda-prefix}-ellipsis {
4 | overflow: hidden;
5 | text-overflow: ellipsis;
6 | white-space: nowrap;
7 | }
8 |
--------------------------------------------------------------------------------
/modules/components/src/ellipsis/style/index.tsx:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2021 Terminus, Inc.
2 | //
3 | // This program is free software: you can use, redistribute, and/or modify
4 | // it under the terms of the GNU Affero General Public License, version 3
5 | // or later ("AGPL"), as published by the Free Software Foundation.
6 | //
7 | // This program is distributed in the hope that it will be useful, but WITHOUT
8 | // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
9 | // FITNESS FOR A PARTICULAR PURPOSE.
10 | //
11 | // You should have received a copy of the GNU Affero General Public License
12 | // along with this program. If not, see .
13 |
14 | import './index.less';
15 |
--------------------------------------------------------------------------------
/modules/components/src/form-modal/style/index.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2021 Terminus, Inc.
2 | //
3 | // This program is free software: you can use, redistribute, and/or modify
4 | // it under the terms of the GNU Affero General Public License, version 3
5 | // or later ("AGPL"), as published by the Free Software Foundation.
6 | //
7 | // This program is distributed in the hope that it will be useful, but WITHOUT
8 | // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
9 | // FITNESS FOR A PARTICULAR PURPOSE.
10 | //
11 | // You should have received a copy of the GNU Affero General Public License
12 | // along with this program. If not, see .
13 |
14 | import 'antd/lib/modal/style/index';
15 |
--------------------------------------------------------------------------------
/modules/components/src/form/style/index.tsx:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2021 Terminus, Inc.
2 | //
3 | // This program is free software: you can use, redistribute, and/or modify
4 | // it under the terms of the GNU Affero General Public License, version 3
5 | // or later ("AGPL"), as published by the Free Software Foundation.
6 | //
7 | // This program is distributed in the hope that it will be useful, but WITHOUT
8 | // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
9 | // FITNESS FOR A PARTICULAR PURPOSE.
10 | //
11 | // You should have received a copy of the GNU Affero General Public License
12 | // along with this program. If not, see .
13 |
14 | import '@formily/antd/esm/form-item/style.less';
15 | import './index.less';
16 |
--------------------------------------------------------------------------------
/modules/components/src/icon/style/index.less:
--------------------------------------------------------------------------------
1 | .erda-icon {
2 | width: 20px;
3 | height: 20px;
4 | vertical-align: -0.15em;
5 | fill: currentColor;
6 | overflow: hidden;
7 | box-sizing: content-box;
8 | }
9 |
--------------------------------------------------------------------------------
/modules/components/src/icon/style/index.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2021 Terminus, Inc.
2 | //
3 | // This program is free software: you can use, redistribute, and/or modify
4 | // it under the terms of the GNU Affero General Public License, version 3
5 | // or later ("AGPL"), as published by the Free Software Foundation.
6 | //
7 | // This program is distributed in the hope that it will be useful, but WITHOUT
8 | // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
9 | // FITNESS FOR A PARTICULAR PURPOSE.
10 | //
11 | // You should have received a copy of the GNU Affero General Public License
12 | // along with this program. If not, see .
13 |
14 | import './index.less';
15 |
--------------------------------------------------------------------------------
/modules/components/src/locale/en_US.tsx:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2021 Terminus, Inc.
2 | //
3 | // This program is free software: you can use, redistribute, and/or modify
4 | // it under the terms of the GNU Affero General Public License, version 3
5 | // or later ("AGPL"), as published by the Free Software Foundation.
6 | //
7 | // This program is distributed in the hope that it will be useful, but WITHOUT
8 | // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
9 | // FITNESS FOR A PARTICULAR PURPOSE.
10 | //
11 | // You should have received a copy of the GNU Affero General Public License
12 | // along with this program. If not, see .
13 |
14 | import defaultLocale from './default';
15 |
16 | export default defaultLocale;
17 |
--------------------------------------------------------------------------------
/modules/components/src/pagination/style/index.tsx:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2021 Terminus, Inc.
2 | //
3 | // This program is free software: you can use, redistribute, and/or modify
4 | // it under the terms of the GNU Affero General Public License, version 3
5 | // or later ("AGPL"), as published by the Free Software Foundation.
6 | //
7 | // This program is distributed in the hope that it will be useful, but WITHOUT
8 | // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
9 | // FITNESS FOR A PARTICULAR PURPOSE.
10 | //
11 | // You should have received a copy of the GNU Affero General Public License
12 | // along with this program. If not, see .
13 |
14 | import './index.less';
15 |
--------------------------------------------------------------------------------
/modules/components/src/table/style/index.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2021 Terminus, Inc.
2 | //
3 | // This program is free software: you can use, redistribute, and/or modify
4 | // it under the terms of the GNU Affero General Public License, version 3
5 | // or later ("AGPL"), as published by the Free Software Foundation.
6 | //
7 | // This program is distributed in the hope that it will be useful, but WITHOUT
8 | // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
9 | // FITNESS FOR A PARTICULAR PURPOSE.
10 | //
11 | // You should have received a copy of the GNU Affero General Public License
12 | // along with this program. If not, see .
13 |
14 | import './index.less';
15 | import './table-config-header.less';
16 | import './table-footer.less';
17 |
--------------------------------------------------------------------------------
/modules/components/src/table/style/table-footer.less:
--------------------------------------------------------------------------------
1 | @import '../../themes/default.less';
2 | @import (reference) '~antd/es/style/themes/index.less';
3 |
4 | @footer-prefix: ~'@{erda-prefix}-table-footer';
5 |
6 | .@{footer-prefix} {
7 | padding: 0 1rem;
8 | display: flex;
9 | justify-content: space-between;
10 | background: @default-02;
11 |
12 | &-pagination {
13 | display: flex;
14 | align-items: center;
15 | justify-content: flex-end;
16 | }
17 | }
18 |
19 | .@{footer-prefix}-white {
20 | background: @white;
21 | }
22 |
--------------------------------------------------------------------------------
/modules/components/src/themes/default.less:
--------------------------------------------------------------------------------
1 | @import './color.less';
2 |
3 | @erda-prefix: erda;
4 |
5 | @root-entry-name: default;
6 | @primary-color: @default;
7 |
--------------------------------------------------------------------------------
/modules/components/src/types/global.d.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2021 Terminus, Inc.
2 | //
3 | // This program is free software: you can use, redistribute, and/or modify
4 | // it under the terms of the GNU Affero General Public License, version 3
5 | // or later ("AGPL"), as published by the Free Software Foundation.
6 | //
7 | // This program is distributed in the hope that it will be useful, but WITHOUT
8 | // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
9 | // FITNESS FOR A PARTICULAR PURPOSE.
10 | //
11 | // You should have received a copy of the GNU Affero General Public License
12 | // along with this program. If not, see .
13 |
14 | interface Obj {
15 | [k: string]: T;
16 | }
17 |
--------------------------------------------------------------------------------
/modules/components/tsconfig-jest.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "composite": true,
4 | "target": "ES2020",
5 | "module": "ESNext",
6 | "lib": ["dom", "esnext"],
7 | "allowJs": true,
8 | "checkJs": false,
9 | "jsx": "react",
10 | "declaration": true,
11 | "sourceMap": true,
12 | "incremental": true,
13 | "strict": false,
14 | "noImplicitAny": true,
15 | "noUnusedLocals": true,
16 | "noUnusedParameters": true,
17 | "noImplicitReturns": true,
18 | "moduleResolution": "node",
19 | "esModuleInterop": true,
20 | "strict": false,
21 | "skipLibCheck": false,
22 | "types": ["jest", "./__tests__/types/index.d.ts"],
23 | "baseUrl": "."
24 | },
25 | "include": ["./src/**/*"],
26 | "exclude": ["node_modules"]
27 | }
28 |
--------------------------------------------------------------------------------
/modules/components/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "baseUrl": ".",
4 | "paths": {
5 | "@erda-ui/components": ["src/index.tsx"]
6 | },
7 | "strictNullChecks": true,
8 | "module": "esnext",
9 | "moduleResolution": "node",
10 | "esModuleInterop": true,
11 | "experimentalDecorators": true,
12 | "jsx": "react",
13 | "noUnusedParameters": true,
14 | "noUnusedLocals": true,
15 | "noImplicitAny": true,
16 | "target": "es6",
17 | "lib": ["dom", "es2017", "dom.iterable"],
18 | "skipLibCheck": true
19 | },
20 | "exclude": ["node_modules", "lib", "es"]
21 | }
22 |
--------------------------------------------------------------------------------
/modules/market/.env:
--------------------------------------------------------------------------------
1 | SKIP_PREFLIGHT_CHECK=true
--------------------------------------------------------------------------------
/modules/market/.gitignore:
--------------------------------------------------------------------------------
1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
2 |
3 | # dependencies
4 | /node_modules
5 | /.pnp
6 | .pnp.js
7 |
8 | # testing
9 | /coverage
10 |
11 | # production
12 | /build
13 |
14 | !/public
15 | !.env
16 |
17 | # misc
18 | .DS_Store
19 | .env.local
20 | .env.development.local
21 | .env.test.local
22 | .env.production.local
23 |
24 | npm-debug.log*
25 | yarn-debug.log*
26 | yarn-error.log*
27 |
28 | /dist/
29 | .pnpm-debug.log
--------------------------------------------------------------------------------
/modules/market/paths.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "baseUrl": "."
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/modules/market/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/erda-project/erda-ui/ec3b437ea40569bb2856310997b4b11ceece1f21/modules/market/public/favicon.ico
--------------------------------------------------------------------------------
/modules/market/public/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "short_name": "erda-ui market",
3 | "name": "erda-ui market",
4 | "icons": [
5 | {
6 | "src": "favicon.ico",
7 | "sizes": "64x64 32x32 24x24 16x16",
8 | "type": "image/x-icon"
9 | },
10 | {
11 | "src": "logo192.png",
12 | "type": "image/png",
13 | "sizes": "192x192"
14 | },
15 | {
16 | "src": "logo512.png",
17 | "type": "image/png",
18 | "sizes": "512x512"
19 | }
20 | ],
21 | "start_url": ".",
22 | "display": "standalone",
23 | "theme_color": "#000000",
24 | "background_color": "#ffffff"
25 | }
26 |
--------------------------------------------------------------------------------
/modules/market/src/images/download/download-bg1@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/erda-project/erda-ui/ec3b437ea40569bb2856310997b4b11ceece1f21/modules/market/src/images/download/download-bg1@2x.png
--------------------------------------------------------------------------------
/modules/market/src/images/download/download-bg2@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/erda-project/erda-ui/ec3b437ea40569bb2856310997b4b11ceece1f21/modules/market/src/images/download/download-bg2@2x.png
--------------------------------------------------------------------------------
/modules/market/src/images/download/download-bg@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/erda-project/erda-ui/ec3b437ea40569bb2856310997b4b11ceece1f21/modules/market/src/images/download/download-bg@2x.png
--------------------------------------------------------------------------------
/modules/market/src/images/download/download-c@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/erda-project/erda-ui/ec3b437ea40569bb2856310997b4b11ceece1f21/modules/market/src/images/download/download-c@2x.png
--------------------------------------------------------------------------------
/modules/market/src/images/download/download-r1@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/erda-project/erda-ui/ec3b437ea40569bb2856310997b4b11ceece1f21/modules/market/src/images/download/download-r1@2x.png
--------------------------------------------------------------------------------
/modules/market/src/images/download/download-s1@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/erda-project/erda-ui/ec3b437ea40569bb2856310997b4b11ceece1f21/modules/market/src/images/download/download-s1@2x.png
--------------------------------------------------------------------------------
/modules/market/src/images/download/download-y1@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/erda-project/erda-ui/ec3b437ea40569bb2856310997b4b11ceece1f21/modules/market/src/images/download/download-y1@2x.png
--------------------------------------------------------------------------------
/modules/market/src/images/download/download-y2@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/erda-project/erda-ui/ec3b437ea40569bb2856310997b4b11ceece1f21/modules/market/src/images/download/download-y2@2x.png
--------------------------------------------------------------------------------
/modules/market/src/images/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/erda-project/erda-ui/ec3b437ea40569bb2856310997b4b11ceece1f21/modules/market/src/images/favicon.ico
--------------------------------------------------------------------------------
/modules/market/src/index.js:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2021 Terminus, Inc.
2 | //
3 | // This program is free software: you can use, redistribute, and/or modify
4 | // it under the terms of the GNU Affero General Public License, version 3
5 | // or later ("AGPL"), as published by the Free Software Foundation.
6 | //
7 | // This program is distributed in the hope that it will be useful, but WITHOUT
8 | // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
9 | // FITNESS FOR A PARTICULAR PURPOSE.
10 | //
11 | // You should have received a copy of the GNU Affero General Public License
12 | // along with this program. If not, see .
13 |
14 | import React from 'react';
15 | import ReactDOM from 'react-dom';
16 | import App from './App';
17 |
18 | ReactDOM.render(, document.getElementById('root'));
19 |
--------------------------------------------------------------------------------
/modules/market/src/react-app-env.d.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2021 Terminus, Inc.
2 | //
3 | // This program is free software: you can use, redistribute, and/or modify
4 | // it under the terms of the GNU Affero General Public License, version 3
5 | // or later ("AGPL"), as published by the Free Software Foundation.
6 | //
7 | // This program is distributed in the hope that it will be useful, but WITHOUT
8 | // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
9 | // FITNESS FOR A PARTICULAR PURPOSE.
10 | //
11 | // You should have received a copy of the GNU Affero General Public License
12 | // along with this program. If not, see .
13 |
14 | ///
15 | declare module 'resolve-pathname';
16 |
--------------------------------------------------------------------------------
/modules/market/src/styles/_variable.scss:
--------------------------------------------------------------------------------
1 | // layout
2 | $header-height: 5rem;
3 | $mobile-header-height: 3.75rem;
4 |
5 | $radius: 4px;
6 |
7 | // color
8 | $primary: #5d48df !default;
9 | $white: #ffffff;
10 |
--------------------------------------------------------------------------------
/modules/market/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./paths.json",
3 | "compilerOptions": {
4 | "target": "es5",
5 | "lib": ["dom", "dom.iterable", "esnext"],
6 | "allowJs": true,
7 | "skipLibCheck": true,
8 | "esModuleInterop": true,
9 | "allowSyntheticDefaultImports": true,
10 | "strict": true,
11 | "forceConsistentCasingInFileNames": true,
12 | "noFallthroughCasesInSwitch": true,
13 | "module": "esnext",
14 | "moduleResolution": "node",
15 | "resolveJsonModule": true,
16 | "isolatedModules": true,
17 | "noEmit": true,
18 | "jsx": "react-jsx",
19 | "baseUrl": "."
20 | },
21 | "include": ["./src/*"]
22 | }
23 |
--------------------------------------------------------------------------------
/modules/uc/.env:
--------------------------------------------------------------------------------
1 | SKIP_PREFLIGHT_CHECK=true
--------------------------------------------------------------------------------
/modules/uc/.gitignore:
--------------------------------------------------------------------------------
1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
2 |
3 | # dependencies
4 | /node_modules
5 | /.pnp
6 | .pnp.js
7 |
8 | # testing
9 | /coverage
10 |
11 | # production
12 | /build
13 |
14 | !/public
15 | !.env
16 |
17 | # misc
18 | .DS_Store
19 | .env.local
20 | .env.development.local
21 | .env.test.local
22 | .env.production.local
23 |
24 | npm-debug.log*
25 | yarn-debug.log*
26 | yarn-error.log*
27 |
--------------------------------------------------------------------------------
/modules/uc/paths.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "baseUrl": ".",
4 | "paths": {
5 | "src/*": ["./src/*"]
6 | }
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/modules/uc/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/erda-project/erda-ui/ec3b437ea40569bb2856310997b4b11ceece1f21/modules/uc/public/favicon.ico
--------------------------------------------------------------------------------
/modules/uc/public/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
12 |
13 |
14 |
15 |
16 | Sign In to Erda
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/modules/uc/public/logo192.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/erda-project/erda-ui/ec3b437ea40569bb2856310997b4b11ceece1f21/modules/uc/public/logo192.png
--------------------------------------------------------------------------------
/modules/uc/public/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "short_name": "Erda UI",
3 | "name": "Erda platform UI",
4 | "icons": [
5 | {
6 | "src": "favicon.ico",
7 | "sizes": "64x64 32x32 24x24 16x16",
8 | "type": "image/x-icon"
9 | },
10 | {
11 | "src": "logo192.png",
12 | "type": "image/png",
13 | "sizes": "192x192"
14 | }
15 | ],
16 | "start_url": ".",
17 | "display": "standalone",
18 | "theme_color": "#6A549E",
19 | "background_color": "#ffffff"
20 | }
21 |
--------------------------------------------------------------------------------
/modules/uc/public/robots.txt:
--------------------------------------------------------------------------------
1 | # https://www.robotstxt.org/robotstxt.html
2 | User-agent: *
3 | Disallow:
4 |
--------------------------------------------------------------------------------
/modules/uc/src/common/components/container.css:
--------------------------------------------------------------------------------
1 | .st0 {
2 | fill: none;
3 | stroke: currentColor;
4 | stroke-width: 20;
5 | stroke-linecap: round;
6 | stroke-miterlimit: 3;
7 | }
8 |
--------------------------------------------------------------------------------
/modules/uc/src/common/history.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2021 Terminus, Inc.
2 | //
3 | // This program is free software: you can use, redistribute, and/or modify
4 | // it under the terms of the GNU Affero General Public License, version 3
5 | // or later ("AGPL"), as published by the Free Software Foundation.
6 | //
7 | // This program is distributed in the hope that it will be useful, but WITHOUT
8 | // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
9 | // FITNESS FOR A PARTICULAR PURPOSE.
10 | //
11 | // You should have received a copy of the GNU Affero General Public License
12 | // along with this program. If not, see .
13 |
14 | import { createBrowserHistory } from 'history';
15 |
16 | export default createBrowserHistory();
17 |
--------------------------------------------------------------------------------
/modules/uc/src/images/default-user.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/modules/uc/src/images/edit.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/modules/uc/src/images/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/erda-project/erda-ui/ec3b437ea40569bb2856310997b4b11ceece1f21/modules/uc/src/images/favicon.ico
--------------------------------------------------------------------------------
/modules/uc/src/images/favicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/erda-project/erda-ui/ec3b437ea40569bb2856310997b4b11ceece1f21/modules/uc/src/images/favicon.png
--------------------------------------------------------------------------------
/modules/uc/src/images/login.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/erda-project/erda-ui/ec3b437ea40569bb2856310997b4b11ceece1f21/modules/uc/src/images/login.png
--------------------------------------------------------------------------------
/modules/uc/src/images/s_error.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/modules/uc/src/images/s_success.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/modules/uc/src/images/s_warning.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/modules/uc/src/index.css:
--------------------------------------------------------------------------------
1 | body {
2 | margin: 0;
3 | font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans',
4 | 'Droid Sans', 'Helvetica Neue', sans-serif;
5 | -webkit-font-smoothing: antialiased;
6 | -moz-osx-font-smoothing: grayscale;
7 | }
8 |
9 | code {
10 | font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', monospace;
11 | }
12 |
13 | #login-root {
14 | height: 100vh;
15 | }
16 |
17 | @tailwind base;
18 | @tailwind components;
19 | @tailwind utilities;
20 |
--------------------------------------------------------------------------------
/modules/uc/src/react-app-env.d.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2021 Terminus, Inc.
2 | //
3 | // This program is free software: you can use, redistribute, and/or modify
4 | // it under the terms of the GNU Affero General Public License, version 3
5 | // or later ("AGPL"), as published by the Free Software Foundation.
6 | //
7 | // This program is distributed in the hope that it will be useful, but WITHOUT
8 | // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
9 | // FITNESS FOR A PARTICULAR PURPOSE.
10 | //
11 | // You should have received a copy of the GNU Affero General Public License
12 | // along with this program. If not, see .
13 |
14 | ///
15 |
--------------------------------------------------------------------------------
/modules/uc/src/services/uc.tsx:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2021 Terminus, Inc.
2 | //
3 | // This program is free software: you can use, redistribute, and/or modify
4 | // it under the terms of the GNU Affero General Public License, version 3
5 | // or later ("AGPL"), as published by the Free Software Foundation.
6 | //
7 | // This program is distributed in the hope that it will be useful, but WITHOUT
8 | // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
9 | // FITNESS FOR A PARTICULAR PURPOSE.
10 | //
11 | // You should have received a copy of the GNU Affero General Public License
12 | // along with this program. If not, see .
13 |
14 | import axios from 'axios';
15 |
16 | export const uploadImg = (fd: FormData) => {
17 | return axios.postForm('/api/files', fd).then((res) => res.data);
18 | };
19 |
--------------------------------------------------------------------------------
/modules/uc/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./paths.json",
3 | "compilerOptions": {
4 | "target": "es5",
5 | "lib": [
6 | "dom",
7 | "dom.iterable",
8 | "esnext"
9 | ],
10 | "allowJs": true,
11 | "skipLibCheck": true,
12 | "esModuleInterop": true,
13 | "allowSyntheticDefaultImports": true,
14 | "strict": true,
15 | "forceConsistentCasingInFileNames": true,
16 | "noFallthroughCasesInSwitch": true,
17 | "module": "esnext",
18 | "moduleResolution": "node",
19 | "resolveJsonModule": true,
20 | "isolatedModules": true,
21 | "noEmit": true,
22 | "jsx": "react-jsx",
23 | "baseUrl": "."
24 | },
25 | "include": [
26 | "src"
27 | ]
28 | }
29 |
--------------------------------------------------------------------------------
/pnpm-workspace.yaml:
--------------------------------------------------------------------------------
1 | packages:
2 | # all packages in subdirs of packages
3 | - core
4 | - shell
5 | - scheduler
6 | - cli
7 | - modules/market
8 | - modules/uc
9 | - modules/components
10 |
--------------------------------------------------------------------------------
/scheduler/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "plugins": ["transform-async-to-generator"]
3 | }
4 |
--------------------------------------------------------------------------------
/scheduler/.gitignore:
--------------------------------------------------------------------------------
1 | ui.log
2 | ui-error.log
3 |
--------------------------------------------------------------------------------
/scheduler/nest-cli.json:
--------------------------------------------------------------------------------
1 | {
2 | "collection": "@nestjs/schematics",
3 | "sourceRoot": "src"
4 | }
5 |
--------------------------------------------------------------------------------
/scheduler/tsconfig.build.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "exclude": ["node_modules", "test", "dist", "**/*spec.ts"]
4 | }
5 |
--------------------------------------------------------------------------------
/scheduler/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "module": "commonjs",
4 | "declaration": true,
5 | "removeComments": true,
6 | "emitDecoratorMetadata": true,
7 | "experimentalDecorators": true,
8 | "allowSyntheticDefaultImports": true,
9 | "target": "esnext",
10 | "outDir": "./dist",
11 | "baseUrl": "./",
12 | "skipLibCheck": true,
13 | "esModuleInterop": true
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/shell/app/antd-overwrite/table/index.scss:
--------------------------------------------------------------------------------
1 | .wrapped-table {
2 | .table-more-ops {
3 | padding: 3px;
4 | border-radius: 3px;
5 |
6 | &.ant-dropdown-open {
7 | background-color: #e8e8e8;
8 | }
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/shell/app/bootstrap.js:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2021 Terminus, Inc.
2 | //
3 | // This program is free software: you can use, redistribute, and/or modify
4 | // it under the terms of the GNU Affero General Public License, version 3
5 | // or later ("AGPL"), as published by the Free Software Foundation.
6 | //
7 | // This program is distributed in the hope that it will be useful, but WITHOUT
8 | // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
9 | // FITNESS FOR A PARTICULAR PURPOSE.
10 | //
11 | // You should have received a copy of the GNU Affero General Public License
12 | // along with this program. If not, see .
13 |
14 | const bootstrap = () => import('./index');
15 |
16 | bootstrap();
17 |
--------------------------------------------------------------------------------
/shell/app/charts/components/echarts.scss:
--------------------------------------------------------------------------------
1 | .chart-dom {
2 | height: 270px;
3 | min-height: 240px;
4 | }
5 |
--------------------------------------------------------------------------------
/shell/app/charts/utils/index.tsx:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2021 Terminus, Inc.
2 | //
3 | // This program is free software: you can use, redistribute, and/or modify
4 | // it under the terms of the GNU Affero General Public License, version 3
5 | // or later ("AGPL"), as published by the Free Software Foundation.
6 | //
7 | // This program is distributed in the hope that it will be useful, but WITHOUT
8 | // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
9 | // FITNESS FOR A PARTICULAR PURPOSE.
10 | //
11 | // You should have received a copy of the GNU Affero General Public License
12 | // along with this program. If not, see .
13 |
14 | import './regist';
15 |
16 | export { getFormatter, formatValue } from './formatter';
17 |
--------------------------------------------------------------------------------
/shell/app/common/components/add-member-modal/index.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2021 Terminus, Inc.
2 | //
3 | // This program is free software: you can use, redistribute, and/or modify
4 | // it under the terms of the GNU Affero General Public License, version 3
5 | // or later ("AGPL"), as published by the Free Software Foundation.
6 | //
7 | // This program is distributed in the hope that it will be useful, but WITHOUT
8 | // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
9 | // FITNESS FOR A PARTICULAR PURPOSE.
10 | //
11 | // You should have received a copy of the GNU Affero General Public License
12 | // along with this program. If not, see .
13 |
14 | import { AddMemberModal } from './add-member-modal';
15 |
16 | export default AddMemberModal;
17 |
--------------------------------------------------------------------------------
/shell/app/common/components/addon-settings/index.tsx:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2021 Terminus, Inc.
2 | //
3 | // This program is free software: you can use, redistribute, and/or modify
4 | // it under the terms of the GNU Affero General Public License, version 3
5 | // or later ("AGPL"), as published by the Free Software Foundation.
6 | //
7 | // This program is distributed in the hope that it will be useful, but WITHOUT
8 | // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
9 | // FITNESS FOR A PARTICULAR PURPOSE.
10 | //
11 | // You should have received a copy of the GNU Affero General Public License
12 | // along with this program. If not, see .
13 |
14 | import AddonSettings from './addon-settings';
15 |
16 | export default AddonSettings;
17 |
--------------------------------------------------------------------------------
/shell/app/common/components/avatar/index.scss:
--------------------------------------------------------------------------------
1 | .dice-avatar {
2 | @include avatar(24px);
3 | background-color: rgba(0, 0, 0, 0.04);
4 | }
5 |
6 | .dice-avatar-wrap {
7 | display: inline-flex;
8 | align-items: center;
9 | vertical-align: middle;
10 | }
11 |
12 | .dice-avatar-has-more {
13 | display: inline-block;
14 | width: 24px;
15 | height: 24px;
16 | line-height: 24px;
17 | text-align: center;
18 | // background: $ghostwhite;
19 | border-radius: 24px;
20 | }
21 |
--------------------------------------------------------------------------------
/shell/app/common/components/back-to-top/index.scss:
--------------------------------------------------------------------------------
1 | .scroll-top-btn {
2 | position: fixed;
3 | right: 32px;
4 | bottom: 50px;
5 | display: inline-block;
6 | width: 40px;
7 | height: 40px;
8 | font-size: 20px;
9 | line-height: 40px !important;
10 | text-align: center;
11 | background-color: $white;
12 | border-radius: 50%;
13 | box-shadow: 0 1px 3px 0 $color-text-sub;
14 | cursor: pointer;
15 | opacity: 70%;
16 | animation: fadeIn ease 0.3s;
17 |
18 | &:hover {
19 | opacity: 100%;
20 | }
21 | }
22 |
23 | @keyframes fadeIn {
24 | 0% {
25 | bottom: -40px;
26 | }
27 |
28 | 100% {
29 | bottom: 50px;
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/shell/app/common/components/card-container/index.scss:
--------------------------------------------------------------------------------
1 | .ec-card-container {
2 | padding: 0 8px 8px;
3 | border-radius: $radius;
4 | background-color: $white;
5 | }
6 |
7 | .ec-chart-container {
8 | position: relative;
9 | flex-direction: column;
10 | min-height: 200px;
11 | height: 100%;
12 |
13 | .chart-dom {
14 | height: 100%;
15 | min-height: 200px;
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/shell/app/common/components/cards-layout/index.scss:
--------------------------------------------------------------------------------
1 | .card-list-container {
2 | display: grid;
3 | padding: 3px;
4 | grid-gap: 20px 20px;
5 |
6 | &-g6 {
7 | grid-template-columns: repeat(6, 1fr);
8 | }
9 |
10 | &-g5 {
11 | grid-template-columns: repeat(5, 1fr);
12 | }
13 |
14 | &-g4 {
15 | grid-template-columns: repeat(4, 1fr);
16 | }
17 |
18 | &-g3 {
19 | grid-template-columns: repeat(3, 1fr);
20 | }
21 |
22 | &-g2 {
23 | grid-template-columns: repeat(2, 1fr);
24 | }
25 |
26 | &-g1 {
27 | grid-template-columns: 100%;
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/shell/app/common/components/configurable-filter/config-selector.scss:
--------------------------------------------------------------------------------
1 | .filter-config-selector-item {
2 | .more-op {
3 | display: none;
4 | }
5 |
6 | &:hover {
7 | .more-op {
8 | display: flex;
9 | }
10 | }
11 | }
12 |
13 | .erda-configurable-filter-add {
14 | .ant-popover-content {
15 | .ant-popover-inner {
16 | &-content {
17 | padding: 0;
18 | }
19 | }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/shell/app/common/components/details-panel/index.scss:
--------------------------------------------------------------------------------
1 | .details-panel-template {
2 | .title-box {
3 | border-radius: $radius-lg;
4 | }
5 |
6 | .ant-anchor-wrapper {
7 | background-color: transparent;
8 |
9 | .ant-anchor {
10 | display: flex;
11 | align-items: center;
12 | width: 100%;
13 | padding: 0 0 0 16px;
14 | background-color: $white;
15 |
16 | .ant-anchor-ink {
17 | display: none;
18 | }
19 | }
20 | }
21 |
22 | .anchor-link-title-icon {
23 | display: flex;
24 | align-items: center;
25 |
26 | svg {
27 | width: 20px;
28 | height: 20px;
29 | }
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/shell/app/common/components/duration/duration.scss:
--------------------------------------------------------------------------------
1 | .trace-duration {
2 | .ant-input,
3 | .ant-input-group-addon {
4 | background: transparent;
5 | border: none;
6 | }
7 |
8 | .ant-select {
9 | background: transparent;
10 | border: none;
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/shell/app/common/components/erda-icon/index.scss:
--------------------------------------------------------------------------------
1 | .primary-icon {
2 | // TODO: remove this style
3 | width: 1em;
4 | height: 1em;
5 | color: $white;
6 | background-color: $color-primary;
7 | }
8 |
--------------------------------------------------------------------------------
/shell/app/common/components/error-boundary/index.scss:
--------------------------------------------------------------------------------
1 | .error-boundary {
2 | display: flex;
3 | justify-content: center;
4 | align-items: center;
5 |
6 | i {
7 | margin-right: 50px;
8 | font-size: 120px;
9 | }
10 |
11 | .error-desc {
12 | display: flex;
13 | flex-direction: column;
14 | justify-content: space-between;
15 | align-items: center;
16 | height: 100px;
17 | font-size: 30px;
18 | line-height: 30px;
19 | }
20 | }
21 |
22 | #main > .error-boundary {
23 | height: 80%;
24 | min-height: 460px;
25 | }
26 |
--------------------------------------------------------------------------------
/shell/app/common/components/file-editor/index.scss:
--------------------------------------------------------------------------------
1 | .file-editor-container {
2 | position: relative;
3 |
4 | .file-editor-actions {
5 | position: absolute;
6 | top: -10px;
7 | right: 20px;
8 | z-index: 10;
9 | padding: 8px;
10 | opacity: 0.3;
11 |
12 | > * {
13 | margin-left: 8px;
14 | }
15 |
16 | &:first-child {
17 | margin-left: 0;
18 | }
19 |
20 | &:hover {
21 | opacity: 1;
22 | }
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/shell/app/common/components/file-select/index.scss:
--------------------------------------------------------------------------------
1 | .upload-file-tip {
2 | width: 273px;
3 | overflow: hidden;
4 | color: $gray !important;
5 | text-align: left;
6 | text-overflow: ellipsis;
7 |
8 | &.placeholder {
9 | color: $color-text-holder !important;
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/shell/app/common/components/head-operation-bar/index.scss:
--------------------------------------------------------------------------------
1 | .head-operation-bar {
2 | .head-operations {
3 | iconpark-icon {
4 | color: $color-default-4;
5 | cursor: pointer;
6 | font-size: 20px;
7 | padding: 4px;
8 | margin-left: 12px;
9 | &:hover {
10 | background-color: $color-default-08;
11 | color: $color-default-8;
12 | }
13 | }
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/shell/app/common/components/key-value-editor/index.scss:
--------------------------------------------------------------------------------
1 | .key-value-title {
2 | color: $color-dark-8;
3 | font-weight: 500;
4 | }
5 |
--------------------------------------------------------------------------------
/shell/app/common/components/key-value-textarea/index.scss:
--------------------------------------------------------------------------------
1 | .key-value-textarea-wrap {
2 | .ant-input {
3 | // color: $yellow;
4 | font-family: PingFangSC-Regular, serif;
5 | line-height: 2em;
6 | // background-color: $navy;
7 | border-radius: 4px;
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/shell/app/common/components/markdown-editor/upload-plugin.scss:
--------------------------------------------------------------------------------
1 | .upload-plugin-menu {
2 | width: 145px;
3 |
4 | .upload-item {
5 | display: inline-block;
6 | width: 145px;
7 | padding: 4px;
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/shell/app/common/components/menu-popover/index.scss:
--------------------------------------------------------------------------------
1 | .menu-popover {
2 | width: 100px;
3 |
4 | .ant-popover-inner-content {
5 | padding: 5px 0;
6 | }
7 |
8 | .popover-item {
9 | display: block;
10 | height: 28px;
11 | line-height: 28px;
12 | text-align: center;
13 | cursor: pointer;
14 | transition: 0.3s all;
15 |
16 | &:hover {
17 | color: $white;
18 | background-color: $color-primary;
19 | }
20 |
21 | &.disabled {
22 | color: $color-disabled;
23 |
24 | &:hover {
25 | color: $color-disabled;
26 | }
27 | }
28 | }
29 | }
30 |
31 | .big-more-icon {
32 | width: 32px;
33 | height: 24px;
34 | font-size: 24px;
35 | }
36 |
37 | .sm-more-icon {
38 | font-size: 14px;
39 | }
40 |
--------------------------------------------------------------------------------
/shell/app/common/components/monitor/components/timeSelector.scss:
--------------------------------------------------------------------------------
1 | .time-range-selector {
2 | width: 140px;
3 | }
4 |
5 | .monitor-time-selector {
6 | margin-right: 10px;
7 | margin-bottom: 15px;
8 | }
9 |
10 | .monitor-time-selector-inline {
11 | display: inline;
12 | margin-left: 15px;
13 | }
14 |
--------------------------------------------------------------------------------
/shell/app/common/components/monitor/index.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2021 Terminus, Inc.
2 | //
3 | // This program is free software: you can use, redistribute, and/or modify
4 | // it under the terms of the GNU Affero General Public License, version 3
5 | // or later ("AGPL"), as published by the Free Software Foundation.
6 | //
7 | // This program is distributed in the hope that it will be useful, but WITHOUT
8 | // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
9 | // FITNESS FOR A PARTICULAR PURPOSE.
10 | //
11 | // You should have received a copy of the GNU Affero General Public License
12 | // along with this program. If not, see .
13 |
14 | import TimeSelector from './timeSelector';
15 |
16 | export default TimeSelector;
17 |
--------------------------------------------------------------------------------
/shell/app/common/components/monitor/monitor-chart.scss:
--------------------------------------------------------------------------------
1 | .monitor-chart-panel {
2 | .time-range-selector {
3 | position: absolute;
4 | }
5 | }
6 |
7 | .monitor-chart {
8 | position: relative;
9 | top: -20px;
10 | height: 100%;
11 |
12 | .monitor-chart-title {
13 | margin-bottom: 20px;
14 | font-size: 14px;
15 | line-height: 28px;
16 | }
17 |
18 | .time-range-selector {
19 | top: 0;
20 | right: 10px;
21 | z-index: 5;
22 | width: 120px;
23 |
24 | .ant-select-selection {
25 | color: $color-text;
26 | border: none;
27 | box-shadow: none;
28 | }
29 | }
30 |
31 | .empty-holder {
32 | top: 1.5625rem;
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/shell/app/common/components/no-auth-tip/index.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2021 Terminus, Inc.
2 | //
3 | // This program is free software: you can use, redistribute, and/or modify
4 | // it under the terms of the GNU Affero General Public License, version 3
5 | // or later ("AGPL"), as published by the Free Software Foundation.
6 | //
7 | // This program is distributed in the hope that it will be useful, but WITHOUT
8 | // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
9 | // FITNESS FOR A PARTICULAR PURPOSE.
10 | //
11 | // You should have received a copy of the GNU Affero General Public License
12 | // along with this program. If not, see .
13 |
14 | import NoAuthTip from './no-auth-tip';
15 |
16 | export default NoAuthTip;
17 |
--------------------------------------------------------------------------------
/shell/app/common/components/panel/index.scss:
--------------------------------------------------------------------------------
1 | .erda-panel {
2 | margin-bottom: 0.5rem;
3 |
4 | .erda-panel-item {
5 | margin-bottom: 0.75rem;
6 | }
7 |
8 | .erda-panel-label {
9 | color: $color-dark-4;
10 | }
11 |
12 | .erda-panel-value {
13 | margin-bottom: 0.25rem;
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/shell/app/common/components/pure-log-roller/index.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2021 Terminus, Inc.
2 | //
3 | // This program is free software: you can use, redistribute, and/or modify
4 | // it under the terms of the GNU Affero General Public License, version 3
5 | // or later ("AGPL"), as published by the Free Software Foundation.
6 | //
7 | // This program is distributed in the hope that it will be useful, but WITHOUT
8 | // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
9 | // FITNESS FOR A PARTICULAR PURPOSE.
10 | //
11 | // You should have received a copy of the GNU Affero General Public License
12 | // along with this program. If not, see .
13 |
14 | import LogRoller from './log-roller';
15 |
16 | export default LogRoller;
17 |
--------------------------------------------------------------------------------
/shell/app/common/components/pure-log-roller/log-content.scss:
--------------------------------------------------------------------------------
1 | .log-list-box {
2 | white-space: nowrap;
3 |
4 | .log-item {
5 | span {
6 | display: inline-block;
7 | margin-right: 10px;
8 | }
9 |
10 | pre {
11 | display: inline;
12 | margin-right: 10px;
13 | overflow: visible;
14 | }
15 |
16 | a {
17 | color: $yellow;
18 | font-weight: bold;
19 | text-decoration: underline;
20 | }
21 | }
22 |
23 | .log-item-logtime {
24 | color: $green;
25 | vertical-align: top;
26 | }
27 |
28 | ::selection {
29 | color: $white;
30 | background: $green;
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/shell/app/common/components/radio-tabs/index.scss:
--------------------------------------------------------------------------------
1 | .erda-radio-tabs {
2 | .ant-radio-button-wrapper {
3 | padding: 0 20px;
4 | line-height: 30px;
5 | border: unset !important;
6 | color: $color-default;
7 | background-color: $color-default-06;
8 | box-shadow: unset !important;
9 | &.ant-radio-button-wrapper-checked {
10 | color: $white;
11 | }
12 | &:first-child {
13 | border-radius: 2px 0 0 2px;
14 | }
15 | &:last-child {
16 | border-radius: 0 2px 2px 0;
17 | }
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/shell/app/common/components/render-pure-form/index.scss:
--------------------------------------------------------------------------------
1 | .render-form {
2 | &.ant-form-vertical {
3 | width: 40%;
4 |
5 | @include sm-width() {
6 | width: 100%;
7 | }
8 |
9 | .ant-form-item-label {
10 | text-align: left;
11 | }
12 | }
13 |
14 | .input-with-icon {
15 | width: 100%;
16 | }
17 |
18 | .render-form-op {
19 | display: inline-block;
20 | margin-left: 12px;
21 | font-size: 20px;
22 | line-height: inherit;
23 | vertical-align: middle;
24 | }
25 |
26 | .add-one {
27 | position: absolute;
28 | right: -30px;
29 | }
30 |
31 | .drop-one {
32 | position: absolute;
33 | right: -60px;
34 | }
35 | }
36 |
37 | .ant-modal-body {
38 | .render-form.ant-form-vertical {
39 | width: unset;
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/shell/app/common/components/search-table/index.scss:
--------------------------------------------------------------------------------
1 | .search-table-header {
2 | margin-bottom: 12px;
3 | overflow: hidden;
4 |
5 | .search-input {
6 | width: 260px;
7 |
8 | &-left {
9 | display: inline-block;
10 | }
11 |
12 | &-right {
13 | float: right;
14 | }
15 | }
16 |
17 | .extra-items {
18 | &-left {
19 | display: inline-block;
20 | }
21 |
22 | &-right {
23 | float: right;
24 | }
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/shell/app/common/components/simple-log/index.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2021 Terminus, Inc.
2 | //
3 | // This program is free software: you can use, redistribute, and/or modify
4 | // it under the terms of the GNU Affero General Public License, version 3
5 | // or later ("AGPL"), as published by the Free Software Foundation.
6 | //
7 | // This program is distributed in the hope that it will be useful, but WITHOUT
8 | // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
9 | // FITNESS FOR A PARTICULAR PURPOSE.
10 | //
11 | // You should have received a copy of the GNU Affero General Public License
12 | // along with this program. If not, see .
13 |
14 | import SimpleLog from './simple-log';
15 |
16 | export default SimpleLog;
17 |
--------------------------------------------------------------------------------
/shell/app/common/components/simple-panel/index.scss:
--------------------------------------------------------------------------------
1 | .ec-simple-panel {
2 | .ec-simple-panel-title {
3 | display: block;
4 | padding: 11px 0;
5 | color: $color-text;
6 | font-size: 18px;
7 | }
8 |
9 | .ec-simple-panel-body {
10 | margin-bottom: $p20;
11 | background-color: $white;
12 | border-radius: $radius;
13 | }
14 |
15 | &.block {
16 | padding: 4px 20px 16px;
17 | background: $white;
18 | border-radius: 3px;
19 | box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.06), 0 2px 4px -3px rgba(0, 0, 0, 0.06), 0 2px 6px 0 rgba(0, 0, 0, 0.12);
20 |
21 | .ec-simple-panel-title {
22 | height: 48px;
23 | padding: unset;
24 | font-weight: bold;
25 | line-height: 48px;
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/shell/app/common/components/table-actions/index.scss:
--------------------------------------------------------------------------------
1 | .table-operate-dropdown {
2 | ul {
3 | li {
4 | .table-operations-btn {
5 | display: block;
6 | width: 100%;
7 | }
8 | }
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/shell/app/common/components/time-select/index.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2021 Terminus, Inc.
2 | //
3 | // This program is free software: you can use, redistribute, and/or modify
4 | // it under the terms of the GNU Affero General Public License, version 3
5 | // or later ("AGPL"), as published by the Free Software Foundation.
6 | //
7 | // This program is distributed in the hope that it will be useful, but WITHOUT
8 | // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
9 | // FITNESS FOR A PARTICULAR PURPOSE.
10 | //
11 | // You should have received a copy of the GNU Affero General Public License
12 | // along with this program. If not, see .
13 |
14 | import TimeSelect from './time-select';
15 |
16 | export default TimeSelect;
17 |
--------------------------------------------------------------------------------
/shell/app/config-page/components/alert/alert.scss:
--------------------------------------------------------------------------------
1 | .config-page-alert {
2 | .ant-alert-content {
3 | align-items: flex-start;
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/shell/app/config-page/components/badge/badge.scss:
--------------------------------------------------------------------------------
1 | .cp-badge-list {
2 | &-item {
3 | margin-right: 4px;
4 | &:last-child {
5 | margin-right: 0;
6 | }
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/shell/app/config-page/components/bar-chart/bar-chart.scss:
--------------------------------------------------------------------------------
1 | .cp-bar-chart {
2 | position: relative;
3 | flex-direction: column;
4 | min-height: 100px;
5 | height: 100%;
6 |
7 | .chart-dom {
8 | height: 100%;
9 | min-height: 100px;
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/shell/app/config-page/components/drawer/drawer.scss:
--------------------------------------------------------------------------------
1 | .dice-cp-drawer-content {
2 | position: relative;
3 | height: 100%;
4 | overflow: auto;
5 | }
6 |
7 | .dice-cp-drawer-operation {
8 | position: absolute;
9 | bottom: 0;
10 | left: 0;
11 | width: 100%;
12 | padding: $p8 $p16;
13 | text-align: right;
14 | }
15 |
--------------------------------------------------------------------------------
/shell/app/config-page/components/dropdown-select/dropdown-select.scss:
--------------------------------------------------------------------------------
1 | .cp-dice-dropdown-select {
2 | text-align: center;
3 |
4 | &.dropdown-select-button {
5 | font-weight: bold;
6 | font-size: 18px;
7 | border: none;
8 | }
9 |
10 | &-image {
11 | width: 24px;
12 | height: 24px;
13 | border-radius: 50%;
14 | }
15 |
16 | .caret {
17 | svg {
18 | margin-bottom: 1px !important;
19 | }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/shell/app/config-page/components/gantt/components/other/scroll.scss:
--------------------------------------------------------------------------------
1 | .erda-gantt-vertical-scroll {
2 | overflow: hidden auto;
3 | width: 17px;
4 | flex-shrink: 0;
5 | }
6 |
7 | .erda-gantt-horizontal-scroll {
8 | overflow: auto;
9 | max-width: 100%;
10 | position: absolute;
11 | bottom: 0px;
12 | }
13 |
--------------------------------------------------------------------------------
/shell/app/config-page/components/gantt/components/other/tooltip.scss:
--------------------------------------------------------------------------------
1 | .erda-gantt-tooltip-default-container {
2 | background: $white;
3 | padding: 12px;
4 | box-shadow: 0 3px 6px $color-dark-1, 0 3px 6px $color-dark-2;
5 | }
6 |
7 | .erda-gantt-tooltip-default-container-paragraph {
8 | font-size: 12px;
9 | margin-bottom: 6px;
10 | color: $gray;
11 | }
12 |
13 | .erda-gantt-tooltip-details-container {
14 | position: absolute;
15 | display: flex;
16 | flex-shrink: 0;
17 | pointer-events: none;
18 | user-select: none;
19 | }
20 |
21 | .erda-gantt-tooltip-details-container-hidden {
22 | visibility: hidden;
23 | position: absolute;
24 | display: flex;
25 | pointer-events: none;
26 | }
27 |
--------------------------------------------------------------------------------
/shell/app/config-page/components/gantt/components/task-item/milestone/milestone.scss:
--------------------------------------------------------------------------------
1 | .erda-gantt-milestone-wrapper {
2 | cursor: pointer;
3 | outline: none;
4 | }
5 |
6 | .erda-gantt-milestone-background {
7 | user-select: none;
8 | }
9 |
--------------------------------------------------------------------------------
/shell/app/config-page/components/gantt/components/task-item/project/project.scss:
--------------------------------------------------------------------------------
1 | .erda-gantt-project-wrapper {
2 | cursor: pointer;
3 | outline: none;
4 | }
5 |
6 | .erda-gantt-project-background {
7 | border-radius: 12px;
8 | }
9 |
10 | .erda-gantt-project-top {
11 | user-select: none;
12 | }
13 |
--------------------------------------------------------------------------------
/shell/app/config-page/components/gantt/components/task-item/task-list.scss:
--------------------------------------------------------------------------------
1 | .erda-gantt-task-bar-label {
2 | fill: $white;
3 | text-anchor: middle;
4 | font-weight: lighter;
5 | dominant-baseline: central;
6 | user-select: none;
7 | pointer-events: none;
8 | }
9 |
10 | .erda-gantt-task-bar-label-outside {
11 | fill: $gray;
12 | text-anchor: start;
13 | user-select: none;
14 | pointer-events: none;
15 | }
16 |
17 | .erda-gantt-task-foreign-render {
18 | user-select: none;
19 | pointer-events: none;
20 | overflow: visible;
21 | }
22 |
--------------------------------------------------------------------------------
/shell/app/config-page/components/gantt/components/task-list/task-list-header.scss:
--------------------------------------------------------------------------------
1 | .erda-gantt-table {
2 | display: table;
3 | border-bottom: $color-border 1px solid;
4 | border-top: $color-border 1px solid;
5 | border-left: $color-border 1px solid;
6 | }
7 |
8 | .erda-gantt-table-header {
9 | display: table-row;
10 | list-style: none;
11 | }
12 |
13 | .erda-gantt-table-header-separator {
14 | border-right: 1px solid $color-border;
15 | opacity: 1;
16 | margin-left: -2px;
17 | }
18 |
19 | .erda-gantt-table-header-item {
20 | display: table-cell;
21 | vertical-align: -webkit-baseline-middle;
22 | vertical-align: middle;
23 | }
24 |
--------------------------------------------------------------------------------
/shell/app/config-page/components/gantt/components/task-list/task-list.scss:
--------------------------------------------------------------------------------
1 | .erda-gantt-task-list-box {
2 | border-right: 1px solid $color-border;
3 | z-index: 100;
4 | }
5 |
--------------------------------------------------------------------------------
/shell/app/config-page/components/gantt/gantt.scss:
--------------------------------------------------------------------------------
1 | .cp-gantt-task-item {
2 | &-date {
3 | visibility: hidden;
4 | }
5 | &:hover {
6 | visibility: visible;
7 | }
8 |
9 | &-icon {
10 | color: rgba($color-default, 0.4);
11 | transition: all 0.2s;
12 | transform: rotate(-90deg);
13 | }
14 |
15 | &-expanded {
16 | transform: rotate(0);
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/shell/app/config-page/components/gantt/types/date-setup.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2021 Terminus, Inc.
2 | //
3 | // This program is free software: you can use, redistribute, and/or modify
4 | // it under the terms of the GNU Affero General Public License, version 3
5 | // or later ("AGPL"), as published by the Free Software Foundation.
6 | //
7 | // This program is distributed in the hope that it will be useful, but WITHOUT
8 | // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
9 | // FITNESS FOR A PARTICULAR PURPOSE.
10 | //
11 | // You should have received a copy of the GNU Affero General Public License
12 | // along with this program. If not, see .
13 |
14 | import { ViewMode } from './public-types';
15 |
16 | export interface DateSetup {
17 | dates: Date[];
18 | viewMode: ViewMode;
19 | }
20 |
--------------------------------------------------------------------------------
/shell/app/config-page/components/icon/icon.mock..ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2021 Terminus, Inc.
2 | //
3 | // This program is free software: you can use, redistribute, and/or modify
4 | // it under the terms of the GNU Affero General Public License, version 3
5 | // or later ("AGPL"), as published by the Free Software Foundation.
6 | //
7 | // This program is distributed in the hope that it will be useful, but WITHOUT
8 | // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
9 | // FITNESS FOR A PARTICULAR PURPOSE.
10 | //
11 | // You should have received a copy of the GNU Affero General Public License
12 | // along with this program. If not, see .
13 |
14 | export const textMock = {
15 | type: 'Icon',
16 | props: {
17 | iconType: 'lock',
18 | },
19 | };
20 |
--------------------------------------------------------------------------------
/shell/app/config-page/components/image/image.scss:
--------------------------------------------------------------------------------
1 | .cp-dice-image {
2 | margin: 0 auto;
3 |
4 | &.inline-block {
5 | display: inline-block;
6 | }
7 |
8 | &.block {
9 | display: block;
10 | }
11 |
12 | &.small {
13 | width: 32px;
14 | height: 32px;
15 | }
16 |
17 | &.normal {
18 | width: 48px;
19 | height: 48px;
20 | }
21 |
22 | &.big {
23 | width: 64px;
24 | height: 64px;
25 | }
26 |
27 | &.large {
28 | width: 128px;
29 | height: 128px;
30 | }
31 |
32 | &.circle {
33 | border-radius: 50%;
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/shell/app/config-page/components/info-preview/info-preview.scss:
--------------------------------------------------------------------------------
1 | .dice-cp-preview {
2 | padding: 8px 0;
3 |
4 | &-item {
5 | margin-bottom: 20px;
6 | }
7 |
8 | &-desc {
9 | padding: 0 8px;
10 | color: $color-text-desc;
11 | border-left: 4px solid $color-border;
12 | }
13 |
14 | &-block-title {
15 | padding: 8px 15px;
16 | color: $color-info;
17 | line-height: 24px;
18 | background-color: $color-info-bg;
19 | border-left: 4px solid $color-info;
20 | }
21 |
22 | &-api {
23 | display: flex;
24 |
25 | .method {
26 | margin-right: 8px;
27 | padding: 0 8px;
28 | }
29 |
30 | .path {
31 | flex: 1;
32 | padding: 4px 8px;
33 | // line-height: 22px;
34 | word-break: break-all;
35 | background-color: $color-light-bg;
36 | }
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/shell/app/config-page/components/kv/index.scss:
--------------------------------------------------------------------------------
1 | .cp-kv {
2 | &.dark {
3 | .items {
4 | background: rgba($white, 0.02);
5 |
6 | .items-value {
7 | color: $white;
8 | }
9 |
10 | .items-title,
11 | .items-unit {
12 | color: rgba($white, 0.6);
13 | }
14 | }
15 | }
16 |
17 | &.light {
18 | .items {
19 | background: rgba($color-default, 0.02);
20 |
21 | .items-value {
22 | color: $color-default;
23 | }
24 |
25 | .items-title,
26 | .items-unit {
27 | color: rgba($color-default, 0.6);
28 | }
29 | }
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/shell/app/config-page/components/list-new/list-new.scss:
--------------------------------------------------------------------------------
1 | .erda-list {
2 | .chart-dom {
3 | width: 40px !important;
4 | height: 40px !important;
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/shell/app/config-page/components/panel/panel.scss:
--------------------------------------------------------------------------------
1 | .cp-erda-panel {
2 | .erda-panel-value {
3 | line-height: 24px;
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/shell/app/config-page/components/pie-chart/pie-chart.scss:
--------------------------------------------------------------------------------
1 | .cp-pie-chart {
2 | position: relative;
3 | flex-direction: column;
4 | min-height: 20px;
5 | height: 100%;
6 |
7 | .chart-dom {
8 | height: 100%;
9 | min-height: 20px;
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/shell/app/config-page/components/popover/popover.scss:
--------------------------------------------------------------------------------
1 | .cp-popover {
2 | .ant-popover-inner {
3 | .ant-popover-inner-content {
4 | max-height: 90vh;
5 | overflow: auto;
6 | }
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/shell/app/config-page/components/tabs/tabs.scss:
--------------------------------------------------------------------------------
1 | .dice-cp-tabs-extra {
2 | > * {
3 | margin-left: 8px;
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/shell/app/config-page/components/title/title.mock.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2021 Terminus, Inc.
2 | //
3 | // This program is free software: you can use, redistribute, and/or modify
4 | // it under the terms of the GNU Affero General Public License, version 3
5 | // or later ("AGPL"), as published by the Free Software Foundation.
6 | //
7 | // This program is distributed in the hope that it will be useful, but WITHOUT
8 | // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
9 | // FITNESS FOR A PARTICULAR PURPOSE.
10 | //
11 | // You should have received a copy of the GNU Affero General Public License
12 | // along with this program. If not, see .
13 |
14 | const mockData: CP_TITLE.Spec = {
15 | type: 'Title',
16 | props: {
17 | title: '标题',
18 | },
19 | };
20 |
21 | export default mockData;
22 |
--------------------------------------------------------------------------------
/shell/app/config-page/components/top-n/index.scss:
--------------------------------------------------------------------------------
1 | .cp-data-rank {
2 | .items-wrapper {
3 | min-height: 232px;
4 | }
5 |
6 | .bg-icon-wrapper {
7 | width: 52px;
8 | height: 52px;
9 | }
10 |
11 | .ant-progress,
12 | .ant-progress-outer {
13 | line-height: 4px;
14 | height: 4px;
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/shell/app/config-page/docs/alert.spec.md:
--------------------------------------------------------------------------------
1 | # CP_ALERT
2 |
3 | ## 接口
4 |
5 | ### Spec
6 |
7 | | 名称 | 类型 | 必填 |
8 | | ----- | ------- | ----- | --- |
9 | | type | 'Alert' | false |
10 | | props | IProps | true | , |
11 |
12 | ### IProps
13 |
14 | | 名称 | 类型 | 必填 |
15 | | -------- | --------- | -------- | --------- | ------- | ----- |
16 | | visible | boolean | true |
17 | | showIcon | boolean | true |
18 | | type | 'success' | 'normal' | 'warning' | 'error' | false |
19 | | message | string[] | string | false |
20 |
21 | ## 枚举
22 |
23 | ## 类型
24 |
25 | | 名称 | 值 |
26 | | ----- | --------------- |
27 | | Props | MakeProps |
28 |
--------------------------------------------------------------------------------
/shell/app/config-page/docs/chart.spec.md:
--------------------------------------------------------------------------------
1 | # CP_CHART
2 |
3 | ## 接口
4 |
5 | ### Spec
6 |
7 | | 名称 | 类型 | 必填 |
8 | | ----- | ------- | ----- | --- |
9 | | type | 'Chart' | false |
10 | | props | IProps | false |
11 | | cId | string | false | , |
12 |
13 | ### IProps
14 |
15 | | 名称 | 类型 | 必填 |
16 | | ---------- | ------- | ----- | ----- | ----- |
17 | | chartType | 'line' | 'pie' | 'bar' | false |
18 | | option | Obj | false |
19 | | style | Obj | false |
20 | | visible | boolean | true |
21 | | title | string | false |
22 | | isLoadMore | boolean | true |
23 |
24 | ## 枚举
25 |
26 | ## 类型
27 |
28 | | 名称 | 值 |
29 | | ----- | ------------------- |
30 | | Props | MakeProps & { |
31 |
32 | extraContent?: React.ReactElement;
33 |
34 | } |
35 |
--------------------------------------------------------------------------------
/shell/app/config-page/docs/image.spec.md:
--------------------------------------------------------------------------------
1 | # CP_IMAGE
2 |
3 | ## 接口
4 |
5 | ### Spec
6 |
7 | | 名称 | 类型 | 必填 |
8 | | ----- | ------- | ----- | --- |
9 | | type | 'Image' | false |
10 | | props | IProps | true | , |
11 |
12 | ### IProps
13 |
14 | | 名称 | 类型 | 必填 |
15 | | -------- | -------------- | -------- | ----- | ------- | ---- |
16 | | alt | string | true |
17 | | src | string | true |
18 | | isCircle | boolean | true |
19 | | size | 'small' | 'normal' | 'big' | 'large' | true |
20 | | visible | boolean | true |
21 | | type | string | true |
22 | | display | 'inline-block' | 'block' | true |
23 |
24 | ## 枚举
25 |
26 | ## 类型
27 |
28 | | 名称 | 值 |
29 | | ----- | --------------- |
30 | | Props | MakeProps |
31 |
--------------------------------------------------------------------------------
/shell/app/config-page/docs/input.spec.md:
--------------------------------------------------------------------------------
1 | # CP_INPUT
2 |
3 | ## 接口
4 |
5 | ### Spec
6 |
7 | | 名称 | 类型 | 必填 |
8 | | ----- | ------- | ----- | --- |
9 | | type | 'Input' | false |
10 | | props | IProps | false |
11 | | state | IState | false | , |
12 |
13 | ### IState
14 |
15 | | 名称 | 类型 | 必填 |
16 | | ----- | ------ | ---- | --- |
17 | | value | string | true | , |
18 |
19 | ### IProps
20 |
21 | | 名称 | 类型 | 必填 |
22 | | ----------- | ------- | ---- |
23 | | disabled | boolean | true |
24 | | placeholder | string | true |
25 |
26 | ## 枚举
27 |
28 | ## 类型
29 |
30 | | 名称 | 值 |
31 | | ----- | --------------- |
32 | | Props | MakeProps |
33 |
--------------------------------------------------------------------------------
/shell/app/config-page/docs/select.spec.md:
--------------------------------------------------------------------------------
1 | # CP_SELECT
2 |
3 | ## 接口
4 |
5 | ### Inf
6 |
7 | | 名称 | 类型 | 必填 |
8 | | ---- | -------- | ----- |
9 | | a | number | false |
10 | | b | string | false |
11 | | c | boolean | false |
12 | | d | string[] | false |
13 | | e | any | false |
14 | | f | null | true |
15 |
16 | ## 枚举
17 |
18 | ### en
19 |
20 | | 名称 | 值 |
21 | | ---- | ----- |
22 | | UP | UP1 |
23 | | LEFT | LEFT2 |
24 |
25 | ## 类型
26 |
27 | | 名称 | 值 |
28 | | ---- | --- | --- | --- | --- | ------ | --- | --- | -------------- |
29 | | Ta | 'a' | 'b' | , | Tb | string | , | Tc | Omit |
30 |
--------------------------------------------------------------------------------
/shell/app/config-page/docs/split-page.spec.md:
--------------------------------------------------------------------------------
1 | # CP_SPLIT_PAGE
2 |
3 | ## 接口
4 |
5 | ### Spec
6 |
7 | | 名称 | 类型 | 必填 |
8 | | ---- | ----------- | ----- |
9 | | type | 'SplitPage' | false |
10 |
11 | ## 枚举
12 |
13 | ## 类型
14 |
15 | | 名称 | 值 |
16 | | ----- | ------------------- |
17 | | Props | MakeProps & { |
18 |
19 | left?: React.ReactElement;
20 | right?: React.ReactElement;
21 |
22 | } |
23 |
--------------------------------------------------------------------------------
/shell/app/config-page/docs/test.spec.md:
--------------------------------------------------------------------------------
1 | # CP_SELECT
2 |
3 | ## 接口
4 |
5 | ### Inf
6 |
7 | | 名称 | 类型 | 必填 |
8 | | ---- | -------- | ----- |
9 | | a | number | false |
10 | | b | string | false |
11 | | c | boolean | false |
12 | | d | string[] | false |
13 | | e | any | false |
14 | | f | null | true |
15 |
16 | ## 枚举
17 |
18 | ### en
19 |
20 | | 名称 | 值 |
21 | | ---- | ----- |
22 | | UP | UP1 |
23 | | LEFT | LEFT2 |
24 |
25 | ## 类型
26 |
27 | | 名称 | 值 |
28 | | ---- | --- | --- | --- | --- | ------ | --- | --- | -------------- |
29 | | Ta | 'a' | 'b' | , | Tb | string | , | Tc | Omit |
30 |
--------------------------------------------------------------------------------
/shell/app/configForm/editor/common/index.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2021 Terminus, Inc.
2 | //
3 | // This program is free software: you can use, redistribute, and/or modify
4 | // it under the terms of the GNU Affero General Public License, version 3
5 | // or later ("AGPL"), as published by the Free Software Foundation.
6 | //
7 | // This program is distributed in the hope that it will be useful, but WITHOUT
8 | // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
9 | // FITNESS FOR A PARTICULAR PURPOSE.
10 | //
11 | // You should have received a copy of the GNU Affero General Public License
12 | // along with this program. If not, see .
13 |
14 | export { Drawer } from './components/drawer';
15 | export { Modal } from './components/modal';
16 | export { Tabs } from './components/tabs';
17 |
--------------------------------------------------------------------------------
/shell/app/configForm/editor/form-editor.scss:
--------------------------------------------------------------------------------
1 | @import './common/util.scss';
2 |
3 | .dice-form-editor {
4 | .content {
5 | padding: 0 20px;
6 | }
7 |
8 | .tip {
9 | padding: 10px;
10 |
11 | .tip-title {
12 | color: $color-text;
13 | }
14 |
15 | .tip-desc {
16 | color: $color-text-sub;
17 | font-size: 14px;
18 | }
19 | }
20 |
21 | .ant-form-item {
22 | margin-bottom: 8px;
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/shell/app/configForm/editor/index.scss:
--------------------------------------------------------------------------------
1 | @import './common/util.scss';
2 |
3 | .dice-form-configuration {
4 | display: flex;
5 | height: 100%;
6 | overflow: auto;
7 |
8 | .form-preview-box {
9 | flex: 1;
10 | padding: 12px;
11 | overflow: auto;
12 | }
13 |
14 | .form-editor-box {
15 | flex: 1;
16 | padding: 12px;
17 | overflow: auto;
18 | border-left: 1px solid $color-border;
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/shell/app/configForm/form/context.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2021 Terminus, Inc.
2 | //
3 | // This program is free software: you can use, redistribute, and/or modify
4 | // it under the terms of the GNU Affero General Public License, version 3
5 | // or later ("AGPL"), as published by the Free Software Foundation.
6 | //
7 | // This program is distributed in the hope that it will be useful, but WITHOUT
8 | // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
9 | // FITNESS FOR A PARTICULAR PURPOSE.
10 | //
11 | // You should have received a copy of the GNU Affero General Public License
12 | // along with this program. If not, see .
13 |
14 | import { createContext } from 'react';
15 |
16 | export const Context = createContext({} as any);
17 |
--------------------------------------------------------------------------------
/shell/app/configForm/form/form-item/index.scss:
--------------------------------------------------------------------------------
1 | @import '../utils.scss';
2 |
3 | .dice-form-item {
4 | label {
5 | display: block;
6 | margin-bottom: 4px;
7 | color: $color-text-sub;
8 | font-size: 14px;
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/shell/app/configForm/nusi-form/config.tsx:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2021 Terminus, Inc.
2 | //
3 | // This program is free software: you can use, redistribute, and/or modify
4 | // it under the terms of the GNU Affero General Public License, version 3
5 | // or later ("AGPL"), as published by the Free Software Foundation.
6 | //
7 | // This program is distributed in the hope that it will be useful, but WITHOUT
8 | // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
9 | // FITNESS FOR A PARTICULAR PURPOSE.
10 | //
11 | // You should have received a copy of the GNU Affero General Public License
12 | // along with this program. If not, see .
13 |
14 | export const FORM_GROUP = 'formGroup';
15 |
--------------------------------------------------------------------------------
/shell/app/configForm/nusi-form/form-editor.scss:
--------------------------------------------------------------------------------
1 | .dice-form-nusi-preview-item {
2 | display: flex;
3 | justify-content: space-between;
4 | align-items: center;
5 | padding: 12px;
6 |
7 | &.on-edit {
8 | background-color: $color-active-bg;
9 | }
10 |
11 | .form-view {
12 | flex: 1;
13 |
14 | .ant-form-item {
15 | margin-bottom: 0;
16 | }
17 | }
18 |
19 | .form-operation {
20 | width: 180px;
21 | margin-left: 12px;
22 | font-size: 14px;
23 | text-align: right;
24 |
25 | > span {
26 | margin-right: 8px;
27 | color: $color-primary;
28 | cursor: pointer;
29 |
30 | &:hover {
31 | text-decoration: underline;
32 | }
33 | }
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/shell/app/configForm/nusi-form/form-items/common/combiner.scss:
--------------------------------------------------------------------------------
1 | .dice-form-nusi-combiner-component {
2 | .combiner-item {
3 | display: flex;
4 | align-items: center;
5 | margin-bottom: 8px;
6 |
7 | > * {
8 | margin-right: 8px;
9 | }
10 | }
11 |
12 | .combiner-operation {
13 | color: $color-text-sub;
14 | font-size: 20px;
15 | cursor: pointer;
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/shell/app/configForm/nusi-form/form-items/data-dynamic.scss:
--------------------------------------------------------------------------------
1 | .dice-form-nusi-data-dynamic {
2 | .data-path {
3 | display: flex;
4 |
5 | > * {
6 | margin-right: 4px;
7 | }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/shell/app/configForm/nusi-form/form-items/group.scss:
--------------------------------------------------------------------------------
1 | .dice-form-group {
2 | .dice-form-group-children {
3 | display: block;
4 |
5 | &-row {
6 | display: flex;
7 | justify-content: space-between;
8 | margin-top: $p8;
9 |
10 | .ant-form-item {
11 | width: 100%;
12 | margin: 0 $p8;
13 | }
14 | }
15 | }
16 |
17 | .expand-icon {
18 | transform: rotate(180deg);
19 | transition: all 0.3s ease-in-out;
20 | }
21 |
22 | &.hide-children {
23 | .dice-form-group-children {
24 | display: none;
25 | }
26 |
27 | .expand-icon {
28 | transform: rotate(0deg);
29 | }
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/shell/app/configForm/nusi-form/form-items/input-array.scss:
--------------------------------------------------------------------------------
1 | .ant-form-item-control {
2 | &.has-error {
3 | .dice-form-input-array {
4 | .ant-input {
5 | border-color: rgb(217, 217, 217);
6 | }
7 | }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/shell/app/configForm/nusi-form/form-items/input-select.scss:
--------------------------------------------------------------------------------
1 | .has-error {
2 | .input-select-input {
3 | border-color: $color-danger;
4 | .ant-input{
5 | border-color: transparent;
6 | }
7 | }
8 | }
--------------------------------------------------------------------------------
/shell/app/configForm/nusi-form/form-modal.scss:
--------------------------------------------------------------------------------
1 | .dice-cp-form-modal-tense {
2 | .ant-form-item {
3 | margin-bottom: 0;
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/shell/app/i18n-easy-edit/pages/i18n-wrapper/index.less:
--------------------------------------------------------------------------------
1 | .i18n-wrapper {
2 | width: 100%;
3 | overflow: hidden;
4 |
5 | .edit-icon {
6 | display: none;
7 | padding: 0 2px;
8 | }
9 | .i18n-editable:hover {
10 | .edit-icon {
11 | display: inline-block;
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/shell/app/images/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/erda-project/erda-ui/ec3b437ea40569bb2856310997b4b11ceece1f21/shell/app/images/.gitkeep
--------------------------------------------------------------------------------
/shell/app/images/Erda.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/erda-project/erda-ui/ec3b437ea40569bb2856310997b4b11ceece1f21/shell/app/images/Erda.png
--------------------------------------------------------------------------------
/shell/app/images/default-app-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/erda-project/erda-ui/ec3b437ea40569bb2856310997b4b11ceece1f21/shell/app/images/default-app-icon.png
--------------------------------------------------------------------------------
/shell/app/images/default-breathing.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/erda-project/erda-ui/ec3b437ea40569bb2856310997b4b11ceece1f21/shell/app/images/default-breathing.gif
--------------------------------------------------------------------------------
/shell/app/images/default-loading.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/erda-project/erda-ui/ec3b437ea40569bb2856310997b4b11ceece1f21/shell/app/images/default-loading.gif
--------------------------------------------------------------------------------
/shell/app/images/default-project-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/erda-project/erda-ui/ec3b437ea40569bb2856310997b4b11ceece1f21/shell/app/images/default-project-icon.png
--------------------------------------------------------------------------------
/shell/app/images/default-project-main-bg.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/erda-project/erda-ui/ec3b437ea40569bb2856310997b4b11ceece1f21/shell/app/images/default-project-main-bg.webp
--------------------------------------------------------------------------------
/shell/app/images/defaultFileImage.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/erda-project/erda-ui/ec3b437ea40569bb2856310997b4b11ceece1f21/shell/app/images/defaultFileImage.png
--------------------------------------------------------------------------------
/shell/app/images/editor-background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/erda-project/erda-ui/ec3b437ea40569bb2856310997b4b11ceece1f21/shell/app/images/editor-background.png
--------------------------------------------------------------------------------
/shell/app/images/empty-project.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/erda-project/erda-ui/ec3b437ea40569bb2856310997b4b11ceece1f21/shell/app/images/empty-project.png
--------------------------------------------------------------------------------
/shell/app/images/gallery-header.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/erda-project/erda-ui/ec3b437ea40569bb2856310997b4b11ceece1f21/shell/app/images/gallery-header.jpg
--------------------------------------------------------------------------------
/shell/app/images/intro.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/erda-project/erda-ui/ec3b437ea40569bb2856310997b4b11ceece1f21/shell/app/images/intro.png
--------------------------------------------------------------------------------
/shell/app/images/land-spring.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/erda-project/erda-ui/ec3b437ea40569bb2856310997b4b11ceece1f21/shell/app/images/land-spring.jpg
--------------------------------------------------------------------------------
/shell/app/images/msp/microservice-governance-decoration.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/shell/app/images/no-cluster.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/erda-project/erda-ui/ec3b437ea40569bb2856310997b4b11ceece1f21/shell/app/images/no-cluster.png
--------------------------------------------------------------------------------
/shell/app/images/org-home/tab-pane-header-selected-first.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/erda-project/erda-ui/ec3b437ea40569bb2856310997b4b11ceece1f21/shell/app/images/org-home/tab-pane-header-selected-first.png
--------------------------------------------------------------------------------
/shell/app/images/org-home/tab-pane-header-selected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/erda-project/erda-ui/ec3b437ea40569bb2856310997b4b11ceece1f21/shell/app/images/org-home/tab-pane-header-selected.png
--------------------------------------------------------------------------------
/shell/app/images/org-home/tab-pane-header-unselected-first.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/erda-project/erda-ui/ec3b437ea40569bb2856310997b4b11ceece1f21/shell/app/images/org-home/tab-pane-header-unselected-first.png
--------------------------------------------------------------------------------
/shell/app/images/org-home/tab-pane-header-unselected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/erda-project/erda-ui/ec3b437ea40569bb2856310997b4b11ceece1f21/shell/app/images/org-home/tab-pane-header-unselected.png
--------------------------------------------------------------------------------
/shell/app/images/resources/addon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/erda-project/erda-ui/ec3b437ea40569bb2856310997b4b11ceece1f21/shell/app/images/resources/addon.png
--------------------------------------------------------------------------------
/shell/app/images/resources/coding.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/erda-project/erda-ui/ec3b437ea40569bb2856310997b4b11ceece1f21/shell/app/images/resources/coding.png
--------------------------------------------------------------------------------
/shell/app/images/resources/github.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/erda-project/erda-ui/ec3b437ea40569bb2856310997b4b11ceece1f21/shell/app/images/resources/github.png
--------------------------------------------------------------------------------
/shell/app/images/resources/gitlab.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/erda-project/erda-ui/ec3b437ea40569bb2856310997b4b11ceece1f21/shell/app/images/resources/gitlab.png
--------------------------------------------------------------------------------
/shell/app/images/resources/org.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/erda-project/erda-ui/ec3b437ea40569bb2856310997b4b11ceece1f21/shell/app/images/resources/org.png
--------------------------------------------------------------------------------
/shell/app/images/zx-gray.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/shell/app/images/zx.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/shell/app/index.js:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2021 Terminus, Inc.
2 | //
3 | // This program is free software: you can use, redistribute, and/or modify
4 | // it under the terms of the GNU Affero General Public License, version 3
5 | // or later ("AGPL"), as published by the Free Software Foundation.
6 | //
7 | // This program is distributed in the hope that it will be useful, but WITHOUT
8 | // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
9 | // FITNESS FOR A PARTICULAR PURPOSE.
10 | //
11 | // You should have received a copy of the GNU Affero General Public License
12 | // along with this program. If not, see .
13 |
14 | if (process.env.VITE) {
15 | import('./App-vite');
16 | } else {
17 | import('./App');
18 | }
19 |
--------------------------------------------------------------------------------
/shell/app/layout/common/error-page.scss:
--------------------------------------------------------------------------------
1 | .basic-error-page {
2 | height: 100%;
3 |
4 | .info {
5 | display: flex;
6 | justify-content: center;
7 | align-items: center;
8 | height: 100%;
9 | font-size: 24px;
10 |
11 | .desc {
12 | display: flex;
13 | flex-direction: column;
14 | justify-content: space-between;
15 | min-height: 100px;
16 | font-size: 30px;
17 | line-height: 30px;
18 | }
19 |
20 | .contact-info {
21 | margin: 20px 0;
22 | font-size: 18px;
23 | line-height: 18px;
24 | }
25 |
26 | i {
27 | margin-right: 50px;
28 | font-size: 120px;
29 | }
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/shell/app/layout/pages/page-container/components/navigation/user-menu.scss:
--------------------------------------------------------------------------------
1 | .erda-global-nav-user-menu {
2 | .ant-popover-inner-content {
3 | padding: 0;
4 | }
5 |
6 | &.no-arrow {
7 | .ant-popover-arrow-content {
8 | background-color: unset;
9 | }
10 | }
11 |
12 | .user-avatar {
13 | box-shadow: 0 3px 11px 0 rgba(0, 0, 0, 0.15);
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/shell/app/layout/pages/page-container/components/shell/index.scss:
--------------------------------------------------------------------------------
1 | .erda-shell {
2 | display: flex;
3 | height: 100vh;
4 | width: 100%;
5 | overflow: hidden;
6 |
7 | .erda-nav {
8 | z-index: 1000;
9 | }
10 |
11 | .erda-main-content {
12 | position: relative;
13 | flex: 1;
14 | display: flex;
15 | flex-direction: column;
16 | min-width: 600px;
17 | margin-top: 36px;
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/shell/app/layout/pages/page-container/layout.scss:
--------------------------------------------------------------------------------
1 | .dice-body {
2 | position: relative;
3 | display: flex;
4 | flex: 1;
5 | flex-direction: column;
6 | overflow: hidden;
7 | }
8 |
9 | .empty-layout {
10 | height: 100vh;
11 | width: 100%;
12 | overflow: hidden;
13 | }
14 |
--------------------------------------------------------------------------------
/shell/app/layout/pages/page-container/page-container.scss:
--------------------------------------------------------------------------------
1 | #main {
2 | position: relative;
3 | display: flex;
4 | flex-direction: column;
5 | padding-right: 16px;
6 | height: 100%;
7 | overflow: auto;
8 | }
9 |
10 | .main-scroll-tip {
11 | bottom: 0;
12 | left: 0;
13 | pointer-events: none;
14 | position: absolute;
15 | right: 0;
16 | top: 48px;
17 | z-index: 2;
18 | transition: box-shadow 0.1s ease-in-out;
19 | &.show {
20 | box-shadow: 0 6px 11px -11px $color-default-3 inset;
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/shell/app/menus/msp.tsx:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2021 Terminus, Inc.
2 | //
3 | // This program is free software: you can use, redistribute, and/or modify
4 | // it under the terms of the GNU Affero General Public License, version 3
5 | // or later ("AGPL"), as published by the Free Software Foundation.
6 | //
7 | // This program is distributed in the hope that it will be useful, but WITHOUT
8 | // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
9 | // FITNESS FOR A PARTICULAR PURPOSE.
10 | //
11 | // You should have received a copy of the GNU Affero General Public License
12 | // along with this program. If not, see .
13 |
14 | export const getMspMenu = () => {
15 | // see shell/app/modules/extra/msp/config.tsx
16 | return [];
17 | };
18 |
--------------------------------------------------------------------------------
/shell/app/modules/addonPlatform/pages/addon-resource/addon-resource.scss:
--------------------------------------------------------------------------------
1 | .addon-resource-panel {
2 | .resource-config-panel {
3 | display: flex;
4 | min-height: 160px;
5 | margin-bottom: 20px;
6 | padding: 20px 20px;
7 | background-color: $white;
8 | border: 1px solid $color-border;
9 | border-radius: $radius;
10 | }
11 |
12 | .basic-info {
13 | @include grid-layout();
14 |
15 | .info-key {
16 | height: 22px;
17 | margin-bottom: 4px;
18 | color: $color-text-desc;
19 | line-height: 22px;
20 | }
21 |
22 | .info-value {
23 | height: 22px;
24 | margin: 5px 0;
25 | line-height: 22px;
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/shell/app/modules/addonPlatform/pages/common/components/addon-detail-drawer.scss:
--------------------------------------------------------------------------------
1 | .addon-detail {
2 | .title {
3 | display: inline-block;
4 | margin-bottom: $p8;
5 | font-size: 16px;
6 | line-height: 38px;
7 | }
8 |
9 | .info {
10 | margin-bottom: $p32;
11 |
12 | &-grid {
13 | display: grid;
14 | grid-template-columns: 50% 50%;
15 | row-gap: $p4;
16 | }
17 | }
18 |
19 | .ref {
20 | margin-bottom: $p32;
21 | }
22 |
23 | .param-k {
24 | margin-bottom: $p4;
25 | color: $color-text-desc;
26 | line-height: 22px;
27 | }
28 |
29 | .param-v {
30 | margin-bottom: $p12;
31 | padding-right: $p8;
32 | color: $color-text;
33 | line-height: $p32;
34 | }
35 |
36 | .copy-all {
37 | margin-right: $p4;
38 | color: $color-primary;
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/shell/app/modules/addonPlatform/pages/jvm-profiler/jvm-overview.scss:
--------------------------------------------------------------------------------
1 | .jvm-overview {
2 | .info-item {
3 | margin-bottom: 8px;
4 |
5 | .label {
6 | color: $color-text-desc;
7 | }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/shell/app/modules/apiManagePlatform/components/select-pro.scss:
--------------------------------------------------------------------------------
1 | .select-pro {
2 | position: relative;
3 |
4 | .select-pro-icon {
5 | position: absolute;
6 | right: 10px;
7 | top: 50%;
8 | color: $color-dark-2;
9 | }
10 |
11 | .ant-select-arrow {
12 | display: none;
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/shell/app/modules/apiManagePlatform/components/sla-select.scss:
--------------------------------------------------------------------------------
1 | .sla-select {
2 | min-height: 220px;
3 | border: none;
4 | background-color: $white;
5 | }
6 |
--------------------------------------------------------------------------------
/shell/app/modules/apiManagePlatform/pages/access-manage/components/multi-input.scss:
--------------------------------------------------------------------------------
1 | .multi-input-item {
2 | margin-bottom: 4px;
3 |
4 | .multi-input-icons {
5 | display: flex;
6 | width: 70px;
7 | margin-left: 10px;
8 | cursor: pointer;
9 | color: $gray;
10 | }
11 |
12 | .input-with-icon {
13 | display: flex;
14 | align-items: center;
15 | width: 30px;
16 | font-size: 20px;
17 | cursor: pointer;
18 | color: $gray;
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/shell/app/modules/apiManagePlatform/pages/access-manage/detail/sla.scss:
--------------------------------------------------------------------------------
1 | .access-detail-page {
2 | .table-operations {
3 | span.table-operations-btn {
4 | &.default-sla {
5 | color: $color-text;
6 | text-decoration: none !important;
7 | cursor: unset !important;
8 | }
9 | }
10 | }
11 | }
12 |
13 | .sla-limit-operation {
14 | align-items: center;
15 | width: 15%;
16 | height: 32px;
17 |
18 | > div {
19 | height: 100%;
20 | }
21 |
22 | svg {
23 | display: flex;
24 | align-items: center;
25 | cursor: pointer;
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/shell/app/modules/apiManagePlatform/pages/api-market/components/export-record.scss:
--------------------------------------------------------------------------------
1 | .export-record-modal {
2 | .ant-modal-close {
3 | .ant-modal-close-x {
4 | height: 48px;
5 | width: 48px;
6 | display: flex;
7 | align-items: center;
8 | justify-content: center;
9 | }
10 | }
11 |
12 | .ant-modal-body {
13 | padding: 16px;
14 | max-height: 80vh;
15 | display: flex;
16 | }
17 |
18 | .ant-modal-header {
19 | padding: 12px 16px;
20 | background-color: $color-default-02;
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/shell/app/modules/apiManagePlatform/pages/api-market/design/api-params-modal.scss:
--------------------------------------------------------------------------------
1 | .api-params-modal {
2 | .schema-params-list {
3 | max-height: 500px;
4 | overflow: auto;
5 | }
6 |
7 | .ant-collapse > .ant-collapse-item {
8 | border-bottom: none;
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/shell/app/modules/apiManagePlatform/pages/api-market/detail/components/api-body/index.scss:
--------------------------------------------------------------------------------
1 | .case-api-body {
2 | .body-type-choosen {
3 | display: flex;
4 | align-items: center;
5 | padding: 4px;
6 | border-bottom: 1px solid $color-border;
7 | }
8 |
9 | .body-value-container {
10 | .body-val-none {
11 | padding: 20px;
12 | text-align: center;
13 | }
14 |
15 | .key-val-item {
16 | &:last-child {
17 | border-bottom: 1px solid $color-border;
18 | }
19 | }
20 | }
21 |
22 | .test-json-editor {
23 | position: relative;
24 |
25 | .json-format-btn {
26 | position: absolute;
27 | top: -36px;
28 | right: 36px;
29 | }
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/shell/app/modules/apiManagePlatform/pages/api-market/detail/components/api-detail.scss:
--------------------------------------------------------------------------------
1 | .apis-detail {
2 | .title {
3 | margin: 0;
4 | padding: 7px 0;
5 | line-height: 24px;
6 | }
7 |
8 | &-item {
9 | margin-bottom: 20px;
10 |
11 | &:last-child {
12 | border: none;
13 | }
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/shell/app/modules/apiManagePlatform/pages/api-market/detail/components/api-view.scss:
--------------------------------------------------------------------------------
1 | .apis-view {
2 | flex-direction: row;
3 | height: 100%;
4 |
5 | .cline-id {
6 | width: 200px;
7 | }
8 |
9 | &-left {
10 | width: 300px;
11 | height: 100%;
12 | padding: 15px;
13 | overflow-y: auto;
14 | background: $white;
15 | }
16 |
17 | &-right {
18 | flex: 1;
19 | height: 100%;
20 | margin-left: 20px;
21 | padding: 15px;
22 | overflow-y: auto;
23 | background: $white;
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/shell/app/modules/apiManagePlatform/pages/api-market/detail/components/test-modal.scss:
--------------------------------------------------------------------------------
1 | .api-test-modal {
2 | &.fullscreen {
3 | height: 100vh;
4 | padding: 0;
5 |
6 | .ant-modal-content {
7 | height: 100%;
8 |
9 | .ant-modal-body {
10 | height: calc(100% - 130px);
11 | overflow: auto;
12 | }
13 | }
14 | }
15 |
16 | .preview {
17 | border: 1px solid $color-border;
18 | border-radius: 3px;
19 |
20 | &-header {
21 | .ant-tabs-bar {
22 | background-color: #f2f2f2;
23 |
24 | .ant-tabs-nav-container {
25 | padding: 0 16px;
26 | }
27 | }
28 | }
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/shell/app/modules/apiManagePlatform/pages/api-market/detail/index.scss:
--------------------------------------------------------------------------------
1 | .api-market-detail-tabs {
2 | margin-bottom: -15px;
3 |
4 | > div {
5 | margin-bottom: 0;
6 | border: none;
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/shell/app/modules/apiManagePlatform/pages/api-market/version/index.scss:
--------------------------------------------------------------------------------
1 | .version-list {
2 | .asset-logo {
3 | svg,
4 | img {
5 | width: 100px;
6 | height: 100px;
7 | }
8 | }
9 |
10 | .content-wrap {
11 | min-height: 500px;
12 |
13 | .left {
14 | width: 300px;
15 | }
16 |
17 | .right {
18 | overflow: auto;
19 | }
20 |
21 | &:before {
22 | content: '';
23 | display: block;
24 | width: 0;
25 | height: 100%;
26 | border-left: 1px solid $color-border;
27 | position: absolute;
28 | top: 0;
29 | left: 300px;
30 | }
31 |
32 | .instance-label,
33 | .instance-name {
34 | line-height: 22px;
35 | }
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/shell/app/modules/apiManagePlatform/pages/client/detail/index.scss:
--------------------------------------------------------------------------------
1 | .api-list {
2 | .asset_name {
3 | width: auto;
4 | max-width: 90%;
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/shell/app/modules/application/common/app-selector.scss:
--------------------------------------------------------------------------------
1 | .head-app-selector {
2 | .load-more-selector {
3 | .results {
4 | padding: 0;
5 | border: 1px solid transparent;
6 |
7 | &:hover {
8 | box-shadow: unset;
9 | }
10 |
11 | .values,
12 | .value-item {
13 | width: 100%;
14 | }
15 | }
16 | }
17 |
18 | .head-app-name {
19 | display: flex;
20 | width: 100%;
21 | .icon {
22 | color: $color-text-icon;
23 | }
24 |
25 | &:hover {
26 | .icon {
27 | color: $color-default;
28 | }
29 | }
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/shell/app/modules/application/common/components/dice-job-node.scss:
--------------------------------------------------------------------------------
1 | .edit-job-container {
2 | .ant-form-item-label label {
3 | color: $color-dark-8;
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/shell/app/modules/application/common/components/goto-commit.scss:
--------------------------------------------------------------------------------
1 | .goto-commit-link {
2 | &.normal {
3 | color: $color-text;
4 | }
5 |
6 | &:hover {
7 | color: $color-primary;
8 |
9 | span {
10 | text-decoration: underline;
11 | }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/shell/app/modules/application/common/components/property-view.scss:
--------------------------------------------------------------------------------
1 | .property-view {
2 | overflow-x: auto;
3 | color: $color-dark-6;
4 | font-size: 14px;
5 | line-height: 22px;
6 | letter-spacing: 0;
7 |
8 | .object-key {
9 | display: block;
10 | color: $color-dark-8;
11 | // font-weight: bold;
12 | font-size: 14px;
13 | line-height: 22px;
14 | letter-spacing: 0;
15 | }
16 |
17 | .object-value {
18 | display: block;
19 | padding-left: 8px;
20 | white-space: nowrap;
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/shell/app/modules/application/common/components/table-drawer.scss:
--------------------------------------------------------------------------------
1 | .group-tag-purple {
2 | background: rgba(26, 54, 221, 0.2);
3 | }
4 |
5 | .group-tag-pink {
6 | background: rgba(240, 7, 44, 0.2);
7 | }
8 |
9 | .group-tag-green {
10 | background: rgba(0, 174, 96, 0.2);
11 | }
12 |
13 | .group-tag-blue {
14 | background: rgba(0, 157, 212, 0.2);
15 | }
16 |
17 | .group-tag-red {
18 | background: rgba(196, 0, 53, 0.2);
19 | }
20 |
21 | .group-tag-orange {
22 | background: rgba(244, 114, 1, 0.2);
23 | }
24 |
25 | .group-tag-purple-2 {
26 | background: rgba(143, 0, 242, 0.2);
27 | }
28 |
29 | .group-tag-green-2 {
30 | background: rgba(111, 194, 0, 0.2);
31 | }
32 |
--------------------------------------------------------------------------------
/shell/app/modules/application/common/components/task-resource-field.scss:
--------------------------------------------------------------------------------
1 | .resource-input-group-title {
2 | display: block;
3 | color: $color-dark-8;
4 | font-weight: bold;
5 | font-size: 14px;
6 | line-height: 22px;
7 | letter-spacing: 0;
8 | }
9 |
10 | .resource-input-group-label {
11 | display: block;
12 | width: auto;
13 | margin-right: 8px;
14 | }
15 |
16 | .resource-input-group-input {
17 | display: block;
18 | width: 100%;
19 | }
20 |
21 | .resource-error {
22 | color: $red;
23 | }
24 |
--------------------------------------------------------------------------------
/shell/app/modules/application/common/yml-editor/pipeline-editor.scss:
--------------------------------------------------------------------------------
1 | .new-yml-editor {
2 | &.app-repo-pipeline {
3 | .yml-svg-container-box {
4 | height: unset !important;
5 | }
6 | }
7 |
8 | &.graphic {
9 | .file-content {
10 | flex: 1;
11 | overflow-x: auto;
12 | overflow-y: hidden;
13 | }
14 | }
15 |
16 | .commit-file-form {
17 | padding: 16px 16px 0 16px;
18 | border-top: 1px solid $color-border;
19 | }
20 | }
21 |
22 | .repo-tree-page.full-page {
23 | .new-yml-editor {
24 | .ant-spin-container {
25 | display: unset;
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/shell/app/modules/application/pages/build-detail/pipeline-log.scss:
--------------------------------------------------------------------------------
1 | .pipeline-log {
2 | .pipeline-log-time {
3 | color: $color-text;
4 |
5 | .pipeline-log-title {
6 | padding: 10px;
7 | border: 1px solid $color-border;
8 | border-radius: $radius;
9 | }
10 | }
11 | }
12 |
13 | .pipeline-log-detail {
14 | height: 100%;
15 | padding: 10px;
16 | overflow: auto;
17 | color: $log-font-color;
18 | background-color: $log-bg-color;
19 | border-radius: $radius-lg;
20 | }
21 |
--------------------------------------------------------------------------------
/shell/app/modules/application/pages/build/data-task-creation.scss:
--------------------------------------------------------------------------------
1 | .data-task-transfer {
2 | width: 760px;
3 |
4 | .ant-transfer-operation {
5 | width: 40px;
6 | padding-left: 6px;
7 | }
8 | }
9 |
10 | .data-task {
11 | .footer {
12 | .iconfont {
13 | vertical-align: baseline;
14 | }
15 |
16 | > span {
17 | color: $color-text-desc;
18 | }
19 | }
20 |
21 | .image-txt-container {
22 | .tail {
23 | display: inline-block;
24 | width: calc(100% - 60px);
25 | direction: rtl;
26 | vertical-align: text-bottom;
27 | }
28 |
29 | .hack-safari {
30 | direction: ltr;
31 | }
32 |
33 | .head {
34 | display: inline-block;
35 | overflow: hidden;
36 | text-align: right;
37 | vertical-align: text-bottom;
38 | }
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/shell/app/modules/application/pages/data-model/index.scss:
--------------------------------------------------------------------------------
1 | .flow-container {
2 | position: relative;
3 | width: 100%;
4 | height: 100%;
5 | background-repeat: repeat;
6 | background-size: contain;
7 | border: 1px solid $color-border;
8 | border-radius: $radius;
9 | }
10 |
--------------------------------------------------------------------------------
/shell/app/modules/application/pages/obsoleted-pipeline/run-detail/build-log.scss:
--------------------------------------------------------------------------------
1 | .log-content {
2 | height: 100%;
3 |
4 | .ant-tabs-content {
5 | height: 100%;
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/shell/app/modules/application/pages/obsoleted-pipeline/run-detail/pipeline-log.scss:
--------------------------------------------------------------------------------
1 | .pipeline-log {
2 | .pipeline-log-time {
3 | color: $color-text;
4 |
5 | .pipeline-log-title {
6 | padding: 10px;
7 | border: 1px solid $color-border;
8 | border-radius: $radius;
9 | }
10 | }
11 | }
12 |
13 | .pipeline-log-detail {
14 | height: 100%;
15 | padding: 10px;
16 | overflow: auto;
17 | color: $log-font-color;
18 | background-color: $log-bg-color;
19 | border-radius: $radius-lg;
20 | }
21 |
--------------------------------------------------------------------------------
/shell/app/modules/application/pages/repo/components/branch-compare.scss:
--------------------------------------------------------------------------------
1 | .repo-branch-compare {
2 | display: flex;
3 | align-items: center;
4 |
5 | .compare-button {
6 | margin-left: $p12;
7 | }
8 |
9 | .switch-branch {
10 | display: inline-flex;
11 | justify-content: center;
12 | align-items: center;
13 | width: 36px;
14 | height: 34px;
15 | margin: 0 $p12;
16 | background-color: $white;
17 | border: 1px solid $color-border;
18 | border-radius: $radius;
19 | cursor: pointer;
20 |
21 | i {
22 | color: $color-dark-4;
23 | }
24 |
25 | &:hover {
26 | border-color: $color-active;
27 |
28 | i {
29 | color: $color-active;
30 | }
31 | }
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/shell/app/modules/application/pages/repo/components/repo-editor.scss:
--------------------------------------------------------------------------------
1 | .repo-file-editor {
2 | .commit-file-form {
3 | padding: 16px;
4 | border-top: 1px solid $color-border;
5 |
6 | .ant-form-item:last-child {
7 | margin-bottom: 0;
8 | }
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/shell/app/modules/application/pages/repo/components/repo-mr-table.scss:
--------------------------------------------------------------------------------
1 | .repo-mr-list {
2 | margin-bottom: 0;
3 |
4 | .mr-item {
5 | display: grid;
6 | justify-content: space-between;
7 | align-content: space-between;
8 | height: 96px;
9 | padding: 16px 12px;
10 | border-bottom: 1px solid $color-border;
11 | grid-template-columns: auto auto;
12 |
13 | .title {
14 | font-size: 16px;
15 | }
16 |
17 | .sub-title {
18 | color: $color-text-sub;
19 | }
20 |
21 | .desc {
22 | color: $color-text-desc;
23 | text-align: right;
24 | }
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/shell/app/modules/application/pages/repo/components/start-tip.scss:
--------------------------------------------------------------------------------
1 | .repo-start-tip {
2 | position: relative;
3 |
4 | .sub-title {
5 | margin: $p16 0 6px;
6 |
7 | > span {
8 | line-height: 24px;
9 | }
10 | }
11 |
12 | i.icon-xjym {
13 | margin-right: 0;
14 | margin-left: $p12;
15 | color: $color-text-desc;
16 | font-size: 20px;
17 | cursor: pointer;
18 |
19 | &:hover {
20 | color: $color-active;
21 | }
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/shell/app/modules/application/pages/repo/repo-branch.scss:
--------------------------------------------------------------------------------
1 | .repo-branch-search-input {
2 | width: 260px;
3 | }
4 | .repo-branch-list {
5 | .branch-item {
6 | padding: 16px 12px;
7 | color: $color-text;
8 | border-bottom: 1px solid $color-border;
9 |
10 | &-left {
11 | flex: 1;
12 | margin-right: 12px;
13 | overflow: hidden;
14 | line-height: 24px;
15 | }
16 |
17 | &-commit {
18 | max-width: calc(100% - 260px);
19 | }
20 |
21 | .dice-avatar-wrap .nowrap {
22 | max-width: 100px;
23 | }
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/shell/app/modules/application/pages/repo/repo-mr-creation.scss:
--------------------------------------------------------------------------------
1 | .mr-creation {
2 | margin-bottom: 50px;
3 |
4 | .mr-compare-diff {
5 | margin-top: 20px;
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/shell/app/modules/application/pages/repo/repo-tag.scss:
--------------------------------------------------------------------------------
1 | .repo-tag-search-input {
2 | width: 260px;
3 | }
4 | .repo-tag-list {
5 | .branch-item {
6 | padding: $p16;
7 | color: $color-text;
8 | border-bottom: 1px solid $color-border;
9 |
10 | &-left {
11 | flex: 1;
12 | margin-right: $p8;
13 | overflow: hidden;
14 | line-height: $p24;
15 | }
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/shell/app/modules/application/pages/settings/components/app-merge-description.scss:
--------------------------------------------------------------------------------
1 | .merge-des {
2 | button {
3 | margin-bottom: $p16;
4 | }
5 |
6 | .des-template {
7 | .title {
8 | color: $color-dark-4;
9 | line-height: $base-line-height;
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/shell/app/modules/application/pages/settings/components/app-notify/index.scss:
--------------------------------------------------------------------------------
1 | .notify-group-manage {
2 | position: relative;
3 |
4 | .notify-group-action {
5 | position: absolute;
6 | top: -52px;
7 | right: 12px;
8 | }
9 |
10 | .notify-group-item {
11 | display: flex;
12 |
13 | .item-left {
14 | flex: 1;
15 |
16 | .group-info {
17 | justify-content: start;
18 | }
19 |
20 | .group-address {
21 | word-wrap: break-word;
22 | word-break: break-all;
23 | }
24 | }
25 |
26 | .item-right {
27 | width: 250px;
28 | }
29 | }
30 | }
31 |
32 | .notify-test-dingtalk {
33 | position: absolute;
34 | text-align: right;
35 | right: 0;
36 | bottom: -26px;
37 | font-weight: bold;
38 | color: $color-primary;
39 | cursor: pointer;
40 | }
41 |
--------------------------------------------------------------------------------
/shell/app/modules/cmp/common/addon-detail/detail.scss:
--------------------------------------------------------------------------------
1 | .addon-detail-page {
2 | .info-grid {
3 | display: grid;
4 | grid-template-columns: 50% 50%;
5 | row-gap: 4px;
6 | }
7 |
8 | .title {
9 | display: inline-block;
10 | margin-bottom: 8px;
11 | font-size: 16px;
12 | line-height: 38px;
13 | }
14 |
15 | .param-k {
16 | margin-bottom: $p4;
17 | color: $color-text-desc;
18 | line-height: 22px;
19 | }
20 |
21 | .param-v {
22 | margin-bottom: $p12;
23 | padding-right: $p8;
24 | color: $color-text;
25 | line-height: $p32;
26 | }
27 |
28 | .copy-all {
29 | margin-right: $p4;
30 | color: $color-primary;
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/shell/app/modules/cmp/common/alarm-record/detail.scss:
--------------------------------------------------------------------------------
1 | .alarm-record-detail {
2 | .content-block {
3 | max-height: 400px;
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/shell/app/modules/cmp/common/components/instance-operation.scss:
--------------------------------------------------------------------------------
1 | .instance-ops {
2 | .instance-op-icon {
3 | position: relative;
4 | margin-right: 12px;
5 | font-size: 20px;
6 |
7 | &:hover {
8 | color: $color-primary;
9 | cursor: pointer;
10 | }
11 |
12 | &:after {
13 | content: '';
14 | position: absolute;
15 | top: 2px;
16 | right: -6px;
17 | width: 1px;
18 | height: 14px;
19 | background: $color-dark-1;
20 | }
21 |
22 | &:last-child {
23 | margin-right: 0;
24 |
25 | &::after {
26 | display: none;
27 | }
28 | }
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/shell/app/modules/cmp/common/custom-alarm/index.scss:
--------------------------------------------------------------------------------
1 | .custom-alarm-form {
2 | .title {
3 | margin-bottom: 10px;
4 | margin-left: 20px;
5 | padding-bottom: 5px;
6 | border-bottom: 1px solid $color-border;
7 | }
8 | }
9 |
10 | .custom-alarm-previewer {
11 | width: 400px;
12 | }
13 | // todo temporarily,When the overflow style of the global td is removed, remove the style
14 | .filter-rule-table,
15 | .field-rule-table {
16 | td {
17 | overflow: visible;
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/shell/app/modules/cmp/common/custom-dashboard/import-export.scss:
--------------------------------------------------------------------------------
1 | .import-export-modal {
2 | .ant-modal-header {
3 | padding: 0;
4 | }
5 |
6 | .ant-modal-body {
7 | padding: 0 16px;
8 | max-height: 80vh;
9 | display: flex;
10 | }
11 |
12 | .custom-dashboard-import-upload {
13 | .ant-upload-list-item:hover .ant-upload-list-item-info {
14 | background-color: transparent;
15 | }
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/shell/app/modules/cmp/pages/alarm-report/report-records/index.scss:
--------------------------------------------------------------------------------
1 | .task-report-records {
2 | height: 100%;
3 |
4 | .search-records {
5 | position: relative;
6 | width: 260px;
7 |
8 | &::after {
9 | position: absolute;
10 | top: -16px;
11 | right: 0;
12 | bottom: -16px;
13 | display: block;
14 | height: 100%;
15 | border-right: thin solid rgba(0, 0, 0, 0.1);
16 | content: '';
17 | }
18 |
19 | .active {
20 | color: $color-active;
21 | background: $color-active-bg;
22 | }
23 | }
24 |
25 | .bi-view-wrapper {
26 | padding: 30px 20px;
27 |
28 | .bi-chart-header {
29 | position: absolute;
30 | top: 0;
31 | }
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/shell/app/modules/cmp/pages/cluster-container/cluster-terminal.scss:
--------------------------------------------------------------------------------
1 | .k8s-cluster-terminal-container {
2 | height: 100%;
3 | padding: 20px 0 10px 20px;
4 | overflow: hidden;
5 | background-color: $terminal-bgcolor;
6 | border-radius: 4px;
7 |
8 | .terminal-info {
9 | color: $platinum;
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/shell/app/modules/cmp/pages/cluster-manage/add-cluster-forms/cluster-form.scss:
--------------------------------------------------------------------------------
1 | .cluster-form {
2 | .more {
3 | &-btn {
4 | margin-left: 0.5rem;
5 | font-weight: bold;
6 | }
7 |
8 | &-form {
9 | margin-top: 0.9375rem;
10 | padding: 0.9375rem;
11 | border-top: 1px solid $color-border;
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/shell/app/modules/cmp/pages/cluster-manage/cluster-detail.scss:
--------------------------------------------------------------------------------
1 | .cluster-detail {
2 | min-width: 700px;
3 | }
4 |
5 | .cluster-cloud-detail {
6 | .ecs-item-row {
7 | .ant-table-row-expand-icon-cell {
8 | .ant-table-row-expand-icon {
9 | visibility: hidden !important;
10 | }
11 | }
12 |
13 | + tr {
14 | &.ant-table-expanded-row {
15 | display: none;
16 | }
17 | }
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/shell/app/modules/cmp/pages/cluster-manage/deploy-cluster-forms/edit-table.scss:
--------------------------------------------------------------------------------
1 | .node-edit-table {
2 | .edit-operation {
3 | width: 65px;
4 | text-align: center;
5 | }
6 |
7 | .node-type {
8 | width: 120px;
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/shell/app/modules/cmp/pages/cluster-manage/deploy-cluster-log.scss:
--------------------------------------------------------------------------------
1 | .deploy-cluster-log {
2 | position: relative;
3 | height: 100%;
4 | padding: 10px 10px 10px 25px;
5 | overflow-y: auto;
6 | @include thin-scrollbar();
7 | color: #bbbbbb;
8 | background-color: #3c444f;
9 | border-radius: 6px;
10 |
11 | pre {
12 | overflow: auto;
13 | @include thin-scrollbar();
14 |
15 | &::-webkit-scrollbar {
16 | height: 3px;
17 | }
18 | color: #c2c1d0;
19 | font-size: 12px;
20 | font-family: Menlo, PingFangSC-Regular, Consolas, Courier, monospace;
21 | line-height: 1.7em;
22 | -webkit-font-smoothing: antialiased;
23 | }
24 |
25 | .log-state {
26 | position: absolute;
27 | left: 4px;
28 | font-size: 18px;
29 |
30 | &.bottom {
31 | bottom: 15px;
32 | }
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/shell/app/modules/cmp/pages/middleware-dashboard/modal.scss:
--------------------------------------------------------------------------------
1 | .middleware-op-modal {
2 | > div {
3 | margin-bottom: 4px;
4 | }
5 |
6 | &.scale {
7 | .ant-row {
8 | margin-bottom: 4px;
9 | }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/shell/app/modules/cmp/pages/middleware-detail/index.scss:
--------------------------------------------------------------------------------
1 | .text-view {
2 | padding: 4px 11px;
3 | border: 1px solid $color-border;
4 | border-radius: 4px;
5 |
6 | p {
7 | margin-bottom: 0;
8 | line-height: 2em;
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/shell/app/modules/cmp/pages/networks/common/components/cidr-input.scss:
--------------------------------------------------------------------------------
1 | .cidr-input-form {
2 | display: flex;
3 | align-items: center;
4 |
5 | .ant-input,
6 | .ant-select,
7 | .error-check-item,
8 | .ant-form-explain {
9 | width: 80px;
10 | }
11 |
12 | .ant-form-item {
13 | margin-bottom: 0;
14 | }
15 |
16 | > .split {
17 | margin-right: 2px;
18 | margin-left: 2px;
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/shell/app/modules/cmp/pages/networks/vpc/index.scss:
--------------------------------------------------------------------------------
1 | .cloud-resource-tags-container {
2 | position: relative;
3 | height: 25px;
4 |
5 | .cloud-resource-tags-box {
6 | white-space: nowrap;
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/shell/app/modules/cmp/pages/pod-detail/index.scss:
--------------------------------------------------------------------------------
1 | .pod-detail {
2 | .title {
3 | display: inline-block;
4 | margin-bottom: 8px;
5 | font-size: 16px;
6 | line-height: 38px;
7 | }
8 |
9 | .info-grid {
10 | display: grid;
11 | grid-template-columns: 50% 50%;
12 | row-gap: 4px;
13 | }
14 |
15 | .param-k {
16 | margin-bottom: 4px;
17 | color: $color-text-desc;
18 | line-height: 22px;
19 | }
20 |
21 | .param-v {
22 | margin-bottom: 12px;
23 | padding-right: 8px;
24 | color: $color-text;
25 | line-height: 32px;
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/shell/app/modules/cmp/pages/tasks/job.tsx:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2021 Terminus, Inc.
2 | //
3 | // This program is free software: you can use, redistribute, and/or modify
4 | // it under the terms of the GNU Affero General Public License, version 3
5 | // or later ("AGPL"), as published by the Free Software Foundation.
6 | //
7 | // This program is distributed in the hope that it will be useful, but WITHOUT
8 | // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
9 | // FITNESS FOR A PARTICULAR PURPOSE.
10 | //
11 | // You should have received a copy of the GNU Affero General Public License
12 | // along with this program. If not, see .
13 |
14 | import React from 'react';
15 | import TaskList from './task-list';
16 |
17 | const Job = () => ;
18 | export default Job;
19 |
--------------------------------------------------------------------------------
/shell/app/modules/dcos/common/containers/terminal.scss:
--------------------------------------------------------------------------------
1 | .service-terminal {
2 | height: 100%;
3 | padding: 20px 0 10px 20px;
4 | overflow: hidden;
5 | background-color: $terminal-bgcolor;
6 | border-radius: 4px;
7 |
8 | .terminal-info {
9 | color: $platinum;
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/shell/app/modules/dcos/common/custom-label.scss:
--------------------------------------------------------------------------------
1 | .custom-label-comp {
2 | line-height: 28px;
3 |
4 | .custom-label-input {
5 | width: 100px;
6 | height: 24px;
7 | margin: 0 4px;
8 | }
9 |
10 | .custom-label-add {
11 | height: 24px;
12 | margin: 0 4px;
13 | padding: 0 10px;
14 | font-size: 14px;
15 | line-height: 22px;
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/shell/app/modules/dcos/common/label-selector.scss:
--------------------------------------------------------------------------------
1 | .label-selector-container {
2 | line-height: 28px;
3 |
4 | .label-group {
5 | margin-top: 4px;
6 | margin-bottom: 8px;
7 |
8 | .label-group-name {
9 | color: $color-text-sub;
10 | font-size: 14px;
11 | }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/shell/app/modules/dcos/pages/cluster-dashboard/instance-list.scss:
--------------------------------------------------------------------------------
1 | .item-image {
2 | .image-name {
3 | position: relative;
4 | left: 0;
5 | display: block;
6 | width: 100%;
7 | height: 28px;
8 | line-height: 28px;
9 |
10 | .image-txt-container {
11 | position: absolute;
12 | width: 100%;
13 | height: 100%;
14 |
15 | .tail {
16 | display: inline-block;
17 | width: calc(100% - 45px);
18 | direction: rtl;
19 | }
20 |
21 | .hack-safari {
22 | direction: ltr;
23 | }
24 |
25 | .head {
26 | display: inline-block;
27 | overflow: hidden;
28 | text-align: right;
29 | }
30 | }
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/shell/app/modules/dcos/pages/cluster-dashboard/machine-detail.scss:
--------------------------------------------------------------------------------
1 | .machine-detail-info-item {
2 | .label {
3 | color: $color-text-desc;
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/shell/app/modules/dcos/pages/cluster-dashboard/resources-summary.scss:
--------------------------------------------------------------------------------
1 | .resource-summary-op-icon {
2 | cursor: pointer;
3 | color: $color-dark-4;
4 |
5 | &:hover {
6 | background-color: $color-bg-gray;
7 | color: $color-dark-8;
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/shell/app/modules/dcos/pages/service-manager/index.scss:
--------------------------------------------------------------------------------
1 | .path-breadcrumb {
2 | display: inline-block;
3 | }
4 |
5 | .to-json {
6 | display: inline-block;
7 | float: right;
8 | }
9 |
10 | .manage-tabs-bar {
11 | height: 100%;
12 |
13 | .ant-tabs-content,
14 | .ant-tabs-tabpane {
15 | height: 100%;
16 | overflow: auto;
17 | }
18 | }
19 |
20 | .manager-link-title {
21 | .title-icon {
22 | width: 16px;
23 | height: 16px;
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/shell/app/modules/dcos/pages/service-manager/rds-manager/account-form/change-permission-form.scss:
--------------------------------------------------------------------------------
1 | .permission-transfer {
2 | & > .ant-transfer-list {
3 | &:nth-of-type(1) .permission-select {
4 | display: none;
5 | }
6 |
7 | &:last-of-type {
8 | width: calc(100% - 230px);
9 | }
10 | }
11 |
12 | .ant-transfer-list-content-item {
13 | display: inline-block;
14 | overflow: auto;
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/shell/app/modules/dop/locales/en.json:
--------------------------------------------------------------------------------
1 | {
2 | "addon info": "addon info",
3 | "addon setting": "addon setting",
4 | "number of application": "number of application",
5 | "Approval Request": "Approval Request",
6 | "Console": "Console",
7 | "deployment request": "deployment request",
8 | "JVM analysis": "JVM analysis",
9 | "Approved": "Approved",
10 | "Initiated by Me": "Initiated by Me",
11 | "search by owned project": "search by owned project",
12 | "Search by project name": "Search by project name"
13 | }
14 |
--------------------------------------------------------------------------------
/shell/app/modules/dop/locales/zh.json:
--------------------------------------------------------------------------------
1 | {
2 | "addon info": "服务信息",
3 | "addon setting": "服务设置",
4 | "number of application": "应用数",
5 | "Approval Request": "审批请求",
6 | "Console": "控制台",
7 | "deployment request": "部署请求",
8 | "JVM analysis": "JVM 分析",
9 | "Approved": "我审批的",
10 | "Initiated by Me": "我发起的",
11 | "search by owned project": "通过所在项目搜索",
12 | "Search by project name": "通过项目名称搜索"
13 | }
14 |
--------------------------------------------------------------------------------
/shell/app/modules/extra/entry.js:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2021 Terminus, Inc.
2 | //
3 | // This program is free software: you can use, redistribute, and/or modify
4 | // it under the terms of the GNU Affero General Public License, version 3
5 | // or later ("AGPL"), as published by the Free Software Foundation.
6 | //
7 | // This program is distributed in the hope that it will be useful, but WITHOUT
8 | // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
9 | // FITNESS FOR A PARTICULAR PURPOSE.
10 | //
11 | // You should have received a copy of the GNU Affero General Public License
12 | // along with this program. If not, see .
13 |
14 | const entry = (registerModule) => {
15 | // register some modules here
16 | };
17 |
18 | export default [entry];
19 |
--------------------------------------------------------------------------------
/shell/app/modules/gallery/pages/detail.scss:
--------------------------------------------------------------------------------
1 | .gallery-detail {
2 | .gallery-detail-download {
3 | > button {
4 | &:first-child {
5 | border-radius: 20px 0 0 20px !important;
6 | border-right-color: $white !important;
7 | }
8 | &:last-child {
9 | border-left-color: $white !important;
10 | border-radius: 0 20px 20px 0 !important;
11 | }
12 | }
13 | }
14 | }
15 |
16 | .version-list-menu {
17 | height: calc(100vh - 250px);
18 | }
19 |
--------------------------------------------------------------------------------
/shell/app/modules/gallery/pages/index.scss:
--------------------------------------------------------------------------------
1 | .gallery-lists {
2 | position: relative;
3 |
4 | .gallery-service {
5 | position: relative;
6 | .info-container {
7 | position: relative;
8 | &::after {
9 | height: 1px;
10 | width: 100%;
11 | position: absolute;
12 | bottom: -16px;
13 | content: '';
14 | background-color: $color-border;
15 | }
16 | }
17 | }
18 | &::after {
19 | position: absolute;
20 | width: 100%;
21 | height: 2px;
22 | content: '';
23 | bottom: 0;
24 | background-color: $white;
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/shell/app/modules/msp/alarm-manage/notify-group/index.scss:
--------------------------------------------------------------------------------
1 | .msp-notify-group {
2 | .notify-group-manage {
3 | .notify-group-action {
4 | @extend %top-button-group;
5 | }
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/shell/app/modules/msp/env-overview/service-list/pages/index.scss:
--------------------------------------------------------------------------------
1 | .status-point {
2 | display: inline-block;
3 | width: 8px;
4 | height: 8px;
5 | border-radius: 100%;
6 |
7 | &.grey {
8 | background-color: $gray;
9 | }
10 |
11 | &.success,
12 | &.green {
13 | background-color: $green;
14 | }
15 |
16 | &.danger,
17 | &.red {
18 | background-color: $red;
19 | }
20 | }
21 | .service-overview {
22 | &-topology {
23 | background: $color-default;
24 |
25 | &.fixed-height {
26 | height: 420px;
27 | }
28 |
29 | .topology-wrapper {
30 | height: 372px;
31 | }
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/shell/app/modules/msp/env-overview/service-list/pages/service-list.scss:
--------------------------------------------------------------------------------
1 | .bg-header {
2 | background-color: $color-table-head-bg;
3 | }
4 |
5 | .language-wrapper {
6 | background-color: $color-default-04;
7 | }
8 |
--------------------------------------------------------------------------------
/shell/app/modules/msp/env-overview/service-list/pages/service-name-select.scss:
--------------------------------------------------------------------------------
1 | .service-name-select {
2 | .load-more-selector {
3 | .results {
4 | padding: 0;
5 | border: 1px solid transparent;
6 |
7 | &:hover {
8 | box-shadow: unset;
9 | }
10 |
11 | .values,
12 | .value-item {
13 | width: 100%;
14 | }
15 | }
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/shell/app/modules/msp/env-overview/service-list/pages/transaction.scss:
--------------------------------------------------------------------------------
1 | .transaction-detail-drawer {
2 | .ant-drawer-body {
3 | padding: 0;
4 | }
5 | }
6 |
7 | .transaction-analysis {
8 | .contractive-filter-item-wrap {
9 | .ant-input-affix-wrapper {
10 | width: 240px !important;
11 | }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/shell/app/modules/msp/env-overview/topology/pages/topology/component/nodes/common-node.scss:
--------------------------------------------------------------------------------
1 | .topology-node-popover {
2 | width: 330px;
3 |
4 | .ant-popover-content {
5 | .ant-popover-arrow {
6 | display: none;
7 | }
8 |
9 | .ant-popover-inner {
10 | background: #443b59;
11 |
12 | .ant-popover-title {
13 | border-width: 0;
14 | padding: 0;
15 | }
16 |
17 | &-content {
18 | padding-top: 8px;
19 |
20 | .metric-detail {
21 | > div {
22 | background: rgba($white, 0.04);
23 | }
24 | }
25 | }
26 | }
27 | }
28 | }
29 |
30 | .node-handle {
31 | &-start,
32 | &-end {
33 | opacity: 0;
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/shell/app/modules/msp/env-overview/topology/pages/topology/component/progress/index.scss:
--------------------------------------------------------------------------------
1 | .hexagon-progress,
2 | .circular-progress {
3 | .path {
4 | transition: all 0.3s ease 0s;
5 | }
6 |
7 | .fill-path {
8 | transform: translate(3px, 4px) scale(0.95);
9 | }
10 | }
11 |
12 | .shadow-wrapper {
13 | z-index: -1;
14 |
15 | .shadow {
16 | background: $color-default;
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/shell/app/modules/msp/env-overview/topology/pages/topology/component/topology-overview.scss:
--------------------------------------------------------------------------------
1 | .topology-overview {
2 | width: 280px;
3 | height: 100%;
4 | border-right: 1px solid rgba($white, 0.1);
5 | transition: all 0.3s ease-in-out;
6 |
7 | .content {
8 | overflow: hidden;
9 |
10 | > div {
11 | width: 280px;
12 | }
13 | }
14 |
15 | .card-item {
16 | width: 120px;
17 | height: 76px;
18 | background-color: rgba($white, 0.04);
19 | }
20 |
21 | &.collapse {
22 | width: 8px;
23 |
24 | .content {
25 | opacity: 0;
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/shell/app/modules/msp/env-setting/configuration/type-select.scss:
--------------------------------------------------------------------------------
1 | .msp-conf-type-select {
2 | .conf-item {
3 | width: 220px;
4 | height: 100px;
5 | border: 1px solid rgba(7, 10, 26, 0.1);
6 | border-radius: 6px;
7 | cursor: pointer;
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/shell/app/modules/msp/monitor/api-insight/common/components/filterNav.scss:
--------------------------------------------------------------------------------
1 | .api-monitor-filter-nav {
2 | .app-service-select {
3 | display: flex;
4 |
5 | > div {
6 | flex: 1;
7 | }
8 | }
9 |
10 | .filter-row {
11 | justify-content: start;
12 | }
13 |
14 | .search-container {
15 | flex: 1;
16 |
17 | .search-fields {
18 | flex: 1;
19 | }
20 | }
21 |
22 | .monitor-time-selector-inline {
23 | margin-left: 0;
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/shell/app/modules/msp/monitor/api-insight/pages/config.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2021 Terminus, Inc.
2 | //
3 | // This program is free software: you can use, redistribute, and/or modify
4 | // it under the terms of the GNU Affero General Public License, version 3
5 | // or later ("AGPL"), as published by the Free Software Foundation.
6 | //
7 | // This program is distributed in the hope that it will be useful, but WITHOUT
8 | // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
9 | // FITNESS FOR A PARTICULAR PURPOSE.
10 | //
11 | // You should have received a copy of the GNU Affero General Public License
12 | // along with this program. If not, see .
13 |
14 | export const gatewayApiPrefix = '/api/gateway/openapi/metrics/charts';
15 |
--------------------------------------------------------------------------------
/shell/app/modules/msp/monitor/browser-insight/common/components/sort-list/sort-tab.scss:
--------------------------------------------------------------------------------
1 | .sort-tab {
2 | margin-bottom: 10px;
3 | }
4 |
--------------------------------------------------------------------------------
/shell/app/modules/msp/monitor/browser-insight/common/components/sort-list/sub-tab.scss:
--------------------------------------------------------------------------------
1 | .sub-tab {
2 | margin-bottom: 20px;
3 | }
4 |
--------------------------------------------------------------------------------
/shell/app/modules/msp/monitor/browser-insight/pages/domain/domain.scss:
--------------------------------------------------------------------------------
1 | .bi-domain-charts {
2 | table {
3 | table-layout: auto;
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/shell/app/modules/msp/monitor/browser-insight/pages/page/page.scss:
--------------------------------------------------------------------------------
1 | .page-chart-order {
2 | display: block;
3 | width: 300px;
4 | height: 150px;
5 | padding: 0 20px;
6 | background-color: $lightnavy;
7 | border-radius: 6px;
8 |
9 | .order-style,
10 | .show-all {
11 | height: 40px;
12 | line-height: 40px;
13 | }
14 |
15 | .show-all {
16 | display: block;
17 | width: 260px;
18 | margin-top: 10px;
19 | text-align: center;
20 | background-color: $gray;
21 | border-radius: 6px;
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/shell/app/modules/msp/monitor/browser-insight/pages/position/position.scss:
--------------------------------------------------------------------------------
1 | .position-bar-chart {
2 | margin-bottom: 0 !important;
3 | border-width: 0 !important;
4 | }
5 |
6 | .monitor-comparative-container {
7 | padding: 10px 15px;
8 |
9 | .monitor-comparative-tip {
10 | margin-bottom: 10px;
11 | }
12 | }
13 |
14 | .position-bars {
15 | margin-bottom: 20px;
16 | background-color: $white;
17 | border-radius: 4px;
18 |
19 | .sort-tab {
20 | margin-bottom: 0;
21 | padding-top: 15px;
22 | padding-left: 15px;
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/shell/app/modules/msp/monitor/error-insight/pages/errors/error-filters.scss:
--------------------------------------------------------------------------------
1 | .error-filters {
2 | .env-selector {
3 | width: 7rem;
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/shell/app/modules/msp/monitor/error-insight/pages/errors/error-overview.scss:
--------------------------------------------------------------------------------
1 | .error-overview {
2 | .no-more {
3 | color: $lightgray;
4 | text-align: center;
5 | }
6 |
7 | .page-total {
8 | margin-bottom: 10px;
9 | padding: 10px;
10 | font-size: 1.125rem;
11 | border-bottom: 1px solid $lightnavy;
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/shell/app/modules/msp/monitor/gateway-ingress/common/components/domain-selector.scss:
--------------------------------------------------------------------------------
1 | .gi-domain-selector {
2 | width: 200px;
3 | }
4 |
--------------------------------------------------------------------------------
/shell/app/modules/msp/monitor/gateway-ingress/common/components/http-status-input.scss:
--------------------------------------------------------------------------------
1 | .gi-http-status-input {
2 | width: 150px;
3 | }
4 |
--------------------------------------------------------------------------------
/shell/app/modules/msp/monitor/gateway-ingress/common/components/statistics-selector.scss:
--------------------------------------------------------------------------------
1 | .gi-statistics-selector {
2 | width: 90px;
3 | }
4 |
--------------------------------------------------------------------------------
/shell/app/modules/msp/monitor/gateway-ingress/common/components/tab-right.scss:
--------------------------------------------------------------------------------
1 | .gi-top-nav-right {
2 | &.filter-box {
3 | .flex-box {
4 | display: inline-flex;
5 | }
6 | }
7 |
8 | .condition-selector {
9 | width: 200px;
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/shell/app/modules/msp/monitor/monitor-common/components/resource-usage/resource-usage-charts.scss:
--------------------------------------------------------------------------------
1 | .unit-detail {
2 | padding-top: 8px;
3 |
4 | .top-nav-right {
5 | margin-bottom: 20px;
6 | overflow: hidden;
7 |
8 | .time-range-selector {
9 | margin-left: 0;
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/shell/app/modules/msp/monitor/monitor-common/components/sort-list/sort-tab.scss:
--------------------------------------------------------------------------------
1 | .sort-tab {
2 | margin-bottom: 10px;
3 | }
4 |
--------------------------------------------------------------------------------
/shell/app/modules/msp/monitor/monitor-common/components/sort-list/sub-tab.scss:
--------------------------------------------------------------------------------
1 | .sub-tab {
2 | margin-bottom: 20px;
3 | }
4 |
--------------------------------------------------------------------------------
/shell/app/modules/msp/monitor/monitor-common/components/top-nav-right.scss:
--------------------------------------------------------------------------------
1 | .top-nav-right {
2 | .condition-selector {
3 | width: 200px;
4 | }
5 |
6 | .time-range-selector {
7 | margin-left: 20px;
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/shell/app/modules/msp/monitor/status-insight/pages/status/add-modal.scss:
--------------------------------------------------------------------------------
1 | .group-regs {
2 | .op-icon-add {
3 | position: absolute;
4 | right: 50%;
5 | margin-top: -8px;
6 | font-size: 20px;
7 |
8 | &:hover {
9 | color: $color-primary;
10 | cursor: pointer;
11 | }
12 | }
13 |
14 | .reg-item {
15 | display: flex;
16 |
17 | .input-form-item {
18 | width: 90%;
19 | }
20 |
21 | .op-icon-drop {
22 | margin: 6px 0 0 6px;
23 | font-size: 20px;
24 |
25 | &:hover {
26 | color: $color-primary;
27 | cursor: pointer;
28 | }
29 | }
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/shell/app/modules/msp/monitor/status-insight/pages/status/status.scss:
--------------------------------------------------------------------------------
1 | .project-status-page {
2 |
3 | .reason-analysis-span {
4 | color: $color-primary;
5 | }
6 |
7 | .status-list {
8 | margin-top: 5px;
9 |
10 | li {
11 | float: left;
12 | width: 1px;
13 | height: 12px;
14 | margin-right: 1px;
15 |
16 | &.grey {
17 | background: $platinum;
18 | }
19 |
20 | &.green {
21 | background: $green;
22 | }
23 |
24 | &.red {
25 | background: $red;
26 | }
27 | }
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/shell/app/modules/msp/monitor/trace-insight/pages/trace-detail/index.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2021 Terminus, Inc.
2 | //
3 | // This program is free software: you can use, redistribute, and/or modify
4 | // it under the terms of the GNU Affero General Public License, version 3
5 | // or later ("AGPL"), as published by the Free Software Foundation.
6 | //
7 | // This program is distributed in the hope that it will be useful, but WITHOUT
8 | // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
9 | // FITNESS FOR A PARTICULAR PURPOSE.
10 | //
11 | // You should have received a copy of the GNU Affero General Public License
12 | // along with this program. If not, see .
13 |
14 | import TraceDetail from './containers/trace-detail';
15 |
16 | export default TraceDetail;
17 |
--------------------------------------------------------------------------------
/shell/app/modules/msp/monitor/trace-insight/pages/trace-querier/trace-common-panel.scss:
--------------------------------------------------------------------------------
1 | .trace-common-panel {
2 | @extend %shallow-shadow;
3 | border-radius: $radius;
4 |
5 | .trace-common-panel-title {
6 | margin: 0;
7 | color: $color-text;
8 | font-size: 14px;
9 | }
10 |
11 | .card-body {
12 | position: relative;
13 | min-height: 200px;
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/shell/app/modules/msp/monitor/trace-insight/pages/trace-querier/trace-search-detail.scss:
--------------------------------------------------------------------------------
1 | .trace-search-detail {
2 | position: fixed;
3 | top: 0;
4 | left: 48px;
5 | width: calc(100% - 48px);
6 | height: 100%;
7 | overflow: auto;
8 | background: $white;
9 | z-index: 1001;
10 | }
11 |
--------------------------------------------------------------------------------
/shell/app/modules/org/common/card/index.scss:
--------------------------------------------------------------------------------
1 | .erda-card {
2 | .erda-card-header {
3 | line-height: 1;
4 | font-weight: bold;
5 | background-color: $color-table-head-bg;
6 | }
7 |
8 | .erda-card-body {
9 | color: $color-text-desc;
10 | background-color: $white;
11 |
12 | .label,
13 | .erda-panel-label {
14 | color: #302647;
15 | }
16 |
17 | .desc,
18 | .erda-panel-value {
19 | font-size: 12px;
20 | }
21 |
22 | .erda-panel-item,
23 | .erda-panel-value {
24 | margin-bottom: 0;
25 | }
26 |
27 | .erda-panel-list {
28 | padding: 1.5rem;
29 | margin: 0.5rem 0;
30 | background-color: $color-table-bg-hover;
31 | }
32 |
33 | .erda-panel {
34 | margin-bottom: 0;
35 | }
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/shell/app/modules/org/common/compact-select/index.scss:
--------------------------------------------------------------------------------
1 | .compact-select {
2 | display: flex;
3 |
4 | .select-addon-before {
5 | display: inline-flex;
6 | padding: 4px 11px;
7 | color: $color-text-sub;
8 | background-color: $color-dark-04;
9 | border: 1px solid $color-border;
10 | border-right: none;
11 | border-top-left-radius: 3px;
12 | border-bottom-left-radius: 3px;
13 | }
14 |
15 | .ant-select-selection {
16 | border-top-left-radius: 0;
17 | border-bottom-left-radius: 0;
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/shell/app/modules/org/common/issue-field-icon.scss:
--------------------------------------------------------------------------------
1 | .issues-field-type-icon-box {
2 | display: flex;
3 | flex-shrink: 0;
4 | justify-content: center;
5 | align-items: center;
6 | width: 16px;
7 | height: 16px;
8 | color: $white;
9 | border-radius: $radius;
10 |
11 | .iconfont {
12 | margin-right: 0;
13 | font-size: 10px;
14 | }
15 |
16 | &.primary {
17 | background-color: $color-primary;
18 | }
19 |
20 | &.red {
21 | background-color: $color-danger;
22 | }
23 |
24 | &.darkcyan {
25 | background-color: $darkcyan;
26 | }
27 |
28 | &.palegreen {
29 | background-color: $palegreen;
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/shell/app/modules/org/pages/announcement/index.scss:
--------------------------------------------------------------------------------
1 | .org-notice-manage {
2 | .notice-filter {
3 | width: 268px;
4 | margin-bottom: $p12;
5 | }
6 |
7 | .operation-td {
8 | span {
9 | position: relative;
10 | margin-right: 16px;
11 | color: $color-active;
12 | cursor: pointer;
13 |
14 | &:after {
15 | content: '';
16 | position: absolute;
17 | top: 3px;
18 | right: -8px;
19 | width: 1px;
20 | height: 14px;
21 | background: rgba(0, 0, 0, 0.1);
22 | }
23 |
24 | &:last-child {
25 | &:after {
26 | display: none;
27 | }
28 | }
29 | }
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/shell/app/modules/org/pages/certificate/index.scss:
--------------------------------------------------------------------------------
1 | .upload-file-item {
2 | height: 32px;
3 | margin-top: 8px;
4 | padding: 0 12px;
5 | line-height: 32px;
6 | border: 1px solid $color-border;
7 | border-radius: $radius;
8 | }
9 |
--------------------------------------------------------------------------------
/shell/app/modules/org/pages/projects/create-project.scss:
--------------------------------------------------------------------------------
1 | .template-card-row {
2 | align-items: stretch;
3 | width: 676px;
4 |
5 | .template-card {
6 | width: 162px;
7 | text-align: justify;
8 | border: 1px solid $color-border;
9 |
10 | &.checked {
11 | border-color: $color-primary;
12 | }
13 | }
14 |
15 | .template-icon {
16 | width: 40px;
17 | height: 40px;
18 | }
19 |
20 | .template-description {
21 | line-height: 20px;
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/shell/app/modules/org/pages/projects/issue-field-setting-modal.scss:
--------------------------------------------------------------------------------
1 | .issue-field-layout {
2 | .field-grid {
3 | display: grid;
4 | width: 100%;
5 | grid-row-gap: 20px;
6 | grid-template-columns: 1fr 1fr 1fr;
7 | }
8 |
9 | .name {
10 | margin-bottom: $p16;
11 | padding: $p8;
12 | color: $color-primary;
13 | font-weight: 500;
14 | font-size: $p16;
15 | background-color: $color-bg;
16 | }
17 |
18 | .field-label {
19 | min-width: 100px;
20 | margin-right: $p8;
21 | color: $color-primary;
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/shell/app/modules/org/pages/projects/settings/info/index.scss:
--------------------------------------------------------------------------------
1 | .project-setting-info {
2 | .desc {
3 | display: -webkit-box;
4 | overflow: hidden;
5 | -webkit-box-orient: vertical;
6 | -webkit-line-clamp: 2;
7 | }
8 |
9 | .org-with-logo {
10 | width: calc(100% - 64px - 16px);
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/shell/app/modules/org/pages/setting/org-setting.scss:
--------------------------------------------------------------------------------
1 | .org-settings-main {
2 | .panel-title {
3 | margin-bottom: 19px;
4 | color: $color-text;
5 | }
6 | }
7 |
8 | .notice-channel {
9 | .add-channel-button {
10 | top: -90px;
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/shell/app/modules/project/common/components/health-point.scss:
--------------------------------------------------------------------------------
1 | .health-point {
2 | display: inline-flex;
3 | align-items: center;
4 | margin-right: 6px;
5 |
6 | .ant-badge-status-text {
7 | display: none;
8 | }
9 |
10 | .health-text {
11 | margin: 0 8px;
12 | font-size: 14px;
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/shell/app/modules/project/common/components/issue-workflow.scss:
--------------------------------------------------------------------------------
1 | .issue-workflow {
2 | .default-workflow {
3 | display: flex;
4 | align-items: flex-start;
5 |
6 | &-content {
7 | display: flex;
8 | flex-grow: 1;
9 | flex-wrap: wrap;
10 | width: 0;
11 | }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/shell/app/modules/project/common/components/issue/add-mr-relation.scss:
--------------------------------------------------------------------------------
1 | .issue-comment-box {
2 | .filter-select {
3 | width: 170px;
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/shell/app/modules/project/common/components/issue/comment-box.scss:
--------------------------------------------------------------------------------
1 | .issue-comment-arrow {
2 | position: relative;
3 | &:before {
4 | content: '';
5 | position: absolute;
6 | width: 10px;
7 | top: 10px;
8 | left: -12px;
9 | border: 6px solid transparent;
10 | border-right-color: $color-default-04;
11 | }
12 | }
13 |
14 | .issue-md-arrow {
15 | position: relative;
16 | &:before {
17 | content: '';
18 | position: absolute;
19 | top: 10px;
20 | height: 10px;
21 | width: 10px;
22 | left: -5px;
23 | z-index: 2;
24 | transform: rotate(45deg);
25 | background-color: #fbfbfb;
26 | border-bottom: 1px solid rgba(48, 38, 71, 0.2);
27 | border-left: 1px solid rgba(48, 38, 71, 0.2);
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/shell/app/modules/project/common/components/issue/issue-icon.scss:
--------------------------------------------------------------------------------
1 | .issues-type-icon-box {
2 | display: flex;
3 | flex-shrink: 0;
4 | justify-content: center;
5 | align-items: center;
6 | width: 16px;
7 | height: 16px;
8 | color: $white;
9 | border-radius: $radius;
10 |
11 | .iconfont {
12 | margin-right: 0;
13 | font-size: 10px;
14 | }
15 |
16 | &.primary {
17 | background-color: $color-primary;
18 | }
19 |
20 | &.red {
21 | background-color: $color-danger;
22 | }
23 |
24 | &.darkcyan {
25 | background-color: $darkcyan;
26 | }
27 |
28 | &.palegreen {
29 | background-color: $palegreen;
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/shell/app/modules/project/common/components/issue/issue-relation.scss:
--------------------------------------------------------------------------------
1 | .issue-relation-box {
2 | .issue-list {
3 | width: 0;
4 | }
5 | }
6 | .section-operate-title {
7 | &:hover {
8 | .op-icon {
9 | background-color: $color-default-06;
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/shell/app/modules/project/common/components/issue/time-input.scss:
--------------------------------------------------------------------------------
1 | .issue-part-save-group {
2 | position: absolute;
3 | top: 3px;
4 | right: -68px;
5 | text-align: right;
6 | }
7 |
8 | .issue-part-save,
9 | .issue-part-cancel {
10 | position: absolute;
11 | right: 0;
12 | display: inline-flex;
13 | justify-content: center;
14 | align-items: center;
15 | width: 28px;
16 | height: 22px;
17 | background-color: $white;
18 | border: 1px solid $platinum;
19 | border-radius: $radius;
20 | cursor: pointer;
21 | @extend %shallow-shadow;
22 |
23 | &:hover {
24 | background-color: $color-bg;
25 | }
26 | }
27 |
28 | .issue-part-save {
29 | right: 32px;
30 | }
31 |
--------------------------------------------------------------------------------
/shell/app/modules/project/common/components/issue/time-trace.scss:
--------------------------------------------------------------------------------
1 | .time-trace {
2 | padding: 3px 12px;
3 | width: 67%;
4 | height: 32px;
5 |
6 | &.active-hover:hover {
7 | background-color: $color-bg;
8 | cursor: pointer;
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/shell/app/modules/project/common/components/iteration-selector.scss:
--------------------------------------------------------------------------------
1 | .iteration-selector.load-more-selector {
2 | .results {
3 | border: 1px solid transparent;
4 |
5 | .icon {
6 | color: $color-default-3;
7 | }
8 |
9 | &:hover {
10 | box-shadow: unset;
11 |
12 | .icon {
13 | color: $color-default;
14 | }
15 | }
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/shell/app/modules/project/common/components/params-config/index.scss:
--------------------------------------------------------------------------------
1 | .project-params-config {
2 | .project-app-selector {
3 | &.load-more-selector {
4 | .results {
5 | padding: 0;
6 | border: 1px solid transparent;
7 |
8 | &:hover {
9 | box-shadow: unset;
10 | }
11 |
12 | .values,
13 | .value-item {
14 | width: 100%;
15 | }
16 | }
17 | }
18 | }
19 |
20 | .type-select {
21 | border-bottom: 3px solid transparent;
22 | padding-bottom: 4px;
23 | margin-top: 4px;
24 | &:hover,
25 | &.selected {
26 | border-bottom-color: $color-purple-highlight;
27 | }
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/shell/app/modules/project/common/components/pipeline-manage/common/tree-category/index.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2021 Terminus, Inc.
2 | //
3 | // This program is free software: you can use, redistribute, and/or modify
4 | // it under the terms of the GNU Affero General Public License, version 3
5 | // or later ("AGPL"), as published by the Free Software Foundation.
6 | //
7 | // This program is distributed in the hope that it will be useful, but WITHOUT
8 | // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
9 | // FITNESS FOR A PARTICULAR PURPOSE.
10 | //
11 | // You should have received a copy of the GNU Affero General Public License
12 | // along with this program. If not, see .
13 |
14 | import TreeCategory from './tree';
15 |
16 | export default TreeCategory;
17 |
--------------------------------------------------------------------------------
/shell/app/modules/project/common/components/pipeline-manage/config-detail/pipeline-editor/case-yml-graphic-editor.scss:
--------------------------------------------------------------------------------
1 | .case-node-drawer {
2 | .ant-drawer-body {
3 | padding-top: 4px;
4 | }
5 |
6 | .case-node-chosen-tabs {
7 | display: flex;
8 | flex-direction: column;
9 |
10 | > .ant-tabs-content-holder {
11 | > .ant-tabs-content {
12 | flex: 1;
13 | height: 100%;
14 |
15 | > .ant-tabs-tabpane {
16 | overflow: auto;
17 | }
18 | }
19 | }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/shell/app/modules/project/common/components/pipeline-new/category.scss:
--------------------------------------------------------------------------------
1 | .pipeline-category {
2 | &-item {
3 | height: 52px;
4 |
5 | &.active {
6 | position: relative;
7 | background: $white;
8 |
9 | &::after {
10 | content: '';
11 | position: absolute;
12 | top: 0;
13 | bottom: 0;
14 | right: 0;
15 | width: 3px;
16 | background-color: $color-purple-highlight;
17 | }
18 | }
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/shell/app/modules/project/common/components/pipeline-new/detail/build-log.scss:
--------------------------------------------------------------------------------
1 | .build-log-detail {
2 | height: 100%;
3 | > .ant-tabs-top {
4 | height: 100%;
5 | }
6 | .ant-tabs-content {
7 | height: 100%;
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/shell/app/modules/project/common/components/pipeline-new/detail/pipeline-node.scss:
--------------------------------------------------------------------------------
1 | .yml-chart-node {
2 | &.project-pipeline-node {
3 | width: 100%;
4 | height: 100%;
5 | padding: 0 12px;
6 | background-color: $white;
7 | border-radius: $radius;
8 | cursor: pointer;
9 | @extend %shallow-shadow;
10 |
11 | .pipeline-node-actions {
12 | display: none;
13 | }
14 |
15 | &:hover {
16 | @extend %hover-shadow;
17 |
18 | .pipeline-node-actions {
19 | display: flex;
20 | }
21 | }
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/shell/app/modules/project/common/components/pipeline-new/form.scss:
--------------------------------------------------------------------------------
1 | div.project-release-select.ant-select {
2 | .ant-select-selector {
3 | background-color: $color-default-06;
4 | border: none;
5 | }
6 | }
7 |
8 | .pipeline-form-add-tree {
9 | .ant-tree .ant-tree-title {
10 | width: 100%;
11 | }
12 |
13 | .ant-form-item {
14 | margin-bottom: 0;
15 | }
16 | }
17 |
18 | .pipeline-add-popover {
19 | .ant-popover-arrow {
20 | display: none;
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/shell/app/modules/project/common/components/pipeline-new/guide.scss:
--------------------------------------------------------------------------------
1 | .pipeline-guide-blue {
2 | border-color: $blue;
3 | background-color: rgba($blue, 0.1);
4 |
5 | .pipeline-guide-item {
6 | .remove-btn {
7 | display: none;
8 | color: $color-default;
9 | cursor: pointer;
10 |
11 | &:hover {
12 | color: $red;
13 | }
14 | }
15 |
16 | &:hover .remove-btn {
17 | display: block;
18 | }
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/shell/app/modules/project/common/components/pipeline-new/index.scss:
--------------------------------------------------------------------------------
1 | .common-pipeline {
2 | .pipeline-category-container {
3 | @media screen and (max-width: 1440px) {
4 | width: 240px;
5 | }
6 | @media screen and (min-width: 1441px) and (max-width: 2560px) {
7 | width: 360px;
8 | }
9 | @media screen and (min-width: 2561px) {
10 | width: 480px;
11 | }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/shell/app/modules/project/common/components/project-selector.scss:
--------------------------------------------------------------------------------
1 | .head-project-selector {
2 | .load-more-selector {
3 | .results {
4 | padding: 0;
5 | border: 1px solid transparent;
6 |
7 | &:hover {
8 | box-shadow: unset;
9 | }
10 |
11 | .values,
12 | .value-item {
13 | width: 100%;
14 | }
15 | }
16 | }
17 |
18 | .head-project-name {
19 | display: flex;
20 | width: 100%;
21 |
22 | .icon {
23 | color: $color-text-icon;
24 | }
25 |
26 | &:hover {
27 | .icon {
28 | color: $color-default;
29 | }
30 | }
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/shell/app/modules/project/common/components/runtime-selector.scss:
--------------------------------------------------------------------------------
1 | .runtimes-selector.load-more-selector {
2 | .results {
3 | border: 1px solid transparent;
4 |
5 | .icon {
6 | color: $color-default-3;
7 | }
8 |
9 | &:hover {
10 | box-shadow: unset;
11 |
12 | .icon {
13 | color: $color-default;
14 | }
15 | }
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/shell/app/modules/project/common/components/workflow/config.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2021 Terminus, Inc.
2 | //
3 | // This program is free software: you can use, redistribute, and/or modify
4 | // it under the terms of the GNU Affero General Public License, version 3
5 | // or later ("AGPL"), as published by the Free Software Foundation.
6 | //
7 | // This program is distributed in the hope that it will be useful, but WITHOUT
8 | // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
9 | // FITNESS FOR A PARTICULAR PURPOSE.
10 | //
11 | // You should have received a copy of the GNU Affero General Public License
12 | // along with this program. If not, see .
13 |
14 | // workflow for task
15 | export const TASK_FLOW = 'DEV';
16 |
--------------------------------------------------------------------------------
/shell/app/modules/project/common/components/workflow/index.scss:
--------------------------------------------------------------------------------
1 | .devops-workflow-steps {
2 | background-image: linear-gradient(to right, $white, $white), linear-gradient(to right, $white, $white),
3 | linear-gradient(to right, rgba($color-default, 0.1), rgba($white, 0)),
4 | linear-gradient(to left, rgba($color-default, 0.1), rgba($white, 0));
5 | background-position: left center, right center, left center, right center;
6 | background-repeat: no-repeat;
7 | background-color: $white;
8 | background-size: 20px 100%, 20px 100%, 10px 88%, 10px 88%;
9 | background-attachment: local, local, scroll, scroll;
10 | }
11 |
--------------------------------------------------------------------------------
/shell/app/modules/project/pages/apps/app-form.scss:
--------------------------------------------------------------------------------
1 | .ant-spin-nested-loading div .app-form-spin {
2 | position: fixed;
3 | z-index: 1;
4 | }
5 | .create-app-form {
6 | &.ant-form-vertical {
7 | width: 70%;
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/shell/app/modules/project/pages/backlog/index.scss:
--------------------------------------------------------------------------------
1 | .backlog-issue {
2 | display: flex;
3 |
4 | .backlog-left {
5 | flex: 3;
6 | margin-right: 6px;
7 | }
8 |
9 | .backlog-right {
10 | flex: 2;
11 | margin-left: 6px;
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/shell/app/modules/project/pages/backlog/iterations.scss:
--------------------------------------------------------------------------------
1 | .backlog-iterations {
2 | &-title {
3 | display: flex;
4 | align-items: center;
5 | height: 32px;
6 | }
7 |
8 | .backlog-iteration-content {
9 | position: relative;
10 | flex: 1;
11 | height: 0;
12 | overflow: auto;
13 | }
14 |
15 | .backlog-iterations-empty-holder {
16 | position: absolute;
17 | top: 0;
18 | bottom: 0;
19 | display: flex;
20 | flex-direction: column;
21 | justify-content: center;
22 | align-items: center;
23 | height: 406px;
24 | margin: auto;
25 | padding-right: 40px;
26 | padding-left: 40px;
27 |
28 | img {
29 | width: 200px;
30 | height: 200px;
31 | }
32 |
33 | .desc {
34 | min-height: 160px;
35 | line-height: 26px;
36 | }
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/shell/app/modules/project/pages/deploy/add-deploy/add-release.scss:
--------------------------------------------------------------------------------
1 | .project-deploy-add-release {
2 | height: 70vh;
3 |
4 | .ant-dropdown-menu-item {
5 | cursor: auto;
6 |
7 | &:hover {
8 | background: transparent;
9 | }
10 | }
11 |
12 | .load-more-selector {
13 | .results {
14 | padding: 0;
15 | border: 0;
16 | min-height: 30px;
17 | > div {
18 | line-height: 30px !important;
19 | height: 30px !important;
20 | }
21 |
22 | &:hover {
23 | box-shadow: unset;
24 | }
25 |
26 | .values,
27 | .value-item {
28 | width: 100%;
29 | }
30 | }
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/shell/app/modules/project/pages/deploy/index.scss:
--------------------------------------------------------------------------------
1 | .project-deploy-orders {
2 | .ant-spin-container {
3 | overflow-y: auto;
4 | padding: 0 12px;
5 | overflow-x: hidden;
6 | }
7 | .ant-timeline-item-head {
8 | background-color: transparent;
9 | }
10 | .ant-timeline-item .ant-timeline-item-content {
11 | margin: 0 0 0 16px;
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/shell/app/modules/project/pages/issue/component/table-view.scss:
--------------------------------------------------------------------------------
1 | .issue-table-view {
2 | .title {
3 | min-width: 400px;
4 | }
5 | }
6 |
7 | .issue-member-selector {
8 | .results {
9 | padding: 4px 0;
10 | border: 0;
11 |
12 | &:hover {
13 | border: 0;
14 | box-shadow: unset;
15 | }
16 | }
17 | }
18 |
19 | .issue-field-selector {
20 | .arrow-icon {
21 | color: $color-text-icon;
22 | }
23 |
24 | &:hover {
25 | .arrow-icon {
26 | color: $color-primary;
27 | }
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/shell/app/modules/project/pages/issue/import-export.scss:
--------------------------------------------------------------------------------
1 | .import-export-modal {
2 | .ant-modal-header {
3 | padding: 0;
4 | }
5 |
6 | .ant-modal-body {
7 | padding: 0 16px;
8 | max-height: 80vh;
9 | display: flex;
10 | }
11 |
12 | .issue-import-upload {
13 | .ant-upload-list-item:hover .ant-upload-list-item-info {
14 | background-color: transparent;
15 | }
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/shell/app/modules/project/pages/milestone/index.scss:
--------------------------------------------------------------------------------
1 | .project-milestone {
2 | .search-container {
3 | display: flex;
4 | padding: $p8;
5 | border-radius: $p4;
6 |
7 | .milestone-date-picker {
8 | margin-right: $p16;
9 | }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/shell/app/modules/project/pages/milestone/milestone-group.scss:
--------------------------------------------------------------------------------
1 | .milestone-drag-over {
2 | border: 1px solid $color-active;
3 | border-radius: $p4;
4 | }
5 |
--------------------------------------------------------------------------------
/shell/app/modules/project/pages/milestone/milestone-item.scss:
--------------------------------------------------------------------------------
1 | .milestone-info-card {
2 | &.dragging {
3 | background: repeating-linear-gradient(
4 | 45deg,
5 | $color-dark-06,
6 | $color-dark-06 2px,
7 | $color-white-8 0,
8 | $color-white-8 8px
9 | );
10 | cursor: move;
11 |
12 | .milestone-info-card-content {
13 | background: transparent;
14 | opacity: 0;
15 | }
16 | }
17 |
18 | .milestone-title {
19 | display: flex;
20 | align-items: center;
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/shell/app/modules/project/pages/milestone/milestone-table.scss:
--------------------------------------------------------------------------------
1 | .milestone-timeline-container {
2 | margin-top: 20px;
3 |
4 | .milestone-module {
5 | padding: 18px 18px 8px;
6 |
7 | .ant-card {
8 | margin-bottom: 10px;
9 | border: none;
10 | @extend %shallow-shadow;
11 |
12 | &:hover {
13 | @extend %hover-shadow;
14 | }
15 |
16 | .milestone-item-container {
17 | display: flex;
18 | justify-content: space-between;
19 | align-items: center;
20 |
21 | .milestone-item {
22 | display: flex;
23 | text-align: left;
24 | }
25 |
26 | .ant-progress {
27 | width: 80px;
28 | }
29 | }
30 | }
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/shell/app/modules/project/pages/plan-detail/case-import-button/index.scss:
--------------------------------------------------------------------------------
1 | .case-import-content {
2 | display: flex;
3 |
4 | .left {
5 | position: relative;
6 | width: 28%;
7 | margin-right: 2%;
8 | }
9 |
10 | .right {
11 | width: 70%;
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/shell/app/modules/project/pages/plan-detail/report/index.scss:
--------------------------------------------------------------------------------
1 | .report-page {
2 | .section-title {
3 | border-bottom: 1px solid $color-border;
4 | }
5 |
6 | .sub-section-title {
7 | margin-top: 24px;
8 | margin-bottom: 12px;
9 | font-weight: 500;
10 | font-size: 16px;
11 | line-height: 38px;
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/shell/app/modules/project/pages/plan-detail/test-record/build-history.scss:
--------------------------------------------------------------------------------
1 | .build-history-wp {
2 | .active-tr {
3 | td {
4 | background-color: $color-active-bg;
5 | }
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/shell/app/modules/project/pages/release/application.scss:
--------------------------------------------------------------------------------
1 | .release-app-list {
2 | border-right: 1px solid $color-default-1;
3 |
4 | @media screen and (max-width: 1440px) {
5 | width: 240px;
6 | }
7 | @media screen and (min-width: 1441px) and (max-width: 2560px) {
8 | width: 360px;
9 | }
10 | @media screen and (min-width: 2561px) {
11 | width: 480px;
12 | }
13 | }
14 |
15 | .release-right {
16 | .full-spin-height {
17 | height: calc(100% - 40px);
18 | }
19 |
20 | .dice-cp.container {
21 | height: 100%;
22 |
23 | & > div {
24 | height: 100%;
25 | }
26 | }
27 |
28 | .erda-table {
29 | display: flex;
30 | flex-direction: column;
31 | height: 100%;
32 |
33 | .ant-table-wrapper {
34 | flex: 1;
35 | }
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/shell/app/modules/project/pages/release/components/addon.scss:
--------------------------------------------------------------------------------
1 | .addon-item {
2 | min-width: 260px;
3 | height: 86px;
4 | background: $white;
5 | border-radius: $radius;
6 | @extend %shallow-shadow;
7 |
8 | &:hover {
9 | @extend %hover-shadow;
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/shell/app/modules/project/pages/resource/components/resource.scss:
--------------------------------------------------------------------------------
1 | .project-resource {
2 | .path-breadcrumb {
3 | display: inline-block;
4 | padding-bottom: 20px;
5 | }
6 |
7 | .project-resource-time {
8 | margin-top: 24px;
9 | margin-bottom: 12px;
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/shell/app/modules/project/pages/resource/index.js:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2021 Terminus, Inc.
2 | //
3 | // This program is free software: you can use, redistribute, and/or modify
4 | // it under the terms of the GNU Affero General Public License, version 3
5 | // or later ("AGPL"), as published by the Free Software Foundation.
6 | //
7 | // This program is distributed in the hope that it will be useful, but WITHOUT
8 | // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
9 | // FITNESS FOR A PARTICULAR PURPOSE.
10 | //
11 | // You should have received a copy of the GNU Affero General Public License
12 | // along with this program. If not, see .
13 |
14 | import ProjectResource from './components/resource';
15 |
16 | export default ProjectResource;
17 |
--------------------------------------------------------------------------------
/shell/app/modules/project/pages/settings/index.js:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2021 Terminus, Inc.
2 | //
3 | // This program is free software: you can use, redistribute, and/or modify
4 | // it under the terms of the GNU Affero General Public License, version 3
5 | // or later ("AGPL"), as published by the Free Software Foundation.
6 | //
7 | // This program is distributed in the hope that it will be useful, but WITHOUT
8 | // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
9 | // FITNESS FOR A PARTICULAR PURPOSE.
10 | //
11 | // You should have received a copy of the GNU Affero General Public License
12 | // along with this program. If not, see .
13 |
14 | import ProjectSettings from './components/project-settings';
15 |
16 | export default ProjectSettings;
17 |
--------------------------------------------------------------------------------
/shell/app/modules/project/pages/test-env/test-env.scss:
--------------------------------------------------------------------------------
1 | .test-env-list {
2 | li {
3 | height: 42px;
4 | padding: 0 12px;
5 | border-right: 2px solid transparent;
6 | cursor: pointer;
7 |
8 | &.active {
9 | background-color: $color-active-bg;
10 | border-right-color: $color-primary;
11 | }
12 |
13 | &:hover {
14 | background-color: $color-active-bg;
15 | }
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/shell/app/modules/project/pages/test-manage/case/case-drawer/case-step.scss:
--------------------------------------------------------------------------------
1 | .case-step-list {
2 | border: 1px solid $color-border;
3 | border-radius: $radius;
4 |
5 | .case-step {
6 | padding: 1px 0;
7 |
8 | &:not(:last-child) {
9 | border-bottom: 1px solid $color-border;
10 | }
11 |
12 | textarea {
13 | color: $color-text;
14 | border: none;
15 | box-shadow: none;
16 | resize: none;
17 | }
18 | }
19 |
20 | .delete-icon {
21 | margin: 6px;
22 | color: $color-text-desc;
23 | font-size: 18px;
24 | }
25 |
26 | .result-detail {
27 | padding-left: 28px;
28 |
29 | textarea {
30 | color: $color-text-sub;
31 | resize: none;
32 | }
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/shell/app/modules/project/pages/test-manage/case/case-drawer/content-panel.scss:
--------------------------------------------------------------------------------
1 | .content-panel {
2 | & + & {
3 | margin-top: 32px;
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/shell/app/modules/project/pages/test-manage/case/case-drawer/related-bugs.scss:
--------------------------------------------------------------------------------
1 | .related-bugs {
2 | .filter-select-wrap {
3 | .filter-select {
4 | width: 170px;
5 | }
6 | }
7 |
8 | .priority-icon {
9 | width: 18px;
10 | height: 18px;
11 | vertical-align: sub;
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/shell/app/modules/project/pages/test-manage/case/import-export.scss:
--------------------------------------------------------------------------------
1 | .test-manage-import-export-modal {
2 | .ant-modal-header {
3 | padding: 0;
4 | }
5 |
6 | .ant-modal-body {
7 | padding: 0 16px;
8 | max-height: 80vh;
9 | display: flex;
10 | }
11 |
12 | .issue-import-upload {
13 | .ant-upload-list-item:hover .ant-upload-list-item-info {
14 | background-color: transparent;
15 | }
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/shell/app/modules/project/pages/test-manage/case/manual-test.scss:
--------------------------------------------------------------------------------
1 | .test-case-page {
2 | display: flex;
3 | padding-top: 12px;
4 | }
5 |
6 | .filter-group-drawer {
7 | .member-selector {
8 | background: $white;
9 |
10 | .results {
11 | border-color: $color-border;
12 | &:hover {
13 | border-color: $color-primary;
14 | box-shadow: none;
15 | }
16 | }
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/shell/app/modules/project/pages/test-manage/components/case-table/all-checkbox/index.scss:
--------------------------------------------------------------------------------
1 | .test-manage-all-checkbox {
2 | :global {
3 | .ant-checkbox-indeterminate .ant-checkbox-inner:after {
4 | transform: translate(-50%, -50%) scale(1) !important;
5 | }
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/shell/app/modules/project/pages/test-plan/test-plan.scss:
--------------------------------------------------------------------------------
1 | .test-plan-list {
2 | td.passing-rate {
3 | .sub {
4 | display: flex;
5 | align-items: center;
6 | }
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/shell/app/modules/project/pages/third-service/components/addon-modal.scss:
--------------------------------------------------------------------------------
1 | .third-addon-modal {
2 | .footer {
3 | padding-top: 10px;
4 |
5 | button {
6 | margin-left: 5px;
7 | }
8 |
9 | text-align: right;
10 | }
11 |
12 | .secondary-title {
13 | margin: 0;
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/shell/app/modules/publisher/pages/artifacts/artifacts-detail.scss:
--------------------------------------------------------------------------------
1 | .artifacts-detail {
2 | height: 100%;
3 | overflow: hidden;
4 | }
5 |
6 | .artifacts-content {
7 | flex: 1;
8 | padding: 12px;
9 | overflow: auto;
10 | background-color: $white;
11 | border-radius: 2px;
12 |
13 | &.bg-gray {
14 | padding: unset;
15 | background-color: $color-bg;
16 |
17 | > div {
18 | padding: 10px 32px 20px;
19 | }
20 | }
21 |
22 | .image-list {
23 | margin-bottom: 0;
24 |
25 | .image-item {
26 | padding: 5px 0;
27 | line-height: 20px;
28 | }
29 |
30 | li {
31 | overflow-x: auto;
32 |
33 | &:hover {
34 | background-color: $color-hover;
35 | }
36 | }
37 | }
38 |
39 | .file-container {
40 | margin-top: 30px;
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/shell/app/modules/publisher/pages/publisher-manage/publisher-setting.scss:
--------------------------------------------------------------------------------
1 | .publisher-settings-main {
2 | .panel-title {
3 | margin-bottom: 19px;
4 | color: $color-text;
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/shell/app/modules/runtime/common/logs/components/container-log.scss:
--------------------------------------------------------------------------------
1 | .container-log-item {
2 | span {
3 | display: inline-block;
4 | }
5 |
6 | a {
7 | span {
8 | margin-right: unset;
9 | }
10 | color: $orange;
11 | }
12 |
13 | pre {
14 | display: inline;
15 | margin-right: 0;
16 | overflow: visible;
17 | }
18 |
19 | .log-item-logtime {
20 | width: 200px;
21 | color: $green;
22 | vertical-align: top;
23 | }
24 |
25 | .log-item-level {
26 | width: 60px;
27 | color: #add8e6;
28 |
29 | &.warn {
30 | color: $color-warning;
31 | }
32 |
33 | &.error {
34 | color: $color-danger;
35 | }
36 | }
37 |
38 | ::selection {
39 | color: $white;
40 | background: $green;
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/shell/app/modules/runtime/pages/overview/components/activity.scss:
--------------------------------------------------------------------------------
1 | .runtime-activity {
2 | .deployment-card {
3 | position: relative;
4 | //display: flex;
5 | min-height: 74px;
6 | padding: 12px;
7 | background-color: $white;
8 | border-bottom: 1px solid $color-border;
9 |
10 | &:last-child {
11 | border-bottom: unset;
12 | border-bottom-right-radius: $radius;
13 | border-bottom-left-radius: $radius;
14 | }
15 |
16 | &:first-child {
17 | border-top-left-radius: $radius;
18 | border-top-right-radius: $radius;
19 | }
20 |
21 | .status {
22 | color: $color-text-desc;
23 | }
24 |
25 | .extra-items {
26 | color: $color-dark-4;
27 |
28 | i {
29 | margin-right: 0;
30 | }
31 | }
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/shell/app/modules/runtime/pages/overview/components/elastic-scaling.scss:
--------------------------------------------------------------------------------
1 | .replicas-count {
2 | .ant-formily-item {
3 | margin-bottom: 0;
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/shell/app/modules/runtime/pages/overview/components/index.scss:
--------------------------------------------------------------------------------
1 | .runtime-overview {
2 | .overview-body-block {
3 | margin-bottom: $p20;
4 | }
5 |
6 | .overview-body-title {
7 | margin-bottom: $p12;
8 | color: $color-text;
9 | font-size: 18px;
10 | line-height: 26px;
11 | }
12 |
13 | .open-activity {
14 | position: absolute;
15 | top: 0;
16 | right: $p16;
17 |
18 | button {
19 | box-shadow: 0 2px 6px $darkgray;
20 | }
21 | }
22 |
23 | .runtime-deploy-logs {
24 | .ant-timeline {
25 | padding: 16px;
26 | background-color: $white;
27 | border-radius: $radius;
28 | }
29 | }
30 | }
31 |
32 | .redeploy-tip-btn {
33 | color: $color-primary;
34 | cursor: pointer;
35 | }
36 |
--------------------------------------------------------------------------------
/shell/app/modules/runtime/pages/overview/components/resource-modal.scss:
--------------------------------------------------------------------------------
1 | .adjust-resource {
2 | .ant-form {
3 | display: flex;
4 | margin-bottom: 20px;
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/shell/app/modules/runtime/pages/overview/components/service-dropdown.scss:
--------------------------------------------------------------------------------
1 | .modal-info {
2 | .ant-modal-confirm-content {
3 | margin-left: unset;
4 | }
5 |
6 | .ant-list-item {
7 | padding: $p8 0;
8 | }
9 |
10 | .ant-modal-confirm-body > .anticon {
11 | display: none;
12 | }
13 |
14 | .ant-list-item-content-single {
15 | justify-content: space-between;
16 | padding: 0 $p8;
17 | }
18 |
19 | .copy-icon {
20 | font-size: 16px;
21 | }
22 |
23 | .vip-addr {
24 | word-break: break-all;
25 | }
26 |
27 | .env-list {
28 | .env-item {
29 | word-break: break-all;
30 | }
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/shell/app/modules/runtime/pages/overview/index.js:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2021 Terminus, Inc.
2 | //
3 | // This program is free software: you can use, redistribute, and/or modify
4 | // it under the terms of the GNU Affero General Public License, version 3
5 | // or later ("AGPL"), as published by the Free Software Foundation.
6 | //
7 | // This program is distributed in the hope that it will be useful, but WITHOUT
8 | // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
9 | // FITNESS FOR A PARTICULAR PURPOSE.
10 | //
11 | // You should have received a copy of the GNU Affero General Public License
12 | // along with this program. If not, see .
13 |
14 | import OverView from './containers';
15 |
16 | export default OverView;
17 |
--------------------------------------------------------------------------------
/shell/app/static/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/erda-project/erda-ui/ec3b437ea40569bb2856310997b4b11ceece1f21/shell/app/static/favicon.ico
--------------------------------------------------------------------------------
/shell/app/static/roboto-regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/erda-project/erda-ui/ec3b437ea40569bb2856310997b4b11ceece1f21/shell/app/static/roboto-regular.ttf
--------------------------------------------------------------------------------
/shell/app/static/usecase_model_en.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/erda-project/erda-ui/ec3b437ea40569bb2856310997b4b11ceece1f21/shell/app/static/usecase_model_en.xlsx
--------------------------------------------------------------------------------
/shell/app/static/usecase_model_en.xmind:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/erda-project/erda-ui/ec3b437ea40569bb2856310997b4b11ceece1f21/shell/app/static/usecase_model_en.xmind
--------------------------------------------------------------------------------
/shell/app/static/usecase_model_zh.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/erda-project/erda-ui/ec3b437ea40569bb2856310997b4b11ceece1f21/shell/app/static/usecase_model_zh.xlsx
--------------------------------------------------------------------------------
/shell/app/static/usecase_model_zh.xmind:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/erda-project/erda-ui/ec3b437ea40569bb2856310997b4b11ceece1f21/shell/app/static/usecase_model_zh.xmind
--------------------------------------------------------------------------------
/shell/app/styles/_variable.scss:
--------------------------------------------------------------------------------
1 | // same with antd
2 | $base-line-height: 32px;
3 | $sm-line-height: 28px;
4 | $lg-line-height: 36px;
5 |
6 | // 圆角
7 | $radius: 3px;
8 | $border-radius: 3px;
9 | $radius-lg: 6px;
10 |
11 | // 间距
12 | $p4: 4px;
13 | $p8: 8px;
14 | $p12: 12px;
15 | $p16: 16px;
16 | $p20: 20px;
17 | $p24: 24px;
18 | $p28: 28px;
19 | $p32: 32px;
20 |
21 | // 响应式边距 breakpoint
22 | $b32: 32px;
23 | $b16: 16px;
24 |
25 | // 布局
26 | $nav-width: 56px;
27 | $sidebar-width: 184px;
28 | $subsider-fold-width: 56px;
29 | $sm-content-break-width: 600px;
30 | $md-content-break-width: 1024px;
31 | $lg-content-break-width: 1440px;
32 | $breadcrumb-height: 36px;
33 |
34 | $main-padding-break: 1272px;
35 |
--------------------------------------------------------------------------------
/shell/app/themes/index.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2021 Terminus, Inc.
2 | //
3 | // This program is free software: you can use, redistribute, and/or modify
4 | // it under the terms of the GNU Affero General Public License, version 3
5 | // or later ("AGPL"), as published by the Free Software Foundation.
6 | //
7 | // This program is distributed in the hope that it will be useful, but WITHOUT
8 | // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
9 | // FITNESS FOR A PARTICULAR PURPOSE.
10 | //
11 | // You should have received a copy of the GNU Affero General Public License
12 | // along with this program. If not, see .
13 |
14 | import * as diceTheme from './dice';
15 |
16 | export const theme = diceTheme;
17 |
--------------------------------------------------------------------------------
/shell/app/user/common/index.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2021 Terminus, Inc.
2 | //
3 | // This program is free software: you can use, redistribute, and/or modify
4 | // it under the terms of the GNU Affero General Public License, version 3
5 | // or later ("AGPL"), as published by the Free Software Foundation.
6 | //
7 | // This program is distributed in the hope that it will be useful, but WITHOUT
8 | // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
9 | // FITNESS FOR A PARTICULAR PURPOSE.
10 | //
11 | // You should have received a copy of the GNU Affero General Public License
12 | // along with this program. If not, see .
13 |
14 | export { WithAuth, usePerm, getAuth, isCreator, isAssignee } from './with-auth';
15 | export { connectUser } from './connect-user';
16 |
--------------------------------------------------------------------------------
/shell/app/user/common/perm-editor/perm-export.scss:
--------------------------------------------------------------------------------
1 | .dice-perm-export-data {
2 | align-items: unset;
3 | }
4 |
5 | .dice-perm-export-pre {
6 | flex: 1 0 auto;
7 | width: 100%;
8 | min-height: 300px;
9 | padding: 16px;
10 | background-color: $color-dark-06;
11 | border: none;
12 | border-radius: $radius;
13 | outline: 0;
14 |
15 | &:focus {
16 | outline: 0;
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/shell/app/yml-chart/chart/index.tsx:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2021 Terminus, Inc.
2 | //
3 | // This program is free software: you can use, redistribute, and/or modify
4 | // it under the terms of the GNU Affero General Public License, version 3
5 | // or later ("AGPL"), as published by the Free Software Foundation.
6 | //
7 | // This program is distributed in the hope that it will be useful, but WITHOUT
8 | // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
9 | // FITNESS FOR A PARTICULAR PURPOSE.
10 | //
11 | // You should have received a copy of the GNU Affero General Public License
12 | // along with this program. If not, see .
13 |
14 | export { YmlChart } from './yml-chart';
15 | export { externalKey, CHART_CONFIG, NodeType } from './config';
16 |
--------------------------------------------------------------------------------
/shell/app/yml-chart/chart/yml-chart.scss:
--------------------------------------------------------------------------------
1 | .yml-svg-container-box {
2 | overflow-x: auto;
3 | overflow-y: hidden;
4 | background-repeat: repeat;
5 | background-size: 100%;
6 | }
7 |
8 | .yml-svg-container {
9 | position: relative;
10 | min-width: 100%;
11 | min-height: 100%;
12 |
13 | &.editing {
14 | min-height: calc(100% - 210px);
15 | }
16 |
17 | .svg-model-node-carrier {
18 | overflow: visible;
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/shell/app/yml-chart/common/in-params-drawer.scss:
--------------------------------------------------------------------------------
1 | .pipeline-in-params-drawer {
2 | .ant-drawer-body {
3 | padding-bottom: 50px;
4 | }
5 |
6 | &-footer {
7 | position: absolute;
8 | right: 0;
9 | bottom: 0;
10 | width: 100%;
11 | padding: 8px 16px;
12 | text-align: left;
13 | background-color: $white;
14 | border-top: 1px solid $color-border;
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/shell/app/yml-chart/common/pipeline-node-drawer.scss:
--------------------------------------------------------------------------------
1 | .yml-node-drawer {
2 | .ant-drawer-body {
3 | overflow: auto;
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/shell/app/yml-chart/nodes/add-node.scss:
--------------------------------------------------------------------------------
1 | .yml-chart-node {
2 | &.add-node {
3 | display: flex;
4 | flex-direction: column;
5 | justify-content: center;
6 | align-items: center;
7 | width: 100%;
8 | height: 100%;
9 | color: $color-text-sub;
10 | background-color: $white;
11 | border-radius: $radius;
12 | cursor: pointer;
13 | @extend %shallow-shadow;
14 |
15 | &:hover {
16 | @extend %hover-shadow;
17 | color: $color-primary;
18 | }
19 |
20 | .add-icon {
21 | margin-right: 0;
22 | font-size: 40px;
23 | }
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/shell/app/yml-chart/nodes/add-row.scss:
--------------------------------------------------------------------------------
1 | .yml-chart-node {
2 | &.add-line {
3 | width: 100%;
4 | height: 100%;
5 | color: $lightgray;
6 | font-size: 24px;
7 | line-height: 14px;
8 | text-align: center;
9 | border: 1px solid $lightgray;
10 | border-radius: 100%;
11 | cursor: pointer;
12 |
13 | &:hover {
14 | color: $color-primary;
15 | border: 1px solid $color-primary;
16 | }
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/shell/app/yml-chart/nodes/end-node.scss:
--------------------------------------------------------------------------------
1 | .yml-chart-node {
2 | &.end-node {
3 | width: 100%;
4 | height: 100%;
5 | background-color: $white;
6 | border: 1px solid $color-border;
7 | border-radius: 100px;
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/shell/app/yml-chart/nodes/start-node.scss:
--------------------------------------------------------------------------------
1 | .yml-chart-node {
2 | &.start-node {
3 | width: 100%;
4 | height: 100%;
5 | background-color: $white;
6 | border: 1px solid $color-border;
7 | border-radius: 100px;
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/shell/app/yml-chart/pipeline-editor.scss:
--------------------------------------------------------------------------------
1 | .pipeline-yml-editor {
2 | .file-content {
3 | flex: 1;
4 | }
5 |
6 | .commit-file-form {
7 | padding: 16px 16px 0 16px;
8 | border-top: 1px solid $color-border;
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/shell/auto_test/util.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2021 Terminus, Inc.
2 | //
3 | // This program is free software: you can use, redistribute, and/or modify
4 | // it under the terms of the GNU Affero General Public License, version 3
5 | // or later ("AGPL"), as published by the Free Software Foundation.
6 | //
7 | // This program is distributed in the hope that it will be useful, but WITHOUT
8 | // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
9 | // FITNESS FOR A PARTICULAR PURPOSE.
10 | //
11 | // You should have received a copy of the GNU Affero General Public License
12 | // along with this program. If not, see .
13 |
14 | export const wait = (second: number) =>
15 | new Promise((re) => {
16 | setTimeout(re, second);
17 | });
18 |
--------------------------------------------------------------------------------
/shell/tools/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "module": "commonjs",
4 | "declaration": true,
5 | "removeComments": true,
6 | "emitDecoratorMetadata": true,
7 | "experimentalDecorators": true,
8 | "allowSyntheticDefaultImports": true,
9 | "target": "ESNEXT",
10 | "outDir": "./dist",
11 | "baseUrl": "./",
12 | "skipLibCheck": true,
13 | "esModuleInterop": true
14 | },
15 | "include": ["./**/*.ts"]
16 | }
17 |
--------------------------------------------------------------------------------
/shell/tsconfig-jest.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig-webpack.json",
3 | "compilerOptions": {
4 | "composite": true,
5 | "target": "ES2019",
6 | "module": "ESNext",
7 | "lib": ["dom", "esnext"],
8 | "allowJs": true,
9 | "checkJs": false,
10 | "jsx": "react",
11 | "declaration": true,
12 | "sourceMap": true,
13 | "incremental": true,
14 | "strict": false,
15 | "noImplicitAny": true,
16 | "noUnusedLocals": true,
17 | "noUnusedParameters": true,
18 | "noImplicitReturns": true,
19 | "moduleResolution": "node",
20 | "esModuleInterop": true,
21 | "strict": false,
22 | "skipLibCheck": false
23 | }
24 | }
25 |
--------------------------------------------------------------------------------