From 86ca4e991987afbebb8026ef77d99c89fde2a500 Mon Sep 17 00:00:00 2001 From: xuzhan Date: Mon, 7 Nov 2022 15:53:39 +0800 Subject: [PATCH 001/735] =?UTF-8?q?feature:=20=E6=B7=BB=E5=8A=A0=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE=E7=AE=A1=E7=90=86=E5=89=8D=E7=AB=AF=E6=9C=8D=E5=8A=A1?= =?UTF-8?q?=20issue=20#7923?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/frontend/devops-manage/.babelrc | 6 + .../devops-manage/.bk.development.env | 10 + src/frontend/devops-manage/.bk.env | 7 + src/frontend/devops-manage/.bk.production.env | 4 + src/frontend/devops-manage/.browserslistrc | 4 + src/frontend/devops-manage/.eslintrc.js | 16 ++ src/frontend/devops-manage/.gitignore | 78 ++++++ src/frontend/devops-manage/.stylelintignore | 1 + src/frontend/devops-manage/.stylelintrc.js | 4 + src/frontend/devops-manage/README.md | 1 + src/frontend/devops-manage/bk.config.js | 10 + src/frontend/devops-manage/index.html | 15 ++ src/frontend/devops-manage/package.json | 52 ++++ src/frontend/devops-manage/postcss.config.js | 32 +++ src/frontend/devops-manage/src/app.vue | 3 + src/frontend/devops-manage/src/common/util.ts | 60 +++++ .../src/components/manage-header.vue | 53 ++++ .../src/composables/use-filter.ts | 9 + src/frontend/devops-manage/src/css/index.css | 2 + src/frontend/devops-manage/src/css/main.css | 13 + src/frontend/devops-manage/src/css/reset.css | 236 ++++++++++++++++++ src/frontend/devops-manage/src/http/api.ts | 5 + .../src/http/fetch/error-interceptor.ts | 21 ++ .../devops-manage/src/http/fetch/index.ts | 103 ++++++++ .../src/http/fetch/request-error.ts | 11 + .../src/http/fetch/success-interceptor.ts | 26 ++ src/frontend/devops-manage/src/main.ts | 16 ++ .../devops-manage/src/router/index.ts | 47 ++++ src/frontend/devops-manage/src/store/user.ts | 16 ++ src/frontend/devops-manage/src/types/store.ts | 4 + .../devops-manage/src/views/apply-project.vue | 14 ++ .../src/views/manage/group/user-group.vue | 11 + .../src/views/manage/manage-entry.vue | 58 +++++ .../src/views/manage/project/edit-project.vue | 11 + .../src/views/manage/project/show-project.vue | 11 + .../devops-manage/static/images/favicon.png | Bin 0 -> 1472 bytes .../devops-manage/static/login_success.html | 14 ++ src/frontend/devops-manage/tsconfig.json | 45 ++++ src/frontend/devops-manage/types/global.d.ts | 3 + .../devops-manage/types/shims-vue.d.ts | 7 + src/frontend/package.json | 5 +- 41 files changed, 1043 insertions(+), 1 deletion(-) create mode 100644 src/frontend/devops-manage/.babelrc create mode 100644 src/frontend/devops-manage/.bk.development.env create mode 100644 src/frontend/devops-manage/.bk.env create mode 100644 src/frontend/devops-manage/.bk.production.env create mode 100644 src/frontend/devops-manage/.browserslistrc create mode 100644 src/frontend/devops-manage/.eslintrc.js create mode 100644 src/frontend/devops-manage/.gitignore create mode 100644 src/frontend/devops-manage/.stylelintignore create mode 100644 src/frontend/devops-manage/.stylelintrc.js create mode 100644 src/frontend/devops-manage/README.md create mode 100644 src/frontend/devops-manage/bk.config.js create mode 100644 src/frontend/devops-manage/index.html create mode 100644 src/frontend/devops-manage/package.json create mode 100644 src/frontend/devops-manage/postcss.config.js create mode 100644 src/frontend/devops-manage/src/app.vue create mode 100644 src/frontend/devops-manage/src/common/util.ts create mode 100644 src/frontend/devops-manage/src/components/manage-header.vue create mode 100644 src/frontend/devops-manage/src/composables/use-filter.ts create mode 100644 src/frontend/devops-manage/src/css/index.css create mode 100644 src/frontend/devops-manage/src/css/main.css create mode 100644 src/frontend/devops-manage/src/css/reset.css create mode 100644 src/frontend/devops-manage/src/http/api.ts create mode 100644 src/frontend/devops-manage/src/http/fetch/error-interceptor.ts create mode 100644 src/frontend/devops-manage/src/http/fetch/index.ts create mode 100644 src/frontend/devops-manage/src/http/fetch/request-error.ts create mode 100644 src/frontend/devops-manage/src/http/fetch/success-interceptor.ts create mode 100644 src/frontend/devops-manage/src/main.ts create mode 100644 src/frontend/devops-manage/src/router/index.ts create mode 100644 src/frontend/devops-manage/src/store/user.ts create mode 100644 src/frontend/devops-manage/src/types/store.ts create mode 100644 src/frontend/devops-manage/src/views/apply-project.vue create mode 100644 src/frontend/devops-manage/src/views/manage/group/user-group.vue create mode 100644 src/frontend/devops-manage/src/views/manage/manage-entry.vue create mode 100644 src/frontend/devops-manage/src/views/manage/project/edit-project.vue create mode 100644 src/frontend/devops-manage/src/views/manage/project/show-project.vue create mode 100644 src/frontend/devops-manage/static/images/favicon.png create mode 100644 src/frontend/devops-manage/static/login_success.html create mode 100644 src/frontend/devops-manage/tsconfig.json create mode 100644 src/frontend/devops-manage/types/global.d.ts create mode 100644 src/frontend/devops-manage/types/shims-vue.d.ts diff --git a/src/frontend/devops-manage/.babelrc b/src/frontend/devops-manage/.babelrc new file mode 100644 index 00000000000..d4457ee3b86 --- /dev/null +++ b/src/frontend/devops-manage/.babelrc @@ -0,0 +1,6 @@ +{ + "presets": [ + "@blueking/babel-preset-bk" + ] +} + \ No newline at end of file diff --git a/src/frontend/devops-manage/.bk.development.env b/src/frontend/devops-manage/.bk.development.env new file mode 100644 index 00000000000..badfd95a0f2 --- /dev/null +++ b/src/frontend/devops-manage/.bk.development.env @@ -0,0 +1,10 @@ +# .bk.development.env 生产模式生效 + +# 登录地址 +BK_LOGIN_URL = '' + +# 开发 host +BK_APP_HOST = 'localhost.com' + +# 开发 port +BK_APP_PORT = 80 diff --git a/src/frontend/devops-manage/.bk.env b/src/frontend/devops-manage/.bk.env new file mode 100644 index 00000000000..4b0d5162dbc --- /dev/null +++ b/src/frontend/devops-manage/.bk.env @@ -0,0 +1,7 @@ +# .env 所有环境生效的配置 + +# 接口前缀 +BK_AJAX_URL_PREFIX = '/' + +# 获取用户信息接口 +BK_USER_INFO_URL = '/user' diff --git a/src/frontend/devops-manage/.bk.production.env b/src/frontend/devops-manage/.bk.production.env new file mode 100644 index 00000000000..65dd668101d --- /dev/null +++ b/src/frontend/devops-manage/.bk.production.env @@ -0,0 +1,4 @@ +# .bk.production.env 生产模式生效 + +# 登录地址 +BK_LOGIN_URL = '{{ BK_LOGIN_URL }}' diff --git a/src/frontend/devops-manage/.browserslistrc b/src/frontend/devops-manage/.browserslistrc new file mode 100644 index 00000000000..14461370acc --- /dev/null +++ b/src/frontend/devops-manage/.browserslistrc @@ -0,0 +1,4 @@ +# Browsers that we support + +last 2 versions +> 1% diff --git a/src/frontend/devops-manage/.eslintrc.js b/src/frontend/devops-manage/.eslintrc.js new file mode 100644 index 00000000000..33dfc1e3207 --- /dev/null +++ b/src/frontend/devops-manage/.eslintrc.js @@ -0,0 +1,16 @@ +module.exports = { + root: true, + extends: ['@blueking/eslint-config-bk/tsvue3'], + parserOptions: { + tsconfigRootDir: __dirname, + project: [ + './tsconfig.json', + ], + }, + ignorePatterns: [ + 'dist/', + 'postcss.config.js', + 'bk.config.js', + 'index.html', + ], +}; diff --git a/src/frontend/devops-manage/.gitignore b/src/frontend/devops-manage/.gitignore new file mode 100644 index 00000000000..77985849878 --- /dev/null +++ b/src/frontend/devops-manage/.gitignore @@ -0,0 +1,78 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +.vscode + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (http://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +jspm_packages/ + +# Typescript v1 declaration files +typings/ + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variables file +.env +package-lock.json +webpack-stats.json + +webpack_cache/ + +test/unit/coverage + +*.bak* + +# Editor directories and files +.DS_Store +.idea +*.suo +*.ntvs* +*.njsproj +*.sln +dist/ + +.bk.local.env diff --git a/src/frontend/devops-manage/.stylelintignore b/src/frontend/devops-manage/.stylelintignore new file mode 100644 index 00000000000..c2658d7d1b3 --- /dev/null +++ b/src/frontend/devops-manage/.stylelintignore @@ -0,0 +1 @@ +node_modules/ diff --git a/src/frontend/devops-manage/.stylelintrc.js b/src/frontend/devops-manage/.stylelintrc.js new file mode 100644 index 00000000000..2bea3aba56a --- /dev/null +++ b/src/frontend/devops-manage/.stylelintrc.js @@ -0,0 +1,4 @@ +module.exports = { + defaultSeverity: 'error', + extends: ['@blueking/stylelint-config-bk'], +} diff --git a/src/frontend/devops-manage/README.md b/src/frontend/devops-manage/README.md new file mode 100644 index 00000000000..d1354144442 --- /dev/null +++ b/src/frontend/devops-manage/README.md @@ -0,0 +1 @@ +bkuicli-vue3 diff --git a/src/frontend/devops-manage/bk.config.js b/src/frontend/devops-manage/bk.config.js new file mode 100644 index 00000000000..84f667646a3 --- /dev/null +++ b/src/frontend/devops-manage/bk.config.js @@ -0,0 +1,10 @@ + +module.exports = { + host: process.env.BK_APP_HOST, + port: process.env.BK_APP_PORT, + publicPath: process.env.BK_STATIC_URL, + cache: true, + open: false, + replaceStatic: false, + typescript: true, +}; diff --git a/src/frontend/devops-manage/index.html b/src/frontend/devops-manage/index.html new file mode 100644 index 00000000000..c7d38317f89 --- /dev/null +++ b/src/frontend/devops-manage/index.html @@ -0,0 +1,15 @@ + + + + + + + index + + +
+ + + diff --git a/src/frontend/devops-manage/package.json b/src/frontend/devops-manage/package.json new file mode 100644 index 00000000000..63eec243a69 --- /dev/null +++ b/src/frontend/devops-manage/package.json @@ -0,0 +1,52 @@ +{ + "name": "devops-manage", + "version": "1.0.0", + "description": "", + "scripts": { + "dev": "bk-cli-service-webpack dev", + "build": "bk-cli-service-webpack build", + "server": "node ./paas-server/index.js", + "lint:style": "stylelint **/*.{html,vue,css,sass,scss,less} --fix" + }, + "keywords": [ + "bk-ci", + "metrics", + "vue3", + "webpack-5" + ], + "author": "", + "license": "ISC", + "dependencies": { + "art-template": "^4.13.2", + "bkui-vue": "0.0.1-beta.213", + "connect-history-api-fallback": "^2.0.0", + "cookie-parser": "^1.4.5", + "dayjs": "^1.11.2", + "express": "^4.18.2", + "express-art-template": "^1.0.1", + "pinia": "^2.0.23", + "request": "^2.88.2", + "vue": "^3.2.41", + "vue-router": "^4.1.6" + }, + "devDependencies": { + "@blueking/babel-preset-bk": "^2.1.0-beta7", + "@blueking/cli-service-webpack": "0.0.0-beta.56", + "@blueking/eslint-config-bk": "2.1.0-beta.12", + "@blueking/stylelint-config-bk": "^2.1.0-beta.9", + "enhanced-resolve": "^5.10.0", + "postcss": "~8.4.16", + "postcss-import": "^15.0.0", + "postcss-mixins": "^9.0.4", + "postcss-nested": "^6.0.0", + "postcss-nested-ancestors": "^3.0.0", + "postcss-preset-env": "^7.8.2", + "postcss-simple-vars": "^7.0.0", + "postcss-url": "^10.1.3", + "typescript": "^4.8.4" + }, + "engines": { + "node": ">= 14.16.1", + "npm": ">= 6.4.1 <7" + } +} diff --git a/src/frontend/devops-manage/postcss.config.js b/src/frontend/devops-manage/postcss.config.js new file mode 100644 index 00000000000..9f2b1ce9273 --- /dev/null +++ b/src/frontend/devops-manage/postcss.config.js @@ -0,0 +1,32 @@ +const fs = require('fs'); +const path = require('path'); +const { CachedInputFileSystem, ResolverFactory } = require('enhanced-resolve'); + +const myResolver = ResolverFactory.createResolver({ + alias: { + '@': path.resolve(__dirname, './lib/client/src'), + }, + preferRelative: true, + fileSystem: new CachedInputFileSystem(fs, 4000), + useSyncFileSystemCalls: true, + extensions: ['.css'], +}); + +module.exports = { + plugins: [ + [ + 'postcss-import', + { + resolve(id, baseDir) { + return myResolver.resolveSync({}, baseDir, id); + }, + }, + ], + 'postcss-simple-vars', + 'postcss-mixins', + 'postcss-nested-ancestors', + 'postcss-nested', + 'postcss-preset-env', + 'postcss-url', + ], +}; diff --git a/src/frontend/devops-manage/src/app.vue b/src/frontend/devops-manage/src/app.vue new file mode 100644 index 00000000000..a44ab87b704 --- /dev/null +++ b/src/frontend/devops-manage/src/app.vue @@ -0,0 +1,3 @@ + diff --git a/src/frontend/devops-manage/src/common/util.ts b/src/frontend/devops-manage/src/common/util.ts new file mode 100644 index 00000000000..543c72b4e61 --- /dev/null +++ b/src/frontend/devops-manage/src/common/util.ts @@ -0,0 +1,60 @@ +import dayjs from 'dayjs'; + +// 获取 cookie object +export function getCookies(strCookie = document.cookie): any { + if (!strCookie) { + return {}; + } + const arrCookie = strCookie.split('; ');// 分割 + const cookiesObj = {}; + arrCookie.forEach((cookieStr) => { + const arr = cookieStr.split('='); + const [key, value] = arr; + if (key) { + cookiesObj[key] = value; + } + }); + return cookiesObj; +} + +/** + * 检查是不是 object 类型 + * @param item + * @returns {boolean} + */ +export function isObject(item: any) { + return Object.prototype.toString.apply(item) === '[object Object]'; +} + + +/** + * 深度合并多个对象 + * @param objectArray 待合并列表 + * @returns {object} 合并后的对象 + */ +export function deepMerge(...objectArray: object[]) { + return objectArray.reduce((acc, obj) => { + Object.keys(obj || {}).forEach((key) => { + const pVal = acc[key]; + const oVal = obj[key]; + + if (isObject(pVal) && isObject(oVal)) { + acc[key] = deepMerge(pVal, oVal); + } else { + acc[key] = oVal; + } + }); + + return acc; + }, {}); +} + +/** + * 时间格式化 + * @param val 待格式化时间 + * @param format 格式 + * @returns 格式化后的时间 + */ +export function timeFormatter(val: string, format = 'YYYY-MM-DD HH:mm:ss') { + return val ? dayjs(val).format(format) : '--'; +} diff --git a/src/frontend/devops-manage/src/components/manage-header.vue b/src/frontend/devops-manage/src/components/manage-header.vue new file mode 100644 index 00000000000..4c92c6c9966 --- /dev/null +++ b/src/frontend/devops-manage/src/components/manage-header.vue @@ -0,0 +1,53 @@ + + + + + diff --git a/src/frontend/devops-manage/src/composables/use-filter.ts b/src/frontend/devops-manage/src/composables/use-filter.ts new file mode 100644 index 00000000000..608f3669c48 --- /dev/null +++ b/src/frontend/devops-manage/src/composables/use-filter.ts @@ -0,0 +1,9 @@ +export default () => { + const handleChange = (newStatus: string) => { + console.log('I am updated', newStatus); + }; + + return { + handleChange, + }; +}; diff --git a/src/frontend/devops-manage/src/css/index.css b/src/frontend/devops-manage/src/css/index.css new file mode 100644 index 00000000000..577385c9eea --- /dev/null +++ b/src/frontend/devops-manage/src/css/index.css @@ -0,0 +1,2 @@ +@import url(./main.css); +@import url(./reset.css); diff --git a/src/frontend/devops-manage/src/css/main.css b/src/frontend/devops-manage/src/css/main.css new file mode 100644 index 00000000000..c3847d6adce --- /dev/null +++ b/src/frontend/devops-manage/src/css/main.css @@ -0,0 +1,13 @@ +.app { + font-family: Avenir, Helvetica, Arial, sans-serif; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + text-align: center; + background: #f5f7fb; + color: #63656e; + font-size: 12px; + text-align: left; + width: 100vw; + height: 100vh; + overflow: auto; +} diff --git a/src/frontend/devops-manage/src/css/reset.css b/src/frontend/devops-manage/src/css/reset.css new file mode 100644 index 00000000000..e7a0cf7efd7 --- /dev/null +++ b/src/frontend/devops-manage/src/css/reset.css @@ -0,0 +1,236 @@ +/*CSS Reset*/ +html, +body, +div, +dl, +dt, +dd, +ul, +ol, +li, +h1, +h2, +h3, +h4, +h5, +h6, +pre, +code, +form, +fieldset, +legend, +input, +textarea, +p, +blockquote, +tr, + +th, +td, +hgroup, +nav, +section, +article, +aside, +footer, +figure, +figcaption, +menu, +button, +applet, +object, + +iframe, +a, +abbr, + +acronym, + +address, +big, + +cite, + +code, +del, + +dfn, + +em, + +img, + +ins, + +kbd, + +q, +s, + +samp, +small, + +strike, + +strong, + +sub, + +sup, + +tt, + +var, +b, +u, + +i, + +center, +label, +table, + +caption, + +tbody, + +tfoot, + +thead, + +canvas, + +details, +embed, +main, + +output, + +ruby, + +summary, +time, + +mark, + +audio, + +video { + margin: 0; + padding: 0; +} + +/* HTML5 display-role reset for older browsers */ +article, + +aside, + +details, + +figcaption, + +figure, + +footer, + +hgroup, + +menu, + +nav, + +section { + display: block; +} + +body { + font-family: 'Helvetica Neue', Helvetica, STHeiTi, sans-serif; + line-height: 1.5; + font-size: 12px; + color: #000; + user-select: none; + user-select: none; + text-size-adjust: 100%; + -webkit-tap-highlight-color: transparent; + outline: 0; +} + +h1, +h2, +h3, +h4, +h5, +h6 { + font-size: 100%; + font-weight: normal; +} + +table { + border-collapse: collapse; + border-spacing: 0; +} + +caption, +th { + text-align: left; +} + +fieldset, +img { + border: 0; +} + +li { + list-style: none; +} + +ins { + text-decoration: none; +} + +del { + text-decoration: line-through; +} + +input, +button, +textarea, +select, +optgroup, +option { + font-family: inherit; + font-size: inherit; + font-style: inherit; + font-weight: inherit; + outline: 0; +} + +/* different browsers have different calculation methods for the box model width of input, select, and textarea */ +input, +select, +textarea { + box-sizing: content-box; + box-sizing: content-box; + box-sizing: content-box; +} + +button { + appearance: none; + border: 0; + background: none; +} + +a { + -webkit-touch-callout: none; + text-decoration: none; +} + +:focus { + outline: 0; + -webkit-tap-highlight-color: transparent; +} + +em, +i { + font-style: normal; +} diff --git a/src/frontend/devops-manage/src/http/api.ts b/src/frontend/devops-manage/src/http/api.ts new file mode 100644 index 00000000000..abfa2929bec --- /dev/null +++ b/src/frontend/devops-manage/src/http/api.ts @@ -0,0 +1,5 @@ +import fetch from './fetch'; + +const apiPerfix = '/api'; + +export const getUser = () => fetch.get(`${apiPerfix}/user`); diff --git a/src/frontend/devops-manage/src/http/fetch/error-interceptor.ts b/src/frontend/devops-manage/src/http/fetch/error-interceptor.ts new file mode 100644 index 00000000000..48783719b01 --- /dev/null +++ b/src/frontend/devops-manage/src/http/fetch/error-interceptor.ts @@ -0,0 +1,21 @@ +import type { IFetchConfig } from './index'; +import { Message } from 'bkui-vue'; + +// 请求执行失败拦截器 +export default (error: any, config: IFetchConfig) => { + const { + code, + message, + response, + } = error; + switch (code) { + // 用户登录状态失效 + case 401: + console.log(response); + } + // 全局捕获错误给出提示 + if (config.globalError) { + Message({ theme: 'error', message }); + } + return Promise.reject(error); +}; diff --git a/src/frontend/devops-manage/src/http/fetch/index.ts b/src/frontend/devops-manage/src/http/fetch/index.ts new file mode 100644 index 00000000000..d5b46eadc3e --- /dev/null +++ b/src/frontend/devops-manage/src/http/fetch/index.ts @@ -0,0 +1,103 @@ +import { deepMerge } from '@/common/util'; +import successInterceptor from './success-interceptor'; +import errorInterceptor from './error-interceptor'; +import RequestError from './request-error'; + +export interface IFetchConfig extends RequestInit { + responseType?: 'json' | 'text' | 'arrayBuffer' | 'blob' | 'formData', + globalError?: Boolean +} + +type HttpMethod = (url: string, payload?: any, config?: IFetchConfig) => Promise; + +interface IHttp { + get?: HttpMethod; + post?: HttpMethod; + put?: HttpMethod; + delete?: HttpMethod; + head?: HttpMethod; + options?: HttpMethod; + patch?: HttpMethod; +} + +// Content-Type +const contentTypeMap = { + json: 'application/json', + text: 'text/plain', + formData: 'multipart/form-data', +}; +const methodsWithoutData = ['delete', 'get', 'head', 'options']; +const methodsWithData = ['post', 'put', 'patch']; +const allMethods = [...methodsWithoutData, ...methodsWithData]; + +// 拼装发送请求配置 +const getFetchConfig = (method: string, payload: any, config: IFetchConfig) => { + // 合并配置 + let fetchConfig: IFetchConfig = deepMerge( + { + method: method.toLocaleUpperCase(), + mode: 'cors', + cache: 'default', + credentials: 'include', + headers: { + 'X-Requested-With': 'fetch', + 'Content-Type': contentTypeMap[config.responseType] || 'application/json', + }, + redirect: 'follow', + referrerPolicy: 'no-referrer-when-downgrade', + responseType: 'json', + globalError: true, + }, + config, + ); + // merge payload + if (methodsWithData.includes(method)) { + fetchConfig = deepMerge(fetchConfig, { body: JSON.stringify(payload) }); + } else { + fetchConfig = deepMerge(fetchConfig, payload); + } + return fetchConfig; +}; + +// 拼装发送请求 url +const getFetchUrl = (url: string, method: string, payload = {}) => { + try { + // 基础 url + const baseUrl = location.origin + process.env.BK_AJAX_URL_PREFIX; + // 构造 url 对象 + const urlObject: URL = new URL(url, baseUrl); + // get 请求需要将参数拼接到url上 + if (methodsWithoutData.includes(method)) { + Object.keys(payload).forEach((key) => { + const value = payload[key]; + if (!['', undefined, null].includes(value)) { + urlObject.searchParams.append(key, value); + } + }); + } + return urlObject.href; + } catch (error: any) { + throw new RequestError(-1, error.message); + } +}; + +// 在自定义对象 http 上添加各请求方法 +const http: IHttp = {}; +allMethods.forEach((method) => { + Object.defineProperty(http, method, { + get() { + return async (url: string, payload: any, config: IFetchConfig = {}) => { + const fetchConfig: IFetchConfig = getFetchConfig(method, payload, config); + try { + const fetchUrl = getFetchUrl(url, method, payload); + const response = await fetch(fetchUrl, fetchConfig); + return await successInterceptor(response, fetchConfig); + } catch (err) { + return errorInterceptor(err, fetchConfig); + } + }; + }, + }); +}); + +export default http; diff --git a/src/frontend/devops-manage/src/http/fetch/request-error.ts b/src/frontend/devops-manage/src/http/fetch/request-error.ts new file mode 100644 index 00000000000..763759da82f --- /dev/null +++ b/src/frontend/devops-manage/src/http/fetch/request-error.ts @@ -0,0 +1,11 @@ +export default class RequestError extends Error { + public code: number; + public message: string; + public response: any; + constructor(code: number, message: string, response?: any) { + super(); + this.code = code; + this.message = message; + this.response = response; + } +} diff --git a/src/frontend/devops-manage/src/http/fetch/success-interceptor.ts b/src/frontend/devops-manage/src/http/fetch/success-interceptor.ts new file mode 100644 index 00000000000..261892f8982 --- /dev/null +++ b/src/frontend/devops-manage/src/http/fetch/success-interceptor.ts @@ -0,0 +1,26 @@ +import type { IFetchConfig } from './index'; +import RequestError from './request-error'; + +// 请求成功执行拦截器 +export default async (response: Response, config: IFetchConfig) => { + const { + status = response.status, + data, + message = response.statusText, + } = await response[config.responseType](); + if (response.ok) { + // 对应 HTTP 请求的状态码 200 到 299 + // 校验接口返回的数据,status 为 0 表示业务成功 + switch (status) { + // 接口请求成功 + case 0: + return Promise.resolve(data); + // 后端业务处理报错 + default: + throw new RequestError(status, message || '系统错误', data); + } + } else { + // 处理 http 非 200 异常 + throw new RequestError(status || -1, message || '系统错误', data); + } +}; diff --git a/src/frontend/devops-manage/src/main.ts b/src/frontend/devops-manage/src/main.ts new file mode 100644 index 00000000000..b9a3dc382a7 --- /dev/null +++ b/src/frontend/devops-manage/src/main.ts @@ -0,0 +1,16 @@ +import { createApp } from 'vue'; +import { createPinia } from 'pinia'; +import router from './router'; +import App from './app.vue'; +import './css/index.css'; + +// 全量引入 bkui-vue +import bkui from 'bkui-vue'; +// 全量引入 bkui-vue 样式 +import 'bkui-vue/dist/style.css'; + +createApp(App) + .use(router) + .use(createPinia()) + .use(bkui) + .mount('.app'); diff --git a/src/frontend/devops-manage/src/router/index.ts b/src/frontend/devops-manage/src/router/index.ts new file mode 100644 index 00000000000..1a477c9fc97 --- /dev/null +++ b/src/frontend/devops-manage/src/router/index.ts @@ -0,0 +1,47 @@ +import { + createRouter, + createWebHistory, +} from 'vue-router'; + +const HomeEntry = () => import(/* webpackChunkName: "Manage" */ '../app.vue'); +const ApplyProject = () => import(/* webpackChunkName: "Apply" */ '../views/apply-project.vue'); +// 项目管理 +const ManageEntry = () => import(/* webpackChunkName: "Manage" */ '../views/manage/manage-entry.vue'); +const EditProject = () => import(/* webpackChunkName: "Manage" */ '../views/manage/project/edit-project.vue'); +const ShowProject = () => import(/* webpackChunkName: "Manage" */ '../views/manage/project/show-project.vue'); +// 用户组管理 +const UserGroup = () => import(/* webpackChunkName: "Manage" */ '../views/manage/group/user-group.vue'); + +export default createRouter({ + history: createWebHistory(), + routes: [ + { + path: '/', + component: HomeEntry, + children: [ + { + path: 'apply', + component: ApplyProject, + }, + { + path: 'manage', + component: ManageEntry, + children: [ + { + path: 'show', + component: ShowProject, + }, + { + path: 'edit', + component: EditProject, + }, + { + path: 'group', + component: UserGroup, + }, + ], + }, + ], + }, + ], +}); diff --git a/src/frontend/devops-manage/src/store/user.ts b/src/frontend/devops-manage/src/store/user.ts new file mode 100644 index 00000000000..bbfea645890 --- /dev/null +++ b/src/frontend/devops-manage/src/store/user.ts @@ -0,0 +1,16 @@ +import { defineStore } from 'pinia'; +import type { IUser } from 'types/store'; + +export const useUser = defineStore('user', { + state: () => ({ + user: { + username: '', + avatar_url: '', + }, + }), + actions: { + setUser(user: IUser) { + this.user = user; + }, + }, +}); diff --git a/src/frontend/devops-manage/src/types/store.ts b/src/frontend/devops-manage/src/types/store.ts new file mode 100644 index 00000000000..ba071d312b5 --- /dev/null +++ b/src/frontend/devops-manage/src/types/store.ts @@ -0,0 +1,4 @@ +export interface IUser { + username: string; + avatar_url: string; +} diff --git a/src/frontend/devops-manage/src/views/apply-project.vue b/src/frontend/devops-manage/src/views/apply-project.vue new file mode 100644 index 00000000000..e63d1d457d1 --- /dev/null +++ b/src/frontend/devops-manage/src/views/apply-project.vue @@ -0,0 +1,14 @@ + + + + + diff --git a/src/frontend/devops-manage/src/views/manage/group/user-group.vue b/src/frontend/devops-manage/src/views/manage/group/user-group.vue new file mode 100644 index 00000000000..ba23d2d6181 --- /dev/null +++ b/src/frontend/devops-manage/src/views/manage/group/user-group.vue @@ -0,0 +1,11 @@ + + + + + diff --git a/src/frontend/devops-manage/src/views/manage/manage-entry.vue b/src/frontend/devops-manage/src/views/manage/manage-entry.vue new file mode 100644 index 00000000000..f29a2afeab3 --- /dev/null +++ b/src/frontend/devops-manage/src/views/manage/manage-entry.vue @@ -0,0 +1,58 @@ + + + + + diff --git a/src/frontend/devops-manage/src/views/manage/project/edit-project.vue b/src/frontend/devops-manage/src/views/manage/project/edit-project.vue new file mode 100644 index 00000000000..ba23d2d6181 --- /dev/null +++ b/src/frontend/devops-manage/src/views/manage/project/edit-project.vue @@ -0,0 +1,11 @@ + + + + + diff --git a/src/frontend/devops-manage/src/views/manage/project/show-project.vue b/src/frontend/devops-manage/src/views/manage/project/show-project.vue new file mode 100644 index 00000000000..ba23d2d6181 --- /dev/null +++ b/src/frontend/devops-manage/src/views/manage/project/show-project.vue @@ -0,0 +1,11 @@ + + + + + diff --git a/src/frontend/devops-manage/static/images/favicon.png b/src/frontend/devops-manage/static/images/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..4d4767b5671e21c6b8fc16cc9206a18a37404d50 GIT binary patch literal 1472 zcmdT^Jq`gu82zwOh{#r=S|SQZpjSD9s8pg5AyH^t#8t#W9KscR^EPj?-|UP|!m{7n z_cxpIvmyvx(U=PN}KHb_z`^$iv%zO2k$*dF+rWI0xfjz!pq|2zSgz)K#UOz`MRx7~lUdpk~HX0$%v;I_ghqcOOJ^Trb2K`(cZE44Dl*=>C_( x6wo~!qQ~>*Hs&nm86%Hk@*8LS-%xj{Z+r^GmdF*?^;t>J(K(qWR~SZBxNnmTwW + + + + + 登陆成功 + + + + + diff --git a/src/frontend/devops-manage/tsconfig.json b/src/frontend/devops-manage/tsconfig.json new file mode 100644 index 00000000000..7fb4284a2c3 --- /dev/null +++ b/src/frontend/devops-manage/tsconfig.json @@ -0,0 +1,45 @@ +{ + "compilerOptions": { + "target": "esnext", + "module": "esnext", + "moduleResolution": "node", + "strict": true, + "isolatedModules": false, + "esModuleInterop": true, + "noImplicitThis": true, + "noImplicitAny": true, + "strictNullChecks": true, + "suppressImplicitAnyIndexErrors": true, + "allowSyntheticDefaultImports": true, + "resolveJsonModule": true, + "jsx": "preserve", + "outDir": "dist", + "types": [ + "node" + ], + "paths": { + "@/*": [ + "./src/*" + ], + "@blueking/*": [ + "./node_modules/@blueking/*" + ], + "types/*": [ + "./src/types/*" + ] + }, + "typeRoots": [ + "typings" + ], + "lib": [ + "esnext", + "dom", + "dom.iterable", + "scripthost" + ] + }, + "include": [ + "./**/*", + ".eslintrc.js" + ] +} diff --git a/src/frontend/devops-manage/types/global.d.ts b/src/frontend/devops-manage/types/global.d.ts new file mode 100644 index 00000000000..a53afc0c549 --- /dev/null +++ b/src/frontend/devops-manage/types/global.d.ts @@ -0,0 +1,3 @@ +declare interface Window { + SITE_URL: string +} diff --git a/src/frontend/devops-manage/types/shims-vue.d.ts b/src/frontend/devops-manage/types/shims-vue.d.ts new file mode 100644 index 00000000000..01ac330ea6e --- /dev/null +++ b/src/frontend/devops-manage/types/shims-vue.d.ts @@ -0,0 +1,7 @@ + +declare module '*.vue' { + import type { DefineComponent } from 'vue'; + // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/ban-types + const component: DefineComponent<{}, {}, any>; + export default component; +} diff --git a/src/frontend/package.json b/src/frontend/package.json index 2bde03a38d3..2b8531bb61d 100644 --- a/src/frontend/package.json +++ b/src/frontend/package.json @@ -50,11 +50,14 @@ "devops-turbo", "devops-stream", "devops-metrics", + "devops-manage", "bk-pipeline" ], "nohoist": [ "devops-metrics", - "devops-metrics/**" + "devops-metrics/**", + "devops-manage", + "devops-manage/**" ] }, "dependencies": { From 1af2d1d7c25da2eac9b504338855db1702a7b8a9 Mon Sep 17 00:00:00 2001 From: xuzhan Date: Mon, 7 Nov 2022 20:40:38 +0800 Subject: [PATCH 002/735] =?UTF-8?q?feature:=20=E6=B7=BB=E5=8A=A0=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE=E7=AE=A1=E7=90=86=E5=89=8D=E7=AB=AF=E6=9C=8D=E5=8A=A1?= =?UTF-8?q?=20issue=20#7923?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/frontend/devops-manage/package.json | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/frontend/devops-manage/package.json b/src/frontend/devops-manage/package.json index 63eec243a69..57352181da7 100644 --- a/src/frontend/devops-manage/package.json +++ b/src/frontend/devops-manage/package.json @@ -6,7 +6,11 @@ "dev": "bk-cli-service-webpack dev", "build": "bk-cli-service-webpack build", "server": "node ./paas-server/index.js", - "lint:style": "stylelint **/*.{html,vue,css,sass,scss,less} --fix" + "lint:style": "stylelint **/*.{html,vue,css,sass,scss,less} --fix", + "public:dev": "cross-env NODE_ENV=master bk-cli-service-webpack build", + "public:test": "cross-env NODE_ENV=master bk-cli-service-webpack build", + "public:master": "cross-env NODE_ENV=master bk-cli-service-webpack build", + "public:external": "cross-env NODE_ENV=master bk-cli-service-webpack build" }, "keywords": [ "bk-ci", From cc23423d149d8dc5abb5c593bc2ab611473b078d Mon Sep 17 00:00:00 2001 From: xuzhan Date: Mon, 7 Nov 2022 21:14:45 +0800 Subject: [PATCH 003/735] =?UTF-8?q?feature:=20=E6=B7=BB=E5=8A=A0=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE=E7=AE=A1=E7=90=86=E5=89=8D=E7=AB=AF=E6=9C=8D=E5=8A=A1?= =?UTF-8?q?=20issue=20#7923?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/frontend/devops-manage/.bk.development.env | 2 ++ src/frontend/devops-manage/.bk.production.env | 2 ++ src/frontend/devops-manage/bk.config.js | 1 + src/frontend/devops-manage/package.json | 8 ++++---- 4 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/frontend/devops-manage/.bk.development.env b/src/frontend/devops-manage/.bk.development.env index badfd95a0f2..c95826a1c7c 100644 --- a/src/frontend/devops-manage/.bk.development.env +++ b/src/frontend/devops-manage/.bk.development.env @@ -8,3 +8,5 @@ BK_APP_HOST = 'localhost.com' # 开发 port BK_APP_PORT = 80 + +BK_OUTPUT_DIR = dist diff --git a/src/frontend/devops-manage/.bk.production.env b/src/frontend/devops-manage/.bk.production.env index 65dd668101d..49f819ae35c 100644 --- a/src/frontend/devops-manage/.bk.production.env +++ b/src/frontend/devops-manage/.bk.production.env @@ -2,3 +2,5 @@ # 登录地址 BK_LOGIN_URL = '{{ BK_LOGIN_URL }}' + +BK_OUTPUT_DIR = ../frontend/manage \ No newline at end of file diff --git a/src/frontend/devops-manage/bk.config.js b/src/frontend/devops-manage/bk.config.js index 84f667646a3..0bece5413c4 100644 --- a/src/frontend/devops-manage/bk.config.js +++ b/src/frontend/devops-manage/bk.config.js @@ -3,6 +3,7 @@ module.exports = { host: process.env.BK_APP_HOST, port: process.env.BK_APP_PORT, publicPath: process.env.BK_STATIC_URL, + outputDir: process.env.BK_OUTPUT_DIR, cache: true, open: false, replaceStatic: false, diff --git a/src/frontend/devops-manage/package.json b/src/frontend/devops-manage/package.json index 57352181da7..12174e5f521 100644 --- a/src/frontend/devops-manage/package.json +++ b/src/frontend/devops-manage/package.json @@ -7,10 +7,10 @@ "build": "bk-cli-service-webpack build", "server": "node ./paas-server/index.js", "lint:style": "stylelint **/*.{html,vue,css,sass,scss,less} --fix", - "public:dev": "cross-env NODE_ENV=master bk-cli-service-webpack build", - "public:test": "cross-env NODE_ENV=master bk-cli-service-webpack build", - "public:master": "cross-env NODE_ENV=master bk-cli-service-webpack build", - "public:external": "cross-env NODE_ENV=master bk-cli-service-webpack build" + "public:dev": "bk-cli-service-webpack build", + "public:test": "bk-cli-service-webpack build", + "public:master": "bk-cli-service-webpack build", + "public:external": "bk-cli-service-webpack build" }, "keywords": [ "bk-ci", From bc91369ea0d1acef916e29e59c03c910098b740d Mon Sep 17 00:00:00 2001 From: xuzhan Date: Mon, 7 Nov 2022 22:26:14 +0800 Subject: [PATCH 004/735] =?UTF-8?q?feature:=20=E6=B7=BB=E5=8A=A0=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE=E7=AE=A1=E7=90=86=E5=89=8D=E7=AB=AF=E6=9C=8D=E5=8A=A1?= =?UTF-8?q?=20issue=20#7923?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/frontend/devops-manage/.bk.production.env | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/frontend/devops-manage/.bk.production.env b/src/frontend/devops-manage/.bk.production.env index 49f819ae35c..552ecb6e5d0 100644 --- a/src/frontend/devops-manage/.bk.production.env +++ b/src/frontend/devops-manage/.bk.production.env @@ -3,4 +3,6 @@ # 登录地址 BK_LOGIN_URL = '{{ BK_LOGIN_URL }}' -BK_OUTPUT_DIR = ../frontend/manage \ No newline at end of file +BK_OUTPUT_DIR = ../frontend/manage + +BK_STATIC_URL = /manage/ From ca46eea0dddd427952256829b980bd0b33b83bcd Mon Sep 17 00:00:00 2001 From: xuzhan Date: Tue, 8 Nov 2022 10:26:08 +0800 Subject: [PATCH 005/735] =?UTF-8?q?feature:=20=E6=B7=BB=E5=8A=A0=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE=E7=AE=A1=E7=90=86=E5=89=8D=E7=AB=AF=E6=9C=8D=E5=8A=A1?= =?UTF-8?q?=20issue=20#7923?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/frontend/devops-manage/.babelrc | 1 - src/frontend/devops-manage/package.json | 8 +------- 2 files changed, 1 insertion(+), 8 deletions(-) diff --git a/src/frontend/devops-manage/.babelrc b/src/frontend/devops-manage/.babelrc index d4457ee3b86..a54eaa01a6a 100644 --- a/src/frontend/devops-manage/.babelrc +++ b/src/frontend/devops-manage/.babelrc @@ -3,4 +3,3 @@ "@blueking/babel-preset-bk" ] } - \ No newline at end of file diff --git a/src/frontend/devops-manage/package.json b/src/frontend/devops-manage/package.json index 12174e5f521..27534b0f514 100644 --- a/src/frontend/devops-manage/package.json +++ b/src/frontend/devops-manage/package.json @@ -14,22 +14,16 @@ }, "keywords": [ "bk-ci", - "metrics", + "manage", "vue3", "webpack-5" ], "author": "", "license": "ISC", "dependencies": { - "art-template": "^4.13.2", "bkui-vue": "0.0.1-beta.213", - "connect-history-api-fallback": "^2.0.0", - "cookie-parser": "^1.4.5", "dayjs": "^1.11.2", - "express": "^4.18.2", - "express-art-template": "^1.0.1", "pinia": "^2.0.23", - "request": "^2.88.2", "vue": "^3.2.41", "vue-router": "^4.1.6" }, From dedda43b981289591ba20bbbfef47b12490c7e2e Mon Sep 17 00:00:00 2001 From: xuzhan Date: Tue, 8 Nov 2022 11:08:43 +0800 Subject: [PATCH 006/735] =?UTF-8?q?feature:=20=E6=B7=BB=E5=8A=A0=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE=E7=AE=A1=E7=90=86=E5=89=8D=E7=AB=AF=E6=9C=8D=E5=8A=A1?= =?UTF-8?q?=20issue=20#7923?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/frontend/devops-manage/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/frontend/devops-manage/package.json b/src/frontend/devops-manage/package.json index 27534b0f514..9d57a611b2e 100644 --- a/src/frontend/devops-manage/package.json +++ b/src/frontend/devops-manage/package.json @@ -29,7 +29,7 @@ }, "devDependencies": { "@blueking/babel-preset-bk": "^2.1.0-beta7", - "@blueking/cli-service-webpack": "0.0.0-beta.56", + "@blueking/cli-service-webpack": "0.0.0-beta.57", "@blueking/eslint-config-bk": "2.1.0-beta.12", "@blueking/stylelint-config-bk": "^2.1.0-beta.9", "enhanced-resolve": "^5.10.0", From 73553690ef94be5c1d1159992a708024979dc989 Mon Sep 17 00:00:00 2001 From: xuzhan Date: Tue, 8 Nov 2022 11:14:10 +0800 Subject: [PATCH 007/735] =?UTF-8?q?feature:=20=E6=B7=BB=E5=8A=A0=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE=E7=AE=A1=E7=90=86=E5=89=8D=E7=AB=AF=E6=9C=8D=E5=8A=A1?= =?UTF-8?q?=20issue=20#7923?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/frontend/devops-manage/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/frontend/devops-manage/package.json b/src/frontend/devops-manage/package.json index 9d57a611b2e..d8cf8cb319e 100644 --- a/src/frontend/devops-manage/package.json +++ b/src/frontend/devops-manage/package.json @@ -29,7 +29,7 @@ }, "devDependencies": { "@blueking/babel-preset-bk": "^2.1.0-beta7", - "@blueking/cli-service-webpack": "0.0.0-beta.57", + "@blueking/cli-service-webpack": "0.0.0-beta.58", "@blueking/eslint-config-bk": "2.1.0-beta.12", "@blueking/stylelint-config-bk": "^2.1.0-beta.9", "enhanced-resolve": "^5.10.0", From 4091192f9bf86f807270a0ae228dcad16d452396 Mon Sep 17 00:00:00 2001 From: vhwweng <1010382269@qq.com> Date: Thu, 10 Nov 2022 17:29:41 +0800 Subject: [PATCH 008/735] =?UTF-8?q?feat:=20=E3=80=90=E5=89=8D=E7=AB=AF?= =?UTF-8?q?=E3=80=91=E6=96=B0=E5=A2=9E=E9=A1=B9=E7=9B=AE=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E6=9C=8D=E5=8A=A1=20#7923?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../devops-manage/.bk.development.env | 4 +- src/frontend/devops-manage/package.json | 1 + .../src/components/manage-header.vue | 40 ++++--- .../src/components/project-form.vue | 81 ++++++++++++++ src/frontend/devops-manage/src/css/main.css | 2 + src/frontend/devops-manage/src/main.ts | 18 +++ .../devops-manage/src/router/index.ts | 5 + .../devops-manage/src/views/apply-project.vue | 64 ++++++++++- .../src/views/manage/manage-entry.vue | 8 +- .../src/views/manage/project/edit-project.vue | 61 ++++++++++- .../src/views/manage/project/show-project.vue | 103 +++++++++++++++++- .../devops-manage/src/views/project-list.vue | 46 ++++++++ src/frontend/locale/manage/en-US.json | 3 + src/frontend/locale/manage/zh-CN.json | 2 + 14 files changed, 408 insertions(+), 30 deletions(-) create mode 100644 src/frontend/devops-manage/src/components/project-form.vue create mode 100644 src/frontend/devops-manage/src/views/project-list.vue create mode 100644 src/frontend/locale/manage/en-US.json create mode 100644 src/frontend/locale/manage/zh-CN.json diff --git a/src/frontend/devops-manage/.bk.development.env b/src/frontend/devops-manage/.bk.development.env index c95826a1c7c..c99bbc713e5 100644 --- a/src/frontend/devops-manage/.bk.development.env +++ b/src/frontend/devops-manage/.bk.development.env @@ -4,9 +4,9 @@ BK_LOGIN_URL = '' # 开发 host -BK_APP_HOST = 'localhost.com' +BK_APP_HOST = 'localhost' # 开发 port -BK_APP_PORT = 80 +BK_APP_PORT = 5000 BK_OUTPUT_DIR = dist diff --git a/src/frontend/devops-manage/package.json b/src/frontend/devops-manage/package.json index d8cf8cb319e..c59acc50901 100644 --- a/src/frontend/devops-manage/package.json +++ b/src/frontend/devops-manage/package.json @@ -25,6 +25,7 @@ "dayjs": "^1.11.2", "pinia": "^2.0.23", "vue": "^3.2.41", + "vue-i18n": "^9.1.10", "vue-router": "^4.1.6" }, "devDependencies": { diff --git a/src/frontend/devops-manage/src/components/manage-header.vue b/src/frontend/devops-manage/src/components/manage-header.vue index 4c92c6c9966..6074553c58c 100644 --- a/src/frontend/devops-manage/src/components/manage-header.vue +++ b/src/frontend/devops-manage/src/components/manage-header.vue @@ -7,28 +7,34 @@ defineProps<{ diff --git a/src/frontend/devops-manage/src/css/main.css b/src/frontend/devops-manage/src/css/main.css index c3847d6adce..ec2ee02e91e 100644 --- a/src/frontend/devops-manage/src/css/main.css +++ b/src/frontend/devops-manage/src/css/main.css @@ -10,4 +10,6 @@ width: 100vw; height: 100vh; overflow: auto; + display: flex; + flex-direction: column; } diff --git a/src/frontend/devops-manage/src/main.ts b/src/frontend/devops-manage/src/main.ts index b9a3dc382a7..ec2485734da 100644 --- a/src/frontend/devops-manage/src/main.ts +++ b/src/frontend/devops-manage/src/main.ts @@ -9,8 +9,26 @@ import bkui from 'bkui-vue'; // 全量引入 bkui-vue 样式 import 'bkui-vue/dist/style.css'; +// i18n +import { getCookies } from './common/util'; +import { createI18n } from 'vue-i18n'; +import ZhCN from '../../locale/manage/zh-CN.json'; +import EnUS from '../../locale/manage/en-US.json'; + +const cookiesObj = getCookies('blueking_language') || ''; +const i18n = createI18n({ + legacy: false, + locale: ['en', 'en-us', 'en_us'].includes((cookiesObj.blueking_language || '').toLowerCase()) ? 'en-US' : 'zh-CN', + fallbackLocale: 'zh-CN', + messages: { + 'zh-CN': ZhCN, + 'en-US': EnUS, + }, +}); + createApp(App) .use(router) .use(createPinia()) .use(bkui) + .use(i18n) .mount('.app'); diff --git a/src/frontend/devops-manage/src/router/index.ts b/src/frontend/devops-manage/src/router/index.ts index 1a477c9fc97..5a9ed9d8881 100644 --- a/src/frontend/devops-manage/src/router/index.ts +++ b/src/frontend/devops-manage/src/router/index.ts @@ -5,6 +5,7 @@ import { const HomeEntry = () => import(/* webpackChunkName: "Manage" */ '../app.vue'); const ApplyProject = () => import(/* webpackChunkName: "Apply" */ '../views/apply-project.vue'); +const ProjectList = () => import(/* webpackChunkName: "Manage" */ '../views/project-list.vue'); // 项目管理 const ManageEntry = () => import(/* webpackChunkName: "Manage" */ '../views/manage/manage-entry.vue'); const EditProject = () => import(/* webpackChunkName: "Manage" */ '../views/manage/project/edit-project.vue'); @@ -23,6 +24,10 @@ export default createRouter({ path: 'apply', component: ApplyProject, }, + { + path: 'list', + component: ProjectList, + }, { path: 'manage', component: ManageEntry, diff --git a/src/frontend/devops-manage/src/views/apply-project.vue b/src/frontend/devops-manage/src/views/apply-project.vue index e63d1d457d1..ddb34e38404 100644 --- a/src/frontend/devops-manage/src/views/apply-project.vue +++ b/src/frontend/devops-manage/src/views/apply-project.vue @@ -1,14 +1,68 @@ diff --git a/src/frontend/devops-manage/src/views/manage/manage-entry.vue b/src/frontend/devops-manage/src/views/manage/manage-entry.vue index f29a2afeab3..d1b973d4b25 100644 --- a/src/frontend/devops-manage/src/views/manage/manage-entry.vue +++ b/src/frontend/devops-manage/src/views/manage/manage-entry.vue @@ -1,14 +1,16 @@ @@ -63,7 +66,6 @@ - diff --git a/src/frontend/common-lib/user-group/index.vue b/src/frontend/common-lib/user-group/index.vue index 8bf7bee64b8..4a5b55cde0b 100644 --- a/src/frontend/common-lib/user-group/index.vue +++ b/src/frontend/common-lib/user-group/index.vue @@ -3,14 +3,14 @@ - - - - + + + diff --git a/src/frontend/devops-manage/src/components/user-group/group-aside.vue b/src/frontend/devops-manage/src/components/user-group/group-aside.vue index 649d483f3c6..6647f42c6ca 100644 --- a/src/frontend/devops-manage/src/components/user-group/group-aside.vue +++ b/src/frontend/devops-manage/src/components/user-group/group-aside.vue @@ -6,14 +6,14 @@ v-for="(group, index) in groupList" :key="index" @click="handleChangeTab(group)"> - {{ group.name }} + {{ group.name }} - - {{ group.user }} + + {{ group.userCount }} - - {{ group.group }} + + {{ group.departmentCount }} + @click="handleShowDeleteGroup(group)"> {{ $t('删除') }} @@ -49,13 +49,16 @@ {{ $t('关闭权限管理') }} + {{ $t('是否删除用户组', [deleteObj.group.name]) }} @@ -87,17 +90,30 @@ export default { type: Function, default: () => {}, }, + deleteGroup: { + type: Function, + default: () => {}, + }, }, emits: ['create-group', 'choose-group', 'delete-group'], data() { return { - activeTab: '管理员', + activeTab: '', deleteObj: { group: {}, isShow: false, + isLoading: false, }, }; }, + watch: { + groupList: { + handler() { + this.activeTab = this.groupList[0]?.name; + }, + immediate: true, + }, + }, methods: { handleShowDeleteGroup(group) { this.deleteObj.group = group; @@ -108,8 +124,13 @@ export default { this.deleteObj.group = {}; }, handleDeleteGroup() { - this.$emit('delete-group', this.deleteObj.group); - this.handleHiddenDeleteGroup(); + this.deleteObj.isLoading = true; + return this + .deleteGroup(this.deleteObj.group) + .then(() => { + this.deleteObj.isLoading = false; + this.handleHiddenDeleteGroup(); + }); }, handleChangeTab(group) { this.activeTab = group.name; @@ -167,6 +188,10 @@ export default { .group-active { color: #3A84FF; background-color: #E1ECFF; + .user-num, .group-num { + background-color: #A3C5FD; + color: #fff; + } } .user-num, .group-num { @@ -175,7 +200,10 @@ export default { } .group-name { display: inline-block; - min-width: 110px; + width: 100px; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; } .user-num, .group-num { @@ -190,7 +218,7 @@ export default { line-height: 16px; margin-right: 3px; text-align: center; - color: #979BA5; + color: #C4C6CC; } .more-icon { border-radius: 50%; @@ -232,4 +260,7 @@ export default { margin-bottom: 20px; text-align: center; } + .small-size { + scale: 0.9; + } diff --git a/src/frontend/devops-manage/src/components/user-group/group-entry.vue b/src/frontend/devops-manage/src/components/user-group/group-entry.vue index a71ec781ad2..c5e7b2f7339 100644 --- a/src/frontend/devops-manage/src/components/user-group/group-entry.vue +++ b/src/frontend/devops-manage/src/components/user-group/group-entry.vue @@ -3,14 +3,14 @@ @@ -162,7 +163,8 @@ export default { projectCode, }) .then((res) => { - this.groupList = res.data; + this.groupList = res; + this.iamIframePath = `user-group-detail/${res[0]?.id}`; }); }, @@ -183,9 +185,27 @@ export default { projectCode, }) .then((res) => { - this.memberGroupList = res.data; + this.memberGroupList = res; }); }, + + /** + * 删除用户组 + */ + handleDeleteGroup(group: any) { + const { + resourceType, + projectCode, + } = this; + + return http + .deleteGroup({ + resourceType, + projectCode, + groupId: group.id, + }) + .then(() => this.fetchMemberGroupList()); + }, }, }; From 4aa9d4f908326b48e92d5c7fa3d4cfd234cb9846 Mon Sep 17 00:00:00 2001 From: vhwweng <1010382269@qq.com> Date: Thu, 9 Feb 2023 15:36:25 +0800 Subject: [PATCH 047/735] =?UTF-8?q?feature:=20=E6=B7=BB=E5=8A=A0=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE=E7=AE=A1=E7=90=86=E5=89=8D=E7=AB=AF=E6=9C=8D=E5=8A=A1?= =?UTF-8?q?=20issue=20#7923?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/components/project-form.vue | 13 +- .../src/components/user-group/group-aside.vue | 70 +- .../src/components/user-group/group-entry.vue | 56 +- src/frontend/devops-manage/src/http/api.ts | 11 +- .../src/views/manage/group/group-entry.vue | 8 + .../src/views/manage/project/edit-project.vue | 41 +- .../src/views/manage/project/show-project.vue | 210 ++++- .../src/components/permission-aside.vue | 2 +- .../src/components/permission-header.vue | 1 + .../devops-permission/src/css/fonts.css | 18 + .../src/css/fonts/iconcool.eot | Bin 1968 -> 2816 bytes .../src/css/fonts/iconcool.svg | 18 + .../src/css/fonts/iconcool.ttf | Bin 1800 -> 2648 bytes .../src/css/fonts/iconcool.woff | Bin 1112 -> 1692 bytes .../devops-permission/src/http/api.ts | 40 +- .../devops-permission/src/http/fetch/index.ts | 1 + .../src/http/fetch/success-interceptor.ts | 4 +- src/frontend/devops-permission/src/main.ts | 2 +- .../devops-permission/src/utils/dom.js | 50 ++ .../devops-permission/src/utils/tools.js | 19 + .../applyPermission/apply-permission.vue | 125 ++- .../views/applyPermission/group-detail.vue | 104 ++- .../views/applyPermission/group-search.vue | 217 +++-- .../views/applyPermission/search-select.vue | 816 ++++++++++++++++++ .../src/views/applyPermission/selectTag.vue | 79 ++ 25 files changed, 1723 insertions(+), 182 deletions(-) create mode 100644 src/frontend/devops-permission/src/utils/dom.js create mode 100644 src/frontend/devops-permission/src/utils/tools.js create mode 100644 src/frontend/devops-permission/src/views/applyPermission/search-select.vue create mode 100644 src/frontend/devops-permission/src/views/applyPermission/selectTag.vue diff --git a/src/frontend/devops-manage/src/components/project-form.vue b/src/frontend/devops-manage/src/components/project-form.vue index 95829c1f267..84a13ad00fd 100644 --- a/src/frontend/devops-manage/src/components/project-form.vue +++ b/src/frontend/devops-manage/src/components/project-form.vue @@ -1,6 +1,7 @@ @@ -261,7 +279,7 @@ prettyDateTimeFormat } from '@/utils/' import ResetAuthDialog from './ResetAuthDialog.vue' - + export default { name: 'basicSetting', components: { @@ -415,7 +433,6 @@ * 校验仓库是否已经在其他项目开启了PAC */ handleCheckPacProject (repoUrl) { - console.log(this.repositoryType, 'this.repositoryType') if (this.isGit && repoUrl) { this.checkPacProject({ repoUrl, @@ -603,6 +620,10 @@ async openValidate () { window.location.href = this[`${this.codelibTypeConstants}OAuth`].url + }, + + updateList () { + this.$emit('updateList') } } } @@ -725,6 +746,7 @@ } .history-item { display: inline-flex; + line-height: 16px; min-width: 230px; max-width: 300px; margin-right: 200px; @@ -732,6 +754,7 @@ .label { width: 120px; font-size: 12px; + font-weight: 400; color: #979BA5; } .content { diff --git a/src/frontend/devops-codelib/src/components/CodeLibDetail/index.vue b/src/frontend/devops-codelib/src/components/CodeLibDetail/index.vue index 3f2d00b89f4..6f1cb163c3a 100644 --- a/src/frontend/devops-codelib/src/components/CodeLibDetail/index.vue +++ b/src/frontend/devops-codelib/src/components/CodeLibDetail/index.vue @@ -91,6 +91,7 @@ :type="repoInfo['@type']" :fetch-repo-detail="fetchRepoDetail" :refresh-codelib-list="refreshCodelibList" + @updateList="updateList" > @@ -138,6 +139,10 @@ }, refreshCodelibList: { type: Function + }, + switchPage: { + type: Function, + required: true } }, data () { @@ -244,7 +249,7 @@ message: this.$t('codelib.保存成功'), theme: 'success' }) - this.$emit('updateList') + this.updateList() }).catch(e => { this.$bkMessage({ message: e.message || e, @@ -257,6 +262,10 @@ }) }, + updateList () { + this.switchPage(1, this.$route.query.limit) + }, + /** * 取消编辑 关闭代码库别名编辑状态 */ @@ -383,7 +392,7 @@ } span { display: inline-block; - max-width: 500px; + max-width: 400px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; diff --git a/src/frontend/devops-codelib/src/components/CodeLibDetail/timeline-collapse.vue b/src/frontend/devops-codelib/src/components/CodeLibDetail/timeline-collapse.vue index c84629f6b26..ab18fae5e72 100644 --- a/src/frontend/devops-codelib/src/components/CodeLibDetail/timeline-collapse.vue +++ b/src/frontend/devops-codelib/src/components/CodeLibDetail/timeline-collapse.vue @@ -30,7 +30,7 @@ {{ $t('codelib.一键重新触发') }} @@ -39,10 +39,7 @@ 'right-shape': true, 'right-down': activeIndex === index }" - svg type="angle-right" - width="24" - height="24" /> @@ -77,7 +74,7 @@ @@ -85,7 +82,8 @@ @@ -143,30 +141,45 @@ /** * 一键重新触发 */ - handleReplayAll (id) { - this.replayAllEvent({ - projectId: this.projectId, - eventId: id - }).then(() => { - this.$bkMessage({ - theme: 'success', - message: this.$t('codelib.触发成功') - }) + handleReplayAll (eventId) { + this.$bkInfo({ + title: this.$t('codelib.确认重放此事件吗?'), + confirmLoading: true, + confirmFn: async () => { + this.replayAllEvent({ + projectId: this.projectId, + eventId + }).then(() => { + this.$bkMessage({ + theme: 'success', + message: this.$t('codelib.触发成功') + }) + }) + } }) }, /** * 重新触发 */ - handleReplay (id) { - this.replayEvent({ - projectId: this.projectId, - detailId: id - }).then(() => { - this.$bkMessage({ - theme: 'success', - message: this.$t('codelib.触发成功') - }) + handleReplay (payload) { + const { detailId, pipelineName } = payload + this.$bkInfo({ + extCls: 'replay-dialog', + width: 400, + title: this.$t('codelib.确认以此事件重新触发流水线 X 吗?', [pipelineName]), + confirmLoading: true, + confirmFn: async () => { + this.replayEvent({ + projectId: this.projectId, + detailId + }).then(() => { + this.$bkMessage({ + theme: 'success', + message: this.$t('codelib.触发成功') + }) + }) + } }) }, @@ -248,7 +261,7 @@ margin-bottom: 8px; cursor: pointer; &.active { - background-color: #E1ECFF; + background-color: #F0F5FF; } .title { display: flex; @@ -276,6 +289,8 @@ } } .right-shape { + font-size: 24px !important; + color: #C4C6CC; transition: 200ms transform; &.right-down { transform: rotate(90deg); @@ -319,11 +334,19 @@ } } .trigger-table-pagination { - height: 63px; - padding: 14px 20px 0; + height: 43px; + padding: 5px 20px 0; } .is-show-table { animation: fade-in 1s ease-in-out; } } + + + diff --git a/src/frontend/devops-codelib/src/components/CodeLibDetail/trigger-event.vue b/src/frontend/devops-codelib/src/components/CodeLibDetail/trigger-event.vue index 315df11cc57..a1cda5f01be 100644 --- a/src/frontend/devops-codelib/src/components/CodeLibDetail/trigger-event.vue +++ b/src/frontend/devops-codelib/src/components/CodeLibDetail/trigger-event.vue @@ -9,6 +9,7 @@ :options="{ disabledDate: time => time.getTime() > Date.now() }" + :key="repoId" > @@ -39,7 +41,7 @@ -
diff --git a/src/frontend/locale/pipeline/en-US.json b/src/frontend/locale/pipeline/en-US.json index 75553a45bf4..b4928237cb5 100644 --- a/src/frontend/locale/pipeline/en-US.json +++ b/src/frontend/locale/pipeline/en-US.json @@ -1221,5 +1221,6 @@ "downloadLater": "Download later", "copyAsTemplateInstance": "Copy As Instance", "downloadDisabledTips": "Exceeds 10 GB. Please download in batches from the artifact repository.", - "pipelineConstraintModeTips": "In constraint mode, You can't arrange the pipeline freely and should update the instance through template" + "pipelineConstraintModeTips": "In constraint mode, You can't arrange the pipeline freely and should update the instance through template", + "copy": "Copy" } \ No newline at end of file diff --git a/src/frontend/locale/pipeline/zh-CN.json b/src/frontend/locale/pipeline/zh-CN.json index 66dd2685fe0..5b3b9f193e4 100644 --- a/src/frontend/locale/pipeline/zh-CN.json +++ b/src/frontend/locale/pipeline/zh-CN.json @@ -430,7 +430,7 @@ "execTimes": "已执行次数", "known": "知道了", "noExecution": "未执行过", - "copyAs": "复制流水线", + "copyAs": "复制为流水线", "exportPipelineJson": "导出", "importModifyPipelineJson": "导入更新", "updatePipelineJson": "更新流水线", @@ -1226,5 +1226,6 @@ "downloadLater": "稍后再下载", "copyAsTemplateInstance": "复制为模板实例", "downloadDisabledTips": "目录下的文件大小超过 10 G,请到制品库分批下载", - "pipelineConstraintModeTips": "约束模式下,流水线编排随模板更新,不能自由调整" + "pipelineConstraintModeTips": "约束模式下,流水线编排随模板更新,不能自由调整", + "copy": "复制" } \ No newline at end of file From 29b414666fc6dc95cb7c69b22e7cb730a3451d62 Mon Sep 17 00:00:00 2001 From: vhwweng <1010382269@qq.com> Date: Thu, 16 Nov 2023 16:21:43 +0800 Subject: [PATCH 616/735] =?UTF-8?q?feat:=20=E6=B5=81=E6=B0=B4=E7=BA=BF?= =?UTF-8?q?=E6=A8=A1=E6=9D=BF=E5=AE=9E=E4=BE=8B=E5=A2=9E=E5=8A=A0=E4=B8=80?= =?UTF-8?q?=E4=B8=AA=E5=A4=8D=E5=88=B6=E5=AE=9E=E4=BE=8B=E7=9A=84=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=20#9579?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/pipelineList/PipelineTableView.vue | 12 +++++++++--- .../src/components/template/instance-message.vue | 1 + 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/frontend/devops-pipeline/src/components/pipelineList/PipelineTableView.vue b/src/frontend/devops-pipeline/src/components/pipelineList/PipelineTableView.vue index c66ec2eb796..ec47ea6256d 100755 --- a/src/frontend/devops-pipeline/src/components/pipelineList/PipelineTableView.vue +++ b/src/frontend/devops-pipeline/src/components/pipelineList/PipelineTableView.vue @@ -45,11 +45,11 @@ - + @@ -718,8 +718,14 @@ overflow: hidden; text-overflow: ellipsis; } + .pipeline-cell-link { + overflow: hidden; + text-overflow: ellipsis; + } .template-mode-icon { flex-shrink: 0; + position: relative; + top: 2px; } } .exec-pipeline-btn { diff --git a/src/frontend/devops-pipeline/src/components/template/instance-message.vue b/src/frontend/devops-pipeline/src/components/template/instance-message.vue index 03d24952bbb..ce6ed908aac 100755 --- a/src/frontend/devops-pipeline/src/components/template/instance-message.vue +++ b/src/frontend/devops-pipeline/src/components/template/instance-message.vue @@ -87,6 +87,7 @@ .pipeline-item { display: flex; .name { + text-wrap: nowrap; max-width: 300px; overflow: hidden; text-overflow: ellipsis; From 142ad6113e3dcc6f25b8a4bb0f67520e0e4b8e58 Mon Sep 17 00:00:00 2001 From: vhwweng <1010382269@qq.com> Date: Thu, 16 Nov 2023 19:21:23 +0800 Subject: [PATCH 617/735] =?UTF-8?q?feat:=20=E4=BB=A3=E7=A0=81=E5=BA=93?= =?UTF-8?q?=E4=BC=98=E5=8C=96=E4=B8=80=E6=9C=9F=E5=8A=9F=E8=83=BD=E7=82=B9?= =?UTF-8?q?=20#9347?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/components/CodeLibDetail/timeline-collapse.vue | 3 +++ .../src/components/CodeLibDetail/trigger-event.vue | 1 + 2 files changed, 4 insertions(+) diff --git a/src/frontend/devops-codelib/src/components/CodeLibDetail/timeline-collapse.vue b/src/frontend/devops-codelib/src/components/CodeLibDetail/timeline-collapse.vue index 60a03ab9651..24225716168 100644 --- a/src/frontend/devops-codelib/src/components/CodeLibDetail/timeline-collapse.vue +++ b/src/frontend/devops-codelib/src/components/CodeLibDetail/timeline-collapse.vue @@ -322,6 +322,9 @@ transform: rotate(90deg); } } + .trigger-user { + color: #979BA5; + } .trigger-time { padding-left: 8px; color: #979BA5; diff --git a/src/frontend/devops-codelib/src/components/CodeLibDetail/trigger-event.vue b/src/frontend/devops-codelib/src/components/CodeLibDetail/trigger-event.vue index 6880c44f2cd..9e860bafc9b 100644 --- a/src/frontend/devops-codelib/src/components/CodeLibDetail/trigger-event.vue +++ b/src/frontend/devops-codelib/src/components/CodeLibDetail/trigger-event.vue @@ -241,6 +241,7 @@ name: this.eventId }] }) + this.daterange = ['', ''] } }, methods: { From 6f0339eb71873db4ddc590a2bba6bea211a06828 Mon Sep 17 00:00:00 2001 From: lockiechen <33082528+lockiechen@users.noreply.github.com> Date: Tue, 21 Nov 2023 10:28:20 +0800 Subject: [PATCH 618/735] =?UTF-8?q?fix:=20=E6=9D=83=E9=99=90=E5=8D=87?= =?UTF-8?q?=E7=BA=A7=E4=B8=BArbac=20issue=20#9697?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bk-pipeline/dist/bk-pipeline.min.js | 2 +- src/frontend/bk-pipeline/src/Job.vue | 1 + .../src/components/envTabs/settingTab.vue | 14 +++-- .../ContainerPropertyPanel/BuildParams.vue | 54 +++++++++---------- .../src/store/modules/atom/getters.js | 4 +- .../devops-quality/src/views/create_rules.vue | 27 ++-------- 6 files changed, 40 insertions(+), 62 deletions(-) diff --git a/src/frontend/bk-pipeline/dist/bk-pipeline.min.js b/src/frontend/bk-pipeline/dist/bk-pipeline.min.js index 38b50f7e807..894914a60c4 100644 --- a/src/frontend/bk-pipeline/dist/bk-pipeline.min.js +++ b/src/frontend/bk-pipeline/dist/bk-pipeline.min.js @@ -1,2 +1,2 @@ /*! For license information please see bk-pipeline.min.js.LICENSE.txt */ -!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(require("vue")):"function"==typeof define&&define.amd?define(["vue"],e):"object"==typeof exports?exports.bkPipeline=e(require("vue")):t.bkPipeline=e(t.Vue)}(self,(t=>(()=>{var e={8467:()=>{!function(){const t='';document.body?document.body.insertAdjacentHTML("afterbegin",t):document.addEventListener("DOMContentLoaded",(function(){document.body.insertAdjacentHTML("afterbegin",t)}))}()},8383:function(t,e){!function(t){"use strict";function e(){e=function(){return t};var t={},n=Object.prototype,i=n.hasOwnProperty,o=Object.defineProperty||function(t,e,n){t[e]=n.value},r="function"==typeof Symbol?Symbol:{},a=r.iterator||"@@iterator",s=r.asyncIterator||"@@asyncIterator",c=r.toStringTag||"@@toStringTag";function l(t,e,n){return Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{l({},"")}catch(t){l=function(t,e,n){return t[e]=n}}function p(t,e,n,i){var r=e&&e.prototype instanceof f?e:f,a=Object.create(r.prototype),s=new S(i||[]);return o(a,"_invoke",{value:k(t,n,s)}),a}function d(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch(t){return{type:"throw",arg:t}}}t.wrap=p;var u={};function f(){}function m(){}function h(){}var b={};l(b,a,(function(){return this}));var g=Object.getPrototypeOf,v=g&&g(g(C([])));v&&v!==n&&i.call(v,a)&&(b=v);var y=h.prototype=f.prototype=Object.create(b);function x(t){["next","throw","return"].forEach((function(e){l(t,e,(function(t){return this._invoke(e,t)}))}))}function w(t,e){function n(o,r,a,s){var c=d(t[o],t,r);if("throw"!==c.type){var l=c.arg,p=l.value;return p&&"object"==typeof p&&i.call(p,"__await")?e.resolve(p.__await).then((function(t){n("next",t,a,s)}),(function(t){n("throw",t,a,s)})):e.resolve(p).then((function(t){l.value=t,a(l)}),(function(t){return n("throw",t,a,s)}))}s(c.arg)}var r;o(this,"_invoke",{value:function(t,i){function o(){return new e((function(e,o){n(t,i,e,o)}))}return r=r?r.then(o,o):o()}})}function k(t,e,n){var i="suspendedStart";return function(o,r){if("executing"===i)throw new Error("Generator is already running");if("completed"===i){if("throw"===o)throw r;return{value:void 0,done:!0}}for(n.method=o,n.arg=r;;){var a=n.delegate;if(a){var s=E(a,n);if(s){if(s===u)continue;return s}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===i)throw i="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);i="executing";var c=d(t,e,n);if("normal"===c.type){if(i=n.done?"completed":"suspendedYield",c.arg===u)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(i="completed",n.method="throw",n.arg=c.arg)}}}function E(t,e){var n=t.iterator[e.method];if(void 0===n){if(e.delegate=null,"throw"===e.method){if(t.iterator.return&&(e.method="return",e.arg=void 0,E(t,e),"throw"===e.method))return u;e.method="throw",e.arg=new TypeError("The iterator does not provide a 'throw' method")}return u}var i=d(n,t.iterator,e.arg);if("throw"===i.type)return e.method="throw",e.arg=i.arg,e.delegate=null,u;var o=i.arg;return o?o.done?(e[t.resultName]=o.value,e.next=t.nextLoc,"return"!==e.method&&(e.method="next",e.arg=void 0),e.delegate=null,u):o:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,u)}function T(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function I(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function S(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(T,this),this.reset(!0)}function C(t){if(t){var e=t[a];if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var n=-1,o=function e(){for(;++n=0;--o){var r=this.tryEntries[o],a=r.completion;if("root"===r.tryLoc)return n("end");if(r.tryLoc<=this.prev){var s=i.call(r,"catchLoc"),c=i.call(r,"finallyLoc");if(s&&c){if(this.prev=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&i.call(o,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),I(n),u}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var i=n.completion;if("throw"===i.type){var o=i.arg;I(n)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,n){return this.delegate={iterator:C(t),resultName:e,nextLoc:n},"next"===this.method&&(this.arg=void 0),u}},t}function n(t,e,n,i,o,r,a){try{var s=t[r](a),c=s.value}catch(t){return void n(t)}s.done?e(c):Promise.resolve(c).then(i,o)}var i=0;var o={name:"bk-checkbox",mixins:[{methods:{dispatch:function(t,e,n){for(var i=this.$parent||this.$root,o=i.$options.name;i&&(!o||o!==t);)(i=i.$parent)&&(o=i.$options.name);i&&i.$emit.apply(i,[e].concat(n))}}}],inject:{handleRemoveItem:{default:null},handleAddItem:{default:null}},props:{value:{type:[String,Number,Boolean],default:void 0},checked:{type:Boolean,default:void 0},trueValue:{type:[String,Number,Boolean],default:!0},falseValue:{type:[String,Number,Boolean],default:!1},label:{type:[String,Number]},name:{type:String,default:function(){return"bk-checkbox_".concat(i++)}},disabled:Boolean,indeterminate:Boolean,extCls:{type:String,default:""},beforeChange:Function},data:function(){return{parent:null,localValue:void 0}},computed:{selected:function(){return this.localValue===this.localTrueValue},parentValue:function(){return this.parent?this.parent.localValue:null},localTrueValue:function(){return this.parent?void 0===this.label&&void 0===this.value?this.trueValue:void 0!==this.value?this.value:this.label:void 0===this.label?this.trueValue:this.label}},watch:{value:function(t){this.setLocalValue(t)},checked:function(){this.setLocalValue()},parentValue:function(){this.setLocalValue()}},created:function(){this.handleAddItem&&"function"==typeof this.handleAddItem&&this.handleAddItem(this),this.init()},destroyed:function(){this.handleRemoveItem&&"function"==typeof this.handleRemoveItem&&this.handleRemoveItem(this)},methods:{getValue:function(){return this.selected?{isChecked:!0,value:this.localTrueValue}:{isChecked:!1,value:this.falseValue}},init:function(){for(var t=this.$parent;t&&!t.isCheckboxGroup&&"bk-checkbox-group"!==!t.$options.name;)t=t.$parent;this.parent=t,this.setLocalValue()},setLocalValue:function(t){if(void 0===t)if(this.parent){var e=this.localTrueValue,n=this.parent.localValue.includes(e);this.localValue=n?e:this.falseValue}else void 0!==this.checked?this.localValue=this.checked?this.localTrueValue:this.falseValue:void 0===this.value?this.localValue=this.falseValue:this.localValue=this.value;else this.localValue=t},handleClick:function(){var t=this;return function(t){return function(){var e=this,i=arguments;return new Promise((function(o,r){var a=t.apply(e,i);function s(t){n(a,o,r,s,c,"next",t)}function c(t){n(a,o,r,s,c,"throw",t)}s(void 0)}))}}(e().mark((function n(){var i,o,r;return e().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!t.disabled){e.next=2;break}return e.abrupt("return",!1);case 2:if("function"!=typeof t.beforeChange){e.next=8;break}return e.next=5,t.beforeChange();case 5:if(!1!==e.sent){e.next=8;break}return e.abrupt("return");case 8:i=t.localValue,o=t.indeterminate?t.localTrueValue:i===t.localTrueValue?t.falseValue:t.localTrueValue,t.localValue=o,t.$emit("input",o,t.localTrueValue),t.$emit("change",o,i,t.localTrueValue),t.dispatch("bk-form-item","form-change"),t.parent&&(r=void 0===t.localTrueValue?o:t.localTrueValue,t.parent.handleChange(t.selected,r));case 15:case"end":return e.stop()}}),n)})))()}}};function r(t,e,n,i,o,r,a,s,c,l){"boolean"!=typeof a&&(c=s,s=a,a=!1);var p,d="function"==typeof n?n.options:n;if(t&&t.render&&(d.render=t.render,d.staticRenderFns=t.staticRenderFns,d._compiled=!0,o&&(d.functional=!0)),i&&(d._scopeId=i),r?(p=function(t){(t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),e&&e.call(this,c(t)),t&&t._registeredComponents&&t._registeredComponents.add(r)},d._ssrRegister=p):e&&(p=a?function(){e.call(this,l(this.$root.$options.shadowRoot))}:function(t){e.call(this,s(t))}),p)if(d.functional){var u=d.render;d.render=function(t,e){return p.call(e),u(t,e)}}else{var f=d.beforeCreate;d.beforeCreate=f?[].concat(f,p):[p]}return n}var a=r({render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("label",{staticClass:"bk-form-checkbox",class:[{"is-disabled":t.disabled,"is-indeterminate":t.indeterminate,"is-checked":t.selected},t.extCls],on:{click:t.handleClick,keydown:function(e){return!("button"in e)&&t._k(e.keyCode,"enter",13,e.key,"Enter")?null:(e.preventDefault(),t.handleClick(e))}}},[n("span",{staticClass:"bk-checkbox",attrs:{tabindex:!t.disabled&&0}}),n("input",{attrs:{type:"hidden",name:t.name},domProps:{value:void 0===t.label?t.localValue:t.label}}),t.$slots.default?n("span",{staticClass:"bk-checkbox-text"},[t._t("default")],2):t._e()])},staticRenderFns:[]},undefined,o,undefined,!1,undefined,!1,void 0,void 0,void 0),s=function(t){if(null==t)throw TypeError("Can't call method on "+t);return t},c={}.hasOwnProperty,l=function(t,e){return c.call(t,e)},p={}.toString,d=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==function(t){return p.call(t).slice(8,-1)}(t)?t.split(""):Object(t)},u=function(t){return d(s(t))},f=Math.ceil,m=Math.floor,h=function(t){return isNaN(t=+t)?0:(t>0?m:f)(t)},b=Math.min,g=Math.max,v=Math.min;function y(t,e){return t(e={exports:{}},e.exports),e.exports}var x,w,k=y((function(t){var e=t.exports={version:"2.6.12"};"number"==typeof __e&&(__e=e)})),E=(k.version,y((function(t){var e=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=e)}))),T=y((function(t){var e="__core-js_shared__",n=E[e]||(E[e]={});(t.exports=function(t,e){return n[t]||(n[t]=void 0!==e?e:{})})("versions",[]).push({version:k.version,mode:"pure",copyright:"© 2020 Denis Pushkarev (zloirock.ru)"})})),I=0,S=Math.random(),C=T("keys"),O=(w=!1,function(t,e,n){var i,o,r=u(t),a=(o=r.length)>0?b(h(o),9007199254740991):0,s=function(t,e){return(t=h(t))<0?g(t+e,0):v(t,e)}(n,a);if(w&&e!=e){for(;a>s;)if((i=r[s++])!=i)return!0}else for(;a>s;s++)if((w||s in r)&&r[s]===e)return w||s||0;return!w&&-1}),A=C[x="IE_PROTO"]||(C[x]=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++I+S).toString(36))}(x)),_="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(","),L=Object.keys||function(t){return function(t,e){var n,i=u(t),o=0,r=[];for(n in i)n!=A&&l(i,n)&&r.push(n);for(;e.length>o;)l(i,n=e[o++])&&(~O(r,n)||r.push(n));return r}(t,_)},M=function(t,e,n){if(function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!")}(t),void 0===e)return t;switch(n){case 1:return function(n){return t.call(e,n)};case 2:return function(n,i){return t.call(e,n,i)};case 3:return function(n,i,o){return t.call(e,n,i,o)}}return function(){return t.apply(e,arguments)}},N=function(t){return"object"==typeof t?null!==t:"function"==typeof t},R=function(t){if(!N(t))throw TypeError(t+" is not an object!");return t},D=function(t){try{return!!t()}catch(t){return!0}},z=!D((function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})),P=E.document,H=N(P)&&N(P.createElement),F=!z&&!D((function(){return 7!=Object.defineProperty((t="div",H?P.createElement(t):{}),"a",{get:function(){return 7}}).a;var t})),j=Object.defineProperty,B={f:z?Object.defineProperty:function(t,e,n){if(R(t),e=function(t,e){if(!N(t))return t;var n,i;if(e&&"function"==typeof(n=t.toString)&&!N(i=n.call(t)))return i;if("function"==typeof(n=t.valueOf)&&!N(i=n.call(t)))return i;if(!e&&"function"==typeof(n=t.toString)&&!N(i=n.call(t)))return i;throw TypeError("Can't convert object to primitive value")}(e,!0),R(n),F)try{return j(t,e,n)}catch(t){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(t[e]=n.value),t}},U=z?function(t,e,n){return B.f(t,e,function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}(1,n))}:function(t,e,n){return t[e]=n,t},V="prototype",Y=function(t,e,n){var i,o,r,a=t&Y.F,s=t&Y.G,c=t&Y.S,p=t&Y.P,d=t&Y.B,u=t&Y.W,f=s?k:k[e]||(k[e]={}),m=f[V],h=s?E:c?E[e]:(E[e]||{})[V];for(i in s&&(n=e),n)(o=!a&&h&&void 0!==h[i])&&l(f,i)||(r=o?h[i]:n[i],f[i]=s&&"function"!=typeof h[i]?n[i]:d&&o?M(r,E):u&&h[i]==r?function(t){var e=function(e,n,i){if(this instanceof t){switch(arguments.length){case 0:return new t;case 1:return new t(e);case 2:return new t(e,n)}return new t(e,n,i)}return t.apply(this,arguments)};return e[V]=t[V],e}(r):p&&"function"==typeof r?M(Function.call,r):r,p&&((f.virtual||(f.virtual={}))[i]=r,t&Y.R&&m&&!m[i]&&U(m,i,r)))};Y.F=1,Y.G=2,Y.S=4,Y.P=8,Y.B=16,Y.W=32,Y.U=64,Y.R=128;var W,$,G,X,q=Y;W="keys",$=function(){return function(t){return L(function(t){return Object(s(t))}(t))}},G=(k.Object||{})[W]||Object[W],(X={})[W]=$(),q(q.S+q.F*D((function(){G(1)})),"Object",X);var K,Z,Q=k.Object.keys;(K=a).install=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=K.props||{};Q(e).forEach((function(t){n.hasOwnProperty(t)&&("function"==typeof n[t]||n[t]instanceof Array?n[t]={type:n[t],default:e[t]}:n[t].default=e[t])})),K.name=e.namespace?K.name.replace("bk",e.namespace):K.name,t.component(K.name,K),"function"==typeof Z&&Z(t,e)},t.default=a,Object.defineProperty(t,"__esModule",{value:!0})}(e)},1409:function(t,e,n){!function(t,e){"use strict";function i(t){return i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},i(t)}function o(t,e){for(var n=0;n>>0||(P.test(n)?16:10))}:D;S(S.G+S.F*(parseInt!=H),{parseInt:H});var F=l.parseInt,j={}.toString,B=function(t){return j.call(t).slice(8,-1)},U=Array.isArray||function(t){return"Array"==B(t)};S(S.S,"Array",{isArray:U});var V,Y,W,$,G,X,q=l.Array.isArray,K=function(t){return Object(C(t))},Z=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==B(t)?t.split(""):Object(t)},Q=function(t){return Z(C(t))},J=Math.ceil,tt=Math.floor,et=function(t){return isNaN(t=+t)?0:(t>0?tt:J)(t)},nt=Math.min,it=Math.max,ot=Math.min,rt=s((function(t){var e="__core-js_shared__",n=c[e]||(c[e]={});(t.exports=function(t,e){return n[t]||(n[t]=void 0!==e?e:{})})("versions",[]).push({version:l.version,mode:"pure",copyright:"© 2020 Denis Pushkarev (zloirock.ru)"})})),at=0,st=Math.random(),ct=rt("keys"),lt=(X=!1,function(t,e,n){var i,o,r=Q(t),a=(o=r.length)>0?nt(et(o),9007199254740991):0,s=function(t,e){return(t=et(t))<0?it(t+e,0):ot(t,e)}(n,a);if(X&&e!=e){for(;a>s;)if((i=r[s++])!=i)return!0}else for(;a>s;s++)if((X||s in r)&&r[s]===e)return X||s||0;return!X&&-1}),pt=ct[G="IE_PROTO"]||(ct[G]=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++at+st).toString(36))}(G)),dt="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(","),ut=Object.keys||function(t){return function(t,e){var n,i=Q(t),o=0,r=[];for(n in i)n!=pt&&E(i,n)&&r.push(n);for(;e.length>o;)E(i,n=e[o++])&&(~lt(r,n)||r.push(n));return r}(t,dt)};V="keys",Y=function(){return function(t){return ut(K(t))}},W=(l.Object||{})[V]||Object[V],($={})[V]=Y(),S(S.S+S.F*m((function(){W(1)})),"Object",$);var ft=l.Object.keys,mt={f:Object.getOwnPropertySymbols},ht={f:{}.propertyIsEnumerable},bt=Object.assign,gt=!bt||m((function(){var t={},e={},n=Symbol(),i="abcdefghijklmnopqrst";return t[n]=7,i.split("").forEach((function(t){e[t]=t})),7!=bt({},t)[n]||Object.keys(bt({},e)).join("")!=i}))?function(t,e){for(var n=K(t),i=arguments.length,o=1,r=mt.f,a=ht.f;i>o;)for(var s,c=Z(arguments[o++]),l=r?ut(c).concat(r(c)):ut(c),p=l.length,d=0;p>d;)s=l[d++],h&&!a.call(c,s)||(n[s]=c[s]);return n}:bt;S(S.S+S.F,"Object",{assign:gt});var vt=l.Object.assign,yt=c.parseFloat,xt=R.trim,wt=1/yt(O+"-0")!=-1/0?function(t){var e=xt(String(t),3),n=yt(e);return 0===n&&"-"==e.charAt(0)?-0:n}:yt;S(S.G+S.F*(parseFloat!=wt),{parseFloat:wt});for(var kt=l.parseFloat,Et="undefined"!=typeof window&&"undefined"!=typeof document,Tt=["Edge","Trident","Firefox"],It=0,St=0;St=0){It=1;break}var Ct=Et&&window.Promise?function(t){var e=!1;return function(){e||(e=!0,window.Promise.resolve().then((function(){e=!1,t()})))}}:function(t){var e=!1;return function(){e||(e=!0,setTimeout((function(){e=!1,t()}),It))}};function Ot(t){return t&&"[object Function]"==={}.toString.call(t)}function At(t,e){if(1!==t.nodeType)return[];var n=t.ownerDocument.defaultView.getComputedStyle(t,null);return e?n[e]:n}function _t(t){return"HTML"===t.nodeName?t:t.parentNode||t.host}function Lt(t){if(!t)return document.body;switch(t.nodeName){case"HTML":case"BODY":return t.ownerDocument.body;case"#document":return t.body}var e=At(t),n=e.overflow,i=e.overflowX,o=e.overflowY;return/(auto|scroll|overlay)/.test(n+o+i)?t:Lt(_t(t))}var Mt=Et&&!(!window.MSInputMethodContext||!document.documentMode),Nt=Et&&/MSIE 10/.test(navigator.userAgent);function Rt(t){return 11===t?Mt:10===t?Nt:Mt||Nt}function Dt(t){if(!t)return document.documentElement;for(var e=Rt(10)?document.body:null,n=t.offsetParent||null;n===e&&t.nextElementSibling;)n=(t=t.nextElementSibling).offsetParent;var i=n&&n.nodeName;return i&&"BODY"!==i&&"HTML"!==i?-1!==["TH","TD","TABLE"].indexOf(n.nodeName)&&"static"===At(n,"position")?Dt(n):n:t?t.ownerDocument.documentElement:document.documentElement}function zt(t){return null!==t.parentNode?zt(t.parentNode):t}function Pt(t,e){if(!(t&&t.nodeType&&e&&e.nodeType))return document.documentElement;var n=t.compareDocumentPosition(e)&Node.DOCUMENT_POSITION_FOLLOWING,i=n?t:e,o=n?e:t,r=document.createRange();r.setStart(i,0),r.setEnd(o,0);var a,s,c=r.commonAncestorContainer;if(t!==c&&e!==c||i.contains(o))return"BODY"===(s=(a=c).nodeName)||"HTML"!==s&&Dt(a.firstElementChild)!==a?Dt(c):c;var l=zt(t);return l.host?Pt(l.host,e):Pt(t,zt(e).host)}function Ht(t){var e="top"===(arguments.length>1&&void 0!==arguments[1]?arguments[1]:"top")?"scrollTop":"scrollLeft",n=t.nodeName;if("BODY"===n||"HTML"===n){var i=t.ownerDocument.documentElement;return(t.ownerDocument.scrollingElement||i)[e]}return t[e]}function Ft(t,e){var n="x"===e?"Left":"Top",i="Left"===n?"Right":"Bottom";return kt(t["border".concat(n,"Width")],10)+kt(t["border".concat(i,"Width")],10)}function jt(t,e,n,i){return Math.max(e["offset".concat(t)],e["scroll".concat(t)],n["client".concat(t)],n["offset".concat(t)],n["scroll".concat(t)],Rt(10)?F(n["offset".concat(t)])+F(i["margin".concat("Height"===t?"Top":"Left")])+F(i["margin".concat("Height"===t?"Bottom":"Right")]):0)}function Bt(t){var e=t.body,n=t.documentElement,i=Rt(10)&&getComputedStyle(n);return{height:jt("Height",e,n,i),width:jt("Width",e,n,i)}}var Ut=vt||function(t){for(var e=1;e2&&void 0!==arguments[2]&&arguments[2],i=Rt(10),o="HTML"===e.nodeName,r=Yt(t),a=Yt(e),s=Lt(t),c=At(e),l=kt(c.borderTopWidth,10),p=kt(c.borderLeftWidth,10);n&&o&&(a.top=Math.max(a.top,0),a.left=Math.max(a.left,0));var d=Vt({top:r.top-a.top-l,left:r.left-a.left-p,width:r.width,height:r.height});if(d.marginTop=0,d.marginLeft=0,!i&&o){var u=kt(c.marginTop,10),f=kt(c.marginLeft,10);d.top-=l-u,d.bottom-=l-u,d.left-=p-f,d.right-=p-f,d.marginTop=u,d.marginLeft=f}return(i&&!n?e.contains(s):e===s&&"BODY"!==s.nodeName)&&(d=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=Ht(e,"top"),o=Ht(e,"left"),r=n?-1:1;return t.top+=i*r,t.bottom+=i*r,t.left+=o*r,t.right+=o*r,t}(d,e)),d}function $t(t){var e=t.nodeName;if("BODY"===e||"HTML"===e)return!1;if("fixed"===At(t,"position"))return!0;var n=_t(t);return!!n&&$t(n)}function Gt(t){if(!t||!t.parentElement||Rt())return document.documentElement;for(var e=t.parentElement;e&&"none"===At(e,"transform");)e=e.parentElement;return e||document.documentElement}function Xt(t,e,n,i){var o=arguments.length>4&&void 0!==arguments[4]&&arguments[4],r={top:0,left:0},a=o?Gt(t):Pt(t,e);if("viewport"===i)r=function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=t.ownerDocument.documentElement,i=Wt(t,n),o=Math.max(n.clientWidth,window.innerWidth||0),r=Math.max(n.clientHeight,window.innerHeight||0),a=e?0:Ht(n),s=e?0:Ht(n,"left");return Vt({top:a-i.top+i.marginTop,left:s-i.left+i.marginLeft,width:o,height:r})}(a,o);else{var s;"scrollParent"===i?"BODY"===(s=Lt(_t(e))).nodeName&&(s=t.ownerDocument.documentElement):s="window"===i?t.ownerDocument.documentElement:i;var c=Wt(s,a,o);if("HTML"!==s.nodeName||$t(a))r=c;else{var l=Bt(t.ownerDocument),p=l.height,d=l.width;r.top+=c.top-c.marginTop,r.bottom=p+c.top,r.left+=c.left-c.marginLeft,r.right=d+c.left}}var u="number"==typeof(n=n||0);return r.left+=u?n:n.left||0,r.top+=u?n:n.top||0,r.right-=u?n:n.right||0,r.bottom-=u?n:n.bottom||0,r}function qt(t,e,n,i,o){var r=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0;if(-1===t.indexOf("auto"))return t;var a=Xt(n,i,r,o),s={top:{width:a.width,height:e.top-a.top},right:{width:a.right-e.right,height:a.height},bottom:{width:a.width,height:a.bottom-e.bottom},left:{width:e.left-a.left,height:a.height}},c=ft(s).map((function(t){return Ut({key:t},s[t],{area:(e=s[t],e.width*e.height)});var e})).sort((function(t,e){return e.area-t.area})),l=c.filter((function(t){var e=t.width,i=t.height;return e>=n.clientWidth&&i>=n.clientHeight})),p=l.length>0?l[0].key:c[0].key,d=t.split("-")[1];return p+(d?"-".concat(d):"")}function Kt(t,e,n){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;return Wt(n,i?Gt(e):Pt(e,n),i)}function Zt(t){var e=t.ownerDocument.defaultView.getComputedStyle(t),n=kt(e.marginTop||0)+kt(e.marginBottom||0),i=kt(e.marginLeft||0)+kt(e.marginRight||0);return{width:t.offsetWidth+i,height:t.offsetHeight+n}}function Qt(t){var e={left:"right",right:"left",bottom:"top",top:"bottom"};return t.replace(/left|right|bottom|top/g,(function(t){return e[t]}))}function Jt(t,e,n){n=n.split("-")[0];var i=Zt(t),o={width:i.width,height:i.height},r=-1!==["right","left"].indexOf(n),a=r?"top":"left",s=r?"left":"top",c=r?"height":"width",l=r?"width":"height";return o[a]=e[a]+e[c]/2-i[c]/2,o[s]=n===s?e[s]-i[l]:e[Qt(s)],o}function te(t,e){return Array.prototype.find?t.find(e):t.filter(e)[0]}function ee(t,e,n){return(void 0===n?t:t.slice(0,function(t,e,n){if(Array.prototype.findIndex)return t.findIndex((function(t){return t[e]===n}));var i=te(t,(function(t){return t[e]===n}));return t.indexOf(i)}(t,"name",n))).forEach((function(t){t.function&&console.warn("`modifier.function` is deprecated, use `modifier.fn`!");var n=t.function||t.fn;t.enabled&&Ot(n)&&(e.offsets.popper=Vt(e.offsets.popper),e.offsets.reference=Vt(e.offsets.reference),e=n(e,t))})),e}function ne(){if(!this.state.isDestroyed){var t={instance:this,styles:{},arrowStyles:{},attributes:{},flipped:!1,offsets:{}};t.offsets.reference=Kt(this.state,this.popper,this.reference,this.options.positionFixed),t.placement=qt(this.options.placement,t.offsets.reference,this.popper,this.reference,this.options.modifiers.flip.boundariesElement,this.options.modifiers.flip.padding),t.originalPlacement=t.placement,t.positionFixed=this.options.positionFixed,t.offsets.popper=Jt(this.popper,t.offsets.reference,t.placement),t.offsets.popper.position=this.options.positionFixed?"fixed":"absolute",t=ee(this.modifiers,t),this.state.isCreated?this.options.onUpdate(t):(this.state.isCreated=!0,this.options.onCreate(t))}}function ie(t,e){return t.some((function(t){var n=t.name;return t.enabled&&n===e}))}function oe(t){for(var e=[!1,"ms","Webkit","Moz","O"],n=t.charAt(0).toUpperCase()+t.slice(1),i=0;i1&&void 0!==arguments[1]&&arguments[1],n=be.indexOf(t),i=be.slice(n+1).concat(be.slice(0,n));return e?i.reverse():i}var ve="flip",ye="clockwise",xe="counterclockwise";function we(t,e,n,i){var o=[0,0],r=-1!==["right","left"].indexOf(i),a=t.split(/(\+|\-)/).map((function(t){return t.trim()})),s=a.indexOf(te(a,(function(t){return-1!==t.search(/,|\s/)})));a[s]&&-1===a[s].indexOf(",")&&console.warn("Offsets separated by white space(s) are deprecated, use a comma (,) instead.");var c=/\s*,\s*|\s+/,l=-1!==s?[a.slice(0,s).concat([a[s].split(c)[0]]),[a[s].split(c)[1]].concat(a.slice(s+1))]:[a];return(l=l.map((function(t,i){var o=(1===i?!r:r)?"height":"width",a=!1;return t.reduce((function(t,e){return""===t[t.length-1]&&-1!==["+","-"].indexOf(e)?(t[t.length-1]=e,a=!0,t):a?(t[t.length-1]+=e,a=!1,t):t.concat(e)}),[]).map((function(t){return function(t,e,n,i){var o=t.match(/((?:\-|\+)?\d*\.?\d*)(.*)/),r=+o[1],a=o[2];return r?0===a.indexOf("%")?Vt("%p"===a?n:i)[e]/100*r:"vh"===a||"vw"===a?("vh"===a?Math.max(document.documentElement.clientHeight,window.innerHeight||0):Math.max(document.documentElement.clientWidth,window.innerWidth||0))/100*r:r:t}(t,o,e,n)}))}))).forEach((function(t,e){t.forEach((function(n,i){de(n)&&(o[e]+=n*("-"===t[i-1]?-1:1))}))})),o}var ke={placement:"bottom",positionFixed:!1,eventsEnabled:!0,removeOnDestroy:!1,onCreate:function(){},onUpdate:function(){},modifiers:{shift:{order:100,enabled:!0,fn:function(t){var e=t.placement,n=e.split("-")[0],i=e.split("-")[1];if(i){var o=t.offsets,a=o.reference,s=o.popper,c=-1!==["bottom","top"].indexOf(n),l=c?"left":"top",p=c?"width":"height",d={start:r({},l,a[l]),end:r({},l,a[l]+a[p]-s[p])};t.offsets.popper=Ut({},s,d[i])}return t}},offset:{order:200,enabled:!0,fn:function(t,e){var n,i=e.offset,o=t.placement,r=t.offsets,a=r.popper,s=r.reference,c=o.split("-")[0];return n=de(+i)?[+i,0]:we(i,a,s,c),"left"===c?(a.top+=n[0],a.left-=n[1]):"right"===c?(a.top+=n[0],a.left+=n[1]):"top"===c?(a.left+=n[0],a.top-=n[1]):"bottom"===c&&(a.left+=n[0],a.top+=n[1]),t.popper=a,t},offset:0},preventOverflow:{order:300,enabled:!0,fn:function(t,e){var n=e.boundariesElement||Dt(t.instance.popper);t.instance.reference===n&&(n=Dt(n));var i=oe("transform"),o=t.instance.popper.style,a=o.top,s=o.left,c=o[i];o.top="",o.left="",o[i]="";var l=Xt(t.instance.popper,t.instance.reference,e.padding,n,t.positionFixed);o.top=a,o.left=s,o[i]=c,e.boundaries=l;var p=e.priority,d=t.offsets.popper,u={primary:function(t){var n=d[t];return d[t]l[t]&&!e.escapeWithReference&&(i=Math.min(d[n],l[t]-("right"===t?d.width:d.height))),r({},n,i)}};return p.forEach((function(t){var e=-1!==["left","top"].indexOf(t)?"primary":"secondary";d=Ut({},d,u[e](t))})),t.offsets.popper=d,t},priority:["left","right","top","bottom"],padding:5,boundariesElement:"scrollParent"},keepTogether:{order:400,enabled:!0,fn:function(t){var e=t.offsets,n=e.popper,i=e.reference,o=t.placement.split("-")[0],r=Math.floor,a=-1!==["top","bottom"].indexOf(o),s=a?"right":"bottom",c=a?"left":"top",l=a?"width":"height";return n[s]r(i[s])&&(t.offsets.popper[c]=r(i[s])),t}},arrow:{order:500,enabled:!0,fn:function(t,e){var n;if(!me(t.instance.modifiers,"arrow","keepTogether"))return t;var i=e.element;if("string"==typeof i){if(!(i=t.instance.popper.querySelector(i)))return t}else if(!t.instance.popper.contains(i))return console.warn("WARNING: `arrow.element` must be child of its popper element!"),t;var o=t.placement.split("-")[0],a=t.offsets,s=a.popper,c=a.reference,l=-1!==["left","right"].indexOf(o),p=l?"height":"width",d=l?"Top":"Left",u=d.toLowerCase(),f=l?"left":"top",m=l?"bottom":"right",h=Zt(i)[p];c[m]-hs[m]&&(t.offsets.popper[u]+=c[u]+h-s[m]),t.offsets.popper=Vt(t.offsets.popper);var b=c[u]+c[p]/2-h/2,g=At(t.instance.popper),v=kt(g["margin".concat(d)],10),y=kt(g["border".concat(d,"Width")],10),x=b-t.offsets.popper[u]-v-y;return x=Math.max(Math.min(s[p]-h,x),0),t.arrowElement=i,t.offsets.arrow=(r(n={},u,Math.round(x)),r(n,f,""),n),t},element:"[x-arrow]"},flip:{order:600,enabled:!0,fn:function(t,e){if(ie(t.instance.modifiers,"inner"))return t;if(t.flipped&&t.placement===t.originalPlacement)return t;var n=Xt(t.instance.popper,t.instance.reference,e.padding,e.boundariesElement,t.positionFixed),i=t.placement.split("-")[0],o=Qt(i),r=t.placement.split("-")[1]||"",a=[];switch(e.behavior){case ve:a=[i,o];break;case ye:a=ge(i);break;case xe:a=ge(i,!0);break;default:a=e.behavior}return a.forEach((function(s,c){if(i!==s||a.length===c+1)return t;i=t.placement.split("-")[0],o=Qt(i);var l=t.offsets.popper,p=t.offsets.reference,d=Math.floor,u="left"===i&&d(l.right)>d(p.left)||"right"===i&&d(l.left)d(p.top)||"bottom"===i&&d(l.top)d(n.right),h=d(l.top)d(n.bottom),g="left"===i&&f||"right"===i&&m||"top"===i&&h||"bottom"===i&&b,v=-1!==["top","bottom"].indexOf(i),y=!!e.flipVariations&&(v&&"start"===r&&f||v&&"end"===r&&m||!v&&"start"===r&&h||!v&&"end"===r&&b),x=!!e.flipVariationsByContent&&(v&&"start"===r&&m||v&&"end"===r&&f||!v&&"start"===r&&b||!v&&"end"===r&&h),w=y||x;(u||g||w)&&(t.flipped=!0,(u||g)&&(i=a[c+1]),w&&(r=function(t){return"end"===t?"start":"start"===t?"end":t}(r)),t.placement=i+(r?"-"+r:""),t.offsets.popper=Ut({},t.offsets.popper,Jt(t.instance.popper,t.offsets.reference,t.placement)),t=ee(t.instance.modifiers,t,"flip"))})),t},behavior:"flip",padding:5,boundariesElement:"viewport",flipVariations:!1,flipVariationsByContent:!1},inner:{order:700,enabled:!1,fn:function(t){var e=t.placement,n=e.split("-")[0],i=t.offsets,o=i.popper,r=i.reference,a=-1!==["left","right"].indexOf(n),s=-1===["top","left"].indexOf(n);return o[a?"left":"top"]=r[n]-(s?o[a?"width":"height"]:0),t.placement=Qt(e),t.offsets.popper=Vt(o),t}},hide:{order:800,enabled:!0,fn:function(t){if(!me(t.instance.modifiers,"hide","preventOverflow"))return t;var e=t.offsets.reference,n=te(t.instance.modifiers,(function(t){return"preventOverflow"===t.name})).boundaries;if(e.bottomn.right||e.top>n.bottom||e.right2&&void 0!==arguments[2]?arguments[2]:{};(function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")})(this,t),this.scheduleUpdate=function(){return requestAnimationFrame(i.update)},this.update=Ct(this.update.bind(this)),this.options=Ut({},t.Defaults,o),this.state={isDestroyed:!1,isCreated:!1,scrollParents:[]},this.reference=e&&e.jquery?e[0]:e,this.popper=n&&n.jquery?n[0]:n,this.options.modifiers={},ft(Ut({},t.Defaults.modifiers,o.modifiers)).forEach((function(e){i.options.modifiers[e]=Ut({},t.Defaults.modifiers[e]||{},o.modifiers?o.modifiers[e]:{})})),this.modifiers=ft(this.options.modifiers).map((function(t){return Ut({name:t},i.options.modifiers[t])})).sort((function(t,e){return t.order-e.order})),this.modifiers.forEach((function(t){t.enabled&&Ot(t.onLoad)&&t.onLoad(i.reference,i.popper,i.options,t,i.state)})),this.update();var r=this.options.eventsEnabled;r&&this.enableEventListeners(),this.state.eventsEnabled=r}return e=t,(n=[{key:"update",value:function(){return ne.call(this)}},{key:"destroy",value:function(){return re.call(this)}},{key:"enableEventListeners",value:function(){return le.call(this)}},{key:"disableEventListeners",value:function(){return pe.call(this)}}])&&o(e.prototype,n),i&&o(e,i),Object.defineProperty(e,"prototype",{writable:!1}),t;var e,n,i}();function Te(){return Te=vt||function(t){for(var e=1;e-1}function fn(t){return t instanceof Element}function mn(t){return!(!t||!cn(t,"isVirtual"))||fn(t)}function hn(t,e){return"function"==typeof t?t.apply(null,e):t}function bn(t,e){t.filter((function(t){return"flip"===t.name}))[0].enabled=e}function gn(){return document.createElement("div")}function vn(t,e){t.forEach((function(t){t&&(t.style.transitionDuration="".concat(e,"ms"))}))}function yn(t,e){t.forEach((function(t){t&&t.setAttribute("data-state",e)}))}function xn(t,e){var n=Te({},e,{content:hn(e.content,[t])},e.ignoreAttributes?{}:function(t){return sn.reduce((function(e,n){var i=(t.getAttribute("data-tippy-".concat(n))||"").trim();if(!i)return e;if("content"===n)e[n]=i;else try{e[n]=JSON.parse(i)}catch(t){e[n]=i}return e}),{})}(t));return(n.arrow||Oe)&&(n.animateFill=!1),n}function wn(t,e){ft(t).forEach((function(t){if(!cn(e,t))throw new Error("[tippy]: `".concat(t,"` is not a valid option"))}))}function kn(t,e){t.innerHTML=fn(e)?e.innerHTML:e}function En(t,e){fn(e.content)?(kn(t,""),t.appendChild(e.content)):"function"!=typeof e.content&&(t[e.allowHTML?"innerHTML":"textContent"]=e.content)}function Tn(t){return{tooltip:t.querySelector(Ke),backdrop:t.querySelector(Qe),content:t.querySelector(Ze),arrow:t.querySelector(Je)||t.querySelector(tn)}}function In(t){t.setAttribute("data-inertia","")}function Sn(t){var e=gn();return"round"===t?(e.className=Xe,kn(e,'')):e.className=Ge,e}function Cn(){var t=gn();return t.className=$e,t.setAttribute("data-state","hidden"),t}function On(t,e){t.setAttribute("tabindex","-1"),e.setAttribute("data-interactive","")}function An(t,e,n){var i=Oe&&void 0!==document.body.style.webkitTransition?"webkitTransitionEnd":"transitionend";t[e+"EventListener"](i,n)}function _n(t){var e=t.getAttribute(Fe);return e?e.split("-")[0]:""}function Ln(t,e,n){n.split(" ").forEach((function(n){t.classList[e](n+"-theme")}))}function Mn(t,e,n){var i=e[n],o=F(i);"number"==typeof i?t.style[n]=i+"px":isNaN(o)?t.style[n]=i:t.style[n]=o+"px"}function Nn(t,e){var n=gn();n.className=Ve+(e.extCls?" ".concat(e.extCls):""),n.id="tippy-".concat(t),n.style.zIndex=""+e.zIndex,n.style.position="absolute",n.style.top="0",n.style.left="0",e.role&&n.setAttribute("role",e.role);var i=gn();i.className=Ye,Mn(i,e,"maxWidth"),Mn(i,e,"width"),i.setAttribute("data-size",e.size),i.setAttribute("data-animation",e.animation),i.setAttribute("data-state","hidden"),Ln(i,"add",e.theme);var o=gn();return o.className=We,o.setAttribute("data-state","hidden"),e.interactive&&On(n,i),e.arrow&&i.appendChild(Sn(e.arrowType)),e.animateFill&&(i.appendChild(Cn()),i.setAttribute("data-animatefill","")),e.inertia&&In(i),En(o,e),i.appendChild(o),n.appendChild(i),n}function Rn(t,e,n){var i=Tn(t),o=i.tooltip,r=i.content,a=i.backdrop,s=i.arrow;t.style.zIndex=""+n.zIndex,o.setAttribute("data-size",n.size),o.setAttribute("data-animation",n.animation),o.style.maxWidth=n.maxWidth+("number"==typeof n.maxWidth?"px":""),n.role?t.setAttribute("role",n.role):t.removeAttribute("role"),e.content!==n.content&&En(r,n),!e.animateFill&&n.animateFill?(o.appendChild(Cn()),o.setAttribute("data-animatefill","")):e.animateFill&&!n.animateFill&&(o.removeChild(a),o.removeAttribute("data-animatefill")),!e.arrow&&n.arrow?o.appendChild(Sn(n.arrowType)):e.arrow&&!n.arrow&&o.removeChild(s),e.arrow&&n.arrow&&e.arrowType!==n.arrowType&&o.replaceChild(Sn(n.arrowType),s),!e.interactive&&n.interactive?On(t,o):e.interactive&&!n.interactive&&function(t,e){t.removeAttribute("tabindex"),e.removeAttribute("data-interactive")}(t,o),!e.inertia&&n.inertia?In(o):e.inertia&&!n.inertia&&function(t){t.removeAttribute("data-inertia")}(o),e.theme!==n.theme&&(Ln(o,"remove",e.theme),Ln(o,"add",n.theme))}var Dn=1,zn=[];function Pn(t,e){var n,i,o,r,a,s=xn(t,e);if(!s.multiple&&t._tippy)return null;var c,l,p,d,u,f=!1,m=!1,h=!1,b=!1,g=[],v=pn(D,s.interactiveDebounce),y=Dn++,x=Nn(y,s),w=Tn(x),k={id:y,reference:t,popper:x,popperChildren:w,popperInstance:null,props:s,state:{isEnabled:!0,isVisible:!1,isDestroyed:!1,isMounted:!1,isShown:!1},clearDelayTimeouts:$,set:G,setContent:function(t){G({content:t})},show:X,hide:q,enable:function(){k.state.isEnabled=!0},disable:function(){k.state.isEnabled=!1},destroy:function(e){if(!k.state.isDestroyed){m=!0,k.state.isMounted&&q(0),M(),delete t._tippy;var n=k.props.target;n&&e&&fn(t)&&Re(t.querySelectorAll(n)).forEach((function(t){t._tippy&&t._tippy.destroy()})),k.popperInstance&&k.popperInstance.destroy(),m=!1,k.state.isDestroyed=!0}}};return t._tippy=k,x._tippy=k,L(),s.lazy||U(),s.showOnInit&&V(),!s.a11y||s.target||(!fn(u=I())||Ne.call(u,"a[href],area[href],button,details,input,textarea,select,iframe,[tabindex]")&&!u.hasAttribute("disabled"))||I().setAttribute("tabindex","0"),x.addEventListener("mouseenter",(function(t){k.props.interactive&&k.state.isVisible&&"mouseenter"===n&&V(t,!0)})),x.addEventListener("mouseleave",(function(){k.props.interactive&&"mouseenter"===n&&document.addEventListener("mousemove",v)})),k;function E(){document.removeEventListener("mousemove",N)}function T(){document.body.removeEventListener("mouseleave",Y),document.removeEventListener("mousemove",v),zn=zn.filter((function(t){return t!==v}))}function I(){return k.props.triggerTarget||t}function S(){document.addEventListener("click",W,!0)}function C(){return[k.popperChildren.tooltip,k.popperChildren.backdrop,k.popperChildren.content]}function O(){var t=k.props.followCursor;return t&&"focus"!==n||en&&"initial"===t}function A(t,e){var n=k.popperChildren.tooltip;function i(t){t.target===n&&(An(n,"remove",i),e())}if(0===t)return e();An(n,"remove",p),An(n,"add",i),p=i}function _(t,e){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];I().addEventListener(t,e,n),g.push({eventType:t,handler:e,options:n})}function L(){k.props.touchHold&&!k.props.target&&(_("touchstart",R,Pe),_("touchend",z,Pe)),k.props.trigger.trim().split(" ").forEach((function(t){if("manual"!==t)if(k.props.target)switch(t){case"mouseenter":_("mouseover",H),_("mouseout",F);break;case"focus":_("focusin",H),_("focusout",F);break;case"click":_(t,H)}else switch(_(t,R),t){case"mouseenter":_("mouseleave",z);break;case"focus":_(Ce?"focusout":"blur",P)}}))}function M(){g.forEach((function(t){var e=t.eventType,n=t.handler,i=t.options;I().removeEventListener(e,n,i)})),g=[]}function N(e){var n=i=e,o=n.clientX,r=n.clientY;if(d){var a=ze(e.target,(function(e){return e===t})),s=t.getBoundingClientRect(),c=k.props.followCursor,l="horizontal"===c,p="vertical"===c,u=un(["top","bottom"],_n(x)),f=x.getAttribute(Fe),m=!!f&&!!f.split("-")[1],h=u?x.offsetWidth:x.offsetHeight,b=h/2,g=u?0:m?h:b,v=u?m?h:b:0;!a&&k.props.interactive||(k.popperInstance.reference=Te({},k.popperInstance.reference,{clientWidth:0,clientHeight:0,getBoundingClientRect:function(){return{width:u?h:0,height:u?0:h,top:(l?s.top:r)-g,bottom:(l?s.bottom:r)+g,left:(p?s.left:o)-v,right:(p?s.right:o)+v}}}),k.popperInstance.update()),"initial"===c&&k.state.isVisible&&E()}}function R(t){k.state.isEnabled&&!j(t)&&(k.state.isVisible||(n=t.type,t instanceof MouseEvent&&(i=t,zn.forEach((function(e){return e(t)})))),"click"===t.type&&!1!==k.props.hideOnClick&&k.state.isVisible?Y():V(t))}function D(e){var n=De(e.target,qe)===x,i=ze(e.target,(function(e){return e===t}));n||i||function(t,e,n,i){if(!t)return!0;var o=n.clientX,r=n.clientY,a=i.interactiveBorder,s=i.distance,c=e.top-r>("top"===t?a+s:a),l=r-e.bottom>("bottom"===t?a+s:a),p=e.left-o>("left"===t?a+s:a),d=o-e.right>("right"===t?a+s:a);return c||l||p||d}(_n(x),x.getBoundingClientRect(),e,k.props)&&(T(),Y())}function z(t){if(!j(t))return k.props.interactive?(document.body.addEventListener("mouseleave",Y),document.addEventListener("mousemove",v),void zn.push(v)):void Y()}function P(t){t.target===I()&&(k.props.interactive&&t.relatedTarget&&x.contains(t.relatedTarget)||Y())}function H(t){De(t.target,k.props.target)&&V(t)}function F(t){De(t.target,k.props.target)&&Y()}function j(t){var e="ontouchstart"in window,n=un(t.type,"touch"),i=k.props.touchHold;return e&&en&&i&&!n||en&&!i&&n}function B(){!b&&l&&(b=!0,function(t){t.offsetHeight}(x),l())}function U(){var e=k.props.popperOptions,n=k.popperChildren,i=n.tooltip,o=n.arrow,r=dn(e,"preventOverflow");function a(t){k.props.flip&&!k.props.flipOnUpdate&&(t.flipped&&(k.popperInstance.options.placement=t.placement),bn(k.popperInstance.modifiers,!1)),i.setAttribute(Fe,t.placement),!1!==t.attributes[je]?i.setAttribute(je,""):i.removeAttribute(je),c&&c!==t.placement&&h&&(i.style.transition="none",requestAnimationFrame((function(){i.style.transition=""}))),c=t.placement,h=k.state.isVisible;var e=_n(x),n=i.style;n.top=n.bottom=n.left=n.right="",n[e]=-(k.props.distance-10)+"px";var o=r&&void 0!==r.padding?r.padding:He,a="number"==typeof o,s=Te({top:a?o:o.top,bottom:a?o:o.bottom,left:a?o:o.left,right:a?o:o.right},!a&&o);s[e]=a?o+k.props.distance:(o[e]||0)+k.props.distance,k.popperInstance.modifiers.filter((function(t){return"preventOverflow"===t.name}))[0].padding=s,d=s}var s=Te({eventsEnabled:!1,placement:k.props.placement},e,{modifiers:Te({},e?e.modifiers:{},{preventOverflow:Te({boundariesElement:k.props.boundary,padding:He},r),arrow:Te({element:o,enabled:!!o},dn(e,"arrow")),flip:Te({enabled:k.props.flip,padding:k.props.distance+He,behavior:k.props.flipBehavior},dn(e,"flip")),offset:Te({offset:k.props.offset},dn(e,"offset"))}),onCreate:function(t){a(t),B(),e&&e.onCreate&&e.onCreate(t)},onUpdate:function(t){a(t),B(),e&&e.onUpdate&&e.onUpdate(t)}});k.popperInstance=new Ee(t,x,s)}function V(t,n){if($(),!k.state.isVisible){if(k.props.target)return function(t){if(t){var n=De(t.target,k.props.target);n&&!n._tippy&&Pn(n,Te({},k.props,{content:hn(e.content,[n]),appendTo:e.appendTo,target:"",showOnInit:!0}))}}(t);if(f=!0,t&&!n&&k.props.onTrigger(k,t),k.props.wait)return k.props.wait(k,t);O()&&!k.state.isMounted&&(k.popperInstance||U(),document.addEventListener("mousemove",N)),S();var i=ln(k.props.delay,0,_e.delay);i?o=setTimeout((function(){X()}),i):X()}}function Y(){if($(),!k.state.isVisible)return E();f=!1;var t=ln(k.props.delay,1,_e.delay);t?r=setTimeout((function(){k.state.isVisible&&q()}),t):a=requestAnimationFrame((function(){q()}))}function W(t){if(!k.props.interactive||!x.contains(t.target)){if(I().contains(t.target)){if(en)return;if(k.state.isVisible&&un(k.props.trigger,"click"))return}!0===k.props.hideOnClick&&($(),q())}}function $(){clearTimeout(o),clearTimeout(r),cancelAnimationFrame(a)}function G(e){wn(e=e||{},_e),M();var n=k.props,o=xn(t,Te({},k.props,e,{ignoreAttributes:!0}));o.ignoreAttributes=cn(e,"ignoreAttributes")?e.ignoreAttributes||!1:n.ignoreAttributes,k.props=o,L(),T(),v=pn(D,o.interactiveDebounce),Rn(x,n,o),k.popperChildren=Tn(x),k.popperInstance&&(Le.some((function(t){return cn(e,t)&&e[t]!==n[t]}))?(k.popperInstance.destroy(),U(),k.state.isVisible&&k.popperInstance.enableEventListeners(),k.props.followCursor&&i&&N(i)):k.popperInstance.update())}function X(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:ln(k.props.duration,0,_e.duration[1]);if(!k.state.isDestroyed&&k.state.isEnabled&&(!en||k.props.touch)&&!I().hasAttribute("disabled")&&!1!==k.props.onShow(k)){S(),x.style.visibility="visible",k.state.isVisible=!0,k.props.interactive&&I().classList.add(Ue);var n=C();vn(n.concat(x),0),l=function(){if(k.state.isVisible){var t=O();t&&i?N(i):t||k.popperInstance.update(),k.popperChildren.backdrop&&(k.popperChildren.content.style.transitionDelay=Math.round(e/12)+"ms"),k.props.sticky&&(vn([x],Ce?0:k.props.updateDuration),function t(){k.popperInstance.scheduleUpdate(),k.state.isMounted?requestAnimationFrame(t):vn([x],0)}()),vn([x],k.props.updateDuration),vn(n,e),yn(n,"visible"),function(t,e){A(t,e)}(e,(function(){k.props.aria&&I().setAttribute("aria-".concat(k.props.aria),x.id),k.props.onShown(k),k.state.isShown=!0}))}},function(){b=!1;var e=O();k.popperInstance?(bn(k.popperInstance.modifiers,k.props.flip),e||(k.popperInstance.reference=t,k.popperInstance.enableEventListeners()),k.popperInstance.scheduleUpdate()):(U(),e||k.popperInstance.enableEventListeners());var n=k.props.appendTo,i="parent"===n?t.parentNode:hn(n,[t]);i.contains(x)||(i.appendChild(x),k.props.onMount(k),k.state.isMounted=!0)}()}}function q(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:ln(k.props.duration,1,_e.duration[1]);if(!k.state.isDestroyed&&(k.state.isEnabled||m)&&(!1!==k.props.onHide(k)||m)){document.removeEventListener("click",W,!0),x.style.visibility="hidden",k.state.isVisible=!1,k.state.isShown=!1,h=!1,k.props.interactive&&I().classList.remove(Ue);var e=C();vn(e,t),yn(e,"hidden"),function(t,e){A(t,(function(){!k.state.isVisible&&x.parentNode&&x.parentNode.contains(x)&&e()}))}(t,(function(){f||E(),k.props.aria&&I().removeAttribute("aria-".concat(k.props.aria)),k.popperInstance.disableEventListeners(),k.popperInstance.options.placement=k.props.placement,x.parentNode.removeChild(x),k.props.onHidden(k),k.state.isMounted=!1}))}}}var Hn=!1;function Fn(t,e){wn(e||{},_e),Hn||(document.addEventListener("touchstart",nn,Pe),window.addEventListener("blur",an),Hn=!0);var n,i=Te({},_e,e);n=t,"[object Object]"==={}.toString.call(n)&&!n.addEventListener&&function(t){var e={isVirtual:!0,attributes:t.attributes||{},contains:function(){},setAttribute:function(e,n){t.attributes[e]=n},getAttribute:function(e){return t.attributes[e]},removeAttribute:function(e){delete t.attributes[e]},hasAttribute:function(e){return e in t.attributes},addEventListener:function(){},removeEventListener:function(){},classList:{classNames:{},add:function(e){t.classList.classNames[e]=!0},remove:function(e){delete t.classList.classNames[e]},contains:function(e){return e in t.classList.classNames}}};for(var n in e)t[n]=e[n]}(t);var o=function(t){if(mn(t))return[t];if(t instanceof NodeList)return Re(t);if(q(t))return t;try{return Re(document.querySelectorAll(t))}catch(t){return[]}}(t).reduce((function(t,e){var n=e&&Pn(e,i);return n&&t.push(n),t}),[]);return mn(t)?o[0]:o}Fn.version="4.3.4",Fn.defaults=_e,Fn.setDefaults=function(t){ft(t).forEach((function(e){_e[e]=t[e]}))},Fn.hideAll=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.exclude,n=t.duration;Re(document.querySelectorAll(qe)).forEach((function(t){var i,o=t._tippy;if(o){var r=!1;e&&(r=(i=e)._tippy&&!Ne.call(i,qe)?o.reference===e:t===e.popper),r||o.hide(n)}}))},Fn.group=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.delay,i=void 0===n?t[0].props.delay:n,o=e.duration,r=void 0===o?0:o,a=!1;function s(t){a=t,d()}function c(e){e._originalProps.onShow(e),t.forEach((function(t){t.set({duration:r}),t.state.isVisible&&t.hide()})),s(!0)}function l(t){t._originalProps.onHide(t),s(!1)}function p(t){t._originalProps.onShown(t),t.set({duration:t._originalProps.duration})}function d(){t.forEach((function(t){t.set({onShow:c,onShown:p,onHide:l,delay:a?[0,q(i)?i[1]:i]:i,duration:a?r:t._originalProps.duration})}))}t.forEach((function(t){t._originalProps?t.set(t._originalProps):t._originalProps=Te({},t.props)})),d()},Ie&&setTimeout((function(){Re(document.querySelectorAll("[data-tippy]")).forEach((function(t){var e=t.getAttribute("data-tippy");e&&Fn(t,{content:e})}))}));var jn={duration:0,arrow:!0,size:"small",trigger:"mouseenter focus",theme:"dark",interactive:!0,boundary:"window",content:"",allowHtml:!1,extCls:""},Bn=["auto-start","auto","auto-end","top-start","top","top-end","right-start","right","right-end","bottom-end","bottom","bottom-start","left-end","left","left-start"],Un=function(t,n){var o=n.value,s=function(t){for(var e=1;e>>0||(z.test(n)?16:10))}:R;I(I.G+I.F*(parseInt!=P),{parseInt:P});var H=c.parseInt,F={}.toString,j=function(t){return F.call(t).slice(8,-1)},B=Array.isArray||function(t){return"Array"==j(t)};I(I.S,"Array",{isArray:B});var U,V,Y,W,$,G,X=c.Array.isArray,q=function(t){return Object(S(t))},K=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==j(t)?t.split(""):Object(t)},Z=function(t){return K(S(t))},Q=Math.ceil,J=Math.floor,tt=function(t){return isNaN(t=+t)?0:(t>0?J:Q)(t)},et=Math.min,nt=Math.max,it=Math.min,ot=a((function(t){var e="__core-js_shared__",n=s[e]||(s[e]={});(t.exports=function(t,e){return n[t]||(n[t]=void 0!==e?e:{})})("versions",[]).push({version:c.version,mode:"pure",copyright:"© 2020 Denis Pushkarev (zloirock.ru)"})})),rt=0,at=Math.random(),st=ot("keys"),ct=(G=!1,function(t,e,n){var i,o,r=Z(t),a=(o=r.length)>0?et(tt(o),9007199254740991):0,s=function(t,e){return(t=tt(t))<0?nt(t+e,0):it(t,e)}(n,a);if(G&&e!=e){for(;a>s;)if((i=r[s++])!=i)return!0}else for(;a>s;s++)if((G||s in r)&&r[s]===e)return G||s||0;return!G&&-1}),lt=st[$="IE_PROTO"]||(st[$]=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++rt+at).toString(36))}($)),pt="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(","),dt=Object.keys||function(t){return function(t,e){var n,i=Z(t),o=0,r=[];for(n in i)n!=lt&&k(i,n)&&r.push(n);for(;e.length>o;)k(i,n=e[o++])&&(~ct(r,n)||r.push(n));return r}(t,pt)};U="keys",V=function(){return function(t){return dt(q(t))}},Y=(c.Object||{})[U]||Object[U],(W={})[U]=V(),I(I.S+I.F*f((function(){Y(1)})),"Object",W);var ut=c.Object.keys,ft={f:Object.getOwnPropertySymbols},mt={f:{}.propertyIsEnumerable},ht=Object.assign,bt=!ht||f((function(){var t={},e={},n=Symbol(),i="abcdefghijklmnopqrst";return t[n]=7,i.split("").forEach((function(t){e[t]=t})),7!=ht({},t)[n]||Object.keys(ht({},e)).join("")!=i}))?function(t,e){for(var n=q(t),i=arguments.length,o=1,r=ft.f,a=mt.f;i>o;)for(var s,c=K(arguments[o++]),l=r?dt(c).concat(r(c)):dt(c),p=l.length,d=0;p>d;)s=l[d++],m&&!a.call(c,s)||(n[s]=c[s]);return n}:ht;I(I.S+I.F,"Object",{assign:bt});var gt=c.Object.assign,vt=s.parseFloat,yt=N.trim,xt=1/vt(C+"-0")!=-1/0?function(t){var e=yt(String(t),3),n=vt(e);return 0===n&&"-"==e.charAt(0)?-0:n}:vt;I(I.G+I.F*(parseFloat!=xt),{parseFloat:xt});for(var wt=c.parseFloat,kt="undefined"!=typeof window&&"undefined"!=typeof document,Et=["Edge","Trident","Firefox"],Tt=0,It=0;It=0){Tt=1;break}var St=kt&&window.Promise?function(t){var e=!1;return function(){e||(e=!0,window.Promise.resolve().then((function(){e=!1,t()})))}}:function(t){var e=!1;return function(){e||(e=!0,setTimeout((function(){e=!1,t()}),Tt))}};function Ct(t){return t&&"[object Function]"==={}.toString.call(t)}function Ot(t,e){if(1!==t.nodeType)return[];var n=t.ownerDocument.defaultView.getComputedStyle(t,null);return e?n[e]:n}function At(t){return"HTML"===t.nodeName?t:t.parentNode||t.host}function _t(t){if(!t)return document.body;switch(t.nodeName){case"HTML":case"BODY":return t.ownerDocument.body;case"#document":return t.body}var e=Ot(t),n=e.overflow,i=e.overflowX,o=e.overflowY;return/(auto|scroll|overlay)/.test(n+o+i)?t:_t(At(t))}var Lt=kt&&!(!window.MSInputMethodContext||!document.documentMode),Mt=kt&&/MSIE 10/.test(navigator.userAgent);function Nt(t){return 11===t?Lt:10===t?Mt:Lt||Mt}function Rt(t){if(!t)return document.documentElement;for(var e=Nt(10)?document.body:null,n=t.offsetParent||null;n===e&&t.nextElementSibling;)n=(t=t.nextElementSibling).offsetParent;var i=n&&n.nodeName;return i&&"BODY"!==i&&"HTML"!==i?-1!==["TH","TD","TABLE"].indexOf(n.nodeName)&&"static"===Ot(n,"position")?Rt(n):n:t?t.ownerDocument.documentElement:document.documentElement}function Dt(t){return null!==t.parentNode?Dt(t.parentNode):t}function zt(t,e){if(!(t&&t.nodeType&&e&&e.nodeType))return document.documentElement;var n=t.compareDocumentPosition(e)&Node.DOCUMENT_POSITION_FOLLOWING,i=n?t:e,o=n?e:t,r=document.createRange();r.setStart(i,0),r.setEnd(o,0);var a,s,c=r.commonAncestorContainer;if(t!==c&&e!==c||i.contains(o))return"BODY"===(s=(a=c).nodeName)||"HTML"!==s&&Rt(a.firstElementChild)!==a?Rt(c):c;var l=Dt(t);return l.host?zt(l.host,e):zt(t,Dt(e).host)}function Pt(t){var e="top"===(arguments.length>1&&void 0!==arguments[1]?arguments[1]:"top")?"scrollTop":"scrollLeft",n=t.nodeName;if("BODY"===n||"HTML"===n){var i=t.ownerDocument.documentElement;return(t.ownerDocument.scrollingElement||i)[e]}return t[e]}function Ht(t,e){var n="x"===e?"Left":"Top",i="Left"===n?"Right":"Bottom";return wt(t["border".concat(n,"Width")],10)+wt(t["border".concat(i,"Width")],10)}function Ft(t,e,n,i){return Math.max(e["offset".concat(t)],e["scroll".concat(t)],n["client".concat(t)],n["offset".concat(t)],n["scroll".concat(t)],Nt(10)?H(n["offset".concat(t)])+H(i["margin".concat("Height"===t?"Top":"Left")])+H(i["margin".concat("Height"===t?"Bottom":"Right")]):0)}function jt(t){var e=t.body,n=t.documentElement,i=Nt(10)&&getComputedStyle(n);return{height:Ft("Height",e,n,i),width:Ft("Width",e,n,i)}}var Bt=gt||function(t){for(var e=1;e2&&void 0!==arguments[2]&&arguments[2],i=Nt(10),o="HTML"===e.nodeName,r=Vt(t),a=Vt(e),s=_t(t),c=Ot(e),l=wt(c.borderTopWidth,10),p=wt(c.borderLeftWidth,10);n&&o&&(a.top=Math.max(a.top,0),a.left=Math.max(a.left,0));var d=Ut({top:r.top-a.top-l,left:r.left-a.left-p,width:r.width,height:r.height});if(d.marginTop=0,d.marginLeft=0,!i&&o){var u=wt(c.marginTop,10),f=wt(c.marginLeft,10);d.top-=l-u,d.bottom-=l-u,d.left-=p-f,d.right-=p-f,d.marginTop=u,d.marginLeft=f}return(i&&!n?e.contains(s):e===s&&"BODY"!==s.nodeName)&&(d=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=Pt(e,"top"),o=Pt(e,"left"),r=n?-1:1;return t.top+=i*r,t.bottom+=i*r,t.left+=o*r,t.right+=o*r,t}(d,e)),d}function Wt(t){var e=t.nodeName;if("BODY"===e||"HTML"===e)return!1;if("fixed"===Ot(t,"position"))return!0;var n=At(t);return!!n&&Wt(n)}function $t(t){if(!t||!t.parentElement||Nt())return document.documentElement;for(var e=t.parentElement;e&&"none"===Ot(e,"transform");)e=e.parentElement;return e||document.documentElement}function Gt(t,e,n,i){var o=arguments.length>4&&void 0!==arguments[4]&&arguments[4],r={top:0,left:0},a=o?$t(t):zt(t,e);if("viewport"===i)r=function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=t.ownerDocument.documentElement,i=Yt(t,n),o=Math.max(n.clientWidth,window.innerWidth||0),r=Math.max(n.clientHeight,window.innerHeight||0),a=e?0:Pt(n),s=e?0:Pt(n,"left");return Ut({top:a-i.top+i.marginTop,left:s-i.left+i.marginLeft,width:o,height:r})}(a,o);else{var s;"scrollParent"===i?"BODY"===(s=_t(At(e))).nodeName&&(s=t.ownerDocument.documentElement):s="window"===i?t.ownerDocument.documentElement:i;var c=Yt(s,a,o);if("HTML"!==s.nodeName||Wt(a))r=c;else{var l=jt(t.ownerDocument),p=l.height,d=l.width;r.top+=c.top-c.marginTop,r.bottom=p+c.top,r.left+=c.left-c.marginLeft,r.right=d+c.left}}var u="number"==typeof(n=n||0);return r.left+=u?n:n.left||0,r.top+=u?n:n.top||0,r.right-=u?n:n.right||0,r.bottom-=u?n:n.bottom||0,r}function Xt(t,e,n,i,o){var r=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0;if(-1===t.indexOf("auto"))return t;var a=Gt(n,i,r,o),s={top:{width:a.width,height:e.top-a.top},right:{width:a.right-e.right,height:a.height},bottom:{width:a.width,height:a.bottom-e.bottom},left:{width:e.left-a.left,height:a.height}},c=ut(s).map((function(t){return Bt({key:t},s[t],{area:(e=s[t],e.width*e.height)});var e})).sort((function(t,e){return e.area-t.area})),l=c.filter((function(t){var e=t.width,i=t.height;return e>=n.clientWidth&&i>=n.clientHeight})),p=l.length>0?l[0].key:c[0].key,d=t.split("-")[1];return p+(d?"-".concat(d):"")}function qt(t,e,n){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;return Yt(n,i?$t(e):zt(e,n),i)}function Kt(t){var e=t.ownerDocument.defaultView.getComputedStyle(t),n=wt(e.marginTop||0)+wt(e.marginBottom||0),i=wt(e.marginLeft||0)+wt(e.marginRight||0);return{width:t.offsetWidth+i,height:t.offsetHeight+n}}function Zt(t){var e={left:"right",right:"left",bottom:"top",top:"bottom"};return t.replace(/left|right|bottom|top/g,(function(t){return e[t]}))}function Qt(t,e,n){n=n.split("-")[0];var i=Kt(t),o={width:i.width,height:i.height},r=-1!==["right","left"].indexOf(n),a=r?"top":"left",s=r?"left":"top",c=r?"height":"width",l=r?"width":"height";return o[a]=e[a]+e[c]/2-i[c]/2,o[s]=n===s?e[s]-i[l]:e[Zt(s)],o}function Jt(t,e){return Array.prototype.find?t.find(e):t.filter(e)[0]}function te(t,e,n){return(void 0===n?t:t.slice(0,function(t,e,n){if(Array.prototype.findIndex)return t.findIndex((function(t){return t[e]===n}));var i=Jt(t,(function(t){return t[e]===n}));return t.indexOf(i)}(t,"name",n))).forEach((function(t){t.function&&console.warn("`modifier.function` is deprecated, use `modifier.fn`!");var n=t.function||t.fn;t.enabled&&Ct(n)&&(e.offsets.popper=Ut(e.offsets.popper),e.offsets.reference=Ut(e.offsets.reference),e=n(e,t))})),e}function ee(){if(!this.state.isDestroyed){var t={instance:this,styles:{},arrowStyles:{},attributes:{},flipped:!1,offsets:{}};t.offsets.reference=qt(this.state,this.popper,this.reference,this.options.positionFixed),t.placement=Xt(this.options.placement,t.offsets.reference,this.popper,this.reference,this.options.modifiers.flip.boundariesElement,this.options.modifiers.flip.padding),t.originalPlacement=t.placement,t.positionFixed=this.options.positionFixed,t.offsets.popper=Qt(this.popper,t.offsets.reference,t.placement),t.offsets.popper.position=this.options.positionFixed?"fixed":"absolute",t=te(this.modifiers,t),this.state.isCreated?this.options.onUpdate(t):(this.state.isCreated=!0,this.options.onCreate(t))}}function ne(t,e){return t.some((function(t){var n=t.name;return t.enabled&&n===e}))}function ie(t){for(var e=[!1,"ms","Webkit","Moz","O"],n=t.charAt(0).toUpperCase()+t.slice(1),i=0;i1&&void 0!==arguments[1]&&arguments[1],n=he.indexOf(t),i=he.slice(n+1).concat(he.slice(0,n));return e?i.reverse():i}var ge="flip",ve="clockwise",ye="counterclockwise";function xe(t,e,n,i){var o=[0,0],r=-1!==["right","left"].indexOf(i),a=t.split(/(\+|\-)/).map((function(t){return t.trim()})),s=a.indexOf(Jt(a,(function(t){return-1!==t.search(/,|\s/)})));a[s]&&-1===a[s].indexOf(",")&&console.warn("Offsets separated by white space(s) are deprecated, use a comma (,) instead.");var c=/\s*,\s*|\s+/,l=-1!==s?[a.slice(0,s).concat([a[s].split(c)[0]]),[a[s].split(c)[1]].concat(a.slice(s+1))]:[a];return(l=l.map((function(t,i){var o=(1===i?!r:r)?"height":"width",a=!1;return t.reduce((function(t,e){return""===t[t.length-1]&&-1!==["+","-"].indexOf(e)?(t[t.length-1]=e,a=!0,t):a?(t[t.length-1]+=e,a=!1,t):t.concat(e)}),[]).map((function(t){return function(t,e,n,i){var o=t.match(/((?:\-|\+)?\d*\.?\d*)(.*)/),r=+o[1],a=o[2];return r?0===a.indexOf("%")?Ut("%p"===a?n:i)[e]/100*r:"vh"===a||"vw"===a?("vh"===a?Math.max(document.documentElement.clientHeight,window.innerHeight||0):Math.max(document.documentElement.clientWidth,window.innerWidth||0))/100*r:r:t}(t,o,e,n)}))}))).forEach((function(t,e){t.forEach((function(n,i){pe(n)&&(o[e]+=n*("-"===t[i-1]?-1:1))}))})),o}var we={placement:"bottom",positionFixed:!1,eventsEnabled:!0,removeOnDestroy:!1,onCreate:function(){},onUpdate:function(){},modifiers:{shift:{order:100,enabled:!0,fn:function(t){var e=t.placement,n=e.split("-")[0],i=e.split("-")[1];if(i){var r=t.offsets,a=r.reference,s=r.popper,c=-1!==["bottom","top"].indexOf(n),l=c?"left":"top",p=c?"width":"height",d={start:o({},l,a[l]),end:o({},l,a[l]+a[p]-s[p])};t.offsets.popper=Bt({},s,d[i])}return t}},offset:{order:200,enabled:!0,fn:function(t,e){var n,i=e.offset,o=t.placement,r=t.offsets,a=r.popper,s=r.reference,c=o.split("-")[0];return n=pe(+i)?[+i,0]:xe(i,a,s,c),"left"===c?(a.top+=n[0],a.left-=n[1]):"right"===c?(a.top+=n[0],a.left+=n[1]):"top"===c?(a.left+=n[0],a.top-=n[1]):"bottom"===c&&(a.left+=n[0],a.top+=n[1]),t.popper=a,t},offset:0},preventOverflow:{order:300,enabled:!0,fn:function(t,e){var n=e.boundariesElement||Rt(t.instance.popper);t.instance.reference===n&&(n=Rt(n));var i=ie("transform"),r=t.instance.popper.style,a=r.top,s=r.left,c=r[i];r.top="",r.left="",r[i]="";var l=Gt(t.instance.popper,t.instance.reference,e.padding,n,t.positionFixed);r.top=a,r.left=s,r[i]=c,e.boundaries=l;var p=e.priority,d=t.offsets.popper,u={primary:function(t){var n=d[t];return d[t]l[t]&&!e.escapeWithReference&&(i=Math.min(d[n],l[t]-("right"===t?d.width:d.height))),o({},n,i)}};return p.forEach((function(t){var e=-1!==["left","top"].indexOf(t)?"primary":"secondary";d=Bt({},d,u[e](t))})),t.offsets.popper=d,t},priority:["left","right","top","bottom"],padding:5,boundariesElement:"scrollParent"},keepTogether:{order:400,enabled:!0,fn:function(t){var e=t.offsets,n=e.popper,i=e.reference,o=t.placement.split("-")[0],r=Math.floor,a=-1!==["top","bottom"].indexOf(o),s=a?"right":"bottom",c=a?"left":"top",l=a?"width":"height";return n[s]r(i[s])&&(t.offsets.popper[c]=r(i[s])),t}},arrow:{order:500,enabled:!0,fn:function(t,e){var n;if(!fe(t.instance.modifiers,"arrow","keepTogether"))return t;var i=e.element;if("string"==typeof i){if(!(i=t.instance.popper.querySelector(i)))return t}else if(!t.instance.popper.contains(i))return console.warn("WARNING: `arrow.element` must be child of its popper element!"),t;var r=t.placement.split("-")[0],a=t.offsets,s=a.popper,c=a.reference,l=-1!==["left","right"].indexOf(r),p=l?"height":"width",d=l?"Top":"Left",u=d.toLowerCase(),f=l?"left":"top",m=l?"bottom":"right",h=Kt(i)[p];c[m]-hs[m]&&(t.offsets.popper[u]+=c[u]+h-s[m]),t.offsets.popper=Ut(t.offsets.popper);var b=c[u]+c[p]/2-h/2,g=Ot(t.instance.popper),v=wt(g["margin".concat(d)],10),y=wt(g["border".concat(d,"Width")],10),x=b-t.offsets.popper[u]-v-y;return x=Math.max(Math.min(s[p]-h,x),0),t.arrowElement=i,t.offsets.arrow=(o(n={},u,Math.round(x)),o(n,f,""),n),t},element:"[x-arrow]"},flip:{order:600,enabled:!0,fn:function(t,e){if(ne(t.instance.modifiers,"inner"))return t;if(t.flipped&&t.placement===t.originalPlacement)return t;var n=Gt(t.instance.popper,t.instance.reference,e.padding,e.boundariesElement,t.positionFixed),i=t.placement.split("-")[0],o=Zt(i),r=t.placement.split("-")[1]||"",a=[];switch(e.behavior){case ge:a=[i,o];break;case ve:a=be(i);break;case ye:a=be(i,!0);break;default:a=e.behavior}return a.forEach((function(s,c){if(i!==s||a.length===c+1)return t;i=t.placement.split("-")[0],o=Zt(i);var l=t.offsets.popper,p=t.offsets.reference,d=Math.floor,u="left"===i&&d(l.right)>d(p.left)||"right"===i&&d(l.left)d(p.top)||"bottom"===i&&d(l.top)d(n.right),h=d(l.top)d(n.bottom),g="left"===i&&f||"right"===i&&m||"top"===i&&h||"bottom"===i&&b,v=-1!==["top","bottom"].indexOf(i),y=!!e.flipVariations&&(v&&"start"===r&&f||v&&"end"===r&&m||!v&&"start"===r&&h||!v&&"end"===r&&b),x=!!e.flipVariationsByContent&&(v&&"start"===r&&m||v&&"end"===r&&f||!v&&"start"===r&&b||!v&&"end"===r&&h),w=y||x;(u||g||w)&&(t.flipped=!0,(u||g)&&(i=a[c+1]),w&&(r=function(t){return"end"===t?"start":"start"===t?"end":t}(r)),t.placement=i+(r?"-"+r:""),t.offsets.popper=Bt({},t.offsets.popper,Qt(t.instance.popper,t.offsets.reference,t.placement)),t=te(t.instance.modifiers,t,"flip"))})),t},behavior:"flip",padding:5,boundariesElement:"viewport",flipVariations:!1,flipVariationsByContent:!1},inner:{order:700,enabled:!1,fn:function(t){var e=t.placement,n=e.split("-")[0],i=t.offsets,o=i.popper,r=i.reference,a=-1!==["left","right"].indexOf(n),s=-1===["top","left"].indexOf(n);return o[a?"left":"top"]=r[n]-(s?o[a?"width":"height"]:0),t.placement=Zt(e),t.offsets.popper=Ut(o),t}},hide:{order:800,enabled:!0,fn:function(t){if(!fe(t.instance.modifiers,"hide","preventOverflow"))return t;var e=t.offsets.reference,n=Jt(t.instance.modifiers,(function(t){return"preventOverflow"===t.name})).boundaries;if(e.bottomn.right||e.top>n.bottom||e.right2&&void 0!==arguments[2]?arguments[2]:{};(function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")})(this,t),this.scheduleUpdate=function(){return requestAnimationFrame(i.update)},this.update=St(this.update.bind(this)),this.options=Bt({},t.Defaults,o),this.state={isDestroyed:!1,isCreated:!1,scrollParents:[]},this.reference=e&&e.jquery?e[0]:e,this.popper=n&&n.jquery?n[0]:n,this.options.modifiers={},ut(Bt({},t.Defaults.modifiers,o.modifiers)).forEach((function(e){i.options.modifiers[e]=Bt({},t.Defaults.modifiers[e]||{},o.modifiers?o.modifiers[e]:{})})),this.modifiers=ut(this.options.modifiers).map((function(t){return Bt({name:t},i.options.modifiers[t])})).sort((function(t,e){return t.order-e.order})),this.modifiers.forEach((function(t){t.enabled&&Ct(t.onLoad)&&t.onLoad(i.reference,i.popper,i.options,t,i.state)})),this.update();var r=this.options.eventsEnabled;r&&this.enableEventListeners(),this.state.eventsEnabled=r}return e=t,(n=[{key:"update",value:function(){return ee.call(this)}},{key:"destroy",value:function(){return oe.call(this)}},{key:"enableEventListeners",value:function(){return ce.call(this)}},{key:"disableEventListeners",value:function(){return le.call(this)}}])&&i(e.prototype,n),o&&i(e,o),Object.defineProperty(e,"prototype",{writable:!1}),t;var e,n,o}();function Ee(){return Ee=gt||function(t){for(var e=1;e-1}function un(t){return t instanceof Element}function fn(t){return!(!t||!sn(t,"isVirtual"))||un(t)}function mn(t,e){return"function"==typeof t?t.apply(null,e):t}function hn(t,e){t.filter((function(t){return"flip"===t.name}))[0].enabled=e}function bn(){return document.createElement("div")}function gn(t,e){t.forEach((function(t){t&&(t.style.transitionDuration="".concat(e,"ms"))}))}function vn(t,e){t.forEach((function(t){t&&t.setAttribute("data-state",e)}))}function yn(t,e){var n=Ee({},e,{content:mn(e.content,[t])},e.ignoreAttributes?{}:function(t){return an.reduce((function(e,n){var i=(t.getAttribute("data-tippy-".concat(n))||"").trim();if(!i)return e;if("content"===n)e[n]=i;else try{e[n]=JSON.parse(i)}catch(t){e[n]=i}return e}),{})}(t));return(n.arrow||Ce)&&(n.animateFill=!1),n}function xn(t,e){ut(t).forEach((function(t){if(!sn(e,t))throw new Error("[tippy]: `".concat(t,"` is not a valid option"))}))}function wn(t,e){t.innerHTML=un(e)?e.innerHTML:e}function kn(t,e){un(e.content)?(wn(t,""),t.appendChild(e.content)):"function"!=typeof e.content&&(t[e.allowHTML?"innerHTML":"textContent"]=e.content)}function En(t){return{tooltip:t.querySelector(qe),backdrop:t.querySelector(Ze),content:t.querySelector(Ke),arrow:t.querySelector(Qe)||t.querySelector(Je)}}function Tn(t){t.setAttribute("data-inertia","")}function In(t){var e=bn();return"round"===t?(e.className=Ge,wn(e,'')):e.className=$e,e}function Sn(){var t=bn();return t.className=We,t.setAttribute("data-state","hidden"),t}function Cn(t,e){t.setAttribute("tabindex","-1"),e.setAttribute("data-interactive","")}function On(t,e,n){var i=Ce&&void 0!==document.body.style.webkitTransition?"webkitTransitionEnd":"transitionend";t[e+"EventListener"](i,n)}function An(t){var e=t.getAttribute(He);return e?e.split("-")[0]:""}function _n(t,e,n){n.split(" ").forEach((function(n){t.classList[e](n+"-theme")}))}function Ln(t,e,n){var i=e[n],o=H(i);"number"==typeof i?t.style[n]=i+"px":isNaN(o)?t.style[n]=i:t.style[n]=o+"px"}function Mn(t,e){var n=bn();n.className=Ue+(e.extCls?" ".concat(e.extCls):""),n.id="tippy-".concat(t),n.style.zIndex=""+e.zIndex,n.style.position="absolute",n.style.top="0",n.style.left="0",e.role&&n.setAttribute("role",e.role);var i=bn();i.className=Ve,Ln(i,e,"maxWidth"),Ln(i,e,"width"),i.setAttribute("data-size",e.size),i.setAttribute("data-animation",e.animation),i.setAttribute("data-state","hidden"),_n(i,"add",e.theme);var o=bn();return o.className=Ye,o.setAttribute("data-state","hidden"),e.interactive&&Cn(n,i),e.arrow&&i.appendChild(In(e.arrowType)),e.animateFill&&(i.appendChild(Sn()),i.setAttribute("data-animatefill","")),e.inertia&&Tn(i),kn(o,e),i.appendChild(o),n.appendChild(i),n}function Nn(t,e,n){var i=En(t),o=i.tooltip,r=i.content,a=i.backdrop,s=i.arrow;t.style.zIndex=""+n.zIndex,o.setAttribute("data-size",n.size),o.setAttribute("data-animation",n.animation),o.style.maxWidth=n.maxWidth+("number"==typeof n.maxWidth?"px":""),n.role?t.setAttribute("role",n.role):t.removeAttribute("role"),e.content!==n.content&&kn(r,n),!e.animateFill&&n.animateFill?(o.appendChild(Sn()),o.setAttribute("data-animatefill","")):e.animateFill&&!n.animateFill&&(o.removeChild(a),o.removeAttribute("data-animatefill")),!e.arrow&&n.arrow?o.appendChild(In(n.arrowType)):e.arrow&&!n.arrow&&o.removeChild(s),e.arrow&&n.arrow&&e.arrowType!==n.arrowType&&o.replaceChild(In(n.arrowType),s),!e.interactive&&n.interactive?Cn(t,o):e.interactive&&!n.interactive&&function(t,e){t.removeAttribute("tabindex"),e.removeAttribute("data-interactive")}(t,o),!e.inertia&&n.inertia?Tn(o):e.inertia&&!n.inertia&&function(t){t.removeAttribute("data-inertia")}(o),e.theme!==n.theme&&(_n(o,"remove",e.theme),_n(o,"add",n.theme))}var Rn=1,Dn=[];function zn(t,e){var n,i,o,r,a,s=yn(t,e);if(!s.multiple&&t._tippy)return null;var c,l,p,d,u,f=!1,m=!1,h=!1,b=!1,g=[],v=ln(D,s.interactiveDebounce),y=Rn++,x=Mn(y,s),w=En(x),k={id:y,reference:t,popper:x,popperChildren:w,popperInstance:null,props:s,state:{isEnabled:!0,isVisible:!1,isDestroyed:!1,isMounted:!1,isShown:!1},clearDelayTimeouts:$,set:G,setContent:function(t){G({content:t})},show:X,hide:q,enable:function(){k.state.isEnabled=!0},disable:function(){k.state.isEnabled=!1},destroy:function(e){if(!k.state.isDestroyed){m=!0,k.state.isMounted&&q(0),M(),delete t._tippy;var n=k.props.target;n&&e&&un(t)&&Ne(t.querySelectorAll(n)).forEach((function(t){t._tippy&&t._tippy.destroy()})),k.popperInstance&&k.popperInstance.destroy(),m=!1,k.state.isDestroyed=!0}}};return t._tippy=k,x._tippy=k,L(),s.lazy||U(),s.showOnInit&&V(),!s.a11y||s.target||(!un(u=I())||Me.call(u,"a[href],area[href],button,details,input,textarea,select,iframe,[tabindex]")&&!u.hasAttribute("disabled"))||I().setAttribute("tabindex","0"),x.addEventListener("mouseenter",(function(t){k.props.interactive&&k.state.isVisible&&"mouseenter"===n&&V(t,!0)})),x.addEventListener("mouseleave",(function(){k.props.interactive&&"mouseenter"===n&&document.addEventListener("mousemove",v)})),k;function E(){document.removeEventListener("mousemove",N)}function T(){document.body.removeEventListener("mouseleave",Y),document.removeEventListener("mousemove",v),Dn=Dn.filter((function(t){return t!==v}))}function I(){return k.props.triggerTarget||t}function S(){document.addEventListener("click",W,!0)}function C(){return[k.popperChildren.tooltip,k.popperChildren.backdrop,k.popperChildren.content]}function O(){var t=k.props.followCursor;return t&&"focus"!==n||tn&&"initial"===t}function A(t,e){var n=k.popperChildren.tooltip;function i(t){t.target===n&&(On(n,"remove",i),e())}if(0===t)return e();On(n,"remove",p),On(n,"add",i),p=i}function _(t,e){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];I().addEventListener(t,e,n),g.push({eventType:t,handler:e,options:n})}function L(){k.props.touchHold&&!k.props.target&&(_("touchstart",R,ze),_("touchend",z,ze)),k.props.trigger.trim().split(" ").forEach((function(t){if("manual"!==t)if(k.props.target)switch(t){case"mouseenter":_("mouseover",H),_("mouseout",F);break;case"focus":_("focusin",H),_("focusout",F);break;case"click":_(t,H)}else switch(_(t,R),t){case"mouseenter":_("mouseleave",z);break;case"focus":_(Se?"focusout":"blur",P)}}))}function M(){g.forEach((function(t){var e=t.eventType,n=t.handler,i=t.options;I().removeEventListener(e,n,i)})),g=[]}function N(e){var n=i=e,o=n.clientX,r=n.clientY;if(d){var a=De(e.target,(function(e){return e===t})),s=t.getBoundingClientRect(),c=k.props.followCursor,l="horizontal"===c,p="vertical"===c,u=dn(["top","bottom"],An(x)),f=x.getAttribute(He),m=!!f&&!!f.split("-")[1],h=u?x.offsetWidth:x.offsetHeight,b=h/2,g=u?0:m?h:b,v=u?m?h:b:0;!a&&k.props.interactive||(k.popperInstance.reference=Ee({},k.popperInstance.reference,{clientWidth:0,clientHeight:0,getBoundingClientRect:function(){return{width:u?h:0,height:u?0:h,top:(l?s.top:r)-g,bottom:(l?s.bottom:r)+g,left:(p?s.left:o)-v,right:(p?s.right:o)+v}}}),k.popperInstance.update()),"initial"===c&&k.state.isVisible&&E()}}function R(t){k.state.isEnabled&&!j(t)&&(k.state.isVisible||(n=t.type,t instanceof MouseEvent&&(i=t,Dn.forEach((function(e){return e(t)})))),"click"===t.type&&!1!==k.props.hideOnClick&&k.state.isVisible?Y():V(t))}function D(e){var n=Re(e.target,Xe)===x,i=De(e.target,(function(e){return e===t}));n||i||function(t,e,n,i){if(!t)return!0;var o=n.clientX,r=n.clientY,a=i.interactiveBorder,s=i.distance,c=e.top-r>("top"===t?a+s:a),l=r-e.bottom>("bottom"===t?a+s:a),p=e.left-o>("left"===t?a+s:a),d=o-e.right>("right"===t?a+s:a);return c||l||p||d}(An(x),x.getBoundingClientRect(),e,k.props)&&(T(),Y())}function z(t){if(!j(t))return k.props.interactive?(document.body.addEventListener("mouseleave",Y),document.addEventListener("mousemove",v),void Dn.push(v)):void Y()}function P(t){t.target===I()&&(k.props.interactive&&t.relatedTarget&&x.contains(t.relatedTarget)||Y())}function H(t){Re(t.target,k.props.target)&&V(t)}function F(t){Re(t.target,k.props.target)&&Y()}function j(t){var e="ontouchstart"in window,n=dn(t.type,"touch"),i=k.props.touchHold;return e&&tn&&i&&!n||tn&&!i&&n}function B(){!b&&l&&(b=!0,function(t){t.offsetHeight}(x),l())}function U(){var e=k.props.popperOptions,n=k.popperChildren,i=n.tooltip,o=n.arrow,r=pn(e,"preventOverflow");function a(t){k.props.flip&&!k.props.flipOnUpdate&&(t.flipped&&(k.popperInstance.options.placement=t.placement),hn(k.popperInstance.modifiers,!1)),i.setAttribute(He,t.placement),!1!==t.attributes[Fe]?i.setAttribute(Fe,""):i.removeAttribute(Fe),c&&c!==t.placement&&h&&(i.style.transition="none",requestAnimationFrame((function(){i.style.transition=""}))),c=t.placement,h=k.state.isVisible;var e=An(x),n=i.style;n.top=n.bottom=n.left=n.right="",n[e]=-(k.props.distance-10)+"px";var o=r&&void 0!==r.padding?r.padding:Pe,a="number"==typeof o,s=Ee({top:a?o:o.top,bottom:a?o:o.bottom,left:a?o:o.left,right:a?o:o.right},!a&&o);s[e]=a?o+k.props.distance:(o[e]||0)+k.props.distance,k.popperInstance.modifiers.filter((function(t){return"preventOverflow"===t.name}))[0].padding=s,d=s}var s=Ee({eventsEnabled:!1,placement:k.props.placement},e,{modifiers:Ee({},e?e.modifiers:{},{preventOverflow:Ee({boundariesElement:k.props.boundary,padding:Pe},r),arrow:Ee({element:o,enabled:!!o},pn(e,"arrow")),flip:Ee({enabled:k.props.flip,padding:k.props.distance+Pe,behavior:k.props.flipBehavior},pn(e,"flip")),offset:Ee({offset:k.props.offset},pn(e,"offset"))}),onCreate:function(t){a(t),B(),e&&e.onCreate&&e.onCreate(t)},onUpdate:function(t){a(t),B(),e&&e.onUpdate&&e.onUpdate(t)}});k.popperInstance=new ke(t,x,s)}function V(t,n){if($(),!k.state.isVisible){if(k.props.target)return function(t){if(t){var n=Re(t.target,k.props.target);n&&!n._tippy&&zn(n,Ee({},k.props,{content:mn(e.content,[n]),appendTo:e.appendTo,target:"",showOnInit:!0}))}}(t);if(f=!0,t&&!n&&k.props.onTrigger(k,t),k.props.wait)return k.props.wait(k,t);O()&&!k.state.isMounted&&(k.popperInstance||U(),document.addEventListener("mousemove",N)),S();var i=cn(k.props.delay,0,Ae.delay);i?o=setTimeout((function(){X()}),i):X()}}function Y(){if($(),!k.state.isVisible)return E();f=!1;var t=cn(k.props.delay,1,Ae.delay);t?r=setTimeout((function(){k.state.isVisible&&q()}),t):a=requestAnimationFrame((function(){q()}))}function W(t){if(!k.props.interactive||!x.contains(t.target)){if(I().contains(t.target)){if(tn)return;if(k.state.isVisible&&dn(k.props.trigger,"click"))return}!0===k.props.hideOnClick&&($(),q())}}function $(){clearTimeout(o),clearTimeout(r),cancelAnimationFrame(a)}function G(e){xn(e=e||{},Ae),M();var n=k.props,o=yn(t,Ee({},k.props,e,{ignoreAttributes:!0}));o.ignoreAttributes=sn(e,"ignoreAttributes")?e.ignoreAttributes||!1:n.ignoreAttributes,k.props=o,L(),T(),v=ln(D,o.interactiveDebounce),Nn(x,n,o),k.popperChildren=En(x),k.popperInstance&&(_e.some((function(t){return sn(e,t)&&e[t]!==n[t]}))?(k.popperInstance.destroy(),U(),k.state.isVisible&&k.popperInstance.enableEventListeners(),k.props.followCursor&&i&&N(i)):k.popperInstance.update())}function X(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:cn(k.props.duration,0,Ae.duration[1]);if(!k.state.isDestroyed&&k.state.isEnabled&&(!tn||k.props.touch)&&!I().hasAttribute("disabled")&&!1!==k.props.onShow(k)){S(),x.style.visibility="visible",k.state.isVisible=!0,k.props.interactive&&I().classList.add(Be);var n=C();gn(n.concat(x),0),l=function(){if(k.state.isVisible){var t=O();t&&i?N(i):t||k.popperInstance.update(),k.popperChildren.backdrop&&(k.popperChildren.content.style.transitionDelay=Math.round(e/12)+"ms"),k.props.sticky&&(gn([x],Se?0:k.props.updateDuration),function t(){k.popperInstance.scheduleUpdate(),k.state.isMounted?requestAnimationFrame(t):gn([x],0)}()),gn([x],k.props.updateDuration),gn(n,e),vn(n,"visible"),function(t,e){A(t,e)}(e,(function(){k.props.aria&&I().setAttribute("aria-".concat(k.props.aria),x.id),k.props.onShown(k),k.state.isShown=!0}))}},function(){b=!1;var e=O();k.popperInstance?(hn(k.popperInstance.modifiers,k.props.flip),e||(k.popperInstance.reference=t,k.popperInstance.enableEventListeners()),k.popperInstance.scheduleUpdate()):(U(),e||k.popperInstance.enableEventListeners());var n=k.props.appendTo,i="parent"===n?t.parentNode:mn(n,[t]);i.contains(x)||(i.appendChild(x),k.props.onMount(k),k.state.isMounted=!0)}()}}function q(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:cn(k.props.duration,1,Ae.duration[1]);if(!k.state.isDestroyed&&(k.state.isEnabled||m)&&(!1!==k.props.onHide(k)||m)){document.removeEventListener("click",W,!0),x.style.visibility="hidden",k.state.isVisible=!1,k.state.isShown=!1,h=!1,k.props.interactive&&I().classList.remove(Be);var e=C();gn(e,t),vn(e,"hidden"),function(t,e){A(t,(function(){!k.state.isVisible&&x.parentNode&&x.parentNode.contains(x)&&e()}))}(t,(function(){f||E(),k.props.aria&&I().removeAttribute("aria-".concat(k.props.aria)),k.popperInstance.disableEventListeners(),k.popperInstance.options.placement=k.props.placement,x.parentNode.removeChild(x),k.props.onHidden(k),k.state.isMounted=!1}))}}}var Pn=!1;function Hn(t,e){xn(e||{},Ae),Pn||(document.addEventListener("touchstart",en,ze),window.addEventListener("blur",rn),Pn=!0);var n,i=Ee({},Ae,e);n=t,"[object Object]"==={}.toString.call(n)&&!n.addEventListener&&function(t){var e={isVirtual:!0,attributes:t.attributes||{},contains:function(){},setAttribute:function(e,n){t.attributes[e]=n},getAttribute:function(e){return t.attributes[e]},removeAttribute:function(e){delete t.attributes[e]},hasAttribute:function(e){return e in t.attributes},addEventListener:function(){},removeEventListener:function(){},classList:{classNames:{},add:function(e){t.classList.classNames[e]=!0},remove:function(e){delete t.classList.classNames[e]},contains:function(e){return e in t.classList.classNames}}};for(var n in e)t[n]=e[n]}(t);var o=function(t){if(fn(t))return[t];if(t instanceof NodeList)return Ne(t);if(X(t))return t;try{return Ne(document.querySelectorAll(t))}catch(t){return[]}}(t).reduce((function(t,e){var n=e&&zn(e,i);return n&&t.push(n),t}),[]);return fn(t)?o[0]:o}Hn.version="4.3.4",Hn.defaults=Ae,Hn.setDefaults=function(t){ut(t).forEach((function(e){Ae[e]=t[e]}))},Hn.hideAll=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.exclude,n=t.duration;Ne(document.querySelectorAll(Xe)).forEach((function(t){var i,o=t._tippy;if(o){var r=!1;e&&(r=(i=e)._tippy&&!Me.call(i,Xe)?o.reference===e:t===e.popper),r||o.hide(n)}}))},Hn.group=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.delay,i=void 0===n?t[0].props.delay:n,o=e.duration,r=void 0===o?0:o,a=!1;function s(t){a=t,d()}function c(e){e._originalProps.onShow(e),t.forEach((function(t){t.set({duration:r}),t.state.isVisible&&t.hide()})),s(!0)}function l(t){t._originalProps.onHide(t),s(!1)}function p(t){t._originalProps.onShown(t),t.set({duration:t._originalProps.duration})}function d(){t.forEach((function(t){t.set({onShow:c,onShown:p,onHide:l,delay:a?[0,X(i)?i[1]:i]:i,duration:a?r:t._originalProps.duration})}))}t.forEach((function(t){t._originalProps?t.set(t._originalProps):t._originalProps=Ee({},t.props)})),d()},Te&&setTimeout((function(){Ne(document.querySelectorAll("[data-tippy]")).forEach((function(t){var e=t.getAttribute("data-tippy");e&&Hn(t,{content:e})}))}));I(I.S+I.F*!m,"Object",{defineProperty:y.f});var Fn,jn=c.Object,Bn=function(t,e,n){return jn.defineProperty(t,e,n)},Un=!1;!function(){if(!window.__bk_zIndex_manager){var t={nextZIndex:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"default";return"default"===e?t.zIndex++:e},nextTickIndex:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"default";return"default"===n?(t.zIndex+=e,t.zIndex):n}};Bn(t,"zIndex",{configurable:!0,get:function(){return Un||(Fn=Fn||(e.prototype.$BK_EL||{}).zIndex||2e3,Un=!0),Fn},set:function(t){Fn=t}}),window.__bk_zIndex_manager=t}}();var Vn=window.__bk_zIndex_manager,Yn={props:{zIndex:{type:[Number,String],default:"default"}},methods:{getLocalZIndex:function(t){return Vn.nextTickIndex(2,t)}}};I(I.S,"Number",{isNaN:function(t){return t!=t}});var Wn=c.Number.isNaN;window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame,window.cancelAnimationFrame||window.webkitCancelAnimationFrame||window.mozCancelAnimationFrame||window.oCancelAnimationFrame||window.msCancelAnimationFrame,function(){if(!window.__bk_pop_manager){var t="bk_pop_".concat((new Date).getTime()),e="bk_pop_mask_".concat((new Date).getTime()),n="bk_pop_key_".concat((new Date).getTime()),i=[],o={containerId:t,maskId:e,defaultKey:n,formatKey:function(t){return String(t).replace(/#/g,"_")},show:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{tplAction:"keepAll",zIndex:"",beforeHide:function(){},ignoreExistMask:!1,appendToBody:!1};t=null==t||Wn(t)?this.defaultKey:t,t=this.formatKey(t);var i=function(){for(var t="",e=Math.floor(65536*(1+Math.random())).toString(16).substring(1),n=0;n<7;n++)t+=e;return t}(),o=!1;if("onlyone"===n.tplAction&&this.clearByTpl(t),this.shouldAppendToBody(t))o=!0,this.showModalMask(n.zIndex),!n.appendToBody&&this.container.append(e);else{o=!1;var r=n.zIndex;this.showModalMask(r)}var a=n.beforeHide,s=n.zIndex,c=n.ignoreExistMask;return this.instances.push({uid:i,ins:e,tplName:t,beforeHide:a,zIndex:s,ignoreExistMask:c,isAppendToBody:o}),"".concat(i,"#").concat(t)},shouldAppendToBody:function(t){return this.instances.some((function(e){return e.tplName===t}))},hide:function(t,e){switch((e=e||{action:"hideUid"}).action){case"hideAll":this.clearAll();break;case"hideUid":this.clearByUid(t);break;case"hideSameTpl":this.clearByTpl(t);break;default:this.autoClear(t)}this.updateModalMaskIndex()},updateModalMaskIndex:function(){if(this.instances.length){var t=this.instances.slice(-1)[0],e=t.isAppendToBody?t.zIndex:t.zIndex-1;this.showModalMask(e)}else this.hideModalMask()},autoClear:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";t.indexOf("#")>0?this.clearByUid(t):this.clearByTpl()},clearByTpl:function(t){var e=this,n=t.split("#").slice(-1)[0];this.instances=this.instances.filter((function(t){return t.tplName!==n||(e.__hideInstance(t),!1)}))},clearByUid:function(t){var e=t.split("#"),n=e[0],i=e[1],o=this.instances.findIndex((function(t){return t.uid===n&&t.tplName===i}));o>=0?(this.__hideInstance(this.instances[o]),this.instances.splice(o,1)):console.warn("Can not find pop instance with index "+o)},clearAll:function(){var t=this;this.instances.forEach((function(e){return t.__hideInstance(e)})),this.instances=[]},showModalMask:function(t){this.dialogMask.setAttribute("style","z-index:".concat(t,";")),document.body.style.overflow="hidden",this.dialogMask.classList.remove("hide-active"),this.dialogMask.classList.add("show-active")},hideModalMask:function(){this.dialogMask.classList.remove("show-active"),this.dialogMask.classList.add("hide-active"),document.body.style.overflow=""},__hideInstance:function(t){"function"==typeof t.beforeHide?(t.beforeHide(),setTimeout((function(){t.isAppendToBody&&t.ins.remove()}))):t.isAppendToBody&&t.ins.remove()}};Bn(o,"container",{get:function(){var t=document.querySelector("[data-bkpop-container]");return t||((t=document.createElement("div")).setAttribute("id",this.containerId),t.setAttribute("data-bkpop-container","true"),document.body.append(t)),t}}),Bn(o,"dialogMask",{get:function(){var t=document.querySelector("[data-bkpop-mask]");return t||((t=document.createElement("div")).setAttribute("id",this.maskId),t.setAttribute("class","bk-dialog-mask"),t.setAttribute("data-bkpop-mask","true"),this.container.append(t)),t}}),Bn(o,"instances",{get:function(){return i},set:function(t){i=t}}),window.__bk_pop_manager=o,window.__bk_pop_manager.__container=o.container}}();var $n=window.__bk_pop_manager,Gn={name:"bk-popover",mixins:[Yn],props:{placement:{type:String,default:"top"},content:{type:String,default:""},theme:{type:String,default:"dark"},interactive:{type:[Boolean,String],default:!0},arrow:{type:[Boolean,String],default:!0},arrowType:{type:String,default:"sharp"},boundary:{type:String,default:"window"},showOnInit:{type:Boolean,default:!1},arrowTransform:{type:String,default:""},trigger:{type:String,default:"mouseenter focus"},animation:{type:String,default:"shift-away"},distance:{type:Number,default:10},width:{type:[String,Number],default:"auto"},maxWidth:{type:[String,Number],default:"auto"},offset:{type:[Number,String],default:0},always:{type:Boolean,default:!1},followCursor:{type:[Boolean,String],default:!1},sticky:{type:[Boolean,String],default:!1},delay:{type:Number,default:100},size:{type:String,default:"small"},onShow:{type:Function,default:function(){}},onHide:{type:Function,default:function(){}},tippyOptions:{type:Object,default:function(){return{}}},extCls:{type:String,default:""},disabled:Boolean},data:function(){return{instance:null}},watch:{disabled:function(t){this.instance&&(t?this.instance.disable():this.instance.enable())},tippyOptions:function(t){this.instance&&this.instance.set(t)}},mounted:function(){var t=this,e=function(t){var e={};for(var n in t)Ae.hasOwnProperty(n)&&(e[n]=t[n]);return e}(r({},{appendTo:$n.container},this.$props,this.tippyOptions)),n=e.onShow,i=e.onHide,o="number"==typeof e.zIndex?e.zIndex:null;e.onShow=function(e){e.set({zIndex:t.getLocalZIndex(o||t.zIndex)}),n&&n(e),t.$emit("show")},e.onHide=function(e){i&&i(e),t.$emit("hide")},e.content=this.$refs.html,this.always&&(e.showOnInit=!0,e.hideOnClick=!1,e.trigger="manual"),this.instance=Hn(this.$refs.reference,e),this.disabled&&this.instance.disable()},updated:function(){this.instance.setContent(this.$refs.html),this.instance.popperInstance&&this.instance.popperInstance.update()},beforeDestroy:function(){this.instance.destroy()},methods:{showHandler:function(){this.instance.show()},hideHandler:function(){this.instance.hide()}}};function Xn(t,e,n,i,o,r,a,s,c,l){"boolean"!=typeof a&&(c=s,s=a,a=!1);var p,d="function"==typeof n?n.options:n;if(t&&t.render&&(d.render=t.render,d.staticRenderFns=t.staticRenderFns,d._compiled=!0,o&&(d.functional=!0)),i&&(d._scopeId=i),r?(p=function(t){(t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),e&&e.call(this,c(t)),t&&t._registeredComponents&&t._registeredComponents.add(r)},d._ssrRegister=p):e&&(p=a?function(){e.call(this,l(this.$root.$options.shadowRoot))}:function(t){e.call(this,s(t))}),p)if(d.functional){var u=d.render;d.render=function(t,e){return p.call(e),u(t,e)}}else{var f=d.beforeCreate;d.beforeCreate=f?[].concat(f,p):[p]}return n}var qn,Kn,Zn=Xn({render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"bk-tooltip"},[n("div",{ref:"html",staticClass:"bk-tooltip-content"},[t._t("content",[t._v(t._s(t.content))])],2),n("div",{ref:"reference",staticClass:"bk-tooltip-ref",attrs:{tabindex:"-1"}},[t._t("default")],2)])},staticRenderFns:[]},undefined,Gn,undefined,!1,undefined,!1,void 0,void 0,void 0);Kn=function(t,e){t.prototype.$bkPopover=function(t,e){return Hn(t,e)}},(qn=Zn).install=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=qn.props||{};ut(e).forEach((function(t){n.hasOwnProperty(t)&&("function"==typeof n[t]||n[t]instanceof Array?n[t]={type:n[t],default:e[t]}:n[t].default=e[t])})),qn.name=e.namespace?qn.name.replace("bk",e.namespace):qn.name,t.component(qn.name,qn),"function"==typeof Kn&&Kn(t,e)},t.default=Zn,Object.defineProperty(t,"__esModule",{value:!0})}(e,n(8976))},5768:(t,e,n)=>{"use strict";n.d(e,{Z:()=>s});var i=n(8081),o=n.n(i),r=n(3645),a=n.n(r)()(o());a.push([t.id,'.bk-form-checkbox{position:relative;display:inline-block;vertical-align:middle;font-size:0;line-height:18px;overflow:hidden;cursor:pointer}.bk-form-checkbox.is-indeterminate:not(.is-checked) .bk-checkbox{border-color:#3a84ff;background-color:#3a84ff;background-clip:content-box;position:relative}.bk-form-checkbox.is-indeterminate:not(.is-checked) .bk-checkbox:after{content:"";width:8px;height:2px;background:#fff;position:absolute;top:50%;left:50%;margin-left:-4px;border-radius:2px;margin-top:-1px;display:inline-block}.bk-form-checkbox.is-disabled{cursor:not-allowed}.bk-form-checkbox.is-disabled .bk-checkbox{border-color:#dcdee5;background-color:#fafbfd}.bk-form-checkbox.is-disabled.is-checked .bk-checkbox{border-color:#dcdee5;background-color:#dcdee5}.bk-form-checkbox.is-checked .bk-checkbox{border-color:#3a84ff;background-color:#3a84ff;background-clip:border-box}.bk-form-checkbox.is-checked .bk-checkbox:after{content:"";position:absolute;top:1px;left:4px;width:4px;height:8px;border:2px solid #fff;border-left:0;border-top:0;-webkit-transform-origin:center;transform-origin:center;-webkit-transform:rotate(45deg) scaleY(1);transform:rotate(45deg) scaleY(1)}.bk-form-checkbox .bk-checkbox{position:relative;display:inline-block;vertical-align:middle;width:16px;height:16px;border:1px solid #979ba5;border-radius:2px}.bk-form-checkbox .bk-checkbox:focus{border-color:#3c96ff;outline:none}.bk-form-checkbox .bk-checkbox-text{display:inline-block;margin:0 0 0 6px;vertical-align:middle;font-size:14px;color:#63656e}',""]);const s=a},5861:(t,e,n)=>{"use strict";n.d(e,{Z:()=>v});var i=n(8081),o=n.n(i),r=n(3645),a=n.n(r),s=n(3626),c=n.n(s),l=new URL(n(5817),n.b),p=new URL(n(1365),n.b),d=new URL(n(8210),n.b),u=new URL(n(3385),n.b),f=a()(o()),m=c()(l,{hash:"#iconcool"}),h=c()(p),b=c()(d),g=c()(u,{hash:"?#iefix"});f.push([t.id,`body,html{margin:0;padding:0}*{-webkit-box-sizing:border-box;box-sizing:border-box}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:rgba(0,0,0,0)}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-webkit-box-sizing:content-box;box-sizing:content-box;height:0}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}::-ms-clear,::-ms-reveal{display:none}input[type=text]::-ms-clear{display:none}input[type=text]::-ms-reveal{display:none}input[type=search]{-webkit-appearance:textfield;-webkit-box-sizing:content-box;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:700}@font-face{font-family:bk;src:url(${m}) format("svg"),url(${h}) format("truetype"),url(${b}) format("woff"),url(${g}) format("embedded-opentype");font-weight:400;font-style:normal}.bk-icon{font-family:bk !important;speak:none;font-style:normal;font-weight:400;-webkit-font-feature-settings:normal;font-feature-settings:normal;font-variant:normal;text-transform:none;line-height:1;text-align:center;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-angle-double-down:before{content:""}.icon-angle-double-left:before{content:""}.icon-angle-double-right:before{content:""}.icon-angle-double-up:before{content:""}.icon-angle-left:before{content:""}.icon-angle-down:before{content:""}.icon-angle-right:before{content:""}.icon-angle-up:before{content:""}.icon-apps-shape:before{content:""}.icon-apps:before{content:""}.icon-area-chart:before{content:""}.icon-arrows-down-circle-shape:before{content:""}.icon-arrows-down-circle:before{content:""}.icon-arrows-down-shape:before{content:""}.icon-arrows-down:before{content:""}.icon-arrows-left-circle-shape:before{content:""}.icon-arrows-left-circle:before{content:""}.icon-arrows-left-shape:before{content:""}.icon-arrows-left:before{content:""}.icon-arrows-m-down-shape:before{content:""}.icon-arrows-m-left-shape:before{content:""}.icon-arrows-m-right-shape:before{content:""}.icon-arrows-m-up-shape:before{content:""}.icon-arrows-right-circle-shape:before{content:""}.icon-arrows-right-circle:before{content:""}.icon-arrows-right-shape:before{content:""}.icon-arrows-right:before{content:""}.icon-arrows-up-circle-shape:before{content:""}.icon-arrows-up-circle:before{content:""}.icon-arrows-up-shape:before{content:""}.icon-arrows-up:before{content:""}.icon-back-shape:before{content:""}.icon-back:before{content:""}.icon-back2:before{content:""}.icon-bar-chart:before{content:""}.icon-bk:before{content:""}.icon-block-shape:before{content:""}.icon-calendar-shape:before{content:""}.icon-calendar:before{content:""}.icon-chain:before{content:""}.icon-check-1:before{content:""}.icon-check-circle-shape:before{content:""}.icon-check-circle:before{content:""}.icon-circle-2-1:before{content:""}.icon-circle-4-1:before{content:""}.icon-circle-shape:before{content:""}.icon-circle:before{content:""}.icon-clipboard-shape:before{content:""}.icon-clipboard:before{content:""}.icon-clock-shape:before{content:""}.icon-clock:before{content:""}.icon-close-circle-shape:before{content:""}.icon-close-circle:before{content:""}.icon-close:before{content:""}.icon-close3-shape:before{content:""}.icon-code:before{content:""}.icon-cog-shape:before{content:""}.icon-cog:before{content:""}.icon-cry-shape:before{content:""}.icon-cry:before{content:""}.icon-dashboard-2-shape:before{content:""}.icon-dashboard-2:before{content:""}.icon-dashboard-shape:before{content:""}.icon-dashboard:before{content:""}.icon-data-shape:before{content:""}.icon-data:before{content:""}.icon-data2-shape:before{content:""}.icon-data2:before{content:""}.icon-dedent:before{content:""}.icon-delete:before{content:""}.icon-dialogue-empty-shape:before{content:""}.icon-dialogue-empty:before{content:""}.icon-dialogue-shape:before{content:""}.icon-dialogue:before{content:""}.icon-dispirited-shape:before{content:""}.icon-dispirited:before{content:""}.icon-docker:before{content:""}.icon-down-shape:before{content:""}.icon-download:before{content:""}.icon-edit:before{content:""}.icon-edit2:before{content:""}.icon-ellipsis:before{content:""}.icon-email-shape:before{content:""}.icon-email:before{content:""}.icon-empty-shape:before{content:""}.icon-empty:before{content:""}.icon-end:before{content:""}.icon-exclamation-circle-shape:before{content:""}.icon-exclamation-circle:before{content:""}.icon-exclamation-triangle-shape:before{content:""}.icon-exclamation-triangle:before{content:""}.icon-exclamation:before{content:""}.icon-execute:before{content:""}.icon-eye-shape:before{content:""}.icon-eye-slash-shape:before{content:""}.icon-eye-slash:before{content:""}.icon-eye:before{content:""}.icon-file-plus-shape:before{content:""}.icon-file-plus:before{content:""}.icon-file-shape:before{content:""}.icon-file:before{content:""}.icon-folder-open-shape:before{content:""}.icon-folder-open:before{content:""}.icon-folder-plus-shape:before{content:""}.icon-folder-plus:before{content:""}.icon-folder-shape:before{content:""}.icon-folder:before{content:""}.icon-full-screen:before{content:""}.icon-heart-shape:before{content:""}.icon-heart:before{content:""}.icon-hide:before{content:""}.icon-home-shape:before{content:""}.icon-home:before{content:""}.icon-id-shape:before{content:""}.icon-id:before{content:""}.icon-image-shape:before{content:""}.icon-image:before{content:""}.icon-indent:before{content:""}.icon-info-circle-shape:before{content:""}.icon-info-circle:before{content:""}.icon-info:before{content:""}.icon-key:before{content:""}.icon-left-shape:before{content:""}.icon-line-chart:before{content:""}.icon-list:before{content:""}.icon-lock-shape:before{content:""}.icon-lock:before{content:""}.icon-minus-circle-shape:before{content:""}.icon-minus-circle:before{content:""}.icon-minus-square-shape:before{content:""}.icon-minus-square:before{content:""}.icon-minus:before{content:""}.icon-mobile-shape:before{content:""}.icon-mobile:before{content:""}.icon-monitors-cog:before{content:""}.icon-monitors:before{content:""}.icon-more:before{content:""}.icon-move:before{content:""}.icon-next-shape:before{content:""}.icon-next:before{content:""}.icon-order-shape:before{content:""}.icon-order:before{content:""}.icon-panel-permission:before{content:""}.icon-panel-shape:before{content:""}.icon-panel:before{content:""}.icon-panels:before{content:""}.icon-password-shape:before{content:""}.icon-password:before{content:""}.icon-pause:before{content:""}.icon-pc-shape:before{content:""}.icon-pc:before{content:""}.icon-pie-chart-shape:before{content:""}.icon-pie-chart:before{content:""}.icon-pipeline-shape:before{content:""}.icon-pipeline:before{content:""}.icon-play-circle-shape:before{content:""}.icon-play-shape:before{content:""}.icon-play:before{content:""}.icon-play2:before{content:""}.icon-play3:before{content:""}.icon-plus-circle-shape:before{content:""}.icon-plus-circle:before{content:""}.icon-plus-square-shape:before{content:""}.icon-plus-square:before{content:""}.icon-plus:before{content:""}.icon-project:before{content:""}.icon-qq-shape:before{content:""}.icon-qq:before{content:""}.icon-question-circle-shape:before{content:""}.icon-question-circle:before{content:""}.icon-question:before{content:""}.icon-refresh:before{content:""}.icon-right-shape:before{content:""}.icon-rtx:before{content:""}.icon-save-shape:before{content:""}.icon-save:before{content:""}.icon-script-file:before{content:""}.icon-script-files:before{content:""}.icon-search:before{content:""}.icon-sina-shape:before{content:""}.icon-sina:before{content:""}.icon-sitemap-shape:before{content:""}.icon-sitemap:before{content:""}.icon-smile-shape:before{content:""}.icon-smile:before{content:""}.icon-sort:before{content:""}.icon-star-shape:before{content:""}.icon-star:before{content:""}.icon-stop-shape:before{content:""}.icon-stop:before{content:""}.icon-tree-application-shape:before{content:""}.icon-tree-application:before{content:""}.icon-tree-group-shape:before{content:""}.icon-tree-group:before{content:""}.icon-tree-module-shape:before{content:""}.icon-tree-module:before{content:""}.icon-tree-process-shape:before{content:""}.icon-tree-process:before{content:""}.icon-un-full-screen:before{content:""}.icon-unlock-shape:before{content:""}.icon-unlock:before{content:""}.icon-up-shape:before{content:""}.icon-upload:before{content:""}.icon-user-shape:before{content:""}.icon-user:before{content:""}.icon-weixin-shape:before{content:""}.icon-weixin:before{content:""}.icon-work-manage:before{content:""}.icon-funnel:before{content:""}.icon-user-group:before{content:""}.icon-user-3:before{content:""}.icon-copy:before{content:""}.icon-batch-edit-line:before{content:""}.icon-refresh-line:before{content:""}.icon-close-line:before{content:""}.icon-1_up:before{content:""}.icon-arrows-right--line:before{content:""}.icon-arrows-left-line:before{content:""}.icon-arrows-down-line:before{content:""}.icon-arrows-up-line:before{content:""}.icon-angle-double-right-line:before{content:""}.icon-angle-double-down-line:before{content:""}.icon-angle-double-up-line:before{content:""}.icon-angle-double-left-line:before{content:""}.icon-angle-left-line:before{content:""}.icon-angle-right-line:before{content:""}.icon-angle-up-line:before{content:""}.icon-angle-down-line:before{content:""}.icon-check-line:before{content:""}.icon-close-line-2:before{content:""}.icon-edit-line:before{content:""}.icon-list-line:before{content:""}.icon-plus-line:before{content:""}.icon-angle-up-fill:before{content:""}.icon-angle-down-fill:before{content:""}.icon-grag-fill:before{content:""}.icon-template-fill-49:before{content:""}.icon-folder-fill:before{content:""}.icon-expand-line:before{content:""}.icon-shrink-line:before{content:""}.icon-minus-line:before{content:""}.icon-compressed-file:before{content:""}.icon-upload-cloud:before{content:""}.icon-text-file:before{content:""}.icon-filliscreen-line:before{content:""}.icon-left-turn-line:before{content:""}.icon-right-turn-line:before{content:""}.icon-enlarge-line:before{content:""}.icon-narrow-line:before{content:""}.icon-unfull-screen:before{content:""}.icon-image:before{content:""}.icon-image-fail:before{content:""}.icon-normalized:before{content:""}.icon-chinese:before{content:""}.icon-english:before{content:""}.icon-japanese:before{content:""}.transition-effect{-webkit-transition:all .2s linear;transition:all .2s linear}.bk-fade-in-linear-enter-active,.bk-fade-in-linear-leave-active{-webkit-transition:opacity .2s linear;transition:opacity .2s linear}.bk-fade-in-linear-enter,.bk-fade-in-linear-leave-active{opacity:0}.bk-fade-in-ease-enter-active,.bk-fade-in-ease-leave-active{-webkit-transition:opacity .2s cubic-bezier(0.55, 0, 0.1, 1);transition:opacity .2s cubic-bezier(0.55, 0, 0.1, 1)}.bk-fade-in-ease-enter,.bk-fade-in-ease-leave-active{opacity:0}.bk-slide-fade-right-enter-active,.bk-slide-fade-right-leave-active{-webkit-transition:opacity .2s linear,-webkit-transform .2s linear;transition:opacity .2s linear,-webkit-transform .2s linear;transition:transform .2s linear,opacity .2s linear;transition:transform .2s linear,opacity .2s linear,-webkit-transform .2s linear}.bk-slide-fade-right-enter{opacity:0;-webkit-transform:translate3d(20%, 0, 0);transform:translate3d(20%, 0, 0)}.bk-slide-fade-right-leave-active{opacity:0;-webkit-transform:translate3d(-20%, 0, 0);transform:translate3d(-20%, 0, 0)}.bk-slide-fade-left-enter-active,.bk-slide-fade-left-leave-active{-webkit-transition:opacity .2s linear,-webkit-transform .2s linear;transition:opacity .2s linear,-webkit-transform .2s linear;transition:transform .2s linear,opacity .2s linear;transition:transform .2s linear,opacity .2s linear,-webkit-transform .2s linear}.bk-slide-fade-left-enter{opacity:0;-webkit-transform:translate3d(-20%, 0, 0);transform:translate3d(-20%, 0, 0)}.bk-slide-fade-left-leave-active{opacity:0;-webkit-transform:translate3d(20%, 0, 0);transform:translate3d(20%, 0, 0)}.bk-slide-fade-up-enter-active,.bk-slide-fade-up-leave-active{-webkit-transition:opacity .2s linear,-webkit-transform .2s linear;transition:opacity .2s linear,-webkit-transform .2s linear;transition:transform .2s linear,opacity .2s linear;transition:transform .2s linear,opacity .2s linear,-webkit-transform .2s linear}.bk-slide-fade-up-enter{opacity:0;-webkit-transform:translate3d(0, 20%, 0);transform:translate3d(0, 20%, 0)}.bk-slide-fade-up-leave-active{opacity:0;-webkit-transform:translate3d(0, -20%, 0);transform:translate3d(0, -20%, 0)}.bk-slide-fade-down-enter-active,.bk-slide-fade-down-leave-active{-webkit-transition:opacity .2s linear,-webkit-transform .2s linear;transition:opacity .2s linear,-webkit-transform .2s linear;transition:transform .2s linear,opacity .2s linear;transition:transform .2s linear,opacity .2s linear,-webkit-transform .2s linear}.bk-slide-fade-down-enter{opacity:0;-webkit-transform:translate3d(0, -20%, 0);transform:translate3d(0, -20%, 0)}.bk-slide-fade-down-leave-active{opacity:0;-webkit-transform:translate3d(0, 20%, 0);transform:translate3d(0, 20%, 0)}.bk-zoom-enter,.bk-zoom-leave-to{-webkit-transform:scale(0);transform:scale(0)}.bk-zoom-enter-to,.bk-zoom-leave{-webkit-transform:scale(1);transform:scale(1)}.bk-zoom-enter-active,.bk-zoom-leave-active{-webkit-transition:all .2s;transition:all .2s}.bk-move-in-left-enter,.bk-move-in-left-leave-to{-webkit-transform:translate3d(-100%, 0, 0);transform:translate3d(-100%, 0, 0);opacity:0}.bk-move-in-left-enter-to,.bk-move-in-left-leave{-webkit-transform:translateZ(0);transform:translateZ(0)}.bk-move-in-left-enter-active,.bk-move-in-left-leave-active{-webkit-transition:all .2s;transition:all .2s}.bk-move-in-right-enter,.bk-move-in-right-leave-to{-webkit-transform:translate3d(100%, 0, 0);transform:translate3d(100%, 0, 0);opacity:0}.bk-move-in-right-enter-to,.bk-move-in-right-leave{-webkit-transform:translateZ(0);transform:translateZ(0)}.bk-move-in-right-enter-active,.bk-move-in-right-leave-active{-webkit-transition:all .2s;transition:all .2s}.bk-move-in-up-enter,.bk-move-in-up-leave-to{-webkit-transform:translate3d(0, -100%, 0);transform:translate3d(0, -100%, 0);opacity:0}.bk-move-in-up-enter-to,.bk-move-in-up-leave{-webkit-transform:translateZ(0);transform:translateZ(0)}.bk-move-in-up-enter-active,.bk-move-in-up-leave-active{-webkit-transition:all .2s;transition:all .2s}.bk-move-in-down-enter,.bk-move-in-down-leave-to{-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0);opacity:0}.bk-move-in-down-enter-to,.bk-move-in-down-leave{-webkit-transform:translateZ(0);transform:translateZ(0)}.bk-move-in-down-enter-active,.bk-move-in-down-leave-active{-webkit-transition:all .2s;transition:all .2s}.fade-enter-active,.fade-leave-active{-webkit-transition:opacity .2s linear;transition:opacity .2s linear}.fade-enter,.fade-leave-active{opacity:0}.fade-show-enter-active,.fade-show-leave-active{-webkit-transition:opacity .2s linear,margin .2s linear;transition:opacity .2s linear,margin .2s linear}.fade-show-enter,.fade-show-leave-active{opacity:0;margin-top:-20px}.displacement-fade-show-enter-active,.displacement-fade-show-leave-active{-webkit-transition:opacity .2s linear,margin .2s linear;transition:opacity .2s linear,margin .2s linear}.displacement-fade-show-enter,.displacement-fade-show-leave-active{opacity:0;margin-top:-50px}.fade-center-enter-active,.fade-center-leave-active{-webkit-transition:opacity .2s linear,-webkit-transform .2s linear;transition:opacity .2s linear,-webkit-transform .2s linear;transition:opacity .2s linear,transform .2s linear;transition:opacity .2s linear,transform .2s linear,-webkit-transform .2s linear;-webkit-transform-origin:center center;transform-origin:center center}.fade-center-enter,.fade-center-leave-active{opacity:0;-webkit-transform:translate(50%, -50%) scale(0) !important;transform:translate(50%, -50%) scale(0) !important}.slide-enter-active .bk-sideslider-wrapper,.slide-leave-active .bk-sideslider-wrapper{-webkit-transform:translateX(0);transform:translateX(0);-webkit-transition:-webkit-transform .25s;transition:-webkit-transform .25s;transition:transform .25s;transition:transform .25s,-webkit-transform .25s}.slide-enter-active{-webkit-animation:slider-fade-in .25s;animation:slider-fade-in .25s}.slide-leave-active{animation:slider-fade-in .25s reverse}.slide-enter .bk-sideslider-wrapper.left,.slide-leave-to .bk-sideslider-wrapper.left{-webkit-transform:translateX(-100%);transform:translateX(-100%);-webkit-transition:-webkit-transform .25s;transition:-webkit-transform .25s;transition:transform .25s;transition:transform .25s,-webkit-transform .25s}.slide-enter .bk-sideslider-wrapper.right,.slide-leave-to .bk-sideslider-wrapper.right{-webkit-transform:translateX(100%);transform:translateX(100%);-webkit-transition:-webkit-transform .25s;transition:-webkit-transform .25s;transition:transform .25s;transition:transform .25s,-webkit-transform .25s}@-webkit-keyframes slider-fade-in{0%{opacity:0}to{opacity:1}}@keyframes slider-fade-in{0%{opacity:0}to{opacity:1}}.fade-leave-active,.slide-fade-enter-active{-webkit-transition:opacity .2s linear,-webkit-transform .2s linear;transition:opacity .2s linear,-webkit-transform .2s linear;transition:transform .2s linear,opacity .2s linear;transition:transform .2s linear,opacity .2s linear,-webkit-transform .2s linear}.slide-fade-enter{opacity:0;-webkit-transform:translateX(20%);transform:translateX(20%)}.slide-fade-leave-active{opacity:0;-webkit-transform:translateX(-20%);transform:translateX(-20%)}.toggle-slide-enter-active,.toggle-slide-leave-active{-webkit-transition:opacity .5s cubic-bezier(0.23, 1, 0.23, 1),-webkit-transform .3s cubic-bezier(0.23, 1, 0.23, 1);transition:opacity .5s cubic-bezier(0.23, 1, 0.23, 1),-webkit-transform .3s cubic-bezier(0.23, 1, 0.23, 1);transition:transform .3s cubic-bezier(0.23, 1, 0.23, 1),opacity .5s cubic-bezier(0.23, 1, 0.23, 1);transition:transform .3s cubic-bezier(0.23, 1, 0.23, 1),opacity .5s cubic-bezier(0.23, 1, 0.23, 1),-webkit-transform .3s cubic-bezier(0.23, 1, 0.23, 1);-webkit-transform-origin:center top;transform-origin:center top}.toggle-slide-enter,.toggle-slide-leave-active{-webkit-transform:translateZ(0) scaleY(0);transform:translateZ(0) scaleY(0);opacity:0}.toggle-slide2-enter-active,.toggle-slide2-leave-active{-webkit-transition:opacity .5s cubic-bezier(0.23, 1, 0.23, 1),-webkit-transform .3s cubic-bezier(0.23, 1, 0.23, 1);transition:opacity .5s cubic-bezier(0.23, 1, 0.23, 1),-webkit-transform .3s cubic-bezier(0.23, 1, 0.23, 1);transition:transform .3s cubic-bezier(0.23, 1, 0.23, 1),opacity .5s cubic-bezier(0.23, 1, 0.23, 1);transition:transform .3s cubic-bezier(0.23, 1, 0.23, 1),opacity .5s cubic-bezier(0.23, 1, 0.23, 1),-webkit-transform .3s cubic-bezier(0.23, 1, 0.23, 1);-webkit-transform-origin:center bottom;transform-origin:center bottom}.toggle-slide2-enter,.toggle-slide2-leave-active{-webkit-transform:translateZ(0) scaleY(0);transform:translateZ(0) scaleY(0);opacity:0}.fade-appear,.fade-enter-active,.fade-leave-active{-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.fade-appear,.fade-enter-active{-webkit-animation-name:fadeIn;animation-name:fadeIn;-webkit-animation-play-state:running;animation-play-state:running}.fade-leave-active{-webkit-animation-name:fadeOut;animation-name:fadeOut;-webkit-animation-play-state:running;animation-play-state:running}.fade-appear,.fade-enter-active{opacity:0}.fade-appear,.fade-enter-active,.fade-leave-active{-webkit-animation-timing-function:linear;animation-timing-function:linear}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@-webkit-keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.ease-appear,.ease-enter-active,.ease-leave-active{-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.ease-appear,.ease-enter-active{-webkit-animation-name:easeIn;animation-name:easeIn;-webkit-animation-play-state:running;animation-play-state:running}.ease-leave-active{-webkit-animation-name:easeOut;animation-name:easeOut;-webkit-animation-play-state:running;animation-play-state:running}.ease-appear,.ease-enter-active{opacity:0}.ease-appear,.ease-enter-active,.ease-leave-active{-webkit-animation-timing-function:linear;animation-timing-function:linear;-webkit-animation-duration:.2s;animation-duration:.2s}@-webkit-keyframes easeIn{0%{opacity:0;-webkit-transform:scale(0.9);transform:scale(0.9)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes easeIn{0%{opacity:0;-webkit-transform:scale(0.9);transform:scale(0.9)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes easeOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0.9);transform:scale(0.9)}}@keyframes easeOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0.9);transform:scale(0.9)}}.transition-drop-appear,.transition-drop-enter-active,.transition-drop-leave-active{-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.transition-drop-appear,.transition-drop-enter-active{-webkit-animation-name:transitionDropIn;animation-name:transitionDropIn;-webkit-animation-play-state:running;animation-play-state:running}.transition-drop-leave-active{-webkit-animation-name:transitionDropOut;animation-name:transitionDropOut;-webkit-animation-play-state:running;animation-play-state:running}.transition-drop-appear,.transition-drop-enter-active{opacity:0}.transition-drop-appear,.transition-drop-enter-active,.transition-drop-leave-active{-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}@-webkit-keyframes transitionDropIn{0%{opacity:0;-webkit-transform:scaleY(0.8);transform:scaleY(0.8)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@keyframes transitionDropIn{0%{opacity:0;-webkit-transform:scaleY(0.8);transform:scaleY(0.8)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@-webkit-keyframes transitionDropOut{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0.8);transform:scaleY(0.8)}}@keyframes transitionDropOut{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0.8);transform:scaleY(0.8)}}.f10{font-size:10px !important}.f11{font-size:11px !important}.f12{font-size:12px !important}.f13{font-size:13px !important}.f14{font-size:14px !important}.f15{font-size:15px !important}.f16{font-size:16px !important}.f17{font-size:17px !important}.f18{font-size:18px !important}.f19{font-size:19px !important}.f20{font-size:20px !important}.f21{font-size:21px !important}.f22{font-size:22px !important}.f23{font-size:23px !important}.f24{font-size:24px !important}.f25{font-size:25px !important}.f26{font-size:26px !important}.f27{font-size:27px !important}.f28{font-size:28px !important}.f29{font-size:29px !important}.f30{font-size:30px !important}.f31{font-size:31px !important}.f32{font-size:32px !important}.f33{font-size:33px !important}.f34{font-size:34px !important}.f35{font-size:35px !important}.f36{font-size:36px !important}.f37{font-size:37px !important}.f38{font-size:38px !important}.f39{font-size:39px !important}.f40{font-size:40px !important}.m0{margin:0 !important}.m5{margin:5px !important}.m10{margin:10px !important}.m15{margin:15px !important}.m20{margin:20px !important}.m25{margin:25px !important}.m30{margin:30px !important}.m35{margin:35px !important}.m40{margin:40px !important}.m45{margin:45px !important}.m50{margin:50px !important}.mt0{margin-top:0 !important}.mt5{margin-top:5px !important}.mt10{margin-top:10px !important}.mt15{margin-top:15px !important}.mt20{margin-top:20px !important}.mt25{margin-top:25px !important}.mt30{margin-top:30px !important}.mt35{margin-top:35px !important}.mt40{margin-top:40px !important}.mt45{margin-top:45px !important}.mt50{margin-top:50px !important}.mb0{margin-bottom:0 !important}.mb5{margin-bottom:5px !important}.mb10{margin-bottom:10px !important}.mb15{margin-bottom:15px !important}.mb20{margin-bottom:20px !important}.mb25{margin-bottom:25px !important}.mb30{margin-bottom:30px !important}.mb35{margin-bottom:35px !important}.mb40{margin-bottom:40px !important}.mb45{margin-bottom:45px !important}.mb50{margin-bottom:50px !important}.ml0{margin-left:0 !important}.ml5{margin-left:5px !important}.ml10{margin-left:10px !important}.ml15{margin-left:15px !important}.ml20{margin-left:20px !important}.ml25{margin-left:25px !important}.ml30{margin-left:30px !important}.ml35{margin-left:35px !important}.ml40{margin-left:40px !important}.ml45{margin-left:45px !important}.ml50{margin-left:50px !important}.mr0{margin-right:0 !important}.mr5{margin-right:5px !important}.mr10{margin-right:10px !important}.mr15{margin-right:15px !important}.mr20{margin-right:20px !important}.mr25{margin-right:25px !important}.mr30{margin-right:30px !important}.mr35{margin-right:35px !important}.mr40{margin-right:40px !important}.mr45{margin-right:45px !important}.mr50{margin-right:50px !important}.p0{padding:0 !important}.p5{padding:5px !important}.p10{padding:10px !important}.p15{padding:15px !important}.p20{padding:20px !important}.p25{padding:25px !important}.p30{padding:30px !important}.p35{padding:35px !important}.p40{padding:40px !important}.p45{padding:45px !important}.p50{padding:50px !important}.pt0{padding-top:0 !important}.pt5{padding-top:5px !important}.pt10{padding-top:10px !important}.pt15{padding-top:15px !important}.pt20{padding-top:20px !important}.pt25{padding-top:25px !important}.pt30{padding-top:30px !important}.pt35{padding-top:35px !important}.pt40{padding-top:40px !important}.pt45{padding-top:45px !important}.pt50{padding-top:50px !important}.pb0{padding-bottom:0 !important}.pb5{padding-bottom:5px !important}.pb10{padding-bottom:10px !important}.pb15{padding-bottom:15px !important}.pb20{padding-bottom:20px !important}.pb25{padding-bottom:25px !important}.pb30{padding-bottom:30px !important}.pb35{padding-bottom:35px !important}.pb40{padding-bottom:40px !important}.pb45{padding-bottom:45px !important}.pb50{padding-bottom:50px !important}.pl0{padding-left:0 !important}.pl5{padding-left:5px !important}.pl10{padding-left:10px !important}.pl15{padding-left:15px !important}.pl20{padding-left:20px !important}.pl25{padding-left:25px !important}.pl30{padding-left:30px !important}.pl35{padding-left:35px !important}.pl40{padding-left:40px !important}.pl45{padding-left:45px !important}.pl50{padding-left:50px !important}.pr0{padding-right:0 !important}.pr5{padding-right:5px !important}.pr10{padding-right:10px !important}.pr15{padding-right:15px !important}.pr20{padding-right:20px !important}.pr25{padding-right:25px !important}.pr30{padding-right:30px !important}.pr35{padding-right:35px !important}.pr40{padding-right:40px !important}.pr45{padding-right:45px !important}.pr50{padding-right:50px !important}.bk-bg-default{background-color:#fafbfd}.bk-bg-primary{background-color:#3a84ff}.bk-bg-warning{background-color:#ff9c01}.bk-bg-danger{background-color:#ea3636}.bk-bg-success{background-color:#2dcb56}.bk-text-default{color:#63656e}.bk-text-primary{color:#3a84ff}.bk-text-warning{color:#ff9c01}.bk-text-danger{color:#ea3636}.bk-text-success{color:#2dcb56}.bk-text-main{color:#313238}.bk-text-minor{color:#979ba5}.bk-text-yahei{font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft Yahei,Helvetica,Aria}.fb{font-weight:700 !important}.fn{font-weight:400 !important}.lh150{line-height:150% !important}.lh180{line-height:180% !important}.lh200{line-height:200% !important}.unl{text-decoration:underline !important}.no_unl{text-decoration:none !important}.tl{text-align:left !important}.tc{text-align:center !important}.tr{text-align:right !important}.bc{margin-left:auto !important;margin-right:auto !important}.fl{float:left !important}.fr{float:right !important}.cb{clear:both !important}.cl{clear:left !important}.cr{clear:right !important}.vm{vertical-align:middle !important}.pr{position:relative !important}.abs-right,.pa{position:absolute !important}.zoom{zoom:1}.hidden{visibility:hidden !important}.none{display:none !important}.h50{height:50px !important}.h80{height:80px !important}.h100{height:100px !important}.h200{height:200px !important}.h{height:100% !important}.bk-has-submenu{position:relative}.bk-has-submenu:hover .bk-submenu{display:block}.bk-has-submenu .bk-submenu{display:none;position:absolute;width:100%;left:0;right:0;padding:0}.bk-has-submenu .bk-submenu>li{display:block}`,""]);const v=f},2979:(t,e,n)=>{"use strict";n.d(e,{Z:()=>s});var i=n(8081),o=n.n(i),r=n(3645),a=n.n(r)()(o());a.push([t.id,'.bk-tooltip,.bk-tooltip-ref{display:inline-block}.bk-tooltip-ref{position:relative;outline:0}.tippy-iOS{cursor:pointer !important;-webkit-tap-highlight-color:rgba(0,0,0,0)}.tippy-popper{-webkit-transition-timing-function:cubic-bezier(0.165, 0.84, 0.44, 1);transition-timing-function:cubic-bezier(0.165, 0.84, 0.44, 1);max-width:calc(100% - 8px);pointer-events:none;outline:0}.tippy-popper[x-placement^=top] .tippy-backdrop{border-radius:40% 40% 0 0}.tippy-popper[x-placement^=top] .tippy-roundarrow{bottom:-7px;bottom:-6.5px;-webkit-transform-origin:50% 0;transform-origin:50% 0;margin:0 3px}.tippy-popper[x-placement^=top] .tippy-roundarrow svg{position:absolute;left:0;-webkit-transform:rotate(180deg);transform:rotate(180deg)}.tippy-popper[x-placement^=top] .tippy-arrow{border-top:8px solid #333;border-right:8px solid rgba(0,0,0,0);border-left:8px solid rgba(0,0,0,0);bottom:-7px;margin:0 3px;-webkit-transform-origin:50% 0;transform-origin:50% 0}.tippy-popper[x-placement^=top] .tippy-backdrop{-webkit-transform-origin:0 25%;transform-origin:0 25%}.tippy-popper[x-placement^=top] .tippy-backdrop[data-state=visible]{-webkit-transform:scale(1) translate(-50%, -55%);transform:scale(1) translate(-50%, -55%)}.tippy-popper[x-placement^=top] .tippy-backdrop[data-state=hidden]{-webkit-transform:scale(0.2) translate(-50%, -45%);transform:scale(0.2) translate(-50%, -45%);opacity:0}.tippy-popper[x-placement^=top] [data-animation=shift-toward][data-state=visible]{-webkit-transform:translateY(-10px);transform:translateY(-10px)}.tippy-popper[x-placement^=top] [data-animation=shift-toward][data-state=hidden]{opacity:0;-webkit-transform:translateY(-20px);transform:translateY(-20px)}.tippy-popper[x-placement^=top] [data-animation=perspective]{-webkit-transform-origin:bottom;transform-origin:bottom}.tippy-popper[x-placement^=top] [data-animation=perspective][data-state=visible]{-webkit-transform:perspective(700px) translateY(-10px) rotateX(0);transform:perspective(700px) translateY(-10px) rotateX(0)}.tippy-popper[x-placement^=top] [data-animation=perspective][data-state=hidden]{opacity:0;-webkit-transform:perspective(700px) translateY(0) rotateX(60deg);transform:perspective(700px) translateY(0) rotateX(60deg)}.tippy-popper[x-placement^=top] [data-animation=fade][data-state=visible]{-webkit-transform:translateY(-10px);transform:translateY(-10px)}.tippy-popper[x-placement^=top] [data-animation=fade][data-state=hidden]{opacity:0;-webkit-transform:translateY(-10px);transform:translateY(-10px)}.tippy-popper[x-placement^=top] [data-animation=shift-away][data-state=visible]{-webkit-transform:translateY(-10px);transform:translateY(-10px)}.tippy-popper[x-placement^=top] [data-animation=shift-away][data-state=hidden]{opacity:0;-webkit-transform:translateY(0);transform:translateY(0)}.tippy-popper[x-placement^=top] [data-animation=scale]{-webkit-transform-origin:bottom;transform-origin:bottom}.tippy-popper[x-placement^=top] [data-animation=scale][data-state=visible]{-webkit-transform:translateY(-10px) scale(1);transform:translateY(-10px) scale(1)}.tippy-popper[x-placement^=top] [data-animation=scale][data-state=hidden]{opacity:0;-webkit-transform:translateY(-10px) scale(0.5);transform:translateY(-10px) scale(0.5)}.tippy-popper[x-placement^=top] [data-animation=slide-toggle]{-webkit-transform-origin:center bottom;transform-origin:center bottom}.tippy-popper[x-placement^=top] [data-animation=slide-toggle][data-state=visible]{-webkit-transform:scaleY(1);transform:scaleY(1);opacity:1}.tippy-popper[x-placement^=top] [data-animation=slide-toggle][data-state=hidden]{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}.tippy-popper[x-placement^=bottom] .tippy-backdrop{border-radius:0 0 30% 30%}.tippy-popper[x-placement^=bottom] .tippy-roundarrow{top:-7px;-webkit-transform-origin:50% 100%;transform-origin:50% 100%;margin:0 3px}.tippy-popper[x-placement^=bottom] .tippy-roundarrow svg{position:absolute;left:0;-webkit-transform:rotate(0);transform:rotate(0)}.tippy-popper[x-placement^=bottom] .tippy-arrow{border-bottom:8px solid #333;border-right:8px solid rgba(0,0,0,0);border-left:8px solid rgba(0,0,0,0);top:-7px;margin:0 3px;-webkit-transform-origin:50% 100%;transform-origin:50% 100%}.tippy-popper[x-placement^=bottom] .tippy-backdrop{-webkit-transform-origin:0 -50%;transform-origin:0 -50%}.tippy-popper[x-placement^=bottom] .tippy-backdrop[data-state=visible]{-webkit-transform:scale(1) translate(-50%, -45%);transform:scale(1) translate(-50%, -45%)}.tippy-popper[x-placement^=bottom] .tippy-backdrop[data-state=hidden]{-webkit-transform:scale(0.2) translate(-50%);transform:scale(0.2) translate(-50%);opacity:0}.tippy-popper[x-placement^=bottom] [data-animation=shift-toward][data-state=visible]{-webkit-transform:translateY(10px);transform:translateY(10px)}.tippy-popper[x-placement^=bottom] [data-animation=shift-toward][data-state=hidden]{opacity:0;-webkit-transform:translateY(20px);transform:translateY(20px)}.tippy-popper[x-placement^=bottom] [data-animation=perspective]{-webkit-transform-origin:top;transform-origin:top}.tippy-popper[x-placement^=bottom] [data-animation=perspective][data-state=visible]{-webkit-transform:perspective(700px) translateY(10px) rotateX(0);transform:perspective(700px) translateY(10px) rotateX(0)}.tippy-popper[x-placement^=bottom] [data-animation=perspective][data-state=hidden]{opacity:0;-webkit-transform:perspective(700px) translateY(0) rotateX(-60deg);transform:perspective(700px) translateY(0) rotateX(-60deg)}.tippy-popper[x-placement^=bottom] [data-animation=fade][data-state=visible]{-webkit-transform:translateY(10px);transform:translateY(10px)}.tippy-popper[x-placement^=bottom] [data-animation=fade][data-state=hidden]{opacity:0;-webkit-transform:translateY(10px);transform:translateY(10px)}.tippy-popper[x-placement^=bottom] [data-animation=shift-away][data-state=visible]{-webkit-transform:translateY(10px);transform:translateY(10px)}.tippy-popper[x-placement^=bottom] [data-animation=shift-away][data-state=hidden]{opacity:0;-webkit-transform:translateY(0);transform:translateY(0)}.tippy-popper[x-placement^=bottom] [data-animation=scale]{-webkit-transform-origin:top;transform-origin:top}.tippy-popper[x-placement^=bottom] [data-animation=scale][data-state=visible]{-webkit-transform:translateY(10px) scale(1);transform:translateY(10px) scale(1)}.tippy-popper[x-placement^=bottom] [data-animation=scale][data-state=hidden]{opacity:0;-webkit-transform:translateY(10px) scale(0.5);transform:translateY(10px) scale(0.5)}.tippy-popper[x-placement^=bottom] [data-animation=slide-toggle]{-webkit-transform-origin:center top;transform-origin:center top}.tippy-popper[x-placement^=bottom] [data-animation=slide-toggle][data-state=visible]{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}.tippy-popper[x-placement^=bottom] [data-animation=slide-toggle][data-state=hidden]{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}.tippy-popper[x-placement^=left] .tippy-backdrop{border-radius:50% 0 0 50%}.tippy-popper[x-placement^=left] .tippy-roundarrow{right:-12px;-webkit-transform-origin:33.33333333% 50%;transform-origin:33.33333333% 50%;margin:3px 0}.tippy-popper[x-placement^=left] .tippy-roundarrow svg{position:absolute;left:0;-webkit-transform:rotate(90deg);transform:rotate(90deg)}.tippy-popper[x-placement^=left] .tippy-arrow{border-left:8px solid #333;border-top:8px solid rgba(0,0,0,0);border-bottom:8px solid rgba(0,0,0,0);right:-7px;margin:3px 0;-webkit-transform-origin:0 50%;transform-origin:0 50%}.tippy-popper[x-placement^=left] .tippy-backdrop{-webkit-transform-origin:50% 0;transform-origin:50% 0}.tippy-popper[x-placement^=left] .tippy-backdrop[data-state=visible]{-webkit-transform:scale(1) translate(-50%, -50%);transform:scale(1) translate(-50%, -50%)}.tippy-popper[x-placement^=left] .tippy-backdrop[data-state=hidden]{-webkit-transform:scale(0.2) translate(-75%, -50%);transform:scale(0.2) translate(-75%, -50%);opacity:0}.tippy-popper[x-placement^=left] [data-animation=shift-toward][data-state=visible]{-webkit-transform:translateX(-10px);transform:translateX(-10px)}.tippy-popper[x-placement^=left] [data-animation=shift-toward][data-state=hidden]{opacity:0;-webkit-transform:translateX(-20px);transform:translateX(-20px)}.tippy-popper[x-placement^=left] [data-animation=perspective]{-webkit-transform-origin:right;transform-origin:right}.tippy-popper[x-placement^=left] [data-animation=perspective][data-state=visible]{-webkit-transform:perspective(700px) translateX(-10px) rotateY(0);transform:perspective(700px) translateX(-10px) rotateY(0)}.tippy-popper[x-placement^=left] [data-animation=perspective][data-state=hidden]{opacity:0;-webkit-transform:perspective(700px) translateX(0) rotateY(-60deg);transform:perspective(700px) translateX(0) rotateY(-60deg)}.tippy-popper[x-placement^=left] [data-animation=fade][data-state=visible]{-webkit-transform:translateX(-10px);transform:translateX(-10px)}.tippy-popper[x-placement^=left] [data-animation=fade][data-state=hidden]{opacity:0;-webkit-transform:translateX(-10px);transform:translateX(-10px)}.tippy-popper[x-placement^=left] [data-animation=shift-away][data-state=visible]{-webkit-transform:translateX(-10px);transform:translateX(-10px)}.tippy-popper[x-placement^=left] [data-animation=shift-away][data-state=hidden]{opacity:0;-webkit-transform:translateX(0);transform:translateX(0)}.tippy-popper[x-placement^=left] [data-animation=scale]{-webkit-transform-origin:right;transform-origin:right}.tippy-popper[x-placement^=left] [data-animation=scale][data-state=visible]{-webkit-transform:translateX(-10px) scale(1);transform:translateX(-10px) scale(1)}.tippy-popper[x-placement^=left] [data-animation=scale][data-state=hidden]{opacity:0;-webkit-transform:translateX(-10px) scale(0.5);transform:translateX(-10px) scale(0.5)}.tippy-popper[x-placement^=right] .tippy-backdrop{border-radius:0 50% 50% 0}.tippy-popper[x-placement^=right] .tippy-roundarrow{left:-12px;-webkit-transform-origin:66.66666666% 50%;transform-origin:66.66666666% 50%;margin:3px 0}.tippy-popper[x-placement^=right] .tippy-roundarrow svg{position:absolute;left:0;-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}.tippy-popper[x-placement^=right] .tippy-arrow{border-right:8px solid #333;border-top:8px solid rgba(0,0,0,0);border-bottom:8px solid rgba(0,0,0,0);left:-7px;margin:3px 0;-webkit-transform-origin:100% 50%;transform-origin:100% 50%}.tippy-popper[x-placement^=right] .tippy-backdrop{-webkit-transform-origin:-50% 0;transform-origin:-50% 0}.tippy-popper[x-placement^=right] .tippy-backdrop[data-state=visible]{-webkit-transform:scale(1) translate(-50%, -50%);transform:scale(1) translate(-50%, -50%)}.tippy-popper[x-placement^=right] .tippy-backdrop[data-state=hidden]{-webkit-transform:scale(0.2) translate(-25%, -50%);transform:scale(0.2) translate(-25%, -50%);opacity:0}.tippy-popper[x-placement^=right] [data-animation=shift-toward][data-state=visible]{-webkit-transform:translateX(10px);transform:translateX(10px)}.tippy-popper[x-placement^=right] [data-animation=shift-toward][data-state=hidden]{opacity:0;-webkit-transform:translateX(20px);transform:translateX(20px)}.tippy-popper[x-placement^=right] [data-animation=perspective]{-webkit-transform-origin:left;transform-origin:left}.tippy-popper[x-placement^=right] [data-animation=perspective][data-state=visible]{-webkit-transform:perspective(700px) translateX(10px) rotateY(0);transform:perspective(700px) translateX(10px) rotateY(0)}.tippy-popper[x-placement^=right] [data-animation=perspective][data-state=hidden]{opacity:0;-webkit-transform:perspective(700px) translateX(0) rotateY(60deg);transform:perspective(700px) translateX(0) rotateY(60deg)}.tippy-popper[x-placement^=right] [data-animation=fade][data-state=visible]{-webkit-transform:translateX(10px);transform:translateX(10px)}.tippy-popper[x-placement^=right] [data-animation=fade][data-state=hidden]{opacity:0;-webkit-transform:translateX(10px);transform:translateX(10px)}.tippy-popper[x-placement^=right] [data-animation=shift-away][data-state=visible]{-webkit-transform:translateX(10px);transform:translateX(10px)}.tippy-popper[x-placement^=right] [data-animation=shift-away][data-state=hidden]{opacity:0;-webkit-transform:translateX(0);transform:translateX(0)}.tippy-popper[x-placement^=right] [data-animation=scale]{-webkit-transform-origin:left;transform-origin:left}.tippy-popper[x-placement^=right] [data-animation=scale][data-state=visible]{-webkit-transform:translateX(10px) scale(1);transform:translateX(10px) scale(1)}.tippy-popper[x-placement^=right] [data-animation=scale][data-state=hidden]{opacity:0;-webkit-transform:translateX(10px) scale(0.5);transform:translateX(10px) scale(0.5)}.tippy-tooltip{position:relative;color:#fff;border-radius:4px;font-size:.9rem;padding:.3rem .6rem;text-align:left;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:rgba(0,0,0,.8)}.tippy-tooltip[data-size=small]{padding:7px 14px;font-size:12px}.tippy-tooltip[data-size=large]{padding:.4rem .8rem;font-size:1rem}.tippy-tooltip[data-animatefill]{overflow:hidden;background-color:rgba(0,0,0,0)}.tippy-tooltip[data-interactive],.tippy-tooltip[data-interactive] .tippy-roundarrow path{pointer-events:auto}.tippy-tooltip[data-inertia][data-state=visible]{-webkit-transition-timing-function:cubic-bezier(0.54, 1.5, 0.38, 1.11);transition-timing-function:cubic-bezier(0.54, 1.5, 0.38, 1.11)}.tippy-tooltip[data-inertia][data-state=hidden]{-webkit-transition-timing-function:ease;transition-timing-function:ease}.tippy-arrow,.tippy-roundarrow{position:absolute;width:0;height:0}.tippy-roundarrow{width:18px;height:7px;fill:#333;pointer-events:none}.tippy-backdrop{position:absolute;background-color:#333;border-radius:50%;width:calc(110% + 2rem);left:50%;top:50%;z-index:-1;-webkit-transition:all cubic-bezier(0.46, 0.1, 0.52, 0.98);transition:all cubic-bezier(0.46, 0.1, 0.52, 0.98);-webkit-backface-visibility:hidden;backface-visibility:hidden}.tippy-backdrop:after{content:"";float:left;padding-top:100%}.tippy-backdrop+.tippy-content{-webkit-transition-property:opacity;transition-property:opacity}.tippy-backdrop+.tippy-content[data-state=visible]{opacity:1}.tippy-backdrop+.tippy-content[data-state=hidden]{opacity:0}.tippy-tooltip.light-theme{color:#26323d;-webkit-box-shadow:0 0 6px 0 #dcdee5;box-shadow:0 0 6px 0 #dcdee5;background-color:#fff}.tippy-tooltip.light-theme:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;border-radius:inherit;background:inherit}.tippy-tooltip.light-theme .tippy-arrow{z-index:-2;width:11px;height:11px;border:none !important;-webkit-box-shadow:inherit;box-shadow:inherit;background:inherit;-webkit-transform-origin:center center;transform-origin:center center;-webkit-transform:rotate(45deg);transform:rotate(45deg)}.tippy-tooltip.light-theme[x-placement^=top] .tippy-arrow{bottom:-5px}.tippy-tooltip.light-theme[x-placement^=bottom] .tippy-arrow{top:-5px}.tippy-tooltip.light-theme[x-placement^=left] .tippy-arrow{right:-5px}.tippy-tooltip.light-theme[x-placement^=right] .tippy-arrow{left:-5px}.tippy-tooltip.light-theme .tippy-backdrop{background-color:#fff}.tippy-tooltip.light-theme .tippy-roundarrow{fill:#fff}.tippy-tooltip.light-theme[data-animatefill]{background-color:rgba(0,0,0,0)}.tippy-tooltip.light-border-theme{color:#26323d;-webkit-box-shadow:0 0 6px 0 #dcdee5;box-shadow:0 0 6px 0 #dcdee5;background-color:#fff;border:1px solid #dcdee5}.tippy-tooltip.light-border-theme:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;border-radius:inherit;background:inherit}.tippy-tooltip.light-border-theme .tippy-arrow{z-index:-2;width:11px;height:11px;border:1px solid #dcdee5;-webkit-box-shadow:inherit;box-shadow:inherit;background:inherit;-webkit-transform-origin:center center;transform-origin:center center;-webkit-transform:rotate(45deg);transform:rotate(45deg)}.tippy-tooltip.light-border-theme[x-placement^=top] .tippy-arrow{bottom:-5px}.tippy-tooltip.light-border-theme[x-placement^=bottom] .tippy-arrow{top:-5px}.tippy-tooltip.light-border-theme[x-placement^=left] .tippy-arrow{right:-5px}.tippy-tooltip.light-border-theme[x-placement^=right] .tippy-arrow{left:-5px}.tippy-tooltip.light-border-theme .tippy-backdrop{background-color:#fff}.tippy-tooltip.light-border-theme .tippy-roundarrow{fill:#fff}.tippy-tooltip.light-border-theme[data-animatefill]{background-color:rgba(0,0,0,0)}',""]);const s=a},3545:(t,e,n)=>{"use strict";n.d(e,{Z:()=>s});var i=n(8081),o=n.n(i),r=n(3645),a=n.n(r)()(o());a.push([t.id,'.bk-tooltip,.bk-tooltip-ref{display:inline-block}.bk-tooltip-ref{position:relative;outline:0}.tippy-iOS{cursor:pointer !important;-webkit-tap-highlight-color:rgba(0,0,0,0)}.tippy-popper{-webkit-transition-timing-function:cubic-bezier(0.165, 0.84, 0.44, 1);transition-timing-function:cubic-bezier(0.165, 0.84, 0.44, 1);max-width:calc(100% - 8px);pointer-events:none;outline:0}.tippy-popper[x-placement^=top] .tippy-backdrop{border-radius:40% 40% 0 0}.tippy-popper[x-placement^=top] .tippy-roundarrow{bottom:-7px;bottom:-6.5px;-webkit-transform-origin:50% 0;transform-origin:50% 0;margin:0 3px}.tippy-popper[x-placement^=top] .tippy-roundarrow svg{position:absolute;left:0;-webkit-transform:rotate(180deg);transform:rotate(180deg)}.tippy-popper[x-placement^=top] .tippy-arrow{border-top:8px solid #333;border-right:8px solid rgba(0,0,0,0);border-left:8px solid rgba(0,0,0,0);bottom:-7px;margin:0 3px;-webkit-transform-origin:50% 0;transform-origin:50% 0}.tippy-popper[x-placement^=top] .tippy-backdrop{-webkit-transform-origin:0 25%;transform-origin:0 25%}.tippy-popper[x-placement^=top] .tippy-backdrop[data-state=visible]{-webkit-transform:scale(1) translate(-50%, -55%);transform:scale(1) translate(-50%, -55%)}.tippy-popper[x-placement^=top] .tippy-backdrop[data-state=hidden]{-webkit-transform:scale(0.2) translate(-50%, -45%);transform:scale(0.2) translate(-50%, -45%);opacity:0}.tippy-popper[x-placement^=top] [data-animation=shift-toward][data-state=visible]{-webkit-transform:translateY(-10px);transform:translateY(-10px)}.tippy-popper[x-placement^=top] [data-animation=shift-toward][data-state=hidden]{opacity:0;-webkit-transform:translateY(-20px);transform:translateY(-20px)}.tippy-popper[x-placement^=top] [data-animation=perspective]{-webkit-transform-origin:bottom;transform-origin:bottom}.tippy-popper[x-placement^=top] [data-animation=perspective][data-state=visible]{-webkit-transform:perspective(700px) translateY(-10px) rotateX(0);transform:perspective(700px) translateY(-10px) rotateX(0)}.tippy-popper[x-placement^=top] [data-animation=perspective][data-state=hidden]{opacity:0;-webkit-transform:perspective(700px) translateY(0) rotateX(60deg);transform:perspective(700px) translateY(0) rotateX(60deg)}.tippy-popper[x-placement^=top] [data-animation=fade][data-state=visible]{-webkit-transform:translateY(-10px);transform:translateY(-10px)}.tippy-popper[x-placement^=top] [data-animation=fade][data-state=hidden]{opacity:0;-webkit-transform:translateY(-10px);transform:translateY(-10px)}.tippy-popper[x-placement^=top] [data-animation=shift-away][data-state=visible]{-webkit-transform:translateY(-10px);transform:translateY(-10px)}.tippy-popper[x-placement^=top] [data-animation=shift-away][data-state=hidden]{opacity:0;-webkit-transform:translateY(0);transform:translateY(0)}.tippy-popper[x-placement^=top] [data-animation=scale]{-webkit-transform-origin:bottom;transform-origin:bottom}.tippy-popper[x-placement^=top] [data-animation=scale][data-state=visible]{-webkit-transform:translateY(-10px) scale(1);transform:translateY(-10px) scale(1)}.tippy-popper[x-placement^=top] [data-animation=scale][data-state=hidden]{opacity:0;-webkit-transform:translateY(-10px) scale(0.5);transform:translateY(-10px) scale(0.5)}.tippy-popper[x-placement^=top] [data-animation=slide-toggle]{-webkit-transform-origin:center bottom;transform-origin:center bottom}.tippy-popper[x-placement^=top] [data-animation=slide-toggle][data-state=visible]{-webkit-transform:scaleY(1);transform:scaleY(1);opacity:1}.tippy-popper[x-placement^=top] [data-animation=slide-toggle][data-state=hidden]{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}.tippy-popper[x-placement^=bottom] .tippy-backdrop{border-radius:0 0 30% 30%}.tippy-popper[x-placement^=bottom] .tippy-roundarrow{top:-7px;-webkit-transform-origin:50% 100%;transform-origin:50% 100%;margin:0 3px}.tippy-popper[x-placement^=bottom] .tippy-roundarrow svg{position:absolute;left:0;-webkit-transform:rotate(0);transform:rotate(0)}.tippy-popper[x-placement^=bottom] .tippy-arrow{border-bottom:8px solid #333;border-right:8px solid rgba(0,0,0,0);border-left:8px solid rgba(0,0,0,0);top:-7px;margin:0 3px;-webkit-transform-origin:50% 100%;transform-origin:50% 100%}.tippy-popper[x-placement^=bottom] .tippy-backdrop{-webkit-transform-origin:0 -50%;transform-origin:0 -50%}.tippy-popper[x-placement^=bottom] .tippy-backdrop[data-state=visible]{-webkit-transform:scale(1) translate(-50%, -45%);transform:scale(1) translate(-50%, -45%)}.tippy-popper[x-placement^=bottom] .tippy-backdrop[data-state=hidden]{-webkit-transform:scale(0.2) translate(-50%);transform:scale(0.2) translate(-50%);opacity:0}.tippy-popper[x-placement^=bottom] [data-animation=shift-toward][data-state=visible]{-webkit-transform:translateY(10px);transform:translateY(10px)}.tippy-popper[x-placement^=bottom] [data-animation=shift-toward][data-state=hidden]{opacity:0;-webkit-transform:translateY(20px);transform:translateY(20px)}.tippy-popper[x-placement^=bottom] [data-animation=perspective]{-webkit-transform-origin:top;transform-origin:top}.tippy-popper[x-placement^=bottom] [data-animation=perspective][data-state=visible]{-webkit-transform:perspective(700px) translateY(10px) rotateX(0);transform:perspective(700px) translateY(10px) rotateX(0)}.tippy-popper[x-placement^=bottom] [data-animation=perspective][data-state=hidden]{opacity:0;-webkit-transform:perspective(700px) translateY(0) rotateX(-60deg);transform:perspective(700px) translateY(0) rotateX(-60deg)}.tippy-popper[x-placement^=bottom] [data-animation=fade][data-state=visible]{-webkit-transform:translateY(10px);transform:translateY(10px)}.tippy-popper[x-placement^=bottom] [data-animation=fade][data-state=hidden]{opacity:0;-webkit-transform:translateY(10px);transform:translateY(10px)}.tippy-popper[x-placement^=bottom] [data-animation=shift-away][data-state=visible]{-webkit-transform:translateY(10px);transform:translateY(10px)}.tippy-popper[x-placement^=bottom] [data-animation=shift-away][data-state=hidden]{opacity:0;-webkit-transform:translateY(0);transform:translateY(0)}.tippy-popper[x-placement^=bottom] [data-animation=scale]{-webkit-transform-origin:top;transform-origin:top}.tippy-popper[x-placement^=bottom] [data-animation=scale][data-state=visible]{-webkit-transform:translateY(10px) scale(1);transform:translateY(10px) scale(1)}.tippy-popper[x-placement^=bottom] [data-animation=scale][data-state=hidden]{opacity:0;-webkit-transform:translateY(10px) scale(0.5);transform:translateY(10px) scale(0.5)}.tippy-popper[x-placement^=bottom] [data-animation=slide-toggle]{-webkit-transform-origin:center top;transform-origin:center top}.tippy-popper[x-placement^=bottom] [data-animation=slide-toggle][data-state=visible]{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}.tippy-popper[x-placement^=bottom] [data-animation=slide-toggle][data-state=hidden]{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}.tippy-popper[x-placement^=left] .tippy-backdrop{border-radius:50% 0 0 50%}.tippy-popper[x-placement^=left] .tippy-roundarrow{right:-12px;-webkit-transform-origin:33.33333333% 50%;transform-origin:33.33333333% 50%;margin:3px 0}.tippy-popper[x-placement^=left] .tippy-roundarrow svg{position:absolute;left:0;-webkit-transform:rotate(90deg);transform:rotate(90deg)}.tippy-popper[x-placement^=left] .tippy-arrow{border-left:8px solid #333;border-top:8px solid rgba(0,0,0,0);border-bottom:8px solid rgba(0,0,0,0);right:-7px;margin:3px 0;-webkit-transform-origin:0 50%;transform-origin:0 50%}.tippy-popper[x-placement^=left] .tippy-backdrop{-webkit-transform-origin:50% 0;transform-origin:50% 0}.tippy-popper[x-placement^=left] .tippy-backdrop[data-state=visible]{-webkit-transform:scale(1) translate(-50%, -50%);transform:scale(1) translate(-50%, -50%)}.tippy-popper[x-placement^=left] .tippy-backdrop[data-state=hidden]{-webkit-transform:scale(0.2) translate(-75%, -50%);transform:scale(0.2) translate(-75%, -50%);opacity:0}.tippy-popper[x-placement^=left] [data-animation=shift-toward][data-state=visible]{-webkit-transform:translateX(-10px);transform:translateX(-10px)}.tippy-popper[x-placement^=left] [data-animation=shift-toward][data-state=hidden]{opacity:0;-webkit-transform:translateX(-20px);transform:translateX(-20px)}.tippy-popper[x-placement^=left] [data-animation=perspective]{-webkit-transform-origin:right;transform-origin:right}.tippy-popper[x-placement^=left] [data-animation=perspective][data-state=visible]{-webkit-transform:perspective(700px) translateX(-10px) rotateY(0);transform:perspective(700px) translateX(-10px) rotateY(0)}.tippy-popper[x-placement^=left] [data-animation=perspective][data-state=hidden]{opacity:0;-webkit-transform:perspective(700px) translateX(0) rotateY(-60deg);transform:perspective(700px) translateX(0) rotateY(-60deg)}.tippy-popper[x-placement^=left] [data-animation=fade][data-state=visible]{-webkit-transform:translateX(-10px);transform:translateX(-10px)}.tippy-popper[x-placement^=left] [data-animation=fade][data-state=hidden]{opacity:0;-webkit-transform:translateX(-10px);transform:translateX(-10px)}.tippy-popper[x-placement^=left] [data-animation=shift-away][data-state=visible]{-webkit-transform:translateX(-10px);transform:translateX(-10px)}.tippy-popper[x-placement^=left] [data-animation=shift-away][data-state=hidden]{opacity:0;-webkit-transform:translateX(0);transform:translateX(0)}.tippy-popper[x-placement^=left] [data-animation=scale]{-webkit-transform-origin:right;transform-origin:right}.tippy-popper[x-placement^=left] [data-animation=scale][data-state=visible]{-webkit-transform:translateX(-10px) scale(1);transform:translateX(-10px) scale(1)}.tippy-popper[x-placement^=left] [data-animation=scale][data-state=hidden]{opacity:0;-webkit-transform:translateX(-10px) scale(0.5);transform:translateX(-10px) scale(0.5)}.tippy-popper[x-placement^=right] .tippy-backdrop{border-radius:0 50% 50% 0}.tippy-popper[x-placement^=right] .tippy-roundarrow{left:-12px;-webkit-transform-origin:66.66666666% 50%;transform-origin:66.66666666% 50%;margin:3px 0}.tippy-popper[x-placement^=right] .tippy-roundarrow svg{position:absolute;left:0;-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}.tippy-popper[x-placement^=right] .tippy-arrow{border-right:8px solid #333;border-top:8px solid rgba(0,0,0,0);border-bottom:8px solid rgba(0,0,0,0);left:-7px;margin:3px 0;-webkit-transform-origin:100% 50%;transform-origin:100% 50%}.tippy-popper[x-placement^=right] .tippy-backdrop{-webkit-transform-origin:-50% 0;transform-origin:-50% 0}.tippy-popper[x-placement^=right] .tippy-backdrop[data-state=visible]{-webkit-transform:scale(1) translate(-50%, -50%);transform:scale(1) translate(-50%, -50%)}.tippy-popper[x-placement^=right] .tippy-backdrop[data-state=hidden]{-webkit-transform:scale(0.2) translate(-25%, -50%);transform:scale(0.2) translate(-25%, -50%);opacity:0}.tippy-popper[x-placement^=right] [data-animation=shift-toward][data-state=visible]{-webkit-transform:translateX(10px);transform:translateX(10px)}.tippy-popper[x-placement^=right] [data-animation=shift-toward][data-state=hidden]{opacity:0;-webkit-transform:translateX(20px);transform:translateX(20px)}.tippy-popper[x-placement^=right] [data-animation=perspective]{-webkit-transform-origin:left;transform-origin:left}.tippy-popper[x-placement^=right] [data-animation=perspective][data-state=visible]{-webkit-transform:perspective(700px) translateX(10px) rotateY(0);transform:perspective(700px) translateX(10px) rotateY(0)}.tippy-popper[x-placement^=right] [data-animation=perspective][data-state=hidden]{opacity:0;-webkit-transform:perspective(700px) translateX(0) rotateY(60deg);transform:perspective(700px) translateX(0) rotateY(60deg)}.tippy-popper[x-placement^=right] [data-animation=fade][data-state=visible]{-webkit-transform:translateX(10px);transform:translateX(10px)}.tippy-popper[x-placement^=right] [data-animation=fade][data-state=hidden]{opacity:0;-webkit-transform:translateX(10px);transform:translateX(10px)}.tippy-popper[x-placement^=right] [data-animation=shift-away][data-state=visible]{-webkit-transform:translateX(10px);transform:translateX(10px)}.tippy-popper[x-placement^=right] [data-animation=shift-away][data-state=hidden]{opacity:0;-webkit-transform:translateX(0);transform:translateX(0)}.tippy-popper[x-placement^=right] [data-animation=scale]{-webkit-transform-origin:left;transform-origin:left}.tippy-popper[x-placement^=right] [data-animation=scale][data-state=visible]{-webkit-transform:translateX(10px) scale(1);transform:translateX(10px) scale(1)}.tippy-popper[x-placement^=right] [data-animation=scale][data-state=hidden]{opacity:0;-webkit-transform:translateX(10px) scale(0.5);transform:translateX(10px) scale(0.5)}.tippy-tooltip{position:relative;color:#fff;border-radius:4px;font-size:.9rem;padding:.3rem .6rem;text-align:left;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:rgba(0,0,0,.8)}.tippy-tooltip[data-size=small]{padding:7px 14px;font-size:12px}.tippy-tooltip[data-size=large]{padding:.4rem .8rem;font-size:1rem}.tippy-tooltip[data-animatefill]{overflow:hidden;background-color:rgba(0,0,0,0)}.tippy-tooltip[data-interactive],.tippy-tooltip[data-interactive] .tippy-roundarrow path{pointer-events:auto}.tippy-tooltip[data-inertia][data-state=visible]{-webkit-transition-timing-function:cubic-bezier(0.54, 1.5, 0.38, 1.11);transition-timing-function:cubic-bezier(0.54, 1.5, 0.38, 1.11)}.tippy-tooltip[data-inertia][data-state=hidden]{-webkit-transition-timing-function:ease;transition-timing-function:ease}.tippy-arrow,.tippy-roundarrow{position:absolute;width:0;height:0}.tippy-roundarrow{width:18px;height:7px;fill:#333;pointer-events:none}.tippy-backdrop{position:absolute;background-color:#333;border-radius:50%;width:calc(110% + 2rem);left:50%;top:50%;z-index:-1;-webkit-transition:all cubic-bezier(0.46, 0.1, 0.52, 0.98);transition:all cubic-bezier(0.46, 0.1, 0.52, 0.98);-webkit-backface-visibility:hidden;backface-visibility:hidden}.tippy-backdrop:after{content:"";float:left;padding-top:100%}.tippy-backdrop+.tippy-content{-webkit-transition-property:opacity;transition-property:opacity}.tippy-backdrop+.tippy-content[data-state=visible]{opacity:1}.tippy-backdrop+.tippy-content[data-state=hidden]{opacity:0}.tippy-tooltip.light-theme{color:#26323d;-webkit-box-shadow:0 0 6px 0 #dcdee5;box-shadow:0 0 6px 0 #dcdee5;background-color:#fff}.tippy-tooltip.light-theme:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;border-radius:inherit;background:inherit}.tippy-tooltip.light-theme .tippy-arrow{z-index:-2;width:11px;height:11px;border:none !important;-webkit-box-shadow:inherit;box-shadow:inherit;background:inherit;-webkit-transform-origin:center center;transform-origin:center center;-webkit-transform:rotate(45deg);transform:rotate(45deg)}.tippy-tooltip.light-theme[x-placement^=top] .tippy-arrow{bottom:-5px}.tippy-tooltip.light-theme[x-placement^=bottom] .tippy-arrow{top:-5px}.tippy-tooltip.light-theme[x-placement^=left] .tippy-arrow{right:-5px}.tippy-tooltip.light-theme[x-placement^=right] .tippy-arrow{left:-5px}.tippy-tooltip.light-theme .tippy-backdrop{background-color:#fff}.tippy-tooltip.light-theme .tippy-roundarrow{fill:#fff}.tippy-tooltip.light-theme[data-animatefill]{background-color:rgba(0,0,0,0)}.tippy-tooltip.light-border-theme{color:#26323d;-webkit-box-shadow:0 0 6px 0 #dcdee5;box-shadow:0 0 6px 0 #dcdee5;background-color:#fff;border:1px solid #dcdee5}.tippy-tooltip.light-border-theme:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;border-radius:inherit;background:inherit}.tippy-tooltip.light-border-theme .tippy-arrow{z-index:-2;width:11px;height:11px;border:1px solid #dcdee5;-webkit-box-shadow:inherit;box-shadow:inherit;background:inherit;-webkit-transform-origin:center center;transform-origin:center center;-webkit-transform:rotate(45deg);transform:rotate(45deg)}.tippy-tooltip.light-border-theme[x-placement^=top] .tippy-arrow{bottom:-5px}.tippy-tooltip.light-border-theme[x-placement^=bottom] .tippy-arrow{top:-5px}.tippy-tooltip.light-border-theme[x-placement^=left] .tippy-arrow{right:-5px}.tippy-tooltip.light-border-theme[x-placement^=right] .tippy-arrow{left:-5px}.tippy-tooltip.light-border-theme .tippy-backdrop{background-color:#fff}.tippy-tooltip.light-border-theme .tippy-roundarrow{fill:#fff}.tippy-tooltip.light-border-theme[data-animatefill]{background-color:rgba(0,0,0,0)}',""]);const s=a},4800:(t,e,n)=>{"use strict";n.d(e,{Z:()=>s});var i=n(8081),o=n.n(i),r=n(3645),a=n.n(r)()(o());a.push([t.id,'/*!\n * Tencent is pleased to support the open source community by making BK-CI 蓝鲸持续集成平台 available.\n *\n * Copyright (C) 2019 THL A29 Limited, a Tencent company. All rights reserved.\n *\n * BK-CI 蓝鲸持续集成平台 is licensed under the MIT license.\n *\n * A copy of the MIT License is included in this file.\n *\n *\n * Terms of the MIT License:\n * ---------------------------------------------------\n * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n *//*!\n * Tencent is pleased to support the open source community by making BK-CI 蓝鲸持续集成平台 available.\n *\n * Copyright (C) 2019 THL A29 Limited, a Tencent company. All rights reserved.\n *\n * BK-CI 蓝鲸持续集成平台 is licensed under the MIT license.\n *\n * A copy of the MIT License is included in this file.\n *\n *\n * Terms of the MIT License:\n * ---------------------------------------------------\n * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */@keyframes rotating{from{transform:rotate(0)}to{transform:rotate(359deg)}}.connect-line{position:absolute;width:58px;top:19px;stroke:#3c96ff;stroke-width:1;fill:none}.insert-tip{position:absolute;display:block;padding:0 10px;max-width:100px;height:24px;display:flex;align-items:center;border:1px solid #addaff;border-radius:22px;color:#3c96ff;font-size:10px;cursor:pointer;background-color:#fff;box-shadow:0px 2px 4px 0px rgba(60,150,255,.2)}.insert-tip.direction:after{content:"";position:absolute;height:6px;width:6px;background-color:#fff;transform:rotate(45deg);bottom:-4px;left:20px;border-right:1px solid #addaff;border-bottom:1px solid #addaff}.insert-tip .tip-icon{margin:0 5px 0 0;cursor:pointer;position:relative;display:block;width:8px;height:8px;transition:all .3s ease}.insert-tip .tip-icon:before,.insert-tip .tip-icon:after{content:"";position:absolute;left:3px;top:0px;height:8px;width:2px;background-color:#3c96ff}.insert-tip .tip-icon:after{transform:rotate(90deg)}.insert-tip>span{white-space:nowrap}.insert-tip:hover{background-color:#3c96ff;color:#fff;border-color:#3c96ff}.insert-tip:hover.direction:after{background-color:#3c96ff;border-right-color:#3c96ff;border-bottom-color:#3c96ff}.insert-tip:hover .tip-icon{position:relative;display:block;width:8px;height:8px;transition:all .3s ease}.insert-tip:hover .tip-icon:before,.insert-tip:hover .tip-icon:after{content:"";position:absolute;left:3px;top:0px;height:8px;width:2px;background-color:#fff}.insert-tip:hover .tip-icon:after{transform:rotate(90deg)}.pointer{cursor:pointer}span.skip-name{text-decoration:line-through;color:#c4cdd6}span.skip-name:hover{color:#c4cdd6}.spin-icon{display:inline-block;animation:loading .8s linear infinite}.add-plus-icon,.minus-icon{position:relative;display:block;width:18px;height:18px;border:1px solid #addaff;background-color:#fff;border-radius:50%;transition:all .3s ease}.add-plus-icon:before,.minus-icon:before,.add-plus-icon:after,.minus-icon:after{content:"";position:absolute;left:8px;top:5px;left:7px;top:4px;height:8px;width:2px;background-color:#3c96ff}.add-plus-icon:after,.minus-icon:after{transform:rotate(90deg)}.add-plus-icon.active,.active.minus-icon{border-color:#3c96ff;background-color:#3c96ff}.add-plus-icon.active:before,.active.minus-icon:before,.add-plus-icon.active:after,.active.minus-icon:after{background-color:#fff}.add-plus-icon:hover,.minus-icon:hover{border-color:#3c96ff;background-color:#3c96ff}.add-plus-icon:hover:before,.minus-icon:hover:before,.add-plus-icon:hover:after,.minus-icon:hover:after{background-color:#fff}.minus-icon:before{display:none}.un-exec-this-time{opacity:.5}.un-exec-this-time .un-exec-this-time{opacity:1}.readonly .stage-connector{background:#c3cdd7;color:#c3cdd7}.readonly .stage-connector:before{background:#c3cdd7}.readonly .connect-line.left,.readonly .connect-line.right{stroke:#c3cdd7}.readonly .connect-line.left:before,.readonly .connect-line.right:before{stroke:#c3cdd7}.readonly .connect-line.left:after,.readonly .connect-line.right:after{stroke:#c3cdd7;background-color:#c3cdd7}.readonly:after{background:#c3cdd7}.readonly .container-connect-triangle{color:#c3cdd7}.readonly .container-title{cursor:pointer;background-color:#63656e}.readonly .container-title:before,.readonly .container-title:after{border-top-color:#c3cdd7}.readonly .container-title>.container-name span{color:#fff}.editing .stage-connector{background:#3c96ff;color:#3c96ff}.editing .stage-connector:before{background:#3c96ff}.editing .connect-line.left,.editing .connect-line.right{stroke:#3c96ff}.editing .connect-line.left:before,.editing .connect-line.right:before{stroke:#3c96ff}.editing .connect-line.left:after,.editing .connect-line.right:after{stroke:#3c96ff;background-color:#3c96ff}.editing:after{background:#3c96ff}.editing:before{color:#3c96ff}.container-type{font-size:12px;margin-right:12px;font-style:normal}.container-type .devops-icon{font-size:18px}.container-type .devops-icon.icon-exclamation-triangle-shape{font-size:14px}.container-type .devops-icon.icon-exclamation-triangle-shape.is-danger{color:#ff5656}.container-type i{font-style:normal}.bk-pipeline .stage-status:not(.readonly){background-color:#3c96ff}.bk-pipeline .stage-status:not(.readonly).WARNING{background-color:#ffb400;color:#fff}.bk-pipeline .stage-status:not(.readonly).FAILED{background-color:#ff5656;color:#fff}.bk-pipeline .stage-status:not(.readonly).SUCCEED{background-color:#34d97b;color:#fff}.bk-pipeline .stage-status.CANCELED,.bk-pipeline .stage-status.REVIEW_ABORT,.bk-pipeline .stage-status.REVIEWING,.bk-pipeline .stage-name-status-icon.CANCELED,.bk-pipeline .stage-name-status-icon.REVIEW_ABORT,.bk-pipeline .stage-name-status-icon.REVIEWING{color:#ffb400}.bk-pipeline .stage-status.FAILED,.bk-pipeline .stage-status.QUALITY_CHECK_FAIL,.bk-pipeline .stage-status.HEARTBEAT_TIMEOUT,.bk-pipeline .stage-status.QUEUE_TIMEOUT,.bk-pipeline .stage-status.EXEC_TIMEOUT,.bk-pipeline .stage-name-status-icon.FAILED,.bk-pipeline .stage-name-status-icon.QUALITY_CHECK_FAIL,.bk-pipeline .stage-name-status-icon.HEARTBEAT_TIMEOUT,.bk-pipeline .stage-name-status-icon.QUEUE_TIMEOUT,.bk-pipeline .stage-name-status-icon.EXEC_TIMEOUT{color:#ff5656}.bk-pipeline .stage-status.SUCCEED,.bk-pipeline .stage-status.REVIEW_PROCESSED,.bk-pipeline .stage-name-status-icon.SUCCEED,.bk-pipeline .stage-name-status-icon.REVIEW_PROCESSED{color:#34d97b}.bk-pipeline .stage-status.PAUSE,.bk-pipeline .stage-name-status-icon.PAUSE{color:#63656e}.bk-pipeline .container-title .stage-status{color:#fff}.bk-pipeline .container-title.UNEXEC,.bk-pipeline .container-title.SKIP,.bk-pipeline .container-title.DISABLED{color:#fff;background-color:#63656e}.bk-pipeline .container-title.UNEXEC .fold-atom-icon,.bk-pipeline .container-title.SKIP .fold-atom-icon,.bk-pipeline .container-title.DISABLED .fold-atom-icon{color:#63656e}.bk-pipeline .container-title.QUEUE,.bk-pipeline .container-title.RUNNING,.bk-pipeline .container-title.REVIEWING,.bk-pipeline .container-title.PREPARE_ENV,.bk-pipeline .container-title.LOOP_WAITING,.bk-pipeline .container-title.DEPENDENT_WAITING,.bk-pipeline .container-title.CALL_WAITING{background-color:#459fff;color:#fff}.bk-pipeline .container-title.QUEUE .fold-atom-icon,.bk-pipeline .container-title.RUNNING .fold-atom-icon,.bk-pipeline .container-title.REVIEWING .fold-atom-icon,.bk-pipeline .container-title.PREPARE_ENV .fold-atom-icon,.bk-pipeline .container-title.LOOP_WAITING .fold-atom-icon,.bk-pipeline .container-title.DEPENDENT_WAITING .fold-atom-icon,.bk-pipeline .container-title.CALL_WAITING .fold-atom-icon{color:#459fff}.bk-pipeline .container-title.CANCELED,.bk-pipeline .container-title.REVIEW_ABORT,.bk-pipeline .container-title.TRY_FINALLY,.bk-pipeline .container-title.QUEUE_CACHE{background-color:#f6b026}.bk-pipeline .container-title.CANCELED span.skip-name,.bk-pipeline .container-title.REVIEW_ABORT span.skip-name,.bk-pipeline .container-title.TRY_FINALLY span.skip-name,.bk-pipeline .container-title.QUEUE_CACHE span.skip-name{color:#fff}.bk-pipeline .container-title.CANCELED .fold-atom-icon,.bk-pipeline .container-title.REVIEW_ABORT .fold-atom-icon,.bk-pipeline .container-title.TRY_FINALLY .fold-atom-icon,.bk-pipeline .container-title.QUEUE_CACHE .fold-atom-icon{color:#f6b026}.bk-pipeline .container-title.FAILED,.bk-pipeline .container-title.TERMINATE,.bk-pipeline .container-title.HEARTBEAT_TIMEOUT,.bk-pipeline .container-title.QUALITY_CHECK_FAIL,.bk-pipeline .container-title.QUEUE_TIMEOUT,.bk-pipeline .container-title.EXEC_TIMEOUT{color:#fff;background-color:#ff5656}.bk-pipeline .container-title.FAILED .fold-atom-icon,.bk-pipeline .container-title.TERMINATE .fold-atom-icon,.bk-pipeline .container-title.HEARTBEAT_TIMEOUT .fold-atom-icon,.bk-pipeline .container-title.QUALITY_CHECK_FAIL .fold-atom-icon,.bk-pipeline .container-title.QUEUE_TIMEOUT .fold-atom-icon,.bk-pipeline .container-title.EXEC_TIMEOUT .fold-atom-icon{color:#ff5656}.bk-pipeline .container-title.SUCCEED,.bk-pipeline .container-title.REVIEW_PROCESSED,.bk-pipeline .container-title.STAGE_SUCCESS{color:#fff;background-color:#34d97b}.bk-pipeline .container-title.SUCCEED .fold-atom-icon,.bk-pipeline .container-title.REVIEW_PROCESSED .fold-atom-icon,.bk-pipeline .container-title.STAGE_SUCCESS .fold-atom-icon{color:#34d97b}.bk-pipeline .container-title.PAUSE{color:#fff;background-color:#ff9801}.bk-pipeline .container-title.PAUSE .fold-atom-icon{color:#ff9801}.bk-pipeline .bk-pipeline-atom.UNEXEC,.bk-pipeline .bk-pipeline-atom.SKIP,.bk-pipeline .bk-pipeline-atom.DISABLED{color:#63656e}.bk-pipeline .bk-pipeline-atom.CANCELED,.bk-pipeline .bk-pipeline-atom.REVIEW_ABORT,.bk-pipeline .bk-pipeline-atom.REVIEWING{border-color:#ffb400}.bk-pipeline .bk-pipeline-atom.CANCELED:before,.bk-pipeline .bk-pipeline-atom.REVIEW_ABORT:before,.bk-pipeline .bk-pipeline-atom.REVIEWING:before{background-color:#ffb400}.bk-pipeline .bk-pipeline-atom.CANCELED:after,.bk-pipeline .bk-pipeline-atom.REVIEW_ABORT:after,.bk-pipeline .bk-pipeline-atom.REVIEWING:after{border-color:#ffb400}.bk-pipeline .bk-pipeline-atom.CANCELED .atom-icon,.bk-pipeline .bk-pipeline-atom.CANCELED .atom-execute-time,.bk-pipeline .bk-pipeline-atom.CANCELED .stage-check-icon,.bk-pipeline .bk-pipeline-atom.REVIEW_ABORT .atom-icon,.bk-pipeline .bk-pipeline-atom.REVIEW_ABORT .atom-execute-time,.bk-pipeline .bk-pipeline-atom.REVIEW_ABORT .stage-check-icon,.bk-pipeline .bk-pipeline-atom.REVIEWING .atom-icon,.bk-pipeline .bk-pipeline-atom.REVIEWING .atom-execute-time,.bk-pipeline .bk-pipeline-atom.REVIEWING .stage-check-icon{color:#ffb400}.bk-pipeline .bk-pipeline-atom.FAILED,.bk-pipeline .bk-pipeline-atom.TERMINATE,.bk-pipeline .bk-pipeline-atom.HEARTBEAT_TIMEOUT,.bk-pipeline .bk-pipeline-atom.QUALITY_CHECK_FAIL,.bk-pipeline .bk-pipeline-atom.QUEUE_TIMEOUT,.bk-pipeline .bk-pipeline-atom.EXEC_TIMEOUT{border-color:#ff5656}.bk-pipeline .bk-pipeline-atom.FAILED:before,.bk-pipeline .bk-pipeline-atom.TERMINATE:before,.bk-pipeline .bk-pipeline-atom.HEARTBEAT_TIMEOUT:before,.bk-pipeline .bk-pipeline-atom.QUALITY_CHECK_FAIL:before,.bk-pipeline .bk-pipeline-atom.QUEUE_TIMEOUT:before,.bk-pipeline .bk-pipeline-atom.EXEC_TIMEOUT:before{background-color:#ff5656}.bk-pipeline .bk-pipeline-atom.FAILED:after,.bk-pipeline .bk-pipeline-atom.TERMINATE:after,.bk-pipeline .bk-pipeline-atom.HEARTBEAT_TIMEOUT:after,.bk-pipeline .bk-pipeline-atom.QUALITY_CHECK_FAIL:after,.bk-pipeline .bk-pipeline-atom.QUEUE_TIMEOUT:after,.bk-pipeline .bk-pipeline-atom.EXEC_TIMEOUT:after{border-color:#ff5656}.bk-pipeline .bk-pipeline-atom.FAILED .atom-icon,.bk-pipeline .bk-pipeline-atom.FAILED .atom-execute-time,.bk-pipeline .bk-pipeline-atom.FAILED .stage-check-icon,.bk-pipeline .bk-pipeline-atom.TERMINATE .atom-icon,.bk-pipeline .bk-pipeline-atom.TERMINATE .atom-execute-time,.bk-pipeline .bk-pipeline-atom.TERMINATE .stage-check-icon,.bk-pipeline .bk-pipeline-atom.HEARTBEAT_TIMEOUT .atom-icon,.bk-pipeline .bk-pipeline-atom.HEARTBEAT_TIMEOUT .atom-execute-time,.bk-pipeline .bk-pipeline-atom.HEARTBEAT_TIMEOUT .stage-check-icon,.bk-pipeline .bk-pipeline-atom.QUALITY_CHECK_FAIL .atom-icon,.bk-pipeline .bk-pipeline-atom.QUALITY_CHECK_FAIL .atom-execute-time,.bk-pipeline .bk-pipeline-atom.QUALITY_CHECK_FAIL .stage-check-icon,.bk-pipeline .bk-pipeline-atom.QUEUE_TIMEOUT .atom-icon,.bk-pipeline .bk-pipeline-atom.QUEUE_TIMEOUT .atom-execute-time,.bk-pipeline .bk-pipeline-atom.QUEUE_TIMEOUT .stage-check-icon,.bk-pipeline .bk-pipeline-atom.EXEC_TIMEOUT .atom-icon,.bk-pipeline .bk-pipeline-atom.EXEC_TIMEOUT .atom-execute-time,.bk-pipeline .bk-pipeline-atom.EXEC_TIMEOUT .stage-check-icon{color:#ff5656}.bk-pipeline .bk-pipeline-atom.SUCCEED,.bk-pipeline .bk-pipeline-atom.REVIEW_PROCESSED{border-color:#34d97b}.bk-pipeline .bk-pipeline-atom.SUCCEED:before,.bk-pipeline .bk-pipeline-atom.REVIEW_PROCESSED:before{background-color:#34d97b}.bk-pipeline .bk-pipeline-atom.SUCCEED:after,.bk-pipeline .bk-pipeline-atom.REVIEW_PROCESSED:after{border-color:#34d97b}.bk-pipeline .bk-pipeline-atom.SUCCEED .atom-icon,.bk-pipeline .bk-pipeline-atom.SUCCEED .atom-execute-time,.bk-pipeline .bk-pipeline-atom.SUCCEED .stage-check-icon,.bk-pipeline .bk-pipeline-atom.REVIEW_PROCESSED .atom-icon,.bk-pipeline .bk-pipeline-atom.REVIEW_PROCESSED .atom-execute-time,.bk-pipeline .bk-pipeline-atom.REVIEW_PROCESSED .stage-check-icon{color:#34d97b}.bk-pipeline .bk-pipeline-atom.SUCCEED .stage-check-icon,.bk-pipeline .bk-pipeline-atom.REVIEW_PROCESSED .stage-check-icon{border-color:#34d97b}.bk-pipeline .bk-pipeline-atom.PAUSE{border-color:#ff9801;color:#ff9801}.bk-pipeline .bk-pipeline-atom.PAUSE:before{background-color:#ff9801}.bk-pipeline .bk-pipeline-atom.PAUSE:after{border-color:#ff9801}.bk-pipeline .bk-pipeline-atom.PAUSE .atom-icon,.bk-pipeline .bk-pipeline-atom.PAUSE .atom-execute-time{color:#63656e}.bk-pipeline .bk-pipeline-atom.template-compare-atom{border-color:#ff6e00}.bk-pipeline .bk-pipeline-atom.template-compare-atom:before{background-color:#ff6e00}.bk-pipeline .bk-pipeline-atom.template-compare-atom:after{border-color:#ff6e00}.bk-pipeline .bk-pipeline-atom.template-compare-atom:hover{border-color:#ffb400}.bk-pipeline .bk-pipeline-atom.quality-atom{background-color:rgba(0,0,0,0)}.bk-pipeline .bk-pipeline-atom.quality-atom.SUCCEED{border-color:#34d97b}.bk-pipeline .bk-pipeline-atom.quality-atom.SUCCEED .atom-title{color:#34d97b}.bk-pipeline .bk-pipeline-atom.quality-atom.SUCCEED .atom-title>i{border-color:#34d97b}.bk-pipeline .bk-pipeline-atom.quality-atom.REVIEWING{border-color:#ffb400}.bk-pipeline .bk-pipeline-atom.quality-atom.REVIEWING .atom-title{color:#ffb400}.bk-pipeline .bk-pipeline-atom.quality-atom.REVIEWING .atom-title>i{border-color:#ffb400}.bk-pipeline .bk-pipeline-atom.quality-atom.REVIEWING .atom-title>i:last-child{border-color:rgba(0,0,0,0)}.bk-pipeline .bk-pipeline-atom.quality-atom.FAILED{border-color:#ff5656}.bk-pipeline .bk-pipeline-atom.quality-atom.FAILED .atom-title{color:#ff5656}.bk-pipeline .bk-pipeline-atom.quality-atom.FAILED .atom-title>i{border-top:2px solid #ff5656}',""]);const s=a},8998:(t,e,n)=>{"use strict";n.d(e,{Z:()=>s});var i=n(8081),o=n.n(i),r=n(3645),a=n.n(r)()(o());a.push([t.id,'/*!\n * Tencent is pleased to support the open source community by making BK-CI 蓝鲸持续集成平台 available.\n *\n * Copyright (C) 2019 THL A29 Limited, a Tencent company. All rights reserved.\n *\n * BK-CI 蓝鲸持续集成平台 is licensed under the MIT license.\n *\n * A copy of the MIT License is included in this file.\n *\n *\n * Terms of the MIT License:\n * ---------------------------------------------------\n * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */@keyframes rotating{from{transform:rotate(0)}to{transform:rotate(359deg)}}.bk-pipeline .bk-pipeline-atom{cursor:pointer;position:relative;display:flex;flex-direction:row;align-items:center;height:42px;margin:0 0 11px 0;background-color:#fff;border-radius:2px;font-size:14px;transition:all .4s ease-in-out;z-index:2;border:1px solid #c4cdd6}.bk-pipeline .bk-pipeline-atom .active-atom-location-icon{position:absolute;color:#3c96ff;left:-30px}.bk-pipeline .bk-pipeline-atom.trigger-atom:before,.bk-pipeline .bk-pipeline-atom.trigger-atom:after{display:none}.bk-pipeline .bk-pipeline-atom:first-child:before{top:-16px}.bk-pipeline .bk-pipeline-atom:before{content:"";position:absolute;height:14px;width:2px;background:#c4cdd6;top:-12px;left:22px;z-index:1}.bk-pipeline .bk-pipeline-atom:after{content:"";position:absolute;height:4px;width:4px;border:2px solid #c4cdd6;border-radius:50%;background:#fff !important;top:-5px;left:19px;z-index:2}.bk-pipeline .bk-pipeline-atom.is-intercept{border-color:#ffb400}.bk-pipeline .bk-pipeline-atom.is-intercept:hover{border-color:#ffb400}.bk-pipeline .bk-pipeline-atom.is-error{border-color:#ff5656;color:#ff5656}.bk-pipeline .bk-pipeline-atom.is-error:hover .atom-invalid-icon{display:none}.bk-pipeline .bk-pipeline-atom.is-error .atom-invalid-icon{margin:0 12px}.bk-pipeline .bk-pipeline-atom:not(.readonly):hover{border-color:#3c96ff}.bk-pipeline .bk-pipeline-atom:not(.readonly):hover .atom-icon.skip-icon{color:#c4cdd6}.bk-pipeline .bk-pipeline-atom:not(.readonly):hover .atom-icon,.bk-pipeline .bk-pipeline-atom:not(.readonly):hover .atom-name{color:#3c96ff}.bk-pipeline .bk-pipeline-atom:not(.readonly):hover .add-plus-icon.close,.bk-pipeline .bk-pipeline-atom:not(.readonly):hover .copy{cursor:pointer;display:block}.bk-pipeline .bk-pipeline-atom .atom-icon{text-align:center;margin:0 14.5px;font-size:18px;width:18px;color:#63656e;fill:currentColor}.bk-pipeline .bk-pipeline-atom .atom-icon.skip-icon{color:#c4cdd6}.bk-pipeline .bk-pipeline-atom .atom-name span.skip-name{text-decoration:line-through;color:#c4cdd6}.bk-pipeline .bk-pipeline-atom .atom-name span.skip-name:hover{color:#c4cdd6}.bk-pipeline .bk-pipeline-atom .pause-button{margin-right:8px;color:#3c96ff}.bk-pipeline .bk-pipeline-atom .add-plus-icon.close{position:relative;display:block;width:16px;height:16px;border:1px solid #fff;background-color:#c4c6cd;border-radius:50%;transition:all .3s ease;display:none;margin-right:10px;border:none;transform:rotate(45deg)}.bk-pipeline .bk-pipeline-atom .add-plus-icon.close:before,.bk-pipeline .bk-pipeline-atom .add-plus-icon.close:after{content:"";position:absolute;left:7px;top:4px;left:6px;top:3px;height:8px;width:2px;background-color:#fff}.bk-pipeline .bk-pipeline-atom .add-plus-icon.close:after{transform:rotate(90deg)}.bk-pipeline .bk-pipeline-atom .add-plus-icon.close:hover{border-color:#ff5656;background-color:#ff5656}.bk-pipeline .bk-pipeline-atom .add-plus-icon.close:hover:before,.bk-pipeline .bk-pipeline-atom .add-plus-icon.close:hover:after{background-color:#fff}.bk-pipeline .bk-pipeline-atom .add-plus-icon.close:before,.bk-pipeline .bk-pipeline-atom .add-plus-icon.close:after{left:7px;top:4px}.bk-pipeline .bk-pipeline-atom .copy{display:none;margin-right:10px;color:#c4cdd6}.bk-pipeline .bk-pipeline-atom .copy:hover{color:#3c96ff}.bk-pipeline .bk-pipeline-atom>.atom-name{flex:1;color:#63656e;display:inline-block;max-width:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:188px;margin-right:2px}.bk-pipeline .bk-pipeline-atom>.atom-name span:hover{color:#3c96ff}.bk-pipeline .bk-pipeline-atom .disabled{cursor:not-allowed;color:#c4cdd6}.bk-pipeline .bk-pipeline-atom .atom-execounter{color:#3c96ff;font-size:12px}.bk-pipeline .bk-pipeline-atom .atom-operate-area{margin:0 8px 0 0;color:#3c96ff;font-size:12px}.bk-pipeline .bk-pipeline-atom .atom-reviewing-tips[disabled]{cursor:not-allowed;color:#c3cdd7}.bk-pipeline .bk-pipeline-atom .atom-review-diasbled-tips{color:#c3cdd7;margin:0 8px 0 2px}.bk-pipeline .bk-pipeline-atom .atom-canskip-checkbox{margin-right:6px}.bk-pipeline .bk-pipeline-atom.quality-atom{display:flex;justify-content:center;border-color:rgba(0,0,0,0);height:24px;background:rgba(0,0,0,0);border-color:rgba(0,0,0,0) !important;font-size:12px}.bk-pipeline .bk-pipeline-atom.quality-atom:before{height:40px;z-index:8}.bk-pipeline .bk-pipeline-atom.quality-atom:after{display:none}.bk-pipeline .bk-pipeline-atom.quality-atom.last-quality-atom:before{height:22px}.bk-pipeline .bk-pipeline-atom.quality-atom .atom-title{display:flex;width:100%;align-items:center;justify-content:center;margin-left:22px}.bk-pipeline .bk-pipeline-atom.quality-atom .atom-title>span{border-radius:12px;font-weight:bold;border:1px solid #c4cdd6;padding:0 12px;margin:0 4px}.bk-pipeline .bk-pipeline-atom.quality-atom .atom-title>i{height:0;flex:1;border-top:2px dashed #c4cdd6}.bk-pipeline .bk-pipeline-atom.quality-atom .handler-list{position:absolute;right:0}.bk-pipeline .bk-pipeline-atom.quality-atom .handler-list span{color:#3c96ff;font-size:12px}.bk-pipeline .bk-pipeline-atom.quality-atom .handler-list span:first-child{margin-right:5px}.bk-pipeline .bk-pipeline-atom.quality-atom .executing-job{position:absolute;top:6px;right:42px}.bk-pipeline .bk-pipeline-atom.quality-atom .executing-job:before{display:inline-block;animation:rotating infinite .6s ease-in-out}.bk-pipeline .bk-pipeline-atom.quality-atom .disabled-review span{color:#c4cdd6;cursor:default}.bk-pipeline .bk-pipeline-atom.readonly{background-color:#fff}.bk-pipeline .bk-pipeline-atom.readonly .atom-name:hover span{color:#63656e}.bk-pipeline .bk-pipeline-atom.readonly .atom-name:hover .skip-name{text-decoration:line-through;color:#c4cdd6}.bk-pipeline .bk-pipeline-atom.readonly.quality-prev-atom:before{height:24px;top:-23px}',""]);const s=a},3300:(t,e,n)=>{"use strict";n.d(e,{Z:()=>s});var i=n(8081),o=n.n(i),r=n(3645),a=n.n(r)()(o());a.push([t.id,'/*!\n * Tencent is pleased to support the open source community by making BK-CI 蓝鲸持续集成平台 available.\n *\n * Copyright (C) 2019 THL A29 Limited, a Tencent company. All rights reserved.\n *\n * BK-CI 蓝鲸持续集成平台 is licensed under the MIT license.\n *\n * A copy of the MIT License is included in this file.\n *\n *\n * Terms of the MIT License:\n * ---------------------------------------------------\n * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */@keyframes rotating{from{transform:rotate(0)}to{transform:rotate(359deg)}}.container-atom-list{position:relative;z-index:3}.container-atom-list .sortable-ghost-atom{opacity:.5}.container-atom-list .sortable-chosen-atom{transform:scale(1)}.container-atom-list .add-atom-entry{position:absolute;bottom:-10px;left:111px;background-color:#fff;cursor:pointer;z-index:3}.container-atom-list .add-atom-entry .add-plus-icon{position:relative;display:block;width:18px;height:18px;border:1px solid #c4cdd6;background-color:#fff;border-radius:50%;transition:all .3s ease}.container-atom-list .add-atom-entry .add-plus-icon:before,.container-atom-list .add-atom-entry .add-plus-icon:after{content:"";position:absolute;left:8px;top:5px;left:7px;top:4px;height:8px;width:2px;background-color:#c4cdd6}.container-atom-list .add-atom-entry .add-plus-icon:after{transform:rotate(90deg)}.container-atom-list .add-atom-entry .add-plus-icon:hover{border-color:#3c96ff;background-color:#3c96ff}.container-atom-list .add-atom-entry .add-plus-icon:hover:before,.container-atom-list .add-atom-entry .add-plus-icon:hover:after{background-color:#fff}.container-atom-list .add-atom-entry.block-add-entry{display:flex;flex-direction:row;align-items:center;height:42px;margin:0 0 11px 0;background-color:#fff;border-radius:2px;font-size:14px;transition:all .4s ease-in-out;z-index:2;position:static;padding-right:12px;border-style:dashed;color:#ff5656;border-color:#ff5656;border-width:1px}.container-atom-list .add-atom-entry.block-add-entry .add-atom-label{flex:1;color:#dde4eb}.container-atom-list .add-atom-entry.block-add-entry .add-plus-icon{margin:12px 13px}.container-atom-list .add-atom-entry.block-add-entry:before,.container-atom-list .add-atom-entry.block-add-entry:after{display:none}.container-atom-list .add-atom-entry:hover{border-color:#3c96ff;color:#3c96ff}.container-atom-list .post-action-arrow{position:relativecd;display:flex;align-items:center;justify-content:center;position:absolute;height:14px;width:14px;border:1px solid #c4cdd6;color:#c4cdd6;border-radius:50%;background:#fff !important;top:-7px;left:17px;z-index:3;font-weight:bold}.container-atom-list .post-action-arrow .toggle-post-action-icon{display:block;transition:all .5s ease}.container-atom-list .post-action-arrow.post-action-arrow-show .toggle-post-action-icon{transform:rotate(180deg)}.container-atom-list .post-action-arrow::after{content:"";position:absolute;width:2px;height:6px;background-color:#c4cdd6;left:5px;top:-6px}.container-atom-list .post-action-arrow.FAILED{border-color:#ff5656;color:#ff5656}.container-atom-list .post-action-arrow.FAILED::after{background-color:#ff5656}.container-atom-list .post-action-arrow.CANCELED{border-color:#ffb400;color:#ffb400}.container-atom-list .post-action-arrow.CANCELED::after{background-color:#ffb400}.container-atom-list .post-action-arrow.SUCCEED{border-color:#34d97b;color:#34d97b}.container-atom-list .post-action-arrow.SUCCEED::after{background-color:#34d97b}.container-atom-list .post-action-arrow.RUNNING{border-color:#3c96ff;color:#3c96ff}.container-atom-list .post-action-arrow.RUNNING::after{background-color:#3c96ff}',""]);const s=a},6096:(t,e,n)=>{"use strict";n.d(e,{Z:()=>s});var i=n(8081),o=n.n(i),r=n(3645),a=n.n(r)()(o());a.push([t.id,'/*!\n * Tencent is pleased to support the open source community by making BK-CI 蓝鲸持续集成平台 available.\n *\n * Copyright (C) 2019 THL A29 Limited, a Tencent company. All rights reserved.\n *\n * BK-CI 蓝鲸持续集成平台 is licensed under the MIT license.\n *\n * A copy of the MIT License is included in this file.\n *\n *\n * Terms of the MIT License:\n * ---------------------------------------------------\n * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */@keyframes rotating{from{transform:rotate(0)}to{transform:rotate(359deg)}}.devops-stage-container .container-title{display:flex;height:42px;background:#33333f;cursor:pointer;color:#fff;font-size:14px;align-items:center;position:relative;margin:0 0 16px 0;z-index:3}.devops-stage-container .container-title>.container-name{display:inline-block;max-width:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;padding:0 6px}.devops-stage-container .container-title .atom-canskip-checkbox{margin-right:6px}.devops-stage-container .container-title .atom-canskip-checkbox.is-disabled .bk-checkbox{background-color:rgba(0,0,0,0);border-color:#979ba4}.devops-stage-container .container-title input[type=checkbox]{border-radius:3px}.devops-stage-container .container-title .matrix-flag-icon{position:absolute;top:0px;font-size:16px}.devops-stage-container .container-title .fold-atom-icon{position:absolute;background:#fff;border-radius:50%;bottom:-10px;left:44%;transition:all .3s ease}.devops-stage-container .container-title .fold-atom-icon.open{transform:rotate(-180deg)}.devops-stage-container .container-title .fold-atom-icon.readonly{color:#63656e}.devops-stage-container .container-title .copyJob{display:none;margin-right:10px;color:#c4cdd6;cursor:pointer}.devops-stage-container .container-title .copyJob:hover{color:#3c96ff}.devops-stage-container .container-title .close{position:relative;display:block;width:16px;height:16px;border:1px solid #2e2e3a;background-color:#c4c6cd;border-radius:50%;transition:all .3s ease;border:none;display:none;margin-right:10px;transform:rotate(45deg);cursor:pointer}.devops-stage-container .container-title .close:before,.devops-stage-container .container-title .close:after{content:"";position:absolute;left:7px;top:4px;left:6px;top:3px;height:8px;width:2px;background-color:#2e2e3a}.devops-stage-container .container-title .close:after{transform:rotate(90deg)}.devops-stage-container .container-title .close:hover{border-color:#ff5656;background-color:#ff5656}.devops-stage-container .container-title .close:hover:before,.devops-stage-container .container-title .close:hover:after{background-color:#fff}.devops-stage-container .container-title .close:before,.devops-stage-container .container-title .close:after{left:7px;top:4px}.devops-stage-container .container-title .debug-btn{position:absolute;height:100%;right:0}.devops-stage-container .container-title .container-locate-icon{position:absolute;left:-30px;top:13px;color:#3c96ff}.devops-stage-container .container-title:hover .copyJob,.devops-stage-container .container-title:hover .close{display:block}.devops-stage-container .container-title:hover .hover-hide{display:none}',""]);const s=a},6399:(t,e,n)=>{"use strict";n.d(e,{Z:()=>s});var i=n(8081),o=n.n(i),r=n(3645),a=n.n(r)()(o());a.push([t.id,'/*!\n * Tencent is pleased to support the open source community by making BK-CI 蓝鲸持续集成平台 available.\n *\n * Copyright (C) 2019 THL A29 Limited, a Tencent company. All rights reserved.\n *\n * BK-CI 蓝鲸持续集成平台 is licensed under the MIT license.\n *\n * A copy of the MIT License is included in this file.\n *\n *\n * Terms of the MIT License:\n * ---------------------------------------------------\n * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */@keyframes rotating{from{transform:rotate(0)}to{transform:rotate(359deg)}}.bk-pipeline-matrix-group{border:1px solid #b5c0d5;padding:10px;background:#fff}.bk-pipeline-matrix-group .bk-pipeline-matrix-group-header{display:flex;align-items:center;cursor:pointer;justify-content:space-between;height:20px}.bk-pipeline-matrix-group .bk-pipeline-matrix-group-header .matrix-name{display:flex;align-items:center;font-size:14px;color:#222;min-width:0}.bk-pipeline-matrix-group .bk-pipeline-matrix-group-header .matrix-name .matrix-fold-icon{display:block;margin-right:10px;transition:all .3s ease;flex-shrink:0}.bk-pipeline-matrix-group .bk-pipeline-matrix-group-header .matrix-name .matrix-fold-icon.open{transform:rotate(-180deg)}.bk-pipeline-matrix-group .bk-pipeline-matrix-group-header .matrix-name>span{display:inline-block;max-width:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bk-pipeline-matrix-group .bk-pipeline-matrix-group-header .matrix-status{color:#3c96ff;display:flex;align-items:center}.bk-pipeline-matrix-group .bk-pipeline-matrix-group-header .matrix-status .status-desc{font-size:12px;display:inline-block;max-width:110px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bk-pipeline-matrix-group .matrix-body{margin-top:12px}.bk-pipeline-matrix-group .matrix-body>div{margin-bottom:34px}',""]);const s=a},4944:(t,e,n)=>{"use strict";n.d(e,{Z:()=>s});var i=n(8081),o=n.n(i),r=n(3645),a=n.n(r)()(o());a.push([t.id,'/*!\n * Tencent is pleased to support the open source community by making BK-CI 蓝鲸持续集成平台 available.\n *\n * Copyright (C) 2019 THL A29 Limited, a Tencent company. All rights reserved.\n *\n * BK-CI 蓝鲸持续集成平台 is licensed under the MIT license.\n *\n * A copy of the MIT License is included in this file.\n *\n *\n * Terms of the MIT License:\n * ---------------------------------------------------\n * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */@keyframes rotating{from{transform:rotate(0)}to{transform:rotate(359deg)}}.pipeline-drag{cursor:grab,default}.pipeline-stage{position:relative;width:280px;border-radius:2px;padding:0;background:#f5f5f5;margin:0 80px 0 0}.pipeline-stage .pipeline-stage-entry{position:relative;cursor:pointer;display:flex;width:100%;height:50px;align-items:center;min-width:0;font-size:14px;background-color:#eff5ff;border:1px solid #d4e8ff;color:#3c96ff}.pipeline-stage .pipeline-stage-entry:hover{border-color:#1a6df3;background-color:#d1e2fd}.pipeline-stage .pipeline-stage-entry .check-in-icon,.pipeline-stage .pipeline-stage-entry .check-out-icon{position:absolute;left:-14px;top:11px}.pipeline-stage .pipeline-stage-entry .check-in-icon.check-out-icon,.pipeline-stage .pipeline-stage-entry .check-out-icon.check-out-icon{left:auto;right:-14px}.pipeline-stage .pipeline-stage-entry .stage-entry-name{flex:1;display:flex;align-items:center;justify-content:center;margin:0 80px;overflow:hidden}.pipeline-stage .pipeline-stage-entry .stage-entry-name .stage-title-name{display:inline-block;max-width:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-left:6px}.pipeline-stage .pipeline-stage-entry .stage-single-retry{cursor:pointer;position:absolute;right:6%;color:#3c96ff}.pipeline-stage .pipeline-stage-entry .stage-entry-error-icon,.pipeline-stage .pipeline-stage-entry .check-total-stage{position:absolute;right:27px}.pipeline-stage .pipeline-stage-entry .stage-entry-error-icon.stage-entry-error-icon,.pipeline-stage .pipeline-stage-entry .check-total-stage.stage-entry-error-icon{top:16px;right:8px;color:#ff5656}.pipeline-stage .pipeline-stage-entry .stage-entry-btns{position:absolute;right:0;top:16px;display:none;width:80px;align-items:center;justify-content:flex-end;color:#fff;fill:#fff;z-index:2}.pipeline-stage .pipeline-stage-entry .stage-entry-btns .copy-stage:hover{color:#3c96ff}.pipeline-stage .pipeline-stage-entry .stage-entry-btns .close{position:relative;display:block;width:16px;height:16px;border:1px solid #2e2e3a;background-color:#fff;border-radius:50%;transition:all .3s ease;border:none;margin:0 10px 0 8px;transform:rotate(45deg);cursor:pointer}.pipeline-stage .pipeline-stage-entry .stage-entry-btns .close:before,.pipeline-stage .pipeline-stage-entry .stage-entry-btns .close:after{content:"";position:absolute;left:7px;top:4px;left:6px;top:3px;height:8px;width:2px;background-color:#2e2e3a}.pipeline-stage .pipeline-stage-entry .stage-entry-btns .close:after{transform:rotate(90deg)}.pipeline-stage .pipeline-stage-entry .stage-entry-btns .close:hover{border-color:#ff5656;background-color:#ff5656}.pipeline-stage .pipeline-stage-entry .stage-entry-btns .close:hover:before,.pipeline-stage .pipeline-stage-entry .stage-entry-btns .close:hover:after{background-color:#fff}.pipeline-stage .pipeline-stage-entry .stage-entry-btns .close:before,.pipeline-stage .pipeline-stage-entry .stage-entry-btns .close:after{left:7px;top:4px}.pipeline-stage.editable:not(.readonly) .pipeline-stage-entry:hover{color:#000;border-color:#1a6df3;background-color:#d1e2fd}.pipeline-stage.editable .pipeline-stage-entry:hover .stage-entry-btns{display:flex}.pipeline-stage.editable .pipeline-stage-entry:hover .stage-entry-error-icon{display:none}.pipeline-stage.readonly.SKIP .pipeline-stage-entry{color:#c3cdd7;fill:#c3cdd7}.pipeline-stage.readonly.RUNNING .pipeline-stage-entry{background-color:#eff5ff;border-color:#d4e8ff;color:#3c96ff}.pipeline-stage.readonly.REVIEWING .pipeline-stage-entry{background-color:#f3f3f3;border-color:#d0d8ea;color:#000}.pipeline-stage.readonly.FAILED .pipeline-stage-entry{border-color:#ffd4d4;background-color:#fff9f9;color:#000}.pipeline-stage.readonly.SUCCEED .pipeline-stage-entry{background-color:#f3fff6;border-color:#bbefc9;color:#000}.pipeline-stage.readonly .pipeline-stage-entry{background-color:#f3f3f3;border-color:#d0d8ea;color:#000}.pipeline-stage.readonly .pipeline-stage-entry .skip-icon{vertical-align:middle}.pipeline-stage .add-connector{stroke-dasharray:4,4;top:7px;left:10px}.pipeline-stage .append-stage{position:absolute;top:16px;right:-44px;z-index:3}.pipeline-stage .append-stage .add-plus-icon{box-shadow:0px 2px 4px 0px rgba(60,150,255,.2)}.pipeline-stage .append-stage .line-add{top:-46px;left:-16px}.pipeline-stage .append-stage .add-plus-connector{position:absolute;width:40px;height:2px;left:-26px;top:8px;background-color:#3c96ff}.pipeline-stage .add-menu{position:absolute;top:16px;left:-53px;cursor:pointer;z-index:3}.pipeline-stage .add-menu .add-plus-icon{box-shadow:0px 2px 4px 0px rgba(60,150,255,.2)}.pipeline-stage .add-menu .minus-icon{z-index:4}.pipeline-stage .add-menu .line-add{top:-46px;left:-16px}.pipeline-stage .add-menu .parallel-add{left:50px}.pipeline-stage:first-child .stage-connector{display:none}.pipeline-stage.is-final-stage .stage-connector{width:80px}.pipeline-stage .stage-connector{position:absolute;width:66px;height:2px;left:-80px;top:24px;color:#3c96ff;background-color:#3c96ff}.pipeline-stage .stage-connector:before{content:"";width:8px;height:8px;position:absolute;left:-4px;top:-3px;background-color:#3c96ff;border-radius:50%}.pipeline-stage .stage-connector .connector-angle{position:absolute;right:-3px;top:-6px}.pipeline-stage .insert-stage{position:absolute;display:block;width:160px;background-color:#fff;border:1px solid #dcdee5}.pipeline-stage .insert-stage .click-item{padding:0 15px;font-size:12px;line-height:32px}.pipeline-stage .insert-stage .click-item:hover,.pipeline-stage .insert-stage .click-item :hover{color:#3c96ff;background-color:#eaf3ff}.pipeline-stage .insert-stage .disabled-item{cursor:not-allowed;color:#c4cdd6}.pipeline-stage .insert-stage .disabled-item:hover,.pipeline-stage .insert-stage .disabled-item :hover{color:#c4cdd6;background-color:#fff}.stage-retry-dialog .bk-form-radio{display:block;margin-top:15px}.stage-retry-dialog .bk-form-radio .bk-radio-text{font-size:14px}',""]);const s=a},7849:(t,e,n)=>{"use strict";n.d(e,{Z:()=>s});var i=n(8081),o=n.n(i),r=n(3645),a=n.n(r)()(o());a.push([t.id,'/*!\n * Tencent is pleased to support the open source community by making BK-CI 蓝鲸持续集成平台 available.\n *\n * Copyright (C) 2019 THL A29 Limited, a Tencent company. All rights reserved.\n *\n * BK-CI 蓝鲸持续集成平台 is licensed under the MIT license.\n *\n * A copy of the MIT License is included in this file.\n *\n *\n * Terms of the MIT License:\n * ---------------------------------------------------\n * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */@keyframes rotating{from{transform:rotate(0)}to{transform:rotate(359deg)}}.stage-check-icon{border-radius:100px;border:1px solid #d0d8ea;display:flex;align-items:center;background:#fff;font-size:12px;z-index:3;color:#63656e}.stage-check-icon.reviewing{color:#3c96ff;border-color:#3c96ff}.stage-check-icon.quality-check{color:#34d97b;border-color:#34d97b}.stage-check-icon.quality-check-error,.stage-check-icon.review-error{color:#ff5656;border-color:#ff5656}.stage-check-icon .stage-check-txt{padding-right:10px}',""]);const s=a},2718:(t,e,n)=>{"use strict";n.d(e,{Z:()=>s});var i=n(8081),o=n.n(i),r=n(3645),a=n.n(r)()(o());a.push([t.id,'/*!\n * Tencent is pleased to support the open source community by making BK-CI 蓝鲸持续集成平台 available.\n *\n * Copyright (C) 2019 THL A29 Limited, a Tencent company. All rights reserved.\n *\n * BK-CI 蓝鲸持续集成平台 is licensed under the MIT license.\n *\n * A copy of the MIT License is included in this file.\n *\n *\n * Terms of the MIT License:\n * ---------------------------------------------------\n * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */@keyframes rotating{from{transform:rotate(0)}to{transform:rotate(359deg)}}.devops-stage-container{text-align:left;margin:16px 20px 24px 20px;position:relative}.devops-stage-container:not(.last-stage-container):after{content:"";width:6px;height:6px;position:absolute;right:-3px;top:19px;border-radius:50%}.devops-stage-container:not(.last-stage-container):after:not(.readonly){background:#3c96ff}.devops-stage-container .container-connect-triangle{position:absolute;color:#3c96ff;left:-9px;top:15.5px;z-index:2}.devops-stage-container .connect-line{position:absolute;top:1px;stroke:#3c96ff;stroke-width:1;fill:none;z-index:0}.devops-stage-container .connect-line.left{left:-54px}.devops-stage-container .connect-line.right{right:-46px}.devops-stage-container .connect-line.first-connect-line{height:76px;width:58px;top:-43px}.devops-stage-container .connect-line.first-connect-line.left{left:-63px}.devops-stage-container .connect-line.first-connect-line.right{left:auto;right:-55px}',""]);const s=a},6190:(t,e,n)=>{"use strict";n.d(e,{Z:()=>s});var i=n(8081),o=n.n(i),r=n(3645),a=n.n(r)()(o());a.push([t.id,'/*!\n * Tencent is pleased to support the open source community by making BK-CI 蓝鲸持续集成平台 available.\n *\n * Copyright (C) 2019 THL A29 Limited, a Tencent company. All rights reserved.\n *\n * BK-CI 蓝鲸持续集成平台 is licensed under the MIT license.\n *\n * A copy of the MIT License is included in this file.\n *\n *\n * Terms of the MIT License:\n * ---------------------------------------------------\n * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */@keyframes rotating{from{transform:rotate(0)}to{transform:rotate(359deg)}}.stage-status{position:relative;text-align:center;overflow:hidden;font-size:14px;width:42px;height:42px;box-sizing:border-box}.stage-status>span{position:absolute;width:100%;height:100%;display:flex;align-items:center;justify-content:center;left:0;top:0;transition:all .3s cubic-bezier(1, 0.5, 0.8, 1)}.stage-status.matrix{width:20px;height:20px}.stage-status .status-logo{position:absolute;left:15px;top:15px}.stage-status .slide-top-enter,.stage-status .slide-top-leave-to{transform:translateY(42px)}.stage-status .slide-down-enter,.stage-status .slide-down-leave-to{transform:translateY(-42px)}.stage-status .slide-left-enter,.stage-status .slide-left-leave-to{transform:translateX(42px)}.stage-status .slide-right-enter,.stage-status .slide-right-leave-to{transform:translateX(-42px)}.stage-status.readonly{font-size:12px;font-weight:normal;background-color:rgba(0,0,0,0)}.stage-status.readonly.container{color:#fff}',""]);const s=a},812:(t,e,n)=>{"use strict";n.d(e,{Z:()=>s});var i=n(8081),o=n.n(i),r=n(3645),a=n.n(r)()(o());a.push([t.id,".bk-pipeline{display:flex;padding-right:120px;width:fit-content;position:relative;align-items:flex-start}.bk-pipeline ul,.bk-pipeline li{margin:0;padding:0}.list-item{transition:transform .2s ease-out}.list-enter,.list-leave-to{opacity:0;transform:translateY(36px) scale(0, 1)}.list-leave-active{position:absolute !important}",""]);const s=a},3645:t=>{"use strict";t.exports=function(t){var e=[];return e.toString=function(){return this.map((function(e){var n="",i=void 0!==e[5];return e[4]&&(n+="@supports (".concat(e[4],") {")),e[2]&&(n+="@media ".concat(e[2]," {")),i&&(n+="@layer".concat(e[5].length>0?" ".concat(e[5]):""," {")),n+=t(e),i&&(n+="}"),e[2]&&(n+="}"),e[4]&&(n+="}"),n})).join("")},e.i=function(t,n,i,o,r){"string"==typeof t&&(t=[[null,t,void 0]]);var a={};if(i)for(var s=0;s0?" ".concat(p[5]):""," {").concat(p[1],"}")),p[5]=r),n&&(p[2]?(p[1]="@media ".concat(p[2]," {").concat(p[1],"}"),p[2]=n):p[2]=n),o&&(p[4]?(p[1]="@supports (".concat(p[4],") {").concat(p[1],"}"),p[4]=o):p[4]="".concat(o)),e.push(p))}},e}},3626:t=>{"use strict";t.exports=function(t,e){return e||(e={}),t?(t=String(t.__esModule?t.default:t),/^['"].*['"]$/.test(t)&&(t=t.slice(1,-1)),e.hash&&(t+=e.hash),/["'() \t\n]|(%20)/.test(t)||e.needQuotes?'"'.concat(t.replace(/"/g,'\\"').replace(/\n/g,"\\n"),'"'):t):t}},8081:t=>{"use strict";t.exports=function(t){return t[1]}},1474:(t,e,n)=>{"use strict";function i(t){return i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},i(t)}function o(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function r(){return r=Object.assign||function(t){for(var e=1;ebe,Sortable:()=>Pt,Swap:()=>re,default:()=>ye});var c=s(/(?:Trident.*rv[ :]?11\.|msie|iemobile|Windows Phone)/i),l=s(/Edge/i),p=s(/firefox/i),d=s(/safari/i)&&!s(/chrome/i)&&!s(/android/i),u=s(/iP(ad|od|hone)/i),f=s(/chrome/i)&&s(/android/i),m={capture:!1,passive:!1};function h(t,e,n){t.addEventListener(e,n,!c&&m)}function b(t,e,n){t.removeEventListener(e,n,!c&&m)}function g(t,e){if(e){if(">"===e[0]&&(e=e.substring(1)),t)try{if(t.matches)return t.matches(e);if(t.msMatchesSelector)return t.msMatchesSelector(e);if(t.webkitMatchesSelector)return t.webkitMatchesSelector(e)}catch(t){return!1}return!1}}function v(t){return t.host&&t!==document&&t.host.nodeType?t.host:t.parentNode}function y(t,e,n,i){if(t){n=n||document;do{if(null!=e&&(">"===e[0]?t.parentNode===n&&g(t,e):g(t,e))||i&&t===n)return t;if(t===n)break}while(t=v(t))}return null}var x,w=/\s+/g;function k(t,e,n){if(t&&e)if(t.classList)t.classList[n?"add":"remove"](e);else{var i=(" "+t.className+" ").replace(w," ").replace(" "+e+" "," ");t.className=(i+(n?" "+e:"")).replace(w," ")}}function E(t,e,n){var i=t&&t.style;if(i){if(void 0===n)return document.defaultView&&document.defaultView.getComputedStyle?n=document.defaultView.getComputedStyle(t,""):t.currentStyle&&(n=t.currentStyle),void 0===e?n:n[e];e in i||-1!==e.indexOf("webkit")||(e="-webkit-"+e),i[e]=n+("string"==typeof n?"":"px")}}function T(t,e){var n="";if("string"==typeof t)n=t;else do{var i=E(t,"transform");i&&"none"!==i&&(n=i+" "+n)}while(!e&&(t=t.parentNode));var o=window.DOMMatrix||window.WebKitCSSMatrix||window.CSSMatrix||window.MSCSSMatrix;return o&&new o(n)}function I(t,e,n){if(t){var i=t.getElementsByTagName(e),o=0,r=i.length;if(n)for(;o=r:o<=r))return i;if(i===S())break;i=N(i,!1)}return!1}function A(t,e,n){for(var i=0,o=0,r=t.children;o2&&void 0!==arguments[2]?arguments[2]:{},i=n.evt,o=function(t,e){if(null==t)return{};var n,i,o=function(t,e){if(null==t)return{};var n,i,o={},r=Object.keys(t);for(i=0;i=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}(n,["evt"]);V.pluginEvent.bind(Pt)(t,e,a({dragEl:G,parentEl:X,ghostEl:q,rootEl:K,nextEl:Z,lastDownEl:Q,cloneEl:J,cloneHidden:tt,dragStarted:ft,putSortable:at,activeSortable:Pt.active,originalEvent:i,oldIndex:et,oldDraggableIndex:it,newIndex:nt,newDraggableIndex:ot,hideGhostForTarget:Nt,unhideGhostForTarget:Rt,cloneNowHidden:function(){tt=!0},cloneNowShown:function(){tt=!1},dispatchSortableEvent:function(t){$({sortable:e,name:t,originalEvent:i})}},o))};function $(t){Y(a({putSortable:at,cloneEl:J,targetEl:G,rootEl:K,oldIndex:et,oldDraggableIndex:it,newIndex:nt,newDraggableIndex:ot},t))}var G,X,q,K,Z,Q,J,tt,et,nt,it,ot,rt,at,st,ct,lt,pt,dt,ut,ft,mt,ht,bt,gt,vt=!1,yt=!1,xt=[],wt=!1,kt=!1,Et=[],Tt=!1,It=[],St="undefined"!=typeof document,Ct=u,Ot=l||c?"cssFloat":"float",At=St&&!f&&!u&&"draggable"in document.createElement("div"),_t=function(){if(St){if(c)return!1;var t=document.createElement("x");return t.style.cssText="pointer-events:auto","auto"===t.style.pointerEvents}}(),Lt=function(t,e){var n=E(t),i=parseInt(n.width)-parseInt(n.paddingLeft)-parseInt(n.paddingRight)-parseInt(n.borderLeftWidth)-parseInt(n.borderRightWidth),o=A(t,0,e),r=A(t,1,e),a=o&&E(o),s=r&&E(r),c=a&&parseInt(a.marginLeft)+parseInt(a.marginRight)+C(o).width,l=s&&parseInt(s.marginLeft)+parseInt(s.marginRight)+C(r).width;if("flex"===n.display)return"column"===n.flexDirection||"column-reverse"===n.flexDirection?"vertical":"horizontal";if("grid"===n.display)return n.gridTemplateColumns.split(" ").length<=1?"vertical":"horizontal";if(o&&a.float&&"none"!==a.float){var p="left"===a.float?"left":"right";return!r||"both"!==s.clear&&s.clear!==p?"horizontal":"vertical"}return o&&("block"===a.display||"flex"===a.display||"table"===a.display||"grid"===a.display||c>=i&&"none"===n[Ot]||r&&"none"===n[Ot]&&c+l>i)?"vertical":"horizontal"},Mt=function(t){function e(t,n){return function(i,o,r,a){var s=i.options.group.name&&o.options.group.name&&i.options.group.name===o.options.group.name;if(null==t&&(n||s))return!0;if(null==t||!1===t)return!1;if(n&&"clone"===t)return t;if("function"==typeof t)return e(t(i,o,r,a),n)(i,o,r,a);var c=(n?i:o).options.group.name;return!0===t||"string"==typeof t&&t===c||t.join&&t.indexOf(c)>-1}}var n={},o=t.group;o&&"object"==i(o)||(o={name:o}),n.name=o.name,n.checkPull=e(o.pull,!0),n.checkPut=e(o.put),n.revertClone=o.revertClone,t.group=n},Nt=function(){!_t&&q&&E(q,"display","none")},Rt=function(){!_t&&q&&E(q,"display","")};St&&document.addEventListener("click",(function(t){if(yt)return t.preventDefault(),t.stopPropagation&&t.stopPropagation(),t.stopImmediatePropagation&&t.stopImmediatePropagation(),yt=!1,!1}),!0);var Dt=function(t){if(G){t=t.touches?t.touches[0]:t;var e=(o=t.clientX,r=t.clientY,xt.some((function(t){if(!_(t)){var e=C(t),n=t[j].options.emptyInsertThreshold,i=o>=e.left-n&&o<=e.right+n,s=r>=e.top-n&&r<=e.bottom+n;return n&&i&&s?a=t:void 0}})),a);if(e){var n={};for(var i in t)t.hasOwnProperty(i)&&(n[i]=t[i]);n.target=n.rootEl=e,n.preventDefault=void 0,n.stopPropagation=void 0,e[j]._onDragOver(n)}}var o,r,a},zt=function(t){G&&G.parentNode[j]._isOutsideThisEl(t.target)};function Pt(t,e){if(!t||!t.nodeType||1!==t.nodeType)throw"Sortable: `el` must be an HTMLElement, not ".concat({}.toString.call(t));this.el=t,this.options=e=r({},e),t[j]=this;var n,i,o={group:null,sort:!0,disabled:!1,store:null,handle:null,draggable:/^[uo]l$/i.test(t.nodeName)?">li":">*",swapThreshold:1,invertSwap:!1,invertedSwapThreshold:null,removeCloneOnHide:!0,direction:function(){return Lt(t,this.options)},ghostClass:"sortable-ghost",chosenClass:"sortable-chosen",dragClass:"sortable-drag",ignore:"a, img",filter:null,preventOnFilter:!0,animation:0,easing:null,setData:function(t,e){t.setData("Text",e.textContent)},dropBubble:!1,dragoverBubble:!1,dataIdAttr:"data-id",delay:0,delayOnTouchOnly:!1,touchStartThreshold:(Number.parseInt?Number:window).parseInt(window.devicePixelRatio,10)||1,forceFallback:!1,fallbackClass:"sortable-fallback",fallbackOnBody:!1,fallbackTolerance:0,fallbackOffset:{x:0,y:0},supportPointer:!1!==Pt.supportPointer&&"PointerEvent"in window,emptyInsertThreshold:5};for(var s in V.initializePlugins(this,t,o),o)!(s in e)&&(e[s]=o[s]);for(var c in Mt(e),this)"_"===c.charAt(0)&&"function"==typeof this[c]&&(this[c]=this[c].bind(this));this.nativeDraggable=!e.forceFallback&&At,this.nativeDraggable&&(this.options.touchStartThreshold=1),e.supportPointer?h(t,"pointerdown",this._onTapStart):(h(t,"mousedown",this._onTapStart),h(t,"touchstart",this._onTapStart)),this.nativeDraggable&&(h(t,"dragover",this),h(t,"dragenter",this)),xt.push(this.el),e.store&&e.store.get&&this.sort(e.store.get(this)||[]),r(this,(i=[],{captureAnimationState:function(){i=[],this.options.animation&&[].slice.call(this.el.children).forEach((function(t){if("none"!==E(t,"display")&&t!==Pt.ghost){i.push({target:t,rect:C(t)});var e=a({},i[i.length-1].rect);if(t.thisAnimationDuration){var n=T(t,!0);n&&(e.top-=n.f,e.left-=n.e)}t.fromRect=e}}))},addAnimationState:function(t){i.push(t)},removeAnimationState:function(t){i.splice(function(t,e){for(var n in t)if(t.hasOwnProperty(n))for(var i in e)if(e.hasOwnProperty(i)&&e[i]===t[n][i])return Number(n);return-1}(i,{target:t}),1)},animateAll:function(t){var e=this;if(!this.options.animation)return clearTimeout(n),void("function"==typeof t&&t());var o=!1,r=0;i.forEach((function(t){var n=0,i=t.target,a=i.fromRect,s=C(i),c=i.prevFromRect,l=i.prevToRect,p=t.rect,d=T(i,!0);d&&(s.top-=d.f,s.left-=d.e),i.toRect=s,i.thisAnimationDuration&&R(c,s)&&!R(a,s)&&(p.top-s.top)/(p.left-s.left)==(a.top-s.top)/(a.left-s.left)&&(n=function(t,e,n,i){return Math.sqrt(Math.pow(e.top-t.top,2)+Math.pow(e.left-t.left,2))/Math.sqrt(Math.pow(e.top-n.top,2)+Math.pow(e.left-n.left,2))*i.animation}(p,c,l,e.options)),R(s,a)||(i.prevFromRect=a,i.prevToRect=s,n||(n=e.options.animation),e.animate(i,p,s,n)),n&&(o=!0,r=Math.max(r,n),clearTimeout(i.animationResetTimer),i.animationResetTimer=setTimeout((function(){i.animationTime=0,i.prevFromRect=null,i.fromRect=null,i.prevToRect=null,i.thisAnimationDuration=null}),n),i.thisAnimationDuration=n)})),clearTimeout(n),o?n=setTimeout((function(){"function"==typeof t&&t()}),r):"function"==typeof t&&t(),i=[]},animate:function(t,e,n,i){if(i){E(t,"transition",""),E(t,"transform","");var o=T(this.el),r=o&&o.a,a=o&&o.d,s=(e.left-n.left)/(r||1),c=(e.top-n.top)/(a||1);t.animatingX=!!s,t.animatingY=!!c,E(t,"transform","translate3d("+s+"px,"+c+"px,0)"),function(t){t.offsetWidth}(t),E(t,"transition","transform "+i+"ms"+(this.options.easing?" "+this.options.easing:"")),E(t,"transform","translate3d(0,0,0)"),"number"==typeof t.animated&&clearTimeout(t.animated),t.animated=setTimeout((function(){E(t,"transition",""),E(t,"transform",""),t.animated=!1,t.animatingX=!1,t.animatingY=!1}),i)}}}))}function Ht(t,e,n,i,o,r,a,s){var p,d,u=t[j],f=u.options.onMove;return!window.CustomEvent||c||l?(p=document.createEvent("Event")).initEvent("move",!0,!0):p=new CustomEvent("move",{bubbles:!0,cancelable:!0}),p.to=e,p.from=t,p.dragged=n,p.draggedRect=i,p.related=o||e,p.relatedRect=r||C(e),p.willInsertAfter=s,p.originalEvent=a,t.dispatchEvent(p),f&&(d=f.call(u,p,a)),d}function Ft(t){t.draggable=!1}function jt(){Tt=!1}function Bt(t){for(var e=t.tagName+t.className+t.src+t.href+t.textContent,n=e.length,i=0;n--;)i+=e.charCodeAt(n);return i.toString(36)}function Ut(t){return setTimeout(t,0)}function Vt(t){return clearTimeout(t)}Pt.prototype={constructor:Pt,_isOutsideThisEl:function(t){this.el.contains(t)||t===this.el||(mt=null)},_getDirection:function(t,e){return"function"==typeof this.options.direction?this.options.direction.call(this,t,e,G):this.options.direction},_onTapStart:function(t){if(t.cancelable){var e=this,n=this.el,i=this.options,o=i.preventOnFilter,r=t.type,a=t.touches&&t.touches[0]||t.pointerType&&"touch"===t.pointerType&&t,s=(a||t).target,c=t.target.shadowRoot&&(t.path&&t.path[0]||t.composedPath&&t.composedPath()[0])||s,l=i.filter;if(function(t){It.length=0;for(var e=t.getElementsByTagName("input"),n=e.length;n--;){var i=e[n];i.checked&&It.push(i)}}(n),!G&&!(/mousedown|pointerdown/.test(r)&&0!==t.button||i.disabled||c.isContentEditable||(s=y(s,i.draggable,n,!1))&&s.animated||Q===s)){if(et=L(s),it=L(s,i.draggable),"function"==typeof l){if(l.call(this,t,s,this))return $({sortable:e,rootEl:c,name:"filter",targetEl:s,toEl:n,fromEl:n}),W("filter",e,{evt:t}),void(o&&t.cancelable&&t.preventDefault())}else if(l&&(l=l.split(",").some((function(i){if(i=y(c,i.trim(),n,!1))return $({sortable:e,rootEl:i,name:"filter",targetEl:s,fromEl:n,toEl:n}),W("filter",e,{evt:t}),!0}))))return void(o&&t.cancelable&&t.preventDefault());i.handle&&!y(c,i.handle,n,!1)||this._prepareDragStart(t,a,s)}}},_prepareDragStart:function(t,e,n){var i,o=this,r=o.el,a=o.options,s=r.ownerDocument;if(n&&!G&&n.parentNode===r){var d=C(n);if(K=r,X=(G=n).parentNode,Z=G.nextSibling,Q=n,rt=a.group,Pt.dragged=G,st={target:G,clientX:(e||t).clientX,clientY:(e||t).clientY},dt=st.clientX-d.left,ut=st.clientY-d.top,this._lastX=(e||t).clientX,this._lastY=(e||t).clientY,G.style["will-change"]="all",i=function(){W("delayEnded",o,{evt:t}),Pt.eventCanceled?o._onDrop():(o._disableDelayedDragEvents(),!p&&o.nativeDraggable&&(G.draggable=!0),o._triggerDragStart(t,e),$({sortable:o,name:"choose",originalEvent:t}),k(G,a.chosenClass,!0))},a.ignore.split(",").forEach((function(t){I(G,t.trim(),Ft)})),h(s,"dragover",Dt),h(s,"mousemove",Dt),h(s,"touchmove",Dt),h(s,"mouseup",o._onDrop),h(s,"touchend",o._onDrop),h(s,"touchcancel",o._onDrop),p&&this.nativeDraggable&&(this.options.touchStartThreshold=4,G.draggable=!0),W("delayStart",this,{evt:t}),!a.delay||a.delayOnTouchOnly&&!e||this.nativeDraggable&&(l||c))i();else{if(Pt.eventCanceled)return void this._onDrop();h(s,"mouseup",o._disableDelayedDrag),h(s,"touchend",o._disableDelayedDrag),h(s,"touchcancel",o._disableDelayedDrag),h(s,"mousemove",o._delayedDragTouchMoveHandler),h(s,"touchmove",o._delayedDragTouchMoveHandler),a.supportPointer&&h(s,"pointermove",o._delayedDragTouchMoveHandler),o._dragStartTimer=setTimeout(i,a.delay)}}},_delayedDragTouchMoveHandler:function(t){var e=t.touches?t.touches[0]:t;Math.max(Math.abs(e.clientX-this._lastX),Math.abs(e.clientY-this._lastY))>=Math.floor(this.options.touchStartThreshold/(this.nativeDraggable&&window.devicePixelRatio||1))&&this._disableDelayedDrag()},_disableDelayedDrag:function(){G&&Ft(G),clearTimeout(this._dragStartTimer),this._disableDelayedDragEvents()},_disableDelayedDragEvents:function(){var t=this.el.ownerDocument;b(t,"mouseup",this._disableDelayedDrag),b(t,"touchend",this._disableDelayedDrag),b(t,"touchcancel",this._disableDelayedDrag),b(t,"mousemove",this._delayedDragTouchMoveHandler),b(t,"touchmove",this._delayedDragTouchMoveHandler),b(t,"pointermove",this._delayedDragTouchMoveHandler)},_triggerDragStart:function(t,e){e=e||"touch"==t.pointerType&&t,!this.nativeDraggable||e?this.options.supportPointer?h(document,"pointermove",this._onTouchMove):h(document,e?"touchmove":"mousemove",this._onTouchMove):(h(G,"dragend",this),h(K,"dragstart",this._onDragStart));try{document.selection?Ut((function(){document.selection.empty()})):window.getSelection().removeAllRanges()}catch(t){}},_dragStarted:function(t,e){if(vt=!1,K&&G){W("dragStarted",this,{evt:e}),this.nativeDraggable&&h(document,"dragover",zt);var n=this.options;!t&&k(G,n.dragClass,!1),k(G,n.ghostClass,!0),Pt.active=this,t&&this._appendGhost(),$({sortable:this,name:"start",originalEvent:e})}else this._nulling()},_emulateDragOver:function(){if(ct){this._lastX=ct.clientX,this._lastY=ct.clientY,Nt();for(var t=document.elementFromPoint(ct.clientX,ct.clientY),e=t;t&&t.shadowRoot&&(t=t.shadowRoot.elementFromPoint(ct.clientX,ct.clientY))!==e;)e=t;if(G.parentNode[j]._isOutsideThisEl(t),e)do{if(e[j]&&e[j]._onDragOver({clientX:ct.clientX,clientY:ct.clientY,target:t,rootEl:e})&&!this.options.dragoverBubble)break;t=e}while(e=e.parentNode);Rt()}},_onTouchMove:function(t){if(st){var e=this.options,n=e.fallbackTolerance,i=e.fallbackOffset,o=t.touches?t.touches[0]:t,r=q&&T(q,!0),a=q&&r&&r.a,s=q&&r&&r.d,c=Ct&>&&M(gt),l=(o.clientX-st.clientX+i.x)/(a||1)+(c?c[0]-Et[0]:0)/(a||1),p=(o.clientY-st.clientY+i.y)/(s||1)+(c?c[1]-Et[1]:0)/(s||1);if(!Pt.active&&!vt){if(n&&Math.max(Math.abs(o.clientX-this._lastX),Math.abs(o.clientY-this._lastY))i.right+10||t.clientX<=i.right&&t.clientY>i.bottom&&t.clientX>=i.left:t.clientX>i.right&&t.clientY>i.top||t.clientX<=i.right&&t.clientY>i.bottom+10}(t,o,this)&&!b.animated){if(b===G)return F(!1);if(b&&r===t.target&&(s=b),s&&(n=C(s)),!1!==Ht(K,r,G,e,s,n,t,!!s))return H(),r.appendChild(G),X=r,B(),F(!0)}else if(s.parentNode===r){n=C(s);var g,v,x,w=G.parentNode!==r,T=!function(t,e,n){var i=n?t.left:t.top,o=n?t.right:t.bottom,r=n?t.width:t.height,a=n?e.left:e.top,s=n?e.right:e.bottom,c=n?e.width:e.height;return i===a||o===s||i+r/2===a+c/2}(G.animated&&G.toRect||e,s.animated&&s.toRect||n,o),I=o?"top":"left",S=O(s,"top","top")||O(G,"top","top"),A=S?S.scrollTop:void 0;if(mt!==s&&(v=n[I],wt=!1,kt=!T&&c.invertSwap||w),g=function(t,e,n,i,o,r,a,s){var c=i?t.clientY:t.clientX,l=i?n.height:n.width,p=i?n.top:n.left,d=i?n.bottom:n.right,u=!1;if(!a)if(s&&btp+l*r/2:cd-bt)return-ht}else if(c>p+l*(1-o)/2&&cd-l*r/2)?c>p+l/2?1:-1:0}(t,s,n,o,T?1:c.swapThreshold,null==c.invertedSwapThreshold?c.swapThreshold:c.invertedSwapThreshold,kt,mt===s),0!==g){var M=L(G);do{M-=g,x=X.children[M]}while(x&&("none"===E(x,"display")||x===q))}if(0===g||x===s)return F(!1);mt=s,ht=g;var N=s.nextElementSibling,R=!1,D=Ht(K,r,G,e,s,n,t,R=1===g);if(!1!==D)return 1!==D&&-1!==D||(R=1===D),Tt=!0,setTimeout(jt,30),H(),R&&!N?r.appendChild(G):s.parentNode.insertBefore(G,R?N:s),S&&z(S,0,A-S.scrollTop),X=G.parentNode,void 0===v||kt||(bt=Math.abs(v-C(s)[I])),B(),F(!0)}if(r.contains(G))return F(!1)}return!1}function P(c,l){W(c,m,a({evt:t,isOwner:d,axis:o?"vertical":"horizontal",revert:i,dragRect:e,targetRect:n,canSort:u,fromSortable:f,target:s,completed:F,onMove:function(n,i){return Ht(K,r,G,e,n,C(n),t,i)},changed:B},l))}function H(){P("dragOverAnimationCapture"),m.captureAnimationState(),m!==f&&f.captureAnimationState()}function F(e){return P("dragOverCompleted",{insertion:e}),e&&(d?p._hideClone():p._showClone(m),m!==f&&(k(G,at?at.options.ghostClass:p.options.ghostClass,!1),k(G,c.ghostClass,!0)),at!==m&&m!==Pt.active?at=m:m===Pt.active&&at&&(at=null),f===m&&(m._ignoreWhileAnimating=s),m.animateAll((function(){P("dragOverAnimationComplete"),m._ignoreWhileAnimating=null})),m!==f&&(f.animateAll(),f._ignoreWhileAnimating=null)),(s===G&&!G.animated||s===r&&!s.animated)&&(mt=null),c.dragoverBubble||t.rootEl||s===document||(G.parentNode[j]._isOutsideThisEl(t.target),!e&&Dt(t)),!c.dragoverBubble&&t.stopPropagation&&t.stopPropagation(),h=!0}function B(){nt=L(G),ot=L(G,c.draggable),$({sortable:m,name:"change",toEl:r,newIndex:nt,newDraggableIndex:ot,originalEvent:t})}},_ignoreWhileAnimating:null,_offMoveEvents:function(){b(document,"mousemove",this._onTouchMove),b(document,"touchmove",this._onTouchMove),b(document,"pointermove",this._onTouchMove),b(document,"dragover",Dt),b(document,"mousemove",Dt),b(document,"touchmove",Dt)},_offUpEvents:function(){var t=this.el.ownerDocument;b(t,"mouseup",this._onDrop),b(t,"touchend",this._onDrop),b(t,"pointerup",this._onDrop),b(t,"touchcancel",this._onDrop),b(document,"selectstart",this)},_onDrop:function(t){var e=this.el,n=this.options;nt=L(G),ot=L(G,n.draggable),W("drop",this,{evt:t}),X=G&&G.parentNode,nt=L(G),ot=L(G,n.draggable),Pt.eventCanceled||(vt=!1,kt=!1,wt=!1,clearInterval(this._loopId),clearTimeout(this._dragStartTimer),Vt(this.cloneId),Vt(this._dragStartId),this.nativeDraggable&&(b(document,"drop",this),b(e,"dragstart",this._onDragStart)),this._offMoveEvents(),this._offUpEvents(),d&&E(document.body,"user-select",""),E(G,"transform",""),t&&(ft&&(t.cancelable&&t.preventDefault(),!n.dropBubble&&t.stopPropagation()),q&&q.parentNode&&q.parentNode.removeChild(q),(K===X||at&&"clone"!==at.lastPutMode)&&J&&J.parentNode&&J.parentNode.removeChild(J),G&&(this.nativeDraggable&&b(G,"dragend",this),Ft(G),G.style["will-change"]="",ft&&!vt&&k(G,at?at.options.ghostClass:this.options.ghostClass,!1),k(G,this.options.chosenClass,!1),$({sortable:this,name:"unchoose",toEl:X,newIndex:null,newDraggableIndex:null,originalEvent:t}),K!==X?(nt>=0&&($({rootEl:X,name:"add",toEl:X,fromEl:K,originalEvent:t}),$({sortable:this,name:"remove",toEl:X,originalEvent:t}),$({rootEl:X,name:"sort",toEl:X,fromEl:K,originalEvent:t}),$({sortable:this,name:"sort",toEl:X,originalEvent:t})),at&&at.save()):nt!==et&&nt>=0&&($({sortable:this,name:"update",toEl:X,originalEvent:t}),$({sortable:this,name:"sort",toEl:X,originalEvent:t})),Pt.active&&(null!=nt&&-1!==nt||(nt=et,ot=it),$({sortable:this,name:"end",toEl:X,originalEvent:t}),this.save())))),this._nulling()},_nulling:function(){W("nulling",this),K=G=X=q=Z=J=Q=tt=st=ct=ft=nt=ot=et=it=mt=ht=at=rt=Pt.dragged=Pt.ghost=Pt.clone=Pt.active=null,It.forEach((function(t){t.checked=!0})),It.length=lt=pt=0},handleEvent:function(t){switch(t.type){case"drop":case"dragend":this._onDrop(t);break;case"dragenter":case"dragover":G&&(this._onDragOver(t),function(t){t.dataTransfer&&(t.dataTransfer.dropEffect="move"),t.cancelable&&t.preventDefault()}(t));break;case"selectstart":t.preventDefault()}},toArray:function(){for(var t,e=[],n=this.el.children,i=0,o=n.length,r=this.options;i1&&(de.forEach((function(t){i.addAnimationState({target:t,rect:me?C(t):o}),F(t),t.fromRect=o,e.removeAnimationState(t)})),me=!1,function(t,e){de.forEach((function(n,i){var o=e.children[n.sortableIndex+(t?Number(i):0)];o?e.insertBefore(n,o):e.appendChild(n)}))}(!this.options.removeCloneOnHide,n))},dragOverCompleted:function(t){var e=t.sortable,n=t.isOwner,i=t.insertion,o=t.activeSortable,r=t.parentEl,a=t.putSortable,s=this.options;if(i){if(n&&o._hideClone(),fe=!1,s.animation&&de.length>1&&(me||!n&&!o.options.sort&&!a)){var c=C(ce,!1,!0,!0);de.forEach((function(t){t!==ce&&(H(t,c),r.appendChild(t))})),me=!0}if(!n)if(me||ve(),de.length>1){var l=pe;o._showClone(e),o.options.animation&&!pe&&l&&ue.forEach((function(t){o.addAnimationState({target:t,rect:le}),t.fromRect=le,t.thisAnimationDuration=null}))}else o._showClone(e)}},dragOverAnimationCapture:function(t){var e=t.dragRect,n=t.isOwner,i=t.activeSortable;if(de.forEach((function(t){t.thisAnimationDuration=null})),i.options.animation&&!n&&i.multiDrag.isMultiDrag){le=r({},e);var o=T(ce,!0);le.top-=o.f,le.left-=o.e}},dragOverAnimationComplete:function(){me&&(me=!1,ve())},drop:function(t){var e=t.originalEvent,n=t.rootEl,i=t.parentEl,o=t.sortable,r=t.dispatchSortableEvent,a=t.oldIndex,s=t.putSortable,c=s||this.sortable;if(e){var l=this.options,p=i.children;if(!he)if(l.multiDragKey&&!this.multiDragKeyDown&&this._deselectMultiDrag(),k(ce,l.selectedClass,!~de.indexOf(ce)),~de.indexOf(ce))de.splice(de.indexOf(ce),1),ae=null,Y({sortable:o,rootEl:n,name:"deselect",targetEl:ce,originalEvt:e});else{if(de.push(ce),Y({sortable:o,rootEl:n,name:"select",targetEl:ce,originalEvt:e}),e.shiftKey&&ae&&o.el.contains(ae)){var d,u,f=L(ae),m=L(ce);if(~f&&~m&&f!==m)for(m>f?(u=f,d=m):(u=m,d=f+1);u1){var h=C(ce),b=L(ce,":not(."+this.options.selectedClass+")");if(!fe&&l.animation&&(ce.thisAnimationDuration=null),c.captureAnimationState(),!fe&&(l.animation&&(ce.fromRect=h,de.forEach((function(t){if(t.thisAnimationDuration=null,t!==ce){var e=me?C(t):h;t.fromRect=e,c.addAnimationState({target:t,rect:e})}}))),ve(),de.forEach((function(t){p[b]?i.insertBefore(t,p[b]):i.appendChild(t),b++})),a===L(ce))){var g=!1;de.forEach((function(t){t.sortableIndex===L(t)||(g=!0)})),g&&r("update")}de.forEach((function(t){F(t)})),c.animateAll()}se=c}(n===i||s&&"clone"!==s.lastPutMode)&&ue.forEach((function(t){t.parentNode&&t.parentNode.removeChild(t)}))}},nullingGlobal:function(){this.isMultiDrag=he=!1,ue.length=0},destroyGlobal:function(){this._deselectMultiDrag(),b(document,"pointerup",this._deselectMultiDrag),b(document,"mouseup",this._deselectMultiDrag),b(document,"touchend",this._deselectMultiDrag),b(document,"keydown",this._checkKeyDown),b(document,"keyup",this._checkKeyUp)},_deselectMultiDrag:function(t){if(!(void 0!==he&&he||se!==this.sortable||t&&y(t.target,this.options.draggable,this.sortable.el,!1)||t&&0!==t.button))for(;de.length;){var e=de[0];k(e,this.options.selectedClass,!1),de.shift(),Y({sortable:this.sortable,rootEl:this.sortable.el,name:"deselect",targetEl:e,originalEvt:t})}},_checkKeyDown:function(t){t.key===this.options.multiDragKey&&(this.multiDragKeyDown=!0)},_checkKeyUp:function(t){t.key===this.options.multiDragKey&&(this.multiDragKeyDown=!1)}},r(t,{pluginName:"multiDrag",utils:{select:function(t){var e=t.parentNode[j];e&&e.options.multiDrag&&!~de.indexOf(t)&&(se&&se!==e&&(se.multiDrag._deselectMultiDrag(),se=e),k(t,e.options.selectedClass,!0),de.push(t))},deselect:function(t){var e=t.parentNode[j],n=de.indexOf(t);e&&e.options.multiDrag&&~n&&(k(t,e.options.selectedClass,!1),de.splice(n,1))}},eventProperties:function(){var t,e=this,n=[],i=[];return de.forEach((function(t){var o;n.push({multiDragElement:t,index:t.sortableIndex}),o=me&&t!==ce?-1:me?L(t,":not(."+e.options.selectedClass+")"):L(t),i.push({multiDragElement:t,index:o})})),{items:(t=de,function(t){if(Array.isArray(t)){for(var e=0,n=new Array(t.length);e1&&(t=t.charAt(0).toUpperCase()+t.substr(1)),t}}})}function ge(t,e){ue.forEach((function(n,i){var o=e.children[n.sortableIndex+(t?Number(i):0)];o?e.insertBefore(n,o):e.appendChild(n)}))}function ve(){de.forEach((function(t){t!==ce&&t.parentNode&&t.parentNode.removeChild(t)}))}Pt.mount(new function(){function t(){for(var t in this.defaults={scroll:!0,scrollSensitivity:30,scrollSpeed:10,bubbleScroll:!0},this)"_"===t.charAt(0)&&"function"==typeof this[t]&&(this[t]=this[t].bind(this))}return t.prototype={dragStarted:function(t){var e=t.originalEvent;this.sortable.nativeDraggable?h(document,"dragover",this._handleAutoScroll):this.options.supportPointer?h(document,"pointermove",this._handleFallbackAutoScroll):e.touches?h(document,"touchmove",this._handleFallbackAutoScroll):h(document,"mousemove",this._handleFallbackAutoScroll)},dragOverCompleted:function(t){var e=t.originalEvent;this.options.dragOverBubble||e.rootEl||this._handleAutoScroll(e)},drop:function(){this.sortable.nativeDraggable?b(document,"dragover",this._handleAutoScroll):(b(document,"pointermove",this._handleFallbackAutoScroll),b(document,"touchmove",this._handleFallbackAutoScroll),b(document,"mousemove",this._handleFallbackAutoScroll)),Jt(),Qt(),clearTimeout(x),x=void 0},nulling:function(){Xt=Wt=Yt=Zt=qt=$t=Gt=null,Kt.length=0},_handleFallbackAutoScroll:function(t){this._handleAutoScroll(t,!0)},_handleAutoScroll:function(t,e){var n=this,i=(t.touches?t.touches[0]:t).clientX,o=(t.touches?t.touches[0]:t).clientY,r=document.elementFromPoint(i,o);if(Xt=t,e||l||c||d){ee(t,this.options,r,e);var a=N(r,!0);!Zt||qt&&i===$t&&o===Gt||(qt&&Jt(),qt=setInterval((function(){var r=N(document.elementFromPoint(i,o),!0);r!==a&&(a=r,Qt()),ee(t,n.options,r,e)}),10),$t=i,Gt=o)}else{if(!this.options.bubbleScroll||N(r,!0)===S())return void Qt();ee(t,this.options,N(r,!1),!1)}}},r(t,{pluginName:"scroll",initializeByDefault:!0})}),Pt.mount(oe,ie);const ye=Pt},3379:t=>{"use strict";var e=[];function n(t){for(var n=-1,i=0;i{"use strict";var e={};t.exports=function(t,n){var i=function(t){if(void 0===e[t]){var n=document.querySelector(t);if(window.HTMLIFrameElement&&n instanceof window.HTMLIFrameElement)try{n=n.contentDocument.head}catch(t){n=null}e[t]=n}return e[t]}(t);if(!i)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");i.appendChild(n)}},9216:t=>{"use strict";t.exports=function(t){var e=document.createElement("style");return t.setAttributes(e,t.attributes),t.insert(e,t.options),e}},3565:(t,e,n)=>{"use strict";t.exports=function(t){var e=n.nc;e&&t.setAttribute("nonce",e)}},7795:t=>{"use strict";t.exports=function(t){if("undefined"==typeof document)return{update:function(){},remove:function(){}};var e=t.insertStyleElement(t);return{update:function(n){!function(t,e,n){var i="";n.supports&&(i+="@supports (".concat(n.supports,") {")),n.media&&(i+="@media ".concat(n.media," {"));var o=void 0!==n.layer;o&&(i+="@layer".concat(n.layer.length>0?" ".concat(n.layer):""," {")),i+=n.css,o&&(i+="}"),n.media&&(i+="}"),n.supports&&(i+="}");var r=n.sourceMap;r&&"undefined"!=typeof btoa&&(i+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(r))))," */")),e.styleTagTransform(i,t,e.options)}(e,t,n)},remove:function(){!function(t){if(null===t.parentNode)return!1;t.parentNode.removeChild(t)}(e)}}}},4589:t=>{"use strict";t.exports=function(t,e){if(e.styleSheet)e.styleSheet.cssText=t;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(t))}}},9980:function(t,e,n){var i;"undefined"!=typeof self&&self,i=function(t){return function(t){var e={};function n(i){if(e[i])return e[i].exports;var o=e[i]={i,l:!1,exports:{}};return t[i].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=t,n.c=e,n.d=function(t,e,i){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:i})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var i=Object.create(null);if(n.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var o in t)n.d(i,o,function(e){return t[e]}.bind(null,o));return i},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s="fb15")}({"01f9":function(t,e,n){"use strict";var i=n("2d00"),o=n("5ca1"),r=n("2aba"),a=n("32e9"),s=n("84f2"),c=n("41a0"),l=n("7f20"),p=n("38fd"),d=n("2b4c")("iterator"),u=!([].keys&&"next"in[].keys()),f="keys",m="values",h=function(){return this};t.exports=function(t,e,n,b,g,v,y){c(n,e,b);var x,w,k,E=function(t){if(!u&&t in C)return C[t];switch(t){case f:case m:return function(){return new n(this,t)}}return function(){return new n(this,t)}},T=e+" Iterator",I=g==m,S=!1,C=t.prototype,O=C[d]||C["@@iterator"]||g&&C[g],A=O||E(g),_=g?I?E("entries"):A:void 0,L="Array"==e&&C.entries||O;if(L&&(k=p(L.call(new t)))!==Object.prototype&&k.next&&(l(k,T,!0),i||"function"==typeof k[d]||a(k,d,h)),I&&O&&O.name!==m&&(S=!0,A=function(){return O.call(this)}),i&&!y||!u&&!S&&C[d]||a(C,d,A),s[e]=A,s[T]=h,g)if(x={values:I?A:E(m),keys:v?A:E(f),entries:_},y)for(w in x)w in C||r(C,w,x[w]);else o(o.P+o.F*(u||S),e,x);return x}},"02f4":function(t,e,n){var i=n("4588"),o=n("be13");t.exports=function(t){return function(e,n){var r,a,s=String(o(e)),c=i(n),l=s.length;return c<0||c>=l?t?"":void 0:(r=s.charCodeAt(c))<55296||r>56319||c+1===l||(a=s.charCodeAt(c+1))<56320||a>57343?t?s.charAt(c):r:t?s.slice(c,c+2):a-56320+(r-55296<<10)+65536}}},"0390":function(t,e,n){"use strict";var i=n("02f4")(!0);t.exports=function(t,e,n){return e+(n?i(t,e).length:1)}},"0bfb":function(t,e,n){"use strict";var i=n("cb7c");t.exports=function(){var t=i(this),e="";return t.global&&(e+="g"),t.ignoreCase&&(e+="i"),t.multiline&&(e+="m"),t.unicode&&(e+="u"),t.sticky&&(e+="y"),e}},"0d58":function(t,e,n){var i=n("ce10"),o=n("e11e");t.exports=Object.keys||function(t){return i(t,o)}},1495:function(t,e,n){var i=n("86cc"),o=n("cb7c"),r=n("0d58");t.exports=n("9e1e")?Object.defineProperties:function(t,e){o(t);for(var n,a=r(e),s=a.length,c=0;s>c;)i.f(t,n=a[c++],e[n]);return t}},"214f":function(t,e,n){"use strict";n("b0c5");var i=n("2aba"),o=n("32e9"),r=n("79e5"),a=n("be13"),s=n("2b4c"),c=n("520a"),l=s("species"),p=!r((function(){var t=/./;return t.exec=function(){var t=[];return t.groups={a:"7"},t},"7"!=="".replace(t,"$")})),d=function(){var t=/(?:)/,e=t.exec;t.exec=function(){return e.apply(this,arguments)};var n="ab".split(t);return 2===n.length&&"a"===n[0]&&"b"===n[1]}();t.exports=function(t,e,n){var u=s(t),f=!r((function(){var e={};return e[u]=function(){return 7},7!=""[t](e)})),m=f?!r((function(){var e=!1,n=/a/;return n.exec=function(){return e=!0,null},"split"===t&&(n.constructor={},n.constructor[l]=function(){return n}),n[u](""),!e})):void 0;if(!f||!m||"replace"===t&&!p||"split"===t&&!d){var h=/./[u],b=n(a,u,""[t],(function(t,e,n,i,o){return e.exec===c?f&&!o?{done:!0,value:h.call(e,n,i)}:{done:!0,value:t.call(n,e,i)}:{done:!1}})),g=b[0],v=b[1];i(String.prototype,t,g),o(RegExp.prototype,u,2==e?function(t,e){return v.call(t,this,e)}:function(t){return v.call(t,this)})}}},"230e":function(t,e,n){var i=n("d3f4"),o=n("7726").document,r=i(o)&&i(o.createElement);t.exports=function(t){return r?o.createElement(t):{}}},"23c6":function(t,e,n){var i=n("2d95"),o=n("2b4c")("toStringTag"),r="Arguments"==i(function(){return arguments}());t.exports=function(t){var e,n,a;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(n=function(t,e){try{return t[e]}catch(t){}}(e=Object(t),o))?n:r?i(e):"Object"==(a=i(e))&&"function"==typeof e.callee?"Arguments":a}},2621:function(t,e){e.f=Object.getOwnPropertySymbols},"2aba":function(t,e,n){var i=n("7726"),o=n("32e9"),r=n("69a8"),a=n("ca5a")("src"),s=n("fa5b"),c="toString",l=(""+s).split(c);n("8378").inspectSource=function(t){return s.call(t)},(t.exports=function(t,e,n,s){var c="function"==typeof n;c&&(r(n,"name")||o(n,"name",e)),t[e]!==n&&(c&&(r(n,a)||o(n,a,t[e]?""+t[e]:l.join(String(e)))),t===i?t[e]=n:s?t[e]?t[e]=n:o(t,e,n):(delete t[e],o(t,e,n)))})(Function.prototype,c,(function(){return"function"==typeof this&&this[a]||s.call(this)}))},"2aeb":function(t,e,n){var i=n("cb7c"),o=n("1495"),r=n("e11e"),a=n("613b")("IE_PROTO"),s=function(){},c="prototype",l=function(){var t,e=n("230e")("iframe"),i=r.length;for(e.style.display="none",n("fab2").appendChild(e),e.src="javascript:",(t=e.contentWindow.document).open(),t.write(" From 39941b3f412fc914e4833afca4f06e80fa960ae2 Mon Sep 17 00:00:00 2001 From: vhwweng <1010382269@qq.com> Date: Fri, 24 Nov 2023 22:04:10 +0800 Subject: [PATCH 630/735] =?UTF-8?q?feat:=20=E6=94=AF=E6=8C=81=E4=B8=BA?= =?UTF-8?q?=E5=8D=95=E4=B8=AA=E6=B5=81=E6=B0=B4=E7=BA=BF=E6=A8=A1=E6=9D=BF?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E6=9D=83=E9=99=90=20#9574?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/frontend/devops-pipeline/src/views/template/instance.vue | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/frontend/devops-pipeline/src/views/template/instance.vue b/src/frontend/devops-pipeline/src/views/template/instance.vue index a50ff281e6a..fd97596d685 100755 --- a/src/frontend/devops-pipeline/src/views/template/instance.vue +++ b/src/frontend/devops-pipeline/src/views/template/instance.vue @@ -99,6 +99,8 @@ text @click="updateInstance(props.row)" v-perm="{ + hasPermission: props.row.hasPermission, + disablePermissionApi: true, permissionData: { projectId: projectId, resourceType: 'pipeline_template', From e3a9559ecac47c5fb4907b6ecb66f8b3e01c6c1e Mon Sep 17 00:00:00 2001 From: vhwweng <1010382269@qq.com> Date: Sat, 25 Nov 2023 12:55:17 +0800 Subject: [PATCH 631/735] =?UTF-8?q?feat:=20=E4=BB=A3=E7=A0=81=E5=BA=93?= =?UTF-8?q?=E4=BC=98=E5=8C=96=E4=B8=80=E6=9C=9F=E5=8A=9F=E8=83=BD=E7=82=B9?= =?UTF-8?q?=20#9347?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CodeLibDetail/basic-setting.vue | 23 +++++++++- .../src/components/CodeLibDetail/index.vue | 32 +++++++++++++- .../CodeLibDetail/timeline-collapse.vue | 37 +++++++++++++++- .../CodeLibDetail/trigger-event.vue | 1 + .../src/components/CodeLibTable/index.vue | 36 ++++++++++++++- .../devops-codelib/src/utils/permission.js | 10 +++++ .../devops-codelib/src/views/Index.vue | 44 ++++++++----------- 7 files changed, 153 insertions(+), 30 deletions(-) create mode 100644 src/frontend/devops-codelib/src/utils/permission.js diff --git a/src/frontend/devops-codelib/src/components/CodeLibDetail/basic-setting.vue b/src/frontend/devops-codelib/src/components/CodeLibDetail/basic-setting.vue index 1acb30ae5e7..df7dd2c0be4 100644 --- a/src/frontend/devops-codelib/src/components/CodeLibDetail/basic-setting.vue +++ b/src/frontend/devops-codelib/src/components/CodeLibDetail/basic-setting.vue @@ -67,7 +67,22 @@ {{ repoInfo.userName || curRepo.userName }} - {{ $t('codelib.resetAuth') }} + + {{ $t('codelib.resetAuth') }} +
@@ -276,6 +291,10 @@ mapState, mapActions } from 'vuex' + import { + RESOURCE_ACTION, + RESOURCE_TYPE + } from '@/utils/permission' import { prettyDateTimeFormat } from '@/utils/' @@ -308,6 +327,8 @@ }, data () { return { + RESOURCE_ACTION, + RESOURCE_TYPE, isEditing: false, isDeleted: false, hasCiFolder: true, diff --git a/src/frontend/devops-codelib/src/components/CodeLibDetail/index.vue b/src/frontend/devops-codelib/src/components/CodeLibDetail/index.vue index f3ba48e8f3f..9bf1c00e4c6 100644 --- a/src/frontend/devops-codelib/src/components/CodeLibDetail/index.vue +++ b/src/frontend/devops-codelib/src/components/CodeLibDetail/index.vue @@ -9,15 +9,40 @@ class="codelib-name" > {{ repoInfo.aliasName }} - + - + {{ $t('codelib.一键重新触发') }} @@ -74,7 +84,22 @@ @@ -110,6 +135,10 @@ import { mapActions } from 'vuex' + import { + RESOURCE_ACTION, + RESOURCE_TYPE + } from '@/utils/permission' import StatusIcon from '../status-icon.vue' import EmptyTableStatusVue from '../empty-table-status.vue' export default { @@ -128,10 +157,16 @@ searchValue: { type: Object, default: () => {} + }, + curRepo: { + type: Object, + default: () => {} } }, data () { return { + RESOURCE_ACTION, + RESOURCE_TYPE, isLoading: false, activeIndex: -1, eventDetailList: [], diff --git a/src/frontend/devops-codelib/src/components/CodeLibDetail/trigger-event.vue b/src/frontend/devops-codelib/src/components/CodeLibDetail/trigger-event.vue index 9e860bafc9b..99080807800 100644 --- a/src/frontend/devops-codelib/src/components/CodeLibDetail/trigger-event.vue +++ b/src/frontend/devops-codelib/src/components/CodeLibDetail/trigger-event.vue @@ -43,6 +43,7 @@ diff --git a/src/frontend/devops-codelib/src/components/CodeLibTable/index.vue b/src/frontend/devops-codelib/src/components/CodeLibTable/index.vue index d0eec220516..28c4a91f03f 100755 --- a/src/frontend/devops-codelib/src/components/CodeLibTable/index.vue +++ b/src/frontend/devops-codelib/src/components/CodeLibTable/index.vue @@ -41,6 +41,18 @@ size="16" /> {{ props.row.aliasName }} @@ -124,6 +136,16 @@ {{ $t('codelib.delete') }} @@ -156,6 +178,7 @@ - - - + + + + + + diff --git a/src/frontend/bk-permission/src/utils/i18n.json b/src/frontend/bk-permission/src/utils/i18n.json index 065a8000f3f..92d27312cb8 100644 --- a/src/frontend/bk-permission/src/utils/i18n.json +++ b/src/frontend/bk-permission/src/utils/i18n.json @@ -1,119 +1,121 @@ -{ - "zh-CN": { - "开启权限管理": "开启权限管理", - "用户组名": "用户组名", - "授权期限": "授权期限", - "自定义": "自定义", - "天": "天", - "到期时间": "到期时间", - "理由": "理由", - "确定": "确定", - "取消": "取消", - "1个月": "1个月", - "3个月": "3个月", - "6个月": "6个月", - "12个月": "12个月", - "请选择申请期限": "请选择申请期限", - "请填写申请理由": "请填写申请理由", - "申请成功,请等待审批": "申请成功,请等待审批", - "用户组": "用户组", - "添加时间": "添加时间", - "有效期": "有效期", - "状态": "状态", - "操作": "操作", - "权限详情": "权限详情", - "申请加入": "申请加入", - "续期": "续期", - "退出": "退出", - "确认退出用户组": "确认退出用户组", - "退出后,将无法再使用所赋予的权限。": "退出后,将无法再使用【{0}】所赋予的权限。", - "未加入": "未加入", - "正常": "正常", - "已过期": "已过期", - "无该项目用户组管理权限": "无该项目用户组管理权限", - "权限角色": "权限角色", - "删除": "删除", - "新建用户组": "新建用户组", - "关闭权限管理": "关闭权限管理", - "是否删除用户组": "是否删除用户组", - "确认关闭【】的权限管理?": "确认关闭【{0}】的权限管理?", - "关闭流水线权限管理,将执行如下操作:": "关闭{0}权限管理,将执行如下操作:", - "流水线": "流水线", - "流水线组": "流水线组", - "关闭权限管理,将执行如下操作:": "关闭{0}权限管理,将执行如下操作:", - "将编辑者、执行者、查看者中的用户移除": "将编辑者、执行者、查看者中的用户移除", - "删除对应组内用户继承该组的权限": "删除对应组内用户继承该组的权限", - "删除对应组信息和组权限": "删除对应组信息和组权限", - "提交后,再次开启权限管理时对应组内用户将不能恢复,请谨慎操作!": "提交后,再次开启权限管理时对应组内用户将不能恢复,请谨慎操作!", - "不能恢复": "不能恢复", - "需要申请的权限": "需要申请的权限", - "关联的资源类型": "关联的资源类型", - "关联的资源实例": "关联的资源实例", - "没有操作权限": "没有操作权限", - "去申请": "去申请", - "请在权限管理页填写权限申请单,提交完成后再刷新该页面": "请在权限管理页填写权限申请单,提交完成后再刷新该页面", - "刷新页面": "刷新页面", - "关闭": "关闭", - "权限申请单已提交": "权限申请单已提交", - "尚未开启流水线组权限管理。开启后,可以给组内流水线批量添加编辑者、执行者或查看者权限": "尚未开启流水线组权限管理。开启后,可以给组内流水线批量添加编辑者、执行者或查看者权限", - "尚未开启此流水线权限管理功能": "尚未开启此流水线权限管理功能" - }, - "en-US": { - "开启权限管理": "Turn on permission management", - "用户组名": "User Group Name", - "授权期限": "Authorization Term", - "自定义": "Custom", - "天": "day", - "到期时间": "Expire at", - "理由": "Reason", - "确定": "Confirm", - "取消": "Cancel", - "1个月": "1 month", - "3个月": "3 month", - "6个月": "6 month", - "12个月": "12 month", - "请选择申请期限": "Please select the application period", - "请填写申请理由": "Please fill in the reason for application", - "申请成功,请等待审批": "Application successful, please wait for approval", - "用户组": "User Group", - "添加时间": "Add Time", - "有效期": "Validity", - "状态": "Status", - "操作": "Actions", - "权限详情": "Permission details", - "申请加入": "Apply to join", - "续期": "Renewal", - "退出": "Exit", - "确认退出用户组": "Confirm exit user group", - "退出后,将无法再使用所赋予的权限。": "After logging out, you will no longer be able to use the permissions granted by {0}.", - "未加入": "Not Joined", - "正常": "Normal", - "已过期": "Expired", - "无该项目用户组管理权限": "No user group management permission for this project", - "权限角色": "Permission Roles", - "删除": "Delete", - "新建用户组": "Create new user group", - "关闭权限管理": "Close Permission Manage", - "确认关闭【】的权限管理?": "Are you sure to close 【{0}】 permission management?", - "关闭流水线权限管理,将执行如下操作:": "Turning off {0} permission management will perform the following actions:", - "流水线": "pipeline", - "流水线组": "pipeline group", - "关闭权限管理,将执行如下操作:": "To close {0} permission management, the following operations will be performed:", - "将编辑者、执行者、查看者中的用户移除": "Remove users from editors, executors, and viewers", - "删除对应组内用户继承该组的权限": "Delete the permissions inherited by users in the corresponding group", - "删除对应组信息和组权限": "Delete the corresponding group information and group permissions", - "提交后,再次开启权限管理时对应组内用户将不能恢复,请谨慎操作!": "After submission, group members who have been removed from the corresponding permissions will not be able to recover them when permission management is reopened. Please proceed with caution !", - "不能恢复": "not be able to recover", - "需要申请的权限": "Operation", - "关联的资源类型": "Related Resource Type", - "关联的资源实例": "Related Resource", - "没有操作权限": "No operation permissions", - "去申请": "Apply", - "请在权限管理页填写权限申请单,提交完成后再刷新该页面": "Please fill in the permission application form on the permission management page, and refresh the page after submission", - "刷新页面": "Refresh", - "关闭": "Close", - "权限申请单已提交": "Permission application has been submitted", - "尚未开启流水线组权限管理。开启后,可以给组内流水线批量添加编辑者、执行者或查看者权限": "Pipeline group permission management is not yet enabled. Once enabled, it will be possible to add editors, executors, or viewers permissions in bulk to pipelines within the group.", - "尚未开启此流水线权限管理功能": "The permission management function of this pipeline has not been enabled" - } - } \ No newline at end of file +{ + "zh-CN": { + "开启权限管理": "开启权限管理", + "用户组名": "用户组名", + "授权期限": "授权期限", + "自定义": "自定义", + "天": "天", + "到期时间": "到期时间", + "理由": "理由", + "确定": "确定", + "取消": "取消", + "1个月": "1个月", + "3个月": "3个月", + "6个月": "6个月", + "12个月": "12个月", + "请选择申请期限": "请选择申请期限", + "请填写申请理由": "请填写申请理由", + "申请成功,请等待审批": "申请成功,请等待审批", + "用户组": "用户组", + "添加时间": "添加时间", + "有效期": "有效期", + "状态": "状态", + "操作": "操作", + "权限详情": "权限详情", + "申请加入": "申请加入", + "续期": "续期", + "退出": "退出", + "确认退出用户组": "确认退出用户组", + "退出后,将无法再使用所赋予的权限。": "退出后,将无法再使用【{0}】所赋予的权限。", + "未加入": "未加入", + "正常": "正常", + "已过期": "已过期", + "无该项目用户组管理权限": "无该项目用户组管理权限", + "权限角色": "权限角色", + "删除": "删除", + "新建用户组": "新建用户组", + "关闭权限管理": "关闭权限管理", + "是否删除用户组": "是否删除用户组", + "确认关闭【】的权限管理?": "确认关闭【{0}】的权限管理?", + "关闭流水线权限管理,将执行如下操作:": "关闭{0}权限管理,将执行如下操作:", + "流水线": "流水线", + "流水线组": "流水线组", + "流水线模板": "流水线模板", + "关闭权限管理,将执行如下操作:": "关闭{0}权限管理,将执行如下操作:", + "将编辑者、执行者、查看者中的用户移除": "将编辑者、执行者、查看者中的用户移除", + "删除对应组内用户继承该组的权限": "删除对应组内用户继承该组的权限", + "删除对应组信息和组权限": "删除对应组信息和组权限", + "提交后,再次开启权限管理时对应组内用户将不能恢复,请谨慎操作!": "提交后,再次开启权限管理时对应组内用户将不能恢复,请谨慎操作!", + "不能恢复": "不能恢复", + "需要申请的权限": "需要申请的权限", + "关联的资源类型": "关联的资源类型", + "关联的资源实例": "关联的资源实例", + "没有操作权限": "没有操作权限", + "去申请": "去申请", + "请在权限管理页填写权限申请单,提交完成后再刷新该页面": "请在权限管理页填写权限申请单,提交完成后再刷新该页面", + "刷新页面": "刷新页面", + "关闭": "关闭", + "权限申请单已提交": "权限申请单已提交", + "尚未开启流水线组权限管理。开启后,可以给组内流水线批量添加编辑者、执行者或查看者权限": "尚未开启流水线组权限管理。开启后,可以给组内流水线批量添加编辑者、执行者或查看者权限", + "尚未开启此流水线权限管理功能": "尚未开启此流水线权限管理功能" + }, + "en-US": { + "开启权限管理": "Turn on permission management", + "用户组名": "User Group Name", + "授权期限": "Authorization Term", + "自定义": "Custom", + "天": "day", + "到期时间": "Expire at", + "理由": "Reason", + "确定": "Confirm", + "取消": "Cancel", + "1个月": "1 Month", + "3个月": "3 Month", + "6个月": "6 Month", + "12个月": "12 Month", + "请选择申请期限": "Please select the application period", + "请填写申请理由": "Please fill in the reason for application", + "申请成功,请等待审批": "Application successful, please wait for approval", + "用户组": "User Group", + "添加时间": "Add Time", + "有效期": "Validity", + "状态": "Status", + "操作": "Actions", + "权限详情": "Permission Details", + "申请加入": "Apply to join", + "续期": "Renewal", + "退出": "Exit", + "确认退出用户组": "Confirm exit user group", + "退出后,将无法再使用所赋予的权限。": "After logging out, you will no longer be able to use the permissions granted by {0}.", + "未加入": "Not Joined", + "正常": "Normal", + "已过期": "Expired", + "无该项目用户组管理权限": "No user group management permission for this project", + "权限角色": "Permission Roles", + "删除": "Delete", + "新建用户组": "Create new user group", + "关闭权限管理": "Close Permission Manage", + "确认关闭【】的权限管理?": "Are you sure to close 【{0}】 permission management?", + "关闭流水线权限管理,将执行如下操作:": "Turning off {0} permission management will perform the following actions:", + "流水线": "pipeline", + "流水线组": "pipeline group", + "流水线模板": "pipeline template", + "关闭权限管理,将执行如下操作:": "To close {0} permission management, the following operations will be performed:", + "将编辑者、执行者、查看者中的用户移除": "Remove users from editors, executors, and viewers", + "删除对应组内用户继承该组的权限": "Delete the permissions inherited by users in the corresponding group", + "删除对应组信息和组权限": "Delete the corresponding group information and group permissions", + "提交后,再次开启权限管理时对应组内用户将不能恢复,请谨慎操作!": "After submission, group members who have been removed from the corresponding permissions will not be able to recover them when permission management is reopened. Please proceed with caution !", + "不能恢复": "not be able to recover", + "需要申请的权限": "Operation", + "关联的资源类型": "Related Resource Type", + "关联的资源实例": "Related Resource", + "没有操作权限": "No operation permissions", + "去申请": "Apply", + "请在权限管理页填写权限申请单,提交完成后再刷新该页面": "Please fill in the permission application form on the permission management page, and refresh the page after submission", + "刷新页面": "Refresh", + "关闭": "Close", + "权限申请单已提交": "Permission application has been submitted", + "尚未开启流水线组权限管理。开启后,可以给组内流水线批量添加编辑者、执行者或查看者权限": "Pipeline group permission management is not yet enabled. Once enabled, it will be possible to add editors, executors, or viewers permissions in bulk to pipelines within the group.", + "尚未开启此流水线权限管理功能": "The permission management function of this pipeline has not been enabled" + } +} \ No newline at end of file From f07339fdcb5d2e6a551f62503b44683ebf6f62b0 Mon Sep 17 00:00:00 2001 From: lockiechen <33082528+lockiechen@users.noreply.github.com> Date: Mon, 27 Nov 2023 16:35:39 +0800 Subject: [PATCH 637/735] =?UTF-8?q?feat=EF=BC=9A=E5=AD=90=E6=B5=81?= =?UTF-8?q?=E6=B0=B4=E7=BA=BF=E8=B0=83=E7=94=A8=E8=A7=A6=E5=8F=91=E7=9A=84?= =?UTF-8?q?=E8=BF=90=E8=A1=8C=EF=BC=8C=E8=A7=A6=E5=8F=91=E6=9D=90=E6=96=99?= =?UTF-8?q?=E6=98=BE=E7=A4=BA=E7=88=B6=E6=B5=81=E6=B0=B4=E7=BA=BF=20issue?= =?UTF-8?q?=20#8682?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/ExecDetail/MaterialItem.vue | 37 ++++++++----------- .../src/components/ExecDetail/Summary.vue | 4 +- src/frontend/svg-sprites/pipeline/hash.svg | 1 + src/frontend/svg-sprites/pipeline/sharp.svg | 1 + 4 files changed, 21 insertions(+), 22 deletions(-) create mode 100644 src/frontend/svg-sprites/pipeline/hash.svg create mode 100644 src/frontend/svg-sprites/pipeline/sharp.svg diff --git a/src/frontend/devops-pipeline/src/components/ExecDetail/MaterialItem.vue b/src/frontend/devops-pipeline/src/components/ExecDetail/MaterialItem.vue index 29e6de0c04c..16fb67bba4b 100644 --- a/src/frontend/devops-pipeline/src/components/ExecDetail/MaterialItem.vue +++ b/src/frontend/devops-pipeline/src/components/ExecDetail/MaterialItem.vue @@ -3,7 +3,7 @@
- + {{ material.webhookSourceBranch }} @@ -86,7 +86,9 @@ noteId: 'webhook-note', issueIid: 'webhook-issue', reviewId: 'webhook-review', - webhookSourceTarget: 'branch' + webhookSourceTarget: 'branch', + parentPipelineName: 'pipeline', + parentBuildNum: 'sharp' } }, materialInfoKeys () { @@ -147,6 +149,11 @@ 'webhookAliasName', 'webhookCommitId' ] + case 'PARENT_PIPELINE': + return [ + 'parentPipelineName', + 'parentBuildNum' + ] default: return [ 'webhookAliasName', @@ -168,12 +175,13 @@ includeLink (field) { return [ 'newCommitId', - // 'reviewId', + 'reviewId', 'issueIid', 'noteId', 'mrIid', - 'tagName' - // 'webhookCommitId' + 'tagName', + 'webhookCommitId', + 'parentBuildNum' ].includes(field) && !this.isSVN }, formatField (field) { @@ -191,24 +199,11 @@ } }, getLink (field) { - // const webHookRepo = this.material?.webhookRepoUrl?.replace?.(/\.git$/, '') ?? '' switch (field) { case 'newCommitId': return this.material?.url ?? '' - // case 'reviewId': - // return `${webHookRepo}/reviews/${this.material[field]}` ?? '' - // case 'issueIid': - // return `${webHookRepo}/issues/${this.material[field]}` ?? '' - // case 'noteId': - // return `${webHookRepo}/merge_requests/${this.material.mrIid}/comments#note_${this.material[field]}` ?? '' - // case 'mrIid': - // return this.material?.mrUrl ?? `${webHookRepo}/merge_requests/${this.material[field]}` ?? '' - // case 'tagName': - // return `${webHookRepo}/-/tags/${this.material[field]}` ?? '' - // case 'webhookCommitId': - // return `${webHookRepo}/commit/${this.material[field]}` ?? '' default: - return '' + return this.material?.linkUrl ?? '' } } } diff --git a/src/frontend/devops-pipeline/src/components/ExecDetail/Summary.vue b/src/frontend/devops-pipeline/src/components/ExecDetail/Summary.vue index 59b2be40632..151b849a52e 100644 --- a/src/frontend/devops-pipeline/src/components/ExecDetail/Summary.vue +++ b/src/frontend/devops-pipeline/src/components/ExecDetail/Summary.vue @@ -306,7 +306,7 @@ display: grid; grid-gap: 20px; grid-auto-flow: column; - height: 38px; + height: 48px; grid-auto-columns: minmax(auto, max-content) 36px; .material-row-info-spans { display: grid; @@ -352,10 +352,12 @@ .material-span-tooltip-box { flex: 1; overflow: hidden; + font-size: 0; > .bk-tooltip-ref { width: 100%; .material-span { width: 100%; + font-size: 12px; } } } diff --git a/src/frontend/svg-sprites/pipeline/hash.svg b/src/frontend/svg-sprites/pipeline/hash.svg new file mode 100644 index 00000000000..c745a5c2023 --- /dev/null +++ b/src/frontend/svg-sprites/pipeline/hash.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/frontend/svg-sprites/pipeline/sharp.svg b/src/frontend/svg-sprites/pipeline/sharp.svg new file mode 100644 index 00000000000..26e0c14f6f8 --- /dev/null +++ b/src/frontend/svg-sprites/pipeline/sharp.svg @@ -0,0 +1 @@ + \ No newline at end of file From 200e844de833fb3d2b44c5c78a4de5a1a1b8bbbd Mon Sep 17 00:00:00 2001 From: vhwweng <1010382269@qq.com> Date: Mon, 27 Nov 2023 19:59:54 +0800 Subject: [PATCH 638/735] =?UTF-8?q?feat:=20=E6=94=AF=E6=8C=81=E4=B8=BA?= =?UTF-8?q?=E5=8D=95=E4=B8=AA=E6=B5=81=E6=B0=B4=E7=BA=BF=E6=A8=A1=E6=9D=BF?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E6=9D=83=E9=99=90=20#9574?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/components/template/empty-tips.vue | 51 +++++++++++++++++++ .../modules/pipelines/pipelinesTemplate.js | 3 ++ .../src/views/template/index.vue | 45 ++++++++++++++-- .../src/views/template/instance_create.vue | 4 -- src/frontend/locale/pipeline/en-US.json | 7 ++- src/frontend/locale/pipeline/zh-CN.json | 7 ++- 6 files changed, 108 insertions(+), 9 deletions(-) create mode 100644 src/frontend/devops-pipeline/src/components/template/empty-tips.vue diff --git a/src/frontend/devops-pipeline/src/components/template/empty-tips.vue b/src/frontend/devops-pipeline/src/components/template/empty-tips.vue new file mode 100644 index 00000000000..fe9ccfdbb12 --- /dev/null +++ b/src/frontend/devops-pipeline/src/components/template/empty-tips.vue @@ -0,0 +1,51 @@ + + + + + diff --git a/src/frontend/devops-pipeline/src/store/modules/pipelines/pipelinesTemplate.js b/src/frontend/devops-pipeline/src/store/modules/pipelines/pipelinesTemplate.js index a2732a5e2cc..e04e0bc41ad 100755 --- a/src/frontend/devops-pipeline/src/store/modules/pipelines/pipelinesTemplate.js +++ b/src/frontend/devops-pipeline/src/store/modules/pipelines/pipelinesTemplate.js @@ -120,6 +120,9 @@ const actions = { }, enableTemplatePermissionManage (_, projectId) { return ajax.get(`/${PROCESS_API_URL_PREFIX}/user/templates/projects/${projectId}/templates/enableTemplatePermissionManage`) + }, + getTemplateHasViewPermission (_, { projectId, templateId }) { + return ajax.get(`/${PROCESS_API_URL_PREFIX}/user/templates/projects/${projectId}/templates/${templateId}/hasViewPermission`) } } diff --git a/src/frontend/devops-pipeline/src/views/template/index.vue b/src/frontend/devops-pipeline/src/views/template/index.vue index ca1e5cb56c7..0ec1f1d00f6 100755 --- a/src/frontend/devops-pipeline/src/views/template/index.vue +++ b/src/frontend/devops-pipeline/src/views/template/index.vue @@ -7,21 +7,43 @@ :sub-system-name="'pipelines'">
- + + + + + {{ $t('template.accessDeny.apply') }} + + diff --git a/src/frontend/devops-pipeline/src/views/template/instance_create.vue b/src/frontend/devops-pipeline/src/views/template/instance_create.vue index 9623c397228..069603158f6 100755 --- a/src/frontend/devops-pipeline/src/views/template/instance_create.vue +++ b/src/frontend/devops-pipeline/src/views/template/instance_create.vue @@ -481,10 +481,6 @@ handelSavePipelineName (index) { this.$set(this.pipelineNameList[index], 'isEditing', false) this.$set(this.pipelineNameList[index], 'pipelineName', this.displayName) - this.$bkMessage({ - theme: 'success', - message: this.$t('saveSuc') - }) }, handelCancelSave (index) { this.$set(this.pipelineNameList[index], 'isEditing', false) diff --git a/src/frontend/locale/pipeline/en-US.json b/src/frontend/locale/pipeline/en-US.json index fae53d85814..87122a26fbc 100644 --- a/src/frontend/locale/pipeline/en-US.json +++ b/src/frontend/locale/pipeline/en-US.json @@ -417,7 +417,12 @@ "updateStatus": "Update Status", "updateDialogTitle": "Update Instance", "updateDialogContent": "The instances are being updated. An email will be notified After the update is completed", - "permissionSetting": "Permission Setting" + "permissionSetting": "Permission Setting", + "accessDeny": { + "title": "No access to this pipeline template", + "desc": "You do not have permission to view the pipeline template, please apply for permission", + "apply": "Apply" + } }, "newlist": { "exportJsonTip": "Through the import function, you can quickly create a pipeline, and you can also implement cross-project and cross-blue shield platform pipeline import.", diff --git a/src/frontend/locale/pipeline/zh-CN.json b/src/frontend/locale/pipeline/zh-CN.json index 14c4123624f..c8a09446909 100644 --- a/src/frontend/locale/pipeline/zh-CN.json +++ b/src/frontend/locale/pipeline/zh-CN.json @@ -418,7 +418,12 @@ "updateStatus": "刷新状态", "updateDialogTitle": "实例更新", "updateDialogContent": "实例正在更新中,更新完成后将会邮件通知更新结果。", - "permissionSetting": "权限设置" + "permissionSetting": "权限设置", + "accessDeny": { + "title": "无该流水线模板权限", + "desc": "你没有该模板查看权限,请申请权限", + "apply": "申请加入" + } }, "newlist": { "exportJsonTip": "通过导入功能,可以快速创建流水线,也可以实现跨项目、跨蓝盾平台的流水线导入。", From 1a7b9e648a5089222b2f02cd509da1455c272de8 Mon Sep 17 00:00:00 2001 From: vhwweng <1010382269@qq.com> Date: Mon, 27 Nov 2023 20:06:36 +0800 Subject: [PATCH 639/735] =?UTF-8?q?feat:=20=E6=94=AF=E6=8C=81=E4=B8=BA?= =?UTF-8?q?=E5=8D=95=E4=B8=AA=E6=B5=81=E6=B0=B4=E7=BA=BF=E6=A8=A1=E6=9D=BF?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E6=9D=83=E9=99=90=20#9574?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/frontend/devops-pipeline/src/views/template/index.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/frontend/devops-pipeline/src/views/template/index.vue b/src/frontend/devops-pipeline/src/views/template/index.vue index 0ec1f1d00f6..317e9461b27 100755 --- a/src/frontend/devops-pipeline/src/views/template/index.vue +++ b/src/frontend/devops-pipeline/src/views/template/index.vue @@ -108,7 +108,7 @@ handleTemplateNoPermission({ projectId, resourceCode: templateId, - actions: TEMPLATE_RESOURCE_ACTION.VIEW + action: TEMPLATE_RESOURCE_ACTION.VIEW }) } } From f7a60f559c7e62e80011d50b5a30f3abdf909d3a Mon Sep 17 00:00:00 2001 From: vhwweng <1010382269@qq.com> Date: Tue, 28 Nov 2023 09:42:55 +0800 Subject: [PATCH 640/735] =?UTF-8?q?feat:=20=E4=BB=A3=E7=A0=81=E5=BA=93?= =?UTF-8?q?=E4=BC=98=E5=8C=96=E4=B8=80=E6=9C=9F=E5=8A=9F=E8=83=BD=E7=82=B9?= =?UTF-8?q?=20#9347?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CodeLibDetail/ResetAuthDialog.vue | 2 +- .../src/components/CodeLibDetail/index.vue | 58 ++++++++++++-- .../CodeLibDetail/timeline-collapse.vue | 7 +- .../CodeLibDetail/trigger-event.vue | 41 ++-------- .../src/components/CodeLibDetail/trigger.vue | 79 +++++++++++++++---- .../src/components/CodeLibTable/index.vue | 2 +- .../src/components/UsingPipelinesDialog.vue | 4 +- .../devops-codelib/src/store/actions.js | 6 +- 8 files changed, 138 insertions(+), 61 deletions(-) diff --git a/src/frontend/devops-codelib/src/components/CodeLibDetail/ResetAuthDialog.vue b/src/frontend/devops-codelib/src/components/CodeLibDetail/ResetAuthDialog.vue index 1e695406c9b..bd6d9e3d4f1 100644 --- a/src/frontend/devops-codelib/src/components/CodeLibDetail/ResetAuthDialog.vue +++ b/src/frontend/devops-codelib/src/components/CodeLibDetail/ResetAuthDialog.vue @@ -540,7 +540,7 @@ theme: 'success', message: this.$t('codelib.重置成功') }) - this.fetchRepoDetail(this.newRepoInfo.repositoryHashId) + this.fetchRepoDetail(this.newRepoInfo.repositoryHashId, false) this.$emit('updateList') this.isShow = false }).catch((e) => { diff --git a/src/frontend/devops-codelib/src/components/CodeLibDetail/index.vue b/src/frontend/devops-codelib/src/components/CodeLibDetail/index.vue index 9bf1c00e4c6..255ecff1100 100644 --- a/src/frontend/devops-codelib/src/components/CodeLibDetail/index.vue +++ b/src/frontend/devops-codelib/src/components/CodeLibDetail/index.vue @@ -110,12 +110,15 @@ v-bind="panel" :key="index"> @@ -202,7 +205,9 @@ GITHUB: 'code-Github', CODE_TGIT: 'code-TGit', CODE_P4: 'code-P4' - } + }, + eventTypeList: [], + triggerTypeList: [] } }, computed: { @@ -222,6 +227,9 @@ }, userId () { return this.$route.query.userId || '' + }, + scmType () { + return this.$route.query.scmType || '' } }, watch: { @@ -245,6 +253,13 @@ if (!val) { this.pipelinesList = [] } + }, + scmType: { + handler () { + this.getEventTypeList() + this.getTriggerTypeList() + }, + immediate: true } }, created () { @@ -263,20 +278,51 @@ ...mapActions('codelib', [ 'deleteRepo', 'renameAliasName', - 'fetchUsingPipelinesList' + 'fetchUsingPipelinesList', + 'fetchEventType', + 'fetchTriggerType' ]), + + getEventTypeList () { + this.fetchEventType({ + scmType: this.scmType + }).then(res => { + this.eventTypeList = res.map(i => { + return { + ...i, + name: i.value + } + }) + }) + }, + getTriggerTypeList () { + this.fetchTriggerType({ + scmType: this.scmType + }).then(res => { + this.triggerTypeList = res.map(i => { + return { + ...i, + name: i.value + } + }) + }) + }, /** * 获取仓库详情 * @params {String} id 仓库id */ - async fetchRepoDetail (id) { - if (!this.userId) this.isLoading = true + async fetchRepoDetail (id, loading = true) { + this.isLoading = true await this.$ajax.get(`${REPOSITORY_API_URL_PREFIX}/user/repositories/${this.projectId}/${id}?repositoryType=ID`) .then((res) => { this.repoInfo = res }).finally(() => { - this.isLoading = false + if (this.userId) { + this.isLoading = loading + } else { + this.isLoading = false + } }) }, @@ -409,7 +455,7 @@ if (this.pipelinesDialogPayload.page === 1 && this.pipelinesList.length) { this.pipelinesDialogPayload.isShow = true } - this.pipelinesDialogPayload.hasLoadEnd = res.totalPages === this.pipelinesDialogPayload.page + this.pipelinesDialogPayload.hasLoadEnd = res.count === this.pipelinesList.length this.pipelinesDialogPayload.page += 1 }).finally(() => { this.pipelinesDialogPayload.isLoadingMore = false diff --git a/src/frontend/devops-codelib/src/components/CodeLibDetail/timeline-collapse.vue b/src/frontend/devops-codelib/src/components/CodeLibDetail/timeline-collapse.vue index 98889c72eb4..c4d8c061cf1 100644 --- a/src/frontend/devops-codelib/src/components/CodeLibDetail/timeline-collapse.vue +++ b/src/frontend/devops-codelib/src/components/CodeLibDetail/timeline-collapse.vue @@ -338,6 +338,10 @@ overflow: hidden; text-overflow: ellipsis; } + + .trigger-user { + color: #979BA5 !important; + } } .header-right { display: flex; @@ -357,9 +361,6 @@ transform: rotate(90deg); } } - .trigger-user { - color: #979BA5; - } .trigger-time { padding-left: 8px; color: #979BA5; diff --git a/src/frontend/devops-codelib/src/components/CodeLibDetail/trigger-event.vue b/src/frontend/devops-codelib/src/components/CodeLibDetail/trigger-event.vue index 99080807800..6eec023dbef 100644 --- a/src/frontend/devops-codelib/src/components/CodeLibDetail/trigger-event.vue +++ b/src/frontend/devops-codelib/src/components/CodeLibDetail/trigger-event.vue @@ -79,6 +79,14 @@ curRepo: { type: Object, default: () => {} + }, + triggerTypeList: { + type: Object, + default: () => {} + }, + eventTypeList: { + type: Object, + default: () => {} } }, data () { @@ -94,8 +102,6 @@ timelineMap: {}, searchValue: [], daterange: setDefaultDaterange(), - eventTypeList: [], - triggerTypeList: [], page: 1, pageSize: 20, catchRepoId: '', @@ -182,13 +188,6 @@ if (this.catchRepoId === this.repoId) { this.getListData() } - }, - scmType: { - handler (val) { - this.getEventTypeList() - this.getTriggerTypeList() - }, - immediate: true } }, created () { @@ -252,30 +251,6 @@ 'fetchTriggerType' ]), - getEventTypeList () { - this.fetchEventType({ - scmType: this.scmType - }).then(res => { - this.eventTypeList = res.map(i => { - return { - ...i, - name: i.value - } - }) - }) - }, - getTriggerTypeList () { - this.fetchTriggerType({ - scmType: this.scmType - }).then(res => { - this.triggerTypeList = res.map(i => { - return { - ...i, - name: i.value - } - }) - }) - }, handleScroll (event) { const target = event.target const bottomDis = target.scrollHeight - target.clientHeight - target.scrollTop diff --git a/src/frontend/devops-codelib/src/components/CodeLibDetail/trigger.vue b/src/frontend/devops-codelib/src/components/CodeLibDetail/trigger.vue index bb443d1c28d..64b9754575d 100644 --- a/src/frontend/devops-codelib/src/components/CodeLibDetail/trigger.vue +++ b/src/frontend/devops-codelib/src/components/CodeLibDetail/trigger.vue @@ -87,8 +87,7 @@ @@ -114,6 +113,26 @@ ref="atomDetailRef" :atom="curAtom"> + + + + @@ -132,6 +151,14 @@ curRepo: { type: Object, default: () => {} + }, + triggerTypeList: { + type: Object, + default: () => {} + }, + eventTypeList: { + type: Object, + default: () => {} } }, data () { @@ -139,8 +166,6 @@ isLoading: false, triggerData: [], searchValue: [], - triggerTypeList: [], - eventTypeList: [], pagination: { current: 1, count: 0, @@ -149,7 +174,15 @@ eventType: '', triggerType: '', curAtom: {}, - catchRepoId: '' + catchRepoId: '', + triggerConditionMd5: '', + showPipelineSideslider: false, + pipelineListPagination: { + current: 1, + count: 0, + limit: 20 + }, + pipelineList: [] } }, computed: { @@ -199,12 +232,19 @@ this.getTriggerData() } }, - scmType: { - handler (val) { - this.getEventTypeList() - this.getTriggerTypeList() - }, - immediate: true + showPipelineSideslider (val) { + if (val) { + this.fetchUsingPipelinesList({ + projectId: this.projectId, + repositoryHashId: this.repoId, + triggerConditionMd5: this.triggerConditionMd5, + page: this.pipelineListPagination.current, + pageSize: this.pipelineListPagination.limit + }).then(res => { + this.pipelineList = res.records + this.pipelineListPagination.count = res.count + }) + } } }, created () { @@ -213,8 +253,7 @@ }, methods: { ...mapActions('codelib', [ - 'fetchEventType', - 'fetchTriggerType', + 'fetchUsingPipelinesList', 'fetchTriggerData' ]), triggerRepo () { @@ -286,13 +325,19 @@ this.pagination.limit = limit this.getTriggerData() }, + handleShowPipelineList (row) { + this.triggerConditionMd5 = row.triggerConditionMd5 + this.showPipelineSideslider = true + }, handelShowDetail (row) { this.curAtom = row this.$refs.atomDetailRef.isShow = true }, - clearFilter () { this.searchValue = [] + }, + handleToPipeline (row) { + window.open(`/console/pipeline/${row.projectId}/${row.pipelineId}`, '__blank') } } } @@ -355,4 +400,10 @@ white-space: nowrap; text-overflow: ellipsis; } + .pipeline-list-sideslider { + .bk-sideslider-content { + padding: 20px; + height: calc(100vh - 60px) !important; + } + } diff --git a/src/frontend/devops-codelib/src/components/CodeLibTable/index.vue b/src/frontend/devops-codelib/src/components/CodeLibTable/index.vue index 7a04dfc05ed..f4f143160ef 100755 --- a/src/frontend/devops-codelib/src/components/CodeLibTable/index.vue +++ b/src/frontend/devops-codelib/src/components/CodeLibTable/index.vue @@ -513,7 +513,7 @@ if (this.pipelinesDialogPayload.page === 1 && this.pipelinesList.length) { this.pipelinesDialogPayload.isShow = true } - this.pipelinesDialogPayload.hasLoadEnd = res.totalPages === this.pipelinesDialogPayload.page + this.pipelinesDialogPayload.hasLoadEnd = res.count === this.pipelinesList.length this.pipelinesDialogPayload.page += 1 }).finally(() => { this.pipelinesDialogPayload.isLoadingMore = false diff --git a/src/frontend/devops-codelib/src/components/UsingPipelinesDialog.vue b/src/frontend/devops-codelib/src/components/UsingPipelinesDialog.vue index 7539a9edce2..225beb1df1e 100644 --- a/src/frontend/devops-codelib/src/components/UsingPipelinesDialog.vue +++ b/src/frontend/devops-codelib/src/components/UsingPipelinesDialog.vue @@ -29,7 +29,7 @@ :key="pipeline.pipelineId" > -
{{ pipeline.pipelineName }} + {{ pipeline.pipelineName }}