diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000000000000000000000000000000000000..48e1ea2b67055c5bdb5ea0f47769db1329318274 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,25 @@ +# This file is for unifying the coding style for different editors and IDEs +# editorconfig.org + +# top-most EditorConfig file +root = true + +# every file +[*] +charset = utf-8 +end_of_line = lf +indent_size = 4 +indent_style = space +insert_final_newline = true +trim_trailing_whitespace = true + +# 4 space indentation +[*.py] +indent_size = 4 + +# Tab indentation (no size specified) +[Makefile] +indent_style = tab + +[*.md] +trim_trailing_whitespace = false diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 0000000000000000000000000000000000000000..26571d3e72d90e8b10bd315390262a74d89c4763 --- /dev/null +++ b/.eslintignore @@ -0,0 +1,2 @@ +src/directives +src/utils/throttle.js \ No newline at end of file diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 0000000000000000000000000000000000000000..242918652770567d8bd14960787e36c93643f7d1 --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,19 @@ +module.exports = { + root: true, + env: { + node: true + }, + globals: { + $: true, + 'BMap': true + }, + extends: ['plugin:vue/vue3-essential'], + parserOptions: { + parser: 'babel-eslint', + ecmaVersion: 6, + sourceType: 'module' + }, + rules: { + 'vue/script-setup-uses-vars': 'off' + } +}; diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000000000000000000000000000000000000..ad545581dad60ee4b3b77fd5a4c57bda0f4caeec --- /dev/null +++ b/.gitattributes @@ -0,0 +1 @@ +src/styles/**/* linguist-vendored=false \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md new file mode 100644 index 0000000000000000000000000000000000000000..1ea9e6fb211467459a27c21a3b4e46425f223f0c --- /dev/null +++ b/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,14 @@ + + diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000000000000000000000000000000000000..f86ca903d1091d779f3dd68382d0448e568f6797 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,5 @@ + + + + + diff --git a/.gitignore b/.gitignore index dc99ae877bb12722f60c567114629f5e6775dff8..77304f33e1200902c7c3f49609df3e22e8477d5f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,25 +1,23 @@ +*.iml +.idea +.ipr +.iws +*.diff +*.patch +*.bak .DS_Store -node_modules -/dist - - -# local env files -.env.local -.env.*.local - -# Log files -npm-debug.log* -yarn-debug.log* -yarn-error.log* -pnpm-debug.log* +node_modules/ +node_modules2/ +.project +.settings +npm-debug.log +.*proj +.svn/ +*.swp +*.swo +*.log +examples/dist/ +yarn-error.log +test/unit/coverage +.vscode package-lock.json - -# Editor directories and files -.idea -.vscode/* -!.vscode/preview.yml -*.suo -*.ntvs* -*.njsproj -*.sln -*.sw? diff --git a/.npmignore b/.npmignore new file mode 100644 index 0000000000000000000000000000000000000000..b2ca5c8bc72fb8e7a8ee6d95a08d6aaaf8c2814a --- /dev/null +++ b/.npmignore @@ -0,0 +1,7 @@ +.* +*.md +*.yml +build/ +node_modules/ +test/ +gulpfile.js diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000000000000000000000000000000000000..0b9bab1e712f9402f768c1c270070795c220a310 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,9 @@ +sudo: required +language: node_js +node_js: + - '8' +script: + - 'npm run test' +before_script: + - 'sudo chown root /opt/google/chrome/chrome-sandbox' + - 'sudo chmod 4755 /opt/google/chrome/chrome-sandbox' diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..817346d2ec7182fdd1edf7558d40f4ae799aff86 --- /dev/null +++ b/LICENSE @@ -0,0 +1,198 @@ +The MIT License (MIT) + +Copyright (c) 2016-present ViewDesign, https://www.iviewui.com/ + +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: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +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. + +MIT LICENSE + +Copyright (c) 2015-present Alipay.com, https://www.alipay.com/ + +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: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +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. + +The MIT License (MIT) + +Copyright (c) 2016 ElemeFE + +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: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +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. + +The MIT License (MIT) + +Copyright (c) 2015 Koala + +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: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +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. + +The MIT License (MIT) + +Copyright (c) 2016 vue-beauty + +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: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +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. + +MIT License + +Copyright (c) 2016-present, Airyland + +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: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +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. + +The MIT License (MIT) + +Copyright (c) 2016 Drifty (http://drifty.com/) + +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: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +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. + +The MIT License (MIT) + +Copyright (c) 2015 greyby + +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: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +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. + +The MIT License (MIT) + +Copyright (c) 2016-present TalkingData + +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: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +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. diff --git a/README-CN.md b/README-CN.md new file mode 100644 index 0000000000000000000000000000000000000000..95ec2e3e507884b99985f5fde3660eabdbd0bfb8 --- /dev/null +++ b/README-CN.md @@ -0,0 +1,122 @@ +

+ + + +

+ +

+View UI Plus +

基于 Vue.js 3 的企业级 UI 组件库和中后台系统解决方案,为数万开发者服务。 +

+ + +[![View UI Plus](https://img.shields.io/npm/v/view-ui-plus.svg?style=flat-square)](https://www.npmjs.org/package/view-ui-plus) +[![NPM downloads](http://img.shields.io/npm/dm/view-ui-plus.svg?style=flat-square)](https://npmjs.org/package/view-ui-plus) +[![NPM downloads](https://img.shields.io/npm/dt/view-ui-plus.svg?style=flat-square)](https://npmjs.org/package/view-ui-plus) +![JS gzip size](http://img.badgesize.io/https://unpkg.com/view-ui-plus/dist/viewuiplus.min.js?compression=gzip&label=gzip%20size:%20JS&style=flat-square) +![CSS gzip size](http://img.badgesize.io/https://unpkg.com/view-ui-plus/dist/styles/viewuiplus.css?compression=gzip&label=gzip%20size:%20CSS&style=flat-square) +[![Join the chat at https://gitter.im/iview/iview](https://img.shields.io/badge/chat-on_gitter-30b392.svg?style=flat-square)](https://gitter.im/iview/iview?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) + +## 文档 + +[https://www.iviewui.com](https://www.iviewui.com) + +## 在 InsCode 中在线体验 +[https://inscode.csdn.net/@aresn/ViewDesign](https://inscode.csdn.net/@aresn/ViewDesign) + +## 特性 + +- 丰富的组件和功能,满足绝大部分网站场景 +- 提供开箱即用的 [Admin 系统](https://iviewui.com/admin-plus) 和 快速增删改查 [表格组件](https://iviewui.com/icrud),极大程度节省开发成本 +- 友好的 API ,自由灵活地使用空间 +- 细致、漂亮的 UI +- 事无巨细的文档 +- 可自定义主题 + +## 安装 + +我们推进您使用官方工具快速开始: + +- [View UI Plus Project (Based on Vue CLI)](https://github.com/view-design/view-ui-project-vuecli) +- [View UI Plus Project (Based on Vite)](https://github.com/view-design/view-ui-project-vite) +- [View UI Plus Project (Based on TypeScript)](https://github.com/view-design/view-ui-project-ts) +- [View UI Plus Project (Based on Nuxt)](https://github.com/view-design/view-ui-project-nuxt) + +### 安装 View UI Plus + +使用 npm: +``` +npm install view-ui-plus --save +``` + +或使用 ` + +``` + +您可以[在官网文档](https://www.iviewui.com/view-ui-plus/guide/install)查看更多详细说明。 + +## 示例 + +### Options API: + +```vue + + +``` + +### Composition API: + +```vue + + +``` + +### TypeScript: + +```vue + + +``` + +使用 `import` 导入 CSS: + +```js +import 'view-ui-plus/dist/styles/viewuiplus.css' +``` + +## 社区 + +您可以免费加入到 [ViewDesign 官方社区](https://community.gitcode.com/viewdesign) 了解更多 Vue 的内容。 + +## 主要贡献者 +|Name|Avatar|Name|Avatar|Name|Avatar| +|---|---|---|---|---|---| +|[Aresn](https://github.com/icarusion) | ![](https://avatars3.githubusercontent.com/u/5370542?v=3&s=60) |[jingsam](https://github.com/jingsam) | ![](https://avatars3.githubusercontent.com/u/1522494?v=3&s=60) | [rijn](https://github.com/rijn) | ![](https://avatars2.githubusercontent.com/u/6976367?v=3&s=60) | +|[lcx960324](https://github.com/lcx960324) | ![](https://avatars3.githubusercontent.com/u/9768245?v=3&s=60) |[GITleonine1989](https://github.com/GITleonine1989) | ![](https://avatars1.githubusercontent.com/u/7582490?v=3&s=60) |[huixisheng](https://github.com/huixisheng) | ![](https://avatars1.githubusercontent.com/u/1518967?v=3&s=60) | +|[Sergio Crisostomo](https://github.com/SergioCrisostomo) | ![](https://avatars3.githubusercontent.com/u/5614559?v=3&s=60) | [lison16](https://github.com/lison16) | ![](https://avatars3.githubusercontent.com/u/20942571?v=3&s=60) | [Xotic750](https://github.com/Xotic750) | ![](https://avatars3.githubusercontent.com/u/216041?v=3&s=60) | +[huanghong1125](https://github.com/huanghong1125) | ![](https://avatars3.githubusercontent.com/u/12794817?v=3&s=60) | [yangdan8](https://github.com/yangdan8) | ![](https://avatars2.githubusercontent.com/u/16515026?v=3&s=60) | [likuner](https://github.com/likuner)| ![](https://avatars3.githubusercontent.com/u/18632318?v=3&s=60) | + + +## License +[MIT](http://opensource.org/licenses/MIT) + +Copyright (c) 2016-present, ViewDesign diff --git a/README.md b/README.md new file mode 100644 index 0000000000000000000000000000000000000000..0a9f898c4f85448890cbc1eb7791c62294d874bb --- /dev/null +++ b/README.md @@ -0,0 +1,95 @@ +

+ + + +

+ +

+View UI Plus +

An enterprise-level UI component library and front-end solution based on Vue.js 3

+ + +[![View UI Plus](https://img.shields.io/npm/v/view-ui-plus.svg?style=flat-square)](https://www.npmjs.org/package/view-ui-plus) +[![NPM downloads](http://img.shields.io/npm/dm/view-ui-plus.svg?style=flat-square)](https://npmjs.org/package/view-ui-plus) +[![NPM downloads](https://img.shields.io/npm/dt/view-ui-plus.svg?style=flat-square)](https://npmjs.org/package/view-ui-plus) +![JS gzip size](http://img.badgesize.io/https://unpkg.com/view-ui-plus/dist/viewuiplus.min.js?compression=gzip&label=gzip%20size:%20JS&style=flat-square) +![CSS gzip size](http://img.badgesize.io/https://unpkg.com/view-ui-plus/dist/styles/viewuiplus.css?compression=gzip&label=gzip%20size:%20CSS&style=flat-square) +[![Join the chat at https://gitter.im/iview/iview](https://img.shields.io/badge/chat-on_gitter-30b392.svg?style=flat-square)](https://gitter.im/iview/iview?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) + +## Docs + +[https://www.iviewui.com](https://www.iviewui.com) + +## Experience it online in InsCode +[https://inscode.csdn.net/@aresn/ViewDesign](https://inscode.csdn.net/@aresn/ViewDesign) + +## Features + +- Dozens of useful and beautiful components. +- Friendly API. It's made for people with any skills level. +- Extensive documentations and demos. +- It is quite awesome. + +## Install + +We provide starter kit for you. +- [View UI Plus Project (Based on Vue CLI)](https://github.com/view-design/view-ui-project-vuecli) +- [View UI Plus Project (Based on Vite)](https://github.com/view-design/view-ui-project-vite) +- [View UI Plus Project (Based on TypeScript)](https://github.com/view-design/view-ui-project-ts) +- [View UI Plus Project (Based on Nuxt)](https://github.com/view-design/view-ui-project-nuxt) + +### Install View UI Plus + +Using npm: +``` +npm install view-ui-plus --save +``` + +Using a script tag for global use: + +```html + + +``` + +You can find more info [on the website](https://www.iviewui.com/view-ui-plus/guide/install). + +## Usage + +```vue + + +``` + +Using css via `import`: + +```js +import 'view-ui-plus/dist/styles/viewuiplus.css' +``` + +## Community + +If you want to contribute us or in case you are haiving any doubt. + +**Questions:** Find other users at the [Gitter chat](https://gitter.im/iview/iview) or post on [StackOverflow using `[iview-ui]` tag](https://stackoverflow.com/questions/tagged/iview-ui) +**Bugs:** [File a issue here](https://www.iviewui.com/new-issue) - please provide a example so we can help you better +**Contribute:** Contact us in [Gitter chat](https://gitter.im/iview/iview), WeChat or via mail to `admin@aresn.com`. PRs welcome! + +## Major Contributors +|Name|Avatar|Name|Avatar|Name|Avatar| +|---|---|---|---|---|---| +|[Aresn](https://github.com/icarusion) | ![](https://avatars3.githubusercontent.com/u/5370542?v=3&s=60) |[jingsam](https://github.com/jingsam) | ![](https://avatars3.githubusercontent.com/u/1522494?v=3&s=60) | [rijn](https://github.com/rijn) | ![](https://avatars2.githubusercontent.com/u/6976367?v=3&s=60) | +|[lcx960324](https://github.com/lcx960324) | ![](https://avatars3.githubusercontent.com/u/9768245?v=3&s=60) |[GITleonine1989](https://github.com/GITleonine1989) | ![](https://avatars1.githubusercontent.com/u/7582490?v=3&s=60) |[huixisheng](https://github.com/huixisheng) | ![](https://avatars1.githubusercontent.com/u/1518967?v=3&s=60) | +|[Sergio Crisostomo](https://github.com/SergioCrisostomo) | ![](https://avatars3.githubusercontent.com/u/5614559?v=3&s=60) | [lison16](https://github.com/lison16) | ![](https://avatars3.githubusercontent.com/u/20942571?v=3&s=60) | [Xotic750](https://github.com/Xotic750) | ![](https://avatars3.githubusercontent.com/u/216041?v=3&s=60) | +[huanghong1125](https://github.com/huanghong1125) | ![](https://avatars3.githubusercontent.com/u/12794817?v=3&s=60) | [yangdan8](https://github.com/yangdan8) | ![](https://avatars2.githubusercontent.com/u/16515026?v=3&s=60) | [likuner](https://github.com/likuner)| ![](https://avatars3.githubusercontent.com/u/18632318?v=3&s=60) | + + +## License +[MIT](http://opensource.org/licenses/MIT) + +Copyright (c) 2016-present, ViewDesign diff --git a/assets/iview.png b/assets/iview.png new file mode 100644 index 0000000000000000000000000000000000000000..c8134b7dadc59f221747f374f7505aecd02cf251 Binary files /dev/null and b/assets/iview.png differ diff --git a/assets/iview2.png b/assets/iview2.png new file mode 100644 index 0000000000000000000000000000000000000000..b664280c88a38ff19bff9f911b9e83cb6507d784 Binary files /dev/null and b/assets/iview2.png differ diff --git a/assets/logo.png b/assets/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..f54d068c2bafdd8507af6c65114d968096e95ace Binary files /dev/null and b/assets/logo.png differ diff --git a/assets/logo.svg b/assets/logo.svg new file mode 100644 index 0000000000000000000000000000000000000000..3a61842b21d17a4307df2aae3f5a50f4e215fbdb --- /dev/null +++ b/assets/logo.svg @@ -0,0 +1,15 @@ + + + + + + + + + + diff --git a/assets/pay.png b/assets/pay.png new file mode 100644 index 0000000000000000000000000000000000000000..768b90738dc87f4bbcddd42f02dd7dd02dfa7e38 Binary files /dev/null and b/assets/pay.png differ diff --git a/build/build-style.js b/build/build-style.js new file mode 100644 index 0000000000000000000000000000000000000000..3629e77ae63514b91bd9ba58991eca254b67f6ad --- /dev/null +++ b/build/build-style.js @@ -0,0 +1,30 @@ +const gulp = require('gulp'); +const cleanCSS = require('gulp-clean-css'); +const less = require('gulp-less'); +const rename = require('gulp-rename'); +const autoprefixer = require('gulp-autoprefixer'); + +// 编译less +gulp.task('css', function () { + return gulp.src('../src/styles/index.less') + .pipe(less({ + javascriptEnabled: true + })) + .pipe( + autoprefixer({ + overrideBrowserslist: ['last 2 versions', 'ie > 8'] + }) + ) + .pipe(cleanCSS()) + .pipe(rename('viewuiplus.css')) + .pipe(gulp.dest('../dist/styles')); +}); + +// 拷贝字体文件 +gulp.task('fonts', function () { + return gulp.src('../src/styles/common/iconfont/fonts/*.*') + .pipe(gulp.dest('../dist/styles/fonts')); +}); + +gulp.task('default', gulp.parallel('css', 'fonts')); + diff --git a/build/locale.js b/build/locale.js new file mode 100644 index 0000000000000000000000000000000000000000..7c81e675052c8845dbd800cdfdc92dab0d49d9ba --- /dev/null +++ b/build/locale.js @@ -0,0 +1,8 @@ +const readDir = require('fs').readdirSync; +const files = readDir('./src/locale/lang'); +const entry = {}; +files.forEach(file => { + const name = file.split('.')[0]; + entry[name] = './src/locale/lang/' + file; +}); +module.exports = entry; diff --git a/build/vite.lang.config.js b/build/vite.lang.config.js new file mode 100644 index 0000000000000000000000000000000000000000..624a82bc8e072c38d2a9743a44736bb7124c77c5 --- /dev/null +++ b/build/vite.lang.config.js @@ -0,0 +1,39 @@ +import { defineConfig } from 'vite'; +const path = require('path'); + +const readDir = require('fs').readdirSync; + +const files = readDir('./src/locale/lang'); +const entry = {}; +files.forEach(file => { + const name = file.split('.')[0]; + entry[name] = `./src/locale/lang/${file}`; +}); +// https://vitejs.dev/config/ +const config = defineConfig({ + build: { + target: 'es2015', + outDir: path.resolve(__dirname, '../dist/locale'), + rollupOptions: { + input: entry, + context: 'globalThis', + preserveEntrySignatures: 'strict', + output: { + format: 'es', + exports: 'default', + sourcemap: false, + entryFileNames: '[name].js', + chunkFileNames: '[name].js', + assetFileNames: '[name].[ext]', + namespaceToStringTag: true, + inlineDynamicImports: false, + manualChunks: undefined + } + } + }, + resolve: { + extensions: ['.mjs', '.js', '.ts', '.jsx', '.tsx', '.json', '.vue'] + } +}); + +export default config; diff --git a/dist/locale/ar-EG.js b/dist/locale/ar-EG.js new file mode 100644 index 0000000000000000000000000000000000000000..f9cc6a5e41c120bbebf48753b7361be45eb9141f --- /dev/null +++ b/dist/locale/ar-EG.js @@ -0,0 +1 @@ +import{s as e}from"./lang.js";const t={i:{locale:"ar-EG",select:{placeholder:"\u0625\u062E\u062A\u064A\u0627\u0631",noMatch:"\u0644\u0627 \u064A\u0648\u062C\u062F \u062A\u0637\u0627\u0628\u0642 \u0641\u064A \u0627\u0644\u0628\u064A\u0627\u0646\u0627\u062A",loading:"\u062A\u062D\u0645\u064A\u0644"},table:{noDataText:"\u0644\u0627 \u062A\u0648\u062C\u062F \u0628\u064A\u0627\u0646\u0627\u062A",noFilteredDataText:"\u0644\u0627 \u062A\u0648\u062C\u062F \u0628\u064A\u0627\u0646\u0627\u062A",confirmFilter:"\u062A\u0623\u0643\u064A\u062F",resetFilter:"\u0625\u0639\u0627\u062F\u0629 \u062A\u0639\u064A\u064A\u0646",clearFilter:"\u0627\u0644\u0643\u0644",sumText:"\u0627\u0644\u0645\u062C\u0645\u0648\u0639"},datepicker:{selectDate:"\u0625\u062E\u062A\u0631 \u0627\u0644\u062A\u0627\u0631\u064A\u062E",selectTime:"\u0625\u062E\u062A\u0631 \u0627\u0644\u0648\u0642\u062A",startTime:"\u0648\u0642\u062A \u0627\u0644\u0628\u062F\u0627\u064A\u0629",endTime:"\u0648\u0642\u062A \u0627\u0644\u0646\u0647\u0627\u064A\u0629",clear:"\u0625\u0632\u0627\u0644\u0629",ok:"\u062D\u0633\u0646\u0627",datePanelLabel:"[mmmm] [yyyy]",month:"\u0634\u0647\u0631",month1:"\u064A\u0646\u0627\u064A\u0631",month2:"\u0641\u0628\u0631\u0627\u064A\u0631",month3:"\u0645\u0627\u0631\u0633",month4:"\u0623\u0628\u0631\u064A\u0644",month5:"\u0645\u0627\u064A\u0648",month6:"\u064A\u0648\u0646\u064A\u0648",month7:"\u064A\u0648\u0644\u064A\u0648",month8:"\u0623\u063A\u0633\u0637\u0633",month9:"\u0633\u0628\u062A\u0645\u0628\u0631",month10:"\u0627\u0643\u062A\u0648\u0628\u0631",month11:"\u0646\u0648\u0641\u0645\u0628\u0631",month12:"\u062F\u064A\u0633\u0645\u0628\u0631",year:"\u0633\u0646\u0629",weekStartDay:"0",weeks:{sun:"\u0623\u062D\u062F",mon:"\u0625\u062B\u0646\u064A\u0646",tue:"\u062B\u0644\u0627\u062B\u0627\u0621",wed:"\u0623\u0631\u0628\u0639\u0627\u0621",thu:"\u062E\u0645\u064A\u0633",fri:"\u062C\u0645\u0639\u0629",sat:"\u0633\u0628\u062A"},months:{m1:"\u064A\u0646\u0627\u064A\u0631",m2:"\u0641\u0628\u0631\u0627\u064A\u0631",m3:"\u0645\u0627\u0631\u0633",m4:"\u0623\u0628\u0631\u064A\u0644",m5:"\u0645\u0627\u064A\u0648",m6:"\u064A\u0648\u0646\u064A\u0648",m7:"\u064A\u0648\u0644\u064A\u0648",m8:"\u0623\u063A\u0633\u0637\u0633",m9:"\u0633\u0628\u062A\u0645\u0628\u0631",m10:"\u0627\u0643\u062A\u0648\u0628\u0631",m11:"\u0646\u0648\u0641\u0645\u0628\u0631",m12:"\u062F\u064A\u0633\u0645\u0628\u0631"}},transfer:{titles:{source:"\u0627\u0644\u0645\u0635\u062F\u0631",target:"\u0627\u0644\u0647\u062F\u0641"},filterPlaceholder:"\u0625\u0628\u062D\u062B \u0647\u0646\u0627",notFoundText:"\u0644\u0627 \u064A\u0648\u062C\u062F"},modal:{okText:"\u062D\u0633\u0646\u0627",cancelText:"\u0625\u0644\u063A\u0627\u0621"},poptip:{okText:"\u062D\u0633\u0646\u0627",cancelText:"\u0625\u0644\u063A\u0627\u0621"},page:{prev:"\u0627\u0644\u0635\u0641\u062D\u0629 \u0627\u0644\u0633\u0627\u0628\u0642\u0629",next:"\u0627\u0644\u0635\u0641\u062D\u0629 \u0627\u0644\u062A\u0627\u0644\u064A\u0629",total:"\u0627\u0644\u0645\u062C\u0645\u0648\u0639",item:"\u0639\u0646\u0635\u0631",items:"\u0639\u0646\u0627\u0635\u0631",prev5:"\u0627\u0644\u062E\u0645\u0633 \u0635\u0641\u062D\u0627\u062A \u0627\u0644\u0633\u0627\u0628\u0642\u0629",next5:"\u0627\u0644\u062E\u0645\u0633 \u0635\u0641\u062D\u0627\u062A \u0627\u0644\u062A\u0627\u0644\u064A\u0629",page:"/\u0635\u0641\u062D\u0629",goto:"\u0627\u0644\u0630\u0647\u0627\u0628 \u0625\u0644\u0649",p:""},rate:{star:"\u0646\u062C\u0645\u0629",stars:"\u0646\u062C\u0648\u0645"},time:{before:" \u0645\u0646\u0630",after:" \u0628\u0639\u062F",just:"\u0627\u0644\u0622\u0646",seconds:" \u062B\u0648\u0627\u0646\u064A",minutes:" \u062F\u0642\u0627\u0626\u0642",hours:" \u0633\u0627\u0639\u0627\u062A",days:" \u0623\u064A\u0627\u0645"},tree:{emptyText:"\u0644\u0627 \u062A\u0648\u062C\u062F \u0628\u064A\u0627\u0646\u0627\u062A"}}};e(t);export{t as default}; diff --git a/dist/locale/ar-SA.js b/dist/locale/ar-SA.js new file mode 100644 index 0000000000000000000000000000000000000000..8adb5689636e8241ff65080f93e9342249acbd1e --- /dev/null +++ b/dist/locale/ar-SA.js @@ -0,0 +1 @@ +import{s as e}from"./lang.js";const t={i:{locale:"ar-SA",select:{placeholder:"\u0625\u062E\u062A\u064A\u0627\u0631",noMatch:"\u0644\u0627 \u064A\u0648\u062C\u062F \u062A\u0637\u0627\u0628\u0642 \u0641\u064A \u0627\u0644\u0628\u064A\u0627\u0646\u0627\u062A",loading:"\u062A\u062D\u0645\u064A\u0644"},table:{noDataText:"\u0644\u0627 \u062A\u0648\u062C\u062F \u0628\u064A\u0627\u0646\u0627\u062A",noFilteredDataText:"\u0644\u0627 \u062A\u0648\u062C\u062F \u0628\u064A\u0627\u0646\u0627\u062A",confirmFilter:"\u062A\u0623\u0643\u064A\u062F",resetFilter:"\u0625\u0639\u0627\u062F\u0629 \u062A\u0639\u064A\u064A\u0646",clearFilter:"\u0627\u0644\u0643\u0644",sumText:"\u0627\u0644\u0645\u062C\u0645\u0648\u0639"},datepicker:{selectDate:"\u0625\u062E\u062A\u0631 \u0627\u0644\u062A\u0627\u0631\u064A\u062E",selectTime:"\u0625\u062E\u062A\u0631 \u0627\u0644\u0648\u0642\u062A",startTime:"\u0648\u0642\u062A \u0627\u0644\u0628\u062F\u0627\u064A\u0629",endTime:"\u0648\u0642\u062A \u0627\u0644\u0646\u0647\u0627\u064A\u0629",clear:"\u0625\u0632\u0627\u0644\u0629",ok:"\u062D\u0633\u0646\u0627",datePanelLabel:"[mmmm] [yyyy]",month:"\u0634\u0647\u0631",month1:"\u064A\u0646\u0627\u064A\u0631",month2:"\u0641\u0628\u0631\u0627\u064A\u0631",month3:"\u0645\u0627\u0631\u0633",month4:"\u0623\u0628\u0631\u064A\u0644",month5:"\u0645\u0627\u064A\u0648",month6:"\u064A\u0648\u0646\u064A\u0648",month7:"\u064A\u0648\u0644\u064A\u0648",month8:"\u0623\u063A\u0633\u0637\u0633",month9:"\u0633\u0628\u062A\u0645\u0628\u0631",month10:"\u0627\u0643\u062A\u0648\u0628\u0631",month11:"\u0646\u0648\u0641\u0645\u0628\u0631",month12:"\u062F\u064A\u0633\u0645\u0628\u0631",year:"\u0633\u0646\u0629",weekStartDay:"0",weeks:{sun:"\u0623\u062D\u062F",mon:"\u0625\u062B\u0646\u064A\u0646",tue:"\u062B\u0644\u0627\u062B\u0627\u0621",wed:"\u0623\u0631\u0628\u0639\u0627\u0621",thu:"\u062E\u0645\u064A\u0633",fri:"\u062C\u0645\u0639\u0629",sat:"\u0633\u0628\u062A"},months:{m1:"\u064A\u0646\u0627\u064A\u0631",m2:"\u0641\u0628\u0631\u0627\u064A\u0631",m3:"\u0645\u0627\u0631\u0633",m4:"\u0623\u0628\u0631\u064A\u0644",m5:"\u0645\u0627\u064A\u0648",m6:"\u064A\u0648\u0646\u064A\u0648",m7:"\u064A\u0648\u0644\u064A\u0648",m8:"\u0623\u063A\u0633\u0637\u0633",m9:"\u0633\u0628\u062A\u0645\u0628\u0631",m10:"\u0627\u0643\u062A\u0648\u0628\u0631",m11:"\u0646\u0648\u0641\u0645\u0628\u0631",m12:"\u062F\u064A\u0633\u0645\u0628\u0631"}},transfer:{titles:{source:"\u0627\u0644\u0645\u0635\u062F\u0631",target:"\u0627\u0644\u0647\u062F\u0641"},filterPlaceholder:"\u0625\u0628\u062D\u062B \u0647\u0646\u0627",notFoundText:"\u0644\u0627 \u064A\u0648\u062C\u062F"},modal:{okText:"\u062D\u0633\u0646\u0627",cancelText:"\u0625\u0644\u063A\u0627\u0621"},poptip:{okText:"\u062D\u0633\u0646\u0627",cancelText:"\u0625\u0644\u063A\u0627\u0621"},page:{prev:"\u0627\u0644\u0635\u0641\u062D\u0629 \u0627\u0644\u0633\u0627\u0628\u0642\u0629",next:"\u0627\u0644\u0635\u0641\u062D\u0629 \u0627\u0644\u062A\u0627\u0644\u064A\u0629",total:"\u0627\u0644\u0645\u062C\u0645\u0648\u0639",item:"\u0639\u0646\u0635\u0631",items:"\u0639\u0646\u0627\u0635\u0631",prev5:"\u0627\u0644\u062E\u0645\u0633 \u0635\u0641\u062D\u0627\u062A \u0627\u0644\u0633\u0627\u0628\u0642\u0629",next5:"\u0627\u0644\u062E\u0645\u0633 \u0635\u0641\u062D\u0627\u062A \u0627\u0644\u062A\u0627\u0644\u064A\u0629",page:"/\u0635\u0641\u062D\u0629",goto:"\u0627\u0644\u0630\u0647\u0627\u0628 \u0625\u0644\u0649",p:""},rate:{star:"\u0646\u062C\u0645\u0629",stars:"\u0646\u062C\u0648\u0645"},time:{before:" \u0645\u0646\u0630",after:" \u0628\u0639\u062F",just:"\u0627\u0644\u0622\u0646",seconds:" \u062B\u0648\u0627\u0646\u064A",minutes:" \u062F\u0642\u0627\u0626\u0642",hours:" \u0633\u0627\u0639\u0627\u062A",days:" \u0623\u064A\u0627\u0645"},tree:{emptyText:"\u0644\u0627 \u062A\u0648\u062C\u062F \u0628\u064A\u0627\u0646\u0627\u062A"}}};e(t);export{t as default}; diff --git a/dist/locale/cs-CZ.js b/dist/locale/cs-CZ.js new file mode 100644 index 0000000000000000000000000000000000000000..b43189428f2cae71214368d30cda7b393e0c57bf --- /dev/null +++ b/dist/locale/cs-CZ.js @@ -0,0 +1 @@ +import{s as e}from"./lang.js";const t={i:{locale:"cs-CZ",select:{placeholder:"Vybrat",noMatch:"Nenalezeny \u017E\xE1dn\xE9 polo\u017Eky",loading:"Nahr\xE1v\xE1m"},table:{noDataText:"\u017D\xE1dn\xE1 data",noFilteredDataText:"Nenalezeny \u017E\xE1dn\xE9 polo\u017Eky",confirmFilter:"Potvrdit",resetFilter:"Reset",clearFilter:"V\u0161e",sumText:"Sum"},datepicker:{selectDate:"Vybrat datum",selectTime:"Vybrat \u010Das",startTime:"Za\u010D\xE1tek",endTime:"Konec",clear:"Vymazat",ok:"OK",datePanelLabel:"[mmmm] [yyyy]",month:"M\u011Bs\xEDc",month1:"Leden",month2:"\xDAnor",month3:"B\u0159ezen",month4:"Duben",month5:"Kv\u011Bten",month6:"\u010Cerven",month7:"\u010Cervenec",month8:"Srpen",month9:"Z\xE1\u0159\xED",month10:"\u0158\xEDjen",month11:"Listopad",month12:"Prosinec",year:"Rok",weekStartDay:"1",weeks:{sun:"Ne",mon:"Po",tue:"\xDAt",wed:"St",thu:"\u010Ct",fri:"P\xE1",sat:"So"},months:{m1:"Led",m2:"\xDAno",m3:"B\u0159e",m4:"Dub",m5:"Kv\u011B",m6:"\u010Cer",m7:"\u010Cnc",m8:"Srp",m9:"Z\xE1\u0159",m10:"\u0158\xEDj",m11:"Lis",m12:"Pro"}},transfer:{titles:{source:"Zdroj",target:"C\xEDl"},filterPlaceholder:"Hledat",notFoundText:"Nenalezeno"},modal:{okText:"OK",cancelText:"Zru\u0161it"},poptip:{okText:"OK",cancelText:"Zru\u0161it"},page:{prev:"N\xE1sleduj\xEDc\xED",next:"P\u0159edchoz\xED",total:"Celkem",item:"polo\u017Eka",items:"polo\u017Eek",prev5:"P\u0159edchoz\xEDch 5 str\xE1nek",next5:"N\xE1sleduj\xEDc\xEDch 5 str\xE1nek",page:"na str\xE1nku",goto:"J\xEDt na",p:""},rate:{star:"hv\u011Bzda",stars:"hv\u011Bzdy"},tree:{emptyText:"\u017D\xE1dn\xE1 data"}}};e(t);export{t as default}; diff --git a/dist/locale/da-DK.js b/dist/locale/da-DK.js new file mode 100644 index 0000000000000000000000000000000000000000..dd5d3b136c8eee1d2bca6f7fd98c06564383a0a5 --- /dev/null +++ b/dist/locale/da-DK.js @@ -0,0 +1 @@ +import{s as e}from"./lang.js";const t={i:{locale:"da-DK",select:{placeholder:"V\xE6lg",noMatch:"Ingen resultater fundet",loading:"Indl\xE6ser"},table:{noDataText:"Ingen resultater fundet",noFilteredDataText:"No filter data",confirmFilter:"Bekr\xE6ft",resetFilter:"Nulstil",clearFilter:"Alle",sumText:"Sum"},datepicker:{selectDate:"V\xE6lg dato",selectTime:"V\xE6lg tid",startTime:"Starttid",endTime:"Sluttid",clear:"Ryd",ok:"OK",datePanelLabel:"[mmmm] [yyyy]",month:"M\xE5ned",month1:"Januar",month2:"Februar",month3:"Marts",month4:"April",month5:"Maj",month6:"Juni",month7:"Juli",month8:"August",month9:"September",month10:"Oktober",month11:"November",month12:"December",year:"\xC5r",weekStartDay:"0",weeks:{sun:"S\xF8n",mon:"Man",tue:"Tir",wed:"Ons",thu:"Tor",fri:"Fre",sat:"L\xF8r"},months:{m1:"Jan",m2:"Feb",m3:"Mar",m4:"Apr",m5:"Maj",m6:"Jun",m7:"Jul",m8:"Aug",m9:"Sep",m10:"Okt",m11:"Nov",m12:"Dec"}},transfer:{titles:{source:"Kilde",target:"M\xE5l"},filterPlaceholder:"S\xF8g her",notFoundText:"Ikke fundet"},modal:{okText:"OK",cancelText:"Annuller"},poptip:{okText:"OK",cancelText:"Annuller"},page:{prev:"Forrige side",next:"N\xE6ste side",total:"I alt",item:"emne",items:"emner",prev5:"Forrige 5 sider",next5:"N\xE6ste 5 sider",page:"/page",goto:"G\xE5 til",p:""},rate:{star:"Stjerne",stars:"Stjerner"},time:{before:" siden",after:" efter",just:"lige nu",seconds:" sekunder",minutes:" minutter",hours:" timer",days:" dage"},tree:{emptyText:"Intet indhold"}}};e(t);export{t as default}; diff --git a/dist/locale/de-DE.js b/dist/locale/de-DE.js new file mode 100644 index 0000000000000000000000000000000000000000..c7783210ff9411f972e4f091ab35ee72b42dfe0f --- /dev/null +++ b/dist/locale/de-DE.js @@ -0,0 +1 @@ +import{s as e}from"./lang.js";const t={i:{locale:"de-DE",select:{placeholder:"Ausw\xE4hlen",noMatch:"Keine \xDCbereinstimmungen",loading:"L\xE4dt"},table:{noDataText:"Keine Daten",noFilteredDataText:"Keine gefilterten Daten",confirmFilter:"Best\xE4tigen",resetFilter:"Zur\xFCcksetzen",clearFilter:"Alle",sumText:"Summe"},datepicker:{selectDate:"Datum ausw\xE4hlen",selectTime:"Zeit ausw\xE4hlen",startTime:"Beginn",endTime:"Ende",clear:"Leeren",ok:"OK",datePanelLabel:"[mmmm] [yyyy]",month:"Monat",month1:"Januar",month2:"Februar",month3:"M\xE4rz",month4:"April",month5:"Mai",month6:"Juni",month7:"Juli",month8:"August",month9:"September",month10:"Oktober",month11:"November",month12:"Dezember",year:"Jahr",weekStartDay:"1",weeks:{sun:"So",mon:"Mo",tue:"Di",wed:"Mi",thu:"Do",fri:"Fr",sat:"Sa"},months:{m1:"Jan",m2:"Feb",m3:"M\xE4r",m4:"Apr",m5:"Mai",m6:"Jun",m7:"Jul",m8:"Aug",m9:"Sep",m10:"Okt",m11:"Nov",m12:"Dez"}},transfer:{titles:{source:"Quelle",target:"Ziel"},filterPlaceholder:"Suchen",notFoundText:"Nicht gefunden"},modal:{okText:"OK",cancelText:"Abbrechen"},poptip:{okText:"OK",cancelText:"Abbrechen"},page:{prev:"Vorherige Seite",next:"N\xE4chste Seite",total:"Total",item:"Eintrag",items:"Eintr\xE4ge",prev5:"vorherigen f\xFCnf Seiten",next5:"n\xE4chste f\xFCnf Seiten",page:"/seite",goto:"Gehe zu",p:""},rate:{star:"Stern",stars:"Sterne"},tree:{emptyText:"Keine Daten"}}};e(t);export{t as default}; diff --git a/dist/locale/el-GR.js b/dist/locale/el-GR.js new file mode 100644 index 0000000000000000000000000000000000000000..c1e979cb34f4d1947a397870b9f26d8937bae9a9 --- /dev/null +++ b/dist/locale/el-GR.js @@ -0,0 +1 @@ +import{s as e}from"./lang.js";const t={i:{locale:"el-GR",select:{placeholder:"\u0395\u03C0\u03B9\u03BB\u03BF\u03B3\u03AE",noMatch:"\u0394\u03B5\u03BD \u03B2\u03C1\u03AD\u03B8\u03B7\u03BA\u03B1\u03BD \u03B1\u03C0\u03BF\u03C4\u03B5\u03BB\u03AD\u03C3\u03BC\u03B1\u03C4\u03B1",loading:"\u03A6\u03CC\u03C1\u03C4\u03C9\u03C3\u03B7"},table:{noDataText:"\u03A7\u03C9\u03C1\u03AF\u03C2 \u03B4\u03B5\u03B4\u03BF\u03BC\u03AD\u03BD\u03B1",noFilteredDataText:"\u03A7\u03C9\u03C1\u03AF\u03C2 \u03C6\u03AF\u03BB\u03C4\u03C1\u03BF",confirmFilter:"\u0395\u03C0\u03B9\u03B2\u03B5\u03B2\u03B1\u03AF\u03C9\u03C3\u03B7",resetFilter:"\u0395\u03C0\u03B1\u03BD\u03B1\u03C6\u03BF\u03C1\u03AC",clearFilter:"\u038C\u03BB\u03B1",sumText:"\u03A3\u03CD\u03BD\u03BF\u03BB\u03BF"},datepicker:{selectDate:"\u0395\u03C0\u03B9\u03BB\u03AD\u03BE\u03C4\u03B5 \u03B7\u03BC\u03AD\u03C1\u03B1",selectTime:"\u0395\u03C0\u03B9\u03BB\u03AD\u03BE\u03C4\u03B5 \u03CE\u03C1\u03B1",startTime:"\u03A9\u03C1\u03B1 \u0388\u03BD\u03B1\u03C1\u03BE\u03B7\u03C2",endTime:"\u03A9\u03C1\u03B1 \u039B\u03AE\u03BE\u03B7\u03C2",clear:"\u039A\u03B1\u03B8\u03B1\u03C1\u03B9\u03C3\u03BC\u03CC\u03C2",ok:"\u0395\u03BD\u03C4\u03AC\u03BE\u03B5\u03B9",datePanelLabel:"[mmmm] [yyyy]",month:"\u039C\u03AE\u03BD\u03B1\u03C2",month1:"\u0399\u03B1\u03BD\u03BF\u03C5\u03AC\u03C1\u03B9\u03BF\u03C2",month2:"\u03A6\u03B5\u03B2\u03C1\u03BF\u03C5\u03AC\u03C1\u03B9\u03BF\u03C2",month3:"\u039C\u03AC\u03C1\u03C4\u03B9\u03BF\u03C2",month4:"\u0391\u03C0\u03C1\u03AF\u03BB\u03B9\u03BF\u03C2",month5:"\u039C\u03AC\u03B9\u03BF\u03C2",month6:"\u0399\u03BF\u03CD\u03BD\u03B9\u03BF\u03C2",month7:"\u0399\u03BF\u03CD\u03BB\u03B9\u03BF\u03C2",month8:"\u0391\u03CD\u03B3\u03BF\u03C5\u03C3\u03C4\u03BF\u03C2",month9:"\u03A3\u03B5\u03C0\u03C4\u03AD\u03BC\u03B2\u03C1\u03B9\u03BF\u03C2",month10:"\u039F\u03BA\u03C4\u03CE\u03B2\u03C1\u03B9\u03BF\u03C2",month11:"\u039D\u03BF\u03AD\u03BC\u03B2\u03C1\u03B9\u03BF\u03C2",month12:"\u0394\u03B5\u03BA\u03AD\u03BC\u03B2\u03C1\u03B9\u03BF\u03C2",year:"\u0388\u03C4\u03BF\u03C2",weekStartDay:"1",weeks:{sun:"\u039A\u03C5\u03C1",mon:"\u0394\u03B5\u03C5",tue:"\u03A4\u03C1\u03B9",wed:"\u03A4\u03B5\u03C4",thu:"\u03A0\u03B5\u03BC",fri:"\u03A0\u03B1\u03C1",sat:"\u03A3\u03B1\u03B2"},months:{m1:"\u0399\u03B1\u03BD",m2:"\u03A6\u03B5\u03B2",m3:"\u039C\u03B1\u03C1",m4:"\u0391\u03C0\u03C1",m5:"\u039C\u03B1\u03CA",m6:"\u0399\u03BF\u03C5\u03BD",m7:"\u0399\u03BF\u03C5\u03BB",m8:"\u0391\u03C5\u03B3",m9:"\u03A3\u03B5\u03C0",m10:"\u039F\u03BA\u03C4",m11:"\u039D\u03BF\u03B5",m12:"\u0394\u03B5\u03BA"}},transfer:{titles:{source:"\u03A0\u03B7\u03B3\u03AE",target:"\u03A3\u03C4\u03CC\u03C7\u03BF\u03C2"},filterPlaceholder:"\u0391\u03BD\u03B1\u03B6\u03AE\u03C4\u03B7\u03C3\u03B7",notFoundText:"\u0394\u03B5\u03BD \u03B2\u03C1\u03AD\u03B8\u03B7\u03BA\u03B1\u03BD \u03B1\u03C0\u03BF\u03C4\u03B5\u03BB\u03AD\u03C3\u03BC\u03B1\u03C4\u03B1"},modal:{okText:"\u0395\u03BD\u03C4\u03AC\u03BE\u03B5\u03B9",cancelText:"\u0391\u03BA\u03CD\u03C1\u03C9\u03C3\u03B7"},poptip:{okText:"\u0395\u03BD\u03C4\u03AC\u03BE\u03B5\u03B9",cancelText:"\u0391\u03BA\u03CD\u03C1\u03C9\u03C3\u03B7"},page:{prev:"\u03A0\u03C1\u03BF\u03B7\u03B3\u03BF\u03CD\u03BC\u03B5\u03BD\u03B7 \u03A3\u03B5\u03BB\u03AF\u03B4\u03B1",next:"\u0395\u03C0\u03CC\u03BC\u03B5\u03BD\u03B7 \u03A3\u03B5\u03BB\u03AF\u03B4\u03B1",total:"\u03A3\u03CD\u03BD\u03BF\u03BB\u03BF",item:"\u0391\u03BD\u03C4\u03B9\u03BA\u03B5\u03AF\u03BC\u03B5\u03BD\u03BF",items:"\u0391\u03BD\u03C4\u03B9\u03BA\u03B5\u03AF\u03BC\u03B5\u03BD\u03B1",prev5:"\u03A0\u03C1\u03BF\u03B7\u03B3\u03BF\u03CD\u03BC\u03B5\u03BD\u03B5\u03C2 5 \u03A3\u03B5\u03BB\u03AF\u03B4\u03B5\u03C2",next5:"\u0395\u03C0\u03CC\u03BC\u03B5\u03BD\u03B5\u03C2 5 \u03A3\u03B5\u03BB\u03AF\u03B4\u03B5\u03C2",page:"/\u03A3\u03B5\u03BB\u03AF\u03B4\u03B1",goto:"\u039C\u03B5\u03C4\u03AC\u03B2\u03B1\u03C3\u03B7 \u03C3\u03B5",p:""},rate:{star:"\u0391\u03C3\u03C4\u03AD\u03C1\u03B9",stars:"\u0391\u03C3\u03C4\u03AD\u03C1\u03B9\u03B1"},tree:{emptyText:"\u03A7\u03C9\u03C1\u03AF\u03C2 \u0394\u03B5\u03B4\u03BF\u03BC\u03AD\u03BD\u03B1"}}};e(t);export{t as default}; diff --git a/dist/locale/en-US.js b/dist/locale/en-US.js new file mode 100644 index 0000000000000000000000000000000000000000..f4bbf3a340b8c488a06d5f61bc0cc6d98d5ccd0a --- /dev/null +++ b/dist/locale/en-US.js @@ -0,0 +1 @@ +import{s as e}from"./lang.js";const t={i:{locale:"en-US",select:{placeholder:"Select",noMatch:"No matching data",loading:"Loading"},table:{noDataText:"No Data",noFilteredDataText:"No filter data",confirmFilter:"Confirm",resetFilter:"Reset",clearFilter:"All",sumText:"Sum"},datepicker:{selectDate:"Select date",selectTime:"Select time",startTime:"Start Time",endTime:"End Time",clear:"Clear",ok:"OK",datePanelLabel:"[mmmm] [yyyy]",month:"Month",month1:"January",month2:"February",month3:"March",month4:"April",month5:"May",month6:"June",month7:"July",month8:"August",month9:"September",month10:"October",month11:"November",month12:"December",year:"Year",weekStartDay:"0",weeks:{sun:"Sun",mon:"Mon",tue:"Tue",wed:"Wed",thu:"Thu",fri:"Fri",sat:"Sat"},months:{m1:"Jan",m2:"Feb",m3:"Mar",m4:"Apr",m5:"May",m6:"Jun",m7:"Jul",m8:"Aug",m9:"Sep",m10:"Oct",m11:"Nov",m12:"Dec"}},transfer:{titles:{source:"Source",target:"Target"},filterPlaceholder:"Search here",notFoundText:"Not Found"},modal:{okText:"OK",cancelText:"Cancel"},poptip:{okText:"OK",cancelText:"Cancel"},page:{prev:"Previous Page",next:"Next Page",total:"Total",item:"item",items:"items",prev5:"Previous 5 Pages",next5:"Next 5 Pages",page:"/page",goto:"Goto",p:""},rate:{star:"Star",stars:"Stars"},time:{before:" ago",after:" after",just:"just now",seconds:" seconds",minutes:" minutes",hours:" hours",days:" days"},tree:{emptyText:"No Data"},image:{zoomIn:"Zoom In",zoomOut:"Zoom Out",rotateLeft:"Rotate Left",rotateRight:"Rotate Right",fail:"failed",preview:"preview"}}};e(t);export{t as default}; diff --git a/dist/locale/es-ES.js b/dist/locale/es-ES.js new file mode 100644 index 0000000000000000000000000000000000000000..51eefd5681b1ffec399d846bbda163c5c0ca2cb6 --- /dev/null +++ b/dist/locale/es-ES.js @@ -0,0 +1 @@ +import{s as e}from"./lang.js";const t={i:{locale:"es-ES",select:{placeholder:"Seleccionar",noMatch:"Sin coincidencias",loading:"Cargando"},table:{noDataText:"Sin Datos",noFilteredDataText:"Sin Datos para el filtro",confirmFilter:"Aceptar",resetFilter:"Quitar filtro",clearFilter:"Todos",sumText:"Suma"},datepicker:{selectDate:"Seleccionar fecha",selectTime:"Seleccionar hora",startTime:"Hora de inicio",endTime:"Hora de fin",clear:"Limpiar",ok:"Aceptar",datePanelLabel:"[mmmm] [yyyy]",month:"Mes",month1:"Enero",month2:"Febrero",month3:"Marzo",month4:"Abril",month5:"Mayo",month6:"Junio",month7:"Julio",month8:"Augosto",month9:"Septiembre",month10:"Octubre",month11:"Noviembre",month12:"Diciembre",year:"A\xF1o",weekStartDay:"1",weeks:{sun:"Dom",mon:"Lun",tue:"Mar",wed:"Mi\xE9",thu:"Jue",fri:"Vie",sat:"S\xE1b"},months:{m1:"Ene",m2:"Feb",m3:"Mar",m4:"Abr",m5:"May",m6:"Jun",m7:"Jul",m8:"Ago",m9:"Sep",m10:"Oct",m11:"Nov",m12:"Dic"}},transfer:{titles:{source:"Origen",target:"Destino"},filterPlaceholder:"Buscar aqu\xED",notFoundText:"Sin resultados"},modal:{okText:"Aceptar",cancelText:"Cancelar"},poptip:{okText:"Aceptar",cancelText:"Cancelar"},page:{prev:"P\xE1gina Anterior",next:"P\xE1gina Siguiente",total:"Total",item:"Elemento",items:"Elementos",prev5:"5 P\xE1ginas Anteriores",next5:"5 P\xE1ginas Siguientes",page:"/page",goto:"Ir a",p:""},rate:{star:"Estrella",stars:"Estrellas"},tree:{emptyText:"Sin Datos"}}};e(t);export{t as default}; diff --git a/dist/locale/fa-IR.js b/dist/locale/fa-IR.js new file mode 100644 index 0000000000000000000000000000000000000000..d4d24af0a1d3dd9d0fd861720eeb6afed4d7d8bb --- /dev/null +++ b/dist/locale/fa-IR.js @@ -0,0 +1 @@ +import{s as e}from"./lang.js";const t={i:{locale:"fa-IR",select:{placeholder:"\u0627\u0646\u062A\u062E\u0627\u0628\u200C \u06A9\u0646\u06CC\u062F",noMatch:"\u06CC\u0627\u0641\u062A \u0646\u0634\u062F",loading:"\u062F\u0631\u200C\u062D\u0627\u0644 \u0628\u0627\u0631\u06AF\u0630\u0627\u0631\u06CC"},table:{noDataText:"\u0627\u0637\u0644\u0627\u0639\u0627\u062A\u06CC \u0645\u0648\u062C\u0648\u062F \u0646\u06CC\u0633\u062A",noFilteredDataText:"\u0628\u062F\u0648\u0646 \u0627\u0637\u0644\u0627\u0639\u0627\u062A \u0641\u06CC\u0644\u062A\u0631\u0634\u062F\u0647",confirmFilter:"\u062A\u0627\u06CC\u06CC\u062F",resetFilter:"\u0628\u0627\u0632\u0646\u0634\u0627\u0646\u06CC",clearFilter:"\u0647\u0645\u0647",sumText:"\u062C\u0645\u0639"},datepicker:{selectDate:"\u0627\u0646\u062A\u062E\u0627\u0628 \u062A\u0627\u0631\u06CC\u062E",selectTime:"\u0627\u0646\u062A\u062E\u0627\u0628 \u0632\u0645\u0627\u0646",startTime:"\u062A\u0627\u0631\u06CC\u062E \u0634\u0631\u0648\u0639",endTime:"\u062A\u0627\u0631\u06CC\u062E \u067E\u0627\u06CC\u0627\u0646",clear:"\u067E\u0627\u06A9\u0633\u0627\u0632\u06CC",ok:"\u062A\u0627\u06CC\u06CC\u062F",datePanelLabel:"[mmmm] [yyyy]",month:"\u0645\u0627\u0647",month1:"January",month2:"February",month3:"March",month4:"April",month5:"May",month6:"June",month7:"July",month8:"August",month9:"September",month10:"October",month11:"November",month12:"December",year:"\u0633\u0627\u0644",weekStartDay:"0",weeks:{sun:"Sun",mon:"Mon",tue:"Tue",wed:"Wed",thu:"Thu",fri:"Fri",sat:"Sat"},months:{m1:"Jan",m2:"Feb",m3:"Mar",m4:"Apr",m5:"May",m6:"Jun",m7:"Jul",m8:"Aug",m9:"Sep",m10:"Oct",m11:"Nov",m12:"Dec"}},transfer:{titles:{source:"\u0645\u0646\u0628\u0639",target:"\u0647\u062F\u0641"},filterPlaceholder:"\u0627\u06CC\u0646\u062C\u0627 \u062C\u0633\u062A\u062C\u0648 \u06A9\u0646\u06CC\u062F",notFoundText:"\u067E\u06CC\u062F\u0627 \u0646\u0634\u062F"},modal:{okText:"\u062A\u0627\u06CC\u06CC\u062F",cancelText:"\u0644\u063A\u0648"},poptip:{okText:"\u062A\u0627\u06CC\u06CC\u062F",cancelText:"\u0644\u063A\u0648"},page:{prev:"\u0635\u0641\u062D\u0647 \u0642\u0628\u0644\u06CC",next:"\u0635\u0641\u062D\u0647 \u0628\u0639\u062F\u06CC",total:"\u0645\u062C\u0645\u0648\u0639",item:"\u062F\u0627\u062F\u0647",items:"\u062F\u0627\u062F\u0647\u200C\u0647\u0627",prev5:"\u06F5 \u0635\u0641\u062D\u0647 \u0642\u0628\u0644\u06CC",next5:"\u06F5 \u0635\u0641\u062D\u0647 \u0628\u0639\u062F\u06CC",page:"/\u0635\u0641\u062D\u0647",goto:"\u0628\u0631\u0648\u200C\u0628\u0647",p:""},rate:{star:"\u0633\u062A\u0627\u0631\u0647",stars:"\u0633\u062A\u0627\u0631\u0647\u200C\u0647\u0627"},tree:{emptyText:"\u0628\u062F\u0648\u0646 \u0627\u0637\u0644\u0627\u0639\u0627\u062A"}}};e(t);export{t as default}; diff --git a/dist/locale/fi-FI.js b/dist/locale/fi-FI.js new file mode 100644 index 0000000000000000000000000000000000000000..b082ef78a06f4bb2fe4b9e1b373cb4869dc7a7cd --- /dev/null +++ b/dist/locale/fi-FI.js @@ -0,0 +1 @@ +import{s as e}from"./lang.js";const t={i:{locale:"fi-FI",select:{placeholder:"Valitse",noMatch:"Ei tuloksia",loading:"Ladataan"},table:{noDataText:"Ei tietoja",noFilteredDataText:"Ei suodatettua dataa",confirmFilter:"Hyv\xE4ksy",resetFilter:"Nollaa",clearFilter:"Kaikki",sumText:"Summa"},datepicker:{selectDate:"Valitse p\xE4iv\xE4m\xE4\xE4r\xE4",selectTime:"Valitse aika",startTime:"Aloitusaika",endTime:"P\xE4\xE4ttymisaika",clear:"Tyhjenn\xE4",ok:"OK",datePanelLabel:"[mmmm] [yyyy]",month:"Kuukausi",month1:"Tammikuu",month2:"Helmikuu",month3:"Maaliskuu",month4:"Huhtikuu",month5:"Toukokuu",month6:"Kes\xE4kuu",month7:"Hein\xE4kuu",month8:"Elokuu",month9:"Syyskuu",month10:"Lokakuu",month11:"Marraskuu",month12:"Joulukuu",year:"Vuosi",weekStartDay:"1",weeks:{sun:"Su",mon:"Ma",tue:"Ti",wed:"Ke",thu:"To",fri:"Pe",sat:"La"},months:{m1:"Tam",m2:"Hel",m3:"Maa",m4:"Huh",m5:"Tou",m6:"Kes",m7:"Hei",m8:"Elo",m9:"Syy",m10:"Lok",m11:"Mar",m12:"Jou"}},transfer:{titles:{source:"L\xE4hde",target:"Kohde"},filterPlaceholder:"Hae t\xE4\xE4lt\xE4",notFoundText:"Ei tuloksia"},modal:{okText:"OK",cancelText:"Peruuta"},poptip:{okText:"OK",cancelText:"Peruuta"},page:{prev:"Edellinen sivu",next:"Seuraava sivu",total:"Yhteens\xE4",item:"kohde",items:"kohdetta",prev5:"Edelliset 5 sivua",next5:"Seuraavat 5 sivua",page:"/page",goto:"Siirry",p:""},rate:{star:"T\xE4hti",stars:"T\xE4hte\xE4"},time:{before:" sitten",after:" j\xE4lkeen",just:"juuri nyt",seconds:" sekuntia",minutes:" minuuttia",hours:" tuntia",days:" p\xE4iv\xE4\xE4"},tree:{emptyText:"Ei tietoja"}}};e(t);export{t as default}; diff --git a/dist/locale/fr-FR.js b/dist/locale/fr-FR.js new file mode 100644 index 0000000000000000000000000000000000000000..0467ed1b6ea410a7327955bf8ba12d9d2690a0d4 --- /dev/null +++ b/dist/locale/fr-FR.js @@ -0,0 +1 @@ +import{s as e}from"./lang.js";const t={i:{locale:"fr-FR",select:{placeholder:"S\xE9lectionnez",noMatch:"Aucun r\xE9sultat",loading:"Chargement"},table:{noDataText:"Aucune donn\xE9e",noFilteredDataText:"No filter data",confirmFilter:"Confirmez",resetFilter:"Reset",clearFilter:"Tout",sumText:"Somme"},datepicker:{selectDate:"S\xE9lectionnez une date",selectTime:"S\xE9lectionnez une heure",startTime:"Heure de d\xE9but",endTime:"Heure de fin",clear:"Annuler",ok:"OK",datePanelLabel:"[mmmm] [yyyy]",month:"Mois",month1:"Janvier",month2:"F\xE9vrier",month3:"Mars",month4:"Avril",month5:"Mai",month6:"Juin",month7:"Juillet",month8:"Ao\xFBt",month9:"Septembre",month10:"Octobre",month11:"Novembre",month12:"Decembre",year:"An",weekStartDay:"1",weeks:{sun:"Dim",mon:"Lun",tue:"Mar",wed:"Mer",thu:"Jeu",fri:"Ven",sat:"Sam"},months:{m1:"Jan",m2:"Fev",m3:"Mar",m4:"Avr",m5:"Mai",m6:"Jun",m7:"Jul",m8:"Ao\xFB",m9:"Sep",m10:"Oct",m11:"Nov",m12:"D\xE9c"}},transfer:{titles:{source:"Source",target:"Cible"},filterPlaceholder:"Recherche",notFoundText:"Pas de r\xE9sultat"},modal:{okText:"OK",cancelText:"Annuler"},poptip:{okText:"OK",cancelText:"Annuler"},page:{prev:"Page Pr\xE9c\xE9dente",next:"Page Suivante",total:"Total",item:"\xE9l\xE9ment",items:"\xE9l\xE9ments",prev5:"5 Pages en Avant",next5:"5 Pages en Arri\xE8re",page:"/page",goto:"Aller \xE0",p:""},rate:{star:"\xC9toile",stars:"\xC9toiles"},tree:{emptyText:"Aucune donn\xE9e"}}};e(t);export{t as default}; diff --git a/dist/locale/hi-IN.js b/dist/locale/hi-IN.js new file mode 100644 index 0000000000000000000000000000000000000000..75770a68447864c4b78076e584321a7cdbbc12cb --- /dev/null +++ b/dist/locale/hi-IN.js @@ -0,0 +1 @@ +import{s as e}from"./lang.js";const t={i:{locale:"hi-IN",select:{placeholder:"\u0915\u0943\u092A\u092F\u093E \u091A\u0941\u0928\u0947|",noMatch:"\u0915\u094B\u0908 \u0906\u0915\u0921\u093C\u093E \u0909\u092A\u0932\u092C\u094D\u0927 \u0928\u0939\u0940\u0902 \u0939\u0948|",loading:"\u0932\u094B\u0921 \u0939\u094B \u0930\u0939\u093E \u0939\u0948"},table:{noDataText:"\u0915\u094B\u0908 \u0906\u0915\u0921\u093C\u093E \u0909\u092A\u0932\u092C\u094D\u0927 \u0928\u0939\u0940\u0902 \u0939\u0948",noFilteredDataText:"\u0915\u094B\u0908 \u0906\u0915\u0921\u093C\u093E \u0909\u092A\u0932\u092C\u094D\u0927 \u0928\u0939\u0940\u0902 \u0939\u0948",confirmFilter:"\u092A\u0941\u0937\u094D\u091F\u093F \u0915\u0930\u0947\u0902",resetFilter:"\u092A\u0941\u0928\u0903 \u0924\u0948\u092F\u093E\u0930 \u0915\u0930\u0928\u093E",clearFilter:"\u0938\u092C \u0915\u0941\u091B",sumText:"Sum"},datepicker:{selectDate:"\u0926\u093F\u0928\u093E\u0902\u0915 \u091A\u0941\u0928\u0947\u0902",selectTime:"\u0938\u092E\u092F \u091A\u0941\u0928\u0947\u0902",startTime:"\u092A\u094D\u0930\u093E\u0930\u0902\u092D \u0938\u092E\u092F",endTime:"\u0938\u092E\u093E\u092A\u094D\u0924\u093F \u0938\u092E\u092F",clear:"\u0938\u093E\u092B\u093C \u0915\u0930\u0947\u0902",ok:"\u0920\u0940\u0915",datePanelLabel:"[mmmm] [yyyy]",month:"\u092E\u0939\u0940\u0928\u093E",month1:"\u091C\u0928\u0935\u0930\u0940",month2:"\u092B\u0930\u0935\u0930\u0940",month3:"\u092E\u093E\u0930\u094D\u091A",month4:"\u0905\u092A\u094D\u0930\u0948\u0932",month5:"\u092E\u0908",month6:"\u091C\u0942\u0928",month7:"\u091C\u0941\u0932\u093E\u0908",month8:"\u0905\u0917\u0938\u094D\u0924",month9:"\u0938\u093F\u0924\u0902\u092C\u0930",month10:"\u0905\u0915\u094D\u091F\u0942\u092C\u0930",month11:"\u0928\u0935\u0902\u092C\u0930",month12:"\u0926\u093F\u0938\u0902\u092C\u0930",year:"\u0938\u093E\u0932",weekStartDay:"0",weeks:{sun:"\u0930\u0935\u093F\u0935\u093E\u0930",mon:"\u0938\u094B\u092E\u0935\u093E\u0930",tue:"\u092E\u0902\u0917\u0932\u0935\u093E\u0930",wed:"\u092C\u0941\u0927\u0935\u093E\u0930",thu:"\u0917\u0941\u0930\u0941\u0935\u093E\u0930",fri:"\u0936\u0941\u0915\u094D\u0930\u0935\u093E\u0930",sat:"\u0936\u0928\u093F\u0935\u093E\u0930"},months:{m1:"\u091C\u0928\u0935\u0930\u0940",m2:"\u092B\u0930\u0935\u0930\u0940",m3:"\u092E\u093E\u0930\u094D\u091A",m4:"\u0905\u092A\u094D\u0930\u0948\u0932",m5:"\u092E\u0908",m6:"\u091C\u0942\u0928",m7:"\u091C\u0941\u0932\u093E\u0908",m8:"\u0905\u0917\u0938\u094D\u0924",m9:"\u0938\u093F\u0924\u0902\u092C\u0930",m10:"\u0905\u0915\u094D\u091F\u0942\u092C\u0930",m11:"\u0928\u0935\u0902\u092C\u0930",m12:"\u0926\u093F\u0938\u0902\u092C\u0930"}},transfer:{titles:{source:"\u0938\u094D\u0930\u094B\u0924",target:"\u0932\u0915\u094D\u0937\u094D\u092F"},filterPlaceholder:"\u092F\u0939\u093E\u0902 \u0916\u094B\u091C\u0947\u0902",notFoundText:"\u0915\u094B\u0908 \u0906\u0915\u0921\u093C\u093E \u0909\u092A\u0932\u092C\u094D\u0927 \u0928\u0939\u0940\u0902 \u0939\u0948"},modal:{okText:"\u0920\u0940\u0915",cancelText:"\u0928\u093F\u0930\u0938\u094D\u0924 \u0915\u0930\u0928\u093E"},poptip:{okText:"\u0920\u0940\u0915",cancelText:"\u0928\u093F\u0930\u0938\u094D\u0924 \u0915\u0930\u0928\u093E"},page:{prev:"\u092A\u093F\u091B\u0932\u093E \u092A\u0947\u091C",next:"\u0905\u0917\u0932\u093E \u092A\u0947\u091C",total:"\u0938\u092E\u0938\u094D\u0924",item:"\u090F\u0915 \u091A\u0940\u091C",items:"\u0905\u0928\u0947\u0915 \u091A\u0940\u091C",prev5:"\u092A\u093F\u091B\u0932\u093E 5 \u092A\u0947\u091C",next5:"\u0905\u0917\u0932\u093E 5 \u092A\u0947\u091C",page:"/page",goto:"\u091C\u093E\u0913",p:""},rate:{star:"\u092A\u094D\u0930\u0938\u093F\u0926\u094D\u0927",stars:"\u092A\u094D\u0930\u0938\u093F\u0926\u094D\u0927"},tree:{emptyText:"\u0915\u094B\u0908 \u0906\u0915\u0921\u093C\u093E \u0909\u092A\u0932\u092C\u094D\u0927 \u0928\u0939\u0940\u0902 \u0939\u0948"}}};e(t);export{t as default}; diff --git a/dist/locale/id-ID.js b/dist/locale/id-ID.js new file mode 100644 index 0000000000000000000000000000000000000000..382e5923e910918029a51ffbee8f741f7ea49e25 --- /dev/null +++ b/dist/locale/id-ID.js @@ -0,0 +1 @@ +import{s as a}from"./lang.js";const e={i:{locale:"id-ID",select:{placeholder:"Pilih",noMatch:"Tidak ada data yang cocok",loading:"Memuat"},table:{noDataText:"Tidak ada data",noFilteredDataText:"Tidak ada data filter",confirmFilter:"Konfirmasi",resetFilter:"Tata ulang",clearFilter:"Semua",sumText:"Jml"},datepicker:{selectDate:"Pilih tanggal",selectTime:"Pilih waktu",startTime:"Waktu Mulai",endTime:"Waktu Selesai",clear:"Bersihkan",ok:"OK",datePanelLabel:"[mmmm] [yyyy]",month:"",month1:"Januari",month2:"Februari",month3:"Maret",month4:"April",month5:"Mei",month6:"Juni",month7:"Juli",month8:"Agustus",month9:"September",month10:"Oktober",month11:"November",month12:"Desember",year:"",weekStartDay:"1",weeks:{sun:"Min",mon:"Sen",tue:"Sel",wed:"Rab",thu:"Kam",fri:"Jum",sat:"Sab"},months:{m1:"Jan",m2:"Feb",m3:"Mar",m4:"Apr",m5:"Mei",m6:"Jun",m7:"Jul",m8:"Agu",m9:"Sep",m10:"Okt",m11:"Nov",m12:"Dec"}},transfer:{titles:{source:"Sumber",target:"Tujuan"},filterPlaceholder:"Cari disini",notFoundText:"Tidak ditemukan"},modal:{okText:"OK",cancelText:"Batal"},poptip:{okText:"OK",cancelText:"Batal"},page:{prev:"Halaman Sebelumnya",next:"Halaman Selanjutnya",total:"Total",item:"butir",items:"butir",prev5:"5 Halaman Sebelumnya",next5:"5 Halaman Selanjutnya",page:"/page",goto:"Pergi ke",p:""},rate:{star:"Star",stars:"Stars"},tree:{emptyText:"Tidak ada data"}}};a(e);export{e as default}; diff --git a/dist/locale/it-IT.js b/dist/locale/it-IT.js new file mode 100644 index 0000000000000000000000000000000000000000..5ec78f69d5d5af5548c36c67eabeaec575412d5d --- /dev/null +++ b/dist/locale/it-IT.js @@ -0,0 +1 @@ +import{s as e}from"./lang.js";const t={i:{locale:"it-IT",select:{placeholder:"Seleziona",noMatch:"Nessun Risultato",loading:"Caricamento"},table:{noDataText:"Nessun Risultato",noFilteredDataText:"Filtro senza risultati",confirmFilter:"Conferma",resetFilter:"Reset",clearFilter:"Tutto",sumText:"Somma"},datepicker:{selectDate:"Seleziona data",selectTime:"Seleziona orario",startTime:"Orario inizio",endTime:"Orario fine",clear:"Annulla",ok:"OK",datePanelLabel:"[mmmm] [yyyy]",month:"Mese",month1:"Gennaio",month2:"Febbraio",month3:"Marzo",month4:"Aprile",month5:"Maggio",month6:"Giugno",month7:"Luglio",month8:"Agosto",month9:"Settembre",month10:"Ottobre",month11:"Novembre",month12:"Dicembre",year:"Anno",weekStartDay:"1",weeks:{sun:"Dom",mon:"Lun",tue:"Mar",wed:"Mer",thu:"Gio",fri:"Ven",sat:"Sab"},months:{m1:"Gen",m2:"Feb",m3:"Mar",m4:"Apr",m5:"Mag",m6:"Giu",m7:"Lug",m8:"Ago",m9:"Set",m10:"Ott",m11:"Nov",m12:"Dic"}},transfer:{titles:{source:"Origine",target:"Destinazione"},filterPlaceholder:"Cerca",notFoundText:"Nessun Risultato"},modal:{okText:"OK",cancelText:"Annulla"},poptip:{okText:"OK",cancelText:"Annulla"},page:{prev:"Pagina Precedente",next:"Pagina Successiva",total:"Totale",item:"elemento",items:"elementi",prev5:"5 Pagine Precedenti",next5:"5 Pagine Successive",page:"/pagina",goto:"Vai a",p:""},rate:{star:"Stella",stars:"Stelle"},time:{before:"fa",after:" dopo",just:"adesso",seconds:" secondi",minutes:" minuti",hours:" ore",days:" giorni"},tree:{emptyText:"Nessun Risultato"}}};e(t);export{t as default}; diff --git a/dist/locale/ja-JP.js b/dist/locale/ja-JP.js new file mode 100644 index 0000000000000000000000000000000000000000..ed884f43756ec4da8ef0a48764d39430b9f2ecbd --- /dev/null +++ b/dist/locale/ja-JP.js @@ -0,0 +1 @@ +import{s as e}from"./lang.js";const t={i:{locale:"ja-JP",select:{placeholder:"\u9078\u3093\u3067\u304F\u3060\u3055\u3044",noMatch:"\u30DE\u30C3\u30C1\u3059\u308B\u30C7\u30FC\u30BF\u306A\u3057",loading:"\u30ED\u30FC\u30C9\u4E2D"},table:{noDataText:"\u30C7\u30FC\u30BF\u306A\u3057",noFilteredDataText:"\u30B9\u30AF\u30EA\u30FC\u30CB\u30F3\u30B0\u3057\u305F\u30C7\u30FC\u30BF\u306A\u3057",confirmFilter:"\u30B9\u30AF\u30EA\u30FC\u30CB\u30F3\u30B0",resetFilter:"\u30EA\u30BB\u30C3\u30C8",clearFilter:"\u5168\u90E8",sumText:"\u5408\u8A08"},datepicker:{selectDate:"\u65E5\u6642\u3092\u9078\u3093\u3067\u304F\u3060\u3055\u3044",selectTime:"\u6642\u9593\u3092\u9078\u3093\u3067\u304F\u3060\u3055\u3044",startTime:"\u30B9\u30BF\u30FC\u30C8\u6642\u9593",endTime:"\u7D42\u4E86\u6642\u9593",clear:"\u30AF\u30EA\u30FC\u30A2",ok:"\u78BA\u5B9A",datePanelLabel:"[yyyy\u5E74] [m\u6708]",month:"\u6708",month1:"1 \u6708",month2:"2 \u6708",month3:"3 \u6708",month4:"4 \u6708",month5:"5 \u6708",month6:"6 \u6708",month7:"7 \u6708",month8:"8 \u6708",month9:"9 \u6708",month10:"10 \u6708",month11:"11 \u6708",month12:"12 \u6708",year:"\u5E74",weekStartDay:"0",weeks:{sun:"\u65E5",mon:"\u6708",tue:"\u706B",wed:"\u6C34",thu:"\u6728",fri:"\u91D1",sat:"\u571F"},months:{m1:"1\u6708",m2:"2\u6708",m3:"3\u6708",m4:"4\u6708",m5:"5\u6708",m6:"6\u6708",m7:"7\u6708",m8:"8\u6708",m9:"9\u6708",m10:"10\u6708",m11:"11\u6708",m12:"12\u6708"}},transfer:{titles:{source:"\u30BD\u30FC\u30B9\u30EA\u30B9\u30C8",target:"\u30BF\u30FC\u30B2\u30C3\u30C8\u30EA\u30B9\u30C8"},filterPlaceholder:"\u691C\u7D22\u5185\u5BB9\u3092\u5165\u529B\u304F\u3060\u3055\u3044",notFoundText:"\u5185\u5BB9\u304C\u898B\u3064\u304B\u3063\u3066\u306A\u304B\u3063\u305F"},modal:{okText:"\u78BA\u5B9A",cancelText:"\u30AD\u30E3\u30F3\u30BB\u30EB"},poptip:{okText:"\u78BA\u5B9A",cancelText:"\u30AD\u30E3\u30F3\u30BB\u30EB"},page:{prev:"\u524D\u3078",next:"\u6B21\u3078",total:"\u5168\u90E8",item:"\u4EF6",items:"\u4EF6",prev5:"\u524D\u306E\uFF15\u30DA\u30FC\u30B8\u3078",next5:"\u6B21\u306E\uFF15\u30DA\u30FC\u30B8\u3078",page:"\u4EF6/\u30DA\u30FC\u30B8",goto:"",p:"\u30DA\u30FC\u30B8\u76EE\u3078"},rate:{star:"\u70B9",stars:"\u70B9"},time:{before:"\u524D",after:"\u5F8C",just:"\u305F\u3063\u305F\u4ECA",seconds:"\u79D2",minutes:"\u5206",hours:"\u6642\u9593",days:"\u65E5"},tree:{emptyText:"\u30C7\u30FC\u30BF\u306A\u3057"}}};e(t);export{t as default}; diff --git a/dist/locale/ko-KR.js b/dist/locale/ko-KR.js new file mode 100644 index 0000000000000000000000000000000000000000..7a805d533674c9628aaef6a6770c2e4c593fe8b6 --- /dev/null +++ b/dist/locale/ko-KR.js @@ -0,0 +1 @@ +import{s as e}from"./lang.js";const t={i:{locale:"ko-KR",select:{placeholder:"\uC120\uD0DD",noMatch:"\uC77C\uCE58\uD558\uB294 \uB370\uC774\uD130 \uC5C6\uC74C",loading:"\uB85C\uB529"},table:{noDataText:"\uB370\uC774\uD130 \uC5C6\uC74C",noFilteredDataText:"\uD544\uD130\uB41C \uB370\uC774\uD130 \uC5C6\uC74C",confirmFilter:"\uD655\uC778",resetFilter:"\uCD08\uAE30\uD654",clearFilter:"\uC804\uBD80",sumText:"\uD569"},datepicker:{selectDate:"\uB0A0\uC9DC \uC120\uD0DD",selectTime:"\uC2DC\uAC04 \uC120\uD0DD",startTime:"\uC2DC\uC791 \uC2DC\uAC04",endTime:"\uC885\uB8CC \uC2DC\uAC04",clear:"\uC0AD\uC81C",ok:"\uC608",datePanelLabel:"[yyyy\uB144] [m\uC6D4]",month:"\uC6D4",month1:"1\uC6D4",month2:"2\uC6D4",month3:"3\uC6D4",month4:"4\uC6D4",month5:"5\uC6D4",month6:"6\uC6D4",month7:"7\uC6D4",month8:"8\uC6D4",month9:"9\uC6D4",month10:"10\uC6D4",month11:"11\uC6D4",month12:"12\uC6D4",year:"\uB144",weekStartDay:"0",weeks:{sun:"\uC77C",mon:"\uC6D4",tue:"\uD654",wed:"\uC218",thu:"\uBAA9",fri:"\uAE08",sat:"\uD1A0"},months:{m1:"1\uC6D4",m2:"2\uC6D4",m3:"3\uC6D4",m4:"4\uC6D4",m5:"5\uC6D4",m6:"6\uC6D4",m7:"7\uC6D4",m8:"8\uC6D4",m9:"9\uC6D4",m10:"10\uC6D4",m11:"11\uC6D4",m12:"12\uC6D4"}},transfer:{titles:{source:"\uC18C\uC2A4",target:"\uD0C0\uAC9F"},filterPlaceholder:"\uC5EC\uAE30\uC11C \uCC3E\uAE30",notFoundText:"\uC544\uBB34 \uAC83\uB3C4 \uCC3E\uC744 \uC218 \uC5C6\uC74C"},modal:{okText:"\uC608",cancelText:"\uCDE8\uC18C"},poptip:{okText:"\uC608",cancelText:"\uCDE8\uC18C"},page:{prev:"\uC774\uC804 \uD398\uC774\uC9C0",next:"\uB2E4\uC74C \uD398\uC774\uC9C0",total:"\uC804\uCCB4",item:"\uD56D\uBAA9",items:"\uD56D\uBAA9",prev5:"\uC774\uC804 5 \uD398\uC774\uC9C0",next5:"\uB2E4\uC74C 5 \uD398\uC774\uC9C0",page:"/\uD398\uC774\uC9C0",goto:"\uC774\uB3D9",p:""},rate:{star:"\uC911\uC694",stars:"\uC911\uC694"},time:{before:" \uC804",after:" \uD6C4",just:"\uBC29\uAE08",seconds:" \uCD08",minutes:" \uBD84",hours:" \uC2DC\uAC04",days:" \uC77C"},tree:{emptyText:"\uB370\uC774\uD130 \uC5C6\uC74C"}}};e(t);export{t as default}; diff --git a/dist/locale/lang.js b/dist/locale/lang.js new file mode 100644 index 0000000000000000000000000000000000000000..34e68e631af7bfbf162ea66d42b240465aadaadd --- /dev/null +++ b/dist/locale/lang.js @@ -0,0 +1 @@ +const e=typeof window!="undefined";function n(i){e&&typeof window.viewuiplus!="undefined"&&("langs"in viewuiplus||(viewuiplus.langs={}),viewuiplus.langs[i.i.locale]=i)}export{n as s}; diff --git a/dist/locale/mn-MN.js b/dist/locale/mn-MN.js new file mode 100644 index 0000000000000000000000000000000000000000..b7bd8372ad7eb5adfadec89eebcb27a0d7db6dc9 --- /dev/null +++ b/dist/locale/mn-MN.js @@ -0,0 +1 @@ +import{s as t}from"./lang.js";const e={i:{locale:"mn-MN",select:{placeholder:"\u0421\u043E\u043D\u0433\u043E\u0445",noMatch:"\u0422\u0430\u0430\u0440\u0430\u0445 \u04E9\u0433\u04E9\u0433\u0434\u04E9\u043B \u0431\u0430\u0439\u0445\u0433\u04AF\u0439 \u0431\u0430\u0439\u043D\u0430",loading:"\u0410\u0447\u0430\u0430\u043B\u043B\u0430\u0436 \u0431\u0430\u0439\u043D\u0430"},table:{noDataText:"\u04E8\u0433\u04E9\u0433\u0434\u04E9\u043B \u0430\u043B\u0433\u0430",noFilteredDataText:"No filter data",confirmFilter:"\u0411\u0430\u0442\u043B\u0430\u0445",resetFilter:"\u0428\u0438\u043D\u044D\u044D\u0440 \u0442\u043E\u0445\u0438\u0440\u0443\u0443\u043B\u0430\u0445",clearFilter:"\u0411\u04AF\u0433\u0434",sumText:"\u041D\u0438\u0439\u0442"},datepicker:{selectDate:"\u041E\u0433\u043D\u043E\u043E \u0441\u043E\u043D\u0433\u043E\u0445",selectTime:"\u0426\u0430\u0433 \u0441\u043E\u043D\u0433\u043E\u0445",startTime:"\u042D\u0445\u043B\u044D\u0445 \u0426\u0430\u0433",endTime:"\u0414\u0443\u0443\u0441\u0430\u0445 \u0426\u0430\u0433",clear:"\u0426\u044D\u0432\u044D\u0440\u043B\u044D\u0445",ok:"OK",datePanelLabel:"[mmmm] [yyyy]",month:"\u0421\u0430\u0440",month1:"1-\u0440 \u0441\u0430\u0440",month2:"2-\u0440 \u0441\u0430\u0440",month3:"3-\u0440 \u0441\u0430\u0440",month4:"4-\u0440 \u0441\u0430\u0440",month5:"5-\u0440 \u0441\u0430\u0440",month6:"6-\u0440 \u0441\u0430\u0440",month7:"7-\u0440 \u0441\u0430\u0440",month8:"8-\u0440 \u0441\u0430\u0440",month9:"9-\u0440 \u0441\u0430\u0440",month10:"10-\u0440 \u0441\u0430\u0440",month11:"11-\u0440 \u0441\u0430\u0440",month12:"12-\u0440 \u0441\u0430\u0440",year:"\u0416\u0438\u043B",weekStartDay:"0",weeks:{sun:"\u041D\u044F\u043C",mon:"\u0414\u0430\u0432",tue:"\u041C\u044F\u0433",wed:"\u041B\u0445\u0430",thu:"\u041F\u04AF\u0440",fri:"\u0411\u0430\u0430",sat:"\u0411\u044F\u0430"},months:{m1:"1-\u0440 \u0441\u0430\u0440",m2:"2-\u0440 \u0441\u0430\u0440",m3:"3-\u0440 \u0441\u0430\u0440",m4:"4-\u0440 \u0441\u0430\u0440",m5:"5-\u0440 \u0441\u0430\u0440",m6:"6-\u0440 \u0441\u0430\u0440",m7:"7-\u0440 \u0441\u0430\u0440",m8:"8-\u0440 \u0441\u0430\u0440",m9:"9-\u0440 \u0441\u0430\u0440",m10:"10-\u0440 \u0441\u0430\u0440",m11:"11-\u0440 \u0441\u0430\u0440",m12:"12-\u0440 \u0441\u0430\u0440"}},transfer:{titles:{source:"\u042D\u0445 \u0441\u0443\u0440\u0432\u0430\u043B\u0436",target:"\u041E\u043D\u043E\u043E\u0445 \u0431\u0430\u0439"},filterPlaceholder:"\u042D\u043D\u0434\u044D\u044D\u0441 \u0445\u0430\u0439\u0445",notFoundText:"\u041E\u043B\u0434\u0441\u043E\u043D\u0433\u04AF\u0439"},modal:{okText:"OK",cancelText:"\u0411\u043E\u043B\u0438\u0445"},poptip:{okText:"OK",cancelText:"\u0411\u043E\u043B\u0438\u0445"},page:{prev:"\u04E8\u043C\u043D\u04E9\u0445 \u0445\u0443\u0443\u0434\u0430\u0441",next:"\u0414\u0430\u0440\u0430\u0430\u0445 \u0445\u0443\u0443\u0434\u0430\u0441",total:"\u041D\u0438\u0439\u0442",item:"\u0437\u04AF\u0439\u043B",items:"\u0437\u04AF\u0439\u043B\u04AF\u04AF\u0434",prev5:"\u04E8\u043C\u043D\u04E9\u0445 5 \u0445\u0443\u0443\u0434\u0430\u0441",next5:"\u0414\u0430\u0440\u0430\u0430\u0433\u0438\u0439\u043D 5 \u0445\u0443\u0443\u0434\u0430\u0441",page:"/\u0445\u0443\u0443\u0434\u0441\u0430\u043D\u0434",goto:"\u041E\u0447\u0438\u0445 \u0445\u0443\u0443\u0434\u0430\u0441",p:""},rate:{star:"\u041E\u0434",stars:"\u041E\u0434\u0443\u0443\u0434"},tree:{emptyText:"\u04E8\u0433\u04E9\u0433\u0434\u04E9\u043B \u0430\u043B\u0433\u0430"}}};t(e);export{e as default}; diff --git a/dist/locale/mn-TR.js b/dist/locale/mn-TR.js new file mode 100644 index 0000000000000000000000000000000000000000..f94ced9b0c600c2139b8a78a3b9b9becc06f804e --- /dev/null +++ b/dist/locale/mn-TR.js @@ -0,0 +1 @@ +import{s as t}from"./lang.js";const e={i:{locale:"mn-TR",select:{placeholder:"\u1830\u1823\u1829\u182D\u1823\u182C\u1824",noMatch:"\u1823\u182F\u1833\u1820\u182D\u1830\u1820\u1828 \u1826\u182D\u1821\u1822",loading:"\u1820\u1834\u1822\u1836\u1820\u182F\u1820\u1835\u1824 \u182A\u1820\u1836\u1822\u1828\u180E\u1820"},table:{noDataText:"\u1832\u1823\u182D\u180E\u1820 \u182A\u1820\u1837\u1822\u182E\u1832\u1820 \u1826\u182D\u1821\u1836",noFilteredDataText:"\u1828\u1826\u182C\u1826\u1834\u1821\u182F\u202F\u1833\u1826 \u1828\u1821\u1836\u1822\u1834\u1821\u182D\u1830\u1821\u1828 \u1832\u1823\u182D\u180E\u1820 \u182A\u1820\u1837\u1822\u182E\u1832\u1820 \u1823\u182F\u1833\u1820\u182D\u1830\u1820\u1828 \u1826\u182D\u1821\u1822",confirmFilter:"\u1830\u1822\u182F\u1822\u182C\u1826",resetFilter:"\u182A\u1823\u1834\u1820\u182D\u1820\u182C\u1824",clearFilter:"\u182A\u1826\u182C\u1826",sumText:"Sum"},datepicker:{selectDate:"\u1821\u1833\u1826\u1837 \u1830\u1820\u1837\u180E\u1820 \u1830\u1823\u1829\u182D\u1823\u182C\u1824",selectTime:"\u1834\u1820\u182D\u202F\u1822 \u1830\u1823\u1829\u182D\u1823\u182C\u1824",startTime:"\u1821\u182C\u1822\u182F\u1821\u182C\u1826 \u1834\u1820\u182D",endTime:"\u1832\u1821\u182D\u1826\u1830\u182C\u1826 \u1834\u1820\u182D",clear:"\u182C\u1823\u182D\u1824\u1830\u1824\u182F\u1820\u182C\u1824",ok:"\u1832\u1821\u182D\u1821\u1836\u180E\u1821",datePanelLabel:"[yyyy \u1823\u1828] [m \u1830\u1820\u1837\u180E\u1820]",month:"\u1830\u1820\u1837\u180E\u1820",month1:"1 \u1830\u1820\u1837\u180E\u1820",month2:"2 \u1830\u1820\u1837\u180E\u1820",month3:"3 \u1830\u1820\u1837\u180E\u1820",month4:"4 \u1830\u1820\u1837\u180E\u1820",month5:"5 \u1830\u1820\u1837\u180E\u1820",month6:"6 \u1830\u1820\u1837\u180E\u1820",month7:"7 \u1830\u1820\u1837\u180E\u1820",month8:"8 \u1830\u1820\u1837\u180E\u1820",month9:"9 \u1830\u1820\u1837\u180E\u1820",month10:"10 \u1830\u1820\u1837\u180E\u1820",month11:"11 \u1830\u1820\u1837\u180E\u1820",month12:"12 \u1830\u1820\u1837\u180E\u1820",year:"\u1835\u1822\u182F",weekStartDay:"0",weeks:{sun:"\u1821\u1833\u1826\u1837",mon:"\u1828\u1822\u182D\u1821",tue:"\u182C\u1823\u1836\u1820\u1837",wed:"\u182D\u1824\u1837\u182A\u1820",thu:"\u1833\u1826\u1837\u182A\u1821",fri:"\u1832\u1820\u182A\u1824",sat:"\u1835\u1822\u1837\u182D\u1824\u182D\u180E\u1820"},months:{m1:"1 \u1830\u1820\u1837\u180E\u1820",m2:"2 \u1830\u1820\u1837\u180E\u1820",m3:"3 \u1830\u1820\u1837\u180E\u1820",m4:"4 \u1830\u1820\u1837\u180E\u1820",m5:"5 \u1830\u1820\u1837\u180E\u1820",m6:"6 \u1830\u1820\u1837\u180E\u1820",m7:"7 \u1830\u1820\u1837\u180E\u1820",m8:"8 \u1830\u1820\u1837\u180E\u1820",m9:"9 \u1830\u1820\u1837\u180E\u1820",m10:"10 \u1830\u1820\u1837\u180E\u1820",m11:"11 \u1830\u1820\u1837\u180E\u1820",m12:"12 \u1830\u1820\u1837\u180E\u1820"}},transfer:{titles:{source:"\u1821\u182C\u1822 \u182C\u1826\u1830\u1826\u1828\u1826\u182D ",target:"\u1835\u1823\u1837\u1822\u182F\u182D\u180E\u1820 \u182C\u1826\u1830\u1826\u1828\u1826\u182D"},filterPlaceholder:"\u182C\u1820\u1836\u1822\u182C\u1824 \u1820\u182D\u1824\u182F\u182D\u180E\u1820 \u182A\u1820\u1828 \u1823\u1837\u1824\u182D\u1824\u182F",notFoundText:"\u182C\u1826\u1830\u1826\u1828\u1826\u182D \u182C\u1823\u182D\u1823\u1830\u1823\u1828"},modal:{okText:"\u1832\u1821\u182D\u1821\u1836\u180E\u1821",cancelText:"\u1826\u182D\u1821\u1836\u1822\u1830\u182D\u1821\u182C\u1826"},poptip:{okText:"\u1832\u1821\u182D\u1821\u1836\u180E\u1821",cancelText:"\u1826\u182D\u1821\u1836\u1822\u1830\u182D\u1821\u182C\u1826"},page:{prev:"\u1821\u182E\u1824\u1828\u180E\u1820 \u1828\u1822\u182D\u1824\u1837",next:"\u1833\u1820\u1837\u1820\u182D\u180E\u1820 \u1828\u1822\u182D\u1824\u1837",total:"\u1828\u1821\u1836\u1822\u1832\u1821",item:"\u1835\u1823\u1837\u182A\u1824\u1830",items:"\u1835\u1823\u1837\u182A\u1824\u1830",prev5:"\u1821\u182E\u1826\u1828\u1821\u182C\u1822 5 \u1828\u1822\u182D\u1824\u1837",next5:"\u182C\u1823\u1836\u1822\u1828\u1820\u182C\u1822 5 \u1828\u1822\u182D\u1824\u1837",page:"\u1835\u1823\u1837\u182A\u1824\u1830/\u1828\u1822\u182D\u1824\u1837",goto:"\u182C\u1826\u1837\u182C\u1826",p:"\u1828\u1822\u182D\u1824\u1837"},rate:{star:"\u1823\u1833\u1824",stars:"\u1823\u1833\u1824"},tree:{emptyText:"\u1832\u1823\u182D\u180E\u1820 \u182A\u1820\u1837\u1822\u182E\u1832\u1820 \u1826\u182D\u1821\u1836"}}};t(e);export{e as default}; diff --git a/dist/locale/nb-NO.js b/dist/locale/nb-NO.js new file mode 100644 index 0000000000000000000000000000000000000000..8bc8a2b7c5b963154db940ccbdc62dc1a078e3f8 --- /dev/null +++ b/dist/locale/nb-NO.js @@ -0,0 +1 @@ +import{s as e}from"./lang.js";const t={i:{locale:"nb-NO",select:{placeholder:"Velg",noMatch:"Ingen treff",loading:"Laster"},table:{noDataText:"Ingen data",noFilteredDataText:"Filtreringen gir ingen treff",confirmFilter:"Bekreft",resetFilter:"Nullstill",clearFilter:"Alle",sumText:"Sum"},datepicker:{selectDate:"Velg dato",selectTime:"Velg klokkeslett",startTime:"Start klokken",endTime:"Slutt klokken",clear:"Nullstill",ok:"OK",datePanelLabel:"[mmmm] [yyyy]",month:"M\xE5ned",month1:"Januar",month2:"Februar",month3:"Mars",month4:"April",month5:"Mai",month6:"Juni",month7:"Juli",month8:"August",month9:"September",month10:"Oktober",month11:"November",month12:"Desember",year:"\xC5r",weekStartDay:"1",weeks:{sun:"S\xF8n",mon:"Man",tue:"Tir",wed:"Ons",thu:"Tor",fri:"Fre",sat:"L\xF8r"},months:{m1:"Jan",m2:"Feb",m3:"Mar",m4:"Apr",m5:"Mai",m6:"Jun",m7:"Jul",m8:"Aug",m9:"Sep",m10:"Okt",m11:"Nov",m12:"Des"}},transfer:{titles:{source:"Kilde",target:"M\xE5l"},filterPlaceholder:"S\xF8keord her",notFoundText:"Ikke funnet"},modal:{okText:"OK",cancelText:"Avbryt"},poptip:{okText:"OK",cancelText:"Avbryt"},page:{prev:"Forrige side",next:"Neste side",total:"Total",item:"element",items:"elementer",prev5:"Forrige 5 sider",next5:"Neste 5 sider",page:"/side",goto:"G\xE5 til",p:""},rate:{star:"Stjerne",stars:"Stjerner"},time:{before:" siden",after:" etter",just:"akkurat n\xE5",seconds:" sekunder",minutes:" minutter",hours:" timer",days:" dager"},tree:{emptyText:"Ingen data"}}};e(t);export{t as default}; diff --git a/dist/locale/nl-NL.js b/dist/locale/nl-NL.js new file mode 100644 index 0000000000000000000000000000000000000000..05b8db18e2c038b40f9d22af6c18a1cd4da8fdb8 --- /dev/null +++ b/dist/locale/nl-NL.js @@ -0,0 +1 @@ +import{s as e}from"./lang.js";const t={i:{locale:"nl-NL",select:{placeholder:"Selecteer",noMatch:"Geen overeenkomsten",loading:"Laden"},table:{noDataText:"Geen data",noFilteredDataText:"Geen gefilterde data",confirmFilter:"Bevestig",resetFilter:"Herstel",clearFilter:"Alles",sumText:"Som"},datepicker:{selectDate:"Selecteer datum",selectTime:"Selecteer tijd",startTime:"Begin tijd",endTime:"Eind tijd",clear:"Herstel",ok:"Ok",datePanelLabel:"[mm] [yyyy]",month:"Maand",month1:"Januari",month2:"Februari",month3:"Maart",month4:"April",month5:"Mei",month6:"Juni",month7:"Juli",month8:"Augustus",month9:"September",month10:"Oktober",month11:"November",month12:"December",year:"Jaar",weekStartDay:"1",weeks:{sun:"Zon",mon:"Maa",tue:"Din",wed:"Woe",thu:"Don",fri:"Vri",sat:"Zat"},months:{m1:"Jan",m2:"Feb",m3:"Mar",m4:"Apr",m5:"Mei",m6:"Jun",m7:"Jul",m8:"Aug",m9:"Sep",m10:"Okt",m11:"Nov",m12:"Dec"}},transfer:{titles:{source:"Bron",target:"Doel"},filterPlaceholder:"Zoeken",notFoundText:"Niet gevonden"},modal:{okText:"Ok",cancelText:"Annuleren"},poptip:{okText:"Ok",cancelText:"Annuleren"},page:{prev:"Vorige pagina",next:"Volgende pagina",total:"Totaal",item:"item",items:"items",prev5:"Vorige 5 pagina's",next5:"Volgende 5 pagina's",page:"/pagina",goto:"Ga",p:""},rate:{star:"Ster",stars:"Sterren"},tree:{emptyText:"Geen data"}}};e(t);export{t as default}; diff --git a/dist/locale/pl-PL.js b/dist/locale/pl-PL.js new file mode 100644 index 0000000000000000000000000000000000000000..dd1231db8912ff84b61d7ccfd3997661ed0fa32c --- /dev/null +++ b/dist/locale/pl-PL.js @@ -0,0 +1 @@ +import{s as e}from"./lang.js";const t={i:{locale:"pl-PL",select:{placeholder:"Wybierz",noMatch:"Brak pasuj\u0105cych wynik\xF3w",loading:"\u0141adowanie"},table:{noDataText:"Brak danych",noFilteredDataText:"Brak danych",confirmFilter:"Potwierd\u017A",resetFilter:"Resetuj",clearFilter:"Wszystkie",sumText:"Razem"},datepicker:{selectDate:"Wybierz dat\u0119",selectTime:"Wybierz godzin\u0119",startTime:"Godzina pocz\u0105tkowa",endTime:"Godzina ko\u0144cowa",clear:"Wyczy\u015B\u0107",ok:"OK",datePanelLabel:"[mmmm] [yyyy]",month:"Miesi\u0105c",month1:"Stycze\u0144",month2:"Luty",month3:"Marzec",month4:"Kwiecie\u0144",month5:"Maj",month6:"Czerwiec",month7:"Lipiec",month8:"Sierpie\u0144",month9:"Wrzesie\u0144",month10:"Pa\u017Adziernik",month11:"Listopad",month12:"Grudzie\u0144",year:"Rok",weekStartDay:"1",weeks:{sun:"Ndz",mon:"Pon",tue:"Wto",wed:"\u015Aro",thu:"Czw",fri:"Pi\u0105",sat:"Sob"},months:{m1:"Sty",m2:"Lut",m3:"Mar",m4:"Kwi",m5:"Maj",m6:"Cze",m7:"Lip",m8:"Sie",m9:"Wrz",m10:"Pa\u017A",m11:"Lis",m12:"Gru"}},transfer:{titles:{source:"\u0179r\xF3d\u0142owy",target:"Docelowy"},filterPlaceholder:"Szukaj tutaj",notFoundText:"Nie znaleziono"},modal:{okText:"OK",cancelText:"Anuluj"},poptip:{okText:"OK",cancelText:"Anuluj"},page:{prev:"Poprzednia Strona",next:"Nast\u0119pna Strona",total:"\u0141\u0105cznie",item:"element",items:"element\xF3w",prev5:"Poprzednie 5 Stron",next5:"Nast\u0119pne 5 Stron",page:"/stron\u0119",goto:"Id\u017A do",p:""},rate:{star:"Gwiazdka",stars:"Gwiazdek"},time:{before:" temu",after:" po",just:"dopiero co",seconds:" sekund",minutes:" minut",hours:" godzin",days:" dni"},tree:{emptyText:"Brak danych"}}};e(t);export{t as default}; diff --git a/dist/locale/pt-BR.js b/dist/locale/pt-BR.js new file mode 100644 index 0000000000000000000000000000000000000000..cc7711e5c0b74c4e2c4391ca8093ea9e766d7a74 --- /dev/null +++ b/dist/locale/pt-BR.js @@ -0,0 +1 @@ +import{s as e}from"./lang.js";const a={i:{locale:"pt-BR",select:{placeholder:"Selecionar",noMatch:"N\xE3o encontrado",loading:"Carregando"},table:{noDataText:"Sem dados",noFilteredDataText:"Sem dados filtrados",confirmFilter:"Confirmar",resetFilter:"Limpar",clearFilter:"Todos",sumText:"Sum"},datepicker:{selectDate:"Selecione a data",selectTime:"Selecione a hora",startTime:"Hora inicial",endTime:"Hora final",clear:"Limpar",ok:"Confirmar",datePanelLabel:"[mmmm] de [yyyy]",month:"M\xEAs",month1:"Janeiro",month2:"Fevereiro",month3:"Mar\xE7o",month4:"Abril",month5:"Maio",month6:"Junho",month7:"Julho",month8:"Agosto",month9:"Setembro",month10:"Outubro",month11:"Novembro",month12:"Dezembro",year:"Ano",weekStartDay:"0",weeks:{sun:"Dom",mon:"Seg",tue:"Ter",wed:"Qua",thu:"Qui",fri:"Sex",sat:"S\xE1b"},months:{m1:"Jan",m2:"Fev",m3:"Mar",m4:"Abr",m5:"Mai",m6:"Jun",m7:"Jul",m8:"Ago",m9:"Set",m10:"Out",m11:"Nov",m12:"Dez"}},transfer:{titles:{source:"Origem",target:"Destino"},filterPlaceholder:"Pesquise aqui",notFoundText:"N\xE3o encontrado"},modal:{okText:"Confirmar",cancelText:"Cancelar"},poptip:{okText:"Confirmar",cancelText:"Cancelar"},page:{prev:"P\xE1gina Anterior",next:"Pr\xF3xima P\xE1gina",total:"Total",item:"item",items:"itens",prev5:"Voltar 5 P\xE1ginas",next5:"Avan\xE7ar 5 P\xE1ginas",page:"/page",goto:"Ir para",p:""},rate:{star:"Estrela",stars:"Estrelas"},tree:{emptyText:"Sem dados"}}};e(a);export{a as default}; diff --git a/dist/locale/pt-PT.js b/dist/locale/pt-PT.js new file mode 100644 index 0000000000000000000000000000000000000000..6c685f30ca45a5d720ebdfa0b8fd1b26531a09ad --- /dev/null +++ b/dist/locale/pt-PT.js @@ -0,0 +1 @@ +import{s as e}from"./lang.js";const a={i:{locale:"pt-PT",select:{placeholder:"Selecionar",noMatch:"N\xE3o encontrado",loading:"A carregar"},table:{noDataText:"Sem dados",noFilteredDataText:"Sem dados filtrados",confirmFilter:"Confirmar",resetFilter:"Limpar",clearFilter:"Todos",sumText:"Sum"},datepicker:{selectDate:"Selecione a data",selectTime:"Selecione a hora",startTime:"Hora inicial",endTime:"Hora final",clear:"Limpar",ok:"Confirmar",datePanelLabel:"[mmmm] de [yyyy]",month:"M\xEAs",month1:"Janeiro",month2:"Fevereiro",month3:"Mar\xE7o",month4:"Abril",month5:"Maio",month6:"Junho",month7:"Julho",month8:"Agosto",month9:"Setembro",month10:"Outubro",month11:"Novembro",month12:"Dezembro",year:"Ano",weekStartDay:"1",weeks:{sun:"Dom",mon:"Seg",tue:"Ter",wed:"Qua",thu:"Qui",fri:"Sex",sat:"S\xE1b"},months:{m1:"Jan",m2:"Fev",m3:"Mar",m4:"Abr",m5:"Mai",m6:"Jun",m7:"Jul",m8:"Ago",m9:"Set",m10:"Out",m11:"Nov",m12:"Dez"}},transfer:{titles:{source:"Origem",target:"Destino"},filterPlaceholder:"Pesquise aqui",notFoundText:"N\xE3o encontrado"},modal:{okText:"Confirmar",cancelText:"Cancelar"},poptip:{okText:"Confirmar",cancelText:"Cancelar"},page:{prev:"P\xE1gina anterior",next:"Pr\xF3xima p\xE1gina",total:"Total",item:"item",items:"itens",prev5:"Voltar 5 p\xE1ginas",next5:"Avan\xE7ar 5 p\xE1ginas",page:"/page",goto:"Ir para",p:""},rate:{star:"Estrela",stars:"Estrelas"},tree:{emptyText:"Sem dados"}}};e(a);export{a as default}; diff --git a/dist/locale/ro-RO.js b/dist/locale/ro-RO.js new file mode 100644 index 0000000000000000000000000000000000000000..4264cb7648d26f15194330c217009e5808870ab6 --- /dev/null +++ b/dist/locale/ro-RO.js @@ -0,0 +1 @@ +import{s as e}from"./lang.js";const t={i:{locale:"ro-RO",select:{placeholder:"Selecteaz\u0103",noMatch:"Niciun rezultat",loading:"\xCEnc\u0103rcare"},table:{noDataText:"F\u0103r\u0103 date",noFilteredDataText:"Filtru f\u0103r\u0103 rezultate",confirmFilter:"Confirm\u0103",resetFilter:"Reseteaz\u0103",clearFilter:"Tot",sumText:"Suma"},datepicker:{selectDate:"Selecteaz\u0103 data",selectTime:"Selecteaz\u0103 timpul",startTime:"Ora ini\u021Bial\u0103",endTime:"Ora final\u0103",clear:"Anuleaz\u0103",ok:"OK",datePanelLabel:"[mmmm] [yyyy]",month:"Lun\u0103",month1:"Ianuarie",month2:"Februarie",month3:"Martie",month4:"Aprilia",month5:"Mai",month6:"Iunie",month7:"Iulie",month8:"August",month9:"Septembrie",month10:"Octombrie",month11:"Noiembrie",month12:"Decembrie",year:"An",weekStartDay:"1",weeks:{sun:"Dum",mon:"Lun",tue:"Mar",wed:"Mie",thu:"Joi",fri:"Vin",sat:"S\xE2m"},months:{m1:"Ian",m2:"Feb",m3:"Mar",m4:"Apr",m5:"Mai",m6:"Iun",m7:"Iul",m8:"Aug",m9:"Sep",m10:"Oct",m11:"Noi",m12:"Dec"}},transfer:{titles:{source:"Origine",target:"Destina\u021Bie"},filterPlaceholder:"Caut\u0103",notFoundText:"Niciun rezultat"},modal:{okText:"OK",cancelText:"Renun\u021B\u0103"},poptip:{okText:"OK",cancelText:"Renun\u021B\u0103"},page:{prev:"Pagina precedent\u0103",next:"Pagina urmatoare",total:"Total",item:"element",items:"elemente",prev5:"5 Pagini precedente",next5:"Urmatoarele 5 Pagini",page:"/pagina",goto:"Du-te la",p:""},rate:{star:"Stea",stars:"Stele"},tree:{emptyText:"F\u0103r\u0103 date"}}};e(t);export{t as default}; diff --git a/dist/locale/ru-RU.js b/dist/locale/ru-RU.js new file mode 100644 index 0000000000000000000000000000000000000000..431cc72982b431bcd0a1ce48162c6517df00663b --- /dev/null +++ b/dist/locale/ru-RU.js @@ -0,0 +1 @@ +import{s as t}from"./lang.js";const e={i:{locale:"ru-RU",select:{placeholder:"\u0412\u044B\u0431\u0440\u0430\u0442\u044C",noMatch:"\u041D\u0435\u0442 \u0441\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044E\u0449\u0438\u0445 \u0434\u0430\u043D\u043D\u044B\u0445",loading:"\u0417\u0430\u0433\u0440\u0443\u0437\u043A\u0430"},table:{noDataText:"\u041D\u0435\u0442 \u0434\u0430\u043D\u043D\u044B\u0445",noFilteredDataText:"\u041D\u0435\u0442 \u0434\u0430\u043D\u043D\u044B\u0445 \u043F\u043E \u0444\u0438\u043B\u044C\u0442\u0440\u0443",confirmFilter:"\u041F\u043E\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u044C",resetFilter:"\u0421\u0431\u0440\u043E\u0441",clearFilter:"\u0412\u0441\u0435",sumText:"\u0421\u0443\u043C\u043C\u0430"},datepicker:{selectDate:"\u0412\u044B\u0431\u0440\u0430\u0442\u044C \u0434\u0430\u0442\u0443",selectTime:"\u0412\u044B\u0431\u0440\u0430\u0442\u044C \u0432\u0440\u0435\u043C\u044F",startTime:"\u041D\u0430\u0447\u0430\u043B\u044C\u043D\u043E\u0435 \u0432\u0440\u0435\u043C\u044F",endTime:"\u041A\u043E\u043D\u0435\u0447\u043D\u043E\u0435 \u0432\u0440\u0435\u043C\u044F",clear:"\u041E\u0447\u0438\u0441\u0442\u0438\u0442\u044C",ok:"OK",datePanelLabel:"[Mmmm] [yyyy]",month:"",month1:"\u042F\u043D\u0432\u0430\u0440\u044C",month2:"\u0424\u0435\u0432\u0440\u0430\u043B\u044C",month3:"\u041C\u0430\u0440\u0442",month4:"\u0410\u043F\u0440\u0435\u043B\u044C",month5:"\u041C\u0430\u0439",month6:"\u0418\u044E\u043D\u044C",month7:"\u0418\u044E\u043B\u044C",month8:"\u0410\u0432\u0433\u0443\u0441\u0442",month9:"\u0421\u0435\u043D\u0442\u044F\u0431\u0440\u044C",month10:"\u041E\u043A\u0442\u044F\u0431\u0440\u044C",month11:"\u041D\u043E\u044F\u0431\u0440\u044C",month12:"\u0414\u0435\u043A\u0430\u0431\u0440\u044C",year:"",weekStartDay:"1",weeks:{sun:"\u0412\u0441",mon:"\u041F\u043D",tue:"\u0412\u0442",wed:"\u0421\u0440",thu:"\u0427\u0442",fri:"\u041F\u0442",sat:"\u0421\u0431"},months:{m1:"\u042F\u043D\u0432",m2:"\u0424\u0435\u0432",m3:"\u041C\u0430\u0440",m4:"\u0410\u043F\u0440",m5:"\u041C\u0430\u0439",m6:"\u0418\u044E\u043D",m7:"\u0418\u044E\u043B",m8:"\u0410\u0432\u0433",m9:"\u0421\u0435\u043D",m10:"\u041E\u043A\u0442",m11:"\u041D\u043E\u044F",m12:"\u0414\u0435\u043A"}},transfer:{titles:{source:"\u0418\u0441\u0442\u043E\u0447\u043D\u0438\u043A",target:"\u0426\u0435\u043B\u044C"},filterPlaceholder:"\u0418\u0441\u043A\u0430\u0442\u044C \u0437\u0434\u0435\u0441\u044C",notFoundText:"\u041D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u043E"},modal:{okText:"OK",cancelText:"\u041E\u0442\u043C\u0435\u043D\u0438\u0442\u044C"},poptip:{okText:"OK",cancelText:"\u041E\u0442\u043C\u0435\u043D\u0438\u0442\u044C"},page:{prev:"\u041F\u0440\u0435\u0434. \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0430",next:"\u0421\u043B\u0435\u0434. \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0430",total:"\u0412\u0441\u0435\u0433\u043E",item:"\u043F\u0443\u043D\u043A\u0442",items:"\u043F\u0443\u043D\u043A\u0442\u044B",prev5:"\u041F\u0440\u0435\u0434. 5 \u0441\u0442\u0440\u0430\u043D\u0438\u0446",next5:"\u0421\u043B\u0435\u0434. 5 \u0441\u0442\u0440\u0430\u043D\u0438\u0446",page:" \u043D\u0430 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0435",goto:"\u041F\u0435\u0440\u0435\u0439\u0442\u0438 \u043A",p:""},rate:{star:"\u0417\u0432\u0435\u0437\u0434\u0430",stars:"\u0417\u0432\u0435\u0437\u0434\u044B"},tree:{emptyText:"\u041D\u0435\u0442 \u0434\u0430\u043D\u043D\u044B\u0445"}}};t(e);export{e as default}; diff --git a/dist/locale/si-LK.js b/dist/locale/si-LK.js new file mode 100644 index 0000000000000000000000000000000000000000..6ce730cbedc1c5c8166c27b9f343f499a8d107e1 --- /dev/null +++ b/dist/locale/si-LK.js @@ -0,0 +1 @@ +import{s as e}from"./lang.js";const t={i:{locale:"si-LK",select:{placeholder:"\u0DAD\u0DDD\u0DBB\u0DB1\u0DCA\u0DB1",noMatch:"\u0D9C\u0DD0\u0DC5\u0DB4\u0DD9\u0DB1 \u0DAF\u0DAD\u0DCA\u0DAD \u0DB1\u0DD0\u0DAD",loading:"\u0DB4\u0DD6\u0DBB\u0DAB\u0DBA \u0DC0\u0DD9\u0DB8\u0DD2\u0DB1\u0DCA"},table:{noDataText:"\u0DAF\u0DAD\u0DCA\u0DAD \u0DB1\u0DD0\u0DAD",noFilteredDataText:"\u0DB4\u0DD9\u0DBB\u0DC4\u0DB1\u0DCA \u0DAF\u0DAD\u0DCA\u0DAD \u0DB1\u0DDC\u0DB8\u0DD0\u0DAD",confirmFilter:"\u0DAD\u0DC4\u0DC0\u0DD4\u0DBB\u0DD4 \u0D9A\u0DBB\u0DB1\u0DCA\u0DB1",resetFilter:"\u0DBA\u0DC5\u0DD2 \u0DB4\u0DD2\u0DC4\u0DD2\u0DA7\u0DD4\u0DC0\u0DB1\u0DCA\u0DB1",clearFilter:"\u0DC3\u0DD2\u0DBA\u0DBD\u0DCA\u0DBD",sumText:"\u0D91\u0D9A\u0DAD\u0DD4\u0DC0"},datepicker:{selectDate:"\u0DAF\u0DD2\u0DB1\u0DBA \u0DAD\u0DDD\u0DBB\u0DB1\u0DCA\u0DB1",selectTime:"\u0DC0\u0DDA\u0DBD\u0DCF\u0DC0 \u0DAD\u0DDD\u0DBB\u0DB1\u0DCA\u0DB1",startTime:"\u0D86\u0DBB\u0DB8\u0DCA\u0DB7\u0D9A \u0DC0\u0DDA\u0DBD\u0DCF\u0DC0",endTime:"\u0D85\u0DC0\u0DC3\u0DB1\u0DCA \u0DC0\u0DDA\u0DBD\u0DCF\u0DC0",clear:"\u0DC4\u0DD2\u0DC3\u0DCA \u0D9A\u0DBB\u0DB1\u0DCA\u0DB1",ok:"\u0DC4\u0DBB\u0DD2",datePanelLabel:"[yyyy] [mmmm]",month:"\u0DB8\u0DCF\u0DC3\u0DBA",month1:"\u0DAF\u0DD4\u0DBB\u0DD4\u0DAD\u0DD4",month2:"\u0DB1\u0DC0\u0DB8\u0DCA",month3:"\u0DB8\u0DD0\u0DAF\u0DD2\u0DB1\u0DCA",month4:"\u0DB6\u0D9A\u0DCA",month5:"\u0DC0\u0DD9\u0DC3\u0D9A\u0DCA",month6:"\u0DB4\u0DDC\u0DC3\u0DDC\u0DB1\u0DCA",month7:"\u0D87\u0DC3\u0DC5",month8:"\u0DB1\u0DD2\u0D9A\u0DD2\u0DAB\u0DD2",month9:"\u0DB6\u0DD2\u0DB1\u0DBB",month10:"\u0DC0\u0DB4\u0DCA",month11:"\u0D89\u0DBD\u0DCA",month12:"\u0D8B\u0DB3\u0DD4\u0DC0\u0DB4\u0DCA",year:"\u0DC0\u0DBB\u0DCA\u0DC2\u0DBA",weekStartDay:"0",weeks:{sun:"\u0D89\u0DBB\u0DD2\u0DAF\u0DCF",mon:"\u0DC3\u0DB3\u0DD4\u0DAF\u0DCF",tue:"\u0D85\u0D9F\u0DC4",wed:"\u0DB6\u0DAF\u0DCF\u0DAF\u0DCF",thu:"\u0DB6\u0DCA\u200D\u0DBB\u0DC4\u0DC3\u0DCA",fri:"\u0DC3\u0DD2\u0D9A\u0DD4",sat:"\u0DC3\u0DD9\u0DB1"},months:{m1:"\u0DAF\u0DD4\u0DBB\u0DD4\u0DAD\u0DD4",m2:"\u0DB1\u0DC0\u0DB8\u0DCA",m3:"\u0DB8\u0DD0\u0DAF\u0DD2\u0DB1\u0DCA",m4:"\u0DB6\u0D9A\u0DCA",m5:"\u0DC0\u0DD9\u0DC3\u0D9A\u0DCA",m6:"\u0DB4\u0DD9\u0DC3\u0DDC\u0DB1\u0DCA",m7:"\u0D87\u0DC3\u0DC5",m8:"\u0DB1\u0DD2\u0D9A\u0DD2\u0DAB\u0DD2",m9:"\u0DB6\u0DD2\u0DB1\u0DBB",m10:"\u0DC0\u0DB4\u0DCA",m11:"\u0D89\u0DBD\u0DCA",m12:"\u0D8B\u0DB3\u0DD4\u0DC0"}},transfer:{titles:{source:"\u0DB4\u0DCA\u200D\u0DBB\u0DB7\u0DC0\u0DBA",target:"\u0D89\u0DBD\u0D9A\u0DCA\u0D9A\u0DBA"},filterPlaceholder:"\u0DB8\u0DD9\u0DAD\u0DD0\u0DB1 \u0DC3\u0DDC\u0DBA\u0DB1\u0DCA\u0DB1",notFoundText:"\u0DC3\u0DDC\u0DBA\u0DCF \u0D9C\u0DAD \u0DB1\u0DDC\u0DC4\u0DD0\u0D9A"},modal:{okText:"\u0DC4\u0DBB\u0DD2",cancelText:"\u0D85\u0DC0\u0DBD\u0D82\u0D9C\u0DD4 \u0D9A\u0DBB\u0DB1\u0DCA\u0DB1"},poptip:{okText:"\u0DC4\u0DBB\u0DD2",cancelText:"\u0D85\u0DC0\u0DBD\u0D82\u0D9C\u0DD4 \u0D9A\u0DBB\u0DB1\u0DCA\u0DB1"},page:{prev:"\u0DB4\u0DD9\u0DBB \u0DB4\u0DD2\u0DA7\u0DD4\u0DC0",next:"\u0D8A\u0DC5\u0D9F \u0DB4\u0DD2\u0DA7\u0DD4\u0DC0",total:"\u0DB8\u0DD4\u0DC5\u0DD4 \u0D91\u0D9A\u0DAD\u0DD4\u0DC0",item:"\u0D85\u0DAE\u0D9A\u0DBA",items:"\u0D85\u0DAE\u0D9A",prev5:"\u0DB4\u0DD9\u0DBB \u0DB4\u0DD2\u0DA7\u0DD4 5",next5:"\u0D8A\u0DC5\u0D9F \u0DB4\u0DD2\u0DA7\u0DD4 5",page:"/\u0DB4\u0DD2\u0DA7\u0DD4\u0DC0",goto:"\u0DA7 \u0DBA\u0DB1\u0DCA\u0DB1",p:""},rate:{star:"\u0DAD\u0DBB\u0DD4\u0DC0",stars:"\u0DAD\u0DBB\u0DD4"},time:{before:" \u0DB4\u0DD9\u0DBB",after:" \u0DB4\u0DC3\u0DD4",just:"\u0DB8\u0DDA \u0DAF\u0DD0\u0DB1\u0DCA",seconds:" \u0DAD\u0DAD\u0DCA\u0DB4\u0DBB",minutes:" \u0DC0\u0DD2\u0DB1\u0DCF\u0DA9\u0DD2",hours:" \u0DB4\u0DD0\u0DBA",days:" \u0DAF\u0DD2\u0DB1"},tree:{emptyText:"\u0DAF\u0DAD\u0DCA\u0DAD \u0DB1\u0DD0\u0DAD"}}};e(t);export{t as default}; diff --git a/dist/locale/sv-SE.js b/dist/locale/sv-SE.js new file mode 100644 index 0000000000000000000000000000000000000000..9e19d162ffd265a6491bf9edb8e265951468f554 --- /dev/null +++ b/dist/locale/sv-SE.js @@ -0,0 +1 @@ +import{s as t}from"./lang.js";const e={i:{locale:"sv-SE",select:{placeholder:"V\xE4lj",noMatch:"Ingen tr\xE4ff",loading:"Laddar"},table:{noDataText:"Ingen data",noFilteredDataText:"Ingen filter data",confirmFilter:"Bekr\xE4fta",resetFilter:"\xC5terst\xE4ll filter",clearFilter:"Rensa filter",sumText:"Sum"},datepicker:{selectDate:"V\xE4lj datum",selectTime:"V\xE4lj tidpunkt",startTime:"Start tid",endTime:"Slut tid",clear:"Rensa",ok:"Ok",datePanelLabel:"[mmmm] [yyyy]",month:"M\xE5nad",month1:"Januari",month2:"Februari",month3:"Mars",month4:"April",month5:"Maj",month6:"Juni",month7:"Juli",month8:"Augusti",month9:"September",month10:"Oktober",month11:"November",month12:"December",year:"\xC5r",weekStartDay:"1",weeks:{sun:"S\xF6n",mon:"M\xE5n",tue:"Tis",wed:"Ons",thu:"Tor",fri:"Fre",sat:"L\xF6r"},months:{m1:"Jan",m2:"Feb",m3:"Mar",m4:"Apr",m5:"Maj",m6:"Jun",m7:"Jul",m8:"Aug",m9:"Sep",m10:"Okt",m11:"Nov",m12:"Dec"}},transfer:{titles:{source:"K\xE4lla",target:"M\xE5l"},filterPlaceholder:"S\xF6k h\xE4r",notFoundText:"Hittade inte"},modal:{okText:"Ok",cancelText:"Avbryt"},poptip:{okText:"Ok",cancelText:"Avbryt"},page:{prev:"F\xF6reg\xE5ende sida",next:"N\xE4sta sida",total:"Totalt",item:"objekt",items:"objekt",prev5:"F\xF6reg\xE5ende 5 sidor",next5:"N\xE4sta 5 sidor",page:"/page",goto:"G\xE5 till",p:""},rate:{star:"Stj\xE4rna",stars:"Stj\xE4rnor"},tree:{emptyText:"Ingen data"}}};t(e);export{e as default}; diff --git a/dist/locale/th-TH.js b/dist/locale/th-TH.js new file mode 100644 index 0000000000000000000000000000000000000000..b74dbe939e21379fc9ee088cd9bf4c260b8fb7ed --- /dev/null +++ b/dist/locale/th-TH.js @@ -0,0 +1 @@ +import{s as t}from"./lang.js";const e={i:{locale:"th-TH",select:{placeholder:"\u0E15\u0E31\u0E27\u0E40\u0E25\u0E37\u0E2D\u0E01",noMatch:"\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E44\u0E21\u0E48\u0E15\u0E23\u0E07\u0E01\u0E31\u0E19",loading:"\u0E14\u0E32\u0E27\u0E19\u0E4C\u0E42\u0E2B\u0E25\u0E14"},table:{noDataText:"\u0E44\u0E21\u0E48\u0E1E\u0E1A\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25",noFilteredDataText:"\u0E44\u0E21\u0E48\u0E1E\u0E1A\u0E15\u0E31\u0E27\u0E01\u0E23\u0E2D\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25",confirmFilter:"\u0E22\u0E37\u0E19\u0E22\u0E31\u0E19",resetFilter:"\u0E23\u0E35\u0E40\u0E0B\u0E47\u0E15",clearFilter:"\u0E17\u0E31\u0E49\u0E07\u0E2B\u0E21\u0E14",sumText:"Sum"},datepicker:{selectDate:"\u0E40\u0E25\u0E37\u0E2D\u0E01\u0E27\u0E31\u0E19",selectTime:"\u0E40\u0E25\u0E37\u0E2D\u0E01\u0E40\u0E27\u0E25\u0E32",startTime:"\u0E40\u0E23\u0E34\u0E48\u0E21\u0E40\u0E27\u0E25\u0E32",endTime:"\u0E2A\u0E34\u0E49\u0E19\u0E2A\u0E38\u0E14\u0E40\u0E27\u0E25\u0E32",clear:"\u0E25\u0E49\u0E32\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25",ok:"\u0E15\u0E01\u0E25\u0E07",datePanelLabel:"[mmmm] [yyyy]",month:"\u0E40\u0E14\u0E37\u0E2D\u0E19",month1:"\u0E21\u0E01\u0E23\u0E32\u0E15\u0E21",month2:"\u0E01\u0E38\u0E21\u0E20\u0E32\u0E1E\u0E31\u0E19\u0E18\u0E4C",month3:"\u0E21\u0E35\u0E19\u0E32\u0E04\u0E21",month4:"\u0E40\u0E21\u0E29\u0E32\u0E22\u0E19",month5:"\u0E1E\u0E24\u0E29\u0E20\u0E32\u0E04\u0E21",month6:"\u0E21\u0E34\u0E16\u0E38\u0E19\u0E32\u0E22\u0E19",month7:"\u0E01\u0E23\u0E01\u0E0E\u0E32\u0E04\u0E21",month8:"\u0E2A\u0E34\u0E07\u0E2B\u0E32\u0E04\u0E21",month9:"\u0E01\u0E31\u0E19\u0E22\u0E32\u0E22\u0E19",month10:"\u0E15\u0E38\u0E25\u0E32\u0E04\u0E21",month11:"\u0E1E\u0E24\u0E28\u0E08\u0E34\u0E01\u0E32\u0E22\u0E19",month12:"\u0E18\u0E31\u0E19\u0E27\u0E32\u0E04\u0E21",year:"\u0E1B\u0E35",weekStartDay:"0",weeks:{sun:"\u0E2D\u0E32\u0E17\u0E34\u0E15\u0E22\u0E4C",mon:"\u0E08\u0E31\u0E19\u0E17\u0E23\u0E4C",tue:"\u0E2D\u0E31\u0E07\u0E04\u0E32\u0E23",wed:"\u0E1E\u0E38\u0E18",thu:"\u0E1E\u0E24\u0E2B\u0E31\u0E2A\u0E1A\u0E14\u0E35",fri:"\u0E28\u0E38\u0E01\u0E23\u0E4C",sat:"\u0E40\u0E2A\u0E32\u0E23\u0E4C"},months:{m1:"\u0E21.\u0E04.",m2:"\u0E01.\u0E1E.",m3:"\u0E21\u0E35.\u0E04.",m4:"\u0E40\u0E21.\u0E22.",m5:"\u0E1E.\u0E04.",m6:"\u0E21\u0E34.\u0E22.",m7:"\u0E01.\u0E04.",m8:"\u0E2A.\u0E04.",m9:"\u0E01.\u0E22.",m10:"\u0E15.\u0E04.",m11:"\u0E1E.\u0E22.",m12:"\u0E18.\u0E04."}},transfer:{titles:{source:"\u0E41\u0E2B\u0E25\u0E48\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25",target:"\u0E40\u0E1B\u0E49\u0E32\u0E2B\u0E21\u0E32\u0E22"},filterPlaceholder:"\u0E04\u0E49\u0E19\u0E2B\u0E32\u0E17\u0E35\u0E48\u0E19\u0E35\u0E49",notFoundText:"\u0E04\u0E49\u0E19\u0E2B\u0E32\u0E44\u0E21\u0E48\u0E1E\u0E1A"},modal:{okText:"\u0E15\u0E01\u0E25\u0E07",cancelText:"\u0E22\u0E01\u0E40\u0E25\u0E34\u0E01"},poptip:{okText:"\u0E15\u0E01\u0E25\u0E07",cancelText:"\u0E22\u0E01\u0E40\u0E25\u0E34\u0E01"},page:{prev:"\u0E2B\u0E19\u0E49\u0E32\u0E01\u0E48\u0E2D\u0E19",next:"\u0E2B\u0E19\u0E49\u0E32\u0E16\u0E31\u0E14\u0E44\u0E1B",total:"\u0E17\u0E31\u0E49\u0E07\u0E2B\u0E21\u0E14",item:"\u0E44\u0E2D\u0E40\u0E17\u0E21",items:"\u0E44\u0E2D\u0E40\u0E17\u0E21",prev5:"\u0E01\u0E48\u0E2D\u0E19 5 \u0E2B\u0E19\u0E49\u0E32",next5:"\u0E16\u0E31\u0E14\u0E44\u0E1B 5 \u0E2B\u0E19\u0E49\u0E32",page:"/\u0E2B\u0E19\u0E49\u0E32",goto:"\u0E44\u0E1B\u0E22\u0E31\u0E07",p:"\u0E2B\u0E19\u0E49\u0E32"},rate:{star:"\u0E14\u0E27\u0E07",stars:"\u0E14\u0E27\u0E07"},tree:{emptyText:"\u0E44\u0E21\u0E48\u0E1E\u0E1A\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25"}}};t(e);export{e as default}; diff --git a/dist/locale/tr-TR.js b/dist/locale/tr-TR.js new file mode 100644 index 0000000000000000000000000000000000000000..07f204c649d3f4092c469f095e02e10f896c63b6 --- /dev/null +++ b/dist/locale/tr-TR.js @@ -0,0 +1 @@ +import{s as e}from"./lang.js";const a={i:{locale:"tr-TR",select:{placeholder:"Se\xE7",noMatch:"E\u015Fle\u015Fen veri yok",loading:"y\xFCkleme"},table:{noDataText:"Veri Yok",noFilteredDataText:"S\xFCz\xFClen veri yok",confirmFilter:"Onayla",resetFilter:"S\u0131f\u0131rla",clearFilter:"Hepsi",sumText:"Sum"},datepicker:{selectDate:"Tarih se\xE7",selectTime:"Zaman se\xE7",startTime:"Ba\u015Flang\u0131\xE7",endTime:"Biti\u015Fe",clear:"Temizle",ok:"Tamam",datePanelLabel:"[mmmm] [yyyy]",month:"",month1:"Ocak",month2:"\u015Eubat",month3:"Mart",month4:"Nisan",month5:"May\u0131s",month6:"Haziran",month7:"Temmuz",month8:"A\u011Fustos",month9:"Eyl\xFCl",month10:"Ekim",month11:"Kas\u0131m",month12:"Aral\u0131k",year:"",weekStartDay:"0",weeks:{sun:"Paz",mon:"Pzt",tue:"Sal",wed:"\xC7ar",thu:"Per",fri:"Cum",sat:"Cmt"},months:{m1:"Oca",m2:"\u015Eub",m3:"Mar",m4:"Nis",m5:"May",m6:"Haz",m7:"Tem",m8:"A\u011Fu",m9:"Eyl",m10:"Ekm",m11:"Kas",m12:"Ara"}},transfer:{titles:{source:"Kaynak",target:"Hedef"},filterPlaceholder:"Arama yap\u0131n",notFoundText:"Bulunamad\u0131"},modal:{okText:"Tamam",cancelText:"\u0130ptal"},poptip:{okText:"Tamam",cancelText:"\u0130ptal"},page:{prev:"\xD6nceki",next:"Sonraki",total:"Toplam",item:"\xF6\u011Fe",items:"\xF6\u011Feler",prev5:"\xD6nceki 5 Sayfa",next5:"Sonraki 5 Sayfa",page:"/sayfa",goto:"Git",p:""},rate:{star:"Y\u0131ld\u0131z",stars:"Y\u0131ld\u0131z"},time:{before:" \xF6nce",after:" sonra",just:"hemen \u015Fimdi",seconds:" saniye",minutes:" dakika",hours:" saat",days:" g\xFCn"},tree:{emptyText:"Veri Yok"}}};e(a);export{a as default}; diff --git a/dist/locale/uk-UA.js b/dist/locale/uk-UA.js new file mode 100644 index 0000000000000000000000000000000000000000..752932ecd594092ab364423475088f82f32009eb --- /dev/null +++ b/dist/locale/uk-UA.js @@ -0,0 +1 @@ +import{s as e}from"./lang.js";const t={i:{locale:"uk-UA",select:{placeholder:"\u041E\u0431\u0440\u0430\u0442\u0438",noMatch:"\u041D\u0435\u043C\u0430\u0454 \u0432\u0456\u0434\u043F\u043E\u0432\u0456\u0434\u043D\u0438\u0445 \u0434\u0430\u043D\u0438\u0445",loading:"\u0417\u0430\u0432\u0430\u043D\u0442\u0430\u0436\u0435\u043D\u043D\u044F"},table:{noDataText:"\u041D\u0435\u043C\u0430\u0454 \u0434\u0430\u043D\u0438\u0445",noFilteredDataText:"\u041D\u0435\u043C\u0430\u0454 \u0434\u0430\u043D\u0438\u0445 \u043F\u043E \u0444\u0456\u043B\u044C\u0442\u0440\u0443",confirmFilter:"\u041F\u0456\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0438",resetFilter:"\u0421\u043A\u0438\u043D\u0443\u0442\u0438",clearFilter:"\u0423\u0441\u0435",sumText:"Sum"},datepicker:{selectDate:"\u041E\u0431\u0440\u0430\u0442\u0438 \u0434\u0430\u0442\u0443",selectTime:"\u041E\u0431\u0440\u0430\u0442\u0438 \u0447\u0430\u0441",startTime:"\u041F\u043E\u0447\u0430\u0442\u043A\u043E\u0432\u0438\u0439 \u0447\u0430\u0441",endTime:"\u041A\u0456\u043D\u0446\u0435\u0432\u0438\u0439 \u0447\u0430\u0441",clear:"\u041E\u0447\u0438\u0441\u0442\u0438\u0442\u0438",ok:"OK",datePanelLabel:"[Mmmm] [yyyy]",month:"",month1:"\u0421\u0456\u0447\u0435\u043D\u044C",month2:"\u041B\u044E\u0442\u0438\u0439",month3:"\u0411\u0435\u0440\u0435\u0437\u0435\u043D\u044C",month4:"\u041A\u0432\u0456\u0442\u0435\u043D\u044C",month5:"\u0422\u0440\u0430\u0432\u0435\u043D\u044C",month6:"\u0427\u0435\u0440\u0432\u0435\u043D\u044C",month7:"\u041B\u0438\u043F\u0435\u043D\u044C",month8:"\u0421\u0435\u0440\u043F\u0435\u043D\u044C",month9:"\u0412\u0435\u0440\u0435\u0441\u0435\u043D\u044C",month10:"\u0416\u043E\u0432\u0442\u0435\u043D\u044C",month11:"\u041B\u0438\u0441\u0442\u043E\u043F\u0430\u0434",month12:"\u0413\u0440\u0443\u0434\u0435\u043D\u044C",year:"",weekStartDay:"1",weeks:{sun:"\u041D\u0434",mon:"\u041F\u043D",tue:"\u0412\u0442",wed:"\u0421\u0440",thu:"\u0427\u0442",fri:"\u041F\u0442",sat:"\u0421\u0431"},months:{m1:"\u0421\u0456\u0447",m2:"\u041B\u044E\u0442",m3:"\u0411\u0435\u0440",m4:"\u041A\u0432\u0456",m5:"\u0422\u0440\u0430",m6:"\u0427\u0435\u0440",m7:"\u041B\u0438\u043F",m8:"\u0421\u0435\u0440",m9:"\u0412\u0435\u0440",m10:"\u0416\u043E\u0432",m11:"\u041B\u0438\u0441",m12:"\u0413\u0440\u0443"}},transfer:{titles:{source:"\u0414\u0436\u0435\u0440\u0435\u043B\u043E",target:"\u0426\u0456\u043B\u044C"},filterPlaceholder:"\u0428\u0443\u043A\u0430\u0442\u0438 \u0442\u0443\u0442",notFoundText:"\u041D\u0435 \u0437\u043D\u0430\u0439\u0434\u0435\u043D\u043E"},modal:{okText:"OK",cancelText:"\u0421\u043A\u0430\u0441\u0443\u0432\u0430\u0442\u0438"},poptip:{okText:"OK",cancelText:"\u0421\u043A\u0430\u0441\u0443\u0432\u0430\u0442\u0438"},page:{prev:"\u041F\u043E\u043F\u0435\u0440. \u0441\u0442\u043E\u0440\u0456\u043D\u043A\u0430",next:"\u041D\u0430\u0441\u0442. \u0441\u0442\u043E\u0440\u0456\u043D\u043A\u0430",total:"\u0412\u0441\u044C\u043E\u0433\u043E",item:"\u043F\u0443\u043D\u043A\u0442",items:"\u043F\u0443\u043D\u043A\u0442\u0438",prev5:"\u041F\u043E\u043F\u0435\u0440. 5 \u0441\u0442\u043E\u0440\u0456\u043D\u043E\u043A",next5:"\u041D\u0430\u0441\u0442. 5 \u0441\u0442\u043E\u0440\u0456\u043D\u043E\u043A",page:"/page",goto:"\u0419\u0442\u0438 \u0434\u043E",p:""},rate:{star:"\u0417\u0456\u0440\u043A\u0430",stars:"\u0417\u0456\u0440\u043A\u0438"},tree:{emptyText:"\u041D\u0435\u043C\u0430\u0454 \u0434\u0430\u043D\u0438\u0445"}}};e(t);export{t as default}; diff --git a/dist/locale/vi-VN.js b/dist/locale/vi-VN.js new file mode 100644 index 0000000000000000000000000000000000000000..21d12666e18dcc359bc990e7066b56e644cf388d --- /dev/null +++ b/dist/locale/vi-VN.js @@ -0,0 +1 @@ +import{s as t}from"./lang.js";const n={i:{locale:"vi-VN",select:{placeholder:"Ch\u1ECDn",noMatch:"Kh\xF4ng t\xECm th\u1EA5y",loading:"\u0110ang t\u1EA3i"},table:{noDataText:"Kh\xF4ng c\xF3 d\u1EEF li\u1EC7u",noFilteredDataText:"Kh\xF4ng c\xF3 d\u1EEF li\u1EC7u l\u1ECDc",confirmFilter:"X\xE1c nh\u1EADn",resetFilter:"L\xE0m l\u1EA1i",clearFilter:"X\xF3a h\u1EBFt",sumText:"T\u1ED5ng"},datepicker:{selectDate:"Ch\u1ECDn ng\xE0y",selectTime:"Ch\u1ECDn gi\u1EDD",startTime:"Ng\xE0y b\u1EAFt \u0111\u1EA7u",endTime:"Ng\xE0y k\u1EBFt th\xFAc",clear:"X\xF3a",ok:"\u0110\u1ED3ng \xFD",datePanelLabel:"[Th\xE1ng mm]/[yyyy]",month:"",month1:"Th\xE1ng 1",month2:"Th\xE1ng 2",month3:"Th\xE1ng 3",month4:"Th\xE1ng 4",month5:"Th\xE1ng 5",month6:"Th\xE1ng 6",month7:"Th\xE1ng 7",month8:"Th\xE1ng 8",month9:"Th\xE1ng 9",month10:"Th\xE1ng 10",month11:"Th\xE1ng 11",month12:"Th\xE1ng 12",year:"",weekStartDay:"1",weeks:{sun:"CN",mon:"T2",tue:"T3",wed:"T4",thu:"T5",fri:"T6",sat:"T7"},months:{m1:"Th.1",m2:"Th.2",m3:"Th.3",m4:"Th.4",m5:"Th.5",m6:"Th.6",m7:"Th.7",m8:"Th.8",m9:"Th.9",m10:"Th.10",m11:"Th.11",m12:"Th.12"}},transfer:{titles:{source:"Ngu\u1ED3n",target:"\u0110\xEDch"},filterPlaceholder:"Nh\u1EADp t\u1EEB kh\xF3a",notFoundText:"Kh\xF4ng t\xECm th\u1EA5y"},modal:{okText:"\u0110\u1ED3ng \xFD",cancelText:"H\u1EE7y b\u1ECF"},poptip:{okText:"\u0110\u1ED3ng \xFD",cancelText:"H\u1EE7y b\u1ECF"},page:{prev:"Trang tr\u01B0\u1EDBc",next:"Trang k\u1EBF",total:"T\u1ED5ng",item:"k\u1EBFt qu\u1EA3",items:"k\u1EBFt qu\u1EA3",prev5:"5 trang tr\u01B0\u1EDBc",next5:"5 trang k\u1EBF",page:"/trang",goto:"T\u1EDBi trang",p:""},rate:{star:"Sao",stars:"Sao"},tree:{emptyText:"Kh\xF4ng c\xF3 d\u1EEF li\u1EC7u"}}};t(n);export{n as default}; diff --git a/dist/locale/zh-CN.js b/dist/locale/zh-CN.js new file mode 100644 index 0000000000000000000000000000000000000000..afc18bcdd0d32c7e5b1fcf6c1915f463bb7298ef --- /dev/null +++ b/dist/locale/zh-CN.js @@ -0,0 +1 @@ +import{s as e}from"./lang.js";const t={i:{locale:"zh-CN",select:{placeholder:"\u8BF7\u9009\u62E9",noMatch:"\u65E0\u5339\u914D\u6570\u636E",loading:"\u52A0\u8F7D\u4E2D"},table:{noDataText:"\u6682\u65E0\u6570\u636E",noFilteredDataText:"\u6682\u65E0\u7B5B\u9009\u7ED3\u679C",confirmFilter:"\u7B5B\u9009",resetFilter:"\u91CD\u7F6E",clearFilter:"\u5168\u90E8",sumText:"\u5408\u8BA1"},datepicker:{selectDate:"\u9009\u62E9\u65E5\u671F",selectTime:"\u9009\u62E9\u65F6\u95F4",startTime:"\u5F00\u59CB\u65F6\u95F4",endTime:"\u7ED3\u675F\u65F6\u95F4",clear:"\u6E05\u7A7A",ok:"\u786E\u5B9A",datePanelLabel:"[yyyy\u5E74] [m\u6708]",month:"\u6708",month1:"1 \u6708",month2:"2 \u6708",month3:"3 \u6708",month4:"4 \u6708",month5:"5 \u6708",month6:"6 \u6708",month7:"7 \u6708",month8:"8 \u6708",month9:"9 \u6708",month10:"10 \u6708",month11:"11 \u6708",month12:"12 \u6708",year:"\u5E74",weekStartDay:"0",weeks:{sun:"\u65E5",mon:"\u4E00",tue:"\u4E8C",wed:"\u4E09",thu:"\u56DB",fri:"\u4E94",sat:"\u516D"},months:{m1:"1\u6708",m2:"2\u6708",m3:"3\u6708",m4:"4\u6708",m5:"5\u6708",m6:"6\u6708",m7:"7\u6708",m8:"8\u6708",m9:"9\u6708",m10:"10\u6708",m11:"11\u6708",m12:"12\u6708"}},transfer:{titles:{source:"\u6E90\u5217\u8868",target:"\u76EE\u7684\u5217\u8868"},filterPlaceholder:"\u8BF7\u8F93\u5165\u641C\u7D22\u5185\u5BB9",notFoundText:"\u5217\u8868\u4E3A\u7A7A"},modal:{okText:"\u786E\u5B9A",cancelText:"\u53D6\u6D88"},poptip:{okText:"\u786E\u5B9A",cancelText:"\u53D6\u6D88"},page:{prev:"\u4E0A\u4E00\u9875",next:"\u4E0B\u4E00\u9875",total:"\u5171",item:"\u6761",items:"\u6761",prev5:"\u5411\u524D 5 \u9875",next5:"\u5411\u540E 5 \u9875",page:"\u6761/\u9875",goto:"\u8DF3\u81F3",p:"\u9875"},rate:{star:"\u661F",stars:"\u661F"},time:{before:"\u524D",after:"\u540E",just:"\u521A\u521A",seconds:"\u79D2",minutes:"\u5206\u949F",hours:"\u5C0F\u65F6",days:"\u5929"},tree:{emptyText:"\u6682\u65E0\u6570\u636E"},image:{zoomIn:"\u653E\u5927",zoomOut:"\u7F29\u5C0F",rotateLeft:"\u5DE6\u65CB\u8F6C",rotateRight:"\u53F3\u65CB\u8F6C",fail:"\u5931\u8D25",preview:"\u9884\u89C8"}}};e(t);export{t as default}; diff --git a/dist/locale/zh-TW.js b/dist/locale/zh-TW.js new file mode 100644 index 0000000000000000000000000000000000000000..d0a69f7e51a1255eef98e18ffbf3ef59a3c8101f --- /dev/null +++ b/dist/locale/zh-TW.js @@ -0,0 +1 @@ +import{s as t}from"./lang.js";const e={i:{locale:"zh-TW",select:{placeholder:"\u8ACB\u9078\u64C7",noMatch:"\u7121\u5339\u914D\u8CC7\u6599",loading:"\u52A0\u8F09\u4E2D"},table:{noDataText:"\u66AB\u7121\u8CC7\u6599",noFilteredDataText:"\u66AB\u7121\u7BE9\u9078\u7D50\u679C",confirmFilter:"\u7BE9\u9078",resetFilter:"\u91CD\u7F6E",clearFilter:"\u5168\u90E8",sumText:"\u5408\u8A08"},datepicker:{selectDate:"\u9078\u64C7\u65E5\u671F",selectTime:"\u9078\u64C7\u6642\u9593",startTime:"\u958B\u59CB\u6642\u9593",endTime:"\u7D50\u675F\u6642\u9593",clear:"\u6E05\u7A7A",ok:"\u78BA\u5B9A",datePanelLabel:"[yyyy\u5E74] [m\u6708]",month:"\u6708",month1:"1 \u6708",month2:"2 \u6708",month3:"3 \u6708",month4:"4 \u6708",month5:"5 \u6708",month6:"6 \u6708",month7:"7 \u6708",month8:"8 \u6708",month9:"9 \u6708",month10:"10 \u6708",month11:"11 \u6708",month12:"12 \u6708",year:"\u5E74",weekStartDay:"0",weeks:{sun:"\u65E5",mon:"\u4E00",tue:"\u4E8C",wed:"\u4E09",thu:"\u56DB",fri:"\u4E94",sat:"\u516D"},months:{m1:"1\u6708",m2:"2\u6708",m3:"3\u6708",m4:"4\u6708",m5:"5\u6708",m6:"6\u6708",m7:"7\u6708",m8:"8\u6708",m9:"9\u6708",m10:"10\u6708",m11:"11\u6708",m12:"12\u6708"}},transfer:{titles:{source:"\u4F86\u6E90\u5217\u8868",target:"\u76EE\u6A19\u5217\u8868"},filterPlaceholder:"\u8ACB\u8F38\u5165\u641C\u5C0B\u5167\u5BB9",notFoundText:"\u5217\u8868\u7232\u7A7A"},modal:{okText:"\u78BA\u5B9A",cancelText:"\u53D6\u6D88"},poptip:{okText:"\u78BA\u5B9A",cancelText:"\u53D6\u6D88"},page:{prev:"\u4E0A\u4E00\u9801",next:"\u4E0B\u4E00\u9801",total:"\u5171",item:"\u689D",items:"\u689D",prev5:"\u5411\u524D 5 \u9801",next5:"\u5411\u5F8C 5 \u9801",page:"\u689D/\u9801",goto:"\u8DF3\u81F3",p:"\u9801"},rate:{star:"\u661F",stars:"\u661F"},tree:{emptyText:"\u66AB\u7121\u8CC7\u6599"},image:{zoomIn:"\u653E\u5927",zoomOut:"\u7E2E\u5C0F",rotateLeft:"\u5DE6\u65CB\u8F49",rotateRight:"\u53F3\u65CB\u8F49",fail:"\u5931\u6557",preview:"\u9810\u89BD"}}};t(e);export{e as default}; diff --git a/dist/locale/zh-UG.js b/dist/locale/zh-UG.js new file mode 100644 index 0000000000000000000000000000000000000000..a2335db3a7a83fa8b1500bfd253aad1853bb59a8 --- /dev/null +++ b/dist/locale/zh-UG.js @@ -0,0 +1 @@ +import{s as e}from"./lang.js";const t={i:{locale:"zh-UG",select:{placeholder:"\u062A\u0627\u0644\u0644\u0627\u0634",noMatch:"\u0626\u06C7\u0686\u06C7\u0631 \u064A\u0648\u0642",loading:"\u0633\u06D5\u0644 \u0633\u0627\u0642\u0644\u0627\u0634"},table:{noDataText:"\u0626\u06C7\u0686\u06C7\u0631 \u064A\u0648\u0642",noFilteredDataText:"\u0628\u06C7\u0646\u062F\u0627\u0642 \u0646\u06D5\u062A\u0649\u062C\u06D5 \u064A\u0648\u0642",confirmFilter:"\u062A\u0627\u0633\u0642\u0627\u0634",resetFilter:"\u062A\u0627\u0632\u0644\u0627\u0634",clearFilter:"\u0628\u0627\u0631\u0644\u0649\u0642",sumText:"\u062C\u06D5\u0645\u0626\u0649\u064A"},datepicker:{selectDate:"\u0686\u0649\u0633\u0644\u0627 \u062A\u0627\u0644\u0644\u0627\u0634",selectTime:"\u06CB\u0627\u0642\u0649\u062A \u062A\u0627\u0644\u0644\u0627\u0634",startTime:"\u0628\u0627\u0634\u0644\u0649\u0646\u0649\u0634",endTime:"\u0626\u0627\u062E\u0649\u0631\u0644\u0649\u0634\u0649\u0634",clear:"\u0628\u0649\u0643\u0627\u0631\u0644\u0627\u0634",ok:"\u062C\u06D5\u0632\u0649\u0645\u0644\u06D5\u0634",datePanelLabel:"[yyyy\u064A\u0649\u0644] [m\u0626\u0627\u064A]",month:"\u0626\u0627\u064A",month1:"1-\u0626\u0627\u064A",month2:"2-\u0626\u0627\u064A",month3:"3-\u0626\u0627\u064A",month4:"4-\u0626\u0627\u064A",month5:"5-\u0626\u0627\u064A",month6:"6-\u0626\u0627\u064A",month7:"7-\u0626\u0627\u064A",month8:"8-\u0626\u0627\u064A",month9:"9-\u0626\u0627\u064A",month10:"10-\u0626\u0627\u064A",month11:"11-\u0626\u0627\u064A",month12:"12-\u0626\u0627\u064A",year:"\u064A\u0649\u0644",weekStartDay:"0",weeks:{sun:"\u064A\u06D5\u0643",mon:"\u062F\u06C8",tue:"\u0633\u06D5\u064A",wed:"\u0686\u0627\u0631",thu:"\u067E\u06D5\u064A",fri:"\u062C\u06C8",sat:"\u0634\u06D5\u0646"},months:{m1:"1-\u0626\u0627\u064A",m2:"2-\u0626\u0627\u064A",m3:"3-\u0626\u0627\u064A",m4:"4-\u0626\u0627\u064A",m5:"5-\u0626\u0627\u064A",m6:"6-\u0626\u0627\u064A",m7:"7-\u0626\u0627\u064A",m8:"8-\u0626\u0627\u064A",m9:"9-\u0626\u0627\u064A",m10:"10-\u0626\u0627\u064A",m11:"11-\u0626\u0627\u064A",m12:"12-\u0626\u0627\u064A"}},transfer:{titles:{source:"\u0626\u06D5\u0633\u0644\u0649 \u062A\u0649\u0632\u0649\u0645\u0644\u0649\u0643",target:"\u0646\u0649\u0634\u0627\u0646 \u062A\u0649\u0632\u0649\u0645\u0644\u0649\u0643"},filterPlaceholder:"\u0626\u0649\u0632\u062F\u06D5\u064A\u062F\u0649\u063A\u0627\u0646 \u0645\u06D5\u0632\u0645\u06C7\u0646\u0646\u0649 \u0643\u0649\u0631\u06AF\u06C8\u0632\u06C8\u06AD",notFoundText:"\u0626\u06C7\u0686\u06C7\u0631 \u064A\u0648\u0642"},modal:{okText:"\u062C\u06D5\u0632\u0649\u0645\u0644\u06D5\u0634",cancelText:"\u0628\u0649\u0643\u0627\u0631 \u0642\u0649\u0644\u0649\u0634"},poptip:{okText:"\u062C\u06D5\u0632\u0649\u0645\u0644\u06D5\u0634",cancelText:"\u0628\u0649\u0643\u0627\u0631 \u0642\u0649\u0644\u0649\u0634"},page:{prev:"\u0626\u0627\u0644\u062F\u0649\u0646\u0642\u0649 \u0628\u06D5\u062A",next:"\u0643\u0649\u064A\u0649\u0646\u0643\u0649 \u0628\u06D5\u062A",total:"\u062C\u06D5\u0645\u0626\u0649\u064A",item:"\u062A\u0627\u0644",items:"\u062A\u0627\u0644",prev5:"\u0626\u0627\u0644\u062F\u0649\u063A\u0627 5 \u0628\u06D5\u062A",next5:"\u0626\u0627\u0631\u0642\u0649\u063A\u0627 5 \u0628\u06D5\u062A",page:"\u062A\u0627\u0644/\u06BE\u06D5\u0631 \u0628\u0649\u0631 \u0628\u06D5\u062A",goto:"\u0626\u0627\u062A\u0644\u0627\u0634",p:"\u0628\u06D5\u062A"},rate:{star:"\u064A\u06C7\u0644\u062A\u06C7\u0632",stars:"\u064A\u06C7\u0644\u062A\u06C7\u0632"},time:{before:" \u0628\u06C7\u0631\u06C7\u0646",after:" \u0643\u0649\u064A\u0649\u0646",just:"\u0628\u0627\u064A\u0649\u0644\u0627",seconds:" \u0633\u0649\u0643\u0648\u0646\u062A",minutes:" \u0645\u0649\u0646\u06C7\u062A",hours:" \u0633\u0627\u0626\u06D5\u062A",days:" \u0643\u06C8\u0646"},tree:{emptyText:"\u0626\u06C7\u0686\u06C7\u0631 \u064A\u0648\u0642"}}};e(t);export{t as default}; diff --git a/dist/styles/fonts/ionicons.svg b/dist/styles/fonts/ionicons.svg new file mode 100644 index 0000000000000000000000000000000000000000..d8812552f34b46d7c1604050d7599a2a2b3cb568 --- /dev/null +++ b/dist/styles/fonts/ionicons.svg @@ -0,0 +1,870 @@ + + + +Generated by IcoMoon + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/styles/fonts/ionicons.ttf b/dist/styles/fonts/ionicons.ttf new file mode 100644 index 0000000000000000000000000000000000000000..1caa214a3506bc3ee807eff8a24a195c50af1bf4 Binary files /dev/null and b/dist/styles/fonts/ionicons.ttf differ diff --git a/dist/styles/fonts/ionicons.woff b/dist/styles/fonts/ionicons.woff new file mode 100644 index 0000000000000000000000000000000000000000..c909e51cf3e50600516fa7308f3ca75046be93ec Binary files /dev/null and b/dist/styles/fonts/ionicons.woff differ diff --git a/dist/styles/fonts/ionicons.woff2 b/dist/styles/fonts/ionicons.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..1d6d9c564b3c9f7a097a8e92bde6425ccaa33704 Binary files /dev/null and b/dist/styles/fonts/ionicons.woff2 differ diff --git a/dist/styles/viewuiplus.css b/dist/styles/viewuiplus.css new file mode 100644 index 0000000000000000000000000000000000000000..a6e6def30e2903e5ca9a4ccbd62197ae5afc0326 --- /dev/null +++ b/dist/styles/viewuiplus.css @@ -0,0 +1 @@ +.ivu-block{display:block}.ivu-inline{display:inline}.ivu-inline-block{display:inline-block}.ivu-text-center{text-align:center}.ivu-text-left{text-align:left}.ivu-text-right{text-align:right}.ivu-fl{float:left}.ivu-fr{float:right}.ivu-clearfix:after,.ivu-clearfix:before{display:table;content:""}.ivu-clearfix:after{clear:both}.ivu-line-clamp{display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden}.ivu-b{border:1px solid #e8eaec}.ivu-bt{border-top:1px solid #e8eaec}.ivu-br{border-right:1px solid #e8eaec}.ivu-bb{border-bottom:1px solid #e8eaec}.ivu-bl{border-left:1px solid #e8eaec}.ivu-m-0{margin:0!important}.ivu-mt-0{margin-top:0!important}.ivu-mr-0{margin-right:0!important}.ivu-mb-0{margin-bottom:0!important}.ivu-ml-0{margin-left:0!important}.ivu-m-4{margin:4px!important}.ivu-mt-4{margin-top:4px!important}.ivu-mr-4{margin-right:4px!important}.ivu-mb-4{margin-bottom:4px!important}.ivu-ml-4{margin-left:4px!important}.ivu-m-8{margin:8px!important}.ivu-mt-8{margin-top:8px!important}.ivu-mr-8{margin-right:8px!important}.ivu-mb-8{margin-bottom:8px!important}.ivu-ml-8{margin-left:8px!important}.ivu-p-0{padding:0!important}.ivu-pt-0{padding-top:0!important}.ivu-pr-0{padding-right:0!important}.ivu-pb-0{padding-bottom:0!important}.ivu-pl-0{padding-left:0!important}.ivu-p-4{padding:4px!important}.ivu-pt-4{padding-top:4px!important}.ivu-pr-4{padding-right:4px!important}.ivu-pb-4{padding-bottom:4px!important}.ivu-pl-4{padding-left:4px!important}.ivu-p-8{padding:8px!important}.ivu-pt-8{padding-top:8px!important}.ivu-pr-8{padding-right:8px!important}.ivu-pb-8{padding-bottom:8px!important}.ivu-pl-8{padding-left:8px!important}.ivu-m,.ivu-m-16{margin:16px!important}.ivu-mt,.ivu-mt-16{margin-top:16px!important}.ivu-mr,.ivu-mr-16{margin-right:16px!important}.ivu-mb,.ivu-mb-16{margin-bottom:16px!important}.ivu-ml,.ivu-ml-16{margin-left:16px!important}.ivu-p,.ivu-p-16{padding:16px!important}.ivu-pt,.ivu-pt-16{padding-top:16px!important}.ivu-pr,.ivu-pr-16{padding-right:16px!important}.ivu-pb,.ivu-pb-16{padding-bottom:16px!important}.ivu-pl,.ivu-pl-16{padding-left:16px!important}.ivu-load-loop{-webkit-animation:ani-load-loop 1s linear infinite;animation:ani-load-loop 1s linear infinite}@-webkit-keyframes ani-load-loop{from{-webkit-transform:rotate(0);transform:rotate(0)}50%{-webkit-transform:rotate(180deg);transform:rotate(180deg)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes ani-load-loop{from{-webkit-transform:rotate(0);transform:rotate(0)}50%{-webkit-transform:rotate(180deg);transform:rotate(180deg)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.input-group-error-append,.input-group-error-prepend{background-color:#fff;border:1px solid #ed4014}.input-group-error-append .ivu-select-selection,.input-group-error-prepend .ivu-select-selection{background-color:inherit;border:1px solid transparent}.input-group-error-prepend{border-right:0}.input-group-error-append{border-left:0}/*! normalize.css v5.0.0 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;line-height:1.15;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,footer,header,nav,section{display:block}h1{font-size:2em;margin:.67em 0}figcaption,figure,main{display:block}figure{margin:1em 40px}hr{-webkit-box-sizing:content-box;box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent;-webkit-text-decoration-skip:objects}a:active,a:hover{outline-width:0}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:inherit}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}dfn{font-style:italic}mark{background-color:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}audio,video{display:inline-block}audio:not([controls]){display:none;height:0}img{border-style:none}svg:not(:root){overflow:hidden}button,input,optgroup,select,textarea{font-family:sans-serif;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{-webkit-box-sizing:border-box;box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{display:inline-block;vertical-align:baseline}textarea{overflow:auto;resize:vertical}[type=checkbox],[type=radio]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details,menu{display:block}summary{display:list-item}canvas{display:inline-block}template{display:none}[hidden]{display:none}*{-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-tap-highlight-color:transparent}:after,:before{-webkit-box-sizing:border-box;box-sizing:border-box}body{font-family:"Helvetica Neue",Helvetica,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","微软雅黑",Arial,sans-serif;font-size:14px;line-height:1.5;color:#515a6e;background-color:#fff;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}article,aside,blockquote,body,button,dd,details,div,dl,dt,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,hr,input,legend,li,menu,nav,ol,p,section,td,textarea,th,ul{margin:0;padding:0}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}input::-ms-clear,input::-ms-reveal{display:none}a{color:#2d8cf0;background:0 0;text-decoration:none;outline:0;cursor:pointer;-webkit-transition:color .2s ease;transition:color .2s ease}a:hover{color:#57a3f3}a:active{color:#2b85e4}a:active,a:hover{outline:0;text-decoration:none}a[disabled]{color:#ccc;cursor:not-allowed;pointer-events:none}code,kbd,pre,samp{font-family:Consolas,Menlo,Courier,monospace}@font-face{font-family:Ionicons;src:url(fonts/ionicons.woff2?v=3.0.0) format("woff2"),url(fonts/ionicons.woff?v=3.0.0) format("woff"),url(fonts/ionicons.ttf?v=3.0.0) format("truetype"),url(fonts/ionicons.svg?v=3.0.0#Ionicons) format("svg");font-weight:400;font-style:normal}.ivu-icon{display:inline-block;font-family:Ionicons;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;text-rendering:optimizeLegibility;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;vertical-align:-.125em;text-align:center}.ivu-icon-ios-add-circle-outline:before{content:"\f100"}.ivu-icon-ios-add-circle:before{content:"\f101"}.ivu-icon-ios-add:before{content:"\f102"}.ivu-icon-ios-alarm-outline:before{content:"\f103"}.ivu-icon-ios-alarm:before{content:"\f104"}.ivu-icon-ios-albums-outline:before{content:"\f105"}.ivu-icon-ios-albums:before{content:"\f106"}.ivu-icon-ios-alert-outline:before{content:"\f107"}.ivu-icon-ios-alert:before{content:"\f108"}.ivu-icon-ios-american-football-outline:before{content:"\f109"}.ivu-icon-ios-american-football:before{content:"\f10a"}.ivu-icon-ios-analytics-outline:before{content:"\f10b"}.ivu-icon-ios-analytics:before{content:"\f10c"}.ivu-icon-ios-aperture-outline:before{content:"\f10d"}.ivu-icon-ios-aperture:before{content:"\f10e"}.ivu-icon-ios-apps-outline:before{content:"\f10f"}.ivu-icon-ios-apps:before{content:"\f110"}.ivu-icon-ios-appstore-outline:before{content:"\f111"}.ivu-icon-ios-appstore:before{content:"\f112"}.ivu-icon-ios-archive-outline:before{content:"\f113"}.ivu-icon-ios-archive:before{content:"\f114"}.ivu-icon-ios-arrow-back:before{content:"\f115"}.ivu-icon-ios-arrow-down:before{content:"\f116"}.ivu-icon-ios-arrow-dropdown-circle:before{content:"\f117"}.ivu-icon-ios-arrow-dropdown:before{content:"\f118"}.ivu-icon-ios-arrow-dropleft-circle:before{content:"\f119"}.ivu-icon-ios-arrow-dropleft:before{content:"\f11a"}.ivu-icon-ios-arrow-dropright-circle:before{content:"\f11b"}.ivu-icon-ios-arrow-dropright:before{content:"\f11c"}.ivu-icon-ios-arrow-dropup-circle:before{content:"\f11d"}.ivu-icon-ios-arrow-dropup:before{content:"\f11e"}.ivu-icon-ios-arrow-forward:before{content:"\f11f"}.ivu-icon-ios-arrow-round-back:before{content:"\f120"}.ivu-icon-ios-arrow-round-down:before{content:"\f121"}.ivu-icon-ios-arrow-round-forward:before{content:"\f122"}.ivu-icon-ios-arrow-round-up:before{content:"\f123"}.ivu-icon-ios-arrow-up:before{content:"\f124"}.ivu-icon-ios-at-outline:before{content:"\f125"}.ivu-icon-ios-at:before{content:"\f126"}.ivu-icon-ios-attach:before{content:"\f127"}.ivu-icon-ios-backspace-outline:before{content:"\f128"}.ivu-icon-ios-backspace:before{content:"\f129"}.ivu-icon-ios-barcode-outline:before{content:"\f12a"}.ivu-icon-ios-barcode:before{content:"\f12b"}.ivu-icon-ios-baseball-outline:before{content:"\f12c"}.ivu-icon-ios-baseball:before{content:"\f12d"}.ivu-icon-ios-basket-outline:before{content:"\f12e"}.ivu-icon-ios-basket:before{content:"\f12f"}.ivu-icon-ios-basketball-outline:before{content:"\f130"}.ivu-icon-ios-basketball:before{content:"\f131"}.ivu-icon-ios-battery-charging:before{content:"\f132"}.ivu-icon-ios-battery-dead:before{content:"\f133"}.ivu-icon-ios-battery-full:before{content:"\f134"}.ivu-icon-ios-beaker-outline:before{content:"\f135"}.ivu-icon-ios-beaker:before{content:"\f136"}.ivu-icon-ios-beer-outline:before{content:"\f137"}.ivu-icon-ios-beer:before{content:"\f138"}.ivu-icon-ios-bicycle:before{content:"\f139"}.ivu-icon-ios-bluetooth:before{content:"\f13a"}.ivu-icon-ios-boat-outline:before{content:"\f13b"}.ivu-icon-ios-boat:before{content:"\f13c"}.ivu-icon-ios-body-outline:before{content:"\f13d"}.ivu-icon-ios-body:before{content:"\f13e"}.ivu-icon-ios-bonfire-outline:before{content:"\f13f"}.ivu-icon-ios-bonfire:before{content:"\f140"}.ivu-icon-ios-book-outline:before{content:"\f141"}.ivu-icon-ios-book:before{content:"\f142"}.ivu-icon-ios-bookmark-outline:before{content:"\f143"}.ivu-icon-ios-bookmark:before{content:"\f144"}.ivu-icon-ios-bookmarks-outline:before{content:"\f145"}.ivu-icon-ios-bookmarks:before{content:"\f146"}.ivu-icon-ios-bowtie-outline:before{content:"\f147"}.ivu-icon-ios-bowtie:before{content:"\f148"}.ivu-icon-ios-briefcase-outline:before{content:"\f149"}.ivu-icon-ios-briefcase:before{content:"\f14a"}.ivu-icon-ios-browsers-outline:before{content:"\f14b"}.ivu-icon-ios-browsers:before{content:"\f14c"}.ivu-icon-ios-brush-outline:before{content:"\f14d"}.ivu-icon-ios-brush:before{content:"\f14e"}.ivu-icon-ios-bug-outline:before{content:"\f14f"}.ivu-icon-ios-bug:before{content:"\f150"}.ivu-icon-ios-build-outline:before{content:"\f151"}.ivu-icon-ios-build:before{content:"\f152"}.ivu-icon-ios-bulb-outline:before{content:"\f153"}.ivu-icon-ios-bulb:before{content:"\f154"}.ivu-icon-ios-bus-outline:before{content:"\f155"}.ivu-icon-ios-bus:before{content:"\f156"}.ivu-icon-ios-cafe-outline:before{content:"\f157"}.ivu-icon-ios-cafe:before{content:"\f158"}.ivu-icon-ios-calculator-outline:before{content:"\f159"}.ivu-icon-ios-calculator:before{content:"\f15a"}.ivu-icon-ios-calendar-outline:before{content:"\f15b"}.ivu-icon-ios-calendar:before{content:"\f15c"}.ivu-icon-ios-call-outline:before{content:"\f15d"}.ivu-icon-ios-call:before{content:"\f15e"}.ivu-icon-ios-camera-outline:before{content:"\f15f"}.ivu-icon-ios-camera:before{content:"\f160"}.ivu-icon-ios-car-outline:before{content:"\f161"}.ivu-icon-ios-car:before{content:"\f162"}.ivu-icon-ios-card-outline:before{content:"\f163"}.ivu-icon-ios-card:before{content:"\f164"}.ivu-icon-ios-cart-outline:before{content:"\f165"}.ivu-icon-ios-cart:before{content:"\f166"}.ivu-icon-ios-cash-outline:before{content:"\f167"}.ivu-icon-ios-cash:before{content:"\f168"}.ivu-icon-ios-chatboxes-outline:before{content:"\f169"}.ivu-icon-ios-chatboxes:before{content:"\f16a"}.ivu-icon-ios-chatbubbles-outline:before{content:"\f16b"}.ivu-icon-ios-chatbubbles:before{content:"\f16c"}.ivu-icon-ios-checkbox-outline:before{content:"\f16d"}.ivu-icon-ios-checkbox:before{content:"\f16e"}.ivu-icon-ios-checkmark-circle-outline:before{content:"\f16f"}.ivu-icon-ios-checkmark-circle:before{content:"\f170"}.ivu-icon-ios-checkmark:before{content:"\f171"}.ivu-icon-ios-clipboard-outline:before{content:"\f172"}.ivu-icon-ios-clipboard:before{content:"\f173"}.ivu-icon-ios-clock-outline:before{content:"\f174"}.ivu-icon-ios-clock:before{content:"\f175"}.ivu-icon-ios-close-circle-outline:before{content:"\f176"}.ivu-icon-ios-close-circle:before{content:"\f177"}.ivu-icon-ios-close:before{content:"\f178"}.ivu-icon-ios-closed-captioning-outline:before{content:"\f179"}.ivu-icon-ios-closed-captioning:before{content:"\f17a"}.ivu-icon-ios-cloud-circle-outline:before{content:"\f17b"}.ivu-icon-ios-cloud-circle:before{content:"\f17c"}.ivu-icon-ios-cloud-done-outline:before{content:"\f17d"}.ivu-icon-ios-cloud-done:before{content:"\f17e"}.ivu-icon-ios-cloud-download-outline:before{content:"\f17f"}.ivu-icon-ios-cloud-download:before{content:"\f180"}.ivu-icon-ios-cloud-outline:before{content:"\f181"}.ivu-icon-ios-cloud-upload-outline:before{content:"\f182"}.ivu-icon-ios-cloud-upload:before{content:"\f183"}.ivu-icon-ios-cloud:before{content:"\f184"}.ivu-icon-ios-cloudy-night-outline:before{content:"\f185"}.ivu-icon-ios-cloudy-night:before{content:"\f186"}.ivu-icon-ios-cloudy-outline:before{content:"\f187"}.ivu-icon-ios-cloudy:before{content:"\f188"}.ivu-icon-ios-code-download:before{content:"\f189"}.ivu-icon-ios-code-working:before{content:"\f18a"}.ivu-icon-ios-code:before{content:"\f18b"}.ivu-icon-ios-cog-outline:before{content:"\f18c"}.ivu-icon-ios-cog:before{content:"\f18d"}.ivu-icon-ios-color-fill-outline:before{content:"\f18e"}.ivu-icon-ios-color-fill:before{content:"\f18f"}.ivu-icon-ios-color-filter-outline:before{content:"\f190"}.ivu-icon-ios-color-filter:before{content:"\f191"}.ivu-icon-ios-color-palette-outline:before{content:"\f192"}.ivu-icon-ios-color-palette:before{content:"\f193"}.ivu-icon-ios-color-wand-outline:before{content:"\f194"}.ivu-icon-ios-color-wand:before{content:"\f195"}.ivu-icon-ios-compass-outline:before{content:"\f196"}.ivu-icon-ios-compass:before{content:"\f197"}.ivu-icon-ios-construct-outline:before{content:"\f198"}.ivu-icon-ios-construct:before{content:"\f199"}.ivu-icon-ios-contact-outline:before{content:"\f19a"}.ivu-icon-ios-contact:before{content:"\f19b"}.ivu-icon-ios-contacts-outline:before{content:"\f19c"}.ivu-icon-ios-contacts:before{content:"\f19d"}.ivu-icon-ios-contract:before{content:"\f19e"}.ivu-icon-ios-contrast:before{content:"\f19f"}.ivu-icon-ios-copy-outline:before{content:"\f1a0"}.ivu-icon-ios-copy:before{content:"\f1a1"}.ivu-icon-ios-create-outline:before{content:"\f1a2"}.ivu-icon-ios-create:before{content:"\f1a3"}.ivu-icon-ios-crop-outline:before{content:"\f1a4"}.ivu-icon-ios-crop:before{content:"\f1a5"}.ivu-icon-ios-cube-outline:before{content:"\f1a6"}.ivu-icon-ios-cube:before{content:"\f1a7"}.ivu-icon-ios-cut-outline:before{content:"\f1a8"}.ivu-icon-ios-cut:before{content:"\f1a9"}.ivu-icon-ios-desktop-outline:before{content:"\f1aa"}.ivu-icon-ios-desktop:before{content:"\f1ab"}.ivu-icon-ios-disc-outline:before{content:"\f1ac"}.ivu-icon-ios-disc:before{content:"\f1ad"}.ivu-icon-ios-document-outline:before{content:"\f1ae"}.ivu-icon-ios-document:before{content:"\f1af"}.ivu-icon-ios-done-all:before{content:"\f1b0"}.ivu-icon-ios-download-outline:before{content:"\f1b1"}.ivu-icon-ios-download:before{content:"\f1b2"}.ivu-icon-ios-easel-outline:before{content:"\f1b3"}.ivu-icon-ios-easel:before{content:"\f1b4"}.ivu-icon-ios-egg-outline:before{content:"\f1b5"}.ivu-icon-ios-egg:before{content:"\f1b6"}.ivu-icon-ios-exit-outline:before{content:"\f1b7"}.ivu-icon-ios-exit:before{content:"\f1b8"}.ivu-icon-ios-expand:before{content:"\f1b9"}.ivu-icon-ios-eye-off-outline:before{content:"\f1ba"}.ivu-icon-ios-eye-off:before{content:"\f1bb"}.ivu-icon-ios-eye-outline:before{content:"\f1bc"}.ivu-icon-ios-eye:before{content:"\f1bd"}.ivu-icon-ios-fastforward-outline:before{content:"\f1be"}.ivu-icon-ios-fastforward:before{content:"\f1bf"}.ivu-icon-ios-female:before{content:"\f1c0"}.ivu-icon-ios-filing-outline:before{content:"\f1c1"}.ivu-icon-ios-filing:before{content:"\f1c2"}.ivu-icon-ios-film-outline:before{content:"\f1c3"}.ivu-icon-ios-film:before{content:"\f1c4"}.ivu-icon-ios-finger-print:before{content:"\f1c5"}.ivu-icon-ios-flag-outline:before{content:"\f1c6"}.ivu-icon-ios-flag:before{content:"\f1c7"}.ivu-icon-ios-flame-outline:before{content:"\f1c8"}.ivu-icon-ios-flame:before{content:"\f1c9"}.ivu-icon-ios-flash-outline:before{content:"\f1ca"}.ivu-icon-ios-flash:before{content:"\f1cb"}.ivu-icon-ios-flask-outline:before{content:"\f1cc"}.ivu-icon-ios-flask:before{content:"\f1cd"}.ivu-icon-ios-flower-outline:before{content:"\f1ce"}.ivu-icon-ios-flower:before{content:"\f1cf"}.ivu-icon-ios-folder-open-outline:before{content:"\f1d0"}.ivu-icon-ios-folder-open:before{content:"\f1d1"}.ivu-icon-ios-folder-outline:before{content:"\f1d2"}.ivu-icon-ios-folder:before{content:"\f1d3"}.ivu-icon-ios-football-outline:before{content:"\f1d4"}.ivu-icon-ios-football:before{content:"\f1d5"}.ivu-icon-ios-funnel-outline:before{content:"\f1d6"}.ivu-icon-ios-funnel:before{content:"\f1d7"}.ivu-icon-ios-game-controller-a-outline:before{content:"\f1d8"}.ivu-icon-ios-game-controller-a:before{content:"\f1d9"}.ivu-icon-ios-game-controller-b-outline:before{content:"\f1da"}.ivu-icon-ios-game-controller-b:before{content:"\f1db"}.ivu-icon-ios-git-branch:before{content:"\f1dc"}.ivu-icon-ios-git-commit:before{content:"\f1dd"}.ivu-icon-ios-git-compare:before{content:"\f1de"}.ivu-icon-ios-git-merge:before{content:"\f1df"}.ivu-icon-ios-git-network:before{content:"\f1e0"}.ivu-icon-ios-git-pull-request:before{content:"\f1e1"}.ivu-icon-ios-glasses-outline:before{content:"\f1e2"}.ivu-icon-ios-glasses:before{content:"\f1e3"}.ivu-icon-ios-globe-outline:before{content:"\f1e4"}.ivu-icon-ios-globe:before{content:"\f1e5"}.ivu-icon-ios-grid-outline:before{content:"\f1e6"}.ivu-icon-ios-grid:before{content:"\f1e7"}.ivu-icon-ios-hammer-outline:before{content:"\f1e8"}.ivu-icon-ios-hammer:before{content:"\f1e9"}.ivu-icon-ios-hand-outline:before{content:"\f1ea"}.ivu-icon-ios-hand:before{content:"\f1eb"}.ivu-icon-ios-happy-outline:before{content:"\f1ec"}.ivu-icon-ios-happy:before{content:"\f1ed"}.ivu-icon-ios-headset-outline:before{content:"\f1ee"}.ivu-icon-ios-headset:before{content:"\f1ef"}.ivu-icon-ios-heart-outline:before{content:"\f1f0"}.ivu-icon-ios-heart:before{content:"\f1f1"}.ivu-icon-ios-help-buoy-outline:before{content:"\f1f2"}.ivu-icon-ios-help-buoy:before{content:"\f1f3"}.ivu-icon-ios-help-circle-outline:before{content:"\f1f4"}.ivu-icon-ios-help-circle:before{content:"\f1f5"}.ivu-icon-ios-help:before{content:"\f1f6"}.ivu-icon-ios-home-outline:before{content:"\f1f7"}.ivu-icon-ios-home:before{content:"\f1f8"}.ivu-icon-ios-ice-cream-outline:before{content:"\f1f9"}.ivu-icon-ios-ice-cream:before{content:"\f1fa"}.ivu-icon-ios-image-outline:before{content:"\f1fb"}.ivu-icon-ios-image:before{content:"\f1fc"}.ivu-icon-ios-images-outline:before{content:"\f1fd"}.ivu-icon-ios-images:before{content:"\f1fe"}.ivu-icon-ios-infinite-outline:before{content:"\f1ff"}.ivu-icon-ios-infinite:before{content:"\f200"}.ivu-icon-ios-information-circle-outline:before{content:"\f201"}.ivu-icon-ios-information-circle:before{content:"\f202"}.ivu-icon-ios-information:before{content:"\f203"}.ivu-icon-ios-ionic-outline:before{content:"\f204"}.ivu-icon-ios-ionic:before{content:"\f205"}.ivu-icon-ios-ionitron-outline:before{content:"\f206"}.ivu-icon-ios-ionitron:before{content:"\f207"}.ivu-icon-ios-jet-outline:before{content:"\f208"}.ivu-icon-ios-jet:before{content:"\f209"}.ivu-icon-ios-key-outline:before{content:"\f20a"}.ivu-icon-ios-key:before{content:"\f20b"}.ivu-icon-ios-keypad-outline:before{content:"\f20c"}.ivu-icon-ios-keypad:before{content:"\f20d"}.ivu-icon-ios-laptop:before{content:"\f20e"}.ivu-icon-ios-leaf-outline:before{content:"\f20f"}.ivu-icon-ios-leaf:before{content:"\f210"}.ivu-icon-ios-link-outline:before{content:"\f211"}.ivu-icon-ios-link:before{content:"\f212"}.ivu-icon-ios-list-box-outline:before{content:"\f213"}.ivu-icon-ios-list-box:before{content:"\f214"}.ivu-icon-ios-list:before{content:"\f215"}.ivu-icon-ios-locate-outline:before{content:"\f216"}.ivu-icon-ios-locate:before{content:"\f217"}.ivu-icon-ios-lock-outline:before{content:"\f218"}.ivu-icon-ios-lock:before{content:"\f219"}.ivu-icon-ios-log-in:before{content:"\f21a"}.ivu-icon-ios-log-out:before{content:"\f21b"}.ivu-icon-ios-magnet-outline:before{content:"\f21c"}.ivu-icon-ios-magnet:before{content:"\f21d"}.ivu-icon-ios-mail-open-outline:before{content:"\f21e"}.ivu-icon-ios-mail-open:before{content:"\f21f"}.ivu-icon-ios-mail-outline:before{content:"\f220"}.ivu-icon-ios-mail:before{content:"\f221"}.ivu-icon-ios-male:before{content:"\f222"}.ivu-icon-ios-man-outline:before{content:"\f223"}.ivu-icon-ios-man:before{content:"\f224"}.ivu-icon-ios-map-outline:before{content:"\f225"}.ivu-icon-ios-map:before{content:"\f226"}.ivu-icon-ios-medal-outline:before{content:"\f227"}.ivu-icon-ios-medal:before{content:"\f228"}.ivu-icon-ios-medical-outline:before{content:"\f229"}.ivu-icon-ios-medical:before{content:"\f22a"}.ivu-icon-ios-medkit-outline:before{content:"\f22b"}.ivu-icon-ios-medkit:before{content:"\f22c"}.ivu-icon-ios-megaphone-outline:before{content:"\f22d"}.ivu-icon-ios-megaphone:before{content:"\f22e"}.ivu-icon-ios-menu-outline:before{content:"\f22f"}.ivu-icon-ios-menu:before{content:"\f230"}.ivu-icon-ios-mic-off-outline:before{content:"\f231"}.ivu-icon-ios-mic-off:before{content:"\f232"}.ivu-icon-ios-mic-outline:before{content:"\f233"}.ivu-icon-ios-mic:before{content:"\f234"}.ivu-icon-ios-microphone-outline:before{content:"\f235"}.ivu-icon-ios-microphone:before{content:"\f236"}.ivu-icon-ios-moon-outline:before{content:"\f237"}.ivu-icon-ios-moon:before{content:"\f238"}.ivu-icon-ios-more-outline:before{content:"\f239"}.ivu-icon-ios-more:before{content:"\f23a"}.ivu-icon-ios-move:before{content:"\f23b"}.ivu-icon-ios-musical-note-outline:before{content:"\f23c"}.ivu-icon-ios-musical-note:before{content:"\f23d"}.ivu-icon-ios-musical-notes-outline:before{content:"\f23e"}.ivu-icon-ios-musical-notes:before{content:"\f23f"}.ivu-icon-ios-navigate-outline:before{content:"\f240"}.ivu-icon-ios-navigate:before{content:"\f241"}.ivu-icon-ios-no-smoking-outline:before{content:"\f242"}.ivu-icon-ios-no-smoking:before{content:"\f243"}.ivu-icon-ios-notifications-off-outline:before{content:"\f244"}.ivu-icon-ios-notifications-off:before{content:"\f245"}.ivu-icon-ios-notifications-outline:before{content:"\f246"}.ivu-icon-ios-notifications:before{content:"\f247"}.ivu-icon-ios-nuclear-outline:before{content:"\f248"}.ivu-icon-ios-nuclear:before{content:"\f249"}.ivu-icon-ios-nutrition-outline:before{content:"\f24a"}.ivu-icon-ios-nutrition:before{content:"\f24b"}.ivu-icon-ios-open-outline:before{content:"\f24c"}.ivu-icon-ios-open:before{content:"\f24d"}.ivu-icon-ios-options-outline:before{content:"\f24e"}.ivu-icon-ios-options:before{content:"\f24f"}.ivu-icon-ios-outlet-outline:before{content:"\f250"}.ivu-icon-ios-outlet:before{content:"\f251"}.ivu-icon-ios-paper-outline:before{content:"\f252"}.ivu-icon-ios-paper-plane-outline:before{content:"\f253"}.ivu-icon-ios-paper-plane:before{content:"\f254"}.ivu-icon-ios-paper:before{content:"\f255"}.ivu-icon-ios-partly-sunny-outline:before{content:"\f256"}.ivu-icon-ios-partly-sunny:before{content:"\f257"}.ivu-icon-ios-pause-outline:before{content:"\f258"}.ivu-icon-ios-pause:before{content:"\f259"}.ivu-icon-ios-paw-outline:before{content:"\f25a"}.ivu-icon-ios-paw:before{content:"\f25b"}.ivu-icon-ios-people-outline:before{content:"\f25c"}.ivu-icon-ios-people:before{content:"\f25d"}.ivu-icon-ios-person-add-outline:before{content:"\f25e"}.ivu-icon-ios-person-add:before{content:"\f25f"}.ivu-icon-ios-person-outline:before{content:"\f260"}.ivu-icon-ios-person:before{content:"\f261"}.ivu-icon-ios-phone-landscape:before{content:"\f262"}.ivu-icon-ios-phone-portrait:before{content:"\f263"}.ivu-icon-ios-photos-outline:before{content:"\f264"}.ivu-icon-ios-photos:before{content:"\f265"}.ivu-icon-ios-pie-outline:before{content:"\f266"}.ivu-icon-ios-pie:before{content:"\f267"}.ivu-icon-ios-pin-outline:before{content:"\f268"}.ivu-icon-ios-pin:before{content:"\f269"}.ivu-icon-ios-pint-outline:before{content:"\f26a"}.ivu-icon-ios-pint:before{content:"\f26b"}.ivu-icon-ios-pizza-outline:before{content:"\f26c"}.ivu-icon-ios-pizza:before{content:"\f26d"}.ivu-icon-ios-plane-outline:before{content:"\f26e"}.ivu-icon-ios-plane:before{content:"\f26f"}.ivu-icon-ios-planet-outline:before{content:"\f270"}.ivu-icon-ios-planet:before{content:"\f271"}.ivu-icon-ios-play-outline:before{content:"\f272"}.ivu-icon-ios-play:before{content:"\f273"}.ivu-icon-ios-podium-outline:before{content:"\f274"}.ivu-icon-ios-podium:before{content:"\f275"}.ivu-icon-ios-power-outline:before{content:"\f276"}.ivu-icon-ios-power:before{content:"\f277"}.ivu-icon-ios-pricetag-outline:before{content:"\f278"}.ivu-icon-ios-pricetag:before{content:"\f279"}.ivu-icon-ios-pricetags-outline:before{content:"\f27a"}.ivu-icon-ios-pricetags:before{content:"\f27b"}.ivu-icon-ios-print-outline:before{content:"\f27c"}.ivu-icon-ios-print:before{content:"\f27d"}.ivu-icon-ios-pulse-outline:before{content:"\f27e"}.ivu-icon-ios-pulse:before{content:"\f27f"}.ivu-icon-ios-qr-scanner:before{content:"\f280"}.ivu-icon-ios-quote-outline:before{content:"\f281"}.ivu-icon-ios-quote:before{content:"\f282"}.ivu-icon-ios-radio-button-off:before{content:"\f283"}.ivu-icon-ios-radio-button-on:before{content:"\f284"}.ivu-icon-ios-radio-outline:before{content:"\f285"}.ivu-icon-ios-radio:before{content:"\f286"}.ivu-icon-ios-rainy-outline:before{content:"\f287"}.ivu-icon-ios-rainy:before{content:"\f288"}.ivu-icon-ios-recording-outline:before{content:"\f289"}.ivu-icon-ios-recording:before{content:"\f28a"}.ivu-icon-ios-redo-outline:before{content:"\f28b"}.ivu-icon-ios-redo:before{content:"\f28c"}.ivu-icon-ios-refresh-circle-outline:before{content:"\f28d"}.ivu-icon-ios-refresh-circle:before{content:"\f28e"}.ivu-icon-ios-refresh:before{content:"\f28f"}.ivu-icon-ios-remove-circle-outline:before{content:"\f290"}.ivu-icon-ios-remove-circle:before{content:"\f291"}.ivu-icon-ios-remove:before{content:"\f292"}.ivu-icon-ios-reorder:before{content:"\f293"}.ivu-icon-ios-repeat:before{content:"\f294"}.ivu-icon-ios-resize:before{content:"\f295"}.ivu-icon-ios-restaurant-outline:before{content:"\f296"}.ivu-icon-ios-restaurant:before{content:"\f297"}.ivu-icon-ios-return-left:before{content:"\f298"}.ivu-icon-ios-return-right:before{content:"\f299"}.ivu-icon-ios-reverse-camera-outline:before{content:"\f29a"}.ivu-icon-ios-reverse-camera:before{content:"\f29b"}.ivu-icon-ios-rewind-outline:before{content:"\f29c"}.ivu-icon-ios-rewind:before{content:"\f29d"}.ivu-icon-ios-ribbon-outline:before{content:"\f29e"}.ivu-icon-ios-ribbon:before{content:"\f29f"}.ivu-icon-ios-rose-outline:before{content:"\f2a0"}.ivu-icon-ios-rose:before{content:"\f2a1"}.ivu-icon-ios-sad-outline:before{content:"\f2a2"}.ivu-icon-ios-sad:before{content:"\f2a3"}.ivu-icon-ios-school-outline:before{content:"\f2a4"}.ivu-icon-ios-school:before{content:"\f2a5"}.ivu-icon-ios-search-outline:before{content:"\f2a6"}.ivu-icon-ios-search:before{content:"\f2a7"}.ivu-icon-ios-send-outline:before{content:"\f2a8"}.ivu-icon-ios-send:before{content:"\f2a9"}.ivu-icon-ios-settings-outline:before{content:"\f2aa"}.ivu-icon-ios-settings:before{content:"\f2ab"}.ivu-icon-ios-share-alt-outline:before{content:"\f2ac"}.ivu-icon-ios-share-alt:before{content:"\f2ad"}.ivu-icon-ios-share-outline:before{content:"\f2ae"}.ivu-icon-ios-share:before{content:"\f2af"}.ivu-icon-ios-shirt-outline:before{content:"\f2b0"}.ivu-icon-ios-shirt:before{content:"\f2b1"}.ivu-icon-ios-shuffle:before{content:"\f2b2"}.ivu-icon-ios-skip-backward-outline:before{content:"\f2b3"}.ivu-icon-ios-skip-backward:before{content:"\f2b4"}.ivu-icon-ios-skip-forward-outline:before{content:"\f2b5"}.ivu-icon-ios-skip-forward:before{content:"\f2b6"}.ivu-icon-ios-snow-outline:before{content:"\f2b7"}.ivu-icon-ios-snow:before{content:"\f2b8"}.ivu-icon-ios-speedometer-outline:before{content:"\f2b9"}.ivu-icon-ios-speedometer:before{content:"\f2ba"}.ivu-icon-ios-square-outline:before{content:"\f2bb"}.ivu-icon-ios-square:before{content:"\f2bc"}.ivu-icon-ios-star-half:before{content:"\f2bd"}.ivu-icon-ios-star-outline:before{content:"\f2be"}.ivu-icon-ios-star:before{content:"\f2bf"}.ivu-icon-ios-stats-outline:before{content:"\f2c0"}.ivu-icon-ios-stats:before{content:"\f2c1"}.ivu-icon-ios-stopwatch-outline:before{content:"\f2c2"}.ivu-icon-ios-stopwatch:before{content:"\f2c3"}.ivu-icon-ios-subway-outline:before{content:"\f2c4"}.ivu-icon-ios-subway:before{content:"\f2c5"}.ivu-icon-ios-sunny-outline:before{content:"\f2c6"}.ivu-icon-ios-sunny:before{content:"\f2c7"}.ivu-icon-ios-swap:before{content:"\f2c8"}.ivu-icon-ios-switch-outline:before{content:"\f2c9"}.ivu-icon-ios-switch:before{content:"\f2ca"}.ivu-icon-ios-sync:before{content:"\f2cb"}.ivu-icon-ios-tablet-landscape:before{content:"\f2cc"}.ivu-icon-ios-tablet-portrait:before{content:"\f2cd"}.ivu-icon-ios-tennisball-outline:before{content:"\f2ce"}.ivu-icon-ios-tennisball:before{content:"\f2cf"}.ivu-icon-ios-text-outline:before{content:"\f2d0"}.ivu-icon-ios-text:before{content:"\f2d1"}.ivu-icon-ios-thermometer-outline:before{content:"\f2d2"}.ivu-icon-ios-thermometer:before{content:"\f2d3"}.ivu-icon-ios-thumbs-down-outline:before{content:"\f2d4"}.ivu-icon-ios-thumbs-down:before{content:"\f2d5"}.ivu-icon-ios-thumbs-up-outline:before{content:"\f2d6"}.ivu-icon-ios-thumbs-up:before{content:"\f2d7"}.ivu-icon-ios-thunderstorm-outline:before{content:"\f2d8"}.ivu-icon-ios-thunderstorm:before{content:"\f2d9"}.ivu-icon-ios-time-outline:before{content:"\f2da"}.ivu-icon-ios-time:before{content:"\f2db"}.ivu-icon-ios-timer-outline:before{content:"\f2dc"}.ivu-icon-ios-timer:before{content:"\f2dd"}.ivu-icon-ios-train-outline:before{content:"\f2de"}.ivu-icon-ios-train:before{content:"\f2df"}.ivu-icon-ios-transgender:before{content:"\f2e0"}.ivu-icon-ios-trash-outline:before{content:"\f2e1"}.ivu-icon-ios-trash:before{content:"\f2e2"}.ivu-icon-ios-trending-down:before{content:"\f2e3"}.ivu-icon-ios-trending-up:before{content:"\f2e4"}.ivu-icon-ios-trophy-outline:before{content:"\f2e5"}.ivu-icon-ios-trophy:before{content:"\f2e6"}.ivu-icon-ios-umbrella-outline:before{content:"\f2e7"}.ivu-icon-ios-umbrella:before{content:"\f2e8"}.ivu-icon-ios-undo-outline:before{content:"\f2e9"}.ivu-icon-ios-undo:before{content:"\f2ea"}.ivu-icon-ios-unlock-outline:before{content:"\f2eb"}.ivu-icon-ios-unlock:before{content:"\f2ec"}.ivu-icon-ios-videocam-outline:before{content:"\f2ed"}.ivu-icon-ios-videocam:before{content:"\f2ee"}.ivu-icon-ios-volume-down:before{content:"\f2ef"}.ivu-icon-ios-volume-mute:before{content:"\f2f0"}.ivu-icon-ios-volume-off:before{content:"\f2f1"}.ivu-icon-ios-volume-up:before{content:"\f2f2"}.ivu-icon-ios-walk:before{content:"\f2f3"}.ivu-icon-ios-warning-outline:before{content:"\f2f4"}.ivu-icon-ios-warning:before{content:"\f2f5"}.ivu-icon-ios-watch:before{content:"\f2f6"}.ivu-icon-ios-water-outline:before{content:"\f2f7"}.ivu-icon-ios-water:before{content:"\f2f8"}.ivu-icon-ios-wifi-outline:before{content:"\f2f9"}.ivu-icon-ios-wifi:before{content:"\f2fa"}.ivu-icon-ios-wine-outline:before{content:"\f2fb"}.ivu-icon-ios-wine:before{content:"\f2fc"}.ivu-icon-ios-woman-outline:before{content:"\f2fd"}.ivu-icon-ios-woman:before{content:"\f2fe"}.ivu-icon-logo-android:before{content:"\f2ff"}.ivu-icon-logo-angular:before{content:"\f300"}.ivu-icon-logo-apple:before{content:"\f301"}.ivu-icon-logo-bitcoin:before{content:"\f302"}.ivu-icon-logo-buffer:before{content:"\f303"}.ivu-icon-logo-chrome:before{content:"\f304"}.ivu-icon-logo-codepen:before{content:"\f305"}.ivu-icon-logo-css3:before{content:"\f306"}.ivu-icon-logo-designernews:before{content:"\f307"}.ivu-icon-logo-dribbble:before{content:"\f308"}.ivu-icon-logo-dropbox:before{content:"\f309"}.ivu-icon-logo-euro:before{content:"\f30a"}.ivu-icon-logo-facebook:before{content:"\f30b"}.ivu-icon-logo-foursquare:before{content:"\f30c"}.ivu-icon-logo-freebsd-devil:before{content:"\f30d"}.ivu-icon-logo-github:before{content:"\f30e"}.ivu-icon-logo-google:before{content:"\f30f"}.ivu-icon-logo-googleplus:before{content:"\f310"}.ivu-icon-logo-hackernews:before{content:"\f311"}.ivu-icon-logo-html5:before{content:"\f312"}.ivu-icon-logo-instagram:before{content:"\f313"}.ivu-icon-logo-javascript:before{content:"\f314"}.ivu-icon-logo-linkedin:before{content:"\f315"}.ivu-icon-logo-markdown:before{content:"\f316"}.ivu-icon-logo-nodejs:before{content:"\f317"}.ivu-icon-logo-octocat:before{content:"\f318"}.ivu-icon-logo-pinterest:before{content:"\f319"}.ivu-icon-logo-playstation:before{content:"\f31a"}.ivu-icon-logo-python:before{content:"\f31b"}.ivu-icon-logo-reddit:before{content:"\f31c"}.ivu-icon-logo-rss:before{content:"\f31d"}.ivu-icon-logo-sass:before{content:"\f31e"}.ivu-icon-logo-skype:before{content:"\f31f"}.ivu-icon-logo-snapchat:before{content:"\f320"}.ivu-icon-logo-steam:before{content:"\f321"}.ivu-icon-logo-tumblr:before{content:"\f322"}.ivu-icon-logo-tux:before{content:"\f323"}.ivu-icon-logo-twitch:before{content:"\f324"}.ivu-icon-logo-twitter:before{content:"\f325"}.ivu-icon-logo-usd:before{content:"\f326"}.ivu-icon-logo-vimeo:before{content:"\f327"}.ivu-icon-logo-whatsapp:before{content:"\f328"}.ivu-icon-logo-windows:before{content:"\f329"}.ivu-icon-logo-wordpress:before{content:"\f32a"}.ivu-icon-logo-xbox:before{content:"\f32b"}.ivu-icon-logo-yahoo:before{content:"\f32c"}.ivu-icon-logo-yen:before{content:"\f32d"}.ivu-icon-logo-youtube:before{content:"\f32e"}.ivu-icon-md-add-circle:before{content:"\f32f"}.ivu-icon-md-add:before{content:"\f330"}.ivu-icon-md-alarm:before{content:"\f331"}.ivu-icon-md-albums:before{content:"\f332"}.ivu-icon-md-alert:before{content:"\f333"}.ivu-icon-md-american-football:before{content:"\f334"}.ivu-icon-md-analytics:before{content:"\f335"}.ivu-icon-md-aperture:before{content:"\f336"}.ivu-icon-md-apps:before{content:"\f337"}.ivu-icon-md-appstore:before{content:"\f338"}.ivu-icon-md-archive:before{content:"\f339"}.ivu-icon-md-arrow-back:before{content:"\f33a"}.ivu-icon-md-arrow-down:before{content:"\f33b"}.ivu-icon-md-arrow-dropdown-circle:before{content:"\f33c"}.ivu-icon-md-arrow-dropdown:before{content:"\f33d"}.ivu-icon-md-arrow-dropleft-circle:before{content:"\f33e"}.ivu-icon-md-arrow-dropleft:before{content:"\f33f"}.ivu-icon-md-arrow-dropright-circle:before{content:"\f340"}.ivu-icon-md-arrow-dropright:before{content:"\f341"}.ivu-icon-md-arrow-dropup-circle:before{content:"\f342"}.ivu-icon-md-arrow-dropup:before{content:"\f343"}.ivu-icon-md-arrow-forward:before{content:"\f344"}.ivu-icon-md-arrow-round-back:before{content:"\f345"}.ivu-icon-md-arrow-round-down:before{content:"\f346"}.ivu-icon-md-arrow-round-forward:before{content:"\f347"}.ivu-icon-md-arrow-round-up:before{content:"\f348"}.ivu-icon-md-arrow-up:before{content:"\f349"}.ivu-icon-md-at:before{content:"\f34a"}.ivu-icon-md-attach:before{content:"\f34b"}.ivu-icon-md-backspace:before{content:"\f34c"}.ivu-icon-md-barcode:before{content:"\f34d"}.ivu-icon-md-baseball:before{content:"\f34e"}.ivu-icon-md-basket:before{content:"\f34f"}.ivu-icon-md-basketball:before{content:"\f350"}.ivu-icon-md-battery-charging:before{content:"\f351"}.ivu-icon-md-battery-dead:before{content:"\f352"}.ivu-icon-md-battery-full:before{content:"\f353"}.ivu-icon-md-beaker:before{content:"\f354"}.ivu-icon-md-beer:before{content:"\f355"}.ivu-icon-md-bicycle:before{content:"\f356"}.ivu-icon-md-bluetooth:before{content:"\f357"}.ivu-icon-md-boat:before{content:"\f358"}.ivu-icon-md-body:before{content:"\f359"}.ivu-icon-md-bonfire:before{content:"\f35a"}.ivu-icon-md-book:before{content:"\f35b"}.ivu-icon-md-bookmark:before{content:"\f35c"}.ivu-icon-md-bookmarks:before{content:"\f35d"}.ivu-icon-md-bowtie:before{content:"\f35e"}.ivu-icon-md-briefcase:before{content:"\f35f"}.ivu-icon-md-browsers:before{content:"\f360"}.ivu-icon-md-brush:before{content:"\f361"}.ivu-icon-md-bug:before{content:"\f362"}.ivu-icon-md-build:before{content:"\f363"}.ivu-icon-md-bulb:before{content:"\f364"}.ivu-icon-md-bus:before{content:"\f365"}.ivu-icon-md-cafe:before{content:"\f366"}.ivu-icon-md-calculator:before{content:"\f367"}.ivu-icon-md-calendar:before{content:"\f368"}.ivu-icon-md-call:before{content:"\f369"}.ivu-icon-md-camera:before{content:"\f36a"}.ivu-icon-md-car:before{content:"\f36b"}.ivu-icon-md-card:before{content:"\f36c"}.ivu-icon-md-cart:before{content:"\f36d"}.ivu-icon-md-cash:before{content:"\f36e"}.ivu-icon-md-chatboxes:before{content:"\f36f"}.ivu-icon-md-chatbubbles:before{content:"\f370"}.ivu-icon-md-checkbox-outline:before{content:"\f371"}.ivu-icon-md-checkbox:before{content:"\f372"}.ivu-icon-md-checkmark-circle-outline:before{content:"\f373"}.ivu-icon-md-checkmark-circle:before{content:"\f374"}.ivu-icon-md-checkmark:before{content:"\f375"}.ivu-icon-md-clipboard:before{content:"\f376"}.ivu-icon-md-clock:before{content:"\f377"}.ivu-icon-md-close-circle:before{content:"\f378"}.ivu-icon-md-close:before{content:"\f379"}.ivu-icon-md-closed-captioning:before{content:"\f37a"}.ivu-icon-md-cloud-circle:before{content:"\f37b"}.ivu-icon-md-cloud-done:before{content:"\f37c"}.ivu-icon-md-cloud-download:before{content:"\f37d"}.ivu-icon-md-cloud-outline:before{content:"\f37e"}.ivu-icon-md-cloud-upload:before{content:"\f37f"}.ivu-icon-md-cloud:before{content:"\f380"}.ivu-icon-md-cloudy-night:before{content:"\f381"}.ivu-icon-md-cloudy:before{content:"\f382"}.ivu-icon-md-code-download:before{content:"\f383"}.ivu-icon-md-code-working:before{content:"\f384"}.ivu-icon-md-code:before{content:"\f385"}.ivu-icon-md-cog:before{content:"\f386"}.ivu-icon-md-color-fill:before{content:"\f387"}.ivu-icon-md-color-filter:before{content:"\f388"}.ivu-icon-md-color-palette:before{content:"\f389"}.ivu-icon-md-color-wand:before{content:"\f38a"}.ivu-icon-md-compass:before{content:"\f38b"}.ivu-icon-md-construct:before{content:"\f38c"}.ivu-icon-md-contact:before{content:"\f38d"}.ivu-icon-md-contacts:before{content:"\f38e"}.ivu-icon-md-contract:before{content:"\f38f"}.ivu-icon-md-contrast:before{content:"\f390"}.ivu-icon-md-copy:before{content:"\f391"}.ivu-icon-md-create:before{content:"\f392"}.ivu-icon-md-crop:before{content:"\f393"}.ivu-icon-md-cube:before{content:"\f394"}.ivu-icon-md-cut:before{content:"\f395"}.ivu-icon-md-desktop:before{content:"\f396"}.ivu-icon-md-disc:before{content:"\f397"}.ivu-icon-md-document:before{content:"\f398"}.ivu-icon-md-done-all:before{content:"\f399"}.ivu-icon-md-download:before{content:"\f39a"}.ivu-icon-md-easel:before{content:"\f39b"}.ivu-icon-md-egg:before{content:"\f39c"}.ivu-icon-md-exit:before{content:"\f39d"}.ivu-icon-md-expand:before{content:"\f39e"}.ivu-icon-md-eye-off:before{content:"\f39f"}.ivu-icon-md-eye:before{content:"\f3a0"}.ivu-icon-md-fastforward:before{content:"\f3a1"}.ivu-icon-md-female:before{content:"\f3a2"}.ivu-icon-md-filing:before{content:"\f3a3"}.ivu-icon-md-film:before{content:"\f3a4"}.ivu-icon-md-finger-print:before{content:"\f3a5"}.ivu-icon-md-flag:before{content:"\f3a6"}.ivu-icon-md-flame:before{content:"\f3a7"}.ivu-icon-md-flash:before{content:"\f3a8"}.ivu-icon-md-flask:before{content:"\f3a9"}.ivu-icon-md-flower:before{content:"\f3aa"}.ivu-icon-md-folder-open:before{content:"\f3ab"}.ivu-icon-md-folder:before{content:"\f3ac"}.ivu-icon-md-football:before{content:"\f3ad"}.ivu-icon-md-funnel:before{content:"\f3ae"}.ivu-icon-md-game-controller-a:before{content:"\f3af"}.ivu-icon-md-game-controller-b:before{content:"\f3b0"}.ivu-icon-md-git-branch:before{content:"\f3b1"}.ivu-icon-md-git-commit:before{content:"\f3b2"}.ivu-icon-md-git-compare:before{content:"\f3b3"}.ivu-icon-md-git-merge:before{content:"\f3b4"}.ivu-icon-md-git-network:before{content:"\f3b5"}.ivu-icon-md-git-pull-request:before{content:"\f3b6"}.ivu-icon-md-glasses:before{content:"\f3b7"}.ivu-icon-md-globe:before{content:"\f3b8"}.ivu-icon-md-grid:before{content:"\f3b9"}.ivu-icon-md-hammer:before{content:"\f3ba"}.ivu-icon-md-hand:before{content:"\f3bb"}.ivu-icon-md-happy:before{content:"\f3bc"}.ivu-icon-md-headset:before{content:"\f3bd"}.ivu-icon-md-heart-outline:before{content:"\f3be"}.ivu-icon-md-heart:before{content:"\f3bf"}.ivu-icon-md-help-buoy:before{content:"\f3c0"}.ivu-icon-md-help-circle:before{content:"\f3c1"}.ivu-icon-md-help:before{content:"\f3c2"}.ivu-icon-md-home:before{content:"\f3c3"}.ivu-icon-md-ice-cream:before{content:"\f3c4"}.ivu-icon-md-image:before{content:"\f3c5"}.ivu-icon-md-images:before{content:"\f3c6"}.ivu-icon-md-infinite:before{content:"\f3c7"}.ivu-icon-md-information-circle:before{content:"\f3c8"}.ivu-icon-md-information:before{content:"\f3c9"}.ivu-icon-md-ionic:before{content:"\f3ca"}.ivu-icon-md-ionitron:before{content:"\f3cb"}.ivu-icon-md-jet:before{content:"\f3cc"}.ivu-icon-md-key:before{content:"\f3cd"}.ivu-icon-md-keypad:before{content:"\f3ce"}.ivu-icon-md-laptop:before{content:"\f3cf"}.ivu-icon-md-leaf:before{content:"\f3d0"}.ivu-icon-md-link:before{content:"\f3d1"}.ivu-icon-md-list-box:before{content:"\f3d2"}.ivu-icon-md-list:before{content:"\f3d3"}.ivu-icon-md-locate:before{content:"\f3d4"}.ivu-icon-md-lock:before{content:"\f3d5"}.ivu-icon-md-log-in:before{content:"\f3d6"}.ivu-icon-md-log-out:before{content:"\f3d7"}.ivu-icon-md-magnet:before{content:"\f3d8"}.ivu-icon-md-mail-open:before{content:"\f3d9"}.ivu-icon-md-mail:before{content:"\f3da"}.ivu-icon-md-male:before{content:"\f3db"}.ivu-icon-md-man:before{content:"\f3dc"}.ivu-icon-md-map:before{content:"\f3dd"}.ivu-icon-md-medal:before{content:"\f3de"}.ivu-icon-md-medical:before{content:"\f3df"}.ivu-icon-md-medkit:before{content:"\f3e0"}.ivu-icon-md-megaphone:before{content:"\f3e1"}.ivu-icon-md-menu:before{content:"\f3e2"}.ivu-icon-md-mic-off:before{content:"\f3e3"}.ivu-icon-md-mic:before{content:"\f3e4"}.ivu-icon-md-microphone:before{content:"\f3e5"}.ivu-icon-md-moon:before{content:"\f3e6"}.ivu-icon-md-more:before{content:"\f3e7"}.ivu-icon-md-move:before{content:"\f3e8"}.ivu-icon-md-musical-note:before{content:"\f3e9"}.ivu-icon-md-musical-notes:before{content:"\f3ea"}.ivu-icon-md-navigate:before{content:"\f3eb"}.ivu-icon-md-no-smoking:before{content:"\f3ec"}.ivu-icon-md-notifications-off:before{content:"\f3ed"}.ivu-icon-md-notifications-outline:before{content:"\f3ee"}.ivu-icon-md-notifications:before{content:"\f3ef"}.ivu-icon-md-nuclear:before{content:"\f3f0"}.ivu-icon-md-nutrition:before{content:"\f3f1"}.ivu-icon-md-open:before{content:"\f3f2"}.ivu-icon-md-options:before{content:"\f3f3"}.ivu-icon-md-outlet:before{content:"\f3f4"}.ivu-icon-md-paper-plane:before{content:"\f3f5"}.ivu-icon-md-paper:before{content:"\f3f6"}.ivu-icon-md-partly-sunny:before{content:"\f3f7"}.ivu-icon-md-pause:before{content:"\f3f8"}.ivu-icon-md-paw:before{content:"\f3f9"}.ivu-icon-md-people:before{content:"\f3fa"}.ivu-icon-md-person-add:before{content:"\f3fb"}.ivu-icon-md-person:before{content:"\f3fc"}.ivu-icon-md-phone-landscape:before{content:"\f3fd"}.ivu-icon-md-phone-portrait:before{content:"\f3fe"}.ivu-icon-md-photos:before{content:"\f3ff"}.ivu-icon-md-pie:before{content:"\f400"}.ivu-icon-md-pin:before{content:"\f401"}.ivu-icon-md-pint:before{content:"\f402"}.ivu-icon-md-pizza:before{content:"\f403"}.ivu-icon-md-plane:before{content:"\f404"}.ivu-icon-md-planet:before{content:"\f405"}.ivu-icon-md-play:before{content:"\f406"}.ivu-icon-md-podium:before{content:"\f407"}.ivu-icon-md-power:before{content:"\f408"}.ivu-icon-md-pricetag:before{content:"\f409"}.ivu-icon-md-pricetags:before{content:"\f40a"}.ivu-icon-md-print:before{content:"\f40b"}.ivu-icon-md-pulse:before{content:"\f40c"}.ivu-icon-md-qr-scanner:before{content:"\f40d"}.ivu-icon-md-quote:before{content:"\f40e"}.ivu-icon-md-radio-button-off:before{content:"\f40f"}.ivu-icon-md-radio-button-on:before{content:"\f410"}.ivu-icon-md-radio:before{content:"\f411"}.ivu-icon-md-rainy:before{content:"\f412"}.ivu-icon-md-recording:before{content:"\f413"}.ivu-icon-md-redo:before{content:"\f414"}.ivu-icon-md-refresh-circle:before{content:"\f415"}.ivu-icon-md-refresh:before{content:"\f416"}.ivu-icon-md-remove-circle:before{content:"\f417"}.ivu-icon-md-remove:before{content:"\f418"}.ivu-icon-md-reorder:before{content:"\f419"}.ivu-icon-md-repeat:before{content:"\f41a"}.ivu-icon-md-resize:before{content:"\f41b"}.ivu-icon-md-restaurant:before{content:"\f41c"}.ivu-icon-md-return-left:before{content:"\f41d"}.ivu-icon-md-return-right:before{content:"\f41e"}.ivu-icon-md-reverse-camera:before{content:"\f41f"}.ivu-icon-md-rewind:before{content:"\f420"}.ivu-icon-md-ribbon:before{content:"\f421"}.ivu-icon-md-rose:before{content:"\f422"}.ivu-icon-md-sad:before{content:"\f423"}.ivu-icon-md-school:before{content:"\f424"}.ivu-icon-md-search:before{content:"\f425"}.ivu-icon-md-send:before{content:"\f426"}.ivu-icon-md-settings:before{content:"\f427"}.ivu-icon-md-share-alt:before{content:"\f428"}.ivu-icon-md-share:before{content:"\f429"}.ivu-icon-md-shirt:before{content:"\f42a"}.ivu-icon-md-shuffle:before{content:"\f42b"}.ivu-icon-md-skip-backward:before{content:"\f42c"}.ivu-icon-md-skip-forward:before{content:"\f42d"}.ivu-icon-md-snow:before{content:"\f42e"}.ivu-icon-md-speedometer:before{content:"\f42f"}.ivu-icon-md-square-outline:before{content:"\f430"}.ivu-icon-md-square:before{content:"\f431"}.ivu-icon-md-star-half:before{content:"\f432"}.ivu-icon-md-star-outline:before{content:"\f433"}.ivu-icon-md-star:before{content:"\f434"}.ivu-icon-md-stats:before{content:"\f435"}.ivu-icon-md-stopwatch:before{content:"\f436"}.ivu-icon-md-subway:before{content:"\f437"}.ivu-icon-md-sunny:before{content:"\f438"}.ivu-icon-md-swap:before{content:"\f439"}.ivu-icon-md-switch:before{content:"\f43a"}.ivu-icon-md-sync:before{content:"\f43b"}.ivu-icon-md-tablet-landscape:before{content:"\f43c"}.ivu-icon-md-tablet-portrait:before{content:"\f43d"}.ivu-icon-md-tennisball:before{content:"\f43e"}.ivu-icon-md-text:before{content:"\f43f"}.ivu-icon-md-thermometer:before{content:"\f440"}.ivu-icon-md-thumbs-down:before{content:"\f441"}.ivu-icon-md-thumbs-up:before{content:"\f442"}.ivu-icon-md-thunderstorm:before{content:"\f443"}.ivu-icon-md-time:before{content:"\f444"}.ivu-icon-md-timer:before{content:"\f445"}.ivu-icon-md-train:before{content:"\f446"}.ivu-icon-md-transgender:before{content:"\f447"}.ivu-icon-md-trash:before{content:"\f448"}.ivu-icon-md-trending-down:before{content:"\f449"}.ivu-icon-md-trending-up:before{content:"\f44a"}.ivu-icon-md-trophy:before{content:"\f44b"}.ivu-icon-md-umbrella:before{content:"\f44c"}.ivu-icon-md-undo:before{content:"\f44d"}.ivu-icon-md-unlock:before{content:"\f44e"}.ivu-icon-md-videocam:before{content:"\f44f"}.ivu-icon-md-volume-down:before{content:"\f450"}.ivu-icon-md-volume-mute:before{content:"\f451"}.ivu-icon-md-volume-off:before{content:"\f452"}.ivu-icon-md-volume-up:before{content:"\f453"}.ivu-icon-md-walk:before{content:"\f454"}.ivu-icon-md-warning:before{content:"\f455"}.ivu-icon-md-watch:before{content:"\f456"}.ivu-icon-md-water:before{content:"\f457"}.ivu-icon-md-wifi:before{content:"\f458"}.ivu-icon-md-wine:before{content:"\f459"}.ivu-icon-md-woman:before{content:"\f45a"}.ivu-icon-ios-loading:before{content:"\f45b"}.ivu-row{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row wrap;flex-flow:row wrap}.ivu-row::after,.ivu-row::before{display:-webkit-box;display:-ms-flexbox;display:flex}.ivu-row-no-wrap{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.ivu-row-start{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.ivu-row-center{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.ivu-row-end{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.ivu-row-space-between{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.ivu-row-space-around{-ms-flex-pack:distribute;justify-content:space-around}.ivu-row-top{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.ivu-row-middle{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.ivu-row-bottom{-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end}.ivu-col{position:relative;max-width:100%;min-height:1px}.ivu-col-span-24{display:block;-webkit-box-flex:0;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.ivu-col-push-24{left:100%}.ivu-col-pull-24{right:100%}.ivu-col-offset-24{margin-left:100%}.ivu-col-order-24{-webkit-box-ordinal-group:25;-ms-flex-order:24;order:24}.ivu-col-span-23{display:block;-webkit-box-flex:0;-ms-flex:0 0 95.83333333%;flex:0 0 95.83333333%;max-width:95.83333333%}.ivu-col-push-23{left:95.83333333%}.ivu-col-pull-23{right:95.83333333%}.ivu-col-offset-23{margin-left:95.83333333%}.ivu-col-order-23{-webkit-box-ordinal-group:24;-ms-flex-order:23;order:23}.ivu-col-span-22{display:block;-webkit-box-flex:0;-ms-flex:0 0 91.66666667%;flex:0 0 91.66666667%;max-width:91.66666667%}.ivu-col-push-22{left:91.66666667%}.ivu-col-pull-22{right:91.66666667%}.ivu-col-offset-22{margin-left:91.66666667%}.ivu-col-order-22{-webkit-box-ordinal-group:23;-ms-flex-order:22;order:22}.ivu-col-span-21{display:block;-webkit-box-flex:0;-ms-flex:0 0 87.5%;flex:0 0 87.5%;max-width:87.5%}.ivu-col-push-21{left:87.5%}.ivu-col-pull-21{right:87.5%}.ivu-col-offset-21{margin-left:87.5%}.ivu-col-order-21{-webkit-box-ordinal-group:22;-ms-flex-order:21;order:21}.ivu-col-span-20{display:block;-webkit-box-flex:0;-ms-flex:0 0 83.33333333%;flex:0 0 83.33333333%;max-width:83.33333333%}.ivu-col-push-20{left:83.33333333%}.ivu-col-pull-20{right:83.33333333%}.ivu-col-offset-20{margin-left:83.33333333%}.ivu-col-order-20{-webkit-box-ordinal-group:21;-ms-flex-order:20;order:20}.ivu-col-span-19{display:block;-webkit-box-flex:0;-ms-flex:0 0 79.16666667%;flex:0 0 79.16666667%;max-width:79.16666667%}.ivu-col-push-19{left:79.16666667%}.ivu-col-pull-19{right:79.16666667%}.ivu-col-offset-19{margin-left:79.16666667%}.ivu-col-order-19{-webkit-box-ordinal-group:20;-ms-flex-order:19;order:19}.ivu-col-span-18{display:block;-webkit-box-flex:0;-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.ivu-col-push-18{left:75%}.ivu-col-pull-18{right:75%}.ivu-col-offset-18{margin-left:75%}.ivu-col-order-18{-webkit-box-ordinal-group:19;-ms-flex-order:18;order:18}.ivu-col-span-17{display:block;-webkit-box-flex:0;-ms-flex:0 0 70.83333333%;flex:0 0 70.83333333%;max-width:70.83333333%}.ivu-col-push-17{left:70.83333333%}.ivu-col-pull-17{right:70.83333333%}.ivu-col-offset-17{margin-left:70.83333333%}.ivu-col-order-17{-webkit-box-ordinal-group:18;-ms-flex-order:17;order:17}.ivu-col-span-16{display:block;-webkit-box-flex:0;-ms-flex:0 0 66.66666667%;flex:0 0 66.66666667%;max-width:66.66666667%}.ivu-col-push-16{left:66.66666667%}.ivu-col-pull-16{right:66.66666667%}.ivu-col-offset-16{margin-left:66.66666667%}.ivu-col-order-16{-webkit-box-ordinal-group:17;-ms-flex-order:16;order:16}.ivu-col-span-15{display:block;-webkit-box-flex:0;-ms-flex:0 0 62.5%;flex:0 0 62.5%;max-width:62.5%}.ivu-col-push-15{left:62.5%}.ivu-col-pull-15{right:62.5%}.ivu-col-offset-15{margin-left:62.5%}.ivu-col-order-15{-webkit-box-ordinal-group:16;-ms-flex-order:15;order:15}.ivu-col-span-14{display:block;-webkit-box-flex:0;-ms-flex:0 0 58.33333333%;flex:0 0 58.33333333%;max-width:58.33333333%}.ivu-col-push-14{left:58.33333333%}.ivu-col-pull-14{right:58.33333333%}.ivu-col-offset-14{margin-left:58.33333333%}.ivu-col-order-14{-webkit-box-ordinal-group:15;-ms-flex-order:14;order:14}.ivu-col-span-13{display:block;-webkit-box-flex:0;-ms-flex:0 0 54.16666667%;flex:0 0 54.16666667%;max-width:54.16666667%}.ivu-col-push-13{left:54.16666667%}.ivu-col-pull-13{right:54.16666667%}.ivu-col-offset-13{margin-left:54.16666667%}.ivu-col-order-13{-webkit-box-ordinal-group:14;-ms-flex-order:13;order:13}.ivu-col-span-12{display:block;-webkit-box-flex:0;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.ivu-col-push-12{left:50%}.ivu-col-pull-12{right:50%}.ivu-col-offset-12{margin-left:50%}.ivu-col-order-12{-webkit-box-ordinal-group:13;-ms-flex-order:12;order:12}.ivu-col-span-11{display:block;-webkit-box-flex:0;-ms-flex:0 0 45.83333333%;flex:0 0 45.83333333%;max-width:45.83333333%}.ivu-col-push-11{left:45.83333333%}.ivu-col-pull-11{right:45.83333333%}.ivu-col-offset-11{margin-left:45.83333333%}.ivu-col-order-11{-webkit-box-ordinal-group:12;-ms-flex-order:11;order:11}.ivu-col-span-10{display:block;-webkit-box-flex:0;-ms-flex:0 0 41.66666667%;flex:0 0 41.66666667%;max-width:41.66666667%}.ivu-col-push-10{left:41.66666667%}.ivu-col-pull-10{right:41.66666667%}.ivu-col-offset-10{margin-left:41.66666667%}.ivu-col-order-10{-webkit-box-ordinal-group:11;-ms-flex-order:10;order:10}.ivu-col-span-9{display:block;-webkit-box-flex:0;-ms-flex:0 0 37.5%;flex:0 0 37.5%;max-width:37.5%}.ivu-col-push-9{left:37.5%}.ivu-col-pull-9{right:37.5%}.ivu-col-offset-9{margin-left:37.5%}.ivu-col-order-9{-webkit-box-ordinal-group:10;-ms-flex-order:9;order:9}.ivu-col-span-8{display:block;-webkit-box-flex:0;-ms-flex:0 0 33.33333333%;flex:0 0 33.33333333%;max-width:33.33333333%}.ivu-col-push-8{left:33.33333333%}.ivu-col-pull-8{right:33.33333333%}.ivu-col-offset-8{margin-left:33.33333333%}.ivu-col-order-8{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.ivu-col-span-7{display:block;-webkit-box-flex:0;-ms-flex:0 0 29.16666667%;flex:0 0 29.16666667%;max-width:29.16666667%}.ivu-col-push-7{left:29.16666667%}.ivu-col-pull-7{right:29.16666667%}.ivu-col-offset-7{margin-left:29.16666667%}.ivu-col-order-7{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.ivu-col-span-6{display:block;-webkit-box-flex:0;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.ivu-col-push-6{left:25%}.ivu-col-pull-6{right:25%}.ivu-col-offset-6{margin-left:25%}.ivu-col-order-6{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.ivu-col-span-5{display:block;-webkit-box-flex:0;-ms-flex:0 0 20.83333333%;flex:0 0 20.83333333%;max-width:20.83333333%}.ivu-col-push-5{left:20.83333333%}.ivu-col-pull-5{right:20.83333333%}.ivu-col-offset-5{margin-left:20.83333333%}.ivu-col-order-5{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.ivu-col-span-4{display:block;-webkit-box-flex:0;-ms-flex:0 0 16.66666667%;flex:0 0 16.66666667%;max-width:16.66666667%}.ivu-col-push-4{left:16.66666667%}.ivu-col-pull-4{right:16.66666667%}.ivu-col-offset-4{margin-left:16.66666667%}.ivu-col-order-4{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.ivu-col-span-3{display:block;-webkit-box-flex:0;-ms-flex:0 0 12.5%;flex:0 0 12.5%;max-width:12.5%}.ivu-col-push-3{left:12.5%}.ivu-col-pull-3{right:12.5%}.ivu-col-offset-3{margin-left:12.5%}.ivu-col-order-3{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.ivu-col-span-2{display:block;-webkit-box-flex:0;-ms-flex:0 0 8.33333333%;flex:0 0 8.33333333%;max-width:8.33333333%}.ivu-col-push-2{left:8.33333333%}.ivu-col-pull-2{right:8.33333333%}.ivu-col-offset-2{margin-left:8.33333333%}.ivu-col-order-2{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.ivu-col-span-1{display:block;-webkit-box-flex:0;-ms-flex:0 0 4.16666667%;flex:0 0 4.16666667%;max-width:4.16666667%}.ivu-col-push-1{left:4.16666667%}.ivu-col-pull-1{right:4.16666667%}.ivu-col-offset-1{margin-left:4.16666667%}.ivu-col-order-1{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.ivu-col-span-0{display:none}.ivu-col-push-0{left:auto}.ivu-col-pull-0{right:auto}.ivu-col-push-0{left:auto}.ivu-col-pull-0{right:auto}.ivu-col-offset-0{margin-left:0}.ivu-col-order-0{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}.ivu-col-span-xs-24{display:block;-webkit-box-flex:0;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.ivu-col-xs-push-24{left:100%}.ivu-col-xs-pull-24{right:100%}.ivu-col-xs-offset-24{margin-left:100%}.ivu-col-xs-order-24{-webkit-box-ordinal-group:25;-ms-flex-order:24;order:24}.ivu-col-span-xs-23{display:block;-webkit-box-flex:0;-ms-flex:0 0 95.83333333%;flex:0 0 95.83333333%;max-width:95.83333333%}.ivu-col-xs-push-23{left:95.83333333%}.ivu-col-xs-pull-23{right:95.83333333%}.ivu-col-xs-offset-23{margin-left:95.83333333%}.ivu-col-xs-order-23{-webkit-box-ordinal-group:24;-ms-flex-order:23;order:23}.ivu-col-span-xs-22{display:block;-webkit-box-flex:0;-ms-flex:0 0 91.66666667%;flex:0 0 91.66666667%;max-width:91.66666667%}.ivu-col-xs-push-22{left:91.66666667%}.ivu-col-xs-pull-22{right:91.66666667%}.ivu-col-xs-offset-22{margin-left:91.66666667%}.ivu-col-xs-order-22{-webkit-box-ordinal-group:23;-ms-flex-order:22;order:22}.ivu-col-span-xs-21{display:block;-webkit-box-flex:0;-ms-flex:0 0 87.5%;flex:0 0 87.5%;max-width:87.5%}.ivu-col-xs-push-21{left:87.5%}.ivu-col-xs-pull-21{right:87.5%}.ivu-col-xs-offset-21{margin-left:87.5%}.ivu-col-xs-order-21{-webkit-box-ordinal-group:22;-ms-flex-order:21;order:21}.ivu-col-span-xs-20{display:block;-webkit-box-flex:0;-ms-flex:0 0 83.33333333%;flex:0 0 83.33333333%;max-width:83.33333333%}.ivu-col-xs-push-20{left:83.33333333%}.ivu-col-xs-pull-20{right:83.33333333%}.ivu-col-xs-offset-20{margin-left:83.33333333%}.ivu-col-xs-order-20{-webkit-box-ordinal-group:21;-ms-flex-order:20;order:20}.ivu-col-span-xs-19{display:block;-webkit-box-flex:0;-ms-flex:0 0 79.16666667%;flex:0 0 79.16666667%;max-width:79.16666667%}.ivu-col-xs-push-19{left:79.16666667%}.ivu-col-xs-pull-19{right:79.16666667%}.ivu-col-xs-offset-19{margin-left:79.16666667%}.ivu-col-xs-order-19{-webkit-box-ordinal-group:20;-ms-flex-order:19;order:19}.ivu-col-span-xs-18{display:block;-webkit-box-flex:0;-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.ivu-col-xs-push-18{left:75%}.ivu-col-xs-pull-18{right:75%}.ivu-col-xs-offset-18{margin-left:75%}.ivu-col-xs-order-18{-webkit-box-ordinal-group:19;-ms-flex-order:18;order:18}.ivu-col-span-xs-17{display:block;-webkit-box-flex:0;-ms-flex:0 0 70.83333333%;flex:0 0 70.83333333%;max-width:70.83333333%}.ivu-col-xs-push-17{left:70.83333333%}.ivu-col-xs-pull-17{right:70.83333333%}.ivu-col-xs-offset-17{margin-left:70.83333333%}.ivu-col-xs-order-17{-webkit-box-ordinal-group:18;-ms-flex-order:17;order:17}.ivu-col-span-xs-16{display:block;-webkit-box-flex:0;-ms-flex:0 0 66.66666667%;flex:0 0 66.66666667%;max-width:66.66666667%}.ivu-col-xs-push-16{left:66.66666667%}.ivu-col-xs-pull-16{right:66.66666667%}.ivu-col-xs-offset-16{margin-left:66.66666667%}.ivu-col-xs-order-16{-webkit-box-ordinal-group:17;-ms-flex-order:16;order:16}.ivu-col-span-xs-15{display:block;-webkit-box-flex:0;-ms-flex:0 0 62.5%;flex:0 0 62.5%;max-width:62.5%}.ivu-col-xs-push-15{left:62.5%}.ivu-col-xs-pull-15{right:62.5%}.ivu-col-xs-offset-15{margin-left:62.5%}.ivu-col-xs-order-15{-webkit-box-ordinal-group:16;-ms-flex-order:15;order:15}.ivu-col-span-xs-14{display:block;-webkit-box-flex:0;-ms-flex:0 0 58.33333333%;flex:0 0 58.33333333%;max-width:58.33333333%}.ivu-col-xs-push-14{left:58.33333333%}.ivu-col-xs-pull-14{right:58.33333333%}.ivu-col-xs-offset-14{margin-left:58.33333333%}.ivu-col-xs-order-14{-webkit-box-ordinal-group:15;-ms-flex-order:14;order:14}.ivu-col-span-xs-13{display:block;-webkit-box-flex:0;-ms-flex:0 0 54.16666667%;flex:0 0 54.16666667%;max-width:54.16666667%}.ivu-col-xs-push-13{left:54.16666667%}.ivu-col-xs-pull-13{right:54.16666667%}.ivu-col-xs-offset-13{margin-left:54.16666667%}.ivu-col-xs-order-13{-webkit-box-ordinal-group:14;-ms-flex-order:13;order:13}.ivu-col-span-xs-12{display:block;-webkit-box-flex:0;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.ivu-col-xs-push-12{left:50%}.ivu-col-xs-pull-12{right:50%}.ivu-col-xs-offset-12{margin-left:50%}.ivu-col-xs-order-12{-webkit-box-ordinal-group:13;-ms-flex-order:12;order:12}.ivu-col-span-xs-11{display:block;-webkit-box-flex:0;-ms-flex:0 0 45.83333333%;flex:0 0 45.83333333%;max-width:45.83333333%}.ivu-col-xs-push-11{left:45.83333333%}.ivu-col-xs-pull-11{right:45.83333333%}.ivu-col-xs-offset-11{margin-left:45.83333333%}.ivu-col-xs-order-11{-webkit-box-ordinal-group:12;-ms-flex-order:11;order:11}.ivu-col-span-xs-10{display:block;-webkit-box-flex:0;-ms-flex:0 0 41.66666667%;flex:0 0 41.66666667%;max-width:41.66666667%}.ivu-col-xs-push-10{left:41.66666667%}.ivu-col-xs-pull-10{right:41.66666667%}.ivu-col-xs-offset-10{margin-left:41.66666667%}.ivu-col-xs-order-10{-webkit-box-ordinal-group:11;-ms-flex-order:10;order:10}.ivu-col-span-xs-9{display:block;-webkit-box-flex:0;-ms-flex:0 0 37.5%;flex:0 0 37.5%;max-width:37.5%}.ivu-col-xs-push-9{left:37.5%}.ivu-col-xs-pull-9{right:37.5%}.ivu-col-xs-offset-9{margin-left:37.5%}.ivu-col-xs-order-9{-webkit-box-ordinal-group:10;-ms-flex-order:9;order:9}.ivu-col-span-xs-8{display:block;-webkit-box-flex:0;-ms-flex:0 0 33.33333333%;flex:0 0 33.33333333%;max-width:33.33333333%}.ivu-col-xs-push-8{left:33.33333333%}.ivu-col-xs-pull-8{right:33.33333333%}.ivu-col-xs-offset-8{margin-left:33.33333333%}.ivu-col-xs-order-8{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.ivu-col-span-xs-7{display:block;-webkit-box-flex:0;-ms-flex:0 0 29.16666667%;flex:0 0 29.16666667%;max-width:29.16666667%}.ivu-col-xs-push-7{left:29.16666667%}.ivu-col-xs-pull-7{right:29.16666667%}.ivu-col-xs-offset-7{margin-left:29.16666667%}.ivu-col-xs-order-7{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.ivu-col-span-xs-6{display:block;-webkit-box-flex:0;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.ivu-col-xs-push-6{left:25%}.ivu-col-xs-pull-6{right:25%}.ivu-col-xs-offset-6{margin-left:25%}.ivu-col-xs-order-6{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.ivu-col-span-xs-5{display:block;-webkit-box-flex:0;-ms-flex:0 0 20.83333333%;flex:0 0 20.83333333%;max-width:20.83333333%}.ivu-col-xs-push-5{left:20.83333333%}.ivu-col-xs-pull-5{right:20.83333333%}.ivu-col-xs-offset-5{margin-left:20.83333333%}.ivu-col-xs-order-5{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.ivu-col-span-xs-4{display:block;-webkit-box-flex:0;-ms-flex:0 0 16.66666667%;flex:0 0 16.66666667%;max-width:16.66666667%}.ivu-col-xs-push-4{left:16.66666667%}.ivu-col-xs-pull-4{right:16.66666667%}.ivu-col-xs-offset-4{margin-left:16.66666667%}.ivu-col-xs-order-4{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.ivu-col-span-xs-3{display:block;-webkit-box-flex:0;-ms-flex:0 0 12.5%;flex:0 0 12.5%;max-width:12.5%}.ivu-col-xs-push-3{left:12.5%}.ivu-col-xs-pull-3{right:12.5%}.ivu-col-xs-offset-3{margin-left:12.5%}.ivu-col-xs-order-3{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.ivu-col-span-xs-2{display:block;-webkit-box-flex:0;-ms-flex:0 0 8.33333333%;flex:0 0 8.33333333%;max-width:8.33333333%}.ivu-col-xs-push-2{left:8.33333333%}.ivu-col-xs-pull-2{right:8.33333333%}.ivu-col-xs-offset-2{margin-left:8.33333333%}.ivu-col-xs-order-2{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.ivu-col-span-xs-1{display:block;-webkit-box-flex:0;-ms-flex:0 0 4.16666667%;flex:0 0 4.16666667%;max-width:4.16666667%}.ivu-col-xs-push-1{left:4.16666667%}.ivu-col-xs-pull-1{right:4.16666667%}.ivu-col-xs-offset-1{margin-left:4.16666667%}.ivu-col-xs-order-1{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.ivu-col-span-xs-0{display:none}.ivu-col-push-0{left:auto}.ivu-col-pull-0{right:auto}.ivu-col-xs-push-0{left:auto}.ivu-col-xs-pull-0{right:auto}.ivu-col-xs-offset-0{margin-left:0}.ivu-col-xs-order-0{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}@media (min-width:576px){.ivu-col-span-sm-24{display:block;-webkit-box-flex:0;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.ivu-col-sm-push-24{left:100%}.ivu-col-sm-pull-24{right:100%}.ivu-col-sm-offset-24{margin-left:100%}.ivu-col-sm-order-24{-webkit-box-ordinal-group:25;-ms-flex-order:24;order:24}.ivu-col-span-sm-23{display:block;-webkit-box-flex:0;-ms-flex:0 0 95.83333333%;flex:0 0 95.83333333%;max-width:95.83333333%}.ivu-col-sm-push-23{left:95.83333333%}.ivu-col-sm-pull-23{right:95.83333333%}.ivu-col-sm-offset-23{margin-left:95.83333333%}.ivu-col-sm-order-23{-webkit-box-ordinal-group:24;-ms-flex-order:23;order:23}.ivu-col-span-sm-22{display:block;-webkit-box-flex:0;-ms-flex:0 0 91.66666667%;flex:0 0 91.66666667%;max-width:91.66666667%}.ivu-col-sm-push-22{left:91.66666667%}.ivu-col-sm-pull-22{right:91.66666667%}.ivu-col-sm-offset-22{margin-left:91.66666667%}.ivu-col-sm-order-22{-webkit-box-ordinal-group:23;-ms-flex-order:22;order:22}.ivu-col-span-sm-21{display:block;-webkit-box-flex:0;-ms-flex:0 0 87.5%;flex:0 0 87.5%;max-width:87.5%}.ivu-col-sm-push-21{left:87.5%}.ivu-col-sm-pull-21{right:87.5%}.ivu-col-sm-offset-21{margin-left:87.5%}.ivu-col-sm-order-21{-webkit-box-ordinal-group:22;-ms-flex-order:21;order:21}.ivu-col-span-sm-20{display:block;-webkit-box-flex:0;-ms-flex:0 0 83.33333333%;flex:0 0 83.33333333%;max-width:83.33333333%}.ivu-col-sm-push-20{left:83.33333333%}.ivu-col-sm-pull-20{right:83.33333333%}.ivu-col-sm-offset-20{margin-left:83.33333333%}.ivu-col-sm-order-20{-webkit-box-ordinal-group:21;-ms-flex-order:20;order:20}.ivu-col-span-sm-19{display:block;-webkit-box-flex:0;-ms-flex:0 0 79.16666667%;flex:0 0 79.16666667%;max-width:79.16666667%}.ivu-col-sm-push-19{left:79.16666667%}.ivu-col-sm-pull-19{right:79.16666667%}.ivu-col-sm-offset-19{margin-left:79.16666667%}.ivu-col-sm-order-19{-webkit-box-ordinal-group:20;-ms-flex-order:19;order:19}.ivu-col-span-sm-18{display:block;-webkit-box-flex:0;-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.ivu-col-sm-push-18{left:75%}.ivu-col-sm-pull-18{right:75%}.ivu-col-sm-offset-18{margin-left:75%}.ivu-col-sm-order-18{-webkit-box-ordinal-group:19;-ms-flex-order:18;order:18}.ivu-col-span-sm-17{display:block;-webkit-box-flex:0;-ms-flex:0 0 70.83333333%;flex:0 0 70.83333333%;max-width:70.83333333%}.ivu-col-sm-push-17{left:70.83333333%}.ivu-col-sm-pull-17{right:70.83333333%}.ivu-col-sm-offset-17{margin-left:70.83333333%}.ivu-col-sm-order-17{-webkit-box-ordinal-group:18;-ms-flex-order:17;order:17}.ivu-col-span-sm-16{display:block;-webkit-box-flex:0;-ms-flex:0 0 66.66666667%;flex:0 0 66.66666667%;max-width:66.66666667%}.ivu-col-sm-push-16{left:66.66666667%}.ivu-col-sm-pull-16{right:66.66666667%}.ivu-col-sm-offset-16{margin-left:66.66666667%}.ivu-col-sm-order-16{-webkit-box-ordinal-group:17;-ms-flex-order:16;order:16}.ivu-col-span-sm-15{display:block;-webkit-box-flex:0;-ms-flex:0 0 62.5%;flex:0 0 62.5%;max-width:62.5%}.ivu-col-sm-push-15{left:62.5%}.ivu-col-sm-pull-15{right:62.5%}.ivu-col-sm-offset-15{margin-left:62.5%}.ivu-col-sm-order-15{-webkit-box-ordinal-group:16;-ms-flex-order:15;order:15}.ivu-col-span-sm-14{display:block;-webkit-box-flex:0;-ms-flex:0 0 58.33333333%;flex:0 0 58.33333333%;max-width:58.33333333%}.ivu-col-sm-push-14{left:58.33333333%}.ivu-col-sm-pull-14{right:58.33333333%}.ivu-col-sm-offset-14{margin-left:58.33333333%}.ivu-col-sm-order-14{-webkit-box-ordinal-group:15;-ms-flex-order:14;order:14}.ivu-col-span-sm-13{display:block;-webkit-box-flex:0;-ms-flex:0 0 54.16666667%;flex:0 0 54.16666667%;max-width:54.16666667%}.ivu-col-sm-push-13{left:54.16666667%}.ivu-col-sm-pull-13{right:54.16666667%}.ivu-col-sm-offset-13{margin-left:54.16666667%}.ivu-col-sm-order-13{-webkit-box-ordinal-group:14;-ms-flex-order:13;order:13}.ivu-col-span-sm-12{display:block;-webkit-box-flex:0;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.ivu-col-sm-push-12{left:50%}.ivu-col-sm-pull-12{right:50%}.ivu-col-sm-offset-12{margin-left:50%}.ivu-col-sm-order-12{-webkit-box-ordinal-group:13;-ms-flex-order:12;order:12}.ivu-col-span-sm-11{display:block;-webkit-box-flex:0;-ms-flex:0 0 45.83333333%;flex:0 0 45.83333333%;max-width:45.83333333%}.ivu-col-sm-push-11{left:45.83333333%}.ivu-col-sm-pull-11{right:45.83333333%}.ivu-col-sm-offset-11{margin-left:45.83333333%}.ivu-col-sm-order-11{-webkit-box-ordinal-group:12;-ms-flex-order:11;order:11}.ivu-col-span-sm-10{display:block;-webkit-box-flex:0;-ms-flex:0 0 41.66666667%;flex:0 0 41.66666667%;max-width:41.66666667%}.ivu-col-sm-push-10{left:41.66666667%}.ivu-col-sm-pull-10{right:41.66666667%}.ivu-col-sm-offset-10{margin-left:41.66666667%}.ivu-col-sm-order-10{-webkit-box-ordinal-group:11;-ms-flex-order:10;order:10}.ivu-col-span-sm-9{display:block;-webkit-box-flex:0;-ms-flex:0 0 37.5%;flex:0 0 37.5%;max-width:37.5%}.ivu-col-sm-push-9{left:37.5%}.ivu-col-sm-pull-9{right:37.5%}.ivu-col-sm-offset-9{margin-left:37.5%}.ivu-col-sm-order-9{-webkit-box-ordinal-group:10;-ms-flex-order:9;order:9}.ivu-col-span-sm-8{display:block;-webkit-box-flex:0;-ms-flex:0 0 33.33333333%;flex:0 0 33.33333333%;max-width:33.33333333%}.ivu-col-sm-push-8{left:33.33333333%}.ivu-col-sm-pull-8{right:33.33333333%}.ivu-col-sm-offset-8{margin-left:33.33333333%}.ivu-col-sm-order-8{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.ivu-col-span-sm-7{display:block;-webkit-box-flex:0;-ms-flex:0 0 29.16666667%;flex:0 0 29.16666667%;max-width:29.16666667%}.ivu-col-sm-push-7{left:29.16666667%}.ivu-col-sm-pull-7{right:29.16666667%}.ivu-col-sm-offset-7{margin-left:29.16666667%}.ivu-col-sm-order-7{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.ivu-col-span-sm-6{display:block;-webkit-box-flex:0;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.ivu-col-sm-push-6{left:25%}.ivu-col-sm-pull-6{right:25%}.ivu-col-sm-offset-6{margin-left:25%}.ivu-col-sm-order-6{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.ivu-col-span-sm-5{display:block;-webkit-box-flex:0;-ms-flex:0 0 20.83333333%;flex:0 0 20.83333333%;max-width:20.83333333%}.ivu-col-sm-push-5{left:20.83333333%}.ivu-col-sm-pull-5{right:20.83333333%}.ivu-col-sm-offset-5{margin-left:20.83333333%}.ivu-col-sm-order-5{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.ivu-col-span-sm-4{display:block;-webkit-box-flex:0;-ms-flex:0 0 16.66666667%;flex:0 0 16.66666667%;max-width:16.66666667%}.ivu-col-sm-push-4{left:16.66666667%}.ivu-col-sm-pull-4{right:16.66666667%}.ivu-col-sm-offset-4{margin-left:16.66666667%}.ivu-col-sm-order-4{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.ivu-col-span-sm-3{display:block;-webkit-box-flex:0;-ms-flex:0 0 12.5%;flex:0 0 12.5%;max-width:12.5%}.ivu-col-sm-push-3{left:12.5%}.ivu-col-sm-pull-3{right:12.5%}.ivu-col-sm-offset-3{margin-left:12.5%}.ivu-col-sm-order-3{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.ivu-col-span-sm-2{display:block;-webkit-box-flex:0;-ms-flex:0 0 8.33333333%;flex:0 0 8.33333333%;max-width:8.33333333%}.ivu-col-sm-push-2{left:8.33333333%}.ivu-col-sm-pull-2{right:8.33333333%}.ivu-col-sm-offset-2{margin-left:8.33333333%}.ivu-col-sm-order-2{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.ivu-col-span-sm-1{display:block;-webkit-box-flex:0;-ms-flex:0 0 4.16666667%;flex:0 0 4.16666667%;max-width:4.16666667%}.ivu-col-sm-push-1{left:4.16666667%}.ivu-col-sm-pull-1{right:4.16666667%}.ivu-col-sm-offset-1{margin-left:4.16666667%}.ivu-col-sm-order-1{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.ivu-col-span-sm-0{display:none}.ivu-col-push-0{left:auto}.ivu-col-pull-0{right:auto}.ivu-col-sm-push-0{left:auto}.ivu-col-sm-pull-0{right:auto}.ivu-col-sm-offset-0{margin-left:0}.ivu-col-sm-order-0{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}}@media (min-width:768px){.ivu-col-span-md-24{display:block;-webkit-box-flex:0;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.ivu-col-md-push-24{left:100%}.ivu-col-md-pull-24{right:100%}.ivu-col-md-offset-24{margin-left:100%}.ivu-col-md-order-24{-webkit-box-ordinal-group:25;-ms-flex-order:24;order:24}.ivu-col-span-md-23{display:block;-webkit-box-flex:0;-ms-flex:0 0 95.83333333%;flex:0 0 95.83333333%;max-width:95.83333333%}.ivu-col-md-push-23{left:95.83333333%}.ivu-col-md-pull-23{right:95.83333333%}.ivu-col-md-offset-23{margin-left:95.83333333%}.ivu-col-md-order-23{-webkit-box-ordinal-group:24;-ms-flex-order:23;order:23}.ivu-col-span-md-22{display:block;-webkit-box-flex:0;-ms-flex:0 0 91.66666667%;flex:0 0 91.66666667%;max-width:91.66666667%}.ivu-col-md-push-22{left:91.66666667%}.ivu-col-md-pull-22{right:91.66666667%}.ivu-col-md-offset-22{margin-left:91.66666667%}.ivu-col-md-order-22{-webkit-box-ordinal-group:23;-ms-flex-order:22;order:22}.ivu-col-span-md-21{display:block;-webkit-box-flex:0;-ms-flex:0 0 87.5%;flex:0 0 87.5%;max-width:87.5%}.ivu-col-md-push-21{left:87.5%}.ivu-col-md-pull-21{right:87.5%}.ivu-col-md-offset-21{margin-left:87.5%}.ivu-col-md-order-21{-webkit-box-ordinal-group:22;-ms-flex-order:21;order:21}.ivu-col-span-md-20{display:block;-webkit-box-flex:0;-ms-flex:0 0 83.33333333%;flex:0 0 83.33333333%;max-width:83.33333333%}.ivu-col-md-push-20{left:83.33333333%}.ivu-col-md-pull-20{right:83.33333333%}.ivu-col-md-offset-20{margin-left:83.33333333%}.ivu-col-md-order-20{-webkit-box-ordinal-group:21;-ms-flex-order:20;order:20}.ivu-col-span-md-19{display:block;-webkit-box-flex:0;-ms-flex:0 0 79.16666667%;flex:0 0 79.16666667%;max-width:79.16666667%}.ivu-col-md-push-19{left:79.16666667%}.ivu-col-md-pull-19{right:79.16666667%}.ivu-col-md-offset-19{margin-left:79.16666667%}.ivu-col-md-order-19{-webkit-box-ordinal-group:20;-ms-flex-order:19;order:19}.ivu-col-span-md-18{display:block;-webkit-box-flex:0;-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.ivu-col-md-push-18{left:75%}.ivu-col-md-pull-18{right:75%}.ivu-col-md-offset-18{margin-left:75%}.ivu-col-md-order-18{-webkit-box-ordinal-group:19;-ms-flex-order:18;order:18}.ivu-col-span-md-17{display:block;-webkit-box-flex:0;-ms-flex:0 0 70.83333333%;flex:0 0 70.83333333%;max-width:70.83333333%}.ivu-col-md-push-17{left:70.83333333%}.ivu-col-md-pull-17{right:70.83333333%}.ivu-col-md-offset-17{margin-left:70.83333333%}.ivu-col-md-order-17{-webkit-box-ordinal-group:18;-ms-flex-order:17;order:17}.ivu-col-span-md-16{display:block;-webkit-box-flex:0;-ms-flex:0 0 66.66666667%;flex:0 0 66.66666667%;max-width:66.66666667%}.ivu-col-md-push-16{left:66.66666667%}.ivu-col-md-pull-16{right:66.66666667%}.ivu-col-md-offset-16{margin-left:66.66666667%}.ivu-col-md-order-16{-webkit-box-ordinal-group:17;-ms-flex-order:16;order:16}.ivu-col-span-md-15{display:block;-webkit-box-flex:0;-ms-flex:0 0 62.5%;flex:0 0 62.5%;max-width:62.5%}.ivu-col-md-push-15{left:62.5%}.ivu-col-md-pull-15{right:62.5%}.ivu-col-md-offset-15{margin-left:62.5%}.ivu-col-md-order-15{-webkit-box-ordinal-group:16;-ms-flex-order:15;order:15}.ivu-col-span-md-14{display:block;-webkit-box-flex:0;-ms-flex:0 0 58.33333333%;flex:0 0 58.33333333%;max-width:58.33333333%}.ivu-col-md-push-14{left:58.33333333%}.ivu-col-md-pull-14{right:58.33333333%}.ivu-col-md-offset-14{margin-left:58.33333333%}.ivu-col-md-order-14{-webkit-box-ordinal-group:15;-ms-flex-order:14;order:14}.ivu-col-span-md-13{display:block;-webkit-box-flex:0;-ms-flex:0 0 54.16666667%;flex:0 0 54.16666667%;max-width:54.16666667%}.ivu-col-md-push-13{left:54.16666667%}.ivu-col-md-pull-13{right:54.16666667%}.ivu-col-md-offset-13{margin-left:54.16666667%}.ivu-col-md-order-13{-webkit-box-ordinal-group:14;-ms-flex-order:13;order:13}.ivu-col-span-md-12{display:block;-webkit-box-flex:0;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.ivu-col-md-push-12{left:50%}.ivu-col-md-pull-12{right:50%}.ivu-col-md-offset-12{margin-left:50%}.ivu-col-md-order-12{-webkit-box-ordinal-group:13;-ms-flex-order:12;order:12}.ivu-col-span-md-11{display:block;-webkit-box-flex:0;-ms-flex:0 0 45.83333333%;flex:0 0 45.83333333%;max-width:45.83333333%}.ivu-col-md-push-11{left:45.83333333%}.ivu-col-md-pull-11{right:45.83333333%}.ivu-col-md-offset-11{margin-left:45.83333333%}.ivu-col-md-order-11{-webkit-box-ordinal-group:12;-ms-flex-order:11;order:11}.ivu-col-span-md-10{display:block;-webkit-box-flex:0;-ms-flex:0 0 41.66666667%;flex:0 0 41.66666667%;max-width:41.66666667%}.ivu-col-md-push-10{left:41.66666667%}.ivu-col-md-pull-10{right:41.66666667%}.ivu-col-md-offset-10{margin-left:41.66666667%}.ivu-col-md-order-10{-webkit-box-ordinal-group:11;-ms-flex-order:10;order:10}.ivu-col-span-md-9{display:block;-webkit-box-flex:0;-ms-flex:0 0 37.5%;flex:0 0 37.5%;max-width:37.5%}.ivu-col-md-push-9{left:37.5%}.ivu-col-md-pull-9{right:37.5%}.ivu-col-md-offset-9{margin-left:37.5%}.ivu-col-md-order-9{-webkit-box-ordinal-group:10;-ms-flex-order:9;order:9}.ivu-col-span-md-8{display:block;-webkit-box-flex:0;-ms-flex:0 0 33.33333333%;flex:0 0 33.33333333%;max-width:33.33333333%}.ivu-col-md-push-8{left:33.33333333%}.ivu-col-md-pull-8{right:33.33333333%}.ivu-col-md-offset-8{margin-left:33.33333333%}.ivu-col-md-order-8{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.ivu-col-span-md-7{display:block;-webkit-box-flex:0;-ms-flex:0 0 29.16666667%;flex:0 0 29.16666667%;max-width:29.16666667%}.ivu-col-md-push-7{left:29.16666667%}.ivu-col-md-pull-7{right:29.16666667%}.ivu-col-md-offset-7{margin-left:29.16666667%}.ivu-col-md-order-7{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.ivu-col-span-md-6{display:block;-webkit-box-flex:0;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.ivu-col-md-push-6{left:25%}.ivu-col-md-pull-6{right:25%}.ivu-col-md-offset-6{margin-left:25%}.ivu-col-md-order-6{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.ivu-col-span-md-5{display:block;-webkit-box-flex:0;-ms-flex:0 0 20.83333333%;flex:0 0 20.83333333%;max-width:20.83333333%}.ivu-col-md-push-5{left:20.83333333%}.ivu-col-md-pull-5{right:20.83333333%}.ivu-col-md-offset-5{margin-left:20.83333333%}.ivu-col-md-order-5{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.ivu-col-span-md-4{display:block;-webkit-box-flex:0;-ms-flex:0 0 16.66666667%;flex:0 0 16.66666667%;max-width:16.66666667%}.ivu-col-md-push-4{left:16.66666667%}.ivu-col-md-pull-4{right:16.66666667%}.ivu-col-md-offset-4{margin-left:16.66666667%}.ivu-col-md-order-4{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.ivu-col-span-md-3{display:block;-webkit-box-flex:0;-ms-flex:0 0 12.5%;flex:0 0 12.5%;max-width:12.5%}.ivu-col-md-push-3{left:12.5%}.ivu-col-md-pull-3{right:12.5%}.ivu-col-md-offset-3{margin-left:12.5%}.ivu-col-md-order-3{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.ivu-col-span-md-2{display:block;-webkit-box-flex:0;-ms-flex:0 0 8.33333333%;flex:0 0 8.33333333%;max-width:8.33333333%}.ivu-col-md-push-2{left:8.33333333%}.ivu-col-md-pull-2{right:8.33333333%}.ivu-col-md-offset-2{margin-left:8.33333333%}.ivu-col-md-order-2{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.ivu-col-span-md-1{display:block;-webkit-box-flex:0;-ms-flex:0 0 4.16666667%;flex:0 0 4.16666667%;max-width:4.16666667%}.ivu-col-md-push-1{left:4.16666667%}.ivu-col-md-pull-1{right:4.16666667%}.ivu-col-md-offset-1{margin-left:4.16666667%}.ivu-col-md-order-1{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.ivu-col-span-md-0{display:none}.ivu-col-push-0{left:auto}.ivu-col-pull-0{right:auto}.ivu-col-md-push-0{left:auto}.ivu-col-md-pull-0{right:auto}.ivu-col-md-offset-0{margin-left:0}.ivu-col-md-order-0{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}}@media (min-width:992px){.ivu-col-span-lg-24{display:block;-webkit-box-flex:0;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.ivu-col-lg-push-24{left:100%}.ivu-col-lg-pull-24{right:100%}.ivu-col-lg-offset-24{margin-left:100%}.ivu-col-lg-order-24{-webkit-box-ordinal-group:25;-ms-flex-order:24;order:24}.ivu-col-span-lg-23{display:block;-webkit-box-flex:0;-ms-flex:0 0 95.83333333%;flex:0 0 95.83333333%;max-width:95.83333333%}.ivu-col-lg-push-23{left:95.83333333%}.ivu-col-lg-pull-23{right:95.83333333%}.ivu-col-lg-offset-23{margin-left:95.83333333%}.ivu-col-lg-order-23{-webkit-box-ordinal-group:24;-ms-flex-order:23;order:23}.ivu-col-span-lg-22{display:block;-webkit-box-flex:0;-ms-flex:0 0 91.66666667%;flex:0 0 91.66666667%;max-width:91.66666667%}.ivu-col-lg-push-22{left:91.66666667%}.ivu-col-lg-pull-22{right:91.66666667%}.ivu-col-lg-offset-22{margin-left:91.66666667%}.ivu-col-lg-order-22{-webkit-box-ordinal-group:23;-ms-flex-order:22;order:22}.ivu-col-span-lg-21{display:block;-webkit-box-flex:0;-ms-flex:0 0 87.5%;flex:0 0 87.5%;max-width:87.5%}.ivu-col-lg-push-21{left:87.5%}.ivu-col-lg-pull-21{right:87.5%}.ivu-col-lg-offset-21{margin-left:87.5%}.ivu-col-lg-order-21{-webkit-box-ordinal-group:22;-ms-flex-order:21;order:21}.ivu-col-span-lg-20{display:block;-webkit-box-flex:0;-ms-flex:0 0 83.33333333%;flex:0 0 83.33333333%;max-width:83.33333333%}.ivu-col-lg-push-20{left:83.33333333%}.ivu-col-lg-pull-20{right:83.33333333%}.ivu-col-lg-offset-20{margin-left:83.33333333%}.ivu-col-lg-order-20{-webkit-box-ordinal-group:21;-ms-flex-order:20;order:20}.ivu-col-span-lg-19{display:block;-webkit-box-flex:0;-ms-flex:0 0 79.16666667%;flex:0 0 79.16666667%;max-width:79.16666667%}.ivu-col-lg-push-19{left:79.16666667%}.ivu-col-lg-pull-19{right:79.16666667%}.ivu-col-lg-offset-19{margin-left:79.16666667%}.ivu-col-lg-order-19{-webkit-box-ordinal-group:20;-ms-flex-order:19;order:19}.ivu-col-span-lg-18{display:block;-webkit-box-flex:0;-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.ivu-col-lg-push-18{left:75%}.ivu-col-lg-pull-18{right:75%}.ivu-col-lg-offset-18{margin-left:75%}.ivu-col-lg-order-18{-webkit-box-ordinal-group:19;-ms-flex-order:18;order:18}.ivu-col-span-lg-17{display:block;-webkit-box-flex:0;-ms-flex:0 0 70.83333333%;flex:0 0 70.83333333%;max-width:70.83333333%}.ivu-col-lg-push-17{left:70.83333333%}.ivu-col-lg-pull-17{right:70.83333333%}.ivu-col-lg-offset-17{margin-left:70.83333333%}.ivu-col-lg-order-17{-webkit-box-ordinal-group:18;-ms-flex-order:17;order:17}.ivu-col-span-lg-16{display:block;-webkit-box-flex:0;-ms-flex:0 0 66.66666667%;flex:0 0 66.66666667%;max-width:66.66666667%}.ivu-col-lg-push-16{left:66.66666667%}.ivu-col-lg-pull-16{right:66.66666667%}.ivu-col-lg-offset-16{margin-left:66.66666667%}.ivu-col-lg-order-16{-webkit-box-ordinal-group:17;-ms-flex-order:16;order:16}.ivu-col-span-lg-15{display:block;-webkit-box-flex:0;-ms-flex:0 0 62.5%;flex:0 0 62.5%;max-width:62.5%}.ivu-col-lg-push-15{left:62.5%}.ivu-col-lg-pull-15{right:62.5%}.ivu-col-lg-offset-15{margin-left:62.5%}.ivu-col-lg-order-15{-webkit-box-ordinal-group:16;-ms-flex-order:15;order:15}.ivu-col-span-lg-14{display:block;-webkit-box-flex:0;-ms-flex:0 0 58.33333333%;flex:0 0 58.33333333%;max-width:58.33333333%}.ivu-col-lg-push-14{left:58.33333333%}.ivu-col-lg-pull-14{right:58.33333333%}.ivu-col-lg-offset-14{margin-left:58.33333333%}.ivu-col-lg-order-14{-webkit-box-ordinal-group:15;-ms-flex-order:14;order:14}.ivu-col-span-lg-13{display:block;-webkit-box-flex:0;-ms-flex:0 0 54.16666667%;flex:0 0 54.16666667%;max-width:54.16666667%}.ivu-col-lg-push-13{left:54.16666667%}.ivu-col-lg-pull-13{right:54.16666667%}.ivu-col-lg-offset-13{margin-left:54.16666667%}.ivu-col-lg-order-13{-webkit-box-ordinal-group:14;-ms-flex-order:13;order:13}.ivu-col-span-lg-12{display:block;-webkit-box-flex:0;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.ivu-col-lg-push-12{left:50%}.ivu-col-lg-pull-12{right:50%}.ivu-col-lg-offset-12{margin-left:50%}.ivu-col-lg-order-12{-webkit-box-ordinal-group:13;-ms-flex-order:12;order:12}.ivu-col-span-lg-11{display:block;-webkit-box-flex:0;-ms-flex:0 0 45.83333333%;flex:0 0 45.83333333%;max-width:45.83333333%}.ivu-col-lg-push-11{left:45.83333333%}.ivu-col-lg-pull-11{right:45.83333333%}.ivu-col-lg-offset-11{margin-left:45.83333333%}.ivu-col-lg-order-11{-webkit-box-ordinal-group:12;-ms-flex-order:11;order:11}.ivu-col-span-lg-10{display:block;-webkit-box-flex:0;-ms-flex:0 0 41.66666667%;flex:0 0 41.66666667%;max-width:41.66666667%}.ivu-col-lg-push-10{left:41.66666667%}.ivu-col-lg-pull-10{right:41.66666667%}.ivu-col-lg-offset-10{margin-left:41.66666667%}.ivu-col-lg-order-10{-webkit-box-ordinal-group:11;-ms-flex-order:10;order:10}.ivu-col-span-lg-9{display:block;-webkit-box-flex:0;-ms-flex:0 0 37.5%;flex:0 0 37.5%;max-width:37.5%}.ivu-col-lg-push-9{left:37.5%}.ivu-col-lg-pull-9{right:37.5%}.ivu-col-lg-offset-9{margin-left:37.5%}.ivu-col-lg-order-9{-webkit-box-ordinal-group:10;-ms-flex-order:9;order:9}.ivu-col-span-lg-8{display:block;-webkit-box-flex:0;-ms-flex:0 0 33.33333333%;flex:0 0 33.33333333%;max-width:33.33333333%}.ivu-col-lg-push-8{left:33.33333333%}.ivu-col-lg-pull-8{right:33.33333333%}.ivu-col-lg-offset-8{margin-left:33.33333333%}.ivu-col-lg-order-8{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.ivu-col-span-lg-7{display:block;-webkit-box-flex:0;-ms-flex:0 0 29.16666667%;flex:0 0 29.16666667%;max-width:29.16666667%}.ivu-col-lg-push-7{left:29.16666667%}.ivu-col-lg-pull-7{right:29.16666667%}.ivu-col-lg-offset-7{margin-left:29.16666667%}.ivu-col-lg-order-7{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.ivu-col-span-lg-6{display:block;-webkit-box-flex:0;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.ivu-col-lg-push-6{left:25%}.ivu-col-lg-pull-6{right:25%}.ivu-col-lg-offset-6{margin-left:25%}.ivu-col-lg-order-6{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.ivu-col-span-lg-5{display:block;-webkit-box-flex:0;-ms-flex:0 0 20.83333333%;flex:0 0 20.83333333%;max-width:20.83333333%}.ivu-col-lg-push-5{left:20.83333333%}.ivu-col-lg-pull-5{right:20.83333333%}.ivu-col-lg-offset-5{margin-left:20.83333333%}.ivu-col-lg-order-5{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.ivu-col-span-lg-4{display:block;-webkit-box-flex:0;-ms-flex:0 0 16.66666667%;flex:0 0 16.66666667%;max-width:16.66666667%}.ivu-col-lg-push-4{left:16.66666667%}.ivu-col-lg-pull-4{right:16.66666667%}.ivu-col-lg-offset-4{margin-left:16.66666667%}.ivu-col-lg-order-4{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.ivu-col-span-lg-3{display:block;-webkit-box-flex:0;-ms-flex:0 0 12.5%;flex:0 0 12.5%;max-width:12.5%}.ivu-col-lg-push-3{left:12.5%}.ivu-col-lg-pull-3{right:12.5%}.ivu-col-lg-offset-3{margin-left:12.5%}.ivu-col-lg-order-3{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.ivu-col-span-lg-2{display:block;-webkit-box-flex:0;-ms-flex:0 0 8.33333333%;flex:0 0 8.33333333%;max-width:8.33333333%}.ivu-col-lg-push-2{left:8.33333333%}.ivu-col-lg-pull-2{right:8.33333333%}.ivu-col-lg-offset-2{margin-left:8.33333333%}.ivu-col-lg-order-2{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.ivu-col-span-lg-1{display:block;-webkit-box-flex:0;-ms-flex:0 0 4.16666667%;flex:0 0 4.16666667%;max-width:4.16666667%}.ivu-col-lg-push-1{left:4.16666667%}.ivu-col-lg-pull-1{right:4.16666667%}.ivu-col-lg-offset-1{margin-left:4.16666667%}.ivu-col-lg-order-1{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.ivu-col-span-lg-0{display:none}.ivu-col-push-0{left:auto}.ivu-col-pull-0{right:auto}.ivu-col-lg-push-0{left:auto}.ivu-col-lg-pull-0{right:auto}.ivu-col-lg-offset-0{margin-left:0}.ivu-col-lg-order-0{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}}@media (min-width:1200px){.ivu-col-span-xl-24{display:block;-webkit-box-flex:0;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.ivu-col-xl-push-24{left:100%}.ivu-col-xl-pull-24{right:100%}.ivu-col-xl-offset-24{margin-left:100%}.ivu-col-xl-order-24{-webkit-box-ordinal-group:25;-ms-flex-order:24;order:24}.ivu-col-span-xl-23{display:block;-webkit-box-flex:0;-ms-flex:0 0 95.83333333%;flex:0 0 95.83333333%;max-width:95.83333333%}.ivu-col-xl-push-23{left:95.83333333%}.ivu-col-xl-pull-23{right:95.83333333%}.ivu-col-xl-offset-23{margin-left:95.83333333%}.ivu-col-xl-order-23{-webkit-box-ordinal-group:24;-ms-flex-order:23;order:23}.ivu-col-span-xl-22{display:block;-webkit-box-flex:0;-ms-flex:0 0 91.66666667%;flex:0 0 91.66666667%;max-width:91.66666667%}.ivu-col-xl-push-22{left:91.66666667%}.ivu-col-xl-pull-22{right:91.66666667%}.ivu-col-xl-offset-22{margin-left:91.66666667%}.ivu-col-xl-order-22{-webkit-box-ordinal-group:23;-ms-flex-order:22;order:22}.ivu-col-span-xl-21{display:block;-webkit-box-flex:0;-ms-flex:0 0 87.5%;flex:0 0 87.5%;max-width:87.5%}.ivu-col-xl-push-21{left:87.5%}.ivu-col-xl-pull-21{right:87.5%}.ivu-col-xl-offset-21{margin-left:87.5%}.ivu-col-xl-order-21{-webkit-box-ordinal-group:22;-ms-flex-order:21;order:21}.ivu-col-span-xl-20{display:block;-webkit-box-flex:0;-ms-flex:0 0 83.33333333%;flex:0 0 83.33333333%;max-width:83.33333333%}.ivu-col-xl-push-20{left:83.33333333%}.ivu-col-xl-pull-20{right:83.33333333%}.ivu-col-xl-offset-20{margin-left:83.33333333%}.ivu-col-xl-order-20{-webkit-box-ordinal-group:21;-ms-flex-order:20;order:20}.ivu-col-span-xl-19{display:block;-webkit-box-flex:0;-ms-flex:0 0 79.16666667%;flex:0 0 79.16666667%;max-width:79.16666667%}.ivu-col-xl-push-19{left:79.16666667%}.ivu-col-xl-pull-19{right:79.16666667%}.ivu-col-xl-offset-19{margin-left:79.16666667%}.ivu-col-xl-order-19{-webkit-box-ordinal-group:20;-ms-flex-order:19;order:19}.ivu-col-span-xl-18{display:block;-webkit-box-flex:0;-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.ivu-col-xl-push-18{left:75%}.ivu-col-xl-pull-18{right:75%}.ivu-col-xl-offset-18{margin-left:75%}.ivu-col-xl-order-18{-webkit-box-ordinal-group:19;-ms-flex-order:18;order:18}.ivu-col-span-xl-17{display:block;-webkit-box-flex:0;-ms-flex:0 0 70.83333333%;flex:0 0 70.83333333%;max-width:70.83333333%}.ivu-col-xl-push-17{left:70.83333333%}.ivu-col-xl-pull-17{right:70.83333333%}.ivu-col-xl-offset-17{margin-left:70.83333333%}.ivu-col-xl-order-17{-webkit-box-ordinal-group:18;-ms-flex-order:17;order:17}.ivu-col-span-xl-16{display:block;-webkit-box-flex:0;-ms-flex:0 0 66.66666667%;flex:0 0 66.66666667%;max-width:66.66666667%}.ivu-col-xl-push-16{left:66.66666667%}.ivu-col-xl-pull-16{right:66.66666667%}.ivu-col-xl-offset-16{margin-left:66.66666667%}.ivu-col-xl-order-16{-webkit-box-ordinal-group:17;-ms-flex-order:16;order:16}.ivu-col-span-xl-15{display:block;-webkit-box-flex:0;-ms-flex:0 0 62.5%;flex:0 0 62.5%;max-width:62.5%}.ivu-col-xl-push-15{left:62.5%}.ivu-col-xl-pull-15{right:62.5%}.ivu-col-xl-offset-15{margin-left:62.5%}.ivu-col-xl-order-15{-webkit-box-ordinal-group:16;-ms-flex-order:15;order:15}.ivu-col-span-xl-14{display:block;-webkit-box-flex:0;-ms-flex:0 0 58.33333333%;flex:0 0 58.33333333%;max-width:58.33333333%}.ivu-col-xl-push-14{left:58.33333333%}.ivu-col-xl-pull-14{right:58.33333333%}.ivu-col-xl-offset-14{margin-left:58.33333333%}.ivu-col-xl-order-14{-webkit-box-ordinal-group:15;-ms-flex-order:14;order:14}.ivu-col-span-xl-13{display:block;-webkit-box-flex:0;-ms-flex:0 0 54.16666667%;flex:0 0 54.16666667%;max-width:54.16666667%}.ivu-col-xl-push-13{left:54.16666667%}.ivu-col-xl-pull-13{right:54.16666667%}.ivu-col-xl-offset-13{margin-left:54.16666667%}.ivu-col-xl-order-13{-webkit-box-ordinal-group:14;-ms-flex-order:13;order:13}.ivu-col-span-xl-12{display:block;-webkit-box-flex:0;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.ivu-col-xl-push-12{left:50%}.ivu-col-xl-pull-12{right:50%}.ivu-col-xl-offset-12{margin-left:50%}.ivu-col-xl-order-12{-webkit-box-ordinal-group:13;-ms-flex-order:12;order:12}.ivu-col-span-xl-11{display:block;-webkit-box-flex:0;-ms-flex:0 0 45.83333333%;flex:0 0 45.83333333%;max-width:45.83333333%}.ivu-col-xl-push-11{left:45.83333333%}.ivu-col-xl-pull-11{right:45.83333333%}.ivu-col-xl-offset-11{margin-left:45.83333333%}.ivu-col-xl-order-11{-webkit-box-ordinal-group:12;-ms-flex-order:11;order:11}.ivu-col-span-xl-10{display:block;-webkit-box-flex:0;-ms-flex:0 0 41.66666667%;flex:0 0 41.66666667%;max-width:41.66666667%}.ivu-col-xl-push-10{left:41.66666667%}.ivu-col-xl-pull-10{right:41.66666667%}.ivu-col-xl-offset-10{margin-left:41.66666667%}.ivu-col-xl-order-10{-webkit-box-ordinal-group:11;-ms-flex-order:10;order:10}.ivu-col-span-xl-9{display:block;-webkit-box-flex:0;-ms-flex:0 0 37.5%;flex:0 0 37.5%;max-width:37.5%}.ivu-col-xl-push-9{left:37.5%}.ivu-col-xl-pull-9{right:37.5%}.ivu-col-xl-offset-9{margin-left:37.5%}.ivu-col-xl-order-9{-webkit-box-ordinal-group:10;-ms-flex-order:9;order:9}.ivu-col-span-xl-8{display:block;-webkit-box-flex:0;-ms-flex:0 0 33.33333333%;flex:0 0 33.33333333%;max-width:33.33333333%}.ivu-col-xl-push-8{left:33.33333333%}.ivu-col-xl-pull-8{right:33.33333333%}.ivu-col-xl-offset-8{margin-left:33.33333333%}.ivu-col-xl-order-8{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.ivu-col-span-xl-7{display:block;-webkit-box-flex:0;-ms-flex:0 0 29.16666667%;flex:0 0 29.16666667%;max-width:29.16666667%}.ivu-col-xl-push-7{left:29.16666667%}.ivu-col-xl-pull-7{right:29.16666667%}.ivu-col-xl-offset-7{margin-left:29.16666667%}.ivu-col-xl-order-7{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.ivu-col-span-xl-6{display:block;-webkit-box-flex:0;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.ivu-col-xl-push-6{left:25%}.ivu-col-xl-pull-6{right:25%}.ivu-col-xl-offset-6{margin-left:25%}.ivu-col-xl-order-6{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.ivu-col-span-xl-5{display:block;-webkit-box-flex:0;-ms-flex:0 0 20.83333333%;flex:0 0 20.83333333%;max-width:20.83333333%}.ivu-col-xl-push-5{left:20.83333333%}.ivu-col-xl-pull-5{right:20.83333333%}.ivu-col-xl-offset-5{margin-left:20.83333333%}.ivu-col-xl-order-5{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.ivu-col-span-xl-4{display:block;-webkit-box-flex:0;-ms-flex:0 0 16.66666667%;flex:0 0 16.66666667%;max-width:16.66666667%}.ivu-col-xl-push-4{left:16.66666667%}.ivu-col-xl-pull-4{right:16.66666667%}.ivu-col-xl-offset-4{margin-left:16.66666667%}.ivu-col-xl-order-4{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.ivu-col-span-xl-3{display:block;-webkit-box-flex:0;-ms-flex:0 0 12.5%;flex:0 0 12.5%;max-width:12.5%}.ivu-col-xl-push-3{left:12.5%}.ivu-col-xl-pull-3{right:12.5%}.ivu-col-xl-offset-3{margin-left:12.5%}.ivu-col-xl-order-3{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.ivu-col-span-xl-2{display:block;-webkit-box-flex:0;-ms-flex:0 0 8.33333333%;flex:0 0 8.33333333%;max-width:8.33333333%}.ivu-col-xl-push-2{left:8.33333333%}.ivu-col-xl-pull-2{right:8.33333333%}.ivu-col-xl-offset-2{margin-left:8.33333333%}.ivu-col-xl-order-2{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.ivu-col-span-xl-1{display:block;-webkit-box-flex:0;-ms-flex:0 0 4.16666667%;flex:0 0 4.16666667%;max-width:4.16666667%}.ivu-col-xl-push-1{left:4.16666667%}.ivu-col-xl-pull-1{right:4.16666667%}.ivu-col-xl-offset-1{margin-left:4.16666667%}.ivu-col-xl-order-1{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.ivu-col-span-xl-0{display:none}.ivu-col-push-0{left:auto}.ivu-col-pull-0{right:auto}.ivu-col-xl-push-0{left:auto}.ivu-col-xl-pull-0{right:auto}.ivu-col-xl-offset-0{margin-left:0}.ivu-col-xl-order-0{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}}@media (min-width:1600px){.ivu-col-span-xxl-24{display:block;-webkit-box-flex:0;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.ivu-col-xxl-push-24{left:100%}.ivu-col-xxl-pull-24{right:100%}.ivu-col-xxl-offset-24{margin-left:100%}.ivu-col-xxl-order-24{-webkit-box-ordinal-group:25;-ms-flex-order:24;order:24}.ivu-col-span-xxl-23{display:block;-webkit-box-flex:0;-ms-flex:0 0 95.83333333%;flex:0 0 95.83333333%;max-width:95.83333333%}.ivu-col-xxl-push-23{left:95.83333333%}.ivu-col-xxl-pull-23{right:95.83333333%}.ivu-col-xxl-offset-23{margin-left:95.83333333%}.ivu-col-xxl-order-23{-webkit-box-ordinal-group:24;-ms-flex-order:23;order:23}.ivu-col-span-xxl-22{display:block;-webkit-box-flex:0;-ms-flex:0 0 91.66666667%;flex:0 0 91.66666667%;max-width:91.66666667%}.ivu-col-xxl-push-22{left:91.66666667%}.ivu-col-xxl-pull-22{right:91.66666667%}.ivu-col-xxl-offset-22{margin-left:91.66666667%}.ivu-col-xxl-order-22{-webkit-box-ordinal-group:23;-ms-flex-order:22;order:22}.ivu-col-span-xxl-21{display:block;-webkit-box-flex:0;-ms-flex:0 0 87.5%;flex:0 0 87.5%;max-width:87.5%}.ivu-col-xxl-push-21{left:87.5%}.ivu-col-xxl-pull-21{right:87.5%}.ivu-col-xxl-offset-21{margin-left:87.5%}.ivu-col-xxl-order-21{-webkit-box-ordinal-group:22;-ms-flex-order:21;order:21}.ivu-col-span-xxl-20{display:block;-webkit-box-flex:0;-ms-flex:0 0 83.33333333%;flex:0 0 83.33333333%;max-width:83.33333333%}.ivu-col-xxl-push-20{left:83.33333333%}.ivu-col-xxl-pull-20{right:83.33333333%}.ivu-col-xxl-offset-20{margin-left:83.33333333%}.ivu-col-xxl-order-20{-webkit-box-ordinal-group:21;-ms-flex-order:20;order:20}.ivu-col-span-xxl-19{display:block;-webkit-box-flex:0;-ms-flex:0 0 79.16666667%;flex:0 0 79.16666667%;max-width:79.16666667%}.ivu-col-xxl-push-19{left:79.16666667%}.ivu-col-xxl-pull-19{right:79.16666667%}.ivu-col-xxl-offset-19{margin-left:79.16666667%}.ivu-col-xxl-order-19{-webkit-box-ordinal-group:20;-ms-flex-order:19;order:19}.ivu-col-span-xxl-18{display:block;-webkit-box-flex:0;-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.ivu-col-xxl-push-18{left:75%}.ivu-col-xxl-pull-18{right:75%}.ivu-col-xxl-offset-18{margin-left:75%}.ivu-col-xxl-order-18{-webkit-box-ordinal-group:19;-ms-flex-order:18;order:18}.ivu-col-span-xxl-17{display:block;-webkit-box-flex:0;-ms-flex:0 0 70.83333333%;flex:0 0 70.83333333%;max-width:70.83333333%}.ivu-col-xxl-push-17{left:70.83333333%}.ivu-col-xxl-pull-17{right:70.83333333%}.ivu-col-xxl-offset-17{margin-left:70.83333333%}.ivu-col-xxl-order-17{-webkit-box-ordinal-group:18;-ms-flex-order:17;order:17}.ivu-col-span-xxl-16{display:block;-webkit-box-flex:0;-ms-flex:0 0 66.66666667%;flex:0 0 66.66666667%;max-width:66.66666667%}.ivu-col-xxl-push-16{left:66.66666667%}.ivu-col-xxl-pull-16{right:66.66666667%}.ivu-col-xxl-offset-16{margin-left:66.66666667%}.ivu-col-xxl-order-16{-webkit-box-ordinal-group:17;-ms-flex-order:16;order:16}.ivu-col-span-xxl-15{display:block;-webkit-box-flex:0;-ms-flex:0 0 62.5%;flex:0 0 62.5%;max-width:62.5%}.ivu-col-xxl-push-15{left:62.5%}.ivu-col-xxl-pull-15{right:62.5%}.ivu-col-xxl-offset-15{margin-left:62.5%}.ivu-col-xxl-order-15{-webkit-box-ordinal-group:16;-ms-flex-order:15;order:15}.ivu-col-span-xxl-14{display:block;-webkit-box-flex:0;-ms-flex:0 0 58.33333333%;flex:0 0 58.33333333%;max-width:58.33333333%}.ivu-col-xxl-push-14{left:58.33333333%}.ivu-col-xxl-pull-14{right:58.33333333%}.ivu-col-xxl-offset-14{margin-left:58.33333333%}.ivu-col-xxl-order-14{-webkit-box-ordinal-group:15;-ms-flex-order:14;order:14}.ivu-col-span-xxl-13{display:block;-webkit-box-flex:0;-ms-flex:0 0 54.16666667%;flex:0 0 54.16666667%;max-width:54.16666667%}.ivu-col-xxl-push-13{left:54.16666667%}.ivu-col-xxl-pull-13{right:54.16666667%}.ivu-col-xxl-offset-13{margin-left:54.16666667%}.ivu-col-xxl-order-13{-webkit-box-ordinal-group:14;-ms-flex-order:13;order:13}.ivu-col-span-xxl-12{display:block;-webkit-box-flex:0;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.ivu-col-xxl-push-12{left:50%}.ivu-col-xxl-pull-12{right:50%}.ivu-col-xxl-offset-12{margin-left:50%}.ivu-col-xxl-order-12{-webkit-box-ordinal-group:13;-ms-flex-order:12;order:12}.ivu-col-span-xxl-11{display:block;-webkit-box-flex:0;-ms-flex:0 0 45.83333333%;flex:0 0 45.83333333%;max-width:45.83333333%}.ivu-col-xxl-push-11{left:45.83333333%}.ivu-col-xxl-pull-11{right:45.83333333%}.ivu-col-xxl-offset-11{margin-left:45.83333333%}.ivu-col-xxl-order-11{-webkit-box-ordinal-group:12;-ms-flex-order:11;order:11}.ivu-col-span-xxl-10{display:block;-webkit-box-flex:0;-ms-flex:0 0 41.66666667%;flex:0 0 41.66666667%;max-width:41.66666667%}.ivu-col-xxl-push-10{left:41.66666667%}.ivu-col-xxl-pull-10{right:41.66666667%}.ivu-col-xxl-offset-10{margin-left:41.66666667%}.ivu-col-xxl-order-10{-webkit-box-ordinal-group:11;-ms-flex-order:10;order:10}.ivu-col-span-xxl-9{display:block;-webkit-box-flex:0;-ms-flex:0 0 37.5%;flex:0 0 37.5%;max-width:37.5%}.ivu-col-xxl-push-9{left:37.5%}.ivu-col-xxl-pull-9{right:37.5%}.ivu-col-xxl-offset-9{margin-left:37.5%}.ivu-col-xxl-order-9{-webkit-box-ordinal-group:10;-ms-flex-order:9;order:9}.ivu-col-span-xxl-8{display:block;-webkit-box-flex:0;-ms-flex:0 0 33.33333333%;flex:0 0 33.33333333%;max-width:33.33333333%}.ivu-col-xxl-push-8{left:33.33333333%}.ivu-col-xxl-pull-8{right:33.33333333%}.ivu-col-xxl-offset-8{margin-left:33.33333333%}.ivu-col-xxl-order-8{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.ivu-col-span-xxl-7{display:block;-webkit-box-flex:0;-ms-flex:0 0 29.16666667%;flex:0 0 29.16666667%;max-width:29.16666667%}.ivu-col-xxl-push-7{left:29.16666667%}.ivu-col-xxl-pull-7{right:29.16666667%}.ivu-col-xxl-offset-7{margin-left:29.16666667%}.ivu-col-xxl-order-7{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.ivu-col-span-xxl-6{display:block;-webkit-box-flex:0;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.ivu-col-xxl-push-6{left:25%}.ivu-col-xxl-pull-6{right:25%}.ivu-col-xxl-offset-6{margin-left:25%}.ivu-col-xxl-order-6{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.ivu-col-span-xxl-5{display:block;-webkit-box-flex:0;-ms-flex:0 0 20.83333333%;flex:0 0 20.83333333%;max-width:20.83333333%}.ivu-col-xxl-push-5{left:20.83333333%}.ivu-col-xxl-pull-5{right:20.83333333%}.ivu-col-xxl-offset-5{margin-left:20.83333333%}.ivu-col-xxl-order-5{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.ivu-col-span-xxl-4{display:block;-webkit-box-flex:0;-ms-flex:0 0 16.66666667%;flex:0 0 16.66666667%;max-width:16.66666667%}.ivu-col-xxl-push-4{left:16.66666667%}.ivu-col-xxl-pull-4{right:16.66666667%}.ivu-col-xxl-offset-4{margin-left:16.66666667%}.ivu-col-xxl-order-4{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.ivu-col-span-xxl-3{display:block;-webkit-box-flex:0;-ms-flex:0 0 12.5%;flex:0 0 12.5%;max-width:12.5%}.ivu-col-xxl-push-3{left:12.5%}.ivu-col-xxl-pull-3{right:12.5%}.ivu-col-xxl-offset-3{margin-left:12.5%}.ivu-col-xxl-order-3{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.ivu-col-span-xxl-2{display:block;-webkit-box-flex:0;-ms-flex:0 0 8.33333333%;flex:0 0 8.33333333%;max-width:8.33333333%}.ivu-col-xxl-push-2{left:8.33333333%}.ivu-col-xxl-pull-2{right:8.33333333%}.ivu-col-xxl-offset-2{margin-left:8.33333333%}.ivu-col-xxl-order-2{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.ivu-col-span-xxl-1{display:block;-webkit-box-flex:0;-ms-flex:0 0 4.16666667%;flex:0 0 4.16666667%;max-width:4.16666667%}.ivu-col-xxl-push-1{left:4.16666667%}.ivu-col-xxl-pull-1{right:4.16666667%}.ivu-col-xxl-offset-1{margin-left:4.16666667%}.ivu-col-xxl-order-1{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.ivu-col-span-xxl-0{display:none}.ivu-col-push-0{left:auto}.ivu-col-pull-0{right:auto}.ivu-col-xxl-push-0{left:auto}.ivu-col-xxl-pull-0{right:auto}.ivu-col-xxl-offset-0{margin-left:0}.ivu-col-xxl-order-0{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}}.ivu-article h1{font-size:26px;font-weight:400}.ivu-article h2{font-size:20px;font-weight:400}.ivu-article h3{font-size:16px;font-weight:400}.ivu-article h4{font-size:14px;font-weight:400}.ivu-article h5{font-size:12px;font-weight:400}.ivu-article h6{font-size:12px;font-weight:400}.ivu-article blockquote{padding:5px 5px 3px 10px;line-height:1.5;border-left:4px solid #ddd;margin-bottom:20px;color:#666;font-size:14px}.ivu-article ul:not([class^=ivu-]){padding-left:40px;list-style-type:disc}.ivu-article li:not([class^=ivu-]){margin-bottom:5px;font-size:14px}.ivu-article ol ul:not([class^=ivu-]),.ivu-article ul ul:not([class^=ivu-]){list-style-type:circle}.ivu-article p{margin:5px;font-size:14px}.ivu-article a:not([class^=ivu-])[target="_blank"]:after{content:"\F3F2";font-family:Ionicons;color:#aaa;margin-left:3px}.fade-appear,.fade-enter-active{-webkit-animation-duration:.15s;animation-duration:.15s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.fade-leave-active{-webkit-animation-duration:.15s;animation-duration:.15s;-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:ivuFadeIn;animation-name:ivuFadeIn;-webkit-animation-play-state:running;animation-play-state:running}.fade-leave-active{-webkit-animation-name:ivuFadeOut;animation-name:ivuFadeOut;-webkit-animation-play-state:running;animation-play-state:running}.fade-appear,.fade-enter-active{opacity:0;-webkit-animation-timing-function:linear;animation-timing-function:linear}.fade-leave-active{-webkit-animation-timing-function:linear;animation-timing-function:linear}@-webkit-keyframes ivuFadeIn{0%{opacity:0}100%{opacity:1}}@keyframes ivuFadeIn{0%{opacity:0}100%{opacity:1}}@-webkit-keyframes ivuFadeOut{0%{opacity:1}100%{opacity:0}}@keyframes ivuFadeOut{0%{opacity:1}100%{opacity:0}}.move-up-appear,.move-up-enter-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}.move-up-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}.move-up-appear,.move-up-enter-active{-webkit-animation-name:ivuMoveUpIn;animation-name:ivuMoveUpIn;-webkit-animation-play-state:running;animation-play-state:running}.move-up-leave-active{-webkit-animation-name:ivuMoveUpOut;animation-name:ivuMoveUpOut;-webkit-animation-play-state:running;animation-play-state:running}.move-up-appear,.move-up-enter-active{opacity:0;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}.move-up-leave-active{-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}.move-down-appear,.move-down-enter-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}.move-down-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}.move-down-appear,.move-down-enter-active{-webkit-animation-name:ivuMoveDownIn;animation-name:ivuMoveDownIn;-webkit-animation-play-state:running;animation-play-state:running}.move-down-leave-active{-webkit-animation-name:ivuMoveDownOut;animation-name:ivuMoveDownOut;-webkit-animation-play-state:running;animation-play-state:running}.move-down-appear,.move-down-enter-active{opacity:0;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}.move-down-leave-active{-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}.move-left-appear,.move-left-enter-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}.move-left-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}.move-left-appear,.move-left-enter-active{-webkit-animation-name:ivuMoveLeftIn;animation-name:ivuMoveLeftIn;-webkit-animation-play-state:running;animation-play-state:running}.move-left-leave-active{-webkit-animation-name:ivuMoveLeftOut;animation-name:ivuMoveLeftOut;-webkit-animation-play-state:running;animation-play-state:running}.move-left-appear,.move-left-enter-active{opacity:0;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}.move-left-leave-active{-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}.move-right-appear,.move-right-enter-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}.move-right-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}.move-right-appear,.move-right-enter-active{-webkit-animation-name:ivuMoveRightIn;animation-name:ivuMoveRightIn;-webkit-animation-play-state:running;animation-play-state:running}.move-right-leave-active{-webkit-animation-name:ivuMoveRightOut;animation-name:ivuMoveRightOut;-webkit-animation-play-state:running;animation-play-state:running}.move-right-appear,.move-right-enter-active{opacity:0;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}.move-right-leave-active{-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}@-webkit-keyframes ivuMoveDownIn{0%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateY(100%);transform:translateY(100%);opacity:0}100%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateY(0);transform:translateY(0);opacity:1}}@keyframes ivuMoveDownIn{0%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateY(100%);transform:translateY(100%);opacity:0}100%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateY(0);transform:translateY(0);opacity:1}}@-webkit-keyframes ivuMoveDownOut{0%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateY(0);transform:translateY(0);opacity:1}100%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateY(100%);transform:translateY(100%);opacity:0}}@keyframes ivuMoveDownOut{0%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateY(0);transform:translateY(0);opacity:1}100%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateY(100%);transform:translateY(100%);opacity:0}}@-webkit-keyframes ivuMoveLeftIn{0%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(-100%);transform:translateX(-100%);opacity:0}100%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0);opacity:1}}@keyframes ivuMoveLeftIn{0%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(-100%);transform:translateX(-100%);opacity:0}100%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0);opacity:1}}@-webkit-keyframes ivuMoveLeftOut{0%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0);opacity:1}100%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(-100%);transform:translateX(-100%);opacity:0}}@keyframes ivuMoveLeftOut{0%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0);opacity:1}100%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(-100%);transform:translateX(-100%);opacity:0}}@-webkit-keyframes ivuMoveRightIn{0%{opacity:0;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(100%);transform:translateX(100%)}100%{opacity:1;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes ivuMoveRightIn{0%{opacity:0;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(100%);transform:translateX(100%)}100%{opacity:1;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes ivuMoveRightOut{0%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0);opacity:1}100%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(100%);transform:translateX(100%);opacity:0}}@keyframes ivuMoveRightOut{0%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0);opacity:1}100%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(100%);transform:translateX(100%);opacity:0}}@-webkit-keyframes ivuMoveUpIn{0%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateY(-100%);transform:translateY(-100%);opacity:0}100%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateY(0);transform:translateY(0);opacity:1}}@keyframes ivuMoveUpIn{0%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateY(-100%);transform:translateY(-100%);opacity:0}100%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateY(0);transform:translateY(0);opacity:1}}@-webkit-keyframes ivuMoveUpOut{0%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateY(0);transform:translateY(0);opacity:1}100%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateY(-100%);transform:translateY(-100%);opacity:0}}@keyframes ivuMoveUpOut{0%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateY(0);transform:translateY(0);opacity:1}100%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateY(-100%);transform:translateY(-100%);opacity:0}}.move-notice-appear,.move-notice-enter-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}.move-notice-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}.move-notice-appear,.move-notice-enter-active{-webkit-animation-name:ivuMoveNoticeIn;animation-name:ivuMoveNoticeIn;-webkit-animation-play-state:running;animation-play-state:running}.move-notice-leave-active{-webkit-animation-name:ivuMoveNoticeOut;animation-name:ivuMoveNoticeOut;-webkit-animation-play-state:running;animation-play-state:running}.move-notice-appear,.move-notice-enter-active{opacity:0;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}.move-notice-leave-active{-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}@-webkit-keyframes ivuMoveNoticeIn{0%{opacity:0;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(100%);transform:translateX(100%)}100%{opacity:1;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes ivuMoveNoticeIn{0%{opacity:0;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(100%);transform:translateX(100%)}100%{opacity:1;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes ivuMoveNoticeOut{0%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0);opacity:1}70%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(100%);transform:translateX(100%);height:auto;padding:16px;margin-bottom:10px;opacity:0}100%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(100%);transform:translateX(100%);height:0;padding:0;margin-bottom:0;opacity:0}}@keyframes ivuMoveNoticeOut{0%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0);opacity:1}70%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(100%);transform:translateX(100%);height:auto;padding:16px;margin-bottom:10px;opacity:0}100%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(100%);transform:translateX(100%);height:0;padding:0;margin-bottom:0;opacity:0}}.ease-appear,.ease-enter-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-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:ivuEaseIn;animation-name:ivuEaseIn;-webkit-animation-play-state:running;animation-play-state:running}.ease-leave-active{-webkit-animation-name:ivuEaseOut;animation-name:ivuEaseOut;-webkit-animation-play-state:running;animation-play-state:running}.ease-appear,.ease-enter-active{opacity:0;-webkit-animation-timing-function:linear;animation-timing-function:linear;-webkit-animation-duration:.2s;animation-duration:.2s}.ease-leave-active{-webkit-animation-timing-function:linear;animation-timing-function:linear;-webkit-animation-duration:.2s;animation-duration:.2s}@-webkit-keyframes ivuEaseIn{0%{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}100%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes ivuEaseIn{0%{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}100%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes ivuEaseOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}100%{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}@keyframes ivuEaseOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}100%{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}.transition-drop-appear,.transition-drop-enter-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-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:ivuTransitionDropIn;animation-name:ivuTransitionDropIn;-webkit-animation-play-state:running;animation-play-state:running}.transition-drop-leave-active{-webkit-animation-name:ivuTransitionDropOut;animation-name:ivuTransitionDropOut;-webkit-animation-play-state:running;animation-play-state:running}.transition-drop-appear,.transition-drop-enter-active{opacity:0;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}.transition-drop-leave-active{-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}.slide-up-appear,.slide-up-enter-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}.slide-up-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}.slide-up-appear,.slide-up-enter-active{-webkit-animation-name:ivuSlideUpIn;animation-name:ivuSlideUpIn;-webkit-animation-play-state:running;animation-play-state:running}.slide-up-leave-active{-webkit-animation-name:ivuSlideUpOut;animation-name:ivuSlideUpOut;-webkit-animation-play-state:running;animation-play-state:running}.slide-up-appear,.slide-up-enter-active{opacity:0;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}.slide-up-leave-active{-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}.slide-down-appear,.slide-down-enter-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}.slide-down-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}.slide-down-appear,.slide-down-enter-active{-webkit-animation-name:ivuSlideDownIn;animation-name:ivuSlideDownIn;-webkit-animation-play-state:running;animation-play-state:running}.slide-down-leave-active{-webkit-animation-name:ivuSlideDownOut;animation-name:ivuSlideDownOut;-webkit-animation-play-state:running;animation-play-state:running}.slide-down-appear,.slide-down-enter-active{opacity:0;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}.slide-down-leave-active{-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}.slide-left-appear,.slide-left-enter-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}.slide-left-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}.slide-left-appear,.slide-left-enter-active{-webkit-animation-name:ivuSlideLeftIn;animation-name:ivuSlideLeftIn;-webkit-animation-play-state:running;animation-play-state:running}.slide-left-leave-active{-webkit-animation-name:ivuSlideLeftOut;animation-name:ivuSlideLeftOut;-webkit-animation-play-state:running;animation-play-state:running}.slide-left-appear,.slide-left-enter-active{opacity:0;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}.slide-left-leave-active{-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}.slide-right-appear,.slide-right-enter-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}.slide-right-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}.slide-right-appear,.slide-right-enter-active{-webkit-animation-name:ivuSlideRightIn;animation-name:ivuSlideRightIn;-webkit-animation-play-state:running;animation-play-state:running}.slide-right-leave-active{-webkit-animation-name:ivuSlideRightOut;animation-name:ivuSlideRightOut;-webkit-animation-play-state:running;animation-play-state:running}.slide-right-appear,.slide-right-enter-active{opacity:0;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}.slide-right-leave-active{-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}@-webkit-keyframes ivuTransitionDropIn{0%{opacity:0;-webkit-transform:scaleY(.8);transform:scaleY(.8)}100%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@keyframes ivuTransitionDropIn{0%{opacity:0;-webkit-transform:scaleY(.8);transform:scaleY(.8)}100%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@-webkit-keyframes ivuTransitionDropOut{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}100%{opacity:0;-webkit-transform:scaleY(.8);transform:scaleY(.8)}}@keyframes ivuTransitionDropOut{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}100%{opacity:0;-webkit-transform:scaleY(.8);transform:scaleY(.8)}}@-webkit-keyframes ivuSlideUpIn{0%{opacity:0;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleY(.8);transform:scaleY(.8)}100%{opacity:1;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleY(1);transform:scaleY(1)}}@keyframes ivuSlideUpIn{0%{opacity:0;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleY(.8);transform:scaleY(.8)}100%{opacity:1;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleY(1);transform:scaleY(1)}}@-webkit-keyframes ivuSlideUpOut{0%{opacity:1;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleY(1);transform:scaleY(1)}100%{opacity:0;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleY(.8);transform:scaleY(.8)}}@keyframes ivuSlideUpOut{0%{opacity:1;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleY(1);transform:scaleY(1)}100%{opacity:0;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleY(.8);transform:scaleY(.8)}}@-webkit-keyframes ivuSlideDownIn{0%{opacity:0;-webkit-transform-origin:100% 100%;transform-origin:100% 100%;-webkit-transform:scaleY(.8);transform:scaleY(.8)}100%{opacity:1;-webkit-transform-origin:100% 100%;transform-origin:100% 100%;-webkit-transform:scaleY(1);transform:scaleY(1)}}@keyframes ivuSlideDownIn{0%{opacity:0;-webkit-transform-origin:100% 100%;transform-origin:100% 100%;-webkit-transform:scaleY(.8);transform:scaleY(.8)}100%{opacity:1;-webkit-transform-origin:100% 100%;transform-origin:100% 100%;-webkit-transform:scaleY(1);transform:scaleY(1)}}@-webkit-keyframes ivuSlideDownOut{0%{opacity:1;-webkit-transform-origin:100% 100%;transform-origin:100% 100%;-webkit-transform:scaleY(1);transform:scaleY(1)}100%{opacity:0;-webkit-transform-origin:100% 100%;transform-origin:100% 100%;-webkit-transform:scaleY(.8);transform:scaleY(.8)}}@keyframes ivuSlideDownOut{0%{opacity:1;-webkit-transform-origin:100% 100%;transform-origin:100% 100%;-webkit-transform:scaleY(1);transform:scaleY(1)}100%{opacity:0;-webkit-transform-origin:100% 100%;transform-origin:100% 100%;-webkit-transform:scaleY(.8);transform:scaleY(.8)}}@-webkit-keyframes ivuSlideLeftIn{0%{opacity:0;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleX(.8);transform:scaleX(.8)}100%{opacity:1;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes ivuSlideLeftIn{0%{opacity:0;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleX(.8);transform:scaleX(.8)}100%{opacity:1;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes ivuSlideLeftOut{0%{opacity:1;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleX(1);transform:scaleX(1)}100%{opacity:0;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleX(.8);transform:scaleX(.8)}}@keyframes ivuSlideLeftOut{0%{opacity:1;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleX(1);transform:scaleX(1)}100%{opacity:0;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleX(.8);transform:scaleX(.8)}}@-webkit-keyframes ivuSlideRightIn{0%{opacity:0;-webkit-transform-origin:100% 0;transform-origin:100% 0;-webkit-transform:scaleX(.8);transform:scaleX(.8)}100%{opacity:1;-webkit-transform-origin:100% 0;transform-origin:100% 0;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes ivuSlideRightIn{0%{opacity:0;-webkit-transform-origin:100% 0;transform-origin:100% 0;-webkit-transform:scaleX(.8);transform:scaleX(.8)}100%{opacity:1;-webkit-transform-origin:100% 0;transform-origin:100% 0;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes ivuSlideRightOut{0%{opacity:1;-webkit-transform-origin:100% 0;transform-origin:100% 0;-webkit-transform:scaleX(1);transform:scaleX(1)}100%{opacity:0;-webkit-transform-origin:100% 0;transform-origin:100% 0;-webkit-transform:scaleX(.8);transform:scaleX(.8)}}@keyframes ivuSlideRightOut{0%{opacity:1;-webkit-transform-origin:100% 0;transform-origin:100% 0;-webkit-transform:scaleX(1);transform:scaleX(1)}100%{opacity:0;-webkit-transform-origin:100% 0;transform-origin:100% 0;-webkit-transform:scaleX(.8);transform:scaleX(.8)}}.ivu-anim-loop{-webkit-animation:ani-load-loop 1s linear infinite;animation:ani-load-loop 1s linear infinite}.collapse-transition{-webkit-transition:.2s height ease-in-out,.2s padding-top ease-in-out,.2s padding-bottom ease-in-out;transition:.2s height ease-in-out,.2s padding-top ease-in-out,.2s padding-bottom ease-in-out}.ivu-btn{display:inline-block;margin-bottom:0;font-weight:400;text-align:center;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;line-height:1.5;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;height:32px;padding:0 15px;font-size:14px;border-radius:4px;-webkit-transition:color .2s linear,background-color .2s linear,border .2s linear,-webkit-box-shadow .2s linear;transition:color .2s linear,background-color .2s linear,border .2s linear,-webkit-box-shadow .2s linear;transition:color .2s linear,background-color .2s linear,border .2s linear,box-shadow .2s linear;transition:color .2s linear,background-color .2s linear,border .2s linear,box-shadow .2s linear,-webkit-box-shadow .2s linear;color:#515a6e;background-color:#fff;border-color:#dcdee2}.ivu-btn>.ivu-icon{line-height:1.5}.ivu-btn-icon-only.ivu-btn-circle>.ivu-icon{vertical-align:baseline}.ivu-btn>i,.ivu-btn>span{display:inline-block}.ivu-btn,.ivu-btn:active,.ivu-btn:focus{outline:0}.ivu-btn:not([disabled]):hover{text-decoration:none}.ivu-btn:not([disabled]):active{outline:0}.ivu-btn.disabled,.ivu-btn[disabled]{cursor:not-allowed}.ivu-btn.disabled>*,.ivu-btn[disabled]>*{pointer-events:none}.ivu-btn-large{height:40px;padding:0 15px;font-size:16px;border-radius:4px}.ivu-btn-small{height:24px;padding:0 7px;font-size:14px;border-radius:3px}.ivu-btn-icon-only{width:32px;height:32px;padding:0;font-size:16px;border-radius:4px}.ivu-btn-icon-only.ivu-btn-large{width:40px;height:40px;padding:0;font-size:18px;border-radius:4px}.ivu-btn-icon-only.ivu-btn-small{width:24px;height:24px;padding:0;font-size:14px;border-radius:4px}.ivu-btn>a:only-child{color:currentColor}.ivu-btn>a:only-child:after{content:'';position:absolute;top:0;left:0;bottom:0;right:0;background:0 0}.ivu-btn:hover{color:#747b8b;background-color:#fff;border-color:#e3e5e8}.ivu-btn:hover>a:only-child{color:currentColor}.ivu-btn:hover>a:only-child:after{content:'';position:absolute;top:0;left:0;bottom:0;right:0;background:0 0}.ivu-btn.active,.ivu-btn:active{color:#4d5669;background-color:#f2f2f2;border-color:#f2f2f2}.ivu-btn.active>a:only-child,.ivu-btn:active>a:only-child{color:currentColor}.ivu-btn.active>a:only-child:after,.ivu-btn:active>a:only-child:after{content:'';position:absolute;top:0;left:0;bottom:0;right:0;background:0 0}.ivu-btn.disabled,.ivu-btn.disabled.active,.ivu-btn.disabled:active,.ivu-btn.disabled:focus,.ivu-btn.disabled:hover,.ivu-btn[disabled],.ivu-btn[disabled].active,.ivu-btn[disabled]:active,.ivu-btn[disabled]:focus,.ivu-btn[disabled]:hover,fieldset[disabled] .ivu-btn,fieldset[disabled] .ivu-btn.active,fieldset[disabled] .ivu-btn:active,fieldset[disabled] .ivu-btn:focus,fieldset[disabled] .ivu-btn:hover{color:#c5c8ce;background-color:#f7f7f7;border-color:#dcdee2}.ivu-btn.disabled.active>a:only-child,.ivu-btn.disabled:active>a:only-child,.ivu-btn.disabled:focus>a:only-child,.ivu-btn.disabled:hover>a:only-child,.ivu-btn.disabled>a:only-child,.ivu-btn[disabled].active>a:only-child,.ivu-btn[disabled]:active>a:only-child,.ivu-btn[disabled]:focus>a:only-child,.ivu-btn[disabled]:hover>a:only-child,.ivu-btn[disabled]>a:only-child,fieldset[disabled] .ivu-btn.active>a:only-child,fieldset[disabled] .ivu-btn:active>a:only-child,fieldset[disabled] .ivu-btn:focus>a:only-child,fieldset[disabled] .ivu-btn:hover>a:only-child,fieldset[disabled] .ivu-btn>a:only-child{color:currentColor}.ivu-btn.disabled.active>a:only-child:after,.ivu-btn.disabled:active>a:only-child:after,.ivu-btn.disabled:focus>a:only-child:after,.ivu-btn.disabled:hover>a:only-child:after,.ivu-btn.disabled>a:only-child:after,.ivu-btn[disabled].active>a:only-child:after,.ivu-btn[disabled]:active>a:only-child:after,.ivu-btn[disabled]:focus>a:only-child:after,.ivu-btn[disabled]:hover>a:only-child:after,.ivu-btn[disabled]>a:only-child:after,fieldset[disabled] .ivu-btn.active>a:only-child:after,fieldset[disabled] .ivu-btn:active>a:only-child:after,fieldset[disabled] .ivu-btn:focus>a:only-child:after,fieldset[disabled] .ivu-btn:hover>a:only-child:after,fieldset[disabled] .ivu-btn>a:only-child:after{content:'';position:absolute;top:0;left:0;bottom:0;right:0;background:0 0}.ivu-btn:hover{color:#57a3f3;background-color:#fff;border-color:#57a3f3}.ivu-btn:hover>a:only-child{color:currentColor}.ivu-btn:hover>a:only-child:after{content:'';position:absolute;top:0;left:0;bottom:0;right:0;background:0 0}.ivu-btn.active,.ivu-btn:active{color:#2b85e4;background-color:#fff;border-color:#2b85e4}.ivu-btn.active>a:only-child,.ivu-btn:active>a:only-child{color:currentColor}.ivu-btn.active>a:only-child:after,.ivu-btn:active>a:only-child:after{content:'';position:absolute;top:0;left:0;bottom:0;right:0;background:0 0}.ivu-btn:focus{-webkit-box-shadow:0 0 0 2px rgba(45,140,240,.2);box-shadow:0 0 0 2px rgba(45,140,240,.2)}.ivu-btn-long{width:100%}.ivu-btn>.ivu-icon+span,.ivu-btn>span+.ivu-icon{margin-left:4px}.ivu-btn-primary{color:#fff;background-color:#2d8cf0;border-color:#2d8cf0}.ivu-btn-primary>a:only-child{color:currentColor}.ivu-btn-primary>a:only-child:after{content:'';position:absolute;top:0;left:0;bottom:0;right:0;background:0 0}.ivu-btn-primary:hover{color:#fff;background-color:#57a3f3;border-color:#57a3f3}.ivu-btn-primary:hover>a:only-child{color:currentColor}.ivu-btn-primary:hover>a:only-child:after{content:'';position:absolute;top:0;left:0;bottom:0;right:0;background:0 0}.ivu-btn-primary.active,.ivu-btn-primary:active{color:#f2f2f2;background-color:#2b85e4;border-color:#2b85e4}.ivu-btn-primary.active>a:only-child,.ivu-btn-primary:active>a:only-child{color:currentColor}.ivu-btn-primary.active>a:only-child:after,.ivu-btn-primary:active>a:only-child:after{content:'';position:absolute;top:0;left:0;bottom:0;right:0;background:0 0}.ivu-btn-primary.disabled,.ivu-btn-primary.disabled.active,.ivu-btn-primary.disabled:active,.ivu-btn-primary.disabled:focus,.ivu-btn-primary.disabled:hover,.ivu-btn-primary[disabled],.ivu-btn-primary[disabled].active,.ivu-btn-primary[disabled]:active,.ivu-btn-primary[disabled]:focus,.ivu-btn-primary[disabled]:hover,fieldset[disabled] .ivu-btn-primary,fieldset[disabled] .ivu-btn-primary.active,fieldset[disabled] .ivu-btn-primary:active,fieldset[disabled] .ivu-btn-primary:focus,fieldset[disabled] .ivu-btn-primary:hover{color:#c5c8ce;background-color:#f7f7f7;border-color:#dcdee2}.ivu-btn-primary.disabled.active>a:only-child,.ivu-btn-primary.disabled:active>a:only-child,.ivu-btn-primary.disabled:focus>a:only-child,.ivu-btn-primary.disabled:hover>a:only-child,.ivu-btn-primary.disabled>a:only-child,.ivu-btn-primary[disabled].active>a:only-child,.ivu-btn-primary[disabled]:active>a:only-child,.ivu-btn-primary[disabled]:focus>a:only-child,.ivu-btn-primary[disabled]:hover>a:only-child,.ivu-btn-primary[disabled]>a:only-child,fieldset[disabled] .ivu-btn-primary.active>a:only-child,fieldset[disabled] .ivu-btn-primary:active>a:only-child,fieldset[disabled] .ivu-btn-primary:focus>a:only-child,fieldset[disabled] .ivu-btn-primary:hover>a:only-child,fieldset[disabled] .ivu-btn-primary>a:only-child{color:currentColor}.ivu-btn-primary.disabled.active>a:only-child:after,.ivu-btn-primary.disabled:active>a:only-child:after,.ivu-btn-primary.disabled:focus>a:only-child:after,.ivu-btn-primary.disabled:hover>a:only-child:after,.ivu-btn-primary.disabled>a:only-child:after,.ivu-btn-primary[disabled].active>a:only-child:after,.ivu-btn-primary[disabled]:active>a:only-child:after,.ivu-btn-primary[disabled]:focus>a:only-child:after,.ivu-btn-primary[disabled]:hover>a:only-child:after,.ivu-btn-primary[disabled]>a:only-child:after,fieldset[disabled] .ivu-btn-primary.active>a:only-child:after,fieldset[disabled] .ivu-btn-primary:active>a:only-child:after,fieldset[disabled] .ivu-btn-primary:focus>a:only-child:after,fieldset[disabled] .ivu-btn-primary:hover>a:only-child:after,fieldset[disabled] .ivu-btn-primary>a:only-child:after{content:'';position:absolute;top:0;left:0;bottom:0;right:0;background:0 0}.ivu-btn-primary.active,.ivu-btn-primary:active,.ivu-btn-primary:hover{color:#fff}.ivu-btn-primary:focus{-webkit-box-shadow:0 0 0 2px rgba(45,140,240,.2);box-shadow:0 0 0 2px rgba(45,140,240,.2)}.ivu-btn-group:not(.ivu-btn-group-vertical) .ivu-btn-primary:not(:first-child):not(:last-child){border-right-color:#2b85e4;border-left-color:#2b85e4}.ivu-btn-group:not(.ivu-btn-group-vertical) .ivu-btn-primary:first-child:not(:last-child){border-right-color:#2b85e4}.ivu-btn-group:not(.ivu-btn-group-vertical) .ivu-btn-primary:first-child:not(:last-child)[disabled]{border-right-color:#dcdee2}.ivu-btn-group:not(.ivu-btn-group-vertical) .ivu-btn-primary+.ivu-btn,.ivu-btn-group:not(.ivu-btn-group-vertical) .ivu-btn-primary:last-child:not(:first-child){border-left-color:#2b85e4}.ivu-btn-group:not(.ivu-btn-group-vertical) .ivu-btn-primary+.ivu-btn[disabled],.ivu-btn-group:not(.ivu-btn-group-vertical) .ivu-btn-primary:last-child:not(:first-child)[disabled]{border-left-color:#dcdee2}.ivu-btn-group-vertical .ivu-btn-primary:not(:first-child):not(:last-child){border-top-color:#2b85e4;border-bottom-color:#2b85e4}.ivu-btn-group-vertical .ivu-btn-primary:first-child:not(:last-child){border-bottom-color:#2b85e4}.ivu-btn-group-vertical .ivu-btn-primary:first-child:not(:last-child)[disabled]{border-top-color:#dcdee2}.ivu-btn-group-vertical .ivu-btn-primary+.ivu-btn,.ivu-btn-group-vertical .ivu-btn-primary:last-child:not(:first-child){border-top-color:#2b85e4}.ivu-btn-group-vertical .ivu-btn-primary+.ivu-btn[disabled],.ivu-btn-group-vertical .ivu-btn-primary:last-child:not(:first-child)[disabled]{border-bottom-color:#dcdee2}.ivu-btn-dashed{color:#515a6e;background-color:#fff;border-color:#dcdee2;border-style:dashed}.ivu-btn-dashed>a:only-child{color:currentColor}.ivu-btn-dashed>a:only-child:after{content:'';position:absolute;top:0;left:0;bottom:0;right:0;background:0 0}.ivu-btn-dashed:hover{color:#747b8b;background-color:#fff;border-color:#e3e5e8}.ivu-btn-dashed:hover>a:only-child{color:currentColor}.ivu-btn-dashed:hover>a:only-child:after{content:'';position:absolute;top:0;left:0;bottom:0;right:0;background:0 0}.ivu-btn-dashed.active,.ivu-btn-dashed:active{color:#4d5669;background-color:#f2f2f2;border-color:#f2f2f2}.ivu-btn-dashed.active>a:only-child,.ivu-btn-dashed:active>a:only-child{color:currentColor}.ivu-btn-dashed.active>a:only-child:after,.ivu-btn-dashed:active>a:only-child:after{content:'';position:absolute;top:0;left:0;bottom:0;right:0;background:0 0}.ivu-btn-dashed.disabled,.ivu-btn-dashed.disabled.active,.ivu-btn-dashed.disabled:active,.ivu-btn-dashed.disabled:focus,.ivu-btn-dashed.disabled:hover,.ivu-btn-dashed[disabled],.ivu-btn-dashed[disabled].active,.ivu-btn-dashed[disabled]:active,.ivu-btn-dashed[disabled]:focus,.ivu-btn-dashed[disabled]:hover,fieldset[disabled] .ivu-btn-dashed,fieldset[disabled] .ivu-btn-dashed.active,fieldset[disabled] .ivu-btn-dashed:active,fieldset[disabled] .ivu-btn-dashed:focus,fieldset[disabled] .ivu-btn-dashed:hover{color:#c5c8ce;background-color:#f7f7f7;border-color:#dcdee2}.ivu-btn-dashed.disabled.active>a:only-child,.ivu-btn-dashed.disabled:active>a:only-child,.ivu-btn-dashed.disabled:focus>a:only-child,.ivu-btn-dashed.disabled:hover>a:only-child,.ivu-btn-dashed.disabled>a:only-child,.ivu-btn-dashed[disabled].active>a:only-child,.ivu-btn-dashed[disabled]:active>a:only-child,.ivu-btn-dashed[disabled]:focus>a:only-child,.ivu-btn-dashed[disabled]:hover>a:only-child,.ivu-btn-dashed[disabled]>a:only-child,fieldset[disabled] .ivu-btn-dashed.active>a:only-child,fieldset[disabled] .ivu-btn-dashed:active>a:only-child,fieldset[disabled] .ivu-btn-dashed:focus>a:only-child,fieldset[disabled] .ivu-btn-dashed:hover>a:only-child,fieldset[disabled] .ivu-btn-dashed>a:only-child{color:currentColor}.ivu-btn-dashed.disabled.active>a:only-child:after,.ivu-btn-dashed.disabled:active>a:only-child:after,.ivu-btn-dashed.disabled:focus>a:only-child:after,.ivu-btn-dashed.disabled:hover>a:only-child:after,.ivu-btn-dashed.disabled>a:only-child:after,.ivu-btn-dashed[disabled].active>a:only-child:after,.ivu-btn-dashed[disabled]:active>a:only-child:after,.ivu-btn-dashed[disabled]:focus>a:only-child:after,.ivu-btn-dashed[disabled]:hover>a:only-child:after,.ivu-btn-dashed[disabled]>a:only-child:after,fieldset[disabled] .ivu-btn-dashed.active>a:only-child:after,fieldset[disabled] .ivu-btn-dashed:active>a:only-child:after,fieldset[disabled] .ivu-btn-dashed:focus>a:only-child:after,fieldset[disabled] .ivu-btn-dashed:hover>a:only-child:after,fieldset[disabled] .ivu-btn-dashed>a:only-child:after{content:'';position:absolute;top:0;left:0;bottom:0;right:0;background:0 0}.ivu-btn-dashed:hover{color:#57a3f3;background-color:#fff;border-color:#57a3f3}.ivu-btn-dashed:hover>a:only-child{color:currentColor}.ivu-btn-dashed:hover>a:only-child:after{content:'';position:absolute;top:0;left:0;bottom:0;right:0;background:0 0}.ivu-btn-dashed.active,.ivu-btn-dashed:active{color:#2b85e4;background-color:#fff;border-color:#2b85e4}.ivu-btn-dashed.active>a:only-child,.ivu-btn-dashed:active>a:only-child{color:currentColor}.ivu-btn-dashed.active>a:only-child:after,.ivu-btn-dashed:active>a:only-child:after{content:'';position:absolute;top:0;left:0;bottom:0;right:0;background:0 0}.ivu-btn-dashed:focus{-webkit-box-shadow:0 0 0 2px rgba(45,140,240,.2);box-shadow:0 0 0 2px rgba(45,140,240,.2)}.ivu-btn-text{color:#515a6e;background-color:transparent;border-color:transparent}.ivu-btn-text>a:only-child{color:currentColor}.ivu-btn-text>a:only-child:after{content:'';position:absolute;top:0;left:0;bottom:0;right:0;background:0 0}.ivu-btn-text:hover{color:#747b8b;background-color:rgba(255,255,255,.2);border-color:rgba(255,255,255,.2)}.ivu-btn-text:hover>a:only-child{color:currentColor}.ivu-btn-text:hover>a:only-child:after{content:'';position:absolute;top:0;left:0;bottom:0;right:0;background:0 0}.ivu-btn-text.active,.ivu-btn-text:active{color:#4d5669;background-color:rgba(0,0,0,.05);border-color:rgba(0,0,0,.05)}.ivu-btn-text.active>a:only-child,.ivu-btn-text:active>a:only-child{color:currentColor}.ivu-btn-text.active>a:only-child:after,.ivu-btn-text:active>a:only-child:after{content:'';position:absolute;top:0;left:0;bottom:0;right:0;background:0 0}.ivu-btn-text.disabled,.ivu-btn-text.disabled.active,.ivu-btn-text.disabled:active,.ivu-btn-text.disabled:focus,.ivu-btn-text.disabled:hover,.ivu-btn-text[disabled],.ivu-btn-text[disabled].active,.ivu-btn-text[disabled]:active,.ivu-btn-text[disabled]:focus,.ivu-btn-text[disabled]:hover,fieldset[disabled] .ivu-btn-text,fieldset[disabled] .ivu-btn-text.active,fieldset[disabled] .ivu-btn-text:active,fieldset[disabled] .ivu-btn-text:focus,fieldset[disabled] .ivu-btn-text:hover{color:#c5c8ce;background-color:#f7f7f7;border-color:#dcdee2}.ivu-btn-text.disabled.active>a:only-child,.ivu-btn-text.disabled:active>a:only-child,.ivu-btn-text.disabled:focus>a:only-child,.ivu-btn-text.disabled:hover>a:only-child,.ivu-btn-text.disabled>a:only-child,.ivu-btn-text[disabled].active>a:only-child,.ivu-btn-text[disabled]:active>a:only-child,.ivu-btn-text[disabled]:focus>a:only-child,.ivu-btn-text[disabled]:hover>a:only-child,.ivu-btn-text[disabled]>a:only-child,fieldset[disabled] .ivu-btn-text.active>a:only-child,fieldset[disabled] .ivu-btn-text:active>a:only-child,fieldset[disabled] .ivu-btn-text:focus>a:only-child,fieldset[disabled] .ivu-btn-text:hover>a:only-child,fieldset[disabled] .ivu-btn-text>a:only-child{color:currentColor}.ivu-btn-text.disabled.active>a:only-child:after,.ivu-btn-text.disabled:active>a:only-child:after,.ivu-btn-text.disabled:focus>a:only-child:after,.ivu-btn-text.disabled:hover>a:only-child:after,.ivu-btn-text.disabled>a:only-child:after,.ivu-btn-text[disabled].active>a:only-child:after,.ivu-btn-text[disabled]:active>a:only-child:after,.ivu-btn-text[disabled]:focus>a:only-child:after,.ivu-btn-text[disabled]:hover>a:only-child:after,.ivu-btn-text[disabled]>a:only-child:after,fieldset[disabled] .ivu-btn-text.active>a:only-child:after,fieldset[disabled] .ivu-btn-text:active>a:only-child:after,fieldset[disabled] .ivu-btn-text:focus>a:only-child:after,fieldset[disabled] .ivu-btn-text:hover>a:only-child:after,fieldset[disabled] .ivu-btn-text>a:only-child:after{content:'';position:absolute;top:0;left:0;bottom:0;right:0;background:0 0}.ivu-btn-text.disabled,.ivu-btn-text.disabled.active,.ivu-btn-text.disabled:active,.ivu-btn-text.disabled:focus,.ivu-btn-text.disabled:hover,.ivu-btn-text[disabled],.ivu-btn-text[disabled].active,.ivu-btn-text[disabled]:active,.ivu-btn-text[disabled]:focus,.ivu-btn-text[disabled]:hover,fieldset[disabled] .ivu-btn-text,fieldset[disabled] .ivu-btn-text.active,fieldset[disabled] .ivu-btn-text:active,fieldset[disabled] .ivu-btn-text:focus,fieldset[disabled] .ivu-btn-text:hover{color:#c5c8ce;background-color:#fff;border-color:transparent}.ivu-btn-text.disabled.active>a:only-child,.ivu-btn-text.disabled:active>a:only-child,.ivu-btn-text.disabled:focus>a:only-child,.ivu-btn-text.disabled:hover>a:only-child,.ivu-btn-text.disabled>a:only-child,.ivu-btn-text[disabled].active>a:only-child,.ivu-btn-text[disabled]:active>a:only-child,.ivu-btn-text[disabled]:focus>a:only-child,.ivu-btn-text[disabled]:hover>a:only-child,.ivu-btn-text[disabled]>a:only-child,fieldset[disabled] .ivu-btn-text.active>a:only-child,fieldset[disabled] .ivu-btn-text:active>a:only-child,fieldset[disabled] .ivu-btn-text:focus>a:only-child,fieldset[disabled] .ivu-btn-text:hover>a:only-child,fieldset[disabled] .ivu-btn-text>a:only-child{color:currentColor}.ivu-btn-text.disabled.active>a:only-child:after,.ivu-btn-text.disabled:active>a:only-child:after,.ivu-btn-text.disabled:focus>a:only-child:after,.ivu-btn-text.disabled:hover>a:only-child:after,.ivu-btn-text.disabled>a:only-child:after,.ivu-btn-text[disabled].active>a:only-child:after,.ivu-btn-text[disabled]:active>a:only-child:after,.ivu-btn-text[disabled]:focus>a:only-child:after,.ivu-btn-text[disabled]:hover>a:only-child:after,.ivu-btn-text[disabled]>a:only-child:after,fieldset[disabled] .ivu-btn-text.active>a:only-child:after,fieldset[disabled] .ivu-btn-text:active>a:only-child:after,fieldset[disabled] .ivu-btn-text:focus>a:only-child:after,fieldset[disabled] .ivu-btn-text:hover>a:only-child:after,fieldset[disabled] .ivu-btn-text>a:only-child:after{content:'';position:absolute;top:0;left:0;bottom:0;right:0;background:0 0}.ivu-btn-text:hover{color:#57a3f3;background-color:#fff;border-color:transparent}.ivu-btn-text:hover>a:only-child{color:currentColor}.ivu-btn-text:hover>a:only-child:after{content:'';position:absolute;top:0;left:0;bottom:0;right:0;background:0 0}.ivu-btn-text.active,.ivu-btn-text:active{color:#2b85e4;background-color:#fff;border-color:transparent}.ivu-btn-text.active>a:only-child,.ivu-btn-text:active>a:only-child{color:currentColor}.ivu-btn-text.active>a:only-child:after,.ivu-btn-text:active>a:only-child:after{content:'';position:absolute;top:0;left:0;bottom:0;right:0;background:0 0}.ivu-btn-text:focus{-webkit-box-shadow:0 0 0 2px rgba(45,140,240,.2);box-shadow:0 0 0 2px rgba(45,140,240,.2)}.ivu-btn-success{color:#fff;background-color:#19be6b;border-color:#19be6b}.ivu-btn-success>a:only-child{color:currentColor}.ivu-btn-success>a:only-child:after{content:'';position:absolute;top:0;left:0;bottom:0;right:0;background:0 0}.ivu-btn-success:hover{color:#fff;background-color:#47cb89;border-color:#47cb89}.ivu-btn-success:hover>a:only-child{color:currentColor}.ivu-btn-success:hover>a:only-child:after{content:'';position:absolute;top:0;left:0;bottom:0;right:0;background:0 0}.ivu-btn-success.active,.ivu-btn-success:active{color:#f2f2f2;background-color:#18b566;border-color:#18b566}.ivu-btn-success.active>a:only-child,.ivu-btn-success:active>a:only-child{color:currentColor}.ivu-btn-success.active>a:only-child:after,.ivu-btn-success:active>a:only-child:after{content:'';position:absolute;top:0;left:0;bottom:0;right:0;background:0 0}.ivu-btn-success.disabled,.ivu-btn-success.disabled.active,.ivu-btn-success.disabled:active,.ivu-btn-success.disabled:focus,.ivu-btn-success.disabled:hover,.ivu-btn-success[disabled],.ivu-btn-success[disabled].active,.ivu-btn-success[disabled]:active,.ivu-btn-success[disabled]:focus,.ivu-btn-success[disabled]:hover,fieldset[disabled] .ivu-btn-success,fieldset[disabled] .ivu-btn-success.active,fieldset[disabled] .ivu-btn-success:active,fieldset[disabled] .ivu-btn-success:focus,fieldset[disabled] .ivu-btn-success:hover{color:#c5c8ce;background-color:#f7f7f7;border-color:#dcdee2}.ivu-btn-success.disabled.active>a:only-child,.ivu-btn-success.disabled:active>a:only-child,.ivu-btn-success.disabled:focus>a:only-child,.ivu-btn-success.disabled:hover>a:only-child,.ivu-btn-success.disabled>a:only-child,.ivu-btn-success[disabled].active>a:only-child,.ivu-btn-success[disabled]:active>a:only-child,.ivu-btn-success[disabled]:focus>a:only-child,.ivu-btn-success[disabled]:hover>a:only-child,.ivu-btn-success[disabled]>a:only-child,fieldset[disabled] .ivu-btn-success.active>a:only-child,fieldset[disabled] .ivu-btn-success:active>a:only-child,fieldset[disabled] .ivu-btn-success:focus>a:only-child,fieldset[disabled] .ivu-btn-success:hover>a:only-child,fieldset[disabled] .ivu-btn-success>a:only-child{color:currentColor}.ivu-btn-success.disabled.active>a:only-child:after,.ivu-btn-success.disabled:active>a:only-child:after,.ivu-btn-success.disabled:focus>a:only-child:after,.ivu-btn-success.disabled:hover>a:only-child:after,.ivu-btn-success.disabled>a:only-child:after,.ivu-btn-success[disabled].active>a:only-child:after,.ivu-btn-success[disabled]:active>a:only-child:after,.ivu-btn-success[disabled]:focus>a:only-child:after,.ivu-btn-success[disabled]:hover>a:only-child:after,.ivu-btn-success[disabled]>a:only-child:after,fieldset[disabled] .ivu-btn-success.active>a:only-child:after,fieldset[disabled] .ivu-btn-success:active>a:only-child:after,fieldset[disabled] .ivu-btn-success:focus>a:only-child:after,fieldset[disabled] .ivu-btn-success:hover>a:only-child:after,fieldset[disabled] .ivu-btn-success>a:only-child:after{content:'';position:absolute;top:0;left:0;bottom:0;right:0;background:0 0}.ivu-btn-success.active,.ivu-btn-success:active,.ivu-btn-success:hover{color:#fff}.ivu-btn-success:focus{-webkit-box-shadow:0 0 0 2px rgba(25,190,107,.2);box-shadow:0 0 0 2px rgba(25,190,107,.2)}.ivu-btn-warning{color:#fff;background-color:#f90;border-color:#f90}.ivu-btn-warning>a:only-child{color:currentColor}.ivu-btn-warning>a:only-child:after{content:'';position:absolute;top:0;left:0;bottom:0;right:0;background:0 0}.ivu-btn-warning:hover{color:#fff;background-color:#ffad33;border-color:#ffad33}.ivu-btn-warning:hover>a:only-child{color:currentColor}.ivu-btn-warning:hover>a:only-child:after{content:'';position:absolute;top:0;left:0;bottom:0;right:0;background:0 0}.ivu-btn-warning.active,.ivu-btn-warning:active{color:#f2f2f2;background-color:#f29100;border-color:#f29100}.ivu-btn-warning.active>a:only-child,.ivu-btn-warning:active>a:only-child{color:currentColor}.ivu-btn-warning.active>a:only-child:after,.ivu-btn-warning:active>a:only-child:after{content:'';position:absolute;top:0;left:0;bottom:0;right:0;background:0 0}.ivu-btn-warning.disabled,.ivu-btn-warning.disabled.active,.ivu-btn-warning.disabled:active,.ivu-btn-warning.disabled:focus,.ivu-btn-warning.disabled:hover,.ivu-btn-warning[disabled],.ivu-btn-warning[disabled].active,.ivu-btn-warning[disabled]:active,.ivu-btn-warning[disabled]:focus,.ivu-btn-warning[disabled]:hover,fieldset[disabled] .ivu-btn-warning,fieldset[disabled] .ivu-btn-warning.active,fieldset[disabled] .ivu-btn-warning:active,fieldset[disabled] .ivu-btn-warning:focus,fieldset[disabled] .ivu-btn-warning:hover{color:#c5c8ce;background-color:#f7f7f7;border-color:#dcdee2}.ivu-btn-warning.disabled.active>a:only-child,.ivu-btn-warning.disabled:active>a:only-child,.ivu-btn-warning.disabled:focus>a:only-child,.ivu-btn-warning.disabled:hover>a:only-child,.ivu-btn-warning.disabled>a:only-child,.ivu-btn-warning[disabled].active>a:only-child,.ivu-btn-warning[disabled]:active>a:only-child,.ivu-btn-warning[disabled]:focus>a:only-child,.ivu-btn-warning[disabled]:hover>a:only-child,.ivu-btn-warning[disabled]>a:only-child,fieldset[disabled] .ivu-btn-warning.active>a:only-child,fieldset[disabled] .ivu-btn-warning:active>a:only-child,fieldset[disabled] .ivu-btn-warning:focus>a:only-child,fieldset[disabled] .ivu-btn-warning:hover>a:only-child,fieldset[disabled] .ivu-btn-warning>a:only-child{color:currentColor}.ivu-btn-warning.disabled.active>a:only-child:after,.ivu-btn-warning.disabled:active>a:only-child:after,.ivu-btn-warning.disabled:focus>a:only-child:after,.ivu-btn-warning.disabled:hover>a:only-child:after,.ivu-btn-warning.disabled>a:only-child:after,.ivu-btn-warning[disabled].active>a:only-child:after,.ivu-btn-warning[disabled]:active>a:only-child:after,.ivu-btn-warning[disabled]:focus>a:only-child:after,.ivu-btn-warning[disabled]:hover>a:only-child:after,.ivu-btn-warning[disabled]>a:only-child:after,fieldset[disabled] .ivu-btn-warning.active>a:only-child:after,fieldset[disabled] .ivu-btn-warning:active>a:only-child:after,fieldset[disabled] .ivu-btn-warning:focus>a:only-child:after,fieldset[disabled] .ivu-btn-warning:hover>a:only-child:after,fieldset[disabled] .ivu-btn-warning>a:only-child:after{content:'';position:absolute;top:0;left:0;bottom:0;right:0;background:0 0}.ivu-btn-warning.active,.ivu-btn-warning:active,.ivu-btn-warning:hover{color:#fff}.ivu-btn-warning:focus{-webkit-box-shadow:0 0 0 2px rgba(255,153,0,.2);box-shadow:0 0 0 2px rgba(255,153,0,.2)}.ivu-btn-error{color:#fff;background-color:#ed4014;border-color:#ed4014}.ivu-btn-error>a:only-child{color:currentColor}.ivu-btn-error>a:only-child:after{content:'';position:absolute;top:0;left:0;bottom:0;right:0;background:0 0}.ivu-btn-error:hover{color:#fff;background-color:#f16643;border-color:#f16643}.ivu-btn-error:hover>a:only-child{color:currentColor}.ivu-btn-error:hover>a:only-child:after{content:'';position:absolute;top:0;left:0;bottom:0;right:0;background:0 0}.ivu-btn-error.active,.ivu-btn-error:active{color:#f2f2f2;background-color:#e13d13;border-color:#e13d13}.ivu-btn-error.active>a:only-child,.ivu-btn-error:active>a:only-child{color:currentColor}.ivu-btn-error.active>a:only-child:after,.ivu-btn-error:active>a:only-child:after{content:'';position:absolute;top:0;left:0;bottom:0;right:0;background:0 0}.ivu-btn-error.disabled,.ivu-btn-error.disabled.active,.ivu-btn-error.disabled:active,.ivu-btn-error.disabled:focus,.ivu-btn-error.disabled:hover,.ivu-btn-error[disabled],.ivu-btn-error[disabled].active,.ivu-btn-error[disabled]:active,.ivu-btn-error[disabled]:focus,.ivu-btn-error[disabled]:hover,fieldset[disabled] .ivu-btn-error,fieldset[disabled] .ivu-btn-error.active,fieldset[disabled] .ivu-btn-error:active,fieldset[disabled] .ivu-btn-error:focus,fieldset[disabled] .ivu-btn-error:hover{color:#c5c8ce;background-color:#f7f7f7;border-color:#dcdee2}.ivu-btn-error.disabled.active>a:only-child,.ivu-btn-error.disabled:active>a:only-child,.ivu-btn-error.disabled:focus>a:only-child,.ivu-btn-error.disabled:hover>a:only-child,.ivu-btn-error.disabled>a:only-child,.ivu-btn-error[disabled].active>a:only-child,.ivu-btn-error[disabled]:active>a:only-child,.ivu-btn-error[disabled]:focus>a:only-child,.ivu-btn-error[disabled]:hover>a:only-child,.ivu-btn-error[disabled]>a:only-child,fieldset[disabled] .ivu-btn-error.active>a:only-child,fieldset[disabled] .ivu-btn-error:active>a:only-child,fieldset[disabled] .ivu-btn-error:focus>a:only-child,fieldset[disabled] .ivu-btn-error:hover>a:only-child,fieldset[disabled] .ivu-btn-error>a:only-child{color:currentColor}.ivu-btn-error.disabled.active>a:only-child:after,.ivu-btn-error.disabled:active>a:only-child:after,.ivu-btn-error.disabled:focus>a:only-child:after,.ivu-btn-error.disabled:hover>a:only-child:after,.ivu-btn-error.disabled>a:only-child:after,.ivu-btn-error[disabled].active>a:only-child:after,.ivu-btn-error[disabled]:active>a:only-child:after,.ivu-btn-error[disabled]:focus>a:only-child:after,.ivu-btn-error[disabled]:hover>a:only-child:after,.ivu-btn-error[disabled]>a:only-child:after,fieldset[disabled] .ivu-btn-error.active>a:only-child:after,fieldset[disabled] .ivu-btn-error:active>a:only-child:after,fieldset[disabled] .ivu-btn-error:focus>a:only-child:after,fieldset[disabled] .ivu-btn-error:hover>a:only-child:after,fieldset[disabled] .ivu-btn-error>a:only-child:after{content:'';position:absolute;top:0;left:0;bottom:0;right:0;background:0 0}.ivu-btn-error.active,.ivu-btn-error:active,.ivu-btn-error:hover{color:#fff}.ivu-btn-error:focus{-webkit-box-shadow:0 0 0 2px rgba(237,64,20,.2);box-shadow:0 0 0 2px rgba(237,64,20,.2)}.ivu-btn-info{color:#fff;background-color:#2db7f5;border-color:#2db7f5}.ivu-btn-info>a:only-child{color:currentColor}.ivu-btn-info>a:only-child:after{content:'';position:absolute;top:0;left:0;bottom:0;right:0;background:0 0}.ivu-btn-info:hover{color:#fff;background-color:#57c5f7;border-color:#57c5f7}.ivu-btn-info:hover>a:only-child{color:currentColor}.ivu-btn-info:hover>a:only-child:after{content:'';position:absolute;top:0;left:0;bottom:0;right:0;background:0 0}.ivu-btn-info.active,.ivu-btn-info:active{color:#f2f2f2;background-color:#2baee9;border-color:#2baee9}.ivu-btn-info.active>a:only-child,.ivu-btn-info:active>a:only-child{color:currentColor}.ivu-btn-info.active>a:only-child:after,.ivu-btn-info:active>a:only-child:after{content:'';position:absolute;top:0;left:0;bottom:0;right:0;background:0 0}.ivu-btn-info.disabled,.ivu-btn-info.disabled.active,.ivu-btn-info.disabled:active,.ivu-btn-info.disabled:focus,.ivu-btn-info.disabled:hover,.ivu-btn-info[disabled],.ivu-btn-info[disabled].active,.ivu-btn-info[disabled]:active,.ivu-btn-info[disabled]:focus,.ivu-btn-info[disabled]:hover,fieldset[disabled] .ivu-btn-info,fieldset[disabled] .ivu-btn-info.active,fieldset[disabled] .ivu-btn-info:active,fieldset[disabled] .ivu-btn-info:focus,fieldset[disabled] .ivu-btn-info:hover{color:#c5c8ce;background-color:#f7f7f7;border-color:#dcdee2}.ivu-btn-info.disabled.active>a:only-child,.ivu-btn-info.disabled:active>a:only-child,.ivu-btn-info.disabled:focus>a:only-child,.ivu-btn-info.disabled:hover>a:only-child,.ivu-btn-info.disabled>a:only-child,.ivu-btn-info[disabled].active>a:only-child,.ivu-btn-info[disabled]:active>a:only-child,.ivu-btn-info[disabled]:focus>a:only-child,.ivu-btn-info[disabled]:hover>a:only-child,.ivu-btn-info[disabled]>a:only-child,fieldset[disabled] .ivu-btn-info.active>a:only-child,fieldset[disabled] .ivu-btn-info:active>a:only-child,fieldset[disabled] .ivu-btn-info:focus>a:only-child,fieldset[disabled] .ivu-btn-info:hover>a:only-child,fieldset[disabled] .ivu-btn-info>a:only-child{color:currentColor}.ivu-btn-info.disabled.active>a:only-child:after,.ivu-btn-info.disabled:active>a:only-child:after,.ivu-btn-info.disabled:focus>a:only-child:after,.ivu-btn-info.disabled:hover>a:only-child:after,.ivu-btn-info.disabled>a:only-child:after,.ivu-btn-info[disabled].active>a:only-child:after,.ivu-btn-info[disabled]:active>a:only-child:after,.ivu-btn-info[disabled]:focus>a:only-child:after,.ivu-btn-info[disabled]:hover>a:only-child:after,.ivu-btn-info[disabled]>a:only-child:after,fieldset[disabled] .ivu-btn-info.active>a:only-child:after,fieldset[disabled] .ivu-btn-info:active>a:only-child:after,fieldset[disabled] .ivu-btn-info:focus>a:only-child:after,fieldset[disabled] .ivu-btn-info:hover>a:only-child:after,fieldset[disabled] .ivu-btn-info>a:only-child:after{content:'';position:absolute;top:0;left:0;bottom:0;right:0;background:0 0}.ivu-btn-info.active,.ivu-btn-info:active,.ivu-btn-info:hover{color:#fff}.ivu-btn-info:focus{-webkit-box-shadow:0 0 0 2px rgba(45,183,245,.2);box-shadow:0 0 0 2px rgba(45,183,245,.2)}.ivu-btn-circle,.ivu-btn-circle-outline{border-radius:32px}.ivu-btn-circle-outline.ivu-btn-large,.ivu-btn-circle.ivu-btn-large{border-radius:40px}.ivu-btn-circle-outline.ivu-btn-size,.ivu-btn-circle.ivu-btn-size{border-radius:24px}.ivu-btn-circle-outline.ivu-btn-icon-only,.ivu-btn-circle.ivu-btn-icon-only{width:32px;height:32px;padding:0;font-size:16px;border-radius:50%}.ivu-btn-circle-outline.ivu-btn-icon-only.ivu-btn-large,.ivu-btn-circle.ivu-btn-icon-only.ivu-btn-large{width:40px;height:40px;padding:0;font-size:18px;border-radius:50%}.ivu-btn-circle-outline.ivu-btn-icon-only.ivu-btn-small,.ivu-btn-circle.ivu-btn-icon-only.ivu-btn-small{width:24px;height:24px;padding:0;font-size:14px;border-radius:50%}.ivu-btn:before{position:absolute;top:-1px;left:-1px;bottom:-1px;right:-1px;background:#fff;opacity:.35;content:'';border-radius:inherit;z-index:1;-webkit-transition:opacity .2s;transition:opacity .2s;pointer-events:none;display:none}.ivu-btn.ivu-btn-loading{pointer-events:none;position:relative}.ivu-btn.ivu-btn-loading:before{display:block}.ivu-btn-group{position:relative;display:inline-block;vertical-align:middle}.ivu-btn-group>.ivu-btn{position:relative;float:left}.ivu-btn-group>.ivu-btn.active,.ivu-btn-group>.ivu-btn:active,.ivu-btn-group>.ivu-btn:hover{z-index:2}.ivu-btn-group-circle .ivu-btn{border-radius:32px}.ivu-btn-group-large.ivu-btn-group-circle .ivu-btn{border-radius:40px}.ivu-btn-group-large>.ivu-btn{height:40px;padding:0 15px;font-size:16px;border-radius:4px}.ivu-btn-group-small.ivu-btn-group-circle .ivu-btn{border-radius:24px}.ivu-btn-group-small>.ivu-btn{height:24px;padding:0 7px;font-size:14px;border-radius:3px}.ivu-btn-group-small>.ivu-btn>.ivu-icon{font-size:14px}.ivu-btn-group-small .ivu-btn-icon-only{width:24px;height:24px;padding:0}.ivu-btn-group-large .ivu-btn-icon-only{width:40px;height:40px;padding:0}.ivu-btn+.ivu-btn-group,.ivu-btn-group .ivu-btn+.ivu-btn,.ivu-btn-group+.ivu-btn,.ivu-btn-group+.ivu-btn-group{margin-left:-1px}.ivu-btn-group .ivu-btn:not(:first-child):not(:last-child){border-radius:0}.ivu-btn-group:not(.ivu-btn-group-vertical)>.ivu-btn:first-child{margin-left:0}.ivu-btn-group:not(.ivu-btn-group-vertical)>.ivu-btn:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.ivu-btn-group:not(.ivu-btn-group-vertical)>.ivu-btn:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.ivu-btn-group>.ivu-btn-group{float:left}.ivu-btn-group>.ivu-btn-group:not(:first-child):not(:last-child)>.ivu-btn{border-radius:0}.ivu-btn-group:not(.ivu-btn-group-vertical)>.ivu-btn-group:first-child:not(:last-child)>.ivu-btn:last-child{border-bottom-right-radius:0;border-top-right-radius:0;padding-right:8px}.ivu-btn-group:not(.ivu-btn-group-vertical)>.ivu-btn-group:last-child:not(:first-child)>.ivu-btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0;padding-left:8px}.ivu-btn-group-vertical{display:inline-block;vertical-align:middle}.ivu-btn-group-vertical>.ivu-btn{display:block;width:100%;max-width:100%;float:none;min-width:32px}.ivu-btn-group-vertical.ivu-btn-group-small>.ivu-btn{min-width:24px}.ivu-btn-group-vertical.ivu-btn-group-large>.ivu-btn{min-width:40px}.ivu-btn+.ivu-btn-group-vertical,.ivu-btn-group-vertical .ivu-btn+.ivu-btn,.ivu-btn-group-vertical+.ivu-btn,.ivu-btn-group-vertical+.ivu-btn-group-vertical{margin-top:-1px;margin-left:0}.ivu-btn-group-vertical>.ivu-btn:first-child{margin-top:0}.ivu-btn-group-vertical>.ivu-btn:first-child:not(:last-child){border-bottom-left-radius:0;border-bottom-right-radius:0}.ivu-btn-group-vertical>.ivu-btn:last-child:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.ivu-btn-group-vertical>.ivu-btn-group-vertical:first-child:not(:last-child)>.ivu-btn:last-child{border-bottom-left-radius:0;border-bottom-right-radius:0;padding-bottom:8px}.ivu-btn-group-vertical>.ivu-btn-group-vertical:last-child:not(:first-child)>.ivu-btn:first-child{border-bottom-right-radius:0;border-bottom-left-radius:0;padding-top:8px}.ivu-btn-ghost{color:#fff;background:0 0}.ivu-btn-ghost:hover{background:0 0}.ivu-btn-ghost.ivu-btn-dashed,.ivu-btn-ghost.ivu-btn-default{color:#fff;border-color:#fff}.ivu-btn-ghost.ivu-btn-dashed:hover,.ivu-btn-ghost.ivu-btn-default:hover{color:#57a3f3;border-color:#57a3f3}.ivu-btn-ghost.ivu-btn-primary{color:#2d8cf0}.ivu-btn-ghost.ivu-btn-primary:hover{color:#57a3f3;background:rgba(245,249,254,.5)}.ivu-btn-ghost.ivu-btn-info{color:#2db7f5}.ivu-btn-ghost.ivu-btn-info:hover{color:#57c5f7;background:rgba(245,251,254,.5)}.ivu-btn-ghost.ivu-btn-success{color:#19be6b}.ivu-btn-ghost.ivu-btn-success:hover{color:#47cb89;background:rgba(244,252,248,.5)}.ivu-btn-ghost.ivu-btn-warning{color:#f90}.ivu-btn-ghost.ivu-btn-warning:hover{color:#ffad33;background:rgba(255,250,242,.5)}.ivu-btn-ghost.ivu-btn-error{color:#ed4014}.ivu-btn-ghost.ivu-btn-error:hover{color:#f16643;background:rgba(254,245,243,.5)}.ivu-btn-ghost.ivu-btn-dashed[disabled],.ivu-btn-ghost.ivu-btn-default[disabled],.ivu-btn-ghost.ivu-btn-error[disabled],.ivu-btn-ghost.ivu-btn-info[disabled],.ivu-btn-ghost.ivu-btn-primary[disabled],.ivu-btn-ghost.ivu-btn-success[disabled],.ivu-btn-ghost.ivu-btn-warning[disabled]{background:0 0;color:rgba(0,0,0,.25);border-color:#dcdee2}.ivu-btn-ghost.ivu-btn-text[disabled]{background:0 0;color:rgba(0,0,0,.25)}a.ivu-btn{padding-top:.1px;line-height:30px}a.ivu-btn-large{line-height:38px}a.ivu-btn-small{line-height:22px}.ivu-affix{position:fixed;z-index:10}.ivu-back-top{z-index:10;position:fixed;cursor:pointer;display:none}.ivu-back-top.ivu-back-top-show{display:block}.ivu-back-top-inner{background-color:rgba(0,0,0,.6);border-radius:2px;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.2);box-shadow:0 1px 3px rgba(0,0,0,.2);-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.ivu-back-top-inner:hover{background-color:rgba(0,0,0,.7)}.ivu-back-top i{color:#fff;font-size:24px;padding:8px 12px}.ivu-badge{position:relative;display:inline-block}.ivu-badge-count{font-family:"Monospaced Number";line-height:1;vertical-align:middle;position:absolute;-webkit-transform:translateX(50%);-ms-transform:translateX(50%);transform:translateX(50%);top:-10px;right:0;height:20px;border-radius:10px;min-width:20px;background:#ed4014;border:1px solid transparent;color:#fff;line-height:18px;text-align:center;padding:0 6px;font-size:12px;white-space:nowrap;-webkit-transform-origin:-10% center;-ms-transform-origin:-10% center;transform-origin:-10% center;z-index:10;-webkit-box-shadow:0 0 0 1px #fff;box-shadow:0 0 0 1px #fff}.ivu-badge-count-custom{background:0 0;color:inherit;border-color:transparent;-webkit-box-shadow:none;box-shadow:none}.ivu-badge-count a,.ivu-badge-count a:hover{color:#fff}.ivu-badge-count-alone{top:auto;display:block;position:relative;-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0)}.ivu-badge-count-primary{background:#2d8cf0}.ivu-badge-count-success{background:#19be6b}.ivu-badge-count-error{background:#ed4014}.ivu-badge-count-warning{background:#f90}.ivu-badge-count-info{background:#2db7f5}.ivu-badge-count-normal{background:#e6ebf1;color:#808695}.ivu-badge-dot{position:absolute;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%);-webkit-transform-origin:0 center;-ms-transform-origin:0 center;transform-origin:0 center;top:-4px;right:-8px;height:8px;width:8px;border-radius:100%;background:#ed4014;z-index:10;-webkit-box-shadow:0 0 0 1px #fff;box-shadow:0 0 0 1px #fff}.ivu-badge-status{line-height:inherit;vertical-align:baseline}.ivu-badge-status-dot{width:6px;height:6px;display:inline-block;border-radius:50%;vertical-align:middle;position:relative;top:-1px}.ivu-badge-status-success{background-color:#19be6b}.ivu-badge-status-processing{background-color:#2d8cf0;position:relative}.ivu-badge-status-processing:after{position:absolute;top:0;left:0;width:100%;height:100%;border-radius:50%;border:1px solid #2d8cf0;content:'';-webkit-animation:aniStatusProcessing 1.2s infinite ease-in-out;animation:aniStatusProcessing 1.2s infinite ease-in-out}.ivu-badge-status-default{background-color:#e6ebf1}.ivu-badge-status-error{background-color:#ed4014}.ivu-badge-status-warning{background-color:#f90}.ivu-badge-status-text{display:inline-block;color:#515a6e;font-size:14px;margin-left:6px}.ivu-badge-status-pink{background-color:#eb2f96}.ivu-badge-status-magenta{background-color:#eb2f96}.ivu-badge-status-red{background-color:#f5222d}.ivu-badge-status-volcano{background-color:#fa541c}.ivu-badge-status-orange{background-color:#fa8c16}.ivu-badge-status-yellow{background-color:#fadb14}.ivu-badge-status-gold{background-color:#faad14}.ivu-badge-status-cyan{background-color:#13c2c2}.ivu-badge-status-lime{background-color:#a0d911}.ivu-badge-status-green{background-color:#52c41a}.ivu-badge-status-blue{background-color:#1890ff}.ivu-badge-status-geekblue{background-color:#2f54eb}.ivu-badge-status-purple{background-color:#722ed1}@-webkit-keyframes aniStatusProcessing{0%{-webkit-transform:scale(.8);transform:scale(.8);opacity:.5}100%{-webkit-transform:scale(2.4);transform:scale(2.4);opacity:0}}@keyframes aniStatusProcessing{0%{-webkit-transform:scale(.8);transform:scale(.8);opacity:.5}100%{-webkit-transform:scale(2.4);transform:scale(2.4);opacity:0}}.ivu-chart-circle{display:inline-block;position:relative}.ivu-chart-circle-inner{width:100%;text-align:center;position:absolute;left:0;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);line-height:1}.ivu-spin{color:#2d8cf0;vertical-align:middle;text-align:center}.ivu-spin-dot{position:relative;display:block;border-radius:50%;background-color:#2d8cf0;width:20px;height:20px;-webkit-animation:ani-spin-bounce 1s 0s ease-in-out infinite;animation:ani-spin-bounce 1s 0s ease-in-out infinite}.ivu-spin-large .ivu-spin-dot{width:32px;height:32px}.ivu-spin-small .ivu-spin-dot{width:12px;height:12px}.ivu-spin-fix{position:absolute;top:0;left:0;z-index:8;width:100%;height:100%;background-color:rgba(255,255,255,.9)}.ivu-spin-fullscreen{z-index:2010}.ivu-spin-fullscreen-wrapper{position:fixed;top:0;right:0;bottom:0;left:0}.ivu-spin-fix .ivu-spin-main{position:absolute;top:50%;left:50%;-ms-transform:translate(-50%,-50%);-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.ivu-spin-fix .ivu-spin-dot{display:inline-block}.ivu-spin-show-text .ivu-spin-dot,.ivu-spin-text{display:none}.ivu-spin-show-text .ivu-spin-text{display:block}.ivu-table-wrapper>.ivu-spin-fix{border:none}.ivu-table-wrapper-with-border>.ivu-spin-fix{border:1px solid #dcdee2;border-top:0;border-left:0}@-webkit-keyframes ani-spin-bounce{0%{-webkit-transform:scale(0);transform:scale(0)}100%{-webkit-transform:scale(1);transform:scale(1);opacity:0}}@keyframes ani-spin-bounce{0%{-webkit-transform:scale(0);transform:scale(0)}100%{-webkit-transform:scale(1);transform:scale(1);opacity:0}}.ivu-alert{position:relative;padding:8px 48px 8px 16px;border-radius:4px;color:#515a6e;font-size:14px;line-height:16px;margin-bottom:10px}.ivu-alert.ivu-alert-with-icon{padding:8px 48px 8px 38px}.ivu-alert-icon{position:absolute;margin-top:-8.5px;top:50%;left:12px;font-size:16px}.ivu-alert-desc{font-size:14px;color:#515a6e;line-height:21px;display:none;text-align:justify}.ivu-alert-success{border:1px solid #8ce6b0;background-color:#edfff3}.ivu-alert-success .ivu-alert-icon{color:#19be6b}.ivu-alert-info{border:1px solid #abdcff;background-color:#f0faff}.ivu-alert-info .ivu-alert-icon{color:#2d8cf0}.ivu-alert-warning{border:1px solid #ffd77a;background-color:#fff9e6}.ivu-alert-warning .ivu-alert-icon{color:#f90}.ivu-alert-error{border:1px solid #ffb08f;background-color:#ffefe6}.ivu-alert-error .ivu-alert-icon{color:#ed4014}.ivu-alert-close{font-size:12px;position:absolute;right:8px;top:8px;overflow:hidden;cursor:pointer}.ivu-alert-close .ivu-icon-ios-close{font-size:22px;color:#999;-webkit-transition:color .2s ease;transition:color .2s ease;position:relative;top:-3px}.ivu-alert-close .ivu-icon-ios-close:hover{color:#444}.ivu-alert-with-desc{padding:16px;position:relative;border-radius:4px;margin-bottom:10px;color:#515a6e;line-height:1.5}.ivu-alert-with-desc.ivu-alert-with-icon{padding:16px 16px 16px 69px}.ivu-alert-with-desc .ivu-alert-desc{display:block}.ivu-alert-with-desc .ivu-alert-message{font-size:16px;color:#17233d;display:block;margin-bottom:4px}.ivu-alert-with-desc .ivu-alert-icon{top:50%;left:24px;margin-top:-24px;font-size:28px}.ivu-alert-with-banner{border-radius:0}.ivu-collapse{background-color:#f7f7f7;border-radius:3px;border:1px solid #dcdee2}.ivu-collapse-simple{border-left:none;border-right:none;background-color:#fff;border-radius:0}.ivu-collapse>.ivu-collapse-item{border-top:1px solid #dcdee2}.ivu-collapse>.ivu-collapse-item:first-child{border-top:0}.ivu-collapse>.ivu-collapse-item>.ivu-collapse-header{height:38px;line-height:38px;padding-left:16px;color:#666;cursor:pointer;position:relative;border-bottom:1px solid transparent;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.ivu-collapse>.ivu-collapse-item>.ivu-collapse-header>i{-webkit-transition:-webkit-transform .2s ease-in-out;transition:-webkit-transform .2s ease-in-out;transition:transform .2s ease-in-out;transition:transform .2s ease-in-out,-webkit-transform .2s ease-in-out;margin-right:14px}.ivu-collapse>.ivu-collapse-item.ivu-collapse-item-active>.ivu-collapse-header{border-bottom:1px solid #dcdee2}.ivu-collapse-simple>.ivu-collapse-item.ivu-collapse-item-active>.ivu-collapse-header{border-bottom:1px solid transparent}.ivu-collapse>.ivu-collapse-item.ivu-collapse-item-active>.ivu-collapse-header>i{-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.ivu-collapse-content{color:#515a6e;padding:0 16px;background-color:#fff}.ivu-collapse-content>.ivu-collapse-content-box{padding-top:16px;padding-bottom:16px}.ivu-collapse-simple>.ivu-collapse-item>.ivu-collapse-content>.ivu-collapse-content-box{padding-top:0}.ivu-collapse-item:last-child>.ivu-collapse-content{border-radius:0 0 3px 3px}.ivu-card{display:block;background:#fff;border-radius:4px;font-size:14px;position:relative;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.ivu-card-bordered{border:1px solid #dcdee2;border-color:#e8eaec}.ivu-card-shadow{-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,.1);box-shadow:0 1px 1px 0 rgba(0,0,0,.1)}.ivu-card:hover{-webkit-box-shadow:0 1px 6px rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.2);border-color:#eee}.ivu-card.ivu-card-dis-hover:hover{-webkit-box-shadow:none;box-shadow:none;border-color:transparent}.ivu-card.ivu-card-dis-hover.ivu-card-bordered:hover{border-color:#e8eaec}.ivu-card.ivu-card-shadow:hover{-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,.1);box-shadow:0 1px 1px 0 rgba(0,0,0,.1)}.ivu-card-head{border-bottom:1px solid #e8eaec;padding:14px 16px;line-height:1}.ivu-card-head p,.ivu-card-head-inner{display:inline-block;width:100%;height:20px;line-height:20px;font-size:16px;color:#17233d;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ivu-card-extra{position:absolute;right:16px;top:14px}.ivu-card-body{padding:16px}.ivu-message{font-size:14px;position:fixed;z-index:1010;width:100%;top:16px;left:0;pointer-events:none}.ivu-message-notice{padding:8px;text-align:center;-webkit-transition:height .3s ease-in-out,padding .3s ease-in-out;transition:height .3s ease-in-out,padding .3s ease-in-out}.ivu-message-notice:first-child{margin-top:-8px}.ivu-message-notice-close{position:absolute;right:4px;top:10px;color:#999;outline:0}.ivu-message-notice-close i.ivu-icon{font-size:22px;color:#999;-webkit-transition:color .2s ease;transition:color .2s ease;position:relative;top:-3px}.ivu-message-notice-close i.ivu-icon:hover{color:#444}.ivu-message-notice-content{display:inline-block;pointer-events:all;padding:8px 16px;border-radius:4px;-webkit-box-shadow:0 1px 6px rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.2);background:#fff;position:relative}.ivu-message-notice-content-text{display:inline-block}.ivu-message-notice-closable .ivu-message-notice-content-text{padding-right:32px}.ivu-message-success .ivu-icon{color:#19be6b}.ivu-message-error .ivu-icon{color:#ed4014}.ivu-message-warning .ivu-icon{color:#f90}.ivu-message-info .ivu-icon,.ivu-message-loading .ivu-icon{color:#2d8cf0}.ivu-message .ivu-icon{margin-right:4px;font-size:16px;vertical-align:middle}.ivu-message-custom-content span{vertical-align:middle}.ivu-message-notice-with-background .ivu-message-notice-content-background{-webkit-box-shadow:none;box-shadow:none}.ivu-message-notice-with-background .ivu-message-notice-content-info{background:#f0faff;color:#2e8bf0;border:1px solid #d4eeff}.ivu-message-notice-with-background .ivu-message-notice-content-success{background:#edfff3;color:#19bf6c;border:1px solid #bbf2cf}.ivu-message-notice-with-background .ivu-message-notice-content-warning{background:#fff9e6;color:#f90;border:1px solid #ffe7a3}.ivu-message-notice-with-background .ivu-message-notice-content-error{background:#ffefe6;color:#ed3f13;border:1px solid #ffcfb8}.ivu-notice{width:335px;margin-right:24px;position:fixed;z-index:1010}.ivu-notice-content-with-icon{margin-left:51px}.ivu-notice-with-desc.ivu-notice-with-icon .ivu-notice-title{margin-left:51px}.ivu-notice-notice{margin-bottom:10px;padding:16px;border-radius:4px;-webkit-box-shadow:0 1px 6px rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.2);background:#fff;line-height:1;position:relative;overflow:hidden}.ivu-notice-notice-close{position:absolute;right:8px;top:15px;color:#999;outline:0}.ivu-notice-notice-close i{font-size:22px;color:#999;-webkit-transition:color .2s ease;transition:color .2s ease;position:relative;top:-3px}.ivu-notice-notice-close i:hover{color:#444}.ivu-notice-notice-content-with-render .ivu-notice-desc{display:none}.ivu-notice-notice-with-desc .ivu-notice-notice-close{top:11px}.ivu-notice-content-with-render-notitle{margin-left:26px}.ivu-notice-title{font-size:16px;line-height:19px;color:#17233d;padding-right:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ivu-notice-with-desc .ivu-notice-title{margin-bottom:8px}.ivu-notice-desc{font-size:14px;color:#515a6e;text-align:justify;line-height:1.5}.ivu-notice-with-desc.ivu-notice-with-icon .ivu-notice-desc{margin-left:51px}.ivu-notice-with-icon .ivu-notice-title{margin-left:26px}.ivu-notice-icon{position:absolute;top:-2px;font-size:20px}.ivu-notice-icon-success{color:#19be6b}.ivu-notice-icon-info{color:#2d8cf0}.ivu-notice-icon-warning{color:#f90}.ivu-notice-icon-error{color:#ed4014}.ivu-notice-with-desc .ivu-notice-icon{font-size:36px;top:-6px}.ivu-notice-custom-content{position:relative}.ivu-radio-focus{-webkit-box-shadow:0 0 0 2px rgba(45,140,240,.2);box-shadow:0 0 0 2px rgba(45,140,240,.2);z-index:1}.ivu-radio-group{display:inline-block;font-size:14px;vertical-align:middle}.ivu-radio-group-vertical .ivu-radio-wrapper{display:block;height:30px;line-height:30px}.ivu-radio-wrapper{font-size:14px;vertical-align:middle;display:inline-block;position:relative;white-space:nowrap;margin-right:8px;cursor:pointer}.ivu-radio-wrapper-disabled{cursor:not-allowed}.ivu-radio{display:inline-block;margin-right:4px;white-space:nowrap;position:relative;line-height:1;vertical-align:middle;cursor:pointer}.ivu-radio:hover .ivu-radio-inner{border-color:#bcbcbc}.ivu-radio-inner{display:inline-block;width:16px;height:16px;position:relative;top:0;left:0;background-color:#fff;border:1px solid #dcdee2;border-radius:50%;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.ivu-radio-inner:after{position:absolute;width:10px;height:10px;left:2px;top:2px;border-radius:6px;display:table;border-top:0;border-left:0;content:' ';background-color:#2d8cf0;opacity:0;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;-webkit-transform:scale(0);-ms-transform:scale(0);transform:scale(0)}.ivu-radio-large{font-size:16px}.ivu-radio-large .ivu-radio-inner{width:18px;height:18px}.ivu-radio-large .ivu-radio-inner:after{width:12px;height:12px}.ivu-radio-large .ivu-radio-wrapper,.ivu-radio-large.ivu-radio-wrapper{font-size:16px}.ivu-radio-small .ivu-radio-inner{width:14px;height:14px}.ivu-radio-small .ivu-radio-inner:after{width:8px;height:8px}.ivu-radio-input{position:absolute;top:0;bottom:0;left:0;right:0;z-index:1;opacity:0;cursor:pointer}.ivu-radio-border{border:1px solid #dcdee2;border-radius:4px;height:32px;line-height:30px;padding:0 15px;-webkit-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.ivu-radio-group-small .ivu-radio-border,.ivu-radio-small.ivu-radio-border{height:24px;line-height:22px;padding:0 7px}.ivu-radio-group-large .ivu-radio-border,.ivu-radio-large.ivu-radio-border{height:40px;line-height:36px;padding:0 15px}.ivu-radio-wrapper-checked.ivu-radio-border{border-color:#2d8cf0}.ivu-radio-wrapper-disabled.ivu-radio-border{border-color:#dcdee2}.ivu-radio-checked .ivu-radio-inner{border-color:#2d8cf0}.ivu-radio-checked .ivu-radio-inner:after{opacity:1;-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1);-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.ivu-radio-checked:hover .ivu-radio-inner{border-color:#2d8cf0}.ivu-radio-disabled{cursor:not-allowed}.ivu-radio-disabled .ivu-radio-input{cursor:not-allowed}.ivu-radio-disabled:hover .ivu-radio-inner{border-color:#dcdee2}.ivu-radio-disabled .ivu-radio-inner{border-color:#dcdee2;background-color:#f3f3f3}.ivu-radio-disabled .ivu-radio-inner:after{background-color:#ccc}.ivu-radio-disabled .ivu-radio-disabled+span{color:#ccc}span.ivu-radio+*{margin-left:2px;margin-right:2px}.ivu-radio-group-button{font-size:0;-webkit-text-size-adjust:none}.ivu-radio-group-button .ivu-radio{width:0;margin-right:0}.ivu-radio-group-button .ivu-radio-wrapper{display:inline-block;height:32px;line-height:30px;margin:0;padding:0 15px;font-size:14px;color:#515a6e;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;cursor:pointer;border:1px solid #dcdee2;border-left:0;background:#fff;position:relative}.ivu-radio-group-button .ivu-radio-wrapper>span{margin-left:0}.ivu-radio-group-button .ivu-radio-wrapper:after,.ivu-radio-group-button .ivu-radio-wrapper:before{content:'';display:block;position:absolute;width:1px;height:100%;left:-1px;top:0;background:#dcdee2;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.ivu-radio-group-button .ivu-radio-wrapper:after{height:36px;left:-1px;top:-3px;background:rgba(45,140,240,.2);opacity:0}.ivu-radio-group-button .ivu-radio-wrapper:first-child{border-radius:4px 0 0 4px;border-left:1px solid #dcdee2}.ivu-radio-group-button .ivu-radio-wrapper:first-child:after,.ivu-radio-group-button .ivu-radio-wrapper:first-child:before{display:none}.ivu-radio-group-button .ivu-radio-wrapper:last-child{border-radius:0 4px 4px 0}.ivu-radio-group-button .ivu-radio-wrapper:first-child:last-child{border-radius:4px}.ivu-radio-group-button .ivu-radio-wrapper:hover{position:relative;color:#2d8cf0}.ivu-radio-group-button .ivu-radio-wrapper:hover .ivu-radio{background-color:#000}.ivu-radio-group-button .ivu-radio-wrapper .ivu-radio-inner,.ivu-radio-group-button .ivu-radio-wrapper input{opacity:0;width:0;height:0}.ivu-radio-group-button .ivu-radio-wrapper-checked{background:#fff;border-color:#2d8cf0;color:#2d8cf0;-webkit-box-shadow:-1px 0 0 0 #2d8cf0;box-shadow:-1px 0 0 0 #2d8cf0;z-index:1}.ivu-radio-group-button .ivu-radio-wrapper-checked:before{background:#2d8cf0;opacity:.1}.ivu-radio-group-button .ivu-radio-wrapper-checked.ivu-radio-focus{-webkit-box-shadow:-1px 0 0 0 #2d8cf0,0 0 0 2px rgba(45,140,240,.2);box-shadow:-1px 0 0 0 #2d8cf0,0 0 0 2px rgba(45,140,240,.2);-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.ivu-radio-group-button .ivu-radio-wrapper-checked.ivu-radio-focus:after{left:-3px;top:-3px;opacity:1;background:rgba(45,140,240,.2)}.ivu-radio-group-button .ivu-radio-wrapper-checked.ivu-radio-focus:first-child{-webkit-box-shadow:0 0 0 2px rgba(45,140,240,.2);box-shadow:0 0 0 2px rgba(45,140,240,.2)}.ivu-radio-group-button .ivu-radio-wrapper-checked:first-child{border-color:#2d8cf0;-webkit-box-shadow:none;box-shadow:none}.ivu-radio-group-button .ivu-radio-wrapper-checked:hover{border-color:#57a3f3;color:#57a3f3}.ivu-radio-group-button .ivu-radio-wrapper-checked:active{border-color:#2b85e4;color:#2b85e4}.ivu-radio-group-button .ivu-radio-wrapper-disabled{border-color:#dcdee2;background-color:#f7f7f7;cursor:not-allowed;color:#ccc}.ivu-radio-group-button .ivu-radio-wrapper-disabled:first-child,.ivu-radio-group-button .ivu-radio-wrapper-disabled:hover{border-color:#dcdee2;background-color:#f7f7f7;color:#ccc}.ivu-radio-group-button .ivu-radio-wrapper-disabled:first-child{border-left-color:#dcdee2}.ivu-radio-group-button .ivu-radio-wrapper-disabled.ivu-radio-wrapper-checked{color:#fff;background-color:#e6e6e6;border-color:#dcdee2;-webkit-box-shadow:none!important;box-shadow:none!important}.ivu-radio-group-button-solid .ivu-radio-wrapper-checked:not(.ivu-radio-wrapper-disabled){background:#2d8cf0;color:#fff}.ivu-radio-group-button-solid .ivu-radio-wrapper-checked:not(.ivu-radio-wrapper-disabled):hover{background:#57a3f3;color:#fff}.ivu-radio-group-button.ivu-radio-group-large .ivu-radio-wrapper{height:40px;line-height:38px;font-size:16px}.ivu-radio-group-button.ivu-radio-group-large .ivu-radio-wrapper:after{height:44px}.ivu-radio-group-button.ivu-radio-group-small .ivu-radio-wrapper{height:24px;line-height:22px;padding:0 12px;font-size:14px}.ivu-radio-group-button.ivu-radio-group-small .ivu-radio-wrapper:after{height:28px}.ivu-radio-group-button.ivu-radio-group-small .ivu-radio-wrapper:first-child{border-radius:3px 0 0 3px}.ivu-radio-group-button.ivu-radio-group-small .ivu-radio-wrapper:last-child{border-radius:0 3px 3px 0}.ivu-checkbox-focus{-webkit-box-shadow:0 0 0 2px rgba(45,140,240,.2);box-shadow:0 0 0 2px rgba(45,140,240,.2);z-index:1}.ivu-checkbox{display:inline-block;vertical-align:middle;white-space:nowrap;cursor:pointer;line-height:1;position:relative}.ivu-checkbox-disabled{cursor:not-allowed}.ivu-checkbox:hover .ivu-checkbox-inner{border-color:#bcbcbc}.ivu-checkbox-inner{display:inline-block;width:16px;height:16px;position:relative;top:0;left:0;border:1px solid #dcdee2;border-radius:2px;background-color:#fff;-webkit-transition:border-color .2s ease-in-out,background-color .2s ease-in-out,-webkit-box-shadow .2s ease-in-out;transition:border-color .2s ease-in-out,background-color .2s ease-in-out,-webkit-box-shadow .2s ease-in-out;transition:border-color .2s ease-in-out,background-color .2s ease-in-out,box-shadow .2s ease-in-out;transition:border-color .2s ease-in-out,background-color .2s ease-in-out,box-shadow .2s ease-in-out,-webkit-box-shadow .2s ease-in-out}.ivu-checkbox-inner:after{content:'';display:table;width:4px;height:8px;position:absolute;top:1px;left:4px;border:2px solid #fff;border-top:0;border-left:0;-webkit-transform:rotate(45deg) scale(0);-ms-transform:rotate(45deg) scale(0);transform:rotate(45deg) scale(0);-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.ivu-checkbox-large .ivu-checkbox-inner{width:18px;height:18px}.ivu-checkbox-large .ivu-checkbox-inner:after{width:5px;height:9px}.ivu-checkbox-small{font-size:14px}.ivu-checkbox-small .ivu-checkbox-inner{width:14px;height:14px}.ivu-checkbox-small .ivu-checkbox-inner:after{top:0;left:3px}.ivu-checkbox-input{width:100%;height:100%;position:absolute;top:0;bottom:0;left:0;right:0;z-index:1;cursor:pointer;opacity:0}.ivu-checkbox-input[disabled]{cursor:not-allowed}.ivu-checkbox-border{border:1px solid #dcdee2;border-radius:4px;height:32px;line-height:30px;padding:0 15px;-webkit-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.ivu-checkbox-group.ivu-checkbox-small .ivu-checkbox-border,.ivu-checkbox-small.ivu-checkbox-border{height:24px;line-height:22px;padding:0 7px}.ivu-checkbox-group.ivu-checkbox-large .ivu-checkbox-border,.ivu-checkbox-large.ivu-checkbox-border{height:40px;line-height:36px;padding:0 15px}.ivu-checkbox-wrapper-checked.ivu-checkbox-border{border-color:#2d8cf0}.ivu-checkbox-wrapper-disabled.ivu-checkbox-border{border-color:#dcdee2}.ivu-checkbox-checked:hover .ivu-checkbox-inner{border-color:#2d8cf0}.ivu-checkbox-checked .ivu-checkbox-inner{border-color:#2d8cf0;background-color:#2d8cf0}.ivu-checkbox-checked .ivu-checkbox-inner:after{content:'';display:table;width:4px;height:8px;position:absolute;top:2px;left:5px;border:2px solid #fff;border-top:0;border-left:0;-webkit-transform:rotate(45deg) scale(1);-ms-transform:rotate(45deg) scale(1);transform:rotate(45deg) scale(1);-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.ivu-checkbox-large .ivu-checkbox-checked .ivu-checkbox-inner:after{width:6px;height:10px}.ivu-checkbox-small .ivu-checkbox-checked .ivu-checkbox-inner:after{top:1px;left:4px}.ivu-checkbox-disabled.ivu-checkbox-checked:hover .ivu-checkbox-inner{border-color:#dcdee2}.ivu-checkbox-disabled.ivu-checkbox-checked .ivu-checkbox-inner{background-color:#f3f3f3;border-color:#dcdee2}.ivu-checkbox-disabled.ivu-checkbox-checked .ivu-checkbox-inner:after{-webkit-animation-name:none;animation-name:none;border-color:#ccc}.ivu-checkbox-disabled:hover .ivu-checkbox-inner{border-color:#dcdee2}.ivu-checkbox-disabled .ivu-checkbox-inner{border-color:#dcdee2;background-color:#f3f3f3}.ivu-checkbox-disabled .ivu-checkbox-inner:after{-webkit-animation-name:none;animation-name:none;border-color:#f3f3f3}.ivu-checkbox-disabled .ivu-checkbox-inner-input{cursor:default}.ivu-checkbox-disabled+span{color:#ccc;cursor:not-allowed}.ivu-checkbox-indeterminate .ivu-checkbox-inner:after{content:'';width:10px;height:1px;-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1);position:absolute;left:2px;top:6px}.ivu-checkbox-indeterminate:hover .ivu-checkbox-inner{border-color:#2d8cf0}.ivu-checkbox-indeterminate .ivu-checkbox-inner{background-color:#2d8cf0;border-color:#2d8cf0}.ivu-checkbox-indeterminate.ivu-checkbox-disabled .ivu-checkbox-inner{background-color:#f3f3f3;border-color:#dcdee2}.ivu-checkbox-indeterminate.ivu-checkbox-disabled .ivu-checkbox-inner:after{border-color:#c5c8ce}.ivu-checkbox-large .ivu-checkbox-indeterminate .ivu-checkbox-inner:after{width:12px;top:7px}.ivu-checkbox-small .ivu-checkbox-indeterminate .ivu-checkbox-inner:after{width:8px;top:5px}.ivu-checkbox-wrapper{cursor:pointer;font-size:14px;display:inline-block;margin-right:8px}.ivu-checkbox-wrapper-disabled{cursor:not-allowed}.ivu-checkbox-wrapper.ivu-checkbox-large{font-size:16px}.ivu-checkbox+span,.ivu-checkbox-wrapper+span{margin-right:4px}.ivu-checkbox-group{font-size:14px}.ivu-checkbox-group-item{display:inline-block}.ivu-checkbox-label-text{padding-left:4px}.ivu-switch{display:inline-block;width:44px;height:22px;line-height:20px;border-radius:22px;vertical-align:middle;border:1px solid #ccc;background-color:#ccc;position:relative;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.ivu-switch-loading{opacity:.4}.ivu-switch-inner{color:#fff;font-size:12px;position:absolute;left:23px}.ivu-switch-inner i{width:12px;height:12px;text-align:center;position:relative;top:-1px}.ivu-switch:after{content:'';width:18px;height:18px;border-radius:18px;background-color:#fff;position:absolute;left:1px;top:1px;cursor:pointer;-webkit-transition:left .2s ease-in-out,width .2s ease-in-out;transition:left .2s ease-in-out,width .2s ease-in-out}.ivu-switch:active:after{width:26px}.ivu-switch:before{content:'';display:none;width:14px;height:14px;border-radius:50%;background-color:transparent;position:absolute;left:3px;top:3px;z-index:1;border:1px solid #2d8cf0;border-color:transparent transparent transparent #2d8cf0;-webkit-animation:switch-loading 1s linear;animation:switch-loading 1s linear;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.ivu-switch-loading:before{display:block}.ivu-switch:not(.ivu-switch-disabled):focus{-webkit-box-shadow:0 0 0 2px rgba(45,140,240,.2);box-shadow:0 0 0 2px rgba(45,140,240,.2);outline:0}.ivu-switch-small{width:28px;height:16px;line-height:14px}.ivu-switch-small:after{width:12px;height:12px}.ivu-switch-small:active:after{width:14px}.ivu-switch-small:before{width:10px;height:10px;left:2px;top:2px}.ivu-switch-small.ivu-switch-checked:after{left:13px}.ivu-switch-small.ivu-switch-checked:before{left:14px}.ivu-switch-small:active.ivu-switch-checked:after{left:11px}.ivu-switch-large{width:56px}.ivu-switch-large:active:after{width:26px}.ivu-switch-large:active:after{width:30px}.ivu-switch-large.ivu-switch-checked:after{left:35px}.ivu-switch-large.ivu-switch-checked:before{left:37px}.ivu-switch-large:active.ivu-switch-checked:after{left:23px}.ivu-switch-checked{border-color:#2d8cf0;background-color:#2d8cf0}.ivu-switch-checked .ivu-switch-inner{left:7px}.ivu-switch-checked:after{left:23px}.ivu-switch-checked:before{left:25px}.ivu-switch-checked:active:after{left:15px}.ivu-switch-disabled{cursor:not-allowed;opacity:.4}.ivu-switch-disabled:after{background:#fff;cursor:not-allowed}.ivu-switch-disabled .ivu-switch-inner{color:#fff}.ivu-switch-disabled.ivu-switch-checked{border-color:#2d8cf0;background-color:#2d8cf0;opacity:.4}.ivu-switch-disabled.ivu-switch-checked:after{background:#fff}.ivu-switch-disabled.ivu-switch-checked .ivu-switch-inner{color:#fff}@-webkit-keyframes switch-loading{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes switch-loading{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.ivu-input-number{display:inline-block;width:100%;line-height:1.5;padding:4px 7px;font-size:14px;color:#515a6e;background-color:#fff;background-image:none;position:relative;cursor:text;-webkit-transition:border .2s ease-in-out,background .2s ease-in-out,-webkit-box-shadow .2s ease-in-out;transition:border .2s ease-in-out,background .2s ease-in-out,-webkit-box-shadow .2s ease-in-out;transition:border .2s ease-in-out,background .2s ease-in-out,box-shadow .2s ease-in-out;transition:border .2s ease-in-out,background .2s ease-in-out,box-shadow .2s ease-in-out,-webkit-box-shadow .2s ease-in-out;margin:0;padding:0;width:80px;height:32px;line-height:32px;vertical-align:middle;border:1px solid #dcdee2;border-radius:4px;overflow:hidden;cursor:default}.ivu-input-number::-moz-placeholder{color:#c5c8ce;opacity:1}.ivu-input-number:-ms-input-placeholder{color:#c5c8ce}.ivu-input-number::-webkit-input-placeholder{color:#c5c8ce}.ivu-input-number:hover{border-color:#57a3f3}.ivu-input-number:focus{border-color:#57a3f3;outline:0;-webkit-box-shadow:0 0 0 2px rgba(45,140,240,.2);box-shadow:0 0 0 2px rgba(45,140,240,.2)}.ivu-input-number[disabled],fieldset[disabled] .ivu-input-number{background-color:#f3f3f3;opacity:1;cursor:not-allowed;color:#ccc}.ivu-input-number[disabled]:hover,fieldset[disabled] .ivu-input-number:hover{border-color:#e3e5e8}textarea.ivu-input-number{max-width:100%;height:auto;min-height:32px;vertical-align:bottom;font-size:14px}.ivu-input-number-large{font-size:16px;padding:6px 7px;height:40px}.ivu-input-number-small{padding:1px 7px;height:24px;border-radius:3px}.ivu-input-number-no-border{border-radius:0;border-color:transparent}.ivu-input-number-no-border:hover{border-color:transparent}.ivu-input-number-no-border:focus{border-color:transparent;-webkit-box-shadow:none;box-shadow:none}.ivu-input-number-no-border[disabled]{background-color:transparent}.ivu-input-number-no-border[disabled]:hover{border-color:transparent}.ivu-input-number-handler-wrap{width:22px;height:100%;border-left:1px solid #dcdee2;border-radius:0 4px 4px 0;background:#fff;position:absolute;top:0;right:0;opacity:0;-webkit-transition:opacity .2s ease-in-out;transition:opacity .2s ease-in-out}.ivu-input-number:hover .ivu-input-number-handler-wrap{opacity:1}.ivu-input-number-handler-up{cursor:pointer}.ivu-input-number-handler-up-inner{top:1px}.ivu-input-number-handler-down{border-top:1px solid #dcdee2;top:-1px;cursor:pointer}.ivu-input-number-handler{display:block;width:100%;height:16px;line-height:0;text-align:center;overflow:hidden;color:#999;position:relative}.ivu-input-number-handler:hover .ivu-input-number-handler-down-inner,.ivu-input-number-handler:hover .ivu-input-number-handler-up-inner{color:#57a3f3}.ivu-input-number-handler-down-inner,.ivu-input-number-handler-up-inner{width:12px;height:12px;line-height:12px;font-size:14px;color:#999;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;position:absolute;right:5px;-webkit-transition:all .2s linear;transition:all .2s linear}.ivu-input-number:hover{border-color:#57a3f3}.ivu-input-number-focused{border-color:#57a3f3;outline:0;-webkit-box-shadow:0 0 0 2px rgba(45,140,240,.2);box-shadow:0 0 0 2px rgba(45,140,240,.2)}.ivu-input-number-disabled{background-color:#f3f3f3;opacity:1;cursor:not-allowed;color:#ccc}.ivu-input-number-disabled:hover{border-color:#e3e5e8}.ivu-input-number-input-wrap{overflow:hidden;height:32px}.ivu-input-number-input{width:100%;height:32px;line-height:32px;padding:0 7px;text-align:left;outline:0;-moz-appearance:textfield;color:#666;border:0;border-radius:4px;-webkit-transition:all .2s linear;transition:all .2s linear}.ivu-input-number-input[disabled]{background-color:#f3f3f3;opacity:1;cursor:not-allowed;color:#ccc}.ivu-input-number-input[disabled]:hover{border-color:#e3e5e8}.ivu-input-number-input::-webkit-input-placeholder{color:#c5c8ce}.ivu-input-number-input::-moz-placeholder{color:#c5c8ce}.ivu-input-number-input:-ms-input-placeholder{color:#c5c8ce}.ivu-input-number-input::-ms-input-placeholder{color:#c5c8ce}.ivu-input-number-input::placeholder{color:#c5c8ce}.ivu-input-number-large{padding:0}.ivu-input-number-large .ivu-input-number-input-wrap{height:40px}.ivu-input-number-large .ivu-input-number-handler{height:20px}.ivu-input-number-large input{height:40px;line-height:40px}.ivu-input-number-large .ivu-input-number-handler-up-inner{top:2px}.ivu-input-number-large .ivu-input-number-handler-down-inner{bottom:2px}.ivu-input-number-small{padding:0}.ivu-input-number-small .ivu-input-number-input-wrap{height:24px}.ivu-input-number-small .ivu-input-number-handler{height:12px}.ivu-input-number-small input{height:24px;line-height:24px;margin-top:-1px;vertical-align:top}.ivu-input-number-small .ivu-input-number-handler-up-inner{top:-1px}.ivu-input-number-small .ivu-input-number-handler-down-inner{bottom:-1px}.ivu-input-number-disabled .ivu-input-number-handler-down-inner,.ivu-input-number-disabled .ivu-input-number-handler-up-inner,.ivu-input-number-handler-down-disabled .ivu-input-number-handler-down-inner,.ivu-input-number-handler-down-disabled .ivu-input-number-handler-up-inner,.ivu-input-number-handler-up-disabled .ivu-input-number-handler-down-inner,.ivu-input-number-handler-up-disabled .ivu-input-number-handler-up-inner{opacity:.72;color:#ccc!important;cursor:not-allowed}.ivu-input-number-disabled .ivu-input-number-input{opacity:.72;cursor:not-allowed;background-color:#f3f3f3}.ivu-input-number-disabled .ivu-input-number-handler-wrap{display:none}.ivu-input-number-disabled .ivu-input-number-handler{opacity:.72;color:#ccc!important;cursor:not-allowed}.ivu-input-number-controls-outside{width:144px;padding:0 32px}.ivu-input-number-controls-outside .ivu-input-number-input{border-radius:0}.ivu-input-number-controls-outside-btn{display:inline-block;width:32px;height:32px;line-height:30px;position:absolute;top:0;text-align:center;background-color:#f8f8f9;color:#515a6e;cursor:pointer}.ivu-input-number-controls-outside-btn i{font-size:16px}.ivu-input-number-controls-outside-btn:hover i{color:#2d8cf0}.ivu-input-number-controls-outside-btn-disabled,.ivu-input-number-controls-outside-btn-disabled:hover{cursor:not-allowed}.ivu-input-number-controls-outside-btn-disabled i,.ivu-input-number-controls-outside-btn-disabled:hover i{color:#ccc}.ivu-input-number-controls-outside-up{right:0;border-left:1px solid #dcdee2}.ivu-input-number-controls-outside-down{left:0;border-right:1px solid #dcdee2}.ivu-input-number-disabled.ivu-input-number-controls-outside .ivu-input-number-controls-outside-btn{cursor:not-allowed}.ivu-input-number-disabled.ivu-input-number-controls-outside .ivu-input-number-controls-outside-btn i{color:#ccc}.ivu-input-number-large.ivu-input-number-controls-outside{width:160px;padding:0 40px}.ivu-input-number-large.ivu-input-number-controls-outside .ivu-input-number-controls-outside-btn{width:40px;height:40px;line-height:38px}.ivu-input-number-large.ivu-input-number-controls-outside .ivu-input-number-controls-outside-btn i{font-size:20px}.ivu-input-number-small.ivu-input-number-controls-outside{width:128px;padding:0 24px}.ivu-input-number-small.ivu-input-number-controls-outside .ivu-input-number-controls-outside-btn{width:24px;height:24px;line-height:22px}.ivu-input-number-small.ivu-input-number-controls-outside .ivu-input-number-controls-outside-btn i{font-size:14px}.ivu-form-item-error .ivu-input-number{border:1px solid #ed4014}.ivu-form-item-error .ivu-input-number:hover{border-color:#ed4014}.ivu-form-item-error .ivu-input-number:focus{border-color:#ed4014;outline:0;-webkit-box-shadow:0 0 0 2px rgba(237,64,20,.2);box-shadow:0 0 0 2px rgba(237,64,20,.2)}.ivu-form-item-error .ivu-input-number-focused{border-color:#ed4014;outline:0;-webkit-box-shadow:0 0 0 2px rgba(237,64,20,.2);box-shadow:0 0 0 2px rgba(237,64,20,.2)}.ivu-scroll-wrapper{width:auto;margin:0 auto;position:relative;outline:0}.ivu-scroll-container{overflow-y:scroll}@-webkit-keyframes ani-stop-slide{from{overflow-y:hidden;-webkit-transform:translateZ(0);transform:translateZ(0)}to{overflow-y:scroll;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes ani-stop-slide{from{overflow-y:hidden;-webkit-transform:translateZ(0);transform:translateZ(0)}to{overflow-y:scroll;-webkit-transform:translateZ(0);transform:translateZ(0)}}.ivu-scroll-container-loading{-webkit-animation:ani-stop-slide 1.5s;animation:ani-stop-slide 1.5s}.ivu-scroll-content{opacity:1;-webkit-transition:opacity .5s;transition:opacity .5s}.ivu-scroll-content-loading{opacity:.5}.ivu-scroll-loader{text-align:center;padding:0;-webkit-transition:padding .5s;transition:padding .5s}.ivu-scroll-loader-wrapper{padding:5px 0;height:0;background-color:inherit;-webkit-transform:scale(0);-ms-transform:scale(0);transform:scale(0);-webkit-transition:opacity .3s,height .5s,-webkit-transform .5s;transition:opacity .3s,height .5s,-webkit-transform .5s;transition:opacity .3s,transform .5s,height .5s;transition:opacity .3s,transform .5s,height .5s,-webkit-transform .5s}.ivu-scroll-loader-wrapper-active{height:40px;-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}@-webkit-keyframes ani-demo-spin{from{-webkit-transform:rotate(0);transform:rotate(0)}50%{-webkit-transform:rotate(180deg);transform:rotate(180deg)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes ani-demo-spin{from{-webkit-transform:rotate(0);transform:rotate(0)}50%{-webkit-transform:rotate(180deg);transform:rotate(180deg)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.ivu-scroll-loader-wrapper .ivu-scroll-spinner{position:relative}.ivu-scroll-loader-wrapper .ivu-scroll-spinner-icon{-webkit-animation:ani-demo-spin 1s linear infinite;animation:ani-demo-spin 1s linear infinite}.ivu-tag{display:inline-block;height:22px;line-height:22px;margin:2px 4px 2px 0;padding:0 8px;border:1px solid #e8eaec;border-radius:3px;background:#f7f7f7;font-size:12px;vertical-align:middle;opacity:1;overflow:hidden}.ivu-tag-size-large{height:32px;line-height:32px;padding:0 12px}.ivu-tag-size-medium{height:28px;line-height:28px;padding:0 10px}.ivu-tag:not(.ivu-tag-border):not(.ivu-tag-dot):not(.ivu-tag-checked){background:0 0;border-color:transparent;color:#515a6e}.ivu-tag:not(.ivu-tag-border):not(.ivu-tag-dot):not(.ivu-tag-checked) .ivu-icon-ios-close{color:#515a6e!important}.ivu-tag-checkable{cursor:pointer}.ivu-tag-color-error{color:#ed4014!important;border-color:#ed4014}.ivu-tag-color-success{color:#19be6b!important;border-color:#19be6b}.ivu-tag-color-primary{color:#2d8cf0!important;border-color:#2d8cf0}.ivu-tag-color-warning{color:#f90!important;border-color:#f90}.ivu-tag-color-white{color:#fff!important}.ivu-tag-dot{height:32px;line-height:32px;border:1px solid #e8eaec!important;color:#515a6e!important;background:#fff!important;padding:0 12px}.ivu-tag-dot-inner{display:inline-block;width:12px;height:12px;margin-right:8px;border-radius:50%;background:#e8eaec;position:relative;top:1px}.ivu-tag-dot .ivu-icon-ios-close{color:#666!important;margin-left:12px!important}.ivu-tag-border{height:24px;line-height:24px;border:1px solid #e8eaec;color:#e8eaec;background:#fff!important;position:relative}.ivu-tag-border .ivu-icon-ios-close{color:#666;margin-left:12px!important}.ivu-tag-border:after{content:"";display:none;width:1px;background:currentColor;position:absolute;top:0;bottom:0;right:22px}.ivu-tag-border.ivu-tag-closable:after{display:block}.ivu-tag-border.ivu-tag-closable .ivu-icon-ios-close{margin-left:18px!important;left:4px;top:-1px}.ivu-tag-border.ivu-tag-primary{color:#2d8cf0!important;border:1px solid #2d8cf0!important}.ivu-tag-border.ivu-tag-primary:after{background:#2d8cf0}.ivu-tag-border.ivu-tag-primary .ivu-icon-ios-close{color:#2d8cf0!important}.ivu-tag-border.ivu-tag-success{color:#19be6b!important;border:1px solid #19be6b!important}.ivu-tag-border.ivu-tag-success:after{background:#19be6b}.ivu-tag-border.ivu-tag-success .ivu-icon-ios-close{color:#19be6b!important}.ivu-tag-border.ivu-tag-warning{color:#f90!important;border:1px solid #f90!important}.ivu-tag-border.ivu-tag-warning:after{background:#f90}.ivu-tag-border.ivu-tag-warning .ivu-icon-ios-close{color:#f90!important}.ivu-tag-border.ivu-tag-error{color:#ed4014!important;border:1px solid #ed4014!important}.ivu-tag-border.ivu-tag-error:after{background:#ed4014}.ivu-tag-border.ivu-tag-error .ivu-icon-ios-close{color:#ed4014!important}.ivu-tag-text{color:#515a6e}.ivu-tag-text a:first-child:last-child{display:inline-block;margin:0 -8px;padding:0 8px}.ivu-tag .ivu-icon-ios-close{display:inline-block;font-size:14px;-webkit-transform:scale(1.42857143) rotate(0);-ms-transform:scale(1.42857143) rotate(0);transform:scale(1.42857143) rotate(0);cursor:pointer;margin-left:2px;color:#666;opacity:.66;position:relative;top:-1px}:root .ivu-tag .ivu-icon-ios-close{font-size:14px}.ivu-tag .ivu-icon-ios-close:hover{opacity:1}.ivu-tag-error,.ivu-tag-primary,.ivu-tag-success,.ivu-tag-warning{border:0}.ivu-tag-error,.ivu-tag-error .ivu-icon-ios-close,.ivu-tag-error .ivu-icon-ios-close:hover,.ivu-tag-error a,.ivu-tag-error a:hover,.ivu-tag-primary,.ivu-tag-primary .ivu-icon-ios-close,.ivu-tag-primary .ivu-icon-ios-close:hover,.ivu-tag-primary a,.ivu-tag-primary a:hover,.ivu-tag-success,.ivu-tag-success .ivu-icon-ios-close,.ivu-tag-success .ivu-icon-ios-close:hover,.ivu-tag-success a,.ivu-tag-success a:hover,.ivu-tag-warning,.ivu-tag-warning .ivu-icon-ios-close,.ivu-tag-warning .ivu-icon-ios-close:hover,.ivu-tag-warning a,.ivu-tag-warning a:hover{color:#fff}.ivu-tag-primary,.ivu-tag-primary.ivu-tag-dot .ivu-tag-dot-inner{background:#2d8cf0}.ivu-tag-success,.ivu-tag-success.ivu-tag-dot .ivu-tag-dot-inner{background:#19be6b}.ivu-tag-warning,.ivu-tag-warning.ivu-tag-dot .ivu-tag-dot-inner{background:#f90}.ivu-tag-error,.ivu-tag-error.ivu-tag-dot .ivu-tag-dot-inner{background:#ed4014}.ivu-tag-pink{line-height:20px;background:#fff0f6;border-color:#ffadd2}.ivu-tag-pink .ivu-tag-text{color:#eb2f96!important}.ivu-tag-pink.ivu-tag-dot{line-height:32px}.ivu-tag-size-large.ivu-tag-pink{line-height:30px}.ivu-tag-size-medium.ivu-tag-pink{line-height:26px}.ivu-tag-magenta{line-height:20px;background:#fff0f6;border-color:#ffadd2}.ivu-tag-magenta .ivu-tag-text{color:#eb2f96!important}.ivu-tag-magenta.ivu-tag-dot{line-height:32px}.ivu-tag-size-large.ivu-tag-magenta{line-height:30px}.ivu-tag-size-medium.ivu-tag-magenta{line-height:26px}.ivu-tag-red{line-height:20px;background:#fff1f0;border-color:#ffa39e}.ivu-tag-red .ivu-tag-text{color:#f5222d!important}.ivu-tag-red.ivu-tag-dot{line-height:32px}.ivu-tag-size-large.ivu-tag-red{line-height:30px}.ivu-tag-size-medium.ivu-tag-red{line-height:26px}.ivu-tag-volcano{line-height:20px;background:#fff2e8;border-color:#ffbb96}.ivu-tag-volcano .ivu-tag-text{color:#fa541c!important}.ivu-tag-volcano.ivu-tag-dot{line-height:32px}.ivu-tag-size-large.ivu-tag-volcano{line-height:30px}.ivu-tag-size-medium.ivu-tag-volcano{line-height:26px}.ivu-tag-orange{line-height:20px;background:#fff7e6;border-color:#ffd591}.ivu-tag-orange .ivu-tag-text{color:#fa8c16!important}.ivu-tag-orange.ivu-tag-dot{line-height:32px}.ivu-tag-size-large.ivu-tag-orange{line-height:30px}.ivu-tag-size-medium.ivu-tag-orange{line-height:26px}.ivu-tag-yellow{line-height:20px;background:#feffe6;border-color:#fffb8f}.ivu-tag-yellow .ivu-tag-text{color:#fadb14!important}.ivu-tag-yellow.ivu-tag-dot{line-height:32px}.ivu-tag-size-large.ivu-tag-yellow{line-height:30px}.ivu-tag-size-medium.ivu-tag-yellow{line-height:26px}.ivu-tag-gold{line-height:20px;background:#fffbe6;border-color:#ffe58f}.ivu-tag-gold .ivu-tag-text{color:#faad14!important}.ivu-tag-gold.ivu-tag-dot{line-height:32px}.ivu-tag-size-large.ivu-tag-gold{line-height:30px}.ivu-tag-size-medium.ivu-tag-gold{line-height:26px}.ivu-tag-cyan{line-height:20px;background:#e6fffb;border-color:#87e8de}.ivu-tag-cyan .ivu-tag-text{color:#13c2c2!important}.ivu-tag-cyan.ivu-tag-dot{line-height:32px}.ivu-tag-size-large.ivu-tag-cyan{line-height:30px}.ivu-tag-size-medium.ivu-tag-cyan{line-height:26px}.ivu-tag-lime{line-height:20px;background:#fcffe6;border-color:#eaff8f}.ivu-tag-lime .ivu-tag-text{color:#a0d911!important}.ivu-tag-lime.ivu-tag-dot{line-height:32px}.ivu-tag-size-large.ivu-tag-lime{line-height:30px}.ivu-tag-size-medium.ivu-tag-lime{line-height:26px}.ivu-tag-green{line-height:20px;background:#f6ffed;border-color:#b7eb8f}.ivu-tag-green .ivu-tag-text{color:#52c41a!important}.ivu-tag-green.ivu-tag-dot{line-height:32px}.ivu-tag-size-large.ivu-tag-green{line-height:30px}.ivu-tag-size-medium.ivu-tag-green{line-height:26px}.ivu-tag-blue{line-height:20px;background:#e6f7ff;border-color:#91d5ff}.ivu-tag-blue .ivu-tag-text{color:#1890ff!important}.ivu-tag-blue.ivu-tag-dot{line-height:32px}.ivu-tag-size-large.ivu-tag-blue{line-height:30px}.ivu-tag-size-medium.ivu-tag-blue{line-height:26px}.ivu-tag-geekblue{line-height:20px;background:#f0f5ff;border-color:#adc6ff}.ivu-tag-geekblue .ivu-tag-text{color:#2f54eb!important}.ivu-tag-geekblue.ivu-tag-dot{line-height:32px}.ivu-tag-size-large.ivu-tag-geekblue{line-height:30px}.ivu-tag-size-medium.ivu-tag-geekblue{line-height:26px}.ivu-tag-purple{line-height:20px;background:#f9f0ff;border-color:#d3adf7}.ivu-tag-purple .ivu-tag-text{color:#722ed1!important}.ivu-tag-purple.ivu-tag-dot{line-height:32px}.ivu-tag-size-large.ivu-tag-purple{line-height:30px}.ivu-tag-size-medium.ivu-tag-purple{line-height:26px}.ivu-layout{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-flex:1;-ms-flex:auto;flex:auto;background:#f5f7f9}.ivu-layout.ivu-layout-has-sider{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.ivu-layout.ivu-layout-has-sider>.ivu-layout,.ivu-layout.ivu-layout-has-sider>.ivu-layout-content{width:0}.ivu-layout-footer,.ivu-layout-header{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto}.ivu-layout-header{background:#515a6e;padding:0 50px;height:64px;line-height:64px}.ivu-layout-sider{-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;position:relative;background:#515a6e;min-width:0}.ivu-layout-sider-children{height:100%;padding-top:.1px;margin-top:-.1px}.ivu-layout-sider-has-trigger{padding-bottom:48px}.ivu-layout-sider-trigger{position:fixed;bottom:0;text-align:center;cursor:pointer;height:48px;line-height:48px;color:#fff;background:#515a6e;z-index:1000;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.ivu-layout-sider-trigger .ivu-icon{font-size:16px}.ivu-layout-sider-trigger>*{-webkit-transition:all .2s;transition:all .2s}.ivu-layout-sider-trigger-collapsed .ivu-layout-sider-trigger-icon{-webkit-transform:rotateZ(180deg);-ms-transform:rotate(180deg);transform:rotateZ(180deg)}.ivu-layout-sider-zero-width>*{overflow:hidden}.ivu-layout-sider-zero-width-trigger{position:absolute;top:64px;right:-36px;text-align:center;width:36px;height:42px;line-height:42px;background:#515a6e;color:#fff;font-size:18px;border-radius:0 6px 6px 0;cursor:pointer;-webkit-transition:background .3s ease;transition:background .3s ease}.ivu-layout-sider-zero-width-trigger:hover{background:#626b7d}.ivu-layout-sider-zero-width-trigger.ivu-layout-sider-zero-width-trigger-left{right:0;left:-36px;border-radius:6px 0 0 6px}.ivu-layout-footer{background:#f5f7f9;padding:24px 50px;color:#515a6e;font-size:14px}.ivu-layout-content{-webkit-box-flex:1;-ms-flex:auto;flex:auto}.ivu-loading-bar{width:100%;position:fixed;top:0;left:0;right:0;z-index:2000}.ivu-loading-bar-inner{-webkit-transition:width .2s linear;transition:width .2s linear}.ivu-loading-bar-inner-color-primary{background-color:#2d8cf0}.ivu-loading-bar-inner-failed-color-error{background-color:#ed4014}.ivu-progress{display:inline-block;width:100%;font-size:12px;position:relative}.ivu-progress-vertical{height:100%;width:auto}.ivu-progress-outer{display:inline-block;width:100%;margin-right:0;padding-right:0}.ivu-progress-show-info .ivu-progress-outer{padding-right:55px;margin-right:-55px}.ivu-progress-vertical .ivu-progress-outer{height:100%;width:auto}.ivu-progress-inner{display:inline-block;width:100%;background-color:#f3f3f3;border-radius:100px;vertical-align:middle;position:relative}.ivu-progress-inner-text{display:inline-block;vertical-align:middle;color:#fff;font-size:12px;margin:0 6px}.ivu-progress-vertical .ivu-progress-inner{height:100%;width:auto}.ivu-progress-vertical .ivu-progress-inner:after,.ivu-progress-vertical .ivu-progress-inner>*{display:inline-block;vertical-align:bottom}.ivu-progress-vertical .ivu-progress-inner:after{content:'';height:100%}.ivu-progress-bg{text-align:right;border-radius:100px;background-color:#2d8cf0;-webkit-transition:all .2s linear;transition:all .2s linear;position:relative}.ivu-progress-bg:after{content:'';display:inline-block;height:100%;vertical-align:middle}.ivu-progress-success-bg{border-radius:100px;background-color:#19be6b;-webkit-transition:all .2s linear;transition:all .2s linear;position:absolute;top:0;left:0}.ivu-progress-text{display:inline-block;margin-left:5px;text-align:left;font-size:1em;vertical-align:middle;color:#808695}.ivu-progress-active .ivu-progress-bg:before{content:'';opacity:0;position:absolute;top:0;left:0;right:0;bottom:0;background:#fff;border-radius:10px;-webkit-animation:ivu-progress-active 2s ease-in-out infinite;animation:ivu-progress-active 2s ease-in-out infinite}.ivu-progress-vertical.ivu-progress-active .ivu-progress-bg:before{top:auto;-webkit-animation:ivu-progress-active-vertical 2s ease-in-out infinite;animation:ivu-progress-active-vertical 2s ease-in-out infinite}.ivu-progress-wrong .ivu-progress-bg{background-color:#ed4014}.ivu-progress-wrong .ivu-progress-text{color:#ed4014}.ivu-progress-success .ivu-progress-bg{background-color:#19be6b}.ivu-progress-success .ivu-progress-text{color:#19be6b}@-webkit-keyframes ivu-progress-active{0%{opacity:.3;width:0}100%{opacity:0;width:100%}}@keyframes ivu-progress-active{0%{opacity:.3;width:0}100%{opacity:0;width:100%}}@-webkit-keyframes ivu-progress-active-vertical{0%{opacity:.3;height:0}100%{opacity:0;height:100%}}@keyframes ivu-progress-active-vertical{0%{opacity:.3;height:0}100%{opacity:0;height:100%}}.ivu-timeline{list-style:none;margin:0;padding:0}.ivu-timeline-item{margin:0!important;padding:0 0 12px 0;list-style:none;position:relative}.ivu-timeline-item-tail{height:100%;border-left:1px solid #e8eaec;position:absolute;left:6px;top:0}.ivu-timeline-item-pending .ivu-timeline-item-tail{display:none}.ivu-timeline-item-head{width:13px;height:13px;background-color:#fff;border-radius:50%;border:1px solid transparent;position:absolute}.ivu-timeline-item-head-blue{border-color:#2d8cf0;color:#2d8cf0}.ivu-timeline-item-head-red{border-color:#ed4014;color:#ed4014}.ivu-timeline-item-head-green{border-color:#19be6b;color:#19be6b}.ivu-timeline-item-head-custom{width:40px;height:auto;margin-top:6px;padding:3px 0;text-align:center;line-height:1;border:0;border-radius:0;font-size:14px;position:absolute;left:-13px;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%)}.ivu-timeline-item-content{padding:1px 1px 10px 24px;font-size:14px;position:relative;top:-3px}.ivu-timeline-item:last-child .ivu-timeline-item-tail{display:none}.ivu-timeline.ivu-timeline-pending .ivu-timeline-item:nth-last-of-type(2) .ivu-timeline-item-tail{border-left:1px dotted #e8eaec}.ivu-timeline.ivu-timeline-pending .ivu-timeline-item:nth-last-of-type(2) .ivu-timeline-item-content{min-height:48px}.ivu-page:after{content:'';display:block;height:0;clear:both;overflow:hidden;visibility:hidden}.ivu-page-item{display:inline-block;vertical-align:middle;min-width:32px;height:32px;line-height:30px;margin-right:4px;text-align:center;list-style:none;background-color:#fff;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;font-family:Arial;font-weight:500;border:1px solid #dcdee2;border-radius:4px;-webkit-transition:border .2s ease-in-out,color .2s ease-in-out;transition:border .2s ease-in-out,color .2s ease-in-out}.ivu-page-item a{margin:0 6px;text-decoration:none;color:#515a6e}.ivu-page-item:hover{border-color:#2d8cf0}.ivu-page-item:hover a{color:#2d8cf0}.ivu-page-item-active{border-color:#2d8cf0}.ivu-page-item-active a,.ivu-page-item-active:hover a{color:#2d8cf0}.ivu-page-with-disabled .ivu-page-disabled,.ivu-page-with-disabled .ivu-page-item{cursor:not-allowed;background-color:#f3f3f3}.ivu-page-with-disabled .ivu-page-disabled a,.ivu-page-with-disabled .ivu-page-item a{color:#ccc}.ivu-page-with-disabled .ivu-page-disabled:hover,.ivu-page-with-disabled .ivu-page-item:hover{border-color:#dcdee2}.ivu-page-with-disabled .ivu-page-disabled:hover a,.ivu-page-with-disabled .ivu-page-item:hover a{color:#ccc;cursor:not-allowed}.ivu-page-with-disabled .ivu-page-disabled-active,.ivu-page-with-disabled .ivu-page-item-active{background-color:#dcdee2;border-color:#dcdee2}.ivu-page-with-disabled .ivu-page-disabled-active a,.ivu-page-with-disabled .ivu-page-disabled-active:hover a,.ivu-page-with-disabled .ivu-page-item-active a,.ivu-page-with-disabled .ivu-page-item-active:hover a{color:#fff}.ivu-page-item-jump-next i,.ivu-page-item-jump-prev i{color:#ccc}.ivu-page-item-jump-next i:first-child,.ivu-page-item-jump-prev i:first-child{display:none}.ivu-page-item-jump-next:hover i:first-child,.ivu-page-item-jump-prev:hover i:first-child{display:inline;color:#2d8cf0}.ivu-page-item-jump-next:hover i:last-child,.ivu-page-item-jump-prev:hover i:last-child{display:none}.ivu-page-with-disabled .ivu-page-item-jump-next,.ivu-page-with-disabled .ivu-page-item-jump-prev{cursor:not-allowed}.ivu-page-with-disabled .ivu-page-item-jump-next i,.ivu-page-with-disabled .ivu-page-item-jump-prev i{color:#ccc}.ivu-page-with-disabled .ivu-page-item-jump-next:hover i:first-child,.ivu-page-with-disabled .ivu-page-item-jump-prev:hover i:first-child{display:none}.ivu-page-with-disabled .ivu-page-item-jump-next:hover i:last-child,.ivu-page-with-disabled .ivu-page-item-jump-prev:hover i:last-child{display:inline}.ivu-page-item-jump-prev:hover i:first-child:after{content:"\F115";margin-left:-8px}.ivu-page-item-jump-next:hover i:first-child:after{content:"\F11F";margin-left:-8px}.ivu-page-prev{margin-right:4px}.ivu-page-item-jump-next,.ivu-page-item-jump-prev{margin-right:4px}.ivu-page-item-jump-next,.ivu-page-item-jump-prev,.ivu-page-next,.ivu-page-prev{display:inline-block;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;min-width:32px;height:32px;line-height:30px;list-style:none;text-align:center;cursor:pointer;color:#666;font-family:Arial;border:1px solid #dcdee2;border-radius:4px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.ivu-page-item-jump-next,.ivu-page-item-jump-prev{border-color:transparent}.ivu-page-next,.ivu-page-prev{background-color:#fff}.ivu-page-next a,.ivu-page-prev a{color:#666;font-size:14px}.ivu-page-next:hover,.ivu-page-prev:hover{border-color:#2d8cf0}.ivu-page-next:hover a,.ivu-page-prev:hover a{color:#2d8cf0}.ivu-page-disabled{cursor:not-allowed}.ivu-page-disabled a{color:#ccc}.ivu-page-disabled:hover{border-color:#dcdee2}.ivu-page-disabled:hover a{color:#ccc;cursor:not-allowed}.ivu-page-options{display:inline-block;vertical-align:middle;margin-left:15px}.ivu-page-options-sizer{display:inline-block;margin-right:10px}.ivu-page-options-elevator{display:inline-block;vertical-align:middle;height:32px;line-height:32px}.ivu-page-options-elevator input{display:inline-block;width:100%;height:32px;line-height:1.5;padding:4px 7px;font-size:14px;border:1px solid #dcdee2;color:#515a6e;background-color:#fff;background-image:none;position:relative;cursor:text;-webkit-transition:border .2s ease-in-out,background .2s ease-in-out,-webkit-box-shadow .2s ease-in-out;transition:border .2s ease-in-out,background .2s ease-in-out,-webkit-box-shadow .2s ease-in-out;transition:border .2s ease-in-out,background .2s ease-in-out,box-shadow .2s ease-in-out;transition:border .2s ease-in-out,background .2s ease-in-out,box-shadow .2s ease-in-out,-webkit-box-shadow .2s ease-in-out;border-radius:4px;margin:0 8px;width:50px}.ivu-page-options-elevator input::-moz-placeholder{color:#c5c8ce;opacity:1}.ivu-page-options-elevator input:-ms-input-placeholder{color:#c5c8ce}.ivu-page-options-elevator input::-webkit-input-placeholder{color:#c5c8ce}.ivu-page-options-elevator input:hover{border-color:#57a3f3}.ivu-page-options-elevator input:focus{border-color:#57a3f3;outline:0;-webkit-box-shadow:0 0 0 2px rgba(45,140,240,.2);box-shadow:0 0 0 2px rgba(45,140,240,.2)}.ivu-page-options-elevator input[disabled],fieldset[disabled] .ivu-page-options-elevator input{background-color:#f3f3f3;opacity:1;cursor:not-allowed;color:#ccc}.ivu-page-options-elevator input[disabled]:hover,fieldset[disabled] .ivu-page-options-elevator input:hover{border-color:#e3e5e8}textarea.ivu-page-options-elevator input{max-width:100%;height:auto;min-height:32px;vertical-align:bottom;font-size:14px}.ivu-page-options-elevator input-large{font-size:16px;padding:6px 7px;height:40px}.ivu-page-options-elevator input-small{padding:1px 7px;height:24px;border-radius:3px}.ivu-page-options-elevator input-no-border{border-radius:0;border-color:transparent}.ivu-page-options-elevator input-no-border:hover{border-color:transparent}.ivu-page-options-elevator input-no-border:focus{border-color:transparent;-webkit-box-shadow:none;box-shadow:none}.ivu-page-options-elevator input-no-border[disabled]{background-color:transparent}.ivu-page-options-elevator input-no-border[disabled]:hover{border-color:transparent}.ivu-page-total{display:inline-block;height:32px;line-height:32px;margin-right:10px}.ivu-page-simple .ivu-page-next,.ivu-page-simple .ivu-page-prev{margin:0;border:0;height:24px;line-height:normal;font-size:18px}.ivu-page-simple .ivu-page-simple-pager{display:inline-block;margin-right:8px;vertical-align:middle}.ivu-page-simple .ivu-page-simple-pager input{display:inline-block;width:100%;height:32px;line-height:1.5;padding:4px 7px;font-size:14px;color:#515a6e;background-image:none;position:relative;cursor:text;-webkit-transition:border .2s ease-in-out,background .2s ease-in-out,-webkit-box-shadow .2s ease-in-out;transition:border .2s ease-in-out,background .2s ease-in-out,-webkit-box-shadow .2s ease-in-out;transition:border .2s ease-in-out,background .2s ease-in-out,box-shadow .2s ease-in-out;transition:border .2s ease-in-out,background .2s ease-in-out,box-shadow .2s ease-in-out,-webkit-box-shadow .2s ease-in-out;width:30px;height:24px;margin:0 8px;padding:5px 8px;text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box;background-color:#fff;outline:0;border:1px solid #dcdee2;border-radius:4px;-webkit-transition:border-color .2s ease-in-out;transition:border-color .2s ease-in-out}.ivu-page-simple .ivu-page-simple-pager input::-moz-placeholder{color:#c5c8ce;opacity:1}.ivu-page-simple .ivu-page-simple-pager input:-ms-input-placeholder{color:#c5c8ce}.ivu-page-simple .ivu-page-simple-pager input::-webkit-input-placeholder{color:#c5c8ce}.ivu-page-simple .ivu-page-simple-pager input:hover{border-color:#57a3f3}.ivu-page-simple .ivu-page-simple-pager input:focus{border-color:#57a3f3;outline:0;-webkit-box-shadow:0 0 0 2px rgba(45,140,240,.2);box-shadow:0 0 0 2px rgba(45,140,240,.2)}.ivu-page-simple .ivu-page-simple-pager input[disabled],fieldset[disabled] .ivu-page-simple .ivu-page-simple-pager input{background-color:#f3f3f3;opacity:1;cursor:not-allowed;color:#ccc}.ivu-page-simple .ivu-page-simple-pager input[disabled]:hover,fieldset[disabled] .ivu-page-simple .ivu-page-simple-pager input:hover{border-color:#e3e5e8}textarea.ivu-page-simple .ivu-page-simple-pager input{max-width:100%;height:auto;min-height:32px;vertical-align:bottom;font-size:14px}.ivu-page-simple .ivu-page-simple-pager input-large{font-size:16px;padding:6px 7px;height:40px}.ivu-page-simple .ivu-page-simple-pager input-small{padding:1px 7px;height:24px;border-radius:3px}.ivu-page-simple .ivu-page-simple-pager input-no-border{border-radius:0;border-color:transparent}.ivu-page-simple .ivu-page-simple-pager input-no-border:hover{border-color:transparent}.ivu-page-simple .ivu-page-simple-pager input-no-border:focus{border-color:transparent;-webkit-box-shadow:none;box-shadow:none}.ivu-page-simple .ivu-page-simple-pager input-no-border[disabled]{background-color:transparent}.ivu-page-simple .ivu-page-simple-pager input-no-border[disabled]:hover{border-color:transparent}.ivu-page-simple .ivu-page-simple-pager input:hover{border-color:#2d8cf0}.ivu-page-simple .ivu-page-simple-pager span{padding:0 8px 0 2px}.ivu-page-custom-text,.ivu-page-custom-text:hover{border-color:transparent}.ivu-page.mini .ivu-page-total{height:24px;line-height:24px}.ivu-page.mini .ivu-page-item{border:0;margin:0;min-width:24px;height:24px;line-height:24px;border-radius:3px}.ivu-page.mini .ivu-page-next,.ivu-page.mini .ivu-page-prev{margin:0;min-width:24px;height:24px;line-height:22px;border:0}.ivu-page.mini .ivu-page-next a i:after,.ivu-page.mini .ivu-page-prev a i:after{height:24px;line-height:24px}.ivu-page.mini .ivu-page-item-jump-next,.ivu-page.mini .ivu-page-item-jump-prev{height:24px;line-height:24px;border:none;margin-right:0}.ivu-page.mini .ivu-page-options{margin-left:8px}.ivu-page.mini .ivu-page-options-elevator{height:24px;line-height:24px}.ivu-page.mini .ivu-page-options-elevator input{padding:1px 7px;height:24px;border-radius:3px;width:44px}.ivu-steps{display:-webkit-box;display:-ms-flexbox;display:flex;width:100%;font-size:0;line-height:1.5}.ivu-steps-item{display:inline-block;position:relative;vertical-align:top;-webkit-box-flex:1;-ms-flex:1;flex:1;overflow:hidden}.ivu-steps-item:last-child{-webkit-box-flex:0;-ms-flex:0;flex:none}.ivu-steps-item.ivu-steps-status-wait .ivu-steps-head-inner{background-color:#fff}.ivu-steps-item.ivu-steps-status-wait .ivu-steps-head-inner span,.ivu-steps-item.ivu-steps-status-wait .ivu-steps-head-inner>.ivu-steps-icon{color:#ccc}.ivu-steps-item.ivu-steps-status-wait .ivu-steps-title{color:#999}.ivu-steps-item.ivu-steps-status-wait .ivu-steps-content{color:#999}.ivu-steps-item.ivu-steps-status-wait .ivu-steps-tail>i{background-color:#e8eaec}.ivu-steps-item.ivu-steps-status-process .ivu-steps-head-inner{border-color:#2d8cf0;background-color:#2d8cf0}.ivu-steps-item.ivu-steps-status-process .ivu-steps-head-inner span,.ivu-steps-item.ivu-steps-status-process .ivu-steps-head-inner>.ivu-steps-icon{color:#fff}.ivu-steps-item.ivu-steps-status-process .ivu-steps-title{color:#666}.ivu-steps-item.ivu-steps-status-process .ivu-steps-content{color:#666}.ivu-steps-item.ivu-steps-status-process .ivu-steps-tail>i{background-color:#e8eaec}.ivu-steps-item.ivu-steps-status-finish .ivu-steps-head-inner{background-color:#fff;border-color:#2d8cf0}.ivu-steps-item.ivu-steps-status-finish .ivu-steps-head-inner span,.ivu-steps-item.ivu-steps-status-finish .ivu-steps-head-inner>.ivu-steps-icon{color:#2d8cf0}.ivu-steps-item.ivu-steps-status-finish .ivu-steps-tail>i:after{width:100%;background:#2d8cf0;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;opacity:1}.ivu-steps-item.ivu-steps-status-finish .ivu-steps-title{color:#999}.ivu-steps-item.ivu-steps-status-finish .ivu-steps-content{color:#999}.ivu-steps-item.ivu-steps-status-error .ivu-steps-head-inner{background-color:#fff;border-color:#ed4014}.ivu-steps-item.ivu-steps-status-error .ivu-steps-head-inner>.ivu-steps-icon{color:#ed4014}.ivu-steps-item.ivu-steps-status-error .ivu-steps-title{color:#ed4014}.ivu-steps-item.ivu-steps-status-error .ivu-steps-content{color:#ed4014}.ivu-steps-item.ivu-steps-status-error .ivu-steps-tail>i{background-color:#e8eaec}.ivu-steps-item.ivu-steps-next-error .ivu-steps-tail>i,.ivu-steps-item.ivu-steps-next-error .ivu-steps-tail>i:after{background-color:#ed4014}.ivu-steps-item.ivu-steps-custom .ivu-steps-head-inner{background:0 0;border:0;width:auto;height:auto}.ivu-steps-item.ivu-steps-custom .ivu-steps-head-inner>.ivu-steps-icon{font-size:20px;top:2px;width:20px;height:20px}.ivu-steps-item.ivu-steps-custom.ivu-steps-status-process .ivu-steps-head-inner>.ivu-steps-icon{color:#2d8cf0}.ivu-steps-item:last-child .ivu-steps-tail{display:none}.ivu-steps .ivu-steps-head,.ivu-steps .ivu-steps-main{position:relative;display:inline-block;vertical-align:top}.ivu-steps .ivu-steps-head{background:#fff}.ivu-steps .ivu-steps-head-inner{display:block;width:26px;height:26px;line-height:24px;margin-right:8px;text-align:center;border:1px solid #ccc;border-radius:50%;font-size:14px;-webkit-transition:background-color .2s ease-in-out;transition:background-color .2s ease-in-out}.ivu-steps .ivu-steps-head-inner>.ivu-steps-icon{line-height:1;position:relative}.ivu-steps .ivu-steps-head-inner>.ivu-steps-icon.ivu-icon{font-size:24px}.ivu-steps .ivu-steps-head-inner>.ivu-steps-icon.ivu-icon-ios-checkmark-empty,.ivu-steps .ivu-steps-head-inner>.ivu-steps-icon.ivu-icon-ios-close-empty{font-weight:700}.ivu-steps .ivu-steps-main{margin-top:2.5px;display:inline}.ivu-steps .ivu-steps-custom .ivu-steps-title{margin-top:2.5px}.ivu-steps .ivu-steps-title{display:inline-block;margin-bottom:4px;padding-right:10px;font-size:14px;font-weight:700;color:#666;background:#fff}.ivu-steps .ivu-steps-title>a:first-child:last-child{color:#666}.ivu-steps .ivu-steps-item-last .ivu-steps-title{padding-right:0;width:100%}.ivu-steps .ivu-steps-content{font-size:12px;color:#999}.ivu-steps .ivu-steps-tail{width:100%;padding:0 10px;position:absolute;left:0;top:13px}.ivu-steps .ivu-steps-tail>i{display:inline-block;width:100%;height:1px;vertical-align:top;background:#e8eaec;border-radius:1px;position:relative}.ivu-steps .ivu-steps-tail>i:after{content:'';width:0;height:100%;background:#e8eaec;opacity:0;position:absolute;top:0}.ivu-steps.ivu-steps-small .ivu-steps-head-inner{width:18px;height:18px;line-height:16px;margin-right:10px;text-align:center;border-radius:50%;font-size:12px}.ivu-steps.ivu-steps-small .ivu-steps-head-inner>.ivu-steps-icon.ivu-icon{font-size:16px;top:0}.ivu-steps.ivu-steps-small .ivu-steps-main{margin-top:0}.ivu-steps.ivu-steps-small .ivu-steps-title{margin-bottom:4px;margin-top:0;color:#666;font-size:12px;font-weight:700}.ivu-steps.ivu-steps-small .ivu-steps-content{font-size:12px;color:#999;padding-left:30px}.ivu-steps.ivu-steps-small .ivu-steps-tail{top:8px;padding:0 8px}.ivu-steps.ivu-steps-small .ivu-steps-tail>i{height:1px;width:100%;border-radius:1px}.ivu-steps .ivu-steps-item.ivu-steps-custom .ivu-steps-head-inner,.ivu-steps.ivu-steps-small .ivu-steps-item.ivu-steps-custom .ivu-steps-head-inner{width:inherit;height:inherit;line-height:inherit;border-radius:0;border:0;background:0 0}.ivu-steps-vertical{display:block}.ivu-steps-vertical .ivu-steps-item{display:block;overflow:visible}.ivu-steps-vertical .ivu-steps-tail{position:absolute;left:13px;top:0;height:100%;width:1px;padding:30px 0 4px 0}.ivu-steps-vertical .ivu-steps-tail>i{height:100%;width:1px}.ivu-steps-vertical .ivu-steps-tail>i:after{height:0;width:100%}.ivu-steps-vertical .ivu-steps-status-finish .ivu-steps-tail>i:after{height:100%}.ivu-steps-vertical .ivu-steps-head{float:left}.ivu-steps-vertical .ivu-steps-head-inner{margin-right:16px}.ivu-steps-vertical .ivu-steps-main{min-height:47px;overflow:hidden;display:block}.ivu-steps-vertical .ivu-steps-main .ivu-steps-title{line-height:26px}.ivu-steps-vertical .ivu-steps-main .ivu-steps-content{padding-bottom:12px;padding-left:0}.ivu-steps-vertical .ivu-steps-custom .ivu-steps-icon{left:4px}.ivu-steps-vertical.ivu-steps-small .ivu-steps-custom .ivu-steps-icon{left:0}.ivu-steps-vertical.ivu-steps-small .ivu-steps-tail{position:absolute;left:9px;top:0;padding:22px 0 4px 0}.ivu-steps-vertical.ivu-steps-small .ivu-steps-tail>i{height:100%}.ivu-steps-vertical.ivu-steps-small .ivu-steps-title{line-height:18px}.ivu-steps-horizontal.ivu-steps-hidden{visibility:hidden}.ivu-steps-horizontal .ivu-steps-content{padding-left:35px}.ivu-steps-horizontal .ivu-steps-item:not(:first-child) .ivu-steps-head{padding-left:10px;margin-left:-10px}.ivu-modal{width:auto;margin:0 auto;position:relative;outline:0;top:100px}.ivu-modal-hidden{display:none!important}.ivu-modal-wrap{position:fixed;overflow:auto;top:0;right:0;bottom:0;left:0;z-index:1000;-webkit-overflow-scrolling:touch;outline:0}.ivu-modal-wrap *{-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-tap-highlight-color:transparent}.ivu-modal-mask{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(55,55,55,.6);height:100%;z-index:1000}.ivu-modal-mask-hidden{display:none}.ivu-modal-content{position:relative;background-color:#fff;border:0;border-radius:6px;background-clip:padding-box;-webkit-box-shadow:0 4px 12px rgba(0,0,0,.15);box-shadow:0 4px 12px rgba(0,0,0,.15)}.ivu-modal-content-no-mask{pointer-events:auto}.ivu-modal-content-drag{position:absolute}.ivu-modal-content-drag .ivu-modal-header{cursor:move}.ivu-modal-content-dragging{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ivu-modal-header{border-bottom:1px solid #e8eaec;padding:14px 16px;line-height:1}.ivu-modal-header p,.ivu-modal-header-inner{display:inline-block;width:100%;height:20px;line-height:20px;font-size:16px;color:#17233d;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ivu-modal-close{z-index:1;font-size:12px;position:absolute;right:8px;top:8px;overflow:hidden;cursor:pointer}.ivu-modal-close .ivu-icon-ios-close{font-size:31px;color:#999;-webkit-transition:color .2s ease;transition:color .2s ease;position:relative;top:1px}.ivu-modal-close .ivu-icon-ios-close:hover{color:#444}.ivu-modal-body{padding:16px;font-size:14px;line-height:1.5}.ivu-modal-footer{border-top:1px solid #e8eaec;padding:12px 18px 12px 18px;text-align:right}.ivu-modal-footer button+button{margin-left:8px;margin-bottom:0}.ivu-modal-fullscreen{width:100%!important;top:0;bottom:0;position:absolute}.ivu-modal-fullscreen .ivu-modal-content{width:100%;border-radius:0;position:absolute;top:0;bottom:0}.ivu-modal-fullscreen .ivu-modal-body{width:100%;overflow:auto;position:absolute;top:51px;bottom:61px}.ivu-modal-fullscreen-no-header .ivu-modal-body{top:0}.ivu-modal-fullscreen-no-footer .ivu-modal-body{bottom:0}.ivu-modal-fullscreen .ivu-modal-footer{position:absolute;width:100%;bottom:0}.ivu-modal-no-mask{pointer-events:none}@media (max-width:576px){.ivu-modal{width:auto!important;margin:10px}.ivu-modal-fullscreen{width:100%!important;margin:0}.vertical-center-modal .ivu-modal{-webkit-box-flex:1;-ms-flex:1;flex:1}}.ivu-modal-confirm{padding:6px 16px 8px}.ivu-modal-confirm-head{padding:0 12px 0 0}.ivu-modal-confirm-head-icon{display:inline-block;font-size:28px;vertical-align:middle;position:relative;top:-2px}.ivu-modal-confirm-head-icon-info{color:#2d8cf0}.ivu-modal-confirm-head-icon-success{color:#19be6b}.ivu-modal-confirm-head-icon-warning{color:#f90}.ivu-modal-confirm-head-icon-error{color:#ed4014}.ivu-modal-confirm-head-icon-confirm{color:#f90}.ivu-modal-confirm-head-title{display:inline-block;vertical-align:middle;margin-left:12px;font-size:16px;color:#17233d;font-weight:500}.ivu-modal-confirm-body{padding-left:40px;font-size:14px;color:#515a6e;position:relative}.ivu-modal-confirm-body-render{margin:0;padding:0}.ivu-modal-confirm-footer{margin-top:20px;text-align:right}.ivu-modal-confirm-footer button+button{margin-left:8px;margin-bottom:0}.ivu-select{display:inline-block;width:100%;-webkit-box-sizing:border-box;box-sizing:border-box;vertical-align:middle;color:#515a6e;font-size:14px;line-height:normal}.ivu-select-selection{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;outline:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;position:relative;background-color:#fff;border-radius:4px;border:1px solid #dcdee2;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.ivu-select-selection-focused,.ivu-select-selection:hover{border-color:#57a3f3}.ivu-select-selection-focused .ivu-select-arrow,.ivu-select-selection:hover .ivu-select-arrow{display:inline-block}.ivu-select-arrow{position:absolute;top:50%;right:8px;line-height:1;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);font-size:14px;color:#808695;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.ivu-select-visible .ivu-select-selection{border-color:#57a3f3;outline:0;-webkit-box-shadow:0 0 0 2px rgba(45,140,240,.2);box-shadow:0 0 0 2px rgba(45,140,240,.2)}.ivu-select-visible .ivu-select-arrow{-webkit-transform:translateY(-50%) rotate(180deg);-ms-transform:translateY(-50%) rotate(180deg);transform:translateY(-50%) rotate(180deg);display:inline-block}.ivu-select-disabled .ivu-select-selection{background-color:#f3f3f3;opacity:1;cursor:not-allowed;color:#ccc}.ivu-select-disabled .ivu-select-selection:hover{border-color:#e3e5e8}.ivu-select-disabled .ivu-select-selection .ivu-select-arrow{color:#ccc}.ivu-select-disabled .ivu-select-selection:hover{border-color:#dcdee2;-webkit-box-shadow:none;box-shadow:none}.ivu-select-disabled .ivu-select-selection:hover .ivu-select-arrow{display:inline-block}.ivu-select-single .ivu-select-selection{height:32px;position:relative}.ivu-select-single .ivu-select-selection .ivu-select-placeholder{color:#c5c8ce}.ivu-select-single .ivu-select-selection .ivu-select-placeholder,.ivu-select-single .ivu-select-selection .ivu-select-selected-value{display:block;height:30px;line-height:30px;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-left:8px;padding-right:24px}.ivu-select-multiple .ivu-select-selection{padding:0 24px 0 4px}.ivu-select-multiple .ivu-select-selection .ivu-select-placeholder{display:block;height:30px;line-height:30px;color:#c5c8ce;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-left:4px;padding-right:22px}.ivu-select-default.ivu-select-multiple .ivu-select-selection{min-height:32px}.ivu-select-large.ivu-select-single .ivu-select-selection{height:40px}.ivu-select-large.ivu-select-single .ivu-select-selection .ivu-select-placeholder,.ivu-select-large.ivu-select-single .ivu-select-selection .ivu-select-selected-value{height:38px;line-height:38px;font-size:16px}.ivu-select-large.ivu-select-multiple .ivu-select-selection{min-height:40px}.ivu-select-large.ivu-select-multiple .ivu-select-selection .ivu-select-placeholder,.ivu-select-large.ivu-select-multiple .ivu-select-selection .ivu-select-selected-value{min-height:38px;line-height:38px;font-size:16px}.ivu-select-small.ivu-select-single .ivu-select-selection{height:24px;border-radius:3px}.ivu-select-small.ivu-select-single .ivu-select-selection .ivu-select-placeholder,.ivu-select-small.ivu-select-single .ivu-select-selection .ivu-select-selected-value{height:22px;line-height:22px}.ivu-select-small.ivu-select-multiple .ivu-select-selection{min-height:24px;border-radius:3px}.ivu-select-small.ivu-select-multiple .ivu-select-selection .ivu-select-placeholder,.ivu-select-small.ivu-select-multiple .ivu-select-selection .ivu-select-selected-value{height:auto;min-height:22px;line-height:22px}.ivu-select-input{display:inline-block;height:32px;line-height:32px;padding:0 24px 0 8px;font-size:14px;outline:0;border:none;-webkit-box-sizing:border-box;box-sizing:border-box;color:#515a6e;background-color:transparent;position:relative;cursor:pointer}.ivu-select-input::-moz-placeholder{color:#c5c8ce;opacity:1}.ivu-select-input:-ms-input-placeholder{color:#c5c8ce}.ivu-select-input::-webkit-input-placeholder{color:#c5c8ce}.ivu-select-input[disabled]{cursor:not-allowed;color:#ccc;-webkit-text-fill-color:#ccc}.ivu-select-single .ivu-select-input{width:100%}.ivu-select-large .ivu-select-input,.ivu-select-large.ivu-select-multiple .ivu-select-input{font-size:16px;height:32px;line-height:32px;top:3px}.ivu-select-small .ivu-select-input,.ivu-select-small.ivu-select-multiple .ivu-select-input{height:18px;line-height:18px;top:2px}.ivu-select-multiple .ivu-select-input{height:26px;line-height:26px;padding:0 0 0 4px;top:2px}.ivu-select-not-found{text-align:center;color:#c5c8ce}.ivu-select-not-found li:not([class^=ivu-]){margin-bottom:0}.ivu-select-loading{text-align:center;color:#c5c8ce}.ivu-select-multiple .ivu-tag{height:24px;line-height:22px;margin:3px 4px 3px 0;max-width:99%;position:relative}.ivu-select-multiple .ivu-tag span:not(.ivu-select-max-tag){display:block;margin-right:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ivu-select-multiple .ivu-tag i{display:block;position:absolute;right:4px;top:4px}.ivu-select-multiple-tag-hidden{margin-right:0!important}.ivu-select-large.ivu-select-multiple .ivu-tag{height:32px;line-height:30px;font-size:16px}.ivu-select-large.ivu-select-multiple .ivu-tag i{top:9px}.ivu-select-small.ivu-select-multiple .ivu-tag{height:17px;line-height:15px;font-size:12px;padding:0 6px;margin:3px 4px 2px 0}.ivu-select-small.ivu-select-multiple .ivu-tag span{margin-right:14px}.ivu-select-small.ivu-select-multiple .ivu-tag i{top:1px;right:2px}.ivu-select-dropdown-list{min-width:100%;list-style:none}.ivu-select .ivu-select-dropdown{width:auto}.ivu-select-prefix{display:inline-block;vertical-align:middle}.ivu-select-prefix i{vertical-align:top}.ivu-select-head-with-prefix{display:inline-block!important;vertical-align:middle}.ivu-select-single .ivu-select-prefix{padding-left:4px}.ivu-select-multiple .ivu-select-head-with-prefix,.ivu-select-single .ivu-select-head-with-prefix{padding-left:0!important}.ivu-select-head-flex{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.ivu-select-multiple .ivu-select-head-flex .ivu-select-prefix{margin-right:4px}.ivu-select-item{margin:0;line-height:normal;padding:7px 16px;clear:both;color:#515a6e;font-size:14px!important;white-space:nowrap;list-style:none;cursor:pointer;-webkit-transition:background .2s ease-in-out;transition:background .2s ease-in-out}.ivu-select-item:hover{background:#f3f3f3}.ivu-select-item-focus{background:#f3f3f3}.ivu-select-item-disabled{color:#c5c8ce;cursor:not-allowed}.ivu-select-item-disabled:hover{color:#c5c8ce;background-color:#fff;cursor:not-allowed}.ivu-select-item-selected,.ivu-select-item-selected:hover{color:#2d8cf0}.ivu-select-item-divided{margin-top:5px;border-top:1px solid #e8eaec}.ivu-select-item-divided:before{content:'';height:5px;display:block;margin:0 -16px;background-color:#fff;position:relative;top:-7px}.ivu-select-item-enter{color:#2d8cf0;font-weight:700;float:right}.ivu-select-large .ivu-select-item{padding:7px 16px 8px;font-size:14px!important}@-moz-document url-prefix(){.ivu-select-item{white-space:normal}}.ivu-select-multiple .ivu-select-item{position:relative}.ivu-select-multiple .ivu-select-item-selected{color:rgba(45,140,240,.9);background:#fff}.ivu-select-multiple .ivu-select-item-focus,.ivu-select-multiple .ivu-select-item-selected:hover{background:#f3f3f3}.ivu-select-multiple .ivu-select-item-selected.ivu-select-multiple .ivu-select-item-focus{color:rgba(40,123,211,.91);background:#fff}.ivu-select-multiple .ivu-select-item-selected:after{display:inline-block;font-family:Ionicons;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;text-rendering:optimizeLegibility;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;vertical-align:-.125em;text-align:center;font-size:24px;content:'\F171';color:rgba(45,140,240,.9);position:absolute;top:2px;right:8px}.ivu-select-multiple .ivu-select-item-selected.ivu-select-item-disabled{color:#c5c8ce}.ivu-select-multiple .ivu-select-item-selected.ivu-select-item-disabled:after{color:#c5c8ce}.ivu-select-multiple .ivu-select-item-selected.ivu-select-item-disabled:hover{background-color:#fff}.ivu-select-group{list-style:none;margin:0;padding:0}.ivu-select-group-title{padding-left:8px;font-size:14px;color:#999;height:30px;line-height:30px}.ivu-form-item-error .ivu-select-selection{border:1px solid #ed4014}.ivu-form-item-error .ivu-select-arrow{color:#ed4014}.ivu-form-item-error .ivu-select-visible .ivu-select-selection{border-color:#ed4014;outline:0;-webkit-box-shadow:0 0 0 2px rgba(237,64,20,.2);box-shadow:0 0 0 2px rgba(237,64,20,.2)}.ivu-select-dropdown{width:inherit;max-height:200px;overflow:auto;margin:5px 0;padding:5px 0;background-color:#fff;-webkit-box-sizing:border-box;box-sizing:border-box;border-radius:4px;-webkit-box-shadow:0 1px 6px rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.2);position:absolute;z-index:900}.ivu-select-dropdown-transfer{z-index:1060;width:auto}.ivu-select-dropdown.ivu-transfer-no-max-height{max-height:none}.ivu-modal .ivu-select-dropdown{position:absolute!important}.ivu-split-wrapper{position:relative;width:100%;height:100%}.ivu-split-pane{position:absolute}.ivu-split-pane.left-pane,.ivu-split-pane.right-pane{top:0;bottom:0}.ivu-split-pane.left-pane{left:0}.ivu-split-pane.right-pane{right:0}.ivu-split-pane.bottom-pane,.ivu-split-pane.top-pane{left:0;right:0}.ivu-split-pane.top-pane{top:0}.ivu-split-pane.bottom-pane{bottom:0}.ivu-split-pane-moving{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ivu-split-trigger{border:1px solid #dcdee2}.ivu-split-trigger-con{position:absolute;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);z-index:10}.ivu-split-trigger-bar-con{position:absolute;overflow:hidden}.ivu-split-trigger-bar-con.vertical{left:1px;top:50%;height:32px;-webkit-transform:translate(0,-50%);-ms-transform:translate(0,-50%);transform:translate(0,-50%)}.ivu-split-trigger-bar-con.horizontal{left:50%;top:1px;width:32px;-webkit-transform:translate(-50%,0);-ms-transform:translate(-50%,0);transform:translate(-50%,0)}.ivu-split-trigger-vertical{width:6px;height:100%;background:#f8f8f9;border-top:none;border-bottom:none;cursor:col-resize}.ivu-split-trigger-vertical .ivu-split-trigger-bar{width:4px;height:1px;background:rgba(23,35,61,.25);float:left;margin-top:3px}.ivu-split-trigger-horizontal{height:6px;width:100%;background:#f8f8f9;border-left:none;border-right:none;cursor:row-resize}.ivu-split-trigger-horizontal .ivu-split-trigger-bar{height:4px;width:1px;background:rgba(23,35,61,.25);float:left;margin-right:3px}.ivu-split-horizontal>.ivu-split-trigger-con{top:50%;height:100%;width:0}.ivu-split-vertical>.ivu-split-trigger-con{left:50%;height:0;width:100%}.ivu-split .no-select{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ivu-tooltip{display:inline-block}.ivu-tooltip-rel{display:inline-block;position:relative;width:inherit}.ivu-tooltip-popper{display:block;visibility:visible;font-size:14px;line-height:1.5;position:absolute;z-index:1060}.ivu-tooltip-popper[x-placement^=top]{padding:5px 0 8px 0}.ivu-tooltip-popper[x-placement^=right]{padding:0 5px 0 8px}.ivu-tooltip-popper[x-placement^=bottom]{padding:8px 0 5px 0}.ivu-tooltip-popper[x-placement^=left]{padding:0 8px 0 5px}.ivu-tooltip-popper[x-placement^=top] .ivu-tooltip-arrow{bottom:3px;border-width:5px 5px 0;border-top-color:rgba(70,76,91,.9)}.ivu-tooltip-popper[x-placement=top] .ivu-tooltip-arrow{left:50%;margin-left:-5px}.ivu-tooltip-popper[x-placement=top-start] .ivu-tooltip-arrow{left:16px}.ivu-tooltip-popper[x-placement=top-end] .ivu-tooltip-arrow{right:16px}.ivu-tooltip-popper[x-placement^=right] .ivu-tooltip-arrow{left:3px;border-width:5px 5px 5px 0;border-right-color:rgba(70,76,91,.9)}.ivu-tooltip-popper[x-placement=right] .ivu-tooltip-arrow{top:50%;margin-top:-5px}.ivu-tooltip-popper[x-placement=right-start] .ivu-tooltip-arrow{top:8px}.ivu-tooltip-popper[x-placement=right-end] .ivu-tooltip-arrow{bottom:8px}.ivu-tooltip-popper[x-placement^=left] .ivu-tooltip-arrow{right:3px;border-width:5px 0 5px 5px;border-left-color:rgba(70,76,91,.9)}.ivu-tooltip-popper[x-placement=left] .ivu-tooltip-arrow{top:50%;margin-top:-5px}.ivu-tooltip-popper[x-placement=left-start] .ivu-tooltip-arrow{top:8px}.ivu-tooltip-popper[x-placement=left-end] .ivu-tooltip-arrow{bottom:8px}.ivu-tooltip-popper[x-placement^=bottom] .ivu-tooltip-arrow{top:3px;border-width:0 5px 5px;border-bottom-color:rgba(70,76,91,.9)}.ivu-tooltip-popper[x-placement=bottom] .ivu-tooltip-arrow{left:50%;margin-left:-5px}.ivu-tooltip-popper[x-placement=bottom-start] .ivu-tooltip-arrow{left:16px}.ivu-tooltip-popper[x-placement=bottom-end] .ivu-tooltip-arrow{right:16px}.ivu-tooltip-light.ivu-tooltip-popper{display:block;visibility:visible;font-size:14px;line-height:1.5;position:absolute;z-index:1060}.ivu-tooltip-light.ivu-tooltip-popper[x-placement^=top]{padding:7px 0 10px 0}.ivu-tooltip-light.ivu-tooltip-popper[x-placement^=right]{padding:0 7px 0 10px}.ivu-tooltip-light.ivu-tooltip-popper[x-placement^=bottom]{padding:10px 0 7px 0}.ivu-tooltip-light.ivu-tooltip-popper[x-placement^=left]{padding:0 10px 0 7px}.ivu-tooltip-light.ivu-tooltip-popper[x-placement^=top] .ivu-tooltip-arrow{bottom:3px;border-width:7px 7px 0;border-top-color:rgba(217,217,217,.5)}.ivu-tooltip-light.ivu-tooltip-popper[x-placement=top] .ivu-tooltip-arrow{left:50%;margin-left:-7px}.ivu-tooltip-light.ivu-tooltip-popper[x-placement=top-start] .ivu-tooltip-arrow{left:16px}.ivu-tooltip-light.ivu-tooltip-popper[x-placement=top-end] .ivu-tooltip-arrow{right:16px}.ivu-tooltip-light.ivu-tooltip-popper[x-placement^=right] .ivu-tooltip-arrow{left:3px;border-width:7px 7px 7px 0;border-right-color:rgba(217,217,217,.5)}.ivu-tooltip-light.ivu-tooltip-popper[x-placement=right] .ivu-tooltip-arrow{top:50%;margin-top:-7px}.ivu-tooltip-light.ivu-tooltip-popper[x-placement=right-start] .ivu-tooltip-arrow{top:8px}.ivu-tooltip-light.ivu-tooltip-popper[x-placement=right-end] .ivu-tooltip-arrow{bottom:8px}.ivu-tooltip-light.ivu-tooltip-popper[x-placement^=left] .ivu-tooltip-arrow{right:3px;border-width:7px 0 7px 7px;border-left-color:rgba(217,217,217,.5)}.ivu-tooltip-light.ivu-tooltip-popper[x-placement=left] .ivu-tooltip-arrow{top:50%;margin-top:-7px}.ivu-tooltip-light.ivu-tooltip-popper[x-placement=left-start] .ivu-tooltip-arrow{top:8px}.ivu-tooltip-light.ivu-tooltip-popper[x-placement=left-end] .ivu-tooltip-arrow{bottom:8px}.ivu-tooltip-light.ivu-tooltip-popper[x-placement^=bottom] .ivu-tooltip-arrow{top:3px;border-width:0 7px 7px;border-bottom-color:rgba(217,217,217,.5)}.ivu-tooltip-light.ivu-tooltip-popper[x-placement=bottom] .ivu-tooltip-arrow{left:50%;margin-left:-7px}.ivu-tooltip-light.ivu-tooltip-popper[x-placement=bottom-start] .ivu-tooltip-arrow{left:16px}.ivu-tooltip-light.ivu-tooltip-popper[x-placement=bottom-end] .ivu-tooltip-arrow{right:16px}.ivu-tooltip-light.ivu-tooltip-popper[x-placement^=top] .ivu-tooltip-arrow:after{content:" ";bottom:1px;margin-left:-7px;border-bottom-width:0;border-top-width:7px;border-top-color:#fff}.ivu-tooltip-light.ivu-tooltip-popper[x-placement^=right] .ivu-tooltip-arrow:after{content:" ";left:1px;bottom:-7px;border-left-width:0;border-right-width:7px;border-right-color:#fff}.ivu-tooltip-light.ivu-tooltip-popper[x-placement^=bottom] .ivu-tooltip-arrow:after{content:" ";top:1px;margin-left:-7px;border-top-width:0;border-bottom-width:7px;border-bottom-color:#fff}.ivu-tooltip-light.ivu-tooltip-popper[x-placement^=left] .ivu-tooltip-arrow:after{content:" ";right:1px;border-right-width:0;border-left-width:7px;border-left-color:#fff;bottom:-7px}.ivu-tooltip-inner{max-width:250px;min-height:34px;padding:8px 12px;color:#fff;text-align:left;text-decoration:none;background-color:rgba(70,76,91,.9);border-radius:4px;-webkit-box-shadow:0 1px 6px rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.2);white-space:nowrap}.ivu-tooltip-inner-with-width{white-space:pre-wrap;text-align:justify;word-wrap:break-word;word-break:break-all}.ivu-tooltip-light .ivu-tooltip-inner{background-color:#fff;color:#515a6e}.ivu-tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.ivu-tooltip-light .ivu-tooltip-arrow{border-width:8px}.ivu-tooltip-light .ivu-tooltip-arrow:after{display:block;width:0;height:0;position:absolute;border-color:transparent;border-style:solid;content:"";border-width:7px}.ivu-poptip{display:inline-block}.ivu-poptip-rel{display:inline-block;position:relative}.ivu-poptip-title{margin:0;padding:8px 16px;position:relative}.ivu-poptip-title:after{content:'';display:block;height:1px;position:absolute;left:8px;right:8px;bottom:0;background-color:#e8eaec}.ivu-poptip-title-inner{color:#17233d;font-size:14px;font-weight:500}.ivu-poptip-body{padding:8px 16px}.ivu-poptip-body-content{overflow:auto}.ivu-poptip-body-content-word-wrap{white-space:pre-wrap;text-align:justify}.ivu-poptip-body-content-inner{color:#515a6e}.ivu-poptip-inner{width:100%;background-color:#fff;background-clip:padding-box;border-radius:4px;-webkit-box-shadow:0 1px 6px rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.2);white-space:nowrap}.ivu-poptip-popper{min-width:150px;display:block;visibility:visible;font-size:14px;line-height:1.5;position:absolute;z-index:1060}.ivu-poptip-popper[x-placement^=top]{padding:7px 0 10px 0}.ivu-poptip-popper[x-placement^=right]{padding:0 7px 0 10px}.ivu-poptip-popper[x-placement^=bottom]{padding:10px 0 7px 0}.ivu-poptip-popper[x-placement^=left]{padding:0 10px 0 7px}.ivu-poptip-popper[x-placement^=top] .ivu-poptip-arrow{bottom:3px;border-width:7px 7px 0;border-top-color:rgba(217,217,217,.5)}.ivu-poptip-popper[x-placement=top] .ivu-poptip-arrow{left:50%;margin-left:-7px}.ivu-poptip-popper[x-placement=top-start] .ivu-poptip-arrow{left:16px}.ivu-poptip-popper[x-placement=top-end] .ivu-poptip-arrow{right:16px}.ivu-poptip-popper[x-placement^=right] .ivu-poptip-arrow{left:3px;border-width:7px 7px 7px 0;border-right-color:rgba(217,217,217,.5)}.ivu-poptip-popper[x-placement=right] .ivu-poptip-arrow{top:50%;margin-top:-7px}.ivu-poptip-popper[x-placement=right-start] .ivu-poptip-arrow{top:8px}.ivu-poptip-popper[x-placement=right-end] .ivu-poptip-arrow{bottom:8px}.ivu-poptip-popper[x-placement^=left] .ivu-poptip-arrow{right:3px;border-width:7px 0 7px 7px;border-left-color:rgba(217,217,217,.5)}.ivu-poptip-popper[x-placement=left] .ivu-poptip-arrow{top:50%;margin-top:-7px}.ivu-poptip-popper[x-placement=left-start] .ivu-poptip-arrow{top:8px}.ivu-poptip-popper[x-placement=left-end] .ivu-poptip-arrow{bottom:8px}.ivu-poptip-popper[x-placement^=bottom] .ivu-poptip-arrow{top:3px;border-width:0 7px 7px;border-bottom-color:rgba(217,217,217,.5)}.ivu-poptip-popper[x-placement=bottom] .ivu-poptip-arrow{left:50%;margin-left:-7px}.ivu-poptip-popper[x-placement=bottom-start] .ivu-poptip-arrow{left:16px}.ivu-poptip-popper[x-placement=bottom-end] .ivu-poptip-arrow{right:16px}.ivu-poptip-popper[x-placement^=top] .ivu-poptip-arrow:after{content:" ";bottom:1px;margin-left:-7px;border-bottom-width:0;border-top-width:7px;border-top-color:#fff}.ivu-poptip-popper[x-placement^=right] .ivu-poptip-arrow:after{content:" ";left:1px;bottom:-7px;border-left-width:0;border-right-width:7px;border-right-color:#fff}.ivu-poptip-popper[x-placement^=bottom] .ivu-poptip-arrow:after{content:" ";top:1px;margin-left:-7px;border-top-width:0;border-bottom-width:7px;border-bottom-color:#fff}.ivu-poptip-popper[x-placement^=left] .ivu-poptip-arrow:after{content:" ";right:1px;border-right-width:0;border-left-width:7px;border-left-color:#fff;bottom:-7px}.ivu-poptip-arrow,.ivu-poptip-arrow:after{display:block;width:0;height:0;position:absolute;border-color:transparent;border-style:solid}.ivu-poptip-arrow{border-width:8px}.ivu-poptip-arrow:after{content:"";border-width:7px}.ivu-poptip-confirm .ivu-poptip-popper{max-width:300px}.ivu-poptip-confirm .ivu-poptip-inner{white-space:normal}.ivu-poptip-confirm .ivu-poptip-body{padding:16px 16px 8px}.ivu-poptip-confirm .ivu-poptip-body .ivu-icon{font-size:16px;color:#f90;line-height:18px;position:absolute}.ivu-poptip-confirm .ivu-poptip-body-message{padding-left:20px}.ivu-poptip-confirm .ivu-poptip-footer{text-align:right;padding:8px 16px 16px}.ivu-poptip-confirm .ivu-poptip-footer button{margin-left:4px}.ivu-input{display:inline-block;width:100%;height:32px;line-height:1.5;padding:4px 7px;font-size:14px;border:1px solid #dcdee2;border-radius:4px;color:#515a6e;background-color:#fff;background-image:none;position:relative;cursor:text;-webkit-transition:border .2s ease-in-out,background .2s ease-in-out,-webkit-box-shadow .2s ease-in-out;transition:border .2s ease-in-out,background .2s ease-in-out,-webkit-box-shadow .2s ease-in-out;transition:border .2s ease-in-out,background .2s ease-in-out,box-shadow .2s ease-in-out;transition:border .2s ease-in-out,background .2s ease-in-out,box-shadow .2s ease-in-out,-webkit-box-shadow .2s ease-in-out}.ivu-input::-moz-placeholder{color:#c5c8ce;opacity:1}.ivu-input:-ms-input-placeholder{color:#c5c8ce}.ivu-input::-webkit-input-placeholder{color:#c5c8ce}.ivu-input:hover{border-color:#57a3f3}.ivu-input:focus{border-color:#57a3f3;outline:0;-webkit-box-shadow:0 0 0 2px rgba(45,140,240,.2);box-shadow:0 0 0 2px rgba(45,140,240,.2)}.ivu-input[disabled],fieldset[disabled] .ivu-input{background-color:#f3f3f3;opacity:1;cursor:not-allowed;color:#ccc}.ivu-input[disabled]:hover,fieldset[disabled] .ivu-input:hover{border-color:#e3e5e8}textarea.ivu-input{max-width:100%;height:auto;min-height:32px;vertical-align:bottom;font-size:14px}.ivu-input-large{font-size:16px;padding:6px 7px;height:40px}.ivu-input-small{padding:1px 7px;height:24px;border-radius:3px}.ivu-input-no-border{border-radius:0;border-color:transparent}.ivu-input-no-border:hover{border-color:transparent}.ivu-input-no-border:focus{border-color:transparent;-webkit-box-shadow:none;box-shadow:none}.ivu-input-no-border[disabled]{background-color:transparent}.ivu-input-no-border[disabled]:hover{border-color:transparent}.ivu-input-wrapper{display:inline-block;width:100%;position:relative;vertical-align:middle;line-height:normal}.ivu-input-icon{width:32px;height:32px;line-height:32px;font-size:16px;text-align:center;color:#808695;position:absolute;right:0;z-index:3}.ivu-input-hide-icon .ivu-input-icon{display:none}.ivu-input-icon-validate{display:none}.ivu-input-icon-clear{display:none}.ivu-input-wrapper:hover .ivu-input-icon-clear{display:inline-block}.ivu-input-icon-normal+.ivu-input{padding-right:32px}.ivu-input-hide-icon .ivu-input-icon-normal+.ivu-input{padding-right:7px}.ivu-input-wrapper-large .ivu-input-icon{font-size:18px;height:40px;line-height:40px}.ivu-input-wrapper-small .ivu-input-icon{width:24px;font-size:14px;height:24px;line-height:24px}.ivu-input-prefix,.ivu-input-suffix{width:32px;height:100%;text-align:center;position:absolute;left:0;top:0;z-index:1}.ivu-input-prefix i,.ivu-input-suffix i{font-size:16px;line-height:32px;color:#808695}.ivu-input-suffix{left:auto;right:0}.ivu-input-wrapper-small .ivu-input-prefix i,.ivu-input-wrapper-small .ivu-input-suffix i{font-size:14px;line-height:24px}.ivu-input-wrapper-large .ivu-input-prefix i,.ivu-input-wrapper-large .ivu-input-suffix i{font-size:18px;line-height:40px}.ivu-input-with-prefix{padding-left:32px}.ivu-input-with-suffix{padding-right:32px}.ivu-input-search{cursor:pointer;padding:0 16px!important;background:#2d8cf0!important;color:#fff!important;border-color:#2d8cf0!important;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;position:relative;z-index:2}.ivu-input-search i{font-size:16px}.ivu-input-search:hover{background:#57a3f3!important;border-color:#57a3f3!important}.ivu-input-search:active{background:#2b85e4!important;border-color:#2b85e4!important}.ivu-input-search-icon{cursor:pointer;-webkit-transition:color .2s ease-in-out;transition:color .2s ease-in-out}.ivu-input-search-icon:hover{color:inherit}.ivu-input-search:before{content:'';display:block;width:1px;position:absolute;top:-1px;bottom:-1px;left:-1px;background:inherit}.ivu-input-wrapper-small .ivu-input-search{padding:0 12px!important}.ivu-input-wrapper-small .ivu-input-search i{font-size:14px}.ivu-input-wrapper-large .ivu-input-search{padding:0 20px!important}.ivu-input-wrapper-large .ivu-input-search i{font-size:18px}.ivu-input-with-search:hover .ivu-input{border-color:#57a3f3}.ivu-input-word-count{text-align:center;position:absolute;right:7px;top:2px;bottom:2px;padding-left:7px;background:#fff;z-index:1;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;color:#808695;font-size:12px}.ivu-input-wrapper-disabled .ivu-input-word-count{background:#f3f3f3}.ivu-input-type-textarea .ivu-input-word-count{-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end;top:auto}.ivu-input-group{display:table;width:100%;border-collapse:separate;position:relative;font-size:14px}.ivu-form-inline .ivu-input-group{top:1px}.ivu-input-group-large{font-size:16px}.ivu-input-group[class*=col-]{float:none;padding-left:0;padding-right:0}.ivu-input-group>[class*=col-]{padding-right:8px}.ivu-input-group-append,.ivu-input-group-prepend,.ivu-input-group>.ivu-input{display:table-cell}.ivu-input-group-with-prepend .ivu-input,.ivu-input-group-with-prepend.ivu-input-group-small .ivu-input{border-top-left-radius:0;border-bottom-left-radius:0}.ivu-input-group-with-append .ivu-input,.ivu-input-group-with-append.ivu-input-group-small .ivu-input{border-top-right-radius:0;border-bottom-right-radius:0}.ivu-input-group-append .ivu-btn,.ivu-input-group-prepend .ivu-btn{border-color:transparent;background-color:transparent;color:inherit;margin:-6px -7px}.ivu-input-group-append,.ivu-input-group-prepend{width:1px;white-space:nowrap;vertical-align:middle}.ivu-input-group .ivu-input{width:100%;float:left;margin-bottom:0;position:relative;z-index:2}.ivu-input-group-append,.ivu-input-group-prepend{padding:4px 7px;font-size:inherit;font-weight:400;line-height:1;color:#515a6e;text-align:center;background-color:#f8f8f9;border:1px solid #dcdee2;border-radius:4px}.ivu-input-group-append .ivu-select,.ivu-input-group-prepend .ivu-select{margin:-5px -7px}.ivu-input-group-append .ivu-select-selection,.ivu-input-group-prepend .ivu-select-selection{background-color:inherit;margin:-1px;border:1px solid transparent}.ivu-input-group-append .ivu-select-visible .ivu-select-selection,.ivu-input-group-prepend .ivu-select-visible .ivu-select-selection{-webkit-box-shadow:none;box-shadow:none}.ivu-input-group-prepend,.ivu-input-group>.ivu-input:first-child,.ivu-input-group>span>.ivu-input:first-child{border-bottom-right-radius:0!important;border-top-right-radius:0!important}.ivu-input-group-prepend .ivu--select .ivu--select-selection,.ivu-input-group>.ivu-input:first-child .ivu--select .ivu--select-selection,.ivu-input-group>span>.ivu-input:first-child .ivu--select .ivu--select-selection{border-bottom-right-radius:0;border-top-right-radius:0}.ivu-input-group-prepend{border-right:0}.ivu-input-group-append{border-left:0}.ivu-input-group-append,.ivu-input-group>.ivu-input:last-child{border-bottom-left-radius:0!important;border-top-left-radius:0!important}.ivu-input-group-append .ivu--select .ivu--select-selection,.ivu-input-group>.ivu-input:last-child .ivu--select .ivu--select-selection{border-bottom-left-radius:0;border-top-left-radius:0}.ivu-input-group-large .ivu-input,.ivu-input-group-large>.ivu-input-group-append,.ivu-input-group-large>.ivu-input-group-prepend{font-size:16px;padding:6px 7px;height:40px}.ivu-input-group-small .ivu-input,.ivu-input-group-small>.ivu-input-group-append,.ivu-input-group-small>.ivu-input-group-prepend{padding:1px 7px;height:24px;border-radius:3px}.ivu-form-item-error .ivu-input{border:1px solid #ed4014}.ivu-form-item-error .ivu-input:hover{border-color:#ed4014}.ivu-form-item-error .ivu-input:focus{border-color:#ed4014;outline:0;-webkit-box-shadow:0 0 0 2px rgba(237,64,20,.2);box-shadow:0 0 0 2px rgba(237,64,20,.2)}.ivu-form-item-error .ivu-input-icon{color:#ed4014}.ivu-form-item-error .ivu-input-group-append,.ivu-form-item-error .ivu-input-group-prepend{background-color:#fff;border:1px solid #ed4014}.ivu-form-item-error .ivu-input-group-append .ivu-select-selection,.ivu-form-item-error .ivu-input-group-prepend .ivu-select-selection{background-color:inherit;border:1px solid transparent}.ivu-form-item-error .ivu-input-group-prepend{border-right:0}.ivu-form-item-error .ivu-input-group-append{border-left:0}.ivu-form-item-error .ivu-transfer .ivu-input{display:inline-block;width:100%;height:32px;line-height:1.5;padding:4px 7px;font-size:14px;border:1px solid #dcdee2;border-radius:4px;color:#515a6e;background-color:#fff;background-image:none;position:relative;cursor:text;-webkit-transition:border .2s ease-in-out,background .2s ease-in-out,-webkit-box-shadow .2s ease-in-out;transition:border .2s ease-in-out,background .2s ease-in-out,-webkit-box-shadow .2s ease-in-out;transition:border .2s ease-in-out,background .2s ease-in-out,box-shadow .2s ease-in-out;transition:border .2s ease-in-out,background .2s ease-in-out,box-shadow .2s ease-in-out,-webkit-box-shadow .2s ease-in-out}.ivu-form-item-error .ivu-transfer .ivu-input::-moz-placeholder{color:#c5c8ce;opacity:1}.ivu-form-item-error .ivu-transfer .ivu-input:-ms-input-placeholder{color:#c5c8ce}.ivu-form-item-error .ivu-transfer .ivu-input::-webkit-input-placeholder{color:#c5c8ce}.ivu-form-item-error .ivu-transfer .ivu-input:hover{border-color:#57a3f3}.ivu-form-item-error .ivu-transfer .ivu-input:focus{border-color:#57a3f3;outline:0;-webkit-box-shadow:0 0 0 2px rgba(45,140,240,.2);box-shadow:0 0 0 2px rgba(45,140,240,.2)}.ivu-form-item-error .ivu-transfer .ivu-input[disabled],fieldset[disabled] .ivu-form-item-error .ivu-transfer .ivu-input{background-color:#f3f3f3;opacity:1;cursor:not-allowed;color:#ccc}.ivu-form-item-error .ivu-transfer .ivu-input[disabled]:hover,fieldset[disabled] .ivu-form-item-error .ivu-transfer .ivu-input:hover{border-color:#e3e5e8}textarea.ivu-form-item-error .ivu-transfer .ivu-input{max-width:100%;height:auto;min-height:32px;vertical-align:bottom;font-size:14px}.ivu-form-item-error .ivu-transfer .ivu-input-large{font-size:16px;padding:6px 7px;height:40px}.ivu-form-item-error .ivu-transfer .ivu-input-small{padding:1px 7px;height:24px;border-radius:3px}.ivu-form-item-error .ivu-transfer .ivu-input-no-border{border-radius:0;border-color:transparent}.ivu-form-item-error .ivu-transfer .ivu-input-no-border:hover{border-color:transparent}.ivu-form-item-error .ivu-transfer .ivu-input-no-border:focus{border-color:transparent;-webkit-box-shadow:none;box-shadow:none}.ivu-form-item-error .ivu-transfer .ivu-input-no-border[disabled]{background-color:transparent}.ivu-form-item-error .ivu-transfer .ivu-input-no-border[disabled]:hover{border-color:transparent}.ivu-form-item-error .ivu-transfer .ivu-input-icon{color:#808695}.ivu-form-item-validating .ivu-input-icon-validate{display:inline-block}.ivu-form-item-validating .ivu-input-icon+.ivu-input{padding-right:32px}.ivu-slider{line-height:normal}.ivu-slider-wrap{width:100%;height:4px;margin:16px 0;background-color:#e8eaec;border-radius:3px;vertical-align:middle;position:relative;cursor:pointer}.ivu-slider-button-wrap{width:18px;height:18px;text-align:center;background-color:transparent;position:absolute;top:-5px;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.ivu-slider-button-wrap .ivu-tooltip{display:block;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ivu-slider-button{width:12px;height:12px;border:2px solid #57a3f3;border-radius:50%;background-color:#fff;-webkit-transition:all .2s linear;transition:all .2s linear;outline:0}.ivu-slider-button-dragging,.ivu-slider-button:focus,.ivu-slider-button:hover{border-color:#2d8cf0;-webkit-transform:scale(1.5);-ms-transform:scale(1.5);transform:scale(1.5)}.ivu-slider-button:hover{cursor:-webkit-grab;cursor:grab}.ivu-slider-button-dragging,.ivu-slider-button-dragging:hover{cursor:-webkit-grabbing;cursor:grabbing}.ivu-slider-bar{height:4px;background:#57a3f3;border-radius:3px;position:absolute}.ivu-slider-stop{position:absolute;width:4px;height:4px;border-radius:50%;background-color:#fff;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.ivu-slider-marks{top:0;left:12px;width:18px;height:100%}.ivu-slider-marks-item{position:absolute;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%);font-size:14px;color:#808695;margin-top:15px}.ivu-slider-disabled{cursor:not-allowed}.ivu-slider-disabled .ivu-slider-wrap{background-color:#ccc;cursor:not-allowed}.ivu-slider-disabled .ivu-slider-bar{background-color:#ccc}.ivu-slider-disabled .ivu-slider-button{border-color:#ccc}.ivu-slider-disabled .ivu-slider-button-dragging,.ivu-slider-disabled .ivu-slider-button:hover{border-color:#ccc}.ivu-slider-disabled .ivu-slider-button:hover{cursor:not-allowed}.ivu-slider-disabled .ivu-slider-button-dragging,.ivu-slider-disabled .ivu-slider-button-dragging:hover{cursor:not-allowed}.ivu-slider-input .ivu-slider-wrap{width:auto;margin-right:100px}.ivu-slider-input .ivu-input-number{float:right;margin-top:-14px}.ivu-skeleton-item{background:rgba(190,190,190,.2);border-radius:4px}.ivu-skeleton-item-inline{display:inline-block}.ivu-skeleton-item-circle{border-radius:50%}.ivu-skeleton-item-circle-small,.ivu-skeleton-item-square-small{width:24px;height:24px}.ivu-skeleton-item-circle-large,.ivu-skeleton-item-square-large{width:40px;height:40px}.ivu-skeleton-item-circle-default,.ivu-skeleton-item-square-default{width:32px;height:32px}.ivu-skeleton-item-rect-small{width:120px;height:24px}.ivu-skeleton-item-rect-large{width:200px;height:40px}.ivu-skeleton-item-rect-default{width:160px;height:32px}.ivu-skeleton-item-image{position:relative}.ivu-skeleton-item-image-small{width:32px;height:32px}.ivu-skeleton-item-image-large{width:96px;height:96px}.ivu-skeleton-item-image-default{width:48px;height:48px}.ivu-skeleton-item-image-icon{position:absolute;z-index:1;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);color:#ccc}.ivu-skeleton-item-title{margin-bottom:28px}.ivu-skeleton-item-avatar{margin-right:16px}.ivu-skeleton-item-round{border-radius:40px}.ivu-skeleton-item-inner{height:16px}.ivu-skeleton-item-animated{position:relative;overflow:hidden}.ivu-skeleton-item-animated:before{content:'';position:absolute;top:0;left:0;width:100%;height:100%;background:-webkit-gradient(linear,left top,right top,color-stop(25%,rgba(190,190,190,.2)),color-stop(37%,rgba(129,129,129,.24)),color-stop(63%,rgba(190,190,190,.2)));background:linear-gradient(90deg,rgba(190,190,190,.2) 25%,rgba(129,129,129,.24) 37%,rgba(190,190,190,.2) 63%);background-size:400% 100%;-webkit-animation:ivuSkeletonMove 1.4s ease infinite;animation:ivuSkeletonMove 1.4s ease infinite}@-webkit-keyframes ivuSkeletonMove{0%{background-position:100% 50%}100%{background-position:0 50%}}@keyframes ivuSkeletonMove{0%{background-position:100% 50%}100%{background-position:0 50%}}.ivu-skeleton{background:#fff}.ivu-skeleton .ivu-skeleton-item{margin-top:16px}.ivu-skeleton .ivu-skeleton-item:first-child{margin-top:0}.selectDropDown{width:auto;padding:0;white-space:nowrap;overflow:visible}.ivu-cascader{line-height:normal}.ivu-cascader-rel{display:inline-block;width:100%;position:relative}.ivu-cascader .ivu-input{padding-right:24px;display:block;cursor:pointer}.ivu-cascader-disabled .ivu-input{cursor:not-allowed}.ivu-cascader-label{width:100%;height:100%;line-height:32px;padding:0 7px;-webkit-box-sizing:border-box;box-sizing:border-box;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;cursor:pointer;font-size:14px;position:absolute;left:0;top:0}.ivu-cascader-size-large .ivu-cascader-label{line-height:36px;font-size:14px}.ivu-cascader-size-small .ivu-cascader-label{line-height:26px}.ivu-cascader .ivu-cascader-arrow:nth-of-type(1){display:none;cursor:pointer}.ivu-cascader:hover .ivu-cascader-arrow:nth-of-type(1){display:inline-block}.ivu-cascader-show-clear:hover .ivu-cascader-arrow:nth-of-type(2){display:none}.ivu-cascader-arrow{position:absolute;top:50%;right:8px;line-height:1;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);font-size:14px;color:#808695;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.ivu-cascader-visible .ivu-cascader-arrow:nth-of-type(2){-webkit-transform:translateY(-50%) rotate(180deg);-ms-transform:translateY(-50%) rotate(180deg);transform:translateY(-50%) rotate(180deg)}.ivu-cascader .ivu-select-dropdown{width:auto;padding:0;white-space:nowrap;overflow:visible}.ivu-cascader .ivu-cascader-menu-item{margin:0;line-height:normal;padding:7px 16px;clear:both;color:#515a6e;font-size:14px!important;white-space:nowrap;list-style:none;cursor:pointer;-webkit-transition:background .2s ease-in-out;transition:background .2s ease-in-out}.ivu-cascader .ivu-cascader-menu-item:hover{background:#f3f3f3}.ivu-cascader .ivu-cascader-menu-item-focus{background:#f3f3f3}.ivu-cascader .ivu-cascader-menu-item-disabled{color:#c5c8ce;cursor:not-allowed}.ivu-cascader .ivu-cascader-menu-item-disabled:hover{color:#c5c8ce;background-color:#fff;cursor:not-allowed}.ivu-cascader .ivu-cascader-menu-item-selected,.ivu-cascader .ivu-cascader-menu-item-selected:hover{color:#2d8cf0}.ivu-cascader .ivu-cascader-menu-item-divided{margin-top:5px;border-top:1px solid #e8eaec}.ivu-cascader .ivu-cascader-menu-item-divided:before{content:'';height:5px;display:block;margin:0 -16px;background-color:#fff;position:relative;top:-7px}.ivu-cascader .ivu-cascader-menu-item-enter{color:#2d8cf0;font-weight:700;float:right}.ivu-cascader .ivu-cascader-large .ivu-cascader-menu-item{padding:7px 16px 8px;font-size:14px!important}@-moz-document url-prefix(){.ivu-cascader .ivu-cascader-menu-item{white-space:normal}}.ivu-cascader .ivu-select-item span{color:#ed4014}.ivu-cascader-dropdown{padding:5px 0}.ivu-cascader-dropdown .ivu-select-dropdown-list{max-height:190px;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:auto}.ivu-cascader-not-found-tip{padding:5px 0;text-align:center;color:#c5c8ce}.ivu-cascader-not-found-tip li:not([class^=ivu-]){list-style:none;margin-bottom:0}.ivu-cascader-not-found .ivu-select-dropdown{width:inherit}.ivu-cascader-menu{display:inline-block;min-width:100px;height:180px;margin:0;padding:5px 0!important;vertical-align:top;list-style:none;border-right:1px solid #e8eaec;overflow:auto}.ivu-cascader-menu:last-child{border-right-color:transparent;margin-right:-1px}.ivu-cascader-menu .ivu-cascader-menu-item{position:relative;padding-right:36px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.ivu-cascader-menu .ivu-cascader-menu-item i{font-size:12px;position:absolute;right:15px;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%)}.ivu-cascader-menu .ivu-cascader-menu-item-loading{margin-top:-6px}.ivu-cascader-menu .ivu-cascader-menu-item-active{background-color:#f3f3f3;color:#2d8cf0}.ivu-cascader-transfer{z-index:1060;width:auto;padding:0;white-space:nowrap;overflow:visible}.ivu-cascader-transfer .ivu-cascader-menu-item{margin:0;line-height:normal;padding:7px 16px;clear:both;color:#515a6e;font-size:14px!important;white-space:nowrap;list-style:none;cursor:pointer;-webkit-transition:background .2s ease-in-out;transition:background .2s ease-in-out}.ivu-cascader-transfer .ivu-cascader-menu-item:hover{background:#f3f3f3}.ivu-cascader-transfer .ivu-cascader-menu-item-focus{background:#f3f3f3}.ivu-cascader-transfer .ivu-cascader-menu-item-disabled{color:#c5c8ce;cursor:not-allowed}.ivu-cascader-transfer .ivu-cascader-menu-item-disabled:hover{color:#c5c8ce;background-color:#fff;cursor:not-allowed}.ivu-cascader-transfer .ivu-cascader-menu-item-selected,.ivu-cascader-transfer .ivu-cascader-menu-item-selected:hover{color:#2d8cf0}.ivu-cascader-transfer .ivu-cascader-menu-item-divided{margin-top:5px;border-top:1px solid #e8eaec}.ivu-cascader-transfer .ivu-cascader-menu-item-divided:before{content:'';height:5px;display:block;margin:0 -16px;background-color:#fff;position:relative;top:-7px}.ivu-cascader-transfer .ivu-cascader-menu-item-enter{color:#2d8cf0;font-weight:700;float:right}.ivu-cascader-transfer .ivu-cascader-large .ivu-cascader-menu-item{padding:7px 16px 8px;font-size:14px!important}@-moz-document url-prefix(){.ivu-cascader-transfer .ivu-cascader-menu-item{white-space:normal}}.ivu-cascader-transfer .ivu-select-item span{color:#ed4014}.ivu-cascader-transfer .ivu-cascader-menu-item{padding-right:24px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.ivu-cascader-transfer .ivu-cascader-menu-item-active{background-color:#f3f3f3;color:#2d8cf0}.ivu-form-item-error .ivu-cascader-arrow{color:#ed4014}.ivu-transfer{position:relative;line-height:1.5}.ivu-transfer-list{display:inline-block;width:180px;height:210px;font-size:14px;vertical-align:middle;position:relative;padding-top:35px}.ivu-transfer-list-with-footer{padding-bottom:35px}.ivu-transfer-list-header{padding:8px 16px;background:#f9fafc;color:#515a6e;border:1px solid #dcdee2;border-bottom:1px solid #e8eaec;border-radius:6px 6px 0 0;overflow:hidden;position:absolute;top:0;left:0;width:100%}.ivu-transfer-list-header-title{cursor:pointer}.ivu-transfer-list-header>span{padding-left:4px}.ivu-transfer-list-header-count{margin:0!important;float:right}.ivu-transfer-list-body{height:100%;border:1px solid #dcdee2;border-top:none;border-radius:0 0 6px 6px;position:relative;overflow:hidden}.ivu-transfer-list-body-with-search{padding-top:34px}.ivu-transfer-list-body-with-footer{border-radius:0}.ivu-transfer-list-content{height:100%;padding:4px 0;overflow:auto}.ivu-transfer-list-content-item{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.ivu-transfer-list-content-item>span{padding-left:4px}.ivu-transfer-list-content-not-found{display:none;text-align:center;color:#c5c8ce}li.ivu-transfer-list-content-not-found:only-child{display:block}.ivu-transfer-list-body-with-search .ivu-transfer-list-content{padding:6px 0 0}.ivu-transfer-list-body-search-wrapper{padding:8px 8px 0;position:absolute;top:0;left:0;right:0}.ivu-transfer-list-search{position:relative}.ivu-transfer-list-footer{border:1px solid #dcdee2;border-top:none;border-radius:0 0 6px 6px;position:absolute;bottom:0;left:0;right:0;zoom:1}.ivu-transfer-list-footer:after,.ivu-transfer-list-footer:before{content:"";display:table}.ivu-transfer-list-footer:after{clear:both;visibility:hidden;font-size:0;height:0}.ivu-transfer-operation{display:inline-block;margin:0 16px;vertical-align:middle}.ivu-transfer-operation .ivu-btn{display:block;min-width:24px}.ivu-transfer-operation .ivu-btn:first-child{margin-bottom:12px}.ivu-transfer-operation .ivu-btn i,.ivu-transfer-operation .ivu-btn span{margin-left:0}.ivu-transfer-operation .ivu-btn span i,.ivu-transfer-operation .ivu-btn span span{vertical-align:middle}.ivu-transfer-list-content-item{margin:0;line-height:normal;padding:7px 16px;clear:both;color:#515a6e;font-size:14px!important;white-space:nowrap;list-style:none;cursor:pointer;-webkit-transition:background .2s ease-in-out;transition:background .2s ease-in-out}.ivu-transfer-list-content-item:hover{background:#f3f3f3}.ivu-transfer-list-content-item-focus{background:#f3f3f3}.ivu-transfer-list-content-item-disabled{color:#c5c8ce;cursor:not-allowed}.ivu-transfer-list-content-item-disabled:hover{color:#c5c8ce;background-color:#fff;cursor:not-allowed}.ivu-transfer-list-content-item-selected,.ivu-transfer-list-content-item-selected:hover{color:#2d8cf0}.ivu-transfer-list-content-item-divided{margin-top:5px;border-top:1px solid #e8eaec}.ivu-transfer-list-content-item-divided:before{content:'';height:5px;display:block;margin:0 -16px;background-color:#fff;position:relative;top:-7px}.ivu-transfer-list-content-item-enter{color:#2d8cf0;font-weight:700;float:right}.ivu-transfer-large .ivu-transfer-list-content-item{padding:7px 16px 8px;font-size:14px!important}@-moz-document url-prefix(){.ivu-transfer-list-content-item{white-space:normal}}.ivu-table{width:inherit;height:100%;max-width:100%;overflow:hidden;color:#515a6e;font-size:14px;background-color:#fff;-webkit-box-sizing:border-box;box-sizing:border-box}.ivu-table-wrapper{position:relative;overflow:hidden}.ivu-table-wrapper-with-border{border:1px solid #dcdee2;border-bottom:0;border-right:0}.ivu-table-summary{border-top:1px solid #e8eaec}.ivu-table-summary tr td{background-color:#f8f8f9}.ivu-table-with-summary .ivu-table-tbody tr:last-child td{border-bottom:none}.ivu-table-resize-line{position:absolute;top:0;left:0;bottom:0;width:1px;border-right:1px dashed #e8eaec}.ivu-table-hide{opacity:0}.ivu-table:before{content:'';width:100%;height:1px;position:absolute;left:0;bottom:0;background-color:#dcdee2;z-index:4}.ivu-table-border:after{content:'';width:1px;height:100%;position:absolute;top:0;right:0;background-color:#dcdee2;z-index:3}.ivu-table-footer,.ivu-table-title{height:48px;line-height:48px;border-bottom:1px solid #e8eaec}.ivu-table-footer{border-bottom:none}.ivu-table-header{overflow:hidden}.ivu-table-header thead tr th{position:relative;height:100%;padding:8px 0}.ivu-table-header-resizable{position:absolute;width:10px;height:100%;bottom:0;right:-5px;cursor:col-resize;z-index:1}.ivu-table-overflowX{overflow-x:scroll}.ivu-table-overflowY{overflow-y:scroll}.ivu-table-tip{overflow-x:auto;overflow-y:hidden}.ivu-table-with-fixed-top.ivu-table-with-footer .ivu-table-footer{border-top:1px solid #dcdee2}.ivu-table-with-fixed-top.ivu-table-with-footer tbody tr:last-child td{border-bottom:none}.ivu-table td,.ivu-table th{min-width:0;height:48px;-webkit-box-sizing:border-box;box-sizing:border-box;text-align:left;text-overflow:ellipsis;vertical-align:middle;border-bottom:1px solid #e8eaec}.ivu-table th{height:40px;white-space:nowrap;overflow:hidden;background-color:#f8f8f9}.ivu-table td{background-color:#fff;-webkit-transition:background-color .2s ease-in-out;transition:background-color .2s ease-in-out}td.ivu-table-column-left,th.ivu-table-column-left{text-align:left}td.ivu-table-column-center,th.ivu-table-column-center{text-align:center}td.ivu-table-column-right,th.ivu-table-column-right{text-align:right}.ivu-table table{table-layout:fixed}.ivu-table-border td,.ivu-table-border th{border-right:1px solid #e8eaec}.ivu-table-cell{padding-left:18px;padding-right:18px;overflow:hidden;text-overflow:ellipsis;white-space:normal;word-break:break-all;-webkit-box-sizing:border-box;box-sizing:border-box}.ivu-table-cell-ellipsis{word-break:keep-all;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ivu-table-cell-tooltip{width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.ivu-table-cell-tooltip-content{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ivu-table-cell-with-expand{height:47px;line-height:47px;padding:0;text-align:center}.ivu-table-cell-expand{cursor:pointer;-webkit-transition:-webkit-transform .2s ease-in-out;transition:-webkit-transform .2s ease-in-out;transition:transform .2s ease-in-out;transition:transform .2s ease-in-out,-webkit-transform .2s ease-in-out}.ivu-table-cell-expand i{font-size:14px}.ivu-table-cell-expand-expanded{-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.ivu-table-cell-sort{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ivu-table-cell-with-selection .ivu-checkbox-wrapper{margin-right:0}.ivu-table-cell-tree{display:inline-block;width:16px;height:16px;border:1px solid #dcdee2;border-radius:2px;background-color:#fff;line-height:12px;cursor:pointer;vertical-align:middle;-webkit-transition:color .2s ease-in-out,border-color .2s ease-in-out;transition:color .2s ease-in-out,border-color .2s ease-in-out}.ivu-table-cell-tree-empty{cursor:default;color:transparent;background-color:transparent;border-color:transparent}.ivu-table-cell-tree:hover{color:#2d8cf0;border-color:#2d8cf0}.ivu-table-cell-tree-empty:hover{color:transparent;border-color:transparent}.ivu-table-cell-tree-loading{cursor:default;background-color:transparent;border-color:transparent}.ivu-table-cell-tree-loading:hover{border-color:transparent}.ivu-table-cell-tree-level{display:inline-block;height:16px}.ivu-table-cell-slot-inline{display:inline}.ivu-table-cell-slot-inline-block{display:inline-block}.ivu-table-hidden{visibility:hidden}th .ivu-table-cell{display:inline-block;word-wrap:normal;vertical-align:middle}td.ivu-table-expanded-cell{padding:20px 50px;background:#f8f8f9}.ivu-table-stripe .ivu-table-body tr:nth-child(2n) td,.ivu-table-stripe .ivu-table-fixed-body tr:nth-child(2n) td{background-color:#f8f8f9}.ivu-table-stripe .ivu-table-body tr.ivu-table-row-hover td,.ivu-table-stripe .ivu-table-fixed-body tr.ivu-table-row-hover td{background-color:#ebf7ff}tr.ivu-table-row-hover td{background-color:#ebf7ff}.ivu-table-large{font-size:16px}.ivu-table-large th{height:48px}.ivu-table-large td{height:60px}.ivu-table-large-footer,.ivu-table-large-title{height:60px;line-height:60px}.ivu-table-large .ivu-table-cell-with-expand{height:59px;line-height:59px}.ivu-table-large .ivu-table-cell-with-expand i{font-size:16px}.ivu-table-small{font-size:12px}.ivu-table-small th{height:32px}.ivu-table-small td{height:40px}.ivu-table-small-footer,.ivu-table-small-title{height:40px;line-height:40px}.ivu-table-small .ivu-table-cell-with-expand{height:39px;line-height:39px}.ivu-table-row-highlight td,.ivu-table-stripe .ivu-table-body tr.ivu-table-row-highlight:nth-child(2n) td,.ivu-table-stripe .ivu-table-fixed-body tr.ivu-table-row-highlight:nth-child(2n) td,tr.ivu-table-row-highlight.ivu-table-row-hover td{background-color:#ebf7ff}.ivu-table-fixed,.ivu-table-fixed-right{position:absolute;top:0;left:0}.ivu-table-fixed-right::before,.ivu-table-fixed::before{content:'';width:100%;height:1px;background-color:#dcdee2;position:absolute;left:0;bottom:0;z-index:4}.ivu-table-fixed-right{top:0;left:auto;right:0}.ivu-table-fixed.ivu-table-fixed-shadow{-webkit-box-shadow:2px 0 6px -2px rgba(0,0,0,.2);box-shadow:2px 0 6px -2px rgba(0,0,0,.2)}.ivu-table-fixed-right.ivu-table-fixed-shadow{-webkit-box-shadow:-2px 0 6px -2px rgba(0,0,0,.2);box-shadow:-2px 0 6px -2px rgba(0,0,0,.2)}.ivu-table-fixed-right-header{position:absolute;top:-1px;right:0;background-color:#f8f8f9;border-top:1px solid #dcdee2;border-bottom:1px solid #e8eaec}.ivu-table-fixed-header{overflow:hidden}.ivu-table-fixed-header thead tr th{position:relative;height:100%;padding:8px 0}.ivu-table-fixed-body{overflow:hidden;position:relative;z-index:3}.ivu-table-fixed-shadow{width:1px;height:100%;position:absolute;top:0;right:0;-webkit-box-shadow:1px 0 6px rgba(0,0,0,.2);box-shadow:1px 0 6px rgba(0,0,0,.2);overflow:hidden;z-index:1}.ivu-table-sort{display:inline-block;width:14px;height:12px;margin-top:-1px;vertical-align:middle;overflow:hidden;cursor:pointer;position:relative}.ivu-table-sort i{display:block;height:6px;line-height:6px;overflow:hidden;position:absolute;color:#c5c8ce;-webkit-transition:color .2s ease-in-out;transition:color .2s ease-in-out;font-size:16px}.ivu-table-sort i:hover{color:inherit}.ivu-table-sort i.on{color:#2d8cf0}.ivu-table-sort i:first-child{top:0}.ivu-table-sort i:last-child{bottom:0}.ivu-table-filter{display:inline-block;cursor:pointer;position:relative}.ivu-table-filter i{color:#c5c8ce;-webkit-transition:color .2s ease-in-out;transition:color .2s ease-in-out}.ivu-table-filter i:hover{color:inherit}.ivu-table-filter i.on{color:#2d8cf0}.ivu-table-filter-list{padding:8px 0 0}.ivu-table-filter-list-item{padding:0 12px 8px}.ivu-table-filter-list-item .ivu-checkbox-wrapper+.ivu-checkbox-wrapper{margin:0}.ivu-table-filter-list-item label{display:block}.ivu-table-filter-list-item label>span{margin-right:4px}.ivu-table-filter-list ul{padding-bottom:8px}.ivu-table-filter-list .ivu-table-filter-select-item{margin:0;line-height:normal;padding:7px 16px;clear:both;color:#515a6e;font-size:14px!important;white-space:nowrap;list-style:none;cursor:pointer;-webkit-transition:background .2s ease-in-out;transition:background .2s ease-in-out}.ivu-table-filter-list .ivu-table-filter-select-item:hover{background:#f3f3f3}.ivu-table-filter-list .ivu-table-filter-select-item-focus{background:#f3f3f3}.ivu-table-filter-list .ivu-table-filter-select-item-disabled{color:#c5c8ce;cursor:not-allowed}.ivu-table-filter-list .ivu-table-filter-select-item-disabled:hover{color:#c5c8ce;background-color:#fff;cursor:not-allowed}.ivu-table-filter-list .ivu-table-filter-select-item-selected,.ivu-table-filter-list .ivu-table-filter-select-item-selected:hover{color:#2d8cf0}.ivu-table-filter-list .ivu-table-filter-select-item-divided{margin-top:5px;border-top:1px solid #e8eaec}.ivu-table-filter-list .ivu-table-filter-select-item-divided:before{content:'';height:5px;display:block;margin:0 -16px;background-color:#fff;position:relative;top:-7px}.ivu-table-filter-list .ivu-table-filter-select-item-enter{color:#2d8cf0;font-weight:700;float:right}.ivu-table-filter-list .ivu-table-large .ivu-table-filter-select-item{padding:7px 16px 8px;font-size:14px!important}@-moz-document url-prefix(){.ivu-table-filter-list .ivu-table-filter-select-item{white-space:normal}}.ivu-table-filter-footer{padding:4px;border-top:1px solid #e8eaec;overflow:hidden}.ivu-table-filter-footer button:first-child{float:left}.ivu-table-filter-footer button:last-child{float:right}.ivu-table-tip table{width:100%}.ivu-table-tip table td{text-align:center}.ivu-table-expanded-hidden{visibility:hidden}.ivu-table-context-menu{position:absolute}.ivu-table-popper{min-width:0;text-align:left}.ivu-table-popper .ivu-poptip-body{padding:0}.ivu-dropdown{display:inline-block}.ivu-dropdown .ivu-select-dropdown{overflow:visible;max-height:none}.ivu-dropdown .ivu-dropdown{width:100%}.ivu-dropdown-rel{position:relative}.ivu-dropdown-rel-user-select-none{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ivu-dropdown-menu{min-width:100px}.ivu-dropdown-transfer{width:auto}.ivu-dropdown-item-selected,.ivu-dropdown-item.ivu-dropdown-item-selected:hover{background:#f0faff}.ivu-dropdown-item{margin:0;line-height:normal;padding:7px 16px;clear:both;color:#515a6e;font-size:14px!important;white-space:nowrap;list-style:none;cursor:pointer;-webkit-transition:background .2s ease-in-out;transition:background .2s ease-in-out}.ivu-dropdown-item:hover{background:#f3f3f3}.ivu-dropdown-item-focus{background:#f3f3f3}.ivu-dropdown-item-disabled{color:#c5c8ce;cursor:not-allowed}.ivu-dropdown-item-disabled:hover{color:#c5c8ce;background-color:#fff;cursor:not-allowed}.ivu-dropdown-item-selected,.ivu-dropdown-item-selected:hover{color:#2d8cf0}.ivu-dropdown-item-divided{margin-top:5px;border-top:1px solid #e8eaec}.ivu-dropdown-item-divided:before{content:'';height:5px;display:block;margin:0 -16px;background-color:#fff;position:relative;top:-7px}.ivu-dropdown-item-enter{color:#2d8cf0;font-weight:700;float:right}.ivu-dropdown-large .ivu-dropdown-item{padding:7px 16px 8px;font-size:14px!important}@-moz-document url-prefix(){.ivu-dropdown-item{white-space:normal}}.ivu-tabs{-webkit-box-sizing:border-box;box-sizing:border-box;position:relative;overflow:hidden;color:#515a6e;zoom:1}.ivu-tabs:after,.ivu-tabs:before{content:"";display:table}.ivu-tabs:after{clear:both;visibility:hidden;font-size:0;height:0}.ivu-tabs-bar{outline:0}.ivu-tabs-ink-bar{height:2px;-webkit-box-sizing:border-box;box-sizing:border-box;background-color:#2d8cf0;position:absolute;left:0;bottom:1px;z-index:1;-webkit-transition:-webkit-transform .3s ease-in-out;transition:-webkit-transform .3s ease-in-out;transition:transform .3s ease-in-out;transition:transform .3s ease-in-out,-webkit-transform .3s ease-in-out;-webkit-transform-origin:0 0;-ms-transform-origin:0 0;transform-origin:0 0}.ivu-tabs-bar{border-bottom:1px solid #dcdee2;margin-bottom:16px}.ivu-tabs-nav-container{margin-bottom:-1px;line-height:1.5;font-size:14px;-webkit-box-sizing:border-box;box-sizing:border-box;white-space:nowrap;overflow:hidden;position:relative;zoom:1}.ivu-tabs-nav-container:after,.ivu-tabs-nav-container:before{content:"";display:table}.ivu-tabs-nav-container:after{clear:both;visibility:hidden;font-size:0;height:0}.ivu-tabs-nav-container:focus{outline:0}.ivu-tabs-nav-container:focus .ivu-tabs-tab-focused{border-color:#57a3f3!important}.ivu-tabs-nav-container-scrolling{padding-left:32px;padding-right:32px}.ivu-tabs-nav-wrap{overflow:hidden;margin-bottom:-1px}.ivu-tabs-nav-scroll{overflow:hidden;white-space:nowrap}.ivu-tabs-nav-right{float:right;margin-left:5px}.ivu-tabs-nav-next,.ivu-tabs-nav-prev{width:32px;text-align:center;position:absolute;line-height:32px;cursor:pointer}.ivu-tabs-nav-next i,.ivu-tabs-nav-prev i{font-size:16px}.ivu-tabs-nav-prev{left:0}.ivu-tabs-nav-next{right:0}.ivu-tabs-nav-scrollable{padding:0 32px}.ivu-tabs-nav-scroll-disabled{display:none}.ivu-tabs-nav{padding-left:0;margin:0;float:left;list-style:none;-webkit-box-sizing:border-box;box-sizing:border-box;position:relative;-webkit-transition:-webkit-transform .5s ease-in-out;transition:-webkit-transform .5s ease-in-out;transition:transform .5s ease-in-out;transition:transform .5s ease-in-out,-webkit-transform .5s ease-in-out}.ivu-tabs-nav:after,.ivu-tabs-nav:before{display:table;content:" "}.ivu-tabs-nav:after{clear:both}.ivu-tabs-nav .ivu-tabs-tab-disabled{pointer-events:none;cursor:default;color:#ccc}.ivu-tabs-nav .ivu-tabs-tab{display:inline-block;height:100%;padding:8px 16px;margin-right:16px;-webkit-box-sizing:border-box;box-sizing:border-box;cursor:pointer;text-decoration:none;position:relative;-webkit-transition:color .3s ease-in-out;transition:color .3s ease-in-out}.ivu-tabs-nav .ivu-tabs-tab:hover{color:#57a3f3}.ivu-tabs-nav .ivu-tabs-tab:active{color:#2b85e4}.ivu-tabs-nav .ivu-tabs-tab .ivu-icon{width:14px;height:14px;margin-right:8px}.ivu-tabs-nav .ivu-tabs-tab-active{color:#2d8cf0}.ivu-tabs-mini .ivu-tabs-nav-container{font-size:14px}.ivu-tabs-mini .ivu-tabs-tab{margin-right:0;padding:8px 16px;font-size:12px}.ivu-tabs .ivu-tabs-content-animated{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;will-change:transform;-webkit-transition:-webkit-transform .3s ease-in-out;transition:-webkit-transform .3s ease-in-out;transition:transform .3s ease-in-out;transition:transform .3s ease-in-out,-webkit-transform .3s ease-in-out}.ivu-tabs .ivu-tabs-tabpane{-ms-flex-negative:0;flex-shrink:0;width:100%;-webkit-transition:opacity .3s;transition:opacity .3s;opacity:1;outline:0}.ivu-tabs .ivu-tabs-tabpane-inactive{opacity:0;height:0}.ivu-tabs.ivu-tabs-card>.ivu-tabs-bar .ivu-tabs-nav-container{height:32px}.ivu-tabs.ivu-tabs-card>.ivu-tabs-bar .ivu-tabs-ink-bar{visibility:hidden}.ivu-tabs.ivu-tabs-card>.ivu-tabs-bar .ivu-tabs-tab{margin:0;margin-right:4px;height:31px;padding:5px 16px 4px;border:1px solid #dcdee2;border-bottom:0;border-radius:4px 4px 0 0;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;background:#f8f8f9}.ivu-tabs.ivu-tabs-card>.ivu-tabs-bar .ivu-tabs-tab-active{height:32px;padding-bottom:5px;background:#fff;-webkit-transform:translateZ(0);transform:translateZ(0);border-color:#dcdee2;color:#2d8cf0}.ivu-tabs.ivu-tabs-card>.ivu-tabs-bar .ivu-tabs-nav-wrap{margin-bottom:0}.ivu-tabs.ivu-tabs-card>.ivu-tabs-bar .ivu-tabs-tab .ivu-tabs-close{width:0;height:22px;font-size:22px;margin-right:0;color:#999;text-align:right;vertical-align:middle;overflow:hidden;position:relative;top:-1px;-webkit-transform-origin:100% 50%;-ms-transform-origin:100% 50%;transform-origin:100% 50%;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.ivu-tabs.ivu-tabs-card>.ivu-tabs-bar .ivu-tabs-tab .ivu-tabs-close:hover{color:#444}.ivu-tabs.ivu-tabs-card>.ivu-tabs-bar .ivu-tabs-tab-active .ivu-tabs-close,.ivu-tabs.ivu-tabs-card>.ivu-tabs-bar .ivu-tabs-tab:hover .ivu-tabs-close{width:22px;-webkit-transform:translateZ(0);transform:translateZ(0);margin-right:-6px}.ivu-tabs-context-menu{position:absolute}.ivu-tabs-no-animation>.ivu-tabs-content{-webkit-transform:none!important;-ms-transform:none!important;transform:none!important}.ivu-tabs-no-animation>.ivu-tabs-content>.ivu-tabs-tabpane-inactive{display:none}.ivu-menu{display:block;margin:0;padding:0;outline:0;list-style:none;color:#515a6e;font-size:14px;position:relative;z-index:1}.ivu-menu-horizontal{height:60px;line-height:60px}.ivu-menu-horizontal.ivu-menu-light:after{content:'';display:block;width:100%;height:1px;background:#dcdee2;position:absolute;bottom:0;left:0}.ivu-menu-vertical.ivu-menu-light:after{content:'';display:block;width:1px;height:100%;background:#dcdee2;position:absolute;top:0;bottom:0;right:0;z-index:1}.ivu-menu-light{background:#fff}.ivu-menu-dark{background:#515a6e}.ivu-menu-primary{background:#2d8cf0}.ivu-menu-item{display:block;outline:0;list-style:none;font-size:14px;position:relative;z-index:1;cursor:pointer;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}a.ivu-menu-item{color:inherit}a.ivu-menu-item:active,a.ivu-menu-item:hover{color:inherit}.ivu-menu-item>i{margin-right:6px}.ivu-menu-submenu-title span>i,.ivu-menu-submenu-title>i{margin-right:8px}.ivu-menu-horizontal .ivu-menu-item,.ivu-menu-horizontal .ivu-menu-submenu{float:left;padding:0 20px;position:relative;cursor:pointer;z-index:3;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.ivu-menu-light.ivu-menu-horizontal .ivu-menu-item,.ivu-menu-light.ivu-menu-horizontal .ivu-menu-submenu{height:inherit;line-height:inherit;border-bottom:2px solid transparent;color:#515a6e}.ivu-menu-light.ivu-menu-horizontal .ivu-menu-item-active,.ivu-menu-light.ivu-menu-horizontal .ivu-menu-item:hover,.ivu-menu-light.ivu-menu-horizontal .ivu-menu-submenu-active,.ivu-menu-light.ivu-menu-horizontal .ivu-menu-submenu:hover{color:#2d8cf0;border-bottom:2px solid #2d8cf0}.ivu-menu-dark.ivu-menu-horizontal .ivu-menu-item,.ivu-menu-dark.ivu-menu-horizontal .ivu-menu-submenu{color:rgba(255,255,255,.7)}.ivu-menu-dark.ivu-menu-horizontal .ivu-menu-item-active,.ivu-menu-dark.ivu-menu-horizontal .ivu-menu-item:hover,.ivu-menu-dark.ivu-menu-horizontal .ivu-menu-submenu-active,.ivu-menu-dark.ivu-menu-horizontal .ivu-menu-submenu:hover{color:#fff}.ivu-menu-primary.ivu-menu-horizontal .ivu-menu-item,.ivu-menu-primary.ivu-menu-horizontal .ivu-menu-submenu{color:#fff}.ivu-menu-horizontal .ivu-menu-submenu .ivu-select-dropdown{min-width:100%;width:auto;max-height:none}.ivu-menu-horizontal .ivu-menu-submenu .ivu-select-dropdown .ivu-menu-item{height:auto;line-height:normal;border-bottom:0;float:none}.ivu-menu-item-group{line-height:normal}.ivu-menu-item-group-title{height:30px;line-height:30px;padding-left:8px;font-size:12px;color:#999}.ivu-menu-item-group>ul{padding:0!important;list-style:none!important}.ivu-menu-vertical .ivu-menu-item,.ivu-menu-vertical .ivu-menu-submenu-title{padding:14px 24px;position:relative;cursor:pointer;z-index:1;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.ivu-menu-vertical .ivu-menu-item:hover,.ivu-menu-vertical .ivu-menu-submenu-title:hover{color:#2d8cf0}.ivu-menu-vertical .ivu-menu-submenu-title-icon{position:absolute;top:50%;right:24px;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%)}.ivu-menu-submenu-title-icon{-webkit-transition:-webkit-transform .2s ease-in-out;transition:-webkit-transform .2s ease-in-out;transition:transform .2s ease-in-out;transition:transform .2s ease-in-out,-webkit-transform .2s ease-in-out}.ivu-menu-horizontal .ivu-menu-opened>*>.ivu-menu-submenu-title-icon{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.ivu-menu-vertical .ivu-menu-opened>*>.ivu-menu-submenu-title-icon{-webkit-transform:translateY(-50%) rotate(180deg);-ms-transform:translateY(-50%) rotate(180deg);transform:translateY(-50%) rotate(180deg)}.ivu-menu-vertical .ivu-menu-submenu-nested{padding-left:20px}.ivu-menu-vertical .ivu-menu-submenu .ivu-menu-item{padding-left:43px}.ivu-menu-vertical .ivu-menu-item-group-title{height:48px;line-height:48px;font-size:14px;padding-left:28px}.ivu-menu-dark.ivu-menu-vertical .ivu-menu-item-group-title{color:rgba(255,255,255,.36)}.ivu-menu-light.ivu-menu-vertical .ivu-menu-item-active:not(.ivu-menu-submenu){color:#2d8cf0;background:#f0faff;z-index:2}.ivu-menu-light.ivu-menu-vertical .ivu-menu-item-active:not(.ivu-menu-submenu):after{content:'';display:block;width:2px;position:absolute;top:0;bottom:0;right:0;background:#2d8cf0}.ivu-menu-dark.ivu-menu-vertical .ivu-menu-item,.ivu-menu-dark.ivu-menu-vertical .ivu-menu-submenu-title{color:rgba(255,255,255,.7)}.ivu-menu-dark.ivu-menu-vertical .ivu-menu-item-active:not(.ivu-menu-submenu),.ivu-menu-dark.ivu-menu-vertical .ivu-menu-item-active:not(.ivu-menu-submenu):hover,.ivu-menu-dark.ivu-menu-vertical .ivu-menu-submenu-title-active:not(.ivu-menu-submenu),.ivu-menu-dark.ivu-menu-vertical .ivu-menu-submenu-title-active:not(.ivu-menu-submenu):hover{background:#363e4f}.ivu-menu-dark.ivu-menu-vertical .ivu-menu-item:hover,.ivu-menu-dark.ivu-menu-vertical .ivu-menu-submenu-title:hover{color:#fff;background:#515a6e}.ivu-menu-dark.ivu-menu-vertical .ivu-menu-item-active:not(.ivu-menu-submenu),.ivu-menu-dark.ivu-menu-vertical .ivu-menu-submenu-title-active:not(.ivu-menu-submenu){color:#2d8cf0}.ivu-menu-dark.ivu-menu-vertical .ivu-menu-submenu .ivu-menu-item:hover{color:#fff;background:0 0!important}.ivu-menu-dark.ivu-menu-vertical .ivu-menu-submenu .ivu-menu-item-active,.ivu-menu-dark.ivu-menu-vertical .ivu-menu-submenu .ivu-menu-item-active:hover{border-right:none;color:#fff;background:#2d8cf0!important}.ivu-menu-dark.ivu-menu-vertical .ivu-menu-child-item-active>.ivu-menu-submenu-title{color:#fff}.ivu-menu-dark.ivu-menu-vertical .ivu-menu-opened{background:#363e4f}.ivu-menu-dark.ivu-menu-vertical .ivu-menu-opened .ivu-menu-submenu-title{background:#515a6e}.ivu-menu-dark.ivu-menu-vertical .ivu-menu-opened .ivu-menu-submenu-has-parent-submenu .ivu-menu-submenu-title{background:0 0}.ivu-menu-horizontal .ivu-menu-submenu .ivu-select-dropdown .ivu-menu-item{margin:0;line-height:normal;padding:7px 16px;clear:both;color:#515a6e;font-size:14px!important;white-space:nowrap;list-style:none;cursor:pointer;-webkit-transition:background .2s ease-in-out;transition:background .2s ease-in-out}.ivu-menu-horizontal .ivu-menu-submenu .ivu-select-dropdown .ivu-menu-item:hover{background:#f3f3f3}.ivu-menu-horizontal .ivu-menu-submenu .ivu-select-dropdown .ivu-menu-item-focus{background:#f3f3f3}.ivu-menu-horizontal .ivu-menu-submenu .ivu-select-dropdown .ivu-menu-item-disabled{color:#c5c8ce;cursor:not-allowed}.ivu-menu-horizontal .ivu-menu-submenu .ivu-select-dropdown .ivu-menu-item-disabled:hover{color:#c5c8ce;background-color:#fff;cursor:not-allowed}.ivu-menu-horizontal .ivu-menu-submenu .ivu-select-dropdown .ivu-menu-item-selected,.ivu-menu-horizontal .ivu-menu-submenu .ivu-select-dropdown .ivu-menu-item-selected:hover{color:#2d8cf0}.ivu-menu-horizontal .ivu-menu-submenu .ivu-select-dropdown .ivu-menu-item-divided{margin-top:5px;border-top:1px solid #e8eaec}.ivu-menu-horizontal .ivu-menu-submenu .ivu-select-dropdown .ivu-menu-item-divided:before{content:'';height:5px;display:block;margin:0 -16px;background-color:#fff;position:relative;top:-7px}.ivu-menu-horizontal .ivu-menu-submenu .ivu-select-dropdown .ivu-menu-item-enter{color:#2d8cf0;font-weight:700;float:right}.ivu-menu-large .ivu-menu-horizontal .ivu-menu-submenu .ivu-select-dropdown .ivu-menu-item{padding:7px 16px 8px;font-size:14px!important}@-moz-document url-prefix(){.ivu-menu-horizontal .ivu-menu-submenu .ivu-select-dropdown .ivu-menu-item{white-space:normal}}.ivu-menu-horizontal .ivu-menu-submenu .ivu-select-dropdown .ivu-menu-item{padding:7px 16px 8px;font-size:14px!important}.ivu-date-picker{display:inline-block;line-height:normal}.ivu-date-picker-rel{position:relative}.ivu-date-picker .ivu-select-dropdown{width:auto;padding:0;overflow:visible;max-height:none}.ivu-date-picker-cells{width:196px;margin:10px;white-space:normal}.ivu-date-picker-cells span{display:inline-block;width:24px;height:24px}.ivu-date-picker-cells span em{display:inline-block;width:24px;height:24px;line-height:24px;margin:2px;font-style:normal;border-radius:3px;text-align:center;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.ivu-date-picker-cells-header span{line-height:24px;text-align:center;margin:2px;color:#c5c8ce}.ivu-date-picker-cells-cell:hover em{background:#e1f0fe}.ivu-date-picker-cells-focused em{-webkit-box-shadow:0 0 0 1px #2d8cf0 inset;box-shadow:0 0 0 1px #2d8cf0 inset}span.ivu-date-picker-cells-cell{width:28px;height:28px;cursor:pointer}.ivu-date-picker-cells-cell-next-month em,.ivu-date-picker-cells-cell-prev-month em{color:#c5c8ce}.ivu-date-picker-cells-cell-next-month:hover em,.ivu-date-picker-cells-cell-prev-month:hover em{background:0 0}span.ivu-date-picker-cells-cell-disabled,span.ivu-date-picker-cells-cell-disabled:hover,span.ivu-date-picker-cells-cell-week-label,span.ivu-date-picker-cells-cell-week-label:hover{cursor:not-allowed;color:#c5c8ce}span.ivu-date-picker-cells-cell-disabled em,span.ivu-date-picker-cells-cell-disabled:hover em,span.ivu-date-picker-cells-cell-week-label em,span.ivu-date-picker-cells-cell-week-label:hover em{color:inherit;background:inherit}span.ivu-date-picker-cells-cell-disabled,span.ivu-date-picker-cells-cell-disabled:hover{background:#f7f7f7}.ivu-date-picker-cells-cell-today em{position:relative}.ivu-date-picker-cells-cell-today em:after{content:'';display:block;width:6px;height:6px;border-radius:50%;background:#2d8cf0;position:absolute;top:1px;right:1px}.ivu-date-picker-cells-cell-range{position:relative}.ivu-date-picker-cells-cell-range em{position:relative;z-index:1}.ivu-date-picker-cells-cell-range:before{content:'';display:block;background:#e1f0fe;border-radius:0;border:0;position:absolute;top:2px;bottom:2px;left:0;right:0}.ivu-date-picker-cells-cell-selected em,.ivu-date-picker-cells-cell-selected:hover em{background:#2d8cf0;color:#fff}span.ivu-date-picker-cells-cell-disabled.ivu-date-picker-cells-cell-selected em{background:#c5c8ce;color:#f7f7f7}.ivu-date-picker-cells-cell-today.ivu-date-picker-cells-cell-selected em:after{background:#fff}.ivu-date-picker-cells-show-week-numbers{width:226px}.ivu-date-picker-cells-month,.ivu-date-picker-cells-year{margin-top:14px}.ivu-date-picker-cells-month span,.ivu-date-picker-cells-year span{width:40px;height:28px;line-height:28px;margin:10px 12px;border-radius:3px}.ivu-date-picker-cells-month span em,.ivu-date-picker-cells-year span em{width:40px;height:28px;line-height:28px;margin:0}.ivu-date-picker-cells-month .ivu-date-picker-cells-cell-focused,.ivu-date-picker-cells-year .ivu-date-picker-cells-cell-focused{background-color:#d5e8fc}.ivu-date-picker-header{height:32px;line-height:32px;text-align:center;border-bottom:1px solid #e8eaec}.ivu-date-picker-header-label{cursor:pointer;-webkit-transition:color .2s ease-in-out;transition:color .2s ease-in-out}.ivu-date-picker-header-label:hover{color:#2d8cf0}.ivu-date-picker-btn-pulse{background-color:#d5e8fc!important;border-radius:4px;-webkit-transition:background-color .2s ease-in-out;transition:background-color .2s ease-in-out}.ivu-date-picker-prev-btn{float:left}.ivu-date-picker-prev-btn-arrow-double{margin-left:10px}.ivu-date-picker-prev-btn-arrow-double i:after{content:"\F115";margin-left:-8px}.ivu-date-picker-next-btn{float:right}.ivu-date-picker-next-btn-arrow-double{margin-right:10px}.ivu-date-picker-next-btn-arrow-double i:after{content:"\F11F";margin-left:-8px}.ivu-date-picker-with-range .ivu-picker-panel-body{min-width:432px}.ivu-date-picker-with-range .ivu-picker-panel-content{float:left}.ivu-date-picker-with-range .ivu-picker-cells-show-week-numbers{min-width:492px}.ivu-date-picker-with-week-numbers .ivu-picker-panel-body-date{min-width:492px}.ivu-date-picker-transfer{z-index:1060;max-height:none;width:auto}.ivu-date-picker-focused input:not([disabled]){border-color:#57a3f3;outline:0;-webkit-box-shadow:0 0 0 2px rgba(45,140,240,.2);box-shadow:0 0 0 2px rgba(45,140,240,.2)}.ivu-picker-panel-icon-btn{display:inline-block;width:20px;height:24px;line-height:26px;margin-top:2px;text-align:center;cursor:pointer;color:#c5c8ce;-webkit-transition:color .2s ease-in-out;transition:color .2s ease-in-out}.ivu-picker-panel-icon-btn:hover{color:#2d8cf0}.ivu-picker-panel-icon-btn i{font-size:14px}.ivu-picker-panel-body-wrapper.ivu-picker-panel-with-sidebar{padding-left:92px}.ivu-picker-panel-sidebar{width:92px;float:left;margin-left:-92px;position:absolute;top:0;bottom:0;background:#f8f8f9;border-right:1px solid #e8eaec;border-radius:4px 0 0 4px;overflow:auto}.ivu-picker-panel-shortcut{padding:6px 16px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ivu-picker-panel-shortcut:hover{background:#e8eaec}.ivu-picker-panel-body{float:left}.ivu-picker-confirm{border-top:1px solid #e8eaec;text-align:right;padding:8px;clear:both}.ivu-picker-confirm>span{color:#2d8cf0;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;float:left;padding:2px 0;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.ivu-picker-confirm>span:hover{color:#57a3f3}.ivu-picker-confirm>span:active{color:#2b85e4}.ivu-picker-confirm-time{float:left}.ivu-picker-confirm-btn-cancel{margin-right:4px}.ivu-time-picker-cells{min-width:112px}.ivu-time-picker-cells-with-seconds{min-width:168px}.ivu-time-picker-cells-list{width:56px;max-height:144px;float:left;overflow:hidden;border-left:1px solid #e8eaec;position:relative}.ivu-time-picker-cells-list:hover{overflow-y:auto}.ivu-time-picker-cells-list:first-child{border-left:none;border-radius:4px 0 0 4px}.ivu-time-picker-cells-list:last-child{border-radius:0 4px 4px 0}.ivu-time-picker-cells-list ul{width:100%;margin:0;padding:0 0 120px 0;list-style:none}.ivu-time-picker-cells-list ul li{width:100%;height:24px;line-height:24px;margin:0;padding:0 0 0 16px;-webkit-box-sizing:content-box;box-sizing:content-box;text-align:left;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;list-style:none;-webkit-transition:background .2s ease-in-out;transition:background .2s ease-in-out}.ivu-time-picker-cells-cell:hover{background:#f3f3f3}.ivu-time-picker-cells-cell-disabled{color:#c5c8ce;cursor:not-allowed}.ivu-time-picker-cells-cell-disabled:hover{color:#c5c8ce;background-color:#fff;cursor:not-allowed}.ivu-time-picker-cells-cell-selected,.ivu-time-picker-cells-cell-selected:hover{color:#2d8cf0;background:#f3f3f3}.ivu-time-picker-cells-cell-focused{background-color:#d5e8fc}.ivu-time-picker-header{height:32px;line-height:32px;text-align:center;border-bottom:1px solid #e8eaec}.ivu-time-picker-with-range .ivu-picker-panel-body{min-width:228px}.ivu-time-picker-with-range .ivu-picker-panel-content{float:left;position:relative}.ivu-time-picker-with-range .ivu-picker-panel-content:after{content:'';display:block;width:2px;position:absolute;top:31px;bottom:0;right:-2px;background:#e8eaec;z-index:1}.ivu-time-picker-with-range .ivu-picker-panel-content-right{float:right}.ivu-time-picker-with-range .ivu-picker-panel-content-right:after{right:auto;left:-2px}.ivu-time-picker-with-range .ivu-time-picker-cells-list:first-child{border-radius:0}.ivu-time-picker-with-range .ivu-time-picker-cells-list:last-child{border-radius:0}.ivu-time-picker-with-range.ivu-time-picker-with-seconds .ivu-picker-panel-body{min-width:340px}.ivu-picker-panel-content .ivu-picker-panel-content .ivu-time-picker-cells{min-width:216px}.ivu-picker-panel-content .ivu-picker-panel-content .ivu-time-picker-cells-with-seconds{min-width:216px}.ivu-picker-panel-content .ivu-picker-panel-content .ivu-time-picker-cells-with-seconds .ivu-time-picker-cells-list{width:72px}.ivu-picker-panel-content .ivu-picker-panel-content .ivu-time-picker-cells-with-seconds .ivu-time-picker-cells-list ul li{padding:0 0 0 28px}.ivu-picker-panel-content .ivu-picker-panel-content .ivu-time-picker-cells-list{width:108px;max-height:216px}.ivu-picker-panel-content .ivu-picker-panel-content .ivu-time-picker-cells-list:first-child{border-radius:0}.ivu-picker-panel-content .ivu-picker-panel-content .ivu-time-picker-cells-list:last-child{border-radius:0}.ivu-picker-panel-content .ivu-picker-panel-content .ivu-time-picker-cells-list ul{padding:0 0 192px 0}.ivu-picker-panel-content .ivu-picker-panel-content .ivu-time-picker-cells-list ul li{padding:0 0 0 46px}.ivu-form .ivu-form-item-label{text-align:right;vertical-align:middle;float:left;font-size:14px;color:#515a6e;line-height:1;padding:10px 12px 10px 0;-webkit-box-sizing:border-box;box-sizing:border-box}.ivu-form-label-left .ivu-form-item-label{text-align:left}.ivu-form-label-top .ivu-form-item-label{float:none;display:inline-block;padding:0 0 10px 0}.ivu-form-inline .ivu-form-item{display:inline-block;margin-right:10px;vertical-align:top}.ivu-form-item{margin-bottom:24px;vertical-align:top;zoom:1}.ivu-form-item:after,.ivu-form-item:before{content:"";display:table}.ivu-form-item:after{clear:both;visibility:hidden;font-size:0;height:0}.ivu-form-item-content{position:relative;line-height:32px;font-size:14px}.ivu-form-item .ivu-form-item{margin-bottom:0}.ivu-form-item .ivu-form-item .ivu-form-item-content{margin-left:0!important}.ivu-form-item-error-tip{position:absolute;top:100%;left:0;line-height:1;padding-top:6px;color:#ed4014}.ivu-form-item-required .ivu-form-item-label:before{content:'*';display:inline-block;margin-right:4px;line-height:1;font-family:SimSun;font-size:14px;color:#ed4014}.ivu-form-hide-required-mark .ivu-form-item-required .ivu-form-item-label:before{display:none}.ivu-carousel{position:relative;display:block;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-ms-touch-action:pan-y;touch-action:pan-y;-webkit-tap-highlight-color:transparent}.ivu-carousel-list,.ivu-carousel-track{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.ivu-carousel-list{position:relative;display:block;overflow:hidden;margin:0;padding:0}.ivu-carousel-track{position:relative;top:100%;left:0;display:block;overflow:hidden;z-index:1}.ivu-carousel-track.higher{z-index:2;top:0}.ivu-carousel-item{float:left;height:100%;min-height:1px;display:block}.ivu-carousel-arrow{border:none;outline:0;padding:0;margin:0;width:36px;height:36px;border-radius:50%;cursor:pointer;display:none;position:absolute;top:50%;z-index:10;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);-webkit-transition:.2s;transition:.2s;background-color:rgba(31,45,61,.11);color:#fff;text-align:center;font-size:1em;font-family:inherit;line-height:inherit}.ivu-carousel-arrow:hover{background-color:rgba(31,45,61,.5)}.ivu-carousel-arrow>*{vertical-align:baseline}.ivu-carousel-arrow.left{left:16px}.ivu-carousel-arrow.right{right:16px}.ivu-carousel-arrow-always{display:inherit}.ivu-carousel-arrow-hover{display:inherit;opacity:0}.ivu-carousel:hover .ivu-carousel-arrow-hover{opacity:1}.ivu-carousel-dots{z-index:10;display:none;position:relative;list-style:none;text-align:center;padding:0;width:100%;height:17px}.ivu-carousel-dots-inside{display:block;position:absolute;bottom:3px}.ivu-carousel-dots-outside{display:block;margin-top:3px}.ivu-carousel-dots li{position:relative;display:inline-block;vertical-align:top;text-align:center;margin:0 2px;padding:7px 0;cursor:pointer}.ivu-carousel-dots li button{border:0;cursor:pointer;background:#8391a5;opacity:.3;display:block;width:16px;height:3px;border-radius:1px;outline:0;font-size:0;color:transparent;-webkit-transition:all .5s;transition:all .5s}.ivu-carousel-dots li button.radius{width:6px;height:6px;border-radius:50%}.ivu-carousel-dots li:hover>button{opacity:.7}.ivu-carousel-dots li.ivu-carousel-active>button{opacity:1;width:24px}.ivu-carousel-dots li.ivu-carousel-active>button.radius{width:6px}.ivu-rate{display:inline-block;margin:0;padding:0;font-size:20px;vertical-align:middle;font-weight:400;font-style:normal}.ivu-rate-disabled .ivu-rate-star-content:before,.ivu-rate-disabled .ivu-rate-star:before{cursor:default}.ivu-rate-disabled .ivu-rate-star:hover{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}.ivu-rate-star-full,.ivu-rate-star-zero{position:relative}.ivu-rate-star-first{position:absolute;left:0;top:0;width:50%;height:100%;overflow:hidden;opacity:0}.ivu-rate-star-first,.ivu-rate-star-second{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-transition:all .3s ease;transition:all .3s ease;color:#e9e9e9;cursor:pointer}.ivu-rate-star-chart{display:inline-block;margin:0;padding:0;margin-right:8px;position:relative;font-family:Ionicons;-webkit-transition:all .3s ease;transition:all .3s ease}.ivu-rate-star-chart:hover{-webkit-transform:scale(1.1);-ms-transform:scale(1.1);transform:scale(1.1)}.ivu-rate-star-chart.ivu-rate-star-full .ivu-rate-star-first,.ivu-rate-star-chart.ivu-rate-star-full .ivu-rate-star-second{color:#f5a623}.ivu-rate-star-chart.ivu-rate-star-half .ivu-rate-star-first{opacity:1;color:#f5a623}.ivu-rate-star{display:inline-block;margin:0;padding:0;margin-right:8px;position:relative;font-family:Ionicons;-webkit-transition:all .3s ease;transition:all .3s ease}.ivu-rate-star:hover{-webkit-transform:scale(1.1);-ms-transform:scale(1.1);transform:scale(1.1)}.ivu-rate-star-content:before,.ivu-rate-star:before{color:#e9e9e9;cursor:pointer;content:"\F2BF";-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:block}.ivu-rate-star-content{position:absolute;left:0;top:0;width:50%;height:100%;overflow:hidden}.ivu-rate-star-content:before{color:transparent}.ivu-rate-star-full:before,.ivu-rate-star-half .ivu-rate-star-content:before{color:#f5a623}.ivu-rate-star-full:hover:before,.ivu-rate-star-half:hover .ivu-rate-star-content:before{color:#f7b84f}.ivu-rate-text{margin-left:8px;vertical-align:middle;display:inline-block;font-size:14px}.ivu-upload input[type=file]{display:none}.ivu-upload-list{margin-top:8px}.ivu-upload-list-file{padding:4px;color:#515a6e;border-radius:4px;-webkit-transition:background-color .2s ease-in-out;transition:background-color .2s ease-in-out;overflow:hidden;position:relative}.ivu-upload-list-file>span{cursor:pointer;-webkit-transition:color .2s ease-in-out;transition:color .2s ease-in-out}.ivu-upload-list-file>span i{display:inline-block;width:12px;height:12px;color:#515a6e;text-align:center}.ivu-upload-list-file:hover{background:#f3f3f3}.ivu-upload-list-file:hover>span{color:#2d8cf0}.ivu-upload-list-file:hover>span i{color:#515a6e}.ivu-upload-list-file:hover .ivu-upload-list-remove{opacity:1}.ivu-upload-list-remove{opacity:0;font-size:18px;cursor:pointer;float:right;margin-right:4px;color:#999;-webkit-transition:all .2s ease;transition:all .2s ease}.ivu-upload-list-remove:hover{color:#444}.ivu-upload-select{display:inline-block}.ivu-upload-drag{background:#fff;border:1px dashed #dcdee2;border-radius:4px;text-align:center;cursor:pointer;position:relative;overflow:hidden;-webkit-transition:border-color .2s ease;transition:border-color .2s ease}.ivu-upload-drag:hover{border:1px dashed #2d8cf0}.ivu-upload-dragOver{border:2px dashed #2d8cf0}.ivu-tree{position:relative}.ivu-tree ul{list-style:none;margin:0;padding:0;font-size:14px}.ivu-tree ul.ivu-dropdown-menu{padding:0}.ivu-tree ul li{list-style:none;margin:8px 0;padding:0;white-space:nowrap;outline:0}.ivu-tree ul li.ivu-dropdown-item{margin:0;padding:7px 16px;white-space:nowrap}.ivu-tree li ul{margin:0;padding:0 0 0 18px}.ivu-tree-title{display:inline-block;margin:0;padding:0 4px;border-radius:3px;cursor:pointer;vertical-align:top;color:#515a6e;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.ivu-tree-title:hover{background-color:#eaf4fe}.ivu-tree-title-selected,.ivu-tree-title-selected:hover{background-color:#d5e8fc}.ivu-tree-arrow{cursor:pointer;width:12px;text-align:center;display:inline-block}.ivu-tree-arrow i{-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;font-size:14px;vertical-align:middle}.ivu-tree-arrow-open i{-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.ivu-tree .ivu-checkbox-wrapper{margin-right:4px;margin-left:4px}.ivu-tree-context-menu{position:absolute}.ivu-tree-empty{text-align:center;color:#c5c8ce;padding:5px 0}.ivu-avatar{display:inline-block;text-align:center;background:#ccc;color:#fff;white-space:nowrap;position:relative;overflow:hidden;vertical-align:middle;width:32px;height:32px;line-height:32px;border-radius:50%}.ivu-avatar-image{background:0 0}.ivu-avatar .ivu-icon{position:relative;top:-1px}.ivu-avatar.ivu-avatar-icon{font-size:18px}.ivu-avatar-large{width:40px;height:40px;line-height:40px;border-radius:50%}.ivu-avatar-large.ivu-avatar-icon{font-size:24px}.ivu-avatar-large .ivu-icon{position:relative;top:-2px}.ivu-avatar-small{width:24px;height:24px;line-height:24px;border-radius:50%}.ivu-avatar-small.ivu-avatar-icon{font-size:14px}.ivu-avatar-square{border-radius:4px}.ivu-avatar>img{width:100%;height:100%}.ivu-color-picker{display:inline-block}.ivu-color-picker-hide{display:none}.ivu-color-picker-hide-drop{visibility:hidden}.ivu-color-picker-disabled{background-color:#f3f3f3;opacity:1;cursor:not-allowed;color:#ccc}.ivu-color-picker-disabled:hover{border-color:#e3e5e8}.ivu-color-picker>div:first-child:hover .ivu-input{border-color:#57a3f3}.ivu-color-picker>div:first-child.ivu-color-picker-disabled:hover .ivu-input{border-color:#e3e5e8}.ivu-color-picker .ivu-select-dropdown{padding:0}.ivu-color-picker-input.ivu-input:focus{-webkit-box-shadow:none;box-shadow:none}.ivu-color-picker-focused{border-color:#57a3f3;outline:0;-webkit-box-shadow:0 0 0 2px rgba(45,140,240,.2);box-shadow:0 0 0 2px rgba(45,140,240,.2)}.ivu-color-picker-rel{line-height:0}.ivu-color-picker-color{width:18px;height:18px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==);border-radius:2px;position:relative;top:2px}.ivu-color-picker-color div{width:100%;height:100%;-webkit-box-shadow:inset 0 0 0 1px rgba(0,0,0,.15);box-shadow:inset 0 0 0 1px rgba(0,0,0,.15);border-radius:2px}.ivu-color-picker-color-empty{background:#fff;overflow:hidden;text-align:center}.ivu-color-picker-color-empty i{font-size:18px;vertical-align:baseline}.ivu-color-picker-color-focused{border-color:#57a3f3;outline:0;-webkit-box-shadow:0 0 0 2px rgba(45,140,240,.2);box-shadow:0 0 0 2px rgba(45,140,240,.2)}.ivu-color-picker-large .ivu-color-picker-color{width:20px;height:20px;top:1px}.ivu-color-picker-large .ivu-color-picker-color-empty i{font-size:20px}.ivu-color-picker-small .ivu-color-picker-color{width:14px;height:14px;top:3px}.ivu-color-picker-small .ivu-color-picker-color-empty i{font-size:14px}.ivu-color-picker-picker-wrapper{padding:8px 8px 0}.ivu-color-picker-picker-panel{width:240px;margin:0 auto;-webkit-box-sizing:initial;box-sizing:initial;position:relative}.ivu-color-picker-picker-alpha-slider,.ivu-color-picker-picker-hue-slider{height:10px;margin-top:8px;position:relative}.ivu-color-picker-picker-colors{margin-top:8px;overflow:hidden;border-radius:2px;-webkit-transition:border .2s ease-in-out,-webkit-box-shadow .2s ease-in-out;transition:border .2s ease-in-out,-webkit-box-shadow .2s ease-in-out;transition:border .2s ease-in-out,box-shadow .2s ease-in-out;transition:border .2s ease-in-out,box-shadow .2s ease-in-out,-webkit-box-shadow .2s ease-in-out}.ivu-color-picker-picker-colors:focus{border-color:#57a3f3;outline:0;-webkit-box-shadow:0 0 0 2px rgba(45,140,240,.2);box-shadow:0 0 0 2px rgba(45,140,240,.2)}.ivu-color-picker-picker-colors-wrapper{display:inline;width:20px;height:20px;float:left;position:relative}.ivu-color-picker-picker-colors-wrapper-color{outline:0;display:block;position:absolute;width:16px;height:16px;margin:2px;cursor:pointer;border-radius:2px;-webkit-box-shadow:inset 0 0 0 1px rgba(0,0,0,.15);box-shadow:inset 0 0 0 1px rgba(0,0,0,.15)}.ivu-color-picker-picker-colors-wrapper-circle{width:4px;height:4px;-webkit-box-shadow:0 0 0 1.5px #fff,inset 0 0 1px 1px rgba(0,0,0,.3),0 0 1px 2px rgba(0,0,0,.4);box-shadow:0 0 0 1.5px #fff,inset 0 0 1px 1px rgba(0,0,0,.3),0 0 1px 2px rgba(0,0,0,.4);border-radius:50%;-webkit-transform:translate(-2px,-2px);-ms-transform:translate(-2px,-2px);transform:translate(-2px,-2px);position:absolute;top:10px;left:10px;cursor:pointer}.ivu-color-picker-picker .ivu-picker-confirm{margin-top:8px}.ivu-color-picker-saturation-wrapper{width:100%;padding-bottom:75%;position:relative;-webkit-transition:border .2s ease-in-out,-webkit-box-shadow .2s ease-in-out;transition:border .2s ease-in-out,-webkit-box-shadow .2s ease-in-out;transition:border .2s ease-in-out,box-shadow .2s ease-in-out;transition:border .2s ease-in-out,box-shadow .2s ease-in-out,-webkit-box-shadow .2s ease-in-out}.ivu-color-picker-saturation-wrapper:focus{border-color:#57a3f3;outline:0;-webkit-box-shadow:0 0 0 2px rgba(45,140,240,.2);box-shadow:0 0 0 2px rgba(45,140,240,.2)}.ivu-color-picker-saturation,.ivu-color-picker-saturation--black,.ivu-color-picker-saturation--white{cursor:pointer;position:absolute;top:0;left:0;right:0;bottom:0}.ivu-color-picker-saturation--white{background:-webkit-gradient(linear,left top,right top,from(#fff),to(rgba(255,255,255,0)));background:linear-gradient(to right,#fff,rgba(255,255,255,0))}.ivu-color-picker-saturation--black{background:-webkit-gradient(linear,left bottom,left top,from(#000),to(rgba(0,0,0,0)));background:linear-gradient(to top,#000,rgba(0,0,0,0))}.ivu-color-picker-saturation-pointer{cursor:pointer;position:absolute}.ivu-color-picker-saturation-circle{width:4px;height:4px;-webkit-box-shadow:0 0 0 1.5px #fff,inset 0 0 1px 1px rgba(0,0,0,.3),0 0 1px 2px rgba(0,0,0,.4);box-shadow:0 0 0 1.5px #fff,inset 0 0 1px 1px rgba(0,0,0,.3),0 0 1px 2px rgba(0,0,0,.4);border-radius:50%;-webkit-transform:translate(-2px,-2px);-ms-transform:translate(-2px,-2px);transform:translate(-2px,-2px)}.ivu-color-picker-hue{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:2px;background:-webkit-gradient(linear,left top,right top,from(red),color-stop(17%,#ff0),color-stop(33%,#0f0),color-stop(50%,#0ff),color-stop(67%,#00f),color-stop(83%,#f0f),to(red));background:linear-gradient(to right,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red 100%);-webkit-transition:border .2s ease-in-out,-webkit-box-shadow .2s ease-in-out;transition:border .2s ease-in-out,-webkit-box-shadow .2s ease-in-out;transition:border .2s ease-in-out,box-shadow .2s ease-in-out;transition:border .2s ease-in-out,box-shadow .2s ease-in-out,-webkit-box-shadow .2s ease-in-out}.ivu-color-picker-hue:focus{border-color:#57a3f3;outline:0;-webkit-box-shadow:0 0 0 2px rgba(45,140,240,.2);box-shadow:0 0 0 2px rgba(45,140,240,.2)}.ivu-color-picker-hue-container{cursor:pointer;margin:0 2px;position:relative;height:100%}.ivu-color-picker-hue-pointer{z-index:2;position:absolute}.ivu-color-picker-hue-picker{cursor:pointer;margin-top:1px;width:4px;border-radius:1px;height:8px;-webkit-box-shadow:0 0 2px rgba(0,0,0,.6);box-shadow:0 0 2px rgba(0,0,0,.6);background:#fff;-webkit-transform:translateX(-2px);-ms-transform:translateX(-2px);transform:translateX(-2px)}.ivu-color-picker-alpha{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:2px;-webkit-transition:border .2s ease-in-out,-webkit-box-shadow .2s ease-in-out;transition:border .2s ease-in-out,-webkit-box-shadow .2s ease-in-out;transition:border .2s ease-in-out,box-shadow .2s ease-in-out;transition:border .2s ease-in-out,box-shadow .2s ease-in-out,-webkit-box-shadow .2s ease-in-out}.ivu-color-picker-alpha:focus{border-color:#57a3f3;outline:0;-webkit-box-shadow:0 0 0 2px rgba(45,140,240,.2);box-shadow:0 0 0 2px rgba(45,140,240,.2)}.ivu-color-picker-alpha-checkboard-wrap{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;border-radius:2px}.ivu-color-picker-alpha-checkerboard{position:absolute;top:0;right:0;bottom:0;left:0;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.ivu-color-picker-alpha-gradient{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:2px}.ivu-color-picker-alpha-container{cursor:pointer;position:relative;z-index:2;height:100%;margin:0 3px}.ivu-color-picker-alpha-pointer{z-index:2;position:absolute}.ivu-color-picker-alpha-picker{cursor:pointer;width:4px;border-radius:1px;height:8px;-webkit-box-shadow:0 0 2px rgba(0,0,0,.6);box-shadow:0 0 2px rgba(0,0,0,.6);background:#fff;margin-top:1px;-webkit-transform:translateX(-2px);-ms-transform:translateX(-2px);transform:translateX(-2px)}.ivu-color-picker-confirm{margin-top:8px;position:relative;border-top:1px solid #e8eaec;text-align:right;padding:8px;clear:both}.ivu-color-picker-confirm-color{position:absolute;top:11px;left:8px}.ivu-color-picker-confirm-color-editable{top:8px;right:110px}.ivu-color-picker-confirm-btn-cancel{margin-right:4px}.ivu-auto-complete .ivu-select-not-found{display:none}.ivu-auto-complete .ivu-icon-ios-close-circle{display:none;font-size:14px}.ivu-auto-complete:hover .ivu-icon-ios-close-circle{display:inline-block}.ivu-auto-complete.ivu-select-dropdown{max-height:none}.ivu-auto-complete div,.ivu-auto-complete:focus{outline:0}.ivu-divider{font-family:"Helvetica Neue",Helvetica,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","微软雅黑",Arial,sans-serif;font-size:14px;line-height:1.5;color:#515a6e;-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;list-style:none;background:#e8eaec}.ivu-divider,.ivu-divider-vertical{margin:0 8px;display:inline-block;height:.9em;width:1px;vertical-align:middle;position:relative;top:-.06em}.ivu-divider-horizontal{display:block;height:1px;width:100%;min-width:100%;margin:24px 0;clear:both}.ivu-divider-horizontal.ivu-divider-with-text-center,.ivu-divider-horizontal.ivu-divider-with-text-left,.ivu-divider-horizontal.ivu-divider-with-text-right{display:table;white-space:nowrap;text-align:center;background:0 0;font-weight:500;color:#17233d;font-size:16px;margin:16px 0}.ivu-divider-horizontal.ivu-divider-with-text-center:after,.ivu-divider-horizontal.ivu-divider-with-text-center:before,.ivu-divider-horizontal.ivu-divider-with-text-left:after,.ivu-divider-horizontal.ivu-divider-with-text-left:before,.ivu-divider-horizontal.ivu-divider-with-text-right:after,.ivu-divider-horizontal.ivu-divider-with-text-right:before{content:'';display:table-cell;top:50%;width:50%;border-top:1px solid #e8eaec;-webkit-transform:translateY(50%);-ms-transform:translateY(50%);transform:translateY(50%)}.ivu-divider-horizontal.ivu-divider-small.ivu-divider-with-text-center,.ivu-divider-horizontal.ivu-divider-small.ivu-divider-with-text-left,.ivu-divider-horizontal.ivu-divider-small.ivu-divider-with-text-right{font-size:14px;margin:8px 0}.ivu-divider-horizontal.ivu-divider-with-text-left .ivu-divider-inner-text,.ivu-divider-horizontal.ivu-divider-with-text-right .ivu-divider-inner-text{display:inline-block;padding:0 10px}.ivu-divider-horizontal.ivu-divider-with-text-left:before{top:50%;width:5%}.ivu-divider-horizontal.ivu-divider-with-text-left:after{top:50%;width:95%}.ivu-divider-horizontal.ivu-divider-with-text-right:before{top:50%;width:95%}.ivu-divider-horizontal.ivu-divider-with-text-right:after{top:50%;width:5%}.ivu-divider-inner-text{display:inline-block;padding:0 24px}.ivu-divider-dashed{background:0 0;border-top:1px dashed #e8eaec}.ivu-divider-horizontal.ivu-divider-with-text-left.ivu-divider-dashed,.ivu-divider-horizontal.ivu-divider-with-text-right.ivu-divider-dashed,.ivu-divider-horizontal.ivu-divider-with-text.ivu-divider-dashed{border-top:0}.ivu-divider-horizontal.ivu-divider-with-text-left.ivu-divider-dashed:after,.ivu-divider-horizontal.ivu-divider-with-text-left.ivu-divider-dashed:before,.ivu-divider-horizontal.ivu-divider-with-text-right.ivu-divider-dashed:after,.ivu-divider-horizontal.ivu-divider-with-text-right.ivu-divider-dashed:before,.ivu-divider-horizontal.ivu-divider-with-text.ivu-divider-dashed:after,.ivu-divider-horizontal.ivu-divider-with-text.ivu-divider-dashed:before{border-style:dashed none none}.ivu-divider-plain.ivu-divider-with-text,.ivu-divider-plain.ivu-divider-with-text-left,.ivu-divider-plain.ivu-divider-with-text-right{color:#515a6e;font-weight:400;font-size:14px}.ivu-anchor{position:relative;padding-left:2px}.ivu-anchor-wrapper{overflow:auto;padding-left:4px;margin-left:-4px}.ivu-anchor-ink{position:absolute;height:100%;left:0;top:0}.ivu-anchor-ink:before{content:' ';position:relative;width:2px;height:100%;display:block;background-color:#e8eaec;margin:0 auto}.ivu-anchor-ink-ball{display:inline-block;position:absolute;width:8px;height:8px;border-radius:50%;border:2px solid #2d8cf0;background-color:#fff;left:50%;-webkit-transition:top .2s ease-in-out;transition:top .2s ease-in-out;-webkit-transform:translate(-50%,2px);-ms-transform:translate(-50%,2px);transform:translate(-50%,2px)}.ivu-anchor.fixed .ivu-anchor-ink .ivu-anchor-ink-ball{display:none}.ivu-anchor-link{padding:8px 0 8px 16px;line-height:1}.ivu-anchor-link-title{display:block;position:relative;-webkit-transition:all .3s;transition:all .3s;color:#515a6e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:8px}.ivu-anchor-link-title:only-child{margin-bottom:0}.ivu-anchor-link-active>.ivu-anchor-link-title{color:#2d8cf0}.ivu-anchor-link .ivu-anchor-link{padding-top:6px;padding-bottom:6px}.ivu-time-with-hash{cursor:pointer}.ivu-time-with-hash:hover{text-decoration:underline}.ivu-cell{position:relative;overflow:hidden}.ivu-cell-link,.ivu-cell-link:active,.ivu-cell-link:hover{color:inherit}.ivu-cell-icon{display:inline-block;margin-right:4px;font-size:14px;vertical-align:middle}.ivu-cell-icon:empty{display:none}.ivu-cell-main{display:inline-block;vertical-align:middle}.ivu-cell-title{line-height:24px;font-size:14px}.ivu-cell-label{line-height:1.2;font-size:12px;color:#808695}.ivu-cell-selected .ivu-cell-label{color:inherit}.ivu-cell-selected,.ivu-cell.ivu-cell-selected:hover{background:#f0faff}.ivu-cell-footer{display:inline-block;position:absolute;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);top:50%;right:16px;color:#515a6e}.ivu-cell-with-link .ivu-cell-footer{right:32px}.ivu-cell-selected .ivu-cell-footer{color:inherit}.ivu-cell-arrow{display:inline-block;position:absolute;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);top:50%;right:16px;font-size:14px}.ivu-cell:focus{background:#f3f3f3;outline:0}.ivu-cell-selected:focus{background:rgba(40,123,211,.91)}.ivu-cell{margin:0;line-height:normal;padding:7px 16px;clear:both;color:#515a6e;font-size:14px!important;white-space:nowrap;list-style:none;cursor:pointer;-webkit-transition:background .2s ease-in-out;transition:background .2s ease-in-out}.ivu-cell:hover{background:#f3f3f3}.ivu-cell-focus{background:#f3f3f3}.ivu-cell-disabled{color:#c5c8ce;cursor:not-allowed}.ivu-cell-disabled:hover{color:#c5c8ce;background-color:#fff;cursor:not-allowed}.ivu-cell-selected,.ivu-cell-selected:hover{color:#2d8cf0}.ivu-cell-divided{margin-top:5px;border-top:1px solid #e8eaec}.ivu-cell-divided:before{content:'';height:5px;display:block;margin:0 -16px;background-color:#fff;position:relative;top:-7px}.ivu-cell-enter{color:#2d8cf0;font-weight:700;float:right}.ivu-cell-large .ivu-cell{padding:7px 16px 8px;font-size:14px!important}@-moz-document url-prefix(){.ivu-cell{white-space:normal}}.ivu-drawer{width:auto;height:100%;position:fixed;top:0}.ivu-drawer-inner{position:absolute}.ivu-drawer-left{left:0}.ivu-drawer-right{right:0}.ivu-drawer-bottom,.ivu-drawer-top{width:100%;height:auto;top:auto}.ivu-drawer-bottom{bottom:0}.ivu-drawer-hidden{display:none!important}.ivu-drawer-wrap{position:fixed;overflow:auto;top:0;right:0;bottom:0;left:0;z-index:1000;-webkit-overflow-scrolling:touch;outline:0}.ivu-drawer-wrap-inner{position:absolute;overflow:hidden}.ivu-drawer-wrap-dragging{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ivu-drawer-wrap *{-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-tap-highlight-color:transparent}.ivu-drawer-mask{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(55,55,55,.6);height:100%;z-index:1000}.ivu-drawer-mask-hidden{display:none}.ivu-drawer-mask-inner{position:absolute}.ivu-drawer-content{width:100%;height:100%;position:absolute;top:0;bottom:0;background-color:#fff;border:0;background-clip:padding-box;-webkit-box-shadow:0 4px 12px rgba(0,0,0,.15);box-shadow:0 4px 12px rgba(0,0,0,.15)}.ivu-drawer-content-no-mask{pointer-events:auto}.ivu-drawer-header{border-bottom:1px solid #e8eaec;padding:14px 16px;line-height:1}.ivu-drawer-header p,.ivu-drawer-header-inner{display:inline-block;width:100%;height:20px;line-height:20px;font-size:16px;color:#17233d;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ivu-drawer-close{z-index:1;font-size:12px;position:absolute;right:8px;top:8px;overflow:hidden;cursor:pointer}.ivu-drawer-close .ivu-icon-ios-close{font-size:31px;color:#999;-webkit-transition:color .2s ease;transition:color .2s ease;position:relative;top:1px}.ivu-drawer-close .ivu-icon-ios-close:hover{color:#444}.ivu-drawer-body{width:100%;height:calc(100% - 51px);padding:16px;font-size:14px;line-height:1.5;word-wrap:break-word;position:absolute;overflow:auto}.ivu-drawer-no-header .ivu-drawer-body{height:100%}.ivu-drawer-no-mask{pointer-events:none}.ivu-drawer-no-mask .ivu-drawer-drag{pointer-events:auto}.ivu-drawer-drag{top:0;height:100%;width:0;position:absolute}.ivu-drawer-drag-left{right:0}.ivu-drawer-drag-bottom,.ivu-drawer-drag-top{top:auto;width:100%;height:0}.ivu-drawer-drag-top{bottom:0}.ivu-drawer-drag-bottom{top:0}.ivu-drawer-drag-move-trigger{width:8px;height:100px;line-height:100px;position:absolute;top:50%;background:#f3f3f3;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);border-radius:4px;-webkit-box-shadow:0 0 1px 1px rgba(0,0,0,.2);box-shadow:0 0 1px 1px rgba(0,0,0,.2);cursor:col-resize}.ivu-drawer-drag-move-trigger-point{display:inline-block;width:50%;-webkit-transform:translateX(50%);-ms-transform:translateX(50%);transform:translateX(50%)}.ivu-drawer-drag-move-trigger-point i{display:block;border-bottom:1px solid silver;padding-bottom:2px}.ivu-drawer-drag-bottom .ivu-drawer-drag-move-trigger,.ivu-drawer-drag-top .ivu-drawer-drag-move-trigger{width:100px;height:8px;line-height:8px;top:auto;left:50%;cursor:row-resize}.ivu-drawer-drag-bottom .ivu-drawer-drag-move-trigger-point,.ivu-drawer-drag-top .ivu-drawer-drag-move-trigger-point{width:100%;height:50%;-webkit-transform:translateY(-75%);-ms-transform:translateY(-75%);transform:translateY(-75%);text-align:center}.ivu-drawer-drag-bottom .ivu-drawer-drag-move-trigger-point i,.ivu-drawer-drag-top .ivu-drawer-drag-move-trigger-point i{display:inline-block;border-bottom:inherit;width:1px;height:100%;border-left:1px solid silver;padding-bottom:inherit;margin-left:2px}.ivu-breadcrumb{color:#999;font-size:14px}.ivu-breadcrumb a{color:#515a6e;-webkit-transition:color .2s ease-in-out;transition:color .2s ease-in-out}.ivu-breadcrumb a:hover{color:#57a3f3}.ivu-breadcrumb>span:last-child{font-weight:700;color:#515a6e}.ivu-breadcrumb>span:last-child .ivu-breadcrumb-item-separator{display:none}.ivu-breadcrumb-item-separator{margin:0 8px;color:#dcdee2}.ivu-breadcrumb-item-link>.ivu-icon+span{margin-left:4px}.ivu-list{position:relative}.ivu-list-items{margin:0;padding:0;list-style:none}.ivu-list-item{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:12px 0}.ivu-list-item-content{color:#515a6e}.ivu-list-item-meta{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex:1;flex:1;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;font-size:0}.ivu-list-item-meta-avatar{margin-right:16px}.ivu-list-item-meta-content{-webkit-box-flex:1;-ms-flex:1 0;flex:1 0}.ivu-list-item-meta-title{font-weight:500;margin-bottom:4px;color:#515a6e;font-size:14px;line-height:22px}.ivu-list-item-meta-title>a{color:#515a6e;-webkit-transition:all .2s;transition:all .2s}.ivu-list-item-meta-title>a:hover{color:#2d8cf0}.ivu-list-item-meta-description{color:rgba(0,0,0,.45);font-size:14px;line-height:22px}.ivu-list-item-action{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;margin-left:48px;padding:0;font-size:0;list-style:none}.ivu-list-item-action>li{position:relative;display:inline-block;padding:0 8px;color:rgba(0,0,0,.45);font-size:14px;line-height:22px;text-align:center;cursor:pointer}.ivu-list-item-action>li:after{content:'';position:absolute;top:50%;right:0;width:1px;height:14px;margin-top:-7px;background-color:#e8eaec}.ivu-list-item-action>li:first-child{padding-left:0}.ivu-list-item-action>li:last-child:after{display:none}.ivu-list-header{background:0 0}.ivu-list-footer{background:0 0}.ivu-list-footer,.ivu-list-header{padding-top:12px;padding-bottom:12px}.ivu-list-split .ivu-list-item{border-bottom:1px solid #e8eaec}.ivu-list-split .ivu-list-item:last-child{border-bottom:none}.ivu-list-split .ivu-list-header{border-bottom:1px solid #e8eaec}.ivu-list-split .ivu-list-footer{border-top:1px solid #e8eaec}.ivu-list-large .ivu-list-item{padding-top:16px;padding-bottom:16px}.ivu-list-small .ivu-list-item{padding-top:8px;padding-bottom:8px}.ivu-list-vertical .ivu-list-item{-webkit-box-align:initial;-ms-flex-align:initial;align-items:initial}.ivu-list-vertical .ivu-list-item-main{display:block;-webkit-box-flex:1;-ms-flex:1;flex:1}.ivu-list-vertical .ivu-list-item-extra{margin-left:40px}.ivu-list-vertical .ivu-list-item-meta{margin-bottom:16px}.ivu-list-vertical .ivu-list-item-meta-title{margin-bottom:12px;color:rgba(0,0,0,.85);font-size:16px;line-height:24px}.ivu-list-vertical .ivu-list-item-action{margin-top:16px;margin-left:auto}.ivu-list-vertical .ivu-list-item-action>li{padding:0 16px}.ivu-list-vertical .ivu-list-item-action>li:first-child{padding-left:0}.ivu-list-item-no-flex{display:block}.ivu-list:not(.ivu-list-vertical) .ivu-list-item-no-flex .ivu-list-item-action{float:right}.ivu-list-bordered{border:1px solid #dcdee2;border-radius:6px}.ivu-list-bordered .ivu-list-header{padding-right:24px;padding-left:24px}.ivu-list-bordered .ivu-list-footer{padding-right:24px;padding-left:24px}.ivu-list-bordered .ivu-list-item{padding-right:24px;padding-left:24px;border-bottom:1px solid #e8eaec}.ivu-list-bordered .ivu-list-pagination{margin:16px 24px}.ivu-list-bordered.ivu-list-small .ivu-list-item{padding-right:16px;padding-left:16px}.ivu-list-bordered.ivu-list-small .ivu-list-footer,.ivu-list-bordered.ivu-list-small .ivu-list-header{padding:8px 16px}.ivu-list-bordered.ivu-list-large .ivu-list-footer,.ivu-list-bordered.ivu-list-large .ivu-list-header{padding:16px 24px}@media screen and (max-width:768px){.ivu-list-item-action{margin-left:24px}.ivu-list-vertical .ivu-list-item-extra{margin-left:24px}}@media screen and (max-width:576px){.ivu-list-item{-ms-flex-wrap:wrap;flex-wrap:wrap}.ivu-list-item-action{margin-left:12px}.ivu-list-vertical .ivu-list-item{-ms-flex-wrap:wrap-reverse;flex-wrap:wrap-reverse}.ivu-list-vertical .ivu-list-item-main{min-width:220px}.ivu-list-vertical .ivu-list-item-extra{margin:auto auto 16px}}.ivu-image{display:inline-block;position:relative}.ivu-image-error,.ivu-image-img,.ivu-image-inner,.ivu-image-mark,.ivu-image-placeholder{width:100%;height:100%}.ivu-image-inner{position:relative}.ivu-image-img{vertical-align:middle}.ivu-image-img-hidden{visibility:hidden}.ivu-image-cursor{cursor:pointer}.ivu-image-error,.ivu-image-mark,.ivu-image-placeholder{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;position:absolute;left:0;top:0;right:0;bottom:0}.ivu-image-mark{background-color:rgba(0,0,0,.3);z-index:1;color:#fff;cursor:pointer;opacity:0;-webkit-transition:opacity .3s;transition:opacity .3s}.ivu-image-inner:hover .ivu-image-mark{opacity:1}.ivu-image-preview{height:100%;position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.ivu-image-preview-mask{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(55,55,55,.6);height:100%;z-index:1000}.ivu-image-preview-mask-hidden{display:none}.ivu-image-preview-wrap{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;overflow:hidden}.ivu-image-preview-transition{-webkit-transition:-webkit-transform .3s ease;transition:-webkit-transform .3s ease;transition:transform .3s ease;transition:transform .3s ease,-webkit-transform .3s ease}.ivu-image-preview-image{cursor:-webkit-grab;cursor:grab}.ivu-image-preview-grabbing{cursor:-webkit-grabbing;cursor:grabbing}.ivu-image-preview-limit{max-width:100%;max-height:100%}.ivu-image-preview-fail,.ivu-image-preview-loading{position:absolute;z-index:1;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.ivu-image-preview-fail{color:#fff;font-size:16px}.ivu-image-preview-hidden{display:none}.ivu-image-preview-operations{height:40px;position:absolute;left:50%;bottom:30px;z-index:1;border-radius:4px;overflow:hidden;background:rgba(55,55,55,.4);-webkit-transform:translate(-50%);-ms-transform:translate(-50%);transform:translate(-50%)}.ivu-image-preview-operations-item{margin:0 6px;padding:4px 8px;width:36px;height:40px;color:#fff;cursor:pointer;-webkit-transition:opacity .1s ease-in-out;transition:opacity .1s ease-in-out}.ivu-image-preview-operations-item:hover{opacity:.75}.ivu-image-preview-operations-wait{cursor:wait}.ivu-image-preview-arrow-close,.ivu-image-preview-arrow-left,.ivu-image-preview-arrow-right{width:40px;height:40px;line-height:40px;border-radius:50%;color:#fff;cursor:pointer;z-index:1;font-size:26px;background:rgba(55,55,55,.4)}.ivu-image-preview-arrow-close{position:absolute;right:16px;top:16px}.ivu-image-preview-arrow-left,.ivu-image-preview-arrow-right{position:absolute;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%)}.ivu-image-preview-arrow-left{left:16px}.ivu-image-preview-arrow-right{right:16px}.ivu-image-preview-arrow-disabled{cursor:not-allowed;color:#c5c8ce}.ivu-typography{color:#515a6e;overflow-wrap:break-word}.ivu-typography.ivu-typography-secondary{color:rgba(0,0,0,.45)}.ivu-typography.ivu-typography-success{color:#19be6b}.ivu-typography.ivu-typography-warning{color:#f90}.ivu-typography.ivu-typography-danger{color:#ed4014}a.ivu-typography.ivu-typography-danger:active,a.ivu-typography.ivu-typography-danger:focus{color:#c72606}a.ivu-typography.ivu-typography-danger:hover{color:#fa683c}.ivu-typography.ivu-typography-disabled{color:rgba(0,0,0,.25);cursor:not-allowed;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ivu-typography p,div.ivu-typography{margin-bottom:1em}.ivu-typography h1,div.ivu-typography-h1,div.ivu-typography-h1 textarea,h1.ivu-typography{margin-bottom:.5em;color:rgba(0,0,0,.85);font-weight:600;font-size:38px;line-height:1.23}.ivu-typography h2,div.ivu-typography-h2,div.ivu-typography-h2 textarea,h2.ivu-typography{margin-bottom:.5em;color:rgba(0,0,0,.85);font-weight:600;font-size:30px;line-height:1.35}.ivu-typography h3,div.ivu-typography-h3,div.ivu-typography-h3 textarea,h3.ivu-typography{margin-bottom:.5em;color:rgba(0,0,0,.85);font-weight:600;font-size:24px;line-height:1.35}.ivu-typography h4,div.ivu-typography-h4,div.ivu-typography-h4 textarea,h4.ivu-typography{margin-bottom:.5em;color:rgba(0,0,0,.85);font-weight:600;font-size:20px;line-height:1.4}.ivu-typography h5,div.ivu-typography-h5,div.ivu-typography-h5 textarea,h5.ivu-typography{margin-bottom:.5em;color:rgba(0,0,0,.85);font-weight:600;font-size:16px;line-height:1.5}.ivu-typography h6,div.ivu-typography-h6,div.ivu-typography-h6 textarea,h6.ivu-typography{margin-bottom:.5em;color:rgba(0,0,0,.85);font-weight:600;font-size:14px;line-height:1.5}.ivu-typography+h1.ivu-typography,.ivu-typography+h2.ivu-typography,.ivu-typography+h3.ivu-typography,.ivu-typography+h4.ivu-typography,.ivu-typography+h5.ivu-typography,.ivu-typography+h6.ivu-typography{margin-top:1.2em}.ivu-typography div+h1,.ivu-typography div+h2,.ivu-typography div+h3,.ivu-typography div+h4,.ivu-typography div+h5,.ivu-typography div+h6,.ivu-typography h1+h1,.ivu-typography h1+h2,.ivu-typography h1+h3,.ivu-typography h1+h4,.ivu-typography h1+h5,.ivu-typography h1+h6,.ivu-typography h2+h1,.ivu-typography h2+h2,.ivu-typography h2+h3,.ivu-typography h2+h4,.ivu-typography h2+h5,.ivu-typography h2+h6,.ivu-typography h3+h1,.ivu-typography h3+h2,.ivu-typography h3+h3,.ivu-typography h3+h4,.ivu-typography h3+h5,.ivu-typography h3+h6,.ivu-typography h4+h1,.ivu-typography h4+h2,.ivu-typography h4+h3,.ivu-typography h4+h4,.ivu-typography h4+h5,.ivu-typography h4+h6,.ivu-typography h5+h1,.ivu-typography h5+h2,.ivu-typography h5+h3,.ivu-typography h5+h4,.ivu-typography h5+h5,.ivu-typography h5+h6,.ivu-typography h6+h1,.ivu-typography h6+h2,.ivu-typography h6+h3,.ivu-typography h6+h4,.ivu-typography h6+h5,.ivu-typography h6+h6,.ivu-typography li+h1,.ivu-typography li+h2,.ivu-typography li+h3,.ivu-typography li+h4,.ivu-typography li+h5,.ivu-typography li+h6,.ivu-typography p+h1,.ivu-typography p+h2,.ivu-typography p+h3,.ivu-typography p+h4,.ivu-typography p+h5,.ivu-typography p+h6,.ivu-typography ul+h1,.ivu-typography ul+h2,.ivu-typography ul+h3,.ivu-typography ul+h4,.ivu-typography ul+h5,.ivu-typography ul+h6{margin-top:1.2em}a.ivu-typography-ellipsis,span.ivu-typography-ellipsis{display:inline-block;max-width:100%}.ivu-typography a,a.ivu-typography{color:#2d8cf0;outline:0;cursor:pointer;-webkit-transition:color .3s;transition:color .3s;text-decoration:none}.ivu-typography a:focus,.ivu-typography a:hover,a.ivu-typography:focus,a.ivu-typography:hover{color:#57a3f3}.ivu-typography a:active,a.ivu-typography:active{color:#2b85e4}.ivu-typography a:active,.ivu-typography a:hover,a.ivu-typography:active,a.ivu-typography:hover{text-decoration:none}.ivu-typography a.ivu-typography-disabled,.ivu-typography a[disabled],a.ivu-typography.ivu-typography-disabled,a.ivu-typography[disabled]{color:rgba(0,0,0,.25);cursor:not-allowed}.ivu-typography a.ivu-typography-disabled:active,.ivu-typography a.ivu-typography-disabled:hover,.ivu-typography a[disabled]:active,.ivu-typography a[disabled]:hover,a.ivu-typography.ivu-typography-disabled:active,a.ivu-typography.ivu-typography-disabled:hover,a.ivu-typography[disabled]:active,a.ivu-typography[disabled]:hover{color:rgba(0,0,0,.25)}.ivu-typography a.ivu-typography-disabled:active,.ivu-typography a[disabled]:active,a.ivu-typography.ivu-typography-disabled:active,a.ivu-typography[disabled]:active{pointer-events:none}.ivu-typography code{margin:0 .2em;padding:.2em .4em .1em;font-size:85%;background:rgba(150,150,150,.1);border:1px solid rgba(100,100,100,.2);border-radius:3px}.ivu-typography kbd{margin:0 .2em;padding:.15em .4em .1em;font-size:90%;background:rgba(150,150,150,.06);border:1px solid rgba(100,100,100,.2);border-bottom-width:2px;border-radius:3px}.ivu-typography mark{padding:0;background-color:#ffe58f}.ivu-typography ins,.ivu-typography u{text-decoration:underline;-webkit-text-decoration-skip:ink;text-decoration-skip-ink:auto}.ivu-typography del,.ivu-typography s{text-decoration:line-through}.ivu-typography strong{font-weight:600}.ivu-typography-copy,.ivu-typography-edit,.ivu-typography-expand{color:#2d8cf0;text-decoration:none;outline:0;cursor:pointer;-webkit-transition:color .3s;transition:color .3s;margin-left:4px}.ivu-typography-copy:focus,.ivu-typography-copy:hover,.ivu-typography-edit:focus,.ivu-typography-edit:hover,.ivu-typography-expand:focus,.ivu-typography-expand:hover{color:#57a3f3}.ivu-typography-copy:active,.ivu-typography-edit:active,.ivu-typography-expand:active{color:#2b85e4}.ivu-typography-copy,.ivu-typography-edit{display:inline-block}.ivu-typography-copy-success,.ivu-typography-copy-success:focus,.ivu-typography-copy-success:hover{color:#19be6b}.ivu-typography-edit-content{position:relative}div.ivu-typography-edit-content{left:-8px;margin-top:-5.5px;margin-bottom:calc(1em - 5.5px)}.ivu-typography-edit-content-confirm{position:absolute;right:10px;bottom:6px;color:rgba(0,0,0,.45);font-weight:400;font-size:14px;font-style:normal;pointer-events:none}.ivu-typography-edit-content textarea{resize:none;height:1em;margin:0!important;-moz-transition:none}.ivu-typography ol,.ivu-typography ul{margin:0 0 1em;padding:0}.ivu-typography ol li,.ivu-typography ul li{margin:0 0 0 20px;padding:0 0 0 4px}.ivu-typography ul{list-style-type:circle}.ivu-typography ul ul{list-style-type:disc}.ivu-typography ol{list-style-type:decimal}.ivu-typography blockquote,.ivu-typography pre{margin:1em 0}.ivu-typography pre{padding:.4em .6em;white-space:pre-wrap;word-wrap:break-word;background:rgba(150,150,150,.1);border:1px solid rgba(100,100,100,.2);border-radius:3px}.ivu-typography pre code{display:inline;margin:0;padding:0;font-size:inherit;font-family:inherit;background:0 0;border:0}.ivu-typography blockquote{padding:0 0 0 .6em;border-left:4px solid rgba(100,100,100,.2);opacity:.85}.ivu-typography-single-line{white-space:nowrap}.ivu-typography-ellipsis-single-line{overflow:hidden;text-overflow:ellipsis}a.ivu-typography-ellipsis-single-line,span.ivu-typography-ellipsis-single-line{vertical-align:bottom}.ivu-typography-ellipsis-line-clamp{display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}a.ivu-typography-ellipsis-line-clamp,span.ivu-typography-ellipsis-line-clamp{display:-webkit-inline-box}.ivu-space{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}.ivu-space-flex{display:-webkit-box;display:-ms-flexbox;display:flex}.ivu-space-vertical{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.ivu-space-wrap{-ms-flex-wrap:wrap;flex-wrap:wrap}.ivu-space-start{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.ivu-space-end{-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end}.ivu-space-center{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.ivu-space-baseline{-webkit-box-align:baseline;-ms-flex-align:baseline;align-items:baseline}.ivu-space-stretch{-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch}.ivu-auth-prevent{display:inline-block;cursor:pointer}.ivu-auth-prevent-no-match{pointer-events:none}.ivu-avatar-list{display:inline-block}.ivu-avatar-list-item{display:inline-block;margin-left:-8px;cursor:pointer}.ivu-avatar-list-item:first-child{margin-left:0}.ivu-avatar-list-item .ivu-avatar{border:1px solid #fff}.ivu-avatar-list-item-excess{cursor:auto}.ivu-avatar-list-large .ivu-avatar-list-item{margin-left:-16px}.ivu-avatar-list-large .ivu-avatar-list-item:first-child{margin-left:0}.ivu-avatar-list-large .ivu-avatar-list-item-excess{font-size:16px}.ivu-avatar-list-default .ivu-avatar-list-item{margin-left:-12px}.ivu-avatar-list-default .ivu-avatar-list-item:first-child{margin-left:0}.ivu-calendar-header{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;padding:12px;border-bottom:1px solid #e8eaec}.ivu-calendar-header-title{color:#17233d;font-size:18px}.ivu-calendar-table{table-layout:fixed;width:100%}.ivu-calendar-table thead th{padding:24px 0 6px 6px;text-align:left;font-size:14px}.ivu-calendar-table td{font-size:14px;border-bottom:1px solid #e8eaec;border-right:1px solid #e8eaec;vertical-align:top}.ivu-calendar-table tr:first-child td{border-top:1px solid #e8eaec}.ivu-calendar-table tr td:first-child{border-left:1px solid #e8eaec}.ivu-calendar-table-day{-webkit-box-sizing:border-box;box-sizing:border-box;height:100px;padding:6px;-webkit-transition:background-color .2s ease-in-out;transition:background-color .2s ease-in-out;cursor:pointer}.ivu-calendar-table-day:hover{background-color:#f0faff}.ivu-calendar-table-day-other .ivu-calendar-table-day-title{color:#c5c8ce}.ivu-calendar-table-day-current{background-color:#f0faff}.ivu-calendar-table-day-current .ivu-calendar-table-day-title{color:#2d8cf0}.ivu-calendar-table-year{padding-top:24px}.ivu-city{display:inline-block;width:100%;position:relative}.ivu-city .ivu-dropdown{width:100%}.ivu-city-rel{display:inline-block;width:100%;position:relative;cursor:pointer}.ivu-city-disabled .ivu-city-rel{cursor:not-allowed}.ivu-city-arrow{-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.ivu-city-visible .ivu-city-arrow:nth-of-type(2){-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.ivu-city .ivu-select-dropdown{width:400px}.ivu-city-drop{width:400px;padding:2px 8px}.ivu-city-drop-cities{margin-bottom:8px}.ivu-city-drop-cities span{display:inline-block;margin-right:4px;cursor:pointer}.ivu-city-drop-cities span:hover{color:#57a3f3}.ivu-city-drop-menu{margin-bottom:8px}.ivu-city-drop-type{display:inline-block}.ivu-city-drop-search{display:inline-block;margin-left:8px}.ivu-city-drop-list-letter{margin-bottom:8px}.ivu-city-drop-list-letter .ivu-tag{cursor:pointer}.ivu-city-drop-list-letter .ivu-tag:hover .ivu-tag-text{color:#57a3f3}.ivu-city-drop-list-main{max-height:200px;overflow:auto}.ivu-city-drop-list-main dt{float:left;font-weight:700}.ivu-city-drop-list-main dd{white-space:normal;-webkit-margin-start:40px;margin-inline-start:40px;margin-bottom:8px}.ivu-city-drop-list-main dd li{display:inline-block;margin-right:9px;cursor:pointer}.ivu-city-drop-list-main dd li:hover{color:#57a3f3}.ivu-city-drop-list-main-city dd{-webkit-margin-start:24px;margin-inline-start:24px}.ivu-city-transfer.ivu-select-dropdown{max-height:none;overflow:visible}.ivu-description-list-title{margin-bottom:16px;color:#17233d;font-weight:500;font-size:14px}.ivu-description-term{display:table-cell;padding-bottom:16px;color:#17233d;line-height:20px;white-space:nowrap}.ivu-description-detail{display:table-cell;width:100%;padding-bottom:16px;color:#515a6e;line-height:20px}.ivu-description-list-vertical .ivu-description-term{display:block;padding-bottom:8px}.ivu-description-list-vertical .ivu-description-detail{display:block}.ivu-ellipsis-hidden{visibility:hidden}.ivu-exception{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:80%;min-height:500px}.ivu-exception-img{-webkit-box-flex:0;-ms-flex:0 0 62.5%;flex:0 0 62.5%;width:62.5%;padding-right:152px;zoom:1}.ivu-exception-img::after,.ivu-exception-img::before{content:' ';display:table}.ivu-exception-img::after{clear:both;height:0;font-size:0;visibility:hidden}.ivu-exception-img-element{float:right;width:100%;max-width:430px;height:360px;background-repeat:no-repeat;background-position:50% 50%;background-size:contain}.ivu-exception-content{-webkit-box-flex:1;-ms-flex:auto;flex:auto}.ivu-exception-content h1{margin-bottom:24px;color:#515a6e;font-weight:600;font-size:72px;line-height:72px}.ivu-exception-content-desc{margin-bottom:16px;color:#808695;font-size:20px;line-height:28px}.ivu-exception-content-actions button:not(:last-child){margin-right:8px}@media screen and (max-width:768px){.ivu-exception-img{padding-right:88px}}@media screen and (max-width:576px){.ivu-exception{display:block;text-align:center}.ivu-exception-img{margin:0 auto 24px;padding-right:0}}@media screen and (max-width:480px){.ivu-exception-img{margin-bottom:-24px;overflow:hidden}}.ivu-footer-toolbar{position:fixed;right:0;bottom:0;z-index:9;width:100%;height:56px;padding:0 24px;line-height:56px;background:#fff;border-top:1px solid #e8eaec;-webkit-box-shadow:0 -1px 2px rgba(0,0,0,.03);box-shadow:0 -1px 2px rgba(0,0,0,.03)}.ivu-footer-toolbar::after{display:block;clear:both;content:''}.ivu-footer-toolbar-left{float:left}.ivu-footer-toolbar-right{float:right}.ivu-footer-toolbar button+button{margin-left:8px}.ivu-global-footer{margin:48px 0 24px 0;padding:0 16px;text-align:center}.ivu-global-footer-links{margin-bottom:8px}.ivu-global-footer-links a{font-size:14px;color:#808695;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.ivu-global-footer-links a:not(:last-child){margin-right:40px}.ivu-global-footer-links a:hover{color:#515a6e}.ivu-global-footer-copyright{color:#808695;font-size:14px}.ivu-grid:after{content:'';display:block;clear:both}.ivu-grid-item{position:relative;float:left;width:33.33%;-webkit-box-sizing:border-box;box-sizing:border-box;border:0;border-radius:0;-webkit-transition:-webkit-box-shadow .2s ease-in-out;transition:-webkit-box-shadow .2s ease-in-out;transition:box-shadow .2s ease-in-out;transition:box-shadow .2s ease-in-out,-webkit-box-shadow .2s ease-in-out}.ivu-grid-item-main{padding:24px}.ivu-grid-border .ivu-grid-item{-webkit-box-shadow:1px 0 0 0 #e8eaec,0 1px 0 0 #e8eaec,1px 1px 0 0 #e8eaec,1px 0 0 0 #e8eaec inset,0 1px 0 0 #e8eaec inset;box-shadow:1px 0 0 0 #e8eaec,0 1px 0 0 #e8eaec,1px 1px 0 0 #e8eaec,1px 0 0 0 #e8eaec inset,0 1px 0 0 #e8eaec inset}.ivu-grid-hover .ivu-grid-item:hover{z-index:1;-webkit-box-shadow:0 1px 6px rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.2)}.ivu-grid-center .ivu-grid-item-main{width:100%;position:absolute;top:50%;-webkit-transform:translate(0,-50%);-ms-transform:translate(0,-50%);transform:translate(0,-50%);text-align:center}.ivu-notifications{display:inline-block}.ivu-notifications-rel{display:inline-block;cursor:pointer}.ivu-notifications-list{width:300px;line-height:normal}.ivu-notifications-list-wide{width:auto}.ivu-notifications .ivu-tabs-nav-scroll,.ivu-notifications-transfer .ivu-tabs-nav-scroll{text-align:center}.ivu-notifications .ivu-tabs-nav,.ivu-notifications-transfer .ivu-tabs-nav{display:inline-block;float:none}.ivu-notifications-tabs .ivu-badge{margin-left:3px}.ivu-notifications-tabs .ivu-badge-count{background:#e6ebf1;color:#808695;min-width:16px;height:16px;line-height:14px;border-radius:8px;padding:0 4px}.ivu-notifications-tabs .ivu-tabs-tab:last-child{margin-right:0}.ivu-notifications-tabs .ivu-tabs-bar{margin-bottom:0}.ivu-notifications-extra{border-top:1px solid #e8eaec}.ivu-notifications-tab-empty{text-align:center;padding:64px 0}.ivu-notifications-tab-empty-img{display:inline-block;height:64px}.ivu-notifications-tab-empty-text{color:#808695}.ivu-notifications-tab-clear{border-top:1px solid #e8eaec;text-align:center;font-size:14px;cursor:pointer;padding:6px 0;color:#515a6e;-webkit-transition:color .2s ease-in-out;transition:color .2s ease-in-out}.ivu-notifications-tab-clear:hover{color:#57a3f3}.ivu-notifications-tab-loading-item{border-top:1px solid #e8eaec;text-align:center;font-size:14px;padding:6px 0;color:#515a6e;-webkit-transition:color .2s ease-in-out;transition:color .2s ease-in-out}.ivu-notifications-tab-loading-all,.ivu-notifications-tab-loading-show{color:#c5c8ce}.ivu-notifications-tab-loading-more{cursor:pointer;color:#2d8cf0}.ivu-notifications-tab-loading-more:hover{color:#57a3f3}.ivu-notifications-container{max-height:400px;overflow:auto}.ivu-notifications-item{padding:12px 24px;border-bottom:1px solid #e8eaec;cursor:pointer;-webkit-transition:background-color .2s ease-in-out;transition:background-color .2s ease-in-out;text-align:left}.ivu-notifications-item:last-child{border-bottom:none}.ivu-notifications-item:hover{background-color:#f0faff}.ivu-notifications-item-unread{background-color:#f8f8f9}.ivu-notifications-item-title{margin-bottom:4px}.ivu-notifications-item-title h4{font-size:14px;font-weight:400;line-height:22px;color:#515a6e}.ivu-notifications-item-tag{float:right;margin-top:-2px}.ivu-notifications-item-tag .ivu-tag{margin-right:0}.ivu-notifications-item-desc{color:#808695;font-size:12px;margin-bottom:4px}.ivu-notifications-item-time{font-size:12px;color:#808695}.ivu-notifications-transfer.ivu-select-dropdown{max-height:none;overflow:visible}.ivu-number-info-title{margin-bottom:16px;color:#17233d;font-size:16px;-webkit-transition:all .2s;transition:all .2s}.ivu-number-info-subTitle{height:22px;overflow:hidden;color:#808695;font-size:14px;line-height:22px;white-space:nowrap;text-overflow:ellipsis;word-break:break-all}.ivu-number-info-value{margin-top:4px;overflow:hidden;font-size:0;white-space:nowrap;text-overflow:ellipsis;word-break:break-all}.ivu-number-info-total{display:inline-block;height:32px;margin-right:32px;color:#515a6e;font-size:24px;line-height:32px}.ivu-number-info-subTotal{display:inline-block;height:32px;line-height:32px;margin-right:0;vertical-align:top;font-size:14px;color:#808695}.ivu-page-header{padding:16px 32px 0 32px;background:#fff;border-bottom:1px solid #e8eaec}.ivu-page-header-wide{max-width:1200px;margin:auto}.ivu-page-header-detail{display:-webkit-box;display:-ms-flexbox;display:flex}.ivu-page-header-row{display:-webkit-box;display:-ms-flexbox;display:flex;width:100%}.ivu-page-header-breadcrumb{margin-bottom:16px}.ivu-page-header-tabs{margin:0 0 0 -8px}.ivu-page-header-tabs .ivu-tabs-bar{margin-bottom:0;border-bottom-color:transparent}.ivu-page-header-logo{-webkit-box-flex:0;-ms-flex:0 1 auto;flex:0 1 auto;margin-right:16px;padding-top:1px}.ivu-page-header-logo>img{display:block;width:28px;height:28px;border-radius:4px}.ivu-page-header-back{display:-webkit-box;display:-ms-flexbox;display:flex;height:30px;-webkit-box-flex:0;-ms-flex:0 1 auto;flex:0 1 auto;margin-right:8px;cursor:pointer;-webkit-transition:color .2s ease-in-out;transition:color .2s ease-in-out}.ivu-page-header-back:hover{color:#2d8cf0}.ivu-page-header-back .ivu-icon{font-size:20px;line-height:inherit}.ivu-page-header-back .ivu-divider{height:14px;line-height:inherit;top:8px}.ivu-page-header-main .ivu-page-header-back{display:none}.ivu-page-header-title{display:inline-block;color:#17233d;font-weight:500;font-size:20px}.ivu-page-header-action{min-width:266px;margin-left:56px}.ivu-page-header-action .ivu-btn-group:not(:last-child),.ivu-page-header-action .ivu-btn:not(:last-child){margin-right:8px}.ivu-page-header-action .ivu-btn-group>.ivu-btn{margin-right:0}.ivu-page-header-content,.ivu-page-header-extra{font-size:14px}.ivu-page-header-content,.ivu-page-header-title{-webkit-box-flex:1;-ms-flex:auto;flex:auto}.ivu-page-header-action,.ivu-page-header-extra,.ivu-page-header-main{-webkit-box-flex:0;-ms-flex:0 1 auto;flex:0 1 auto}.ivu-page-header-main{width:100%}.ivu-page-header-action,.ivu-page-header-title{margin-bottom:16px}.ivu-page-header-content,.ivu-page-header-extra,.ivu-page-header-logo{margin-bottom:16px}.ivu-page-header-action,.ivu-page-header-extra{text-align:right}.ivu-page-header-extra{min-width:242px;margin-left:88px}@media screen and (max-width:1200px){.ivu-page-header-extra{margin-left:44px}}@media screen and (max-width:992px){.ivu-page-header-extra{margin-left:20px}}@media screen and (max-width:768px){.ivu-page-header-row{display:block}.ivu-page-header-action,.ivu-page-header-extra{margin-left:0;text-align:left}}@media screen and (max-width:576px){.ivu-page-header-detail>.ivu-page-header-back{display:none}.ivu-page-header-main .ivu-page-header-back{display:inline-block;position:relative;top:-4px}.ivu-page-header-main .ivu-page-header-back .ivu-divider{top:0}.ivu-page-header-detail{display:block}}@media screen and (max-width:480px){.ivu-page-header-action .ivu-btn,.ivu-page-header-action .ivu-btn-group{display:block;margin-bottom:8px}.ivu-page-header-action .ivu-btn-group>.ivu-btn{display:inline-block;margin-bottom:0}}.ivu-result{width:72%;margin:0 auto;text-align:center}@media screen and (max-width:480px){.ivu-result{width:100%}}.ivu-result-icon{display:inline-block;width:72px;border-radius:50%;margin-bottom:24px}.ivu-result-icon-success{background-color:#19be6b}.ivu-result-icon-error{background-color:#ed4014}.ivu-result-icon-warning{background-color:#f90}.ivu-result-icon .ivu-icon{color:#fff;font-size:72px;border-radius:50%}.ivu-result-title{margin-bottom:16px;color:#17233d;font-weight:500;font-size:24px;line-height:32px}.ivu-result-desc{margin-bottom:24px;color:#808695;font-size:14px;line-height:22px}.ivu-result-extra{padding:24px 40px;text-align:left;background:#f8f8f9;border-radius:4px}@media screen and (max-width:480px){.ivu-result-extra{padding:18px 20px}}.ivu-result-actions{margin-top:32px}.ivu-result-actions .ivu-btn:not(:last-child){margin-right:8px}.ivu-tag-select{position:relative;max-height:32px;margin-left:-8px;overflow:hidden;line-height:32px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ivu-tag-select-expanded{max-height:200px}.ivu-tag-select-option{display:inline-block}.ivu-tag-select-option .ivu-tag{margin-right:24px}.ivu-tag-select-expand-btn{position:absolute;top:1px;right:0}.ivu-tag-select-with-expanded{padding-right:50px}.ivu-tree-select .ivu-select-dropdown{padding:0}.ivu-tree-select .ivu-tree,.ivu-tree-select-transfer .ivu-tree{padding:0 6px}.ivu-tree-select .ivu-tree li,.ivu-tree-select-transfer .ivu-tree li{font-size:14px}.ivu-tree-select .ivu-tree-title,.ivu-tree-select-transfer .ivu-tree-title{display:inline-block;width:calc(100% - 18px);vertical-align:middle}.ivu-tree-select .ivu-checkbox-wrapper+.ivu-tree-title,.ivu-tree-select-transfer .ivu-checkbox-wrapper+.ivu-tree-title{width:calc(100% - 44px)}.ivu-tree-select .ivu-tree-title{padding:2px 4px 4px}.ivu-tree-select-transfer{padding:0}.ivu-tree-select-transfer .ivu-tree-title{padding:0 4px 2px}.ivu-trend{display:inline-block}.ivu-trend-text{vertical-align:middle}.ivu-trend-colorful.ivu-trend-up .ivu-trend-flag{color:#ed4014}.ivu-trend-colorful.ivu-trend-down .ivu-trend-flag{color:#19be6b}.ivu-trend-reverse-color.ivu-trend-colorful.ivu-trend-up .ivu-trend-flag{color:#19be6b}.ivu-trend-reverse-color.ivu-trend-colorful.ivu-trend-down .ivu-trend-flag{color:#ed4014}.ivu-trend-colorful.ivu-trend-text-color.ivu-trend-up .ivu-trend-text{color:#ed4014}.ivu-trend-colorful.ivu-trend-text-color.ivu-trend-down .ivu-trend-text{color:#19be6b}.ivu-trend-reverse-color.ivu-trend-colorful.ivu-trend-text-color.ivu-trend-up .ivu-trend-text{color:#19be6b}.ivu-trend-reverse-color.ivu-trend-colorful.ivu-trend-text-color.ivu-trend-down .ivu-trend-text{color:#ed4014}.ivu-word-count{display:inline-block}.ivu-word-count-overflow{color:#ed4014} \ No newline at end of file diff --git a/dist/viewuiplus.min.esm.js b/dist/viewuiplus.min.esm.js new file mode 100644 index 0000000000000000000000000000000000000000..605b161c233aa62bec33cd670c218cc8711e0205 --- /dev/null +++ b/dist/viewuiplus.min.esm.js @@ -0,0 +1,38883 @@ +import { nextTick, openBlock, createElementBlock, createElementVNode, normalizeClass, normalizeStyle, renderSlot, withDirectives, vShow, resolveComponent, createBlock, Transition, withCtx, createVNode, createCommentVNode, resolveDynamicComponent, inject, withModifiers, toDisplayString, h, Teleport, mergeProps, getCurrentInstance, Fragment, renderList, createTextVNode, withKeys, vModelText, resolveDirective, vModelCheckbox, TransitionGroup, createApp, normalizeProps, guardReactiveProps, defineComponent, toHandlers, Comment, Text, setBlockTracking, createSlots } from "vue"; +const isClient = typeof window !== "undefined"; +const on = function() { + if (isClient && document.addEventListener) { + return function(element, event, handler, useCapture = false) { + if (element && event && handler) { + element.addEventListener(event, handler, useCapture); + } + }; + } else { + return function(element, event, handler) { + if (element && event && handler) { + element.attachEvent("on" + event, handler); + } + }; + } +}(); +const off = function() { + if (isClient && document.removeEventListener) { + return function(element, event, handler, useCapture = false) { + if (element && event) { + element.removeEventListener(event, handler, useCapture); + } + }; + } else { + return function(element, event, handler) { + if (element && event) { + element.detachEvent("on" + event, handler); + } + }; + } +}(); +var _export_sfc = (sfc, props) => { + const target = sfc.__vccOpts || sfc; + for (const [key2, val] of props) { + target[key2] = val; + } + return target; +}; +const prefixCls$1m = "ivu-affix"; +function getScroll(target, top2) { + const prop2 = top2 ? "pageYOffset" : "pageXOffset"; + const method3 = top2 ? "scrollTop" : "scrollLeft"; + let ret = target[prop2]; + if (isClient && typeof ret !== "number") { + ret = window.document.documentElement[method3]; + } + return ret; +} +function getOffset(element) { + if (!isClient) + return; + const rect = element.getBoundingClientRect(); + const scrollTop2 = getScroll(window, true); + const scrollLeft = getScroll(window); + const docEl = window.document.body; + const clientTop = docEl.clientTop || 0; + const clientLeft = docEl.clientLeft || 0; + return { + top: rect.top + scrollTop2 - clientTop, + left: rect.left + scrollLeft - clientLeft + }; +} +const _sfc_main$2v = { + name: "Affix", + emits: ["on-change"], + props: { + offsetTop: { + type: Number, + default: 0 + }, + offsetBottom: { + type: Number + }, + useCapture: { + type: Boolean, + default: false + } + }, + data() { + return { + affix: false, + styles: {}, + slot: false, + slotStyle: {} + }; + }, + computed: { + offsetType() { + let type2 = "top"; + if (this.offsetBottom >= 0) { + type2 = "bottom"; + } + return type2; + }, + classes() { + return [ + { + [`${prefixCls$1m}`]: this.affix + } + ]; + } + }, + mounted() { + on(window, "scroll", this.handleScroll, this.useCapture); + on(window, "resize", this.handleScroll, this.useCapture); + nextTick(() => { + this.handleScroll(); + }); + }, + beforeUnmount() { + off(window, "scroll", this.handleScroll, this.useCapture); + off(window, "resize", this.handleScroll, this.useCapture); + }, + methods: { + handleScroll() { + if (!isClient) + return; + const affix = this.affix; + const scrollTop2 = getScroll(window, true); + const elOffset = getOffset(this.$el); + const windowHeight = window.innerHeight; + const elHeight = this.$el.getElementsByTagName("div")[0].offsetHeight; + if (elOffset.top - this.offsetTop < scrollTop2 && this.offsetType == "top" && !affix) { + this.affix = true; + this.slotStyle = { + width: this.$refs.point.clientWidth + "px", + height: this.$refs.point.clientHeight + "px" + }; + this.slot = true; + this.styles = { + top: `${this.offsetTop}px`, + left: `${elOffset.left}px`, + width: `${this.$el.offsetWidth}px` + }; + this.$emit("on-change", true); + } else if (elOffset.top - this.offsetTop > scrollTop2 && this.offsetType == "top" && affix) { + this.slot = false; + this.slotStyle = {}; + this.affix = false; + this.styles = null; + this.$emit("on-change", false); + } + if (elOffset.top + this.offsetBottom + elHeight > scrollTop2 + windowHeight && this.offsetType == "bottom" && !affix) { + this.affix = true; + this.styles = { + bottom: `${this.offsetBottom}px`, + left: `${elOffset.left}px`, + width: `${this.$el.offsetWidth}px` + }; + this.$emit("on-change", true); + } else if (elOffset.top + this.offsetBottom + elHeight < scrollTop2 + windowHeight && this.offsetType == "bottom" && affix) { + this.affix = false; + this.styles = null; + this.$emit("on-change", false); + } + } + } +}; +function _sfc_render$2e(_ctx, _cache, $props, $setup, $data, $options) { + return openBlock(), createElementBlock("div", null, [ + createElementVNode("div", { + ref: "point", + class: normalizeClass($options.classes), + style: normalizeStyle($data.styles) + }, [ + renderSlot(_ctx.$slots, "default") + ], 6), + withDirectives(createElementVNode("div", { + style: normalizeStyle($data.slotStyle) + }, null, 4), [ + [vShow, $data.slot] + ]) + ]); +} +var Affix = /* @__PURE__ */ _export_sfc(_sfc_main$2v, [["render", _sfc_render$2e]]); +const prefixCls$1l = "ivu-icon"; +const _sfc_main$2u = { + name: "Icon", + props: { + type: { + type: String, + default: "" + }, + size: [Number, String], + color: String, + custom: { + type: String, + default: "" + } + }, + computed: { + classes() { + return [ + `${prefixCls$1l}`, + { + [`${prefixCls$1l}-${this.type}`]: this.type !== "", + [`${this.custom}`]: this.custom !== "" + } + ]; + }, + styles() { + let style2 = {}; + if (this.size) + style2["font-size"] = `${this.size}px`; + if (this.color) + style2.color = this.color; + return style2; + } + } +}; +function _sfc_render$2d(_ctx, _cache, $props, $setup, $data, $options) { + return openBlock(), createElementBlock("i", { + class: normalizeClass($options.classes), + style: normalizeStyle($options.styles) + }, null, 6); +} +var Icon = /* @__PURE__ */ _export_sfc(_sfc_main$2u, [["render", _sfc_render$2d]]); +function oneOf(value, validList) { + for (let i = 0; i < validList.length; i++) { + if (value === validList[i]) { + return true; + } + } + return false; +} +let cached; +function getScrollBarSize(fresh) { + if (isClient && (fresh || cached === void 0)) { + const inner = document.createElement("div"); + inner.style.width = "100%"; + inner.style.height = "200px"; + const outer = document.createElement("div"); + const outerStyle = outer.style; + outerStyle.position = "absolute"; + outerStyle.top = 0; + outerStyle.left = 0; + outerStyle.pointerEvents = "none"; + outerStyle.visibility = "hidden"; + outerStyle.width = "200px"; + outerStyle.height = "150px"; + outerStyle.overflow = "hidden"; + outer.appendChild(inner); + document.body.appendChild(outer); + const widthContained = inner.offsetWidth; + outer.style.overflow = "scroll"; + let widthScroll = inner.offsetWidth; + if (widthContained === widthScroll) { + widthScroll = outer.clientWidth; + } + document.body.removeChild(outer); + cached = widthContained - widthScroll; + } + return cached; +} +const MutationObserver = isClient ? window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver || false : false; +const SPECIAL_CHARS_REGEXP = /([\:\-\_]+(.))/g; +const MOZ_HACK_REGEXP = /^moz([A-Z])/; +function camelCase(name2) { + return name2.replace(SPECIAL_CHARS_REGEXP, function(_, separator, letter, offset) { + return offset ? letter.toUpperCase() : letter; + }).replace(MOZ_HACK_REGEXP, "Moz$1"); +} +function getStyle(element, styleName) { + if (!isClient) + return; + if (!element || !styleName) + return null; + styleName = camelCase(styleName); + if (styleName === "float") { + styleName = "cssFloat"; + } + try { + const computed = document.defaultView.getComputedStyle(element, ""); + return element.style[styleName] || computed ? computed[styleName] : null; + } catch (e) { + return element.style[styleName]; + } +} +function firstUpperCase(str) { + return str.toString()[0].toUpperCase() + str.toString().slice(1); +} +function typeOf(obj) { + const toString2 = Object.prototype.toString; + const map = { + "[object Boolean]": "boolean", + "[object Number]": "number", + "[object String]": "string", + "[object Function]": "function", + "[object Array]": "array", + "[object Date]": "date", + "[object RegExp]": "regExp", + "[object Undefined]": "undefined", + "[object Null]": "null", + "[object Object]": "object" + }; + return map[toString2.call(obj)]; +} +function deepCopy(data) { + const t2 = typeOf(data); + let o; + if (t2 === "array") { + o = []; + } else if (t2 === "object") { + o = {}; + } else { + return data; + } + if (t2 === "array") { + for (let i = 0; i < data.length; i++) { + o.push(deepCopy(data[i])); + } + } else if (t2 === "object") { + for (let i in data) { + o[i] = deepCopy(data[i]); + } + } + return o; +} +function scrollTop(el, from = 0, to, duration2 = 500, endCallback) { + if (!isClient) + return; + if (!window.requestAnimationFrame) { + window.requestAnimationFrame = window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.msRequestAnimationFrame || function(callback) { + return window.setTimeout(callback, 1e3 / 60); + }; + } + const difference = Math.abs(from - to); + const step = Math.ceil(difference / duration2 * 50); + function scroll2(start, end, step2) { + if (start === end) { + endCallback && endCallback(); + return; + } + let d = start + step2 > end ? end : start + step2; + if (start > end) { + d = start - step2 < end ? end : start - step2; + } + if (el === window) { + window.scrollTo(d, d); + } else { + el.scrollTop = d; + } + window.requestAnimationFrame(() => scroll2(d, end, step2)); + } + scroll2(from, to, step); +} +function findComponentUpward(context, componentName, componentNames) { + if (typeof componentName === "string") { + componentNames = [componentName]; + } else { + componentNames = componentName; + } + let parent = context.$parent; + let name2 = parent.$options.name; + while (parent && (!name2 || componentNames.indexOf(name2) < 0)) { + parent = parent.$parent; + if (parent) + name2 = parent.$options.name; + } + return parent; +} +function findComponentsUpward(context, componentName) { + let parents = []; + const parent = context.$parent; + if (parent) { + if (parent.$options.name === componentName) + parents.push(parent); + return parents.concat(findComponentsUpward(parent, componentName)); + } else { + return []; + } +} +const trim = function(string2) { + return (string2 || "").replace(/^[\s\uFEFF]+|[\s\uFEFF]+$/g, ""); +}; +function hasClass(el, cls) { + if (!el || !cls) + return false; + if (cls.indexOf(" ") !== -1) + throw new Error("className should not contain space."); + if (el.classList) { + return el.classList.contains(cls); + } else { + return (" " + el.className + " ").indexOf(" " + cls + " ") > -1; + } +} +function addClass(el, cls) { + if (!el) + return; + let curClass = el.className; + const classes = (cls || "").split(" "); + for (let i = 0, j = classes.length; i < j; i++) { + const clsName = classes[i]; + if (!clsName) + continue; + if (el.classList) { + el.classList.add(clsName); + } else { + if (!hasClass(el, clsName)) { + curClass += " " + clsName; + } + } + } + if (!el.classList) { + el.className = curClass; + } +} +function removeClass(el, cls) { + if (!el || !cls) + return; + const classes = cls.split(" "); + let curClass = " " + el.className + " "; + for (let i = 0, j = classes.length; i < j; i++) { + const clsName = classes[i]; + if (!clsName) + continue; + if (el.classList) { + el.classList.remove(clsName); + } else { + if (hasClass(el, clsName)) { + curClass = curClass.replace(" " + clsName + " ", " "); + } + } + } + if (!el.classList) { + el.className = trim(curClass); + } +} +const dimensionMap = { + xs: "480px", + sm: "576px", + md: "768px", + lg: "992px", + xl: "1200px", + xxl: "1600px" +}; +function setMatchMedia() { + if (!isClient) + return; + const matchMediaPolyfill = (mediaQuery) => { + return { + media: mediaQuery, + matches: false, + on() { + }, + off() { + } + }; + }; + window.matchMedia = window.matchMedia || matchMediaPolyfill; +} +const sharpMatcherRegx = /#([^#]+)$/; +async function downloadFile(url2, name2 = "unnamed") { + if (!isClient) + return Promise.reject(); + try { + const res = await fetch(url2); + const blob = await res.blob(); + if (!blob) + return Promise.reject(); + const localUrl = URL.createObjectURL(blob); + const a = document.createElement("a"); + a.setAttribute("href", localUrl); + a.setAttribute("download", name2); + a.click(); + URL.revokeObjectURL(localUrl); + return Promise.resolve(); + } catch (e) { + return Promise.reject(e); + } +} +const prefixCls$1k = "ivu-alert"; +const _sfc_main$2t = { + name: "Alert", + components: { Icon }, + props: { + type: { + validator(value) { + return oneOf(value, ["success", "info", "warning", "error"]); + }, + default: "info" + }, + closable: { + type: Boolean, + default: false + }, + showIcon: { + type: Boolean, + default: false + }, + banner: { + type: Boolean, + default: false + }, + fade: { + type: Boolean, + default: true + } + }, + data() { + return { + closed: false, + desc: false + }; + }, + computed: { + wrapClasses() { + return [ + `${prefixCls$1k}`, + `${prefixCls$1k}-${this.type}`, + { + [`${prefixCls$1k}-with-icon`]: this.showIcon, + [`${prefixCls$1k}-with-desc`]: this.desc, + [`${prefixCls$1k}-with-banner`]: this.banner + } + ]; + }, + messageClasses() { + return `${prefixCls$1k}-message`; + }, + descClasses() { + return `${prefixCls$1k}-desc`; + }, + closeClasses() { + return `${prefixCls$1k}-close`; + }, + iconClasses() { + return `${prefixCls$1k}-icon`; + }, + iconType() { + let type2 = ""; + switch (this.type) { + case "success": + type2 = "ios-checkmark-circle"; + break; + case "info": + type2 = "ios-information-circle"; + break; + case "warning": + type2 = "ios-alert"; + break; + case "error": + type2 = "ios-close-circle"; + break; + } + if (this.desc) + type2 += "-outline"; + return type2; + } + }, + methods: { + close(e) { + this.closed = true; + this.$emit("on-close", e); + } + }, + mounted() { + this.desc = this.$slots.desc !== void 0; + } +}; +function _sfc_render$2c(_ctx, _cache, $props, $setup, $data, $options) { + const _component_Icon = resolveComponent("Icon"); + return openBlock(), createBlock(Transition, { + name: $props.fade ? "fade" : "" + }, { + default: withCtx(() => [ + !$data.closed ? (openBlock(), createElementBlock("div", { + key: 0, + class: normalizeClass($options.wrapClasses) + }, [ + $props.showIcon ? (openBlock(), createElementBlock("span", { + key: 0, + class: normalizeClass($options.iconClasses) + }, [ + renderSlot(_ctx.$slots, "icon", {}, () => [ + createVNode(_component_Icon, { type: $options.iconType }, null, 8, ["type"]) + ]) + ], 2)) : createCommentVNode("", true), + createElementVNode("span", { + class: normalizeClass($options.messageClasses) + }, [ + renderSlot(_ctx.$slots, "default") + ], 2), + createElementVNode("span", { + class: normalizeClass($options.descClasses) + }, [ + renderSlot(_ctx.$slots, "desc") + ], 2), + $props.closable ? (openBlock(), createElementBlock("a", { + key: 1, + class: normalizeClass($options.closeClasses), + onClick: _cache[0] || (_cache[0] = (...args) => $options.close && $options.close(...args)) + }, [ + renderSlot(_ctx.$slots, "close", {}, () => [ + createVNode(_component_Icon, { type: "ios-close" }) + ]) + ], 2)) : createCommentVNode("", true) + ], 2)) : createCommentVNode("", true) + ]), + _: 3 + }, 8, ["name"]); +} +var Alert = /* @__PURE__ */ _export_sfc(_sfc_main$2t, [["render", _sfc_render$2c]]); +const _sfc_main$2s = { + name: "Anchor", + provide() { + return { + AnchorInstance: this + }; + }, + emits: ["on-change", "on-select"], + props: { + affix: { + type: Boolean, + default: true + }, + offsetTop: { + type: Number, + default: 0 + }, + offsetBottom: Number, + bounds: { + type: Number, + default: 5 + }, + container: null, + showInk: { + type: Boolean, + default: false + }, + scrollOffset: { + type: Number, + default: 0 + } + }, + data() { + return { + prefix: "ivu-anchor", + isAffixed: false, + inkTop: 0, + animating: false, + currentLink: "", + currentId: "", + scrollContainer: null, + scrollElement: null, + wrapperTop: 0, + upperFirstTitle: true, + links: [] + }; + }, + computed: { + wrapperComponent() { + return this.affix ? "Affix" : "div"; + }, + wrapperStyle() { + return { + maxHeight: this.offsetTop ? `calc(100vh - ${this.offsetTop}px)` : "100vh" + }; + }, + containerIsWindow() { + return this.scrollContainer === window; + }, + titlesOffsetArr() { + const links = this.links.map((item) => { + return item.link.href; + }); + const idArr = links.map((link) => { + return link.split("#")[1]; + }); + let offsetArr = []; + isClient && idArr.forEach((id) => { + const titleEle = document.getElementById(id); + if (titleEle) + offsetArr.push({ + link: `#${id}`, + offset: titleEle.offsetTop - this.scrollElement.offsetTop + }); + }); + return offsetArr; + } + }, + methods: { + handleAffixStateChange(state) { + this.isAffixed = this.affix && state; + }, + handleScroll(e) { + this.upperFirstTitle = !!this.titlesOffsetArr[0] && e.target.scrollTop < this.titlesOffsetArr[0].offset; + if (this.animating) + return; + const scrollTop2 = isClient ? document.documentElement.scrollTop || document.body.scrollTop || e.target.scrollTop : 0; + this.getCurrentScrollAtTitleId(scrollTop2); + }, + handleHashChange() { + if (!isClient) + return; + const url2 = window.location.href; + const sharpLinkMatch = sharpMatcherRegx.exec(url2); + if (!sharpLinkMatch) + return; + this.currentLink = sharpLinkMatch[0]; + this.currentId = sharpLinkMatch[1]; + }, + handleScrollTo() { + if (!isClient) + return; + const anchor = document.getElementById(this.currentId); + const currentLinkElementA = document.querySelector(`a[data-href="${this.currentLink}"]`); + let offset = this.scrollOffset; + if (currentLinkElementA) { + offset = parseFloat(currentLinkElementA.getAttribute("data-scroll-offset")); + } + if (!anchor) + return; + const offsetTop = anchor.offsetTop - this.wrapperTop - offset; + this.animating = true; + scrollTop(this.scrollContainer, this.scrollElement.scrollTop, offsetTop, 600, () => { + this.animating = false; + }); + this.handleSetInkTop(); + }, + handleSetInkTop() { + if (!isClient) + return; + const currentLinkElementA = document.querySelector(`a[data-href="${this.currentLink}"]`); + if (!currentLinkElementA) + return; + const elementATop = currentLinkElementA.offsetTop; + const top2 = elementATop < 0 ? this.offsetTop : elementATop; + this.inkTop = top2; + }, + getCurrentScrollAtTitleId(scrollTop2) { + let i = -1; + let len = this.titlesOffsetArr.length; + let titleItem = { + link: "#", + offset: 0 + }; + scrollTop2 += this.bounds; + while (++i < len) { + let currentEle = this.titlesOffsetArr[i]; + let nextEle = this.titlesOffsetArr[i + 1]; + if (scrollTop2 >= currentEle.offset && scrollTop2 < (nextEle && nextEle.offset || Infinity)) { + titleItem = this.titlesOffsetArr[i]; + break; + } + } + this.currentLink = titleItem.link; + this.handleSetInkTop(); + }, + getContainer() { + if (!isClient) + return; + this.scrollContainer = this.container ? typeof this.container === "string" ? document.querySelector(this.container) : this.container : window; + this.scrollElement = this.container ? this.scrollContainer : document.documentElement || document.body; + }, + removeListener() { + off(this.scrollContainer, "scroll", this.handleScroll); + off(window, "hashchange", this.handleHashChange); + }, + init() { + this.handleHashChange(); + nextTick(() => { + this.removeListener(); + this.getContainer(); + this.wrapperTop = this.containerIsWindow ? 0 : this.scrollElement.offsetTop; + this.handleScrollTo(); + this.handleSetInkTop(); + if (this.titlesOffsetArr[0]) { + this.upperFirstTitle = this.scrollElement.scrollTop < this.titlesOffsetArr[0].offset; + } + on(this.scrollContainer, "scroll", this.handleScroll); + on(window, "hashchange", this.handleHashChange); + }); + }, + addLink(id, link) { + this.links.push({ id, link }); + }, + removeLink(id) { + const linkIndex = this.links.findIndex((item) => item.id === id); + this.links.splice(linkIndex, 1); + } + }, + watch: { + "$route"() { + this.currentLink = ""; + this.currentId = ""; + this.handleHashChange(); + nextTick(() => { + this.handleScrollTo(); + }); + }, + container() { + this.init(); + }, + currentLink(newHref, oldHref) { + this.$emit("on-change", newHref, oldHref); + } + }, + mounted() { + this.init(); + }, + beforeUnmount() { + this.removeListener(); + } +}; +function _sfc_render$2b(_ctx, _cache, $props, $setup, $data, $options) { + return openBlock(), createBlock(resolveDynamicComponent($options.wrapperComponent), { + "offset-top": $props.offsetTop, + "offset-bottom": $props.offsetBottom, + onOnChange: $options.handleAffixStateChange + }, { + default: withCtx(() => [ + createElementVNode("div", { + class: normalizeClass(`${$data.prefix}-wrapper`), + style: normalizeStyle($options.wrapperStyle) + }, [ + createElementVNode("div", { + class: normalizeClass(`${$data.prefix}`) + }, [ + createElementVNode("div", { + class: normalizeClass(`${$data.prefix}-ink`) + }, [ + withDirectives(createElementVNode("span", { + class: normalizeClass(`${$data.prefix}-ink-ball`), + style: normalizeStyle({ top: `${$data.inkTop}px` }) + }, null, 6), [ + [vShow, $props.showInk] + ]) + ], 2), + renderSlot(_ctx.$slots, "default") + ], 2) + ], 6) + ]), + _: 3 + }, 40, ["offset-top", "offset-bottom", "onOnChange"]); +} +var Anchor = /* @__PURE__ */ _export_sfc(_sfc_main$2s, [["render", _sfc_render$2b]]); +function random(len = 32) { + const $chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"; + const maxPos = $chars.length; + let str = ""; + for (let i = 0; i < len; i++) { + str += $chars.charAt(Math.floor(Math.random() * maxPos)); + } + return str; +} +const _sfc_main$2r = { + name: "AnchorLink", + inject: ["AnchorInstance"], + props: { + href: String, + title: String, + scrollOffset: { + type: Number, + default() { + return inject("AnchorInstance").scrollOffset; + } + } + }, + data() { + return { + prefix: "ivu-anchor-link", + id: random(6) + }; + }, + computed: { + anchorLinkClasses() { + return [ + this.prefix, + this.AnchorInstance.currentLink === this.href ? `${this.prefix}-active` : "" + ]; + }, + linkTitleClasses() { + return [ + `${this.prefix}-title` + ]; + } + }, + methods: { + goAnchor() { + this.currentLink = this.href; + this.AnchorInstance.handleHashChange(); + this.AnchorInstance.handleScrollTo(); + this.AnchorInstance.$emit("on-select", this.href); + const isRoute = this.$router; + if (isRoute) { + this.$router.push(this.href, () => { + }); + } else { + isClient && (window.location.href = this.href); + } + } + }, + mounted() { + this.AnchorInstance.addLink(this.id, this); + nextTick(() => { + this.AnchorInstance.init(); + }); + }, + beforeUnmount() { + this.AnchorInstance.removeLink(this.id); + } +}; +const _hoisted_1$1k = ["href", "data-scroll-offset", "data-href", "title"]; +function _sfc_render$2a(_ctx, _cache, $props, $setup, $data, $options) { + return openBlock(), createElementBlock("div", { + class: normalizeClass($options.anchorLinkClasses) + }, [ + createElementVNode("a", { + class: normalizeClass($options.linkTitleClasses), + href: $props.href, + "data-scroll-offset": $props.scrollOffset, + "data-href": $props.href, + onClick: _cache[0] || (_cache[0] = withModifiers((...args) => $options.goAnchor && $options.goAnchor(...args), ["prevent"])), + title: $props.title + }, toDisplayString($props.title), 11, _hoisted_1$1k), + renderSlot(_ctx.$slots, "default") + ], 2); +} +var AnchorLink = /* @__PURE__ */ _export_sfc(_sfc_main$2r, [["render", _sfc_render$2a]]); +var mixinsLink = { + props: { + to: { + type: [Object, String] + }, + replace: { + type: Boolean, + default: false + }, + target: { + type: String, + validator(value) { + return oneOf(value, ["_blank", "_self", "_parent", "_top"]); + }, + default: "_self" + }, + append: { + type: Boolean, + required: false, + default: false + } + }, + computed: { + linkUrl() { + const type2 = typeof this.to; + if (type2 !== "string") { + return null; + } + if (this.to.includes("//")) { + return this.to; + } + const router = this.$router; + if (router) { + const current = this.$route; + const route = router.resolve(this.to, current, this.append); + return route ? route.href : this.to; + } + return this.to; + } + }, + methods: { + handleOpenTo() { + if (!isClient) + return; + const router = this.$router; + let to = this.to; + if (router) { + const current = this.$route; + const route = router.resolve(this.to, current, this.append); + to = route ? route.href : this.to; + } + if (typeof this.to === "string") + return; + window.open(to); + }, + handleClick(new_window = false) { + const router = this.$router; + if (!isClient) + return; + if (new_window) { + this.handleOpenTo(); + } else { + if (router) { + if (typeof this.to === "string" && this.to.includes("//")) { + window.location.href = this.to; + } else { + this.replace ? this.$router.replace(this.to, () => { + }) : this.$router.push(this.to, () => { + }); + } + } else { + window.location.href = this.to; + } + } + }, + handleCheckClick(event, new_window = false) { + if (this.to) { + if (this.target === "_blank") { + this.handleOpenTo(); + return false; + } else { + event.preventDefault(); + this.handleClick(new_window); + } + } + } + } +}; +function includeArray(list1, list2) { + let status = false; + list2.forEach((item) => { + if (list1.includes(item)) + status = true; + }); + return status; +} +const _sfc_main$2q = { + name: "Auth", + mixins: [mixinsLink], + emits: ["click"], + props: { + authority: { + type: [String, Array, Function, Boolean], + default: true + }, + access: { + type: [String, Array] + }, + prevent: { + type: Boolean, + default: false + }, + message: { + type: String, + default: "\u60A8\u6CA1\u6709\u6743\u9650\u8FDB\u884C\u6B64\u64CD\u4F5C" + }, + customTip: { + type: Boolean, + default: false + }, + display: { + type: String + } + }, + computed: { + isPermission() { + let state; + if (typeof this.authority === "boolean") { + state = this.authority; + } else if (this.authority instanceof Function) { + state = this.authority(); + } else { + const authority = typeof this.authority === "string" ? [this.authority] : this.authority; + const access = typeof this.access === "string" ? [this.access] : this.access; + state = includeArray(authority, access); + } + return state; + }, + options() { + let style2 = {}; + if (this.display) + style2.display = this.display; + return { + class: { + "ivu-auth": true, + "ivu-auth-permission": this.isPermission, + "ivu-auth-no-math": !this.isPermission, + "ivu-auth-redirect": !this.isPermission && this.to, + "ivu-auth-prevent": this.prevent + }, + style: style2 + }; + } + }, + render() { + if (this.isPermission) { + return h("div", this.options, this.$slots.default()); + } else { + if (this.to) { + return h("div", this.options); + } else { + if (this.prevent) { + return h("div", Object.assign({}, this.options, { + onClick: this.handlePreventClick + }), [ + h("div", { + class: "ivu-auth-prevent-no-match" + }, this.$slots.default()) + ]); + } else { + return h("div", this.options, this.$slots.noMatch()); + } + } + } + }, + methods: { + handlePreventClick(event) { + if (!this.isPermission) { + if (!this.customTip) { + this.$Message.info({ + content: this.message, + duration: 3 + }); + } + this.$emit("click", event); + } + } + }, + created() { + if (!this.isPermission && this.to) { + this.handleClick(false); + } + } +}; +var commonjsGlobal = typeof globalThis !== "undefined" ? globalThis : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : {}; +function commonjsRequire(path) { + throw new Error('Could not dynamically require "' + path + '". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.'); +} +var popper = { exports: {} }; +/**! + * @fileOverview Kickass library to create and place poppers near their reference elements. + * @version 1.16.1 + * @license + * Copyright (c) 2016 Federico Zivolo and contributors + * + * 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: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * 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. + */ +(function(module, exports) { + (function(global2, factory) { + module.exports = factory(); + })(commonjsGlobal, function() { + var isBrowser = typeof window !== "undefined" && typeof document !== "undefined" && typeof navigator !== "undefined"; + var timeoutDuration = function() { + var longerTimeoutBrowsers = ["Edge", "Trident", "Firefox"]; + for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) { + if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) { + return 1; + } + } + return 0; + }(); + function microtaskDebounce(fn) { + var called = false; + return function() { + if (called) { + return; + } + called = true; + window.Promise.resolve().then(function() { + called = false; + fn(); + }); + }; + } + function taskDebounce(fn) { + var scheduled = false; + return function() { + if (!scheduled) { + scheduled = true; + setTimeout(function() { + scheduled = false; + fn(); + }, timeoutDuration); + } + }; + } + var supportsMicroTasks = isBrowser && window.Promise; + var debounce2 = supportsMicroTasks ? microtaskDebounce : taskDebounce; + function isFunction2(functionToCheck) { + var getType2 = {}; + return functionToCheck && getType2.toString.call(functionToCheck) === "[object Function]"; + } + function getStyleComputedProperty(element, property) { + if (element.nodeType !== 1) { + return []; + } + var window2 = element.ownerDocument.defaultView; + var css = window2.getComputedStyle(element, null); + return property ? css[property] : css; + } + function getParentNode(element) { + if (element.nodeName === "HTML") { + return element; + } + return element.parentNode || element.host; + } + function getScrollParent(element) { + if (!element) { + return document.body; + } + switch (element.nodeName) { + case "HTML": + case "BODY": + return element.ownerDocument.body; + case "#document": + return element.body; + } + var _getStyleComputedProp = getStyleComputedProperty(element), overflow = _getStyleComputedProp.overflow, overflowX = _getStyleComputedProp.overflowX, overflowY = _getStyleComputedProp.overflowY; + if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) { + return element; + } + return getScrollParent(getParentNode(element)); + } + function getReferenceNode(reference) { + return reference && reference.referenceNode ? reference.referenceNode : reference; + } + var isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode); + var isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent); + function isIE(version2) { + if (version2 === 11) { + return isIE11; + } + if (version2 === 10) { + return isIE10; + } + return isIE11 || isIE10; + } + function getOffsetParent(element) { + if (!element) { + return document.documentElement; + } + var noOffsetParent = isIE(10) ? document.body : null; + var offsetParent = element.offsetParent || null; + while (offsetParent === noOffsetParent && element.nextElementSibling) { + offsetParent = (element = element.nextElementSibling).offsetParent; + } + var nodeName = offsetParent && offsetParent.nodeName; + if (!nodeName || nodeName === "BODY" || nodeName === "HTML") { + return element ? element.ownerDocument.documentElement : document.documentElement; + } + if (["TH", "TD", "TABLE"].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, "position") === "static") { + return getOffsetParent(offsetParent); + } + return offsetParent; + } + function isOffsetContainer(element) { + var nodeName = element.nodeName; + if (nodeName === "BODY") { + return false; + } + return nodeName === "HTML" || getOffsetParent(element.firstElementChild) === element; + } + function getRoot(node) { + if (node.parentNode !== null) { + return getRoot(node.parentNode); + } + return node; + } + function findCommonOffsetParent(element1, element2) { + if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) { + return document.documentElement; + } + var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING; + var start = order ? element1 : element2; + var end = order ? element2 : element1; + var range2 = document.createRange(); + range2.setStart(start, 0); + range2.setEnd(end, 0); + var commonAncestorContainer = range2.commonAncestorContainer; + if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) { + if (isOffsetContainer(commonAncestorContainer)) { + return commonAncestorContainer; + } + return getOffsetParent(commonAncestorContainer); + } + var element1root = getRoot(element1); + if (element1root.host) { + return findCommonOffsetParent(element1root.host, element2); + } else { + return findCommonOffsetParent(element1, getRoot(element2).host); + } + } + function getScroll2(element) { + var side = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "top"; + var upperSide = side === "top" ? "scrollTop" : "scrollLeft"; + var nodeName = element.nodeName; + if (nodeName === "BODY" || nodeName === "HTML") { + var html = element.ownerDocument.documentElement; + var scrollingElement = element.ownerDocument.scrollingElement || html; + return scrollingElement[upperSide]; + } + return element[upperSide]; + } + function includeScroll(rect, element) { + var subtract = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : false; + var scrollTop2 = getScroll2(element, "top"); + var scrollLeft = getScroll2(element, "left"); + var modifier = subtract ? -1 : 1; + rect.top += scrollTop2 * modifier; + rect.bottom += scrollTop2 * modifier; + rect.left += scrollLeft * modifier; + rect.right += scrollLeft * modifier; + return rect; + } + function getBordersSize(styles, axis) { + var sideA = axis === "x" ? "Left" : "Top"; + var sideB = sideA === "Left" ? "Right" : "Bottom"; + return parseFloat(styles["border" + sideA + "Width"]) + parseFloat(styles["border" + sideB + "Width"]); + } + function getSize(axis, body, html, computedStyle) { + return Math.max(body["offset" + axis], body["scroll" + axis], html["client" + axis], html["offset" + axis], html["scroll" + axis], isIE(10) ? parseInt(html["offset" + axis]) + parseInt(computedStyle["margin" + (axis === "Height" ? "Top" : "Left")]) + parseInt(computedStyle["margin" + (axis === "Height" ? "Bottom" : "Right")]) : 0); + } + function getWindowSizes(document2) { + var body = document2.body; + var html = document2.documentElement; + var computedStyle = isIE(10) && getComputedStyle(html); + return { + height: getSize("Height", body, html, computedStyle), + width: getSize("Width", body, html, computedStyle) + }; + } + var classCallCheck = function(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + }; + var createClass = function() { + function defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) + descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + return function(Constructor, protoProps, staticProps) { + if (protoProps) + defineProperties(Constructor.prototype, protoProps); + if (staticProps) + defineProperties(Constructor, staticProps); + return Constructor; + }; + }(); + var defineProperty = function(obj, key2, value) { + if (key2 in obj) { + Object.defineProperty(obj, key2, { + value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key2] = value; + } + return obj; + }; + var _extends2 = Object.assign || function(target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i]; + for (var key2 in source) { + if (Object.prototype.hasOwnProperty.call(source, key2)) { + target[key2] = source[key2]; + } + } + } + return target; + }; + function getClientRect(offsets) { + return _extends2({}, offsets, { + right: offsets.left + offsets.width, + bottom: offsets.top + offsets.height + }); + } + function getBoundingClientRect(element) { + var rect = {}; + try { + if (isIE(10)) { + rect = element.getBoundingClientRect(); + var scrollTop2 = getScroll2(element, "top"); + var scrollLeft = getScroll2(element, "left"); + rect.top += scrollTop2; + rect.left += scrollLeft; + rect.bottom += scrollTop2; + rect.right += scrollLeft; + } else { + rect = element.getBoundingClientRect(); + } + } catch (e) { + } + var result = { + left: rect.left, + top: rect.top, + width: rect.right - rect.left, + height: rect.bottom - rect.top + }; + var sizes = element.nodeName === "HTML" ? getWindowSizes(element.ownerDocument) : {}; + var width = sizes.width || element.clientWidth || result.width; + var height2 = sizes.height || element.clientHeight || result.height; + var horizScrollbar = element.offsetWidth - width; + var vertScrollbar = element.offsetHeight - height2; + if (horizScrollbar || vertScrollbar) { + var styles = getStyleComputedProperty(element); + horizScrollbar -= getBordersSize(styles, "x"); + vertScrollbar -= getBordersSize(styles, "y"); + result.width -= horizScrollbar; + result.height -= vertScrollbar; + } + return getClientRect(result); + } + function getOffsetRectRelativeToArbitraryNode(children, parent) { + var fixedPosition = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : false; + var isIE102 = isIE(10); + var isHTML = parent.nodeName === "HTML"; + var childrenRect = getBoundingClientRect(children); + var parentRect = getBoundingClientRect(parent); + var scrollParent = getScrollParent(children); + var styles = getStyleComputedProperty(parent); + var borderTopWidth = parseFloat(styles.borderTopWidth); + var borderLeftWidth = parseFloat(styles.borderLeftWidth); + if (fixedPosition && isHTML) { + parentRect.top = Math.max(parentRect.top, 0); + parentRect.left = Math.max(parentRect.left, 0); + } + var offsets = getClientRect({ + top: childrenRect.top - parentRect.top - borderTopWidth, + left: childrenRect.left - parentRect.left - borderLeftWidth, + width: childrenRect.width, + height: childrenRect.height + }); + offsets.marginTop = 0; + offsets.marginLeft = 0; + if (!isIE102 && isHTML) { + var marginTop = parseFloat(styles.marginTop); + var marginLeft = parseFloat(styles.marginLeft); + offsets.top -= borderTopWidth - marginTop; + offsets.bottom -= borderTopWidth - marginTop; + offsets.left -= borderLeftWidth - marginLeft; + offsets.right -= borderLeftWidth - marginLeft; + offsets.marginTop = marginTop; + offsets.marginLeft = marginLeft; + } + if (isIE102 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== "BODY") { + offsets = includeScroll(offsets, parent); + } + return offsets; + } + function getViewportOffsetRectRelativeToArtbitraryNode(element) { + var excludeScroll = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : false; + var html = element.ownerDocument.documentElement; + var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html); + var width = Math.max(html.clientWidth, window.innerWidth || 0); + var height2 = Math.max(html.clientHeight, window.innerHeight || 0); + var scrollTop2 = !excludeScroll ? getScroll2(html) : 0; + var scrollLeft = !excludeScroll ? getScroll2(html, "left") : 0; + var offset2 = { + top: scrollTop2 - relativeOffset.top + relativeOffset.marginTop, + left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft, + width, + height: height2 + }; + return getClientRect(offset2); + } + function isFixed(element) { + var nodeName = element.nodeName; + if (nodeName === "BODY" || nodeName === "HTML") { + return false; + } + if (getStyleComputedProperty(element, "position") === "fixed") { + return true; + } + var parentNode = getParentNode(element); + if (!parentNode) { + return false; + } + return isFixed(parentNode); + } + function getFixedPositionOffsetParent(element) { + if (!element || !element.parentElement || isIE()) { + return document.documentElement; + } + var el = element.parentElement; + while (el && getStyleComputedProperty(el, "transform") === "none") { + el = el.parentElement; + } + return el || document.documentElement; + } + function getBoundaries(popper2, reference, padding, boundariesElement) { + var fixedPosition = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : false; + var boundaries = { top: 0, left: 0 }; + var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper2) : findCommonOffsetParent(popper2, getReferenceNode(reference)); + if (boundariesElement === "viewport") { + boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition); + } else { + var boundariesNode = void 0; + if (boundariesElement === "scrollParent") { + boundariesNode = getScrollParent(getParentNode(reference)); + if (boundariesNode.nodeName === "BODY") { + boundariesNode = popper2.ownerDocument.documentElement; + } + } else if (boundariesElement === "window") { + boundariesNode = popper2.ownerDocument.documentElement; + } else { + boundariesNode = boundariesElement; + } + var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition); + if (boundariesNode.nodeName === "HTML" && !isFixed(offsetParent)) { + var _getWindowSizes = getWindowSizes(popper2.ownerDocument), height2 = _getWindowSizes.height, width = _getWindowSizes.width; + boundaries.top += offsets.top - offsets.marginTop; + boundaries.bottom = height2 + offsets.top; + boundaries.left += offsets.left - offsets.marginLeft; + boundaries.right = width + offsets.left; + } else { + boundaries = offsets; + } + } + padding = padding || 0; + var isPaddingNumber = typeof padding === "number"; + boundaries.left += isPaddingNumber ? padding : padding.left || 0; + boundaries.top += isPaddingNumber ? padding : padding.top || 0; + boundaries.right -= isPaddingNumber ? padding : padding.right || 0; + boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0; + return boundaries; + } + function getArea(_ref) { + var width = _ref.width, height2 = _ref.height; + return width * height2; + } + function computeAutoPlacement(placement, refRect, popper2, reference, boundariesElement) { + var padding = arguments.length > 5 && arguments[5] !== void 0 ? arguments[5] : 0; + if (placement.indexOf("auto") === -1) { + return placement; + } + var boundaries = getBoundaries(popper2, reference, padding, boundariesElement); + var rects = { + top: { + width: boundaries.width, + height: refRect.top - boundaries.top + }, + right: { + width: boundaries.right - refRect.right, + height: boundaries.height + }, + bottom: { + width: boundaries.width, + height: boundaries.bottom - refRect.bottom + }, + left: { + width: refRect.left - boundaries.left, + height: boundaries.height + } + }; + var sortedAreas = Object.keys(rects).map(function(key2) { + return _extends2({ + key: key2 + }, rects[key2], { + area: getArea(rects[key2]) + }); + }).sort(function(a, b) { + return b.area - a.area; + }); + var filteredAreas = sortedAreas.filter(function(_ref2) { + var width = _ref2.width, height2 = _ref2.height; + return width >= popper2.clientWidth && height2 >= popper2.clientHeight; + }); + var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key; + var variation = placement.split("-")[1]; + return computedPlacement + (variation ? "-" + variation : ""); + } + function getReferenceOffsets(state, popper2, reference) { + var fixedPosition = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : null; + var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper2) : findCommonOffsetParent(popper2, getReferenceNode(reference)); + return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition); + } + function getOuterSizes(element) { + var window2 = element.ownerDocument.defaultView; + var styles = window2.getComputedStyle(element); + var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0); + var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0); + var result = { + width: element.offsetWidth + y, + height: element.offsetHeight + x + }; + return result; + } + function getOppositePlacement(placement) { + var hash = { left: "right", right: "left", bottom: "top", top: "bottom" }; + return placement.replace(/left|right|bottom|top/g, function(matched) { + return hash[matched]; + }); + } + function getPopperOffsets(popper2, referenceOffsets, placement) { + placement = placement.split("-")[0]; + var popperRect = getOuterSizes(popper2); + var popperOffsets = { + width: popperRect.width, + height: popperRect.height + }; + var isHoriz = ["right", "left"].indexOf(placement) !== -1; + var mainSide = isHoriz ? "top" : "left"; + var secondarySide = isHoriz ? "left" : "top"; + var measurement = isHoriz ? "height" : "width"; + var secondaryMeasurement = !isHoriz ? "height" : "width"; + popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2; + if (placement === secondarySide) { + popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement]; + } else { + popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)]; + } + return popperOffsets; + } + function find(arr, check) { + if (Array.prototype.find) { + return arr.find(check); + } + return arr.filter(check)[0]; + } + function findIndex(arr, prop2, value) { + if (Array.prototype.findIndex) { + return arr.findIndex(function(cur) { + return cur[prop2] === value; + }); + } + var match = find(arr, function(obj) { + return obj[prop2] === value; + }); + return arr.indexOf(match); + } + function runModifiers(modifiers2, data, ends) { + var modifiersToRun = ends === void 0 ? modifiers2 : modifiers2.slice(0, findIndex(modifiers2, "name", ends)); + modifiersToRun.forEach(function(modifier) { + if (modifier["function"]) { + console.warn("`modifier.function` is deprecated, use `modifier.fn`!"); + } + var fn = modifier["function"] || modifier.fn; + if (modifier.enabled && isFunction2(fn)) { + data.offsets.popper = getClientRect(data.offsets.popper); + data.offsets.reference = getClientRect(data.offsets.reference); + data = fn(data, modifier); + } + }); + return data; + } + function update2() { + if (this.state.isDestroyed) { + return; + } + var data = { + instance: this, + styles: {}, + arrowStyles: {}, + attributes: {}, + flipped: false, + offsets: {} + }; + data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed); + data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding); + data.originalPlacement = data.placement; + data.positionFixed = this.options.positionFixed; + data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement); + data.offsets.popper.position = this.options.positionFixed ? "fixed" : "absolute"; + data = runModifiers(this.modifiers, data); + if (!this.state.isCreated) { + this.state.isCreated = true; + this.options.onCreate(data); + } else { + this.options.onUpdate(data); + } + } + function isModifierEnabled(modifiers2, modifierName) { + return modifiers2.some(function(_ref) { + var name2 = _ref.name, enabled = _ref.enabled; + return enabled && name2 === modifierName; + }); + } + function getSupportedPropertyName(property) { + var prefixes = [false, "ms", "Webkit", "Moz", "O"]; + var upperProp = property.charAt(0).toUpperCase() + property.slice(1); + for (var i = 0; i < prefixes.length; i++) { + var prefix = prefixes[i]; + var toCheck = prefix ? "" + prefix + upperProp : property; + if (typeof document.body.style[toCheck] !== "undefined") { + return toCheck; + } + } + return null; + } + function destroy() { + this.state.isDestroyed = true; + if (isModifierEnabled(this.modifiers, "applyStyle")) { + this.popper.removeAttribute("x-placement"); + this.popper.style.position = ""; + this.popper.style.top = ""; + this.popper.style.left = ""; + this.popper.style.right = ""; + this.popper.style.bottom = ""; + this.popper.style.willChange = ""; + this.popper.style[getSupportedPropertyName("transform")] = ""; + } + this.disableEventListeners(); + if (this.options.removeOnDestroy) { + this.popper.parentNode.removeChild(this.popper); + } + return this; + } + function getWindow(element) { + var ownerDocument = element.ownerDocument; + return ownerDocument ? ownerDocument.defaultView : window; + } + function attachToScrollParents(scrollParent, event, callback, scrollParents) { + var isBody = scrollParent.nodeName === "BODY"; + var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent; + target.addEventListener(event, callback, { passive: true }); + if (!isBody) { + attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents); + } + scrollParents.push(target); + } + function setupEventListeners(reference, options, state, updateBound) { + state.updateBound = updateBound; + getWindow(reference).addEventListener("resize", state.updateBound, { passive: true }); + var scrollElement = getScrollParent(reference); + attachToScrollParents(scrollElement, "scroll", state.updateBound, state.scrollParents); + state.scrollElement = scrollElement; + state.eventsEnabled = true; + return state; + } + function enableEventListeners() { + if (!this.state.eventsEnabled) { + this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate); + } + } + function removeEventListeners(reference, state) { + getWindow(reference).removeEventListener("resize", state.updateBound); + state.scrollParents.forEach(function(target) { + target.removeEventListener("scroll", state.updateBound); + }); + state.updateBound = null; + state.scrollParents = []; + state.scrollElement = null; + state.eventsEnabled = false; + return state; + } + function disableEventListeners() { + if (this.state.eventsEnabled) { + cancelAnimationFrame(this.scheduleUpdate); + this.state = removeEventListeners(this.reference, this.state); + } + } + function isNumeric(n) { + return n !== "" && !isNaN(parseFloat(n)) && isFinite(n); + } + function setStyles(element, styles) { + Object.keys(styles).forEach(function(prop2) { + var unit2 = ""; + if (["width", "height", "top", "right", "bottom", "left"].indexOf(prop2) !== -1 && isNumeric(styles[prop2])) { + unit2 = "px"; + } + element.style[prop2] = styles[prop2] + unit2; + }); + } + function setAttributes(element, attributes) { + Object.keys(attributes).forEach(function(prop2) { + var value = attributes[prop2]; + if (value !== false) { + element.setAttribute(prop2, attributes[prop2]); + } else { + element.removeAttribute(prop2); + } + }); + } + function applyStyle(data) { + setStyles(data.instance.popper, data.styles); + setAttributes(data.instance.popper, data.attributes); + if (data.arrowElement && Object.keys(data.arrowStyles).length) { + setStyles(data.arrowElement, data.arrowStyles); + } + return data; + } + function applyStyleOnLoad(reference, popper2, options, modifierOptions, state) { + var referenceOffsets = getReferenceOffsets(state, popper2, reference, options.positionFixed); + var placement = computeAutoPlacement(options.placement, referenceOffsets, popper2, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding); + popper2.setAttribute("x-placement", placement); + setStyles(popper2, { position: options.positionFixed ? "fixed" : "absolute" }); + return options; + } + function getRoundedOffsets(data, shouldRound) { + var _data$offsets = data.offsets, popper2 = _data$offsets.popper, reference = _data$offsets.reference; + var round = Math.round, floor = Math.floor; + var noRound = function noRound2(v) { + return v; + }; + var referenceWidth = round(reference.width); + var popperWidth = round(popper2.width); + var isVertical = ["left", "right"].indexOf(data.placement) !== -1; + var isVariation = data.placement.indexOf("-") !== -1; + var sameWidthParity = referenceWidth % 2 === popperWidth % 2; + var bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1; + var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor; + var verticalToInteger = !shouldRound ? noRound : round; + return { + left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper2.left - 1 : popper2.left), + top: verticalToInteger(popper2.top), + bottom: verticalToInteger(popper2.bottom), + right: horizontalToInteger(popper2.right) + }; + } + var isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent); + function computeStyle(data, options) { + var x = options.x, y = options.y; + var popper2 = data.offsets.popper; + var legacyGpuAccelerationOption = find(data.instance.modifiers, function(modifier) { + return modifier.name === "applyStyle"; + }).gpuAcceleration; + if (legacyGpuAccelerationOption !== void 0) { + console.warn("WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!"); + } + var gpuAcceleration = legacyGpuAccelerationOption !== void 0 ? legacyGpuAccelerationOption : options.gpuAcceleration; + var offsetParent = getOffsetParent(data.instance.popper); + var offsetParentRect = getBoundingClientRect(offsetParent); + var styles = { + position: popper2.position + }; + var offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox); + var sideA = x === "bottom" ? "top" : "bottom"; + var sideB = y === "right" ? "left" : "right"; + var prefixedProperty = getSupportedPropertyName("transform"); + var left = void 0, top2 = void 0; + if (sideA === "bottom") { + if (offsetParent.nodeName === "HTML") { + top2 = -offsetParent.clientHeight + offsets.bottom; + } else { + top2 = -offsetParentRect.height + offsets.bottom; + } + } else { + top2 = offsets.top; + } + if (sideB === "right") { + if (offsetParent.nodeName === "HTML") { + left = -offsetParent.clientWidth + offsets.right; + } else { + left = -offsetParentRect.width + offsets.right; + } + } else { + left = offsets.left; + } + if (gpuAcceleration && prefixedProperty) { + styles[prefixedProperty] = "translate3d(" + left + "px, " + top2 + "px, 0)"; + styles[sideA] = 0; + styles[sideB] = 0; + styles.willChange = "transform"; + } else { + var invertTop = sideA === "bottom" ? -1 : 1; + var invertLeft = sideB === "right" ? -1 : 1; + styles[sideA] = top2 * invertTop; + styles[sideB] = left * invertLeft; + styles.willChange = sideA + ", " + sideB; + } + var attributes = { + "x-placement": data.placement + }; + data.attributes = _extends2({}, attributes, data.attributes); + data.styles = _extends2({}, styles, data.styles); + data.arrowStyles = _extends2({}, data.offsets.arrow, data.arrowStyles); + return data; + } + function isModifierRequired(modifiers2, requestingName, requestedName) { + var requesting = find(modifiers2, function(_ref) { + var name2 = _ref.name; + return name2 === requestingName; + }); + var isRequired = !!requesting && modifiers2.some(function(modifier) { + return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order; + }); + if (!isRequired) { + var _requesting = "`" + requestingName + "`"; + var requested = "`" + requestedName + "`"; + console.warn(requested + " modifier is required by " + _requesting + " modifier in order to work, be sure to include it before " + _requesting + "!"); + } + return isRequired; + } + function arrow(data, options) { + var _data$offsets$arrow; + if (!isModifierRequired(data.instance.modifiers, "arrow", "keepTogether")) { + return data; + } + var arrowElement = options.element; + if (typeof arrowElement === "string") { + arrowElement = data.instance.popper.querySelector(arrowElement); + if (!arrowElement) { + return data; + } + } else { + if (!data.instance.popper.contains(arrowElement)) { + console.warn("WARNING: `arrow.element` must be child of its popper element!"); + return data; + } + } + var placement = data.placement.split("-")[0]; + var _data$offsets = data.offsets, popper2 = _data$offsets.popper, reference = _data$offsets.reference; + var isVertical = ["left", "right"].indexOf(placement) !== -1; + var len = isVertical ? "height" : "width"; + var sideCapitalized = isVertical ? "Top" : "Left"; + var side = sideCapitalized.toLowerCase(); + var altSide = isVertical ? "left" : "top"; + var opSide = isVertical ? "bottom" : "right"; + var arrowElementSize = getOuterSizes(arrowElement)[len]; + if (reference[opSide] - arrowElementSize < popper2[side]) { + data.offsets.popper[side] -= popper2[side] - (reference[opSide] - arrowElementSize); + } + if (reference[side] + arrowElementSize > popper2[opSide]) { + data.offsets.popper[side] += reference[side] + arrowElementSize - popper2[opSide]; + } + data.offsets.popper = getClientRect(data.offsets.popper); + var center = reference[side] + reference[len] / 2 - arrowElementSize / 2; + var css = getStyleComputedProperty(data.instance.popper); + var popperMarginSide = parseFloat(css["margin" + sideCapitalized]); + var popperBorderSide = parseFloat(css["border" + sideCapitalized + "Width"]); + var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide; + sideValue = Math.max(Math.min(popper2[len] - arrowElementSize, sideValue), 0); + data.arrowElement = arrowElement; + data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ""), _data$offsets$arrow); + return data; + } + function getOppositeVariation(variation) { + if (variation === "end") { + return "start"; + } else if (variation === "start") { + return "end"; + } + return variation; + } + var placements = ["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"]; + var validPlacements = placements.slice(3); + function clockwise(placement) { + var counter = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : false; + var index2 = validPlacements.indexOf(placement); + var arr = validPlacements.slice(index2 + 1).concat(validPlacements.slice(0, index2)); + return counter ? arr.reverse() : arr; + } + var BEHAVIORS = { + FLIP: "flip", + CLOCKWISE: "clockwise", + COUNTERCLOCKWISE: "counterclockwise" + }; + function flip2(data, options) { + if (isModifierEnabled(data.instance.modifiers, "inner")) { + return data; + } + if (data.flipped && data.placement === data.originalPlacement) { + return data; + } + var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed); + var placement = data.placement.split("-")[0]; + var placementOpposite = getOppositePlacement(placement); + var variation = data.placement.split("-")[1] || ""; + var flipOrder = []; + switch (options.behavior) { + case BEHAVIORS.FLIP: + flipOrder = [placement, placementOpposite]; + break; + case BEHAVIORS.CLOCKWISE: + flipOrder = clockwise(placement); + break; + case BEHAVIORS.COUNTERCLOCKWISE: + flipOrder = clockwise(placement, true); + break; + default: + flipOrder = options.behavior; + } + flipOrder.forEach(function(step, index2) { + if (placement !== step || flipOrder.length === index2 + 1) { + return data; + } + placement = data.placement.split("-")[0]; + placementOpposite = getOppositePlacement(placement); + var popperOffsets = data.offsets.popper; + var refOffsets = data.offsets.reference; + var floor = Math.floor; + var overlapsRef = placement === "left" && floor(popperOffsets.right) > floor(refOffsets.left) || placement === "right" && floor(popperOffsets.left) < floor(refOffsets.right) || placement === "top" && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === "bottom" && floor(popperOffsets.top) < floor(refOffsets.bottom); + var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left); + var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right); + var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top); + var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom); + var overflowsBoundaries = placement === "left" && overflowsLeft || placement === "right" && overflowsRight || placement === "top" && overflowsTop || placement === "bottom" && overflowsBottom; + var isVertical = ["top", "bottom"].indexOf(placement) !== -1; + var flippedVariationByRef = !!options.flipVariations && (isVertical && variation === "start" && overflowsLeft || isVertical && variation === "end" && overflowsRight || !isVertical && variation === "start" && overflowsTop || !isVertical && variation === "end" && overflowsBottom); + var flippedVariationByContent = !!options.flipVariationsByContent && (isVertical && variation === "start" && overflowsRight || isVertical && variation === "end" && overflowsLeft || !isVertical && variation === "start" && overflowsBottom || !isVertical && variation === "end" && overflowsTop); + var flippedVariation = flippedVariationByRef || flippedVariationByContent; + if (overlapsRef || overflowsBoundaries || flippedVariation) { + data.flipped = true; + if (overlapsRef || overflowsBoundaries) { + placement = flipOrder[index2 + 1]; + } + if (flippedVariation) { + variation = getOppositeVariation(variation); + } + data.placement = placement + (variation ? "-" + variation : ""); + data.offsets.popper = _extends2({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement)); + data = runModifiers(data.instance.modifiers, data, "flip"); + } + }); + return data; + } + function keepTogether(data) { + var _data$offsets = data.offsets, popper2 = _data$offsets.popper, reference = _data$offsets.reference; + var placement = data.placement.split("-")[0]; + var floor = Math.floor; + var isVertical = ["top", "bottom"].indexOf(placement) !== -1; + var side = isVertical ? "right" : "bottom"; + var opSide = isVertical ? "left" : "top"; + var measurement = isVertical ? "width" : "height"; + if (popper2[side] < floor(reference[opSide])) { + data.offsets.popper[opSide] = floor(reference[opSide]) - popper2[measurement]; + } + if (popper2[opSide] > floor(reference[side])) { + data.offsets.popper[opSide] = floor(reference[side]); + } + return data; + } + function toValue(str, measurement, popperOffsets, referenceOffsets) { + var split = str.match(/((?:\-|\+)?\d*\.?\d*)(.*)/); + var value = +split[1]; + var unit2 = split[2]; + if (!value) { + return str; + } + if (unit2.indexOf("%") === 0) { + var element = void 0; + switch (unit2) { + case "%p": + element = popperOffsets; + break; + case "%": + case "%r": + default: + element = referenceOffsets; + } + var rect = getClientRect(element); + return rect[measurement] / 100 * value; + } else if (unit2 === "vh" || unit2 === "vw") { + var size = void 0; + if (unit2 === "vh") { + size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0); + } else { + size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0); + } + return size / 100 * value; + } else { + return value; + } + } + function parseOffset(offset2, popperOffsets, referenceOffsets, basePlacement) { + var offsets = [0, 0]; + var useHeight = ["right", "left"].indexOf(basePlacement) !== -1; + var fragments = offset2.split(/(\+|\-)/).map(function(frag) { + return frag.trim(); + }); + var divider = fragments.indexOf(find(fragments, function(frag) { + return frag.search(/,|\s/) !== -1; + })); + if (fragments[divider] && fragments[divider].indexOf(",") === -1) { + console.warn("Offsets separated by white space(s) are deprecated, use a comma (,) instead."); + } + var splitRegex = /\s*,\s*|\s+/; + var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments]; + ops = ops.map(function(op, index2) { + var measurement = (index2 === 1 ? !useHeight : useHeight) ? "height" : "width"; + var mergeWithPrevious = false; + return op.reduce(function(a, b) { + if (a[a.length - 1] === "" && ["+", "-"].indexOf(b) !== -1) { + a[a.length - 1] = b; + mergeWithPrevious = true; + return a; + } else if (mergeWithPrevious) { + a[a.length - 1] += b; + mergeWithPrevious = false; + return a; + } else { + return a.concat(b); + } + }, []).map(function(str) { + return toValue(str, measurement, popperOffsets, referenceOffsets); + }); + }); + ops.forEach(function(op, index2) { + op.forEach(function(frag, index22) { + if (isNumeric(frag)) { + offsets[index2] += frag * (op[index22 - 1] === "-" ? -1 : 1); + } + }); + }); + return offsets; + } + function offset(data, _ref) { + var offset2 = _ref.offset; + var placement = data.placement, _data$offsets = data.offsets, popper2 = _data$offsets.popper, reference = _data$offsets.reference; + var basePlacement = placement.split("-")[0]; + var offsets = void 0; + if (isNumeric(+offset2)) { + offsets = [+offset2, 0]; + } else { + offsets = parseOffset(offset2, popper2, reference, basePlacement); + } + if (basePlacement === "left") { + popper2.top += offsets[0]; + popper2.left -= offsets[1]; + } else if (basePlacement === "right") { + popper2.top += offsets[0]; + popper2.left += offsets[1]; + } else if (basePlacement === "top") { + popper2.left += offsets[0]; + popper2.top -= offsets[1]; + } else if (basePlacement === "bottom") { + popper2.left += offsets[0]; + popper2.top += offsets[1]; + } + data.popper = popper2; + return data; + } + function preventOverflow(data, options) { + var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper); + if (data.instance.reference === boundariesElement) { + boundariesElement = getOffsetParent(boundariesElement); + } + var transformProp = getSupportedPropertyName("transform"); + var popperStyles = data.instance.popper.style; + var top2 = popperStyles.top, left = popperStyles.left, transform = popperStyles[transformProp]; + popperStyles.top = ""; + popperStyles.left = ""; + popperStyles[transformProp] = ""; + var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed); + popperStyles.top = top2; + popperStyles.left = left; + popperStyles[transformProp] = transform; + options.boundaries = boundaries; + var order = options.priority; + var popper2 = data.offsets.popper; + var check = { + primary: function primary(placement) { + var value = popper2[placement]; + if (popper2[placement] < boundaries[placement] && !options.escapeWithReference) { + value = Math.max(popper2[placement], boundaries[placement]); + } + return defineProperty({}, placement, value); + }, + secondary: function secondary(placement) { + var mainSide = placement === "right" ? "left" : "top"; + var value = popper2[mainSide]; + if (popper2[placement] > boundaries[placement] && !options.escapeWithReference) { + value = Math.min(popper2[mainSide], boundaries[placement] - (placement === "right" ? popper2.width : popper2.height)); + } + return defineProperty({}, mainSide, value); + } + }; + order.forEach(function(placement) { + var side = ["left", "top"].indexOf(placement) !== -1 ? "primary" : "secondary"; + popper2 = _extends2({}, popper2, check[side](placement)); + }); + data.offsets.popper = popper2; + return data; + } + function shift(data) { + var placement = data.placement; + var basePlacement = placement.split("-")[0]; + var shiftvariation = placement.split("-")[1]; + if (shiftvariation) { + var _data$offsets = data.offsets, reference = _data$offsets.reference, popper2 = _data$offsets.popper; + var isVertical = ["bottom", "top"].indexOf(basePlacement) !== -1; + var side = isVertical ? "left" : "top"; + var measurement = isVertical ? "width" : "height"; + var shiftOffsets = { + start: defineProperty({}, side, reference[side]), + end: defineProperty({}, side, reference[side] + reference[measurement] - popper2[measurement]) + }; + data.offsets.popper = _extends2({}, popper2, shiftOffsets[shiftvariation]); + } + return data; + } + function hide2(data) { + if (!isModifierRequired(data.instance.modifiers, "hide", "preventOverflow")) { + return data; + } + var refRect = data.offsets.reference; + var bound = find(data.instance.modifiers, function(modifier) { + return modifier.name === "preventOverflow"; + }).boundaries; + if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) { + if (data.hide === true) { + return data; + } + data.hide = true; + data.attributes["x-out-of-boundaries"] = ""; + } else { + if (data.hide === false) { + return data; + } + data.hide = false; + data.attributes["x-out-of-boundaries"] = false; + } + return data; + } + function inner(data) { + var placement = data.placement; + var basePlacement = placement.split("-")[0]; + var _data$offsets = data.offsets, popper2 = _data$offsets.popper, reference = _data$offsets.reference; + var isHoriz = ["left", "right"].indexOf(basePlacement) !== -1; + var subtractLength = ["top", "left"].indexOf(basePlacement) === -1; + popper2[isHoriz ? "left" : "top"] = reference[basePlacement] - (subtractLength ? popper2[isHoriz ? "width" : "height"] : 0); + data.placement = getOppositePlacement(placement); + data.offsets.popper = getClientRect(popper2); + return data; + } + var modifiers = { + shift: { + order: 100, + enabled: true, + fn: shift + }, + offset: { + order: 200, + enabled: true, + fn: offset, + offset: 0 + }, + preventOverflow: { + order: 300, + enabled: true, + fn: preventOverflow, + priority: ["left", "right", "top", "bottom"], + padding: 5, + boundariesElement: "scrollParent" + }, + keepTogether: { + order: 400, + enabled: true, + fn: keepTogether + }, + arrow: { + order: 500, + enabled: true, + fn: arrow, + element: "[x-arrow]" + }, + flip: { + order: 600, + enabled: true, + fn: flip2, + behavior: "flip", + padding: 5, + boundariesElement: "viewport", + flipVariations: false, + flipVariationsByContent: false + }, + inner: { + order: 700, + enabled: false, + fn: inner + }, + hide: { + order: 800, + enabled: true, + fn: hide2 + }, + computeStyle: { + order: 850, + enabled: true, + fn: computeStyle, + gpuAcceleration: true, + x: "bottom", + y: "right" + }, + applyStyle: { + order: 900, + enabled: true, + fn: applyStyle, + onLoad: applyStyleOnLoad, + gpuAcceleration: void 0 + } + }; + var Defaults = { + placement: "bottom", + positionFixed: false, + eventsEnabled: true, + removeOnDestroy: false, + onCreate: function onCreate() { + }, + onUpdate: function onUpdate() { + }, + modifiers + }; + var Popper2 = function() { + function Popper3(reference, popper2) { + var _this = this; + var options = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {}; + classCallCheck(this, Popper3); + this.scheduleUpdate = function() { + return requestAnimationFrame(_this.update); + }; + this.update = debounce2(this.update.bind(this)); + this.options = _extends2({}, Popper3.Defaults, options); + this.state = { + isDestroyed: false, + isCreated: false, + scrollParents: [] + }; + this.reference = reference && reference.jquery ? reference[0] : reference; + this.popper = popper2 && popper2.jquery ? popper2[0] : popper2; + this.options.modifiers = {}; + Object.keys(_extends2({}, Popper3.Defaults.modifiers, options.modifiers)).forEach(function(name2) { + _this.options.modifiers[name2] = _extends2({}, Popper3.Defaults.modifiers[name2] || {}, options.modifiers ? options.modifiers[name2] : {}); + }); + this.modifiers = Object.keys(this.options.modifiers).map(function(name2) { + return _extends2({ + name: name2 + }, _this.options.modifiers[name2]); + }).sort(function(a, b) { + return a.order - b.order; + }); + this.modifiers.forEach(function(modifierOptions) { + if (modifierOptions.enabled && isFunction2(modifierOptions.onLoad)) { + modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state); + } + }); + this.update(); + var eventsEnabled = this.options.eventsEnabled; + if (eventsEnabled) { + this.enableEventListeners(); + } + this.state.eventsEnabled = eventsEnabled; + } + createClass(Popper3, [{ + key: "update", + value: function update$$1() { + return update2.call(this); + } + }, { + key: "destroy", + value: function destroy$$1() { + return destroy.call(this); + } + }, { + key: "enableEventListeners", + value: function enableEventListeners$$1() { + return enableEventListeners.call(this); + } + }, { + key: "disableEventListeners", + value: function disableEventListeners$$1() { + return disableEventListeners.call(this); + } + }]); + return Popper3; + }(); + Popper2.Utils = (typeof window !== "undefined" ? window : commonjsGlobal).PopperUtils; + Popper2.placements = placements; + Popper2.Defaults = Defaults; + return Popper2; + }); +})(popper); +var Popper$1 = popper.exports; +let transferIndex = 0; +let lastVisibleIndex = 0; +function transferIncrease() { + transferIndex++; +} +function lastVisibleIncrease() { + lastVisibleIndex++; +} +const _sfc_main$2p = { + name: "Drop", + emits: ["mouseenter", "mouseleave", "click"], + props: { + placement: { + type: String, + default: "bottom-start" + }, + className: { + type: String + }, + transfer: { + type: Boolean + }, + eventsEnabled: { + type: Boolean, + default: false + }, + visible: { + type: Boolean + }, + classes: { + type: Object, + default: () => { + } + }, + styles: { + type: Object, + default: () => { + } + }, + transitionName: { + type: String, + default: "transition-drop" + }, + boundariesElement: { + default: "window" + } + }, + data() { + return { + popper: null, + width: "", + popperStatus: false, + tIndex: this.handleGetIndex() + }; + }, + computed: { + mergedStyle() { + let style2 = {}; + if (this.width) + style2.minWidth = `${this.width}px`; + if (this.transfer) + style2["z-index"] = 1060 + this.tIndex; + return Object.assign({}, this.styles, style2); + }, + mergedClass() { + return Object.assign({}, this.classes, { + [this.className]: this.className + }); + } + }, + methods: { + update() { + nextTick(() => { + if (this.popper) { + this.popper.update(); + this.popperStatus = true; + } else { + this.popper = new Popper$1(this.$parent.$refs.reference, this.$refs.drop, { + eventsEnabled: this.eventsEnabled, + placement: this.placement, + modifiers: { + computeStyle: { + gpuAcceleration: false + }, + preventOverflow: { + boundariesElement: this.boundariesElement + } + }, + onCreate: () => { + this.resetTransformOrigin(); + nextTick(this.popper.update()); + }, + onUpdate: () => { + this.resetTransformOrigin(); + } + }); + } + if (this.$parent.$options.name === "iSelect") { + this.width = parseInt(getStyle(this.$parent.$el, "width")); + } + this.tIndex = this.handleGetIndex(); + }); + }, + destroy() { + if (this.popper) { + setTimeout(() => { + if (this.popper && !this.popperStatus) { + this.popper.popper.style.display = "none"; + this.popper.destroy(); + this.popper = null; + } + this.popperStatus = false; + }, 300); + } + }, + resetTransformOrigin() { + if (!this.popper) + return; + let x_placement = this.popper.popper.getAttribute("x-placement"); + let placementStart = x_placement.split("-")[0]; + let placementEnd = x_placement.split("-")[1]; + const leftOrRight = x_placement === "left" || x_placement === "right"; + if (!leftOrRight) { + this.popper.popper.style.transformOrigin = placementStart === "bottom" || placementStart !== "top" && placementEnd === "start" ? "center top" : "center bottom"; + } + }, + handleGetIndex() { + transferIncrease(); + return transferIndex; + }, + handleMouseenter(e) { + this.$emit("mouseenter", e); + }, + handleMouseleave(e) { + this.$emit("mouseleave", e); + }, + handleOnUpdatePopper() { + this.update(); + }, + handleOnDestroyPopper() { + this.destroy(); + }, + handleClick(event) { + this.$emit("click", event); + } + }, + beforeUnmount() { + if (this.popper) { + this.popper.destroy(); + this.popper = null; + } + } +}; +function _sfc_render$29(_ctx, _cache, $props, $setup, $data, $options) { + return openBlock(), createBlock(Teleport, { + to: "body", + disabled: !$props.transfer + }, [ + createVNode(Transition, { name: $props.transitionName }, { + default: withCtx(() => [ + withDirectives(createElementVNode("div", mergeProps({ + class: ["ivu-select-dropdown", $options.mergedClass], + ref: "drop", + style: $options.mergedStyle + }, _ctx.$attrs, { + onMouseenter: _cache[0] || (_cache[0] = (...args) => $options.handleMouseenter && $options.handleMouseenter(...args)), + onMouseleave: _cache[1] || (_cache[1] = (...args) => $options.handleMouseleave && $options.handleMouseleave(...args)), + onClick: _cache[2] || (_cache[2] = withModifiers((...args) => $options.handleClick && $options.handleClick(...args), ["stop"])) + }), [ + renderSlot(_ctx.$slots, "default") + ], 16), [ + [vShow, $props.visible] + ]) + ]), + _: 3 + }, 8, ["name"]) + ], 8, ["disabled"]); +} +var Drop = /* @__PURE__ */ _export_sfc(_sfc_main$2p, [["render", _sfc_render$29]]); +function setLang(lang2) { + if (isClient && typeof window.viewuiplus !== "undefined") { + if (!("langs" in viewuiplus)) { + viewuiplus.langs = {}; + } + viewuiplus.langs[lang2.i.locale] = lang2; + } +} +const lang$2 = { + i: { + locale: "zh-CN", + select: { + placeholder: "\u8BF7\u9009\u62E9", + noMatch: "\u65E0\u5339\u914D\u6570\u636E", + loading: "\u52A0\u8F7D\u4E2D" + }, + table: { + noDataText: "\u6682\u65E0\u6570\u636E", + noFilteredDataText: "\u6682\u65E0\u7B5B\u9009\u7ED3\u679C", + confirmFilter: "\u7B5B\u9009", + resetFilter: "\u91CD\u7F6E", + clearFilter: "\u5168\u90E8", + sumText: "\u5408\u8BA1" + }, + datepicker: { + selectDate: "\u9009\u62E9\u65E5\u671F", + selectTime: "\u9009\u62E9\u65F6\u95F4", + startTime: "\u5F00\u59CB\u65F6\u95F4", + endTime: "\u7ED3\u675F\u65F6\u95F4", + clear: "\u6E05\u7A7A", + ok: "\u786E\u5B9A", + datePanelLabel: "[yyyy\u5E74] [m\u6708]", + month: "\u6708", + month1: "1 \u6708", + month2: "2 \u6708", + month3: "3 \u6708", + month4: "4 \u6708", + month5: "5 \u6708", + month6: "6 \u6708", + month7: "7 \u6708", + month8: "8 \u6708", + month9: "9 \u6708", + month10: "10 \u6708", + month11: "11 \u6708", + month12: "12 \u6708", + year: "\u5E74", + weekStartDay: "0", + weeks: { + sun: "\u65E5", + mon: "\u4E00", + tue: "\u4E8C", + wed: "\u4E09", + thu: "\u56DB", + fri: "\u4E94", + sat: "\u516D" + }, + months: { + m1: "1\u6708", + m2: "2\u6708", + m3: "3\u6708", + m4: "4\u6708", + m5: "5\u6708", + m6: "6\u6708", + m7: "7\u6708", + m8: "8\u6708", + m9: "9\u6708", + m10: "10\u6708", + m11: "11\u6708", + m12: "12\u6708" + } + }, + transfer: { + titles: { + source: "\u6E90\u5217\u8868", + target: "\u76EE\u7684\u5217\u8868" + }, + filterPlaceholder: "\u8BF7\u8F93\u5165\u641C\u7D22\u5185\u5BB9", + notFoundText: "\u5217\u8868\u4E3A\u7A7A" + }, + modal: { + okText: "\u786E\u5B9A", + cancelText: "\u53D6\u6D88" + }, + poptip: { + okText: "\u786E\u5B9A", + cancelText: "\u53D6\u6D88" + }, + page: { + prev: "\u4E0A\u4E00\u9875", + next: "\u4E0B\u4E00\u9875", + total: "\u5171", + item: "\u6761", + items: "\u6761", + prev5: "\u5411\u524D 5 \u9875", + next5: "\u5411\u540E 5 \u9875", + page: "\u6761/\u9875", + goto: "\u8DF3\u81F3", + p: "\u9875" + }, + rate: { + star: "\u661F", + stars: "\u661F" + }, + time: { + before: "\u524D", + after: "\u540E", + just: "\u521A\u521A", + seconds: "\u79D2", + minutes: "\u5206\u949F", + hours: "\u5C0F\u65F6", + days: "\u5929" + }, + tree: { + emptyText: "\u6682\u65E0\u6570\u636E" + }, + image: { + zoomIn: "\u653E\u5927", + zoomOut: "\u7F29\u5C0F", + rotateLeft: "\u5DE6\u65CB\u8F6C", + rotateRight: "\u53F3\u65CB\u8F6C", + fail: "\u5931\u8D25", + preview: "\u9884\u89C8" + } + } +}; +setLang(lang$2); +var isMergeableObject = function isMergeableObject2(value) { + return isNonNullObject(value) && !isSpecial(value); +}; +function isNonNullObject(value) { + return !!value && typeof value === "object"; +} +function isSpecial(value) { + var stringValue = Object.prototype.toString.call(value); + return stringValue === "[object RegExp]" || stringValue === "[object Date]" || isReactElement(value); +} +var canUseSymbol = typeof Symbol === "function" && Symbol.for; +var REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for("react.element") : 60103; +function isReactElement(value) { + return value.$$typeof === REACT_ELEMENT_TYPE; +} +function emptyTarget(val) { + return Array.isArray(val) ? [] : {}; +} +function cloneUnlessOtherwiseSpecified(value, options) { + return options.clone !== false && options.isMergeableObject(value) ? deepmerge(emptyTarget(value), value, options) : value; +} +function defaultArrayMerge(target, source, options) { + return target.concat(source).map(function(element) { + return cloneUnlessOtherwiseSpecified(element, options); + }); +} +function mergeObject(target, source, options) { + var destination = {}; + if (options.isMergeableObject(target)) { + Object.keys(target).forEach(function(key2) { + destination[key2] = cloneUnlessOtherwiseSpecified(target[key2], options); + }); + } + Object.keys(source).forEach(function(key2) { + if (!options.isMergeableObject(source[key2]) || !target[key2]) { + destination[key2] = cloneUnlessOtherwiseSpecified(source[key2], options); + } else { + destination[key2] = deepmerge(target[key2], source[key2], options); + } + }); + return destination; +} +function deepmerge(target, source, options) { + options = options || {}; + options.arrayMerge = options.arrayMerge || defaultArrayMerge; + options.isMergeableObject = options.isMergeableObject || isMergeableObject; + var sourceIsArray = Array.isArray(source); + var targetIsArray = Array.isArray(target); + var sourceAndTargetTypesMatch = sourceIsArray === targetIsArray; + if (!sourceAndTargetTypesMatch) { + return cloneUnlessOtherwiseSpecified(source, options); + } else if (sourceIsArray) { + return options.arrayMerge(target, source, options); + } else { + return mergeObject(target, source, options); + } +} +deepmerge.all = function deepmergeAll(array3, options) { + if (!Array.isArray(array3)) { + throw new Error("first argument should be an array"); + } + return array3.reduce(function(prev, next) { + return deepmerge(prev, next, options); + }, {}); +}; +var deepmerge_1 = deepmerge; +const RE_NARGS = /(%|)\{([0-9a-zA-Z_]+)\}/g; +function Format() { + function hasOwn(obj, key2) { + return Object.prototype.hasOwnProperty.call(obj, key2); + } + function template(string2, ...args) { + if (args.length === 1 && typeof args[0] === "object") { + args = args[0]; + } + if (!args || !args.hasOwnProperty) { + args = {}; + } + if (string2 === void 0) { + return ""; + } + return string2.replace(RE_NARGS, (match, prefix, i, index2) => { + let result; + if (string2[index2 - 1] === "{" && string2[index2 + match.length] === "}") { + return i; + } else { + result = hasOwn(args, i) ? args[i] : null; + if (result === null || result === void 0) { + return ""; + } + return result; + } + }); + } + return template; +} +const format$1 = Format(); +let lang$1 = lang$2; +const langs = { + zh: lang$2 +}; +let nowLang = null; +let merged = {}; +let vuei18n = null; +let i18nHandler = function() { + if (Reflect.has(this, "$t")) { + return this.$t(...arguments); + } + if (vuei18n && vuei18n.global) { + return vuei18n.global.t(...arguments); + } + if (vuei18n && vuei18n.locale) { + if (!merged[vuei18n.locale] || nowLang != vuei18n.locale) { + merged[vuei18n.locale] = true; + let localMessage = vuei18n.getLocaleMessage(vuei18n.locale) || {}; + let newLocalMessage = {}; + deepmerge_1(newLocalMessage, langs[vuei18n.locale], localMessage); + lang$1 = newLocalMessage; + vuei18n.setLocaleMessage(vuei18n.locale, newLocalMessage); + nowLang = vuei18n.locale; + } + return vuei18n.hlang(...arguments); + } +}; +const t = function(path, options) { + let value = i18nHandler.apply(this, arguments); + if (value !== null && value !== void 0) + return value; + const array3 = path.split("."); + let current = lang$1; + for (let i = 0, j = array3.length; i < j; i++) { + const property = array3[i]; + value = current[property]; + if (i === j - 1) + return format$1(value, options); + if (!value) + return ""; + current = value; + } + return ""; +}; +const use = function(l) { + lang$1 = l || lang$1; +}; +const i18n$1 = function(initI18n) { + vuei18n = initI18n; +}; +var localeFile = { + use, + t, + i18n: i18n$1 +}; +var Locale = { + methods: { + t(...args) { + return t.apply(this, args); + } + } +}; +var globalConfig = { + data() { + return { + globalConfig: {} + }; + }, + created() { + const instance = getCurrentInstance(); + this.globalConfig = instance.appContext.config.globalProperties.$VIEWUI; + } +}; +const prefixCls$1j = "ivu-select"; +const _sfc_main$2o = { + name: "iSelectHead", + mixins: [Locale, globalConfig], + components: { Icon }, + emits: ["on-input-focus", "on-input-blur", "on-keydown", "on-enter", "on-clear", "on-query-change"], + inject: ["SelectInstance"], + props: { + disabled: { + type: Boolean, + default: false + }, + filterable: { + type: Boolean, + default: false + }, + multiple: { + type: Boolean, + default: false + }, + remote: { + type: Boolean, + default: false + }, + initialLabel: { + type: [String, Number, Array] + }, + values: { + type: Array, + default: () => [] + }, + clearable: { + type: [Function, Boolean], + default: false + }, + inputElementId: { + type: String + }, + placeholder: { + type: String + }, + queryProp: { + type: String, + default: "" + }, + prefix: { + type: String + }, + maxTagCount: { + type: Number + }, + maxTagPlaceholder: { + type: Function + }, + allowCreate: { + type: Boolean + }, + showCreateItem: { + type: Boolean + } + }, + data() { + return { + prefixCls: prefixCls$1j, + query: "", + inputLength: 20, + remoteInitialLabel: this.initialLabel, + preventRemoteCall: false + }; + }, + computed: { + singleDisplayClasses() { + const { filterable, multiple, showPlaceholder } = this; + return [{ + [prefixCls$1j + "-head-with-prefix"]: this.showPrefix, + [prefixCls$1j + "-placeholder"]: showPlaceholder && !filterable, + [prefixCls$1j + "-selected-value"]: !showPlaceholder && !multiple && !filterable + }]; + }, + singleDisplayValue() { + if (this.multiple && this.values.length > 0 || this.filterable) + return ""; + return `${this.selectedSingle}` || this.localePlaceholder; + }, + showPlaceholder() { + let status = false; + if (!this.multiple) { + const value = this.values[0]; + if (typeof value === "undefined" || String(value).trim() === "") { + status = !this.remoteInitialLabel; + } + } else { + if (!this.values.length > 0) { + status = true; + } + } + return status; + }, + resetSelect() { + return !this.showPlaceholder && this.clearable; + }, + inputStyle() { + let style2 = {}; + if (this.multiple) { + if (this.showPlaceholder) { + style2.width = "100%"; + } else { + style2.width = `${this.inputLength}px`; + } + } + return style2; + }, + localePlaceholder() { + if (this.placeholder === void 0) { + return this.t("i.select.placeholder"); + } else { + return this.placeholder; + } + }, + selectedSingle() { + const selected = this.values[0]; + return selected ? selected.label : this.remoteInitialLabel || ""; + }, + selectedMultiple() { + const values = this.multiple ? this.values : []; + return values.filter((item, index2) => this.maxTagCount === void 0 || index2 < this.maxTagCount); + }, + headCls() { + return { + [`${prefixCls$1j}-head-flex`]: this.filterable && this.showPrefix + }; + }, + arrowType() { + const config = this.globalConfig; + let type2 = "ios-arrow-down"; + if (config) { + if (config.select.customArrow) { + type2 = ""; + } else if (config.select.arrow) { + type2 = config.select.arrow; + } + } + return type2; + }, + customArrowType() { + const config = this.globalConfig; + let type2 = ""; + if (config) { + if (config.select.customArrow) { + type2 = config.select.customArrow; + } + } + return type2; + }, + showPrefix() { + const prefix = this.$slots.prefix && this.$slots.prefix(); + let visible = false; + if (prefix) { + visible = prefix[0].children.length > 0; + } + return visible || this.prefix; + }, + arrowSize() { + const config = this.globalConfig; + let size = ""; + if (config) { + if (config.select.arrowSize) { + size = config.select.arrowSize; + } + } + return size; + } + }, + methods: { + onInputFocus() { + this.$emit("on-input-focus"); + }, + onInputBlur() { + if (this.showCreateItem) + return; + if (!this.values.length) + this.query = ""; + this.$emit("on-input-blur"); + }, + removeTag(value) { + if (this.disabled) + return false; + this.SelectInstance.handleOnSelectSelected(value); + }, + resetInputState() { + this.inputLength = this.$refs.input.value.length * 12 + 20; + this.$emit("on-keydown"); + }, + handleInputDelete(e) { + const targetValue = e.target.value; + if (this.multiple && this.selectedMultiple.length && this.query === "" && targetValue === "") { + this.removeTag(this.selectedMultiple[this.selectedMultiple.length - 1]); + } + }, + handleInputEnter(e) { + this.$emit("on-enter"); + if (this.showCreateItem) { + e.stopPropagation(); + } + }, + onHeaderClick(e) { + if (this.filterable && e.target === this.$el) { + this.$refs.input.focus(); + } + }, + onClear() { + this.$emit("on-clear"); + } + }, + watch: { + values([value]) { + if (!this.filterable) + return; + this.preventRemoteCall = true; + if (this.multiple) { + this.query = ""; + this.preventRemoteCall = false; + return; + } + if (typeof value === "undefined" || value === "" || value === null) + this.query = ""; + else + this.query = value.label; + nextTick(() => this.preventRemoteCall = false); + }, + query(val) { + if (this.preventRemoteCall) { + this.preventRemoteCall = false; + return; + } + this.$emit("on-query-change", val); + }, + queryProp(query) { + if (query !== this.query) + this.query = query; + } + } +}; +const _hoisted_1$1j = { + key: 1, + class: "ivu-tag ivu-tag-checked" +}; +const _hoisted_2$P = { class: "ivu-tag-text ivu-select-max-tag" }; +const _hoisted_3$B = ["id", "disabled", "placeholder"]; +function _sfc_render$28(_ctx, _cache, $props, $setup, $data, $options) { + const _component_Icon = resolveComponent("Icon"); + return openBlock(), createElementBlock("div", { + onClick: _cache[6] || (_cache[6] = (...args) => $options.onHeaderClick && $options.onHeaderClick(...args)), + class: normalizeClass($options.headCls) + }, [ + $options.showPrefix ? (openBlock(), createElementBlock("span", { + key: 0, + class: normalizeClass([$data.prefixCls + "-prefix"]) + }, [ + renderSlot(_ctx.$slots, "prefix", {}, () => [ + $props.prefix ? (openBlock(), createBlock(_component_Icon, { + key: 0, + type: $props.prefix + }, null, 8, ["type"])) : createCommentVNode("", true) + ]) + ], 2)) : createCommentVNode("", true), + (openBlock(true), createElementBlock(Fragment, null, renderList($options.selectedMultiple, (item, index2) => { + return openBlock(), createElementBlock("div", { + class: "ivu-tag ivu-tag-checked", + key: index2 + }, [ + createElementVNode("span", { + class: normalizeClass(["ivu-tag-text", { "ivu-select-multiple-tag-hidden": item.disabled }]) + }, toDisplayString(item.tag !== void 0 ? item.tag : item.label), 3), + !item.disabled ? (openBlock(), createBlock(_component_Icon, { + key: 0, + type: "ios-close", + onClick: withModifiers(($event) => $options.removeTag(item), ["stop"]) + }, null, 8, ["onClick"])) : createCommentVNode("", true) + ]); + }), 128)), + $props.maxTagCount !== void 0 && $props.values.length > $props.maxTagCount ? (openBlock(), createElementBlock("div", _hoisted_1$1j, [ + createElementVNode("span", _hoisted_2$P, [ + $props.maxTagPlaceholder ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [ + createTextVNode(toDisplayString($props.maxTagPlaceholder($props.values.length - $props.maxTagCount)), 1) + ], 64)) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [ + createTextVNode("+ " + toDisplayString($props.values.length - $props.maxTagCount) + "...", 1) + ], 64)) + ]) + ])) : createCommentVNode("", true), + withDirectives(createElementVNode("span", { + class: normalizeClass($options.singleDisplayClasses) + }, toDisplayString($options.singleDisplayValue), 3), [ + [vShow, $options.singleDisplayValue] + ]), + $props.filterable ? withDirectives((openBlock(), createElementBlock("input", { + key: 2, + id: $props.inputElementId, + type: "text", + "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => $data.query = $event), + disabled: $props.disabled, + class: normalizeClass([$data.prefixCls + "-input"]), + placeholder: $options.showPlaceholder ? $options.localePlaceholder : "", + style: normalizeStyle($options.inputStyle), + autocomplete: "off", + spellcheck: "false", + onKeydown: [ + _cache[1] || (_cache[1] = (...args) => $options.resetInputState && $options.resetInputState(...args)), + _cache[2] || (_cache[2] = withKeys((...args) => $options.handleInputDelete && $options.handleInputDelete(...args), ["delete"])), + _cache[3] || (_cache[3] = withKeys((...args) => $options.handleInputEnter && $options.handleInputEnter(...args), ["enter"])) + ], + onFocus: _cache[4] || (_cache[4] = (...args) => $options.onInputFocus && $options.onInputFocus(...args)), + onBlur: _cache[5] || (_cache[5] = (...args) => $options.onInputBlur && $options.onInputBlur(...args)), + ref: "input" + }, null, 46, _hoisted_3$B)), [ + [vModelText, $data.query] + ]) : createCommentVNode("", true), + $options.resetSelect ? (openBlock(), createBlock(_component_Icon, { + key: 3, + type: "ios-close-circle", + class: normalizeClass([$data.prefixCls + "-arrow"]), + onClick: withModifiers($options.onClear, ["stop"]) + }, null, 8, ["class", "onClick"])) : createCommentVNode("", true), + !$options.resetSelect && !$props.remote ? (openBlock(), createBlock(_component_Icon, { + key: 4, + type: $options.arrowType, + custom: $options.customArrowType, + size: $options.arrowSize, + class: normalizeClass([$data.prefixCls + "-arrow"]) + }, null, 8, ["type", "custom", "size", "class"])) : createCommentVNode("", true) + ], 2); +} +var SelectHead = /* @__PURE__ */ _export_sfc(_sfc_main$2o, [["render", _sfc_render$28]]); +const CLICK = "click"; +const captureInstances = /* @__PURE__ */ Object.create(null); +const nonCaptureInstances = /* @__PURE__ */ Object.create(null); +const instancesList = [captureInstances, nonCaptureInstances]; +const commonHandler = function _onCommonEvent(context, instances, event) { + const { target } = event; + const itemIteratee = function _itemIteratee(item) { + const { el } = item; + if (el !== target && !el.contains(target)) { + const { binding } = item; + if (binding.modifiers.stop) { + event.stopPropagation(); + } + if (binding.modifiers.prevent) { + event.preventDefault(); + } + binding.value.call(context, event); + } + }; + const keysIteratee = function _keysIteratee(eventName) { + return instances[eventName].forEach(itemIteratee); + }; + Object.keys(instances).forEach(keysIteratee); +}; +const captureEventHandler = function onCaptureEvent(event) { + commonHandler(this, captureInstances, event); +}; +const nonCaptureEventHandler = function onNonCaptureEvent(event) { + commonHandler(this, nonCaptureInstances, event); +}; +const getEventHandler = function _getEventHandler(useCapture) { + return useCapture ? captureEventHandler : nonCaptureEventHandler; +}; +const directive = Object.defineProperties( + {}, + { + $_captureInstances: { + value: captureInstances + }, + $_nonCaptureInstances: { + value: nonCaptureInstances + }, + $_onCaptureEvent: { + value: captureEventHandler + }, + $_onNonCaptureEvent: { + value: nonCaptureEventHandler + }, + beforeMount: { + value: function bind(el, binding) { + if (typeof binding.value !== "function") { + throw new TypeError("Binding value must be a function."); + } + let eventType; + const modifiers = binding.modifiers; + if (modifiers.click) + eventType = "click"; + else if (modifiers.mousedown) + eventType = "mousedown"; + else if (modifiers.touchstart) + eventType = "touchstart"; + else + eventType = CLICK; + const useCapture = binding.arg; + const normalisedBinding = { + ...binding, + ...{ + modifiers: { + ...{ + capture: false, + prevent: false, + stop: false + }, + ...binding.modifiers + } + } + }; + const instances = useCapture ? captureInstances : nonCaptureInstances; + if (!Array.isArray(instances[eventType])) { + instances[eventType] = []; + } + if (instances[eventType].push({ el, binding: normalisedBinding }) === 1) { + if (typeof document === "object" && document) { + document.addEventListener( + eventType, + getEventHandler(useCapture), + useCapture + ); + } + } + } + }, + unmounted: { + value: function unbind(el) { + const compareElements = function _compareElements(item) { + return item.el !== el; + }; + const instancesIteratee = function _instancesIteratee(instances) { + const instanceKeys = Object.keys(instances); + if (instanceKeys.length) { + const useCapture = instances === captureInstances; + const keysIteratee = function _keysIteratee(eventName) { + const newInstance = instances[eventName].filter(compareElements); + if (newInstance.length) { + instances[eventName] = newInstance; + } else { + if (typeof document === "object" && document) { + document.removeEventListener( + eventName, + getEventHandler(useCapture), + useCapture + ); + } + delete instances[eventName]; + } + }; + instanceKeys.forEach(keysIteratee); + } + }; + instancesList.forEach(instancesIteratee); + } + }, + version: { + enumerable: true, + value: "3.7.1" + } + } +); +var mixinsForm = { + inject: { + FormInstance: { + default: "" + }, + FormItemInstance: { + default: null + } + }, + computed: { + itemDisabled() { + let state = this.disabled; + if (!state && this.FormInstance) + state = this.FormInstance.disabled; + return state ? true : null; + } + }, + methods: { + handleFormItemChange(type2, data) { + if (this.FormItemInstance) { + if (type2 === "blur") + this.FormItemInstance.formBlur(data); + else if (type2 === "change") + this.FormItemInstance.formChange(data); + } + } + } +}; +const prefixCls$1i = "ivu-select"; +const checkValuesNotEqual = (value, publicValue, values) => { + const strValue = JSON.stringify(value); + const strPublic = JSON.stringify(publicValue); + const strValues = JSON.stringify(values.map((item) => { + return item.value; + })); + return strValue !== strPublic || strValue !== strValues || strValues !== strPublic; +}; +const ANIMATION_TIMEOUT = 300; +const _sfc_main$2n = { + name: "iSelect", + mixins: [Locale, mixinsForm], + components: { Drop, SelectHead, Icon }, + directives: { clickOutside: directive }, + emits: ["on-set-default-options", "on-clear", "on-clickoutside", "on-select", "on-create", "on-change", "on-query-change", "on-open-change", "update:modelValue"], + provide() { + return { + SelectInstance: this + }; + }, + props: { + modelValue: { + type: [String, Number, Array], + default: "" + }, + label: { + type: [String, Number, Array], + default: "" + }, + defaultLabel: { + type: [String, Number, Array], + default: "" + }, + multiple: { + type: Boolean, + default: false + }, + disabled: { + type: Boolean, + default: false + }, + clearable: { + type: Boolean, + default: false + }, + placeholder: { + type: String + }, + filterable: { + type: Boolean, + default: false + }, + filterMethod: { + type: Function + }, + remoteMethod: { + type: Function + }, + loading: { + type: Boolean, + default: false + }, + loadingText: { + type: String + }, + size: { + validator(value) { + return oneOf(value, ["small", "large", "default"]); + }, + default() { + const global2 = getCurrentInstance().appContext.config.globalProperties; + return !global2.$VIEWUI || global2.$VIEWUI.size === "" ? "default" : global2.$VIEWUI.size; + } + }, + labelInValue: { + type: Boolean, + default: false + }, + notFoundText: { + type: String + }, + placement: { + validator(value) { + return oneOf(value, ["top", "bottom", "top-start", "bottom-start", "top-end", "bottom-end"]); + }, + default: "bottom-start" + }, + transfer: { + type: Boolean, + default() { + const global2 = getCurrentInstance().appContext.config.globalProperties; + return !global2.$VIEWUI || global2.$VIEWUI.transfer === "" ? false : global2.$VIEWUI.transfer; + } + }, + autoComplete: { + type: Boolean, + default: false + }, + name: { + type: String + }, + elementId: { + type: String + }, + transferClassName: { + type: String + }, + prefix: { + type: String + }, + maxTagCount: { + type: Number + }, + maxTagPlaceholder: { + type: Function + }, + allowCreate: { + type: Boolean, + default: false + }, + capture: { + type: Boolean, + default() { + const global2 = getCurrentInstance().appContext.config.globalProperties; + return !global2.$VIEWUI ? true : global2.$VIEWUI.capture; + } + }, + filterByLabel: { + type: Boolean, + default: false + }, + eventsEnabled: { + type: Boolean, + default: false + }, + hideNotFound: { + type: Boolean, + default: false + } + }, + mounted() { + if (!this.remote && this.slotOptions.length > 0) { + this.values = this.getInitialValue().map((value) => { + if (typeof value !== "number" && !value) + return null; + return this.getOptionData(value); + }).filter(Boolean); + } + this.checkUpdateStatus(); + if (this.remote && this.modelValue && this.defaultLabel) { + if (!this.multiple) { + this.query = this.defaultLabel; + if (this.modelValue && this.defaultLabel) { + this.values.push({ + label: this.defaultLabel, + value: this.modelValue + }); + } + } else if (this.multiple && this.defaultLabel instanceof Array && this.modelValue.length === this.defaultLabel.length) { + const values = this.modelValue.map((item, index2) => { + return { + value: item, + label: this.defaultLabel[index2] + }; + }); + setTimeout(() => { + this.values = values; + }); + } + } + }, + data() { + return { + prefixCls: prefixCls$1i, + values: [], + dropDownWidth: 0, + visible: false, + focusIndex: -1, + isFocused: false, + query: "", + initialLabel: this.label, + hasMouseHoverHead: false, + slotOptions: [], + caretPosition: -1, + lastRemoteQuery: "", + unchangedQuery: true, + hasExpectedValue: false, + isTyping: false, + preventRemoteCall: false, + filterQueryChange: false, + slotOptionsMap: /* @__PURE__ */ new Map(), + isLocking: false + }; + }, + computed: { + classes() { + return [ + `${prefixCls$1i}`, + { + [`${prefixCls$1i}-visible`]: this.visible, + [`${prefixCls$1i}-disabled`]: this.itemDisabled, + [`${prefixCls$1i}-multiple`]: this.multiple, + [`${prefixCls$1i}-single`]: !this.multiple, + [`${prefixCls$1i}-${this.size}`]: !!this.size + } + ]; + }, + dropdownCls() { + return { + [prefixCls$1i + "-dropdown-transfer"]: this.transfer, + [prefixCls$1i + "-multiple"]: this.multiple && this.transfer, + ["ivu-auto-complete"]: this.autoComplete, + [this.transferClassName]: this.transferClassName + }; + }, + selectionCls() { + return { + [`${prefixCls$1i}-selection`]: !this.autoComplete, + [`${prefixCls$1i}-selection-focused`]: this.isFocused + }; + }, + localeNotFoundText() { + if (typeof this.notFoundText === "undefined") { + return this.t("i.select.noMatch"); + } else { + return this.notFoundText; + } + }, + localeLoadingText() { + if (typeof this.loadingText === "undefined") { + return this.t("i.select.loading"); + } else { + return this.loadingText; + } + }, + showCreateItem() { + let state = false; + const { allowCreate, query, slotOptions } = this; + if (allowCreate && query !== "") { + state = true; + const findSlotItem = (slotOptions || []).find((item) => item.proxy && item.proxy.showLabel === query); + if (findSlotItem) + state = false; + } + return state; + }, + transitionName() { + return this.placement === "bottom" ? "slide-up" : "slide-down"; + }, + dropVisible() { + let status = true; + const noOptions = this.slotOptions.length === 0; + if (!this.loading && this.remote && this.query === "" && noOptions) + status = false; + if (this.autoComplete && noOptions) + status = false; + return this.visible && status; + }, + showNotFoundLabel() { + const { loading: loading2, remote, slotOptions, hideNotFound } = this; + const options = slotOptions || []; + const filterOptions = options.find((item) => item.proxy.isShow); + return (options.length === 0 || !filterOptions) && (!remote || remote && !loading2) && !hideNotFound; + }, + publicValue() { + return this.multiple ? this.values.map((option) => option.value) : (this.values[0] || {}).value; + }, + canBeCleared() { + const uiStateMatch = this.hasMouseHoverHead; + const qualifiesForClear = !this.multiple && !this.itemDisabled && this.clearable; + return uiStateMatch && qualifiesForClear && this.reset; + }, + selectTabindex() { + return this.itemDisabled || this.filterable ? -1 : 0; + }, + remote() { + return typeof this.remoteMethod === "function"; + } + }, + methods: { + setQuery(query) { + if (query) { + this.onQueryChange(query); + return; + } + if (query === null) { + this.onQueryChange(""); + this.values = []; + this.lastRemoteQuery = ""; + } + }, + clearSingleSelect() { + if (!this.multiple) + this.$emit("update:modelValue", ""); + this.$emit("on-clear"); + this.hideMenu(); + if (this.clearable) + this.reset(); + }, + getOptionData(value) { + const optionItem = this.slotOptions.find(({ props }) => props.value === value); + if (!optionItem) + return null; + const { optionLabel, disabled } = optionItem.proxy || {}; + return { + value, + label: optionLabel, + disabled + }; + }, + getInitialValue() { + const { multiple, remote, modelValue } = this; + let initialValue = Array.isArray(modelValue) ? modelValue : [modelValue]; + if (!multiple && (typeof initialValue[0] === "undefined" || String(initialValue[0]).trim() === "" && !Number.isFinite(initialValue[0]))) + initialValue = []; + if (remote && !multiple && modelValue) { + const data = this.getOptionData(modelValue); + this.query = data ? data.label : String(modelValue); + } + return initialValue.filter((item) => { + return Boolean(item) || item === 0; + }); + }, + validateOption({ children, elm, propsData }) { + const value = propsData.value; + const label = propsData.label || ""; + const textContent = elm && elm.textContent || (children || []).reduce((str, node) => { + const nodeText = node.elm ? node.elm.textContent : node.text; + return `${str} ${nodeText}`; + }, "") || ""; + const stringValues = this.filterByLabel ? [label].toString() : [value, label, textContent].toString(); + const query = this.query.toLowerCase().trim(); + return stringValues.toLowerCase().includes(query); + }, + toggleMenu(e, force) { + if (this.itemDisabled) { + return false; + } + this.visible = typeof force !== "undefined" ? force : !this.visible; + if (this.visible) { + this.dropDownWidth = this.$el.getBoundingClientRect().width; + this.$refs.dropdown.handleOnUpdatePopper(); + } + }, + hideMenu() { + this.toggleMenu(null, false); + this.isTyping = false; + setTimeout(() => this.unchangedQuery = true, ANIMATION_TIMEOUT); + }, + onClickOutside(event) { + if (this.visible) { + if (event.type === "mousedown") { + event.preventDefault(); + return; + } + if (this.transfer) { + const $el = this.$refs.dropdown.$refs.drop; + if ($el === event.target || $el.contains(event.target)) { + return; + } + } + if (this.filterable) { + const input = this.$el.querySelector('input[type="text"]'); + this.caretPosition = input.selectionStart; + nextTick(() => { + const caretPosition = this.caretPosition === -1 ? input.value.length : this.caretPosition; + input.setSelectionRange(caretPosition, caretPosition); + }); + } + if (!this.autoComplete) + event.stopPropagation(); + event.preventDefault(); + this.hideMenu(); + this.isFocused = true; + this.$emit("on-clickoutside", event); + } else { + this.caretPosition = -1; + this.isFocused = false; + } + }, + reset() { + this.query = ""; + this.focusIndex = -1; + this.unchangedQuery = true; + this.values = []; + this.filterQueryChange = false; + }, + handleKeydown(e) { + const key2 = e.key || e.code; + const keyCode = e.keyCode || e.which; + if (key2 === "Backspace" || keyCode === 8) { + return; + } + if (this.visible) { + e.preventDefault(); + if (key2 === "Tab") { + e.stopPropagation(); + } + if (key2 === "Escape") { + e.stopPropagation(); + this.hideMenu(); + } + if (key2 === "ArrowUp") { + this.navigateOptions(-1); + } + if (key2 === "ArrowDown") { + this.navigateOptions(1); + } + if (key2 === "Enter") { + if (this.focusIndex === -1) + return this.hideMenu(); + const optionComponent = this.slotOptions[this.focusIndex]; + if (optionComponent) { + const option = this.getOptionData(optionComponent.props.value); + this.onOptionClick(option); + } else { + this.hideMenu(); + } + } + } else { + const keysThatCanOpenSelect = ["ArrowUp", "ArrowDown"]; + if (keysThatCanOpenSelect.includes(e.key)) + this.toggleMenu(null, true); + } + }, + navigateOptions(direction) { + const slotOptions = this.slotOptions; + const optionsLength = slotOptions.length - 1; + if (optionsLength < 0) + return; + let index2 = this.focusIndex + direction; + if (index2 < 0) + index2 = optionsLength; + if (index2 > optionsLength) + index2 = 0; + let nearestActiveOption; + let firseIndex = null; + if (direction > 0) { + nearestActiveOption = -1; + for (let i = 0; i < slotOptions.length; i++) { + const { proxy } = slotOptions[i]; + const optionIsActive = !proxy.disabled; + if (optionIsActive) + nearestActiveOption = i; + if (proxy.isShow && firseIndex === null) { + firseIndex = i; + } else if (!proxy.isShow) { + nearestActiveOption = i; + continue; + } + if (nearestActiveOption >= index2) + break; + } + } else { + nearestActiveOption = slotOptions.length; + for (let i = optionsLength; i >= 0; i--) { + const { proxy } = slotOptions[i]; + const optionIsActive = !proxy.disabled; + if (optionIsActive) + nearestActiveOption = i; + if (proxy.isShow && firseIndex === null) { + firseIndex = i; + } else if (!proxy.isShow) { + nearestActiveOption = i; + continue; + } + if (nearestActiveOption <= index2) + break; + } + } + const activeSlotsOption = slotOptions[nearestActiveOption]; + index2 = !activeSlotsOption.proxy.isShow ? firseIndex : nearestActiveOption; + this.focusIndex = index2; + }, + onOptionClick(option) { + if (this.multiple) { + if (this.remote) + this.lastRemoteQuery = this.lastRemoteQuery || this.query; + else + this.lastRemoteQuery = ""; + const valueIsSelected = this.values.find(({ value }) => value === option.value); + if (valueIsSelected) { + this.values = this.values.filter(({ value }) => value !== option.value); + } else { + this.values = this.values.concat(option); + } + this.isFocused = true; + } else { + this.query = String(option.label).trim(); + this.values = [option]; + this.lastRemoteQuery = ""; + this.hideMenu(); + } + this.focusIndex = this.slotOptions.findIndex((opt) => { + if (!opt) + return false; + return opt.props.value === option.value; + }); + if (this.filterable) { + const inputField = this.$el.querySelector('input[type="text"]'); + if (!this.autoComplete) + nextTick(() => inputField.focus()); + } + this.$emit("on-select", option); + this.$refs.dropdown.handleOnUpdatePopper(); + setTimeout(() => { + this.filterQueryChange = false; + }, ANIMATION_TIMEOUT); + }, + onQueryChange(query) { + this.isTyping = true; + if (query.length > 0 && query !== this.query) { + if (isClient && this.autoComplete) { + let isInputFocused = document.hasFocus && document.hasFocus() && document.activeElement === this.$el.querySelector("input"); + this.visible = isInputFocused; + } else { + this.visible = true; + } + } + this.query = query; + this.unchangedQuery = this.visible; + this.filterQueryChange = true; + }, + toggleHeaderFocus({ type: type2 }) { + if (this.itemDisabled) { + return; + } + this.isFocused = type2 === "focus"; + }, + checkUpdateStatus() { + if (this.getInitialValue().length > 0 && this.slotOptions.length === 0) { + this.hasExpectedValue = true; + } + }, + handleCreateItem() { + if (this.allowCreate && this.query !== "" && this.showCreateItem) { + const query = this.query; + this.$emit("on-create", query); + this.query = ""; + const option = { + value: query, + label: query, + tag: void 0 + }; + this.$refs.dropdown.handleOnUpdatePopper(); + setTimeout(() => { + this.onOptionClick(option); + }); + } + }, + handleOnSelectSelected(options) { + this.onOptionClick(options); + }, + focus() { + if (this.filterable) { + this.$refs.selectHead.$refs.input.focus(); + this.toggleMenu(); + } + }, + lazyUpdateValue(checked) { + const { getInitialValue, isLocking, defaultLabel, remote, modelValue, values } = this; + const hasDefaultLabel = !!(defaultLabel && defaultLabel.length); + const hasModelValue = !!(modelValue && modelValue.length); + if ((hasModelValue || values.length || hasDefaultLabel) && remote && checked) + return; + if (isLocking) + return; + this.isLocking = true; + nextTick(() => { + this.values = getInitialValue().map(this.getOptionData).filter(Boolean); + this.isLocking = false; + }); + } + }, + watch: { + modelValue(value) { + const { publicValue, values } = this; + this.checkUpdateStatus(); + if (value === "") { + this.values = []; + this.query = ""; + } else if (checkValuesNotEqual(value, publicValue, values)) { + this.lazyUpdateValue(); + if (!this.multiple) + this.handleFormItemChange("change", this.publicValue); + } + }, + values(now2, before) { + const newValue = JSON.stringify(now2); + const oldValue = JSON.stringify(before); + let vModelValue = this.publicValue; + const shouldEmitInput = newValue !== oldValue && vModelValue !== this.modelValue; + if (shouldEmitInput) { + let emitValue = this.publicValue; + if (this.labelInValue) { + if (this.multiple) { + emitValue = this.values; + } else { + emitValue = this.values[0]; + } + } + if (Array.isArray(vModelValue) && !vModelValue.length && this.modelValue === null) + vModelValue = null; + else if (vModelValue === void 0 && this.modelValue === null) + vModelValue = null; + this.$emit("update:modelValue", vModelValue); + this.$emit("on-change", emitValue); + this.handleFormItemChange("change", emitValue); + } + }, + query(query) { + this.focusIndex = -1; + this.$emit("on-query-change", query); + const { remoteMethod, lastRemoteQuery } = this; + const hasValidQuery = query !== "" && (query !== lastRemoteQuery || !lastRemoteQuery); + const shouldCallRemoteMethod = remoteMethod && hasValidQuery && !this.preventRemoteCall; + this.preventRemoteCall = false; + if (shouldCallRemoteMethod) { + const promise = this.remoteMethod(query); + this.initialLabel = ""; + if (promise && promise.then) { + promise.then((options) => { + if (options) + this.options = options; + }); + } + } + if (this.visible) { + this.$refs.dropdown.handleOnUpdatePopper(); + } + if (query !== "" && this.remote) + this.lastRemoteQuery = query; + }, + isFocused(focused) { + const el = this.filterable ? this.$el.querySelector('input[type="text"]') : this.$el; + el[this.isFocused ? "focus" : "blur"](); + const [selectedOption] = this.values; + if (selectedOption && this.filterable && !this.multiple && !focused) { + const selectedLabel = String(selectedOption.label || selectedOption.value).trim(); + if (selectedLabel && this.query !== selectedLabel) { + this.preventRemoteCall = true; + this.query = selectedLabel; + } + } + }, + focusIndex(index2) { + if (index2 < 0 || this.autoComplete) + return; + if (this.slotOptions[index2]) { + const optionInstance = this.slotOptions[index2].proxy; + const $itemEle = optionInstance.$el; + const $drop = this.$refs.dropdown.$refs.drop; + let bottomOverflowDistance = $itemEle.getBoundingClientRect().bottom - $drop.getBoundingClientRect().bottom; + let topOverflowDistance = $itemEle.getBoundingClientRect().top - $drop.getBoundingClientRect().top; + if (bottomOverflowDistance > 0) { + $drop.scrollTop += bottomOverflowDistance; + } + if (topOverflowDistance < 0) { + $drop.scrollTop += topOverflowDistance; + } + } + }, + dropVisible(open) { + if (open) { + this.$refs.dropdown.handleOnUpdatePopper(); + } else { + this.$refs.dropdown.handleOnDestroyPopper(); + } + }, + visible(state) { + this.$emit("on-open-change", state); + } + } +}; +const _hoisted_1$1i = ["tabindex"]; +const _hoisted_2$O = ["name", "value"]; +function _sfc_render$27(_ctx, _cache, $props, $setup, $data, $options) { + const _component_select_head = resolveComponent("select-head"); + const _component_Icon = resolveComponent("Icon"); + const _component_Drop = resolveComponent("Drop"); + const _directive_click_outside = resolveDirective("click-outside"); + return withDirectives((openBlock(), createElementBlock("div", { + class: normalizeClass($options.classes) + }, [ + createElementVNode("div", { + ref: "reference", + class: normalizeClass($options.selectionCls), + tabindex: $options.selectTabindex, + onBlur: _cache[2] || (_cache[2] = (...args) => $options.toggleHeaderFocus && $options.toggleHeaderFocus(...args)), + onFocus: _cache[3] || (_cache[3] = (...args) => $options.toggleHeaderFocus && $options.toggleHeaderFocus(...args)), + onClick: _cache[4] || (_cache[4] = (...args) => $options.toggleMenu && $options.toggleMenu(...args)), + onKeydown: [ + _cache[5] || (_cache[5] = withKeys((...args) => $options.handleKeydown && $options.handleKeydown(...args), ["esc"])), + _cache[6] || (_cache[6] = withKeys((...args) => $options.handleKeydown && $options.handleKeydown(...args), ["enter"])), + _cache[7] || (_cache[7] = withKeys(withModifiers((...args) => $options.handleKeydown && $options.handleKeydown(...args), ["prevent"]), ["up"])), + _cache[8] || (_cache[8] = withKeys(withModifiers((...args) => $options.handleKeydown && $options.handleKeydown(...args), ["prevent"]), ["down"])), + _cache[9] || (_cache[9] = withKeys((...args) => $options.handleKeydown && $options.handleKeydown(...args), ["tab"])), + _cache[10] || (_cache[10] = withKeys((...args) => $options.handleKeydown && $options.handleKeydown(...args), ["delete"])) + ], + onMouseenter: _cache[11] || (_cache[11] = ($event) => $data.hasMouseHoverHead = true), + onMouseleave: _cache[12] || (_cache[12] = ($event) => $data.hasMouseHoverHead = false) + }, [ + renderSlot(_ctx.$slots, "input", {}, () => [ + createElementVNode("input", { + type: "hidden", + name: $props.name, + value: $options.publicValue + }, null, 8, _hoisted_2$O), + createVNode(_component_select_head, { + ref: "selectHead", + filterable: $props.filterable, + multiple: $props.multiple, + values: $data.values, + clearable: $options.canBeCleared, + prefix: $props.prefix, + disabled: _ctx.itemDisabled, + remote: $options.remote, + "input-element-id": $props.elementId, + "initial-label": $data.initialLabel, + placeholder: $props.placeholder, + "query-prop": $data.query, + "max-tag-count": $props.maxTagCount, + "max-tag-placeholder": $props.maxTagPlaceholder, + "allow-create": $props.allowCreate, + "show-create-item": $options.showCreateItem, + onOnQueryChange: $options.onQueryChange, + onOnInputFocus: _cache[0] || (_cache[0] = ($event) => $data.isFocused = true), + onOnInputBlur: _cache[1] || (_cache[1] = ($event) => $data.isFocused = false), + onOnClear: $options.clearSingleSelect, + onOnEnter: $options.handleCreateItem + }, { + prefix: withCtx(() => [ + renderSlot(_ctx.$slots, "prefix") + ]), + _: 3 + }, 8, ["filterable", "multiple", "values", "clearable", "prefix", "disabled", "remote", "input-element-id", "initial-label", "placeholder", "query-prop", "max-tag-count", "max-tag-placeholder", "allow-create", "show-create-item", "onOnQueryChange", "onOnClear", "onOnEnter"]) + ]) + ], 42, _hoisted_1$1i), + createVNode(_component_Drop, { + ref: "dropdown", + classes: $options.dropdownCls, + visible: $options.dropVisible, + placement: $props.placement, + eventsEnabled: $props.eventsEnabled, + transfer: $props.transfer, + "transition-name": "transition-drop" + }, { + default: withCtx(() => [ + withDirectives(createElementVNode("ul", { + class: normalizeClass([$data.prefixCls + "-not-found"]) + }, [ + createElementVNode("li", null, toDisplayString($options.localeNotFoundText), 1) + ], 2), [ + [vShow, $options.showNotFoundLabel && !$props.allowCreate] + ]), + !$options.remote || $options.remote && !$props.loading ? (openBlock(), createElementBlock("ul", { + key: 0, + class: normalizeClass($data.prefixCls + "-dropdown-list") + }, [ + $options.showCreateItem ? (openBlock(), createElementBlock("li", { + key: 0, + class: normalizeClass($data.prefixCls + "-item"), + onClick: _cache[13] || (_cache[13] = (...args) => $options.handleCreateItem && $options.handleCreateItem(...args)) + }, [ + createTextVNode(toDisplayString($data.query) + " ", 1), + createVNode(_component_Icon, { + type: "md-return-left", + class: normalizeClass($data.prefixCls + "-item-enter") + }, null, 8, ["class"]) + ], 2)) : createCommentVNode("", true), + renderSlot(_ctx.$slots, "default") + ], 2)) : (openBlock(), createElementBlock("ul", { + key: 1, + class: normalizeClass($data.prefixCls + "-dropdown-list") + }, [ + $options.showCreateItem ? (openBlock(), createElementBlock("li", { + key: 0, + class: normalizeClass($data.prefixCls + "-item"), + onClick: _cache[14] || (_cache[14] = (...args) => $options.handleCreateItem && $options.handleCreateItem(...args)) + }, [ + createTextVNode(toDisplayString($data.query) + " ", 1), + createVNode(_component_Icon, { + type: "md-return-left", + class: normalizeClass($data.prefixCls + "-item-enter") + }, null, 8, ["class"]) + ], 2)) : createCommentVNode("", true) + ], 2)), + withDirectives(createElementVNode("ul", { + class: normalizeClass([$data.prefixCls + "-loading"]) + }, toDisplayString($options.localeLoadingText), 3), [ + [vShow, $props.loading] + ]) + ]), + _: 3 + }, 8, ["classes", "visible", "placement", "eventsEnabled", "transfer"]) + ], 2)), [ + [_directive_click_outside, $options.onClickOutside, $props.capture], + [ + _directive_click_outside, + $options.onClickOutside, + $props.capture, + { mousedown: true } + ], + [ + _directive_click_outside, + $options.onClickOutside, + $props.capture, + { touchstart: true } + ] + ]); +} +var Select = /* @__PURE__ */ _export_sfc(_sfc_main$2n, [["render", _sfc_render$27]]); +const prefixCls$1h = "ivu-select-item"; +const _sfc_main$2m = { + name: "iOption", + componentName: "select-item", + mixins: [mixinsForm], + emits: ["on-select-selected"], + inject: { + SelectInstance: { + default: null + }, + OptionGroupInstance: { + default: null + } + }, + props: { + value: { + type: [String, Number], + required: true + }, + label: { + type: [String, Number] + }, + disabled: { + type: Boolean, + default: false + }, + tag: { + type: [String, Number] + } + }, + data() { + return { + searchLabel: "", + autoComplete: false, + id: random(6), + instance: null + }; + }, + computed: { + classes() { + return [ + `${prefixCls$1h}`, + { + [`${prefixCls$1h}-disabled`]: this.itemDisabled, + [`${prefixCls$1h}-selected`]: this.selected && !this.autoComplete, + [`${prefixCls$1h}-focus`]: this.isFocused + } + ]; + }, + showLabel() { + return this.label ? this.label : this.value; + }, + optionLabel() { + return this.label || this.$el && this.$el.textContent; + }, + isFocused() { + const SelectInstance = this.SelectInstance; + let slotOptions = SelectInstance.slotOptions || []; + const focusIndex = SelectInstance.focusIndex; + const defaultSlot = SelectInstance.$slots.default; + if (this.autoComplete && defaultSlot) { + slotOptions = []; + let vNodes = defaultSlot(); + while (vNodes.length > 0) { + const vNode = vNodes.shift(); + if (vNode.type && typeof vNode.type === "object" && vNode.type.name === "iOption") { + slotOptions.push(vNode); + } else { + if (Array.isArray(vNode.children)) { + vNodes = vNodes.concat(vNode.children); + } + } + } + } + const focusOption = slotOptions[focusIndex]; + return focusOption && focusOption.props && focusOption.props.value === this.value; + }, + isShow() { + const SelectInstance = this.SelectInstance; + const filterable = SelectInstance.filterable; + const query = SelectInstance.query.toLowerCase().trim(); + const filterByLabel = SelectInstance.filterByLabel; + const slotOptionsMap = SelectInstance.slotOptionsMap; + const { props } = slotOptionsMap.get(this.value) || { props: {} }; + const label = this.label || this.$el && this.$el.textContent; + let filterOption = (label || props.value || "").toLowerCase(); + if (filterByLabel) { + filterOption = (label || "").toLowerCase(); + } + const showFilterOption = filterOption.includes(query); + return !filterable || filterable && (showFilterOption || !SelectInstance.filterQueryChange) || typeOf(SelectInstance.remoteMethod) === "function"; + }, + selected() { + const SelectInstance = this.SelectInstance; + const values = SelectInstance.values || []; + return values.find((item) => item.value === this.value); + } + }, + methods: { + select() { + if (this.itemDisabled) + return false; + this.SelectInstance.handleOnSelectSelected({ + value: this.value, + label: this.optionLabel, + tag: this.tag + }); + }, + addOption() { + const select2 = this.SelectInstance; + const group = this.OptionGroupInstance; + const { id, value, instance } = this; + if (group) { + group.optionList.push({ + ...instance, + id, + tag: "option" + }); + } + if (select2) { + select2.slotOptions.push({ + ...instance, + id, + tag: "option" + }); + select2.slotOptionsMap.set(value, instance); + const { modelValue } = select2; + (modelValue && modelValue.length || typeOf(modelValue) === "number") && select2.lazyUpdateValue(true); + } + }, + removeOption() { + const group = this.OptionGroupInstance; + const select2 = this.SelectInstance; + const { id, value } = this; + if (group) { + const index2 = group.optionList.findIndex((item) => item.id === id); + index2 !== -1 && group.optionList.splice(index2, 1); + } + if (select2) { + const select3 = this.SelectInstance; + const index2 = select3.slotOptions.findIndex((item) => item.id === id); + index2 !== -1 && select3.slotOptions.splice(index2, 1); + select3.slotOptionsMap.has(value) && select3.slotOptionsMap.delete(value); + } + } + }, + created() { + this.instance = getCurrentInstance(); + }, + mounted() { + this.addOption(); + const Select2 = findComponentUpward(this, "iSelect"); + if (Select2) { + this.autoComplete = Select2.autoComplete; + } + }, + beforeUnmount() { + nextTick(() => { + this.removeOption(); + this.instance = null; + }); + } +}; +function _sfc_render$26(_ctx, _cache, $props, $setup, $data, $options) { + return withDirectives((openBlock(), createElementBlock("li", { + class: normalizeClass($options.classes), + onClick: _cache[0] || (_cache[0] = withModifiers((...args) => $options.select && $options.select(...args), ["stop"])), + onMousedown: _cache[1] || (_cache[1] = withModifiers(() => { + }, ["prevent"])) + }, [ + renderSlot(_ctx.$slots, "default", {}, () => [ + createTextVNode(toDisplayString($options.showLabel), 1) + ]) + ], 34)), [ + [vShow, $options.isShow] + ]); +} +var iOption = /* @__PURE__ */ _export_sfc(_sfc_main$2m, [["render", _sfc_render$26]]); +const HIDDEN_TEXTAREA_STYLE = ` + min-height:0 !important; + max-height:none !important; + height:0 !important; + visibility:hidden !important; + overflow:hidden !important; + position:absolute !important; + z-index:-1000 !important; + top:0 !important; + right:0 !important +`; +const SIZING_STYLE = [ + "letter-spacing", + "line-height", + "padding-top", + "padding-bottom", + "font-family", + "font-weight", + "font-size", + "text-rendering", + "text-transform", + "width", + "text-indent", + "padding-left", + "padding-right", + "border-width", + "box-sizing" +]; +let computedStyleCache = {}; +let hiddenTextarea; +function calculateNodeStyling(node, useCache = false) { + if (!isClient) + return; + const nodeRef = node.getAttribute("id") || node.getAttribute("data-reactid") || node.getAttribute("name"); + if (useCache && computedStyleCache[nodeRef]) { + return computedStyleCache[nodeRef]; + } + const style2 = window.getComputedStyle(node); + const boxSizing = style2.getPropertyValue("box-sizing") || style2.getPropertyValue("-moz-box-sizing") || style2.getPropertyValue("-webkit-box-sizing"); + const paddingSize = parseFloat(style2.getPropertyValue("padding-bottom")) + parseFloat(style2.getPropertyValue("padding-top")); + const borderSize = parseFloat(style2.getPropertyValue("border-bottom-width")) + parseFloat(style2.getPropertyValue("border-top-width")); + const sizingStyle = SIZING_STYLE.map((name2) => `${name2}:${style2.getPropertyValue(name2)}`).join(";"); + const nodeInfo = { + sizingStyle, + paddingSize, + borderSize, + boxSizing + }; + if (useCache && nodeRef) { + computedStyleCache[nodeRef] = nodeInfo; + } + return nodeInfo; +} +function calcTextareaHeight(uiTextNode, minRows = null, maxRows = null, useCache = false) { + if (isClient && !hiddenTextarea) { + hiddenTextarea = document.createElement("textarea"); + document.body.appendChild(hiddenTextarea); + } + if (uiTextNode.getAttribute("wrap")) { + hiddenTextarea.setAttribute("wrap", uiTextNode.getAttribute("wrap")); + } else { + hiddenTextarea.removeAttribute("wrap"); + } + let { + paddingSize, + borderSize, + boxSizing, + sizingStyle + } = calculateNodeStyling(uiTextNode, useCache); + hiddenTextarea.setAttribute("style", `${sizingStyle};${HIDDEN_TEXTAREA_STYLE}`); + hiddenTextarea.value = uiTextNode.value || uiTextNode.placeholder || ""; + let minHeight = Number.MIN_SAFE_INTEGER; + let maxHeight = Number.MAX_SAFE_INTEGER; + let height2 = hiddenTextarea.scrollHeight; + let overflowY; + if (boxSizing === "border-box") { + height2 = height2 + borderSize; + } else if (boxSizing === "content-box") { + height2 = height2 - paddingSize; + } + if (minRows !== null || maxRows !== null) { + hiddenTextarea.value = " "; + let singleRowHeight = hiddenTextarea.scrollHeight - paddingSize; + if (minRows !== null) { + minHeight = singleRowHeight * minRows; + if (boxSizing === "border-box") { + minHeight = minHeight + paddingSize + borderSize; + } + height2 = Math.max(minHeight, height2); + } + if (maxRows !== null) { + maxHeight = singleRowHeight * maxRows; + if (boxSizing === "border-box") { + maxHeight = maxHeight + paddingSize + borderSize; + } + overflowY = height2 > maxHeight ? "" : "hidden"; + height2 = Math.min(maxHeight, height2); + } + } + if (!maxRows) { + overflowY = "hidden"; + } + return { + height: `${height2}px`, + minHeight: `${minHeight}px`, + maxHeight: `${maxHeight}px`, + overflowY + }; +} +const prefixCls$1g = "ivu-input"; +const _sfc_main$2l = { + name: "Input", + mixins: [mixinsForm], + emits: ["on-enter", "on-search", "on-keydown", "on-keypress", "on-keyup", "on-click", "on-focus", "on-blur", "on-change", "on-input-change", "on-clear", "update:modelValue"], + props: { + type: { + validator(value) { + return oneOf(value, ["text", "textarea", "password", "url", "email", "date", "number", "tel"]); + }, + default: "text" + }, + modelValue: { + type: [String, Number], + default: "" + }, + size: { + validator(value) { + return oneOf(value, ["small", "large", "default"]); + }, + default() { + const global2 = getCurrentInstance().appContext.config.globalProperties; + return !global2.$VIEWUI || global2.$VIEWUI.size === "" ? "default" : global2.$VIEWUI.size; + } + }, + placeholder: { + type: String, + default: "" + }, + maxlength: { + type: [String, Number] + }, + disabled: { + type: Boolean, + default: false + }, + icon: String, + autosize: { + type: [Boolean, Object], + default: false + }, + rows: { + type: Number, + default: 2 + }, + readonly: { + type: Boolean, + default: false + }, + name: { + type: String + }, + number: { + type: Boolean, + default: false + }, + autofocus: { + type: Boolean, + default: false + }, + spellcheck: { + type: Boolean, + default: false + }, + autocomplete: { + type: String, + default: "off" + }, + clearable: { + type: Boolean, + default: false + }, + elementId: { + type: String + }, + wrap: { + validator(value) { + return oneOf(value, ["hard", "soft"]); + }, + default: "soft" + }, + prefix: { + type: String, + default: "" + }, + suffix: { + type: String, + default: "" + }, + search: { + type: Boolean, + default: false + }, + enterButton: { + type: [Boolean, String], + default: false + }, + showWordLimit: { + type: Boolean, + default: false + }, + password: { + type: Boolean, + default: false + }, + border: { + type: Boolean, + default: true + } + }, + data() { + return { + currentValue: this.modelValue, + prefixCls: prefixCls$1g, + slotReady: false, + textareaStyles: {}, + isOnComposition: false, + showPassword: false, + clearableIconOffset: 0 + }; + }, + computed: { + currentType() { + let type2 = this.type; + if (type2 === "password" && this.password && this.showPassword) + type2 = "text"; + return type2; + }, + prepend() { + let state = false; + if (this.type !== "textarea") + state = this.$slots.prepend !== void 0; + return state; + }, + append() { + let state = false; + if (this.type !== "textarea") + state = this.$slots.append !== void 0; + return state; + }, + showPrefix() { + let state = false; + if (this.type !== "textarea") + state = this.prefix !== "" || this.$slots.prefix !== void 0; + return state; + }, + showSuffix() { + let state = false; + if (this.type !== "textarea") + state = this.suffix !== "" || this.$slots.suffix !== void 0; + return state; + }, + wrapClasses() { + return [ + `${prefixCls$1g}-wrapper`, + { + [`${prefixCls$1g}-wrapper-${this.size}`]: !!this.size, + [`${prefixCls$1g}-type-${this.type}`]: this.type, + [`${prefixCls$1g}-group`]: this.prepend || this.append || this.search && this.enterButton, + [`${prefixCls$1g}-group-${this.size}`]: (this.prepend || this.append || this.search && this.enterButton) && !!this.size, + [`${prefixCls$1g}-group-with-prepend`]: this.prepend, + [`${prefixCls$1g}-group-with-append`]: this.append || this.search && this.enterButton, + [`${prefixCls$1g}-hide-icon`]: this.append, + [`${prefixCls$1g}-with-search`]: this.search && this.enterButton, + [`${prefixCls$1g}-wrapper-disabled`]: this.itemDisabled + } + ]; + }, + inputClasses() { + return [ + `${prefixCls$1g}`, + { + [`${prefixCls$1g}-${this.size}`]: !!this.size, + [`${prefixCls$1g}-disabled`]: this.itemDisabled, + [`${prefixCls$1g}-no-border`]: !this.border, + [`${prefixCls$1g}-with-prefix`]: this.showPrefix, + [`${prefixCls$1g}-with-suffix`]: this.showSuffix || this.search && this.enterButton === false + } + ]; + }, + textareaClasses() { + return [ + `${prefixCls$1g}`, + { + [`${prefixCls$1g}-disabled`]: this.itemDisabled, + [`${prefixCls$1g}-no-border`]: !this.border + } + ]; + }, + upperLimit() { + return this.maxlength; + }, + textLength() { + if (typeof this.modelValue === "number") { + return String(this.modelValue).length; + } + return (this.modelValue || "").length; + }, + clearableStyles() { + const style2 = {}; + let offset = this.clearableIconOffset; + if (offset) + style2.transform = `translateX(-${offset}px)`; + return style2; + } + }, + methods: { + handleEnter(event) { + this.$emit("on-enter", event); + if (this.search) + this.$emit("on-search", this.currentValue); + }, + handleKeydown(event) { + this.$emit("on-keydown", event); + }, + handleKeypress(event) { + this.$emit("on-keypress", event); + }, + handleKeyup(event) { + this.$emit("on-keyup", event); + }, + handleIconClick(event) { + this.$emit("on-click", event); + }, + handleFocus(event) { + this.$emit("on-focus", event); + }, + handleBlur(event) { + this.$emit("on-blur", event); + if (!findComponentUpward(this, ["DatePicker", "TimePicker", "Cascader", "Search"])) { + this.handleFormItemChange("blur", this.currentValue); + } + }, + handleComposition(event) { + if (event.type === "compositionstart") { + this.isOnComposition = true; + } + if (event.type === "compositionend") { + this.isOnComposition = false; + this.handleInput(event); + } + }, + handleInput(event) { + if (this.isOnComposition) + return; + let value = event.target.value; + if (this.number && value !== "") + value = Number.isNaN(Number(value)) ? value : Number(value); + this.$emit("update:modelValue", value); + this.setCurrentValue(value); + this.$emit("on-change", event); + }, + handleChange(event) { + this.$emit("on-input-change", event); + }, + setCurrentValue(value) { + if (value === this.currentValue) + return; + nextTick(() => { + this.resizeTextarea(); + }); + this.currentValue = value; + if (!findComponentUpward(this, ["DatePicker", "TimePicker", "Cascader", "Search"])) { + this.handleFormItemChange("change", value); + } + }, + resizeTextarea() { + const autosize = this.autosize; + if (!autosize || this.type !== "textarea") { + return false; + } + const minRows = autosize.minRows; + const maxRows = autosize.maxRows; + this.textareaStyles = calcTextareaHeight(this.$refs.textarea, minRows, maxRows); + }, + focus(option) { + const $el = this.type === "textarea" ? this.$refs.textarea : this.$refs.input; + $el.focus(option); + const { cursor } = option || {}; + if (cursor) { + const len = $el.value.length; + switch (cursor) { + case "start": + $el.setSelectionRange(0, 0); + break; + case "end": + $el.setSelectionRange(len, len); + break; + default: + $el.setSelectionRange(0, len); + } + } + }, + blur() { + if (this.type === "textarea") { + this.$refs.textarea.blur(); + } else { + this.$refs.input.blur(); + } + }, + handleClear() { + const e = { target: { value: "" } }; + this.$emit("update:modelValue", ""); + this.setCurrentValue(""); + this.$emit("on-change", e); + this.$emit("on-clear"); + }, + handleSearch() { + if (this.itemDisabled) + return false; + this.$refs.input.focus(); + this.$emit("on-search", this.currentValue); + }, + handleToggleShowPassword() { + if (this.itemDisabled) + return false; + this.showPassword = !this.showPassword; + this.focus(); + const len = this.currentValue.length; + setTimeout(() => { + this.$refs.input.setSelectionRange(len, len); + }, 0); + }, + handleCalcIconOffset() { + const $el = this.$el.querySelectorAll(".ivu-input-group-append")[0]; + if ($el) { + this.clearableIconOffset = $el.offsetWidth; + } else { + this.clearableIconOffset = 0; + } + } + }, + watch: { + modelValue(val) { + this.setCurrentValue(val); + }, + type() { + nextTick(this.handleCalcIconOffset); + } + }, + mounted() { + this.slotReady = true; + this.resizeTextarea(); + this.handleCalcIconOffset(); + }, + updated() { + nextTick(this.handleCalcIconOffset); + } +}; +const _hoisted_1$1h = { + key: 4, + class: "ivu-input-suffix" +}; +const _hoisted_2$N = { + key: 5, + class: "ivu-input-word-count" +}; +const _hoisted_3$A = { + key: 0, + class: "ivu-icon ivu-icon-ios-eye-outline" +}; +const _hoisted_4$t = { + key: 1, + class: "ivu-icon ivu-icon-ios-eye-off-outline" +}; +const _hoisted_5$l = ["id", "autocomplete", "spellcheck", "type", "placeholder", "disabled", "maxlength", "readonly", "name", "value", "number", "autofocus"]; +const _hoisted_6$a = { + key: 0, + class: "ivu-icon ivu-icon-ios-search" +}; +const _hoisted_7$8 = { + key: 9, + class: "ivu-input-prefix" +}; +const _hoisted_8$5 = ["id", "wrap", "autocomplete", "spellcheck", "placeholder", "disabled", "rows", "maxlength", "readonly", "name", "value", "autofocus"]; +const _hoisted_9$5 = { + key: 0, + class: "ivu-input-word-count" +}; +function _sfc_render$25(_ctx, _cache, $props, $setup, $data, $options) { + return openBlock(), createElementBlock("div", { + class: normalizeClass($options.wrapClasses) + }, [ + $props.type !== "textarea" ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [ + $options.prepend ? withDirectives((openBlock(), createElementBlock("div", { + key: 0, + class: normalizeClass([$data.prefixCls + "-group-prepend"]) + }, [ + renderSlot(_ctx.$slots, "prepend") + ], 2)), [ + [vShow, $data.slotReady] + ]) : createCommentVNode("", true), + $props.clearable && $data.currentValue && !_ctx.itemDisabled ? (openBlock(), createElementBlock("i", { + key: 1, + class: normalizeClass(["ivu-icon", ["ivu-icon-ios-close-circle", $data.prefixCls + "-icon", $data.prefixCls + "-icon-clear", $data.prefixCls + "-icon-normal"]]), + onClick: _cache[0] || (_cache[0] = (...args) => $options.handleClear && $options.handleClear(...args)), + style: normalizeStyle($options.clearableStyles) + }, null, 6)) : $props.icon ? (openBlock(), createElementBlock("i", { + key: 2, + class: normalizeClass(["ivu-icon", ["ivu-icon-" + $props.icon, $data.prefixCls + "-icon", $data.prefixCls + "-icon-normal"]]), + onClick: _cache[1] || (_cache[1] = (...args) => $options.handleIconClick && $options.handleIconClick(...args)) + }, null, 2)) : $props.search && $props.enterButton === false ? (openBlock(), createElementBlock("i", { + key: 3, + class: normalizeClass(["ivu-icon ivu-icon-ios-search", [$data.prefixCls + "-icon", $data.prefixCls + "-icon-normal", $data.prefixCls + "-search-icon"]]), + onClick: _cache[2] || (_cache[2] = (...args) => $options.handleSearch && $options.handleSearch(...args)) + }, null, 2)) : $options.showSuffix ? (openBlock(), createElementBlock("span", _hoisted_1$1h, [ + renderSlot(_ctx.$slots, "suffix", {}, () => [ + $props.suffix ? (openBlock(), createElementBlock("i", { + key: 0, + class: normalizeClass(["ivu-icon", ["ivu-icon-" + $props.suffix]]) + }, null, 2)) : createCommentVNode("", true) + ]) + ])) : $props.showWordLimit ? (openBlock(), createElementBlock("span", _hoisted_2$N, toDisplayString($options.textLength) + "/" + toDisplayString($options.upperLimit), 1)) : $props.password ? (openBlock(), createElementBlock("span", { + key: 6, + class: "ivu-input-suffix", + onClick: _cache[3] || (_cache[3] = (...args) => $options.handleToggleShowPassword && $options.handleToggleShowPassword(...args)) + }, [ + $data.showPassword ? (openBlock(), createElementBlock("i", _hoisted_3$A)) : (openBlock(), createElementBlock("i", _hoisted_4$t)) + ])) : createCommentVNode("", true), + createVNode(Transition, { name: "fade" }, { + default: withCtx(() => [ + !$props.icon ? (openBlock(), createElementBlock("i", { + key: 0, + class: normalizeClass(["ivu-icon ivu-icon-ios-loading ivu-load-loop", [$data.prefixCls + "-icon", $data.prefixCls + "-icon-validate"]]) + }, null, 2)) : createCommentVNode("", true) + ]), + _: 1 + }), + createElementVNode("input", { + id: $props.elementId, + autocomplete: $props.autocomplete, + spellcheck: $props.spellcheck, + ref: "input", + type: $options.currentType, + class: normalizeClass($options.inputClasses), + placeholder: $props.placeholder, + disabled: _ctx.itemDisabled, + maxlength: $props.maxlength, + readonly: $props.readonly, + name: $props.name, + value: $data.currentValue, + number: $props.number, + autofocus: $props.autofocus, + onKeyup: [ + _cache[4] || (_cache[4] = withKeys((...args) => $options.handleEnter && $options.handleEnter(...args), ["enter"])), + _cache[5] || (_cache[5] = (...args) => $options.handleKeyup && $options.handleKeyup(...args)) + ], + onKeypress: _cache[6] || (_cache[6] = (...args) => $options.handleKeypress && $options.handleKeypress(...args)), + onKeydown: _cache[7] || (_cache[7] = (...args) => $options.handleKeydown && $options.handleKeydown(...args)), + onFocus: _cache[8] || (_cache[8] = (...args) => $options.handleFocus && $options.handleFocus(...args)), + onBlur: _cache[9] || (_cache[9] = (...args) => $options.handleBlur && $options.handleBlur(...args)), + onCompositionstart: _cache[10] || (_cache[10] = (...args) => $options.handleComposition && $options.handleComposition(...args)), + onCompositionupdate: _cache[11] || (_cache[11] = (...args) => $options.handleComposition && $options.handleComposition(...args)), + onCompositionend: _cache[12] || (_cache[12] = (...args) => $options.handleComposition && $options.handleComposition(...args)), + onInput: _cache[13] || (_cache[13] = (...args) => $options.handleInput && $options.handleInput(...args)), + onChange: _cache[14] || (_cache[14] = (...args) => $options.handleChange && $options.handleChange(...args)) + }, null, 42, _hoisted_5$l), + $options.append ? withDirectives((openBlock(), createElementBlock("div", { + key: 7, + class: normalizeClass([$data.prefixCls + "-group-append"]) + }, [ + renderSlot(_ctx.$slots, "append") + ], 2)), [ + [vShow, $data.slotReady] + ]) : $props.search && $props.enterButton ? (openBlock(), createElementBlock("div", { + key: 8, + class: normalizeClass([$data.prefixCls + "-group-append", $data.prefixCls + "-search"]), + onClick: _cache[15] || (_cache[15] = (...args) => $options.handleSearch && $options.handleSearch(...args)) + }, [ + $props.enterButton === true ? (openBlock(), createElementBlock("i", _hoisted_6$a)) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [ + createTextVNode(toDisplayString($props.enterButton), 1) + ], 64)) + ], 2)) : $options.showPrefix ? (openBlock(), createElementBlock("span", _hoisted_7$8, [ + renderSlot(_ctx.$slots, "prefix", {}, () => [ + $props.prefix ? (openBlock(), createElementBlock("i", { + key: 0, + class: normalizeClass(["ivu-icon", ["ivu-icon-" + $props.prefix]]) + }, null, 2)) : createCommentVNode("", true) + ]) + ])) : createCommentVNode("", true) + ], 64)) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [ + createElementVNode("textarea", { + id: $props.elementId, + wrap: $props.wrap, + autocomplete: $props.autocomplete, + spellcheck: $props.spellcheck, + ref: "textarea", + class: normalizeClass($options.textareaClasses), + style: normalizeStyle($data.textareaStyles), + placeholder: $props.placeholder, + disabled: _ctx.itemDisabled, + rows: $props.rows, + maxlength: $props.maxlength, + readonly: $props.readonly, + name: $props.name, + value: $data.currentValue, + autofocus: $props.autofocus, + onKeyup: [ + _cache[16] || (_cache[16] = withKeys((...args) => $options.handleEnter && $options.handleEnter(...args), ["enter"])), + _cache[17] || (_cache[17] = (...args) => $options.handleKeyup && $options.handleKeyup(...args)) + ], + onKeypress: _cache[18] || (_cache[18] = (...args) => $options.handleKeypress && $options.handleKeypress(...args)), + onKeydown: _cache[19] || (_cache[19] = (...args) => $options.handleKeydown && $options.handleKeydown(...args)), + onFocus: _cache[20] || (_cache[20] = (...args) => $options.handleFocus && $options.handleFocus(...args)), + onBlur: _cache[21] || (_cache[21] = (...args) => $options.handleBlur && $options.handleBlur(...args)), + onCompositionstart: _cache[22] || (_cache[22] = (...args) => $options.handleComposition && $options.handleComposition(...args)), + onCompositionupdate: _cache[23] || (_cache[23] = (...args) => $options.handleComposition && $options.handleComposition(...args)), + onCompositionend: _cache[24] || (_cache[24] = (...args) => $options.handleComposition && $options.handleComposition(...args)), + onInput: _cache[25] || (_cache[25] = (...args) => $options.handleInput && $options.handleInput(...args)) + }, "\n ", 46, _hoisted_8$5), + $props.showWordLimit ? (openBlock(), createElementBlock("span", _hoisted_9$5, toDisplayString($options.textLength) + "/" + toDisplayString($options.upperLimit), 1)) : createCommentVNode("", true) + ], 64)) + ], 2); +} +var Input = /* @__PURE__ */ _export_sfc(_sfc_main$2l, [["render", _sfc_render$25]]); +const _sfc_main$2k = { + name: "AutoComplete", + mixins: [mixinsForm], + components: { iSelect: Select, iOption, iInput: Input }, + emits: ["update:modelValue", "on-change", "on-search", "on-select", "on-focus", "on-blur", "on-clear"], + props: { + modelValue: { + type: [String, Number], + default: "" + }, + label: { + type: [String, Number], + default: "" + }, + data: { + type: Array, + default: () => [] + }, + disabled: { + type: Boolean, + default: false + }, + clearable: { + type: Boolean, + default: false + }, + placeholder: { + type: String + }, + size: { + validator(value) { + return oneOf(value, ["small", "large", "default"]); + }, + default() { + const global2 = getCurrentInstance().appContext.config.globalProperties; + return !global2.$VIEWUI || global2.$VIEWUI.size === "" ? "default" : global2.$VIEWUI.size; + } + }, + icon: { + type: String + }, + filterMethod: { + type: [Function, Boolean], + default: false + }, + placement: { + validator(value) { + return oneOf(value, ["top", "bottom", "top-start", "bottom-start", "top-end", "bottom-end"]); + }, + default: "bottom-start" + }, + transfer: { + type: Boolean, + default() { + const global2 = getCurrentInstance().appContext.config.globalProperties; + return !global2.$VIEWUI || global2.$VIEWUI.transfer === "" ? false : global2.$VIEWUI.transfer; + } + }, + name: { + type: String + }, + elementId: { + type: String + }, + transferClassName: { + type: String + }, + capture: { + type: Boolean, + default() { + const global2 = getCurrentInstance().appContext.config.globalProperties; + return !global2.$VIEWUI ? true : global2.$VIEWUI.capture; + } + }, + eventsEnabled: { + type: Boolean, + default: false + } + }, + data() { + return { + currentValue: this.modelValue, + disableEmitChange: false + }; + }, + computed: { + inputIcon() { + let icon = ""; + if (this.clearable && this.currentValue && !this.disabled) { + icon = "ios-close-circle"; + } else if (this.icon) { + icon = this.icon; + } + return icon; + }, + filteredData() { + if (this.filterMethod) { + return this.data.filter((item) => this.filterMethod(this.currentValue, item)); + } else { + return this.data; + } + } + }, + watch: { + modelValue(val) { + if (this.currentValue !== val) { + this.disableEmitChange = true; + } + this.currentValue = val; + }, + currentValue(val) { + this.$refs.select.setQuery(val); + this.$emit("update:modelValue", val); + if (this.disableEmitChange) { + this.disableEmitChange = false; + return; + } + this.$emit("on-change", val); + this.handleFormItemChange("change", val); + } + }, + methods: { + remoteMethod(query) { + this.$emit("on-search", query); + }, + handleSelect(option) { + const val = option.value; + if (val === void 0 || val === null) + return; + this.currentValue = val; + this.$refs.input.blur(); + this.$emit("on-select", val); + }, + handleFocus(event) { + this.$emit("on-focus", event); + }, + handleBlur(event) { + this.$emit("on-blur", event); + }, + handleClear() { + if (!this.clearable) + return; + this.currentValue = ""; + this.$refs.select.reset(); + this.$emit("on-clear"); + }, + handleClickOutside() { + nextTick(() => { + this.$refs.input.blur(); + }); + } + } +}; +function _sfc_render$24(_ctx, _cache, $props, $setup, $data, $options) { + const _component_i_input = resolveComponent("i-input"); + const _component_i_option = resolveComponent("i-option"); + const _component_i_select = resolveComponent("i-select"); + return openBlock(), createBlock(_component_i_select, { + ref: "select", + class: "ivu-auto-complete", + label: $props.label, + disabled: _ctx.itemDisabled, + clearable: $props.clearable, + placeholder: $props.placeholder, + size: $props.size, + placement: $props.placement, + "model-value": $data.currentValue, + "transfer-class-name": $props.transferClassName, + filterable: "", + remote: "", + "auto-complete": "", + "remote-method": $options.remoteMethod, + onOnSelect: $options.handleSelect, + onOnClickoutside: $options.handleClickOutside, + transfer: $props.transfer, + capture: $props.capture, + eventsEnabled: $props.eventsEnabled + }, { + input: withCtx(() => [ + renderSlot(_ctx.$slots, "input", {}, () => [ + createVNode(_component_i_input, { + "element-id": $props.elementId, + ref: "input", + modelValue: $data.currentValue, + "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => $data.currentValue = $event), + name: $props.name, + placeholder: $props.placeholder, + disabled: _ctx.itemDisabled, + size: $props.size, + icon: $options.inputIcon, + onOnClick: $options.handleClear, + onOnFocus: $options.handleFocus, + onOnBlur: $options.handleBlur + }, null, 8, ["element-id", "modelValue", "name", "placeholder", "disabled", "size", "icon", "onOnClick", "onOnFocus", "onOnBlur"]) + ]) + ]), + default: withCtx(() => [ + renderSlot(_ctx.$slots, "default", {}, () => [ + (openBlock(true), createElementBlock(Fragment, null, renderList($options.filteredData, (item) => { + return openBlock(), createBlock(_component_i_option, { + value: item, + key: item + }, { + default: withCtx(() => [ + createTextVNode(toDisplayString(item), 1) + ]), + _: 2 + }, 1032, ["value"]); + }), 128)) + ]) + ]), + _: 3 + }, 8, ["label", "disabled", "clearable", "placeholder", "size", "placement", "model-value", "transfer-class-name", "remote-method", "onOnSelect", "onOnClickoutside", "transfer", "capture", "eventsEnabled"]); +} +var AutoComplete = /* @__PURE__ */ _export_sfc(_sfc_main$2k, [["render", _sfc_render$24]]); +const prefixCls$1f = "ivu-avatar"; +const sizeList = ["small", "large", "default"]; +const _sfc_main$2j = { + name: "Avatar", + components: { Icon }, + emits: ["on-error"], + props: { + shape: { + validator(value) { + return oneOf(value, ["circle", "square"]); + }, + default: "circle" + }, + size: { + type: [String, Number], + default() { + const global2 = getCurrentInstance().appContext.config.globalProperties; + return !global2.$VIEWUI || global2.$VIEWUI.size === "" ? "default" : global2.$VIEWUI.size; + } + }, + src: { + type: String + }, + icon: { + type: String + }, + customIcon: { + type: String, + default: "" + } + }, + data() { + return { + prefixCls: prefixCls$1f, + scale: 1, + childrenWidth: 0, + isSlotShow: false, + slotTemp: null + }; + }, + computed: { + classes() { + return [ + `${prefixCls$1f}`, + `${prefixCls$1f}-${this.shape}`, + { + [`${prefixCls$1f}-image`]: !!this.src, + [`${prefixCls$1f}-icon`]: !!this.icon || !!this.customIcon, + [`${prefixCls$1f}-${this.size}`]: oneOf(this.size, sizeList) + } + ]; + }, + styles() { + let style2 = {}; + if (this.size && !oneOf(this.size, sizeList)) { + style2.width = `${this.size}px`; + style2.height = `${this.size}px`; + style2.lineHeight = `${this.size}px`; + style2.fontSize = `${this.size / 2}px`; + } + return style2; + }, + childrenStyle() { + let style2 = {}; + if (this.isSlotShow) { + style2 = { + msTransform: `scale(${this.scale})`, + WebkitTransform: `scale(${this.scale})`, + transform: `scale(${this.scale})`, + position: "absolute", + display: "inline-block", + left: `calc(50% - ${Math.round(this.childrenWidth / 2)}px)` + }; + } + return style2; + } + }, + watch: { + size(val, oldVal) { + if (val !== oldVal) + this.setScale(); + } + }, + methods: { + setScale() { + this.isSlotShow = !this.src && !this.icon; + if (this.$refs.children) { + this.childrenWidth = this.$refs.children.offsetWidth; + const avatarWidth = this.$el.getBoundingClientRect().width; + if (avatarWidth - 8 < this.childrenWidth) { + this.scale = (avatarWidth - 8) / this.childrenWidth; + } else { + this.scale = 1; + } + } + }, + handleError(e) { + this.$emit("on-error", e); + } + }, + beforeCreate() { + this.slotTemp = this.$slots.default ? this.$slots.default() : null; + }, + mounted() { + this.setScale(); + }, + updated() { + const slot = this.$slots.default ? this.$slots.default() : null; + if (slot && slot !== this.slotTemp) + this.setScale(); + } +}; +const _hoisted_1$1g = ["src"]; +function _sfc_render$23(_ctx, _cache, $props, $setup, $data, $options) { + const _component_Icon = resolveComponent("Icon"); + return openBlock(), createElementBlock("span", { + class: normalizeClass($options.classes), + style: normalizeStyle($options.styles) + }, [ + $props.src ? (openBlock(), createElementBlock("img", { + key: 0, + src: $props.src, + onError: _cache[0] || (_cache[0] = (...args) => $options.handleError && $options.handleError(...args)) + }, null, 40, _hoisted_1$1g)) : $props.icon || $props.customIcon ? (openBlock(), createBlock(_component_Icon, { + key: 1, + type: $props.icon, + custom: $props.customIcon + }, null, 8, ["type", "custom"])) : (openBlock(), createElementBlock("span", { + key: 2, + ref: "children", + class: normalizeClass([$data.prefixCls + "-string"]), + style: normalizeStyle($options.childrenStyle) + }, [ + renderSlot(_ctx.$slots, "default") + ], 6)) + ], 6); +} +var Avatar = /* @__PURE__ */ _export_sfc(_sfc_main$2j, [["render", _sfc_render$23]]); +var Popper = { + emits: ["on-popper-show", "on-popper-hide", "created", "update:modelValue"], + props: { + eventsEnabled: { + type: Boolean, + default: false + }, + placement: { + type: String, + default: "bottom" + }, + boundariesPadding: { + type: Number, + default: 5 + }, + reference: Object, + popper: Object, + offset: { + default: 0 + }, + modelValue: { + type: Boolean, + default: false + }, + transition: String, + options: { + type: Object, + default() { + return { + modifiers: { + computeStyle: { + gpuAcceleration: false + }, + preventOverflow: { + boundariesElement: "window" + } + } + }; + } + } + }, + data() { + return { + visible: this.modelValue + }; + }, + watch: { + modelValue: { + immediate: true, + handler(val) { + this.visible = val; + this.$emit("update:modelValue", val); + } + }, + visible(val) { + if (val) { + if (this.handleIndexIncrease) + this.handleIndexIncrease(); + this.updatePopper(); + this.$emit("on-popper-show"); + } else { + this.$emit("on-popper-hide"); + } + this.$emit("update:modelValue", val); + } + }, + methods: { + createPopper() { + if (!/^(top|bottom|left|right)(-start|-end)?$/g.test(this.placement)) { + return; + } + const options = this.options; + const popper2 = this.popper || this.$refs.popper; + const reference = this.reference || this.$refs.reference; + if (!popper2 || !reference) + return; + if (this.popperJS && this.popperJS.hasOwnProperty("destroy")) { + this.popperJS.destroy(); + } + options.eventsEnabled = this.eventsEnabled; + options.placement = this.placement; + if (!options.modifiers.offset) { + options.modifiers.offset = {}; + } + options.modifiers.offset.offset = this.offset; + options.onCreate = () => { + nextTick(this.updatePopper); + this.$emit("created", this); + }; + this.popperJS = new Popper$1(reference, popper2, options); + }, + updatePopper() { + this.popperJS ? this.popperJS.update() : this.createPopper(); + }, + doDestroy() { + if (this.visible) + return; + this.popperJS.destroy(); + this.popperJS = null; + } + }, + updated() { + nextTick(() => this.updatePopper()); + }, + beforeUnmount() { + if (this.popperJS) { + this.popperJS.destroy(); + } + } +}; +const prefixCls$1e = "ivu-tooltip"; +const _sfc_main$2i = { + name: "Tooltip", + mixins: [Popper], + props: { + placement: { + validator(value) { + return oneOf(value, ["top", "top-start", "top-end", "bottom", "bottom-start", "bottom-end", "left", "left-start", "left-end", "right", "right-start", "right-end"]); + }, + default: "bottom" + }, + content: { + type: [String, Number], + default: "" + }, + delay: { + type: Number, + default: 100 + }, + disabled: { + type: Boolean, + default: false + }, + controlled: { + type: Boolean, + default: false + }, + always: { + type: Boolean, + default: false + }, + transfer: { + type: Boolean, + default() { + const global2 = getCurrentInstance().appContext.config.globalProperties; + return !global2.$VIEWUI || global2.$VIEWUI.transfer === "" ? false : global2.$VIEWUI.transfer; + } + }, + theme: { + validator(value) { + return oneOf(value, ["dark", "light"]); + }, + default: "dark" + }, + maxWidth: { + type: [String, Number] + }, + transferClassName: { + type: String + } + }, + data() { + return { + prefixCls: prefixCls$1e, + tIndex: this.handleGetIndex() + }; + }, + computed: { + innerStyles() { + const styles = {}; + if (this.maxWidth) + styles["max-width"] = `${this.maxWidth}px`; + return styles; + }, + innerClasses() { + return [ + `${prefixCls$1e}-inner`, + { + [`${prefixCls$1e}-inner-with-width`]: !!this.maxWidth + } + ]; + }, + dropStyles() { + let styles = {}; + if (this.transfer) + styles["z-index"] = 1060 + this.tIndex; + return styles; + }, + dropdownCls() { + return [ + `${prefixCls$1e}-popper`, + `${prefixCls$1e}-${this.theme}`, + { + [prefixCls$1e + "-transfer"]: this.transfer, + [this.transferClassName]: this.transferClassName + } + ]; + } + }, + watch: { + content() { + this.updatePopper(); + } + }, + methods: { + handleShowPopper() { + if (this.timeout) + clearTimeout(this.timeout); + this.timeout = setTimeout(() => { + this.visible = true; + }, this.delay); + this.tIndex = this.handleGetIndex(); + }, + handleClosePopper() { + if (this.timeout) { + clearTimeout(this.timeout); + if (!this.controlled) { + this.timeout = setTimeout(() => { + this.visible = false; + }, 100); + } + } + }, + handleGetIndex() { + transferIncrease(); + return transferIndex; + } + }, + mounted() { + if (this.always) { + this.updatePopper(); + } + } +}; +function _sfc_render$22(_ctx, _cache, $props, $setup, $data, $options) { + return openBlock(), createElementBlock("div", { + class: normalizeClass([$data.prefixCls]), + onMouseenter: _cache[2] || (_cache[2] = (...args) => $options.handleShowPopper && $options.handleShowPopper(...args)), + onMouseleave: _cache[3] || (_cache[3] = (...args) => $options.handleClosePopper && $options.handleClosePopper(...args)) + }, [ + createElementVNode("div", { + class: normalizeClass([$data.prefixCls + "-rel"]), + ref: "reference" + }, [ + renderSlot(_ctx.$slots, "default") + ], 2), + (openBlock(), createBlock(Teleport, { + to: "body", + disabled: !$props.transfer + }, [ + createVNode(Transition, { name: "fade" }, { + default: withCtx(() => [ + withDirectives(createElementVNode("div", { + ref: "popper", + class: normalizeClass($options.dropdownCls), + style: normalizeStyle($options.dropStyles), + onMouseenter: _cache[0] || (_cache[0] = (...args) => $options.handleShowPopper && $options.handleShowPopper(...args)), + onMouseleave: _cache[1] || (_cache[1] = (...args) => $options.handleClosePopper && $options.handleClosePopper(...args)) + }, [ + createElementVNode("div", { + class: normalizeClass([$data.prefixCls + "-content"]) + }, [ + createElementVNode("div", { + class: normalizeClass([$data.prefixCls + "-arrow"]) + }, null, 2), + createElementVNode("div", { + class: normalizeClass($options.innerClasses), + style: normalizeStyle($options.innerStyles) + }, [ + renderSlot(_ctx.$slots, "content", {}, () => [ + createTextVNode(toDisplayString($props.content), 1) + ]) + ], 6) + ], 2) + ], 38), [ + [vShow, !$props.disabled && (_ctx.visible || $props.always)] + ]) + ]), + _: 3 + }) + ], 8, ["disabled"])) + ], 34); +} +var Tooltip = /* @__PURE__ */ _export_sfc(_sfc_main$2i, [["render", _sfc_render$22]]); +const _sfc_main$2h = { + name: "AvatarList", + components: { Avatar, Tooltip }, + props: { + list: { + type: Array, + default() { + return []; + } + }, + shape: { + validator(value) { + return oneOf(value, ["circle", "square"]); + }, + default: "circle" + }, + size: { + validator(value) { + return oneOf(value, ["small", "large", "default"]); + }, + default: "default" + }, + excessStyle: { + type: Object, + default() { + return {}; + } + }, + max: { + type: Number + }, + tooltip: { + type: Boolean, + default: true + }, + placement: { + validator(value) { + return oneOf(value, ["top", "top-start", "top-end", "bottom", "bottom-start", "bottom-end", "left", "left-start", "left-end", "right", "right-start", "right-end"]); + }, + default: "top" + }, + transfer: { + type: Boolean, + default() { + const global2 = getCurrentInstance().appContext.config.globalProperties; + return !global2.$VIEWUI || global2.$VIEWUI.transfer === "" ? false : global2.$VIEWUI.transfer; + } + } + }, + computed: { + currentList() { + const len = this.list.length; + const max = this.max; + if (len <= max) { + return [...this.list]; + } else { + return [...this.list].slice(0, max); + } + } + } +}; +const _hoisted_1$1f = { + key: 0, + class: "ivu-avatar-list-item ivu-avatar-list-item-excess" +}; +const _hoisted_2$M = { + key: 1, + class: "ivu-avatar-list-item ivu-avatar-list-item-excess" +}; +function _sfc_render$21(_ctx, _cache, $props, $setup, $data, $options) { + const _component_Avatar = resolveComponent("Avatar"); + const _component_Tooltip = resolveComponent("Tooltip"); + return openBlock(), createElementBlock("div", { + class: normalizeClass(["ivu-avatar-list", "ivu-avatar-list-" + $props.size]) + }, [ + (openBlock(true), createElementBlock(Fragment, null, renderList($options.currentList, (item, index2) => { + return openBlock(), createElementBlock("div", { + class: "ivu-avatar-list-item", + key: index2 + }, [ + $props.tooltip && item.tip ? (openBlock(), createBlock(_component_Tooltip, { + key: 0, + content: item.tip, + placement: $props.placement, + transfer: $props.transfer + }, { + default: withCtx(() => [ + createVNode(_component_Avatar, { + src: item.src, + size: $props.size, + shape: $props.shape + }, null, 8, ["src", "size", "shape"]) + ]), + _: 2 + }, 1032, ["content", "placement", "transfer"])) : (openBlock(), createBlock(_component_Avatar, { + key: 1, + src: item.src, + size: $props.size, + shape: $props.shape + }, null, 8, ["src", "size", "shape"])) + ]); + }), 128)), + _ctx.$slots.extra ? (openBlock(), createElementBlock("div", _hoisted_1$1f, [ + createVNode(_component_Avatar, { + size: $props.size, + shape: $props.shape, + style: normalizeStyle($props.excessStyle) + }, { + default: withCtx(() => [ + renderSlot(_ctx.$slots, "extra") + ]), + _: 3 + }, 8, ["size", "shape", "style"]) + ])) : $props.list.length > $props.max ? (openBlock(), createElementBlock("div", _hoisted_2$M, [ + createVNode(_component_Avatar, { + size: $props.size, + shape: $props.shape, + style: normalizeStyle($props.excessStyle) + }, { + default: withCtx(() => [ + renderSlot(_ctx.$slots, "excess", {}, () => [ + createTextVNode("+" + toDisplayString($props.list.length - $props.max), 1) + ]) + ]), + _: 3 + }, 8, ["size", "shape", "style"]) + ])) : createCommentVNode("", true) + ], 2); +} +var AvatarList = /* @__PURE__ */ _export_sfc(_sfc_main$2h, [["render", _sfc_render$21]]); +const prefixCls$1d = "ivu-back-top"; +const _sfc_main$2g = { + name: "BackTop", + emits: ["on-click"], + props: { + height: { + type: Number, + default: 400 + }, + bottom: { + type: Number, + default: 30 + }, + right: { + type: Number, + default: 30 + }, + duration: { + type: Number, + default: 1e3 + } + }, + data() { + return { + backTop: false + }; + }, + mounted() { + on(window, "scroll", this.handleScroll); + on(window, "resize", this.handleScroll); + }, + beforeUnmount() { + off(window, "scroll", this.handleScroll); + off(window, "resize", this.handleScroll); + }, + computed: { + classes() { + return [ + `${prefixCls$1d}`, + { + [`${prefixCls$1d}-show`]: this.backTop + } + ]; + }, + styles() { + return { + bottom: `${this.bottom}px`, + right: `${this.right}px` + }; + }, + innerClasses() { + return `${prefixCls$1d}-inner`; + } + }, + methods: { + handleScroll() { + if (!isClient) + return; + this.backTop = window.pageYOffset >= this.height; + }, + back() { + if (!isClient) + return; + const sTop = document.documentElement.scrollTop || document.body.scrollTop; + scrollTop(window, sTop, 0, this.duration); + this.$emit("on-click"); + } + } +}; +const _hoisted_1$1e = /* @__PURE__ */ createElementVNode("i", { class: "ivu-icon ivu-icon-ios-arrow-up" }, null, -1); +const _hoisted_2$L = [ + _hoisted_1$1e +]; +function _sfc_render$20(_ctx, _cache, $props, $setup, $data, $options) { + return openBlock(), createElementBlock("div", { + class: normalizeClass($options.classes), + style: normalizeStyle($options.styles), + onClick: _cache[0] || (_cache[0] = (...args) => $options.back && $options.back(...args)) + }, [ + renderSlot(_ctx.$slots, "default", {}, () => [ + createElementVNode("div", { + class: normalizeClass($options.innerClasses) + }, _hoisted_2$L, 2) + ]) + ], 6); +} +var BackTop = /* @__PURE__ */ _export_sfc(_sfc_main$2g, [["render", _sfc_render$20]]); +const initColorList$1 = ["blue", "green", "red", "yellow", "pink", "magenta", "volcano", "orange", "gold", "lime", "cyan", "geekblue", "purple"]; +const prefixCls$1c = "ivu-badge"; +const _sfc_main$2f = { + name: "Badge", + props: { + count: Number, + dot: { + type: Boolean, + default: false + }, + overflowCount: { + type: [Number, String], + default: 99 + }, + className: String, + showZero: { + type: Boolean, + default: false + }, + text: { + type: String, + default: "" + }, + status: { + validator(value) { + return oneOf(value, ["success", "processing", "default", "error", "warning"]); + } + }, + type: { + validator(value) { + return oneOf(value, ["success", "primary", "normal", "error", "warning", "info"]); + } + }, + offset: { + type: Array + }, + color: { + type: String + } + }, + computed: { + classes() { + return `${prefixCls$1c}`; + }, + dotClasses() { + return `${prefixCls$1c}-dot`; + }, + countClasses() { + return [ + `${prefixCls$1c}-count`, + { + [`${this.className}`]: !!this.className, + [`${prefixCls$1c}-count-alone`]: this.alone, + [`${prefixCls$1c}-count-${this.type}`]: !!this.type + } + ]; + }, + customCountClasses() { + return [ + `${prefixCls$1c}-count`, + `${prefixCls$1c}-count-custom`, + { + [`${this.className}`]: !!this.className + } + ]; + }, + statusClasses() { + return [ + `${prefixCls$1c}-status-dot`, + { + [`${prefixCls$1c}-status-${this.status}`]: !!this.status, + [`${prefixCls$1c}-status-${this.color}`]: !!this.color && oneOf(this.color, initColorList$1) + } + ]; + }, + statusStyles() { + return oneOf(this.color, initColorList$1) ? {} : { backgroundColor: this.color }; + }, + styles() { + const style2 = {}; + if (this.offset && this.offset.length === 2) { + style2["margin-top"] = `${this.offset[0]}px`; + style2["margin-right"] = `${this.offset[1]}px`; + } + return style2; + }, + finalCount() { + if (this.text !== "") + return this.text; + return parseInt(this.count) >= parseInt(this.overflowCount) ? `${this.overflowCount}+` : this.count; + }, + badge() { + let status = false; + if (this.count) { + status = !(parseInt(this.count) === 0); + } + if (this.dot) { + status = true; + if (this.count !== null) { + if (parseInt(this.count) === 0) { + status = false; + } + } + } + if (this.text !== "") + status = true; + return status || this.showZero; + }, + hasCount() { + if (this.count || this.text !== "") + return true; + if (this.showZero && parseInt(this.count) === 0) + return true; + else + return false; + }, + alone() { + return this.$slots.default === void 0; + } + } +}; +const _hoisted_1$1d = { class: "ivu-badge-status-text" }; +function _sfc_render$1$(_ctx, _cache, $props, $setup, $data, $options) { + return $props.dot ? (openBlock(), createElementBlock("span", { + key: 0, + class: normalizeClass($options.classes), + ref: "badge" + }, [ + renderSlot(_ctx.$slots, "default"), + withDirectives(createElementVNode("sup", { + class: normalizeClass($options.dotClasses), + style: normalizeStyle($options.styles) + }, null, 6), [ + [vShow, $options.badge] + ]) + ], 2)) : $props.status || $props.color ? (openBlock(), createElementBlock("span", { + key: 1, + class: normalizeClass([$options.classes, "ivu-badge-status"]), + ref: "badge" + }, [ + createElementVNode("span", { + class: normalizeClass($options.statusClasses), + style: normalizeStyle($options.statusStyles) + }, null, 6), + createElementVNode("span", _hoisted_1$1d, [ + renderSlot(_ctx.$slots, "text", {}, () => [ + createTextVNode(toDisplayString($props.text), 1) + ]) + ]) + ], 2)) : (openBlock(), createElementBlock("span", { + key: 2, + class: normalizeClass($options.classes), + ref: "badge" + }, [ + renderSlot(_ctx.$slots, "default"), + _ctx.$slots.count ? (openBlock(), createElementBlock("sup", { + key: 0, + style: normalizeStyle($options.styles), + class: normalizeClass($options.customCountClasses) + }, [ + renderSlot(_ctx.$slots, "count") + ], 6)) : $options.hasCount ? withDirectives((openBlock(), createElementBlock("sup", { + key: 1, + style: normalizeStyle($options.styles), + class: normalizeClass($options.countClasses) + }, [ + renderSlot(_ctx.$slots, "text", {}, () => [ + createTextVNode(toDisplayString($options.finalCount), 1) + ]) + ], 6)), [ + [vShow, $options.badge] + ]) : createCommentVNode("", true) + ], 2)); +} +var Badge = /* @__PURE__ */ _export_sfc(_sfc_main$2f, [["render", _sfc_render$1$]]); +const _sfc_main$2e = { + name: "Breadcrumb", + provide() { + return { + BreadcrumbInstance: this + }; + }, + props: { + separator: { + type: String, + default: "/" + } + } +}; +const _hoisted_1$1c = { class: "ivu-breadcrumb" }; +function _sfc_render$1_(_ctx, _cache, $props, $setup, $data, $options) { + return openBlock(), createElementBlock("div", _hoisted_1$1c, [ + renderSlot(_ctx.$slots, "default") + ]); +} +var Breadcrumb = /* @__PURE__ */ _export_sfc(_sfc_main$2e, [["render", _sfc_render$1_]]); +const prefixCls$1b = "ivu-breadcrumb-item"; +const _sfc_main$2d = { + name: "BreadcrumbItem", + mixins: [mixinsLink], + inject: ["BreadcrumbInstance"], + props: {}, + data() { + return { + showSeparator: false + }; + }, + computed: { + linkClasses() { + return `${prefixCls$1b}-link`; + }, + separatorClasses() { + return `${prefixCls$1b}-separator`; + }, + separator() { + return this.BreadcrumbInstance.separator; + } + }, + mounted() { + this.showSeparator = this.$slots.separator !== void 0; + } +}; +const _hoisted_1$1b = ["href", "target"]; +const _hoisted_2$K = ["innerHTML"]; +function _sfc_render$1Z(_ctx, _cache, $props, $setup, $data, $options) { + return openBlock(), createElementBlock("span", null, [ + _ctx.to ? (openBlock(), createElementBlock("a", { + key: 0, + href: _ctx.linkUrl, + target: _ctx.target, + class: normalizeClass($options.linkClasses), + onClick: [ + _cache[0] || (_cache[0] = withModifiers(($event) => _ctx.handleCheckClick($event, false), ["exact"])), + _cache[1] || (_cache[1] = withModifiers(($event) => _ctx.handleCheckClick($event, true), ["ctrl"])), + _cache[2] || (_cache[2] = withModifiers(($event) => _ctx.handleCheckClick($event, true), ["meta"])) + ] + }, [ + renderSlot(_ctx.$slots, "default") + ], 10, _hoisted_1$1b)) : (openBlock(), createElementBlock("span", { + key: 1, + class: normalizeClass($options.linkClasses) + }, [ + renderSlot(_ctx.$slots, "default") + ], 2)), + !$data.showSeparator ? (openBlock(), createElementBlock("span", { + key: 2, + class: normalizeClass($options.separatorClasses), + innerHTML: $options.separator + }, null, 10, _hoisted_2$K)) : (openBlock(), createElementBlock("span", { + key: 3, + class: normalizeClass($options.separatorClasses) + }, [ + renderSlot(_ctx.$slots, "separator") + ], 2)) + ]); +} +var BreadcrumbItem = /* @__PURE__ */ _export_sfc(_sfc_main$2d, [["render", _sfc_render$1Z]]); +const prefixCls$1a = "ivu-btn"; +const _sfc_main$2c = { + name: "Button", + mixins: [mixinsLink, mixinsForm], + components: { Icon }, + emits: ["click"], + props: { + type: { + validator(value) { + return oneOf(value, ["default", "primary", "dashed", "text", "info", "success", "warning", "error"]); + }, + default: "default" + }, + shape: { + validator(value) { + return oneOf(value, ["circle", "circle-outline"]); + } + }, + size: { + validator(value) { + return oneOf(value, ["small", "large", "default"]); + }, + default() { + const global2 = getCurrentInstance().appContext.config.globalProperties; + return !global2.$VIEWUI || global2.$VIEWUI.size === "" ? "default" : global2.$VIEWUI.size; + } + }, + loading: Boolean, + disabled: Boolean, + htmlType: { + default: "button", + validator(value) { + return oneOf(value, ["button", "submit", "reset"]); + } + }, + icon: { + type: String, + default: "" + }, + customIcon: { + type: String, + default: "" + }, + long: { + type: Boolean, + default: false + }, + ghost: { + type: Boolean, + default: false + } + }, + computed: { + showSlot() { + return !!this.$slots.default; + }, + classes() { + return [ + `${prefixCls$1a}`, + `${prefixCls$1a}-${this.type}`, + { + [`${prefixCls$1a}-long`]: this.long, + [`${prefixCls$1a}-${this.shape}`]: !!this.shape, + [`${prefixCls$1a}-${this.size}`]: this.size !== "default", + [`${prefixCls$1a}-loading`]: this.loading != null && this.loading, + [`${prefixCls$1a}-icon-only`]: !this.showSlot && (!!this.icon || !!this.customIcon || this.loading), + [`${prefixCls$1a}-ghost`]: this.ghost + } + ]; + }, + isHrefPattern() { + const { to } = this; + return !!to; + }, + tagName() { + const { isHrefPattern } = this; + return isHrefPattern ? "a" : "button"; + }, + tagProps() { + const { isHrefPattern } = this; + if (isHrefPattern) { + const { linkUrl, target } = this; + return { href: linkUrl, target }; + } else { + const { htmlType } = this; + return { type: htmlType }; + } + } + }, + methods: { + handleClickLink(event) { + this.$emit("click", event); + const openInNewWindow = event.ctrlKey || event.metaKey; + this.handleCheckClick(event, openInNewWindow); + } + }, + render() { + let tag; + if (this.tagName === "button") + tag = "button"; + else if (this.tagName === "a") + tag = "a"; + let slots = []; + if (this.loading) { + slots.push(h(Icon, { + class: "ivu-load-loop", + type: "ios-loading" + })); + } + if ((this.icon || this.customIcon) && !this.loading) { + slots.push(h(Icon, { + type: this.icon, + custom: this.customIcon + })); + } + if (this.$slots.default) { + slots.push(h("span", { + ref: "slot" + }, this.$slots.default())); + } + return h(tag, { + class: this.classes, + disabled: this.itemDisabled, + onClick: this.handleClickLink, + ...this.tagProps + }, slots); + } +}; +const prefixCls$19 = "ivu-btn-group"; +const _sfc_main$2b = { + name: "ButtonGroup", + props: { + size: { + validator(value) { + return oneOf(value, ["small", "large", "default"]); + }, + default() { + const global2 = getCurrentInstance().appContext.config.globalProperties; + return !global2.$VIEWUI || global2.$VIEWUI.size === "" ? "default" : global2.$VIEWUI.size; + } + }, + shape: { + validator(value) { + return oneOf(value, ["circle", "circle-outline"]); + } + }, + vertical: { + type: Boolean, + default: false + } + }, + computed: { + classes() { + return [ + `${prefixCls$19}`, + { + [`${prefixCls$19}-${this.size}`]: !!this.size, + [`${prefixCls$19}-${this.shape}`]: !!this.shape, + [`${prefixCls$19}-vertical`]: this.vertical + } + ]; + } + } +}; +function _sfc_render$1Y(_ctx, _cache, $props, $setup, $data, $options) { + return openBlock(), createElementBlock("div", { + class: normalizeClass($options.classes) + }, [ + renderSlot(_ctx.$slots, "default") + ], 2); +} +var ButtonGroup = /* @__PURE__ */ _export_sfc(_sfc_main$2b, [["render", _sfc_render$1Y]]); +const prefixCls$18 = "ivu-radio-group"; +let seed$1 = 0; +const now$2 = Date.now(); +const getUuid$1 = () => `ivuRadioGroup_${now$2}_${seed$1++}`; +const _sfc_main$2a = { + name: "RadioGroup", + mixins: [mixinsForm], + emits: ["update:modelValue", "on-change"], + provide() { + return { + RadioGroupInstance: this + }; + }, + props: { + modelValue: { + type: [String, Number], + default: "" + }, + size: { + validator(value) { + return oneOf(value, ["small", "large", "default"]); + }, + default() { + const global2 = getCurrentInstance().appContext.config.globalProperties; + return !global2.$VIEWUI || global2.$VIEWUI.size === "" ? "default" : global2.$VIEWUI.size; + } + }, + type: { + validator(value) { + return oneOf(value, ["button"]); + } + }, + vertical: { + type: Boolean, + default: false + }, + name: { + type: String, + default: getUuid$1 + }, + buttonStyle: { + validator(value) { + return oneOf(value, ["default", "solid"]); + }, + default: "default" + } + }, + data() { + return { + currentValue: this.modelValue, + children: [] + }; + }, + computed: { + classes() { + return [ + `${prefixCls$18}`, + { + [`${prefixCls$18}-${this.size}`]: !!this.size, + [`ivu-radio-${this.size}`]: !!this.size, + [`${prefixCls$18}-${this.type}`]: !!this.type, + [`${prefixCls$18}-button-${this.buttonStyle}`]: this.type === "button" && this.buttonStyle !== "default", + [`${prefixCls$18}-vertical`]: this.vertical + } + ]; + } + }, + methods: { + change(data) { + this.currentValue = data.value; + this.$emit("update:modelValue", data.value); + this.$emit("on-change", data.value); + this.handleFormItemChange("change", data.value); + } + }, + watch: { + modelValue() { + if (this.currentValue !== this.modelValue) { + this.currentValue = this.modelValue; + } + } + } +}; +const _hoisted_1$1a = ["name"]; +function _sfc_render$1X(_ctx, _cache, $props, $setup, $data, $options) { + return openBlock(), createElementBlock("div", { + class: normalizeClass($options.classes), + name: $props.name + }, [ + renderSlot(_ctx.$slots, "default") + ], 10, _hoisted_1$1a); +} +var RadioGroup = /* @__PURE__ */ _export_sfc(_sfc_main$2a, [["render", _sfc_render$1X]]); +const prefixCls$17 = "ivu-radio"; +const _sfc_main$29 = { + name: "Radio", + mixins: [mixinsForm], + emits: ["update:modelValue", "on-change"], + inject: { + RadioGroupInstance: { + default: null + } + }, + props: { + modelValue: { + type: [String, Number, Boolean], + default: false + }, + trueValue: { + type: [String, Number, Boolean], + default: true + }, + falseValue: { + type: [String, Number, Boolean], + default: false + }, + label: { + type: [String, Number] + }, + disabled: { + type: Boolean, + default: false + }, + size: { + validator(value) { + return oneOf(value, ["small", "large", "default"]); + }, + default() { + const global2 = getCurrentInstance().appContext.config.globalProperties; + return !global2.$VIEWUI || global2.$VIEWUI.size === "" ? "default" : global2.$VIEWUI.size; + } + }, + name: { + type: String + }, + border: { + type: Boolean, + default: false + } + }, + data() { + return { + groupName: this.name, + parent: this.RadioGroupInstance, + focusWrapper: false, + focusInner: false + }; + }, + computed: { + wrapClasses() { + return [ + `${prefixCls$17}-wrapper`, + { + [`${prefixCls$17}-group-item`]: this.group, + [`${prefixCls$17}-wrapper-checked`]: this.currentValue, + [`${prefixCls$17}-wrapper-disabled`]: this.itemDisabled, + [`${prefixCls$17}-${this.size}`]: !!this.size, + [`${prefixCls$17}-focus`]: this.focusWrapper, + [`${prefixCls$17}-border`]: this.border + } + ]; + }, + radioClasses() { + return [ + `${prefixCls$17}`, + { + [`${prefixCls$17}-checked`]: this.currentValue, + [`${prefixCls$17}-disabled`]: this.itemDisabled + } + ]; + }, + innerClasses() { + return [ + `${prefixCls$17}-inner`, + { + [`${prefixCls$17}-focus`]: this.focusInner + } + ]; + }, + inputClasses() { + return `${prefixCls$17}-input`; + }, + currentValue() { + if (this.RadioGroupInstance) { + return this.RadioGroupInstance.currentValue === this.label; + } else { + return this.modelValue === this.trueValue; + } + }, + group() { + return !!this.RadioGroupInstance; + } + }, + mounted() { + if (this.parent) { + if (this.name && this.name !== this.parent.name) { + if (console.warn) { + console.warn("[View UI] Name does not match Radio Group name."); + } + } else { + this.groupName = this.parent.name; + } + } + }, + methods: { + change(event) { + if (this.itemDisabled) { + return false; + } + const checked = event.target.checked; + const value = checked ? this.trueValue : this.falseValue; + this.$emit("update:modelValue", value); + if (this.group) { + if (this.label !== void 0) { + this.parent.change({ + value: this.label, + checked: this.modelValue + }); + } + } else { + this.$emit("on-change", value); + this.handleFormItemChange("change", value); + } + }, + onBlur() { + this.focusWrapper = false; + this.focusInner = false; + }, + onFocus() { + if (this.group && this.parent.type === "button") { + this.focusWrapper = true; + } else { + this.focusInner = true; + } + } + }, + watch: { + modelValue(val) { + if (val === this.trueValue || val === this.falseValue) + ; + else { + throw "Value should be trueValue or falseValue."; + } + } + } +}; +const _hoisted_1$19 = ["disabled", "checked", "name"]; +function _sfc_render$1W(_ctx, _cache, $props, $setup, $data, $options) { + return openBlock(), createElementBlock("label", { + class: normalizeClass($options.wrapClasses) + }, [ + createElementVNode("span", { + class: normalizeClass($options.radioClasses) + }, [ + createElementVNode("span", { + class: normalizeClass($options.innerClasses) + }, null, 2), + createElementVNode("input", { + type: "radio", + class: normalizeClass($options.inputClasses), + disabled: _ctx.itemDisabled, + checked: $options.currentValue, + name: $data.groupName, + onChange: _cache[0] || (_cache[0] = (...args) => $options.change && $options.change(...args)), + onFocus: _cache[1] || (_cache[1] = (...args) => $options.onFocus && $options.onFocus(...args)), + onBlur: _cache[2] || (_cache[2] = (...args) => $options.onBlur && $options.onBlur(...args)) + }, null, 42, _hoisted_1$19) + ], 2), + renderSlot(_ctx.$slots, "default", {}, () => [ + createTextVNode(toDisplayString($props.label), 1) + ]) + ], 2); +} +var Radio = /* @__PURE__ */ _export_sfc(_sfc_main$29, [["render", _sfc_render$1W]]); +var dayjs_min = { exports: {} }; +(function(module, exports) { + !function(t2, e) { + module.exports = e(); + }(commonjsGlobal, function() { + var t2 = 1e3, e = 6e4, n = 36e5, r = "millisecond", i = "second", s = "minute", u = "hour", a = "day", o = "week", c = "month", f = "quarter", h2 = "year", d = "date", l = "Invalid Date", $ = /^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/, y = /\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g, M = { name: "en", weekdays: "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"), months: "January_February_March_April_May_June_July_August_September_October_November_December".split("_"), ordinal: function(t3) { + var e2 = ["th", "st", "nd", "rd"], n2 = t3 % 100; + return "[" + t3 + (e2[(n2 - 20) % 10] || e2[n2] || e2[0]) + "]"; + } }, m = function(t3, e2, n2) { + var r2 = String(t3); + return !r2 || r2.length >= e2 ? t3 : "" + Array(e2 + 1 - r2.length).join(n2) + t3; + }, v = { s: m, z: function(t3) { + var e2 = -t3.utcOffset(), n2 = Math.abs(e2), r2 = Math.floor(n2 / 60), i2 = n2 % 60; + return (e2 <= 0 ? "+" : "-") + m(r2, 2, "0") + ":" + m(i2, 2, "0"); + }, m: function t3(e2, n2) { + if (e2.date() < n2.date()) + return -t3(n2, e2); + var r2 = 12 * (n2.year() - e2.year()) + (n2.month() - e2.month()), i2 = e2.clone().add(r2, c), s2 = n2 - i2 < 0, u2 = e2.clone().add(r2 + (s2 ? -1 : 1), c); + return +(-(r2 + (n2 - i2) / (s2 ? i2 - u2 : u2 - i2)) || 0); + }, a: function(t3) { + return t3 < 0 ? Math.ceil(t3) || 0 : Math.floor(t3); + }, p: function(t3) { + return { M: c, y: h2, w: o, d: a, D: d, h: u, m: s, s: i, ms: r, Q: f }[t3] || String(t3 || "").toLowerCase().replace(/s$/, ""); + }, u: function(t3) { + return void 0 === t3; + } }, g = "en", D = {}; + D[g] = M; + var p = "$isDayjsObject", S = function(t3) { + return t3 instanceof _ || !(!t3 || !t3[p]); + }, w = function t3(e2, n2, r2) { + var i2; + if (!e2) + return g; + if ("string" == typeof e2) { + var s2 = e2.toLowerCase(); + D[s2] && (i2 = s2), n2 && (D[s2] = n2, i2 = s2); + var u2 = e2.split("-"); + if (!i2 && u2.length > 1) + return t3(u2[0]); + } else { + var a2 = e2.name; + D[a2] = e2, i2 = a2; + } + return !r2 && i2 && (g = i2), i2 || !r2 && g; + }, O = function(t3, e2) { + if (S(t3)) + return t3.clone(); + var n2 = "object" == typeof e2 ? e2 : {}; + return n2.date = t3, n2.args = arguments, new _(n2); + }, b = v; + b.l = w, b.i = S, b.w = function(t3, e2) { + return O(t3, { locale: e2.$L, utc: e2.$u, x: e2.$x, $offset: e2.$offset }); + }; + var _ = function() { + function M2(t3) { + this.$L = w(t3.locale, null, true), this.parse(t3), this.$x = this.$x || t3.x || {}, this[p] = true; + } + var m2 = M2.prototype; + return m2.parse = function(t3) { + this.$d = function(t4) { + var e2 = t4.date, n2 = t4.utc; + if (null === e2) + return new Date(NaN); + if (b.u(e2)) + return new Date(); + if (e2 instanceof Date) + return new Date(e2); + if ("string" == typeof e2 && !/Z$/i.test(e2)) { + var r2 = e2.match($); + if (r2) { + var i2 = r2[2] - 1 || 0, s2 = (r2[7] || "0").substring(0, 3); + return n2 ? new Date(Date.UTC(r2[1], i2, r2[3] || 1, r2[4] || 0, r2[5] || 0, r2[6] || 0, s2)) : new Date(r2[1], i2, r2[3] || 1, r2[4] || 0, r2[5] || 0, r2[6] || 0, s2); + } + } + return new Date(e2); + }(t3), this.init(); + }, m2.init = function() { + var t3 = this.$d; + this.$y = t3.getFullYear(), this.$M = t3.getMonth(), this.$D = t3.getDate(), this.$W = t3.getDay(), this.$H = t3.getHours(), this.$m = t3.getMinutes(), this.$s = t3.getSeconds(), this.$ms = t3.getMilliseconds(); + }, m2.$utils = function() { + return b; + }, m2.isValid = function() { + return !(this.$d.toString() === l); + }, m2.isSame = function(t3, e2) { + var n2 = O(t3); + return this.startOf(e2) <= n2 && n2 <= this.endOf(e2); + }, m2.isAfter = function(t3, e2) { + return O(t3) < this.startOf(e2); + }, m2.isBefore = function(t3, e2) { + return this.endOf(e2) < O(t3); + }, m2.$g = function(t3, e2, n2) { + return b.u(t3) ? this[e2] : this.set(n2, t3); + }, m2.unix = function() { + return Math.floor(this.valueOf() / 1e3); + }, m2.valueOf = function() { + return this.$d.getTime(); + }, m2.startOf = function(t3, e2) { + var n2 = this, r2 = !!b.u(e2) || e2, f2 = b.p(t3), l2 = function(t4, e3) { + var i2 = b.w(n2.$u ? Date.UTC(n2.$y, e3, t4) : new Date(n2.$y, e3, t4), n2); + return r2 ? i2 : i2.endOf(a); + }, $2 = function(t4, e3) { + return b.w(n2.toDate()[t4].apply(n2.toDate("s"), (r2 ? [0, 0, 0, 0] : [23, 59, 59, 999]).slice(e3)), n2); + }, y2 = this.$W, M3 = this.$M, m3 = this.$D, v2 = "set" + (this.$u ? "UTC" : ""); + switch (f2) { + case h2: + return r2 ? l2(1, 0) : l2(31, 11); + case c: + return r2 ? l2(1, M3) : l2(0, M3 + 1); + case o: + var g2 = this.$locale().weekStart || 0, D2 = (y2 < g2 ? y2 + 7 : y2) - g2; + return l2(r2 ? m3 - D2 : m3 + (6 - D2), M3); + case a: + case d: + return $2(v2 + "Hours", 0); + case u: + return $2(v2 + "Minutes", 1); + case s: + return $2(v2 + "Seconds", 2); + case i: + return $2(v2 + "Milliseconds", 3); + default: + return this.clone(); + } + }, m2.endOf = function(t3) { + return this.startOf(t3, false); + }, m2.$set = function(t3, e2) { + var n2, o2 = b.p(t3), f2 = "set" + (this.$u ? "UTC" : ""), l2 = (n2 = {}, n2[a] = f2 + "Date", n2[d] = f2 + "Date", n2[c] = f2 + "Month", n2[h2] = f2 + "FullYear", n2[u] = f2 + "Hours", n2[s] = f2 + "Minutes", n2[i] = f2 + "Seconds", n2[r] = f2 + "Milliseconds", n2)[o2], $2 = o2 === a ? this.$D + (e2 - this.$W) : e2; + if (o2 === c || o2 === h2) { + var y2 = this.clone().set(d, 1); + y2.$d[l2]($2), y2.init(), this.$d = y2.set(d, Math.min(this.$D, y2.daysInMonth())).$d; + } else + l2 && this.$d[l2]($2); + return this.init(), this; + }, m2.set = function(t3, e2) { + return this.clone().$set(t3, e2); + }, m2.get = function(t3) { + return this[b.p(t3)](); + }, m2.add = function(r2, f2) { + var d2, l2 = this; + r2 = Number(r2); + var $2 = b.p(f2), y2 = function(t3) { + var e2 = O(l2); + return b.w(e2.date(e2.date() + Math.round(t3 * r2)), l2); + }; + if ($2 === c) + return this.set(c, this.$M + r2); + if ($2 === h2) + return this.set(h2, this.$y + r2); + if ($2 === a) + return y2(1); + if ($2 === o) + return y2(7); + var M3 = (d2 = {}, d2[s] = e, d2[u] = n, d2[i] = t2, d2)[$2] || 1, m3 = this.$d.getTime() + r2 * M3; + return b.w(m3, this); + }, m2.subtract = function(t3, e2) { + return this.add(-1 * t3, e2); + }, m2.format = function(t3) { + var e2 = this, n2 = this.$locale(); + if (!this.isValid()) + return n2.invalidDate || l; + var r2 = t3 || "YYYY-MM-DDTHH:mm:ssZ", i2 = b.z(this), s2 = this.$H, u2 = this.$m, a2 = this.$M, o2 = n2.weekdays, c2 = n2.months, f2 = n2.meridiem, h3 = function(t4, n3, i3, s3) { + return t4 && (t4[n3] || t4(e2, r2)) || i3[n3].slice(0, s3); + }, d2 = function(t4) { + return b.s(s2 % 12 || 12, t4, "0"); + }, $2 = f2 || function(t4, e3, n3) { + var r3 = t4 < 12 ? "AM" : "PM"; + return n3 ? r3.toLowerCase() : r3; + }; + return r2.replace(y, function(t4, r3) { + return r3 || function(t5) { + switch (t5) { + case "YY": + return String(e2.$y).slice(-2); + case "YYYY": + return b.s(e2.$y, 4, "0"); + case "M": + return a2 + 1; + case "MM": + return b.s(a2 + 1, 2, "0"); + case "MMM": + return h3(n2.monthsShort, a2, c2, 3); + case "MMMM": + return h3(c2, a2); + case "D": + return e2.$D; + case "DD": + return b.s(e2.$D, 2, "0"); + case "d": + return String(e2.$W); + case "dd": + return h3(n2.weekdaysMin, e2.$W, o2, 2); + case "ddd": + return h3(n2.weekdaysShort, e2.$W, o2, 3); + case "dddd": + return o2[e2.$W]; + case "H": + return String(s2); + case "HH": + return b.s(s2, 2, "0"); + case "h": + return d2(1); + case "hh": + return d2(2); + case "a": + return $2(s2, u2, true); + case "A": + return $2(s2, u2, false); + case "m": + return String(u2); + case "mm": + return b.s(u2, 2, "0"); + case "s": + return String(e2.$s); + case "ss": + return b.s(e2.$s, 2, "0"); + case "SSS": + return b.s(e2.$ms, 3, "0"); + case "Z": + return i2; + } + return null; + }(t4) || i2.replace(":", ""); + }); + }, m2.utcOffset = function() { + return 15 * -Math.round(this.$d.getTimezoneOffset() / 15); + }, m2.diff = function(r2, d2, l2) { + var $2, y2 = this, M3 = b.p(d2), m3 = O(r2), v2 = (m3.utcOffset() - this.utcOffset()) * e, g2 = this - m3, D2 = function() { + return b.m(y2, m3); + }; + switch (M3) { + case h2: + $2 = D2() / 12; + break; + case c: + $2 = D2(); + break; + case f: + $2 = D2() / 3; + break; + case o: + $2 = (g2 - v2) / 6048e5; + break; + case a: + $2 = (g2 - v2) / 864e5; + break; + case u: + $2 = g2 / n; + break; + case s: + $2 = g2 / e; + break; + case i: + $2 = g2 / t2; + break; + default: + $2 = g2; + } + return l2 ? $2 : b.a($2); + }, m2.daysInMonth = function() { + return this.endOf(c).$D; + }, m2.$locale = function() { + return D[this.$L]; + }, m2.locale = function(t3, e2) { + if (!t3) + return this.$L; + var n2 = this.clone(), r2 = w(t3, e2, true); + return r2 && (n2.$L = r2), n2; + }, m2.clone = function() { + return b.w(this.$d, this); + }, m2.toDate = function() { + return new Date(this.valueOf()); + }, m2.toJSON = function() { + return this.isValid() ? this.toISOString() : null; + }, m2.toISOString = function() { + return this.$d.toISOString(); + }, m2.toString = function() { + return this.$d.toUTCString(); + }, M2; + }(), k = _.prototype; + return O.prototype = k, [["$ms", r], ["$s", i], ["$m", s], ["$H", u], ["$W", a], ["$M", c], ["$y", h2], ["$D", d]].forEach(function(t3) { + k[t3[1]] = function(e2) { + return this.$g(e2, t3[0], t3[1]); + }; + }), O.extend = function(t3, e2) { + return t3.$i || (t3(e2, _, O), t3.$i = true), O; + }, O.locale = w, O.isDayjs = S, O.unix = function(t3) { + return O(1e3 * t3); + }, O.en = D[g], O.Ls = D, O.p = {}, O; + }); +})(dayjs_min); +var dayjs = dayjs_min.exports; +var INFINITY = 1 / 0, MAX_SAFE_INTEGER = 9007199254740991, MAX_INTEGER = 17976931348623157e292, NAN$1 = 0 / 0; +var funcTag = "[object Function]", genTag = "[object GeneratorFunction]", symbolTag$1 = "[object Symbol]"; +var reTrim$1 = /^\s+|\s+$/g; +var reIsBadHex$1 = /^[-+]0x[0-9a-f]+$/i; +var reIsBinary$1 = /^0b[01]+$/i; +var reIsOctal$1 = /^0o[0-7]+$/i; +var reIsUint = /^(?:0|[1-9]\d*)$/; +var freeParseInt$1 = parseInt; +var objectProto$1 = Object.prototype; +var objectToString$1 = objectProto$1.toString; +var nativeCeil = Math.ceil, nativeMax$1 = Math.max; +function baseSlice(array3, start, end) { + var index2 = -1, length = array3.length; + if (start < 0) { + start = -start > length ? 0 : length + start; + } + end = end > length ? length : end; + if (end < 0) { + end += length; + } + length = start > end ? 0 : end - start >>> 0; + start >>>= 0; + var result = Array(length); + while (++index2 < length) { + result[index2] = array3[index2 + start]; + } + return result; +} +function isIndex(value, length) { + length = length == null ? MAX_SAFE_INTEGER : length; + return !!length && (typeof value == "number" || reIsUint.test(value)) && (value > -1 && value % 1 == 0 && value < length); +} +function isIterateeCall(value, index2, object3) { + if (!isObject$1(object3)) { + return false; + } + var type2 = typeof index2; + if (type2 == "number" ? isArrayLike(object3) && isIndex(index2, object3.length) : type2 == "string" && index2 in object3) { + return eq(object3[index2], value); + } + return false; +} +function chunk(array3, size, guard) { + if (guard ? isIterateeCall(array3, size, guard) : size === void 0) { + size = 1; + } else { + size = nativeMax$1(toInteger(size), 0); + } + var length = array3 ? array3.length : 0; + if (!length || size < 1) { + return []; + } + var index2 = 0, resIndex = 0, result = Array(nativeCeil(length / size)); + while (index2 < length) { + result[resIndex++] = baseSlice(array3, index2, index2 += size); + } + return result; +} +function eq(value, other) { + return value === other || value !== value && other !== other; +} +function isArrayLike(value) { + return value != null && isLength(value.length) && !isFunction(value); +} +function isFunction(value) { + var tag = isObject$1(value) ? objectToString$1.call(value) : ""; + return tag == funcTag || tag == genTag; +} +function isLength(value) { + return typeof value == "number" && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; +} +function isObject$1(value) { + var type2 = typeof value; + return !!value && (type2 == "object" || type2 == "function"); +} +function isObjectLike$1(value) { + return !!value && typeof value == "object"; +} +function isSymbol$1(value) { + return typeof value == "symbol" || isObjectLike$1(value) && objectToString$1.call(value) == symbolTag$1; +} +function toFinite(value) { + if (!value) { + return value === 0 ? value : 0; + } + value = toNumber$1(value); + if (value === INFINITY || value === -INFINITY) { + var sign = value < 0 ? -1 : 1; + return sign * MAX_INTEGER; + } + return value === value ? value : 0; +} +function toInteger(value) { + var result = toFinite(value), remainder = result % 1; + return result === result ? remainder ? result - remainder : result : 0; +} +function toNumber$1(value) { + if (typeof value == "number") { + return value; + } + if (isSymbol$1(value)) { + return NAN$1; + } + if (isObject$1(value)) { + var other = typeof value.valueOf == "function" ? value.valueOf() : value; + value = isObject$1(other) ? other + "" : other; + } + if (typeof value != "string") { + return value === 0 ? value : +value; + } + value = value.replace(reTrim$1, ""); + var isBinary = reIsBinary$1.test(value); + return isBinary || reIsOctal$1.test(value) ? freeParseInt$1(value.slice(2), isBinary ? 2 : 8) : reIsBadHex$1.test(value) ? NAN$1 : +value; +} +var lodash_chunk = chunk; +var events = { + emits: ["on-cell-click", "on-cell-contextmenu"], + methods: { + handleCellClick(data) { + this.CalendarInstance.$emit("on-cell-click", data); + }, + handleCellContextmenu(data) { + this.CalendarInstance.$emit("on-cell-contextmenu", data); + } + } +}; +const _sfc_main$28 = { + name: "CalendarMonth", + mixins: [events], + inject: ["CalendarInstance"], + props: { + date: Object + }, + data() { + return { + firstDayOfWeek: this.CalendarInstance.firstDayOfWeek, + weekDays: this.CalendarInstance.locale.weekDays + }; + }, + computed: { + finalWeekDays() { + return this.weekDays.slice(this.firstDayOfWeek).concat(this.weekDays.slice(0, this.firstDayOfWeek)); + }, + days() { + let days = []; + const firstDate = dayjs(this.date.format("YYYY-MM-01")); + const firstDay = firstDate.day(); + const firstDayOfWeek = this.firstDayOfWeek; + const prevMonthDaysCount = firstDayOfWeek <= firstDay ? firstDay - firstDayOfWeek : 7 - (firstDayOfWeek - firstDay); + for (let i = 0; i < prevMonthDaysCount; i++) { + const day = firstDate.subtract(prevMonthDaysCount - i, "day"); + const date3 = { + text: day.format("YYYY-MM-DD"), + date: day.format("D"), + type: "prev" + }; + days.push(date3); + } + const daysInMonth2 = firstDate.daysInMonth(); + for (let i = 0; i < daysInMonth2; i++) { + const day = firstDate.add(i, "day"); + const date3 = { + text: day.format("YYYY-MM-DD"), + date: day.format("D"), + type: "current" + }; + days.push(date3); + } + const nextMonthDaysCount = 42 - days.length; + const nextMonthFirstDay = firstDate.add(1, "month"); + for (let i = 0; i < nextMonthDaysCount; i++) { + const day = nextMonthFirstDay.add(i, "day"); + const date3 = { + text: day.format("YYYY-MM-DD"), + date: day.format("D"), + type: "next" + }; + days.push(date3); + } + return days; + }, + chunkDays() { + return lodash_chunk(this.days, 7); + }, + dayStyles() { + let style2 = {}; + if (this.CalendarInstance.cellHeight !== 100) { + style2.height = `${this.CalendarInstance.cellHeight}px`; + } + return style2; + }, + currentDate() { + return this.date.format("YYYY-MM-DD"); + } + }, + methods: { + handleClickDate(date3) { + this.CalendarInstance.handleChangeDate(dayjs(date3)); + } + } +}; +const _hoisted_1$18 = { + class: "ivu-calendar-table", + cellspacing: "0", + cellpadding: "0" +}; +const _hoisted_2$J = ["onClick", "onContextmenu"]; +const _hoisted_3$z = ["onClick"]; +const _hoisted_4$s = { class: "ivu-calendar-table-day-title" }; +const _hoisted_5$k = { class: "ivu-calendar-table-day-slot" }; +function _sfc_render$1V(_ctx, _cache, $props, $setup, $data, $options) { + return openBlock(), createElementBlock("table", _hoisted_1$18, [ + createElementVNode("thead", null, [ + (openBlock(true), createElementBlock(Fragment, null, renderList($options.finalWeekDays, (item) => { + return openBlock(), createElementBlock("th", { key: item }, toDisplayString(item), 1); + }), 128)) + ]), + createElementVNode("tbody", null, [ + (openBlock(true), createElementBlock(Fragment, null, renderList($options.chunkDays, (item, index2) => { + return openBlock(), createElementBlock("tr", { key: index2 }, [ + (openBlock(true), createElementBlock(Fragment, null, renderList(item, (date3) => { + return openBlock(), createElementBlock("td", { + key: date3.text, + onClick: ($event) => _ctx.handleCellClick(date3), + onContextmenu: withModifiers(($event) => _ctx.handleCellContextmenu(date3), ["prevent"]) + }, [ + createElementVNode("div", { + class: normalizeClass(["ivu-calendar-table-day", { "ivu-calendar-table-day-other": date3.type !== "current", "ivu-calendar-table-day-current": date3.text === $options.currentDate }]), + style: normalizeStyle($options.dayStyles), + onClick: ($event) => $options.handleClickDate(date3.text) + }, [ + createElementVNode("div", _hoisted_4$s, toDisplayString(date3.date), 1), + createElementVNode("div", _hoisted_5$k, [ + renderSlot(_ctx.$slots, "month", { + date: new Date(date3.date), + data: { type: date3.type + "-month", day: date3.text, selected: date3.text === $options.currentDate } + }) + ]) + ], 14, _hoisted_3$z) + ], 40, _hoisted_2$J); + }), 128)) + ]); + }), 128)) + ]) + ]); +} +var CalendarMonth = /* @__PURE__ */ _export_sfc(_sfc_main$28, [["render", _sfc_render$1V]]); +const _sfc_main$27 = { + name: "CalendarYear", + mixins: [events], + inject: ["CalendarInstance"], + props: { + date: Object + }, + data() { + return {}; + }, + computed: { + months() { + let months = []; + const firstMonth = dayjs(this.date.format("YYYY-01-01")); + for (let i = 0; i < 12; i++) { + const day = firstMonth.add(i, "month"); + months.push({ + text: day.format("YYYY-MM"), + month: this.CalendarInstance.locale.months[i], + type: "current" + }); + } + return months; + }, + chunkMonths() { + return lodash_chunk(this.months, 3); + }, + dayStyles() { + let style2 = {}; + if (this.CalendarInstance.cellHeight !== 100) { + style2.height = `${this.CalendarInstance.cellHeight}px`; + } + return style2; + }, + currentMonth() { + return this.date.format("YYYY-MM"); + } + }, + methods: { + handleClickDate(date3) { + this.CalendarInstance.handleChangeDate(dayjs(date3)); + } + } +}; +const _hoisted_1$17 = { + class: "ivu-calendar-table ivu-calendar-table-year", + cellspacing: "0", + cellpadding: "0" +}; +const _hoisted_2$I = ["onClick", "onContextmenu"]; +const _hoisted_3$y = ["onClick"]; +const _hoisted_4$r = { class: "ivu-calendar-table-day-title" }; +const _hoisted_5$j = { class: "ivu-calendar-table-day-slot" }; +function _sfc_render$1U(_ctx, _cache, $props, $setup, $data, $options) { + return openBlock(), createElementBlock("table", _hoisted_1$17, [ + createElementVNode("tbody", null, [ + (openBlock(true), createElementBlock(Fragment, null, renderList($options.chunkMonths, (item, index2) => { + return openBlock(), createElementBlock("tr", { key: index2 }, [ + (openBlock(true), createElementBlock(Fragment, null, renderList(item, (month) => { + return openBlock(), createElementBlock("td", { + key: month.text, + onClick: ($event) => _ctx.handleCellClick(month), + onContextmenu: withModifiers(($event) => _ctx.handleCellContextmenu(month), ["prevent"]) + }, [ + createElementVNode("div", { + class: normalizeClass(["ivu-calendar-table-day", { "ivu-calendar-table-day-current": month.text === $options.currentMonth }]), + style: normalizeStyle($options.dayStyles), + onClick: ($event) => $options.handleClickDate(month.text) + }, [ + createElementVNode("div", _hoisted_4$r, toDisplayString(month.month), 1), + createElementVNode("div", _hoisted_5$j, [ + renderSlot(_ctx.$slots, "year", { + month: new Date(month.month), + data: { type: month.type + "-year", month: month.text, selected: month.text === $options.currentMonth } + }) + ]) + ], 14, _hoisted_3$y) + ], 40, _hoisted_2$I); + }), 128)) + ]); + }), 128)) + ]) + ]); +} +var CalendarYear = /* @__PURE__ */ _export_sfc(_sfc_main$27, [["render", _sfc_render$1U]]); +const _sfc_main$26 = { + name: "Calendar", + components: { CalendarMonth, CalendarYear, ButtonGroup, Button: _sfc_main$2c, RadioGroup, Radio, Icon }, + emits: ["on-type-change", "on-prev", "on-next", "on-today", "on-change", "update:modelValue", "on-cell-click", "on-cell-contextmenu"], + provide() { + return { + CalendarInstance: this + }; + }, + props: { + modelValue: { + type: [Date, String, Number] + }, + type: { + validator(value) { + return oneOf(value, ["month", "year"]); + }, + default: "month" + }, + cellHeight: { + type: Number, + default: 100 + }, + showHeader: { + type: Boolean, + default: true + }, + headerType: { + validator(value) { + return oneOf(value, ["simple", "full"]); + }, + default: "simple" + }, + firstDayOfWeek: { + validator(value) { + return oneOf(value, [1, 2, 3, 4, 5, 6, 7]); + }, + default: 1 + }, + hideType: { + type: Boolean, + default: false + }, + locale: { + type: Object, + default() { + return { + today: "\u4ECA\u5929", + type: { + month: "\u6708", + year: "\u5E74" + }, + weekDays: ["\u65E5", "\u4E00", "\u4E8C", "\u4E09", "\u56DB", "\u4E94", "\u516D"], + months: ["1\u6708", "2\u6708", "3\u6708", "4\u6708", "5\u6708", "6\u6708", "7\u6708", "8\u6708", "9\u6708", "10\u6708", "11\u6708", "12\u6708"] + }; + } + } + }, + data() { + const value = this.modelValue ? this.modelValue : new Date(); + return { + currentValue: dayjs(value), + mode: this.type + }; + }, + watch: { + modelValue(val) { + const value = val ? val : new Date(); + this.currentValue = dayjs(value); + }, + type(val) { + this.mode = val; + } + }, + computed: { + headerTitle() { + if (this.mode === "month") { + return this.currentValue.format("YYYY \u5E74 M \u6708"); + } else if (this.mode === "year") { + return this.currentValue.format("YYYY \u5E74"); + } + } + }, + methods: { + handleChangeType(type2) { + this.$emit("on-type-change", type2); + }, + handlePrev() { + const firstDate = this.currentValue.format("YYYY-MM-01"); + let prevDate; + if (this.mode === "month") { + prevDate = dayjs(firstDate).subtract(1, "month"); + } else if (this.mode === "year") { + prevDate = dayjs(firstDate).subtract(1, "year"); + } + this.handleChangeDate(prevDate); + this.$emit("on-prev"); + }, + handleNext() { + const firstDate = this.currentValue.format("YYYY-MM-01"); + let nextDate; + if (this.mode === "month") { + nextDate = dayjs(firstDate).add(1, "month"); + } else if (this.mode === "year") { + nextDate = dayjs(firstDate).add(1, "year"); + } + this.handleChangeDate(nextDate); + this.$emit("on-next"); + }, + handleToday() { + const nowDate = dayjs(new Date()); + const today = nowDate.format("YYYY-MM-DD"); + const currentValue = this.currentValue.format("YYYY-MM-DD"); + if (today !== currentValue) { + this.handleChangeDate(nowDate); + } + this.$emit("on-today"); + }, + handleChangeDate(val) { + this.currentValue = val; + const date3 = new Date(val.format("YYYY-MM-DD")); + this.$emit("update:modelValue", date3); + this.$emit("on-change", date3); + } + } +}; +const _hoisted_1$16 = { class: "ivu-calendar" }; +const _hoisted_2$H = { + key: 0, + class: "ivu-calendar-header" +}; +const _hoisted_3$x = { class: "ivu-calendar-header-title" }; +const _hoisted_4$q = { class: "ivu-calendar-header-action" }; +const _hoisted_5$i = { class: "ivu-calendar-body" }; +function _sfc_render$1T(_ctx, _cache, $props, $setup, $data, $options) { + const _component_Icon = resolveComponent("Icon"); + const _component_Button = resolveComponent("Button"); + const _component_ButtonGroup = resolveComponent("ButtonGroup"); + const _component_Radio = resolveComponent("Radio"); + const _component_RadioGroup = resolveComponent("RadioGroup"); + const _component_CalendarMonth = resolveComponent("CalendarMonth"); + const _component_CalendarYear = resolveComponent("CalendarYear"); + return openBlock(), createElementBlock("div", _hoisted_1$16, [ + $props.showHeader ? (openBlock(), createElementBlock("div", _hoisted_2$H, [ + renderSlot(_ctx.$slots, "header", {}, () => [ + createElementVNode("div", _hoisted_3$x, [ + renderSlot(_ctx.$slots, "headerTitle", {}, () => [ + createTextVNode(toDisplayString($options.headerTitle), 1) + ]) + ]), + createElementVNode("div", _hoisted_4$q, [ + $props.headerType === "simple" ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [ + createVNode(_component_ButtonGroup, null, { + default: withCtx(() => [ + createVNode(_component_Button, { onClick: $options.handlePrev }, { + default: withCtx(() => [ + createVNode(_component_Icon, { type: "ios-arrow-back" }) + ]), + _: 1 + }, 8, ["onClick"]), + createVNode(_component_Button, { onClick: $options.handleToday }, { + default: withCtx(() => [ + createTextVNode(toDisplayString($props.locale.today), 1) + ]), + _: 1 + }, 8, ["onClick"]), + createVNode(_component_Button, { onClick: $options.handleNext }, { + default: withCtx(() => [ + createVNode(_component_Icon, { type: "ios-arrow-forward" }) + ]), + _: 1 + }, 8, ["onClick"]) + ]), + _: 1 + }), + !$props.hideType ? (openBlock(), createBlock(_component_RadioGroup, { + key: 0, + modelValue: $data.mode, + "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => $data.mode = $event), + type: "button", + class: "ivu-ml", + onOnChange: $options.handleChangeType + }, { + default: withCtx(() => [ + createVNode(_component_Radio, { label: "month" }, { + default: withCtx(() => [ + createTextVNode(toDisplayString($props.locale.type.month), 1) + ]), + _: 1 + }), + createVNode(_component_Radio, { label: "year" }, { + default: withCtx(() => [ + createTextVNode(toDisplayString($props.locale.type.year), 1) + ]), + _: 1 + }) + ]), + _: 1 + }, 8, ["modelValue", "onOnChange"])) : createCommentVNode("", true) + ], 64)) : $props.headerType === "full" ? (openBlock(), createElementBlock(Fragment, { key: 1 }, [], 64)) : createCommentVNode("", true) + ]) + ]) + ])) : createCommentVNode("", true), + createElementVNode("div", _hoisted_5$i, [ + $data.mode === "month" ? (openBlock(), createBlock(_component_CalendarMonth, { + key: 0, + date: $data.currentValue + }, { + month: withCtx(({ date: date3, data }) => [ + renderSlot(_ctx.$slots, "month", { + date: date3, + data + }) + ]), + _: 3 + }, 8, ["date"])) : $data.mode === "year" ? (openBlock(), createBlock(_component_CalendarYear, { + key: 1, + date: $data.currentValue + }, { + year: withCtx(({ month, data }) => [ + renderSlot(_ctx.$slots, "year", { + month, + data + }) + ]), + _: 3 + }, 8, ["date"])) : createCommentVNode("", true) + ]) + ]); +} +var Calendar = /* @__PURE__ */ _export_sfc(_sfc_main$26, [["render", _sfc_render$1T]]); +const prefixCls$16 = "ivu-col"; +function parseFlex(flex) { + if (typeof flex === "number") { + return `${flex} ${flex} auto`; + } + if (/^\d+(\.\d+)?(px|em|rem|%)$/.test(flex)) { + return `0 0 ${flex}`; + } + return flex; +} +const _sfc_main$25 = { + name: "iCol", + inject: ["RowInstance"], + props: { + span: [Number, String], + order: [Number, String], + offset: [Number, String], + push: [Number, String], + pull: [Number, String], + className: String, + xs: [Number, Object], + sm: [Number, Object], + md: [Number, Object], + lg: [Number, Object], + xl: [Number, Object], + xxl: [Number, Object], + flex: { + type: [Number, String], + default: "" + } + }, + computed: { + gutter() { + return this.RowInstance.gutter; + }, + classes() { + let classList = [ + `${prefixCls$16}`, + { + [`${prefixCls$16}-span-${this.span}`]: this.span, + [`${prefixCls$16}-order-${this.order}`]: this.order, + [`${prefixCls$16}-offset-${this.offset}`]: this.offset, + [`${prefixCls$16}-push-${this.push}`]: this.push, + [`${prefixCls$16}-pull-${this.pull}`]: this.pull, + [`${this.className}`]: !!this.className + } + ]; + ["xs", "sm", "md", "lg", "xl", "xxl"].forEach((size) => { + if (typeof this[size] === "number") { + classList.push(`${prefixCls$16}-span-${size}-${this[size]}`); + } else if (typeof this[size] === "object") { + let props = this[size]; + Object.keys(props).forEach((prop2) => { + classList.push( + prop2 !== "span" ? `${prefixCls$16}-${size}-${prop2}-${props[prop2]}` : `${prefixCls$16}-span-${size}-${props[prop2]}` + ); + }); + } + }); + return classList; + }, + styles() { + let style2 = {}; + if (this.gutter !== 0) { + style2 = { + paddingLeft: this.gutter / 2 + "px", + paddingRight: this.gutter / 2 + "px" + }; + } + if (this.flex) { + style2.flex = parseFlex(this.flex); + } + return style2; + } + } +}; +function _sfc_render$1S(_ctx, _cache, $props, $setup, $data, $options) { + return openBlock(), createElementBlock("div", { + class: normalizeClass($options.classes), + style: normalizeStyle($options.styles) + }, [ + renderSlot(_ctx.$slots, "default") + ], 6); +} +var Col = /* @__PURE__ */ _export_sfc(_sfc_main$25, [["render", _sfc_render$1S]]); +const prefixCls$15 = "ivu-row"; +const _sfc_main$24 = { + name: "Row", + provide() { + return { + RowInstance: this + }; + }, + props: { + type: { + validator(value) { + return oneOf(value, ["flex"]); + } + }, + align: { + validator(value) { + return oneOf(value, ["top", "middle", "bottom"]); + } + }, + justify: { + validator(value) { + return oneOf(value, ["start", "end", "center", "space-around", "space-between"]); + } + }, + gutter: { + type: Number, + default: 0 + }, + className: String, + wrap: { + type: Boolean, + default: true + } + }, + computed: { + classes() { + return [ + `${prefixCls$15}`, + { + [`${prefixCls$15}-${this.type}`]: !!this.type, + [`${prefixCls$15}-${this.type}-${this.align}`]: !!this.align && this.type, + [`${prefixCls$15}-${this.type}-${this.justify}`]: !!this.justify && this.type, + [`${prefixCls$15}-${this.align}`]: !!this.align, + [`${prefixCls$15}-${this.justify}`]: !!this.justify, + [`${this.className}`]: !!this.className, + [`${prefixCls$15}-no-wrap`]: !this.wrap + } + ]; + }, + styles() { + let style2 = {}; + if (this.gutter !== 0) { + style2 = { + marginLeft: this.gutter / -2 + "px", + marginRight: this.gutter / -2 + "px" + }; + } + return style2; + } + } +}; +function _sfc_render$1R(_ctx, _cache, $props, $setup, $data, $options) { + return openBlock(), createElementBlock("div", { + class: normalizeClass($options.classes), + style: normalizeStyle($options.styles) + }, [ + renderSlot(_ctx.$slots, "default") + ], 6); +} +var Row = /* @__PURE__ */ _export_sfc(_sfc_main$24, [["render", _sfc_render$1R]]); +function _extends() { + _extends = Object.assign || function(target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i]; + for (var key2 in source) { + if (Object.prototype.hasOwnProperty.call(source, key2)) { + target[key2] = source[key2]; + } + } + } + return target; + }; + return _extends.apply(this, arguments); +} +function _inheritsLoose(subClass, superClass) { + subClass.prototype = Object.create(superClass.prototype); + subClass.prototype.constructor = subClass; + _setPrototypeOf(subClass, superClass); +} +function _getPrototypeOf(o) { + _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf2(o2) { + return o2.__proto__ || Object.getPrototypeOf(o2); + }; + return _getPrototypeOf(o); +} +function _setPrototypeOf(o, p) { + _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf2(o2, p2) { + o2.__proto__ = p2; + return o2; + }; + return _setPrototypeOf(o, p); +} +function _isNativeReflectConstruct() { + if (typeof Reflect === "undefined" || !Reflect.construct) + return false; + if (Reflect.construct.sham) + return false; + if (typeof Proxy === "function") + return true; + try { + Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() { + })); + return true; + } catch (e) { + return false; + } +} +function _construct(Parent, args, Class) { + if (_isNativeReflectConstruct()) { + _construct = Reflect.construct; + } else { + _construct = function _construct2(Parent2, args2, Class2) { + var a = [null]; + a.push.apply(a, args2); + var Constructor = Function.bind.apply(Parent2, a); + var instance = new Constructor(); + if (Class2) + _setPrototypeOf(instance, Class2.prototype); + return instance; + }; + } + return _construct.apply(null, arguments); +} +function _isNativeFunction(fn) { + return Function.toString.call(fn).indexOf("[native code]") !== -1; +} +function _wrapNativeSuper(Class) { + var _cache = typeof Map === "function" ? /* @__PURE__ */ new Map() : void 0; + _wrapNativeSuper = function _wrapNativeSuper2(Class2) { + if (Class2 === null || !_isNativeFunction(Class2)) + return Class2; + if (typeof Class2 !== "function") { + throw new TypeError("Super expression must either be null or a function"); + } + if (typeof _cache !== "undefined") { + if (_cache.has(Class2)) + return _cache.get(Class2); + _cache.set(Class2, Wrapper); + } + function Wrapper() { + return _construct(Class2, arguments, _getPrototypeOf(this).constructor); + } + Wrapper.prototype = Object.create(Class2.prototype, { + constructor: { + value: Wrapper, + enumerable: false, + writable: true, + configurable: true + } + }); + return _setPrototypeOf(Wrapper, Class2); + }; + return _wrapNativeSuper(Class); +} +var formatRegExp = /%[sdj%]/g; +var warning = function warning2() { +}; +if (typeof process !== "undefined" && process.env && false) { + warning = function warning3(type2, errors) { + if (typeof console !== "undefined" && console.warn) { + if (errors.every(function(e) { + return typeof e === "string"; + })) { + console.warn(type2, errors); + } + } + }; +} +function convertFieldsError(errors) { + if (!errors || !errors.length) + return null; + var fields = {}; + errors.forEach(function(error) { + var field = error.field; + fields[field] = fields[field] || []; + fields[field].push(error); + }); + return fields; +} +function format() { + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + var i = 1; + var f = args[0]; + var len = args.length; + if (typeof f === "function") { + return f.apply(null, args.slice(1)); + } + if (typeof f === "string") { + var str = String(f).replace(formatRegExp, function(x) { + if (x === "%%") { + return "%"; + } + if (i >= len) { + return x; + } + switch (x) { + case "%s": + return String(args[i++]); + case "%d": + return Number(args[i++]); + case "%j": + try { + return JSON.stringify(args[i++]); + } catch (_) { + return "[Circular]"; + } + break; + default: + return x; + } + }); + return str; + } + return f; +} +function isNativeStringType(type2) { + return type2 === "string" || type2 === "url" || type2 === "hex" || type2 === "email" || type2 === "date" || type2 === "pattern"; +} +function isEmptyValue(value, type2) { + if (value === void 0 || value === null) { + return true; + } + if (type2 === "array" && Array.isArray(value) && !value.length) { + return true; + } + if (isNativeStringType(type2) && typeof value === "string" && !value) { + return true; + } + return false; +} +function asyncParallelArray(arr, func, callback) { + var results = []; + var total = 0; + var arrLength = arr.length; + function count(errors) { + results.push.apply(results, errors); + total++; + if (total === arrLength) { + callback(results); + } + } + arr.forEach(function(a) { + func(a, count); + }); +} +function asyncSerialArray(arr, func, callback) { + var index2 = 0; + var arrLength = arr.length; + function next(errors) { + if (errors && errors.length) { + callback(errors); + return; + } + var original = index2; + index2 = index2 + 1; + if (original < arrLength) { + func(arr[original], next); + } else { + callback([]); + } + } + next([]); +} +function flattenObjArr(objArr) { + var ret = []; + Object.keys(objArr).forEach(function(k) { + ret.push.apply(ret, objArr[k]); + }); + return ret; +} +var AsyncValidationError = /* @__PURE__ */ function(_Error) { + _inheritsLoose(AsyncValidationError2, _Error); + function AsyncValidationError2(errors, fields) { + var _this; + _this = _Error.call(this, "Async Validation Error") || this; + _this.errors = errors; + _this.fields = fields; + return _this; + } + return AsyncValidationError2; +}(/* @__PURE__ */ _wrapNativeSuper(Error)); +function asyncMap(objArr, option, func, callback) { + if (option.first) { + var _pending = new Promise(function(resolve, reject) { + var next = function next2(errors) { + callback(errors); + return errors.length ? reject(new AsyncValidationError(errors, convertFieldsError(errors))) : resolve(); + }; + var flattenArr = flattenObjArr(objArr); + asyncSerialArray(flattenArr, func, next); + }); + _pending["catch"](function(e) { + return e; + }); + return _pending; + } + var firstFields = option.firstFields || []; + if (firstFields === true) { + firstFields = Object.keys(objArr); + } + var objArrKeys = Object.keys(objArr); + var objArrLength = objArrKeys.length; + var total = 0; + var results = []; + var pending = new Promise(function(resolve, reject) { + var next = function next2(errors) { + results.push.apply(results, errors); + total++; + if (total === objArrLength) { + callback(results); + return results.length ? reject(new AsyncValidationError(results, convertFieldsError(results))) : resolve(); + } + }; + if (!objArrKeys.length) { + callback(results); + resolve(); + } + objArrKeys.forEach(function(key2) { + var arr = objArr[key2]; + if (firstFields.indexOf(key2) !== -1) { + asyncSerialArray(arr, func, next); + } else { + asyncParallelArray(arr, func, next); + } + }); + }); + pending["catch"](function(e) { + return e; + }); + return pending; +} +function complementError(rule) { + return function(oe) { + if (oe && oe.message) { + oe.field = oe.field || rule.fullField; + return oe; + } + return { + message: typeof oe === "function" ? oe() : oe, + field: oe.field || rule.fullField + }; + }; +} +function deepMerge(target, source) { + if (source) { + for (var s in source) { + if (source.hasOwnProperty(s)) { + var value = source[s]; + if (typeof value === "object" && typeof target[s] === "object") { + target[s] = _extends({}, target[s], value); + } else { + target[s] = value; + } + } + } + } + return target; +} +function required(rule, value, source, errors, options, type2) { + if (rule.required && (!source.hasOwnProperty(rule.field) || isEmptyValue(value, type2 || rule.type))) { + errors.push(format(options.messages.required, rule.fullField)); + } +} +function whitespace(rule, value, source, errors, options) { + if (/^\s+$/.test(value) || value === "") { + errors.push(format(options.messages.whitespace, rule.fullField)); + } +} +var pattern = { + email: /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/, + url: new RegExp("^(?!mailto:)(?:(?:http|https|ftp)://|//)(?:\\S+(?::\\S*)?@)?(?:(?:(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[0-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u00a1-\\uffff0-9]+-*)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]+-*)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))|localhost)(?::\\d{2,5})?(?:(/|\\?|#)[^\\s]*)?$", "i"), + hex: /^#?([a-f0-9]{6}|[a-f0-9]{3})$/i +}; +var types = { + integer: function integer(value) { + return types.number(value) && parseInt(value, 10) === value; + }, + "float": function float(value) { + return types.number(value) && !types.integer(value); + }, + array: function array(value) { + return Array.isArray(value); + }, + regexp: function regexp(value) { + if (value instanceof RegExp) { + return true; + } + try { + return !!new RegExp(value); + } catch (e) { + return false; + } + }, + date: function date(value) { + return typeof value.getTime === "function" && typeof value.getMonth === "function" && typeof value.getYear === "function" && !isNaN(value.getTime()); + }, + number: function number(value) { + if (isNaN(value)) { + return false; + } + return typeof value === "number"; + }, + object: function object(value) { + return typeof value === "object" && !types.array(value); + }, + method: function method(value) { + return typeof value === "function"; + }, + email: function email(value) { + return typeof value === "string" && !!value.match(pattern.email) && value.length < 255; + }, + url: function url(value) { + return typeof value === "string" && !!value.match(pattern.url); + }, + hex: function hex(value) { + return typeof value === "string" && !!value.match(pattern.hex); + } +}; +function type(rule, value, source, errors, options) { + if (rule.required && value === void 0) { + required(rule, value, source, errors, options); + return; + } + var custom = ["integer", "float", "array", "regexp", "object", "method", "email", "number", "date", "url", "hex"]; + var ruleType = rule.type; + if (custom.indexOf(ruleType) > -1) { + if (!types[ruleType](value)) { + errors.push(format(options.messages.types[ruleType], rule.fullField, rule.type)); + } + } else if (ruleType && typeof value !== rule.type) { + errors.push(format(options.messages.types[ruleType], rule.fullField, rule.type)); + } +} +function range(rule, value, source, errors, options) { + var len = typeof rule.len === "number"; + var min = typeof rule.min === "number"; + var max = typeof rule.max === "number"; + var spRegexp = /[\uD800-\uDBFF][\uDC00-\uDFFF]/g; + var val = value; + var key2 = null; + var num = typeof value === "number"; + var str = typeof value === "string"; + var arr = Array.isArray(value); + if (num) { + key2 = "number"; + } else if (str) { + key2 = "string"; + } else if (arr) { + key2 = "array"; + } + if (!key2) { + return false; + } + if (arr) { + val = value.length; + } + if (str) { + val = value.replace(spRegexp, "_").length; + } + if (len) { + if (val !== rule.len) { + errors.push(format(options.messages[key2].len, rule.fullField, rule.len)); + } + } else if (min && !max && val < rule.min) { + errors.push(format(options.messages[key2].min, rule.fullField, rule.min)); + } else if (max && !min && val > rule.max) { + errors.push(format(options.messages[key2].max, rule.fullField, rule.max)); + } else if (min && max && (val < rule.min || val > rule.max)) { + errors.push(format(options.messages[key2].range, rule.fullField, rule.min, rule.max)); + } +} +var ENUM = "enum"; +function enumerable(rule, value, source, errors, options) { + rule[ENUM] = Array.isArray(rule[ENUM]) ? rule[ENUM] : []; + if (rule[ENUM].indexOf(value) === -1) { + errors.push(format(options.messages[ENUM], rule.fullField, rule[ENUM].join(", "))); + } +} +function pattern$1(rule, value, source, errors, options) { + if (rule.pattern) { + if (rule.pattern instanceof RegExp) { + rule.pattern.lastIndex = 0; + if (!rule.pattern.test(value)) { + errors.push(format(options.messages.pattern.mismatch, rule.fullField, value, rule.pattern)); + } + } else if (typeof rule.pattern === "string") { + var _pattern = new RegExp(rule.pattern); + if (!_pattern.test(value)) { + errors.push(format(options.messages.pattern.mismatch, rule.fullField, value, rule.pattern)); + } + } + } +} +var rules = { + required, + whitespace, + type, + range, + "enum": enumerable, + pattern: pattern$1 +}; +function string(rule, value, callback, source, options) { + var errors = []; + var validate2 = rule.required || !rule.required && source.hasOwnProperty(rule.field); + if (validate2) { + if (isEmptyValue(value, "string") && !rule.required) { + return callback(); + } + rules.required(rule, value, source, errors, options, "string"); + if (!isEmptyValue(value, "string")) { + rules.type(rule, value, source, errors, options); + rules.range(rule, value, source, errors, options); + rules.pattern(rule, value, source, errors, options); + if (rule.whitespace === true) { + rules.whitespace(rule, value, source, errors, options); + } + } + } + callback(errors); +} +function method2(rule, value, callback, source, options) { + var errors = []; + var validate2 = rule.required || !rule.required && source.hasOwnProperty(rule.field); + if (validate2) { + if (isEmptyValue(value) && !rule.required) { + return callback(); + } + rules.required(rule, value, source, errors, options); + if (value !== void 0) { + rules.type(rule, value, source, errors, options); + } + } + callback(errors); +} +function number2(rule, value, callback, source, options) { + var errors = []; + var validate2 = rule.required || !rule.required && source.hasOwnProperty(rule.field); + if (validate2) { + if (value === "") { + value = void 0; + } + if (isEmptyValue(value) && !rule.required) { + return callback(); + } + rules.required(rule, value, source, errors, options); + if (value !== void 0) { + rules.type(rule, value, source, errors, options); + rules.range(rule, value, source, errors, options); + } + } + callback(errors); +} +function _boolean(rule, value, callback, source, options) { + var errors = []; + var validate2 = rule.required || !rule.required && source.hasOwnProperty(rule.field); + if (validate2) { + if (isEmptyValue(value) && !rule.required) { + return callback(); + } + rules.required(rule, value, source, errors, options); + if (value !== void 0) { + rules.type(rule, value, source, errors, options); + } + } + callback(errors); +} +function regexp2(rule, value, callback, source, options) { + var errors = []; + var validate2 = rule.required || !rule.required && source.hasOwnProperty(rule.field); + if (validate2) { + if (isEmptyValue(value) && !rule.required) { + return callback(); + } + rules.required(rule, value, source, errors, options); + if (!isEmptyValue(value)) { + rules.type(rule, value, source, errors, options); + } + } + callback(errors); +} +function integer2(rule, value, callback, source, options) { + var errors = []; + var validate2 = rule.required || !rule.required && source.hasOwnProperty(rule.field); + if (validate2) { + if (isEmptyValue(value) && !rule.required) { + return callback(); + } + rules.required(rule, value, source, errors, options); + if (value !== void 0) { + rules.type(rule, value, source, errors, options); + rules.range(rule, value, source, errors, options); + } + } + callback(errors); +} +function floatFn(rule, value, callback, source, options) { + var errors = []; + var validate2 = rule.required || !rule.required && source.hasOwnProperty(rule.field); + if (validate2) { + if (isEmptyValue(value) && !rule.required) { + return callback(); + } + rules.required(rule, value, source, errors, options); + if (value !== void 0) { + rules.type(rule, value, source, errors, options); + rules.range(rule, value, source, errors, options); + } + } + callback(errors); +} +function array2(rule, value, callback, source, options) { + var errors = []; + var validate2 = rule.required || !rule.required && source.hasOwnProperty(rule.field); + if (validate2) { + if ((value === void 0 || value === null) && !rule.required) { + return callback(); + } + rules.required(rule, value, source, errors, options, "array"); + if (value !== void 0 && value !== null) { + rules.type(rule, value, source, errors, options); + rules.range(rule, value, source, errors, options); + } + } + callback(errors); +} +function object$1(rule, value, callback, source, options) { + var errors = []; + var validate2 = rule.required || !rule.required && source.hasOwnProperty(rule.field); + if (validate2) { + if (isEmptyValue(value) && !rule.required) { + return callback(); + } + rules.required(rule, value, source, errors, options); + if (value !== void 0) { + rules.type(rule, value, source, errors, options); + } + } + callback(errors); +} +var ENUM$1 = "enum"; +function enumerable$1(rule, value, callback, source, options) { + var errors = []; + var validate2 = rule.required || !rule.required && source.hasOwnProperty(rule.field); + if (validate2) { + if (isEmptyValue(value) && !rule.required) { + return callback(); + } + rules.required(rule, value, source, errors, options); + if (value !== void 0) { + rules[ENUM$1](rule, value, source, errors, options); + } + } + callback(errors); +} +function pattern$2(rule, value, callback, source, options) { + var errors = []; + var validate2 = rule.required || !rule.required && source.hasOwnProperty(rule.field); + if (validate2) { + if (isEmptyValue(value, "string") && !rule.required) { + return callback(); + } + rules.required(rule, value, source, errors, options); + if (!isEmptyValue(value, "string")) { + rules.pattern(rule, value, source, errors, options); + } + } + callback(errors); +} +function date2(rule, value, callback, source, options) { + var errors = []; + var validate2 = rule.required || !rule.required && source.hasOwnProperty(rule.field); + if (validate2) { + if (isEmptyValue(value, "date") && !rule.required) { + return callback(); + } + rules.required(rule, value, source, errors, options); + if (!isEmptyValue(value, "date")) { + var dateObject; + if (value instanceof Date) { + dateObject = value; + } else { + dateObject = new Date(value); + } + rules.type(rule, dateObject, source, errors, options); + if (dateObject) { + rules.range(rule, dateObject.getTime(), source, errors, options); + } + } + } + callback(errors); +} +function required$1(rule, value, callback, source, options) { + var errors = []; + var type2 = Array.isArray(value) ? "array" : typeof value; + rules.required(rule, value, source, errors, options, type2); + callback(errors); +} +function type$1(rule, value, callback, source, options) { + var ruleType = rule.type; + var errors = []; + var validate2 = rule.required || !rule.required && source.hasOwnProperty(rule.field); + if (validate2) { + if (isEmptyValue(value, ruleType) && !rule.required) { + return callback(); + } + rules.required(rule, value, source, errors, options, ruleType); + if (!isEmptyValue(value, ruleType)) { + rules.type(rule, value, source, errors, options); + } + } + callback(errors); +} +function any(rule, value, callback, source, options) { + var errors = []; + var validate2 = rule.required || !rule.required && source.hasOwnProperty(rule.field); + if (validate2) { + if (isEmptyValue(value) && !rule.required) { + return callback(); + } + rules.required(rule, value, source, errors, options); + } + callback(errors); +} +var validators = { + string, + method: method2, + number: number2, + "boolean": _boolean, + regexp: regexp2, + integer: integer2, + "float": floatFn, + array: array2, + object: object$1, + "enum": enumerable$1, + pattern: pattern$2, + date: date2, + url: type$1, + hex: type$1, + email: type$1, + required: required$1, + any +}; +function newMessages() { + return { + "default": "Validation error on field %s", + required: "%s is required", + "enum": "%s must be one of %s", + whitespace: "%s cannot be empty", + date: { + format: "%s date %s is invalid for format %s", + parse: "%s date could not be parsed, %s is invalid ", + invalid: "%s date %s is invalid" + }, + types: { + string: "%s is not a %s", + method: "%s is not a %s (function)", + array: "%s is not an %s", + object: "%s is not an %s", + number: "%s is not a %s", + date: "%s is not a %s", + "boolean": "%s is not a %s", + integer: "%s is not an %s", + "float": "%s is not a %s", + regexp: "%s is not a valid %s", + email: "%s is not a valid %s", + url: "%s is not a valid %s", + hex: "%s is not a valid %s" + }, + string: { + len: "%s must be exactly %s characters", + min: "%s must be at least %s characters", + max: "%s cannot be longer than %s characters", + range: "%s must be between %s and %s characters" + }, + number: { + len: "%s must equal %s", + min: "%s cannot be less than %s", + max: "%s cannot be greater than %s", + range: "%s must be between %s and %s" + }, + array: { + len: "%s must be exactly %s in length", + min: "%s cannot be less than %s in length", + max: "%s cannot be greater than %s in length", + range: "%s must be between %s and %s in length" + }, + pattern: { + mismatch: "%s value %s does not match pattern %s" + }, + clone: function clone2() { + var cloned = JSON.parse(JSON.stringify(this)); + cloned.clone = this.clone; + return cloned; + } + }; +} +var messages = newMessages(); +function Schema(descriptor) { + this.rules = null; + this._messages = messages; + this.define(descriptor); +} +Schema.prototype = { + messages: function messages2(_messages) { + if (_messages) { + this._messages = deepMerge(newMessages(), _messages); + } + return this._messages; + }, + define: function define(rules2) { + if (!rules2) { + throw new Error("Cannot configure a schema with no rules"); + } + if (typeof rules2 !== "object" || Array.isArray(rules2)) { + throw new Error("Rules must be an object"); + } + this.rules = {}; + var z; + var item; + for (z in rules2) { + if (rules2.hasOwnProperty(z)) { + item = rules2[z]; + this.rules[z] = Array.isArray(item) ? item : [item]; + } + } + }, + validate: function validate(source_, o, oc) { + var _this = this; + if (o === void 0) { + o = {}; + } + if (oc === void 0) { + oc = function oc2() { + }; + } + var source = source_; + var options = o; + var callback = oc; + if (typeof options === "function") { + callback = options; + options = {}; + } + if (!this.rules || Object.keys(this.rules).length === 0) { + if (callback) { + callback(); + } + return Promise.resolve(); + } + function complete(results) { + var i; + var errors = []; + var fields = {}; + function add(e) { + if (Array.isArray(e)) { + var _errors; + errors = (_errors = errors).concat.apply(_errors, e); + } else { + errors.push(e); + } + } + for (i = 0; i < results.length; i++) { + add(results[i]); + } + if (!errors.length) { + errors = null; + fields = null; + } else { + fields = convertFieldsError(errors); + } + callback(errors, fields); + } + if (options.messages) { + var messages$1 = this.messages(); + if (messages$1 === messages) { + messages$1 = newMessages(); + } + deepMerge(messages$1, options.messages); + options.messages = messages$1; + } else { + options.messages = this.messages(); + } + var arr; + var value; + var series = {}; + var keys = options.keys || Object.keys(this.rules); + keys.forEach(function(z) { + arr = _this.rules[z]; + value = source[z]; + arr.forEach(function(r) { + var rule = r; + if (typeof rule.transform === "function") { + if (source === source_) { + source = _extends({}, source); + } + value = source[z] = rule.transform(value); + } + if (typeof rule === "function") { + rule = { + validator: rule + }; + } else { + rule = _extends({}, rule); + } + rule.validator = _this.getValidationMethod(rule); + rule.field = z; + rule.fullField = rule.fullField || z; + rule.type = _this.getType(rule); + if (!rule.validator) { + return; + } + series[z] = series[z] || []; + series[z].push({ + rule, + value, + source, + field: z + }); + }); + }); + var errorFields = {}; + return asyncMap(series, options, function(data, doIt) { + var rule = data.rule; + var deep = (rule.type === "object" || rule.type === "array") && (typeof rule.fields === "object" || typeof rule.defaultField === "object"); + deep = deep && (rule.required || !rule.required && data.value); + rule.field = data.field; + function addFullfield(key2, schema) { + return _extends({}, schema, { + fullField: rule.fullField + "." + key2 + }); + } + function cb(e) { + if (e === void 0) { + e = []; + } + var errors = e; + if (!Array.isArray(errors)) { + errors = [errors]; + } + if (!options.suppressWarning && errors.length) { + Schema.warning("async-validator:", errors); + } + if (errors.length && rule.message !== void 0) { + errors = [].concat(rule.message); + } + errors = errors.map(complementError(rule)); + if (options.first && errors.length) { + errorFields[rule.field] = 1; + return doIt(errors); + } + if (!deep) { + doIt(errors); + } else { + if (rule.required && !data.value) { + if (rule.message !== void 0) { + errors = [].concat(rule.message).map(complementError(rule)); + } else if (options.error) { + errors = [options.error(rule, format(options.messages.required, rule.field))]; + } + return doIt(errors); + } + var fieldsSchema = {}; + if (rule.defaultField) { + for (var k in data.value) { + if (data.value.hasOwnProperty(k)) { + fieldsSchema[k] = rule.defaultField; + } + } + } + fieldsSchema = _extends({}, fieldsSchema, data.rule.fields); + for (var f in fieldsSchema) { + if (fieldsSchema.hasOwnProperty(f)) { + var fieldSchema = Array.isArray(fieldsSchema[f]) ? fieldsSchema[f] : [fieldsSchema[f]]; + fieldsSchema[f] = fieldSchema.map(addFullfield.bind(null, f)); + } + } + var schema = new Schema(fieldsSchema); + schema.messages(options.messages); + if (data.rule.options) { + data.rule.options.messages = options.messages; + data.rule.options.error = options.error; + } + schema.validate(data.value, data.rule.options || options, function(errs) { + var finalErrors = []; + if (errors && errors.length) { + finalErrors.push.apply(finalErrors, errors); + } + if (errs && errs.length) { + finalErrors.push.apply(finalErrors, errs); + } + doIt(finalErrors.length ? finalErrors : null); + }); + } + } + var res; + if (rule.asyncValidator) { + res = rule.asyncValidator(rule, data.value, cb, data.source, options); + } else if (rule.validator) { + res = rule.validator(rule, data.value, cb, data.source, options); + if (res === true) { + cb(); + } else if (res === false) { + cb(rule.message || rule.field + " fails"); + } else if (res instanceof Array) { + cb(res); + } else if (res instanceof Error) { + cb(res.message); + } + } + if (res && res.then) { + res.then(function() { + return cb(); + }, function(e) { + return cb(e); + }); + } + }, function(results) { + complete(results); + }); + }, + getType: function getType(rule) { + if (rule.type === void 0 && rule.pattern instanceof RegExp) { + rule.type = "pattern"; + } + if (typeof rule.validator !== "function" && rule.type && !validators.hasOwnProperty(rule.type)) { + throw new Error(format("Unknown rule type %s", rule.type)); + } + return rule.type || "string"; + }, + getValidationMethod: function getValidationMethod(rule) { + if (typeof rule.validator === "function") { + return rule.validator; + } + var keys = Object.keys(rule); + var messageIndex = keys.indexOf("message"); + if (messageIndex !== -1) { + keys.splice(messageIndex, 1); + } + if (keys.length === 1 && keys[0] === "required") { + return validators.required; + } + return validators[this.getType(rule)] || false; + } +}; +Schema.register = function register(type2, validator) { + if (typeof validator !== "function") { + throw new Error("Cannot register a validator by type, validator is not a function"); + } + validators[type2] = validator; +}; +Schema.warning = warning; +Schema.messages = messages; +Schema.validators = validators; +const prefixCls$14 = "ivu-form-item"; +function getPropByPath(obj, path) { + let tempObj = obj; + path = path.replace(/\[(\w+)\]/g, ".$1"); + path = path.replace(/^\./, ""); + let keyArr = path.split("."); + let i = 0; + for (let len = keyArr.length; i < len - 1; ++i) { + let key2 = keyArr[i]; + if (key2 in tempObj) { + tempObj = tempObj[key2]; + } else { + throw new Error("[View UI warn]: please transfer a valid prop path to form item!"); + } + } + return { + o: tempObj, + k: keyArr[i], + v: tempObj[keyArr[i]] + }; +} +const _sfc_main$23 = { + name: "FormItem", + inject: ["FormInstance"], + provide() { + return { + FormItemInstance: this + }; + }, + props: { + label: { + type: String, + default: "" + }, + labelWidth: { + type: Number + }, + prop: { + type: String + }, + required: { + type: Boolean, + default: false + }, + rules: { + type: [Object, Array] + }, + error: { + type: String + }, + validateStatus: { + type: Boolean + }, + showMessage: { + type: Boolean, + default: true + }, + labelFor: { + type: String + } + }, + data() { + return { + prefixCls: prefixCls$14, + isRequired: false, + validateState: "", + validateMessage: "", + validateDisabled: false, + validator: {} + }; + }, + watch: { + error: { + handler(val) { + this.validateMessage = val; + this.validateState = val ? "error" : ""; + }, + immediate: true + }, + validateStatus(val) { + this.validateState = val; + }, + rules() { + this.setRules(); + }, + required(n, o) { + this.isRequired = n; + if (o && !n) { + this.resetField(); + } + } + }, + computed: { + classes() { + return [ + `${prefixCls$14}`, + { + [`${prefixCls$14}-required`]: this.required || this.isRequired, + [`${prefixCls$14}-error`]: this.validateState === "error", + [`${prefixCls$14}-validating`]: this.validateState === "validating" + } + ]; + }, + fieldValue() { + const model = this.FormInstance.model; + if (!model || !this.prop) { + return; + } + let path = this.prop; + if (path.indexOf(":") !== -1) { + path = path.replace(/:/, "."); + } + return getPropByPath(model, path).v; + }, + labelStyles() { + let style2 = {}; + const labelWidth = this.labelWidth === 0 || this.labelWidth ? this.labelWidth : this.FormInstance.labelWidth; + if (labelWidth || labelWidth === 0) { + style2.width = `${labelWidth}px`; + } + return style2; + }, + contentStyles() { + let style2 = {}; + const labelWidth = this.labelWidth === 0 || this.labelWidth ? this.labelWidth : this.FormInstance.labelWidth; + if (labelWidth || labelWidth === 0) { + style2.marginLeft = `${labelWidth}px`; + } + return style2; + } + }, + methods: { + setRules() { + let rules2 = this.getRules(); + if (rules2.length && this.required) { + return; + } else if (rules2.length) { + rules2.every((rule) => { + this.isRequired = rule.required; + }); + } else if (this.required) { + this.isRequired = this.required; + } + }, + getRules() { + let formRules = this.FormInstance.rules; + const selfRules = this.rules; + formRules = formRules ? formRules[this.prop] : []; + return [].concat(selfRules || formRules || []); + }, + getFilteredRule(trigger) { + const rules2 = this.getRules(); + return rules2.filter((rule) => !rule.trigger || rule.trigger.indexOf(trigger) !== -1); + }, + validate(trigger, callback = function() { + }) { + let rules2 = this.getFilteredRule(trigger); + if (!rules2 || rules2.length === 0) { + if (!this.required) { + callback(); + return true; + } else { + rules2 = [{ required: true }]; + } + } + this.validateState = "validating"; + let descriptor = {}; + descriptor[this.prop] = rules2; + const validator = new Schema(descriptor); + let model = {}; + model[this.prop] = this.fieldValue; + validator.validate(model, { firstFields: true }, (errors) => { + this.validateState = !errors ? "success" : "error"; + this.validateMessage = errors ? errors[0].message : ""; + callback(this.validateMessage); + this.FormInstance && this.FormInstance.$emit("on-validate", this.prop, !errors, this.validateMessage || null); + }); + this.validateDisabled = false; + }, + resetField() { + this.validateState = ""; + this.validateMessage = ""; + let model = this.FormInstance.model; + let value = this.fieldValue; + let path = this.prop; + if (path.indexOf(":") !== -1) { + path = path.replace(/:/, "."); + } + let prop2 = getPropByPath(model, path); + if (Array.isArray(value) && this.initialValue !== null) { + this.validateDisabled = true; + prop2.o[prop2.k] = [].concat(this.initialValue); + } else { + this.validateDisabled = true; + prop2.o[prop2.k] = this.initialValue; + } + }, + onFieldBlur() { + this.validate("blur"); + }, + onFieldChange() { + if (this.validateDisabled) { + this.validateDisabled = false; + return; + } + this.validate("change"); + }, + formBlur() { + this.onFieldBlur(); + }, + formChange() { + this.onFieldChange(); + } + }, + mounted() { + if (this.prop) { + this.FormInstance.addField(this); + Object.defineProperty(this, "initialValue", { + value: this.fieldValue + }); + this.setRules(); + } + }, + beforeUnmount() { + this.FormInstance.removeField(this); + } +}; +const _hoisted_1$15 = ["for"]; +function _sfc_render$1Q(_ctx, _cache, $props, $setup, $data, $options) { + return openBlock(), createElementBlock("div", { + class: normalizeClass($options.classes) + }, [ + $props.label || _ctx.$slots.label ? (openBlock(), createElementBlock("label", { + key: 0, + class: normalizeClass([$data.prefixCls + "-label"]), + for: $props.labelFor, + style: normalizeStyle($options.labelStyles) + }, [ + renderSlot(_ctx.$slots, "label", {}, () => [ + createTextVNode(toDisplayString($props.label) + toDisplayString($options.FormInstance.colon), 1) + ]) + ], 14, _hoisted_1$15)) : createCommentVNode("", true), + createElementVNode("div", { + class: normalizeClass([$data.prefixCls + "-content"]), + style: normalizeStyle($options.contentStyles) + }, [ + renderSlot(_ctx.$slots, "default"), + createVNode(Transition, { name: "fade" }, { + default: withCtx(() => [ + $data.validateState === "error" && $props.showMessage && $options.FormInstance.showMessage ? (openBlock(), createElementBlock("div", { + key: 0, + class: normalizeClass([$data.prefixCls + "-error-tip"]) + }, toDisplayString($data.validateMessage), 3)) : createCommentVNode("", true) + ]), + _: 1 + }) + ], 6) + ], 2); +} +var FormItem = /* @__PURE__ */ _export_sfc(_sfc_main$23, [["render", _sfc_render$1Q]]); +var defaultValidateMessage = { + UserName: "\u8BF7\u8F93\u5165\u7528\u6237\u540D\uFF01", + Password: "\u8BF7\u8F93\u5165\u5BC6\u7801\uFF01", + Email: "\u8BF7\u8F93\u5165\u90AE\u7BB1\uFF01", + Mobile: "\u8BF7\u8F93\u5165\u624B\u673A\u53F7\u7801\uFF01", + Captcha: "\u8BF7\u8F93\u5165\u9A8C\u8BC1\u7801\uFF01" +}; +var LoginItem = { + inject: ["LoginInstance"], + emits: ["on-change"], + props: { + rules: { + type: [Object, Array], + default() { + const componentName = getCurrentInstance().type.name; + return [ + { + required: true, + message: defaultValidateMessage[componentName], + trigger: "change" + } + ]; + } + }, + value: { + type: String + }, + name: { + type: String, + required: true + }, + enterToSubmit: { + type: Boolean, + default: false + } + }, + data() { + return { + prop: "" + }; + }, + methods: { + handleChange(val) { + this.LoginInstance.formValidate[this.prop] = val; + this.$emit("on-change", val); + }, + handleEnter() { + if (this.enterToSubmit) + this.LoginInstance.handleSubmit(); + }, + handleSetValue() { + const $props = this.$props; + if ($props.value) { + this.LoginInstance.formValidate[this.prop] = $props.value; + } + }, + handleGetProps() { + const $props = this.$props; + let name2 = $props.name; + const defaultProps = { + prefix: this.prefix, + placeholder: this.placeholder, + type: this.type, + size: "large", + modelValue: this.LoginInstance.formValidate[this.prop] + }; + if (name2) + defaultProps.name = name2; + return Object.assign(defaultProps, this.$attrs); + } + }, + render() { + const finalProps = this.handleGetProps(); + const $input = h(Input, { + ...finalProps, + "onUpdate:modelValue": this.handleChange, + "onOn-enter": this.handleEnter + }); + const $formitem = h(FormItem, { + prop: this.prop, + rules: this.rules + }, () => [$input]); + return h("div", { + class: this.className + }, [$formitem]); + }, + created() { + const name2 = this.name; + const formValidate = Object.assign({}, this.LoginInstance.formValidate); + formValidate[name2] = ""; + this.LoginInstance.formValidate = formValidate; + this.prop = name2; + this.handleSetValue(); + } +}; +const _sfc_main$22 = { + name: "Captcha", + mixins: [LoginItem], + emits: ["on-get-captcha"], + props: { + field: { + type: [String, Array] + }, + countDown: { + type: Number, + default: 60 + }, + text: { + type: String + }, + unitText: { + type: String, + default: "\u79D2" + }, + beforeClick: Function + }, + data() { + return { + className: "ivu-login-captcha", + prefix: "ios-keypad-outline", + placeholder: "\u8BF7\u8F93\u5165\u9A8C\u8BC1\u7801", + type: "text", + buttonDisabled: false, + limitCountDown: 0 + }; + }, + methods: { + handleClickCaptcha() { + if (this.field) { + const fields = typeof this.field === "string" ? [this.field] : this.field; + this.LoginInstance.handleValidate(fields, (status) => { + if (status) + this.handleBeforeGetCaptcha(); + }); + } else { + this.handleBeforeGetCaptcha(); + } + }, + handleBeforeGetCaptcha() { + if (!this.beforeClick) { + return this.handleGetCaptcha(); + } + const before = this.beforeClick(); + if (before && before.then) { + before.then(() => { + this.handleGetCaptcha(); + }); + } else { + this.handleGetCaptcha(); + } + }, + handleGetCaptcha() { + if (this.countDown > 0) { + this.buttonDisabled = true; + this.limitCountDown = this.countDown; + this.handleCountDown(); + } + this.$emit("on-get-captcha", this.LoginInstance.formValidate[this.prop], JSON.parse(JSON.stringify(this.LoginInstance.formValidate))); + }, + handleCountDown() { + this.timer = setTimeout(() => { + this.limitCountDown--; + if (this.limitCountDown === 0) { + this.buttonDisabled = false; + clearTimeout(this.timer); + } else { + this.handleCountDown(); + } + }, 1e3); + } + }, + render() { + const $attrs = this.$attrs; + const finalProps = this.handleGetProps(); + const defaultButtonProps = { + size: "large", + type: "default", + long: true, + disabled: this.buttonDisabled + }; + if ("size" in $attrs) + defaultButtonProps.size = $attrs.size; + if ("button-type" in $attrs) + defaultButtonProps.type = $attrs["button-type"]; + let buttonSlot; + if (this.$slots.text) { + buttonSlot = this.$slots.text; + } else if (this.limitCountDown !== 0) { + buttonSlot = () => `${this.limitCountDown} ${this.unitText}`; + } else if (this.text) { + buttonSlot = () => this.text; + } else { + buttonSlot = () => "\u83B7\u53D6\u9A8C\u8BC1\u7801"; + } + const $button = h(_sfc_main$2c, { + ...defaultButtonProps, + onClick: this.handleClickCaptcha + }, buttonSlot); + const $input = h(Input, { + ...finalProps, + "onUpdate:modelValue": this.handleChange, + "onOn-enter": this.handleEnter + }); + const $colinput = h(Col, { + span: 16 + }, () => [$input]); + const $colbutton = h(Col, { + span: 8 + }, () => [$button]); + const $row = h(Row, { + gutter: 8 + }, () => [$colinput, $colbutton]); + const $formitem = h(FormItem, { + prop: this.prop, + rules: this.rules + }, () => [$row]); + return h("div", { + class: this.className + }, [$formitem]); + }, + beforeUnmount() { + if (this.timer) + clearTimeout(this.timer); + } +}; +const prefixCls$13 = "ivu-card"; +const defaultPadding = 16; +const _sfc_main$21 = { + name: "Card", + mixins: [mixinsLink], + components: { Icon }, + props: { + bordered: { + type: Boolean, + default: true + }, + disHover: { + type: Boolean, + default: false + }, + shadow: { + type: Boolean, + default: false + }, + padding: { + type: Number, + default: defaultPadding + }, + title: { + type: String + }, + icon: { + type: String + } + }, + data() { + return { + showHead: true, + showExtra: true + }; + }, + computed: { + classes() { + return [ + `${prefixCls$13}`, + { + [`${prefixCls$13}-bordered`]: this.bordered && !this.shadow, + [`${prefixCls$13}-dis-hover`]: this.disHover || this.shadow, + [`${prefixCls$13}-shadow`]: this.shadow + } + ]; + }, + headClasses() { + return `${prefixCls$13}-head`; + }, + extraClasses() { + return `${prefixCls$13}-extra`; + }, + bodyClasses() { + return `${prefixCls$13}-body`; + }, + bodyStyles() { + if (this.padding !== defaultPadding) { + return { + padding: `${this.padding}px` + }; + } else { + return ""; + } + }, + isHrefPattern() { + const { to } = this; + return !!to; + }, + tagName() { + const { isHrefPattern } = this; + return isHrefPattern ? "a" : "div"; + }, + tagProps() { + const { isHrefPattern } = this; + if (isHrefPattern) { + const { linkUrl, target } = this; + return { href: linkUrl, target }; + } else { + return {}; + } + } + }, + methods: { + handleClickLink(event) { + if (!this.isHrefPattern) + return; + const openInNewWindow = event.ctrlKey || event.metaKey; + this.handleCheckClick(event, openInNewWindow); + } + }, + mounted() { + this.showHead = this.title || this.$slots.title !== void 0; + this.showExtra = this.$slots.extra !== void 0; + } +}; +const _hoisted_1$14 = { key: 0 }; +function _sfc_render$1P(_ctx, _cache, $props, $setup, $data, $options) { + const _component_Icon = resolveComponent("Icon"); + return openBlock(), createBlock(resolveDynamicComponent($options.tagName), mergeProps({ class: $options.classes }, $options.tagProps, { onClick: $options.handleClickLink }), { + default: withCtx(() => [ + $data.showHead ? (openBlock(), createElementBlock("div", { + key: 0, + class: normalizeClass($options.headClasses) + }, [ + renderSlot(_ctx.$slots, "title", {}, () => [ + $props.title ? (openBlock(), createElementBlock("p", _hoisted_1$14, [ + $props.icon ? (openBlock(), createBlock(_component_Icon, { + key: 0, + type: $props.icon + }, null, 8, ["type"])) : createCommentVNode("", true), + createElementVNode("span", null, toDisplayString($props.title), 1) + ])) : createCommentVNode("", true) + ]) + ], 2)) : createCommentVNode("", true), + $data.showExtra ? (openBlock(), createElementBlock("div", { + key: 1, + class: normalizeClass($options.extraClasses) + }, [ + renderSlot(_ctx.$slots, "extra") + ], 2)) : createCommentVNode("", true), + createElementVNode("div", { + class: normalizeClass($options.bodyClasses), + style: normalizeStyle($options.bodyStyles) + }, [ + renderSlot(_ctx.$slots, "default") + ], 6) + ]), + _: 3 + }, 16, ["class", "onClick"]); +} +var Card = /* @__PURE__ */ _export_sfc(_sfc_main$21, [["render", _sfc_render$1P]]); +const prefixCls$12 = "ivu-carousel"; +const _sfc_main$20 = { + name: "Carousel", + provide() { + return { + CarouselInstance: this + }; + }, + components: { Icon }, + emits: ["on-change", "on-click", "update:modelValue"], + props: { + arrow: { + type: String, + default: "hover", + validator(value) { + return oneOf(value, ["hover", "always", "never"]); + } + }, + autoplay: { + type: Boolean, + default: false + }, + autoplaySpeed: { + type: Number, + default: 2e3 + }, + loop: { + type: Boolean, + default: false + }, + easing: { + type: String, + default: "ease" + }, + dots: { + type: String, + default: "inside", + validator(value) { + return oneOf(value, ["inside", "outside", "none"]); + } + }, + radiusDot: { + type: Boolean, + default: false + }, + trigger: { + type: String, + default: "click", + validator(value) { + return oneOf(value, ["click", "hover"]); + } + }, + modelValue: { + type: Number, + default: 0 + }, + height: { + type: [String, Number], + default: "auto", + validator(value) { + return value === "auto" || Object.prototype.toString.call(value) === "[object Number]"; + } + } + }, + data() { + return { + prefixCls: prefixCls$12, + listWidth: 0, + trackWidth: 0, + trackOffset: 0, + trackCopyOffset: 0, + showCopyTrack: false, + slides: [], + slideInstances: [], + timer: null, + ready: false, + currentIndex: this.modelValue, + trackIndex: this.modelValue, + copyTrackIndex: this.modelValue, + hideTrackPos: -1, + carouselItemList: [] + }; + }, + computed: { + classes() { + return [ + `${prefixCls$12}` + ]; + }, + trackStyles() { + const visibleStyle = this.trackIndex === -1 ? "hidden" : "visible"; + return { + width: `${this.trackWidth}px`, + transform: `translate3d(${-this.trackOffset}px, 0px, 0px)`, + transition: `transform 500ms ${this.easing}`, + visibility: visibleStyle + }; + }, + copyTrackStyles() { + return { + width: `${this.trackWidth}px`, + transform: `translate3d(${-this.trackCopyOffset}px, 0px, 0px)`, + transition: `transform 500ms ${this.easing}`, + position: "absolute" + }; + }, + arrowClasses() { + return [ + `${prefixCls$12}-arrow`, + `${prefixCls$12}-arrow-${this.arrow}` + ]; + }, + dotsClasses() { + return [ + `${prefixCls$12}-dots`, + `${prefixCls$12}-dots-${this.dots}` + ]; + } + }, + methods: { + findChild(cb) { + if (this.carouselItemList.length) { + this.carouselItemList.forEach((item) => { + cb(item.carouselItem); + }); + } + }, + initCopyTrackDom() { + nextTick(() => { + this.$refs.copyTrack.innerHTML = this.$refs.originTrack.innerHTML; + }); + }, + updateSlides(init) { + let slides = []; + let index2 = 1; + this.findChild((child) => { + slides.push({ + $el: child.$el + }); + child.index = index2++; + if (init) { + this.slideInstances.push(child); + } + }); + this.slides = slides; + this.updatePos(); + }, + updatePos() { + this.findChild((child) => { + child.width = this.listWidth; + child.height = typeof this.height === "number" ? `${this.height}px` : this.height; + }); + this.trackWidth = (this.slides.length || 0) * this.listWidth; + }, + slotChange() { + nextTick(() => { + this.slides = []; + this.slideInstances = []; + this.updateSlides(true, true); + this.updatePos(); + this.updateOffset(); + }); + }, + handleResize() { + this.listWidth = parseInt(getStyle(this.$el, "width")); + this.updatePos(); + this.updateOffset(); + }, + updateTrackPos(index2) { + if (this.showCopyTrack) { + this.trackIndex = index2; + } else { + this.copyTrackIndex = index2; + } + }, + updateTrackIndex(index2) { + if (this.showCopyTrack) { + this.copyTrackIndex = index2; + } else { + this.trackIndex = index2; + } + this.currentIndex = index2; + }, + add(offset) { + let slidesLen = this.slides.length; + if (this.loop) { + if (offset > 0) { + this.hideTrackPos = -1; + } else { + this.hideTrackPos = slidesLen; + } + this.updateTrackPos(this.hideTrackPos); + } + const oldIndex = this.showCopyTrack ? this.copyTrackIndex : this.trackIndex; + let index2 = oldIndex + offset; + while (index2 < 0) + index2 += slidesLen; + if ((offset > 0 && index2 === slidesLen || offset < 0 && index2 === slidesLen - 1) && this.loop) { + this.showCopyTrack = !this.showCopyTrack; + this.trackIndex += offset; + this.copyTrackIndex += offset; + } else { + if (!this.loop) + index2 = index2 % this.slides.length; + this.updateTrackIndex(index2); + } + this.currentIndex = index2 === this.slides.length ? 0 : index2; + this.$emit("on-change", oldIndex, this.currentIndex); + this.$emit("update:modelValue", this.currentIndex); + }, + arrowEvent(offset) { + this.setAutoplay(); + this.add(offset); + }, + dotsEvent(event, n) { + let curIndex = this.showCopyTrack ? this.copyTrackIndex : this.trackIndex; + const oldCurrentIndex = this.currentIndex; + if (event === this.trigger && curIndex !== n) { + this.updateTrackIndex(n); + this.$emit("on-change", oldCurrentIndex, this.currentIndex); + this.$emit("update:modelValue", n); + this.setAutoplay(); + } + }, + setAutoplay() { + if (!isClient) + return; + window.clearInterval(this.timer); + if (this.autoplay) { + this.timer = window.setInterval(() => { + this.add(1); + }, this.autoplaySpeed); + } + }, + updateOffset() { + nextTick(() => { + let ofs = this.copyTrackIndex > 0 ? -1 : 1; + this.trackOffset = this.trackIndex * this.listWidth; + this.trackCopyOffset = this.copyTrackIndex * this.listWidth + ofs; + }); + }, + handleClick(type2) { + this.$emit("on-click", this[type2]); + } + }, + watch: { + autoplay() { + this.setAutoplay(); + }, + autoplaySpeed() { + this.setAutoplay(); + }, + trackIndex() { + this.updateOffset(); + }, + copyTrackIndex() { + this.updateOffset(); + }, + height() { + this.updatePos(); + }, + modelValue(val) { + this.updateTrackIndex(val); + this.setAutoplay(); + } + }, + mounted() { + this.updateSlides(true); + this.handleResize(); + this.setAutoplay(); + on(window, "resize", this.handleResize); + }, + beforeUnmount() { + off(window, "resize", this.handleResize); + } +}; +const _hoisted_1$13 = ["onClick", "onMouseover"]; +function _sfc_render$1O(_ctx, _cache, $props, $setup, $data, $options) { + const _component_Icon = resolveComponent("Icon"); + return openBlock(), createElementBlock("div", { + class: normalizeClass($options.classes) + }, [ + createElementVNode("button", { + type: "button", + class: normalizeClass([$options.arrowClasses, "left"]), + onClick: _cache[0] || (_cache[0] = ($event) => $options.arrowEvent(-1)) + }, [ + createVNode(_component_Icon, { type: "ios-arrow-back" }) + ], 2), + createElementVNode("div", { + class: normalizeClass([$data.prefixCls + "-list"]) + }, [ + createElementVNode("div", { + class: normalizeClass([$data.prefixCls + "-track", $data.showCopyTrack ? "" : "higher"]), + style: normalizeStyle($options.trackStyles), + ref: "originTrack", + onClick: _cache[1] || (_cache[1] = ($event) => $options.handleClick("currentIndex")) + }, [ + renderSlot(_ctx.$slots, "default") + ], 6), + $props.loop ? (openBlock(), createElementBlock("div", { + key: 0, + class: normalizeClass([$data.prefixCls + "-track", $data.showCopyTrack ? "higher" : ""]), + style: normalizeStyle($options.copyTrackStyles), + ref: "copyTrack", + onClick: _cache[2] || (_cache[2] = ($event) => $options.handleClick("copyTrackIndex")) + }, null, 6)) : createCommentVNode("", true) + ], 2), + createElementVNode("button", { + type: "button", + class: normalizeClass([$options.arrowClasses, "right"]), + onClick: _cache[3] || (_cache[3] = ($event) => $options.arrowEvent(1)) + }, [ + createVNode(_component_Icon, { type: "ios-arrow-forward" }) + ], 2), + createElementVNode("ul", { + class: normalizeClass($options.dotsClasses) + }, [ + (openBlock(true), createElementBlock(Fragment, null, renderList($data.slides.length, (n) => { + return openBlock(), createElementBlock("li", { + key: n, + class: normalizeClass([n - 1 === $data.currentIndex ? $data.prefixCls + "-active" : ""]), + onClick: ($event) => $options.dotsEvent("click", n - 1), + onMouseover: ($event) => $options.dotsEvent("hover", n - 1) + }, [ + createElementVNode("button", { + type: "button", + class: normalizeClass([$props.radiusDot ? "radius" : ""]) + }, null, 2) + ], 42, _hoisted_1$13); + }), 128)) + ], 2) + ], 2); +} +var Carousel = /* @__PURE__ */ _export_sfc(_sfc_main$20, [["render", _sfc_render$1O]]); +const prefixCls$11 = "ivu-carousel-item"; +const _sfc_main$1$ = { + componentName: "carousel-item", + name: "CarouselItem", + inject: ["CarouselInstance"], + data() { + return { + prefixCls: prefixCls$11, + width: 0, + height: "auto", + left: 0, + id: random(6) + }; + }, + computed: { + styles() { + return { + width: `${this.width}px`, + height: `${this.height}`, + left: `${this.left}px` + }; + } + }, + watch: { + width(val) { + if (val && this.CarouselInstance.loop) { + nextTick(() => { + this.CarouselInstance.initCopyTrackDom(); + }); + } + }, + height(val) { + if (val && this.CarouselInstance.loop) { + nextTick(() => { + this.CarouselInstance.initCopyTrackDom(); + }); + } + } + }, + methods: { + addInstance() { + const root2 = this.CarouselInstance; + if (!root2.carouselItemList) + root2.carouselItemList = []; + root2.carouselItemList.push({ + id: this.id, + carouselItem: this + }); + }, + removeInstance() { + const root2 = this.CarouselInstance; + if (!root2.carouselItemList) + return; + const index2 = root2.carouselItemList.findIndex((item) => item.id === this.id); + root2.carouselItemList.splice(index2, 1); + } + }, + mounted() { + this.addInstance(); + this.CarouselInstance.slotChange(); + }, + beforeUnmount() { + this.removeInstance(); + this.CarouselInstance.slotChange(); + } +}; +function _sfc_render$1N(_ctx, _cache, $props, $setup, $data, $options) { + return openBlock(), createElementBlock("div", { + class: normalizeClass($data.prefixCls), + style: normalizeStyle($options.styles) + }, [ + renderSlot(_ctx.$slots, "default") + ], 6); +} +var CarouselItem = /* @__PURE__ */ _export_sfc(_sfc_main$1$, [["render", _sfc_render$1N]]); +const _sfc_main$1_ = { + name: "Casitem", + components: { Icon }, + mixins: [globalConfig], + props: { + data: Object, + prefixCls: String, + tmpItem: Object + }, + computed: { + classes() { + return [ + `${this.prefixCls}-menu-item`, + { + [`${this.prefixCls}-menu-item-active`]: this.tmpItem.value === this.data.value, + [`${this.prefixCls}-menu-item-disabled`]: this.data.disabled + } + ]; + }, + showArrow() { + return this.data.children && this.data.children.length || "loading" in this.data && !this.data.loading; + }, + showLoading() { + return "loading" in this.data && this.data.loading; + }, + arrowType() { + const config = this.globalConfig; + let type2 = "ios-arrow-forward"; + if (config) { + if (config.cascader.customItemArrow) { + type2 = ""; + } else if (config.cascader.itemArrow) { + type2 = config.cascader.itemArrow; + } + } + return type2; + }, + customArrowType() { + const config = this.globalConfig; + let type2 = ""; + if (config) { + if (config.cascader.customItemArrow) { + type2 = config.cascader.customItemArrow; + } + } + return type2; + }, + arrowSize() { + const config = this.globalConfig; + let size = ""; + if (config) { + if (config.cascader.itemArrowSize) { + size = config.cascader.itemArrowSize; + } + } + return size; + } + } +}; +const _hoisted_1$12 = { + key: 1, + class: "ivu-icon ivu-icon-ios-loading ivu-load-loop ivu-cascader-menu-item-loading" +}; +function _sfc_render$1M(_ctx, _cache, $props, $setup, $data, $options) { + const _component_Icon = resolveComponent("Icon"); + return openBlock(), createElementBlock("li", { + class: normalizeClass($options.classes) + }, [ + createTextVNode(toDisplayString($props.data.label) + " ", 1), + $options.showArrow ? (openBlock(), createBlock(_component_Icon, { + key: 0, + type: $options.arrowType, + custom: $options.customArrowType, + size: $options.arrowSize + }, null, 8, ["type", "custom", "size"])) : createCommentVNode("", true), + $options.showLoading ? (openBlock(), createElementBlock("i", _hoisted_1$12)) : createCommentVNode("", true) + ], 2); +} +var Casitem = /* @__PURE__ */ _export_sfc(_sfc_main$1_, [["render", _sfc_render$1M]]); +let key = 1; +const _sfc_main$1Z = { + name: "Caspanel", + components: { Casitem }, + inject: ["CascaderInstance"], + provide() { + return { + CaspanelInstance: this + }; + }, + props: { + data: { + type: Array, + default() { + return []; + } + }, + disabled: Boolean, + changeOnSelect: Boolean, + trigger: String, + prefixCls: String + }, + data() { + return { + tmpItem: {}, + result: [], + sublist: [], + id: random(6), + childCaspanelList: [] + }; + }, + watch: { + data() { + this.sublist = []; + } + }, + methods: { + handleClickItem(item) { + if (this.trigger !== "click" && item.children && item.children.length) + return; + this.handleTriggerItem(item, false, true); + }, + handleHoverItem(item) { + if (this.trigger !== "hover" || !item.children || !item.children.length) + return; + this.handleTriggerItem(item, false, true); + }, + handleTriggerItem(item, fromInit = false, fromUser = false) { + if (item.disabled) + return; + const cascader = findComponentUpward(this, "Cascader"); + if (item.loading !== void 0 && !item.children.length) { + if (cascader && cascader.loadData) { + cascader.loadData(item, () => { + if (fromUser) { + cascader.isLoadedChildren = true; + } + if (item.children.length) { + this.handleTriggerItem(item); + } + }); + return; + } + } + const backItem = this.getBaseItem(item); + if (this.changeOnSelect || (backItem.label !== this.tmpItem.label || backItem.value !== this.tmpItem.value) || backItem.label === this.tmpItem.label && backItem.value === this.tmpItem.value) { + this.tmpItem = backItem; + this.emitUpdate([backItem]); + } + if (item.children && item.children.length) { + this.sublist = item.children; + this.CascaderInstance.handleOnResultChange({ + lastValue: false, + changeOnSelect: this.changeOnSelect, + fromInit + }); + if (this.changeOnSelect) { + if (this.childCaspanelList.length) { + const Caspanel2 = this.childCaspanelList[0].caspanel; + Caspanel2.handleOnClear(true); + } + } + } else { + this.sublist = []; + this.CascaderInstance.handleOnResultChange({ + lastValue: true, + changeOnSelect: this.changeOnSelect, + fromInit + }); + } + if (cascader) { + cascader.$refs.drop.update(); + } + }, + updateResult(item) { + this.result = [this.tmpItem].concat(item); + this.emitUpdate(this.result); + }, + getBaseItem(item) { + let backItem = Object.assign({}, item); + if (backItem.children) { + delete backItem.children; + } + return backItem; + }, + emitUpdate(result) { + if (this.$parent.$options.name === "Caspanel") { + this.$parent.updateResult(result); + } else { + this.CascaderInstance.updateResult(result); + } + }, + getKey() { + return key++; + }, + handleOnFindSelected(params) { + const val = params.value; + let value = [...val]; + for (let i = 0; i < value.length; i++) { + for (let j = 0; j < this.data.length; j++) { + if (value[i] === this.data[j].value) { + this.handleTriggerItem(this.data[j], true); + value.splice(0, 1); + nextTick(() => { + if (this.childCaspanelList.length) { + const Caspanel2 = this.childCaspanelList[0].caspanel; + Caspanel2.handleOnFindSelected({ + value + }); + } + }); + return false; + } + } + } + }, + handleOnClear(deep = false) { + this.sublist = []; + this.tmpItem = {}; + if (deep) { + if (this.childCaspanelList.length) { + const Caspanel2 = this.childCaspanelList[0].caspanel; + Caspanel2.handleOnClear(true); + } + } + }, + addCaspanel() { + const root2 = this.CascaderInstance; + if (!root2.caspanelList) + root2.caspanelList = []; + root2.caspanelList.push({ + id: this.id, + caspanel: this + }); + const parentCaspanel = findComponentUpward(this, "Caspanel"); + if (parentCaspanel) { + if (!parentCaspanel.childCaspanelList) + parentCaspanel.childCaspanelList = []; + parentCaspanel.childCaspanelList.push({ + id: this.id, + caspanel: this + }); + } + }, + removeCaspanel() { + const root2 = this.CascaderInstance; + if (root2.caspanelList && root2.caspanelList.length) { + const index2 = root2.caspanelList.findIndex((item) => item.id === this.id); + root2.caspanelList.splice(index2, 1); + } + const parentCaspanel = findComponentUpward(this, "Caspanel"); + if (parentCaspanel) { + if (parentCaspanel.childCaspanelList && parentCaspanel.childCaspanelList.length) { + const index2 = parentCaspanel.childCaspanelList.findIndex((item) => item.id === this.id); + parentCaspanel.childCaspanelList.splice(index2, 1); + } + } + } + }, + mounted() { + this.addCaspanel(); + }, + beforeUnmount() { + this.removeCaspanel(); + } +}; +function _sfc_render$1L(_ctx, _cache, $props, $setup, $data, $options) { + const _component_Casitem = resolveComponent("Casitem"); + const _component_Caspanel = resolveComponent("Caspanel", true); + return openBlock(), createElementBlock("span", null, [ + $props.data && $props.data.length ? (openBlock(), createElementBlock("ul", { + key: 0, + class: normalizeClass([$props.prefixCls + "-menu"]) + }, [ + (openBlock(true), createElementBlock(Fragment, null, renderList($props.data, (item, index2) => { + return openBlock(), createBlock(_component_Casitem, { + key: index2, + "prefix-cls": $props.prefixCls, + data: item, + "tmp-item": $data.tmpItem, + onClick: withModifiers(($event) => $options.handleClickItem(item), ["stop"]), + onMouseenter: withModifiers(($event) => $options.handleHoverItem(item), ["stop"]) + }, null, 8, ["prefix-cls", "data", "tmp-item", "onClick", "onMouseenter"]); + }), 128)) + ], 2)) : createCommentVNode("", true), + $data.sublist && $data.sublist.length ? (openBlock(), createBlock(_component_Caspanel, { + key: 1, + "prefix-cls": $props.prefixCls, + data: $data.sublist, + disabled: $props.disabled, + trigger: $props.trigger, + "change-on-select": $props.changeOnSelect + }, null, 8, ["prefix-cls", "data", "disabled", "trigger", "change-on-select"])) : createCommentVNode("", true) + ]); +} +var Caspanel = /* @__PURE__ */ _export_sfc(_sfc_main$1Z, [["render", _sfc_render$1L]]); +var clickOutside = { + beforeMount(el, binding, vnode) { + function documentHandler(e) { + if (el.contains(e.target)) { + return false; + } + binding.value(e); + } + el.__vueClickOutside__ = documentHandler; + isClient && document.addEventListener("click", documentHandler); + }, + unmounted(el, binding) { + isClient && document.removeEventListener("click", el.__vueClickOutside__); + delete el.__vueClickOutside__; + } +}; +const prefixCls$10 = "ivu-cascader"; +const selectPrefixCls = "ivu-select"; +const _sfc_main$1Y = { + name: "Cascader", + mixins: [Locale, mixinsForm, globalConfig], + components: { iInput: Input, Drop, Icon, Caspanel }, + directives: { clickOutside }, + emits: ["on-change", "on-visible-change", "update:modelValue"], + provide() { + return { + CascaderInstance: this + }; + }, + props: { + data: { + type: Array, + default() { + return []; + } + }, + modelValue: { + type: Array, + default() { + return []; + } + }, + disabled: { + type: Boolean, + default: false + }, + clearable: { + type: Boolean, + default: true + }, + placeholder: { + type: String + }, + size: { + validator(value) { + return oneOf(value, ["small", "large", "default"]); + }, + default() { + const global2 = getCurrentInstance().appContext.config.globalProperties; + return !global2.$VIEWUI || global2.$VIEWUI.size === "" ? "default" : global2.$VIEWUI.size; + } + }, + trigger: { + validator(value) { + return oneOf(value, ["click", "hover"]); + }, + default: "click" + }, + changeOnSelect: { + type: Boolean, + default: false + }, + renderFormat: { + type: Function, + default(label) { + return label.join(" / "); + } + }, + loadData: { + type: Function + }, + filterable: { + type: Boolean, + default: false + }, + notFoundText: { + type: String + }, + transfer: { + type: Boolean, + default() { + const global2 = getCurrentInstance().appContext.config.globalProperties; + return !global2.$VIEWUI || global2.$VIEWUI.transfer === "" ? false : global2.$VIEWUI.transfer; + } + }, + name: { + type: String + }, + elementId: { + type: String + }, + capture: { + type: Boolean, + default() { + const global2 = getCurrentInstance().appContext.config.globalProperties; + return !global2.$VIEWUI ? true : global2.$VIEWUI.capture; + } + }, + transferClassName: { + type: String + }, + eventsEnabled: { + type: Boolean, + default: false + } + }, + data() { + return { + prefixCls: prefixCls$10, + selectPrefixCls, + visible: false, + selected: [], + tmpSelected: [], + updatingValue: false, + currentValue: this.modelValue || [], + query: "", + validDataStr: "", + isLoadedChildren: false, + isValueNull: false, + caspanelList: [] + }; + }, + computed: { + classes() { + return [ + `${prefixCls$10}`, + { + [`${prefixCls$10}-show-clear`]: this.showCloseIcon, + [`${prefixCls$10}-size-${this.size}`]: !!this.size, + [`${prefixCls$10}-visible`]: this.visible, + [`${prefixCls$10}-disabled`]: this.itemDisabled, + [`${prefixCls$10}-not-found`]: this.filterable && this.query !== "" && !this.querySelections.length + } + ]; + }, + showCloseIcon() { + return this.currentValue && this.currentValue.length && this.clearable && !this.itemDisabled; + }, + displayRender() { + let label = []; + for (let i = 0; i < this.selected.length; i++) { + label.push(this.selected[i].label); + } + return this.renderFormat(label, this.selected); + }, + displayInputRender() { + return this.filterable ? "" : this.displayRender; + }, + localePlaceholder() { + if (this.placeholder === void 0) { + return this.t("i.select.placeholder"); + } else { + return this.placeholder; + } + }, + inputPlaceholder() { + return this.filterable && this.currentValue.length ? null : this.localePlaceholder; + }, + localeNotFoundText() { + if (this.notFoundText === void 0) { + return this.t("i.select.noMatch"); + } else { + return this.notFoundText; + } + }, + querySelections() { + let selections = []; + function getSelections(arr, label, value) { + const cloneArr = deepCopy(arr); + for (let i = 0; i < cloneArr.length; i++) { + let item = cloneArr[i]; + item.__label = label ? label + " / " + item.label : item.label; + item.__value = value ? value + "," + item.value : item.value; + if (item.children && item.children.length) { + getSelections(item.children, item.__label, item.__value); + delete item.__label; + delete item.__value; + } else { + selections.push({ + label: item.__label, + value: item.__value, + display: item.__label, + item, + disabled: !!item.disabled + }); + } + } + } + getSelections(this.data); + selections = selections.filter((item) => { + return item.label ? item.label.indexOf(this.query) > -1 : false; + }).map((item) => { + item.display = item.display.replace(new RegExp(this.query, "g"), `${this.query}`); + return item; + }); + return selections; + }, + arrowType() { + const config = this.globalConfig; + let type2 = "ios-arrow-down"; + if (config) { + if (config.cascader.customArrow) { + type2 = ""; + } else if (config.cascader.arrow) { + type2 = config.cascader.arrow; + } + } + return type2; + }, + customArrowType() { + const config = this.globalConfig; + let type2 = ""; + if (config) { + if (config.cascader.customArrow) { + type2 = config.cascader.customArrow; + } + } + return type2; + }, + arrowSize() { + const config = this.globalConfig; + let size = ""; + if (config) { + if (config.cascader.arrowSize) { + size = config.cascader.arrowSize; + } + } + return size; + }, + dropdownCls() { + return { + [prefixCls$10 + "-transfer"]: this.transfer, + [this.transferClassName]: this.transferClassName + }; + } + }, + methods: { + clearSelect() { + if (this.itemDisabled) + return false; + const oldVal = JSON.stringify(this.currentValue); + this.currentValue = this.selected = this.tmpSelected = []; + this.handleClose(); + this.emitValue(this.currentValue, oldVal); + this.caspanelList.forEach((item) => { + item.caspanel.handleOnClear(); + }); + }, + handleClose() { + this.visible = false; + }, + toggleOpen() { + if (this.itemDisabled) + return false; + if (this.visible) { + if (!this.filterable) + this.handleClose(); + } else { + this.onFocus(); + } + }, + onFocus() { + this.visible = true; + if (!this.currentValue.length) { + this.caspanelList.forEach((item) => { + item.caspanel.handleOnClear(); + }); + } + }, + updateResult(result) { + this.tmpSelected = result; + }, + updateSelected(init = false, changeOnSelectDataChange = false) { + if (!this.changeOnSelect || init || changeOnSelectDataChange) { + this.caspanelList.forEach((item) => { + item.caspanel.handleOnFindSelected({ + value: this.currentValue + }); + }); + } + }, + emitValue(val, oldVal) { + if (JSON.stringify(val) !== oldVal) { + this.$emit("on-change", this.currentValue, JSON.parse(JSON.stringify(this.selected))); + nextTick(() => { + this.handleFormItemChange("change", { + value: this.currentValue, + selected: JSON.parse(JSON.stringify(this.selected)) + }); + }); + } + }, + handleInput(event) { + this.query = event.target.value; + }, + handleSelectItem(index2) { + const item = this.querySelections[index2]; + if (item.item.disabled) + return false; + this.query = ""; + this.$refs.input.currentValue = ""; + const oldVal = JSON.stringify(this.currentValue); + this.currentValue = item.value.split(","); + setTimeout(() => { + this.emitValue(this.currentValue, oldVal); + this.handleClose(); + }, 0); + }, + handleFocus() { + this.$refs.input.focus(); + }, + getValidData(data) { + const cloneData = deepCopy(data); + function deleteData(item) { + const new_item = Object.assign({}, item); + if ("loading" in new_item) { + delete new_item.loading; + } + if ("__value" in new_item) { + delete new_item.__value; + } + if ("__label" in new_item) { + delete new_item.__label; + } + if ("children" in new_item && new_item.children.length) { + new_item.children = new_item.children.map((i) => deleteData(i)); + } + return new_item; + } + return cloneData.map((item) => deleteData(item)); + }, + handleOnResultChange(params) { + const lastValue = params.lastValue; + const changeOnSelect = params.changeOnSelect; + const fromInit = params.fromInit; + if (lastValue || changeOnSelect) { + const oldVal = JSON.stringify(this.currentValue); + this.selected = this.tmpSelected; + let newVal = []; + this.selected.forEach((item) => { + newVal.push(item.value); + }); + if (!fromInit) { + this.updatingValue = true; + this.currentValue = newVal; + this.emitValue(this.currentValue, oldVal); + } + } + if (lastValue && !fromInit) { + this.handleClose(); + } + } + }, + created() { + this.validDataStr = JSON.stringify(this.getValidData(this.data)); + }, + mounted() { + this.updateSelected(true); + }, + watch: { + visible(val) { + if (val) { + if (this.currentValue.length) { + this.updateSelected(); + } + if (this.transfer) { + this.$refs.drop.update(); + } + this.$refs.drop.handleOnUpdatePopper(); + } else { + if (this.filterable) { + this.query = ""; + this.$refs.input.currentValue = ""; + } + if (this.transfer) { + this.$refs.drop.destroy(); + } + this.$refs.drop.handleOnDestroyPopper(); + } + this.$emit("on-visible-change", val); + }, + modelValue(val) { + if (val === null) + this.isValueNull = true; + this.currentValue = val || []; + if (val === null || !val.length) + this.selected = []; + }, + currentValue() { + if (this.isValueNull) { + this.isValueNull = false; + this.$emit("update:modelValue", null); + } else { + this.$emit("update:modelValue", this.currentValue); + } + if (this.updatingValue) { + this.updatingValue = false; + return; + } + this.updateSelected(true); + }, + data: { + deep: true, + handler() { + const validDataStr = JSON.stringify(this.getValidData(this.data)); + if (validDataStr !== this.validDataStr) { + this.validDataStr = validDataStr; + if (!this.isLoadedChildren) { + nextTick(() => this.updateSelected(false, this.changeOnSelect)); + } + this.isLoadedChildren = false; + } + } + } + } +}; +const _hoisted_1$11 = ["name", "value"]; +const _hoisted_2$G = ["onClick", "innerHTML"]; +function _sfc_render$1K(_ctx, _cache, $props, $setup, $data, $options) { + const _component_i_input = resolveComponent("i-input"); + const _component_Icon = resolveComponent("Icon"); + const _component_Caspanel = resolveComponent("Caspanel"); + const _component_Drop = resolveComponent("Drop"); + const _directive_click_outside = resolveDirective("click-outside"); + return withDirectives((openBlock(), createElementBlock("div", { + class: normalizeClass($options.classes) + }, [ + createElementVNode("div", { + class: normalizeClass([$data.prefixCls + "-rel"]), + onClick: _cache[1] || (_cache[1] = (...args) => $options.toggleOpen && $options.toggleOpen(...args)), + ref: "reference" + }, [ + createElementVNode("input", { + type: "hidden", + name: $props.name, + value: $data.currentValue + }, null, 8, _hoisted_1$11), + renderSlot(_ctx.$slots, "default", {}, () => [ + createVNode(_component_i_input, { + "element-id": $props.elementId, + ref: "input", + readonly: !$props.filterable, + disabled: _ctx.itemDisabled, + modelValue: $options.displayInputRender, + onOnChange: $options.handleInput, + size: $props.size, + placeholder: $options.inputPlaceholder + }, null, 8, ["element-id", "readonly", "disabled", "modelValue", "onOnChange", "size", "placeholder"]), + withDirectives(createElementVNode("div", { + class: normalizeClass([$data.prefixCls + "-label"]), + onClick: _cache[0] || (_cache[0] = (...args) => $options.handleFocus && $options.handleFocus(...args)) + }, toDisplayString($options.displayRender), 3), [ + [vShow, $props.filterable && $data.query === ""] + ]), + withDirectives(createVNode(_component_Icon, { + type: "ios-close-circle", + class: normalizeClass([$data.prefixCls + "-arrow"]), + onClick: withModifiers($options.clearSelect, ["stop"]) + }, null, 8, ["class", "onClick"]), [ + [vShow, $options.showCloseIcon] + ]), + createVNode(_component_Icon, { + type: $options.arrowType, + custom: $options.customArrowType, + size: $options.arrowSize, + class: normalizeClass([$data.prefixCls + "-arrow"]) + }, null, 8, ["type", "custom", "size", "class"]) + ]) + ], 2), + createVNode(_component_Drop, { + ref: "drop", + visible: $data.visible, + classes: $options.dropdownCls, + eventsEnabled: $props.eventsEnabled, + "transition-name": "transition-drop", + transfer: $props.transfer + }, { + default: withCtx(() => [ + createElementVNode("div", null, [ + withDirectives(createVNode(_component_Caspanel, { + ref: "caspanel", + "prefix-cls": $data.prefixCls, + data: $props.data, + disabled: _ctx.itemDisabled, + "change-on-select": $props.changeOnSelect, + trigger: $props.trigger + }, null, 8, ["prefix-cls", "data", "disabled", "change-on-select", "trigger"]), [ + [vShow, !$props.filterable || $props.filterable && $data.query === ""] + ]), + withDirectives(createElementVNode("div", { + class: normalizeClass([$data.prefixCls + "-dropdown"]) + }, [ + createElementVNode("ul", { + class: normalizeClass([$data.selectPrefixCls + "-dropdown-list"]) + }, [ + (openBlock(true), createElementBlock(Fragment, null, renderList($options.querySelections, (item, index2) => { + return openBlock(), createElementBlock("li", { + class: normalizeClass([$data.selectPrefixCls + "-item", { + [$data.selectPrefixCls + "-item-disabled"]: item.disabled + }]), + key: index2, + onClick: ($event) => $options.handleSelectItem(index2), + innerHTML: item.display + }, null, 10, _hoisted_2$G); + }), 128)) + ], 2) + ], 2), [ + [vShow, $props.filterable && $data.query !== "" && $options.querySelections.length] + ]), + withDirectives(createElementVNode("ul", { + class: normalizeClass([$data.prefixCls + "-not-found-tip"]) + }, [ + createElementVNode("li", null, toDisplayString($options.localeNotFoundText), 1) + ], 2), [ + [vShow, $props.filterable && $data.query !== "" && !$options.querySelections.length || !$props.data.length] + ]) + ]) + ]), + _: 1 + }, 8, ["visible", "classes", "eventsEnabled", "transfer"]) + ], 2)), [ + [_directive_click_outside, $options.handleClose] + ]); +} +var Cascader = /* @__PURE__ */ _export_sfc(_sfc_main$1Y, [["render", _sfc_render$1K]]); +const _sfc_main$1X = { + name: "CellItem", + props: { + title: { + type: String, + default: "" + }, + label: { + type: String, + default: "" + }, + extra: { + type: String, + default: "" + } + } +}; +const _hoisted_1$10 = { class: "ivu-cell-item" }; +const _hoisted_2$F = { class: "ivu-cell-icon" }; +const _hoisted_3$w = { class: "ivu-cell-main" }; +const _hoisted_4$p = { class: "ivu-cell-title" }; +const _hoisted_5$h = { class: "ivu-cell-label" }; +const _hoisted_6$9 = { class: "ivu-cell-footer" }; +const _hoisted_7$7 = { class: "ivu-cell-extra" }; +function _sfc_render$1J(_ctx, _cache, $props, $setup, $data, $options) { + return openBlock(), createElementBlock("div", _hoisted_1$10, [ + createElementVNode("div", _hoisted_2$F, [ + renderSlot(_ctx.$slots, "icon") + ]), + createElementVNode("div", _hoisted_3$w, [ + createElementVNode("div", _hoisted_4$p, [ + renderSlot(_ctx.$slots, "default", {}, () => [ + createTextVNode(toDisplayString($props.title), 1) + ]) + ]), + createElementVNode("div", _hoisted_5$h, [ + renderSlot(_ctx.$slots, "label", {}, () => [ + createTextVNode(toDisplayString($props.label), 1) + ]) + ]) + ]), + createElementVNode("div", _hoisted_6$9, [ + createElementVNode("span", _hoisted_7$7, [ + renderSlot(_ctx.$slots, "extra", {}, () => [ + createTextVNode(toDisplayString($props.extra), 1) + ]) + ]) + ]) + ]); +} +var CellItem = /* @__PURE__ */ _export_sfc(_sfc_main$1X, [["render", _sfc_render$1J]]); +const prefixCls$$ = "ivu-cell"; +const _sfc_main$1W = { + name: "Cell", + inject: ["CellGroupInstance"], + mixins: [mixinsLink, globalConfig], + components: { CellItem, Icon }, + props: { + name: { + type: [String, Number] + }, + title: { + type: String, + default: "" + }, + label: { + type: String, + default: "" + }, + extra: { + type: String, + default: "" + }, + disabled: { + type: Boolean, + default: false + }, + selected: { + type: Boolean, + default: false + } + }, + data() { + return { + prefixCls: prefixCls$$ + }; + }, + computed: { + classes() { + return [ + `${prefixCls$$}`, + { + [`${prefixCls$$}-disabled`]: this.disabled, + [`${prefixCls$$}-selected`]: this.selected, + [`${prefixCls$$}-with-link`]: this.to + } + ]; + }, + arrowType() { + const config = this.globalConfig; + let type2 = "ios-arrow-forward"; + if (config) { + if (config.cell.customArrow) { + type2 = ""; + } else if (config.cell.arrow) { + type2 = config.cell.arrow; + } + } + return type2; + }, + customArrowType() { + const config = this.globalConfig; + let type2 = ""; + if (config) { + if (config.cell.customArrow) { + type2 = config.cell.customArrow; + } + } + return type2; + }, + arrowSize() { + const config = this.globalConfig; + let size = ""; + if (config) { + if (config.cell.arrowSize) { + size = config.cell.arrowSize; + } + } + return size; + } + }, + methods: { + handleClickItem(event, new_window) { + this.CellGroupInstance.handleClick(this.name); + this.handleCheckClick(event, new_window); + } + } +}; +const _hoisted_1$$ = ["href", "target"]; +const _hoisted_2$E = { + key: 2, + class: "ivu-cell-arrow" +}; +function _sfc_render$1I(_ctx, _cache, $props, $setup, $data, $options) { + const _component_CellItem = resolveComponent("CellItem"); + const _component_Icon = resolveComponent("Icon"); + return openBlock(), createElementBlock("div", { + class: normalizeClass($options.classes) + }, [ + _ctx.to ? (openBlock(), createElementBlock("a", { + key: 0, + href: _ctx.linkUrl, + target: _ctx.target, + class: "ivu-cell-link", + onClick: [ + _cache[0] || (_cache[0] = withModifiers(($event) => $options.handleClickItem($event, false), ["exact"])), + _cache[1] || (_cache[1] = withModifiers(($event) => $options.handleClickItem($event, true), ["ctrl"])), + _cache[2] || (_cache[2] = withModifiers(($event) => $options.handleClickItem($event, true), ["meta"])) + ] + }, [ + createVNode(_component_CellItem, { + title: $props.title, + label: $props.label, + extra: $props.extra + }, { + icon: withCtx(() => [ + renderSlot(_ctx.$slots, "icon") + ]), + default: withCtx(() => [ + renderSlot(_ctx.$slots, "default") + ]), + extra: withCtx(() => [ + renderSlot(_ctx.$slots, "extra") + ]), + label: withCtx(() => [ + renderSlot(_ctx.$slots, "label") + ]), + _: 3 + }, 8, ["title", "label", "extra"]) + ], 8, _hoisted_1$$)) : (openBlock(), createElementBlock("div", { + key: 1, + class: "ivu-cell-link", + onClick: _cache[3] || (_cache[3] = (...args) => $options.handleClickItem && $options.handleClickItem(...args)) + }, [ + createVNode(_component_CellItem, { + title: $props.title, + label: $props.label, + extra: $props.extra + }, { + icon: withCtx(() => [ + renderSlot(_ctx.$slots, "icon") + ]), + default: withCtx(() => [ + renderSlot(_ctx.$slots, "default") + ]), + extra: withCtx(() => [ + renderSlot(_ctx.$slots, "extra") + ]), + label: withCtx(() => [ + renderSlot(_ctx.$slots, "label") + ]), + _: 3 + }, 8, ["title", "label", "extra"]) + ])), + _ctx.to ? (openBlock(), createElementBlock("div", _hoisted_2$E, [ + renderSlot(_ctx.$slots, "arrow", {}, () => [ + createVNode(_component_Icon, { + type: $options.arrowType, + custom: $options.customArrowType, + size: $options.arrowSize + }, null, 8, ["type", "custom", "size"]) + ]) + ])) : createCommentVNode("", true) + ], 2); +} +var Cell = /* @__PURE__ */ _export_sfc(_sfc_main$1W, [["render", _sfc_render$1I]]); +const _sfc_main$1V = { + name: "CellGroup", + emits: ["on-click"], + provide() { + return { + CellGroupInstance: this + }; + }, + methods: { + handleClick(name2) { + this.$emit("on-click", name2); + } + } +}; +const _hoisted_1$_ = { class: "ivu-cell-group" }; +function _sfc_render$1H(_ctx, _cache, $props, $setup, $data, $options) { + return openBlock(), createElementBlock("div", _hoisted_1$_, [ + renderSlot(_ctx.$slots, "default") + ]); +} +var CellGroup = /* @__PURE__ */ _export_sfc(_sfc_main$1V, [["render", _sfc_render$1H]]); +const prefixCls$_ = "ivu-checkbox"; +const _sfc_main$1U = { + name: "Checkbox", + mixins: [mixinsForm], + emits: ["update:modelValue", "on-change"], + inject: { + CheckboxGroupInstance: { + default: null + } + }, + props: { + disabled: { + type: Boolean, + default: false + }, + modelValue: { + type: [String, Number, Boolean], + default: false + }, + trueValue: { + type: [String, Number, Boolean], + default: true + }, + falseValue: { + type: [String, Number, Boolean], + default: false + }, + label: { + type: [String, Number, Boolean] + }, + indeterminate: { + type: Boolean, + default: false + }, + size: { + validator(value) { + return oneOf(value, ["small", "large", "default"]); + }, + default() { + const global2 = getCurrentInstance().appContext.config.globalProperties; + return !global2.$VIEWUI || global2.$VIEWUI.size === "" ? "default" : global2.$VIEWUI.size; + } + }, + name: { + type: String + }, + border: { + type: Boolean, + default: false + } + }, + data() { + return { + showSlot: true, + focusInner: false, + model: [] + }; + }, + computed: { + wrapClasses() { + return [ + `${prefixCls$_}-wrapper`, + { + [`${prefixCls$_}-group-item`]: this.group, + [`${prefixCls$_}-wrapper-checked`]: this.currentValue, + [`${prefixCls$_}-wrapper-disabled`]: this.itemDisabled, + [`${prefixCls$_}-${this.size}`]: !!this.size, + [`${prefixCls$_}-border`]: this.border + } + ]; + }, + checkboxClasses() { + return [ + `${prefixCls$_}`, + { + [`${prefixCls$_}-checked`]: this.currentValue, + [`${prefixCls$_}-disabled`]: this.itemDisabled, + [`${prefixCls$_}-indeterminate`]: this.indeterminate + } + ]; + }, + innerClasses() { + return [ + `${prefixCls$_}-inner`, + { + [`${prefixCls$_}-focus`]: this.focusInner + } + ]; + }, + inputClasses() { + return `${prefixCls$_}-input`; + }, + currentValue() { + if (this.CheckboxGroupInstance) { + return this.CheckboxGroupInstance.modelValue.indexOf(this.label) >= 0; + } else { + return this.modelValue === this.trueValue; + } + }, + group() { + return !!this.CheckboxGroupInstance; + } + }, + mounted() { + if (!this.CheckboxGroupInstance) + this.showSlot = this.$slots.default !== void 0; + }, + methods: { + change(event) { + if (this.itemDisabled) { + return false; + } + const checked = event.target.checked; + const value = checked ? this.trueValue : this.falseValue; + this.$emit("update:modelValue", value); + if (this.group) { + this.CheckboxGroupInstance.change(this.model); + } else { + this.$emit("on-change", value); + this.handleFormItemChange("change", value); + } + }, + onBlur() { + this.focusInner = false; + }, + onFocus() { + this.focusInner = true; + } + }, + watch: { + modelValue(val) { + if (val === this.trueValue || val === this.falseValue) + ; + else { + throw "Value should be trueValue or falseValue."; + } + }, + "CheckboxGroupInstance.modelValue": { + handler(val) { + this.model = val || []; + }, + immediate: true + } + } +}; +const _hoisted_1$Z = ["disabled", "value", "name"]; +const _hoisted_2$D = ["disabled", "checked", "name"]; +const _hoisted_3$v = { + key: 0, + class: "ivu-checkbox-label-text" +}; +function _sfc_render$1G(_ctx, _cache, $props, $setup, $data, $options) { + return openBlock(), createElementBlock("label", { + class: normalizeClass($options.wrapClasses) + }, [ + createElementVNode("span", { + class: normalizeClass($options.checkboxClasses) + }, [ + createElementVNode("span", { + class: normalizeClass($options.innerClasses) + }, null, 2), + $options.group ? withDirectives((openBlock(), createElementBlock("input", { + key: 0, + type: "checkbox", + class: normalizeClass($options.inputClasses), + disabled: _ctx.itemDisabled, + value: $props.label, + "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => $data.model = $event), + name: $props.name, + onChange: _cache[1] || (_cache[1] = (...args) => $options.change && $options.change(...args)), + onFocus: _cache[2] || (_cache[2] = (...args) => $options.onFocus && $options.onFocus(...args)), + onBlur: _cache[3] || (_cache[3] = (...args) => $options.onBlur && $options.onBlur(...args)) + }, null, 42, _hoisted_1$Z)), [ + [vModelCheckbox, $data.model] + ]) : (openBlock(), createElementBlock("input", { + key: 1, + type: "checkbox", + class: normalizeClass($options.inputClasses), + disabled: _ctx.itemDisabled, + checked: $options.currentValue, + name: $props.name, + onChange: _cache[4] || (_cache[4] = (...args) => $options.change && $options.change(...args)), + onFocus: _cache[5] || (_cache[5] = (...args) => $options.onFocus && $options.onFocus(...args)), + onBlur: _cache[6] || (_cache[6] = (...args) => $options.onBlur && $options.onBlur(...args)) + }, null, 42, _hoisted_2$D)) + ], 2), + $data.showSlot ? (openBlock(), createElementBlock("span", _hoisted_3$v, [ + renderSlot(_ctx.$slots, "default", {}, () => [ + createTextVNode(toDisplayString($props.label), 1) + ]) + ])) : createCommentVNode("", true) + ], 2); +} +var Checkbox = /* @__PURE__ */ _export_sfc(_sfc_main$1U, [["render", _sfc_render$1G]]); +const prefixCls$Z = "ivu-checkbox-group"; +const _sfc_main$1T = { + name: "CheckboxGroup", + mixins: [mixinsForm], + emits: ["update:modelValue", "on-change"], + provide() { + return { + CheckboxGroupInstance: this + }; + }, + props: { + modelValue: { + type: Array, + default() { + return []; + } + }, + size: { + validator(value) { + return oneOf(value, ["small", "large", "default"]); + }, + default() { + const global2 = getCurrentInstance().appContext.config.globalProperties; + return !global2.$VIEWUI || global2.$VIEWUI.size === "" ? "default" : global2.$VIEWUI.size; + } + } + }, + data() { + return { + currentValue: this.modelValue || [], + children: [] + }; + }, + computed: { + classes() { + return [ + `${prefixCls$Z}`, + { + [`ivu-checkbox-${this.size}`]: !!this.size + } + ]; + } + }, + methods: { + change(data) { + this.currentValue = data; + this.$emit("update:modelValue", data); + this.$emit("on-change", data); + this.handleFormItemChange("change", data); + } + } +}; +function _sfc_render$1F(_ctx, _cache, $props, $setup, $data, $options) { + return openBlock(), createElementBlock("div", { + class: normalizeClass($options.classes) + }, [ + renderSlot(_ctx.$slots, "default") + ], 2); +} +var CheckboxGroup = /* @__PURE__ */ _export_sfc(_sfc_main$1T, [["render", _sfc_render$1F]]); +const prefixCls$Y = "ivu-chart-circle"; +const _sfc_main$1S = { + name: "iCircle", + props: { + percent: { + type: Number, + default: 0 + }, + size: { + type: Number, + default: 120 + }, + strokeWidth: { + type: Number, + default: 6 + }, + strokeColor: { + type: [String, Array], + default: "#2d8cf0" + }, + strokeLinecap: { + validator(value) { + return oneOf(value, ["square", "round"]); + }, + default: "round" + }, + trailWidth: { + type: Number, + default: 5 + }, + trailColor: { + type: String, + default: "#eaeef2" + }, + dashboard: { + type: Boolean, + default: false + } + }, + data() { + return { + id: `ivu-chart-circle-${random(3)}` + }; + }, + computed: { + circleSize() { + return { + width: `${this.size}px`, + height: `${this.size}px` + }; + }, + computedStrokeWidth() { + return this.percent === 0 && this.dashboard ? 0 : this.strokeWidth; + }, + radius() { + return 50 - this.strokeWidth / 2; + }, + pathString() { + if (this.dashboard) { + return `M 50,50 m 0,${this.radius} + a ${this.radius},${this.radius} 0 1 1 0,-${2 * this.radius} + a ${this.radius},${this.radius} 0 1 1 0,${2 * this.radius}`; + } else { + return `M 50,50 m 0,-${this.radius} + a ${this.radius},${this.radius} 0 1 1 0,${2 * this.radius} + a ${this.radius},${this.radius} 0 1 1 0,-${2 * this.radius}`; + } + }, + len() { + return Math.PI * 2 * this.radius; + }, + trailStyle() { + let style2 = {}; + if (this.dashboard) { + style2 = { + "stroke-dasharray": `${this.len - 75}px ${this.len}px`, + "stroke-dashoffset": `-${75 / 2}px`, + "transition": "stroke-dashoffset .3s ease 0s, stroke-dasharray .3s ease 0s, stroke .3s" + }; + } + return style2; + }, + pathStyle() { + let style2 = {}; + if (this.dashboard) { + style2 = { + "stroke-dasharray": `${this.percent / 100 * (this.len - 75)}px ${this.len}px`, + "stroke-dashoffset": `-${75 / 2}px`, + "transition": "stroke-dashoffset .3s ease 0s, stroke-dasharray .6s ease 0s, stroke .6s, stroke-width .06s ease .6s" + }; + } else { + style2 = { + "stroke-dasharray": `${this.len}px ${this.len}px`, + "stroke-dashoffset": `${(100 - this.percent) / 100 * this.len}px`, + "transition": "stroke-dashoffset 0.6s ease 0s, stroke 0.6s ease" + }; + } + return style2; + }, + wrapClasses() { + return `${prefixCls$Y}`; + }, + innerClasses() { + return `${prefixCls$Y}-inner`; + }, + strokeValue() { + let color2 = this.strokeColor; + if (typeof this.strokeColor !== "string") { + color2 = `url(#${this.id})`; + } + return color2; + }, + showDefs() { + return typeof this.strokeColor !== "string"; + } + } +}; +const _hoisted_1$Y = { viewBox: "0 0 100 100" }; +const _hoisted_2$C = { key: 0 }; +const _hoisted_3$u = ["id"]; +const _hoisted_4$o = ["stop-color"]; +const _hoisted_5$g = ["stop-color"]; +const _hoisted_6$8 = ["d", "stroke", "stroke-width", "stroke-linecap"]; +const _hoisted_7$6 = ["d", "stroke-linecap", "stroke", "stroke-width"]; +function _sfc_render$1E(_ctx, _cache, $props, $setup, $data, $options) { + return openBlock(), createElementBlock("div", { + style: normalizeStyle($options.circleSize), + class: normalizeClass($options.wrapClasses) + }, [ + (openBlock(), createElementBlock("svg", _hoisted_1$Y, [ + $options.showDefs ? (openBlock(), createElementBlock("defs", _hoisted_2$C, [ + createElementVNode("linearGradient", { + id: $data.id, + x1: "100%", + y1: "0%", + x2: "0%", + y2: "0%" + }, [ + createElementVNode("stop", { + offset: "0%", + "stop-color": $props.strokeColor[0] + }, null, 8, _hoisted_4$o), + createElementVNode("stop", { + offset: "100%", + "stop-color": $props.strokeColor[1] + }, null, 8, _hoisted_5$g) + ], 8, _hoisted_3$u) + ])) : createCommentVNode("", true), + createElementVNode("path", { + d: $options.pathString, + stroke: $props.trailColor, + "stroke-width": $props.trailWidth, + "fill-opacity": 0, + style: normalizeStyle($options.trailStyle), + "stroke-linecap": $props.strokeLinecap + }, null, 12, _hoisted_6$8), + createElementVNode("path", { + d: $options.pathString, + "stroke-linecap": $props.strokeLinecap, + stroke: $options.strokeValue, + "stroke-width": $options.computedStrokeWidth, + "fill-opacity": "0", + style: normalizeStyle($options.pathStyle) + }, null, 12, _hoisted_7$6) + ])), + createElementVNode("div", { + class: normalizeClass($options.innerClasses) + }, [ + renderSlot(_ctx.$slots, "default") + ], 2) + ], 6); +} +var Circle = /* @__PURE__ */ _export_sfc(_sfc_main$1S, [["render", _sfc_render$1E]]); +const prefixCls$X = "ivu-dropdown"; +const _sfc_main$1R = { + name: "Dropdown", + directives: { clickOutside }, + components: { Drop }, + emits: ["on-visible-change", "on-clickoutside", "on-click", "on-hover-click", "on-haschild-click"], + props: { + trigger: { + validator(value) { + return oneOf(value, ["click", "hover", "custom", "contextMenu"]); + }, + default: "hover" + }, + placement: { + validator(value) { + return oneOf(value, ["top", "top-start", "top-end", "bottom", "bottom-start", "bottom-end", "left", "left-start", "left-end", "right", "right-start", "right-end"]); + }, + default: "bottom" + }, + visible: { + type: Boolean, + default: false + }, + transfer: { + type: Boolean, + default() { + const global2 = getCurrentInstance().appContext.config.globalProperties; + return !global2.$VIEWUI || global2.$VIEWUI.transfer === "" ? false : global2.$VIEWUI.transfer; + } + }, + transferClassName: { + type: String + }, + stopPropagation: { + type: Boolean, + default: false + }, + capture: { + type: Boolean, + default() { + const global2 = getCurrentInstance().appContext.config.globalProperties; + return !global2.$VIEWUI ? true : global2.$VIEWUI.capture; + } + }, + eventsEnabled: { + type: Boolean, + default: false + }, + boundariesElement: { + default: "window" + } + }, + computed: { + transition() { + return ["bottom-start", "bottom", "bottom-end"].indexOf(this.placement) > -1 ? "slide-up" : "fade"; + }, + dropdownCls() { + return { + [prefixCls$X + "-transfer"]: this.transfer, + [this.transferClassName]: this.transferClassName + }; + }, + relClasses() { + return [ + `${prefixCls$X}-rel`, + { + [`${prefixCls$X}-rel-user-select-none`]: this.trigger === "contextMenu" + } + ]; + } + }, + data() { + return { + prefixCls: prefixCls$X, + currentVisible: this.visible, + timeout: null + }; + }, + watch: { + visible(val) { + this.currentVisible = val; + }, + currentVisible(val) { + if (val) { + this.$refs.drop.update(); + } else { + this.$refs.drop.destroy(); + } + this.$emit("on-visible-change", val); + } + }, + methods: { + handleClick() { + if (this.trigger === "custom") + return false; + if (this.trigger !== "click") { + return false; + } + const $parent = this.hasParent(); + if (!$parent) + this.currentVisible = !this.currentVisible; + }, + handleRightClick() { + if (this.trigger === "custom") + return false; + if (this.trigger !== "contextMenu") { + return false; + } + this.currentVisible = !this.currentVisible; + }, + handleMouseenter() { + if (this.trigger === "custom") + return false; + if (this.trigger !== "hover") { + return false; + } + if (this.timeout) + clearTimeout(this.timeout); + this.timeout = setTimeout(() => { + this.currentVisible = true; + }, 250); + }, + handleMouseleave() { + if (this.trigger === "custom") + return false; + if (this.trigger !== "hover") { + return false; + } + if (this.timeout) { + clearTimeout(this.timeout); + this.timeout = setTimeout(() => { + this.currentVisible = false; + }, 150); + } + }, + onClickoutside(e) { + this.handleClose(); + this.handleRightClose(); + if (this.currentVisible) + this.$emit("on-clickoutside", e); + }, + handleClose() { + if (this.trigger === "custom") + return false; + if (this.trigger !== "click") { + return false; + } + this.currentVisible = false; + }, + handleRightClose() { + if (this.trigger === "custom") + return false; + if (this.trigger !== "contextMenu") { + return false; + } + this.currentVisible = false; + }, + hasParent() { + const $parent = findComponentUpward(this, "Dropdown"); + if ($parent) { + return $parent; + } else { + return false; + } + }, + handleHaschildClick() { + nextTick(() => { + if (this.trigger === "custom") + return false; + this.currentVisible = true; + }); + const $parent = this.hasParent(); + if ($parent) + $parent.handleHaschildClick(); + }, + handleItemClick(key2) { + if (this.stopPropagation) + return; + const $parent = this.hasParent(); + if ($parent) + $parent.handleItemClick(key2); + else + this.$emit("on-click", key2); + }, + handleHoverClick() { + const $parent = this.hasParent(); + if ($parent) { + nextTick(() => { + if (this.trigger === "custom") + return false; + this.currentVisible = false; + }); + $parent.handleHoverClick(); + } else { + nextTick(() => { + if (this.trigger === "custom") + return false; + this.currentVisible = false; + }); + } + } + } +}; +function _sfc_render$1D(_ctx, _cache, $props, $setup, $data, $options) { + const _component_Drop = resolveComponent("Drop"); + const _directive_click_outside = resolveDirective("click-outside"); + return withDirectives((openBlock(), createElementBlock("div", { + class: normalizeClass([$data.prefixCls]), + onMouseenter: _cache[2] || (_cache[2] = (...args) => $options.handleMouseenter && $options.handleMouseenter(...args)), + onMouseleave: _cache[3] || (_cache[3] = (...args) => $options.handleMouseleave && $options.handleMouseleave(...args)) + }, [ + createElementVNode("div", { + class: normalizeClass($options.relClasses), + ref: "reference", + onClick: _cache[0] || (_cache[0] = (...args) => $options.handleClick && $options.handleClick(...args)), + onContextmenu: _cache[1] || (_cache[1] = withModifiers((...args) => $options.handleRightClick && $options.handleRightClick(...args), ["prevent"])) + }, [ + renderSlot(_ctx.$slots, "default") + ], 34), + createVNode(_component_Drop, { + ref: "drop", + visible: $data.currentVisible, + classes: $options.dropdownCls, + placement: $props.placement, + eventsEnabled: $props.eventsEnabled, + boundariesElement: $props.boundariesElement, + transfer: $props.transfer, + "transition-name": "transition-drop", + onMouseenter: $options.handleMouseenter, + onMouseleave: $options.handleMouseleave + }, { + default: withCtx(() => [ + renderSlot(_ctx.$slots, "list") + ]), + _: 3 + }, 8, ["visible", "classes", "placement", "eventsEnabled", "boundariesElement", "transfer", "onMouseenter", "onMouseleave"]) + ], 34)), [ + [_directive_click_outside, $options.onClickoutside] + ]); +} +var Dropdown = /* @__PURE__ */ _export_sfc(_sfc_main$1R, [["render", _sfc_render$1D]]); +const _sfc_main$1Q = { + name: "DropdownMenu" +}; +const _hoisted_1$X = { class: "ivu-dropdown-menu" }; +function _sfc_render$1C(_ctx, _cache, $props, $setup, $data, $options) { + return openBlock(), createElementBlock("ul", _hoisted_1$X, [ + renderSlot(_ctx.$slots, "default") + ]); +} +var DropdownMenu = /* @__PURE__ */ _export_sfc(_sfc_main$1Q, [["render", _sfc_render$1C]]); +const prefixCls$W = "ivu-tag"; +const initColorList = ["default", "primary", "success", "warning", "error", "blue", "green", "red", "yellow", "pink", "magenta", "volcano", "orange", "gold", "lime", "cyan", "geekblue", "purple"]; +const colorList = ["pink", "magenta", "volcano", "orange", "gold", "lime", "cyan", "geekblue", "purple"]; +const _sfc_main$1P = { + name: "Tag", + components: { Icon }, + emits: ["on-change", "on-close"], + props: { + closable: { + type: Boolean, + default: false + }, + checkable: { + type: Boolean, + default: false + }, + checked: { + type: Boolean, + default: true + }, + color: { + type: String, + default: "default" + }, + type: { + validator(value) { + return oneOf(value, ["border", "dot"]); + } + }, + name: { + type: [String, Number] + }, + size: { + validator(value) { + return oneOf(value, ["default", "medium", "large"]); + }, + default: "default" + } + }, + data() { + return { + isChecked: this.checked + }; + }, + computed: { + classes() { + return [ + `${prefixCls$W}`, + `${prefixCls$W}-size-${this.size}`, + { + [`${prefixCls$W}-${this.color}`]: !!this.color && oneOf(this.color, initColorList), + [`${prefixCls$W}-${this.type}`]: !!this.type, + [`${prefixCls$W}-closable`]: this.closable, + [`${prefixCls$W}-checked`]: this.isChecked, + [`${prefixCls$W}-checkable`]: this.checkable + } + ]; + }, + wraperStyles() { + return oneOf(this.color, initColorList) ? {} : { background: this.isChecked ? this.defaultTypeColor : "transparent", borderWidth: "1px", borderStyle: "solid", borderColor: this.type !== "dot" && this.type !== "border" && this.isChecked ? this.borderColor : this.lineColor, color: this.lineColor }; + }, + textClasses() { + return [ + `${prefixCls$W}-text`, + this.type === "border" ? oneOf(this.color, initColorList) ? `${prefixCls$W}-color-${this.color}` : "" : "", + this.type !== "dot" && this.type !== "border" && this.color !== "default" ? this.isChecked && colorList.indexOf(this.color) < 0 ? `${prefixCls$W}-color-white` : "" : "" + ]; + }, + dotClasses() { + return `${prefixCls$W}-dot-inner`; + }, + iconClass() { + if (this.type === "dot") { + return ""; + } else if (this.type === "border") { + return oneOf(this.color, initColorList) ? `${prefixCls$W}-color-${this.color}` : ""; + } else { + return this.color !== void 0 ? this.color === "default" ? "" : "rgb(255, 255, 255)" : ""; + } + }, + showDot() { + return !!this.type && this.type === "dot"; + }, + lineColor() { + if (this.type === "dot") { + return ""; + } else if (this.type === "border") { + return this.color !== void 0 ? oneOf(this.color, initColorList) ? "" : this.color : ""; + } else { + return this.color !== void 0 ? this.color === "default" ? "" : "rgb(255, 255, 255)" : ""; + } + }, + borderColor() { + return this.color !== void 0 ? this.color === "default" ? "" : this.color : ""; + }, + dotColor() { + return this.color !== void 0 ? oneOf(this.color, initColorList) ? "" : this.color : ""; + }, + textColorStyle() { + return oneOf(this.color, initColorList) ? {} : this.type !== "dot" && this.type !== "border" ? this.isChecked ? { color: this.lineColor } : {} : { color: this.lineColor }; + }, + bgColorStyle() { + return oneOf(this.color, initColorList) ? {} : { background: this.dotColor }; + }, + defaultTypeColor() { + return this.type !== "dot" && this.type !== "border" ? this.color !== void 0 ? oneOf(this.color, initColorList) ? "" : this.color : "" : ""; + } + }, + methods: { + close(event) { + if (this.name === void 0) { + this.$emit("on-close", event); + } else { + this.$emit("on-close", event, this.name); + } + }, + check() { + if (!this.checkable) + return; + const checked = !this.isChecked; + this.isChecked = checked; + if (this.name === void 0) { + this.$emit("on-change", checked); + } else { + this.$emit("on-change", checked, this.name); + } + } + }, + watch: { + checked(val) { + this.isChecked = val; + } + } +}; +function _sfc_render$1B(_ctx, _cache, $props, $setup, $data, $options) { + const _component_Icon = resolveComponent("Icon"); + return openBlock(), createElementBlock("div", { + class: normalizeClass($options.classes), + onClick: _cache[0] || (_cache[0] = withModifiers((...args) => $options.check && $options.check(...args), ["stop"])), + style: normalizeStyle($options.wraperStyles) + }, [ + $options.showDot ? (openBlock(), createElementBlock("span", { + key: 0, + class: normalizeClass($options.dotClasses), + style: normalizeStyle($options.bgColorStyle) + }, null, 6)) : createCommentVNode("", true), + createElementVNode("span", { + class: normalizeClass($options.textClasses), + style: normalizeStyle($options.textColorStyle) + }, [ + renderSlot(_ctx.$slots, "default") + ], 6), + $props.closable ? (openBlock(), createBlock(_component_Icon, { + key: 1, + class: normalizeClass($options.iconClass), + color: $options.lineColor, + type: "ios-close", + onClick: withModifiers($options.close, ["stop"]) + }, null, 8, ["class", "color", "onClick"])) : createCommentVNode("", true) + ], 6); +} +var Tag = /* @__PURE__ */ _export_sfc(_sfc_main$1P, [["render", _sfc_render$1B]]); +var provinceData = { + "110000": { l: "Z1", n: "\u5317\u4EAC", c: "110000", p: "86" }, + "120000": { l: "Z1", n: "\u5929\u6D25", c: "120000", p: "86" }, + "130000": { l: "H", n: "\u6CB3\u5317", c: "130000", p: "86" }, + "140000": { l: "S", n: "\u5C71\u897F", c: "140000", p: "86" }, + "150000": { l: "N", n: "\u5185\u8499\u53E4", c: "150000", p: "86" }, + "210000": { l: "L", n: "\u8FBD\u5B81", c: "210000", p: "86" }, + "220000": { l: "J", n: "\u5409\u6797", c: "220000", p: "86" }, + "230000": { l: "H", n: "\u9ED1\u9F99\u6C5F", c: "230000", p: "86" }, + "310000": { l: "Z1", n: "\u4E0A\u6D77", c: "310000", p: "86" }, + "320000": { l: "J", n: "\u6C5F\u82CF", c: "320000", p: "86" }, + "330000": { l: "Z", n: "\u6D59\u6C5F", c: "330000", p: "86" }, + "340000": { l: "A", n: "\u5B89\u5FBD", c: "340000", p: "86" }, + "350000": { l: "F", n: "\u798F\u5EFA", c: "350000", p: "86" }, + "360000": { l: "J", n: "\u6C5F\u897F", c: "360000", p: "86" }, + "370000": { l: "S", n: "\u5C71\u4E1C", c: "370000", p: "86" }, + "410000": { l: "H", n: "\u6CB3\u5357", c: "410000", p: "86" }, + "420000": { l: "H", n: "\u6E56\u5317", c: "420000", p: "86" }, + "430000": { l: "H", n: "\u6E56\u5357", c: "430000", p: "86" }, + "440000": { l: "G", n: "\u5E7F\u4E1C", c: "440000", p: "86" }, + "450000": { l: "G", n: "\u5E7F\u897F", c: "450000", p: "86" }, + "460000": { l: "H", n: "\u6D77\u5357", c: "460000", p: "86" }, + "500000": { l: "Z1", n: "\u91CD\u5E86", c: "500000", p: "86" }, + "510000": { l: "S", n: "\u56DB\u5DDD", c: "510000", p: "86" }, + "520000": { l: "G", n: "\u8D35\u5DDE", c: "520000", p: "86" }, + "530000": { l: "Y", n: "\u4E91\u5357", c: "530000", p: "86" }, + "540000": { l: "X", n: "\u897F\u85CF", c: "540000", p: "86" }, + "610000": { l: "S", n: "\u9655\u897F", c: "610000", p: "86" }, + "620000": { l: "G", n: "\u7518\u8083", c: "620000", p: "86" }, + "630000": { l: "Q", n: "\u9752\u6D77", c: "630000", p: "86" }, + "640000": { l: "N", n: "\u5B81\u590F", c: "640000", p: "86" }, + "650000": { l: "X", n: "\u65B0\u7586", c: "650000", p: "86" }, + "710000": { l: "T", n: "\u53F0\u6E7E", c: "710000", p: "86" }, + "810000": { l: "Z2", n: "\u9999\u6E2F", c: "810000", p: "86" }, + "820000": { l: "Z2", n: "\u6FB3\u95E8", c: "820000", p: "86" } +}; +var cityData = { + "110000": { "l": "B", "n": "\u5317\u4EAC\u5E02", "c": "110000", "p": "86" }, + "120000": { "l": "T", "n": "\u5929\u6D25\u5E02", "c": "120000", "p": "86" }, + "130100": { "l": "S", "n": "\u77F3\u5BB6\u5E84\u5E02", "c": "130100", "p": "130000" }, + "130200": { "l": "T", "n": "\u5510\u5C71\u5E02", "c": "130200", "p": "130000" }, + "130300": { "l": "Q", "n": "\u79E6\u7687\u5C9B\u5E02", "c": "130300", "p": "130000" }, + "130400": { "l": "H", "n": "\u90AF\u90F8\u5E02", "c": "130400", "p": "130000" }, + "130500": { "l": "X", "n": "\u90A2\u53F0\u5E02", "c": "130500", "p": "130000" }, + "130600": { "l": "B", "n": "\u4FDD\u5B9A\u5E02", "c": "130600", "p": "130000" }, + "130700": { "l": "Z", "n": "\u5F20\u5BB6\u53E3\u5E02", "c": "130700", "p": "130000" }, + "130800": { "l": "C", "n": "\u627F\u5FB7\u5E02", "c": "130800", "p": "130000" }, + "130900": { "l": "C", "n": "\u6CA7\u5DDE\u5E02", "c": "130900", "p": "130000" }, + "131000": { "l": "L", "n": "\u5ECA\u574A\u5E02", "c": "131000", "p": "130000" }, + "131100": { "l": "H", "n": "\u8861\u6C34\u5E02", "c": "131100", "p": "130000" }, + "139001": { "l": "D", "n": "\u5B9A\u5DDE\u5E02", "c": "139001", "p": "130000" }, + "139002": { "l": "X", "n": "\u8F9B\u96C6\u5E02", "c": "139002", "p": "130000" }, + "140100": { "l": "T", "n": "\u592A\u539F\u5E02", "c": "140100", "p": "140000" }, + "140200": { "l": "D", "n": "\u5927\u540C\u5E02", "c": "140200", "p": "140000" }, + "140300": { "l": "Y", "n": "\u9633\u6CC9\u5E02", "c": "140300", "p": "140000" }, + "140400": { "l": "C", "n": "\u957F\u6CBB\u5E02", "c": "140400", "p": "140000" }, + "140500": { "l": "J", "n": "\u664B\u57CE\u5E02", "c": "140500", "p": "140000" }, + "140600": { "l": "S", "n": "\u6714\u5DDE\u5E02", "c": "140600", "p": "140000" }, + "140700": { "l": "J", "n": "\u664B\u4E2D\u5E02", "c": "140700", "p": "140000" }, + "140800": { "l": "Y", "n": "\u8FD0\u57CE\u5E02", "c": "140800", "p": "140000" }, + "140900": { "l": "X", "n": "\u5FFB\u5DDE\u5E02", "c": "140900", "p": "140000" }, + "141000": { "l": "L", "n": "\u4E34\u6C7E\u5E02", "c": "141000", "p": "140000" }, + "141100": { "l": "L", "n": "\u5415\u6881\u5E02", "c": "141100", "p": "140000" }, + "150100": { "l": "H", "n": "\u547C\u548C\u6D69\u7279\u5E02", "c": "150100", "p": "150000" }, + "150200": { "l": "B", "n": "\u5305\u5934\u5E02", "c": "150200", "p": "150000" }, + "150300": { "l": "W", "n": "\u4E4C\u6D77\u5E02", "c": "150300", "p": "150000" }, + "150400": { "l": "C", "n": "\u8D64\u5CF0\u5E02", "c": "150400", "p": "150000" }, + "150500": { "l": "T", "n": "\u901A\u8FBD\u5E02", "c": "150500", "p": "150000" }, + "150600": { "l": "E", "n": "\u9102\u5C14\u591A\u65AF\u5E02", "c": "150600", "p": "150000" }, + "150700": { "l": "H", "n": "\u547C\u4F26\u8D1D\u5C14\u5E02", "c": "150700", "p": "150000" }, + "150800": { "l": "B", "n": "\u5DF4\u5F66\u6DD6\u5C14\u5E02", "c": "150800", "p": "150000" }, + "150900": { "l": "W", "n": "\u4E4C\u5170\u5BDF\u5E03\u5E02", "c": "150900", "p": "150000" }, + "152200": { "l": "X", "n": "\u5174\u5B89\u76DF", "c": "152200", "p": "150000" }, + "152500": { "l": "X", "n": "\u9521\u6797\u90ED\u52D2\u76DF", "c": "152500", "p": "150000" }, + "152900": { "l": "A", "n": "\u963F\u62C9\u5584\u76DF", "c": "152900", "p": "150000" }, + "210100": { "l": "S", "n": "\u6C88\u9633\u5E02", "c": "210100", "p": "210000" }, + "210200": { "l": "D", "n": "\u5927\u8FDE\u5E02", "c": "210200", "p": "210000" }, + "210300": { "l": "A", "n": "\u978D\u5C71\u5E02", "c": "210300", "p": "210000" }, + "210400": { "l": "F", "n": "\u629A\u987A\u5E02", "c": "210400", "p": "210000" }, + "210500": { "l": "B", "n": "\u672C\u6EAA\u5E02", "c": "210500", "p": "210000" }, + "210600": { "l": "D", "n": "\u4E39\u4E1C\u5E02", "c": "210600", "p": "210000" }, + "210700": { "l": "J", "n": "\u9526\u5DDE\u5E02", "c": "210700", "p": "210000" }, + "210800": { "l": "Y", "n": "\u8425\u53E3\u5E02", "c": "210800", "p": "210000" }, + "210900": { "l": "F", "n": "\u961C\u65B0\u5E02", "c": "210900", "p": "210000" }, + "211000": { "l": "L", "n": "\u8FBD\u9633\u5E02", "c": "211000", "p": "210000" }, + "211100": { "l": "P", "n": "\u76D8\u9526\u5E02", "c": "211100", "p": "210000" }, + "211200": { "l": "T", "n": "\u94C1\u5CAD\u5E02", "c": "211200", "p": "210000" }, + "211300": { "l": "C", "n": "\u671D\u9633\u5E02", "c": "211300", "p": "210000" }, + "211400": { "l": "H", "n": "\u846B\u82A6\u5C9B\u5E02", "c": "211400", "p": "210000" }, + "220100": { "l": "C", "n": "\u957F\u6625\u5E02", "c": "220100", "p": "220000" }, + "220200": { "l": "J", "n": "\u5409\u6797\u5E02", "c": "220200", "p": "220000" }, + "220300": { "l": "S", "n": "\u56DB\u5E73\u5E02", "c": "220300", "p": "220000" }, + "220400": { "l": "L", "n": "\u8FBD\u6E90\u5E02", "c": "220400", "p": "220000" }, + "220500": { "l": "T", "n": "\u901A\u5316\u5E02", "c": "220500", "p": "220000" }, + "220600": { "l": "B", "n": "\u767D\u5C71\u5E02", "c": "220600", "p": "220000" }, + "220700": { "l": "S", "n": "\u677E\u539F\u5E02", "c": "220700", "p": "220000" }, + "220800": { "l": "B", "n": "\u767D\u57CE\u5E02", "c": "220800", "p": "220000" }, + "222400": { "l": "Y", "n": "\u5EF6\u8FB9\u671D\u9C9C\u65CF\u81EA\u6CBB\u5DDE", "c": "222400", "p": "220000" }, + "230100": { "l": "H", "n": "\u54C8\u5C14\u6EE8\u5E02", "c": "230100", "p": "230000" }, + "230200": { "l": "Q", "n": "\u9F50\u9F50\u54C8\u5C14\u5E02", "c": "230200", "p": "230000" }, + "230300": { "l": "J", "n": "\u9E21\u897F\u5E02", "c": "230300", "p": "230000" }, + "230400": { "l": "H", "n": "\u9E64\u5C97\u5E02", "c": "230400", "p": "230000" }, + "230500": { "l": "S", "n": "\u53CC\u9E2D\u5C71\u5E02", "c": "230500", "p": "230000" }, + "230600": { "l": "D", "n": "\u5927\u5E86\u5E02", "c": "230600", "p": "230000" }, + "230700": { "l": "Y", "n": "\u4F0A\u6625\u5E02", "c": "230700", "p": "230000" }, + "230800": { "l": "J", "n": "\u4F73\u6728\u65AF\u5E02", "c": "230800", "p": "230000" }, + "230900": { "l": "Q", "n": "\u4E03\u53F0\u6CB3\u5E02", "c": "230900", "p": "230000" }, + "231000": { "l": "M", "n": "\u7261\u4E39\u6C5F\u5E02", "c": "231000", "p": "230000" }, + "231100": { "l": "H", "n": "\u9ED1\u6CB3\u5E02", "c": "231100", "p": "230000" }, + "231200": { "l": "S", "n": "\u7EE5\u5316\u5E02", "c": "231200", "p": "230000" }, + "232700": { "l": "D", "n": "\u5927\u5174\u5B89\u5CAD\u5730\u533A", "c": "232700", "p": "230000" }, + "310000": { "l": "S", "n": "\u4E0A\u6D77\u5E02", "c": "310000", "p": "86" }, + "320100": { "l": "N", "n": "\u5357\u4EAC\u5E02", "c": "320100", "p": "320000" }, + "320200": { "l": "W", "n": "\u65E0\u9521\u5E02", "c": "320200", "p": "320000" }, + "320300": { "l": "X", "n": "\u5F90\u5DDE\u5E02", "c": "320300", "p": "320000" }, + "320400": { "l": "C", "n": "\u5E38\u5DDE\u5E02", "c": "320400", "p": "320000" }, + "320500": { "l": "S", "n": "\u82CF\u5DDE\u5E02", "c": "320500", "p": "320000" }, + "320600": { "l": "N", "n": "\u5357\u901A\u5E02", "c": "320600", "p": "320000" }, + "320700": { "l": "L", "n": "\u8FDE\u4E91\u6E2F\u5E02", "c": "320700", "p": "320000" }, + "320800": { "l": "H", "n": "\u6DEE\u5B89\u5E02", "c": "320800", "p": "320000" }, + "320900": { "l": "Y", "n": "\u76D0\u57CE\u5E02", "c": "320900", "p": "320000" }, + "321000": { "l": "Y", "n": "\u626C\u5DDE\u5E02", "c": "321000", "p": "320000" }, + "321100": { "l": "Z", "n": "\u9547\u6C5F\u5E02", "c": "321100", "p": "320000" }, + "321200": { "l": "T", "n": "\u6CF0\u5DDE\u5E02", "c": "321200", "p": "320000" }, + "321300": { "l": "X", "n": "\u5BBF\u8FC1\u5E02", "c": "321300", "p": "320000" }, + "330100": { "l": "H", "n": "\u676D\u5DDE\u5E02", "c": "330100", "p": "330000" }, + "330200": { "l": "N", "n": "\u5B81\u6CE2\u5E02", "c": "330200", "p": "330000" }, + "330300": { "l": "W", "n": "\u6E29\u5DDE\u5E02", "c": "330300", "p": "330000" }, + "330400": { "l": "J", "n": "\u5609\u5174\u5E02", "c": "330400", "p": "330000" }, + "330500": { "l": "H", "n": "\u6E56\u5DDE\u5E02", "c": "330500", "p": "330000" }, + "330600": { "l": "S", "n": "\u7ECD\u5174\u5E02", "c": "330600", "p": "330000" }, + "330700": { "l": "J", "n": "\u91D1\u534E\u5E02", "c": "330700", "p": "330000" }, + "330800": { "l": "Q", "n": "\u8862\u5DDE\u5E02", "c": "330800", "p": "330000" }, + "330900": { "l": "Z", "n": "\u821F\u5C71\u5E02", "c": "330900", "p": "330000" }, + "331000": { "l": "T", "n": "\u53F0\u5DDE\u5E02", "c": "331000", "p": "330000" }, + "331100": { "l": "L", "n": "\u4E3D\u6C34\u5E02", "c": "331100", "p": "330000" }, + "340100": { "l": "H", "n": "\u5408\u80A5\u5E02", "c": "340100", "p": "340000" }, + "340200": { "l": "W", "n": "\u829C\u6E56\u5E02", "c": "340200", "p": "340000" }, + "340300": { "l": "B", "n": "\u868C\u57E0\u5E02", "c": "340300", "p": "340000" }, + "340400": { "l": "H", "n": "\u6DEE\u5357\u5E02", "c": "340400", "p": "340000" }, + "340500": { "l": "M", "n": "\u9A6C\u978D\u5C71\u5E02", "c": "340500", "p": "340000" }, + "340600": { "l": "H", "n": "\u6DEE\u5317\u5E02", "c": "340600", "p": "340000" }, + "340700": { "l": "T", "n": "\u94DC\u9675\u5E02", "c": "340700", "p": "340000" }, + "340800": { "l": "A", "n": "\u5B89\u5E86\u5E02", "c": "340800", "p": "340000" }, + "341000": { "l": "H", "n": "\u9EC4\u5C71\u5E02", "c": "341000", "p": "340000" }, + "341100": { "l": "C", "n": "\u6EC1\u5DDE\u5E02", "c": "341100", "p": "340000" }, + "341200": { "l": "F", "n": "\u961C\u9633\u5E02", "c": "341200", "p": "340000" }, + "341300": { "l": "X", "n": "\u5BBF\u5DDE\u5E02", "c": "341300", "p": "340000" }, + "341500": { "l": "L", "n": "\u516D\u5B89\u5E02", "c": "341500", "p": "340000" }, + "341600": { "l": "B", "n": "\u4EB3\u5DDE\u5E02", "c": "341600", "p": "340000" }, + "341700": { "l": "C", "n": "\u6C60\u5DDE\u5E02", "c": "341700", "p": "340000" }, + "341800": { "l": "X", "n": "\u5BA3\u57CE\u5E02", "c": "341800", "p": "340000" }, + "350100": { "l": "F", "n": "\u798F\u5DDE\u5E02", "c": "350100", "p": "350000" }, + "350200": { "l": "S", "n": "\u53A6\u95E8\u5E02", "c": "350200", "p": "350000" }, + "350300": { "l": "P", "n": "\u8386\u7530\u5E02", "c": "350300", "p": "350000" }, + "350400": { "l": "S", "n": "\u4E09\u660E\u5E02", "c": "350400", "p": "350000" }, + "350500": { "l": "Q", "n": "\u6CC9\u5DDE\u5E02", "c": "350500", "p": "350000" }, + "350600": { "l": "Z", "n": "\u6F33\u5DDE\u5E02", "c": "350600", "p": "350000" }, + "350700": { "l": "N", "n": "\u5357\u5E73\u5E02", "c": "350700", "p": "350000" }, + "350800": { "l": "L", "n": "\u9F99\u5CA9\u5E02", "c": "350800", "p": "350000" }, + "350900": { "l": "N", "n": "\u5B81\u5FB7\u5E02", "c": "350900", "p": "350000" }, + "360100": { "l": "N", "n": "\u5357\u660C\u5E02", "c": "360100", "p": "360000" }, + "360200": { "l": "J", "n": "\u666F\u5FB7\u9547\u5E02", "c": "360200", "p": "360000" }, + "360300": { "l": "P", "n": "\u840D\u4E61\u5E02", "c": "360300", "p": "360000" }, + "360400": { "l": "J", "n": "\u4E5D\u6C5F\u5E02", "c": "360400", "p": "360000" }, + "360500": { "l": "X", "n": "\u65B0\u4F59\u5E02", "c": "360500", "p": "360000" }, + "360600": { "l": "Y", "n": "\u9E70\u6F6D\u5E02", "c": "360600", "p": "360000" }, + "360700": { "l": "G", "n": "\u8D63\u5DDE\u5E02", "c": "360700", "p": "360000" }, + "360800": { "l": "J", "n": "\u5409\u5B89\u5E02", "c": "360800", "p": "360000" }, + "360900": { "l": "Y", "n": "\u5B9C\u6625\u5E02", "c": "360900", "p": "360000" }, + "361000": { "l": "F", "n": "\u629A\u5DDE\u5E02", "c": "361000", "p": "360000" }, + "361100": { "l": "S", "n": "\u4E0A\u9976\u5E02", "c": "361100", "p": "360000" }, + "370100": { "l": "J", "n": "\u6D4E\u5357\u5E02", "c": "370100", "p": "370000" }, + "370200": { "l": "Q", "n": "\u9752\u5C9B\u5E02", "c": "370200", "p": "370000" }, + "370300": { "l": "Z", "n": "\u6DC4\u535A\u5E02", "c": "370300", "p": "370000" }, + "370400": { "l": "Z", "n": "\u67A3\u5E84\u5E02", "c": "370400", "p": "370000" }, + "370500": { "l": "D", "n": "\u4E1C\u8425\u5E02", "c": "370500", "p": "370000" }, + "370600": { "l": "Y", "n": "\u70DF\u53F0\u5E02", "c": "370600", "p": "370000" }, + "370700": { "l": "W", "n": "\u6F4D\u574A\u5E02", "c": "370700", "p": "370000" }, + "370800": { "l": "J", "n": "\u6D4E\u5B81\u5E02", "c": "370800", "p": "370000" }, + "370900": { "l": "T", "n": "\u6CF0\u5B89\u5E02", "c": "370900", "p": "370000" }, + "371000": { "l": "W", "n": "\u5A01\u6D77\u5E02", "c": "371000", "p": "370000" }, + "371100": { "l": "R", "n": "\u65E5\u7167\u5E02", "c": "371100", "p": "370000" }, + "371200": { "l": "L", "n": "\u83B1\u829C\u5E02", "c": "371200", "p": "370000" }, + "371300": { "l": "L", "n": "\u4E34\u6C82\u5E02", "c": "371300", "p": "370000" }, + "371400": { "l": "D", "n": "\u5FB7\u5DDE\u5E02", "c": "371400", "p": "370000" }, + "371500": { "l": "L", "n": "\u804A\u57CE\u5E02", "c": "371500", "p": "370000" }, + "371600": { "l": "B", "n": "\u6EE8\u5DDE\u5E02", "c": "371600", "p": "370000" }, + "371700": { "l": "H", "n": "\u83CF\u6CFD\u5E02", "c": "371700", "p": "370000" }, + "410100": { "l": "Z", "n": "\u90D1\u5DDE\u5E02", "c": "410100", "p": "410000" }, + "410200": { "l": "K", "n": "\u5F00\u5C01\u5E02", "c": "410200", "p": "410000" }, + "410300": { "l": "L", "n": "\u6D1B\u9633\u5E02", "c": "410300", "p": "410000" }, + "410400": { "l": "P", "n": "\u5E73\u9876\u5C71\u5E02", "c": "410400", "p": "410000" }, + "410500": { "l": "A", "n": "\u5B89\u9633\u5E02", "c": "410500", "p": "410000" }, + "410600": { "l": "H", "n": "\u9E64\u58C1\u5E02", "c": "410600", "p": "410000" }, + "410700": { "l": "X", "n": "\u65B0\u4E61\u5E02", "c": "410700", "p": "410000" }, + "410800": { "l": "J", "n": "\u7126\u4F5C\u5E02", "c": "410800", "p": "410000" }, + "410900": { "l": "P", "n": "\u6FEE\u9633\u5E02", "c": "410900", "p": "410000" }, + "411000": { "l": "X", "n": "\u8BB8\u660C\u5E02", "c": "411000", "p": "410000" }, + "411100": { "l": "L", "n": "\u6F2F\u6CB3\u5E02", "c": "411100", "p": "410000" }, + "411200": { "l": "S", "n": "\u4E09\u95E8\u5CE1\u5E02", "c": "411200", "p": "410000" }, + "411300": { "l": "N", "n": "\u5357\u9633\u5E02", "c": "411300", "p": "410000" }, + "411400": { "l": "S", "n": "\u5546\u4E18\u5E02", "c": "411400", "p": "410000" }, + "411500": { "l": "X", "n": "\u4FE1\u9633\u5E02", "c": "411500", "p": "410000" }, + "411600": { "l": "Z", "n": "\u5468\u53E3\u5E02", "c": "411600", "p": "410000" }, + "411700": { "l": "Z", "n": "\u9A7B\u9A6C\u5E97\u5E02", "c": "411700", "p": "410000" }, + "419001": { "l": "J", "n": "\u6D4E\u6E90\u5E02", "c": "419001", "p": "410000" }, + "420100": { "l": "W", "n": "\u6B66\u6C49\u5E02", "c": "420100", "p": "420000" }, + "420200": { "l": "H", "n": "\u9EC4\u77F3\u5E02", "c": "420200", "p": "420000" }, + "420300": { "l": "S", "n": "\u5341\u5830\u5E02", "c": "420300", "p": "420000" }, + "420500": { "l": "Y", "n": "\u5B9C\u660C\u5E02", "c": "420500", "p": "420000" }, + "420600": { "l": "X", "n": "\u8944\u9633\u5E02", "c": "420600", "p": "420000" }, + "420700": { "l": "E", "n": "\u9102\u5DDE\u5E02", "c": "420700", "p": "420000" }, + "420800": { "l": "J", "n": "\u8346\u95E8\u5E02", "c": "420800", "p": "420000" }, + "420900": { "l": "X", "n": "\u5B5D\u611F\u5E02", "c": "420900", "p": "420000" }, + "421000": { "l": "J", "n": "\u8346\u5DDE\u5E02", "c": "421000", "p": "420000" }, + "421100": { "l": "H", "n": "\u9EC4\u5188\u5E02", "c": "421100", "p": "420000" }, + "421200": { "l": "X", "n": "\u54B8\u5B81\u5E02", "c": "421200", "p": "420000" }, + "421300": { "l": "S", "n": "\u968F\u5DDE\u5E02", "c": "421300", "p": "420000" }, + "422800": { "l": "E", "n": "\u6069\u65BD\u571F\u5BB6\u65CF\u82D7\u65CF\u81EA\u6CBB\u5DDE", "c": "422800", "p": "420000" }, + "429004": { "l": "X", "n": "\u4ED9\u6843\u5E02", "c": "429004", "p": "420000" }, + "429005": { "l": "Q", "n": "\u6F5C\u6C5F\u5E02", "c": "429005", "p": "420000" }, + "429006": { "l": "T", "n": "\u5929\u95E8\u5E02", "c": "429006", "p": "420000" }, + "429021": { "l": "S", "n": "\u795E\u519C\u67B6\u6797\u533A", "c": "429021", "p": "420000" }, + "430100": { "l": "C", "n": "\u957F\u6C99\u5E02", "c": "430100", "p": "430000" }, + "430200": { "l": "Z", "n": "\u682A\u6D32\u5E02", "c": "430200", "p": "430000" }, + "430300": { "l": "X", "n": "\u6E58\u6F6D\u5E02", "c": "430300", "p": "430000" }, + "430400": { "l": "H", "n": "\u8861\u9633\u5E02", "c": "430400", "p": "430000" }, + "430500": { "l": "S", "n": "\u90B5\u9633\u5E02", "c": "430500", "p": "430000" }, + "430600": { "l": "Y", "n": "\u5CB3\u9633\u5E02", "c": "430600", "p": "430000" }, + "430700": { "l": "C", "n": "\u5E38\u5FB7\u5E02", "c": "430700", "p": "430000" }, + "430800": { "l": "Z", "n": "\u5F20\u5BB6\u754C\u5E02", "c": "430800", "p": "430000" }, + "430900": { "l": "Y", "n": "\u76CA\u9633\u5E02", "c": "430900", "p": "430000" }, + "431000": { "l": "C", "n": "\u90F4\u5DDE\u5E02", "c": "431000", "p": "430000" }, + "431100": { "l": "Y", "n": "\u6C38\u5DDE\u5E02", "c": "431100", "p": "430000" }, + "431200": { "l": "H", "n": "\u6000\u5316\u5E02", "c": "431200", "p": "430000" }, + "431300": { "l": "L", "n": "\u5A04\u5E95\u5E02", "c": "431300", "p": "430000" }, + "433100": { "l": "X", "n": "\u6E58\u897F\u571F\u5BB6\u65CF\u82D7\u65CF\u81EA\u6CBB\u5DDE", "c": "433100", "p": "430000" }, + "440100": { "l": "G", "n": "\u5E7F\u5DDE\u5E02", "c": "440100", "p": "440000" }, + "440200": { "l": "S", "n": "\u97F6\u5173\u5E02", "c": "440200", "p": "440000" }, + "440300": { "l": "S", "n": "\u6DF1\u5733\u5E02", "c": "440300", "p": "440000" }, + "440400": { "l": "Z", "n": "\u73E0\u6D77\u5E02", "c": "440400", "p": "440000" }, + "440500": { "l": "S", "n": "\u6C55\u5934\u5E02", "c": "440500", "p": "440000" }, + "440600": { "l": "F", "n": "\u4F5B\u5C71\u5E02", "c": "440600", "p": "440000" }, + "440700": { "l": "J", "n": "\u6C5F\u95E8\u5E02", "c": "440700", "p": "440000" }, + "440800": { "l": "Z", "n": "\u6E5B\u6C5F\u5E02", "c": "440800", "p": "440000" }, + "440900": { "l": "M", "n": "\u8302\u540D\u5E02", "c": "440900", "p": "440000" }, + "441200": { "l": "Z", "n": "\u8087\u5E86\u5E02", "c": "441200", "p": "440000" }, + "441300": { "l": "H", "n": "\u60E0\u5DDE\u5E02", "c": "441300", "p": "440000" }, + "441400": { "l": "M", "n": "\u6885\u5DDE\u5E02", "c": "441400", "p": "440000" }, + "441500": { "l": "S", "n": "\u6C55\u5C3E\u5E02", "c": "441500", "p": "440000" }, + "441600": { "l": "H", "n": "\u6CB3\u6E90\u5E02", "c": "441600", "p": "440000" }, + "441700": { "l": "Y", "n": "\u9633\u6C5F\u5E02", "c": "441700", "p": "440000" }, + "441800": { "l": "Q", "n": "\u6E05\u8FDC\u5E02", "c": "441800", "p": "440000" }, + "441900": { "l": "D", "n": "\u4E1C\u839E\u5E02", "c": "441900", "p": "440000" }, + "442000": { "l": "Z", "n": "\u4E2D\u5C71\u5E02", "c": "442000", "p": "440000" }, + "445100": { "l": "C", "n": "\u6F6E\u5DDE\u5E02", "c": "445100", "p": "440000" }, + "445200": { "l": "J", "n": "\u63ED\u9633\u5E02", "c": "445200", "p": "440000" }, + "445300": { "l": "Y", "n": "\u4E91\u6D6E\u5E02", "c": "445300", "p": "440000" }, + "450100": { "l": "N", "n": "\u5357\u5B81\u5E02", "c": "450100", "p": "450000" }, + "450200": { "l": "L", "n": "\u67F3\u5DDE\u5E02", "c": "450200", "p": "450000" }, + "450300": { "l": "G", "n": "\u6842\u6797\u5E02", "c": "450300", "p": "450000" }, + "450400": { "l": "W", "n": "\u68A7\u5DDE\u5E02", "c": "450400", "p": "450000" }, + "450500": { "l": "B", "n": "\u5317\u6D77\u5E02", "c": "450500", "p": "450000" }, + "450600": { "l": "F", "n": "\u9632\u57CE\u6E2F\u5E02", "c": "450600", "p": "450000" }, + "450700": { "l": "Q", "n": "\u94A6\u5DDE\u5E02", "c": "450700", "p": "450000" }, + "450800": { "l": "G", "n": "\u8D35\u6E2F\u5E02", "c": "450800", "p": "450000" }, + "450900": { "l": "Y", "n": "\u7389\u6797\u5E02", "c": "450900", "p": "450000" }, + "451000": { "l": "B", "n": "\u767E\u8272\u5E02", "c": "451000", "p": "450000" }, + "451100": { "l": "H", "n": "\u8D3A\u5DDE\u5E02", "c": "451100", "p": "450000" }, + "451200": { "l": "H", "n": "\u6CB3\u6C60\u5E02", "c": "451200", "p": "450000" }, + "451300": { "l": "L", "n": "\u6765\u5BBE\u5E02", "c": "451300", "p": "450000" }, + "451400": { "l": "C", "n": "\u5D07\u5DE6\u5E02", "c": "451400", "p": "450000" }, + "460100": { "l": "H", "n": "\u6D77\u53E3\u5E02", "c": "460100", "p": "460000" }, + "460200": { "l": "S", "n": "\u4E09\u4E9A\u5E02", "c": "460200", "p": "460000" }, + "460300": { "l": "S", "n": "\u4E09\u6C99\u5E02", "c": "460300", "p": "460000" }, + "460400": { "l": "D", "n": "\u510B\u5DDE\u5E02", "c": "460400", "p": "460000" }, + "469001": { "l": "W", "n": "\u4E94\u6307\u5C71\u5E02", "c": "469001", "p": "460000" }, + "469002": { "l": "Q", "n": "\u743C\u6D77\u5E02", "c": "469002", "p": "460000" }, + "469005": { "l": "W", "n": "\u6587\u660C\u5E02", "c": "469005", "p": "460000" }, + "469006": { "l": "W", "n": "\u4E07\u5B81\u5E02", "c": "469006", "p": "460000" }, + "469007": { "l": "D", "n": "\u4E1C\u65B9\u5E02", "c": "469007", "p": "460000" }, + "469021": { "l": "D", "n": "\u5B9A\u5B89\u53BF", "c": "469021", "p": "460000" }, + "469022": { "l": "T", "n": "\u5C6F\u660C\u53BF", "c": "469022", "p": "460000" }, + "469023": { "l": "C", "n": "\u6F84\u8FC8\u53BF", "c": "469023", "p": "460000" }, + "469024": { "l": "L", "n": "\u4E34\u9AD8\u53BF", "c": "469024", "p": "460000" }, + "469025": { "l": "B", "n": "\u767D\u6C99\u9ECE\u65CF\u81EA\u6CBB\u53BF", "c": "469025", "p": "460000" }, + "469026": { "l": "C", "n": "\u660C\u6C5F\u9ECE\u65CF\u81EA\u6CBB\u53BF", "c": "469026", "p": "460000" }, + "469027": { "l": "L", "n": "\u4E50\u4E1C\u9ECE\u65CF\u81EA\u6CBB\u53BF", "c": "469027", "p": "460000" }, + "469028": { "l": "L", "n": "\u9675\u6C34\u9ECE\u65CF\u81EA\u6CBB\u53BF", "c": "469028", "p": "460000" }, + "469029": { "l": "B", "n": "\u4FDD\u4EAD\u9ECE\u65CF\u82D7\u65CF\u81EA\u6CBB\u53BF", "c": "469029", "p": "460000" }, + "469030": { "l": "Q", "n": "\u743C\u4E2D\u9ECE\u65CF\u82D7\u65CF\u81EA\u6CBB\u53BF", "c": "469030", "p": "460000" }, + "500000": { "l": "C", "n": "\u91CD\u5E86\u5E02", "c": "500000", "p": "86" }, + "510100": { "l": "C", "n": "\u6210\u90FD\u5E02", "c": "510100", "p": "510000" }, + "510300": { "l": "Z", "n": "\u81EA\u8D21\u5E02", "c": "510300", "p": "510000" }, + "510400": { "l": "P", "n": "\u6500\u679D\u82B1\u5E02", "c": "510400", "p": "510000" }, + "510500": { "l": "L", "n": "\u6CF8\u5DDE\u5E02", "c": "510500", "p": "510000" }, + "510600": { "l": "D", "n": "\u5FB7\u9633\u5E02", "c": "510600", "p": "510000" }, + "510700": { "l": "M", "n": "\u7EF5\u9633\u5E02", "c": "510700", "p": "510000" }, + "510800": { "l": "G", "n": "\u5E7F\u5143\u5E02", "c": "510800", "p": "510000" }, + "510900": { "l": "S", "n": "\u9042\u5B81\u5E02", "c": "510900", "p": "510000" }, + "511000": { "l": "N", "n": "\u5185\u6C5F\u5E02", "c": "511000", "p": "510000" }, + "511100": { "l": "L", "n": "\u4E50\u5C71\u5E02", "c": "511100", "p": "510000" }, + "511300": { "l": "N", "n": "\u5357\u5145\u5E02", "c": "511300", "p": "510000" }, + "511400": { "l": "M", "n": "\u7709\u5C71\u5E02", "c": "511400", "p": "510000" }, + "511500": { "l": "Y", "n": "\u5B9C\u5BBE\u5E02", "c": "511500", "p": "510000" }, + "511600": { "l": "G", "n": "\u5E7F\u5B89\u5E02", "c": "511600", "p": "510000" }, + "511700": { "l": "D", "n": "\u8FBE\u5DDE\u5E02", "c": "511700", "p": "510000" }, + "511800": { "l": "Y", "n": "\u96C5\u5B89\u5E02", "c": "511800", "p": "510000" }, + "511900": { "l": "B", "n": "\u5DF4\u4E2D\u5E02", "c": "511900", "p": "510000" }, + "512000": { "l": "Z", "n": "\u8D44\u9633\u5E02", "c": "512000", "p": "510000" }, + "513200": { "l": "A", "n": "\u963F\u575D\u85CF\u65CF\u7F8C\u65CF\u81EA\u6CBB\u5DDE", "c": "513200", "p": "510000" }, + "513300": { "l": "G", "n": "\u7518\u5B5C\u85CF\u65CF\u81EA\u6CBB\u5DDE", "c": "513300", "p": "510000" }, + "513400": { "l": "L", "n": "\u51C9\u5C71\u5F5D\u65CF\u81EA\u6CBB\u5DDE", "c": "513400", "p": "510000" }, + "520100": { "l": "G", "n": "\u8D35\u9633\u5E02", "c": "520100", "p": "520000" }, + "520200": { "l": "L", "n": "\u516D\u76D8\u6C34\u5E02", "c": "520200", "p": "520000" }, + "520300": { "l": "Z", "n": "\u9075\u4E49\u5E02", "c": "520300", "p": "520000" }, + "520400": { "l": "A", "n": "\u5B89\u987A\u5E02", "c": "520400", "p": "520000" }, + "520500": { "l": "B", "n": "\u6BD5\u8282\u5E02", "c": "520500", "p": "520000" }, + "520600": { "l": "T", "n": "\u94DC\u4EC1\u5E02", "c": "520600", "p": "520000" }, + "522300": { "l": "Q", "n": "\u9ED4\u897F\u5357\u5E03\u4F9D\u65CF\u82D7\u65CF\u81EA\u6CBB\u5DDE", "c": "522300", "p": "520000" }, + "522600": { "l": "Q", "n": "\u9ED4\u4E1C\u5357\u82D7\u65CF\u4F97\u65CF\u81EA\u6CBB\u5DDE", "c": "522600", "p": "520000" }, + "522700": { "l": "Q", "n": "\u9ED4\u5357\u5E03\u4F9D\u65CF\u82D7\u65CF\u81EA\u6CBB\u5DDE", "c": "522700", "p": "520000" }, + "530100": { "l": "K", "n": "\u6606\u660E\u5E02", "c": "530100", "p": "530000" }, + "530300": { "l": "Q", "n": "\u66F2\u9756\u5E02", "c": "530300", "p": "530000" }, + "530400": { "l": "Y", "n": "\u7389\u6EAA\u5E02", "c": "530400", "p": "530000" }, + "530500": { "l": "B", "n": "\u4FDD\u5C71\u5E02", "c": "530500", "p": "530000" }, + "530600": { "l": "Z", "n": "\u662D\u901A\u5E02", "c": "530600", "p": "530000" }, + "530700": { "l": "L", "n": "\u4E3D\u6C5F\u5E02", "c": "530700", "p": "530000" }, + "530800": { "l": "P", "n": "\u666E\u6D31\u5E02", "c": "530800", "p": "530000" }, + "530900": { "l": "L", "n": "\u4E34\u6CA7\u5E02", "c": "530900", "p": "530000" }, + "532300": { "l": "C", "n": "\u695A\u96C4\u5F5D\u65CF\u81EA\u6CBB\u5DDE", "c": "532300", "p": "530000" }, + "532500": { "l": "H", "n": "\u7EA2\u6CB3\u54C8\u5C3C\u65CF\u5F5D\u65CF\u81EA\u6CBB\u5DDE", "c": "532500", "p": "530000" }, + "532600": { "l": "W", "n": "\u6587\u5C71\u58EE\u65CF\u82D7\u65CF\u81EA\u6CBB\u5DDE", "c": "532600", "p": "530000" }, + "532800": { "l": "X", "n": "\u897F\u53CC\u7248\u7EB3\u50A3\u65CF\u81EA\u6CBB\u5DDE", "c": "532800", "p": "530000" }, + "532900": { "l": "D", "n": "\u5927\u7406\u767D\u65CF\u81EA\u6CBB\u5DDE", "c": "532900", "p": "530000" }, + "533100": { "l": "D", "n": "\u5FB7\u5B8F\u50A3\u65CF\u666F\u9887\u65CF\u81EA\u6CBB\u5DDE", "c": "533100", "p": "530000" }, + "533300": { "l": "N", "n": "\u6012\u6C5F\u5088\u50F3\u65CF\u81EA\u6CBB\u5DDE", "c": "533300", "p": "530000" }, + "533400": { "l": "D", "n": "\u8FEA\u5E86\u85CF\u65CF\u81EA\u6CBB\u5DDE", "c": "533400", "p": "530000" }, + "540100": { "l": "L", "n": "\u62C9\u8428\u5E02", "c": "540100", "p": "540000" }, + "540200": { "l": "R", "n": "\u65E5\u5580\u5219\u5E02", "c": "540200", "p": "540000" }, + "540300": { "l": "C", "n": "\u660C\u90FD\u5E02", "c": "540300", "p": "540000" }, + "540400": { "l": "L", "n": "\u6797\u829D\u5E02", "c": "540400", "p": "540000" }, + "540500": { "l": "S", "n": "\u5C71\u5357\u5E02", "c": "540500", "p": "540000" }, + "542400": { "l": "N", "n": "\u90A3\u66F2\u5730\u533A", "c": "542400", "p": "540000" }, + "542500": { "l": "A", "n": "\u963F\u91CC\u5730\u533A", "c": "542500", "p": "540000" }, + "610100": { "l": "X", "n": "\u897F\u5B89\u5E02", "c": "610100", "p": "610000" }, + "610200": { "l": "T", "n": "\u94DC\u5DDD\u5E02", "c": "610200", "p": "610000" }, + "610300": { "l": "B", "n": "\u5B9D\u9E21\u5E02", "c": "610300", "p": "610000" }, + "610400": { "l": "X", "n": "\u54B8\u9633\u5E02", "c": "610400", "p": "610000" }, + "610500": { "l": "W", "n": "\u6E2D\u5357\u5E02", "c": "610500", "p": "610000" }, + "610600": { "l": "Y", "n": "\u5EF6\u5B89\u5E02", "c": "610600", "p": "610000" }, + "610700": { "l": "H", "n": "\u6C49\u4E2D\u5E02", "c": "610700", "p": "610000" }, + "610800": { "l": "Y", "n": "\u6986\u6797\u5E02", "c": "610800", "p": "610000" }, + "610900": { "l": "A", "n": "\u5B89\u5EB7\u5E02", "c": "610900", "p": "610000" }, + "611000": { "l": "S", "n": "\u5546\u6D1B\u5E02", "c": "611000", "p": "610000" }, + "620100": { "l": "L", "n": "\u5170\u5DDE\u5E02", "c": "620100", "p": "620000" }, + "620200": { "l": "J", "n": "\u5609\u5CEA\u5173\u5E02", "c": "620200", "p": "620000" }, + "620300": { "l": "J", "n": "\u91D1\u660C\u5E02", "c": "620300", "p": "620000" }, + "620400": { "l": "B", "n": "\u767D\u94F6\u5E02", "c": "620400", "p": "620000" }, + "620500": { "l": "T", "n": "\u5929\u6C34\u5E02", "c": "620500", "p": "620000" }, + "620600": { "l": "W", "n": "\u6B66\u5A01\u5E02", "c": "620600", "p": "620000" }, + "620700": { "l": "Z", "n": "\u5F20\u6396\u5E02", "c": "620700", "p": "620000" }, + "620800": { "l": "P", "n": "\u5E73\u51C9\u5E02", "c": "620800", "p": "620000" }, + "620900": { "l": "J", "n": "\u9152\u6CC9\u5E02", "c": "620900", "p": "620000" }, + "621000": { "l": "Q", "n": "\u5E86\u9633\u5E02", "c": "621000", "p": "620000" }, + "621100": { "l": "D", "n": "\u5B9A\u897F\u5E02", "c": "621100", "p": "620000" }, + "621200": { "l": "L", "n": "\u9647\u5357\u5E02", "c": "621200", "p": "620000" }, + "622900": { "l": "L", "n": "\u4E34\u590F\u56DE\u65CF\u81EA\u6CBB\u5DDE", "c": "622900", "p": "620000" }, + "623000": { "l": "G", "n": "\u7518\u5357\u85CF\u65CF\u81EA\u6CBB\u5DDE", "c": "623000", "p": "620000" }, + "630100": { "l": "X", "n": "\u897F\u5B81\u5E02", "c": "630100", "p": "630000" }, + "630200": { "l": "H", "n": "\u6D77\u4E1C\u5E02", "c": "630200", "p": "630000" }, + "632200": { "l": "H", "n": "\u6D77\u5317\u85CF\u65CF\u81EA\u6CBB\u5DDE", "c": "632200", "p": "630000" }, + "632300": { "l": "H", "n": "\u9EC4\u5357\u85CF\u65CF\u81EA\u6CBB\u5DDE", "c": "632300", "p": "630000" }, + "632500": { "l": "H", "n": "\u6D77\u5357\u85CF\u65CF\u81EA\u6CBB\u5DDE", "c": "632500", "p": "630000" }, + "632600": { "l": "G", "n": "\u679C\u6D1B\u85CF\u65CF\u81EA\u6CBB\u5DDE", "c": "632600", "p": "630000" }, + "632700": { "l": "Y", "n": "\u7389\u6811\u85CF\u65CF\u81EA\u6CBB\u5DDE", "c": "632700", "p": "630000" }, + "632800": { "l": "H", "n": "\u6D77\u897F\u8499\u53E4\u65CF\u85CF\u65CF\u81EA\u6CBB\u5DDE", "c": "632800", "p": "630000" }, + "640100": { "l": "Y", "n": "\u94F6\u5DDD\u5E02", "c": "640100", "p": "640000" }, + "640200": { "l": "S", "n": "\u77F3\u5634\u5C71\u5E02", "c": "640200", "p": "640000" }, + "640300": { "l": "W", "n": "\u5434\u5FE0\u5E02", "c": "640300", "p": "640000" }, + "640400": { "l": "G", "n": "\u56FA\u539F\u5E02", "c": "640400", "p": "640000" }, + "640500": { "l": "Z", "n": "\u4E2D\u536B\u5E02", "c": "640500", "p": "640000" }, + "650100": { "l": "W", "n": "\u4E4C\u9C81\u6728\u9F50\u5E02", "c": "650100", "p": "650000" }, + "650200": { "l": "K", "n": "\u514B\u62C9\u739B\u4F9D\u5E02", "c": "650200", "p": "650000" }, + "650400": { "l": "T", "n": "\u5410\u9C81\u756A\u5E02", "c": "650400", "p": "650000" }, + "650500": { "l": "H", "n": "\u54C8\u5BC6\u5E02", "c": "650500", "p": "650000" }, + "652300": { "l": "C", "n": "\u660C\u5409\u56DE\u65CF\u81EA\u6CBB\u5DDE", "c": "652300", "p": "650000" }, + "652700": { "l": "B", "n": "\u535A\u5C14\u5854\u62C9\u8499\u53E4\u81EA\u6CBB\u5DDE", "c": "652700", "p": "650000" }, + "652800": { "l": "B", "n": "\u5DF4\u97F3\u90ED\u695E\u8499\u53E4\u81EA\u6CBB\u5DDE", "c": "652800", "p": "650000" }, + "652900": { "l": "A", "n": "\u963F\u514B\u82CF\u5730\u533A", "c": "652900", "p": "650000" }, + "653000": { "l": "K", "n": "\u514B\u5B5C\u52D2\u82CF\u67EF\u5C14\u514B\u5B5C\u81EA\u6CBB\u5DDE", "c": "653000", "p": "650000" }, + "653100": { "l": "K", "n": "\u5580\u4EC0\u5730\u533A", "c": "653100", "p": "650000" }, + "653200": { "l": "H", "n": "\u548C\u7530\u5730\u533A", "c": "653200", "p": "650000" }, + "654000": { "l": "Y", "n": "\u4F0A\u7281\u54C8\u8428\u514B\u81EA\u6CBB\u5DDE", "c": "654000", "p": "650000" }, + "654200": { "l": "T", "n": "\u5854\u57CE\u5730\u533A", "c": "654200", "p": "650000" }, + "654300": { "l": "A", "n": "\u963F\u52D2\u6CF0\u5730\u533A", "c": "654300", "p": "650000" }, + "659001": { "l": "S", "n": "\u77F3\u6CB3\u5B50\u5E02", "c": "659001", "p": "650000" }, + "659002": { "l": "A", "n": "\u963F\u62C9\u5C14\u5E02", "c": "659002", "p": "650000" }, + "659003": { "l": "T", "n": "\u56FE\u6728\u8212\u514B\u5E02", "c": "659003", "p": "650000" }, + "659004": { "l": "W", "n": "\u4E94\u5BB6\u6E20\u5E02", "c": "659004", "p": "650000" }, + "659006": { "l": "T", "n": "\u94C1\u95E8\u5173\u5E02", "c": "659006", "p": "650000" }, + "710101": { "l": "J", "n": "\u91D1\u95E8", "c": "710101", "p": "710000" }, + "710102": { "l": "L", "n": "\u8FDE\u6C5F", "c": "710102", "p": "710000" }, + "710103": { "l": "M", "n": "\u82D7\u6817", "c": "710103", "p": "710000" }, + "710104": { "l": "N", "n": "\u5357\u6295", "c": "710104", "p": "710000" }, + "710105": { "l": "P", "n": "\u6F8E\u6E56", "c": "710105", "p": "710000" }, + "710106": { "l": "P", "n": "\u5C4F\u4E1C", "c": "710106", "p": "710000" }, + "710107": { "l": "T", "n": "\u53F0\u4E1C", "c": "710107", "p": "710000" }, + "710108": { "l": "T", "n": "\u53F0\u4E2D", "c": "710108", "p": "710000" }, + "710109": { "l": "T", "n": "\u53F0\u5357", "c": "710109", "p": "710000" }, + "710110": { "l": "T", "n": "\u53F0\u5317", "c": "710110", "p": "710000" }, + "710111": { "l": "T", "n": "\u6843\u56ED", "c": "710111", "p": "710000" }, + "710112": { "l": "Y", "n": "\u4E91\u6797", "c": "710112", "p": "710000" }, + "710113": { "l": "X", "n": "\u65B0\u5317", "c": "710113", "p": "710000" }, + "710114": { "l": "Z", "n": "\u5F70\u5316", "c": "710114", "p": "710000" }, + "710115": { "l": "J", "n": "\u5609\u4E49", "c": "710115", "p": "710000" }, + "710116": { "l": "X", "n": "\u65B0\u7AF9", "c": "710116", "p": "710000" }, + "710117": { "l": "H", "n": "\u82B1\u83B2", "c": "710117", "p": "710000" }, + "710118": { "l": "Y", "n": "\u5B9C\u5170", "c": "710118", "p": "710000" }, + "710119": { "l": "G", "n": "\u9AD8\u96C4", "c": "710119", "p": "710000" }, + "710120": { "l": "J", "n": "\u57FA\u9686", "c": "710120", "p": "710000" }, + "810000": { "l": "X", "n": "\u9999\u6E2F\u7279\u522B\u884C\u653F\u533A", "c": "810000", "p": "86" }, + "820000": { "l": "A", "n": "\u6FB3\u95E8\u7279\u522B\u884C\u653F\u533A", "c": "820000", "p": "86" } +}; +function getCityName(name2) { + return name2.replace("\u5E02", "").replace("\u5730\u533A", "").replace("\u7279\u522B\u884C\u653F\u533A", ""); +} +function handleGetCities() { + const cData = deepCopy(cityData); + const cities = []; + for (let cid in cData) { + const city = cData[cid]; + city.n = getCityName(city.n); + cities.push(city); + } + return cities; +} +function handleGetCodeByName(cities, name2) { + if (!name2) + return ""; + const info = cities.find((item) => item.n === name2); + if (info) { + return info.c; + } else { + console.error(`[View UI warn]: City name error.`); + return ""; + } +} +function handleGetNameByCode(cities, code) { + const info = cities.find((item) => item.c === code); + return info.n; +} +const _sfc_main$1O = { + name: "City", + mixins: [mixinsForm], + components: { Dropdown, DropdownMenu, Select, Option: iOption, Tag, Icon, RadioGroup, Radio }, + emits: ["on-change", "update:modelValue"], + props: { + modelValue: { + type: String + }, + useName: { + type: Boolean, + default: false + }, + cities: { + type: Array, + default() { + return []; + } + }, + disabled: { + type: Boolean, + default: false + }, + clearable: { + type: Boolean, + default: false + }, + showSuffix: { + type: Boolean, + default: false + }, + size: { + validator(value) { + return oneOf(value, ["small", "large", "default"]); + }, + default() { + const global2 = getCurrentInstance().appContext.config.globalProperties; + return !global2.$VIEWUI || global2.$VIEWUI.size === "" ? "default" : global2.$VIEWUI.size; + } + }, + transfer: { + type: Boolean, + default() { + const global2 = getCurrentInstance().appContext.config.globalProperties; + return !global2.$VIEWUI || global2.$VIEWUI.transfer === "" ? false : global2.$VIEWUI.transfer; + } + }, + name: { + type: String + }, + elementId: { + type: String + }, + placeholder: { + type: String, + default: "\u8BF7\u9009\u62E9" + }, + searchPlaceholder: { + type: String, + default: "\u8F93\u5165\u57CE\u5E02\u540D\u79F0\u641C\u7D22" + }, + transferClassName: { + type: String + } + }, + data() { + const allCities = handleGetCities(); + const value = this.useName ? handleGetCodeByName(allCities, this.modelValue) : this.modelValue; + return { + currentValue: value, + visible: false, + provinceList: [], + cityListByProvince: [], + cityListByLetter: {}, + allCities, + listType: "province", + queryCity: "" + }; + }, + watch: { + modelValue(val) { + const value = this.useName ? handleGetCodeByName(this.allCities, val) : val; + this.currentValue = value; + } + }, + computed: { + showCloseIcon() { + return this.currentValue && this.clearable && !this.itemDisabled; + }, + classes() { + return [ + { + ["ivu-city-show-clear"]: this.showCloseIcon, + [`ivu-city-size-${this.size}`]: !!this.size, + ["ivu-city-visible"]: this.visible, + ["ivu-city-disabled"]: this.itemDisabled + } + ]; + }, + transferClasses() { + let classes = "ivu-city-transfer"; + if (this.transferClassName) + classes += ` ${this.transferClassName}`; + return classes; + }, + relCities() { + const cities = []; + if (this.cities.length) { + this.cities.forEach((item) => { + const newItem = cityData[item]; + newItem.n = getCityName(newItem.n); + cities.push(newItem); + }); + } + return cities; + }, + codeToName() { + if (!this.currentValue) + return this.placeholder; + const n = cityData[this.currentValue].n; + return this.showSuffix ? n : getCityName(n); + } + }, + methods: { + handleSelect(val) { + if (val) { + this.handleChangeValue(val); + nextTick(() => { + this.queryCity = ""; + }); + } + }, + handleChangeValue(val) { + this.currentValue = val; + this.visible = false; + const value = this.useName ? handleGetNameByCode(this.allCities, val) : val; + this.$emit("update:modelValue", value); + this.$emit("on-change", cityData[val]); + this.handleFormItemChange("change", val); + }, + handleClickLetter(l) { + let letter = l; + if (letter === "\u76F4\u8F96\u5E02") + letter = "Z1"; + else if (letter === "\u6E2F\u6FB3") + letter = "Z2"; + const className = `.ivu-city-${letter}`; + const $list = this.$refs.list; + const $letter = $list.querySelectorAll(className)[0]; + const offsetTop = $letter.offsetTop; + const listTop = $list.offsetTop; + $list.scrollTop = offsetTop - listTop; + }, + clearSelect() { + if (this.itemDisabled) + return false; + }, + handleToggleOpen() { + if (this.itemDisabled) + return false; + this.visible = !this.visible; + }, + handleVisibleChange(visible) { + this.visible = visible; + }, + handleClickOutside(e) { + if (this.$refs.city.contains(e.target)) + return; + this.visible = false; + }, + handleGetProvinceByLetter() { + const provinces = { + A: { + n: "A", + p: [], + c: [] + }, + F: { + n: "F", + p: [], + c: [] + }, + G: { + n: "G", + p: [], + c: [] + }, + H: { + n: "H", + p: [], + c: [] + }, + J: { + n: "J", + p: [], + c: [] + }, + L: { + n: "L", + p: [], + c: [] + }, + N: { + n: "N", + p: [], + c: [] + }, + Q: { + n: "Q", + p: [], + c: [] + }, + S: { + n: "S", + p: [], + c: [] + }, + T: { + n: "T", + p: [], + c: [] + }, + X: { + n: "X", + p: [], + c: [] + }, + Y: { + n: "Y", + p: [], + c: [] + }, + Z: { + n: "Z", + p: [], + c: [] + }, + Z1: { + n: "\u76F4\u8F96\u5E02", + p: [], + c: [] + }, + Z2: { + n: "\u6E2F\u6FB3", + p: [], + c: [] + } + }; + for (let c in provinceData) { + const item = provinceData[c]; + provinces[item.l].p.push(item); + } + this.provinceList = provinces; + }, + handleGetCityByProvince() { + const provinceList = deepCopy(this.provinceList); + const cityListByProvince = []; + const cData = deepCopy(cityData); + const otherCities = [ + { + p: { + n: "\u76F4\u8F96\u5E02", + p: "86", + l: "Z1" + }, + c: [] + }, + { + p: { + n: "\u6E2F\u6FB3", + p: "86", + l: "Z2" + }, + c: [] + } + ]; + for (let letter in provinceList) { + const letterProvince = provinceList[letter]; + for (let i = 0; i < letterProvince.p.length; i++) { + const province = letterProvince.p[i]; + const pid = province.c; + const provinceCities = { + p: province, + c: [] + }; + for (let cid in cData) { + const city = cData[cid]; + city.n = getCityName(city.n); + if (pid === city.p) { + provinceCities.c.push(city); + } + } + if (letter === "Z1") { + otherCities[0].c.push(cData[pid]); + } else if (letter === "Z2") { + otherCities[1].c.push(cData[pid]); + } else { + cityListByProvince.push(provinceCities); + } + } + } + this.cityListByProvince = cityListByProvince.concat(otherCities); + }, + handleGetCityByLetter() { + const cData = deepCopy(cityData); + const cityListByLetter = { + A: [], + B: [], + C: [], + D: [], + E: [], + F: [], + G: [], + H: [], + J: [], + K: [], + L: [], + M: [], + N: [], + P: [], + Q: [], + R: [], + S: [], + T: [], + W: [], + X: [], + Y: [], + Z: [] + }; + for (let cid in cData) { + const city = cData[cid]; + city.n = getCityName(city.n); + cityListByLetter[city.l].push(city); + } + this.cityListByLetter = cityListByLetter; + } + }, + created() { + this.handleGetProvinceByLetter(); + this.handleGetCityByProvince(); + this.handleGetCityByLetter(); + } +}; +const _hoisted_1$W = ["name", "value"]; +const _hoisted_2$B = { class: "ivu-city-drop" }; +const _hoisted_3$t = { + key: 0, + class: "ivu-city-drop-cities" +}; +const _hoisted_4$n = ["onClick"]; +const _hoisted_5$f = { class: "ivu-city-drop-menu" }; +const _hoisted_6$7 = { class: "ivu-city-drop-type" }; +const _hoisted_7$5 = { class: "ivu-city-drop-search" }; +const _hoisted_8$4 = { + key: 1, + class: "ivu-city-drop-list" +}; +const _hoisted_9$4 = { class: "ivu-city-drop-list-letter" }; +const _hoisted_10$3 = { + class: "ivu-city-drop-list-main", + ref: "list" +}; +const _hoisted_11$3 = ["onClick"]; +const _hoisted_12$3 = { + key: 2, + class: "ivu-city-drop-list" +}; +const _hoisted_13$2 = { class: "ivu-city-drop-list-letter" }; +const _hoisted_14$2 = { + class: "ivu-city-drop-list-main ivu-city-drop-list-main-city", + ref: "list" +}; +const _hoisted_15$2 = ["onClick"]; +function _sfc_render$1A(_ctx, _cache, $props, $setup, $data, $options) { + const _component_Icon = resolveComponent("Icon"); + const _component_Radio = resolveComponent("Radio"); + const _component_RadioGroup = resolveComponent("RadioGroup"); + const _component_Option = resolveComponent("Option"); + const _component_Select = resolveComponent("Select"); + const _component_Tag = resolveComponent("Tag"); + const _component_DropdownMenu = resolveComponent("DropdownMenu"); + const _component_Dropdown = resolveComponent("Dropdown"); + return openBlock(), createElementBlock("div", { + class: normalizeClass(["ivu-city", $options.classes]), + ref: "city" + }, [ + createVNode(_component_Dropdown, { + trigger: "custom", + visible: $data.visible, + transfer: $props.transfer, + placement: "bottom-start", + "transfer-class-name": $options.transferClasses, + onOnVisibleChange: $options.handleVisibleChange, + onOnClickoutside: $options.handleClickOutside + }, { + list: withCtx(() => [ + createVNode(_component_DropdownMenu, { + onClick: _cache[3] || (_cache[3] = withModifiers(() => { + }, ["stop"])) + }, { + default: withCtx(() => [ + createElementVNode("div", _hoisted_2$B, [ + $props.cities.length ? (openBlock(), createElementBlock("div", _hoisted_3$t, [ + (openBlock(true), createElementBlock(Fragment, null, renderList($options.relCities, (item) => { + return openBlock(), createElementBlock("span", { + key: item.n, + onClick: ($event) => $options.handleChangeValue(item.c) + }, toDisplayString(item.n), 9, _hoisted_4$n); + }), 128)) + ])) : createCommentVNode("", true), + createElementVNode("div", _hoisted_5$f, [ + createElementVNode("div", _hoisted_6$7, [ + createVNode(_component_RadioGroup, { + modelValue: $data.listType, + "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => $data.listType = $event), + type: "button", + size: "small" + }, { + default: withCtx(() => [ + createVNode(_component_Radio, { label: "province" }, { + default: withCtx(() => [ + createTextVNode("\u6309\u7701\u4EFD") + ]), + _: 1 + }), + createVNode(_component_Radio, { label: "city" }, { + default: withCtx(() => [ + createTextVNode("\u6309\u57CE\u5E02") + ]), + _: 1 + }) + ]), + _: 1 + }, 8, ["modelValue"]) + ]), + createElementVNode("div", _hoisted_7$5, [ + createVNode(_component_Select, { + modelValue: $data.queryCity, + "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => $data.queryCity = $event), + filterable: "", + size: "small", + transfer: "", + placeholder: $props.searchPlaceholder, + onOnChange: $options.handleSelect + }, { + default: withCtx(() => [ + (openBlock(true), createElementBlock(Fragment, null, renderList($data.allCities, (item) => { + return openBlock(), createBlock(_component_Option, { + value: item.c, + key: item.c + }, { + default: withCtx(() => [ + createTextVNode(toDisplayString(item.n), 1) + ]), + _: 2 + }, 1032, ["value"]); + }), 128)) + ]), + _: 1 + }, 8, ["modelValue", "placeholder", "onOnChange"]) + ]) + ]), + $data.listType === "province" ? (openBlock(), createElementBlock("div", _hoisted_8$4, [ + createElementVNode("div", _hoisted_9$4, [ + (openBlock(true), createElementBlock(Fragment, null, renderList($data.provinceList, (item) => { + return openBlock(), createBlock(_component_Tag, { + onClick: ($event) => $options.handleClickLetter(item.n), + type: "border", + fade: false, + key: item.n + }, { + default: withCtx(() => [ + createTextVNode(toDisplayString(item.n), 1) + ]), + _: 2 + }, 1032, ["onClick"]); + }), 128)) + ]), + createElementVNode("div", _hoisted_10$3, [ + createElementVNode("dl", null, [ + (openBlock(true), createElementBlock(Fragment, null, renderList($data.cityListByProvince, (item) => { + return openBlock(), createElementBlock(Fragment, { + key: item.p.n + }, [ + createElementVNode("dt", { + class: normalizeClass("ivu-city-" + item.p.l) + }, toDisplayString(item.p.n) + "\uFF1A", 3), + createElementVNode("dd", null, [ + (openBlock(true), createElementBlock(Fragment, null, renderList(item.c, (city) => { + return openBlock(), createElementBlock("li", { + key: city.n, + onClick: ($event) => $options.handleChangeValue(city.c) + }, toDisplayString(city.n), 9, _hoisted_11$3); + }), 128)) + ]) + ], 64); + }), 128)) + ]) + ], 512) + ])) : createCommentVNode("", true), + $data.listType === "city" ? (openBlock(), createElementBlock("div", _hoisted_12$3, [ + createElementVNode("div", _hoisted_13$2, [ + (openBlock(true), createElementBlock(Fragment, null, renderList($data.cityListByLetter, (item, key2) => { + return openBlock(), createBlock(_component_Tag, { + onClick: ($event) => $options.handleClickLetter(key2), + type: "border", + fade: false, + key: key2 + }, { + default: withCtx(() => [ + createTextVNode(toDisplayString(key2), 1) + ]), + _: 2 + }, 1032, ["onClick"]); + }), 128)) + ]), + createElementVNode("div", _hoisted_14$2, [ + createElementVNode("dl", null, [ + (openBlock(true), createElementBlock(Fragment, null, renderList($data.cityListByLetter, (item, key2) => { + return openBlock(), createElementBlock(Fragment, { key: key2 }, [ + createElementVNode("dt", { + class: normalizeClass("ivu-city-" + key2) + }, toDisplayString(key2) + "\uFF1A", 3), + createElementVNode("dd", null, [ + (openBlock(true), createElementBlock(Fragment, null, renderList(item, (city) => { + return openBlock(), createElementBlock("li", { + key: city.n, + onClick: ($event) => $options.handleChangeValue(city.c) + }, toDisplayString(city.n), 9, _hoisted_15$2); + }), 128)) + ]) + ], 64); + }), 128)) + ]) + ], 512) + ])) : createCommentVNode("", true) + ]) + ]), + _: 1 + }) + ]), + default: withCtx(() => [ + createElementVNode("div", { + class: "ivu-city-rel", + onClick: _cache[0] || (_cache[0] = withModifiers((...args) => $options.handleToggleOpen && $options.handleToggleOpen(...args), ["prevent", "stop"])) + }, [ + createElementVNode("input", { + type: "hidden", + name: $props.name, + value: $data.currentValue + }, null, 8, _hoisted_1$W), + renderSlot(_ctx.$slots, "default", {}, () => [ + createElementVNode("span", null, toDisplayString($options.codeToName), 1), + withDirectives(createVNode(_component_Icon, { + type: "ios-close-circle", + class: "ivu-city-arrow", + onClick: withModifiers($options.clearSelect, ["stop"]) + }, null, 8, ["onClick"]), [ + [vShow, $options.showCloseIcon] + ]), + createVNode(_component_Icon, { + type: "ios-arrow-down", + class: "ivu-city-arrow" + }) + ]) + ]) + ]), + _: 3 + }, 8, ["visible", "transfer", "transfer-class-name", "onOnVisibleChange", "onOnClickoutside"]) + ], 2); +} +var City = /* @__PURE__ */ _export_sfc(_sfc_main$1O, [["render", _sfc_render$1A]]); +const prefixCls$V = "ivu-collapse"; +const _sfc_main$1N = { + name: "Collapse", + emits: ["on-change", "update:modelValue"], + provide() { + return { + CollapseInstance: this + }; + }, + props: { + accordion: { + type: Boolean, + default: false + }, + modelValue: { + type: [Array, String] + }, + simple: { + type: Boolean, + default: false + } + }, + data() { + return { + currentValue: this.modelValue, + panelCount: 0 + }; + }, + computed: { + classes() { + return [ + `${prefixCls$V}`, + { + [`${prefixCls$V}-simple`]: this.simple + } + ]; + } + }, + methods: { + getActiveKey() { + let activeKey = this.currentValue || []; + const accordion = this.accordion; + if (!Array.isArray(activeKey)) { + activeKey = [activeKey]; + } + if (accordion && activeKey.length > 1) { + activeKey = [activeKey[0]]; + } + for (let i = 0; i < activeKey.length; i++) { + activeKey[i] = activeKey[i].toString(); + } + return activeKey; + }, + toggle(data) { + const name2 = data.name.toString(); + let newActiveKey = []; + if (this.accordion) { + if (!data.isActive) { + newActiveKey.push(name2); + } + } else { + let activeKey = this.getActiveKey(); + const nameIndex = activeKey.indexOf(name2); + if (data.isActive) { + if (nameIndex > -1) { + activeKey.splice(nameIndex, 1); + } + } else { + if (nameIndex < 0) { + activeKey.push(name2); + } + } + newActiveKey = activeKey; + } + this.currentValue = newActiveKey; + this.$emit("update:modelValue", newActiveKey); + this.$emit("on-change", newActiveKey); + } + }, + watch: { + modelValue(val) { + this.currentValue = val; + } + } +}; +function _sfc_render$1z(_ctx, _cache, $props, $setup, $data, $options) { + return openBlock(), createElementBlock("div", { + class: normalizeClass($options.classes) + }, [ + renderSlot(_ctx.$slots, "default") + ], 2); +} +var Collapse = /* @__PURE__ */ _export_sfc(_sfc_main$1N, [["render", _sfc_render$1z]]); +function _typeof(obj) { + "@babel/helpers - typeof"; + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(obj2) { + return typeof obj2; + } : function(obj2) { + return obj2 && "function" == typeof Symbol && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2; + }, _typeof(obj); +} +var trimLeft = /^\s+/; +var trimRight = /\s+$/; +function tinycolor(color2, opts) { + color2 = color2 ? color2 : ""; + opts = opts || {}; + if (color2 instanceof tinycolor) { + return color2; + } + if (!(this instanceof tinycolor)) { + return new tinycolor(color2, opts); + } + var rgb = inputToRGB(color2); + this._originalInput = color2, this._r = rgb.r, this._g = rgb.g, this._b = rgb.b, this._a = rgb.a, this._roundA = Math.round(100 * this._a) / 100, this._format = opts.format || rgb.format; + this._gradientType = opts.gradientType; + if (this._r < 1) + this._r = Math.round(this._r); + if (this._g < 1) + this._g = Math.round(this._g); + if (this._b < 1) + this._b = Math.round(this._b); + this._ok = rgb.ok; +} +tinycolor.prototype = { + isDark: function isDark() { + return this.getBrightness() < 128; + }, + isLight: function isLight() { + return !this.isDark(); + }, + isValid: function isValid() { + return this._ok; + }, + getOriginalInput: function getOriginalInput() { + return this._originalInput; + }, + getFormat: function getFormat() { + return this._format; + }, + getAlpha: function getAlpha() { + return this._a; + }, + getBrightness: function getBrightness() { + var rgb = this.toRgb(); + return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1e3; + }, + getLuminance: function getLuminance() { + var rgb = this.toRgb(); + var RsRGB, GsRGB, BsRGB, R, G, B; + RsRGB = rgb.r / 255; + GsRGB = rgb.g / 255; + BsRGB = rgb.b / 255; + if (RsRGB <= 0.03928) + R = RsRGB / 12.92; + else + R = Math.pow((RsRGB + 0.055) / 1.055, 2.4); + if (GsRGB <= 0.03928) + G = GsRGB / 12.92; + else + G = Math.pow((GsRGB + 0.055) / 1.055, 2.4); + if (BsRGB <= 0.03928) + B = BsRGB / 12.92; + else + B = Math.pow((BsRGB + 0.055) / 1.055, 2.4); + return 0.2126 * R + 0.7152 * G + 0.0722 * B; + }, + setAlpha: function setAlpha(value) { + this._a = boundAlpha(value); + this._roundA = Math.round(100 * this._a) / 100; + return this; + }, + toHsv: function toHsv() { + var hsv = rgbToHsv(this._r, this._g, this._b); + return { + h: hsv.h * 360, + s: hsv.s, + v: hsv.v, + a: this._a + }; + }, + toHsvString: function toHsvString() { + var hsv = rgbToHsv(this._r, this._g, this._b); + var h2 = Math.round(hsv.h * 360), s = Math.round(hsv.s * 100), v = Math.round(hsv.v * 100); + return this._a == 1 ? "hsv(" + h2 + ", " + s + "%, " + v + "%)" : "hsva(" + h2 + ", " + s + "%, " + v + "%, " + this._roundA + ")"; + }, + toHsl: function toHsl() { + var hsl = rgbToHsl(this._r, this._g, this._b); + return { + h: hsl.h * 360, + s: hsl.s, + l: hsl.l, + a: this._a + }; + }, + toHslString: function toHslString() { + var hsl = rgbToHsl(this._r, this._g, this._b); + var h2 = Math.round(hsl.h * 360), s = Math.round(hsl.s * 100), l = Math.round(hsl.l * 100); + return this._a == 1 ? "hsl(" + h2 + ", " + s + "%, " + l + "%)" : "hsla(" + h2 + ", " + s + "%, " + l + "%, " + this._roundA + ")"; + }, + toHex: function toHex(allow3Char) { + return rgbToHex(this._r, this._g, this._b, allow3Char); + }, + toHexString: function toHexString(allow3Char) { + return "#" + this.toHex(allow3Char); + }, + toHex8: function toHex8(allow4Char) { + return rgbaToHex(this._r, this._g, this._b, this._a, allow4Char); + }, + toHex8String: function toHex8String(allow4Char) { + return "#" + this.toHex8(allow4Char); + }, + toRgb: function toRgb() { + return { + r: Math.round(this._r), + g: Math.round(this._g), + b: Math.round(this._b), + a: this._a + }; + }, + toRgbString: function toRgbString() { + return this._a == 1 ? "rgb(" + Math.round(this._r) + ", " + Math.round(this._g) + ", " + Math.round(this._b) + ")" : "rgba(" + Math.round(this._r) + ", " + Math.round(this._g) + ", " + Math.round(this._b) + ", " + this._roundA + ")"; + }, + toPercentageRgb: function toPercentageRgb() { + return { + r: Math.round(bound01(this._r, 255) * 100) + "%", + g: Math.round(bound01(this._g, 255) * 100) + "%", + b: Math.round(bound01(this._b, 255) * 100) + "%", + a: this._a + }; + }, + toPercentageRgbString: function toPercentageRgbString() { + return this._a == 1 ? "rgb(" + Math.round(bound01(this._r, 255) * 100) + "%, " + Math.round(bound01(this._g, 255) * 100) + "%, " + Math.round(bound01(this._b, 255) * 100) + "%)" : "rgba(" + Math.round(bound01(this._r, 255) * 100) + "%, " + Math.round(bound01(this._g, 255) * 100) + "%, " + Math.round(bound01(this._b, 255) * 100) + "%, " + this._roundA + ")"; + }, + toName: function toName() { + if (this._a === 0) { + return "transparent"; + } + if (this._a < 1) { + return false; + } + return hexNames[rgbToHex(this._r, this._g, this._b, true)] || false; + }, + toFilter: function toFilter(secondColor) { + var hex8String = "#" + rgbaToArgbHex(this._r, this._g, this._b, this._a); + var secondHex8String = hex8String; + var gradientType = this._gradientType ? "GradientType = 1, " : ""; + if (secondColor) { + var s = tinycolor(secondColor); + secondHex8String = "#" + rgbaToArgbHex(s._r, s._g, s._b, s._a); + } + return "progid:DXImageTransform.Microsoft.gradient(" + gradientType + "startColorstr=" + hex8String + ",endColorstr=" + secondHex8String + ")"; + }, + toString: function toString(format2) { + var formatSet = !!format2; + format2 = format2 || this._format; + var formattedString = false; + var hasAlpha = this._a < 1 && this._a >= 0; + var needsAlphaFormat = !formatSet && hasAlpha && (format2 === "hex" || format2 === "hex6" || format2 === "hex3" || format2 === "hex4" || format2 === "hex8" || format2 === "name"); + if (needsAlphaFormat) { + if (format2 === "name" && this._a === 0) { + return this.toName(); + } + return this.toRgbString(); + } + if (format2 === "rgb") { + formattedString = this.toRgbString(); + } + if (format2 === "prgb") { + formattedString = this.toPercentageRgbString(); + } + if (format2 === "hex" || format2 === "hex6") { + formattedString = this.toHexString(); + } + if (format2 === "hex3") { + formattedString = this.toHexString(true); + } + if (format2 === "hex4") { + formattedString = this.toHex8String(true); + } + if (format2 === "hex8") { + formattedString = this.toHex8String(); + } + if (format2 === "name") { + formattedString = this.toName(); + } + if (format2 === "hsl") { + formattedString = this.toHslString(); + } + if (format2 === "hsv") { + formattedString = this.toHsvString(); + } + return formattedString || this.toHexString(); + }, + clone: function clone() { + return tinycolor(this.toString()); + }, + _applyModification: function _applyModification(fn, args) { + var color2 = fn.apply(null, [this].concat([].slice.call(args))); + this._r = color2._r; + this._g = color2._g; + this._b = color2._b; + this.setAlpha(color2._a); + return this; + }, + lighten: function lighten() { + return this._applyModification(_lighten, arguments); + }, + brighten: function brighten() { + return this._applyModification(_brighten, arguments); + }, + darken: function darken() { + return this._applyModification(_darken, arguments); + }, + desaturate: function desaturate() { + return this._applyModification(_desaturate, arguments); + }, + saturate: function saturate() { + return this._applyModification(_saturate, arguments); + }, + greyscale: function greyscale() { + return this._applyModification(_greyscale, arguments); + }, + spin: function spin() { + return this._applyModification(_spin, arguments); + }, + _applyCombination: function _applyCombination(fn, args) { + return fn.apply(null, [this].concat([].slice.call(args))); + }, + analogous: function analogous() { + return this._applyCombination(_analogous, arguments); + }, + complement: function complement() { + return this._applyCombination(_complement, arguments); + }, + monochromatic: function monochromatic() { + return this._applyCombination(_monochromatic, arguments); + }, + splitcomplement: function splitcomplement() { + return this._applyCombination(_splitcomplement, arguments); + }, + triad: function triad() { + return this._applyCombination(polyad, [3]); + }, + tetrad: function tetrad() { + return this._applyCombination(polyad, [4]); + } +}; +tinycolor.fromRatio = function(color2, opts) { + if (_typeof(color2) == "object") { + var newColor = {}; + for (var i in color2) { + if (color2.hasOwnProperty(i)) { + if (i === "a") { + newColor[i] = color2[i]; + } else { + newColor[i] = convertToPercentage(color2[i]); + } + } + } + color2 = newColor; + } + return tinycolor(color2, opts); +}; +function inputToRGB(color2) { + var rgb = { + r: 0, + g: 0, + b: 0 + }; + var a = 1; + var s = null; + var v = null; + var l = null; + var ok = false; + var format2 = false; + if (typeof color2 == "string") { + color2 = stringInputToObject(color2); + } + if (_typeof(color2) == "object") { + if (isValidCSSUnit(color2.r) && isValidCSSUnit(color2.g) && isValidCSSUnit(color2.b)) { + rgb = rgbToRgb(color2.r, color2.g, color2.b); + ok = true; + format2 = String(color2.r).substr(-1) === "%" ? "prgb" : "rgb"; + } else if (isValidCSSUnit(color2.h) && isValidCSSUnit(color2.s) && isValidCSSUnit(color2.v)) { + s = convertToPercentage(color2.s); + v = convertToPercentage(color2.v); + rgb = hsvToRgb(color2.h, s, v); + ok = true; + format2 = "hsv"; + } else if (isValidCSSUnit(color2.h) && isValidCSSUnit(color2.s) && isValidCSSUnit(color2.l)) { + s = convertToPercentage(color2.s); + l = convertToPercentage(color2.l); + rgb = hslToRgb(color2.h, s, l); + ok = true; + format2 = "hsl"; + } + if (color2.hasOwnProperty("a")) { + a = color2.a; + } + } + a = boundAlpha(a); + return { + ok, + format: color2.format || format2, + r: Math.min(255, Math.max(rgb.r, 0)), + g: Math.min(255, Math.max(rgb.g, 0)), + b: Math.min(255, Math.max(rgb.b, 0)), + a + }; +} +function rgbToRgb(r, g, b) { + return { + r: bound01(r, 255) * 255, + g: bound01(g, 255) * 255, + b: bound01(b, 255) * 255 + }; +} +function rgbToHsl(r, g, b) { + r = bound01(r, 255); + g = bound01(g, 255); + b = bound01(b, 255); + var max = Math.max(r, g, b), min = Math.min(r, g, b); + var h2, s, l = (max + min) / 2; + if (max == min) { + h2 = s = 0; + } else { + var d = max - min; + s = l > 0.5 ? d / (2 - max - min) : d / (max + min); + switch (max) { + case r: + h2 = (g - b) / d + (g < b ? 6 : 0); + break; + case g: + h2 = (b - r) / d + 2; + break; + case b: + h2 = (r - g) / d + 4; + break; + } + h2 /= 6; + } + return { + h: h2, + s, + l + }; +} +function hslToRgb(h2, s, l) { + var r, g, b; + h2 = bound01(h2, 360); + s = bound01(s, 100); + l = bound01(l, 100); + function hue2rgb(p2, q2, t2) { + if (t2 < 0) + t2 += 1; + if (t2 > 1) + t2 -= 1; + if (t2 < 1 / 6) + return p2 + (q2 - p2) * 6 * t2; + if (t2 < 1 / 2) + return q2; + if (t2 < 2 / 3) + return p2 + (q2 - p2) * (2 / 3 - t2) * 6; + return p2; + } + if (s === 0) { + r = g = b = l; + } else { + var q = l < 0.5 ? l * (1 + s) : l + s - l * s; + var p = 2 * l - q; + r = hue2rgb(p, q, h2 + 1 / 3); + g = hue2rgb(p, q, h2); + b = hue2rgb(p, q, h2 - 1 / 3); + } + return { + r: r * 255, + g: g * 255, + b: b * 255 + }; +} +function rgbToHsv(r, g, b) { + r = bound01(r, 255); + g = bound01(g, 255); + b = bound01(b, 255); + var max = Math.max(r, g, b), min = Math.min(r, g, b); + var h2, s, v = max; + var d = max - min; + s = max === 0 ? 0 : d / max; + if (max == min) { + h2 = 0; + } else { + switch (max) { + case r: + h2 = (g - b) / d + (g < b ? 6 : 0); + break; + case g: + h2 = (b - r) / d + 2; + break; + case b: + h2 = (r - g) / d + 4; + break; + } + h2 /= 6; + } + return { + h: h2, + s, + v + }; +} +function hsvToRgb(h2, s, v) { + h2 = bound01(h2, 360) * 6; + s = bound01(s, 100); + v = bound01(v, 100); + var i = Math.floor(h2), f = h2 - i, p = v * (1 - s), q = v * (1 - f * s), t2 = v * (1 - (1 - f) * s), mod = i % 6, r = [v, q, p, p, t2, v][mod], g = [t2, v, v, q, p, p][mod], b = [p, p, t2, v, v, q][mod]; + return { + r: r * 255, + g: g * 255, + b: b * 255 + }; +} +function rgbToHex(r, g, b, allow3Char) { + var hex2 = [pad2(Math.round(r).toString(16)), pad2(Math.round(g).toString(16)), pad2(Math.round(b).toString(16))]; + if (allow3Char && hex2[0].charAt(0) == hex2[0].charAt(1) && hex2[1].charAt(0) == hex2[1].charAt(1) && hex2[2].charAt(0) == hex2[2].charAt(1)) { + return hex2[0].charAt(0) + hex2[1].charAt(0) + hex2[2].charAt(0); + } + return hex2.join(""); +} +function rgbaToHex(r, g, b, a, allow4Char) { + var hex2 = [pad2(Math.round(r).toString(16)), pad2(Math.round(g).toString(16)), pad2(Math.round(b).toString(16)), pad2(convertDecimalToHex(a))]; + if (allow4Char && hex2[0].charAt(0) == hex2[0].charAt(1) && hex2[1].charAt(0) == hex2[1].charAt(1) && hex2[2].charAt(0) == hex2[2].charAt(1) && hex2[3].charAt(0) == hex2[3].charAt(1)) { + return hex2[0].charAt(0) + hex2[1].charAt(0) + hex2[2].charAt(0) + hex2[3].charAt(0); + } + return hex2.join(""); +} +function rgbaToArgbHex(r, g, b, a) { + var hex2 = [pad2(convertDecimalToHex(a)), pad2(Math.round(r).toString(16)), pad2(Math.round(g).toString(16)), pad2(Math.round(b).toString(16))]; + return hex2.join(""); +} +tinycolor.equals = function(color1, color2) { + if (!color1 || !color2) + return false; + return tinycolor(color1).toRgbString() == tinycolor(color2).toRgbString(); +}; +tinycolor.random = function() { + return tinycolor.fromRatio({ + r: Math.random(), + g: Math.random(), + b: Math.random() + }); +}; +function _desaturate(color2, amount) { + amount = amount === 0 ? 0 : amount || 10; + var hsl = tinycolor(color2).toHsl(); + hsl.s -= amount / 100; + hsl.s = clamp01(hsl.s); + return tinycolor(hsl); +} +function _saturate(color2, amount) { + amount = amount === 0 ? 0 : amount || 10; + var hsl = tinycolor(color2).toHsl(); + hsl.s += amount / 100; + hsl.s = clamp01(hsl.s); + return tinycolor(hsl); +} +function _greyscale(color2) { + return tinycolor(color2).desaturate(100); +} +function _lighten(color2, amount) { + amount = amount === 0 ? 0 : amount || 10; + var hsl = tinycolor(color2).toHsl(); + hsl.l += amount / 100; + hsl.l = clamp01(hsl.l); + return tinycolor(hsl); +} +function _brighten(color2, amount) { + amount = amount === 0 ? 0 : amount || 10; + var rgb = tinycolor(color2).toRgb(); + rgb.r = Math.max(0, Math.min(255, rgb.r - Math.round(255 * -(amount / 100)))); + rgb.g = Math.max(0, Math.min(255, rgb.g - Math.round(255 * -(amount / 100)))); + rgb.b = Math.max(0, Math.min(255, rgb.b - Math.round(255 * -(amount / 100)))); + return tinycolor(rgb); +} +function _darken(color2, amount) { + amount = amount === 0 ? 0 : amount || 10; + var hsl = tinycolor(color2).toHsl(); + hsl.l -= amount / 100; + hsl.l = clamp01(hsl.l); + return tinycolor(hsl); +} +function _spin(color2, amount) { + var hsl = tinycolor(color2).toHsl(); + var hue = (hsl.h + amount) % 360; + hsl.h = hue < 0 ? 360 + hue : hue; + return tinycolor(hsl); +} +function _complement(color2) { + var hsl = tinycolor(color2).toHsl(); + hsl.h = (hsl.h + 180) % 360; + return tinycolor(hsl); +} +function polyad(color2, number3) { + if (isNaN(number3) || number3 <= 0) { + throw new Error("Argument to polyad must be a positive number"); + } + var hsl = tinycolor(color2).toHsl(); + var result = [tinycolor(color2)]; + var step = 360 / number3; + for (var i = 1; i < number3; i++) { + result.push(tinycolor({ + h: (hsl.h + i * step) % 360, + s: hsl.s, + l: hsl.l + })); + } + return result; +} +function _splitcomplement(color2) { + var hsl = tinycolor(color2).toHsl(); + var h2 = hsl.h; + return [tinycolor(color2), tinycolor({ + h: (h2 + 72) % 360, + s: hsl.s, + l: hsl.l + }), tinycolor({ + h: (h2 + 216) % 360, + s: hsl.s, + l: hsl.l + })]; +} +function _analogous(color2, results, slices) { + results = results || 6; + slices = slices || 30; + var hsl = tinycolor(color2).toHsl(); + var part = 360 / slices; + var ret = [tinycolor(color2)]; + for (hsl.h = (hsl.h - (part * results >> 1) + 720) % 360; --results; ) { + hsl.h = (hsl.h + part) % 360; + ret.push(tinycolor(hsl)); + } + return ret; +} +function _monochromatic(color2, results) { + results = results || 6; + var hsv = tinycolor(color2).toHsv(); + var h2 = hsv.h, s = hsv.s, v = hsv.v; + var ret = []; + var modification = 1 / results; + while (results--) { + ret.push(tinycolor({ + h: h2, + s, + v + })); + v = (v + modification) % 1; + } + return ret; +} +tinycolor.mix = function(color1, color2, amount) { + amount = amount === 0 ? 0 : amount || 50; + var rgb1 = tinycolor(color1).toRgb(); + var rgb2 = tinycolor(color2).toRgb(); + var p = amount / 100; + var rgba = { + r: (rgb2.r - rgb1.r) * p + rgb1.r, + g: (rgb2.g - rgb1.g) * p + rgb1.g, + b: (rgb2.b - rgb1.b) * p + rgb1.b, + a: (rgb2.a - rgb1.a) * p + rgb1.a + }; + return tinycolor(rgba); +}; +tinycolor.readability = function(color1, color2) { + var c1 = tinycolor(color1); + var c2 = tinycolor(color2); + return (Math.max(c1.getLuminance(), c2.getLuminance()) + 0.05) / (Math.min(c1.getLuminance(), c2.getLuminance()) + 0.05); +}; +tinycolor.isReadable = function(color1, color2, wcag2) { + var readability = tinycolor.readability(color1, color2); + var wcag2Parms, out; + out = false; + wcag2Parms = validateWCAG2Parms(wcag2); + switch (wcag2Parms.level + wcag2Parms.size) { + case "AAsmall": + case "AAAlarge": + out = readability >= 4.5; + break; + case "AAlarge": + out = readability >= 3; + break; + case "AAAsmall": + out = readability >= 7; + break; + } + return out; +}; +tinycolor.mostReadable = function(baseColor, colorList2, args) { + var bestColor = null; + var bestScore = 0; + var readability; + var includeFallbackColors, level, size; + args = args || {}; + includeFallbackColors = args.includeFallbackColors; + level = args.level; + size = args.size; + for (var i = 0; i < colorList2.length; i++) { + readability = tinycolor.readability(baseColor, colorList2[i]); + if (readability > bestScore) { + bestScore = readability; + bestColor = tinycolor(colorList2[i]); + } + } + if (tinycolor.isReadable(baseColor, bestColor, { + level, + size + }) || !includeFallbackColors) { + return bestColor; + } else { + args.includeFallbackColors = false; + return tinycolor.mostReadable(baseColor, ["#fff", "#000"], args); + } +}; +var names = tinycolor.names = { + aliceblue: "f0f8ff", + antiquewhite: "faebd7", + aqua: "0ff", + aquamarine: "7fffd4", + azure: "f0ffff", + beige: "f5f5dc", + bisque: "ffe4c4", + black: "000", + blanchedalmond: "ffebcd", + blue: "00f", + blueviolet: "8a2be2", + brown: "a52a2a", + burlywood: "deb887", + burntsienna: "ea7e5d", + cadetblue: "5f9ea0", + chartreuse: "7fff00", + chocolate: "d2691e", + coral: "ff7f50", + cornflowerblue: "6495ed", + cornsilk: "fff8dc", + crimson: "dc143c", + cyan: "0ff", + darkblue: "00008b", + darkcyan: "008b8b", + darkgoldenrod: "b8860b", + darkgray: "a9a9a9", + darkgreen: "006400", + darkgrey: "a9a9a9", + darkkhaki: "bdb76b", + darkmagenta: "8b008b", + darkolivegreen: "556b2f", + darkorange: "ff8c00", + darkorchid: "9932cc", + darkred: "8b0000", + darksalmon: "e9967a", + darkseagreen: "8fbc8f", + darkslateblue: "483d8b", + darkslategray: "2f4f4f", + darkslategrey: "2f4f4f", + darkturquoise: "00ced1", + darkviolet: "9400d3", + deeppink: "ff1493", + deepskyblue: "00bfff", + dimgray: "696969", + dimgrey: "696969", + dodgerblue: "1e90ff", + firebrick: "b22222", + floralwhite: "fffaf0", + forestgreen: "228b22", + fuchsia: "f0f", + gainsboro: "dcdcdc", + ghostwhite: "f8f8ff", + gold: "ffd700", + goldenrod: "daa520", + gray: "808080", + green: "008000", + greenyellow: "adff2f", + grey: "808080", + honeydew: "f0fff0", + hotpink: "ff69b4", + indianred: "cd5c5c", + indigo: "4b0082", + ivory: "fffff0", + khaki: "f0e68c", + lavender: "e6e6fa", + lavenderblush: "fff0f5", + lawngreen: "7cfc00", + lemonchiffon: "fffacd", + lightblue: "add8e6", + lightcoral: "f08080", + lightcyan: "e0ffff", + lightgoldenrodyellow: "fafad2", + lightgray: "d3d3d3", + lightgreen: "90ee90", + lightgrey: "d3d3d3", + lightpink: "ffb6c1", + lightsalmon: "ffa07a", + lightseagreen: "20b2aa", + lightskyblue: "87cefa", + lightslategray: "789", + lightslategrey: "789", + lightsteelblue: "b0c4de", + lightyellow: "ffffe0", + lime: "0f0", + limegreen: "32cd32", + linen: "faf0e6", + magenta: "f0f", + maroon: "800000", + mediumaquamarine: "66cdaa", + mediumblue: "0000cd", + mediumorchid: "ba55d3", + mediumpurple: "9370db", + mediumseagreen: "3cb371", + mediumslateblue: "7b68ee", + mediumspringgreen: "00fa9a", + mediumturquoise: "48d1cc", + mediumvioletred: "c71585", + midnightblue: "191970", + mintcream: "f5fffa", + mistyrose: "ffe4e1", + moccasin: "ffe4b5", + navajowhite: "ffdead", + navy: "000080", + oldlace: "fdf5e6", + olive: "808000", + olivedrab: "6b8e23", + orange: "ffa500", + orangered: "ff4500", + orchid: "da70d6", + palegoldenrod: "eee8aa", + palegreen: "98fb98", + paleturquoise: "afeeee", + palevioletred: "db7093", + papayawhip: "ffefd5", + peachpuff: "ffdab9", + peru: "cd853f", + pink: "ffc0cb", + plum: "dda0dd", + powderblue: "b0e0e6", + purple: "800080", + rebeccapurple: "663399", + red: "f00", + rosybrown: "bc8f8f", + royalblue: "4169e1", + saddlebrown: "8b4513", + salmon: "fa8072", + sandybrown: "f4a460", + seagreen: "2e8b57", + seashell: "fff5ee", + sienna: "a0522d", + silver: "c0c0c0", + skyblue: "87ceeb", + slateblue: "6a5acd", + slategray: "708090", + slategrey: "708090", + snow: "fffafa", + springgreen: "00ff7f", + steelblue: "4682b4", + tan: "d2b48c", + teal: "008080", + thistle: "d8bfd8", + tomato: "ff6347", + turquoise: "40e0d0", + violet: "ee82ee", + wheat: "f5deb3", + white: "fff", + whitesmoke: "f5f5f5", + yellow: "ff0", + yellowgreen: "9acd32" +}; +var hexNames = tinycolor.hexNames = flip(names); +function flip(o) { + var flipped = {}; + for (var i in o) { + if (o.hasOwnProperty(i)) { + flipped[o[i]] = i; + } + } + return flipped; +} +function boundAlpha(a) { + a = parseFloat(a); + if (isNaN(a) || a < 0 || a > 1) { + a = 1; + } + return a; +} +function bound01(n, max) { + if (isOnePointZero(n)) + n = "100%"; + var processPercent = isPercentage(n); + n = Math.min(max, Math.max(0, parseFloat(n))); + if (processPercent) { + n = parseInt(n * max, 10) / 100; + } + if (Math.abs(n - max) < 1e-6) { + return 1; + } + return n % max / parseFloat(max); +} +function clamp01(val) { + return Math.min(1, Math.max(0, val)); +} +function parseIntFromHex(val) { + return parseInt(val, 16); +} +function isOnePointZero(n) { + return typeof n == "string" && n.indexOf(".") != -1 && parseFloat(n) === 1; +} +function isPercentage(n) { + return typeof n === "string" && n.indexOf("%") != -1; +} +function pad2(c) { + return c.length == 1 ? "0" + c : "" + c; +} +function convertToPercentage(n) { + if (n <= 1) { + n = n * 100 + "%"; + } + return n; +} +function convertDecimalToHex(d) { + return Math.round(parseFloat(d) * 255).toString(16); +} +function convertHexToDecimal(h2) { + return parseIntFromHex(h2) / 255; +} +var matchers = function() { + var CSS_INTEGER = "[-\\+]?\\d+%?"; + var CSS_NUMBER = "[-\\+]?\\d*\\.\\d+%?"; + var CSS_UNIT = "(?:" + CSS_NUMBER + ")|(?:" + CSS_INTEGER + ")"; + var PERMISSIVE_MATCH3 = "[\\s|\\(]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")\\s*\\)?"; + var PERMISSIVE_MATCH4 = "[\\s|\\(]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")\\s*\\)?"; + return { + CSS_UNIT: new RegExp(CSS_UNIT), + rgb: new RegExp("rgb" + PERMISSIVE_MATCH3), + rgba: new RegExp("rgba" + PERMISSIVE_MATCH4), + hsl: new RegExp("hsl" + PERMISSIVE_MATCH3), + hsla: new RegExp("hsla" + PERMISSIVE_MATCH4), + hsv: new RegExp("hsv" + PERMISSIVE_MATCH3), + hsva: new RegExp("hsva" + PERMISSIVE_MATCH4), + hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/, + hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/, + hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/, + hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/ + }; +}(); +function isValidCSSUnit(color2) { + return !!matchers.CSS_UNIT.exec(color2); +} +function stringInputToObject(color2) { + color2 = color2.replace(trimLeft, "").replace(trimRight, "").toLowerCase(); + var named = false; + if (names[color2]) { + color2 = names[color2]; + named = true; + } else if (color2 == "transparent") { + return { + r: 0, + g: 0, + b: 0, + a: 0, + format: "name" + }; + } + var match; + if (match = matchers.rgb.exec(color2)) { + return { + r: match[1], + g: match[2], + b: match[3] + }; + } + if (match = matchers.rgba.exec(color2)) { + return { + r: match[1], + g: match[2], + b: match[3], + a: match[4] + }; + } + if (match = matchers.hsl.exec(color2)) { + return { + h: match[1], + s: match[2], + l: match[3] + }; + } + if (match = matchers.hsla.exec(color2)) { + return { + h: match[1], + s: match[2], + l: match[3], + a: match[4] + }; + } + if (match = matchers.hsv.exec(color2)) { + return { + h: match[1], + s: match[2], + v: match[3] + }; + } + if (match = matchers.hsva.exec(color2)) { + return { + h: match[1], + s: match[2], + v: match[3], + a: match[4] + }; + } + if (match = matchers.hex8.exec(color2)) { + return { + r: parseIntFromHex(match[1]), + g: parseIntFromHex(match[2]), + b: parseIntFromHex(match[3]), + a: convertHexToDecimal(match[4]), + format: named ? "name" : "hex8" + }; + } + if (match = matchers.hex6.exec(color2)) { + return { + r: parseIntFromHex(match[1]), + g: parseIntFromHex(match[2]), + b: parseIntFromHex(match[3]), + format: named ? "name" : "hex" + }; + } + if (match = matchers.hex4.exec(color2)) { + return { + r: parseIntFromHex(match[1] + "" + match[1]), + g: parseIntFromHex(match[2] + "" + match[2]), + b: parseIntFromHex(match[3] + "" + match[3]), + a: convertHexToDecimal(match[4] + "" + match[4]), + format: named ? "name" : "hex8" + }; + } + if (match = matchers.hex3.exec(color2)) { + return { + r: parseIntFromHex(match[1] + "" + match[1]), + g: parseIntFromHex(match[2] + "" + match[2]), + b: parseIntFromHex(match[3] + "" + match[3]), + format: named ? "name" : "hex" + }; + } + return false; +} +function validateWCAG2Parms(parms) { + var level, size; + parms = parms || { + level: "AA", + size: "small" + }; + level = (parms.level || "AA").toUpperCase(); + size = (parms.size || "small").toLowerCase(); + if (level !== "AA" && level !== "AAA") { + level = "AA"; + } + if (size !== "small" && size !== "large") { + size = "small"; + } + return { + level, + size + }; +} +var handleEscapeMixin = { + inject: ["ColorPickerInstance"], + methods: { + handleEscape(e) { + this.ColorPickerInstance.handleOnEscapeKeydown(e); + } + } +}; +var Prefixes = { + data() { + return { + prefixCls: "ivu-color-picker", + inputPrefixCls: "ivu-input", + iconPrefixCls: "ivu-icon", + transferPrefixCls: "ivu-transfer" + }; + } +}; +function setAlpha2(data, alpha) { + const color2 = tinycolor(data); + const { _a } = color2; + if (_a === void 0 || _a === null) { + color2.setAlpha(alpha || 1); + } + return color2; +} +function getColor(data, colorData) { + const alpha = colorData && colorData.a; + if (colorData) { + if (colorData.hsl) { + return setAlpha2(colorData.hsl, alpha); + } + if (colorData.hex && colorData.hex.length > 0) { + return setAlpha2(colorData.hex, alpha); + } + } + return setAlpha2(colorData, alpha); +} +function changeColor(data, oldHue) { + const colorData = data === "" ? "#2d8cf0" : data; + const color2 = getColor(data, colorData); + const hsl = color2.toHsl(); + const hsv = color2.toHsv(); + if (hsl.s === 0) { + hsl.h = colorData.h || colorData.hsl && colorData.hsl.h || oldHue || 0; + hsv.h = hsl.h; + } + if (hsv.v < 0.0164) { + hsv.h = colorData.h || colorData.hsv && colorData.hsv.h || 0; + hsv.s = colorData.s || colorData.hsv && colorData.hsv.s || 0; + } + if (hsl.l < 0.01) { + hsl.h = colorData.h || colorData.hsl && colorData.hsl.h || 0; + hsl.s = colorData.s || colorData.hsl && colorData.hsl.s || 0; + } + return { + hsl, + hex: color2.toHexString().toUpperCase(), + rgba: color2.toRgb(), + hsv, + oldHue: colorData.h || oldHue || hsl.h, + source: colorData.source, + a: colorData.a || color2.getAlpha() + }; +} +function clamp(value, min, max) { + if (value < min) { + return min; + } + if (value > max) { + return max; + } + return value; +} +function getIncrement(key2, keys, increment) { + return oneOf(key2, keys) ? increment : 0; +} +function getTouches(e, prop2) { + return e.touches ? e.touches[0][prop2] : 0; +} +function toRGBAString(rgba) { + const { r, g, b, a } = rgba; + return `rgba(${[r, g, b, a].join(",")})`; +} +const _sfc_main$1M = { + name: "RecommendedColors", + mixins: [handleEscapeMixin, Prefixes], + emits: ["picker-color", "change"], + props: { + list: { + type: Array, + default: void 0 + } + }, + data() { + const columns = 12; + const rows = Math.ceil(this.list.length / columns); + const normalStep = 1; + return { + left: -normalStep, + right: normalStep, + up: -normalStep, + down: normalStep, + powerKey: "shiftKey", + grid: { x: 1, y: 1 }, + rows, + columns + }; + }, + computed: { + hideClass() { + return `${this.prefixCls}-hide`; + }, + linearIndex() { + return this.getLinearIndex(this.grid); + }, + currentCircle() { + return this.$refs[`color-circle-${this.linearIndex}`][0]; + } + }, + methods: { + getLinearIndex(grid) { + return this.columns * (grid.y - 1) + grid.x - 1; + }, + getMaxLimit(axis) { + return axis === "x" ? this.columns : this.rows; + }, + handleArrow(e, axis, direction) { + e.preventDefault(); + e.stopPropagation(); + this.blurColor(); + const grid = { ...this.grid }; + if (e[this.powerKey]) { + if (direction < 0) { + grid[axis] = 1; + } else { + grid[axis] = this.getMaxLimit(axis); + } + } else { + grid[axis] += direction; + } + const index2 = this.getLinearIndex(grid); + if (index2 >= 0 && index2 < this.list.length) { + this.grid[axis] = clamp(grid[axis], 1, this.getMaxLimit(axis)); + } + this.focusColor(); + }, + blurColor() { + this.currentCircle.classList.add(this.hideClass); + }, + focusColor() { + this.currentCircle.classList.remove(this.hideClass); + }, + handleEnter(e) { + this.handleClick(e, this.currentCircle); + }, + handleClick(e, circle) { + e.preventDefault(); + e.stopPropagation(); + this.$refs.reference.focus(); + const target = circle || e.target; + const colorId = target.dataset.colorId || target.parentElement.dataset.colorId; + if (colorId) { + this.blurColor(); + const id = Number(colorId) + 1; + this.grid.x = id % this.columns || this.columns; + this.grid.y = Math.ceil(id / this.columns); + this.focusColor(); + this.$emit("picker-color", this.list[colorId]); + this.$emit("change", { hex: this.list[colorId], source: "hex" }); + } + }, + lineBreak(list, index2) { + if (!index2) { + return false; + } + const nextIndex = index2 + 1; + return nextIndex < list.length && nextIndex % this.columns === 0; + } + } +}; +const _hoisted_1$V = ["data-color-id"]; +const _hoisted_2$A = { key: 0 }; +function _sfc_render$1y(_ctx, _cache, $props, $setup, $data, $options) { + return openBlock(), createElementBlock("div", { + ref: "reference", + tabindex: "0", + onClick: _cache[0] || (_cache[0] = (...args) => $options.handleClick && $options.handleClick(...args)), + onKeydown: [ + _cache[1] || (_cache[1] = withKeys((...args) => _ctx.handleEscape && _ctx.handleEscape(...args), ["esc"])), + _cache[2] || (_cache[2] = withKeys((...args) => $options.handleEnter && $options.handleEnter(...args), ["enter"])), + _cache[3] || (_cache[3] = withKeys(($event) => $options.handleArrow($event, "x", $data.left), ["left"])), + _cache[4] || (_cache[4] = withKeys(($event) => $options.handleArrow($event, "x", $data.right), ["right"])), + _cache[5] || (_cache[5] = withKeys(($event) => $options.handleArrow($event, "y", $data.up), ["up"])), + _cache[6] || (_cache[6] = withKeys(($event) => $options.handleArrow($event, "y", $data.down), ["down"])) + ], + onBlur: _cache[7] || (_cache[7] = (...args) => $options.blurColor && $options.blurColor(...args)), + onFocus: _cache[8] || (_cache[8] = (...args) => $options.focusColor && $options.focusColor(...args)) + }, [ + (openBlock(true), createElementBlock(Fragment, null, renderList($props.list, (item, index2) => { + return openBlock(), createElementBlock(Fragment, { + key: item + ":" + index2 + }, [ + createElementVNode("div", { + class: normalizeClass([_ctx.prefixCls + "-picker-colors-wrapper"]) + }, [ + createElementVNode("div", { "data-color-id": index2 }, [ + createElementVNode("div", { + style: normalizeStyle({ background: item }), + class: normalizeClass([_ctx.prefixCls + "-picker-colors-wrapper-color"]) + }, null, 6), + createElementVNode("div", { + ref_for: true, + ref: "color-circle-" + index2, + class: normalizeClass([_ctx.prefixCls + "-picker-colors-wrapper-circle", $options.hideClass]) + }, null, 2) + ], 8, _hoisted_1$V) + ], 2), + $options.lineBreak($props.list, index2) ? (openBlock(), createElementBlock("br", _hoisted_2$A)) : createCommentVNode("", true) + ], 64); + }), 128)) + ], 544); +} +var RecommendColors = /* @__PURE__ */ _export_sfc(_sfc_main$1M, [["render", _sfc_render$1y]]); +var HSAMixin = { + mixins: [handleEscapeMixin], + props: { + focused: { + type: Boolean, + default: false + }, + value: { + type: Object, + default: void 0 + } + }, + created() { + if (this.focused) { + setTimeout(() => this.$el.focus(), 1); + } + }, + beforeUnmount() { + this.unbindEventListeners(); + }, + methods: { + handleLeft(e) { + this.handleSlide(e, this.left, "left"); + }, + handleRight(e) { + this.handleSlide(e, this.right, "right"); + }, + handleUp(e) { + this.handleSlide(e, this.up, "up"); + }, + handleDown(e) { + this.handleSlide(e, this.down, "down"); + }, + handleMouseDown(e) { + this.ColorPickerInstance.handleOnDragging(true); + this.handleChange(e, true); + on(window, "mousemove", this.handleChange); + on(window, "mouseup", this.handleMouseUp); + }, + handleMouseUp() { + this.unbindEventListeners(); + }, + unbindEventListeners() { + off(window, "mousemove", this.handleChange); + off(window, "mouseup", this.handleMouseUp); + setTimeout(() => this.ColorPickerInstance.handleOnDragging(false), 1); + }, + getLeft(e) { + if (!isClient) + return; + const { container } = this.$refs; + const xOffset = container.getBoundingClientRect().left + window.pageXOffset; + const pageX = e.pageX || getTouches(e, "PageX"); + return pageX - xOffset; + }, + getTop(e) { + if (!isClient) + return; + const { container } = this.$refs; + const yOffset = container.getBoundingClientRect().top + window.pageYOffset; + const pageY = e.pageY || getTouches(e, "PageY"); + return pageY - yOffset; + } + } +}; +const _sfc_main$1L = { + name: "Saturation", + mixins: [HSAMixin, Prefixes], + emits: ["change"], + data() { + const normalStep = 0.01; + return { + left: -normalStep, + right: normalStep, + up: normalStep, + down: -normalStep, + multiplier: 10, + powerKey: "shiftKey" + }; + }, + computed: { + bgColorStyle() { + return { background: `hsl(${this.value.hsv.h}, 100%, 50%)` }; + }, + pointerStyle() { + return { top: `${-(this.value.hsv.v * 100) + 1 + 100}%`, left: `${this.value.hsv.s * 100}%` }; + } + }, + methods: { + change(h2, s, v, a) { + this.$emit("change", { h: h2, s, v, a, source: "hsva" }); + }, + handleSlide(e, direction, key2) { + e.preventDefault(); + e.stopPropagation(); + const isPowerKey = e[this.powerKey]; + const increment = isPowerKey ? direction * this.multiplier : direction; + const { h: h2, s, v, a } = this.value.hsv; + const saturation = clamp(s + getIncrement(key2, ["left", "right"], increment), 0, 1); + const bright = clamp(v + getIncrement(key2, ["up", "down"], increment), 0, 1); + this.change(h2, saturation, bright, a); + }, + handleChange(e) { + e.preventDefault(); + e.stopPropagation(); + const { clientWidth, clientHeight } = this.$refs.container; + const left = clamp(this.getLeft(e), 0, clientWidth); + const top2 = clamp(this.getTop(e), 0, clientHeight); + const saturation = left / clientWidth; + const bright = clamp(1 - top2 / clientHeight, 0, 1); + this.change(this.value.hsv.h, saturation, bright, this.value.hsv.a); + }, + handleMouseDown(e) { + HSAMixin.methods.handleMouseDown.call(this, e); + on(window, "mouseup", this.handleChange); + }, + unbindEventListeners(e) { + HSAMixin.methods.unbindEventListeners.call(this, e); + off(window, "mouseup", this.handleChange); + } + } +}; +function _sfc_render$1x(_ctx, _cache, $props, $setup, $data, $options) { + return openBlock(), createElementBlock("div", { + class: normalizeClass([_ctx.prefixCls + "-saturation-wrapper"]), + tabindex: "0", + onKeydown: [ + _cache[1] || (_cache[1] = withKeys((...args) => _ctx.handleEscape && _ctx.handleEscape(...args), ["esc"])), + _cache[3] || (_cache[3] = withKeys((...args) => _ctx.handleLeft && _ctx.handleLeft(...args), ["left"])), + _cache[4] || (_cache[4] = withKeys((...args) => _ctx.handleRight && _ctx.handleRight(...args), ["right"])), + _cache[5] || (_cache[5] = withKeys((...args) => _ctx.handleUp && _ctx.handleUp(...args), ["up"])), + _cache[6] || (_cache[6] = withKeys((...args) => _ctx.handleDown && _ctx.handleDown(...args), ["down"])) + ], + onClick: _cache[2] || (_cache[2] = ($event) => _ctx.$el.focus()) + }, [ + createElementVNode("div", { + ref: "container", + style: normalizeStyle($options.bgColorStyle), + class: normalizeClass([_ctx.prefixCls + "-saturation"]), + onMousedown: _cache[0] || (_cache[0] = (...args) => $options.handleMouseDown && $options.handleMouseDown(...args)) + }, [ + createElementVNode("div", { + class: normalizeClass([_ctx.prefixCls + "-saturation--white"]) + }, null, 2), + createElementVNode("div", { + class: normalizeClass([_ctx.prefixCls + "-saturation--black"]) + }, null, 2), + createElementVNode("div", { + style: normalizeStyle($options.pointerStyle), + class: normalizeClass([_ctx.prefixCls + "-saturation-pointer"]) + }, [ + createElementVNode("div", { + class: normalizeClass([_ctx.prefixCls + "-saturation-circle"]) + }, null, 2) + ], 6) + ], 38) + ], 34); +} +var Saturation = /* @__PURE__ */ _export_sfc(_sfc_main$1L, [["render", _sfc_render$1x]]); +const _sfc_main$1K = { + name: "Hue", + mixins: [HSAMixin, Prefixes], + emits: ["change"], + data() { + const normalStep = 1 / 360 * 25; + const jumpStep = 20 * normalStep; + return { + left: -normalStep, + right: normalStep, + up: jumpStep, + down: -jumpStep, + powerKey: "shiftKey", + percent: clamp(this.value.hsl.h * 100 / 360, 0, 100) + }; + }, + watch: { + value() { + this.percent = clamp(this.value.hsl.h * 100 / 360, 0, 100); + } + }, + methods: { + change(percent) { + this.percent = clamp(percent, 0, 100); + const { h: h2, s, l, a } = this.value.hsl; + const newHue = clamp(percent / 100 * 360, 0, 360); + if (h2 !== newHue) { + this.$emit("change", { h: newHue, s, l, a, source: "hsl" }); + } + }, + handleSlide(e, direction) { + e.preventDefault(); + e.stopPropagation(); + if (e[this.powerKey]) { + this.change(direction < 0 ? 0 : 100); + return; + } + this.change(this.percent + direction); + }, + handleChange(e) { + e.preventDefault(); + e.stopPropagation(); + const left = this.getLeft(e); + if (left < 0) { + this.change(0); + return; + } + const { clientWidth } = this.$refs.container; + if (left > clientWidth) { + this.change(100); + return; + } + this.change(left * 100 / clientWidth); + } + } +}; +function _sfc_render$1w(_ctx, _cache, $props, $setup, $data, $options) { + return openBlock(), createElementBlock("div", { + class: normalizeClass([_ctx.prefixCls + "-hue"]), + tabindex: "0", + onClick: _cache[3] || (_cache[3] = ($event) => _ctx.$el.focus()), + onKeydown: [ + _cache[4] || (_cache[4] = withKeys((...args) => _ctx.handleEscape && _ctx.handleEscape(...args), ["esc"])), + _cache[5] || (_cache[5] = withKeys((...args) => _ctx.handleLeft && _ctx.handleLeft(...args), ["left"])), + _cache[6] || (_cache[6] = withKeys((...args) => _ctx.handleRight && _ctx.handleRight(...args), ["right"])), + _cache[7] || (_cache[7] = withKeys((...args) => _ctx.handleUp && _ctx.handleUp(...args), ["up"])), + _cache[8] || (_cache[8] = withKeys((...args) => _ctx.handleDown && _ctx.handleDown(...args), ["down"])) + ] + }, [ + createElementVNode("div", { + ref: "container", + class: normalizeClass([_ctx.prefixCls + "-hue-container"]), + onMousedown: _cache[0] || (_cache[0] = (...args) => _ctx.handleMouseDown && _ctx.handleMouseDown(...args)), + onTouchmove: _cache[1] || (_cache[1] = (...args) => $options.handleChange && $options.handleChange(...args)), + onTouchstart: _cache[2] || (_cache[2] = (...args) => $options.handleChange && $options.handleChange(...args)) + }, [ + createElementVNode("div", { + style: normalizeStyle({ top: 0, left: `${$data.percent}%` }), + class: normalizeClass([_ctx.prefixCls + "-hue-pointer"]) + }, [ + createElementVNode("div", { + class: normalizeClass([_ctx.prefixCls + "-hue-picker"]) + }, null, 2) + ], 6) + ], 34) + ], 34); +} +var Hue = /* @__PURE__ */ _export_sfc(_sfc_main$1K, [["render", _sfc_render$1w]]); +const _sfc_main$1J = { + name: "Alpha", + mixins: [HSAMixin, Prefixes], + emits: ["change"], + data() { + const normalStep = 1; + const jumpStep = 10; + return { + left: -normalStep, + right: normalStep, + up: jumpStep, + down: -jumpStep, + powerKey: "shiftKey" + }; + }, + computed: { + gradientStyle() { + const { r, g, b } = this.value.rgba; + const start = toRGBAString({ r, g, b, a: 0 }); + const finish = toRGBAString({ r, g, b, a: 1 }); + return { background: `linear-gradient(to right, ${start} 0%, ${finish} 100%)` }; + } + }, + methods: { + change(newAlpha) { + const { h: h2, s, l } = this.value.hsl; + const { a } = this.value; + if (a !== newAlpha) { + this.$emit("change", { h: h2, s, l, a: newAlpha, source: "rgba" }); + } + }, + handleSlide(e, direction) { + e.preventDefault(); + e.stopPropagation(); + this.change(clamp(e[this.powerKey] ? direction : Math.round(this.value.hsl.a * 100 + direction) / 100, 0, 1)); + }, + handleChange(e) { + e.preventDefault(); + e.stopPropagation(); + const left = this.getLeft(e); + if (left < 0) { + this.change(0); + return; + } + const { clientWidth } = this.$refs.container; + if (left > clientWidth) { + this.change(1); + return; + } + this.change(Math.round(left * 100 / clientWidth) / 100); + } + } +}; +function _sfc_render$1v(_ctx, _cache, $props, $setup, $data, $options) { + return openBlock(), createElementBlock("div", { + class: normalizeClass([_ctx.prefixCls + "-alpha"]), + tabindex: "0", + onClick: _cache[3] || (_cache[3] = ($event) => _ctx.$el.focus()), + onKeydown: [ + _cache[4] || (_cache[4] = withKeys((...args) => _ctx.handleEscape && _ctx.handleEscape(...args), ["esc"])), + _cache[5] || (_cache[5] = withKeys((...args) => _ctx.handleLeft && _ctx.handleLeft(...args), ["left"])), + _cache[6] || (_cache[6] = withKeys((...args) => _ctx.handleRight && _ctx.handleRight(...args), ["right"])), + _cache[7] || (_cache[7] = withKeys((...args) => _ctx.handleUp && _ctx.handleUp(...args), ["up"])), + _cache[8] || (_cache[8] = withKeys((...args) => _ctx.handleDown && _ctx.handleDown(...args), ["down"])) + ] + }, [ + createElementVNode("div", { + class: normalizeClass([_ctx.prefixCls + "-alpha-checkboard-wrap"]) + }, [ + createElementVNode("div", { + class: normalizeClass([_ctx.prefixCls + "-alpha-checkerboard"]) + }, null, 2) + ], 2), + createElementVNode("div", { + style: normalizeStyle($options.gradientStyle), + class: normalizeClass([_ctx.prefixCls + "-alpha-gradient"]) + }, null, 6), + createElementVNode("div", { + ref: "container", + class: normalizeClass([_ctx.prefixCls + "-alpha-container"]), + onMousedown: _cache[0] || (_cache[0] = (...args) => _ctx.handleMouseDown && _ctx.handleMouseDown(...args)), + onTouchmove: _cache[1] || (_cache[1] = (...args) => $options.handleChange && $options.handleChange(...args)), + onTouchstart: _cache[2] || (_cache[2] = (...args) => $options.handleChange && $options.handleChange(...args)) + }, [ + createElementVNode("div", { + style: normalizeStyle({ top: 0, left: `${_ctx.value.a * 100}%` }), + class: normalizeClass([_ctx.prefixCls + "-alpha-pointer"]) + }, [ + createElementVNode("div", { + class: normalizeClass([_ctx.prefixCls + "-alpha-picker"]) + }, null, 2) + ], 6) + ], 34) + ], 34); +} +var Alpha = /* @__PURE__ */ _export_sfc(_sfc_main$1J, [["render", _sfc_render$1v]]); +const _sfc_main$1I = { + name: "ColorPicker", + components: { Drop, RecommendColors, Saturation, Hue, Alpha, iInput: Input, iButton: _sfc_main$2c, Icon }, + directives: { clickOutside: directive }, + mixins: [Locale, Prefixes, mixinsForm, globalConfig], + emits: ["on-active-change", "on-open-change", "on-change", "on-pick-success", "on-pick-clear", "update:modelValue"], + provide() { + return { + ColorPickerInstance: this + }; + }, + props: { + modelValue: { + type: String, + default: void 0 + }, + hue: { + type: Boolean, + default: true + }, + alpha: { + type: Boolean, + default: false + }, + recommend: { + type: Boolean, + default: false + }, + format: { + type: String, + validator(value) { + return oneOf(value, ["hsl", "hsv", "hex", "rgb"]); + }, + default: void 0 + }, + colors: { + type: Array, + default() { + return []; + } + }, + disabled: { + type: Boolean, + default: false + }, + size: { + validator(value) { + return oneOf(value, ["small", "large", "default"]); + }, + default() { + const global2 = getCurrentInstance().appContext.config.globalProperties; + return !global2.$VIEWUI || global2.$VIEWUI.size === "" ? "default" : global2.$VIEWUI.size; + } + }, + hideDropDown: { + type: Boolean, + default: false + }, + placement: { + type: String, + validator(value) { + return oneOf(value, [ + "top", + "top-start", + "top-end", + "bottom", + "bottom-start", + "bottom-end", + "left", + "left-start", + "left-end", + "right", + "right-start", + "right-end" + ]); + }, + default: "bottom" + }, + transfer: { + type: Boolean, + default() { + const global2 = getCurrentInstance().appContext.config.globalProperties; + return !global2.$VIEWUI || global2.$VIEWUI.transfer === "" ? false : global2.$VIEWUI.transfer; + } + }, + name: { + type: String, + default: void 0 + }, + editable: { + type: Boolean, + default: true + }, + capture: { + type: Boolean, + default() { + const global2 = getCurrentInstance().appContext.config.globalProperties; + return !global2.$VIEWUI ? true : global2.$VIEWUI.capture; + } + }, + transferClassName: { + type: String + }, + eventsEnabled: { + type: Boolean, + default: false + } + }, + data() { + return { + val: changeColor(this.modelValue || ""), + currentValue: this.modelValue || "", + dragging: false, + visible: false, + recommendedColor: [ + "#2d8cf0", + "#19be6b", + "#ff9900", + "#ed4014", + "#00b5ff", + "#19c919", + "#f9e31c", + "#ea1a1a", + "#9b1dea", + "#00c2b1", + "#ac7a33", + "#1d35ea", + "#8bc34a", + "#f16b62", + "#ea4ca3", + "#0d94aa", + "#febd79", + "#5d4037", + "#00bcd4", + "#f06292", + "#cddc39", + "#607d8b", + "#000000", + "#ffffff" + ] + }; + }, + computed: { + arrowClasses() { + return [ + `${this.inputPrefixCls}-icon`, + `${this.inputPrefixCls}-icon-normal` + ]; + }, + transition() { + return oneOf(this.placement, ["bottom-start", "bottom", "bottom-end"]) ? "slide-up" : "fade"; + }, + saturationColors: { + get() { + return this.val; + }, + set(newVal) { + this.val = newVal; + this.$emit("on-active-change", this.formatColor); + } + }, + classes() { + return [ + `${this.prefixCls}`, + { + [`${this.prefixCls}-transfer`]: this.transfer + } + ]; + }, + wrapClasses() { + return [ + `${this.prefixCls}-rel`, + `${this.prefixCls}-${this.size}`, + `${this.inputPrefixCls}-wrapper`, + `${this.inputPrefixCls}-wrapper-${this.size}`, + { + [`${this.prefixCls}-disabled`]: this.itemDisabled + } + ]; + }, + inputClasses() { + return [ + `${this.prefixCls}-input`, + `${this.inputPrefixCls}`, + `${this.inputPrefixCls}-${this.size}`, + { + [`${this.prefixCls}-focused`]: this.visible, + [`${this.prefixCls}-disabled`]: this.itemDisabled + } + ]; + }, + dropClasses() { + return { + [`${this.transferPrefixCls}-no-max-height`]: true, + [`${this.prefixCls}-transfer`]: this.transfer, + [`${this.prefixCls}-hide-drop`]: this.hideDropDown, + [this.transferClassName]: this.transferClassName + }; + }, + displayedColorStyle() { + return { backgroundColor: toRGBAString(this.visible ? this.saturationColors.rgba : tinycolor(this.modelValue).toRgb()) }; + }, + formatColor() { + const { format: format2, saturationColors } = this; + if (format2) { + if (format2 === "hsl") { + return tinycolor(saturationColors.hsl).toHslString(); + } + if (format2 === "hsv") { + return tinycolor(saturationColors.hsv).toHsvString(); + } + if (format2 === "hex") { + return saturationColors.hex; + } + if (format2 === "rgb") { + return toRGBAString(saturationColors.rgba); + } + } else if (this.alpha) { + return toRGBAString(saturationColors.rgba); + } + return saturationColors.hex; + }, + confirmColorClasses() { + return [ + `${this.prefixCls}-confirm-color`, + { + [`${this.prefixCls}-confirm-color-editable`]: this.editable + } + ]; + }, + arrowType() { + const config = this.globalConfig; + let type2 = "ios-arrow-down"; + if (config) { + if (config.colorPicker.customArrow) { + type2 = ""; + } else if (config.colorPicker.arrow) { + type2 = config.colorPicker.arrow; + } + } + return type2; + }, + customArrowType() { + const config = this.globalConfig; + let type2 = ""; + if (config) { + if (config.colorPicker.customArrow) { + type2 = config.colorPicker.customArrow; + } + } + return type2; + }, + arrowSize() { + const config = this.globalConfig; + let size = ""; + if (config) { + if (config.colorPicker.arrowSize) { + size = config.colorPicker.arrowSize; + } + } + return size; + } + }, + watch: { + modelValue(newVal) { + this.val = changeColor(newVal || ""); + }, + visible(val) { + this.val = changeColor(this.modelValue || ""); + this.$refs.drop[val ? "update" : "destroy"](); + this.$emit("on-open-change", Boolean(val)); + } + }, + methods: { + setDragging(value) { + this.dragging = value; + }, + handleClose(event) { + if (this.visible) { + if (this.dragging || event.type === "mousedown") { + if (this.$refs.editColorInput && event.target !== this.$refs.editColorInput.$el.querySelector("input")) { + event.preventDefault(); + } + return; + } + if (this.transfer) { + const $el = this.$refs.drop.$refs.drop; + if ($el === event.target || $el.contains(event.target)) { + return; + } + } + this.closer(event); + return; + } + this.visible = false; + }, + toggleVisible() { + if (this.itemDisabled) { + return; + } + this.visible = !this.visible; + this.$refs.input.focus(); + }, + childChange(data) { + this.colorChange(data); + }, + colorChange(data, oldHue) { + this.oldHue = this.saturationColors.hsl.h; + this.saturationColors = changeColor(data, oldHue || this.oldHue); + }, + closer(event) { + if (event) { + event.preventDefault(); + event.stopPropagation(); + } + this.visible = false; + this.$refs.input.focus(); + }, + handleButtons(event, value) { + this.currentValue = value; + this.$emit("update:modelValue", value); + this.$emit("on-change", value); + this.handleFormItemChange("change", value); + this.closer(event); + }, + handleSuccess(event) { + this.handleButtons(event, this.formatColor); + this.$emit("on-pick-success"); + }, + handleClear(event) { + this.handleButtons(event, ""); + this.$emit("on-pick-clear"); + }, + handleSelectColor(color2) { + this.val = changeColor(color2); + this.$emit("on-active-change", this.formatColor); + }, + handleEditColor(event) { + const value = event.target.value; + this.handleSelectColor(value); + }, + handleFirstTab(event) { + if (event.shiftKey) { + event.preventDefault(); + event.stopPropagation(); + this.$refs.ok.$el.focus(); + } + }, + handleLastTab(event) { + if (!event.shiftKey) { + event.preventDefault(); + event.stopPropagation(); + this.$refs.saturation.$el.focus(); + } + }, + onTab(event) { + if (this.visible) { + event.preventDefault(); + } + }, + onEscape(event) { + if (this.visible) { + this.closer(event); + } + }, + onArrow(event) { + if (!this.visible) { + event.preventDefault(); + event.stopPropagation(); + this.visible = true; + } + }, + handleOnEscapeKeydown(e) { + this.closer(e); + }, + handleOnDragging(value) { + this.setDragging(value); + } + } +}; +const _hoisted_1$U = ["name", "value"]; +const _hoisted_2$z = ["tabindex"]; +function _sfc_render$1u(_ctx, _cache, $props, $setup, $data, $options) { + const _component_Icon = resolveComponent("Icon"); + const _component_Saturation = resolveComponent("Saturation"); + const _component_Hue = resolveComponent("Hue"); + const _component_Alpha = resolveComponent("Alpha"); + const _component_recommend_colors = resolveComponent("recommend-colors"); + const _component_i_input = resolveComponent("i-input"); + const _component_i_button = resolveComponent("i-button"); + const _component_Drop = resolveComponent("Drop"); + const _directive_click_outside = resolveDirective("click-outside"); + return withDirectives((openBlock(), createElementBlock("div", { + class: normalizeClass($options.classes) + }, [ + createElementVNode("div", { + ref: "reference", + class: normalizeClass($options.wrapClasses), + onClick: _cache[4] || (_cache[4] = (...args) => $options.toggleVisible && $options.toggleVisible(...args)) + }, [ + createElementVNode("input", { + name: $props.name, + value: $data.currentValue, + type: "hidden" + }, null, 8, _hoisted_1$U), + createVNode(_component_Icon, { + type: $options.arrowType, + custom: $options.customArrowType, + size: $options.arrowSize, + class: normalizeClass($options.arrowClasses) + }, null, 8, ["type", "custom", "size", "class"]), + createElementVNode("div", { + ref: "input", + tabindex: _ctx.itemDisabled ? void 0 : 0, + class: normalizeClass($options.inputClasses), + onKeydown: [ + _cache[0] || (_cache[0] = withKeys((...args) => $options.onTab && $options.onTab(...args), ["tab"])), + _cache[1] || (_cache[1] = withKeys((...args) => $options.onEscape && $options.onEscape(...args), ["esc"])), + _cache[2] || (_cache[2] = withKeys((...args) => $options.onArrow && $options.onArrow(...args), ["up"])), + _cache[3] || (_cache[3] = withKeys((...args) => $options.onArrow && $options.onArrow(...args), ["down"])) + ] + }, [ + createElementVNode("div", { + class: normalizeClass([_ctx.prefixCls + "-color"]) + }, [ + withDirectives(createElementVNode("div", { + class: normalizeClass([_ctx.prefixCls + "-color-empty"]) + }, [ + createElementVNode("i", { + class: normalizeClass([_ctx.iconPrefixCls, _ctx.iconPrefixCls + "-ios-close"]) + }, null, 2) + ], 2), [ + [vShow, $props.modelValue === "" && !$data.visible] + ]), + withDirectives(createElementVNode("div", { + style: normalizeStyle($options.displayedColorStyle) + }, null, 4), [ + [vShow, $props.modelValue || $data.visible] + ]) + ], 2) + ], 42, _hoisted_2$z) + ], 2), + createVNode(_component_Drop, { + ref: "drop", + visible: $data.visible, + placement: $props.placement, + transfer: $props.transfer, + classes: $options.dropClasses, + eventsEnabled: $props.eventsEnabled, + "transition-name": "transition-drop" + }, { + default: withCtx(() => [ + createVNode(Transition, { name: "fade" }, { + default: withCtx(() => [ + $data.visible ? (openBlock(), createElementBlock("div", { + key: 0, + class: normalizeClass([_ctx.prefixCls + "-picker"]) + }, [ + createElementVNode("div", { + class: normalizeClass([_ctx.prefixCls + "-picker-wrapper"]) + }, [ + createElementVNode("div", { + class: normalizeClass([_ctx.prefixCls + "-picker-panel"]) + }, [ + createVNode(_component_Saturation, { + ref: "saturation", + value: $options.saturationColors, + focused: $data.visible, + onChange: $options.childChange, + onKeydown: withKeys($options.handleFirstTab, ["tab"]) + }, null, 8, ["value", "focused", "onChange", "onKeydown"]) + ], 2), + $props.hue ? (openBlock(), createElementBlock("div", { + key: 0, + class: normalizeClass([_ctx.prefixCls + "-picker-hue-slider"]) + }, [ + createVNode(_component_Hue, { + value: $options.saturationColors, + onChange: $options.childChange + }, null, 8, ["value", "onChange"]) + ], 2)) : createCommentVNode("", true), + $props.alpha ? (openBlock(), createElementBlock("div", { + key: 1, + class: normalizeClass([_ctx.prefixCls + "-picker-alpha-slider"]) + }, [ + createVNode(_component_Alpha, { + value: $options.saturationColors, + onChange: $options.childChange + }, null, 8, ["value", "onChange"]) + ], 2)) : createCommentVNode("", true), + $props.colors.length ? (openBlock(), createBlock(_component_recommend_colors, { + key: 2, + list: $props.colors, + class: normalizeClass([_ctx.prefixCls + "-picker-colors"]), + onPickerColor: $options.handleSelectColor + }, null, 8, ["list", "class", "onPickerColor"])) : createCommentVNode("", true), + !$props.colors.length && $props.recommend ? (openBlock(), createBlock(_component_recommend_colors, { + key: 3, + list: $data.recommendedColor, + class: normalizeClass([_ctx.prefixCls + "-picker-colors"]), + onPickerColor: $options.handleSelectColor + }, null, 8, ["list", "class", "onPickerColor"])) : createCommentVNode("", true) + ], 2), + createElementVNode("div", { + class: normalizeClass([_ctx.prefixCls + "-confirm"]) + }, [ + createElementVNode("span", { + class: normalizeClass($options.confirmColorClasses) + }, [ + $props.editable ? (openBlock(), createBlock(_component_i_input, { + key: 0, + ref: "editColorInput", + modelValue: $options.formatColor, + size: "small", + onOnEnter: $options.handleEditColor, + onOnBlur: $options.handleEditColor + }, null, 8, ["modelValue", "onOnEnter", "onOnBlur"])) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [ + createTextVNode(toDisplayString($options.formatColor), 1) + ], 64)) + ], 2), + createVNode(_component_i_button, { + class: normalizeClass([_ctx.prefixCls + "-confirm-btn-cancel"]), + ref: "clear", + tabindex: 0, + size: "small", + onClick: $options.handleClear, + onKeydown: [ + withKeys($options.handleClear, ["enter"]), + withKeys($options.closer, ["esc"]) + ] + }, { + default: withCtx(() => [ + createTextVNode(toDisplayString(_ctx.t("i.datepicker.clear")), 1) + ]), + _: 1 + }, 8, ["class", "onClick", "onKeydown"]), + createVNode(_component_i_button, { + ref: "ok", + tabindex: 0, + size: "small", + type: "primary", + onClick: $options.handleSuccess, + onKeydown: [ + withKeys($options.handleLastTab, ["tab"]), + withKeys($options.handleSuccess, ["enter"]), + withKeys($options.closer, ["esc"]) + ] + }, { + default: withCtx(() => [ + createTextVNode(toDisplayString(_ctx.t("i.datepicker.ok")), 1) + ]), + _: 1 + }, 8, ["onClick", "onKeydown"]) + ], 2) + ], 2)) : createCommentVNode("", true) + ]), + _: 1 + }) + ]), + _: 1 + }, 8, ["visible", "placement", "transfer", "classes", "eventsEnabled"]) + ], 2)), [ + [_directive_click_outside, $options.handleClose, $props.capture] + ]); +} +var ColorPicker = /* @__PURE__ */ _export_sfc(_sfc_main$1I, [["render", _sfc_render$1u]]); +const prefixCls$U = "ivu-layout"; +const _sfc_main$1H = { + name: "Content", + computed: { + wrapClasses() { + return `${prefixCls$U}-content`; + } + } +}; +function _sfc_render$1t(_ctx, _cache, $props, $setup, $data, $options) { + return openBlock(), createElementBlock("div", { + class: normalizeClass($options.wrapClasses) + }, [ + renderSlot(_ctx.$slots, "default") + ], 2); +} +var Content = /* @__PURE__ */ _export_sfc(_sfc_main$1H, [["render", _sfc_render$1t]]); +function select(element) { + var selectedText; + if (element.nodeName === "SELECT") { + element.focus(); + selectedText = element.value; + } else if (element.nodeName === "INPUT" || element.nodeName === "TEXTAREA") { + var isReadOnly = element.hasAttribute("readonly"); + if (!isReadOnly) { + element.setAttribute("readonly", ""); + } + element.select(); + element.setSelectionRange(0, element.value.length); + if (!isReadOnly) { + element.removeAttribute("readonly"); + } + selectedText = element.value; + } else { + if (element.hasAttribute("contenteditable")) { + element.focus(); + } + var selection = window.getSelection(); + var range2 = document.createRange(); + range2.selectNodeContents(element); + selection.removeAllRanges(); + selection.addRange(range2); + selectedText = selection.toString(); + } + return selectedText; +} +var select_1 = select; +var Render$1 = { + name: "RenderCell", + props: { + render: Function + }, + render() { + return this.render(h); + } +}; +const _sfc_main$1G = { + components: { + RenderCell: Render$1 + }, + props: { + prefixCls: { + type: String, + default: "" + }, + duration: { + type: Number, + default: 1.5 + }, + type: { + type: String + }, + content: { + type: String, + default: "" + }, + withIcon: Boolean, + render: { + type: Function + }, + hasTitle: Boolean, + styles: { + type: Object, + default: function() { + return { + right: "50%" + }; + } + }, + closable: { + type: Boolean, + default: false + }, + className: { + type: String + }, + name: { + type: String, + required: true + }, + onClose: { + type: Function + }, + transitionName: { + type: String + }, + background: { + type: Boolean, + default: false + }, + msgType: { + type: String + } + }, + data() { + return { + withDesc: false + }; + }, + computed: { + baseClass() { + return `${this.prefixCls}-notice`; + }, + renderFunc() { + return this.render || function() { + }; + }, + classes() { + return [ + this.baseClass, + { + [`${this.className}`]: !!this.className, + [`${this.baseClass}-closable`]: this.closable, + [`${this.baseClass}-with-desc`]: this.withDesc, + [`${this.baseClass}-with-background`]: this.background + } + ]; + }, + contentClasses() { + return [ + `${this.baseClass}-content`, + this.render !== void 0 ? `${this.baseClass}-content-with-render` : "" + ]; + }, + messageContentClasses() { + return [ + `${this.baseClass}-content`, + { + [`${this.baseClass}-content-${this.msgType}`]: this.msgType, + [`${this.baseClass}-content-background`]: this.background + } + ]; + }, + contentWithIcon() { + return [ + this.withIcon ? `${this.prefixCls}-content-with-icon` : "", + !this.hasTitle && this.withIcon ? `${this.prefixCls}-content-with-render-notitle` : "" + ]; + }, + messageClasses() { + return [ + `${this.baseClass}-content`, + this.render !== void 0 ? `${this.baseClass}-content-with-render` : "" + ]; + } + }, + methods: { + clearCloseTimer() { + if (this.closeTimer) { + clearTimeout(this.closeTimer); + this.closeTimer = null; + } + }, + close() { + this.clearCloseTimer(); + this.onClose(); + this.$parent.$parent.close(this.name); + }, + handleEnter(el) { + if (this.type === "message") { + el.style.height = el.scrollHeight + "px"; + } + }, + handleLeave(el) { + if (this.type === "message") { + if (isClient && document.getElementsByClassName("ivu-message-notice").length !== 1) { + el.style.height = 0; + el.style.paddingTop = 0; + el.style.paddingBottom = 0; + } + } + } + }, + mounted() { + this.handleEnter(this.$el); + this.clearCloseTimer(); + if (this.duration !== 0) { + this.closeTimer = setTimeout(() => { + this.close(); + }, this.duration * 1e3); + } + if (this.prefixCls === "ivu-notice") { + let desc = this.$refs.content.querySelectorAll(`.${this.prefixCls}-desc`)[0]; + this.withDesc = this.render ? true : desc ? desc.innerHTML !== "" : false; + } + }, + beforeUnmount() { + this.handleLeave(this.$el); + this.clearCloseTimer(); + } +}; +const _hoisted_1$T = ["innerHTML"]; +const _hoisted_2$y = /* @__PURE__ */ createElementVNode("i", { class: "ivu-icon ivu-icon-ios-close" }, null, -1); +const _hoisted_3$s = [ + _hoisted_2$y +]; +const _hoisted_4$m = ["innerHTML"]; +const _hoisted_5$e = /* @__PURE__ */ createElementVNode("i", { class: "ivu-icon ivu-icon-ios-close" }, null, -1); +const _hoisted_6$6 = [ + _hoisted_5$e +]; +function _sfc_render$1s(_ctx, _cache, $props, $setup, $data, $options) { + const _component_render_cell = resolveComponent("render-cell"); + return openBlock(), createElementBlock("div", { + class: normalizeClass($options.classes), + style: normalizeStyle($props.styles) + }, [ + $props.type === "notice" ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [ + createElementVNode("div", { + class: normalizeClass($options.contentClasses), + ref: "content", + innerHTML: $props.content + }, null, 10, _hoisted_1$T), + createElementVNode("div", { + class: normalizeClass($options.contentWithIcon) + }, [ + createVNode(_component_render_cell, { render: $options.renderFunc }, null, 8, ["render"]) + ], 2), + $props.closable ? (openBlock(), createElementBlock("a", { + key: 0, + class: normalizeClass([$options.baseClass + "-close"]), + onClick: _cache[0] || (_cache[0] = (...args) => $options.close && $options.close(...args)) + }, _hoisted_3$s, 2)) : createCommentVNode("", true) + ], 64)) : createCommentVNode("", true), + $props.type === "message" ? (openBlock(), createElementBlock("div", { + key: 1, + class: normalizeClass($options.messageContentClasses), + ref: "content" + }, [ + createElementVNode("div", { + class: normalizeClass([$options.baseClass + "-content-text"]), + innerHTML: $props.content + }, null, 10, _hoisted_4$m), + createElementVNode("div", { + class: normalizeClass([$options.baseClass + "-content-text"]) + }, [ + createVNode(_component_render_cell, { render: $options.renderFunc }, null, 8, ["render"]) + ], 2), + $props.closable ? (openBlock(), createElementBlock("a", { + key: 0, + class: normalizeClass([$options.baseClass + "-close"]), + onClick: _cache[1] || (_cache[1] = (...args) => $options.close && $options.close(...args)) + }, _hoisted_6$6, 2)) : createCommentVNode("", true) + ], 2)) : createCommentVNode("", true) + ], 6); +} +var Notice = /* @__PURE__ */ _export_sfc(_sfc_main$1G, [["render", _sfc_render$1s]]); +const prefixCls$T = "ivu-notification"; +let seed = 0; +const now$1 = Date.now(); +function getUuid() { + return "ivuNotification_" + now$1 + "_" + seed++; +} +const _sfc_main$1F = { + components: { Notice }, + props: { + prefixCls: { + type: String, + default: prefixCls$T + }, + styles: { + type: Object, + default: function() { + return { + top: "65px", + left: "50%" + }; + } + }, + content: { + type: String + }, + className: { + type: String + }, + transitionName: { + type: String + } + }, + data() { + return { + notices: [], + tIndex: this.handleGetIndex() + }; + }, + computed: { + classes() { + return [ + `${this.prefixCls}`, + { + [`${this.className}`]: !!this.className + } + ]; + }, + wrapStyles() { + let styles = Object.assign({}, this.styles); + styles["z-index"] = 1010 + this.tIndex; + return styles; + } + }, + methods: { + add(notice2) { + const name2 = notice2.name || getUuid(); + let _notice = Object.assign({ + styles: { + right: "50%" + }, + content: "", + duration: 1.5, + closable: false, + name: name2 + }, notice2); + this.notices.push(_notice); + this.tIndex = this.handleGetIndex(); + }, + close(name2) { + const notices = this.notices; + for (let i = 0; i < notices.length; i++) { + if (notices[i].name === name2) { + this.notices.splice(i, 1); + break; + } + } + }, + closeAll() { + this.notices = []; + }, + handleGetIndex() { + transferIncrease(); + return transferIndex; + } + } +}; +function _sfc_render$1r(_ctx, _cache, $props, $setup, $data, $options) { + const _component_Notice = resolveComponent("Notice"); + return openBlock(), createElementBlock("div", { + class: normalizeClass($options.classes), + style: normalizeStyle($options.wrapStyles) + }, [ + createVNode(TransitionGroup, { + name: $props.transitionName, + appear: "" + }, { + default: withCtx(() => [ + (openBlock(true), createElementBlock(Fragment, null, renderList($data.notices, (notice2) => { + return openBlock(), createBlock(_component_Notice, { + key: notice2.name, + "prefix-cls": $props.prefixCls, + styles: notice2.styles, + type: notice2.type, + content: notice2.content, + duration: notice2.duration, + render: notice2.render, + "has-title": notice2.hasTitle, + withIcon: notice2.withIcon, + closable: notice2.closable, + name: notice2.name, + "transition-name": notice2.transitionName, + background: notice2.background, + "msg-type": notice2.msgType, + "on-close": notice2.onClose + }, null, 8, ["prefix-cls", "styles", "type", "content", "duration", "render", "has-title", "withIcon", "closable", "name", "transition-name", "background", "msg-type", "on-close"]); + }), 128)) + ]), + _: 1 + }, 8, ["name"]) + ], 6); +} +var Notification$1 = /* @__PURE__ */ _export_sfc(_sfc_main$1F, [["render", _sfc_render$1r]]); +Notification$1.newInstance = (properties) => { + if (!isClient) + return; + const _props = properties || {}; + let _instance = null; + const Instance = createApp({ + render() { + return h(Notification$1, Object.assign({ + ref: "notification" + }, _props)); + }, + created() { + _instance = getCurrentInstance(); + } + }); + const container = document.createElement("div"); + document.body.appendChild(container); + Instance.mount(container); + const notification = _instance.refs.notification; + return { + notice(noticeProps) { + notification.add(noticeProps); + }, + remove(name2) { + notification.close(name2); + }, + component: notification, + destroy(element) { + notification.closeAll(); + isClient && setTimeout(function() { + document.body.removeChild(document.getElementsByClassName(element)[0]); + }, 500); + } + }; +}; +const prefixCls$S = "ivu-message"; +const iconPrefixCls$3 = "ivu-icon"; +const prefixKey$1 = "ivu_message_key_"; +const defaults$1 = { + top: 24, + duration: 1.5, + background: false +}; +let messageInstance; +let name$2 = 1; +const iconTypes$1 = { + "info": "ios-information-circle", + "success": "ios-checkmark-circle", + "warning": "ios-alert", + "error": "ios-close-circle", + "loading": "ios-loading" +}; +const transitionName$1 = "move-up"; +function getMessageInstance() { + messageInstance = messageInstance || Notification$1.newInstance({ + prefixCls: prefixCls$S, + styles: { + top: `${defaults$1.top}px` + }, + transitionName: transitionName$1 + }); + return messageInstance; +} +function notice$1(content = "", duration2 = defaults$1.duration, type2, onClose = function() { +}, closable = false, render = function() { +}, background = defaults$1.background) { + const iconType = iconTypes$1[type2]; + const loadCls = type2 === "loading" ? " ivu-load-loop" : ""; + let instance = getMessageInstance(); + instance.notice({ + name: `${prefixKey$1}${name$2}`, + duration: duration2, + styles: {}, + transitionName: transitionName$1, + content: ` +
+ + ${content} +
+ `, + render, + onClose, + closable, + type: "message", + msgType: type2, + background + }); + return function() { + let target = name$2++; + return function() { + instance.remove(`${prefixKey$1}${target}`); + }; + }(); +} +var $Message = { + name: "Message", + info(options) { + return this.message("info", options); + }, + success(options) { + return this.message("success", options); + }, + warning(options) { + return this.message("warning", options); + }, + error(options) { + return this.message("error", options); + }, + loading(options) { + return this.message("loading", options); + }, + message(type2, options) { + if (typeof options === "string") { + options = { + content: options + }; + } + return notice$1(options.content, options.duration, type2, options.onClose, options.closable, options.render, options.background); + }, + config(options) { + if (options.top || options.top === 0) { + defaults$1.top = options.top; + } + if (options.duration || options.duration === 0) { + defaults$1.duration = options.duration; + } + if (options.background) + defaults$1.background = options.background; + }, + destroy() { + let instance = getMessageInstance(); + messageInstance = null; + instance.destroy("ivu-message"); + } +}; +const defaultSuccessTip = "\u590D\u5236\u6210\u529F"; +const defaultErrorTip = "\u590D\u5236\u5931\u8D25"; +function Copy({ text = "", successTip = defaultSuccessTip, errorTip = defaultErrorTip, success, error, showTip = true }) { + if (!isClient) + return; + const isRTL = document.documentElement.getAttribute("dir") === "rtl"; + const $textarea = document.createElement("textarea"); + $textarea.style.fontSize = "12pt"; + $textarea.style.border = "0"; + $textarea.style.padding = "0"; + $textarea.style.margin = "0"; + $textarea.style.position = "absolute"; + $textarea.style[isRTL ? "right" : "left"] = "-9999px"; + let yPosition = window.pageYOffset || document.documentElement.scrollTop; + $textarea.style.top = `${yPosition}px`; + $textarea.setAttribute("readonly", ""); + $textarea.value = text; + document.body.appendChild($textarea); + select_1($textarea); + let succeeded; + try { + succeeded = document.execCommand("copy"); + if (showTip) { + $Message.success({ + content: successTip + }); + } + document.body.removeChild($textarea); + if (success) + success.call(); + } catch (err) { + succeeded = false; + if (showTip) { + $Message.error({ + content: errorTip + }); + } + document.body.removeChild($textarea); + if (error) + error.call(); + } +} +function fixedZero(val) { + return val * 1 < 10 ? `0${val}` : val; +} +const _sfc_main$1E = { + name: "CountDown", + emits: ["on-end"], + props: { + format: { + type: Function + }, + target: { + type: [Date, Number] + }, + interval: { + type: Number, + default: 1e3 + } + }, + data() { + return { + lastTime: "" + }; + }, + methods: { + initTime() { + let lastTime = 0; + let targetTime = 0; + try { + if (Object.prototype.toString.call(this.target) === "[object Date]") { + targetTime = this.target.getTime(); + } else { + targetTime = new Date(this.target).getTime(); + } + } catch (e) { + throw new Error("invalid target prop", e); + } + lastTime = targetTime - new Date().getTime(); + return lastTime < 0 ? 0 : lastTime; + }, + tick() { + let { lastTime } = this; + this.timer = setTimeout(() => { + if (lastTime < this.interval) { + clearTimeout(this.timer); + this.lastTime = 0; + this.$emit("on-end"); + } else { + lastTime -= this.interval; + this.lastTime = lastTime; + this.tick(); + } + }, this.interval); + }, + defaultFormat(time) { + const hours = 60 * 60 * 1e3; + const minutes = 60 * 1e3; + const h2 = Math.floor(time / hours); + const m = Math.floor((time - h2 * hours) / minutes); + const s = Math.floor((time - h2 * hours - m * minutes) / 1e3); + return `${fixedZero(h2)}:${fixedZero(m)}:${fixedZero(s)}`; + } + }, + computed: { + result() { + const { format: format2 = this.defaultFormat } = this; + return format2(this.lastTime); + } + }, + watch: { + target() { + if (this.timer) + clearTimeout(this.timer); + this.lastTime = this.initTime(); + this.tick(); + } + }, + created() { + this.lastTime = this.initTime(); + }, + mounted() { + this.tick(); + }, + beforeUnmount() { + if (this.timer) + clearTimeout(this.timer); + } +}; +function _sfc_render$1q(_ctx, _cache, $props, $setup, $data, $options) { + return openBlock(), createElementBlock("span", null, toDisplayString($options.result), 1); +} +var CountDown = /* @__PURE__ */ _export_sfc(_sfc_main$1E, [["render", _sfc_render$1q]]); +var countUp_min = { exports: {} }; +(function(module, exports) { + !function(a, n) { + module.exports = n(commonjsRequire, exports, module); + }(commonjsGlobal, function(a, n, t2) { + var e = function(a2, n2, t3, e2, i, r) { + function o(a3) { + var n3, t4, e3, i2, r2, o2, s2 = a3 < 0; + if (a3 = Math.abs(a3).toFixed(l.decimals), a3 += "", n3 = a3.split("."), t4 = n3[0], e3 = n3.length > 1 ? l.options.decimal + n3[1] : "", l.options.useGrouping) { + for (i2 = "", r2 = 0, o2 = t4.length; r2 < o2; ++r2) + 0 !== r2 && r2 % 3 === 0 && (i2 = l.options.separator + i2), i2 = t4[o2 - r2 - 1] + i2; + t4 = i2; + } + return l.options.numerals.length && (t4 = t4.replace(/[0-9]/g, function(a4) { + return l.options.numerals[+a4]; + }), e3 = e3.replace(/[0-9]/g, function(a4) { + return l.options.numerals[+a4]; + })), (s2 ? "-" : "") + l.options.prefix + t4 + e3 + l.options.suffix; + } + function s(a3, n3, t4, e3) { + return t4 * (-Math.pow(2, -10 * a3 / e3) + 1) * 1024 / 1023 + n3; + } + function u(a3) { + return "number" == typeof a3 && !isNaN(a3); + } + var l = this; + if (l.version = function() { + return "1.9.3"; + }, l.options = { useEasing: true, useGrouping: true, separator: ",", decimal: ".", easingFn: s, formattingFn: o, prefix: "", suffix: "", numerals: [] }, r && "object" == typeof r) + for (var m in l.options) + r.hasOwnProperty(m) && null !== r[m] && (l.options[m] = r[m]); + "" === l.options.separator ? l.options.useGrouping = false : l.options.separator = "" + l.options.separator; + for (var d = 0, c = ["webkit", "moz", "ms", "o"], f = 0; f < c.length && !window.requestAnimationFrame; ++f) + window.requestAnimationFrame = window[c[f] + "RequestAnimationFrame"], window.cancelAnimationFrame = window[c[f] + "CancelAnimationFrame"] || window[c[f] + "CancelRequestAnimationFrame"]; + window.requestAnimationFrame || (window.requestAnimationFrame = function(a3, n3) { + var t4 = new Date().getTime(), e3 = Math.max(0, 16 - (t4 - d)), i2 = window.setTimeout(function() { + a3(t4 + e3); + }, e3); + return d = t4 + e3, i2; + }), window.cancelAnimationFrame || (window.cancelAnimationFrame = function(a3) { + clearTimeout(a3); + }), l.initialize = function() { + return !!l.initialized || (l.error = "", l.d = "string" == typeof a2 ? document.getElementById(a2) : a2, l.d ? (l.startVal = Number(n2), l.endVal = Number(t3), u(l.startVal) && u(l.endVal) ? (l.decimals = Math.max(0, e2 || 0), l.dec = Math.pow(10, l.decimals), l.duration = 1e3 * Number(i) || 2e3, l.countDown = l.startVal > l.endVal, l.frameVal = l.startVal, l.initialized = true, true) : (l.error = "[CountUp] startVal (" + n2 + ") or endVal (" + t3 + ") is not a number", false)) : (l.error = "[CountUp] target is null or undefined", false)); + }, l.printValue = function(a3) { + var n3 = l.options.formattingFn(a3); + "INPUT" === l.d.tagName ? this.d.value = n3 : "text" === l.d.tagName || "tspan" === l.d.tagName ? this.d.textContent = n3 : this.d.innerHTML = n3; + }, l.count = function(a3) { + l.startTime || (l.startTime = a3), l.timestamp = a3; + var n3 = a3 - l.startTime; + l.remaining = l.duration - n3, l.options.useEasing ? l.countDown ? l.frameVal = l.startVal - l.options.easingFn(n3, 0, l.startVal - l.endVal, l.duration) : l.frameVal = l.options.easingFn(n3, l.startVal, l.endVal - l.startVal, l.duration) : l.countDown ? l.frameVal = l.startVal - (l.startVal - l.endVal) * (n3 / l.duration) : l.frameVal = l.startVal + (l.endVal - l.startVal) * (n3 / l.duration), l.countDown ? l.frameVal = l.frameVal < l.endVal ? l.endVal : l.frameVal : l.frameVal = l.frameVal > l.endVal ? l.endVal : l.frameVal, l.frameVal = Math.round(l.frameVal * l.dec) / l.dec, l.printValue(l.frameVal), n3 < l.duration ? l.rAF = requestAnimationFrame(l.count) : l.callback && l.callback(); + }, l.start = function(a3) { + l.initialize() && (l.callback = a3, l.rAF = requestAnimationFrame(l.count)); + }, l.pauseResume = function() { + l.paused ? (l.paused = false, delete l.startTime, l.duration = l.remaining, l.startVal = l.frameVal, requestAnimationFrame(l.count)) : (l.paused = true, cancelAnimationFrame(l.rAF)); + }, l.reset = function() { + l.paused = false, delete l.startTime, l.initialized = false, l.initialize() && (cancelAnimationFrame(l.rAF), l.printValue(l.startVal)); + }, l.update = function(a3) { + if (l.initialize()) { + if (a3 = Number(a3), !u(a3)) + return void (l.error = "[CountUp] update() - new endVal is not a number: " + a3); + l.error = "", a3 !== l.frameVal && (cancelAnimationFrame(l.rAF), l.paused = false, delete l.startTime, l.startVal = l.frameVal, l.endVal = a3, l.countDown = l.startVal > l.endVal, l.rAF = requestAnimationFrame(l.count)); + } + }, l.initialize() && l.printValue(l.startVal); + }; + return e; + }); +})(countUp_min, countUp_min.exports); +var CountUp$1 = countUp_min.exports; +const _sfc_main$1D = { + name: "CountUp", + props: { + start: { + type: Number, + required: false, + default: 0 + }, + end: { + type: Number, + required: true + }, + decimals: { + type: Number, + required: false, + default: 0 + }, + duration: { + type: Number, + required: false, + default: 2 + }, + options: { + type: Object, + required: false, + default() { + return {}; + } + }, + callback: { + type: Function, + required: false, + default: () => { + } + } + }, + data() { + return { + CountUp: null + }; + }, + watch: { + end(value) { + if (this.CountUp && this.CountUp.update) { + this.CountUp.update(value); + } + } + }, + mounted() { + this.init(); + }, + methods: { + init() { + if (!this.CountUp) { + this.CountUp = new CountUp$1( + this.$el, + this.start, + this.end, + this.decimals, + this.duration, + this.options + ); + this.CountUp.start(() => { + this.callback(this.CountUp); + }); + } + }, + destroy() { + this.CountUp = null; + } + }, + beforeUnmounted() { + this.destroy(); + }, + start(callback) { + if (this.CountUp && this.CountUp.start) { + this.CountUp.start(() => { + callback && callback(this.CountUp); + }); + } + }, + pauseResume() { + if (this.CountUp && this.CountUp.pauseResume) { + this.CountUp.pauseResume(); + } + }, + reset() { + if (this.CountUp && this.CountUp.reset) { + this.CountUp.reset(); + } + }, + update(newEndVal) { + if (this.CountUp && this.CountUp.update) { + this.CountUp.update(newEndVal); + } + } +}; +const _hoisted_1$S = { class: "ivu-count-up" }; +function _sfc_render$1p(_ctx, _cache, $props, $setup, $data, $options) { + return openBlock(), createElementBlock("span", _hoisted_1$S); +} +var CountUp = /* @__PURE__ */ _export_sfc(_sfc_main$1D, [["render", _sfc_render$1p]]); +var fecha = {}; +var token = /d{1,4}|M{1,4}|yy(?:yy)?|S{1,3}|Do|ZZ|([HhMsDm])\1?|[aA]|"[^"]*"|'[^']*'/g; +var twoDigits = /\d\d?/; +var threeDigits = /\d{3}/; +var fourDigits = /\d{4}/; +var word = /[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i; +var noop$1 = function() { +}; +function shorten(arr, sLen) { + var newArr = []; + for (var i = 0, len = arr.length; i < len; i++) { + newArr.push(arr[i].substr(0, sLen)); + } + return newArr; +} +function monthUpdate(arrName) { + return function(d, v, i18n2) { + var index2 = i18n2[arrName].indexOf(v.charAt(0).toUpperCase() + v.substr(1).toLowerCase()); + if (~index2) { + d.month = index2; + } + }; +} +function pad(val, len) { + val = String(val); + len = len || 2; + while (val.length < len) { + val = "0" + val; + } + return val; +} +var dayNames = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]; +var monthNames = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]; +var monthNamesShort = shorten(monthNames, 3); +var dayNamesShort = shorten(dayNames, 3); +fecha.i18n = { + dayNamesShort, + dayNames, + monthNamesShort, + monthNames, + amPm: ["am", "pm"], + DoFn: function DoFn(D) { + return D + ["th", "st", "nd", "rd"][D % 10 > 3 ? 0 : (D - D % 10 !== 10) * D % 10]; + } +}; +var formatFlags = { + D: function(dateObj) { + return dateObj.getDay(); + }, + DD: function(dateObj) { + return pad(dateObj.getDay()); + }, + Do: function(dateObj, i18n2) { + return i18n2.DoFn(dateObj.getDate()); + }, + d: function(dateObj) { + return dateObj.getDate(); + }, + dd: function(dateObj) { + return pad(dateObj.getDate()); + }, + ddd: function(dateObj, i18n2) { + return i18n2.dayNamesShort[dateObj.getDay()]; + }, + dddd: function(dateObj, i18n2) { + return i18n2.dayNames[dateObj.getDay()]; + }, + M: function(dateObj) { + return dateObj.getMonth() + 1; + }, + MM: function(dateObj) { + return pad(dateObj.getMonth() + 1); + }, + MMM: function(dateObj, i18n2) { + return i18n2.monthNamesShort[dateObj.getMonth()]; + }, + MMMM: function(dateObj, i18n2) { + return i18n2.monthNames[dateObj.getMonth()]; + }, + yy: function(dateObj) { + return String(dateObj.getFullYear()).substr(2); + }, + yyyy: function(dateObj) { + return dateObj.getFullYear(); + }, + h: function(dateObj) { + return dateObj.getHours() % 12 || 12; + }, + hh: function(dateObj) { + return pad(dateObj.getHours() % 12 || 12); + }, + H: function(dateObj) { + return dateObj.getHours(); + }, + HH: function(dateObj) { + return pad(dateObj.getHours()); + }, + m: function(dateObj) { + return dateObj.getMinutes(); + }, + mm: function(dateObj) { + return pad(dateObj.getMinutes()); + }, + s: function(dateObj) { + return dateObj.getSeconds(); + }, + ss: function(dateObj) { + return pad(dateObj.getSeconds()); + }, + S: function(dateObj) { + return Math.round(dateObj.getMilliseconds() / 100); + }, + SS: function(dateObj) { + return pad(Math.round(dateObj.getMilliseconds() / 10), 2); + }, + SSS: function(dateObj) { + return pad(dateObj.getMilliseconds(), 3); + }, + a: function(dateObj, i18n2) { + return dateObj.getHours() < 12 ? i18n2.amPm[0] : i18n2.amPm[1]; + }, + A: function(dateObj, i18n2) { + return dateObj.getHours() < 12 ? i18n2.amPm[0].toUpperCase() : i18n2.amPm[1].toUpperCase(); + }, + ZZ: function(dateObj) { + var o = dateObj.getTimezoneOffset(); + return (o > 0 ? "-" : "+") + pad(Math.floor(Math.abs(o) / 60) * 100 + Math.abs(o) % 60, 4); + } +}; +var parseFlags = { + d: [twoDigits, function(d, v) { + d.day = v; + }], + M: [twoDigits, function(d, v) { + d.month = v - 1; + }], + yy: [twoDigits, function(d, v) { + var da = new Date(), cent = +("" + da.getFullYear()).substr(0, 2); + d.year = "" + (v > 68 ? cent - 1 : cent) + v; + }], + h: [twoDigits, function(d, v) { + d.hour = v; + }], + m: [twoDigits, function(d, v) { + d.minute = v; + }], + s: [twoDigits, function(d, v) { + d.second = v; + }], + yyyy: [fourDigits, function(d, v) { + d.year = v; + }], + S: [/\d/, function(d, v) { + d.millisecond = v * 100; + }], + SS: [/\d{2}/, function(d, v) { + d.millisecond = v * 10; + }], + SSS: [threeDigits, function(d, v) { + d.millisecond = v; + }], + D: [twoDigits, noop$1], + ddd: [word, noop$1], + MMM: [word, monthUpdate("monthNamesShort")], + MMMM: [word, monthUpdate("monthNames")], + a: [word, function(d, v, i18n2) { + var val = v.toLowerCase(); + if (val === i18n2.amPm[0]) { + d.isPm = false; + } else if (val === i18n2.amPm[1]) { + d.isPm = true; + } + }], + ZZ: [/[\+\-]\d\d:?\d\d/, function(d, v) { + var parts = (v + "").match(/([\+\-]|\d\d)/gi), minutes; + if (parts) { + minutes = +(parts[1] * 60) + parseInt(parts[2], 10); + d.timezoneOffset = parts[0] === "+" ? minutes : -minutes; + } + }] +}; +parseFlags.DD = parseFlags.DD; +parseFlags.dddd = parseFlags.ddd; +parseFlags.Do = parseFlags.dd = parseFlags.d; +parseFlags.mm = parseFlags.m; +parseFlags.hh = parseFlags.H = parseFlags.HH = parseFlags.h; +parseFlags.MM = parseFlags.M; +parseFlags.ss = parseFlags.s; +parseFlags.A = parseFlags.a; +fecha.masks = { + "default": "ddd MMM dd yyyy HH:mm:ss", + shortDate: "M/D/yy", + mediumDate: "MMM d, yyyy", + longDate: "MMMM d, yyyy", + fullDate: "dddd, MMMM d, yyyy", + shortTime: "HH:mm", + mediumTime: "HH:mm:ss", + longTime: "HH:mm:ss.SSS" +}; +fecha.format = function(dateObj, mask, i18nSettings) { + var i18n2 = i18nSettings || fecha.i18n; + if (typeof dateObj === "number") { + dateObj = new Date(dateObj); + } + if (Object.prototype.toString.call(dateObj) !== "[object Date]" || isNaN(dateObj.getTime())) { + throw new Error("Invalid Date in fecha.format"); + } + mask = fecha.masks[mask] || mask || fecha.masks["default"]; + return mask.replace(token, function($0) { + return $0 in formatFlags ? formatFlags[$0](dateObj, i18n2) : $0.slice(1, $0.length - 1); + }); +}; +fecha.parse = function(dateStr, format2, i18nSettings) { + var i18n2 = i18nSettings || fecha.i18n; + if (typeof format2 !== "string") { + throw new Error("Invalid format in fecha.parse"); + } + format2 = fecha.masks[format2] || format2; + if (dateStr.length > 1e3) { + return false; + } + var isValid2 = true; + var dateInfo = {}; + format2.replace(token, function($0) { + if (parseFlags[$0]) { + var info = parseFlags[$0]; + var index2 = dateStr.search(info[0]); + if (!~index2) { + isValid2 = false; + } else { + dateStr.replace(info[0], function(result) { + info[1](dateInfo, result, i18n2); + dateStr = dateStr.substr(index2 + result.length); + return result; + }); + } + } + return parseFlags[$0] ? "" : $0.slice(1, $0.length - 1); + }); + if (!isValid2) { + return false; + } + var today = new Date(); + if (dateInfo.isPm === true && dateInfo.hour != null && +dateInfo.hour !== 12) { + dateInfo.hour = +dateInfo.hour + 12; + } else if (dateInfo.isPm === false && +dateInfo.hour === 12) { + dateInfo.hour = 0; + } + var date3; + if (dateInfo.timezoneOffset != null) { + dateInfo.minute = +(dateInfo.minute || 0) - +dateInfo.timezoneOffset; + date3 = new Date(Date.UTC( + dateInfo.year || today.getFullYear(), + dateInfo.month || 0, + dateInfo.day || 1, + dateInfo.hour || 0, + dateInfo.minute || 0, + dateInfo.second || 0, + dateInfo.millisecond || 0 + )); + } else { + date3 = new Date( + dateInfo.year || today.getFullYear(), + dateInfo.month || 0, + dateInfo.day || 1, + dateInfo.hour || 0, + dateInfo.minute || 0, + dateInfo.second || 0, + dateInfo.millisecond || 0 + ); + } + return date3; +}; +const toDate = function(date3) { + let _date = new Date(date3); + if (isNaN(_date.getTime()) && typeof date3 === "string") { + _date = date3.split("-").map(Number); + _date[1] += 1; + _date = new Date(..._date); + } + if (isNaN(_date.getTime())) + return null; + return _date; +}; +const clearHours = function(time) { + const cloneDate = new Date(time); + cloneDate.setHours(0, 0, 0, 0); + return cloneDate.getTime(); +}; +const isInRange = (time, a, b) => { + if (!a || !b) + return false; + const [start, end] = [a, b].sort(); + return time >= start && time <= end; +}; +const formatDate = function(date3, format2) { + date3 = toDate(date3); + if (!date3) + return ""; + return fecha.format(date3, format2 || "yyyy-MM-dd"); +}; +const parseDate = function(string2, format2) { + return fecha.parse(string2, format2 || "yyyy-MM-dd"); +}; +const getDayCountOfMonth = function(year, month) { + return new Date(year, month + 1, 0).getDate(); +}; +const siblingMonth = function(src, diff) { + const temp = new Date(src); + const newMonth = temp.getMonth() + diff; + const newMonthDayCount = getDayCountOfMonth(temp.getFullYear(), newMonth); + if (newMonthDayCount < temp.getDate()) { + temp.setDate(newMonthDayCount); + } + temp.setMonth(newMonth); + return temp; +}; +const initTimeDate = function() { + const date3 = new Date(); + date3.setHours(0); + date3.setMinutes(0); + date3.setSeconds(0); + return date3; +}; +const formatDateLabels = function() { + const formats = { + yyyy: (date3) => date3.getFullYear(), + m: (date3) => date3.getMonth() + 1, + mm: (date3) => ("0" + (date3.getMonth() + 1)).slice(-2), + mmm: (date3, locale2) => { + const monthName = date3.toLocaleDateString(locale2, { + month: "long" + }); + return monthName.slice(0, 3); + }, + Mmm: (date3, locale2) => { + const monthName = date3.toLocaleDateString(locale2, { + month: "long" + }); + return (monthName[0].toUpperCase() + monthName.slice(1).toLowerCase()).slice(0, 3); + }, + mmmm: (date3, locale2) => date3.toLocaleDateString(locale2, { + month: "long" + }), + Mmmm: (date3, locale2) => { + const monthName = date3.toLocaleDateString(locale2, { + month: "long" + }); + return monthName[0].toUpperCase() + monthName.slice(1).toLowerCase(); + } + }; + const formatRegex = new RegExp(["yyyy", "Mmmm", "mmmm", "Mmm", "mmm", "mm", "m"].join("|"), "g"); + return function(locale2, format2, date3) { + const componetsRegex = /(\[[^\]]+\])([^\[\]]+)(\[[^\]]+\])/; + const components2 = format2.match(componetsRegex).slice(1); + const separator = components2[1]; + const labels2 = [components2[0], components2[2]].map((component) => { + const label = component.replace(/\[[^\]]+\]/, (str) => { + return str.slice(1, -1).replace(formatRegex, (match) => formats[match](date3, locale2)); + }); + return { + label, + type: component.indexOf("yy") != -1 ? "year" : "month" + }; + }); + return { + separator, + labels: labels2 + }; + }; +}(); +const DEFAULT_FORMATS = { + date: "yyyy-MM-dd", + month: "yyyy-MM", + year: "yyyy", + datetime: "yyyy-MM-dd HH:mm:ss", + time: "HH:mm:ss", + timerange: "HH:mm:ss", + daterange: "yyyy-MM-dd", + datetimerange: "yyyy-MM-dd HH:mm:ss" +}; +const DATE_FORMATTER = function(value, format2) { + return formatDate(value, format2); +}; +const DATE_PARSER = function(text, format2) { + return parseDate(text, format2); +}; +const RANGE_FORMATTER = function(value, format2, RANGE_SEPARATOR) { + if (Array.isArray(value) && value.length === 2) { + const start = value[0]; + const end = value[1]; + if (start && end) { + return formatDate(start, format2) + RANGE_SEPARATOR + formatDate(end, format2); + } + } else if (!Array.isArray(value) && value instanceof Date) { + return formatDate(value, format2); + } + return ""; +}; +const RANGE_PARSER = function(text, format2, RANGE_SEPARATOR) { + const array3 = Array.isArray(text) ? text : text.split(RANGE_SEPARATOR); + if (array3.length === 2) { + const range1 = array3[0]; + const range2 = array3[1]; + return [ + range1 instanceof Date ? range1 : parseDate(range1, format2), + range2 instanceof Date ? range2 : parseDate(range2, format2) + ]; + } + return []; +}; +const TYPE_VALUE_RESOLVER_MAP = { + default: { + formatter(value) { + if (!value) + return ""; + return "" + value; + }, + parser(text) { + if (text === void 0 || text === "") + return null; + return text; + } + }, + date: { + formatter: DATE_FORMATTER, + parser: DATE_PARSER + }, + datetime: { + formatter: DATE_FORMATTER, + parser: DATE_PARSER + }, + daterange: { + formatter: RANGE_FORMATTER, + parser: RANGE_PARSER + }, + datetimerange: { + formatter: RANGE_FORMATTER, + parser: RANGE_PARSER + }, + timerange: { + formatter: RANGE_FORMATTER, + parser: RANGE_PARSER + }, + time: { + formatter: DATE_FORMATTER, + parser: DATE_PARSER + }, + month: { + formatter: DATE_FORMATTER, + parser: DATE_PARSER + }, + year: { + formatter: DATE_FORMATTER, + parser: DATE_PARSER + }, + multiple: { + formatter: (value, format2) => { + return value.filter(Boolean).map((date3) => formatDate(date3, format2)).join(","); + }, + parser: (value, format2) => { + const values = typeof value === "string" ? value.split(",") : value; + return values.map((value2) => { + if (value2 instanceof Date) + return value2; + if (typeof value2 === "string") + value2 = value2.trim(); + else if (typeof value2 !== "number" && !value2) + value2 = ""; + return parseDate(value2, format2); + }); + } + }, + number: { + formatter(value) { + if (!value) + return ""; + return "" + value; + }, + parser(text) { + let result = Number(text); + if (!isNaN(text)) { + return result; + } else { + return null; + } + } + } +}; +const prefixCls$R = "ivu-date-picker"; +const pickerPrefixCls = "ivu-picker"; +const isEmptyArray = (val) => val.reduce((isEmpty, str) => isEmpty && !str || typeof str === "string" && str.trim() === "", true); +const keyValueMapper = { + 40: "up", + 39: "right", + 38: "down", + 37: "left" +}; +const mapPossibleValues = (key2, horizontal, vertical) => { + if (key2 === "left") + return horizontal * -1; + if (key2 === "right") + return horizontal * 1; + if (key2 === "up") + return vertical * 1; + if (key2 === "down") + return vertical * -1; +}; +const pulseElement = (el) => { + const pulseClass = "ivu-date-picker-btn-pulse"; + el.classList.add(pulseClass); + setTimeout(() => el.classList.remove(pulseClass), 200); +}; +const extractTime = (date3) => { + if (!date3) + return [0, 0, 0]; + return [ + date3.getHours(), + date3.getMinutes(), + date3.getSeconds() + ]; +}; +const _sfc_main$1C = { + mixins: [mixinsForm, globalConfig], + components: { iInput: Input, Drop, Icon }, + directives: { clickOutside: directive }, + emits: ["on-clickoutside", "on-clear", "on-change", "on-ok", "on-open-change", "update:modelValue"], + provide() { + return { + PickerInstance: this + }; + }, + props: { + format: { + type: String + }, + readonly: { + type: Boolean, + default: false + }, + disabled: { + type: Boolean, + default: false + }, + editable: { + type: Boolean, + default: true + }, + clearable: { + type: Boolean, + default: true + }, + confirm: { + type: Boolean, + default: false + }, + open: { + type: Boolean, + default: null + }, + multiple: { + type: Boolean, + default: false + }, + timePickerOptions: { + type: Object, + default: () => ({}) + }, + splitPanels: { + type: Boolean, + default: false + }, + showWeekNumbers: { + type: Boolean, + default: false + }, + startDate: { + type: Date + }, + size: { + validator(value) { + return oneOf(value, ["small", "large", "default"]); + }, + default() { + const global2 = getCurrentInstance().appContext.config.globalProperties; + return !global2.$VIEWUI || global2.$VIEWUI.size === "" ? "default" : global2.$VIEWUI.size; + } + }, + placeholder: { + type: String, + default: "" + }, + placement: { + validator(value) { + return oneOf(value, ["top", "top-start", "top-end", "bottom", "bottom-start", "bottom-end", "left", "left-start", "left-end", "right", "right-start", "right-end"]); + }, + default: "bottom-start" + }, + transfer: { + type: Boolean, + default() { + const global2 = getCurrentInstance().appContext.config.globalProperties; + return !global2.$VIEWUI || global2.$VIEWUI.transfer === "" ? false : global2.$VIEWUI.transfer; + } + }, + name: { + type: String + }, + elementId: { + type: String + }, + steps: { + type: Array, + default: () => [] + }, + modelValue: { + type: [Date, String, Array] + }, + options: { + type: Object, + default: () => ({}) + }, + separator: { + type: String, + default: " - " + }, + capture: { + type: Boolean, + default() { + const global2 = getCurrentInstance().appContext.config.globalProperties; + return !global2.$VIEWUI ? true : global2.$VIEWUI.capture; + } + }, + transferClassName: { + type: String + }, + eventsEnabled: { + type: Boolean, + default: false + } + }, + data() { + const isRange = this.type.includes("range"); + const emptyArray = isRange ? [null, null] : [null]; + const initialValue = isEmptyArray((isRange ? this.modelValue : [this.modelValue]) || []) ? emptyArray : this.parseDate(this.modelValue); + const focusedTime = initialValue.map(extractTime); + return { + prefixCls: prefixCls$R, + showClose: false, + visible: false, + internalValue: initialValue, + disableClickOutSide: false, + disableCloseUnderTransfer: false, + selectionMode: this.onSelectionModeChange(this.type), + forceInputRerender: 1, + isFocused: false, + focusedDate: initialValue[0] || this.startDate || new Date(), + focusedTime: { + column: 0, + picker: 0, + time: focusedTime, + active: false + }, + internalFocus: false, + isValueNull: false, + timeSpinnerList: [], + panelTableList: [] + }; + }, + computed: { + wrapperClasses() { + return [prefixCls$R, { + [prefixCls$R + "-focused"]: this.isFocused + }]; + }, + publicVModelValue() { + if (this.multiple) { + return this.internalValue.slice(); + } else { + const isRange = this.type.includes("range"); + let val = this.internalValue.map((date3) => date3 instanceof Date ? new Date(date3) : date3 || ""); + if (this.type.match(/^time/)) + val = val.map(this.formatDate); + return isRange || this.multiple ? val : val[0]; + } + }, + publicStringValue() { + const { formatDate: formatDate2, publicVModelValue, type: type2 } = this; + if (type2.match(/^time/)) + return publicVModelValue; + if (this.multiple) + return formatDate2(publicVModelValue); + return Array.isArray(publicVModelValue) ? publicVModelValue.map(formatDate2) : formatDate2(publicVModelValue); + }, + opened() { + return this.open === null ? this.visible : this.open; + }, + transition() { + const bottomPlaced = this.placement.match(/^bottom/); + return bottomPlaced ? "slide-up" : "slide-down"; + }, + visualValue() { + return this.formatDate(this.internalValue); + }, + isConfirm() { + return this.confirm || this.type === "datetime" || this.type === "datetimerange" || this.multiple; + }, + arrowType() { + const config = this.globalConfig; + let type2 = ""; + if (this.type === "time" || this.type === "timerange") { + type2 = "ios-time-outline"; + if (config) { + if (config.timePicker.customIcon) { + type2 = ""; + } else if (config.timePicker.icon) { + type2 = config.timePicker.icon; + } + } + } else { + const config2 = this.globalConfig; + type2 = "ios-calendar-outline"; + if (config2) { + if (config2.datePicker.customIcon) { + type2 = ""; + } else if (config2.datePicker.icon) { + type2 = config2.datePicker.icon; + } + } + } + if (this.showClose) + type2 = "ios-close-circle"; + return type2; + }, + customArrowType() { + const config = this.globalConfig; + let type2 = ""; + if (!this.showClose) { + if (this.type === "time" || this.type === "timerange") { + if (config) { + if (config.timePicker.customIcon) { + type2 = config.timePicker.customIcon; + } + } + } else { + if (config) { + if (config.datePicker.customIcon) { + type2 = config.datePicker.customIcon; + } + } + } + } + return type2; + }, + arrowSize() { + const config = this.globalConfig; + let size = ""; + if (!this.showClose) { + if (this.type === "time" || this.type === "timerange") { + if (config) { + if (config.timePicker.iconSize) { + size = config.timePicker.iconSize; + } + } + } else { + if (config) { + if (config.datePicker.iconSize) { + size = config.datePicker.iconSize; + } + } + } + } + return size; + }, + dropdownCls() { + return { + [prefixCls$R + "-transfer"]: this.transfer, + [this.transferClassName]: this.transferClassName + }; + } + }, + methods: { + onSelectionModeChange(type2) { + if (type2.match(/^date/)) + type2 = "date"; + this.selectionMode = oneOf(type2, ["year", "month", "date", "time"]) && type2; + return this.selectionMode; + }, + handleTransferClick() { + if (this.transfer) + this.disableCloseUnderTransfer = true; + }, + handleClose(e) { + if (this.disableCloseUnderTransfer) { + this.disableCloseUnderTransfer = false; + return false; + } + if (e && e.type === "mousedown" && this.visible) { + e.preventDefault(); + e.stopPropagation(); + return; + } + if (this.visible) { + const pickerPanel = this.$refs.pickerPanel && this.$refs.pickerPanel.$el; + if (e && pickerPanel && pickerPanel.contains(e.target)) + return; + this.visible = false; + e && e.preventDefault(); + e && e.stopPropagation(); + this.$emit("on-clickoutside", e); + return; + } + this.isFocused = false; + this.disableClickOutSide = false; + }, + handleFocus(e) { + if (this.readonly) + return; + this.isFocused = true; + if (e && e.type === "focus") + return; + if (!this.itemDisabled) { + this.visible = true; + } + }, + handleBlur(e) { + if (this.internalFocus) { + this.internalFocus = false; + return; + } + if (this.visible) { + e.preventDefault(); + return; + } + this.isFocused = false; + this.onSelectionModeChange(this.type); + this.internalValue = this.internalValue.slice(); + this.reset(); + this.$refs.pickerPanel.onToggleVisibility(false); + }, + handleKeydown(e) { + const keyCode = e.keyCode; + if (keyCode === 9) { + if (this.visible) { + e.stopPropagation(); + e.preventDefault(); + if (this.isConfirm) { + const selector = `.${pickerPrefixCls}-confirm > *`; + const tabbable = this.$refs.drop.$el.querySelectorAll(selector); + this.internalFocus = true; + const element = [...tabbable][e.shiftKey ? "pop" : "shift"](); + element.focus(); + } else { + this.handleClose(); + } + } else { + this.focused = false; + } + } + const arrows = [37, 38, 39, 40]; + if (!this.visible && arrows.includes(keyCode)) { + this.visible = true; + return; + } + if (keyCode === 27) { + if (this.visible) { + e.stopPropagation(); + this.handleClose(); + } + } + if (keyCode === 13) { + const timePickers = this.timeSpinnerList.map((item) => item.timeSpinner); + if (timePickers.length > 0) { + const columnsPerPicker = timePickers[0].showSeconds ? 3 : 2; + const pickerIndex = Math.floor(this.focusedTime.column / columnsPerPicker); + const value = this.focusedTime.time[pickerIndex]; + timePickers[pickerIndex].chooseValue(value); + return; + } + if (this.type.match(/range/)) { + this.$refs.pickerPanel.handleRangePick(this.focusedDate, "date"); + } else { + const panels = this.panelTableList.map((item) => item.panelTable); + const compareDate = (d) => { + const sliceIndex = ["year", "month", "date"].indexOf(this.type) + 1; + return [d.getFullYear(), d.getMonth(), d.getDate()].slice(0, sliceIndex).join("-"); + }; + const dateIsValid = panels.find(({ cells }) => { + return cells.find(({ date: date3, disabled }) => compareDate(date3) === compareDate(this.focusedDate) && !disabled); + }); + if (dateIsValid) + this.onPick(this.focusedDate, false, "date"); + } + } + if (!arrows.includes(keyCode)) + return; + if (this.focusedTime.active) + e.preventDefault(); + this.navigateDatePanel(keyValueMapper[keyCode], e.shiftKey); + }, + reset() { + this.$refs.pickerPanel.reset && this.$refs.pickerPanel.reset(); + }, + navigateTimePanel(direction) { + this.focusedTime.active = true; + const horizontal = direction.match(/left|right/); + const vertical = direction.match(/up|down/); + const timePickers = this.timeSpinnerList.map((item) => item.timeSpinner); + const maxNrOfColumns = (timePickers[0].showSeconds ? 3 : 2) * timePickers.length; + const column = ((currentColumn) => { + const incremented = currentColumn + (horizontal ? direction === "left" ? -1 : 1 : 0); + return (incremented + maxNrOfColumns) % maxNrOfColumns; + })(this.focusedTime.column); + const columnsPerPicker = maxNrOfColumns / timePickers.length; + const pickerIndex = Math.floor(column / columnsPerPicker); + const col = column % columnsPerPicker; + if (horizontal) { + const time = this.internalValue.map(extractTime); + this.focusedTime = { + ...this.focusedTime, + column, + time + }; + timePickers.forEach((instance, i) => { + if (i === pickerIndex) + instance.updateFocusedTime(col, time[pickerIndex]); + else + instance.updateFocusedTime(-1, instance.focusedTime); + }); + } + if (vertical) { + const increment = direction === "up" ? 1 : -1; + const timeParts2 = ["hours", "minutes", "seconds"]; + const pickerPossibleValues = timePickers[pickerIndex][`${timeParts2[col]}List`]; + const currentIndex = pickerPossibleValues.findIndex(({ text }) => this.focusedTime.time[pickerIndex][col] === text); + const nextIndex = (currentIndex + increment + pickerPossibleValues.length) % pickerPossibleValues.length; + const nextValue = pickerPossibleValues[nextIndex].text; + const times = this.focusedTime.time.map((time, i) => { + if (i !== pickerIndex) + return time; + time[col] = nextValue; + return time; + }); + this.focusedTime = { + ...this.focusedTime, + time: times + }; + timePickers.forEach((instance, i) => { + if (i === pickerIndex) + instance.updateFocusedTime(col, times[i]); + else + instance.updateFocusedTime(-1, instance.focusedTime); + }); + } + }, + navigateDatePanel(direction, shift) { + const timePickers = this.timeSpinnerList.map((item) => item.timeSpinner); + if (timePickers.length > 0) { + this.navigateTimePanel(direction, shift, timePickers); + return; + } + if (shift) { + if (this.type === "year") { + this.focusedDate = new Date( + this.focusedDate.getFullYear() + mapPossibleValues(direction, 0, 10), + this.focusedDate.getMonth(), + this.focusedDate.getDate() + ); + } else { + this.focusedDate = new Date( + this.focusedDate.getFullYear() + mapPossibleValues(direction, 0, 1), + this.focusedDate.getMonth() + mapPossibleValues(direction, 1, 0), + this.focusedDate.getDate() + ); + } + const position = direction.match(/left|down/) ? "prev" : "next"; + const double = direction.match(/up|down/) ? "-double" : ""; + const button = this.$refs.drop.$el.querySelector(`.ivu-date-picker-${position}-btn-arrow${double}`); + if (button) + pulseElement(button); + return; + } + const initialDate = this.focusedDate || this.internalValue && this.internalValue[0] || new Date(); + const focusedDate = new Date(initialDate); + if (this.type.match(/^date/)) { + const lastOfMonth = getDayCountOfMonth(initialDate.getFullYear(), initialDate.getMonth()); + const startDay = initialDate.getDate(); + const nextDay = focusedDate.getDate() + mapPossibleValues(direction, 1, 7); + if (nextDay < 1) { + if (direction.match(/left|right/)) { + focusedDate.setMonth(focusedDate.getMonth() + 1); + focusedDate.setDate(nextDay); + } else { + focusedDate.setDate(startDay + Math.floor((lastOfMonth - startDay) / 7) * 7); + } + } else if (nextDay > lastOfMonth) { + if (direction.match(/left|right/)) { + focusedDate.setMonth(focusedDate.getMonth() - 1); + focusedDate.setDate(nextDay); + } else { + focusedDate.setDate(startDay % 7); + } + } else { + focusedDate.setDate(nextDay); + } + } + if (this.type.match(/^month/)) { + focusedDate.setMonth(focusedDate.getMonth() + mapPossibleValues(direction, 1, 3)); + } + if (this.type.match(/^year/)) { + focusedDate.setFullYear(focusedDate.getFullYear() + mapPossibleValues(direction, 1, 3)); + } + this.focusedDate = focusedDate; + }, + handleInputChange(event) { + const isArrayValue = this.type.includes("range") || this.multiple; + const oldValue = this.visualValue; + const newValue = event.target.value; + const newDate = this.parseDate(newValue); + const disabledDateFn = this.options && typeof this.options.disabledDate === "function" && this.options.disabledDate; + const valueToTest = isArrayValue ? newDate : newDate[0]; + const isDisabled = disabledDateFn && disabledDateFn(valueToTest); + const isValidDate = newDate.reduce((valid, date3) => valid && date3 instanceof Date, true); + if (newValue !== oldValue && !isDisabled && isValidDate) { + this.emitChange(this.type); + this.internalValue = newDate; + } else { + this.forceInputRerender++; + } + }, + handleInputMouseenter() { + if (this.readonly || this.itemDisabled) + return; + if (this.visualValue && this.clearable) { + this.showClose = true; + } + }, + handleInputMouseleave() { + this.showClose = false; + }, + handleIconClick(e) { + if (this.showClose) { + if (e) + e.stopPropagation(); + this.handleClear(); + } else if (!this.itemDisabled) { + this.handleFocus(); + } + }, + handleClear() { + this.visible = false; + this.internalValue = this.internalValue.map(() => null); + this.$emit("on-clear"); + this.handleFormItemChange("change", ""); + this.emitChange(this.type); + this.reset(); + setTimeout( + () => this.onSelectionModeChange(this.type), + 500 + ); + }, + emitChange(type2) { + nextTick(() => { + this.$emit("on-change", this.publicStringValue, type2); + this.handleFormItemChange("change", this.publicStringValue); + }); + }, + parseDate(val) { + const isRange = this.type.includes("range"); + const type2 = this.type; + const parser = (TYPE_VALUE_RESOLVER_MAP[type2] || TYPE_VALUE_RESOLVER_MAP["default"]).parser; + const format2 = this.format || DEFAULT_FORMATS[type2]; + const multipleParser = TYPE_VALUE_RESOLVER_MAP["multiple"].parser; + if (val && type2 === "time" && !(val instanceof Date)) { + val = parser(val, format2, this.separator); + } else if (this.multiple && val) { + val = multipleParser(val, format2, this.separator); + } else if (isRange) { + if (!val) { + val = [null, null]; + } else { + if (typeof val === "string") { + val = parser(val, format2, this.separator); + } else if (type2 === "timerange") { + val = parser(val, format2, this.separator).map((v) => v || ""); + } else { + const [start, end] = val; + if (start instanceof Date && end instanceof Date) { + val = val.map((date3) => new Date(date3)); + } else if (typeof start === "string" && typeof end === "string") { + val = parser(val.join(this.separator), format2, this.separator); + } else if (!start || !end) { + val = [null, null]; + } + } + } + } else if (typeof val === "string" && type2.indexOf("time") !== 0) { + val = parser(val, format2) || null; + } + return isRange || this.multiple ? val || [] : [val]; + }, + formatDate(value) { + const format2 = DEFAULT_FORMATS[this.type]; + if (this.multiple) { + const formatter = TYPE_VALUE_RESOLVER_MAP.multiple.formatter; + return formatter(value, this.format || format2, this.separator); + } else { + const { formatter } = TYPE_VALUE_RESOLVER_MAP[this.type] || TYPE_VALUE_RESOLVER_MAP["default"]; + return formatter(value, this.format || format2, this.separator); + } + }, + onPick(dates, visible = false, type2) { + if (this.multiple) { + const pickedTimeStamp = dates.getTime(); + const indexOfPickedDate = this.internalValue.findIndex((date3) => date3 && date3.getTime() === pickedTimeStamp); + const allDates = [...this.internalValue, dates].filter(Boolean); + const timeStamps = allDates.map((date3) => date3.getTime()).filter((ts, i, arr) => arr.indexOf(ts) === i && i !== indexOfPickedDate); + this.internalValue = timeStamps.map((ts) => new Date(ts)); + } else { + dates = this.parseDate(dates); + this.internalValue = Array.isArray(dates) ? dates : [dates]; + } + if (this.internalValue[0]) + this.focusedDate = this.internalValue[0]; + this.focusedTime = { + ...this.focusedTime, + time: this.internalValue.map(extractTime) + }; + if (!this.isConfirm) + this.onSelectionModeChange(this.type); + if (!this.isConfirm) + this.visible = !!visible; + this.emitChange(type2); + }, + onPickSuccess() { + this.visible = false; + this.$emit("on-ok"); + this.focus(); + this.reset(); + }, + focus() { + this.$refs.input && this.$refs.input.focus(); + }, + updatePopper() { + this.$refs.drop.update(); + }, + handleOnFocusInput() { + this.focus(); + }, + handleOnUpdatePopper() { + this.updatePopper(); + } + }, + watch: { + visible(state) { + if (state === false) { + this.$refs.drop.destroy(); + } + if (state) + this.$refs.drop.update(); + this.$emit("on-open-change", state); + }, + modelValue(val) { + if (val === null) + this.isValueNull = true; + this.internalValue = this.parseDate(val); + }, + open(val) { + this.visible = val === true; + }, + type(type2) { + this.onSelectionModeChange(type2); + }, + publicVModelValue(now2, before) { + const newValue = JSON.stringify(now2); + const oldValue = JSON.stringify(before); + const shouldEmitInput = newValue !== oldValue || typeof now2 !== typeof before; + if (shouldEmitInput) { + if (this.isValueNull) { + this.isValueNull = false; + this.$emit("update:modelValue", null); + } else { + this.$emit("update:modelValue", now2); + } + } + } + }, + mounted() { + if (this.open !== null) + this.visible = this.open; + } +}; +function _sfc_render$1o(_ctx, _cache, $props, $setup, $data, $options) { + const _component_Icon = resolveComponent("Icon"); + const _component_i_input = resolveComponent("i-input"); + const _component_Drop = resolveComponent("Drop"); + const _directive_click_outside = resolveDirective("click-outside"); + return withDirectives((openBlock(), createElementBlock("div", { + class: normalizeClass($options.wrapperClasses) + }, [ + createElementVNode("div", { + ref: "reference", + class: normalizeClass([$data.prefixCls + "-rel"]) + }, [ + renderSlot(_ctx.$slots, "default", {}, () => [ + (openBlock(), createBlock(_component_i_input, { + key: $data.forceInputRerender, + "element-id": $props.elementId, + class: normalizeClass([$data.prefixCls + "-editor"]), + readonly: !$props.editable || $props.readonly, + disabled: _ctx.itemDisabled, + size: $props.size, + placeholder: $props.placeholder, + "model-value": $options.visualValue, + name: $props.name, + ref: "input", + onOnInputChange: $options.handleInputChange, + onOnFocus: $options.handleFocus, + onOnBlur: $options.handleBlur, + onClick: $options.handleFocus, + onKeydown: $options.handleKeydown, + onMouseenter: $options.handleInputMouseenter, + onMouseleave: $options.handleInputMouseleave + }, { + suffix: withCtx(() => [ + createVNode(_component_Icon, { + onClick: $options.handleIconClick, + type: $options.arrowType, + custom: $options.customArrowType, + size: $options.arrowSize + }, null, 8, ["onClick", "type", "custom", "size"]) + ]), + _: 1 + }, 8, ["element-id", "class", "readonly", "disabled", "size", "placeholder", "model-value", "name", "onOnInputChange", "onOnFocus", "onOnBlur", "onClick", "onKeydown", "onMouseenter", "onMouseleave"])) + ]) + ], 2), + createVNode(_component_Drop, { + ref: "drop", + visible: $options.opened, + classes: $options.dropdownCls, + placement: $props.placement, + eventsEnabled: $props.eventsEnabled, + transfer: $props.transfer, + "transition-name": "transition-drop", + onClick: $options.handleTransferClick + }, { + default: withCtx(() => [ + createElementVNode("div", null, [ + (openBlock(), createBlock(resolveDynamicComponent(_ctx.panel), mergeProps({ + ref: "pickerPanel", + visible: $data.visible, + showTime: _ctx.type === "datetime" || _ctx.type === "datetimerange", + confirm: $options.isConfirm, + selectionMode: $data.selectionMode, + steps: $props.steps, + format: $props.format, + "model-value": $data.internalValue, + "start-date": $props.startDate, + "split-panels": $props.splitPanels, + "show-week-numbers": $props.showWeekNumbers, + "picker-type": _ctx.type, + multiple: $props.multiple, + "focused-date": $data.focusedDate, + "time-picker-options": $props.timePickerOptions + }, _ctx.ownPickerProps, { + onOnPick: $options.onPick, + onOnPickClear: $options.handleClear, + onOnPickSuccess: $options.onPickSuccess, + onOnPickClick: _cache[0] || (_cache[0] = ($event) => $data.disableClickOutSide = true), + onOnSelectionModeChange: $options.onSelectionModeChange + }), null, 16, ["visible", "showTime", "confirm", "selectionMode", "steps", "format", "model-value", "start-date", "split-panels", "show-week-numbers", "picker-type", "multiple", "focused-date", "time-picker-options", "onOnPick", "onOnPickClear", "onOnPickSuccess", "onOnSelectionModeChange"])) + ]) + ]), + _: 1 + }, 8, ["visible", "classes", "placement", "eventsEnabled", "transfer", "onClick"]) + ], 2)), [ + [ + _directive_click_outside, + $options.handleClose, + $props.capture, + { mousedown: true } + ], + [ + _directive_click_outside, + $options.handleClose, + $props.capture, + { touchstart: true } + ], + [_directive_click_outside, $options.handleClose, $props.capture] + ]); +} +var Picker = /* @__PURE__ */ _export_sfc(_sfc_main$1C, [["render", _sfc_render$1o]]); +var oneDay = 1e3 * 60 * 60 * 24; +function daysInMonth(year, month) { + return new Date(year, month + 1, 0).getDate(); +} +function getYear(year, month, weekNr) { + if (month === 0 && weekNr > 50) + return year - 1; + else if (month === 11 && weekNr < 10) + return year + 1; + else + return year; +} +function getDateInfo(y, m, d, iso) { + if (m > 11) { + m = 0; + y++; + } + var currentDay = new Date(y, m, d); + if (iso) + currentDay.setDate(currentDay.getDate() + 4 - (currentDay.getDay() || 7)); + var year = iso ? currentDay.getFullYear() : y; + var firstOfJanuary = new Date(year, 0, 1); + var numberOfDays = 1 + Math.round((currentDay - firstOfJanuary) / oneDay); + if (!iso) + numberOfDays += firstOfJanuary.getDay(); + var w = Math.ceil(numberOfDays / 7); + if (!iso) { + var initialDay = new Date(y, m, d); + var beginOfNextYear = new Date(y + 1, 0, 1); + var startDayOfNextYear = beginOfNextYear.getDay(); + if (initialDay.getTime() >= beginOfNextYear.getTime() - oneDay * startDayOfNextYear) + w = 1; + } + return w; +} +function getMonthCalender(year, month, iteratorFns) { + var lang2 = this.lang || "en"; + var onlyDays = this.onlyDays; + var weekStart = typeof this.weekStart === "undefined" ? 1 : this.weekStart; + var iso = weekStart === 1; + var cells = []; + var monthStartDate = new Date(year, month, 1); + var dayOfWeek = monthStartDate.getDay() || (iso ? 7 : 0); + var currentDay = weekStart - dayOfWeek; + var weekNr = getDateInfo(year, month, 1, iso); + var maxDays = daysInMonth(year, month); + var lastMonthMaxDays = daysInMonth(year, month - 1); + var currentMonth, day, dayBefore; + var currentYear = getYear(year, month, weekNr); + var returnObject = { + month, + year, + daysInMonth: maxDays + }; + for (var i = 0; i < 7; i++) { + dayBefore = currentDay; + for (var j = 0; j < 8; j++) { + if (i > 0 && j > 0) + currentDay++; + if (currentDay > maxDays || currentDay < 1) { + day = currentDay > maxDays ? currentDay - maxDays : lastMonthMaxDays + currentDay; + currentMonth = currentDay > maxDays ? month + 1 : month - 1; + } else { + day = currentDay; + currentMonth = month; + } + var type2 = function() { + if (j === 0) + return "weekLabel"; + else if (i === 0) + return "dayLabel"; + else if (currentDay < 1) + return "prevMonth"; + else if (currentDay > maxDays) + return "nextMonth"; + else + return "monthDay"; + }(); + var isDay = dayBefore !== currentDay && i > 0; + var dayData = { + desc: isDay ? day : weekNr, + week: weekNr, + type: type2, + format: iso ? "ISO 8601" : "US", + date: isDay ? new Date(Date.UTC(year, currentMonth, day)) : false, + year: currentYear, + index: cells.length + }; + if (iteratorFns) { + if (typeof iteratorFns === "function") + dayData = iteratorFns.call(returnObject, dayData, lang2); + else + iteratorFns.forEach(function(fn) { + dayData = fn.call(returnObject, dayData, lang2); + }); + } + if (onlyDays && isDay) + cells.push(dayData); + else if (!onlyDays) + cells.push(dayData); + } + if (i > 0) + weekNr = getDateInfo(year, currentMonth, day + 1, iso); + currentYear = getYear(year, month, weekNr); + } + returnObject.cells = cells; + return returnObject; +} +var jsCalendar$1 = function(config) { + return getMonthCalender.bind(config); +}; +var labels$1 = { + weekPlaceholder: "", + columnNames: { + en: { + 0: "w", + 1: "monday", + 2: "tuesday", + 3: "wednesday", + 4: "thursday", + 5: "friday", + 6: "saturday", + 7: "sunday" + }, + sv: { + 0: "v", + 1: "m\xE5ndag", + 2: "tisdag", + 3: "onsdag", + 4: "torsdag", + 5: "fredag", + 6: "l\xF6rdag", + 7: "s\xF6ndag" + }, + pt: { + 0: "s", + 1: "segunda", + 2: "ter\xE7a", + 3: "quarta", + 4: "quinta", + 5: "sexta", + 6: "s\xE1bado", + 7: "domingo" + } + }, + monthNames: { + en: [ + "January", + "February", + "March", + "April", + "May", + "June", + "July", + "August", + "September", + "October", + "November", + "December" + ], + sv: [ + "januari", + "februari", + "mars", + "april", + "maj", + "juni", + "juli", + "augusti", + "september", + "oktober", + "november", + "december" + ], + pt: [ + "Janeiro", + "Fevereiro", + "Mar\xE7o", + "Abril", + "Maio", + "Junho", + "Julho", + "Agosto", + "Setembro", + "Outubro", + "Novembro", + "Dezembro" + ] + }, + classes: { + dayLabel: "day-of-week", + weekLabel: "week-number", + prevMonth: "inactive", + nextMonth: "inactive", + monthDay: "day-in-month" + } +}; +var labels = labels$1; +function isIterable(variable) { + if (variable == null) + return false; + if (variable.constructor === Array) + return true; + if (variable.constructor === Object) + return true; + return false; +} +function merge(_new, _old) { + for (var prop2 in _new) { + if (!_old[prop2]) + _old[prop2] = _new[prop2]; + else if (isIterable(_new[prop2])) + merge(_new[prop2], _old[prop2]); + } +} +function addLabels(dayObject, lang2) { + var cssClass = [labels.classes[dayObject.type]]; + if (dayObject.class) + dayObject.class = (typeof dayObject.class == "string" ? [dayObject.class] : dayObject.class).concat(cssClass); + else + dayObject.class = cssClass; + if (dayObject.type.indexOf("Label") > 0) { + if (dayObject.index == 0 && labels.weekPlaceholder) + dayObject.desc = labels.weekPlaceholder; + else if (dayObject.index < 8) + dayObject.desc = labels.columnNames[lang2][dayObject.index]; + else if (dayObject.index % 8 == 0) + dayObject.desc = dayObject.week; + } + if (dayObject.date) + dayObject.monthName = labels.monthNames[lang2][dayObject.date.getMonth()]; + if (!this.monthName) + this.monthName = labels.monthNames[lang2][this.month]; + if (!this.labels) + this.labels = { + monthNames: labels.monthNames[lang2], + columnNames: labels.columnNames[lang2], + classes: labels.classes + }; + return dayObject; +} +addLabels.setLabels = function(newOptions) { + merge(newOptions, labels); +}; +var addLabels_1 = addLabels; +var jsCalendar = { + Generator: jsCalendar$1, + addLabels: addLabels_1 +}; +var mixin$1 = { + name: "PanelTable", + emits: ["on-pick", "on-pick-click", "on-change-range"], + inject: ["PickerInstance"], + props: { + tableDate: { + type: Date, + required: true + }, + disabledDate: { + type: Function + }, + selectionMode: { + type: String, + required: true + }, + modelValue: { + type: Array, + required: true + }, + rangeState: { + type: Object, + default: () => ({ + from: null, + to: null, + selecting: false + }) + }, + focusedDate: { + type: Date, + required: true + } + }, + data() { + return { + id: random(6) + }; + }, + computed: { + dates() { + const { selectionMode, modelValue, rangeState } = this; + const rangeSelecting = selectionMode === "range" && rangeState.selecting; + return rangeSelecting ? [rangeState.from] : modelValue; + } + }, + methods: { + handleClick(cell, e) { + e.stopPropagation(); + if (cell.disabled || cell.type === "weekLabel") + return; + const newDate = new Date(clearHours(cell.date)); + this.$emit("on-pick", newDate); + this.$emit("on-pick-click"); + }, + handleMouseMove(cell) { + if (!this.rangeState.selecting) + return; + if (cell.disabled) + return; + const newDate = cell.date; + this.$emit("on-change-range", newDate); + }, + addPanelTable() { + const root2 = this.PickerInstance; + if (!root2.panelTableList) + root2.panelTableList = []; + root2.panelTableList.push({ + id: this.id, + panelTable: this + }); + }, + removePanelTable() { + const root2 = this.PickerInstance; + if (root2.panelTableList && root2.panelTableList.length) { + const index2 = root2.panelTableList.findIndex((item) => item.id === this.id); + root2.panelTableList.splice(index2, 1); + } + } + }, + mounted() { + this.addPanelTable(); + }, + beforeUnmount() { + this.removePanelTable(); + } +}; +var prefixCls$Q = "ivu-date-picker-cells"; +const _sfc_main$1B = { + mixins: [Locale, mixin$1], + props: { + showWeekNumbers: { + type: Boolean, + default: false + } + }, + computed: { + classes() { + return [ + `${prefixCls$Q}`, + { + [`${prefixCls$Q}-show-week-numbers`]: this.showWeekNumbers + } + ]; + }, + calendar() { + const weekStartDay = Number(this.t("i.datepicker.weekStartDay")); + return new jsCalendar.Generator({ onlyDays: !this.showWeekNumbers, weekStart: weekStartDay }); + }, + headerDays() { + const weekStartDay = Number(this.t("i.datepicker.weekStartDay")); + const translatedDays = ["sun", "mon", "tue", "wed", "thu", "fri", "sat"].map((item) => { + return this.t("i.datepicker.weeks." + item); + }); + const weekDays = translatedDays.splice(weekStartDay, 7 - weekStartDay).concat(translatedDays.splice(0, weekStartDay)); + return this.showWeekNumbers ? [""].concat(weekDays) : weekDays; + }, + cells() { + const tableYear = this.tableDate.getFullYear(); + const tableMonth = this.tableDate.getMonth(); + const today = clearHours(new Date()); + const selectedDays = this.dates.filter(Boolean).map(clearHours); + const [minDay, maxDay] = this.dates.map(clearHours); + const rangeStart = this.rangeState.from && clearHours(this.rangeState.from); + const rangeEnd = this.rangeState.to && clearHours(this.rangeState.to); + const isRange = this.selectionMode === "range"; + const disabledTestFn = typeof this.disabledDate === "function" && this.disabledDate; + return this.calendar(tableYear, tableMonth, (cell) => { + if (cell.date instanceof Date) + cell.date.setTime(cell.date.getTime() + cell.date.getTimezoneOffset() * 6e4 + 480 * 60 * 1e3); + const time = cell.date && clearHours(cell.date); + const dateIsInCurrentMonth = cell.date && tableMonth === cell.date.getMonth(); + return { + ...cell, + type: time === today ? "today" : cell.type, + selected: dateIsInCurrentMonth && selectedDays.includes(time), + disabled: cell.date && disabledTestFn && disabledTestFn(new Date(time)), + range: dateIsInCurrentMonth && isRange && isInRange(time, rangeStart, rangeEnd), + start: dateIsInCurrentMonth && isRange && time === minDay, + end: dateIsInCurrentMonth && isRange && time === maxDay + }; + }).cells.slice(this.showWeekNumbers ? 8 : 0); + } + }, + methods: { + getCellCls(cell) { + return [ + `${prefixCls$Q}-cell`, + { + [`${prefixCls$Q}-cell-selected`]: cell.selected || cell.start || cell.end, + [`${prefixCls$Q}-cell-disabled`]: cell.disabled, + [`${prefixCls$Q}-cell-today`]: cell.type === "today", + [`${prefixCls$Q}-cell-prev-month`]: cell.type === "prevMonth", + [`${prefixCls$Q}-cell-next-month`]: cell.type === "nextMonth", + [`${prefixCls$Q}-cell-week-label`]: cell.type === "weekLabel", + [`${prefixCls$Q}-cell-range`]: cell.range && !cell.start && !cell.end, + [`${prefixCls$Q}-focused`]: clearHours(cell.date) === clearHours(this.focusedDate) + } + ]; + } + } +}; +const _hoisted_1$R = { class: "ivu-date-picker-cells-header" }; +const _hoisted_2$x = ["onClick", "onMouseenter"]; +function _sfc_render$1n(_ctx, _cache, $props, $setup, $data, $options) { + return openBlock(), createElementBlock("div", { + class: normalizeClass($options.classes) + }, [ + createElementVNode("div", _hoisted_1$R, [ + (openBlock(true), createElementBlock(Fragment, null, renderList($options.headerDays, (day) => { + return openBlock(), createElementBlock("span", { key: day }, toDisplayString(day), 1); + }), 128)) + ]), + (openBlock(true), createElementBlock(Fragment, null, renderList($options.cells, (cell, i) => { + return openBlock(), createElementBlock("span", { + key: String(cell.date) + i, + class: normalizeClass($options.getCellCls(cell)), + onClick: ($event) => _ctx.handleClick(cell, $event), + onMouseenter: ($event) => _ctx.handleMouseMove(cell) + }, [ + createElementVNode("em", null, toDisplayString(cell.desc), 1) + ], 42, _hoisted_2$x); + }), 128)) + ], 2); +} +var DateTable = /* @__PURE__ */ _export_sfc(_sfc_main$1B, [["render", _sfc_render$1n]]); +const _sfc_main$1A = { + mixins: [mixin$1], + props: {}, + computed: { + classes() { + return [ + `${prefixCls$Q}`, + `${prefixCls$Q}-year` + ]; + }, + startYear() { + return Math.floor(this.tableDate.getFullYear() / 10) * 10; + }, + cells() { + let cells = []; + const cell_tmpl = { + text: "", + selected: false, + disabled: false + }; + const selectedDays = this.dates.filter(Boolean).map((date3) => clearHours(new Date(date3.getFullYear(), 0, 1))); + const focusedDate = clearHours(new Date(this.focusedDate.getFullYear(), 0, 1)); + for (let i = 0; i < 10; i++) { + const cell = deepCopy(cell_tmpl); + cell.date = new Date(this.startYear + i, 0, 1); + cell.disabled = typeof this.disabledDate === "function" && this.disabledDate(cell.date) && this.selectionMode === "year"; + const day = clearHours(cell.date); + cell.selected = selectedDays.includes(day); + cell.focused = day === focusedDate; + cells.push(cell); + } + return cells; + } + }, + methods: { + getCellCls(cell) { + return [ + `${prefixCls$Q}-cell`, + { + [`${prefixCls$Q}-cell-selected`]: cell.selected, + [`${prefixCls$Q}-cell-disabled`]: cell.disabled, + [`${prefixCls$Q}-cell-focused`]: cell.focused, + [`${prefixCls$Q}-cell-range`]: cell.range && !cell.start && !cell.end + } + ]; + } + } +}; +const _hoisted_1$Q = ["onClick", "onMouseenter"]; +function _sfc_render$1m(_ctx, _cache, $props, $setup, $data, $options) { + return openBlock(), createElementBlock("div", { + class: normalizeClass($options.classes) + }, [ + (openBlock(true), createElementBlock(Fragment, null, renderList($options.cells, (cell) => { + return openBlock(), createElementBlock("span", { + class: normalizeClass($options.getCellCls(cell)), + key: cell.date, + onClick: ($event) => _ctx.handleClick(cell, $event), + onMouseenter: ($event) => _ctx.handleMouseMove(cell) + }, [ + createElementVNode("em", null, toDisplayString(cell.date.getFullYear()), 1) + ], 42, _hoisted_1$Q); + }), 128)) + ], 2); +} +var YearTable = /* @__PURE__ */ _export_sfc(_sfc_main$1A, [["render", _sfc_render$1m]]); +const _sfc_main$1z = { + mixins: [Locale, mixin$1], + props: {}, + computed: { + classes() { + return [ + `${prefixCls$Q}`, + `${prefixCls$Q}-month` + ]; + }, + cells() { + let cells = []; + const cell_tmpl = { + text: "", + selected: false, + disabled: false + }; + const tableYear = this.tableDate.getFullYear(); + const selectedDays = this.dates.filter(Boolean).map((date3) => clearHours(new Date(date3.getFullYear(), date3.getMonth(), 1))); + const focusedDate = clearHours(new Date(this.focusedDate.getFullYear(), this.focusedDate.getMonth(), 1)); + for (let i = 0; i < 12; i++) { + const cell = deepCopy(cell_tmpl); + cell.date = new Date(tableYear, i, 1); + cell.text = this.tCell(i + 1); + const day = clearHours(cell.date); + cell.disabled = typeof this.disabledDate === "function" && this.disabledDate(cell.date) && this.selectionMode === "month"; + cell.selected = selectedDays.includes(day); + cell.focused = day === focusedDate; + cells.push(cell); + } + return cells; + } + }, + methods: { + getCellCls(cell) { + return [ + `${prefixCls$Q}-cell`, + { + [`${prefixCls$Q}-cell-selected`]: cell.selected, + [`${prefixCls$Q}-cell-disabled`]: cell.disabled, + [`${prefixCls$Q}-cell-focused`]: cell.focused, + [`${prefixCls$Q}-cell-range`]: cell.range && !cell.start && !cell.end + } + ]; + }, + tCell(nr) { + return this.t(`i.datepicker.months.m${nr}`); + } + } +}; +const _hoisted_1$P = ["onClick", "onMouseenter"]; +function _sfc_render$1l(_ctx, _cache, $props, $setup, $data, $options) { + return openBlock(), createElementBlock("div", { + class: normalizeClass($options.classes) + }, [ + (openBlock(true), createElementBlock(Fragment, null, renderList($options.cells, (cell) => { + return openBlock(), createElementBlock("span", { + class: normalizeClass($options.getCellCls(cell)), + key: cell.text, + onClick: ($event) => _ctx.handleClick(cell, $event), + onMouseenter: ($event) => _ctx.handleMouseMove(cell) + }, [ + createElementVNode("em", null, toDisplayString(cell.text), 1) + ], 42, _hoisted_1$P); + }), 128)) + ], 2); +} +var MonthTable = /* @__PURE__ */ _export_sfc(_sfc_main$1z, [["render", _sfc_render$1l]]); +var Options$1 = { + props: { + disabledHours: { + type: Array, + default() { + return []; + } + }, + disabledMinutes: { + type: Array, + default() { + return []; + } + }, + disabledSeconds: { + type: Array, + default() { + return []; + } + }, + hideDisabledOptions: { + type: Boolean, + default: false + } + } +}; +const prefixCls$P = "ivu-time-picker-cells"; +const timeParts = ["hours", "minutes", "seconds"]; +const _sfc_main$1y = { + name: "TimeSpinner", + mixins: [Options$1], + emits: ["on-change", "on-pick-click"], + inject: ["PickerInstance"], + props: { + hours: { + type: [Number, String], + default: NaN + }, + minutes: { + type: [Number, String], + default: NaN + }, + seconds: { + type: [Number, String], + default: NaN + }, + showSeconds: { + type: Boolean, + default: true + }, + steps: { + type: Array, + default: () => [] + } + }, + data() { + return { + spinerSteps: [1, 1, 1].map((one, i) => Math.abs(this.steps[i]) || one), + prefixCls: prefixCls$P, + compiled: false, + focusedColumn: -1, + focusedTime: [0, 0, 0], + id: random(6) + }; + }, + computed: { + classes() { + return [ + `${prefixCls$P}`, + { + [`${prefixCls$P}-with-seconds`]: this.showSeconds + } + ]; + }, + hoursList() { + let hours = []; + const step = this.spinerSteps[0]; + const focusedHour = this.focusedColumn === 0 && this.focusedTime[0]; + const hour_tmpl = { + text: 0, + selected: false, + disabled: false, + hide: false + }; + for (let i = 0; i < 24; i += step) { + const hour = deepCopy(hour_tmpl); + hour.text = i; + hour.focused = i === focusedHour; + if (this.disabledHours.length && this.disabledHours.indexOf(i) > -1) { + hour.disabled = true; + if (this.hideDisabledOptions) + hour.hide = true; + } + if (this.hours === i) + hour.selected = true; + hours.push(hour); + } + return hours; + }, + minutesList() { + let minutes = []; + const step = this.spinerSteps[1]; + const focusedMinute = this.focusedColumn === 1 && this.focusedTime[1]; + const minute_tmpl = { + text: 0, + selected: false, + disabled: false, + hide: false + }; + for (let i = 0; i < 60; i += step) { + const minute = deepCopy(minute_tmpl); + minute.text = i; + minute.focused = i === focusedMinute; + if (this.disabledMinutes.length && this.disabledMinutes.indexOf(i) > -1) { + minute.disabled = true; + if (this.hideDisabledOptions) + minute.hide = true; + } + if (this.minutes === i) + minute.selected = true; + minutes.push(minute); + } + return minutes; + }, + secondsList() { + let seconds = []; + const step = this.spinerSteps[2]; + const focusedMinute = this.focusedColumn === 2 && this.focusedTime[2]; + const second_tmpl = { + text: 0, + selected: false, + disabled: false, + hide: false + }; + for (let i = 0; i < 60; i += step) { + const second = deepCopy(second_tmpl); + second.text = i; + second.focused = i === focusedMinute; + if (this.disabledSeconds.length && this.disabledSeconds.indexOf(i) > -1) { + second.disabled = true; + if (this.hideDisabledOptions) + second.hide = true; + } + if (this.seconds === i) + second.selected = true; + seconds.push(second); + } + return seconds; + } + }, + methods: { + getCellCls(cell) { + return [ + `${prefixCls$P}-cell`, + { + [`${prefixCls$P}-cell-selected`]: cell.selected, + [`${prefixCls$P}-cell-focused`]: cell.focused, + [`${prefixCls$P}-cell-disabled`]: cell.disabled + } + ]; + }, + chooseValue(values) { + const changes = timeParts.reduce((obj, part, i) => { + const value = values[i]; + if (this[part] === value) + return obj; + return { + ...obj, + [part]: value + }; + }, {}); + if (Object.keys(changes).length > 0) { + this.emitChange(changes); + } + }, + handleClick(type2, cell) { + if (cell.disabled) + return; + const data = { [type2]: cell.text }; + this.emitChange(data); + }, + emitChange(changes) { + this.$emit("on-change", changes); + this.$emit("on-pick-click"); + }, + scroll(type2, index2) { + const from = this.$refs[type2].scrollTop; + const to = 24 * this.getScrollIndex(type2, index2); + scrollTop(this.$refs[type2], from, to, 500); + }, + getScrollIndex(type2, index2) { + const Type = firstUpperCase(type2); + const disabled = this[`disabled${Type}`]; + if (disabled.length && this.hideDisabledOptions) { + let _count = 0; + disabled.forEach((item) => item <= index2 ? _count++ : ""); + index2 -= _count; + } + return index2; + }, + updateScroll() { + nextTick(() => { + timeParts.forEach((type2) => { + this.$refs[type2].scrollTop = 24 * this[`${type2}List`].findIndex((obj) => obj.text == this[type2]); + }); + }); + }, + formatTime(text) { + return text < 10 ? "0" + text : text; + }, + updateFocusedTime(col, time) { + this.focusedColumn = col; + this.focusedTime = time.slice(); + }, + addTimeSpinner() { + const root2 = this.PickerInstance; + if (!root2.timeSpinnerList) + root2.timeSpinnerList = []; + root2.timeSpinnerList.push({ + id: this.id, + timeSpinner: this + }); + }, + removeTimeSpinner() { + const root2 = this.PickerInstance; + if (root2.timeSpinnerList && root2.timeSpinnerList.length) { + const index2 = root2.timeSpinnerList.findIndex((item) => item.id === this.id); + root2.timeSpinnerList.splice(index2, 1); + } + } + }, + watch: { + hours(val) { + if (!this.compiled) + return; + this.scroll("hours", this.hoursList.findIndex((obj) => obj.text == val)); + }, + minutes(val) { + if (!this.compiled) + return; + this.scroll("minutes", this.minutesList.findIndex((obj) => obj.text == val)); + }, + seconds(val) { + if (!this.compiled) + return; + this.scroll("seconds", this.secondsList.findIndex((obj) => obj.text == val)); + }, + focusedTime(updated, old) { + timeParts.forEach((part, i) => { + if (updated[i] === old[i] || typeof updated[i] === "undefined") + return; + const valueIndex = this[`${part}List`].findIndex((obj) => obj.text === updated[i]); + this.scroll(part, valueIndex); + }); + } + }, + mounted() { + this.addTimeSpinner(); + nextTick(() => this.compiled = true); + }, + beforeUnmount() { + this.removeTimeSpinner(); + } +}; +const _hoisted_1$O = ["onClick"]; +const _hoisted_2$w = ["onClick"]; +const _hoisted_3$r = ["onClick"]; +function _sfc_render$1k(_ctx, _cache, $props, $setup, $data, $options) { + return openBlock(), createElementBlock("div", { + class: normalizeClass($options.classes) + }, [ + createElementVNode("div", { + class: normalizeClass([$data.prefixCls + "-list"]), + ref: "hours" + }, [ + createElementVNode("ul", { + class: normalizeClass([$data.prefixCls + "-ul"]) + }, [ + (openBlock(true), createElementBlock(Fragment, null, renderList($options.hoursList, (item) => { + return withDirectives((openBlock(), createElementBlock("li", { + class: normalizeClass($options.getCellCls(item)), + key: item.text, + onClick: ($event) => $options.handleClick("hours", item) + }, toDisplayString($options.formatTime(item.text)), 11, _hoisted_1$O)), [ + [vShow, !item.hide] + ]); + }), 128)) + ], 2) + ], 2), + createElementVNode("div", { + class: normalizeClass([$data.prefixCls + "-list"]), + ref: "minutes" + }, [ + createElementVNode("ul", { + class: normalizeClass([$data.prefixCls + "-ul"]) + }, [ + (openBlock(true), createElementBlock(Fragment, null, renderList($options.minutesList, (item) => { + return withDirectives((openBlock(), createElementBlock("li", { + class: normalizeClass($options.getCellCls(item)), + key: item.text, + onClick: ($event) => $options.handleClick("minutes", item) + }, toDisplayString($options.formatTime(item.text)), 11, _hoisted_2$w)), [ + [vShow, !item.hide] + ]); + }), 128)) + ], 2) + ], 2), + withDirectives(createElementVNode("div", { + class: normalizeClass([$data.prefixCls + "-list"]), + ref: "seconds" + }, [ + createElementVNode("ul", { + class: normalizeClass([$data.prefixCls + "-ul"]) + }, [ + (openBlock(true), createElementBlock(Fragment, null, renderList($options.secondsList, (item) => { + return withDirectives((openBlock(), createElementBlock("li", { + class: normalizeClass($options.getCellCls(item)), + key: item.text, + onClick: ($event) => $options.handleClick("seconds", item) + }, toDisplayString($options.formatTime(item.text)), 11, _hoisted_3$r)), [ + [vShow, !item.hide] + ]); + }), 128)) + ], 2) + ], 2), [ + [vShow, $props.showSeconds] + ]) + ], 2); +} +var TimeSpinner = /* @__PURE__ */ _export_sfc(_sfc_main$1y, [["render", _sfc_render$1k]]); +const prefixCls$O = "ivu-picker"; +const _sfc_main$1x = { + mixins: [Locale], + components: { iButton: _sfc_main$2c }, + emits: ["on-pick-clear", "on-pick-success", "on-pick-toggle-time"], + inject: ["PickerInstance"], + props: { + showTime: { + type: Boolean, + default: false + }, + isTime: { + type: Boolean, + default: false + }, + timeDisabled: { + type: Boolean, + default: false + } + }, + data() { + return { + prefixCls: prefixCls$O + }; + }, + computed: { + timeClasses() { + return `${prefixCls$O}-confirm-time`; + }, + labels() { + const labels2 = ["time", "clear", "ok"]; + const values = [this.isTime ? "selectDate" : "selectTime", "clear", "ok"]; + return labels2.reduce((obj, key2, i) => { + obj[key2] = this.t("i.datepicker." + values[i]); + return obj; + }, {}); + } + }, + methods: { + handleClear() { + this.$emit("on-pick-clear"); + }, + handleSuccess() { + this.$emit("on-pick-success"); + }, + handleToggleTime() { + if (this.timeDisabled) + return; + this.$emit("on-pick-toggle-time"); + this.PickerInstance.handleOnFocusInput(); + this.PickerInstance.handleOnUpdatePopper(); + }, + handleTab(e) { + const tabbables = [...this.$el.children]; + const expectedFocus = tabbables[e.shiftKey ? "shift" : "pop"](); + if (isClient && document.activeElement === expectedFocus) { + e.preventDefault(); + e.stopPropagation(); + this.PickerInstance.handleOnFocusInput(); + } + } + } +}; +function _sfc_render$1j(_ctx, _cache, $props, $setup, $data, $options) { + const _component_i_button = resolveComponent("i-button"); + return openBlock(), createElementBlock("div", { + class: normalizeClass([$data.prefixCls + "-confirm"]), + onKeydownCapture: _cache[0] || (_cache[0] = withKeys((...args) => $options.handleTab && $options.handleTab(...args), ["tab"])) + }, [ + $props.showTime ? (openBlock(), createBlock(_component_i_button, { + key: 0, + class: normalizeClass($options.timeClasses), + size: "small", + type: "text", + disabled: $props.timeDisabled, + onClick: $options.handleToggleTime + }, { + default: withCtx(() => [ + createTextVNode(toDisplayString($options.labels.time), 1) + ]), + _: 1 + }, 8, ["class", "disabled", "onClick"])) : createCommentVNode("", true), + createVNode(_component_i_button, { + size: "small", + class: "ivu-picker-confirm-btn-cancel", + onClick: $options.handleClear, + onKeydown: withKeys($options.handleClear, ["enter"]) + }, { + default: withCtx(() => [ + createTextVNode(toDisplayString($options.labels.clear), 1) + ]), + _: 1 + }, 8, ["onClick", "onKeydown"]), + createVNode(_component_i_button, { + size: "small", + type: "primary", + onClick: $options.handleSuccess, + onKeydown: withKeys($options.handleSuccess, ["enter"]) + }, { + default: withCtx(() => [ + createTextVNode(toDisplayString($options.labels.ok), 1) + ]), + _: 1 + }, 8, ["onClick", "onKeydown"]) + ], 34); +} +var Confirm = /* @__PURE__ */ _export_sfc(_sfc_main$1x, [["render", _sfc_render$1j]]); +const prefixCls$N = "ivu-picker-panel"; +const datePrefixCls$2 = "ivu-date-picker"; +var Mixin$1 = { + emits: ["on-pick-clear", "on-pick-success", "on-pick-click", "on-pick"], + props: { + confirm: { + type: Boolean, + default: false + } + }, + methods: { + iconBtnCls(direction, type2 = "") { + return [ + `${prefixCls$N}-icon-btn`, + `${datePrefixCls$2}-${direction}-btn`, + `${datePrefixCls$2}-${direction}-btn-arrow${type2}` + ]; + }, + handleShortcutClick(shortcut) { + if (shortcut.value) + this.$emit("on-pick", shortcut.value()); + if (shortcut.onClick) + shortcut.onClick(this); + }, + handlePickClear() { + this.resetView(); + this.$emit("on-pick-clear"); + }, + handlePickSuccess() { + this.resetView(); + this.$emit("on-pick-success"); + }, + handlePickClick() { + this.$emit("on-pick-click"); + }, + resetView() { + setTimeout( + () => this.currentView = this.selectionMode, + 500 + ); + }, + handleClear() { + this.dates = this.dates.map(() => null); + this.rangeState = {}; + this.$emit("on-pick", this.dates); + this.handleConfirm(); + }, + handleConfirm(visible, type2) { + this.$emit("on-pick", this.dates, visible, type2 || this.type); + }, + onToggleVisibility(open) { + const { timeSpinner, timeSpinnerEnd } = this.$refs; + if (open && timeSpinner) + timeSpinner.updateScroll(); + if (open && timeSpinnerEnd) + timeSpinnerEnd.updateScroll(); + } + } +}; +const prefixCls$M = "ivu-picker-panel"; +const timePrefixCls$1 = "ivu-time-picker"; +const capitalize$1 = (str) => str[0].toUpperCase() + str.slice(1); +const mergeDateHMS = (date3, hours, minutes, seconds) => { + const newDate = new Date(date3.getTime()); + newDate.setHours(hours); + newDate.setMinutes(minutes); + newDate.setSeconds(seconds); + return newDate; +}; +const unique = (el, i, arr) => arr.indexOf(el) === i; +const returnFalse = () => false; +const _sfc_main$1w = { + name: "TimePickerPanel", + mixins: [Mixin$1, Locale, Options$1], + components: { TimeSpinner, Confirm }, + emits: ["on-pick"], + props: { + disabledDate: { + type: Function, + default: returnFalse + }, + steps: { + type: Array, + default: () => [] + }, + format: { + type: String, + default: "HH:mm:ss" + }, + modelValue: { + type: Array, + required: true + } + }, + data() { + return { + prefixCls: prefixCls$M, + timePrefixCls: timePrefixCls$1, + date: this.modelValue[0] || initTimeDate(), + showDate: false + }; + }, + computed: { + showSeconds() { + return !!(this.format || "").match(/ss/); + }, + visibleDate() { + const date3 = this.date; + const month = date3.getMonth() + 1; + const tYear = this.t("i.datepicker.year"); + const tMonth = this.t(`i.datepicker.month${month}`); + return `${date3.getFullYear()}${tYear} ${tMonth}`; + }, + timeSlots() { + if (!this.modelValue[0]) + return []; + return ["getHours", "getMinutes", "getSeconds"].map((slot) => this.date[slot]()); + }, + disabledHMS() { + const disabledTypes = ["disabledHours", "disabledMinutes", "disabledSeconds"]; + if (this.disabledDate === returnFalse || !this.modelValue[0]) { + const disabled = disabledTypes.reduce( + (obj, type2) => (obj[type2] = this[type2], obj), + {} + ); + return disabled; + } else { + const slots = [24, 60, 60]; + const disabled = ["Hours", "Minutes", "Seconds"].map((type2) => this[`disabled${type2}`]); + const disabledHMS = disabled.map((preDisabled, j) => { + const slot = slots[j]; + const toDisable = preDisabled; + for (let i = 0; i < slot; i += this.steps[j] || 1) { + const hms = this.timeSlots.map((slot2, x) => x === j ? i : slot2); + const testDateTime = mergeDateHMS(this.date, ...hms); + if (this.disabledDate(testDateTime, true)) + toDisable.push(i); + } + return toDisable.filter(unique); + }); + return disabledTypes.reduce( + (obj, type2, i) => (obj[type2] = disabledHMS[i], obj), + {} + ); + } + } + }, + watch: { + modelValue(dates) { + let newVal = dates[0] || initTimeDate(); + newVal = new Date(newVal); + this.date = newVal; + } + }, + methods: { + handleChange(date3, emit = true) { + const newDate = new Date(this.date); + Object.keys(date3).forEach( + (type2) => newDate[`set${capitalize$1(type2)}`](date3[type2]) + ); + if (emit) + this.$emit("on-pick", newDate, "time"); + } + }, + mounted() { + if (this.$parent && this.$parent.$options.name === "DatePicker") + this.showDate = true; + } +}; +function _sfc_render$1i(_ctx, _cache, $props, $setup, $data, $options) { + const _component_time_spinner = resolveComponent("time-spinner"); + const _component_Confirm = resolveComponent("Confirm"); + return openBlock(), createElementBlock("div", { + class: normalizeClass([$data.prefixCls + "-body-wrapper"]), + onMousedown: _cache[0] || (_cache[0] = withModifiers(() => { + }, ["prevent"])) + }, [ + createElementVNode("div", { + class: normalizeClass([$data.prefixCls + "-body"]) + }, [ + $data.showDate ? (openBlock(), createElementBlock("div", { + key: 0, + class: normalizeClass([$data.timePrefixCls + "-header"]) + }, toDisplayString($options.visibleDate), 3)) : createCommentVNode("", true), + createElementVNode("div", { + class: normalizeClass([$data.prefixCls + "-content"]) + }, [ + createVNode(_component_time_spinner, { + ref: "timeSpinner", + "show-seconds": $options.showSeconds, + steps: $props.steps, + hours: $options.timeSlots[0], + minutes: $options.timeSlots[1], + seconds: $options.timeSlots[2], + "disabled-hours": $options.disabledHMS.disabledHours, + "disabled-minutes": $options.disabledHMS.disabledMinutes, + "disabled-seconds": $options.disabledHMS.disabledSeconds, + "hide-disabled-options": _ctx.hideDisabledOptions, + onOnChange: $options.handleChange, + onOnPickClick: _ctx.handlePickClick + }, null, 8, ["show-seconds", "steps", "hours", "minutes", "seconds", "disabled-hours", "disabled-minutes", "disabled-seconds", "hide-disabled-options", "onOnChange", "onOnPickClick"]) + ], 2), + _ctx.confirm ? (openBlock(), createBlock(_component_Confirm, { + key: 1, + onOnPickClear: _ctx.handlePickClear, + onOnPickSuccess: _ctx.handlePickSuccess + }, null, 8, ["onOnPickClear", "onOnPickSuccess"])) : createCommentVNode("", true) + ], 2) + ], 34); +} +var TimePickerPanel = /* @__PURE__ */ _export_sfc(_sfc_main$1w, [["render", _sfc_render$1i]]); +const _sfc_main$1v = { + props: { + datePanelLabel: Object, + currentView: String, + datePrefixCls: String + } +}; +function _sfc_render$1h(_ctx, _cache, $props, $setup, $data, $options) { + return openBlock(), createElementBlock("span", null, [ + $props.datePanelLabel ? withDirectives((openBlock(), createElementBlock("span", { + key: 0, + class: normalizeClass([$props.datePrefixCls + "-header-label"]), + onClick: _cache[0] || (_cache[0] = (...args) => $props.datePanelLabel.labels[0].handler && $props.datePanelLabel.labels[0].handler(...args)) + }, toDisplayString($props.datePanelLabel.labels[0].label), 3)), [ + [vShow, $props.datePanelLabel.labels[0].type === "year" || $props.currentView === "date"] + ]) : createCommentVNode("", true), + $props.datePanelLabel && $props.currentView === "date" ? (openBlock(), createElementBlock(Fragment, { key: 1 }, [ + createTextVNode(toDisplayString($props.datePanelLabel.separator), 1) + ], 64)) : createCommentVNode("", true), + $props.datePanelLabel ? withDirectives((openBlock(), createElementBlock("span", { + key: 2, + class: normalizeClass([$props.datePrefixCls + "-header-label"]), + onClick: _cache[1] || (_cache[1] = (...args) => $props.datePanelLabel.labels[1].handler && $props.datePanelLabel.labels[1].handler(...args)) + }, toDisplayString($props.datePanelLabel.labels[1].label), 3)), [ + [vShow, $props.datePanelLabel.labels[1].type === "year" || $props.currentView === "date"] + ]) : createCommentVNode("", true) + ]); +} +var datePanelLabel = /* @__PURE__ */ _export_sfc(_sfc_main$1v, [["render", _sfc_render$1h]]); +var DateMixin = { + props: { + showTime: { + type: Boolean, + default: false + }, + format: { + type: String, + default: "yyyy-MM-dd" + }, + selectionMode: { + type: String, + validator(value) { + return oneOf(value, ["year", "month", "date", "time"]); + }, + default: "date" + }, + shortcuts: { + type: Array, + default: () => [] + }, + disabledDate: { + type: Function, + default: () => false + }, + modelValue: { + type: Array, + default: () => [initTimeDate(), initTimeDate()] + }, + timePickerOptions: { + default: () => ({}), + type: Object + }, + showWeekNumbers: { + type: Boolean, + default: false + }, + startDate: { + type: Date + }, + pickerType: { + type: String, + require: true + }, + focusedDate: { + type: Date, + required: true + } + }, + computed: { + isTime() { + return this.currentView === "time"; + } + }, + methods: { + handleToggleTime() { + this.currentView = this.currentView === "time" ? "date" : "time"; + } + } +}; +const prefixCls$L = "ivu-picker-panel"; +const datePrefixCls$1 = "ivu-date-picker"; +const _sfc_main$1u = { + name: "DatePickerPanel", + mixins: [Mixin$1, Locale, DateMixin], + components: { Icon, DateTable, YearTable, MonthTable, TimePicker: TimePickerPanel, Confirm, datePanelLabel }, + emits: ["on-selection-mode-change", "on-pick"], + props: { + multiple: { + type: Boolean, + default: false + } + }, + data() { + const { selectionMode, modelValue } = this; + const dates = modelValue.slice().sort(); + return { + prefixCls: prefixCls$L, + datePrefixCls: datePrefixCls$1, + currentView: selectionMode || "date", + pickerTable: this.getTableType(selectionMode), + dates, + panelDate: this.startDate || dates[0] || new Date() + }; + }, + computed: { + classes() { + return [ + `${prefixCls$L}-body-wrapper`, + { + [`${prefixCls$L}-with-sidebar`]: this.shortcuts.length + } + ]; + }, + panelPickerHandlers() { + return this.pickerTable === `${this.currentView}-table` ? this.handlePick : this.handlePreSelection; + }, + datePanelLabel() { + const locale2 = this.t("i.locale"); + const datePanelLabel2 = this.t("i.datepicker.datePanelLabel"); + const date3 = this.panelDate; + const { labels: labels2, separator } = formatDateLabels(locale2, datePanelLabel2, date3); + const handler = (type2) => { + return () => this.pickerTable = this.getTableType(type2); + }; + return { + separator, + labels: labels2.map((obj) => (obj.handler = handler(obj.type), obj)) + }; + }, + timeDisabled() { + return !this.dates[0]; + } + }, + watch: { + modelValue(newVal) { + this.dates = newVal; + const panelDate = this.multiple ? this.dates[this.dates.length - 1] : this.startDate || this.dates[0]; + this.panelDate = panelDate || new Date(); + }, + currentView(currentView) { + this.$emit("on-selection-mode-change", currentView); + if (this.currentView === "time") { + nextTick(() => { + const spinner = this.$refs.timePicker.$refs.timeSpinner; + spinner.updateScroll(); + }); + } + }, + selectionMode(type2) { + this.currentView = type2; + this.pickerTable = this.getTableType(type2); + }, + focusedDate(date3) { + const isDifferentYear = date3.getFullYear() !== this.panelDate.getFullYear(); + const isDifferentMonth = isDifferentYear || date3.getMonth() !== this.panelDate.getMonth(); + if (isDifferentYear || isDifferentMonth) { + if (!this.multiple) + this.panelDate = date3; + } + } + }, + methods: { + reset() { + this.currentView = this.selectionMode; + this.pickerTable = this.getTableType(this.currentView); + }, + changeYear(dir) { + if (this.selectionMode === "year" || this.pickerTable === "year-table") { + this.panelDate = new Date(this.panelDate.getFullYear() + dir * 10, 0, 1); + } else { + this.panelDate = siblingMonth(this.panelDate, dir * 12); + } + }, + getTableType(currentView) { + return currentView.match(/^time/) ? "time-picker" : `${currentView}-table`; + }, + changeMonth(dir) { + this.panelDate = siblingMonth(this.panelDate, dir); + }, + handlePreSelection(value) { + this.panelDate = value; + if (this.pickerTable === "year-table") + this.pickerTable = "month-table"; + else + this.pickerTable = this.getTableType(this.currentView); + }, + handlePick(value, type2) { + const { selectionMode, panelDate } = this; + if (selectionMode === "year") + value = new Date(value.getFullYear(), 0, 1); + else if (selectionMode === "month") + value = new Date(panelDate.getFullYear(), value.getMonth(), 1); + else + value = new Date(value); + this.dates = [value]; + this.$emit("on-pick", value, false, type2 || selectionMode); + } + } +}; +const _hoisted_1$N = ["onClick"]; +function _sfc_render$1g(_ctx, _cache, $props, $setup, $data, $options) { + const _component_Icon = resolveComponent("Icon"); + const _component_date_panel_label = resolveComponent("date-panel-label"); + const _component_time_picker = resolveComponent("time-picker"); + const _component_Confirm = resolveComponent("Confirm"); + return openBlock(), createElementBlock("div", { + class: normalizeClass($options.classes), + onMousedown: _cache[4] || (_cache[4] = withModifiers(() => { + }, ["prevent"])) + }, [ + _ctx.shortcuts.length ? (openBlock(), createElementBlock("div", { + key: 0, + class: normalizeClass([$data.prefixCls + "-sidebar"]) + }, [ + (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.shortcuts, (shortcut) => { + return openBlock(), createElementBlock("div", { + class: normalizeClass([$data.prefixCls + "-shortcut"]), + key: shortcut.text, + onClick: ($event) => _ctx.handleShortcutClick(shortcut) + }, toDisplayString(shortcut.text), 11, _hoisted_1$N); + }), 128)) + ], 2)) : createCommentVNode("", true), + createElementVNode("div", { + class: normalizeClass([$data.prefixCls + "-body"]) + }, [ + withDirectives(createElementVNode("div", { + class: normalizeClass([$data.datePrefixCls + "-header"]) + }, [ + createElementVNode("span", { + class: normalizeClass(_ctx.iconBtnCls("prev", "-double")), + onClick: _cache[0] || (_cache[0] = ($event) => $options.changeYear(-1)) + }, [ + createVNode(_component_Icon, { type: "ios-arrow-back" }) + ], 2), + $data.pickerTable === "date-table" ? withDirectives((openBlock(), createElementBlock("span", { + key: 0, + class: normalizeClass(_ctx.iconBtnCls("prev")), + onClick: _cache[1] || (_cache[1] = ($event) => $options.changeMonth(-1)) + }, [ + createVNode(_component_Icon, { type: "ios-arrow-back" }) + ], 2)), [ + [vShow, $data.currentView === "date"] + ]) : createCommentVNode("", true), + createVNode(_component_date_panel_label, { + "date-panel-label": $options.datePanelLabel, + "current-view": $data.pickerTable.split("-").shift(), + "date-prefix-cls": $data.datePrefixCls + }, null, 8, ["date-panel-label", "current-view", "date-prefix-cls"]), + createElementVNode("span", { + class: normalizeClass(_ctx.iconBtnCls("next", "-double")), + onClick: _cache[2] || (_cache[2] = ($event) => $options.changeYear(1)) + }, [ + createVNode(_component_Icon, { type: "ios-arrow-forward" }) + ], 2), + $data.pickerTable === "date-table" ? withDirectives((openBlock(), createElementBlock("span", { + key: 1, + class: normalizeClass(_ctx.iconBtnCls("next")), + onClick: _cache[3] || (_cache[3] = ($event) => $options.changeMonth(1)) + }, [ + createVNode(_component_Icon, { type: "ios-arrow-forward" }) + ], 2)), [ + [vShow, $data.currentView === "date"] + ]) : createCommentVNode("", true) + ], 2), [ + [vShow, $data.currentView !== "time"] + ]), + createElementVNode("div", { + class: normalizeClass([$data.prefixCls + "-content"]) + }, [ + $data.currentView !== "time" ? (openBlock(), createBlock(resolveDynamicComponent($data.pickerTable), { + key: 0, + ref: "pickerTable", + "table-date": $data.panelDate, + "show-week-numbers": _ctx.showWeekNumbers, + "model-value": $data.dates, + "selection-mode": _ctx.selectionMode, + "disabled-date": _ctx.disabledDate, + "focused-date": _ctx.focusedDate, + onOnPick: $options.panelPickerHandlers, + onOnPickClick: _ctx.handlePickClick + }, null, 40, ["table-date", "show-week-numbers", "model-value", "selection-mode", "disabled-date", "focused-date", "onOnPick", "onOnPickClick"])) : createCommentVNode("", true) + ], 2), + withDirectives(createElementVNode("div", { + class: normalizeClass([$data.prefixCls + "-content"]) + }, [ + $data.currentView === "time" ? (openBlock(), createBlock(_component_time_picker, mergeProps({ + key: 0, + ref: "timePicker", + "model-value": $data.dates, + format: _ctx.format, + "time-disabled": $options.timeDisabled, + "disabled-date": _ctx.disabledDate, + "focused-date": _ctx.focusedDate + }, _ctx.timePickerOptions, { + onOnPick: $options.handlePick, + onOnPickClick: _ctx.handlePickClick, + onOnPickClear: _ctx.handlePickClear, + onOnPickSuccess: _ctx.handlePickSuccess, + onOnPickToggleTime: _ctx.handleToggleTime + }), null, 16, ["model-value", "format", "time-disabled", "disabled-date", "focused-date", "onOnPick", "onOnPickClick", "onOnPickClear", "onOnPickSuccess", "onOnPickToggleTime"])) : createCommentVNode("", true) + ], 2), [ + [vShow, _ctx.isTime] + ]), + _ctx.confirm ? (openBlock(), createBlock(_component_Confirm, { + key: 0, + "show-time": _ctx.showTime, + "is-time": _ctx.isTime, + onOnPickToggleTime: _ctx.handleToggleTime, + onOnPickClear: _ctx.handlePickClear, + onOnPickSuccess: _ctx.handlePickSuccess + }, null, 8, ["show-time", "is-time", "onOnPickToggleTime", "onOnPickClear", "onOnPickSuccess"])) : createCommentVNode("", true) + ], 2) + ], 34); +} +var DatePickerPanel = /* @__PURE__ */ _export_sfc(_sfc_main$1u, [["render", _sfc_render$1g]]); +const prefixCls$K = "ivu-picker-panel"; +const timePrefixCls = "ivu-time-picker"; +const capitalize = (str) => str[0].toUpperCase() + str.slice(1); +const _sfc_main$1t = { + name: "RangeTimePickerPanel", + mixins: [Mixin$1, Locale, Options$1], + components: { TimeSpinner, Confirm }, + emits: ["on-pick"], + props: { + steps: { + type: Array, + default: () => [] + }, + format: { + type: String, + default: "HH:mm:ss" + }, + modelValue: { + type: Array, + required: true + } + }, + data() { + const [dateStart, dateEnd] = this.modelValue.slice(); + return { + prefixCls: prefixCls$K, + timePrefixCls, + showDate: false, + dateStart: dateStart || initTimeDate(), + dateEnd: dateEnd || initTimeDate() + }; + }, + computed: { + classes() { + return [ + `${prefixCls$K}-body-wrapper`, + `${timePrefixCls}-with-range`, + { + [`${timePrefixCls}-with-seconds`]: this.showSeconds + } + ]; + }, + showSeconds() { + return !!(this.format || "").match(/ss/); + }, + leftDatePanelLabel() { + return this.panelLabelConfig(this.date); + }, + rightDatePanelLabel() { + return this.panelLabelConfig(this.dateEnd); + } + }, + watch: { + modelValue(dates) { + const [dateStart, dateEnd] = dates.slice(); + this.dateStart = dateStart || initTimeDate(); + this.dateEnd = dateEnd || initTimeDate(); + } + }, + methods: { + panelLabelConfig(date3) { + const locale2 = this.t("i.locale"); + const datePanelLabel2 = this.t("i.datepicker.datePanelLabel"); + const { labels: labels2, separator } = formatDateLabels(locale2, datePanelLabel2, date3 || initTimeDate()); + return [labels2[0].label, separator, labels2[1].label].join(""); + }, + handleChange(start, end, emit = true) { + const dateStart = new Date(this.dateStart); + let dateEnd = new Date(this.dateEnd); + Object.keys(start).forEach((type2) => { + dateStart[`set${capitalize(type2)}`](start[type2]); + }); + Object.keys(end).forEach((type2) => { + dateEnd[`set${capitalize(type2)}`](end[type2]); + }); + if (dateEnd < dateStart) + dateEnd = dateStart; + if (emit) + this.$emit("on-pick", [dateStart, dateEnd], "time"); + }, + handleStartChange(date3) { + this.handleChange(date3, {}); + }, + handleEndChange(date3) { + this.handleChange({}, date3); + }, + updateScroll() { + this.$refs.timeSpinner.updateScroll(); + this.$refs.timeSpinnerEnd.updateScroll(); + } + }, + mounted() { + if (this.$parent && this.$parent.$options.name === "DatePicker") + this.showDate = true; + } +}; +function _sfc_render$1f(_ctx, _cache, $props, $setup, $data, $options) { + const _component_time_spinner = resolveComponent("time-spinner"); + const _component_Confirm = resolveComponent("Confirm"); + return openBlock(), createElementBlock("div", { + class: normalizeClass($options.classes), + onMousedown: _cache[0] || (_cache[0] = withModifiers(() => { + }, ["prevent"])) + }, [ + createElementVNode("div", { + class: normalizeClass([$data.prefixCls + "-body"]) + }, [ + createElementVNode("div", { + class: normalizeClass([$data.prefixCls + "-content", $data.prefixCls + "-content-left"]) + }, [ + createElementVNode("div", { + class: normalizeClass([$data.timePrefixCls + "-header"]) + }, [ + $data.showDate ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [ + createTextVNode(toDisplayString($options.leftDatePanelLabel), 1) + ], 64)) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [ + createTextVNode(toDisplayString(_ctx.t("i.datepicker.startTime")), 1) + ], 64)) + ], 2), + createVNode(_component_time_spinner, { + ref: "timeSpinner", + steps: $props.steps, + "show-seconds": $options.showSeconds, + hours: $props.modelValue[0] && $data.dateStart.getHours(), + minutes: $props.modelValue[0] && $data.dateStart.getMinutes(), + seconds: $props.modelValue[0] && $data.dateStart.getSeconds(), + "disabled-hours": _ctx.disabledHours, + "disabled-minutes": _ctx.disabledMinutes, + "disabled-seconds": _ctx.disabledSeconds, + "hide-disabled-options": _ctx.hideDisabledOptions, + onOnChange: $options.handleStartChange, + onOnPickClick: _ctx.handlePickClick + }, null, 8, ["steps", "show-seconds", "hours", "minutes", "seconds", "disabled-hours", "disabled-minutes", "disabled-seconds", "hide-disabled-options", "onOnChange", "onOnPickClick"]) + ], 2), + createElementVNode("div", { + class: normalizeClass([$data.prefixCls + "-content", $data.prefixCls + "-content-right"]) + }, [ + createElementVNode("div", { + class: normalizeClass([$data.timePrefixCls + "-header"]) + }, [ + $data.showDate ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [ + createTextVNode(toDisplayString($options.rightDatePanelLabel), 1) + ], 64)) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [ + createTextVNode(toDisplayString(_ctx.t("i.datepicker.endTime")), 1) + ], 64)) + ], 2), + createVNode(_component_time_spinner, { + ref: "timeSpinnerEnd", + steps: $props.steps, + "show-seconds": $options.showSeconds, + hours: $props.modelValue[1] && $data.dateEnd.getHours(), + minutes: $props.modelValue[1] && $data.dateEnd.getMinutes(), + seconds: $props.modelValue[1] && $data.dateEnd.getSeconds(), + "disabled-hours": _ctx.disabledHours, + "disabled-minutes": _ctx.disabledMinutes, + "disabled-seconds": _ctx.disabledSeconds, + "hide-disabled-options": _ctx.hideDisabledOptions, + onOnChange: $options.handleEndChange, + onOnPickClick: _ctx.handlePickClick + }, null, 8, ["steps", "show-seconds", "hours", "minutes", "seconds", "disabled-hours", "disabled-minutes", "disabled-seconds", "hide-disabled-options", "onOnChange", "onOnPickClick"]) + ], 2), + _ctx.confirm ? (openBlock(), createBlock(_component_Confirm, { + key: 0, + onOnPickClear: _ctx.handlePickClear, + onOnPickSuccess: _ctx.handlePickSuccess + }, null, 8, ["onOnPickClear", "onOnPickSuccess"])) : createCommentVNode("", true) + ], 2) + ], 34); +} +var RangeTimePickerPanel = /* @__PURE__ */ _export_sfc(_sfc_main$1t, [["render", _sfc_render$1f]]); +const prefixCls$J = "ivu-picker-panel"; +const datePrefixCls = "ivu-date-picker"; +const dateSorter = (a, b) => { + if (!a || !b) + return 0; + return a.getTime() - b.getTime(); +}; +const _sfc_main$1s = { + name: "RangeDatePickerPanel", + mixins: [Mixin$1, Locale, DateMixin], + components: { Icon, DateTable, YearTable, MonthTable, TimePicker: RangeTimePickerPanel, Confirm, datePanelLabel }, + props: { + splitPanels: { + type: Boolean, + default: false + } + }, + data() { + const [minDate, maxDate] = this.modelValue.map((date3) => date3 || initTimeDate()); + const leftPanelDate = this.startDate ? this.startDate : minDate; + return { + prefixCls: prefixCls$J, + datePrefixCls, + dates: this.modelValue, + rangeState: { from: this.modelValue[0], to: this.modelValue[1], selecting: minDate && !maxDate }, + currentView: this.selectionMode || "range", + leftPickerTable: `${this.selectionMode}-table`, + rightPickerTable: `${this.selectionMode}-table`, + leftPanelDate, + rightPanelDate: new Date(leftPanelDate.getFullYear(), leftPanelDate.getMonth() + 1, 1) + }; + }, + computed: { + classes() { + return [ + `${prefixCls$J}-body-wrapper`, + `${datePrefixCls}-with-range`, + { + [`${prefixCls$J}-with-sidebar`]: this.shortcuts.length, + [`${datePrefixCls}-with-week-numbers`]: this.showWeekNumbers + } + ]; + }, + panelBodyClasses() { + return [ + prefixCls$J + "-body", + { + [prefixCls$J + "-body-time"]: this.showTime, + [prefixCls$J + "-body-date"]: !this.showTime + } + ]; + }, + leftDatePanelLabel() { + return this.panelLabelConfig("left"); + }, + rightDatePanelLabel() { + return this.panelLabelConfig("right"); + }, + leftDatePanelView() { + return this.leftPickerTable.split("-").shift(); + }, + rightDatePanelView() { + return this.rightPickerTable.split("-").shift(); + }, + timeDisabled() { + return !(this.dates[0] && this.dates[1]); + }, + preSelecting() { + const tableType = `${this.currentView}-table`; + return { + left: this.leftPickerTable !== tableType, + right: this.rightPickerTable !== tableType + }; + }, + panelPickerHandlers() { + return { + left: this.preSelecting.left ? this.handlePreSelection.bind(this, "left") : this.handleRangePick, + right: this.preSelecting.right ? this.handlePreSelection.bind(this, "right") : this.handleRangePick + }; + } + }, + watch: { + modelValue(newVal) { + const minDate = newVal[0] ? toDate(newVal[0]) : null; + const maxDate = newVal[1] ? toDate(newVal[1]) : null; + this.dates = [minDate, maxDate].sort(dateSorter); + this.rangeState = { + from: this.dates[0], + to: this.dates[1], + selecting: false + }; + this.setPanelDates(this.startDate || this.dates[0] || new Date()); + }, + currentView(currentView) { + const leftMonth = this.leftPanelDate.getMonth(); + const rightMonth = this.rightPanelDate.getMonth(); + const isSameYear = this.leftPanelDate.getFullYear() === this.rightPanelDate.getFullYear(); + if (currentView === "date" && isSameYear && leftMonth === rightMonth) { + this.changePanelDate("right", "Month", 1); + } + if (currentView === "month" && isSameYear) { + this.changePanelDate("right", "FullYear", 1); + } + if (currentView === "year" && isSameYear) { + this.changePanelDate("right", "FullYear", 10); + } + }, + selectionMode(type2) { + this.currentView = type2 || "range"; + }, + focusedDate(date3) { + this.setPanelDates(date3 || new Date()); + } + }, + methods: { + reset() { + this.currentView = this.selectionMode; + this.leftPickerTable = `${this.currentView}-table`; + this.rightPickerTable = `${this.currentView}-table`; + }, + setPanelDates(leftPanelDate) { + this.leftPanelDate = leftPanelDate; + const rightPanelDate = new Date(leftPanelDate.getFullYear(), leftPanelDate.getMonth() + 1, 1); + const splitRightPanelDate = this.dates[1] ? this.dates[1].getTime() : this.dates[1]; + this.rightPanelDate = this.splitPanels ? new Date(Math.max(splitRightPanelDate, rightPanelDate.getTime())) : rightPanelDate; + }, + panelLabelConfig(direction) { + const locale2 = this.t("i.locale"); + const datePanelLabel2 = this.t("i.datepicker.datePanelLabel"); + const handler = (type2) => { + const fn = type2 == "month" ? this.showMonthPicker : this.showYearPicker; + return () => fn(direction); + }; + const date3 = this[`${direction}PanelDate`]; + const { labels: labels2, separator } = formatDateLabels(locale2, datePanelLabel2, date3); + return { + separator, + labels: labels2.map((obj) => (obj.handler = handler(obj.type), obj)) + }; + }, + prevYear(panel) { + const increment = this.currentView === "year" ? -10 : -1; + this.changePanelDate(panel, "FullYear", increment); + }, + nextYear(panel) { + const increment = this.currentView === "year" ? 10 : 1; + this.changePanelDate(panel, "FullYear", increment); + }, + prevMonth(panel) { + this.changePanelDate(panel, "Month", -1); + }, + nextMonth(panel) { + this.changePanelDate(panel, "Month", 1); + }, + changePanelDate(panel, type2, increment, updateOtherPanel = true) { + const current = new Date(this[`${panel}PanelDate`]); + if (type2 === "FullYear") + current[`set${type2}`](current[`get${type2}`]() + increment); + else + current[`set${type2}`](current[`get${type2}`]() + increment, 1); + this[`${panel}PanelDate`] = current; + if (!updateOtherPanel) + return; + if (this.splitPanels) { + const otherPanel = panel === "left" ? "right" : "left"; + if (panel === "left" && this.leftPanelDate >= this.rightPanelDate) { + this.changePanelDate(otherPanel, type2, 1); + } + if (panel === "right" && this.rightPanelDate <= this.leftPanelDate) { + this.changePanelDate(otherPanel, type2, -1); + } + } else { + const otherPanel = panel === "left" ? "right" : "left"; + const currentDate = this[`${otherPanel}PanelDate`]; + const temp = new Date(currentDate); + if (type2 === "Month") { + const nextMonthLastDate = new Date( + temp.getFullYear(), + temp.getMonth() + increment + 1, + 0 + ).getDate(); + temp.setDate(Math.min(nextMonthLastDate, temp.getDate())); + } + temp[`set${type2}`](temp[`get${type2}`]() + increment); + this[`${otherPanel}PanelDate`] = temp; + } + }, + showYearPicker(panel) { + this[`${panel}PickerTable`] = "year-table"; + }, + showMonthPicker(panel) { + this[`${panel}PickerTable`] = "month-table"; + }, + handlePreSelection(panel, value) { + this[`${panel}PanelDate`] = value; + const currentViewType = this[`${panel}PickerTable`]; + if (currentViewType === "year-table") + this[`${panel}PickerTable`] = "month-table"; + else + this[`${panel}PickerTable`] = `${this.currentView}-table`; + if (!this.splitPanels) { + const otherPanel = panel === "left" ? "right" : "left"; + this[`${otherPanel}PanelDate`] = value; + const increment = otherPanel === "left" ? -1 : 1; + this.changePanelDate(otherPanel, "Month", increment, false); + } + }, + handleRangePick(val, type2) { + if (this.rangeState.selecting || this.currentView === "time") { + if (this.currentView === "time") { + this.dates = val; + } else { + const [minDate, maxDate] = [this.rangeState.from, val].sort(dateSorter); + this.dates = [minDate, maxDate]; + this.rangeState = { + from: minDate, + to: maxDate, + selecting: false + }; + } + this.handleConfirm(false, type2 || "date"); + } else { + this.rangeState = { + from: val, + to: null, + selecting: true + }; + } + }, + handleChangeRange(val) { + this.rangeState.to = val; + } + } +}; +const _hoisted_1$M = ["onClick"]; +function _sfc_render$1e(_ctx, _cache, $props, $setup, $data, $options) { + const _component_Icon = resolveComponent("Icon"); + const _component_date_panel_label = resolveComponent("date-panel-label"); + const _component_time_picker = resolveComponent("time-picker"); + const _component_Confirm = resolveComponent("Confirm"); + return openBlock(), createElementBlock("div", { + class: normalizeClass($options.classes), + onMousedown: _cache[8] || (_cache[8] = withModifiers(() => { + }, ["prevent"])) + }, [ + _ctx.shortcuts.length ? (openBlock(), createElementBlock("div", { + key: 0, + class: normalizeClass([$data.prefixCls + "-sidebar"]) + }, [ + (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.shortcuts, (shortcut) => { + return openBlock(), createElementBlock("div", { + class: normalizeClass([$data.prefixCls + "-shortcut"]), + key: shortcut.text, + onClick: ($event) => _ctx.handleShortcutClick(shortcut) + }, toDisplayString(shortcut.text), 11, _hoisted_1$M); + }), 128)) + ], 2)) : createCommentVNode("", true), + createElementVNode("div", { + class: normalizeClass($options.panelBodyClasses) + }, [ + withDirectives(createElementVNode("div", { + class: normalizeClass([$data.prefixCls + "-content", $data.prefixCls + "-content-left"]) + }, [ + withDirectives(createElementVNode("div", { + class: normalizeClass([$data.datePrefixCls + "-header"]) + }, [ + createElementVNode("span", { + class: normalizeClass(_ctx.iconBtnCls("prev", "-double")), + onClick: _cache[0] || (_cache[0] = ($event) => $options.prevYear("left")) + }, [ + createVNode(_component_Icon, { type: "ios-arrow-back" }) + ], 2), + $data.leftPickerTable === "date-table" ? withDirectives((openBlock(), createElementBlock("span", { + key: 0, + class: normalizeClass(_ctx.iconBtnCls("prev")), + onClick: _cache[1] || (_cache[1] = ($event) => $options.prevMonth("left")) + }, [ + createVNode(_component_Icon, { type: "ios-arrow-back" }) + ], 2)), [ + [vShow, $data.currentView === "date"] + ]) : createCommentVNode("", true), + createVNode(_component_date_panel_label, { + "date-panel-label": $options.leftDatePanelLabel, + "current-view": $options.leftDatePanelView, + "date-prefix-cls": $data.datePrefixCls + }, null, 8, ["date-panel-label", "current-view", "date-prefix-cls"]), + $props.splitPanels || $data.leftPickerTable !== "date-table" ? (openBlock(), createElementBlock("span", { + key: 1, + class: normalizeClass(_ctx.iconBtnCls("next", "-double")), + onClick: _cache[2] || (_cache[2] = ($event) => $options.nextYear("left")) + }, [ + createVNode(_component_Icon, { type: "ios-arrow-forward" }) + ], 2)) : createCommentVNode("", true), + $props.splitPanels && $data.leftPickerTable === "date-table" ? withDirectives((openBlock(), createElementBlock("span", { + key: 2, + class: normalizeClass(_ctx.iconBtnCls("next")), + onClick: _cache[3] || (_cache[3] = ($event) => $options.nextMonth("left")) + }, [ + createVNode(_component_Icon, { type: "ios-arrow-forward" }) + ], 2)), [ + [vShow, $data.currentView === "date"] + ]) : createCommentVNode("", true) + ], 2), [ + [vShow, $data.currentView !== "time"] + ]), + $data.currentView !== "time" ? (openBlock(), createBlock(resolveDynamicComponent($data.leftPickerTable), { + key: 0, + ref: "leftYearTable", + "table-date": $data.leftPanelDate, + "selection-mode": "range", + "disabled-date": _ctx.disabledDate, + "range-state": $data.rangeState, + "show-week-numbers": _ctx.showWeekNumbers, + "model-value": $options.preSelecting.left ? [$data.dates[0]] : $data.dates, + "focused-date": _ctx.focusedDate, + onOnChangeRange: $options.handleChangeRange, + onOnPick: $options.panelPickerHandlers.left, + onOnPickClick: _ctx.handlePickClick + }, null, 40, ["table-date", "disabled-date", "range-state", "show-week-numbers", "model-value", "focused-date", "onOnChangeRange", "onOnPick", "onOnPickClick"])) : createCommentVNode("", true) + ], 2), [ + [vShow, !_ctx.isTime] + ]), + withDirectives(createElementVNode("div", { + class: normalizeClass([$data.prefixCls + "-content", $data.prefixCls + "-content-right"]) + }, [ + withDirectives(createElementVNode("div", { + class: normalizeClass([$data.datePrefixCls + "-header"]) + }, [ + $props.splitPanels || $data.rightPickerTable !== "date-table" ? (openBlock(), createElementBlock("span", { + key: 0, + class: normalizeClass(_ctx.iconBtnCls("prev", "-double")), + onClick: _cache[4] || (_cache[4] = ($event) => $options.prevYear("right")) + }, [ + createVNode(_component_Icon, { type: "ios-arrow-back" }) + ], 2)) : createCommentVNode("", true), + $props.splitPanels && $data.rightPickerTable === "date-table" ? withDirectives((openBlock(), createElementBlock("span", { + key: 1, + class: normalizeClass(_ctx.iconBtnCls("prev")), + onClick: _cache[5] || (_cache[5] = ($event) => $options.prevMonth("right")) + }, [ + createVNode(_component_Icon, { type: "ios-arrow-back" }) + ], 2)), [ + [vShow, $data.currentView === "date"] + ]) : createCommentVNode("", true), + createVNode(_component_date_panel_label, { + "date-panel-label": $options.rightDatePanelLabel, + "current-view": $options.rightDatePanelView, + "date-prefix-cls": $data.datePrefixCls + }, null, 8, ["date-panel-label", "current-view", "date-prefix-cls"]), + createElementVNode("span", { + class: normalizeClass(_ctx.iconBtnCls("next", "-double")), + onClick: _cache[6] || (_cache[6] = ($event) => $options.nextYear("right")) + }, [ + createVNode(_component_Icon, { type: "ios-arrow-forward" }) + ], 2), + $data.rightPickerTable === "date-table" ? withDirectives((openBlock(), createElementBlock("span", { + key: 2, + class: normalizeClass(_ctx.iconBtnCls("next")), + onClick: _cache[7] || (_cache[7] = ($event) => $options.nextMonth("right")) + }, [ + createVNode(_component_Icon, { type: "ios-arrow-forward" }) + ], 2)), [ + [vShow, $data.currentView === "date"] + ]) : createCommentVNode("", true) + ], 2), [ + [vShow, $data.currentView !== "time"] + ]), + $data.currentView !== "time" ? (openBlock(), createBlock(resolveDynamicComponent($data.rightPickerTable), { + key: 0, + ref: "rightYearTable", + "table-date": $data.rightPanelDate, + "selection-mode": "range", + "range-state": $data.rangeState, + "disabled-date": _ctx.disabledDate, + "show-week-numbers": _ctx.showWeekNumbers, + "model-value": $options.preSelecting.right ? [$data.dates[$data.dates.length - 1]] : $data.dates, + "focused-date": _ctx.focusedDate, + onOnChangeRange: $options.handleChangeRange, + onOnPick: $options.panelPickerHandlers.right, + onOnPickClick: _ctx.handlePickClick + }, null, 40, ["table-date", "range-state", "disabled-date", "show-week-numbers", "model-value", "focused-date", "onOnChangeRange", "onOnPick", "onOnPickClick"])) : createCommentVNode("", true) + ], 2), [ + [vShow, !_ctx.isTime] + ]), + withDirectives(createElementVNode("div", { + class: normalizeClass([$data.prefixCls + "-content"]) + }, [ + $data.currentView === "time" ? (openBlock(), createBlock(_component_time_picker, mergeProps({ + key: 0, + ref: "timePicker", + "model-value": $data.dates, + format: _ctx.format, + "time-disabled": $options.timeDisabled + }, _ctx.timePickerOptions, { + onOnPick: $options.handleRangePick, + onOnPickClick: _ctx.handlePickClick, + onOnPickClear: _ctx.handlePickClear, + onOnPickSuccess: _ctx.handlePickSuccess, + onOnPickToggleTime: _ctx.handleToggleTime + }), null, 16, ["model-value", "format", "time-disabled", "onOnPick", "onOnPickClick", "onOnPickClear", "onOnPickSuccess", "onOnPickToggleTime"])) : createCommentVNode("", true) + ], 2), [ + [vShow, _ctx.isTime] + ]), + _ctx.confirm ? (openBlock(), createBlock(_component_Confirm, { + key: 0, + "show-time": _ctx.showTime, + "is-time": _ctx.isTime, + "time-disabled": $options.timeDisabled, + onOnPickToggleTime: _ctx.handleToggleTime, + onOnPickClear: _ctx.handlePickClear, + onOnPickSuccess: _ctx.handlePickSuccess + }, null, 8, ["show-time", "is-time", "time-disabled", "onOnPickToggleTime", "onOnPickClear", "onOnPickSuccess"])) : createCommentVNode("", true) + ], 2) + ], 34); +} +var RangeDatePickerPanel = /* @__PURE__ */ _export_sfc(_sfc_main$1s, [["render", _sfc_render$1e]]); +var DatePicker = { + name: "CalendarPicker", + mixins: [Picker], + props: { + type: { + validator(value) { + return oneOf(value, ["year", "month", "date", "daterange", "datetime", "datetimerange"]); + }, + default: "date" + } + }, + components: { DatePickerPanel, RangeDatePickerPanel }, + computed: { + panel() { + const isRange = this.type === "daterange" || this.type === "datetimerange"; + return isRange ? "RangeDatePickerPanel" : "DatePickerPanel"; + }, + ownPickerProps() { + return this.options; + } + } +}; +var responsive = { + 1: { xs: 24 }, + 2: { xs: 24, sm: 12 }, + 3: { xs: 24, sm: 12, md: 8 }, + 4: { xs: 24, sm: 12, md: 6 } +}; +const _sfc_main$1r = { + name: "Description", + inject: ["DescriptionListInstance"], + props: { + term: { + type: String + } + }, + computed: { + styles() { + let style2 = {}; + if (this.DescriptionListInstance.gutter !== 0) { + style2 = { + paddingLeft: this.DescriptionListInstance.gutter / 2 + "px", + paddingRight: this.DescriptionListInstance.gutter / 2 + "px" + }; + } + return style2; + } + }, + render() { + let termNode; + if (this.term || this.$slots.term) { + if (this.$slots.term) { + termNode = h("div", { + class: "ivu-description-term" + }, this.$slots.term()); + } else { + termNode = h("div", { + class: "ivu-description-term" + }, this.term); + } + } + const detailNode = h("div", { + class: "ivu-description-detail" + }, this.$slots.default()); + const children = termNode ? [termNode, detailNode] : [detailNode]; + return h(Col, { + ...responsive[this.DescriptionListInstance.col], + style: this.styles + }, () => children); + } +}; +const _sfc_main$1q = { + name: "DescriptionList", + components: { Row }, + provide() { + return { + DescriptionListInstance: this + }; + }, + props: { + layout: { + validator(value) { + return oneOf(value, ["horizontal", "vertical"]); + }, + default: "horizontal" + }, + title: { + type: String + }, + gutter: { + type: Number, + default: 32 + }, + col: { + validator(value) { + return oneOf(value, [1, 2, 3, 4]); + }, + default: 3 + } + } +}; +const _hoisted_1$L = { + key: 0, + class: "ivu-description-list-title" +}; +function _sfc_render$1d(_ctx, _cache, $props, $setup, $data, $options) { + const _component_Row = resolveComponent("Row"); + return openBlock(), createElementBlock("div", { + class: normalizeClass(["ivu-description-list", { "ivu-description-list-vertical": $props.layout === "vertical" }]) + }, [ + $props.title || _ctx.$slots.title ? (openBlock(), createElementBlock("div", _hoisted_1$L, [ + renderSlot(_ctx.$slots, "title", {}, () => [ + createTextVNode(toDisplayString($props.title), 1) + ]) + ])) : createCommentVNode("", true), + createVNode(_component_Row, { gutter: $props.gutter }, { + default: withCtx(() => [ + renderSlot(_ctx.$slots, "default") + ]), + _: 3 + }, 8, ["gutter"]) + ], 2); +} +var DescriptionList = /* @__PURE__ */ _export_sfc(_sfc_main$1q, [["render", _sfc_render$1d]]); +const prefixCls$I = "ivu-divider"; +const _sfc_main$1p = { + name: "Divider", + props: { + type: { + type: String, + default: "horizontal", + validator(value) { + return oneOf(value, ["horizontal", "vertical"]); + } + }, + orientation: { + type: String, + default: "center", + validator(value) { + return oneOf(value, ["left", "right", "center"]); + } + }, + dashed: { + type: Boolean, + default: false + }, + size: { + validator(value) { + return oneOf(value, ["small", "default"]); + }, + default: "default" + }, + plain: { + type: Boolean, + default: false + } + }, + computed: { + hasSlot() { + return !!this.$slots.default; + }, + classes() { + return [ + `${prefixCls$I}`, + `${prefixCls$I}-${this.type}`, + `${prefixCls$I}-${this.size}`, + { + [`${prefixCls$I}-with-text`]: this.hasSlot && this.orientation === "center", + [`${prefixCls$I}-with-text-${this.orientation}`]: this.hasSlot, + [`${prefixCls$I}-dashed`]: !!this.dashed, + [`${prefixCls$I}-plain`]: this.plain + } + ]; + }, + slotClasses() { + return [ + `${prefixCls$I}-inner-text` + ]; + } + } +}; +function _sfc_render$1c(_ctx, _cache, $props, $setup, $data, $options) { + return openBlock(), createElementBlock("div", { + class: normalizeClass($options.classes) + }, [ + $options.hasSlot ? (openBlock(), createElementBlock("span", { + key: 0, + class: normalizeClass($options.slotClasses) + }, [ + renderSlot(_ctx.$slots, "default") + ], 2)) : createCommentVNode("", true) + ], 2); +} +var Divider = /* @__PURE__ */ _export_sfc(_sfc_main$1p, [["render", _sfc_render$1c]]); +var ScrollbarMixins = { + props: { + lockScroll: { + type: Boolean, + default: true + } + }, + methods: { + checkScrollBar() { + if (!isClient) + return; + let fullWindowWidth = window.innerWidth; + if (!fullWindowWidth) { + const documentElementRect = document.documentElement.getBoundingClientRect(); + fullWindowWidth = documentElementRect.right - Math.abs(documentElementRect.left); + } + this.bodyIsOverflowing = document.body.clientWidth < fullWindowWidth; + if (this.bodyIsOverflowing) { + this.scrollBarWidth = getScrollBarSize(); + } + }, + checkMaskInVisible() { + let masks = isClient ? document.getElementsByClassName("ivu-modal-mask") || [] : []; + return Array.from(masks).every((m) => m.style.display === "none" || m.classList.contains("fade-leave-to")); + }, + setScrollBar() { + if (isClient && this.bodyIsOverflowing && this.scrollBarWidth !== void 0) { + document.body.style.paddingRight = `${this.scrollBarWidth}px`; + } + }, + resetScrollBar() { + isClient && (document.body.style.paddingRight = ""); + }, + addScrollEffect() { + if (!this.lockScroll) + return; + this.checkScrollBar(); + this.setScrollBar(); + isClient && (document.body.style.overflow = "hidden"); + }, + removeScrollEffect() { + if (!this.lockScroll) + return; + if (isClient && this.checkMaskInVisible()) { + document.body.style.overflow = ""; + this.resetScrollBar(); + } + } + } +}; +const prefixCls$H = "ivu-drawer"; +const _sfc_main$1o = { + name: "Drawer", + mixins: [ScrollbarMixins], + components: { Icon }, + emits: ["on-close", "on-resize-width", "on-visible-change", "update:modelValue", "on-drag"], + provide() { + return { + DrawerInstance: this + }; + }, + props: { + modelValue: { + type: Boolean, + default: false + }, + title: { + type: String + }, + width: { + type: [Number, String], + default: 256 + }, + height: { + type: [Number, String], + default: 256 + }, + closable: { + type: Boolean, + default: true + }, + maskClosable: { + type: Boolean, + default: true + }, + mask: { + type: Boolean, + default: true + }, + maskStyle: { + type: Object + }, + styles: { + type: Object + }, + scrollable: { + type: Boolean, + default: false + }, + placement: { + validator(value) { + return oneOf(value, ["left", "right", "top", "bottom"]); + }, + default: "right" + }, + zIndex: { + type: Number, + default: 1e3 + }, + transfer: { + type: Boolean, + default() { + const global2 = getCurrentInstance().appContext.config.globalProperties; + return !global2.$VIEWUI || global2.$VIEWUI.transfer === "" ? true : global2.$VIEWUI.transfer; + } + }, + className: { + type: String + }, + inner: { + type: Boolean, + default: false + }, + draggable: { + type: Boolean, + default: false + }, + beforeClose: Function + }, + data() { + return { + prefixCls: prefixCls$H, + visible: this.modelValue, + wrapShow: false, + showHead: true, + canMove: false, + dragWidth: this.width, + dragHeight: this.height, + wrapperWidth: this.width, + wrapperHeight: this.height, + wrapperLeft: 0, + minWidth: 256, + minHeight: 256, + id: random(6), + tableList: [], + sliderList: [] + }; + }, + computed: { + wrapClasses() { + return [ + `${prefixCls$H}-wrap`, + { + [`${prefixCls$H}-hidden`]: !this.wrapShow, + [`${this.className}`]: !!this.className, + [`${prefixCls$H}-no-mask`]: !this.mask, + [`${prefixCls$H}-wrap-inner`]: this.inner, + [`${prefixCls$H}-wrap-dragging`]: this.canMove + } + ]; + }, + wrapStyles() { + return { + zIndex: this.zIndex + }; + }, + mainStyles() { + let style2 = {}; + if (this.placement === "left" || this.placement === "right") { + const width = parseInt(this.dragWidth); + const styleWidth = { + width: width <= 100 ? `${width}%` : `${width}px` + }; + Object.assign(style2, styleWidth); + } else { + const height2 = parseInt(this.dragHeight); + const styleHeight = { + height: height2 <= 100 ? `${height2}%` : `${height2}px` + }; + Object.assign(style2, styleHeight); + } + return style2; + }, + contentClasses() { + return [ + `${prefixCls$H}-content`, + { + [`${prefixCls$H}-content-no-mask`]: !this.mask + } + ]; + }, + classes() { + return [ + `${prefixCls$H}`, + `${prefixCls$H}-${this.placement}`, + { + [`${prefixCls$H}-no-header`]: !this.showHead, + [`${prefixCls$H}-inner`]: this.inner + } + ]; + }, + maskClasses() { + return [ + `${prefixCls$H}-mask`, + { + [`${prefixCls$H}-mask-inner`]: this.inner + } + ]; + }, + transitionName() { + if (this.placement === "left" || this.placement === "right") + return `move-${this.placement}`; + else if (this.placement === "top") + return "move-up"; + else + return "move-down"; + } + }, + methods: { + close() { + if (!this.beforeClose) { + return this.handleClose(); + } + const before = this.beforeClose(); + if (before && before.then) { + before.then(() => { + this.handleClose(); + }); + } else { + this.handleClose(); + } + }, + handleClose() { + this.visible = false; + this.$emit("update:modelValue", false); + this.$emit("on-close"); + }, + handleMask() { + if (this.maskClosable && this.mask) { + this.close(); + } + }, + handleWrapClick(event) { + const className = event.target.getAttribute("class"); + if (className && className.indexOf(`${prefixCls$H}-wrap`) > -1) + this.handleMask(); + }, + handleMousemove(event) { + if (!this.canMove || !this.draggable) + return; + this.handleSetWrapperWidth(); + const left = event.pageX - this.wrapperLeft; + let width = this.placement === "right" ? this.wrapperWidth - left : left; + width = Math.max(width, parseFloat(this.minWidth)); + event.atMin = width === parseFloat(this.minWidth); + if (width <= 100) + width = width / this.wrapperWidth * 100; + this.dragWidth = width; + this.$emit("on-resize-width", parseInt(this.dragWidth)); + this.$emit("on-drag", "dragging", parseInt(this.dragWidth)); + }, + handleSetWrapperWidth() { + const { + width, + left + } = this.$refs.drawer.getBoundingClientRect(); + this.wrapperWidth = width; + this.wrapperLeft = left; + }, + handleMouseup() { + if (!this.draggable) + return; + this.canMove = false; + this.$emit("on-drag", "end"); + }, + handleTriggerMousedown() { + this.canMove = true; + window.getSelection().removeAllRanges(); + this.$emit("on-drag", "start"); + }, + addDrawer() { + const root2 = this.$root; + if (!root2.drawerList) + root2.drawerList = []; + root2.drawerList.push({ + id: this.id, + drawer: this + }); + }, + removeDrawer() { + const root2 = this.$root; + if (!root2.drawerList) + return; + const index2 = root2.drawerList.findIndex((item) => item.id === this.id); + root2.drawerList.splice(index2, 1); + } + }, + mounted() { + if (this.visible) { + this.wrapShow = true; + } + let showHead = true; + if (this.$slots.header === void 0 && !this.title) { + showHead = false; + } + this.showHead = showHead; + this.addDrawer(); + on(document, "mousemove", this.handleMousemove); + on(document, "mouseup", this.handleMouseup); + this.handleSetWrapperWidth(); + }, + beforeUnmount() { + this.removeDrawer(); + off(document, "mousemove", this.handleMousemove); + off(document, "mouseup", this.handleMouseup); + this.removeScrollEffect(); + }, + watch: { + modelValue(val) { + this.visible = val; + }, + visible(val) { + if (val === false) { + this.timer = setTimeout(() => { + this.wrapShow = false; + const drawers = this.$root.drawerList.map((item) => item.drawer); + const otherDrawers = drawers.filter((item) => item.id !== this.id); + const isScrollDrawer = otherDrawers.some((item) => item.visible && !item.scrollable); + if (!isScrollDrawer) { + this.removeScrollEffect(); + } + }, 300); + } else { + if (this.timer) + clearTimeout(this.timer); + this.wrapShow = true; + if (!this.scrollable) { + this.addScrollEffect(); + } + } + this.tableList.forEach((item) => { + item.table.handleOnVisibleChange(val); + }); + this.sliderList.forEach((item) => { + item.slider.handleOnVisibleChange(val); + }); + this.$emit("on-visible-change", val); + }, + scrollable(val) { + if (!val) { + this.addScrollEffect(); + } else { + this.removeScrollEffect(); + } + }, + title(val) { + if (this.$slots.header === void 0) { + this.showHead = !!val; + } + }, + width(val) { + this.dragWidth = val; + }, + height(val) { + this.dragHeight = val; + } + } +}; +const _hoisted_1$K = { ref: "drawer" }; +const _hoisted_2$v = /* @__PURE__ */ createElementVNode("div", { class: "ivu-drawer-drag-move-trigger" }, [ + /* @__PURE__ */ createElementVNode("div", { class: "ivu-drawer-drag-move-trigger-point" }, [ + /* @__PURE__ */ createElementVNode("i"), + /* @__PURE__ */ createElementVNode("i"), + /* @__PURE__ */ createElementVNode("i"), + /* @__PURE__ */ createElementVNode("i"), + /* @__PURE__ */ createElementVNode("i") + ]) +], -1); +function _sfc_render$1b(_ctx, _cache, $props, $setup, $data, $options) { + const _component_Icon = resolveComponent("Icon"); + return openBlock(), createBlock(Teleport, { + to: "body", + disabled: !$props.transfer + }, [ + createElementVNode("div", _hoisted_1$K, [ + createVNode(Transition, { name: "fade" }, { + default: withCtx(() => [ + $props.mask ? withDirectives((openBlock(), createElementBlock("div", { + key: 0, + class: normalizeClass($options.maskClasses), + style: normalizeStyle($props.maskStyle), + onClick: _cache[0] || (_cache[0] = (...args) => $options.handleMask && $options.handleMask(...args)) + }, null, 6)), [ + [vShow, $data.visible] + ]) : createCommentVNode("", true) + ]), + _: 1 + }), + createElementVNode("div", { + class: normalizeClass($options.wrapClasses), + style: normalizeStyle($options.wrapStyles), + onClick: _cache[3] || (_cache[3] = (...args) => $options.handleWrapClick && $options.handleWrapClick(...args)) + }, [ + createVNode(Transition, { name: $options.transitionName }, { + default: withCtx(() => [ + withDirectives(createElementVNode("div", { + class: normalizeClass($options.classes), + style: normalizeStyle($options.mainStyles) + }, [ + createElementVNode("div", { + class: normalizeClass($options.contentClasses), + ref: "content" + }, [ + $props.closable ? (openBlock(), createElementBlock("a", { + key: 0, + class: "ivu-drawer-close", + onClick: _cache[1] || (_cache[1] = (...args) => $options.close && $options.close(...args)) + }, [ + renderSlot(_ctx.$slots, "close", {}, () => [ + createVNode(_component_Icon, { type: "ios-close" }) + ]) + ])) : createCommentVNode("", true), + $data.showHead ? (openBlock(), createElementBlock("div", { + key: 1, + class: normalizeClass([$data.prefixCls + "-header"]) + }, [ + renderSlot(_ctx.$slots, "header", {}, () => [ + createElementVNode("div", { + class: normalizeClass([$data.prefixCls + "-header-inner"]) + }, toDisplayString($props.title), 3) + ]) + ], 2)) : createCommentVNode("", true), + createElementVNode("div", { + class: normalizeClass([$data.prefixCls + "-body"]), + style: normalizeStyle($props.styles) + }, [ + renderSlot(_ctx.$slots, "default") + ], 6) + ], 2), + $props.draggable && ($props.placement === "left" || $props.placement === "right") ? (openBlock(), createElementBlock("div", { + key: 0, + class: normalizeClass(["ivu-drawer-drag", "ivu-drawer-drag-" + $props.placement]), + onMousedown: _cache[2] || (_cache[2] = (...args) => $options.handleTriggerMousedown && $options.handleTriggerMousedown(...args)) + }, [ + renderSlot(_ctx.$slots, "trigger", {}, () => [ + _hoisted_2$v + ]) + ], 34)) : createCommentVNode("", true) + ], 6), [ + [vShow, $data.visible] + ]) + ]), + _: 3 + }, 8, ["name"]) + ], 6) + ], 512) + ], 8, ["disabled"]); +} +var Drawer = /* @__PURE__ */ _export_sfc(_sfc_main$1o, [["render", _sfc_render$1b]]); +const prefixCls$G = "ivu-dropdown-item"; +const _sfc_main$1n = { + name: "DropdownItem", + props: { + name: { + type: [String, Number] + }, + disabled: { + type: Boolean, + default: false + }, + selected: { + type: Boolean, + default: false + }, + divided: { + type: Boolean, + default: false + } + }, + computed: { + classes() { + return [ + `${prefixCls$G}`, + { + [`${prefixCls$G}-disabled`]: this.disabled, + [`${prefixCls$G}-selected`]: this.selected, + [`${prefixCls$G}-divided`]: this.divided + } + ]; + } + }, + methods: { + handleClick() { + if (this.disabled) + return; + const $parent = findComponentUpward(this, "Dropdown"); + const hasChildren = this.$parent && this.$parent.$options.name === "Dropdown"; + if (hasChildren) { + this.$parent.handleHaschildClick(); + } else { + if ($parent && $parent.$options.name === "Dropdown") { + $parent.handleHoverClick(); + } + } + $parent.handleItemClick(this.name); + } + } +}; +function _sfc_render$1a(_ctx, _cache, $props, $setup, $data, $options) { + return openBlock(), createElementBlock("li", { + class: normalizeClass($options.classes), + onClick: _cache[0] || (_cache[0] = (...args) => $options.handleClick && $options.handleClick(...args)) + }, [ + renderSlot(_ctx.$slots, "default") + ], 2); +} +var DropdownItem = /* @__PURE__ */ _export_sfc(_sfc_main$1n, [["render", _sfc_render$1a]]); +const getStrFullLength = (str = "") => str.split("").reduce((pre, cur) => { + const charCode = cur.charCodeAt(0); + if (charCode >= 0 && charCode <= 128) { + return pre + 1; + } + return pre + 2; +}, 0); +const cutStrByFullLength = (str = "", maxLength) => { + let showLength = 0; + return str.split("").reduce((pre, cur) => { + const charCode = cur.charCodeAt(0); + if (charCode >= 0 && charCode <= 128) { + showLength += 1; + } else { + showLength += 2; + } + if (showLength <= maxLength) { + return pre + cur; + } + return pre; + }, ""); +}; +const _sfc_main$1m = { + name: "Ellipsis", + components: { Tooltip }, + emits: ["on-show", "on-hide"], + props: { + text: { + type: String + }, + height: { + type: Number + }, + lines: { + type: Number + }, + length: { + type: Number + }, + fullWidthRecognition: { + type: Boolean, + default: false + }, + autoResize: { + type: Boolean, + default: false + }, + disabled: { + type: Boolean, + default: false + }, + tooltip: { + type: Boolean, + default: false + }, + transfer: { + type: Boolean, + default() { + const global2 = getCurrentInstance().appContext.config.globalProperties; + return !global2.$VIEWUI || global2.$VIEWUI.transfer === "" ? false : global2.$VIEWUI.transfer; + } + }, + theme: { + validator(value) { + return oneOf(value, ["dark", "light"]); + }, + default: "dark" + }, + maxWidth: { + type: [String, Number], + default: 250 + }, + placement: { + validator(value) { + return oneOf(value, ["top", "top-start", "top-end", "bottom", "bottom-start", "bottom-end", "left", "left-start", "left-end", "right", "right-start", "right-end"]); + }, + default: "bottom" + } + }, + data() { + return { + oversize: false, + computedReady: false, + computedText: "" + }; + }, + watch: { + disabled() { + this.init(); + }, + text() { + this.init(); + }, + height() { + this.init(); + } + }, + mounted() { + this.init(); + }, + methods: { + init() { + if (!this.disabled) { + this.computeText(); + this.limitShow(); + } + }, + computeText() { + this.oversize = false; + this.computedReady = false; + nextTick(() => { + let $text = this.$refs.text; + let $el = this.$el; + let $more = this.$refs.more; + let n = 1e3; + let text = this.text; + let height2 = this.height; + if (!height2 && this.lines) { + const lineHeight = parseInt(getStyle($el, "lineHeight"), 10); + height2 = lineHeight * this.lines; + } + if ($text) { + if (this.length) { + const textLength = this.fullWidthRecognition ? getStrFullLength(text) : text.length; + if (textLength > this.length) { + this.oversize = true; + $more.style.display = "inline-block"; + text = this.fullWidthRecognition ? cutStrByFullLength(text, this.length) : text.slice(0, this.length); + } + } else { + if ($el.offsetHeight > height2) { + this.oversize = true; + $more.style.display = "inline-block"; + while ($el.offsetHeight > height2 && n > 0) { + if ($el.offsetHeight > height2 * 3) { + $text.innerText = text = text.substring(0, Math.floor(text.length / 2)); + } else { + $text.innerText = text = text.substring(0, text.length - 1); + } + n--; + } + } + } + } + this.computedText = text; + }); + }, + limitShow() { + this.computedReady = true; + nextTick(() => { + let $text = this.$refs.text; + let $el = this.$el; + if ($text) { + $text.innerText = this.computedText; + if ($el.offsetHeight > this.height) { + this.$emit("on-hide"); + } else { + this.$emit("on-show"); + } + } + }); + } + } +}; +const _hoisted_1$J = { class: "ivu-ellipsis" }; +const _hoisted_2$u = { + class: "ivu-ellipsis-more", + ref: "more" +}; +const _hoisted_3$q = { + class: "ivu-ellipsis-more", + ref: "more" +}; +const _hoisted_4$l = { + key: 1, + class: "ivu-ellipsis-hidden" +}; +const _hoisted_5$d = { + class: "ivu-ellipsis-more", + ref: "more" +}; +function _sfc_render$19(_ctx, _cache, $props, $setup, $data, $options) { + const _component_Tooltip = resolveComponent("Tooltip"); + return openBlock(), createElementBlock("div", _hoisted_1$J, [ + renderSlot(_ctx.$slots, "prefix", { class: "ivu-ellipsis-prefix" }), + $data.computedReady ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [ + $props.tooltip ? (openBlock(), createBlock(_component_Tooltip, { + key: 0, + content: $props.text, + theme: $props.theme, + "max-width": $props.maxWidth, + placement: $props.placement, + transfer: $props.transfer + }, { + default: withCtx(() => [ + createElementVNode("span", { + class: "ivu-ellipsis-text", + ref: "text" + }, toDisplayString($props.text), 513), + withDirectives(createElementVNode("span", _hoisted_2$u, [ + renderSlot(_ctx.$slots, "more", {}, () => [ + createTextVNode("...") + ]) + ], 512), [ + [vShow, $data.oversize] + ]), + renderSlot(_ctx.$slots, "suffix", { class: "ivu-ellipsis-suffix" }) + ]), + _: 3 + }, 8, ["content", "theme", "max-width", "placement", "transfer"])) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [ + createElementVNode("span", { + class: "ivu-ellipsis-text", + ref: "text" + }, toDisplayString($props.text), 513), + withDirectives(createElementVNode("span", _hoisted_3$q, [ + renderSlot(_ctx.$slots, "more", {}, () => [ + createTextVNode("...") + ]) + ], 512), [ + [vShow, $data.oversize] + ]), + renderSlot(_ctx.$slots, "suffix", { class: "ivu-ellipsis-suffix" }) + ], 64)) + ], 64)) : (openBlock(), createElementBlock("div", _hoisted_4$l, [ + createElementVNode("span", { + class: "ivu-ellipsis-text", + ref: "text" + }, toDisplayString($props.text), 513), + withDirectives(createElementVNode("span", _hoisted_5$d, [ + renderSlot(_ctx.$slots, "more", {}, () => [ + createTextVNode("...") + ]) + ], 512), [ + [vShow, $data.oversize] + ]), + renderSlot(_ctx.$slots, "suffix", { class: "ivu-ellipsis-suffix" }) + ])) + ]); +} +var Ellipsis = /* @__PURE__ */ _export_sfc(_sfc_main$1m, [["render", _sfc_render$19]]); +const _sfc_main$1l = { + name: "Email", + mixins: [LoginItem], + data() { + return { + className: "ivu-login-mail", + prefix: "ios-mail-outline", + placeholder: "\u8BF7\u8F93\u5165\u90AE\u7BB1", + type: "email" + }; + }, + props: { + rules: { + type: [Object, Array], + default() { + return [ + { + required: true, + message: defaultValidateMessage["Email"], + trigger: "change" + }, + { + type: "email", + message: "\u8F93\u5165\u7684\u90AE\u7BB1\u683C\u5F0F\u4E0D\u6B63\u786E\uFF01", + trigger: "change" + } + ]; + } + } + } +}; +var typeConfig = { + 403: { + img: "https://file.iviewui.com/iview-pro/icon-403.svg", + imgColor: "https://file.iviewui.com/iview-pro/icon-403-color.svg", + title: "403", + desc: "\u62B1\u6B49\uFF0C\u4F60\u65E0\u6743\u8BBF\u95EE\u8BE5\u9875\u9762" + }, + 404: { + img: "https://file.iviewui.com/iview-pro/icon-404.svg", + imgColor: "https://file.iviewui.com/iview-pro/icon-404-color.svg", + title: "404", + desc: "\u62B1\u6B49\uFF0C\u4F60\u8BBF\u95EE\u7684\u9875\u9762\u4E0D\u5B58\u5728" + }, + 500: { + img: "https://file.iviewui.com/iview-pro/icon-500.svg", + imgColor: "https://file.iviewui.com/iview-pro/icon-500-color.svg", + title: "500", + desc: "\u62B1\u6B49\uFF0C\u670D\u52A1\u5668\u51FA\u9519\u4E86" + } +}; +const _sfc_main$1k = { + name: "Exception", + components: { Button: _sfc_main$2c }, + props: { + type: { + validator(value) { + return oneOf(value, ["403", "404", "500", 403, 404, 500]); + }, + default: "404" + }, + title: { + type: String + }, + desc: { + type: String + }, + img: { + type: String + }, + imgColor: { + type: Boolean, + default: false + }, + backText: { + type: String, + default: "\u8FD4\u56DE\u9996\u9875" + }, + redirect: { + type: String, + default: "/" + } + }, + computed: { + imgPath() { + return this.img ? this.img : this.imgColor ? typeConfig[this.type].imgColor : typeConfig[this.type].img; + }, + titleText() { + return this.title ? this.title : typeConfig[this.type].title; + }, + descText() { + return this.desc ? this.desc : typeConfig[this.type].desc; + } + } +}; +const _hoisted_1$I = { class: "ivu-exception" }; +const _hoisted_2$t = { class: "ivu-exception-img" }; +const _hoisted_3$p = { class: "ivu-exception-content" }; +const _hoisted_4$k = { class: "ivu-exception-content-desc" }; +const _hoisted_5$c = { class: "ivu-exception-content-actions" }; +function _sfc_render$18(_ctx, _cache, $props, $setup, $data, $options) { + const _component_Button = resolveComponent("Button"); + return openBlock(), createElementBlock("div", _hoisted_1$I, [ + createElementVNode("div", _hoisted_2$t, [ + createElementVNode("div", { + class: "ivu-exception-img-element", + style: normalizeStyle({ "background-image": "url(" + $options.imgPath + ")" }) + }, null, 4) + ]), + createElementVNode("div", _hoisted_3$p, [ + createElementVNode("h1", null, [ + renderSlot(_ctx.$slots, "title", {}, () => [ + createTextVNode(toDisplayString($options.titleText), 1) + ]) + ]), + createElementVNode("div", _hoisted_4$k, [ + renderSlot(_ctx.$slots, "desc", {}, () => [ + createTextVNode(toDisplayString($options.descText), 1) + ]) + ]), + createElementVNode("div", _hoisted_5$c, [ + renderSlot(_ctx.$slots, "actions", {}, () => [ + createVNode(_component_Button, { + to: $props.redirect, + type: "primary", + size: "large" + }, { + default: withCtx(() => [ + createTextVNode(toDisplayString($props.backText), 1) + ]), + _: 1 + }, 8, ["to"]) + ]) + ]) + ]) + ]); +} +var Exception = /* @__PURE__ */ _export_sfc(_sfc_main$1k, [["render", _sfc_render$18]]); +const prefixCls$F = "ivu-layout"; +const _sfc_main$1j = { + name: "Footer", + computed: { + wrapClasses() { + return `${prefixCls$F}-footer`; + } + } +}; +function _sfc_render$17(_ctx, _cache, $props, $setup, $data, $options) { + return openBlock(), createElementBlock("div", { + class: normalizeClass($options.wrapClasses) + }, [ + renderSlot(_ctx.$slots, "default") + ], 2); +} +var Footer = /* @__PURE__ */ _export_sfc(_sfc_main$1j, [["render", _sfc_render$17]]); +const _sfc_main$1i = { + name: "FooterToolbar", + props: { + extra: { + type: String + } + } +}; +const _hoisted_1$H = { class: "ivu-footer-toolbar" }; +const _hoisted_2$s = { + key: 0, + class: "ivu-footer-toolbar-left" +}; +const _hoisted_3$o = { class: "ivu-footer-toolbar-right" }; +function _sfc_render$16(_ctx, _cache, $props, $setup, $data, $options) { + return openBlock(), createElementBlock("div", _hoisted_1$H, [ + $props.extra || _ctx.$slots.extra ? (openBlock(), createElementBlock("div", _hoisted_2$s, [ + renderSlot(_ctx.$slots, "extra", {}, () => [ + createTextVNode(toDisplayString($props.extra), 1) + ]) + ])) : createCommentVNode("", true), + createElementVNode("div", _hoisted_3$o, [ + renderSlot(_ctx.$slots, "default") + ]) + ]); +} +var FooterToolbar = /* @__PURE__ */ _export_sfc(_sfc_main$1i, [["render", _sfc_render$16]]); +const prefixCls$E = "ivu-form"; +const _sfc_main$1h = { + name: "iForm", + emits: ["on-validate"], + provide() { + return { + FormInstance: this + }; + }, + props: { + model: { + type: Object + }, + rules: { + type: Object + }, + labelWidth: { + type: Number + }, + labelPosition: { + validator(value) { + return oneOf(value, ["left", "right", "top"]); + }, + default: "right" + }, + inline: { + type: Boolean, + default: false + }, + showMessage: { + type: Boolean, + default: true + }, + autocomplete: { + validator(value) { + return oneOf(value, ["on", "off"]); + }, + default: "off" + }, + hideRequiredMark: { + type: Boolean, + default: false + }, + labelColon: { + type: [Boolean, String], + default: false + }, + disabled: { + type: Boolean, + default: false + } + }, + data() { + return { + fields: [] + }; + }, + computed: { + classes() { + return [ + `${prefixCls$E}`, + `${prefixCls$E}-label-${this.labelPosition}`, + { + [`${prefixCls$E}-inline`]: this.inline, + [`${prefixCls$E}-hide-required-mark`]: this.hideRequiredMark + } + ]; + }, + colon() { + let colon = ""; + if (this.labelColon) { + colon = typeof this.labelColon === "boolean" ? ":" : this.labelColon; + } + return colon; + } + }, + methods: { + resetFields() { + this.fields.forEach((field) => { + field.resetField(); + }); + }, + validate(callback) { + return new Promise((resolve) => { + let valid = true; + let count = 0; + if (this.fields.length === 0) { + resolve(valid); + if (typeof callback === "function") { + callback(valid); + } + } + this.fields.forEach((field) => { + field.validate("", (errors) => { + if (errors) { + valid = false; + } + if (++count === this.fields.length) { + resolve(valid); + if (typeof callback === "function") { + callback(valid); + } + } + }); + }); + }); + }, + validateField(prop2, cb) { + const field = this.fields.filter((field2) => field2.prop === prop2)[0]; + if (!field) { + throw new Error("[View UI warn]: must call validateField with valid prop string!"); + } + field.validate("", cb); + }, + addField(field) { + if (field) + this.fields.push(field); + }, + removeField(field) { + if (field.prop) + this.fields.splice(this.fields.indexOf(field), 1); + } + }, + watch: { + rules() { + this.validate(); + } + } +}; +const _hoisted_1$G = ["autocomplete"]; +function _sfc_render$15(_ctx, _cache, $props, $setup, $data, $options) { + return openBlock(), createElementBlock("form", { + class: normalizeClass($options.classes), + autocomplete: $props.autocomplete + }, [ + renderSlot(_ctx.$slots, "default") + ], 10, _hoisted_1$G); +} +var Form = /* @__PURE__ */ _export_sfc(_sfc_main$1h, [["render", _sfc_render$15]]); +const _sfc_main$1g = { + name: "GlobalFooter", + components: { Icon }, + props: { + links: { + type: Array, + default() { + return []; + } + }, + copyright: { + type: String + } + } +}; +const _hoisted_1$F = { class: "ivu-global-footer" }; +const _hoisted_2$r = { + key: 0, + class: "ivu-global-footer-links" +}; +const _hoisted_3$n = ["href", "target", "title"]; +const _hoisted_4$j = { + key: 1, + class: "ivu-global-footer-copyright" +}; +function _sfc_render$14(_ctx, _cache, $props, $setup, $data, $options) { + const _component_Icon = resolveComponent("Icon"); + return openBlock(), createElementBlock("footer", _hoisted_1$F, [ + $props.links.length || _ctx.$slots.links ? (openBlock(), createElementBlock("div", _hoisted_2$r, [ + renderSlot(_ctx.$slots, "links", {}, () => [ + (openBlock(true), createElementBlock(Fragment, null, renderList($props.links, (item) => { + return openBlock(), createElementBlock("a", { + href: item.href, + target: item.blankTarget ? "_blank" : "_self", + key: item.key, + title: item.title + }, [ + item.icon ? (openBlock(), createBlock(_component_Icon, { + key: 0, + type: item.icon + }, null, 8, ["type"])) : item.customIcon ? (openBlock(), createBlock(_component_Icon, { + key: 1, + custom: item.customIcon + }, null, 8, ["custom"])) : createCommentVNode("", true), + createTextVNode(" " + toDisplayString(item.title), 1) + ], 8, _hoisted_3$n); + }), 128)) + ]) + ])) : createCommentVNode("", true), + $props.copyright || _ctx.$slots.copyright ? (openBlock(), createElementBlock("div", _hoisted_4$j, [ + renderSlot(_ctx.$slots, "copyright", {}, () => [ + createTextVNode(toDisplayString($props.copyright), 1) + ]) + ])) : createCommentVNode("", true) + ]); +} +var GlobalFooter = /* @__PURE__ */ _export_sfc(_sfc_main$1g, [["render", _sfc_render$14]]); +var collectionUtils = { exports: {} }; +var utils$3 = collectionUtils.exports = {}; +utils$3.forEach = function(collection, callback) { + for (var i = 0; i < collection.length; i++) { + var result = callback(collection[i]); + if (result) { + return result; + } + } +}; +var elementUtils = function(options) { + var getState2 = options.stateHandler.getState; + function isDetectable(element) { + var state = getState2(element); + return state && !!state.isDetectable; + } + function markAsDetectable(element) { + getState2(element).isDetectable = true; + } + function isBusy(element) { + return !!getState2(element).busy; + } + function markBusy(element, busy) { + getState2(element).busy = !!busy; + } + return { + isDetectable, + markAsDetectable, + isBusy, + markBusy + }; +}; +var listenerHandler = function(idHandler2) { + var eventListeners = {}; + function getListeners(element) { + var id = idHandler2.get(element); + if (id === void 0) { + return []; + } + return eventListeners[id] || []; + } + function addListener(element, listener) { + var id = idHandler2.get(element); + if (!eventListeners[id]) { + eventListeners[id] = []; + } + eventListeners[id].push(listener); + } + function removeListener(element, listener) { + var listeners = getListeners(element); + for (var i = 0, len = listeners.length; i < len; ++i) { + if (listeners[i] === listener) { + listeners.splice(i, 1); + break; + } + } + } + function removeAllListeners(element) { + var listeners = getListeners(element); + if (!listeners) { + return; + } + listeners.length = 0; + } + return { + get: getListeners, + add: addListener, + removeListener, + removeAllListeners + }; +}; +var idGenerator = function() { + var idCount = 1; + function generate() { + return idCount++; + } + return { + generate + }; +}; +var idHandler = function(options) { + var idGenerator2 = options.idGenerator; + var getState2 = options.stateHandler.getState; + function getId(element) { + var state = getState2(element); + if (state && state.id !== void 0) { + return state.id; + } + return null; + } + function setId(element) { + var state = getState2(element); + if (!state) { + throw new Error("setId required the element to have a resize detection state."); + } + var id = idGenerator2.generate(); + state.id = id; + return id; + } + return { + get: getId, + set: setId + }; +}; +var reporter = function(quiet) { + function noop2() { + } + var reporter2 = { + log: noop2, + warn: noop2, + error: noop2 + }; + if (!quiet && window.console) { + var attachFunction = function(reporter3, name2) { + reporter3[name2] = function reporterProxy() { + var f = console[name2]; + if (f.apply) { + f.apply(console, arguments); + } else { + for (var i = 0; i < arguments.length; i++) { + f(arguments[i]); + } + } + }; + }; + attachFunction(reporter2, "log"); + attachFunction(reporter2, "warn"); + attachFunction(reporter2, "error"); + } + return reporter2; +}; +var browserDetector$2 = { exports: {} }; +var detector = browserDetector$2.exports = {}; +detector.isIE = function(version2) { + function isAnyIeVersion() { + var agent = navigator.userAgent.toLowerCase(); + return agent.indexOf("msie") !== -1 || agent.indexOf("trident") !== -1 || agent.indexOf(" edge/") !== -1; + } + if (!isAnyIeVersion()) { + return false; + } + if (!version2) { + return true; + } + var ieVersion = function() { + var undef, v = 3, div = document.createElement("div"), all = div.getElementsByTagName("i"); + do { + div.innerHTML = ""; + } while (all[0]); + return v > 4 ? v : undef; + }(); + return version2 === ieVersion; +}; +detector.isLegacyOpera = function() { + return !!window.opera; +}; +var utils$2 = { exports: {} }; +var utils$1 = utils$2.exports = {}; +utils$1.getOption = getOption$1; +function getOption$1(options, name2, defaultValue) { + var value = options[name2]; + if ((value === void 0 || value === null) && defaultValue !== void 0) { + return defaultValue; + } + return value; +} +var utils = utils$2.exports; +var batchProcessor = function batchProcessorMaker(options) { + options = options || {}; + var reporter2 = options.reporter; + var asyncProcess = utils.getOption(options, "async", true); + var autoProcess = utils.getOption(options, "auto", true); + if (autoProcess && !asyncProcess) { + reporter2 && reporter2.warn("Invalid options combination. auto=true and async=false is invalid. Setting async=true."); + asyncProcess = true; + } + var batch = Batch(); + var asyncFrameHandler; + var isProcessing = false; + function addFunction(level, fn) { + if (!isProcessing && autoProcess && asyncProcess && batch.size() === 0) { + processBatchAsync(); + } + batch.add(level, fn); + } + function processBatch() { + isProcessing = true; + while (batch.size()) { + var processingBatch = batch; + batch = Batch(); + processingBatch.process(); + } + isProcessing = false; + } + function forceProcessBatch(localAsyncProcess) { + if (isProcessing) { + return; + } + if (localAsyncProcess === void 0) { + localAsyncProcess = asyncProcess; + } + if (asyncFrameHandler) { + cancelFrame(asyncFrameHandler); + asyncFrameHandler = null; + } + if (localAsyncProcess) { + processBatchAsync(); + } else { + processBatch(); + } + } + function processBatchAsync() { + asyncFrameHandler = requestFrame(processBatch); + } + function cancelFrame(listener) { + var cancel = clearTimeout; + return cancel(listener); + } + function requestFrame(callback) { + var raf = function(fn) { + return setTimeout(fn, 0); + }; + return raf(callback); + } + return { + add: addFunction, + force: forceProcessBatch + }; +}; +function Batch() { + var batch = {}; + var size = 0; + var topLevel = 0; + var bottomLevel = 0; + function add(level, fn) { + if (!fn) { + fn = level; + level = 0; + } + if (level > topLevel) { + topLevel = level; + } else if (level < bottomLevel) { + bottomLevel = level; + } + if (!batch[level]) { + batch[level] = []; + } + batch[level].push(fn); + size++; + } + function process2() { + for (var level = bottomLevel; level <= topLevel; level++) { + var fns = batch[level]; + for (var i = 0; i < fns.length; i++) { + var fn = fns[i]; + fn(); + } + } + } + function getSize() { + return size; + } + return { + add, + process: process2, + size: getSize + }; +} +var prop = "_erd"; +function initState(element) { + element[prop] = {}; + return getState(element); +} +function getState(element) { + return element[prop]; +} +function cleanState(element) { + delete element[prop]; +} +var stateHandler$1 = { + initState, + getState, + cleanState +}; +var browserDetector$1 = browserDetector$2.exports; +var object2 = function(options) { + options = options || {}; + var reporter2 = options.reporter; + var batchProcessor2 = options.batchProcessor; + var getState2 = options.stateHandler.getState; + if (!reporter2) { + throw new Error("Missing required dependency: reporter."); + } + function addListener(element, listener) { + function listenerProxy() { + listener(element); + } + if (browserDetector$1.isIE(8)) { + getState2(element).object = { + proxy: listenerProxy + }; + element.attachEvent("onresize", listenerProxy); + } else { + var object3 = getObject(element); + if (!object3) { + throw new Error("Element is not detectable by this strategy."); + } + object3.contentDocument.defaultView.addEventListener("resize", listenerProxy); + } + } + function buildCssTextString(rules2) { + var seperator = options.important ? " !important; " : "; "; + return (rules2.join(seperator) + seperator).trim(); + } + function makeDetectable(options2, element, callback) { + if (!callback) { + callback = element; + element = options2; + options2 = null; + } + options2 = options2 || {}; + options2.debug; + function injectObject(element2, callback2) { + var OBJECT_STYLE = buildCssTextString(["display: block", "position: absolute", "top: 0", "left: 0", "width: 100%", "height: 100%", "border: none", "padding: 0", "margin: 0", "opacity: 0", "z-index: -1000", "pointer-events: none"]); + var positionCheckPerformed = false; + var style2 = window.getComputedStyle(element2); + var width = element2.offsetWidth; + var height2 = element2.offsetHeight; + getState2(element2).startSize = { + width, + height: height2 + }; + function mutateDom() { + function alterPositionStyles() { + if (style2.position === "static") { + element2.style.setProperty("position", "relative", options2.important ? "important" : ""); + var removeRelativeStyles = function(reporter3, element3, style3, property) { + function getNumericalValue(value2) { + return value2.replace(/[^-\d\.]/g, ""); + } + var value = style3[property]; + if (value !== "auto" && getNumericalValue(value) !== "0") { + reporter3.warn("An element that is positioned static has style." + property + "=" + value + " which is ignored due to the static positioning. The element will need to be positioned relative, so the style." + property + " will be set to 0. Element: ", element3); + element3.style.setProperty(property, "0", options2.important ? "important" : ""); + } + }; + removeRelativeStyles(reporter2, element2, style2, "top"); + removeRelativeStyles(reporter2, element2, style2, "right"); + removeRelativeStyles(reporter2, element2, style2, "bottom"); + removeRelativeStyles(reporter2, element2, style2, "left"); + } + } + function onObjectLoad() { + if (!positionCheckPerformed) { + alterPositionStyles(); + } + function getDocument(element3, callback3) { + if (!element3.contentDocument) { + var state = getState2(element3); + if (state.checkForObjectDocumentTimeoutId) { + window.clearTimeout(state.checkForObjectDocumentTimeoutId); + } + state.checkForObjectDocumentTimeoutId = setTimeout(function checkForObjectDocument() { + state.checkForObjectDocumentTimeoutId = 0; + getDocument(element3, callback3); + }, 100); + return; + } + callback3(element3.contentDocument); + } + var objectElement = this; + getDocument(objectElement, function onObjectDocumentReady(objectDocument) { + callback2(element2); + }); + } + if (style2.position !== "") { + alterPositionStyles(); + positionCheckPerformed = true; + } + var object3 = document.createElement("object"); + object3.style.cssText = OBJECT_STYLE; + object3.tabIndex = -1; + object3.type = "text/html"; + object3.setAttribute("aria-hidden", "true"); + object3.onload = onObjectLoad; + if (!browserDetector$1.isIE()) { + object3.data = "about:blank"; + } + if (!getState2(element2)) { + return; + } + element2.appendChild(object3); + getState2(element2).object = object3; + if (browserDetector$1.isIE()) { + object3.data = "about:blank"; + } + } + if (batchProcessor2) { + batchProcessor2.add(mutateDom); + } else { + mutateDom(); + } + } + if (browserDetector$1.isIE(8)) { + callback(element); + } else { + injectObject(element, callback); + } + } + function getObject(element) { + return getState2(element).object; + } + function uninstall(element) { + if (!getState2(element)) { + return; + } + var object3 = getObject(element); + if (!object3) { + return; + } + if (browserDetector$1.isIE(8)) { + element.detachEvent("onresize", object3.proxy); + } else { + element.removeChild(object3); + } + if (getState2(element).checkForObjectDocumentTimeoutId) { + window.clearTimeout(getState2(element).checkForObjectDocumentTimeoutId); + } + delete getState2(element).object; + } + return { + makeDetectable, + addListener, + uninstall + }; +}; +var forEach$1 = collectionUtils.exports.forEach; +var scroll = function(options) { + options = options || {}; + var reporter2 = options.reporter; + var batchProcessor2 = options.batchProcessor; + var getState2 = options.stateHandler.getState; + options.stateHandler.hasState; + var idHandler2 = options.idHandler; + if (!batchProcessor2) { + throw new Error("Missing required dependency: batchProcessor"); + } + if (!reporter2) { + throw new Error("Missing required dependency: reporter."); + } + var scrollbarSizes = getScrollbarSizes(); + var styleId = "erd_scroll_detection_scrollbar_style"; + var detectionContainerClass = "erd_scroll_detection_container"; + function initDocument(targetDocument) { + injectScrollStyle(targetDocument, styleId, detectionContainerClass); + } + initDocument(window.document); + function buildCssTextString(rules2) { + var seperator = options.important ? " !important; " : "; "; + return (rules2.join(seperator) + seperator).trim(); + } + function getScrollbarSizes() { + var width = 500; + var height2 = 500; + var child = document.createElement("div"); + child.style.cssText = buildCssTextString(["position: absolute", "width: " + width * 2 + "px", "height: " + height2 * 2 + "px", "visibility: hidden", "margin: 0", "padding: 0"]); + var container = document.createElement("div"); + container.style.cssText = buildCssTextString(["position: absolute", "width: " + width + "px", "height: " + height2 + "px", "overflow: scroll", "visibility: none", "top: " + -width * 3 + "px", "left: " + -height2 * 3 + "px", "visibility: hidden", "margin: 0", "padding: 0"]); + container.appendChild(child); + document.body.insertBefore(container, document.body.firstChild); + var widthSize = width - container.clientWidth; + var heightSize = height2 - container.clientHeight; + document.body.removeChild(container); + return { + width: widthSize, + height: heightSize + }; + } + function injectScrollStyle(targetDocument, styleId2, containerClass) { + function injectStyle(style3, method3) { + method3 = method3 || function(element) { + targetDocument.head.appendChild(element); + }; + var styleElement = targetDocument.createElement("style"); + styleElement.innerHTML = style3; + styleElement.id = styleId2; + method3(styleElement); + return styleElement; + } + if (!targetDocument.getElementById(styleId2)) { + var containerAnimationClass = containerClass + "_animation"; + var containerAnimationActiveClass = containerClass + "_animation_active"; + var style2 = "/* Created by the element-resize-detector library. */\n"; + style2 += "." + containerClass + " > div::-webkit-scrollbar { " + buildCssTextString(["display: none"]) + " }\n\n"; + style2 += "." + containerAnimationActiveClass + " { " + buildCssTextString(["-webkit-animation-duration: 0.1s", "animation-duration: 0.1s", "-webkit-animation-name: " + containerAnimationClass, "animation-name: " + containerAnimationClass]) + " }\n"; + style2 += "@-webkit-keyframes " + containerAnimationClass + " { 0% { opacity: 1; } 50% { opacity: 0; } 100% { opacity: 1; } }\n"; + style2 += "@keyframes " + containerAnimationClass + " { 0% { opacity: 1; } 50% { opacity: 0; } 100% { opacity: 1; } }"; + injectStyle(style2); + } + } + function addAnimationClass(element) { + element.className += " " + detectionContainerClass + "_animation_active"; + } + function addEvent(el, name2, cb) { + if (el.addEventListener) { + el.addEventListener(name2, cb); + } else if (el.attachEvent) { + el.attachEvent("on" + name2, cb); + } else { + return reporter2.error("[scroll] Don't know how to add event listeners."); + } + } + function removeEvent(el, name2, cb) { + if (el.removeEventListener) { + el.removeEventListener(name2, cb); + } else if (el.detachEvent) { + el.detachEvent("on" + name2, cb); + } else { + return reporter2.error("[scroll] Don't know how to remove event listeners."); + } + } + function getExpandElement(element) { + return getState2(element).container.childNodes[0].childNodes[0].childNodes[0]; + } + function getShrinkElement(element) { + return getState2(element).container.childNodes[0].childNodes[0].childNodes[1]; + } + function addListener(element, listener) { + var listeners = getState2(element).listeners; + if (!listeners.push) { + throw new Error("Cannot add listener to an element that is not detectable."); + } + getState2(element).listeners.push(listener); + } + function makeDetectable(options2, element, callback) { + if (!callback) { + callback = element; + element = options2; + options2 = null; + } + options2 = options2 || {}; + function debug() { + if (options2.debug) { + var args = Array.prototype.slice.call(arguments); + args.unshift(idHandler2.get(element), "Scroll: "); + if (reporter2.log.apply) { + reporter2.log.apply(null, args); + } else { + for (var i = 0; i < args.length; i++) { + reporter2.log(args[i]); + } + } + } + } + function isDetached(element2) { + function isInDocument(element3) { + var isInShadowRoot = element3.getRootNode && element3.getRootNode().contains(element3); + return element3 === element3.ownerDocument.body || element3.ownerDocument.body.contains(element3) || isInShadowRoot; + } + if (!isInDocument(element2)) { + return true; + } + if (window.getComputedStyle(element2) === null) { + return true; + } + return false; + } + function isUnrendered(element2) { + var container = getState2(element2).container.childNodes[0]; + var style2 = window.getComputedStyle(container); + return !style2.width || style2.width.indexOf("px") === -1; + } + function getStyle2() { + var elementStyle = window.getComputedStyle(element); + var style2 = {}; + style2.position = elementStyle.position; + style2.width = element.offsetWidth; + style2.height = element.offsetHeight; + style2.top = elementStyle.top; + style2.right = elementStyle.right; + style2.bottom = elementStyle.bottom; + style2.left = elementStyle.left; + style2.widthCSS = elementStyle.width; + style2.heightCSS = elementStyle.height; + return style2; + } + function storeStartSize() { + var style2 = getStyle2(); + getState2(element).startSize = { + width: style2.width, + height: style2.height + }; + debug("Element start size", getState2(element).startSize); + } + function initListeners() { + getState2(element).listeners = []; + } + function storeStyle() { + debug("storeStyle invoked."); + if (!getState2(element)) { + debug("Aborting because element has been uninstalled"); + return; + } + var style2 = getStyle2(); + getState2(element).style = style2; + } + function storeCurrentSize(element2, width, height2) { + getState2(element2).lastWidth = width; + getState2(element2).lastHeight = height2; + } + function getExpandChildElement(element2) { + return getExpandElement(element2).childNodes[0]; + } + function getWidthOffset() { + return 2 * scrollbarSizes.width + 1; + } + function getHeightOffset() { + return 2 * scrollbarSizes.height + 1; + } + function getExpandWidth(width) { + return width + 10 + getWidthOffset(); + } + function getExpandHeight(height2) { + return height2 + 10 + getHeightOffset(); + } + function getShrinkWidth(width) { + return width * 2 + getWidthOffset(); + } + function getShrinkHeight(height2) { + return height2 * 2 + getHeightOffset(); + } + function positionScrollbars(element2, width, height2) { + var expand = getExpandElement(element2); + var shrink = getShrinkElement(element2); + var expandWidth = getExpandWidth(width); + var expandHeight = getExpandHeight(height2); + var shrinkWidth = getShrinkWidth(width); + var shrinkHeight = getShrinkHeight(height2); + expand.scrollLeft = expandWidth; + expand.scrollTop = expandHeight; + shrink.scrollLeft = shrinkWidth; + shrink.scrollTop = shrinkHeight; + } + function injectContainerElement() { + var container = getState2(element).container; + if (!container) { + container = document.createElement("div"); + container.className = detectionContainerClass; + container.style.cssText = buildCssTextString(["visibility: hidden", "display: inline", "width: 0px", "height: 0px", "z-index: -1", "overflow: hidden", "margin: 0", "padding: 0"]); + getState2(element).container = container; + addAnimationClass(container); + element.appendChild(container); + var onAnimationStart = function() { + getState2(element).onRendered && getState2(element).onRendered(); + }; + addEvent(container, "animationstart", onAnimationStart); + getState2(element).onAnimationStart = onAnimationStart; + } + return container; + } + function injectScrollElements() { + function alterPositionStyles() { + var style2 = getState2(element).style; + if (style2.position === "static") { + element.style.setProperty("position", "relative", options2.important ? "important" : ""); + var removeRelativeStyles = function(reporter3, element2, style3, property) { + function getNumericalValue(value2) { + return value2.replace(/[^-\d\.]/g, ""); + } + var value = style3[property]; + if (value !== "auto" && getNumericalValue(value) !== "0") { + reporter3.warn("An element that is positioned static has style." + property + "=" + value + " which is ignored due to the static positioning. The element will need to be positioned relative, so the style." + property + " will be set to 0. Element: ", element2); + element2.style[property] = 0; + } + }; + removeRelativeStyles(reporter2, element, style2, "top"); + removeRelativeStyles(reporter2, element, style2, "right"); + removeRelativeStyles(reporter2, element, style2, "bottom"); + removeRelativeStyles(reporter2, element, style2, "left"); + } + } + function getLeftTopBottomRightCssText(left, top2, bottom, right) { + left = !left ? "0" : left + "px"; + top2 = !top2 ? "0" : top2 + "px"; + bottom = !bottom ? "0" : bottom + "px"; + right = !right ? "0" : right + "px"; + return ["left: " + left, "top: " + top2, "right: " + right, "bottom: " + bottom]; + } + debug("Injecting elements"); + if (!getState2(element)) { + debug("Aborting because element has been uninstalled"); + return; + } + alterPositionStyles(); + var rootContainer = getState2(element).container; + if (!rootContainer) { + rootContainer = injectContainerElement(); + } + var scrollbarWidth = scrollbarSizes.width; + var scrollbarHeight = scrollbarSizes.height; + var containerContainerStyle = buildCssTextString(["position: absolute", "flex: none", "overflow: hidden", "z-index: -1", "visibility: hidden", "width: 100%", "height: 100%", "left: 0px", "top: 0px"]); + var containerStyle = buildCssTextString(["position: absolute", "flex: none", "overflow: hidden", "z-index: -1", "visibility: hidden"].concat(getLeftTopBottomRightCssText(-(1 + scrollbarWidth), -(1 + scrollbarHeight), -scrollbarHeight, -scrollbarWidth))); + var expandStyle = buildCssTextString(["position: absolute", "flex: none", "overflow: scroll", "z-index: -1", "visibility: hidden", "width: 100%", "height: 100%"]); + var shrinkStyle = buildCssTextString(["position: absolute", "flex: none", "overflow: scroll", "z-index: -1", "visibility: hidden", "width: 100%", "height: 100%"]); + var expandChildStyle = buildCssTextString(["position: absolute", "left: 0", "top: 0"]); + var shrinkChildStyle = buildCssTextString(["position: absolute", "width: 200%", "height: 200%"]); + var containerContainer = document.createElement("div"); + var container = document.createElement("div"); + var expand = document.createElement("div"); + var expandChild = document.createElement("div"); + var shrink = document.createElement("div"); + var shrinkChild = document.createElement("div"); + containerContainer.dir = "ltr"; + containerContainer.style.cssText = containerContainerStyle; + containerContainer.className = detectionContainerClass; + container.className = detectionContainerClass; + container.style.cssText = containerStyle; + expand.style.cssText = expandStyle; + expandChild.style.cssText = expandChildStyle; + shrink.style.cssText = shrinkStyle; + shrinkChild.style.cssText = shrinkChildStyle; + expand.appendChild(expandChild); + shrink.appendChild(shrinkChild); + container.appendChild(expand); + container.appendChild(shrink); + containerContainer.appendChild(container); + rootContainer.appendChild(containerContainer); + function onExpandScroll() { + var state = getState2(element); + if (state && state.onExpand) { + state.onExpand(); + } else { + debug("Aborting expand scroll handler: element has been uninstalled"); + } + } + function onShrinkScroll() { + var state = getState2(element); + if (state && state.onShrink) { + state.onShrink(); + } else { + debug("Aborting shrink scroll handler: element has been uninstalled"); + } + } + addEvent(expand, "scroll", onExpandScroll); + addEvent(shrink, "scroll", onShrinkScroll); + getState2(element).onExpandScroll = onExpandScroll; + getState2(element).onShrinkScroll = onShrinkScroll; + } + function registerListenersAndPositionElements() { + function updateChildSizes(element2, width, height2) { + var expandChild = getExpandChildElement(element2); + var expandWidth = getExpandWidth(width); + var expandHeight = getExpandHeight(height2); + expandChild.style.setProperty("width", expandWidth + "px", options2.important ? "important" : ""); + expandChild.style.setProperty("height", expandHeight + "px", options2.important ? "important" : ""); + } + function updateDetectorElements(done) { + var width = element.offsetWidth; + var height2 = element.offsetHeight; + var sizeChanged = width !== getState2(element).lastWidth || height2 !== getState2(element).lastHeight; + debug("Storing current size", width, height2); + storeCurrentSize(element, width, height2); + batchProcessor2.add(0, function performUpdateChildSizes() { + if (!sizeChanged) { + return; + } + if (!getState2(element)) { + debug("Aborting because element has been uninstalled"); + return; + } + if (!areElementsInjected()) { + debug("Aborting because element container has not been initialized"); + return; + } + if (options2.debug) { + var w = element.offsetWidth; + var h2 = element.offsetHeight; + if (w !== width || h2 !== height2) { + reporter2.warn(idHandler2.get(element), "Scroll: Size changed before updating detector elements."); + } + } + updateChildSizes(element, width, height2); + }); + batchProcessor2.add(1, function updateScrollbars() { + if (!getState2(element)) { + debug("Aborting because element has been uninstalled"); + return; + } + if (!areElementsInjected()) { + debug("Aborting because element container has not been initialized"); + return; + } + positionScrollbars(element, width, height2); + }); + if (sizeChanged && done) { + batchProcessor2.add(2, function() { + if (!getState2(element)) { + debug("Aborting because element has been uninstalled"); + return; + } + if (!areElementsInjected()) { + debug("Aborting because element container has not been initialized"); + return; + } + done(); + }); + } + } + function areElementsInjected() { + return !!getState2(element).container; + } + function notifyListenersIfNeeded() { + function isFirstNotify() { + return getState2(element).lastNotifiedWidth === void 0; + } + debug("notifyListenersIfNeeded invoked"); + var state = getState2(element); + if (isFirstNotify() && state.lastWidth === state.startSize.width && state.lastHeight === state.startSize.height) { + return debug("Not notifying: Size is the same as the start size, and there has been no notification yet."); + } + if (state.lastWidth === state.lastNotifiedWidth && state.lastHeight === state.lastNotifiedHeight) { + return debug("Not notifying: Size already notified"); + } + debug("Current size not notified, notifying..."); + state.lastNotifiedWidth = state.lastWidth; + state.lastNotifiedHeight = state.lastHeight; + forEach$1(getState2(element).listeners, function(listener) { + listener(element); + }); + } + function handleRender() { + debug("startanimation triggered."); + if (isUnrendered(element)) { + debug("Ignoring since element is still unrendered..."); + return; + } + debug("Element rendered."); + var expand = getExpandElement(element); + var shrink = getShrinkElement(element); + if (expand.scrollLeft === 0 || expand.scrollTop === 0 || shrink.scrollLeft === 0 || shrink.scrollTop === 0) { + debug("Scrollbars out of sync. Updating detector elements..."); + updateDetectorElements(notifyListenersIfNeeded); + } + } + function handleScroll() { + debug("Scroll detected."); + if (isUnrendered(element)) { + debug("Scroll event fired while unrendered. Ignoring..."); + return; + } + updateDetectorElements(notifyListenersIfNeeded); + } + debug("registerListenersAndPositionElements invoked."); + if (!getState2(element)) { + debug("Aborting because element has been uninstalled"); + return; + } + getState2(element).onRendered = handleRender; + getState2(element).onExpand = handleScroll; + getState2(element).onShrink = handleScroll; + var style2 = getState2(element).style; + updateChildSizes(element, style2.width, style2.height); + } + function finalizeDomMutation() { + debug("finalizeDomMutation invoked."); + if (!getState2(element)) { + debug("Aborting because element has been uninstalled"); + return; + } + var style2 = getState2(element).style; + storeCurrentSize(element, style2.width, style2.height); + positionScrollbars(element, style2.width, style2.height); + } + function ready() { + callback(element); + } + function install2() { + debug("Installing..."); + initListeners(); + storeStartSize(); + batchProcessor2.add(0, storeStyle); + batchProcessor2.add(1, injectScrollElements); + batchProcessor2.add(2, registerListenersAndPositionElements); + batchProcessor2.add(3, finalizeDomMutation); + batchProcessor2.add(4, ready); + } + debug("Making detectable..."); + if (isDetached(element)) { + debug("Element is detached"); + injectContainerElement(); + debug("Waiting until element is attached..."); + getState2(element).onRendered = function() { + debug("Element is now attached"); + install2(); + }; + } else { + install2(); + } + } + function uninstall(element) { + var state = getState2(element); + if (!state) { + return; + } + state.onExpandScroll && removeEvent(getExpandElement(element), "scroll", state.onExpandScroll); + state.onShrinkScroll && removeEvent(getShrinkElement(element), "scroll", state.onShrinkScroll); + state.onAnimationStart && removeEvent(state.container, "animationstart", state.onAnimationStart); + state.container && element.removeChild(state.container); + } + return { + makeDetectable, + addListener, + uninstall, + initDocument + }; +}; +var forEach = collectionUtils.exports.forEach; +var elementUtilsMaker = elementUtils; +var listenerHandlerMaker = listenerHandler; +var idGeneratorMaker = idGenerator; +var idHandlerMaker = idHandler; +var reporterMaker = reporter; +var browserDetector = browserDetector$2.exports; +var batchProcessorMaker2 = batchProcessor; +var stateHandler = stateHandler$1; +var objectStrategyMaker = object2; +var scrollStrategyMaker = scroll; +function isCollection(obj) { + return Array.isArray(obj) || obj.length !== void 0; +} +function toArray(collection) { + if (!Array.isArray(collection)) { + var array3 = []; + forEach(collection, function(obj) { + array3.push(obj); + }); + return array3; + } else { + return collection; + } +} +function isElement$1(obj) { + return obj && obj.nodeType === 1; +} +var elementResizeDetector = function(options) { + options = options || {}; + var idHandler2; + if (options.idHandler) { + idHandler2 = { + get: function(element) { + return options.idHandler.get(element, true); + }, + set: options.idHandler.set + }; + } else { + var idGenerator2 = idGeneratorMaker(); + var defaultIdHandler = idHandlerMaker({ + idGenerator: idGenerator2, + stateHandler + }); + idHandler2 = defaultIdHandler; + } + var reporter2 = options.reporter; + if (!reporter2) { + var quiet = reporter2 === false; + reporter2 = reporterMaker(quiet); + } + var batchProcessor2 = getOption(options, "batchProcessor", batchProcessorMaker2({ reporter: reporter2 })); + var globalOptions = {}; + globalOptions.callOnAdd = !!getOption(options, "callOnAdd", true); + globalOptions.debug = !!getOption(options, "debug", false); + var eventListenerHandler = listenerHandlerMaker(idHandler2); + var elementUtils2 = elementUtilsMaker({ + stateHandler + }); + var detectionStrategy; + var desiredStrategy = getOption(options, "strategy", "object"); + var importantCssRules = getOption(options, "important", false); + var strategyOptions = { + reporter: reporter2, + batchProcessor: batchProcessor2, + stateHandler, + idHandler: idHandler2, + important: importantCssRules + }; + if (desiredStrategy === "scroll") { + if (browserDetector.isLegacyOpera()) { + reporter2.warn("Scroll strategy is not supported on legacy Opera. Changing to object strategy."); + desiredStrategy = "object"; + } else if (browserDetector.isIE(9)) { + reporter2.warn("Scroll strategy is not supported on IE9. Changing to object strategy."); + desiredStrategy = "object"; + } + } + if (desiredStrategy === "scroll") { + detectionStrategy = scrollStrategyMaker(strategyOptions); + } else if (desiredStrategy === "object") { + detectionStrategy = objectStrategyMaker(strategyOptions); + } else { + throw new Error("Invalid strategy name: " + desiredStrategy); + } + var onReadyCallbacks = {}; + function listenTo(options2, elements, listener) { + function onResizeCallback(element) { + var listeners = eventListenerHandler.get(element); + forEach(listeners, function callListenerProxy(listener2) { + listener2(element); + }); + } + function addListener(callOnAdd2, element, listener2) { + eventListenerHandler.add(element, listener2); + if (callOnAdd2) { + listener2(element); + } + } + if (!listener) { + listener = elements; + elements = options2; + options2 = {}; + } + if (!elements) { + throw new Error("At least one element required."); + } + if (!listener) { + throw new Error("Listener required."); + } + if (isElement$1(elements)) { + elements = [elements]; + } else if (isCollection(elements)) { + elements = toArray(elements); + } else { + return reporter2.error("Invalid arguments. Must be a DOM element or a collection of DOM elements."); + } + var elementsReady = 0; + var callOnAdd = getOption(options2, "callOnAdd", globalOptions.callOnAdd); + var onReadyCallback = getOption(options2, "onReady", function noop2() { + }); + var debug = getOption(options2, "debug", globalOptions.debug); + forEach(elements, function attachListenerToElement(element) { + if (!stateHandler.getState(element)) { + stateHandler.initState(element); + idHandler2.set(element); + } + var id = idHandler2.get(element); + debug && reporter2.log("Attaching listener to element", id, element); + if (!elementUtils2.isDetectable(element)) { + debug && reporter2.log(id, "Not detectable."); + if (elementUtils2.isBusy(element)) { + debug && reporter2.log(id, "System busy making it detectable"); + addListener(callOnAdd, element, listener); + onReadyCallbacks[id] = onReadyCallbacks[id] || []; + onReadyCallbacks[id].push(function onReady() { + elementsReady++; + if (elementsReady === elements.length) { + onReadyCallback(); + } + }); + return; + } + debug && reporter2.log(id, "Making detectable..."); + elementUtils2.markBusy(element, true); + return detectionStrategy.makeDetectable({ debug, important: importantCssRules }, element, function onElementDetectable(element2) { + debug && reporter2.log(id, "onElementDetectable"); + if (stateHandler.getState(element2)) { + elementUtils2.markAsDetectable(element2); + elementUtils2.markBusy(element2, false); + detectionStrategy.addListener(element2, onResizeCallback); + addListener(callOnAdd, element2, listener); + var state = stateHandler.getState(element2); + if (state && state.startSize) { + var width = element2.offsetWidth; + var height2 = element2.offsetHeight; + if (state.startSize.width !== width || state.startSize.height !== height2) { + onResizeCallback(element2); + } + } + if (onReadyCallbacks[id]) { + forEach(onReadyCallbacks[id], function(callback) { + callback(); + }); + } + } else { + debug && reporter2.log(id, "Element uninstalled before being detectable."); + } + delete onReadyCallbacks[id]; + elementsReady++; + if (elementsReady === elements.length) { + onReadyCallback(); + } + }); + } + debug && reporter2.log(id, "Already detecable, adding listener."); + addListener(callOnAdd, element, listener); + elementsReady++; + }); + if (elementsReady === elements.length) { + onReadyCallback(); + } + } + function uninstall(elements) { + if (!elements) { + return reporter2.error("At least one element is required."); + } + if (isElement$1(elements)) { + elements = [elements]; + } else if (isCollection(elements)) { + elements = toArray(elements); + } else { + return reporter2.error("Invalid arguments. Must be a DOM element or a collection of DOM elements."); + } + forEach(elements, function(element) { + eventListenerHandler.removeAllListeners(element); + detectionStrategy.uninstall(element); + stateHandler.cleanState(element); + }); + } + function initDocument(targetDocument) { + detectionStrategy.initDocument && detectionStrategy.initDocument(targetDocument); + } + return { + listenTo, + removeListener: eventListenerHandler.removeListener, + removeAllListeners: eventListenerHandler.removeAllListeners, + uninstall, + initDocument + }; +}; +function getOption(options, name2, defaultValue) { + var value = options[name2]; + if ((value === void 0 || value === null) && defaultValue !== void 0) { + return defaultValue; + } + return value; +} +var FUNC_ERROR_TEXT = "Expected a function"; +var NAN = 0 / 0; +var symbolTag = "[object Symbol]"; +var reTrim = /^\s+|\s+$/g; +var reIsBadHex = /^[-+]0x[0-9a-f]+$/i; +var reIsBinary = /^0b[01]+$/i; +var reIsOctal = /^0o[0-7]+$/i; +var freeParseInt = parseInt; +var freeGlobal = typeof commonjsGlobal == "object" && commonjsGlobal && commonjsGlobal.Object === Object && commonjsGlobal; +var freeSelf = typeof self == "object" && self && self.Object === Object && self; +var root = freeGlobal || freeSelf || Function("return this")(); +var objectProto = Object.prototype; +var objectToString = objectProto.toString; +var nativeMax = Math.max, nativeMin = Math.min; +var now = function() { + return root.Date.now(); +}; +function debounce(func, wait, options) { + var lastArgs, lastThis, maxWait, result, timerId, lastCallTime, lastInvokeTime = 0, leading = false, maxing = false, trailing = true; + if (typeof func != "function") { + throw new TypeError(FUNC_ERROR_TEXT); + } + wait = toNumber(wait) || 0; + if (isObject(options)) { + leading = !!options.leading; + maxing = "maxWait" in options; + maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait; + trailing = "trailing" in options ? !!options.trailing : trailing; + } + function invokeFunc(time) { + var args = lastArgs, thisArg = lastThis; + lastArgs = lastThis = void 0; + lastInvokeTime = time; + result = func.apply(thisArg, args); + return result; + } + function leadingEdge(time) { + lastInvokeTime = time; + timerId = setTimeout(timerExpired, wait); + return leading ? invokeFunc(time) : result; + } + function remainingWait(time) { + var timeSinceLastCall = time - lastCallTime, timeSinceLastInvoke = time - lastInvokeTime, result2 = wait - timeSinceLastCall; + return maxing ? nativeMin(result2, maxWait - timeSinceLastInvoke) : result2; + } + function shouldInvoke(time) { + var timeSinceLastCall = time - lastCallTime, timeSinceLastInvoke = time - lastInvokeTime; + return lastCallTime === void 0 || timeSinceLastCall >= wait || timeSinceLastCall < 0 || maxing && timeSinceLastInvoke >= maxWait; + } + function timerExpired() { + var time = now(); + if (shouldInvoke(time)) { + return trailingEdge(time); + } + timerId = setTimeout(timerExpired, remainingWait(time)); + } + function trailingEdge(time) { + timerId = void 0; + if (trailing && lastArgs) { + return invokeFunc(time); + } + lastArgs = lastThis = void 0; + return result; + } + function cancel() { + if (timerId !== void 0) { + clearTimeout(timerId); + } + lastInvokeTime = 0; + lastArgs = lastCallTime = lastThis = timerId = void 0; + } + function flush() { + return timerId === void 0 ? result : trailingEdge(now()); + } + function debounced() { + var time = now(), isInvoking = shouldInvoke(time); + lastArgs = arguments; + lastThis = this; + lastCallTime = time; + if (isInvoking) { + if (timerId === void 0) { + return leadingEdge(lastCallTime); + } + if (maxing) { + timerId = setTimeout(timerExpired, wait); + return invokeFunc(lastCallTime); + } + } + if (timerId === void 0) { + timerId = setTimeout(timerExpired, wait); + } + return result; + } + debounced.cancel = cancel; + debounced.flush = flush; + return debounced; +} +function throttle(func, wait, options) { + var leading = true, trailing = true; + if (typeof func != "function") { + throw new TypeError(FUNC_ERROR_TEXT); + } + if (isObject(options)) { + leading = "leading" in options ? !!options.leading : leading; + trailing = "trailing" in options ? !!options.trailing : trailing; + } + return debounce(func, wait, { + "leading": leading, + "maxWait": wait, + "trailing": trailing + }); +} +function isObject(value) { + var type2 = typeof value; + return !!value && (type2 == "object" || type2 == "function"); +} +function isObjectLike(value) { + return !!value && typeof value == "object"; +} +function isSymbol(value) { + return typeof value == "symbol" || isObjectLike(value) && objectToString.call(value) == symbolTag; +} +function toNumber(value) { + if (typeof value == "number") { + return value; + } + if (isSymbol(value)) { + return NAN; + } + if (isObject(value)) { + var other = typeof value.valueOf == "function" ? value.valueOf() : value; + value = isObject(other) ? other + "" : other; + } + if (typeof value != "string") { + return value === 0 ? value : +value; + } + value = value.replace(reTrim, ""); + var isBinary = reIsBinary.test(value); + return isBinary || reIsOctal.test(value) ? freeParseInt(value.slice(2), isBinary ? 2 : 8) : reIsBadHex.test(value) ? NAN : +value; +} +var lodash_throttle = throttle; +const _sfc_main$1f = { + name: "Grid", + provide() { + return { + GridInstance: this + }; + }, + props: { + col: { + type: Number, + default: 3 + }, + square: { + type: Boolean, + default: false + }, + padding: { + type: String, + default: "24px" + }, + center: { + type: Boolean, + default: false + }, + border: { + type: Boolean, + default: true + }, + hover: { + type: Boolean, + default: false + } + }, + data() { + return { + resizeCount: 0, + handleResize: () => { + } + }; + }, + computed: { + classes() { + return { + "ivu-grid-center": this.center, + "ivu-grid-border": this.border, + "ivu-grid-hover": this.hover + }; + } + }, + methods: { + onResize() { + this.resizeCount++; + } + }, + mounted() { + this.handleResize = lodash_throttle(this.onResize, 150, { leading: false }); + this.observer = elementResizeDetector(); + this.observer.listenTo(this.$refs.grid, this.handleResize); + }, + beforeUnmount() { + this.observer.removeListener(this.$refs.grid, this.handleResize); + } +}; +function _sfc_render$13(_ctx, _cache, $props, $setup, $data, $options) { + return openBlock(), createElementBlock("div", { + class: normalizeClass(["ivu-grid", $options.classes]), + ref: "grid" + }, [ + renderSlot(_ctx.$slots, "default") + ], 2); +} +var Grid = /* @__PURE__ */ _export_sfc(_sfc_main$1f, [["render", _sfc_render$13]]); +const _sfc_main$1e = { + name: "GridItem", + inject: ["GridInstance"], + data() { + return { + height: 0 + }; + }, + computed: { + col() { + return this.GridInstance.col; + }, + square() { + return this.GridInstance.square; + }, + styles() { + const style2 = { + width: `${100 / this.col}%` + }; + if (this.height && this.square) { + style2.height = `${this.height}px`; + } + return style2; + }, + mainStyles() { + return { + padding: this.GridInstance.padding + }; + } + }, + watch: { + col() { + nextTick(() => { + this.handleChangeHeight(); + }); + }, + square() { + this.handleChangeHeight(); + }, + "GridInstance.resizeCount"() { + this.handleChangeHeight(); + } + }, + methods: { + handleChangeHeight() { + if (this.square) { + const $col = this.$refs.col; + this.height = parseFloat(getStyle($col, "width")); + } + } + }, + mounted() { + this.handleChangeHeight(); + } +}; +function _sfc_render$12(_ctx, _cache, $props, $setup, $data, $options) { + return openBlock(), createElementBlock("div", { + class: "ivu-grid-item", + style: normalizeStyle($options.styles), + ref: "col" + }, [ + createElementVNode("div", { + class: "ivu-grid-item-main", + style: normalizeStyle($options.mainStyles) + }, [ + renderSlot(_ctx.$slots, "default") + ], 4) + ], 4); +} +var GridItem = /* @__PURE__ */ _export_sfc(_sfc_main$1e, [["render", _sfc_render$12]]); +const prefixCls$D = "ivu-layout"; +const _sfc_main$1d = { + name: "Header", + computed: { + wrapClasses() { + return `${prefixCls$D}-header`; + } + } +}; +function _sfc_render$11(_ctx, _cache, $props, $setup, $data, $options) { + return openBlock(), createElementBlock("div", { + class: normalizeClass($options.wrapClasses) + }, [ + renderSlot(_ctx.$slots, "default") + ], 2); +} +var Header = /* @__PURE__ */ _export_sfc(_sfc_main$1d, [["render", _sfc_render$11]]); +const KeyCode = { + MAC_ENTER: 3, + BACKSPACE: 8, + TAB: 9, + NUM_CENTER: 12, + ENTER: 13, + SHIFT: 16, + CTRL: 17, + ALT: 18, + PAUSE: 19, + CAPS_LOCK: 20, + ESC: 27, + SPACE: 32, + PAGE_UP: 33, + PAGE_DOWN: 34, + END: 35, + HOME: 36, + LEFT: 37, + UP: 38, + RIGHT: 39, + DOWN: 40, + PRINT_SCREEN: 44, + INSERT: 45, + DELETE: 46, + ZERO: 48, + ONE: 49, + TWO: 50, + THREE: 51, + FOUR: 52, + FIVE: 53, + SIX: 54, + SEVEN: 55, + EIGHT: 56, + NINE: 57, + QUESTION_MARK: 63, + A: 65, + B: 66, + C: 67, + D: 68, + E: 69, + F: 70, + G: 71, + H: 72, + I: 73, + J: 74, + K: 75, + L: 76, + M: 77, + N: 78, + O: 79, + P: 80, + Q: 81, + R: 82, + S: 83, + T: 84, + U: 85, + V: 86, + W: 87, + X: 88, + Y: 89, + Z: 90, + META: 91, + WIN_KEY_RIGHT: 92, + CONTEXT_MENU: 93, + NUM_ZERO: 96, + NUM_ONE: 97, + NUM_TWO: 98, + NUM_THREE: 99, + NUM_FOUR: 100, + NUM_FIVE: 101, + NUM_SIX: 102, + NUM_SEVEN: 103, + NUM_EIGHT: 104, + NUM_NINE: 105, + NUM_MULTIPLY: 106, + NUM_PLUS: 107, + NUM_MINUS: 109, + NUM_PERIOD: 110, + NUM_DIVISION: 111, + F1: 112, + F2: 113, + F3: 114, + F4: 115, + F5: 116, + F6: 117, + F7: 118, + F8: 119, + F9: 120, + F10: 121, + F11: 122, + F12: 123, + NUMLOCK: 144, + SEMICOLON: 186, + DASH: 189, + EQUALS: 187, + COMMA: 188, + PERIOD: 190, + SLASH: 191, + APOSTROPHE: 192, + SINGLE_QUOTE: 222, + OPEN_SQUARE_BRACKET: 219, + BACKSLASH: 220, + CLOSE_SQUARE_BRACKET: 221, + WIN_KEY: 224, + MAC_FF_META: 224, + WIN_IME: 229, + isTextModifyingKeyEvent(e) { + const { keyCode } = e; + if (e.altKey && !e.ctrlKey || e.metaKey || keyCode >= KeyCode.F1 && keyCode <= KeyCode.F12) { + return false; + } + switch (keyCode) { + case KeyCode.ALT: + case KeyCode.CAPS_LOCK: + case KeyCode.CONTEXT_MENU: + case KeyCode.CTRL: + case KeyCode.DOWN: + case KeyCode.END: + case KeyCode.ESC: + case KeyCode.HOME: + case KeyCode.INSERT: + case KeyCode.LEFT: + case KeyCode.MAC_FF_META: + case KeyCode.META: + case KeyCode.NUMLOCK: + case KeyCode.NUM_CENTER: + case KeyCode.PAGE_DOWN: + case KeyCode.PAGE_UP: + case KeyCode.PAUSE: + case KeyCode.PRINT_SCREEN: + case KeyCode.RIGHT: + case KeyCode.SHIFT: + case KeyCode.UP: + case KeyCode.WIN_KEY: + case KeyCode.WIN_KEY_RIGHT: + return false; + default: + return true; + } + }, + isCharacterKey(keyCode) { + if (keyCode >= KeyCode.ZERO && keyCode <= KeyCode.NINE) { + return true; + } + if (keyCode >= KeyCode.NUM_ZERO && keyCode <= KeyCode.NUM_MULTIPLY) { + return true; + } + if (keyCode >= KeyCode.A && keyCode <= KeyCode.Z) { + return true; + } + if (window.navigator.userAgent.indexOf("WebKit") !== -1 && keyCode === 0) { + return true; + } + switch (keyCode) { + case KeyCode.SPACE: + case KeyCode.QUESTION_MARK: + case KeyCode.NUM_PLUS: + case KeyCode.NUM_MINUS: + case KeyCode.NUM_PERIOD: + case KeyCode.NUM_DIVISION: + case KeyCode.SEMICOLON: + case KeyCode.DASH: + case KeyCode.EQUALS: + case KeyCode.COMMA: + case KeyCode.PERIOD: + case KeyCode.SLASH: + case KeyCode.APOSTROPHE: + case KeyCode.SINGLE_QUOTE: + case KeyCode.OPEN_SQUARE_BRACKET: + case KeyCode.BACKSLASH: + case KeyCode.CLOSE_SQUARE_BRACKET: + return true; + default: + return false; + } + } +}; +const prefixCls$C = "ivu-spin"; +const _sfc_main$1c = { + name: "Spin", + mixins: [ScrollbarMixins], + props: { + size: { + validator(value) { + return oneOf(value, ["small", "large", "default"]); + }, + default() { + const global2 = getCurrentInstance().appContext.config.globalProperties; + return !global2.$VIEWUI || global2.$VIEWUI.size === "" ? "default" : global2.$VIEWUI.size; + } + }, + fix: { + type: Boolean, + default: false + }, + fullscreen: { + type: Boolean, + default: false + }, + show: { + type: Boolean, + default: true + } + }, + data() { + return { + showText: false, + visible: false + }; + }, + computed: { + classes() { + return [ + `${prefixCls$C}`, + { + [`${prefixCls$C}-${this.size}`]: !!this.size, + [`${prefixCls$C}-fix`]: this.fix, + [`${prefixCls$C}-show-text`]: this.showText, + [`${prefixCls$C}-fullscreen`]: this.fullscreen + } + ]; + }, + mainClasses() { + return `${prefixCls$C}-main`; + }, + dotClasses() { + return `${prefixCls$C}-dot`; + }, + textClasses() { + return `${prefixCls$C}-text`; + }, + fullscreenVisible() { + if (this.fullscreen) { + return this.visible; + } else { + return true; + } + } + }, + watch: { + visible(val) { + if (val) { + this.addScrollEffect(); + } else { + this.removeScrollEffect(); + } + } + }, + mounted() { + this.showText = !!this.$slots.default && this.$slots.default().some((item) => item.children && item.children.length); + } +}; +function _sfc_render$10(_ctx, _cache, $props, $setup, $data, $options) { + return openBlock(), createBlock(Transition, { name: "fade" }, { + default: withCtx(() => [ + $options.fullscreenVisible && $props.show ? (openBlock(), createElementBlock("div", { + key: 0, + class: normalizeClass($options.classes) + }, [ + createElementVNode("div", { + class: normalizeClass($options.mainClasses) + }, [ + createElementVNode("span", { + class: normalizeClass($options.dotClasses) + }, null, 2), + createElementVNode("div", { + class: normalizeClass($options.textClasses) + }, [ + renderSlot(_ctx.$slots, "default") + ], 2) + ], 2) + ], 2)) : createCommentVNode("", true) + ]), + _: 3 + }); +} +var Spin = /* @__PURE__ */ _export_sfc(_sfc_main$1c, [["render", _sfc_render$10]]); +const _sfc_main$1b = { + name: "ImagePreview", + mixins: [Locale], + components: { Icon, Spin, Row, Col }, + inheritAttrs: false, + emits: ["update:modelValue", "on-close", "on-switch"], + props: { + modelValue: { + type: Boolean, + default: false + }, + transfer: { + type: Boolean, + default() { + const global2 = getCurrentInstance().appContext.config.globalProperties; + return !global2.$VIEWUI || global2.$VIEWUI.transfer === "" ? false : global2.$VIEWUI.transfer; + } + }, + maskClosable: { + type: Boolean, + default: true + }, + previewList: { + type: Array, + default() { + return []; + } + }, + initialIndex: { + type: Number, + default: 0 + }, + infinite: { + type: Boolean, + default: true + }, + toolbar: { + type: Array, + default() { + const global2 = getCurrentInstance().appContext.config.globalProperties; + return !global2.$VIEWUI || !global2.$VIEWUI.image || global2.$VIEWUI.image.toolbar === "" ? ["zoomIn", "zoomOut", "original", "rotateLeft", "rotateRight", "download"] : global2.$VIEWUI.image.toolbar; + } + } + }, + data() { + return { + currentIndex: 0, + scale: 1, + degree: 0, + translate: { x: 0, y: 0 }, + startX: 0, + startY: 0, + transition: true, + original: false, + prevOverflow: "", + status: "loading", + zIndex: 1e3, + maskIndex: this.getMaskIndex(), + downloading: false + }; + }, + computed: { + imgClasses() { + return [ + "ivu-image-preview-image", + { + ["ivu-image-preview-grabbing"]: !this.transition, + ["ivu-image-preview-hidden"]: this.status === "failed", + ["ivu-image-preview-transition"]: this.transition, + ["ivu-image-preview-limit"]: !this.original + } + ]; + }, + imageStyle() { + let translateX = this.translate.x / this.scale; + let translateY = this.translate.y / this.scale; + const mod = this.degree % 360; + if ([90, -270].includes(mod)) { + [translateX, translateY] = [translateY, -translateX]; + } + if ([180, -180].includes(mod)) { + [translateX, translateY] = [-translateX, -translateY]; + } + if ([270, -90].includes(mod)) { + [translateX, translateY] = [-translateY, translateX]; + } + return { + transform: ` + scale(${this.scale}) + rotate(${this.degree}deg) + translate(${translateX}px, ${translateY}px) + ` + }; + }, + maskStyle() { + return { + zIndex: this.maskIndex + this.zIndex + }; + }, + leftClasses() { + return [ + "ivu-image-preview-arrow-left", + { + ["ivu-image-preview-arrow-disabled"]: this.hasLeftSwitchEnd + } + ]; + }, + rightClasses() { + return [ + "ivu-image-preview-arrow-right", + { + ["ivu-image-preview-arrow-disabled"]: this.hasRightSwitchEnd + } + ]; + }, + hasRightSwitchEnd() { + const { currentIndex, infinite, previewList } = this; + const len = previewList.length; + return infinite ? false : currentIndex >= len - 1; + }, + hasLeftSwitchEnd() { + const { currentIndex, infinite } = this; + return infinite ? false : currentIndex === 0; + }, + currentSrc() { + return this.previewList[this.currentIndex]; + }, + failLang() { + return this.t("i.image.fail"); + } + }, + methods: { + resetStyle() { + this.scale = 1; + this.degree = 0; + this.translate.x = 0; + this.translate.y = 0; + }, + handleClose() { + this.$emit("update:modelValue", false); + this.$emit("on-close"); + }, + handleClickMask() { + if (!this.maskClosable) + return; + this.handleClose(); + }, + handleSwitch(next) { + if (next) { + if (this.currentIndex + 1 === this.previewList.length) { + if (this.infinite) { + this.resetStyle(); + this.currentIndex = 0; + } + } else { + this.resetStyle(); + this.currentIndex += 1; + } + } else { + if (this.currentIndex === 0) { + if (this.infinite) { + this.resetStyle(); + this.currentIndex = this.previewList.length - 1; + } + } else { + this.resetStyle(); + this.currentIndex -= 1; + } + } + this.$emit("on-switch", { currentIndex: this.currentIndex }); + }, + handleOperation(val) { + if (val === "zoomIn" && this.scale < 6) + this.scale += 0.25; + if (val === "zoomOut" && this.scale > 0.25) + this.scale -= 0.25; + if (val === "rotateLeft") + this.degree -= 90; + if (val === "rotateRight") + this.degree += 90; + if (val === "original") { + this.original = !this.original; + this.transition = false; + this.resetStyle(); + setTimeout(() => { + this.transition = true; + }, 0); + } + if (val === "download") { + this.downloading = true; + downloadFile(this.previewList[this.currentIndex]).then(() => { + this.downloading = false; + }).catch(() => { + this.downloading = false; + }); + } + }, + handleKeydown(event) { + if (!this.modelValue) + return; + const { keyCode } = event; + if (keyCode === KeyCode.LEFT) + this.handleSwitch(false); + if (keyCode === KeyCode.RIGHT) + this.handleSwitch(true); + if (keyCode === KeyCode.UP) + this.handleOperation("zoomIn"); + if (keyCode === KeyCode.DOWN) + this.handleOperation("zoomOut"); + if (keyCode === KeyCode.SPACE) { + event.preventDefault(); + this.original = !this.original; + } + }, + handleKeyup(event) { + if (!this.modelValue) + return; + const { keyCode } = event; + if (keyCode === KeyCode.ESC) + this.handleClose(); + }, + handleWheel(event) { + if (!this.modelValue) + return; + const { deltaY } = event; + this.handleOperation(deltaY < 0 ? "zoomIn" : "zoomOut"); + }, + handleMousedown(event) { + const { pageX, pageY, which } = event; + if (which !== 1) + return; + this.startX = pageX; + this.startY = pageY; + this.transition = false; + on(document, "mousemove", this.handleMousemove); + on(document, "mouseup", this.handleMouseup); + }, + handleMousemove: lodash_throttle(function(event) { + event.stopPropagation(); + const { pageX, pageY } = event; + this.translate.x += pageX - this.startX; + this.translate.y += pageY - this.startY; + this.startX = pageX; + this.startY = pageY; + }), + handleMouseup() { + this.transition = true; + off(document, "mousemove", this.handleMousemove); + off(document, "mouseup", this.handleMouseup); + }, + getBodyOverflow() { + return isClient ? document.body.style.overflow : ""; + }, + setBodyOverflow(val) { + if (!isClient) + return; + document.body.style.overflow = val; + }, + handleImageLoad() { + this.status = "loaded"; + }, + handleImageError() { + this.status = "failed"; + }, + getMaskIndex() { + transferIncrease(); + return transferIndex; + } + }, + watch: { + modelValue(val) { + if (val) { + this.currentIndex = this.initialIndex; + this.resetStyle(); + this.original = false; + this.prevOverflow = this.getBodyOverflow(); + this.setBodyOverflow("hidden"); + this.maskIndex = this.getMaskIndex(); + } else { + this.setBodyOverflow(this.prevOverflow); + } + }, + currentIndex() { + this.status = "loading"; + } + }, + mounted() { + on(document, "keydown", this.handleKeydown); + on(document, "keyup", this.handleKeyup); + on(document, "wheel", this.handleWheel); + }, + beforeUnmount() { + off(document, "keydown", this.handleKeydown); + off(document, "keyup", this.handleKeyup); + off(document, "wheel", this.handleWheel); + } +}; +const _hoisted_1$E = { + key: 1, + class: "ivu-image-preview-fail" +}; +const _hoisted_2$q = ["src"]; +const _hoisted_3$m = /* @__PURE__ */ createElementVNode("path", { + d: "M637 443H519V309c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v134H325c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h118v134c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V519h118c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8z", + "p-id": "7198", + fill: "#ffffff" +}, null, -1); +const _hoisted_4$i = /* @__PURE__ */ createElementVNode("path", { + d: "M921 867L775 721c122.1-148.9 113.6-369.5-26-509-148-148.1-388.4-148.1-537 0-148.1 148.6-148.1 389 0 537 139.5 139.6 360.1 148.1 509 26l146 146c3.2 2.8 8.3 2.8 11 0l43-43c2.8-2.7 2.8-7.8 0-11zM696 696c-118.8 118.7-311.2 118.7-430 0-118.7-118.8-118.7-311.2 0-430 118.8-118.7 311.2-118.7 430 0 118.7 118.8 118.7 311.2 0 430z", + "p-id": "7199", + fill: "#ffffff" +}, null, -1); +const _hoisted_5$b = [ + _hoisted_3$m, + _hoisted_4$i +]; +const _hoisted_6$5 = /* @__PURE__ */ createElementVNode("path", { + d: "M637 443H325c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h312c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8z", + "p-id": "7413", + fill: "#ffffff" +}, null, -1); +const _hoisted_7$4 = /* @__PURE__ */ createElementVNode("path", { + d: "M921 867L775 721c122.1-148.9 113.6-369.5-26-509-148-148.1-388.4-148.1-537 0-148.1 148.6-148.1 389 0 537 139.5 139.6 360.1 148.1 509 26l146 146c3.2 2.8 8.3 2.8 11 0l43-43c2.8-2.7 2.8-7.8 0-11zM696 696c-118.8 118.7-311.2 118.7-430 0-118.7-118.8-118.7-311.2 0-430 118.8-118.7 311.2-118.7 430 0 118.7 118.8 118.7 311.2 0 430z", + "p-id": "7414", + fill: "#ffffff" +}, null, -1); +const _hoisted_8$3 = [ + _hoisted_6$5, + _hoisted_7$4 +]; +const _hoisted_9$3 = /* @__PURE__ */ createElementVNode("path", { + d: "M358.058667 128H156.970667A28.970667 28.970667 0 0 0 128 157.013333v202.837334c0 7.978667 6.528 14.506667 14.506667 14.506666h43.434666a14.506667 14.506667 0 0 0 14.506667-14.506666V200.448h157.610667a14.506667 14.506667 0 0 0 14.506666-14.506667V142.506667a14.506667 14.506667 0 0 0-14.506666-14.506667zM881.493333 649.642667h-43.434666a14.506667 14.506667 0 0 0-14.506667 14.506666v159.402667h-157.610667a14.506667 14.506667 0 0 0-14.506666 14.506667v43.434666c0 7.978667 6.570667 14.506667 14.506666 14.506667h201.088c16 0 28.970667-12.928 28.970667-29.013333v-202.837334a14.506667 14.506667 0 0 0-14.506667-14.506666zM358.058667 823.552H200.448v-159.402667a14.506667 14.506667 0 0 0-14.506667-14.506666H142.506667a14.506667 14.506667 0 0 0-14.506667 14.506666v202.88c0 16 12.970667 28.970667 29.013333 28.970667h201.045334a14.506667 14.506667 0 0 0 14.506666-14.506667v-43.434666a14.506667 14.506667 0 0 0-14.506666-14.506667zM866.986667 128h-201.088a14.506667 14.506667 0 0 0-14.506667 14.506667v43.434666c0 7.978667 6.570667 14.506667 14.506667 14.506667h157.610666v159.402667c0 7.978667 6.528 14.506667 14.506667 14.506666h43.434667a14.506667 14.506667 0 0 0 14.506666-14.506666V156.970667A28.928 28.928 0 0 0 866.986667 128z", + "p-id": "26673", + fill: "#ffffff" +}, null, -1); +const _hoisted_10$2 = [ + _hoisted_9$3 +]; +const _hoisted_11$2 = /* @__PURE__ */ createElementVNode("path", { + d: "M864 128H160c-19.2 0-32 12.8-32 32v704c0 19.2 12.8 32 32 32h704c19.2 0 32-12.8 32-32V160c0-19.2-12.8-32-32-32z m-32 704H192V192h640v640z", + "p-id": "1977", + fill: "#ffffff" +}, null, -1); +const _hoisted_12$2 = /* @__PURE__ */ createElementVNode("path", { + d: "M320 384v288c0 19.2 12.8 32 32 32s32-12.8 32-32V352c0-19.2-12.8-32-32-32h-32c-19.2 0-32 12.8-32 32s12.8 32 32 32zM640 384v288c0 19.2 12.8 32 32 32s32-12.8 32-32V352c0-19.2-12.8-32-32-32h-32c-19.2 0-32 12.8-32 32s12.8 32 32 32z", + "p-id": "1978", + fill: "#ffffff" +}, null, -1); +const _hoisted_13$1 = /* @__PURE__ */ createElementVNode("path", { + d: "M512 384m-32 0a32 32 0 1 0 64 0 32 32 0 1 0-64 0Z", + "p-id": "1979", + fill: "#ffffff" +}, null, -1); +const _hoisted_14$1 = /* @__PURE__ */ createElementVNode("path", { + d: "M512 640m-32 0a32 32 0 1 0 64 0 32 32 0 1 0-64 0Z", + "p-id": "1980", + fill: "#ffffff" +}, null, -1); +const _hoisted_15$1 = [ + _hoisted_11$2, + _hoisted_12$2, + _hoisted_13$1, + _hoisted_14$1 +]; +const _hoisted_16$1 = /* @__PURE__ */ createElementVNode("path", { + d: "M672 418H144c-17.7 0-32 14.3-32 32v414c0 17.7 14.3 32 32 32h528c17.7 0 32-14.3 32-32V450c0-17.7-14.3-32-32-32z m-44 402H188V494h440v326z m191.3-491.5c-78.8-100.7-196-153.6-314.6-154.2l-0.2-64c0-6.5-7.6-10.1-12.6-6.1l-128 101c-4 3.1-3.9 9.1 0 12.3L492 318.6c5.1 4 12.7 0.4 12.6-6.1v-63.9c12.9 0.1 25.9 0.9 38.8 2.5 42.1 5.2 82.1 18.2 119 38.7 38.1 21.2 71.2 49.7 98.4 84.3 27.1 34.7 46.7 73.7 58.1 115.8 11 40.7 14 82.7 8.9 124.8-0.7 5.4-1.4 10.8-2.4 16.1h74.9c14.8-103.6-11.3-213-81-302.3z", + "p-id": "13309", + fill: "#ffffff" +}, null, -1); +const _hoisted_17$1 = [ + _hoisted_16$1 +]; +const _hoisted_18$1 = /* @__PURE__ */ createElementVNode("path", { + d: "M480.5 251.2c13-1.6 25.9-2.4 38.8-2.5v63.9c0 6.5 7.5 10.1 12.6 6.1L660 217.6c4-3.2 4-9.2 0-12.3l-128-101c-5.1-4-12.6-0.4-12.6 6.1l-0.2 64c-118.6 0.5-235.8 53.4-314.6 154.2-69.6 89.2-95.7 198.6-81.1 302.4h74.9c-0.9-5.3-1.7-10.7-2.4-16.1-5.1-42.1-2.1-84.1 8.9-124.8 11.4-42.2 31-81.1 58.1-115.8 27.2-34.7 60.3-63.2 98.4-84.3 37-20.6 76.9-33.6 119.1-38.8zM880 418H352c-17.7 0-32 14.3-32 32v414c0 17.7 14.3 32 32 32h528c17.7 0 32-14.3 32-32V450c0-17.7-14.3-32-32-32z m-44 402H396V494h440v326z", + "p-id": "13522", + fill: "#ffffff" +}, null, -1); +const _hoisted_19$1 = [ + _hoisted_18$1 +]; +const _hoisted_20$1 = /* @__PURE__ */ createElementVNode("path", { + d: "M505.7 621c3.2 4.1 9.4 4.1 12.6 0l112-141.7c4.1-5.2 0.4-12.9-6.3-12.9h-72.1V120c0-4.4-3.6-8-8-8h-64c-4.4 0-8 3.6-8 8v346.3H400c-6.7 0-10.4 7.7-6.3 12.9l112 141.8z", + "p-id": "8826", + fill: "#ffffff" +}, null, -1); +const _hoisted_21$1 = /* @__PURE__ */ createElementVNode("path", { + d: "M903 516h-64c-4.4 0-8 3.6-8 8v300c0 4.4-3.6 8-8 8H199c-4.4 0-8-3.6-8-8V524c0-4.4-3.6-8-8-8h-64c-4.4 0-8 3.6-8 8v372c0 8.8 7.2 16 16 16h768c8.8 0 16-7.2 16-16V524c0-4.4-3.6-8-8-8z", + "p-id": "8827", + fill: "#ffffff" +}, null, -1); +const _hoisted_22$1 = [ + _hoisted_20$1, + _hoisted_21$1 +]; +const _hoisted_23$1 = { + class: "ivu-image-preview-operations-item ivu-image-preview-operations-wait ivu-anim-loop", + viewBox: "0 0 1024 1024", + version: "1.1", + xmlns: "http://www.w3.org/2000/svg", + "p-id": "7816", + width: "200", + height: "200" +}; +const _hoisted_24$1 = /* @__PURE__ */ createElementVNode("path", { + d: "M512 64c247.2 0 448 200.8 448 448h-64c0-212-172-384-384-384V64z m0 832c-212 0-384-172-384-384H64c0 247.2 200.8 448 448 448v-64z", + "p-id": "7817", + fill: "#ffffff" +}, null, -1); +const _hoisted_25$1 = [ + _hoisted_24$1 +]; +function _sfc_render$$(_ctx, _cache, $props, $setup, $data, $options) { + const _component_Spin = resolveComponent("Spin"); + const _component_Col = resolveComponent("Col"); + const _component_Row = resolveComponent("Row"); + const _component_Icon = resolveComponent("Icon"); + return openBlock(), createBlock(Teleport, { + to: "body", + disabled: !$props.transfer + }, [ + createVNode(Transition, { name: "fade" }, { + default: withCtx(() => [ + $props.modelValue ? (openBlock(), createElementBlock("div", { + key: 0, + class: "ivu-image-preview-mask", + style: normalizeStyle($options.maskStyle) + }, null, 4)) : createCommentVNode("", true) + ]), + _: 1 + }), + createVNode(Transition, { name: "fade" }, { + default: withCtx(() => [ + $props.modelValue ? (openBlock(), createElementBlock("div", { + key: 0, + class: "ivu-image-preview-wrap", + style: normalizeStyle($options.maskStyle) + }, [ + createElementVNode("div", mergeProps({ class: "ivu-image-preview" }, _ctx.$attrs, { + onClick: _cache[14] || (_cache[14] = withModifiers((...args) => $options.handleClickMask && $options.handleClickMask(...args), ["stop"])) + }), [ + $data.status === "loading" ? (openBlock(), createBlock(_component_Spin, { + key: 0, + size: "large", + class: "ivu-image-preview-loading" + })) : $data.status === "failed" ? (openBlock(), createElementBlock("div", _hoisted_1$E, [ + createElementVNode("span", null, toDisplayString($options.failLang), 1) + ])) : createCommentVNode("", true), + (openBlock(), createElementBlock("img", { + class: normalizeClass($options.imgClasses), + style: normalizeStyle($options.imageStyle), + src: $options.currentSrc, + key: $data.currentIndex.toString(), + onClick: _cache[0] || (_cache[0] = withModifiers(() => { + }, ["stop"])), + onMousedown: _cache[1] || (_cache[1] = withModifiers((...args) => $options.handleMousedown && $options.handleMousedown(...args), ["stop", "prevent"])), + onLoad: _cache[2] || (_cache[2] = (...args) => $options.handleImageLoad && $options.handleImageLoad(...args)), + onError: _cache[3] || (_cache[3] = (...args) => $options.handleImageError && $options.handleImageError(...args)) + }, null, 46, _hoisted_2$q)), + $props.toolbar && $props.toolbar.length > 0 ? (openBlock(), createBlock(_component_Row, { + key: 2, + "class-name": "ivu-image-preview-operations", + wrap: false, + onClick: _cache[11] || (_cache[11] = withModifiers(() => { + }, ["stop"])) + }, { + default: withCtx(() => [ + $props.toolbar.indexOf("zoomIn") > -1 ? (openBlock(), createBlock(_component_Col, { + key: 0, + flex: "1", + order: $props.toolbar.indexOf("zoomIn") + 1 + }, { + default: withCtx(() => [ + (openBlock(), createElementBlock("svg", { + class: "ivu-image-preview-operations-item", + onClick: _cache[4] || (_cache[4] = withModifiers(($event) => $options.handleOperation("zoomIn"), ["stop"])), + viewBox: "0 0 1024 1024", + version: "1.1", + xmlns: "http://www.w3.org/2000/svg", + "p-id": "7197", + width: "200", + height: "200" + }, _hoisted_5$b)) + ]), + _: 1 + }, 8, ["order"])) : createCommentVNode("", true), + $props.toolbar.indexOf("zoomOut") > -1 ? (openBlock(), createBlock(_component_Col, { + key: 1, + flex: "1", + order: $props.toolbar.indexOf("zoomOut") + 1 + }, { + default: withCtx(() => [ + (openBlock(), createElementBlock("svg", { + class: "ivu-image-preview-operations-item", + onClick: _cache[5] || (_cache[5] = withModifiers(($event) => $options.handleOperation("zoomOut"), ["stop"])), + viewBox: "0 0 1024 1024", + version: "1.1", + xmlns: "http://www.w3.org/2000/svg", + "p-id": "7412", + width: "200", + height: "200" + }, _hoisted_8$3)) + ]), + _: 1 + }, 8, ["order"])) : createCommentVNode("", true), + $props.toolbar.indexOf("original") > -1 ? (openBlock(), createBlock(_component_Col, { + key: 2, + flex: "1", + order: $props.toolbar.indexOf("original") + 1 + }, { + default: withCtx(() => [ + withDirectives((openBlock(), createElementBlock("svg", { + class: "ivu-image-preview-operations-item", + onClick: _cache[6] || (_cache[6] = withModifiers(($event) => $options.handleOperation("original"), ["stop"])), + viewBox: "0 0 1024 1024", + version: "1.1", + xmlns: "http://www.w3.org/2000/svg", + "p-id": "26672", + width: "200", + height: "200" + }, _hoisted_10$2, 512)), [ + [vShow, !this.original] + ]), + withDirectives((openBlock(), createElementBlock("svg", { + class: "ivu-image-preview-operations-item", + onClick: _cache[7] || (_cache[7] = withModifiers(($event) => $options.handleOperation("original"), ["stop"])), + viewBox: "0 0 1024 1024", + version: "1.1", + xmlns: "http://www.w3.org/2000/svg", + "p-id": "1976", + width: "200", + height: "200" + }, _hoisted_15$1, 512)), [ + [vShow, this.original] + ]) + ]), + _: 1 + }, 8, ["order"])) : createCommentVNode("", true), + $props.toolbar.indexOf("rotateLeft") > -1 ? (openBlock(), createBlock(_component_Col, { + key: 3, + flex: "1", + order: $props.toolbar.indexOf("rotateLeft") + 1 + }, { + default: withCtx(() => [ + (openBlock(), createElementBlock("svg", { + class: "ivu-image-preview-operations-item", + onClick: _cache[8] || (_cache[8] = withModifiers(($event) => $options.handleOperation("rotateLeft"), ["stop"])), + viewBox: "0 0 1024 1024", + version: "1.1", + xmlns: "http://www.w3.org/2000/svg", + "p-id": "13308", + width: "200", + height: "200" + }, _hoisted_17$1)) + ]), + _: 1 + }, 8, ["order"])) : createCommentVNode("", true), + $props.toolbar.indexOf("rotateRight") > -1 ? (openBlock(), createBlock(_component_Col, { + key: 4, + flex: "1", + order: $props.toolbar.indexOf("rotateRight") + 1 + }, { + default: withCtx(() => [ + (openBlock(), createElementBlock("svg", { + class: "ivu-image-preview-operations-item", + onClick: _cache[9] || (_cache[9] = withModifiers(($event) => $options.handleOperation("rotateRight"), ["stop"])), + viewBox: "0 0 1024 1024", + version: "1.1", + xmlns: "http://www.w3.org/2000/svg", + "p-id": "13521", + width: "200", + height: "200" + }, _hoisted_19$1)) + ]), + _: 1 + }, 8, ["order"])) : createCommentVNode("", true), + $props.toolbar.indexOf("download") > -1 ? (openBlock(), createBlock(_component_Col, { + key: 5, + flex: "1", + order: $props.toolbar.indexOf("download") + 1 + }, { + default: withCtx(() => [ + withDirectives((openBlock(), createElementBlock("svg", { + class: "ivu-image-preview-operations-item", + onClick: _cache[10] || (_cache[10] = withModifiers(($event) => $options.handleOperation("download"), ["stop"])), + viewBox: "0 0 1024 1024", + version: "1.1", + xmlns: "http://www.w3.org/2000/svg", + "p-id": "8825", + width: "200", + height: "200" + }, _hoisted_22$1, 512)), [ + [vShow, !$data.downloading] + ]), + withDirectives((openBlock(), createElementBlock("svg", _hoisted_23$1, _hoisted_25$1, 512)), [ + [vShow, $data.downloading] + ]) + ]), + _: 1 + }, 8, ["order"])) : createCommentVNode("", true) + ]), + _: 1 + })) : createCommentVNode("", true), + $props.previewList.length > 1 ? (openBlock(), createBlock(_component_Icon, { + key: 3, + class: normalizeClass($options.leftClasses), + type: "ios-arrow-back", + onClick: _cache[12] || (_cache[12] = withModifiers(($event) => $options.handleSwitch(false), ["stop"])) + }, null, 8, ["class"])) : createCommentVNode("", true), + $props.previewList.length > 1 ? (openBlock(), createBlock(_component_Icon, { + key: 4, + class: normalizeClass($options.rightClasses), + type: "ios-arrow-forward", + onClick: _cache[13] || (_cache[13] = withModifiers(($event) => $options.handleSwitch(true), ["stop"])) + }, null, 8, ["class"])) : createCommentVNode("", true), + createVNode(_component_Icon, { + class: "ivu-image-preview-arrow-close", + type: "md-close", + onClick: withModifiers($options.handleClose, ["stop"]) + }, null, 8, ["onClick"]) + ], 16) + ], 4)) : createCommentVNode("", true) + ]), + _: 1 + }) + ], 8, ["disabled"]); +} +var ImagePreview = /* @__PURE__ */ _export_sfc(_sfc_main$1b, [["render", _sfc_render$$]]); +const isElement = (el) => { + return typeof HTMLElement === "object" && el instanceof HTMLElement; +}; +const _sfc_main$1a = { + name: "Image", + mixins: [Locale], + components: { ImagePreview }, + emits: ["on-load", "on-error", "on-switch", "on-close", "on-click"], + props: { + src: { + type: String, + default: "" + }, + alt: { + type: String, + default: "" + }, + preview: { + type: Boolean, + default: false + }, + referrerPolicy: { + type: String, + default: "" + }, + width: { + type: [String, Number], + default: "" + }, + height: { + type: [String, Number], + default: "" + }, + fit: { + type: String, + default: "" + }, + lazy: { + type: Boolean, + default: false + }, + scrollContainer: { + type: [String], + default: "" + }, + transfer: { + type: Boolean, + default() { + const global2 = getCurrentInstance().appContext.config.globalProperties; + return !global2.$VIEWUI || global2.$VIEWUI.transfer === "" ? false : global2.$VIEWUI.transfer; + } + }, + maskClosable: { + type: Boolean, + default: true + }, + previewList: { + type: Array + }, + infinite: { + type: Boolean, + default: true + }, + initialIndex: { + type: Number, + default: 0 + }, + previewTip: { + type: Boolean, + default: true + }, + toolbar: { + type: Array, + default() { + const global2 = getCurrentInstance().appContext.config.globalProperties; + return !global2.$VIEWUI || !global2.$VIEWUI.image || global2.$VIEWUI.image.toolbar === "" ? ["zoomIn", "zoomOut", "original", "rotateLeft", "rotateRight", "download"] : global2.$VIEWUI.image.toolbar; + } + } + }, + data() { + return { + loadingImage: false, + loading: false, + imageError: false, + scrollElement: null, + observer: null, + imagePreviewModal: false + }; + }, + watch: { + src() { + this.loadImage(); + } + }, + computed: { + innerClasses() { + return [ + "ivu-image-inner", + { + ["ivu-image-cursor"]: this.preview + } + ]; + }, + imgClasses() { + return [ + "ivu-image-img", + { + ["ivu-image-img-hidden"]: this.loading || this.imageError + } + ]; + }, + fitStyle() { + const fitContains = ["fill", "contain", "cover", "none", "scale-down"]; + const { fit } = this; + return fitContains.includes(fit) ? `object-fit:${fit};` : ""; + }, + imageStyles() { + return { + width: typeof this.width === "number" ? `${this.width}px` : this.width, + height: typeof this.height === "number" ? `${this.height}px` : this.height + }; + }, + loadingLang() { + return this.t("i.select.loading"); + }, + failLang() { + return this.t("i.image.fail"); + }, + previewLang() { + return this.t("i.image.preview"); + }, + loadingType() { + return this.lazy ? "lazy" : "eager"; + } + }, + mounted() { + isClient && this.handleImageEvent(); + }, + methods: { + handleLazy() { + const $el = this.$refs.image; + const observer = this.observer = new IntersectionObserver(this.handlerObserveImage, { + root: this.scrollElement, + rootMargin: "0px", + threshold: 0 + }); + observer.observe($el); + }, + handlerObserveImage(entries) { + for (let entry of entries) { + if (entry.isIntersecting) { + this.offObserver(); + this.loadImage(); + } + } + }, + addLazyImageListener() { + const { scrollContainer } = this; + this.scrollElement = null; + if (isElement(scrollContainer)) { + this.scrollElement = scrollContainer; + } else if (scrollContainer && typeof scrollContainer === "string") { + this.scrollElement = document.querySelector(scrollContainer); + } + this.handleLazy(); + }, + handleImageLoad() { + this.loading = false; + this.imageError = false; + this.$emit("on-load"); + }, + handleImageError() { + this.loading = false; + this.imageError = true; + this.loadingImage = false; + this.$emit("on-error"); + }, + loadImage() { + this.loading = true; + this.imageError = false; + this.loadingImage = true; + }, + handleImageEvent() { + const { lazy } = this; + lazy ? this.addLazyImageListener() : this.loadImage(); + }, + offObserver() { + const { observer } = this; + observer && observer.disconnect(); + }, + handlePreview() { + const { preview, initialIndex } = this; + if (preview) { + this.imagePreviewModal = true; + this.$emit("on-click", { initialIndex }); + } + }, + handleClose() { + this.$emit("on-close"); + }, + handleSwitch(params) { + this.$emit("on-switch", params); + } + }, + beforeUnmount() { + this.offObserver(); + } +}; +const _hoisted_1$D = { + key: 0, + class: "ivu-image-placeholder" +}; +const _hoisted_2$p = { + key: 1, + class: "ivu-image-error" +}; +const _hoisted_3$l = ["alt", "src", "loading", "referrerPolicy"]; +const _hoisted_4$h = { class: "ivu-image-mark" }; +function _sfc_render$_(_ctx, _cache, $props, $setup, $data, $options) { + const _component_ImagePreview = resolveComponent("ImagePreview"); + return openBlock(), createElementBlock("div", { + class: "ivu-image", + ref: "image", + style: normalizeStyle($options.imageStyles) + }, [ + $data.loading ? (openBlock(), createElementBlock("div", _hoisted_1$D, [ + renderSlot(_ctx.$slots, "placeholder", {}, () => [ + createElementVNode("span", null, toDisplayString($options.loadingLang), 1) + ]) + ])) : $data.imageError ? (openBlock(), createElementBlock("div", _hoisted_2$p, [ + renderSlot(_ctx.$slots, "error", {}, () => [ + createElementVNode("span", null, toDisplayString($options.failLang), 1) + ]) + ])) : createCommentVNode("", true), + $data.loadingImage ? (openBlock(), createElementBlock("div", { + key: 2, + class: normalizeClass($options.innerClasses), + onClick: _cache[2] || (_cache[2] = (...args) => $options.handlePreview && $options.handlePreview(...args)) + }, [ + createElementVNode("img", { + class: normalizeClass($options.imgClasses), + style: normalizeStyle([$options.fitStyle]), + alt: $props.alt, + src: $props.src, + loading: $options.loadingType, + referrerPolicy: $props.referrerPolicy, + onLoad: _cache[0] || (_cache[0] = (...args) => $options.handleImageLoad && $options.handleImageLoad(...args)), + onError: _cache[1] || (_cache[1] = (...args) => $options.handleImageError && $options.handleImageError(...args)) + }, null, 46, _hoisted_3$l), + $props.preview && $props.previewTip ? renderSlot(_ctx.$slots, "preview", { key: 0 }, () => [ + createElementVNode("div", _hoisted_4$h, [ + createElementVNode("span", null, toDisplayString($options.previewLang), 1) + ]) + ]) : createCommentVNode("", true) + ], 2)) : createCommentVNode("", true), + $props.preview ? (openBlock(), createBlock(_component_ImagePreview, { + key: 3, + modelValue: $data.imagePreviewModal, + "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => $data.imagePreviewModal = $event), + "preview-list": $props.previewList, + "initial-index": $props.initialIndex, + infinite: $props.infinite, + "mask-closable": $props.maskClosable, + transfer: $props.transfer, + toolbar: $props.toolbar, + onOnClose: $options.handleClose, + onOnSwitch: $options.handleSwitch + }, null, 8, ["modelValue", "preview-list", "initial-index", "infinite", "mask-closable", "transfer", "toolbar", "onOnClose", "onOnSwitch"])) : createCommentVNode("", true) + ], 4); +} +var Image = /* @__PURE__ */ _export_sfc(_sfc_main$1a, [["render", _sfc_render$_]]); +ImagePreview.newInstance = (properties) => { + if (!isClient) + return; + const _props = properties || {}; + let _instance = null; + const Instance = createApp({ + data() { + return Object.assign({}, _props, { + visible: false, + previewList: [], + initialIndex: 0, + toolbar: ["zoomIn", "zoomOut", "original", "rotateLeft", "rotateRight", "download"], + infinite: true, + maskClosable: true, + transfer: true + }); + }, + render() { + return h(ImagePreview, Object.assign({}, _props, { + ref: "imagePreview", + modelValue: this.visible, + previewList: this.previewList, + initialIndex: this.initialIndex, + toolbar: this.toolbar, + infinite: this.infinite, + maskClosable: this.maskClosable, + transfer: this.transfer, + "onOn-close": this.close + })); + }, + methods: { + close() { + this.visible = false; + setTimeout(() => { + this.destroy(); + this.onRemove(); + }, 300); + }, + destroy() { + Instance.unmount(); + document.body.removeChild(container); + }, + onRemove() { + } + }, + created() { + _instance = getCurrentInstance(); + } + }); + const container = document.createElement("div"); + document.body.appendChild(container); + Instance.mount(container); + const imagePreview = _instance.refs.imagePreview; + return { + show(options) { + Object.keys(options).forEach((key2) => { + imagePreview.$parent[key2] = options[key2]; + }); + imagePreview.$parent.visible = true; + }, + component: imagePreview + }; +}; +let imagePreviewInstance; +function getImagePreviewInstance() { + imagePreviewInstance = imagePreviewInstance || ImagePreview.newInstance(); + return imagePreviewInstance; +} +ImagePreview.show = function(props = {}) { + const instance = getImagePreviewInstance(); + props.onRemove = function() { + imagePreviewInstance = null; + }; + instance.show(props); +}; +const prefixCls$B = "ivu-input-number"; +const iconPrefixCls$2 = "ivu-icon"; +function addNum(num1, num2) { + let sq1, sq2, m; + try { + sq1 = num1.toString().split(".")[1].length; + } catch (e) { + sq1 = 0; + } + try { + sq2 = num2.toString().split(".")[1].length; + } catch (e) { + sq2 = 0; + } + m = Math.pow(10, Math.max(sq1, sq2)); + return (Math.round(num1 * m) + Math.round(num2 * m)) / m; +} +const _sfc_main$19 = { + name: "InputNumber", + mixins: [mixinsForm], + emits: ["on-change", "on-focus", "on-blur", "update:modelValue"], + props: { + max: { + type: Number, + default: Infinity + }, + min: { + type: Number, + default: -Infinity + }, + step: { + type: Number, + default: 1 + }, + activeChange: { + type: Boolean, + default: true + }, + modelValue: { + type: Number, + default: 1 + }, + size: { + validator(value) { + return oneOf(value, ["small", "large", "default"]); + }, + default() { + const global2 = getCurrentInstance().appContext.config.globalProperties; + return !global2.$VIEWUI || global2.$VIEWUI.size === "" ? "default" : global2.$VIEWUI.size; + } + }, + disabled: { + type: Boolean, + default: false + }, + autofocus: { + type: Boolean, + default: false + }, + readonly: { + type: Boolean, + default: false + }, + editable: { + type: Boolean, + default: true + }, + name: { + type: String + }, + precision: { + type: Number + }, + elementId: { + type: String + }, + formatter: { + type: Function + }, + parser: { + type: Function + }, + placeholder: { + type: String, + default: "" + }, + controlsOutside: { + type: Boolean, + default: false + } + }, + data() { + return { + focused: false, + upDisabled: false, + downDisabled: false, + currentValue: this.modelValue + }; + }, + computed: { + wrapClasses() { + return [ + `${prefixCls$B}`, + { + [`${prefixCls$B}-${this.size}`]: !!this.size, + [`${prefixCls$B}-disabled`]: this.itemDisabled, + [`${prefixCls$B}-focused`]: this.focused, + [`${prefixCls$B}-controls-outside`]: this.controlsOutside + } + ]; + }, + handlerClasses() { + return `${prefixCls$B}-handler-wrap`; + }, + upClasses() { + return [ + `${prefixCls$B}-handler`, + `${prefixCls$B}-handler-up`, + { + [`${prefixCls$B}-handler-up-disabled`]: this.upDisabled + } + ]; + }, + innerUpClasses() { + return `${prefixCls$B}-handler-up-inner ${iconPrefixCls$2} ${iconPrefixCls$2}-ios-arrow-up`; + }, + downClasses() { + return [ + `${prefixCls$B}-handler`, + `${prefixCls$B}-handler-down`, + { + [`${prefixCls$B}-handler-down-disabled`]: this.downDisabled + } + ]; + }, + innerDownClasses() { + return `${prefixCls$B}-handler-down-inner ${iconPrefixCls$2} ${iconPrefixCls$2}-ios-arrow-down`; + }, + inputWrapClasses() { + return `${prefixCls$B}-input-wrap`; + }, + inputClasses() { + return `${prefixCls$B}-input`; + }, + precisionValue() { + if (!this.currentValue) + return this.currentValue; + return this.precision ? this.currentValue.toFixed(this.precision) : this.currentValue; + }, + formatterValue() { + if (this.formatter && this.precisionValue !== null) { + return this.formatter(this.precisionValue); + } else { + return this.precisionValue; + } + } + }, + methods: { + preventDefault(e) { + e.preventDefault(); + }, + up(e) { + const targetVal = Number(e.target.value); + if (this.upDisabled && isNaN(targetVal)) { + return false; + } + this.changeStep("up", e); + }, + down(e) { + const targetVal = Number(e.target.value); + if (this.downDisabled && isNaN(targetVal)) { + return false; + } + this.changeStep("down", e); + }, + changeStep(type2, e) { + if (this.itemDisabled || this.readonly) { + return false; + } + const targetVal = Number(e.target.value); + let val = Number(this.currentValue); + const step = Number(this.step); + if (isNaN(val)) { + return false; + } + if (!isNaN(targetVal)) { + if (type2 === "up") { + if (addNum(targetVal, step) <= this.max) { + val = targetVal; + } else { + return false; + } + } else if (type2 === "down") { + if (addNum(targetVal, -step) >= this.min) { + val = targetVal; + } else { + return false; + } + } + } + if (type2 === "up") { + val = addNum(val, step); + } else if (type2 === "down") { + val = addNum(val, -step); + } + this.setValue(val); + }, + setValue(val) { + if (val && !isNaN(this.precision)) + val = Number(Number(val).toFixed(this.precision)); + const { min, max } = this; + if (val !== null) { + if (val > max) { + val = max; + } else if (val < min) { + val = min; + } + } + nextTick(() => { + this.currentValue = val; + this.$emit("update:modelValue", val); + this.$emit("on-change", val); + this.handleFormItemChange("change", val); + }); + }, + focus(event) { + this.focused = true; + this.$emit("on-focus", event); + }, + blur() { + this.focused = false; + this.$emit("on-blur"); + if (!findComponentUpward(this, ["DatePicker", "TimePicker", "Cascader", "Search"])) { + this.handleFormItemChange("blur", this.currentValue); + } + }, + keyDown(e) { + if (e.keyCode === 38) { + e.preventDefault(); + this.up(e); + } else if (e.keyCode === 40) { + e.preventDefault(); + this.down(e); + } + }, + change(event) { + if (event.type === "change" && this.activeChange) + return; + if (event.type === "input" && !this.activeChange) + return; + let val = event.target.value.trim(); + if (this.parser) { + val = this.parser(val); + } + const isEmptyString = val.length === 0; + if (isEmptyString) { + this.setValue(null); + return; + } + if (event.type === "input" && val.match(/^\-?\.?$|\.$/)) + return; + val = Number(val); + if (!isNaN(val)) { + this.currentValue = val; + this.setValue(val); + } else { + event.target.value = this.currentValue; + } + }, + changeVal(val) { + val = Number(val); + if (!isNaN(val)) { + const step = this.step; + this.upDisabled = val + step > this.max; + this.downDisabled = val - step < this.min; + } else { + this.upDisabled = true; + this.downDisabled = true; + } + } + }, + mounted() { + this.changeVal(this.currentValue); + }, + watch: { + modelValue(val) { + this.currentValue = val; + }, + currentValue(val) { + this.changeVal(val); + }, + min() { + this.changeVal(this.currentValue); + }, + max() { + this.changeVal(this.currentValue); + } + } +}; +const _hoisted_1$C = /* @__PURE__ */ createElementVNode("i", { class: "ivu-icon ivu-icon-ios-remove" }, null, -1); +const _hoisted_2$o = [ + _hoisted_1$C +]; +const _hoisted_3$k = /* @__PURE__ */ createElementVNode("i", { class: "ivu-icon ivu-icon-ios-add" }, null, -1); +const _hoisted_4$g = [ + _hoisted_3$k +]; +const _hoisted_5$a = ["id", "disabled", "autofocus", "readonly", "name", "value", "placeholder"]; +function _sfc_render$Z(_ctx, _cache, $props, $setup, $data, $options) { + return openBlock(), createElementBlock("div", { + class: normalizeClass($options.wrapClasses) + }, [ + !$props.controlsOutside ? (openBlock(), createElementBlock("div", { + key: 0, + class: normalizeClass($options.handlerClasses) + }, [ + createElementVNode("a", { + onClick: _cache[1] || (_cache[1] = (...args) => $options.up && $options.up(...args)), + class: normalizeClass($options.upClasses) + }, [ + createElementVNode("span", { + class: normalizeClass($options.innerUpClasses), + onClick: _cache[0] || (_cache[0] = (...args) => $options.preventDefault && $options.preventDefault(...args)) + }, null, 2) + ], 2), + createElementVNode("a", { + onClick: _cache[3] || (_cache[3] = (...args) => $options.down && $options.down(...args)), + class: normalizeClass($options.downClasses) + }, [ + createElementVNode("span", { + class: normalizeClass($options.innerDownClasses), + onClick: _cache[2] || (_cache[2] = (...args) => $options.preventDefault && $options.preventDefault(...args)) + }, null, 2) + ], 2) + ], 2)) : createCommentVNode("", true), + $props.controlsOutside ? (openBlock(), createElementBlock("div", { + key: 1, + class: normalizeClass(["ivu-input-number-controls-outside-btn ivu-input-number-controls-outside-down", { "ivu-input-number-controls-outside-btn-disabled": $data.downDisabled }]), + onClick: _cache[4] || (_cache[4] = (...args) => $options.down && $options.down(...args)) + }, _hoisted_2$o, 2)) : createCommentVNode("", true), + $props.controlsOutside ? (openBlock(), createElementBlock("div", { + key: 2, + class: normalizeClass(["ivu-input-number-controls-outside-btn ivu-input-number-controls-outside-up", { "ivu-input-number-controls-outside-btn-disabled": $data.upDisabled }]), + onClick: _cache[5] || (_cache[5] = (...args) => $options.up && $options.up(...args)) + }, _hoisted_4$g, 2)) : createCommentVNode("", true), + createElementVNode("div", { + class: normalizeClass($options.inputWrapClasses) + }, [ + createElementVNode("input", { + id: $props.elementId, + class: normalizeClass($options.inputClasses), + disabled: _ctx.itemDisabled, + autocomplete: "off", + spellcheck: "false", + autofocus: $props.autofocus, + onFocus: _cache[6] || (_cache[6] = (...args) => $options.focus && $options.focus(...args)), + onBlur: _cache[7] || (_cache[7] = (...args) => $options.blur && $options.blur(...args)), + onKeydown: _cache[8] || (_cache[8] = withModifiers((...args) => $options.keyDown && $options.keyDown(...args), ["stop"])), + onInput: _cache[9] || (_cache[9] = (...args) => $options.change && $options.change(...args)), + onMouseup: _cache[10] || (_cache[10] = (...args) => $options.preventDefault && $options.preventDefault(...args)), + onChange: _cache[11] || (_cache[11] = (...args) => $options.change && $options.change(...args)), + readonly: $props.readonly || !$props.editable, + name: $props.name, + value: $options.formatterValue, + placeholder: $props.placeholder + }, null, 42, _hoisted_5$a) + ], 2) + ], 2); +} +var InputNumber = /* @__PURE__ */ _export_sfc(_sfc_main$19, [["render", _sfc_render$Z]]); +const prefixCls$A = "ivu-layout"; +const _sfc_main$18 = { + name: "Layout", + data() { + return { + hasSider: false + }; + }, + computed: { + wrapClasses() { + return [ + `${prefixCls$A}`, + { + [`${prefixCls$A}-has-sider`]: this.hasSider + } + ]; + } + }, + methods: { + findSider() { + return this.$slots.default().some((child) => child.type.name === "Sider"); + } + }, + mounted() { + this.hasSider = this.findSider(); + } +}; +function _sfc_render$Y(_ctx, _cache, $props, $setup, $data, $options) { + return openBlock(), createElementBlock("div", { + class: normalizeClass($options.wrapClasses) + }, [ + renderSlot(_ctx.$slots, "default") + ], 2); +} +var Layout = /* @__PURE__ */ _export_sfc(_sfc_main$18, [["render", _sfc_render$Y]]); +const defaultCopyConfig = { + tooltips: ["\u590D\u5236", "\u590D\u5236\u6210\u529F"], + showTip: false, + successTip: "\u590D\u5236\u6210\u529F", + errorTip: "\u590D\u5236\u5931\u8D25" +}; +const defaultEditConfig = { + tooltip: "\u7F16\u8F91", + editing: false, + maxlength: "", + autosize: true, + triggerType: "icon" +}; +const defaultEllipsisConfig = { + rows: 1, + tooltip: false, + suffix: false, + expandable: false, + symbol: "\u5C55\u5F00" +}; +var baseProps = { + emits: ["update:modelValue"], + mixins: [mixinsLink], + props: { + type: { + validator(value) { + return oneOf(value, ["secondary", "success", "warning", "danger", ""]); + }, + default: "" + }, + copyable: { + type: Boolean, + default: false + }, + copyText: { + type: String, + default: "" + }, + copyConfig: { + type: Object, + default() { + const global2 = getCurrentInstance().appContext.config.globalProperties; + return !global2.$VIEWUI || global2.$VIEWUI.typography.copyConfig === "" ? defaultCopyConfig : global2.$VIEWUI.typography.copyConfig; + } + }, + editable: { + type: Boolean, + default: false + }, + editConfig: { + type: Object, + default() { + const global2 = getCurrentInstance().appContext.config.globalProperties; + return !global2.$VIEWUI || global2.$VIEWUI.typography.editConfig === "" ? defaultEditConfig : global2.$VIEWUI.typography.editConfig; + } + }, + ellipsis: { + type: Boolean, + default: false + }, + ellipsisConfig: { + type: Object, + default() { + const global2 = getCurrentInstance().appContext.config.globalProperties; + return !global2.$VIEWUI || global2.$VIEWUI.typography.ellipsisConfig === "" ? defaultEllipsisConfig : global2.$VIEWUI.typography.ellipsisConfig; + } + }, + disabled: { + type: Boolean, + default: false + }, + code: { + type: Boolean, + default: false + }, + delete: { + type: Boolean, + default: false + }, + keyboard: { + type: Boolean, + default: false + }, + mark: { + type: Boolean, + default: false + }, + strong: { + type: Boolean, + default: false + }, + underline: { + type: Boolean, + default: false + }, + italic: { + type: Boolean, + default: false + }, + modelValue: { + type: String, + default: "" + }, + transfer: { + type: Boolean, + default() { + const global2 = getCurrentInstance().appContext.config.globalProperties; + return !global2.$VIEWUI || global2.$VIEWUI.transfer === "" ? false : global2.$VIEWUI.transfer; + } + }, + theme: { + validator(value) { + return oneOf(value, ["dark", "light"]); + }, + default: "dark" + }, + maxWidth: { + type: [String, Number], + default: 250 + }, + placement: { + validator(value) { + return oneOf(value, ["top", "top-start", "top-end", "bottom", "bottom-start", "bottom-end", "left", "left-start", "left-end", "right", "right-start", "right-end"]); + }, + default: "top" + } + }, + computed: { + isHrefPattern() { + const { to } = this; + return !!to; + }, + linkProps() { + if (this.isHrefPattern) { + const { linkUrl, target } = this; + return { href: linkUrl, target }; + } else { + return {}; + } + }, + mergedCopyConfig() { + return Object.assign({}, defaultCopyConfig, this.copyConfig); + }, + mergedEditConfig() { + return Object.assign({}, defaultEditConfig, this.editConfig); + }, + mergedEllipsisConfig() { + return Object.assign({}, defaultEllipsisConfig, this.ellipsisConfig); + } + }, + methods: { + commonSlots() { + const slots = {}; + if (this.$slots.default) + slots.default = () => this.$slots.default(); + if (this.$slots.copyIcon) + slots.copyIcon = (props) => this.$slots.copyIcon(props); + if (this.$slots.editIcon) + slots.editIcon = (props) => this.$slots.editIcon(props); + if (this.$slots.enterIcon) + slots.enterIcon = (props) => this.$slots.enterIcon(props); + return slots; + }, + commonEvents() { + return { + "onUpdate:modelValue": this.handleOnUpdateModelValue + }; + }, + handleOnUpdateModelValue(value) { + this.$emit("update:modelValue", value); + } + } +}; +const _sfc_main$17 = { + name: "TypographyBase", + mixins: [baseProps], + emits: ["on-copy-success", "on-copy-error", "on-edit-start", "on-edit-end", "on-edit-change", "on-edit-cancel"], + props: { + component: { + type: String, + default: "div" + }, + level: { + type: Number, + default: 0 + } + }, + data() { + return { + currentContent: this.modelValue, + copied: false, + copyTimeout: null, + editing: false, + editContent: "", + lastKeyCode: "", + isEditESC: false, + ellipsisText: "", + ellipsisContent: "", + isEllipsis: false, + ellipsisExpanded: false, + observer: null + }; + }, + created() { + this.editing = this.mergedEditConfig.editing || false; + if (this.editing) + this.editContent = this.currentContent ? this.currentContent : this.handleGetContent(); + }, + watch: { + modelValue(val) { + this.currentContent = val; + }, + editing(val) { + if (!val) { + nextTick(() => { + this.handleRemoveObserver(); + this.handleCreateObserver(); + }); + } + }, + isEllipsis() { + nextTick(() => { + this.handleRemoveObserver(); + this.handleCreateObserver(); + }); + }, + ellipsis: { + handler(val) { + if (val) { + nextTick(() => { + this.handleUpdateEllipsisStatus(); + this.handleCreateObserver(); + }); + } else { + this.handleRemoveObserver(); + } + }, + immediate: true + } + }, + computed: { + classes() { + return [ + "ivu-typography", + { + [`ivu-typography-${this.type}`]: this.type, + [`ivu-typography-disabled`]: this.disabled, + ["ivu-typography-ellipsis-line-clamp"]: this.ellipsis && !this.ellipsisExpanded, + ["ivu-typography-ellipsis-single-line"]: this.ellipsis && !this.ellipsisExpanded && this.mergedEllipsisConfig.rows === 1 + } + ]; + } + }, + methods: { + wrapperDecorations() { + let content = this.currentContent ? this.currentContent : this.$slots.default ? this.$slots.default() : ""; + function wrap(needed, tag) { + if (!needed) + return; + content = h(tag, content); + } + wrap(this.strong, "strong"); + wrap(this.underline, "u"); + wrap(this.delete, "del"); + wrap(this.code, "code"); + wrap(this.mark, "mark"); + wrap(this.keyboard, "kbd"); + wrap(this.italic, "i"); + return content; + }, + handleClickContent(event) { + if (!this.isHrefPattern && this.component !== "a") { + const triggerType = this.mergedEditConfig.triggerType; + if (this.editable && (triggerType === "text" || triggerType === "both")) + this.handleEdit(); + } else { + const openInNewWindow = event.ctrlKey || event.metaKey; + this.handleCheckClick(event, openInNewWindow); + } + }, + handleGetContent() { + const container = document.createElement("div"); + document.body.appendChild(container); + let Instance = null; + let _instance = null; + let content = ""; + const textNode = this.wrapperDecorations(); + Instance = createApp({ + render() { + return h("div", { + ref: "text", + style: { + display: "none" + } + }, textNode); + }, + created() { + _instance = getCurrentInstance(); + } + }); + Instance.mount(container); + content = _instance.refs.text.innerText; + Instance.unmount(); + document.body.removeChild(container); + return content; + }, + handleCopy() { + let content = ""; + if (this.copyText) + content = this.copyText; + else if (this.currentContent) + content = this.currentContent; + else if (this.$slots.default) + content = this.handleGetContent(); + Copy({ + text: this.copyText ? this.copyText : content, + showTip: this.mergedCopyConfig.showTip, + successTip: this.mergedCopyConfig.successTip, + errorTip: this.mergedCopyConfig.errorTip, + success: () => { + this.$emit("on-copy-success"); + this.copied = true; + if (this.copyTimeout) + clearTimeout(this.copyTimeout); + this.copyTimeout = setTimeout(() => { + this.copied = false; + }, 3e3); + }, + error: () => { + this.$emit("on-copy-error"); + } + }); + }, + handleEdit() { + this.editContent = this.currentContent ? this.currentContent : this.handleGetContent(); + nextTick(() => { + this.editing = true; + this.$emit("on-edit-start"); + nextTick(() => { + this.$refs.edit.focus({ + cursor: "end" + }); + }); + }); + }, + handleEditBlur() { + if (this.isEditESC) { + this.isEditESC = false; + return; + } + this.handleEditSave(); + this.$emit("on-edit-end", this.editContent); + }, + handleEditChange(event) { + const value = event.target.value; + this.editContent = value; + this.$emit("on-edit-change", value); + }, + handleEditSave() { + this.$emit("update:modelValue", this.editContent); + this.editing = false; + }, + handleEditKeydown(e) { + const { keyCode } = e; + if (keyCode === KeyCode.ENTER) + e.preventDefault(); + this.lastKeyCode = keyCode; + }, + handleEditKeyup(e) { + const { keyCode, ctrlKey, altKey, metaKey, shiftKey } = e; + if (this.lastKeyCode === keyCode && !ctrlKey && !altKey && !metaKey && !shiftKey) { + if (keyCode === KeyCode.ENTER) { + this.handleEditSave(); + this.$emit("on-edit-end", this.editContent); + } else if (keyCode === KeyCode.ESC) { + this.isEditESC = true; + this.$emit("on-edit-cancel"); + this.editing = false; + } + } + }, + handleUpdateEllipsisStatus() { + if (this.ellipsis && !this.ellipsisExpanded) { + const $el = this.$refs.typography; + this.isEllipsis = $el.scrollHeight > $el.clientHeight; + } else { + this.isEllipsis = false; + } + }, + handleCreateObserver() { + if (this.ellipsis && !this.ellipsisExpanded) { + this.observer = elementResizeDetector(); + this.observer.listenTo(this.$refs.typography, this.handleUpdateEllipsisStatus); + } + }, + handleRemoveObserver() { + if (this.observer) { + this.observer.removeListener(this.$refs.typography, this.handleUpdateEllipsisStatus); + this.observer = null; + } + } + }, + render() { + let contentNodes = []; + const textNode = this.wrapperDecorations(); + contentNodes.push(textNode); + if (this.editable) { + const triggerType = this.mergedEditConfig.triggerType; + if (triggerType === "icon" || triggerType === "both") { + const editIconNode = this.$slots.editIcon ? this.$slots.editIcon() : h(Icon, { type: "md-create" }); + const editButtonNode = h("div", { + class: "ivu-typography-edit", + onClick: this.handleEdit + }, editIconNode); + if (this.mergedEditConfig.tooltip) { + const editTooltipNode = h(Tooltip, { + content: this.mergedEditConfig.tooltip, + placement: "top" + }, () => editButtonNode); + contentNodes.push(editTooltipNode); + } else { + contentNodes.push(editButtonNode); + } + } + } + if (this.copyable) { + const copyIconNode = this.$slots.copyIcon ? this.$slots.copyIcon({ copied: this.copied }) : h(Icon, { type: this.copied ? "md-checkmark" : "md-copy" }); + const copyButtonNode = h("div", { + class: [ + "ivu-typography-copy", + { + "ivu-typography-copy-success": this.copied + } + ], + onClick: this.handleCopy + }, copyIconNode); + if (this.mergedCopyConfig.tooltips instanceof Array && this.mergedCopyConfig.tooltips.length === 2) { + const copyTooltipNode = h(Tooltip, { + content: this.copied ? this.mergedCopyConfig.tooltips[1] : this.mergedCopyConfig.tooltips[0], + placement: "top" + }, () => copyButtonNode); + contentNodes.push(copyTooltipNode); + } else { + contentNodes.push(copyButtonNode); + } + } + if (this.editing) { + const textareaNode = h(Input, { + ref: "edit", + modelValue: this.editContent, + type: "textarea", + autosize: this.mergedEditConfig.autosize, + maxlength: this.mergedEditConfig.maxlength, + "onOn-blur": this.handleEditBlur, + "onOn-keydown": this.handleEditKeydown, + "onOn-keyup": this.handleEditKeyup, + "onOn-change": this.handleEditChange + }); + const enterIconNode = this.$slots.enterIcon ? this.$slots.enterIcon() : h(Icon, { type: "md-return-left" }); + const confirmNode = h("span", { + class: "ivu-typography-edit-content-confirm" + }, enterIconNode); + return h("div", { + class: [ + "ivu-typography", + "ivu-typography-edit-content", + { + [`ivu-typography-h${this.level}`]: this.level, + ["ivu-typography-div"]: !this.level + } + ] + }, [textareaNode, confirmNode]); + } else { + const style2 = {}; + if (this.ellipsis && !this.ellipsisExpanded) { + style2["-webkit-line-clamp"] = this.mergedEllipsisConfig.rows; + } + let ellipsisExtraNode = null; + const baseNode = h(this.component, { + ref: "typography", + class: this.classes, + ...this.linkProps, + style: style2, + onClick: this.handleClickContent + }, [contentNodes, ellipsisExtraNode]); + if (this.ellipsis && !this.ellipsisExpanded && this.isEllipsis && this.mergedEllipsisConfig.tooltip) { + return h(Tooltip, { + content: this.mergedEllipsisConfig.tooltip === true ? this.handleGetContent() : this.mergedEllipsisConfig.tooltip, + placement: this.placement, + transfer: this.transfer, + theme: this.theme, + maxWidth: this.maxWidth + }, () => baseNode); + } else { + return baseNode; + } + } + }, + beforeUnmount() { + this.handleRemoveObserver(); + } +}; +const _sfc_main$16 = { + name: "Link", + mixins: [baseProps], + render() { + return h(_sfc_main$17, { + ...this.$props, + component: "a", + ...this.commonEvents() + }, this.commonSlots()); + } +}; +function handleGetIndex() { + transferIncrease(); + return transferIndex; +} +let tIndex = handleGetIndex(); +Spin.newInstance = (properties) => { + if (!isClient) + return; + const _props = properties || {}; + let _instance = null; + const Instance = createApp({ + data() { + return Object.assign({}, _props, {}); + }, + render() { + let vnode = ""; + if (this.render) { + vnode = h(Spin, { + fix: true, + fullscreen: true, + ref: "spin" + }, [this.render(h)]); + } else { + vnode = h(Spin, { + size: "large", + fix: true, + fullscreen: true, + ref: "spin" + }); + } + return h("div", { + "class": "ivu-spin-fullscreen ivu-spin-fullscreen-wrapper", + "style": { + "z-index": 2010 + tIndex + } + }, [vnode]); + }, + created() { + _instance = getCurrentInstance(); + } + }); + const container = document.createElement("div"); + document.body.appendChild(container); + Instance.mount(container); + const spin2 = _instance.refs.spin; + return { + show() { + nextTick(() => { + _instance.refs.spin.visible = true; + tIndex = handleGetIndex(); + }); + }, + remove(cb) { + _instance.refs.spin.visible = false; + setTimeout(function() { + Instance.unmount(); + document.body.removeChild(container); + cb(); + }, 500); + }, + component: spin2 + }; +}; +let spinInstance; +function getSpinInstance(render = void 0) { + spinInstance = spinInstance || Spin.newInstance({ + render + }); + return spinInstance; +} +function loading(options) { + const render = "render" in options ? options.render : void 0; + let instance = getSpinInstance(render); + instance.show(options); +} +Spin.show = function(props = {}) { + return loading(props); +}; +Spin.hide = function() { + if (!spinInstance) + return false; + const instance = getSpinInstance(); + instance.remove(() => { + spinInstance = null; + }); +}; +const prefixCls$z = "ivu-list"; +const _sfc_main$15 = { + name: "List", + provide() { + return { + ListInstance: this + }; + }, + components: { Spin }, + props: { + border: { + type: Boolean, + default: false + }, + itemLayout: { + validator(value) { + return oneOf(value, ["horizontal", "vertical"]); + }, + default: "horizontal" + }, + header: { + type: String, + default: "" + }, + footer: { + type: String, + default: "" + }, + loading: { + type: Boolean, + default: false + }, + size: { + validator(value) { + return oneOf(value, ["small", "large", "default"]); + }, + default() { + const global2 = getCurrentInstance().appContext.config.globalProperties; + return !global2.$VIEWUI || global2.$VIEWUI.size === "" ? "default" : global2.$VIEWUI.size; + } + }, + split: { + type: Boolean, + default: true + } + }, + data() { + return {}; + }, + computed: { + classes() { + return [ + `${prefixCls$z}`, + `${prefixCls$z}-${this.size}`, + `${prefixCls$z}-${this.itemLayout}`, + { + [`${prefixCls$z}-bordered`]: this.border, + [`${prefixCls$z}-split`]: this.split + } + ]; + } + }, + methods: {} +}; +const _hoisted_1$B = { + key: 0, + class: "ivu-list-header" +}; +const _hoisted_2$n = { class: "ivu-list-container" }; +const _hoisted_3$j = { class: "ivu-list-items" }; +const _hoisted_4$f = { + key: 2, + class: "ivu-list-footer" +}; +function _sfc_render$X(_ctx, _cache, $props, $setup, $data, $options) { + const _component_Spin = resolveComponent("Spin"); + return openBlock(), createElementBlock("div", { + class: normalizeClass($options.classes) + }, [ + $props.header || _ctx.$slots.header ? (openBlock(), createElementBlock("div", _hoisted_1$B, [ + renderSlot(_ctx.$slots, "header", {}, () => [ + createTextVNode(toDisplayString($props.header), 1) + ]) + ])) : createCommentVNode("", true), + createElementVNode("div", _hoisted_2$n, [ + createElementVNode("ul", _hoisted_3$j, [ + renderSlot(_ctx.$slots, "default") + ]) + ]), + $props.loading ? (openBlock(), createBlock(_component_Spin, { + key: 1, + fix: "", + size: "large" + }, { + default: withCtx(() => [ + renderSlot(_ctx.$slots, "spin") + ]), + _: 3 + })) : createCommentVNode("", true), + $props.footer || _ctx.$slots.footer ? (openBlock(), createElementBlock("div", _hoisted_4$f, [ + renderSlot(_ctx.$slots, "footer", {}, () => [ + createTextVNode(toDisplayString($props.footer), 1) + ]) + ])) : createCommentVNode("", true) + ], 2); +} +var List$1 = /* @__PURE__ */ _export_sfc(_sfc_main$15, [["render", _sfc_render$X]]); +const _sfc_main$14 = { + name: "ListItem", + inject: ["ListInstance"], + props: {}, + computed: { + itemLayout() { + return this.ListInstance.itemLayout; + }, + isItemContainsTextNode() { + let result; + this.$slots.default().forEach((item) => { + if (typeof item === "string") { + result = true; + } + }); + return result; + }, + isFlexMode() { + const extra = this.$slots.extra; + if (this.itemLayout === "vertical") { + return !!extra; + } + return !this.isItemContainsTextNode; + }, + classes() { + return [ + { + "ivu-list-item-no-flex": !this.isFlexMode + } + ]; + } + } +}; +const _hoisted_1$A = { class: "ivu-list-item-main" }; +const _hoisted_2$m = { + key: 0, + class: "ivu-list-item-action" +}; +const _hoisted_3$i = { class: "ivu-list-item-extra" }; +const _hoisted_4$e = { + key: 0, + class: "ivu-list-item-action" +}; +const _hoisted_5$9 = { class: "ivu-list-item-extra" }; +function _sfc_render$W(_ctx, _cache, $props, $setup, $data, $options) { + return openBlock(), createElementBlock("li", { + class: normalizeClass(["ivu-list-item", $options.classes]) + }, [ + $options.itemLayout === "vertical" && _ctx.$slots.extra ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [ + createElementVNode("div", _hoisted_1$A, [ + renderSlot(_ctx.$slots, "default"), + _ctx.$slots.action ? (openBlock(), createElementBlock("ul", _hoisted_2$m, [ + renderSlot(_ctx.$slots, "action") + ])) : createCommentVNode("", true) + ]), + createElementVNode("div", _hoisted_3$i, [ + renderSlot(_ctx.$slots, "extra") + ]) + ], 64)) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [ + renderSlot(_ctx.$slots, "default"), + _ctx.$slots.action ? (openBlock(), createElementBlock("ul", _hoisted_4$e, [ + renderSlot(_ctx.$slots, "action") + ])) : createCommentVNode("", true), + createElementVNode("div", _hoisted_5$9, [ + renderSlot(_ctx.$slots, "extra") + ]) + ], 64)) + ], 2); +} +var ListItem = /* @__PURE__ */ _export_sfc(_sfc_main$14, [["render", _sfc_render$W]]); +const _sfc_main$13 = { + name: "ListItemMeta", + components: { Avatar }, + props: { + avatar: { + type: String, + default: "" + }, + title: { + type: String, + default: "" + }, + description: { + type: String, + default: "" + } + } +}; +const _hoisted_1$z = { class: "ivu-list-item-meta" }; +const _hoisted_2$l = { + key: 0, + class: "ivu-list-item-meta-avatar" +}; +const _hoisted_3$h = { class: "ivu-list-item-meta-content" }; +const _hoisted_4$d = { + key: 0, + class: "ivu-list-item-meta-title" +}; +const _hoisted_5$8 = { + key: 1, + class: "ivu-list-item-meta-description" +}; +function _sfc_render$V(_ctx, _cache, $props, $setup, $data, $options) { + const _component_Avatar = resolveComponent("Avatar"); + return openBlock(), createElementBlock("div", _hoisted_1$z, [ + $props.avatar || _ctx.$slots.avatar ? (openBlock(), createElementBlock("div", _hoisted_2$l, [ + renderSlot(_ctx.$slots, "avatar", {}, () => [ + createVNode(_component_Avatar, { src: $props.avatar }, null, 8, ["src"]) + ]) + ])) : createCommentVNode("", true), + createElementVNode("div", _hoisted_3$h, [ + $props.title || _ctx.$slots.title ? (openBlock(), createElementBlock("div", _hoisted_4$d, [ + renderSlot(_ctx.$slots, "title", {}, () => [ + createTextVNode(toDisplayString($props.title), 1) + ]) + ])) : createCommentVNode("", true), + $props.description || _ctx.$slots.description ? (openBlock(), createElementBlock("div", _hoisted_5$8, [ + renderSlot(_ctx.$slots, "description", {}, () => [ + createTextVNode(toDisplayString($props.description), 1) + ]) + ])) : createCommentVNode("", true) + ]) + ]); +} +var ListItemMeta = /* @__PURE__ */ _export_sfc(_sfc_main$13, [["render", _sfc_render$V]]); +const prefixCls$y = "ivu-loading-bar"; +const _sfc_main$12 = { + name: "LoadingBar", + props: { + color: { + type: String, + default: "primary" + }, + failedColor: { + type: String, + default: "error" + }, + height: { + type: Number, + default: 2 + } + }, + data() { + return { + percent: 0, + status: "success", + show: false + }; + }, + computed: { + classes() { + return `${prefixCls$y}`; + }, + innerClasses() { + return [ + `${prefixCls$y}-inner`, + { + [`${prefixCls$y}-inner-color-primary`]: this.color === "primary" && this.status === "success", + [`${prefixCls$y}-inner-failed-color-error`]: this.failedColor === "error" && this.status === "error" + } + ]; + }, + outerStyles() { + return { + height: `${this.height}px` + }; + }, + styles() { + let style2 = { + width: `${this.percent}%`, + height: `${this.height}px` + }; + if (this.color !== "primary" && this.status === "success") { + style2.backgroundColor = this.color; + } + if (this.failedColor !== "error" && this.status === "error") { + style2.backgroundColor = this.failedColor; + } + return style2; + } + } +}; +function _sfc_render$U(_ctx, _cache, $props, $setup, $data, $options) { + return openBlock(), createBlock(Transition, { name: "fade" }, { + default: withCtx(() => [ + withDirectives(createElementVNode("div", { + class: normalizeClass($options.classes), + style: normalizeStyle($options.outerStyles) + }, [ + createElementVNode("div", { + class: normalizeClass($options.innerClasses), + style: normalizeStyle($options.styles) + }, null, 6) + ], 6), [ + [vShow, $data.show] + ]) + ]), + _: 1 + }); +} +var LoadingBar = /* @__PURE__ */ _export_sfc(_sfc_main$12, [["render", _sfc_render$U]]); +LoadingBar.newInstance = (properties) => { + if (!isClient) + return; + const _props = properties || {}; + let _instance = null; + const Instance = createApp({ + data() { + return _props; + }, + render() { + return h(LoadingBar, Object.assign({ + ref: "loadingBar" + }, _props)); + }, + created() { + _instance = getCurrentInstance(); + } + }); + const container = document.createElement("div"); + document.body.appendChild(container); + Instance.mount(container); + const loading_bar = _instance.refs.loadingBar; + return { + update(options) { + if ("percent" in options) { + loading_bar.percent = options.percent; + } + if (options.status) { + loading_bar.status = options.status; + } + if ("show" in options) { + loading_bar.show = options.show; + } + }, + component: loading_bar, + destroy() { + Instance.unmount(); + document.body.removeChild(container); + } + }; +}; +let loadingBarInstance; +let color = "primary"; +let duration = 800; +let failedColor = "error"; +let height = 2; +let timer; +function getLoadingBarInstance() { + loadingBarInstance = loadingBarInstance || LoadingBar.newInstance({ + color, + failedColor, + height + }); + return loadingBarInstance; +} +function update(options) { + let instance = getLoadingBarInstance(); + instance.update(options); +} +function hide() { + setTimeout(() => { + update({ + show: false + }); + setTimeout(() => { + update({ + percent: 0 + }); + }, 200); + }, duration); +} +function clearTimer() { + if (timer) { + clearInterval(timer); + timer = null; + } +} +var index$3 = { + start() { + if (timer) + return; + let percent = 0; + update({ + percent, + status: "success", + show: true + }); + timer = setInterval(() => { + percent += Math.floor(Math.random() * 3 + 1); + if (percent > 95) { + clearTimer(); + } + update({ + percent, + status: "success", + show: true + }); + }, 200); + }, + update(percent) { + clearTimer(); + update({ + percent, + status: "success", + show: true + }); + }, + finish() { + clearTimer(); + update({ + percent: 100, + status: "success", + show: true + }); + hide(); + }, + error() { + clearTimer(); + update({ + percent: 100, + status: "error", + show: true + }); + hide(); + }, + config(options) { + if (options.color) { + color = options.color; + } + if (options.duration) { + duration = options.duration; + } + if (options.failedColor) { + failedColor = options.failedColor; + } + if (options.height) { + height = options.height; + } + }, + destroy() { + clearTimer(); + let instance = getLoadingBarInstance(); + loadingBarInstance = null; + instance.destroy(); + } +}; +const _sfc_main$11 = { + name: "Login", + components: { Form }, + emits: ["on-submit"], + provide() { + return { + LoginInstance: this + }; + }, + props: {}, + data() { + return { + formValidate: {} + }; + }, + methods: { + handleSubmit() { + this.$refs.form.validate((valid) => { + this.$emit("on-submit", valid, JSON.parse(JSON.stringify(this.formValidate))); + }); + }, + handleValidate(fields, cb) { + let status = true; + fields.forEach((field) => { + this.$refs.form.validateField(field, (valid) => { + if (valid) + status = false; + }); + }); + cb(status); + } + } +}; +const _hoisted_1$y = { class: "ivu-login" }; +function _sfc_render$T(_ctx, _cache, $props, $setup, $data, $options) { + const _component_Form = resolveComponent("Form"); + return openBlock(), createElementBlock("div", _hoisted_1$y, [ + createVNode(_component_Form, { + ref: "form", + model: $data.formValidate, + onSubmit: _cache[0] || (_cache[0] = withModifiers(() => { + }, ["prevent"])) + }, { + default: withCtx(() => [ + renderSlot(_ctx.$slots, "default") + ]), + _: 3 + }, 8, ["model"]) + ]); +} +var Login = /* @__PURE__ */ _export_sfc(_sfc_main$11, [["render", _sfc_render$T]]); +const prefixCls$x = "ivu-menu"; +const _sfc_main$10 = { + name: "Menu", + emits: ["on-select", "on-open-change"], + provide() { + return { + MenuInstance: this + }; + }, + props: { + mode: { + validator(value) { + return oneOf(value, ["horizontal", "vertical"]); + }, + default: "vertical" + }, + theme: { + validator(value) { + return oneOf(value, ["light", "dark", "primary"]); + }, + default: "light" + }, + activeName: { + type: [String, Number] + }, + openNames: { + type: Array, + default() { + return []; + } + }, + accordion: { + type: Boolean, + default: false + }, + width: { + type: String, + default: "240px" + } + }, + data() { + return { + currentActiveName: this.activeName, + openedNames: [], + submenuList: [], + menuItemList: [], + ready: false + }; + }, + computed: { + classes() { + let theme = this.theme; + if (this.mode === "vertical" && this.theme === "primary") + theme = "light"; + return [ + `${prefixCls$x}`, + `${prefixCls$x}-${theme}`, + { + [`${prefixCls$x}-${this.mode}`]: this.mode + } + ]; + }, + styles() { + let style2 = {}; + if (this.mode === "vertical") + style2.width = this.width; + return style2; + } + }, + methods: { + updateActiveName() { + if (this.currentActiveName === void 0) { + this.currentActiveName = -1; + } + this.submenuList.map((item) => item.submenu).forEach((item) => { + item.handleUpdateActiveName(false); + }); + this.menuItemList.map((item) => item.menuitem).forEach((item) => { + item.handleUpdateActiveName(this.currentActiveName); + }); + }, + updateOpenKeys(name2) { + let names2 = [...this.openedNames]; + const index2 = names2.indexOf(name2); + const submenuList = this.submenuList.map((item) => item.submenu); + if (this.accordion) + submenuList.forEach((item) => { + item.opened = false; + }); + if (index2 >= 0) { + let currentSubmenu = null; + submenuList.forEach((item) => { + if (item.name === name2) { + currentSubmenu = item; + item.opened = false; + } + }); + findComponentsUpward(currentSubmenu, "Submenu").forEach((item) => { + item.opened = true; + }); + currentSubmenu.childSubmenuList.map((item) => item.submenu).forEach((item) => { + item.opened = false; + }); + } else { + if (this.accordion) { + let currentSubmenu = null; + submenuList.forEach((item) => { + if (item.name === name2) { + currentSubmenu = item; + item.opened = true; + } + }); + findComponentsUpward(currentSubmenu, "Submenu").forEach((item) => { + item.opened = true; + }); + } else { + const submenuList2 = this.submenuList.map((item) => item.submenu); + submenuList2.forEach((item) => { + if (item.name === name2) + item.opened = true; + }); + } + } + let openedNames = submenuList.filter((item) => item.opened).map((item) => item.name); + this.openedNames = [...openedNames]; + this.$emit("on-open-change", openedNames); + }, + updateOpened() { + const items = (this.submenuList || []).map((item) => item.submenu); + if (items.length) { + items.forEach((item) => { + if (this.openedNames.indexOf(item.name) > -1) + item.opened = true; + else + item.opened = false; + }); + } + }, + handleEmitSelectEvent(name2) { + this.$emit("on-select", name2); + }, + handleMenuItemSelect(name2) { + this.currentActiveName = name2; + this.$emit("on-select", name2); + } + }, + mounted() { + this.openedNames = [...this.openNames]; + this.updateOpened(); + nextTick(() => { + this.updateActiveName(); + this.ready = true; + }); + }, + watch: { + openNames(names2) { + this.openedNames = names2; + }, + activeName(val) { + this.currentActiveName = val; + }, + currentActiveName() { + this.updateActiveName(); + } + } +}; +function _sfc_render$S(_ctx, _cache, $props, $setup, $data, $options) { + return openBlock(), createElementBlock("ul", { + class: normalizeClass($options.classes), + style: normalizeStyle($options.styles) + }, [ + renderSlot(_ctx.$slots, "default") + ], 6); +} +var Menu = /* @__PURE__ */ _export_sfc(_sfc_main$10, [["render", _sfc_render$S]]); +var mixin = { + inject: { + MenuInstance: { + default: null + }, + SubmenuInstance: { + default: null + } + }, + data() { + return { + menu: this.MenuInstance + }; + }, + computed: { + hasParentSubmenu() { + return !!this.SubmenuInstance; + }, + parentSubmenuNum() { + return findComponentsUpward(this, "Submenu").length; + }, + mode() { + return this.MenuInstance.mode; + } + } +}; +const prefixCls$w = "ivu-menu"; +const _sfc_main$$ = { + name: "MenuGroup", + mixins: [mixin], + props: { + title: { + type: String, + default: "" + } + }, + data() { + return { + prefixCls: prefixCls$w + }; + }, + computed: { + groupStyle() { + return this.hasParentSubmenu && this.mode !== "horizontal" ? { + paddingLeft: 43 + (this.parentSubmenuNum - 1) * 28 + "px" + } : {}; + } + } +}; +function _sfc_render$R(_ctx, _cache, $props, $setup, $data, $options) { + return openBlock(), createElementBlock("li", { + class: normalizeClass([$data.prefixCls + "-item-group"]) + }, [ + createElementVNode("div", { + class: normalizeClass([$data.prefixCls + "-item-group-title"]), + style: normalizeStyle($options.groupStyle) + }, toDisplayString($props.title), 7), + createElementVNode("ul", null, [ + renderSlot(_ctx.$slots, "default") + ]) + ], 2); +} +var MenuGroup = /* @__PURE__ */ _export_sfc(_sfc_main$$, [["render", _sfc_render$R]]); +const prefixCls$v = "ivu-menu"; +const _sfc_main$_ = { + name: "MenuItem", + mixins: [mixin, mixinsLink], + props: { + name: { + type: [String, Number], + required: true + }, + disabled: { + type: Boolean, + default: false + } + }, + data() { + return { + active: false, + id: random(6) + }; + }, + computed: { + classes() { + return [ + `${prefixCls$v}-item`, + { + [`${prefixCls$v}-item-active`]: this.active, + [`${prefixCls$v}-item-selected`]: this.active, + [`${prefixCls$v}-item-disabled`]: this.disabled + } + ]; + }, + itemStyle() { + return this.hasParentSubmenu && this.mode !== "horizontal" ? { + paddingLeft: 43 + (this.parentSubmenuNum - 1) * 24 + "px" + } : {}; + } + }, + methods: { + handleClickItem(event, new_window = false) { + if (this.disabled) + return; + if (new_window || this.target === "_blank") { + this.handleCheckClick(event, new_window); + let parentMenu = findComponentUpward(this, "Menu"); + if (parentMenu) + parentMenu.handleEmitSelectEvent(this.name); + } else { + let parent = findComponentUpward(this, "Submenu"); + if (parent) { + this.SubmenuInstance.handleMenuItemSelect(this.name); + } else { + this.MenuInstance.handleMenuItemSelect(this.name); + } + this.handleCheckClick(event, new_window); + } + }, + handleUpdateActiveName(name2) { + if (this.name === name2) { + this.active = true; + if (this.SubmenuInstance) + this.SubmenuInstance.handleUpdateActiveName(name2); + } else { + this.active = false; + } + }, + addMenuItem() { + const root2 = this.MenuInstance; + if (!root2.menuItemList) + root2.menuItemList = []; + root2.menuItemList.push({ + id: this.id, + menuitem: this + }); + }, + removeMenuItem() { + const root2 = this.MenuInstance; + if (root2.menuItemList && root2.menuItemList.length) { + const index2 = root2.menuItemList.findIndex((item) => item.id === this.id); + root2.menuItemList.splice(index2, 1); + } + } + }, + mounted() { + this.addMenuItem(); + }, + beforeUnmount() { + this.removeMenuItem(); + } +}; +const _hoisted_1$x = ["href", "target"]; +function _sfc_render$Q(_ctx, _cache, $props, $setup, $data, $options) { + return _ctx.to ? (openBlock(), createElementBlock("a", { + key: 0, + href: _ctx.linkUrl, + target: _ctx.target, + class: normalizeClass($options.classes), + onClick: [ + _cache[0] || (_cache[0] = withModifiers(($event) => $options.handleClickItem($event, false), ["exact"])), + _cache[1] || (_cache[1] = withModifiers(($event) => $options.handleClickItem($event, true), ["ctrl"])), + _cache[2] || (_cache[2] = withModifiers(($event) => $options.handleClickItem($event, true), ["meta"])) + ], + style: normalizeStyle($options.itemStyle) + }, [ + renderSlot(_ctx.$slots, "default") + ], 14, _hoisted_1$x)) : (openBlock(), createElementBlock("li", { + key: 1, + class: normalizeClass($options.classes), + onClick: _cache[3] || (_cache[3] = withModifiers((...args) => $options.handleClickItem && $options.handleClickItem(...args), ["stop"])), + style: normalizeStyle($options.itemStyle) + }, [ + renderSlot(_ctx.$slots, "default") + ], 6)); +} +var MenuItem = /* @__PURE__ */ _export_sfc(_sfc_main$_, [["render", _sfc_render$Q]]); +const _sfc_main$Z = { + name: "Mobile", + mixins: [LoginItem], + data() { + return { + className: "ivu-login-mobile", + prefix: "ios-phone-portrait", + placeholder: "\u8BF7\u8F93\u5165\u624B\u673A\u53F7\u7801", + type: "text" + }; + }, + props: { + rules: { + type: [Object, Array], + default() { + return [ + { + required: true, + message: defaultValidateMessage["Mobile"], + trigger: "change" + }, + { + pattern: /^1\d{10}$/, + message: "\u8F93\u5165\u7684\u624B\u673A\u53F7\u7801\u683C\u5F0F\u4E0D\u6B63\u786E\uFF01", + trigger: "change" + } + ]; + } + } + } +}; +const prefixCls$u = "ivu-modal"; +const dragData = { + x: null, + y: null, + dragX: null, + dragY: null, + dragging: false, + rect: null +}; +const _sfc_main$Y = { + inheritAttrs: false, + name: "Modal", + mixins: [Locale, ScrollbarMixins], + components: { Icon, iButton: _sfc_main$2c }, + emits: ["on-cancel", "on-ok", "on-hidden", "on-visible-change", "update:modelValue"], + provide() { + return { + ModalInstance: this + }; + }, + props: { + modelValue: { + type: Boolean, + default: false + }, + closable: { + type: Boolean, + default: true + }, + maskClosable: { + type: Boolean, + default() { + const global2 = getCurrentInstance().appContext.config.globalProperties; + return !global2.$VIEWUI || global2.$VIEWUI.modal.maskClosable === "" ? true : global2.$VIEWUI.modal.maskClosable; + } + }, + title: { + type: String + }, + width: { + type: [Number, String], + default: 520 + }, + okText: { + type: String + }, + cancelText: { + type: String + }, + loading: { + type: Boolean, + default: false + }, + styles: { + type: Object, + default() { + return {}; + } + }, + className: { + type: String + }, + footerHide: { + type: Boolean, + default: false + }, + scrollable: { + type: Boolean, + default: false + }, + transitionNames: { + type: Array, + default() { + return ["ease", "fade"]; + } + }, + transfer: { + type: Boolean, + default() { + const global2 = getCurrentInstance().appContext.config.globalProperties; + return !global2.$VIEWUI || global2.$VIEWUI.transfer === "" ? true : global2.$VIEWUI.transfer; + } + }, + fullscreen: { + type: Boolean, + default: false + }, + mask: { + type: Boolean, + default: true + }, + draggable: { + type: Boolean, + default: false + }, + sticky: { + type: Boolean, + default: false + }, + stickyDistance: { + type: Number, + default: 10 + }, + resetDragPosition: { + type: Boolean, + default: false + }, + zIndex: { + type: Number, + default: 1e3 + }, + beforeClose: Function, + render: Function + }, + data() { + return { + prefixCls: prefixCls$u, + wrapShow: false, + showHead: true, + buttonLoading: false, + visible: this.modelValue, + dragData: deepCopy(dragData), + modalIndex: this.handleGetModalIndex(), + isMouseTriggerIn: false, + id: random(6), + tableList: [], + sliderList: [] + }; + }, + computed: { + wrapClasses() { + return [ + `${prefixCls$u}-wrap`, + { + [`${prefixCls$u}-hidden`]: !this.wrapShow, + [`${this.className}`]: !!this.className, + [`${prefixCls$u}-no-mask`]: !this.showMask + } + ]; + }, + wrapStyles() { + return { + zIndex: this.modalIndex + this.zIndex + }; + }, + maskClasses() { + return `${prefixCls$u}-mask`; + }, + classes() { + return [ + `${prefixCls$u}`, + { + [`${prefixCls$u}-fullscreen`]: this.fullscreen, + [`${prefixCls$u}-fullscreen-no-header`]: this.fullscreen && !this.showHead, + [`${prefixCls$u}-fullscreen-no-footer`]: this.fullscreen && this.footerHide + } + ]; + }, + contentClasses() { + return [ + `${prefixCls$u}-content`, + { + [`${prefixCls$u}-content-no-mask`]: !this.showMask, + [`${prefixCls$u}-content-drag`]: this.draggable && !this.fullscreen, + [`${prefixCls$u}-content-dragging`]: this.draggable && this.dragData.dragging + } + ]; + }, + mainStyles() { + let style2 = {}; + const width = parseInt(this.width); + const styleWidth = this.dragData.x !== null ? { + top: 0 + } : { + width: width <= 100 ? `${width}%` : `${width}px` + }; + const customStyle = this.styles ? this.styles : {}; + Object.assign(style2, styleWidth, customStyle); + return style2; + }, + contentStyles() { + let style2 = {}; + if (this.draggable && !this.fullscreen) { + const customTop = this.styles.top ? parseFloat(this.styles.top) : 0; + const customLeft = this.styles.left ? parseFloat(this.styles.left) : 0; + if (this.dragData.x !== null) + style2.left = `${this.dragData.x - customLeft}px`; + if (this.dragData.y !== null) + style2.top = `${this.dragData.y}px`; + if (this.dragData.y !== null) + style2.top = `${this.dragData.y - customTop}px`; + const width = parseInt(this.width); + const styleWidth = { + width: width <= 100 ? `${width}%` : `${width}px` + }; + Object.assign(style2, styleWidth); + } + return style2; + }, + localeOkText() { + if (this.okText === void 0) { + return this.t("i.modal.okText"); + } else { + return this.okText; + } + }, + localeCancelText() { + if (this.cancelText === void 0) { + return this.t("i.modal.cancelText"); + } else { + return this.cancelText; + } + }, + showMask() { + return this.mask; + } + }, + methods: { + close() { + if (!this.beforeClose) { + return this.handleClose(); + } + const before = this.beforeClose(); + if (before && before.then) { + before.then(() => { + this.handleClose(); + }); + } else { + this.handleClose(); + } + }, + handleClose() { + this.visible = false; + this.$emit("update:modelValue", false); + this.$emit("on-cancel"); + }, + handleMask() { + if (this.maskClosable && this.showMask) { + this.close(); + } + }, + handleWrapClick(event) { + if (this.isMouseTriggerIn) { + this.isMouseTriggerIn = false; + return; + } + const className = event.target.getAttribute("class"); + if (className && className.indexOf(`${prefixCls$u}-wrap`) > -1) + this.handleMask(); + }, + handleMousedown() { + this.isMouseTriggerIn = true; + }, + cancel() { + this.close(); + }, + ok() { + if (this.loading) { + this.buttonLoading = true; + } else { + this.visible = false; + this.$emit("update:modelValue", false); + } + this.$emit("on-ok"); + }, + EscClose(e) { + if (this.visible && this.closable) { + if (e.keyCode === 27) { + const $Modals = this.$root.modalList.map((item) => item.modal).filter((item) => item.$data.visible && item.$props.closable); + const $TopModal = $Modals.sort((a, b) => { + return a.$data.modalIndex < b.$data.modalIndex ? 1 : -1; + })[0]; + setTimeout(() => { + $TopModal.close(); + }, 0); + } + } + }, + animationFinish() { + this.$emit("on-hidden"); + }, + handleMoveStart(event) { + if (!this.draggable || this.fullscreen) + return false; + const $content = this.$refs.content; + const rect = $content.getBoundingClientRect(); + this.dragData.rect = rect; + this.dragData.x = rect.x || rect.left; + this.dragData.y = rect.y || rect.top; + const distance = { + x: event.clientX, + y: event.clientY + }; + this.dragData.dragX = distance.x; + this.dragData.dragY = distance.y; + this.dragData.dragging = true; + on(window, "mousemove", this.handleMoveMove); + on(window, "mouseup", this.handleMoveEnd); + }, + handleMoveMove(event) { + if (!this.dragData.dragging || this.fullscreen) + return false; + const distance = { + x: event.clientX, + y: event.clientY + }; + const diff_distance = { + x: distance.x - this.dragData.dragX, + y: distance.y - this.dragData.dragY + }; + if (isClient && this.sticky) { + const clientWidth = document.documentElement.clientWidth; + const clientHeight = document.documentElement.clientHeight; + if (this.dragData.x + diff_distance.x <= this.stickyDistance && diff_distance.x < 0) { + this.dragData.x = 0; + } else if (this.dragData.x + this.dragData.rect.width - clientWidth > -this.stickyDistance && diff_distance.x > 0) { + this.dragData.x = clientWidth - this.dragData.rect.width; + } else { + this.dragData.x += diff_distance.x; + } + if (this.dragData.y + diff_distance.y <= this.stickyDistance && diff_distance.y < 0) { + this.dragData.y = 0; + } else if (this.dragData.y + this.dragData.rect.height - clientHeight > -this.stickyDistance && diff_distance.y > 0) { + this.dragData.y = clientHeight - this.dragData.rect.height; + } else { + this.dragData.y += diff_distance.y; + } + } else { + this.dragData.x += diff_distance.x; + this.dragData.y += diff_distance.y; + } + this.dragData.dragX = distance.x; + this.dragData.dragY = distance.y; + }, + handleMoveEnd() { + this.dragData.dragging = false; + off(window, "mousemove", this.handleMoveMove); + off(window, "mouseup", this.handleMoveEnd); + }, + handleGetModalIndex() { + transferIncrease(); + return transferIndex; + }, + handleClickModal() { + if (this.draggable) { + if (lastVisibleIndex !== this.lastVisibleIndex) { + this.lastVisibleIndex = lastVisibleIndex; + return; + } + this.modalIndex = this.handleGetModalIndex(); + } + }, + addModal() { + const root2 = this.$root; + if (!root2.modalList) + root2.modalList = []; + root2.modalList.push({ + id: this.id, + modal: this + }); + }, + removeModal() { + const root2 = this.$root; + if (!root2.modalList) + return; + const index2 = root2.modalList.findIndex((item) => item.id === this.id); + root2.modalList.splice(index2, 1); + } + }, + watch: { + modelValue(val) { + this.visible = val; + }, + visible(val) { + if (val === false) { + this.buttonLoading = false; + this.timer = setTimeout(() => { + this.wrapShow = false; + this.removeScrollEffect(); + }, 300); + } else { + if (this.lastVisible !== val) { + this.modalIndex = this.handleGetModalIndex(); + lastVisibleIncrease(); + } + if (this.timer) + clearTimeout(this.timer); + this.wrapShow = true; + if (!this.scrollable) { + this.addScrollEffect(); + } + } + this.tableList.forEach((item) => { + item.table.handleOnVisibleChange(val); + }); + this.sliderList.forEach((item) => { + item.slider.handleOnVisibleChange(val); + }); + this.$emit("on-visible-change", val); + this.lastVisible = val; + this.lastVisibleIndex = lastVisibleIndex; + if (val && this.resetDragPosition) { + this.dragData = deepCopy(dragData); + } + }, + loading(val) { + if (!val) { + this.buttonLoading = false; + } + }, + scrollable(val) { + if (!val) { + this.addScrollEffect(); + } else { + this.removeScrollEffect(); + } + }, + title(val) { + if (this.$slots.header === void 0) { + this.showHead = !!val; + } + } + }, + mounted() { + if (this.visible) { + this.wrapShow = true; + } + let showHead = true; + if (this.$slots.header === void 0 && !this.title) { + showHead = false; + } + this.showHead = showHead; + this.addModal(); + isClient && document.addEventListener("keydown", this.EscClose); + }, + beforeUnmount() { + this.removeModal(); + isClient && document.removeEventListener("keydown", this.EscClose); + this.removeScrollEffect(); + } +}; +function _sfc_render$P(_ctx, _cache, $props, $setup, $data, $options) { + const _component_Icon = resolveComponent("Icon"); + const _component_i_button = resolveComponent("i-button"); + return openBlock(), createBlock(Teleport, { + to: "body", + disabled: !$props.transfer + }, [ + createVNode(Transition, { + name: $props.transitionNames[1] + }, { + default: withCtx(() => [ + $options.showMask ? withDirectives((openBlock(), createElementBlock("div", { + key: 0, + class: normalizeClass($options.maskClasses), + style: normalizeStyle($options.wrapStyles), + onClick: _cache[0] || (_cache[0] = (...args) => $options.handleMask && $options.handleMask(...args)) + }, null, 6)), [ + [vShow, $data.visible] + ]) : createCommentVNode("", true) + ]), + _: 1 + }, 8, ["name"]), + createElementVNode("div", { + class: normalizeClass($options.wrapClasses), + style: normalizeStyle($options.wrapStyles), + onClick: _cache[5] || (_cache[5] = (...args) => $options.handleWrapClick && $options.handleWrapClick(...args)) + }, [ + createVNode(Transition, { + name: $props.transitionNames[0], + onAfterLeave: $options.animationFinish + }, { + default: withCtx(() => [ + withDirectives(createElementVNode("div", mergeProps(_ctx.$attrs, { + class: $options.classes, + style: $options.mainStyles, + onMousedown: _cache[4] || (_cache[4] = (...args) => $options.handleMousedown && $options.handleMousedown(...args)) + }), [ + createElementVNode("div", { + class: normalizeClass($options.contentClasses), + ref: "content", + style: normalizeStyle($options.contentStyles), + onClick: _cache[3] || (_cache[3] = (...args) => $options.handleClickModal && $options.handleClickModal(...args)) + }, [ + $props.closable ? (openBlock(), createElementBlock("a", { + key: 0, + class: normalizeClass([$data.prefixCls + "-close"]), + onClick: _cache[1] || (_cache[1] = (...args) => $options.close && $options.close(...args)) + }, [ + renderSlot(_ctx.$slots, "close", {}, () => [ + createVNode(_component_Icon, { type: "ios-close" }) + ]) + ], 2)) : createCommentVNode("", true), + $data.showHead ? (openBlock(), createElementBlock("div", { + key: 1, + class: normalizeClass([$data.prefixCls + "-header"]), + onMousedown: _cache[2] || (_cache[2] = (...args) => $options.handleMoveStart && $options.handleMoveStart(...args)) + }, [ + renderSlot(_ctx.$slots, "header", {}, () => [ + createElementVNode("div", { + class: normalizeClass([$data.prefixCls + "-header-inner"]) + }, toDisplayString($props.title), 3) + ]) + ], 34)) : createCommentVNode("", true), + createElementVNode("div", { + class: normalizeClass([$data.prefixCls + "-body"]) + }, [ + renderSlot(_ctx.$slots, "default") + ], 2), + !$props.footerHide ? (openBlock(), createElementBlock("div", { + key: 2, + class: normalizeClass([$data.prefixCls + "-footer"]) + }, [ + renderSlot(_ctx.$slots, "footer", {}, () => [ + createVNode(_component_i_button, { + type: "text", + onClick: $options.cancel + }, { + default: withCtx(() => [ + createTextVNode(toDisplayString($options.localeCancelText), 1) + ]), + _: 1 + }, 8, ["onClick"]), + createVNode(_component_i_button, { + type: "primary", + loading: $data.buttonLoading, + onClick: $options.ok + }, { + default: withCtx(() => [ + createTextVNode(toDisplayString($options.localeOkText), 1) + ]), + _: 1 + }, 8, ["loading", "onClick"]) + ]) + ], 2)) : createCommentVNode("", true) + ], 6) + ], 16), [ + [vShow, $data.visible] + ]) + ]), + _: 3 + }, 8, ["name", "onAfterLeave"]) + ], 6) + ], 8, ["disabled"]); +} +var Modal = /* @__PURE__ */ _export_sfc(_sfc_main$Y, [["render", _sfc_render$P]]); +const prefixCls$t = "ivu-modal-confirm"; +Modal.newInstance = (properties) => { + if (!isClient) + return; + const _props = properties || {}; + const container = document.createElement("div"); + document.body.appendChild(container); + let _instance = null; + const Instance = createApp({ + mixins: [Locale], + data() { + return Object.assign({}, _props, { + visible: false, + width: 416, + title: "", + body: "", + iconType: "", + iconName: "", + okText: void 0, + cancelText: void 0, + showCancel: false, + loading: false, + buttonLoading: false, + scrollable: false, + closable: false, + closing: false + }); + }, + render() { + let footerVNodes = []; + if (this.showCancel) { + footerVNodes.push(h(_sfc_main$2c, { + type: "text", + onClick: this.cancel + }, () => this.localeCancelText)); + } + footerVNodes.push(h(_sfc_main$2c, { + type: "primary", + loading: this.buttonLoading, + onClick: this.ok + }, () => this.localeOkText)); + let body_render; + if (this.render) { + body_render = h("div", { + class: `${prefixCls$t}-body ${prefixCls$t}-body-render` + }, [this.render(h)]); + } else { + body_render = h("div", { + class: `${prefixCls$t}-body` + }, [ + h("div", { + innerHTML: this.body + }) + ]); + } + let head_render; + if (this.title) { + head_render = h("div", { + class: `${prefixCls$t}-head` + }, [ + h("div", { + class: this.iconTypeCls + }, [ + h("i", { + class: this.iconNameCls + }) + ]), + h("div", { + class: `${prefixCls$t}-head-title`, + innerHTML: this.title + }) + ]); + } + return h( + Modal, + Object.assign({}, _props, { + width: this.width, + scrollable: this.scrollable, + closable: this.closable, + ref: "modal" + }, { + modelValue: this.visible, + "onUpdate:modelValue": (status) => this.visible = status, + "onOn-cancel": this.cancel + }), + () => h("div", { + class: prefixCls$t + }, [ + head_render, + body_render, + h("div", { + class: `${prefixCls$t}-footer` + }, footerVNodes) + ]) + ); + }, + computed: { + iconTypeCls() { + return [ + `${prefixCls$t}-head-icon`, + `${prefixCls$t}-head-icon-${this.iconType}` + ]; + }, + iconNameCls() { + return [ + "ivu-icon", + `ivu-icon-${this.iconName}` + ]; + }, + localeOkText() { + if (this.okText) { + return this.okText; + } else { + return this.t("i.modal.okText"); + } + }, + localeCancelText() { + if (this.cancelText) { + return this.cancelText; + } else { + return this.t("i.modal.cancelText"); + } + } + }, + methods: { + cancel() { + if (this.closing) + return; + this.$refs.modal.visible = false; + this.buttonLoading = false; + this.onCancel(); + this.remove(); + }, + ok() { + if (this.closing) + return; + if (this.loading) { + this.buttonLoading = true; + } else { + this.$refs.modal.visible = false; + this.remove(); + } + this.onOk(); + }, + remove() { + this.closing = true; + setTimeout(() => { + this.closing = false; + this.destroy(); + }, 300); + }, + destroy() { + Instance.unmount(); + document.body.removeChild(container); + this.onRemove(); + }, + onOk() { + }, + onCancel() { + }, + onRemove() { + } + }, + created() { + _instance = getCurrentInstance(); + } + }); + Instance.mount(container); + const modal = _instance.refs.modal; + return { + show(props) { + modal.$parent.showCancel = props.showCancel; + modal.$parent.iconType = props.icon; + switch (props.icon) { + case "info": + modal.$parent.iconName = "ios-information-circle"; + break; + case "success": + modal.$parent.iconName = "ios-checkmark-circle"; + break; + case "warning": + modal.$parent.iconName = "ios-alert"; + break; + case "error": + modal.$parent.iconName = "ios-close-circle"; + break; + case "confirm": + modal.$parent.iconName = "ios-help-circle"; + break; + } + if ("width" in props) { + modal.$parent.width = props.width; + } + if ("closable" in props) { + modal.$parent.closable = props.closable; + } + if ("title" in props) { + modal.$parent.title = props.title; + } + if ("content" in props) { + modal.$parent.body = props.content; + } + if ("okText" in props) { + modal.$parent.okText = props.okText; + } + if ("cancelText" in props) { + modal.$parent.cancelText = props.cancelText; + } + if ("onCancel" in props) { + modal.$parent.onCancel = props.onCancel; + } + if ("onOk" in props) { + modal.$parent.onOk = props.onOk; + } + if ("loading" in props) { + modal.$parent.loading = props.loading; + } + if ("scrollable" in props) { + modal.$parent.scrollable = props.scrollable; + } + modal.$parent.onRemove = props.onRemove; + modal.visible = true; + }, + remove() { + modal.visible = false; + modal.$parent.buttonLoading = false; + modal.$parent.remove(); + }, + component: modal + }; +}; +let modalInstance; +function getModalInstance(render = void 0, lockScroll = true) { + modalInstance = modalInstance || Modal.newInstance({ + closable: false, + maskClosable: false, + footerHide: true, + render, + lockScroll + }); + return modalInstance; +} +function confirm(options) { + const render = "render" in options ? options.render : void 0; + const lockScroll = "lockScroll" in options ? options.lockScroll : true; + let instance = getModalInstance(render, lockScroll); + options.onRemove = function() { + modalInstance = null; + }; + instance.show(options); +} +Modal.info = function(props = {}) { + props.icon = "info"; + props.showCancel = false; + return confirm(props); +}; +Modal.success = function(props = {}) { + props.icon = "success"; + props.showCancel = false; + return confirm(props); +}; +Modal.warning = function(props = {}) { + props.icon = "warning"; + props.showCancel = false; + return confirm(props); +}; +Modal.error = function(props = {}) { + props.icon = "error"; + props.showCancel = false; + return confirm(props); +}; +Modal.confirm = function(props = {}) { + props.icon = "confirm"; + props.showCancel = true; + return confirm(props); +}; +Modal.remove = function() { + if (!modalInstance) { + return false; + } + const instance = getModalInstance(); + instance.remove(); +}; +const prefixCls$s = "ivu-notice"; +const iconPrefixCls$1 = "ivu-icon"; +const prefixKey = "ivu_notice_key_"; +let top = 24; +let defaultDuration = 4.5; +let noticeInstance; +let name$1 = 1; +const iconTypes = { + "info": "ios-information-circle", + "success": "ios-checkmark-circle", + "warning": "ios-alert", + "error": "ios-close-circle" +}; +const transitionName = "move-notice"; +function getNoticeInstance() { + noticeInstance = noticeInstance || Notification$1.newInstance({ + prefixCls: prefixCls$s, + styles: { + top: `${top}px`, + right: 0 + }, + transitionName + }); + return noticeInstance; +} +function notice(type2, options) { + const title2 = options.title || ""; + const desc = options.desc || ""; + const noticeKey = options.name || `${prefixKey}${name$1}`; + const onClose = options.onClose || function() { + }; + const render = options.render; + const duration2 = options.duration === 0 ? 0 : options.duration || defaultDuration; + name$1++; + let instance = getNoticeInstance(); + let content; + let withIcon; + const with_desc = options.render && !title2 ? "" : desc || options.render ? ` ${prefixCls$s}-with-desc` : ""; + if (type2 === "normal") { + withIcon = false; + content = ` +
+
${title2}
+
${desc}
+
+ `; + } else { + const iconType = iconTypes[type2]; + const outlineIcon = with_desc === "" ? "" : "-outline"; + withIcon = true; + content = ` +
+ + + +
${title2}
+
${desc}
+
+ `; + } + instance.notice({ + name: noticeKey.toString(), + duration: duration2, + styles: {}, + transitionName, + content, + withIcon, + render, + hasTitle: !!title2, + onClose, + closable: true, + type: "notice" + }); +} +var index$2 = { + open(options) { + return notice("normal", options); + }, + info(options) { + return notice("info", options); + }, + success(options) { + return notice("success", options); + }, + warning(options) { + return notice("warning", options); + }, + error(options) { + return notice("error", options); + }, + config(options) { + if (options.top) { + top = options.top; + } + if (options.duration || options.duration === 0) { + defaultDuration = options.duration; + } + }, + close(name2) { + if (name2) { + name2 = name2.toString(); + if (noticeInstance) { + noticeInstance.remove(name2); + } + } else { + return false; + } + }, + destroy() { + let instance = getNoticeInstance(); + noticeInstance = null; + instance.destroy("ivu-notice"); + } +}; +const prefixCls$r = "ivu-tabs"; +const transitionTime = 300; +const getNextTab = (list, activeKey, direction, countDisabledAlso) => { + const currentIndex = list.findIndex((tab) => tab.name === activeKey); + const nextIndex = (currentIndex + direction + list.length) % list.length; + const nextTab = list[nextIndex]; + if (nextTab.disabled) + return getNextTab(list, nextTab.name, direction); + else + return nextTab; +}; +const focusFirst = (element, root2) => { + try { + element.focus(); + } catch (err) { + } + if (isClient && document.activeElement == element && element !== root2) + return true; + const candidates = element.children; + for (let candidate of candidates) { + if (focusFirst(candidate, root2)) + return true; + } + return false; +}; +const _sfc_main$X = { + name: "Tabs", + mixins: [globalConfig], + emits: ["on-click", "on-dblclick", "on-contextmenu", "on-tab-remove", "on-drag-drop", "update:modelValue"], + components: { Icon, Render: Render$1, Dropdown, DropdownMenu }, + provide() { + return { + TabsInstance: this + }; + }, + props: { + modelValue: { + type: [String, Number] + }, + type: { + validator(value) { + return oneOf(value, ["line", "card"]); + }, + default: "line" + }, + size: { + validator(value) { + return oneOf(value, ["small", "default"]); + }, + default: "default" + }, + animated: { + type: Boolean, + default: true + }, + captureFocus: { + type: Boolean, + default: false + }, + closable: { + type: Boolean, + default: false + }, + beforeRemove: Function, + name: { + type: String + }, + draggable: { + type: Boolean, + default: false + }, + autoCloseContextmenu: { + type: Boolean, + default: true + } + }, + data() { + return { + prefixCls: prefixCls$r, + navList: [], + barWidth: 0, + barOffset: 0, + activeKey: this.modelValue, + focusedKey: this.modelValue, + showSlot: false, + navStyle: { + transform: "" + }, + scrollable: false, + transitioning: false, + contextMenuVisible: false, + contextMenuStyles: { + top: 0, + left: 0 + }, + paneList: [], + tableList: [] + }; + }, + computed: { + classes() { + return [ + `${prefixCls$r}`, + { + [`${prefixCls$r}-card`]: this.type === "card", + [`${prefixCls$r}-mini`]: this.size === "small" && this.type === "line", + [`${prefixCls$r}-no-animation`]: !this.animated + } + ]; + }, + contentClasses() { + return [ + `${prefixCls$r}-content`, + { + [`${prefixCls$r}-content-animated`]: this.animated + } + ]; + }, + barClasses() { + return [ + `${prefixCls$r}-ink-bar`, + { + [`${prefixCls$r}-ink-bar-animated`]: this.animated + } + ]; + }, + contentStyle() { + const x = this.getTabIndex(this.activeKey); + const p = x === 0 ? "0%" : `-${x}00%`; + let style2 = {}; + if (x > -1) { + style2 = { + transform: `translateX(${p}) translateZ(0px)` + }; + } + return style2; + }, + barStyle() { + let style2 = { + visibility: "hidden", + width: `${this.barWidth}px` + }; + if (this.type === "line") + style2.visibility = "visible"; + if (this.animated) { + style2.transform = `translate3d(${this.barOffset}px, 0px, 0px)`; + } else { + style2.left = `${this.barOffset}px`; + } + return style2; + }, + arrowType() { + const config = this.globalConfig; + let type2 = "ios-close"; + if (config) { + if (config.tabs.customCloseIcon) { + type2 = ""; + } else if (config.tabs.closeIcon) { + type2 = config.tabs.closeIcon; + } + } + return type2; + }, + customArrowType() { + const config = this.globalConfig; + let type2 = ""; + if (config) { + if (config.tabs.customCloseIcon) { + type2 = config.tabs.customCloseIcon; + } + } + return type2; + }, + arrowSize() { + const config = this.globalConfig; + let size = ""; + if (config) { + if (config.tabs.closeIconSize) { + size = config.tabs.closeIconSize; + } + } + return size; + } + }, + methods: { + getTabs() { + const AllTabPanes = this.paneList.map((item) => item.pane); + const TabPanes = []; + AllTabPanes.forEach((item) => { + if (item.tab && this.name) { + if (item.tab === this.name) { + TabPanes.push(item); + } + } else { + TabPanes.push(item); + } + }); + TabPanes.sort((a, b) => { + if (a.index && b.index) { + return a.index > b.index ? 1 : -1; + } + }); + return TabPanes; + }, + updateNav() { + this.navList = []; + this.getTabs().forEach((pane, index2) => { + this.navList.push({ + labelType: typeof pane.label, + label: pane.label, + icon: pane.icon || "", + name: pane.currentName || index2, + disabled: pane.disabled, + closable: pane.closable, + contextMenu: pane.contextMenu + }); + if (!pane.currentName) + pane.currentName = index2; + if (index2 === 0) { + if (!this.activeKey) + this.activeKey = pane.currentName || index2; + } + }); + this.updateStatus(); + this.updateBar(); + }, + updateBar() { + nextTick(() => { + const index2 = this.getTabIndex(this.activeKey); + if (!this.$refs.nav) + return; + const prevTabs = this.$refs.nav.querySelectorAll(`.${prefixCls$r}-tab`); + const tab = prevTabs[index2]; + this.barWidth = tab ? parseFloat(tab.offsetWidth) : 0; + if (index2 > 0) { + let offset = 0; + const gutter = this.size === "small" ? 0 : 16; + for (let i = 0; i < index2; i++) { + offset += parseFloat(prevTabs[i].offsetWidth) + gutter; + } + this.barOffset = offset; + } else { + this.barOffset = 0; + } + this.updateNavScroll(); + }); + }, + updateStatus() { + const tabs = this.getTabs(); + tabs.forEach((tab) => tab.show = tab.currentName === this.activeKey || this.animated); + }, + tabCls(item) { + return [ + `${prefixCls$r}-tab`, + { + [`${prefixCls$r}-tab-disabled`]: item.disabled, + [`${prefixCls$r}-tab-active`]: item.name === this.activeKey, + [`${prefixCls$r}-tab-focused`]: item.name === this.focusedKey + } + ]; + }, + handleChange(index2) { + if (this.transitioning) + return; + this.transitioning = true; + setTimeout(() => this.transitioning = false, transitionTime); + const nav = this.navList[index2]; + if (!nav || nav.disabled) + return; + this.activeKey = nav.name; + this.$emit("update:modelValue", nav.name); + this.$emit("on-click", nav.name); + }, + handleDblclick(index2) { + const nav = this.navList[index2]; + if (!nav || nav.disabled) + return; + this.$emit("on-dblclick", nav.name); + }, + handleContextmenu(index2, event) { + if (this.contextMenuVisible) + this.handleClickContextMenuOutside(); + nextTick(() => { + const nav = this.navList[index2]; + if (!nav || nav.disabled || !nav.contextMenu) + return; + event.preventDefault(); + const $TabsWrap = this.$refs.tabsWrap; + const TabsBounding = $TabsWrap.getBoundingClientRect(); + const position = { + left: `${event.clientX - TabsBounding.left}px`, + top: `${event.clientY - TabsBounding.top}px` + }; + this.contextMenuStyles = position; + this.contextMenuVisible = true; + this.$emit("on-contextmenu", nav, event, position); + }); + }, + handleClickContextMenuOutside() { + this.contextMenuVisible = false; + }, + handlePreventSelect(index2, event) { + const nav = this.navList[index2]; + if (!nav || nav.disabled || !nav.contextMenu) + return; + event.preventDefault(); + }, + handleTabKeyNavigation(e) { + if (e.keyCode !== 37 && e.keyCode !== 39) + return; + const direction = e.keyCode === 39 ? 1 : -1; + const nextTab = getNextTab(this.navList, this.focusedKey, direction); + this.focusedKey = nextTab.name; + }, + handleTabKeyboardSelect(init = false) { + if (init) + return; + const focused = this.focusedKey || 0; + const index2 = this.getTabIndex(focused); + this.handleChange(index2); + }, + handleRemove(index2) { + if (!this.beforeRemove) { + return this.handleRemoveTab(index2); + } + const before = this.beforeRemove(index2); + if (before && before.then) { + before.then(() => { + this.handleRemoveTab(index2); + }); + } else { + this.handleRemoveTab(index2); + } + }, + handleRemoveTab(index2) { + const tabs = this.getTabs(); + const tab = tabs[index2]; + if (tab.currentName === this.activeKey) { + const newTabs = this.getTabs(); + let activeKey = -1; + if (newTabs.length) { + const leftNoDisabledTabs = tabs.filter((item, itemIndex) => !item.disabled && itemIndex < index2); + const rightNoDisabledTabs = tabs.filter((item, itemIndex) => !item.disabled && itemIndex > index2); + if (rightNoDisabledTabs.length) { + activeKey = rightNoDisabledTabs[0].currentName; + } else if (leftNoDisabledTabs.length) { + activeKey = leftNoDisabledTabs[leftNoDisabledTabs.length - 1].currentName; + } else { + activeKey = newTabs[0].currentName; + } + } + this.activeKey = activeKey; + this.$emit("update:modelValue", activeKey); + } + this.$emit("on-tab-remove", tab.currentName); + this.updateNav(); + }, + showClose(item) { + if (this.type === "card") { + if (item.closable !== null) { + return item.closable; + } else { + return this.closable; + } + } else { + return false; + } + }, + scrollPrev() { + const containerWidth = this.$refs.navScroll.offsetWidth; + const currentOffset = this.getCurrentScrollOffset(); + if (!currentOffset) + return; + let newOffset = currentOffset > containerWidth ? currentOffset - containerWidth : 0; + this.setOffset(newOffset); + }, + scrollNext() { + const navWidth = this.$refs.nav.offsetWidth; + const containerWidth = this.$refs.navScroll.offsetWidth; + const currentOffset = this.getCurrentScrollOffset(); + if (navWidth - currentOffset <= containerWidth) + return; + let newOffset = navWidth - currentOffset > containerWidth * 2 ? currentOffset + containerWidth : navWidth - containerWidth; + this.setOffset(newOffset); + }, + getCurrentScrollOffset() { + const { navStyle } = this; + return navStyle.transform ? Number(navStyle.transform.match(/translateX\(-(\d+(\.\d+)*)px\)/)[1]) : 0; + }, + getTabIndex(name2) { + return this.navList.findIndex((nav) => nav.name === name2); + }, + setOffset(value) { + this.navStyle.transform = `translateX(-${value}px)`; + }, + scrollToActiveTab() { + if (!this.scrollable) + return; + const nav = this.$refs.nav; + const activeTab = this.$el.querySelector(`.${prefixCls$r}-tab-active`); + if (!activeTab) + return; + const navScroll = this.$refs.navScroll; + const activeTabBounding = activeTab.getBoundingClientRect(); + const navScrollBounding = navScroll.getBoundingClientRect(); + const navBounding = nav.getBoundingClientRect(); + const currentOffset = this.getCurrentScrollOffset(); + let newOffset = currentOffset; + if (navBounding.right < navScrollBounding.right) { + newOffset = nav.offsetWidth - navScrollBounding.width; + } + if (activeTabBounding.left < navScrollBounding.left) { + newOffset = currentOffset - (navScrollBounding.left - activeTabBounding.left); + } else if (activeTabBounding.right > navScrollBounding.right) { + newOffset = currentOffset + activeTabBounding.right - navScrollBounding.right; + } + if (currentOffset !== newOffset) { + this.setOffset(Math.max(newOffset, 0)); + } + }, + updateNavScroll() { + const navWidth = this.$refs.nav.offsetWidth; + const containerWidth = this.$refs.navScroll.offsetWidth; + const currentOffset = this.getCurrentScrollOffset(); + if (containerWidth < navWidth) { + this.scrollable = true; + if (navWidth - currentOffset < containerWidth) { + this.setOffset(navWidth - containerWidth); + } + } else { + this.scrollable = false; + if (currentOffset > 0) { + this.setOffset(0); + } + } + }, + handleScroll(e) { + e.preventDefault(); + e.stopPropagation(); + const type2 = e.type; + let delta = 0; + if (type2 === "DOMMouseScroll" || type2 === "mousewheel") { + delta = e.wheelDelta ? e.wheelDelta : -(e.detail || 0) * 40; + } + if (delta > 0) { + this.scrollPrev(); + } else { + this.scrollNext(); + } + }, + handleResize() { + this.updateNavScroll(); + }, + isInsideHiddenElement() { + if (!isClient) + return; + let parentNode = this.$el.parentNode; + while (parentNode && parentNode !== document.body) { + if (parentNode.style && parentNode.style.display === "none") { + return parentNode; + } + parentNode = parentNode.parentNode; + } + return false; + }, + updateVisibility(index2) { + [...this.$refs.panes.querySelectorAll(`.${prefixCls$r}-tabpane`)].forEach((el, i) => { + if (index2 === i) { + [...el.children].filter((child) => child.classList.contains(`${prefixCls$r}-tabpane`)).forEach((child) => child.style.visibility = "visible"); + if (this.captureFocus) + setTimeout(() => focusFirst(el, el), transitionTime); + } else { + setTimeout(() => { + [...el.children].filter((child) => child.classList.contains(`${prefixCls$r}-tabpane`)).forEach((child) => child.style.visibility = "hidden"); + }, transitionTime); + } + }); + }, + handleDrag(index2, event) { + const nav = this.navList[index2]; + if (nav) { + event.dataTransfer.setData("tab-name", nav.name); + } + }, + handleDrop(index2, event) { + const nav = this.navList[index2]; + if (nav) { + const dragName = event.dataTransfer.getData("tab-name"); + event.preventDefault(); + let navNames = this.navList.map((item) => item.name); + const a = parseInt(navNames.findIndex((item) => item === dragName)); + const b = parseInt(navNames.findIndex((item) => item === nav.name)); + navNames.splice(b, 1, ...navNames.splice(a, 1, navNames[b])); + this.$emit("on-drag-drop", dragName, nav.name, a, b, navNames); + } + }, + closeContextMenu() { + this.handleClickContextMenuOutside(); + }, + handleClickDropdownItem() { + if (this.autoCloseContextmenu) + this.closeContextMenu(); + } + }, + watch: { + modelValue(val) { + this.activeKey = val; + this.focusedKey = val; + }, + activeKey(val) { + this.focusedKey = val; + this.updateBar(); + this.updateStatus(); + this.tableList.forEach((item) => { + item.table.handleOnVisibleChange(true); + }); + nextTick(() => { + this.scrollToActiveTab(); + }); + const nextIndex = Math.max(this.getTabIndex(this.focusedKey), 0); + this.updateVisibility(nextIndex); + } + }, + mounted() { + this.showSlot = this.$slots.extra !== void 0; + this.observer = elementResizeDetector(); + this.observer.listenTo(this.$refs.navWrap, this.handleResize); + const hiddenParentNode = this.isInsideHiddenElement(); + if (hiddenParentNode) { + this.mutationObserver = new MutationObserver(() => { + if (hiddenParentNode.style.display !== "none") { + this.updateBar(); + this.mutationObserver.disconnect(); + } + }); + this.mutationObserver.observe(hiddenParentNode, { attributes: true, childList: true, characterData: true, attributeFilter: ["style"] }); + } + this.handleTabKeyboardSelect(true); + this.updateVisibility(this.getTabIndex(this.activeKey)); + }, + beforeUnmount() { + this.observer.removeListener(this.$refs.navWrap, this.handleResize); + if (this.mutationObserver) + this.mutationObserver.disconnect(); + } +}; +const _hoisted_1$w = ["onClick", "onDblclick", "onContextmenu", "onSelectstart", "draggable", "onDragstart", "onDrop"]; +function _sfc_render$O(_ctx, _cache, $props, $setup, $data, $options) { + const _component_Icon = resolveComponent("Icon"); + const _component_Render = resolveComponent("Render"); + const _component_DropdownMenu = resolveComponent("DropdownMenu"); + const _component_Dropdown = resolveComponent("Dropdown"); + return openBlock(), createElementBlock("div", { + class: normalizeClass($options.classes), + ref: "tabsWrap" + }, [ + createElementVNode("div", { + class: normalizeClass([$data.prefixCls + "-bar"]) + }, [ + $data.showSlot ? (openBlock(), createElementBlock("div", { + key: 0, + class: normalizeClass([$data.prefixCls + "-nav-right"]) + }, [ + renderSlot(_ctx.$slots, "extra") + ], 2)) : createCommentVNode("", true), + createElementVNode("div", { + class: normalizeClass([$data.prefixCls + "-nav-container"]), + tabindex: "0", + ref: "navContainer", + onKeydown: [ + _cache[5] || (_cache[5] = (...args) => $options.handleTabKeyNavigation && $options.handleTabKeyNavigation(...args)), + _cache[6] || (_cache[6] = withKeys(withModifiers(($event) => $options.handleTabKeyboardSelect(false), ["prevent"]), ["space"])) + ] + }, [ + createElementVNode("div", { + ref: "navWrap", + class: normalizeClass([$data.prefixCls + "-nav-wrap", $data.scrollable ? $data.prefixCls + "-nav-scrollable" : ""]) + }, [ + createElementVNode("span", { + class: normalizeClass([$data.prefixCls + "-nav-prev", $data.scrollable ? "" : $data.prefixCls + "-nav-scroll-disabled"]), + onClick: _cache[0] || (_cache[0] = (...args) => $options.scrollPrev && $options.scrollPrev(...args)) + }, [ + createVNode(_component_Icon, { type: "ios-arrow-back" }) + ], 2), + createElementVNode("span", { + class: normalizeClass([$data.prefixCls + "-nav-next", $data.scrollable ? "" : $data.prefixCls + "-nav-scroll-disabled"]), + onClick: _cache[1] || (_cache[1] = (...args) => $options.scrollNext && $options.scrollNext(...args)) + }, [ + createVNode(_component_Icon, { type: "ios-arrow-forward" }) + ], 2), + createElementVNode("div", { + ref: "navScroll", + class: normalizeClass([$data.prefixCls + "-nav-scroll"]), + "on:DOMMouseScroll": _cache[3] || (_cache[3] = (...args) => $options.handleScroll && $options.handleScroll(...args)), + onMousewheel: _cache[4] || (_cache[4] = (...args) => $options.handleScroll && $options.handleScroll(...args)) + }, [ + createElementVNode("div", { + ref: "nav", + class: normalizeClass([$data.prefixCls + "-nav"]), + style: normalizeStyle($data.navStyle) + }, [ + createElementVNode("div", { + class: normalizeClass($options.barClasses), + style: normalizeStyle($options.barStyle) + }, null, 6), + (openBlock(true), createElementBlock(Fragment, null, renderList($data.navList, (item, index2) => { + return openBlock(), createElementBlock("div", { + class: normalizeClass($options.tabCls(item)), + key: index2, + onClick: ($event) => $options.handleChange(index2), + onDblclick: ($event) => $options.handleDblclick(index2), + onContextmenu: withModifiers(($event) => $options.handleContextmenu(index2, $event), ["stop"]), + onSelectstart: withModifiers(($event) => $options.handlePreventSelect(index2, $event), ["stop"]), + draggable: $props.draggable, + onDragstart: ($event) => $options.handleDrag(index2, $event), + onDrop: ($event) => $options.handleDrop(index2, $event), + onDragover: _cache[2] || (_cache[2] = withModifiers(() => { + }, ["prevent"])) + }, [ + item.icon !== "" ? (openBlock(), createBlock(_component_Icon, { + key: 0, + type: item.icon + }, null, 8, ["type"])) : createCommentVNode("", true), + item.labelType === "function" ? (openBlock(), createBlock(_component_Render, { + key: 1, + render: item.label + }, null, 8, ["render"])) : (openBlock(), createElementBlock(Fragment, { key: 2 }, [ + createTextVNode(toDisplayString(item.label), 1) + ], 64)), + $options.showClose(item) ? (openBlock(), createBlock(_component_Icon, { + key: 3, + class: normalizeClass([$data.prefixCls + "-close"]), + type: $options.arrowType, + custom: $options.customArrowType, + size: $options.arrowSize, + onClick: withModifiers(($event) => $options.handleRemove(index2), ["stop"]) + }, null, 8, ["class", "type", "custom", "size", "onClick"])) : createCommentVNode("", true) + ], 42, _hoisted_1$w); + }), 128)) + ], 6) + ], 34) + ], 2) + ], 34) + ], 2), + createElementVNode("div", { + class: normalizeClass($options.contentClasses), + style: normalizeStyle($options.contentStyle), + ref: "panes" + }, [ + renderSlot(_ctx.$slots, "default") + ], 6), + createElementVNode("div", { + class: "ivu-tabs-context-menu", + style: normalizeStyle($data.contextMenuStyles) + }, [ + createVNode(_component_Dropdown, { + trigger: "custom", + visible: $data.contextMenuVisible, + transfer: "", + onOnClick: $options.handleClickDropdownItem, + onOnClickoutside: $options.handleClickContextMenuOutside + }, { + list: withCtx(() => [ + createVNode(_component_DropdownMenu, null, { + default: withCtx(() => [ + renderSlot(_ctx.$slots, "contextMenu") + ]), + _: 3 + }) + ]), + _: 3 + }, 8, ["visible", "onOnClick", "onOnClickoutside"]) + ], 4) + ], 2); +} +var Tabs = /* @__PURE__ */ _export_sfc(_sfc_main$X, [["render", _sfc_render$O]]); +const _sfc_main$W = { + name: "Notification", + components: { Dropdown, DropdownMenu, Badge, Tabs }, + emits: ["on-visible-change", "on-item-click", "on-clear", "on-load-more", "on-tab-change"], + provide() { + return { + NotificationInstance: this + }; + }, + props: { + count: { + type: Number + }, + autoCount: { + type: Boolean, + default: false + }, + countType: { + validator(value) { + return oneOf(value, ["text", "badge"]); + }, + default: "text" + }, + icon: { + type: String, + default: "md-notifications-outline" + }, + transfer: { + type: Boolean, + default() { + const global2 = getCurrentInstance().appContext.config.globalProperties; + return !global2.$VIEWUI || global2.$VIEWUI.transfer === "" ? false : global2.$VIEWUI.transfer; + } + }, + placement: { + validator(value) { + return oneOf(value, ["top", "top-start", "top-end", "bottom", "bottom-start", "bottom-end", "left", "left-start", "left-end", "right", "right-start", "right-end"]); + }, + default: "bottom" + }, + badgeProps: { + type: Object, + default() { + return {}; + } + }, + clearClose: { + type: Boolean, + default: false + }, + locale: { + type: Object, + default() { + return { + loadedAll: "\u52A0\u8F7D\u5B8C\u6BD5", + loading: "\u52A0\u8F7D\u4E2D...", + loadMore: "\u52A0\u8F7D\u66F4\u591A", + clear: "\u6E05\u7A7A" + }; + } + }, + tab: { + type: String + }, + wide: { + type: Boolean, + default: false + }, + transferClassName: { + type: String + } + }, + data() { + return { + visible: false, + countAll: 0, + tabList: [] + }; + }, + computed: { + finalCount() { + return this.autoCount ? this.countAll : this.count; + }, + transferClasses() { + let classes = "ivu-notifications-transfer"; + if (this.transferClassName) + classes += ` ${this.transferClassName}`; + return classes; + } + }, + watch: { + visible(val) { + this.$emit("on-visible-change", val); + } + }, + methods: { + handleVisibleChange(visible) { + this.visible = visible; + }, + handleClickOutside(e) { + if (this.$refs.notice.contains(e.target)) + return; + this.visible = false; + }, + handleToggleOpen() { + this.visible = !this.visible; + }, + handleGetCountAll() { + if (this.autoCount) { + const $tabs = this.tabList.map((item) => item.tab); + let countAll = 0; + $tabs.forEach((item) => { + if (item.count) + countAll += item.count; + }); + this.countAll = countAll; + } + }, + handleItemClick(tab, item) { + this.$emit("on-item-click", tab, item); + }, + handleClear(tab) { + this.$emit("on-clear", tab); + if (this.clearClose) + this.handleClose(); + }, + handleLoadMore(tab) { + this.$emit("on-load-more", tab); + }, + handleClose() { + this.visible = false; + }, + handleTabChange(name2) { + const $tabs = this.tabList.map((item) => item.tab); + let tabInfo = {}; + $tabs.forEach((item) => { + const tab = item.$refs.tab; + if (tab.currentName === name2) { + tabInfo = item.handleGetTabBaseInfo(); + } + }); + this.$emit("on-tab-change", tabInfo); + } + } +}; +const _hoisted_1$v = { + class: "ivu-notifications", + ref: "notice" +}; +const _hoisted_2$k = { class: "ivu-notifications-tabs" }; +const _hoisted_3$g = { + key: 0, + class: "ivu-notifications-extra" +}; +function _sfc_render$N(_ctx, _cache, $props, $setup, $data, $options) { + const _component_Icon = resolveComponent("Icon"); + const _component_Badge = resolveComponent("Badge"); + const _component_Tabs = resolveComponent("Tabs"); + const _component_DropdownMenu = resolveComponent("DropdownMenu"); + const _component_Dropdown = resolveComponent("Dropdown"); + return openBlock(), createElementBlock("div", _hoisted_1$v, [ + createVNode(_component_Dropdown, { + trigger: "custom", + visible: $data.visible, + transfer: $props.transfer, + placement: $props.placement, + "transfer-class-name": $options.transferClasses, + onOnVisibleChange: $options.handleVisibleChange, + onOnClickoutside: $options.handleClickOutside + }, { + list: withCtx(() => [ + _ctx.$slots.default ? (openBlock(), createBlock(_component_DropdownMenu, { + key: 0, + onClick: _cache[1] || (_cache[1] = withModifiers(() => { + }, ["stop"])) + }, { + default: withCtx(() => [ + createElementVNode("div", { + class: normalizeClass(["ivu-notifications-list", { "ivu-notifications-list-wide": $props.wide }]) + }, [ + createElementVNode("div", _hoisted_2$k, [ + createVNode(_component_Tabs, { + animated: false, + "model-value": $props.tab, + onOnClick: $options.handleTabChange + }, { + default: withCtx(() => [ + renderSlot(_ctx.$slots, "default") + ]), + _: 3 + }, 8, ["model-value", "onOnClick"]) + ]) + ], 2), + _ctx.$slots.extra ? (openBlock(), createElementBlock("div", _hoisted_3$g, [ + renderSlot(_ctx.$slots, "extra") + ])) : createCommentVNode("", true) + ]), + _: 3 + })) : createCommentVNode("", true) + ]), + default: withCtx(() => [ + createElementVNode("div", { + class: "ivu-notifications-rel", + onClick: _cache[0] || (_cache[0] = withModifiers((...args) => $options.handleToggleOpen && $options.handleToggleOpen(...args), ["prevent", "stop"])) + }, [ + createVNode(_component_Badge, mergeProps({ count: $options.finalCount }, $props.badgeProps), { + default: withCtx(() => [ + renderSlot(_ctx.$slots, "icon", {}, () => [ + createVNode(_component_Icon, { + type: $props.icon, + size: "24" + }, null, 8, ["type"]) + ]) + ]), + _: 3 + }, 16, ["count"]) + ]) + ]), + _: 3 + }, 8, ["visible", "transfer", "placement", "transfer-class-name", "onOnVisibleChange", "onOnClickoutside"]) + ], 512); +} +var Notification = /* @__PURE__ */ _export_sfc(_sfc_main$W, [["render", _sfc_render$N]]); +const isEarly = (timeStamp, currentTime) => { + return timeStamp <= currentTime; +}; +const getHandledValue = (num) => { + return num < 10 ? "0" + num : num; +}; +const getDate = (timeStamp, startType) => { + const d = new Date(timeStamp); + const year = d.getFullYear(); + const month = getHandledValue(d.getMonth() + 1); + const date3 = getHandledValue(d.getDate()); + const hours = getHandledValue(d.getHours()); + const minutes = getHandledValue(d.getMinutes()); + const second = getHandledValue(d.getSeconds()); + let resStr = ""; + if (startType === "year") + resStr = year + "-" + month + "-" + date3 + " " + hours + ":" + minutes + ":" + second; + else + resStr = month + "-" + date3 + " " + hours + ":" + minutes; + return resStr; +}; +const getRelativeTime = (timeStamp, locale2) => { + const currentTime = new Date().getTime(); + const IS_EARLY = isEarly(timeStamp, currentTime); + let diff = currentTime - timeStamp; + if (!IS_EARLY) + diff = -diff; + let resStr = ""; + let dirStr = IS_EARLY ? locale2("i.time.before") || "\u524D" : locale2("i.time.after") || "\u540E"; + if (diff < 1e3) + resStr = locale2("i.time.just") || "\u521A\u521A"; + else if (diff < 6e4) + resStr = parseInt(diff / 1e3) + (locale2("i.time.seconds") || "\u79D2") + dirStr; + else if (diff >= 6e4 && diff < 36e5) + resStr = Math.floor(diff / 6e4) + (locale2("i.time.minutes") || "\u5206\u949F") + dirStr; + else if (diff >= 36e5 && diff < 864e5) + resStr = Math.floor(diff / 36e5) + (locale2("i.time.hours") || "\u5C0F\u65F6") + dirStr; + else if (diff >= 864e5 && diff < 262386e4) + resStr = Math.floor(diff / 864e5) + (locale2("i.time.days") || "\u5929") + dirStr; + else if (diff >= 262386e4 && diff <= 3156786e4 && IS_EARLY) + resStr = getDate(timeStamp); + else + resStr = getDate(timeStamp, "year"); + return resStr; +}; +function Time$1(timestamp, locale2) { + return getRelativeTime(timestamp, locale2); +} +const prefixCls$q = "ivu-time"; +const _sfc_main$V = { + name: "Time", + mixins: [Locale], + props: { + time: { + type: [Number, Date, String], + required: true + }, + type: { + type: String, + validator(value) { + return oneOf(value, ["relative", "date", "datetime"]); + }, + default: "relative" + }, + hash: { + type: String, + default: "" + }, + interval: { + type: Number, + default: 60 + } + }, + data() { + return { + date: "" + }; + }, + computed: { + classes() { + return [ + `${prefixCls$q}`, + { + [`${prefixCls$q}-with-hash`]: this.hash + } + ]; + } + }, + watch: { + time() { + this.setTime(); + } + }, + methods: { + handleClick() { + if (isClient && this.hash !== "") + window.location.hash = this.hash; + }, + setTime() { + const type2 = typeof this.time; + let time; + if (type2 === "number") { + const timestamp = this.time.toString().length > 10 ? this.time : this.time * 1e3; + time = new Date(timestamp).getTime(); + } else if (type2 === "object") { + time = this.time.getTime(); + } else if (type2 === "string") { + time = dayjs(this.time).valueOf(); + } + if (this.type === "relative") { + this.date = Time$1(time, this.t); + } else { + const date3 = new Date(this.time); + const year = date3.getFullYear(); + const month = date3.getMonth() + 1 < 10 ? "0" + (date3.getMonth() + 1) : date3.getMonth() + 1; + const day = date3.getDate() < 10 ? "0" + date3.getDate() : date3.getDate(); + const hour = date3.getHours() < 10 ? "0" + date3.getHours() : date3.getHours(); + const minute = date3.getMinutes() < 10 ? "0" + date3.getMinutes() : date3.getMinutes(); + const second = date3.getSeconds() < 10 ? "0" + date3.getSeconds() : date3.getSeconds(); + if (this.type === "datetime") { + this.date = `${year}-${month}-${day} ${hour}:${minute}:${second}`; + } else if (this.type === "date") { + this.date = `${year}-${month}-${day}`; + } + } + } + }, + mounted() { + this.setTime(); + if (this.interval !== 0) { + this.timer = setInterval(() => { + this.setTime(); + }, 1e3 * this.interval); + } + }, + beforeUnmount() { + if (this.timer) + clearInterval(this.timer); + } +}; +function _sfc_render$M(_ctx, _cache, $props, $setup, $data, $options) { + return openBlock(), createElementBlock("span", { + class: normalizeClass($options.classes), + onClick: _cache[0] || (_cache[0] = (...args) => $options.handleClick && $options.handleClick(...args)) + }, toDisplayString($data.date), 3); +} +var Time = /* @__PURE__ */ _export_sfc(_sfc_main$V, [["render", _sfc_render$M]]); +const _sfc_main$U = { + name: "NotificationItem", + inject: ["NotificationTabInstance", "NotificationInstance"], + components: { Row, Col, Avatar, Tag, Time }, + emits: ["on-item-click"], + props: { + rowProps: { + type: Object, + default() { + return { + type: "flex", + justify: "center", + align: "middle" + }; + } + }, + read: { + type: [Boolean, Number], + default: false + }, + icon: { + type: String + }, + customIcon: { + type: String + }, + iconColor: { + type: String + }, + iconSize: { + validator(value) { + return oneOf(value, ["small", "default", "large"]); + }, + default: "default" + }, + avatar: { + type: String + }, + avatarShape: { + validator(value) { + return oneOf(value, ["circle", "square"]); + }, + default: "circle" + }, + title: { + type: String + }, + content: { + type: String + }, + time: { + type: [Number, Date, String] + }, + timeProps: { + type: Object, + default() { + return {}; + } + }, + tag: { + type: String + }, + tagProps: { + type: Object, + default() { + return {}; + } + }, + clickClose: { + type: Boolean, + default: false + } + }, + data() { + return { + id: random(6) + }; + }, + computed: { + classes() { + return { + "ivu-notifications-item-unread": this.read === false || this.read === 0 + }; + }, + contentSpan() { + return this.icon || this.customIcon || this.avatar || this.$slots.avatar ? 20 : 24; + }, + iconStyle() { + let style2 = {}; + if (this.iconColor) { + style2 = { + "background-color": this.iconColor + }; + } + return style2; + } + }, + methods: { + handleClick() { + this.$emit("on-item-click", this.$attrs); + this.NotificationTabInstance.handleItemClick(this.$attrs); + if (this.clickClose) { + this.NotificationInstance.handleClose(); + } + }, + addItem() { + const target = this.NotificationTabInstance; + target.itemList.push({ + id: this.id, + item: this + }); + }, + removeItem() { + const target = this.NotificationTabInstance; + const index2 = target.itemList.findIndex((item) => item.id === this.id); + target.itemList.splice(index2, 1); + } + }, + mounted() { + this.addItem(); + this.NotificationTabInstance.handleGetItems(); + }, + unmounted() { + this.NotificationTabInstance.handleGetItems(); + }, + beforeUnmount() { + this.removeItem(); + } +}; +const _hoisted_1$u = { class: "ivu-notifications-item-title" }; +const _hoisted_2$j = { key: 0 }; +const _hoisted_3$f = { + key: 0, + class: "ivu-notifications-item-tag" +}; +const _hoisted_4$c = { + key: 0, + class: "ivu-notifications-item-desc" +}; +const _hoisted_5$7 = { + key: 1, + class: "ivu-notifications-item-time" +}; +function _sfc_render$L(_ctx, _cache, $props, $setup, $data, $options) { + const _component_Avatar = resolveComponent("Avatar"); + const _component_Col = resolveComponent("Col"); + const _component_Tag = resolveComponent("Tag"); + const _component_Time = resolveComponent("Time"); + const _component_Row = resolveComponent("Row"); + return openBlock(), createElementBlock("div", { + class: normalizeClass(["ivu-notifications-item", $options.classes]), + onClick: _cache[0] || (_cache[0] = (...args) => $options.handleClick && $options.handleClick(...args)) + }, [ + renderSlot(_ctx.$slots, "default", {}, () => [ + createVNode(_component_Row, normalizeProps(guardReactiveProps($props.rowProps)), { + default: withCtx(() => [ + $props.icon || $props.customIcon || $props.avatar || _ctx.$slots.avatar ? (openBlock(), createBlock(_component_Col, { + key: 0, + span: "4", + class: "ivu-notifications-item-icon" + }, { + default: withCtx(() => [ + renderSlot(_ctx.$slots, "avatar", {}, () => [ + $props.icon ? (openBlock(), createBlock(_component_Avatar, { + key: 0, + icon: $props.icon, + shape: $props.avatarShape, + size: $props.iconSize, + style: normalizeStyle($options.iconStyle) + }, null, 8, ["icon", "shape", "size", "style"])) : $props.customIcon ? (openBlock(), createBlock(_component_Avatar, { + key: 1, + "custom-icon": $props.customIcon, + shape: $props.avatarShape, + size: $props.iconSize, + style: normalizeStyle($options.iconStyle) + }, null, 8, ["custom-icon", "shape", "size", "style"])) : $props.avatar ? (openBlock(), createBlock(_component_Avatar, { + key: 2, + src: $props.avatar, + shape: $props.avatarShape, + size: $props.iconSize, + style: normalizeStyle($options.iconStyle) + }, null, 8, ["src", "shape", "size", "style"])) : createCommentVNode("", true) + ]) + ]), + _: 3 + })) : createCommentVNode("", true), + createVNode(_component_Col, { + span: $options.contentSpan, + class: "ivu-notifications-item-content" + }, { + default: withCtx(() => [ + createElementVNode("div", _hoisted_1$u, [ + $props.title || _ctx.$slots.title ? (openBlock(), createElementBlock("h4", _hoisted_2$j, [ + renderSlot(_ctx.$slots, "title", {}, () => [ + createTextVNode(toDisplayString($props.title), 1) + ]), + $props.tag ? (openBlock(), createElementBlock("div", _hoisted_3$f, [ + createVNode(_component_Tag, normalizeProps(guardReactiveProps($props.tagProps)), { + default: withCtx(() => [ + createTextVNode(toDisplayString($props.tag), 1) + ]), + _: 1 + }, 16) + ])) : createCommentVNode("", true) + ])) : createCommentVNode("", true) + ]), + $props.content || _ctx.$slots.content ? (openBlock(), createElementBlock("div", _hoisted_4$c, [ + renderSlot(_ctx.$slots, "content", {}, () => [ + createTextVNode(toDisplayString($props.content), 1) + ]) + ])) : createCommentVNode("", true), + $props.time || _ctx.$slots.time ? (openBlock(), createElementBlock("div", _hoisted_5$7, [ + renderSlot(_ctx.$slots, "time", {}, () => [ + createVNode(_component_Time, mergeProps({ time: $props.time }, $props.timeProps), null, 16, ["time"]) + ]) + ])) : createCommentVNode("", true) + ]), + _: 3 + }, 8, ["span"]) + ]), + _: 3 + }, 16) + ]) + ], 2); +} +var NotificationItem = /* @__PURE__ */ _export_sfc(_sfc_main$U, [["render", _sfc_render$L]]); +const prefixCls$p = "ivu-tabs-tabpane"; +const _sfc_main$T = { + name: "TabPane", + inject: ["TabsInstance"], + props: { + name: { + type: String + }, + label: { + type: [String, Function], + default: "" + }, + icon: { + type: String + }, + disabled: { + type: Boolean, + default: false + }, + closable: { + type: Boolean, + default: null + }, + tab: { + type: String + }, + index: { + type: Number + }, + contextMenu: { + type: Boolean, + default: false + } + }, + data() { + return { + prefixCls: prefixCls$p, + show: true, + currentName: this.name, + id: random(6) + }; + }, + computed: { + contentStyle() { + return { + visibility: this.TabsInstance.activeKey !== this.currentName ? "hidden" : "visible" + }; + } + }, + methods: { + updateNav() { + this.TabsInstance.updateNav(); + }, + addPane() { + const root2 = this.TabsInstance; + if (!root2.paneList) + root2.paneList = []; + root2.paneList.push({ + id: this.id, + pane: this + }); + }, + removePane() { + const root2 = this.TabsInstance; + if (root2.paneList && root2.paneList.length) { + const index2 = root2.paneList.findIndex((item) => item.id === this.id); + root2.paneList.splice(index2, 1); + } + } + }, + watch: { + name(val) { + this.currentName = val; + this.updateNav(); + }, + label(val) { + if (typeof val !== "function") + this.updateNav(); + }, + icon() { + this.updateNav(); + }, + disabled() { + this.updateNav(); + } + }, + mounted() { + this.addPane(); + this.updateNav(); + }, + beforeUnmount() { + this.removePane(); + this.updateNav(); + } +}; +function _sfc_render$K(_ctx, _cache, $props, $setup, $data, $options) { + return withDirectives((openBlock(), createElementBlock("div", { + class: normalizeClass($data.prefixCls), + style: normalizeStyle($options.contentStyle) + }, [ + renderSlot(_ctx.$slots, "default") + ], 6)), [ + [vShow, $data.show] + ]); +} +var TabPane = /* @__PURE__ */ _export_sfc(_sfc_main$T, [["render", _sfc_render$K]]); +const _sfc_main$S = { + name: "NotificationTab", + inject: ["NotificationInstance"], + components: { TabPane, Icon }, + provide() { + return { + NotificationTabInstance: this + }; + }, + props: { + count: { + type: Number + }, + title: { + type: String, + required: true + }, + name: { + type: String + }, + emptyText: { + type: String, + default: "\u76EE\u524D\u6CA1\u6709\u901A\u77E5" + }, + emptyImage: { + type: String, + default: "https://file.iviewui.com/iview-pro/icon-no-message.svg" + }, + loadedAll: { + type: Boolean, + default: true + }, + showLoadedAll: { + type: Boolean, + default: true + }, + loading: { + type: Boolean, + default: false + }, + scrollToLoad: { + type: Boolean, + default: true + }, + showClear: { + type: Boolean, + default: true + }, + showClearIcon: { + type: Boolean, + default: true + } + }, + data() { + return { + customLabel: (h2) => { + return h2("div", [ + h2("span", this.title), + h2(Badge, { + count: this.count + }) + ]); + }, + itemCount: 0, + itemList: [], + id: random(6) + }; + }, + computed: { + currentTitle() { + const countType = this.NotificationInstance.countType; + if (countType === "text") { + const count = this.count ? `(${this.count})` : ""; + return `${this.title} ${count}`; + } else if (countType === "badge") { + return this.customLabel; + } + } + }, + watch: { + count: { + handler() { + this.NotificationInstance.handleGetCountAll(); + }, + immediate: true + } + }, + methods: { + handleGetTabBaseInfo() { + return { + name: this.name, + title: this.title + }; + }, + handleGetItems() { + const items = this.itemList.map((item) => item.item); + this.itemCount = items.length; + }, + handleItemClick(item) { + this.NotificationInstance.handleItemClick(this.handleGetTabBaseInfo(), item); + }, + handleClear() { + this.NotificationInstance.handleClear(this.handleGetTabBaseInfo()); + }, + handleLoadMore() { + this.NotificationInstance.handleLoadMore(this.handleGetTabBaseInfo()); + }, + handleScroll() { + if (!this.scrollToLoad) + return; + const $scroll = this.$refs.scroll; + const displacement = $scroll.scrollHeight - $scroll.clientHeight - $scroll.scrollTop; + if (!this.loading && displacement === 0) { + this.handleLoadMore(); + } + }, + addTab() { + const target = this.NotificationInstance; + target.tabList.push({ + id: this.id, + tab: this + }); + }, + removeTab() { + const target = this.NotificationInstance; + const index2 = target.tabList.findIndex((item) => item.id === this.id); + target.tabList.splice(index2, 1); + } + }, + mounted() { + this.addTab(); + }, + beforeUnmount() { + this.removeTab(); + } +}; +const _hoisted_1$t = { class: "ivu-notifications-container-list" }; +const _hoisted_2$i = { + key: 0, + class: "ivu-notifications-tab-empty" +}; +const _hoisted_3$e = ["src"]; +const _hoisted_4$b = { class: "ivu-notifications-tab-empty-text" }; +const _hoisted_5$6 = { class: "ivu-notifications-tab-loading" }; +const _hoisted_6$4 = { + key: 0, + class: "ivu-notifications-tab-loading-item ivu-notifications-tab-loading-show" +}; +const _hoisted_7$3 = { + key: 2, + class: "ivu-notifications-tab-loading-item ivu-notifications-tab-loading-all" +}; +function _sfc_render$J(_ctx, _cache, $props, $setup, $data, $options) { + const _component_Icon = resolveComponent("Icon"); + const _component_TabPane = resolveComponent("TabPane"); + return openBlock(), createBlock(_component_TabPane, { + label: $options.currentTitle, + name: $props.name, + ref: "tab", + class: "ivu-notifications-tab" + }, { + default: withCtx(() => [ + createElementVNode("div", { + class: "ivu-notifications-container", + onScroll: _cache[1] || (_cache[1] = (...args) => $options.handleScroll && $options.handleScroll(...args)), + ref: "scroll" + }, [ + renderSlot(_ctx.$slots, "top"), + createElementVNode("div", _hoisted_1$t, [ + renderSlot(_ctx.$slots, "default") + ]), + !$props.loading && $data.itemCount === 0 ? (openBlock(), createElementBlock("div", _hoisted_2$i, [ + renderSlot(_ctx.$slots, "empty", {}, () => [ + $props.emptyImage ? (openBlock(), createElementBlock("img", { + key: 0, + class: "ivu-notifications-tab-empty-img", + src: $props.emptyImage + }, null, 8, _hoisted_3$e)) : createCommentVNode("", true), + createElementVNode("div", _hoisted_4$b, toDisplayString($props.emptyText), 1) + ]) + ])) : createCommentVNode("", true), + createElementVNode("div", _hoisted_5$6, [ + $props.loading ? (openBlock(), createElementBlock("div", _hoisted_6$4, [ + renderSlot(_ctx.$slots, "loading", {}, () => [ + createVNode(_component_Icon, { + type: "ios-loading", + class: "ivu-load-loop" + }), + createTextVNode(" " + toDisplayString($options.NotificationInstance.locale.loading), 1) + ]) + ])) : !$props.loadedAll ? (openBlock(), createElementBlock("div", { + key: 1, + class: "ivu-notifications-tab-loading-item ivu-notifications-tab-loading-more", + onClick: _cache[0] || (_cache[0] = (...args) => $options.handleLoadMore && $options.handleLoadMore(...args)) + }, [ + renderSlot(_ctx.$slots, "load-more", {}, () => [ + createTextVNode(toDisplayString($options.NotificationInstance.locale.loadMore), 1) + ]) + ])) : $props.showLoadedAll && $props.loadedAll ? (openBlock(), createElementBlock("div", _hoisted_7$3, [ + renderSlot(_ctx.$slots, "loaded-all", {}, () => [ + createTextVNode(toDisplayString($options.NotificationInstance.locale.loadedAll), 1) + ]) + ])) : createCommentVNode("", true) + ]) + ], 544), + $props.showClear && $data.itemCount !== 0 ? (openBlock(), createElementBlock("div", { + key: 0, + class: "ivu-notifications-tab-clear", + onClick: _cache[2] || (_cache[2] = (...args) => $options.handleClear && $options.handleClear(...args)) + }, [ + renderSlot(_ctx.$slots, "clear", {}, () => [ + $props.showClearIcon ? (openBlock(), createBlock(_component_Icon, { + key: 0, + type: "md-done-all" + })) : createCommentVNode("", true), + createElementVNode("span", null, toDisplayString($options.NotificationInstance.locale.clear) + toDisplayString($props.title), 1) + ]) + ])) : createCommentVNode("", true) + ]), + _: 3 + }, 8, ["label", "name"]); +} +var NotificationTab = /* @__PURE__ */ _export_sfc(_sfc_main$S, [["render", _sfc_render$J]]); +const _sfc_main$R = { + name: "Trend", + components: { Icon }, + props: { + flag: { + validator(value) { + return oneOf(value, ["up", "down"]); + } + }, + colorful: { + type: Boolean, + default: true + }, + reverseColor: { + type: Boolean, + default: false + }, + textColor: { + type: Boolean, + default: false + }, + showTitle: { + type: [Boolean, String], + default: false + } + }, + computed: { + classes() { + return [ + { + ["ivu-trend-up"]: this.flag === "up", + ["ivu-trend-down"]: this.flag === "down", + ["ivu-trend-reverse-color"]: this.reverseColor, + ["ivu-trend-colorful"]: this.colorful, + ["ivu-trend-text-color"]: this.textColor + } + ]; + }, + flagType() { + return this.flag === "up" ? "md-arrow-dropup" : this.flag === "down" ? "md-arrow-dropdown" : ""; + } + } +}; +const _hoisted_1$s = { class: "ivu-trend-text" }; +function _sfc_render$I(_ctx, _cache, $props, $setup, $data, $options) { + const _component_Icon = resolveComponent("Icon"); + return openBlock(), createElementBlock("div", { + class: normalizeClass(["ivu-trend", $options.classes]) + }, [ + createElementVNode("span", _hoisted_1$s, [ + renderSlot(_ctx.$slots, "default") + ]), + createVNode(_component_Icon, { + type: $options.flagType, + class: "ivu-trend-flag" + }, null, 8, ["type"]) + ], 2); +} +var Trend = /* @__PURE__ */ _export_sfc(_sfc_main$R, [["render", _sfc_render$I]]); +const _sfc_main$Q = { + name: "NumberInfo", + components: { Trend }, + props: { + title: { + type: String + }, + subTitle: { + type: String + }, + total: { + type: [String, Number] + }, + subTotal: { + type: [String, Number] + }, + status: { + validator(value) { + return oneOf(value, ["up", "down"]); + } + }, + gap: { + type: [String, Number], + default: 8 + } + }, + computed: { + valueStyle() { + return { + "margin-top": this.gap + "px" + }; + } + } +}; +const _hoisted_1$r = { class: "ivu-number-info" }; +const _hoisted_2$h = { + key: 0, + class: "ivu-number-info-title" +}; +const _hoisted_3$d = { + key: 1, + class: "ivu-number-info-subTitle" +}; +const _hoisted_4$a = { class: "ivu-number-info-total" }; +const _hoisted_5$5 = { + key: 0, + class: "ivu-number-info-subTotal" +}; +function _sfc_render$H(_ctx, _cache, $props, $setup, $data, $options) { + const _component_Trend = resolveComponent("Trend"); + return openBlock(), createElementBlock("div", _hoisted_1$r, [ + $props.title || _ctx.$slots.title ? (openBlock(), createElementBlock("div", _hoisted_2$h, [ + renderSlot(_ctx.$slots, "title", {}, () => [ + createTextVNode(toDisplayString($props.title), 1) + ]) + ])) : createCommentVNode("", true), + $props.subTitle || _ctx.$slots.subTitle ? (openBlock(), createElementBlock("div", _hoisted_3$d, [ + renderSlot(_ctx.$slots, "subTitle", {}, () => [ + createTextVNode(toDisplayString($props.subTitle), 1) + ]) + ])) : createCommentVNode("", true), + createElementVNode("div", { + class: "ivu-number-info-value", + style: normalizeStyle($options.valueStyle) + }, [ + createElementVNode("span", _hoisted_4$a, [ + renderSlot(_ctx.$slots, "total", {}, () => [ + createTextVNode(toDisplayString($props.total), 1) + ]) + ]), + $props.subTotal || _ctx.$slots.subTotal ? (openBlock(), createElementBlock("span", _hoisted_5$5, [ + renderSlot(_ctx.$slots, "subTotal", {}, () => [ + createVNode(_component_Trend, { flag: $props.status }, { + default: withCtx(() => [ + createTextVNode(toDisplayString($props.subTotal), 1) + ]), + _: 1 + }, 8, ["flag"]) + ]) + ])) : createCommentVNode("", true) + ], 4) + ]); +} +var NumberInfo = /* @__PURE__ */ _export_sfc(_sfc_main$Q, [["render", _sfc_render$H]]); +var numeral = { exports: {} }; +/*! @preserve + * numeral.js + * version : 2.0.6 + * author : Adam Draper + * license : MIT + * http://adamwdraper.github.com/Numeral-js/ + */ +(function(module) { + (function(global2, factory) { + if (module.exports) { + module.exports = factory(); + } else { + global2.numeral = factory(); + } + })(commonjsGlobal, function() { + var numeral2, _, VERSION = "2.0.6", formats = {}, locales = {}, defaults2 = { + currentLocale: "en", + zeroFormat: null, + nullFormat: null, + defaultFormat: "0,0", + scalePercentBy100: true + }, options = { + currentLocale: defaults2.currentLocale, + zeroFormat: defaults2.zeroFormat, + nullFormat: defaults2.nullFormat, + defaultFormat: defaults2.defaultFormat, + scalePercentBy100: defaults2.scalePercentBy100 + }; + function Numeral2(input, number3) { + this._input = input; + this._value = number3; + } + numeral2 = function(input) { + var value, kind, unformatFunction, regexp3; + if (numeral2.isNumeral(input)) { + value = input.value(); + } else if (input === 0 || typeof input === "undefined") { + value = 0; + } else if (input === null || _.isNaN(input)) { + value = null; + } else if (typeof input === "string") { + if (options.zeroFormat && input === options.zeroFormat) { + value = 0; + } else if (options.nullFormat && input === options.nullFormat || !input.replace(/[^0-9]+/g, "").length) { + value = null; + } else { + for (kind in formats) { + regexp3 = typeof formats[kind].regexps.unformat === "function" ? formats[kind].regexps.unformat() : formats[kind].regexps.unformat; + if (regexp3 && input.match(regexp3)) { + unformatFunction = formats[kind].unformat; + break; + } + } + unformatFunction = unformatFunction || numeral2._.stringToNumber; + value = unformatFunction(input); + } + } else { + value = Number(input) || null; + } + return new Numeral2(input, value); + }; + numeral2.version = VERSION; + numeral2.isNumeral = function(obj) { + return obj instanceof Numeral2; + }; + numeral2._ = _ = { + numberToFormat: function(value, format2, roundingFunction) { + var locale2 = locales[numeral2.options.currentLocale], negP = false, optDec = false, leadingCount = 0, abbr = "", trillion = 1e12, billion = 1e9, million = 1e6, thousand = 1e3, decimal = "", neg = false, abbrForce, abs, int, precision, signed, thousands, output; + value = value || 0; + abs = Math.abs(value); + if (numeral2._.includes(format2, "(")) { + negP = true; + format2 = format2.replace(/[\(|\)]/g, ""); + } else if (numeral2._.includes(format2, "+") || numeral2._.includes(format2, "-")) { + signed = numeral2._.includes(format2, "+") ? format2.indexOf("+") : value < 0 ? format2.indexOf("-") : -1; + format2 = format2.replace(/[\+|\-]/g, ""); + } + if (numeral2._.includes(format2, "a")) { + abbrForce = format2.match(/a(k|m|b|t)?/); + abbrForce = abbrForce ? abbrForce[1] : false; + if (numeral2._.includes(format2, " a")) { + abbr = " "; + } + format2 = format2.replace(new RegExp(abbr + "a[kmbt]?"), ""); + if (abs >= trillion && !abbrForce || abbrForce === "t") { + abbr += locale2.abbreviations.trillion; + value = value / trillion; + } else if (abs < trillion && abs >= billion && !abbrForce || abbrForce === "b") { + abbr += locale2.abbreviations.billion; + value = value / billion; + } else if (abs < billion && abs >= million && !abbrForce || abbrForce === "m") { + abbr += locale2.abbreviations.million; + value = value / million; + } else if (abs < million && abs >= thousand && !abbrForce || abbrForce === "k") { + abbr += locale2.abbreviations.thousand; + value = value / thousand; + } + } + if (numeral2._.includes(format2, "[.]")) { + optDec = true; + format2 = format2.replace("[.]", "."); + } + int = value.toString().split(".")[0]; + precision = format2.split(".")[1]; + thousands = format2.indexOf(","); + leadingCount = (format2.split(".")[0].split(",")[0].match(/0/g) || []).length; + if (precision) { + if (numeral2._.includes(precision, "[")) { + precision = precision.replace("]", ""); + precision = precision.split("["); + decimal = numeral2._.toFixed(value, precision[0].length + precision[1].length, roundingFunction, precision[1].length); + } else { + decimal = numeral2._.toFixed(value, precision.length, roundingFunction); + } + int = decimal.split(".")[0]; + if (numeral2._.includes(decimal, ".")) { + decimal = locale2.delimiters.decimal + decimal.split(".")[1]; + } else { + decimal = ""; + } + if (optDec && Number(decimal.slice(1)) === 0) { + decimal = ""; + } + } else { + int = numeral2._.toFixed(value, 0, roundingFunction); + } + if (abbr && !abbrForce && Number(int) >= 1e3 && abbr !== locale2.abbreviations.trillion) { + int = String(Number(int) / 1e3); + switch (abbr) { + case locale2.abbreviations.thousand: + abbr = locale2.abbreviations.million; + break; + case locale2.abbreviations.million: + abbr = locale2.abbreviations.billion; + break; + case locale2.abbreviations.billion: + abbr = locale2.abbreviations.trillion; + break; + } + } + if (numeral2._.includes(int, "-")) { + int = int.slice(1); + neg = true; + } + if (int.length < leadingCount) { + for (var i = leadingCount - int.length; i > 0; i--) { + int = "0" + int; + } + } + if (thousands > -1) { + int = int.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g, "$1" + locale2.delimiters.thousands); + } + if (format2.indexOf(".") === 0) { + int = ""; + } + output = int + decimal + (abbr ? abbr : ""); + if (negP) { + output = (negP && neg ? "(" : "") + output + (negP && neg ? ")" : ""); + } else { + if (signed >= 0) { + output = signed === 0 ? (neg ? "-" : "+") + output : output + (neg ? "-" : "+"); + } else if (neg) { + output = "-" + output; + } + } + return output; + }, + stringToNumber: function(string2) { + var locale2 = locales[options.currentLocale], stringOriginal = string2, abbreviations = { + thousand: 3, + million: 6, + billion: 9, + trillion: 12 + }, abbreviation, value, regexp3; + if (options.zeroFormat && string2 === options.zeroFormat) { + value = 0; + } else if (options.nullFormat && string2 === options.nullFormat || !string2.replace(/[^0-9]+/g, "").length) { + value = null; + } else { + value = 1; + if (locale2.delimiters.decimal !== ".") { + string2 = string2.replace(/\./g, "").replace(locale2.delimiters.decimal, "."); + } + for (abbreviation in abbreviations) { + regexp3 = new RegExp("[^a-zA-Z]" + locale2.abbreviations[abbreviation] + "(?:\\)|(\\" + locale2.currency.symbol + ")?(?:\\))?)?$"); + if (stringOriginal.match(regexp3)) { + value *= Math.pow(10, abbreviations[abbreviation]); + break; + } + } + value *= (string2.split("-").length + Math.min(string2.split("(").length - 1, string2.split(")").length - 1)) % 2 ? 1 : -1; + string2 = string2.replace(/[^0-9\.]+/g, ""); + value *= Number(string2); + } + return value; + }, + isNaN: function(value) { + return typeof value === "number" && isNaN(value); + }, + includes: function(string2, search) { + return string2.indexOf(search) !== -1; + }, + insert: function(string2, subString, start) { + return string2.slice(0, start) + subString + string2.slice(start); + }, + reduce: function(array3, callback) { + if (this === null) { + throw new TypeError("Array.prototype.reduce called on null or undefined"); + } + if (typeof callback !== "function") { + throw new TypeError(callback + " is not a function"); + } + var t2 = Object(array3), len = t2.length >>> 0, k = 0, value; + if (arguments.length === 3) { + value = arguments[2]; + } else { + while (k < len && !(k in t2)) { + k++; + } + if (k >= len) { + throw new TypeError("Reduce of empty array with no initial value"); + } + value = t2[k++]; + } + for (; k < len; k++) { + if (k in t2) { + value = callback(value, t2[k], k, t2); + } + } + return value; + }, + multiplier: function(x) { + var parts = x.toString().split("."); + return parts.length < 2 ? 1 : Math.pow(10, parts[1].length); + }, + correctionFactor: function() { + var args = Array.prototype.slice.call(arguments); + return args.reduce(function(accum, next) { + var mn = _.multiplier(next); + return accum > mn ? accum : mn; + }, 1); + }, + toFixed: function(value, maxDecimals, roundingFunction, optionals) { + var splitValue = value.toString().split("."), minDecimals = maxDecimals - (optionals || 0), boundedPrecision, optionalsRegExp, power, output; + if (splitValue.length === 2) { + boundedPrecision = Math.min(Math.max(splitValue[1].length, minDecimals), maxDecimals); + } else { + boundedPrecision = minDecimals; + } + power = Math.pow(10, boundedPrecision); + output = (roundingFunction(value + "e+" + boundedPrecision) / power).toFixed(boundedPrecision); + if (optionals > maxDecimals - boundedPrecision) { + optionalsRegExp = new RegExp("\\.?0{1," + (optionals - (maxDecimals - boundedPrecision)) + "}$"); + output = output.replace(optionalsRegExp, ""); + } + return output; + } + }; + numeral2.options = options; + numeral2.formats = formats; + numeral2.locales = locales; + numeral2.locale = function(key2) { + if (key2) { + options.currentLocale = key2.toLowerCase(); + } + return options.currentLocale; + }; + numeral2.localeData = function(key2) { + if (!key2) { + return locales[options.currentLocale]; + } + key2 = key2.toLowerCase(); + if (!locales[key2]) { + throw new Error("Unknown locale : " + key2); + } + return locales[key2]; + }; + numeral2.reset = function() { + for (var property in defaults2) { + options[property] = defaults2[property]; + } + }; + numeral2.zeroFormat = function(format2) { + options.zeroFormat = typeof format2 === "string" ? format2 : null; + }; + numeral2.nullFormat = function(format2) { + options.nullFormat = typeof format2 === "string" ? format2 : null; + }; + numeral2.defaultFormat = function(format2) { + options.defaultFormat = typeof format2 === "string" ? format2 : "0.0"; + }; + numeral2.register = function(type2, name2, format2) { + name2 = name2.toLowerCase(); + if (this[type2 + "s"][name2]) { + throw new TypeError(name2 + " " + type2 + " already registered."); + } + this[type2 + "s"][name2] = format2; + return format2; + }; + numeral2.validate = function(val, culture) { + var _decimalSep, _thousandSep, _currSymbol, _valArray, _abbrObj, _thousandRegEx, localeData, temp; + if (typeof val !== "string") { + val += ""; + if (console.warn) { + console.warn("Numeral.js: Value is not string. It has been co-erced to: ", val); + } + } + val = val.trim(); + if (!!val.match(/^\d+$/)) { + return true; + } + if (val === "") { + return false; + } + try { + localeData = numeral2.localeData(culture); + } catch (e) { + localeData = numeral2.localeData(numeral2.locale()); + } + _currSymbol = localeData.currency.symbol; + _abbrObj = localeData.abbreviations; + _decimalSep = localeData.delimiters.decimal; + if (localeData.delimiters.thousands === ".") { + _thousandSep = "\\."; + } else { + _thousandSep = localeData.delimiters.thousands; + } + temp = val.match(/^[^\d]+/); + if (temp !== null) { + val = val.substr(1); + if (temp[0] !== _currSymbol) { + return false; + } + } + temp = val.match(/[^\d]+$/); + if (temp !== null) { + val = val.slice(0, -1); + if (temp[0] !== _abbrObj.thousand && temp[0] !== _abbrObj.million && temp[0] !== _abbrObj.billion && temp[0] !== _abbrObj.trillion) { + return false; + } + } + _thousandRegEx = new RegExp(_thousandSep + "{2}"); + if (!val.match(/[^\d.,]/g)) { + _valArray = val.split(_decimalSep); + if (_valArray.length > 2) { + return false; + } else { + if (_valArray.length < 2) { + return !!_valArray[0].match(/^\d+.*\d$/) && !_valArray[0].match(_thousandRegEx); + } else { + if (_valArray[0].length === 1) { + return !!_valArray[0].match(/^\d+$/) && !_valArray[0].match(_thousandRegEx) && !!_valArray[1].match(/^\d+$/); + } else { + return !!_valArray[0].match(/^\d+.*\d$/) && !_valArray[0].match(_thousandRegEx) && !!_valArray[1].match(/^\d+$/); + } + } + } + } + return false; + }; + numeral2.fn = Numeral2.prototype = { + clone: function() { + return numeral2(this); + }, + format: function(inputString, roundingFunction) { + var value = this._value, format2 = inputString || options.defaultFormat, kind, output, formatFunction; + roundingFunction = roundingFunction || Math.round; + if (value === 0 && options.zeroFormat !== null) { + output = options.zeroFormat; + } else if (value === null && options.nullFormat !== null) { + output = options.nullFormat; + } else { + for (kind in formats) { + if (format2.match(formats[kind].regexps.format)) { + formatFunction = formats[kind].format; + break; + } + } + formatFunction = formatFunction || numeral2._.numberToFormat; + output = formatFunction(value, format2, roundingFunction); + } + return output; + }, + value: function() { + return this._value; + }, + input: function() { + return this._input; + }, + set: function(value) { + this._value = Number(value); + return this; + }, + add: function(value) { + var corrFactor = _.correctionFactor.call(null, this._value, value); + function cback(accum, curr, currI, O) { + return accum + Math.round(corrFactor * curr); + } + this._value = _.reduce([this._value, value], cback, 0) / corrFactor; + return this; + }, + subtract: function(value) { + var corrFactor = _.correctionFactor.call(null, this._value, value); + function cback(accum, curr, currI, O) { + return accum - Math.round(corrFactor * curr); + } + this._value = _.reduce([value], cback, Math.round(this._value * corrFactor)) / corrFactor; + return this; + }, + multiply: function(value) { + function cback(accum, curr, currI, O) { + var corrFactor = _.correctionFactor(accum, curr); + return Math.round(accum * corrFactor) * Math.round(curr * corrFactor) / Math.round(corrFactor * corrFactor); + } + this._value = _.reduce([this._value, value], cback, 1); + return this; + }, + divide: function(value) { + function cback(accum, curr, currI, O) { + var corrFactor = _.correctionFactor(accum, curr); + return Math.round(accum * corrFactor) / Math.round(curr * corrFactor); + } + this._value = _.reduce([this._value, value], cback); + return this; + }, + difference: function(value) { + return Math.abs(numeral2(this._value).subtract(value).value()); + } + }; + numeral2.register("locale", "en", { + delimiters: { + thousands: ",", + decimal: "." + }, + abbreviations: { + thousand: "k", + million: "m", + billion: "b", + trillion: "t" + }, + ordinal: function(number3) { + var b = number3 % 10; + return ~~(number3 % 100 / 10) === 1 ? "th" : b === 1 ? "st" : b === 2 ? "nd" : b === 3 ? "rd" : "th"; + }, + currency: { + symbol: "$" + } + }); + (function() { + numeral2.register("format", "bps", { + regexps: { + format: /(BPS)/, + unformat: /(BPS)/ + }, + format: function(value, format2, roundingFunction) { + var space = numeral2._.includes(format2, " BPS") ? " " : "", output; + value = value * 1e4; + format2 = format2.replace(/\s?BPS/, ""); + output = numeral2._.numberToFormat(value, format2, roundingFunction); + if (numeral2._.includes(output, ")")) { + output = output.split(""); + output.splice(-1, 0, space + "BPS"); + output = output.join(""); + } else { + output = output + space + "BPS"; + } + return output; + }, + unformat: function(string2) { + return +(numeral2._.stringToNumber(string2) * 1e-4).toFixed(15); + } + }); + })(); + (function() { + var decimal = { + base: 1e3, + suffixes: ["B", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"] + }, binary = { + base: 1024, + suffixes: ["B", "KiB", "MiB", "GiB", "TiB", "PiB", "EiB", "ZiB", "YiB"] + }; + var allSuffixes = decimal.suffixes.concat(binary.suffixes.filter(function(item) { + return decimal.suffixes.indexOf(item) < 0; + })); + var unformatRegex = allSuffixes.join("|"); + unformatRegex = "(" + unformatRegex.replace("B", "B(?!PS)") + ")"; + numeral2.register("format", "bytes", { + regexps: { + format: /([0\s]i?b)/, + unformat: new RegExp(unformatRegex) + }, + format: function(value, format2, roundingFunction) { + var output, bytes = numeral2._.includes(format2, "ib") ? binary : decimal, suffix = numeral2._.includes(format2, " b") || numeral2._.includes(format2, " ib") ? " " : "", power, min, max; + format2 = format2.replace(/\s?i?b/, ""); + for (power = 0; power <= bytes.suffixes.length; power++) { + min = Math.pow(bytes.base, power); + max = Math.pow(bytes.base, power + 1); + if (value === null || value === 0 || value >= min && value < max) { + suffix += bytes.suffixes[power]; + if (min > 0) { + value = value / min; + } + break; + } + } + output = numeral2._.numberToFormat(value, format2, roundingFunction); + return output + suffix; + }, + unformat: function(string2) { + var value = numeral2._.stringToNumber(string2), power, bytesMultiplier; + if (value) { + for (power = decimal.suffixes.length - 1; power >= 0; power--) { + if (numeral2._.includes(string2, decimal.suffixes[power])) { + bytesMultiplier = Math.pow(decimal.base, power); + break; + } + if (numeral2._.includes(string2, binary.suffixes[power])) { + bytesMultiplier = Math.pow(binary.base, power); + break; + } + } + value *= bytesMultiplier || 1; + } + return value; + } + }); + })(); + (function() { + numeral2.register("format", "currency", { + regexps: { + format: /(\$)/ + }, + format: function(value, format2, roundingFunction) { + var locale2 = numeral2.locales[numeral2.options.currentLocale], symbols = { + before: format2.match(/^([\+|\-|\(|\s|\$]*)/)[0], + after: format2.match(/([\+|\-|\)|\s|\$]*)$/)[0] + }, output, symbol, i; + format2 = format2.replace(/\s?\$\s?/, ""); + output = numeral2._.numberToFormat(value, format2, roundingFunction); + if (value >= 0) { + symbols.before = symbols.before.replace(/[\-\(]/, ""); + symbols.after = symbols.after.replace(/[\-\)]/, ""); + } else if (value < 0 && (!numeral2._.includes(symbols.before, "-") && !numeral2._.includes(symbols.before, "("))) { + symbols.before = "-" + symbols.before; + } + for (i = 0; i < symbols.before.length; i++) { + symbol = symbols.before[i]; + switch (symbol) { + case "$": + output = numeral2._.insert(output, locale2.currency.symbol, i); + break; + case " ": + output = numeral2._.insert(output, " ", i + locale2.currency.symbol.length - 1); + break; + } + } + for (i = symbols.after.length - 1; i >= 0; i--) { + symbol = symbols.after[i]; + switch (symbol) { + case "$": + output = i === symbols.after.length - 1 ? output + locale2.currency.symbol : numeral2._.insert(output, locale2.currency.symbol, -(symbols.after.length - (1 + i))); + break; + case " ": + output = i === symbols.after.length - 1 ? output + " " : numeral2._.insert(output, " ", -(symbols.after.length - (1 + i) + locale2.currency.symbol.length - 1)); + break; + } + } + return output; + } + }); + })(); + (function() { + numeral2.register("format", "exponential", { + regexps: { + format: /(e\+|e-)/, + unformat: /(e\+|e-)/ + }, + format: function(value, format2, roundingFunction) { + var output, exponential = typeof value === "number" && !numeral2._.isNaN(value) ? value.toExponential() : "0e+0", parts = exponential.split("e"); + format2 = format2.replace(/e[\+|\-]{1}0/, ""); + output = numeral2._.numberToFormat(Number(parts[0]), format2, roundingFunction); + return output + "e" + parts[1]; + }, + unformat: function(string2) { + var parts = numeral2._.includes(string2, "e+") ? string2.split("e+") : string2.split("e-"), value = Number(parts[0]), power = Number(parts[1]); + power = numeral2._.includes(string2, "e-") ? power *= -1 : power; + function cback(accum, curr, currI, O) { + var corrFactor = numeral2._.correctionFactor(accum, curr), num = accum * corrFactor * (curr * corrFactor) / (corrFactor * corrFactor); + return num; + } + return numeral2._.reduce([value, Math.pow(10, power)], cback, 1); + } + }); + })(); + (function() { + numeral2.register("format", "ordinal", { + regexps: { + format: /(o)/ + }, + format: function(value, format2, roundingFunction) { + var locale2 = numeral2.locales[numeral2.options.currentLocale], output, ordinal = numeral2._.includes(format2, " o") ? " " : ""; + format2 = format2.replace(/\s?o/, ""); + ordinal += locale2.ordinal(value); + output = numeral2._.numberToFormat(value, format2, roundingFunction); + return output + ordinal; + } + }); + })(); + (function() { + numeral2.register("format", "percentage", { + regexps: { + format: /(%)/, + unformat: /(%)/ + }, + format: function(value, format2, roundingFunction) { + var space = numeral2._.includes(format2, " %") ? " " : "", output; + if (numeral2.options.scalePercentBy100) { + value = value * 100; + } + format2 = format2.replace(/\s?\%/, ""); + output = numeral2._.numberToFormat(value, format2, roundingFunction); + if (numeral2._.includes(output, ")")) { + output = output.split(""); + output.splice(-1, 0, space + "%"); + output = output.join(""); + } else { + output = output + space + "%"; + } + return output; + }, + unformat: function(string2) { + var number3 = numeral2._.stringToNumber(string2); + if (numeral2.options.scalePercentBy100) { + return number3 * 0.01; + } + return number3; + } + }); + })(); + (function() { + numeral2.register("format", "time", { + regexps: { + format: /(:)/, + unformat: /(:)/ + }, + format: function(value, format2, roundingFunction) { + var hours = Math.floor(value / 60 / 60), minutes = Math.floor((value - hours * 60 * 60) / 60), seconds = Math.round(value - hours * 60 * 60 - minutes * 60); + return hours + ":" + (minutes < 10 ? "0" + minutes : minutes) + ":" + (seconds < 10 ? "0" + seconds : seconds); + }, + unformat: function(string2) { + var timeArray = string2.split(":"), seconds = 0; + if (timeArray.length === 3) { + seconds = seconds + Number(timeArray[0]) * 60 * 60; + seconds = seconds + Number(timeArray[1]) * 60; + seconds = seconds + Number(timeArray[2]); + } else if (timeArray.length === 2) { + seconds = seconds + Number(timeArray[0]) * 60; + seconds = seconds + Number(timeArray[1]); + } + return Number(seconds); + } + }); + })(); + return numeral2; + }); +})(numeral); +var Numeral$1 = numeral.exports; +const _sfc_main$P = { + name: "Numeral", + emits: ["on-change"], + props: { + value: { + type: [String, Number] + }, + format: { + type: String + }, + prefix: { + type: [String, Number] + }, + suffix: { + type: [String, Number] + } + }, + data() { + return { + currentValue: "" + }; + }, + watch: { + value() { + this.init(); + }, + format() { + this.init(); + } + }, + methods: { + init() { + if (this.value !== void 0) { + const num = Numeral$1(this.value); + if (this.format) { + this.currentValue = num.format(this.format); + } else { + this.currentValue = num.value(); + } + this.$emit("on-change", this.currentValue); + } + }, + getValue() { + return this.currentValue; + } + }, + mounted() { + this.init(); + } +}; +const _hoisted_1$q = { class: "ivu-numeral" }; +function _sfc_render$G(_ctx, _cache, $props, $setup, $data, $options) { + return openBlock(), createElementBlock("span", _hoisted_1$q, [ + renderSlot(_ctx.$slots, "prefix", {}, () => [ + createTextVNode(toDisplayString($props.prefix), 1) + ]), + createTextVNode(toDisplayString($data.currentValue), 1), + renderSlot(_ctx.$slots, "suffix", {}, () => [ + createTextVNode(toDisplayString($props.suffix), 1) + ]) + ]); +} +var Numeral = /* @__PURE__ */ _export_sfc(_sfc_main$P, [["render", _sfc_render$G]]); +const prefixCls$o = "ivu-select-group"; +const _sfc_main$O = { + name: "OptionGroup", + props: { + label: { + type: String, + default: "" + } + }, + provide() { + return { + OptionGroupInstance: this + }; + }, + inject: ["SelectInstance"], + data() { + return { + prefixCls: prefixCls$o, + hidden: false, + id: random(6), + optionList: [] + }; + }, + computed: { + show() { + return this.optionList.find((item) => item.proxy && item.proxy.isShow); + } + } +}; +function _sfc_render$F(_ctx, _cache, $props, $setup, $data, $options) { + return withDirectives((openBlock(), createElementBlock("li", { + class: normalizeClass([$data.prefixCls + "-wrap"]) + }, [ + createElementVNode("div", { + class: normalizeClass([$data.prefixCls + "-title"]) + }, toDisplayString($props.label), 3), + createElementVNode("ul", null, [ + createElementVNode("li", { + class: normalizeClass([$data.prefixCls]), + ref: "options" + }, [ + renderSlot(_ctx.$slots, "default") + ], 2) + ]) + ], 2)), [ + [vShow, $options.show] + ]); +} +var OptionGroup = /* @__PURE__ */ _export_sfc(_sfc_main$O, [["render", _sfc_render$F]]); +const prefixCls$n = "ivu-page"; +function isValueNumber(value) { + return /^[1-9][0-9]*$/.test(value + ""); +} +const _sfc_main$N = { + name: "PageOption", + mixins: [Locale], + components: { iSelect: Select, iOption }, + emits: ["on-size", "on-page"], + props: { + pageSizeOpts: Array, + showSizer: Boolean, + showElevator: Boolean, + current: Number, + _current: Number, + pageSize: Number, + allPages: Number, + isSmall: Boolean, + placement: String, + transfer: Boolean, + disabled: Boolean, + eventsEnabled: Boolean + }, + data() { + return { + currentPageSize: this.pageSize + }; + }, + watch: { + pageSize(val) { + this.currentPageSize = val; + } + }, + computed: { + size() { + return this.isSmall ? "small" : "default"; + }, + optsClasses() { + return [ + `${prefixCls$n}-options` + ]; + }, + sizerClasses() { + return [ + `${prefixCls$n}-options-sizer` + ]; + }, + ElevatorClasses() { + return [ + `${prefixCls$n}-options-elevator` + ]; + } + }, + methods: { + changeSize() { + this.$emit("on-size", this.currentPageSize); + }, + changePage(event) { + let val = event.target.value.trim(); + let page = 0; + if (isValueNumber(val)) { + val = Number(val); + if (val != this.current) { + const allPages = this.allPages; + if (val > allPages) { + page = allPages; + } else { + page = val; + } + } + } else { + page = 1; + } + if (page) { + this.$emit("on-page", page); + event.target.value = page; + } + } + } +}; +const _hoisted_1$p = ["value", "disabled"]; +function _sfc_render$E(_ctx, _cache, $props, $setup, $data, $options) { + const _component_i_option = resolveComponent("i-option"); + const _component_i_select = resolveComponent("i-select"); + return $props.showSizer || $props.showElevator ? (openBlock(), createElementBlock("div", { + key: 0, + class: normalizeClass($options.optsClasses) + }, [ + $props.showSizer ? (openBlock(), createElementBlock("div", { + key: 0, + class: normalizeClass($options.sizerClasses) + }, [ + createVNode(_component_i_select, { + modelValue: $data.currentPageSize, + "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => $data.currentPageSize = $event), + size: $options.size, + placement: $props.placement, + transfer: $props.transfer, + disabled: $props.disabled, + eventsEnabled: $props.eventsEnabled, + onOnChange: $options.changeSize + }, { + default: withCtx(() => [ + (openBlock(true), createElementBlock(Fragment, null, renderList($props.pageSizeOpts, (item) => { + return openBlock(), createBlock(_component_i_option, { + key: item, + value: item, + style: { "text-align": "center" } + }, { + default: withCtx(() => [ + createTextVNode(toDisplayString(item) + " " + toDisplayString(_ctx.t("i.page.page")), 1) + ]), + _: 2 + }, 1032, ["value"]); + }), 128)) + ]), + _: 1 + }, 8, ["modelValue", "size", "placement", "transfer", "disabled", "eventsEnabled", "onOnChange"]) + ], 2)) : createCommentVNode("", true), + $props.showElevator ? (openBlock(), createElementBlock("div", { + key: 1, + class: normalizeClass($options.ElevatorClasses) + }, [ + createTextVNode(toDisplayString(_ctx.t("i.page.goto")) + " ", 1), + createElementVNode("input", { + type: "text", + value: $props._current, + autocomplete: "off", + spellcheck: "false", + disabled: $props.disabled, + onKeyup: _cache[1] || (_cache[1] = withKeys((...args) => $options.changePage && $options.changePage(...args), ["enter"])) + }, null, 40, _hoisted_1$p), + createTextVNode(" " + toDisplayString(_ctx.t("i.page.p")), 1) + ], 2)) : createCommentVNode("", true) + ], 2)) : createCommentVNode("", true); +} +var Options = /* @__PURE__ */ _export_sfc(_sfc_main$N, [["render", _sfc_render$E]]); +const prefixCls$m = "ivu-page"; +const _sfc_main$M = { + name: "Page", + mixins: [Locale], + components: { Options }, + emits: ["update:modelValue", "on-change", "on-prev", "on-next", "on-page-size-change"], + props: { + modelValue: { + type: Number, + default: 1 + }, + total: { + type: Number, + default: 0 + }, + pageSize: { + type: Number, + default: 10 + }, + pageSizeOpts: { + type: Array, + default() { + return [10, 20, 30, 40]; + } + }, + placement: { + validator(value) { + return oneOf(value, ["top", "bottom"]); + }, + default: "bottom" + }, + transfer: { + type: Boolean, + default() { + const global2 = getCurrentInstance().appContext.config.globalProperties; + return !global2.$VIEWUI || global2.$VIEWUI.transfer === "" ? false : global2.$VIEWUI.transfer; + } + }, + size: { + validator(value) { + return oneOf(value, ["small", "default"]); + } + }, + simple: { + type: Boolean, + default: false + }, + showTotal: { + type: Boolean, + default: false + }, + showElevator: { + type: Boolean, + default: false + }, + showSizer: { + type: Boolean, + default: false + }, + className: { + type: String + }, + styles: { + type: Object + }, + prevText: { + type: String, + default: "" + }, + nextText: { + type: String, + default: "" + }, + disabled: { + type: Boolean, + default: false + }, + eventsEnabled: { + type: Boolean, + default: false + } + }, + data() { + return { + prefixCls: prefixCls$m, + currentPage: this.modelValue, + currentPageSize: this.pageSize + }; + }, + watch: { + total(val) { + let maxPage = Math.ceil(val / this.currentPageSize); + if (maxPage < this.currentPage) { + this.currentPage = maxPage === 0 ? 1 : maxPage; + } + }, + modelValue(val) { + this.currentPage = val; + }, + pageSize(val) { + this.currentPageSize = val; + } + }, + computed: { + isSmall() { + return this.size === "small"; + }, + allPages() { + const allPage = Math.ceil(this.total / this.currentPageSize); + return allPage === 0 ? 1 : allPage; + }, + simpleWrapClasses() { + return [ + `${prefixCls$m}`, + `${prefixCls$m}-simple`, + { + [`${this.className}`]: !!this.className + } + ]; + }, + simplePagerClasses() { + return `${prefixCls$m}-simple-pager`; + }, + wrapClasses() { + return [ + `${prefixCls$m}`, + { + [`${this.className}`]: !!this.className, + [`${prefixCls$m}-with-disabled`]: this.disabled, + "mini": this.size === "small" + } + ]; + }, + prevClasses() { + return [ + `${prefixCls$m}-prev`, + { + [`${prefixCls$m}-disabled`]: this.currentPage === 1 || this.disabled, + [`${prefixCls$m}-custom-text`]: this.prevText !== "" + } + ]; + }, + nextClasses() { + return [ + `${prefixCls$m}-next`, + { + [`${prefixCls$m}-disabled`]: this.currentPage === this.allPages || this.disabled, + [`${prefixCls$m}-custom-text`]: this.nextText !== "" + } + ]; + }, + firstPageClasses() { + return [ + `${prefixCls$m}-item`, + { + [`${prefixCls$m}-item-active`]: this.currentPage === 1 + } + ]; + }, + lastPageClasses() { + return [ + `${prefixCls$m}-item`, + { + [`${prefixCls$m}-item-active`]: this.currentPage === this.allPages + } + ]; + } + }, + methods: { + changePage(page) { + if (this.disabled) + return; + if (this.currentPage != page) { + this.currentPage = page; + this.$emit("update:modelValue", page); + this.$emit("on-change", page); + } + }, + prev() { + if (this.disabled) + return; + const current = this.currentPage; + if (current <= 1) { + return false; + } + this.changePage(current - 1); + this.$emit("on-prev", current - 1); + }, + next() { + if (this.disabled) + return; + const current = this.currentPage; + if (current >= this.allPages) { + return false; + } + this.changePage(current + 1); + this.$emit("on-next", current + 1); + }, + fastPrev() { + if (this.disabled) + return; + const page = this.currentPage - 5; + if (page > 0) { + this.changePage(page); + } else { + this.changePage(1); + } + }, + fastNext() { + if (this.disabled) + return; + const page = this.currentPage + 5; + if (page > this.allPages) { + this.changePage(this.allPages); + } else { + this.changePage(page); + } + }, + onSize(pageSize) { + if (this.disabled) + return; + this.currentPageSize = pageSize; + this.$emit("on-page-size-change", pageSize); + this.changePage(1); + }, + onPage(page) { + if (this.disabled) + return; + this.changePage(page); + }, + keyDown(e) { + const key2 = e.keyCode; + const condition = key2 >= 48 && key2 <= 57 || key2 >= 96 && key2 <= 105 || key2 === 8 || key2 === 37 || key2 === 39; + if (!condition) { + e.preventDefault(); + } + }, + keyUp(e) { + const key2 = e.keyCode; + const val = parseInt(e.target.value); + if (key2 === 38) { + this.prev(); + } else if (key2 === 40) { + this.next(); + } else if (key2 === 13) { + let page = 1; + if (val > this.allPages) { + page = this.allPages; + } else if (val <= 0 || !val) { + page = 1; + } else { + page = val; + } + e.target.value = page; + this.changePage(page); + } + } + } +}; +const _hoisted_1$o = ["title"]; +const _hoisted_2$g = /* @__PURE__ */ createElementVNode("a", null, [ + /* @__PURE__ */ createElementVNode("i", { class: "ivu-icon ivu-icon-ios-arrow-back" }) +], -1); +const _hoisted_3$c = [ + _hoisted_2$g +]; +const _hoisted_4$9 = ["title"]; +const _hoisted_5$4 = ["value", "disabled"]; +const _hoisted_6$3 = /* @__PURE__ */ createElementVNode("span", null, "/", -1); +const _hoisted_7$2 = ["title"]; +const _hoisted_8$2 = /* @__PURE__ */ createElementVNode("a", null, [ + /* @__PURE__ */ createElementVNode("i", { class: "ivu-icon ivu-icon-ios-arrow-forward" }) +], -1); +const _hoisted_9$2 = [ + _hoisted_8$2 +]; +const _hoisted_10$1 = ["title"]; +const _hoisted_11$1 = { + key: 1, + class: "ivu-icon ivu-icon-ios-arrow-back" +}; +const _hoisted_12$1 = /* @__PURE__ */ createElementVNode("a", null, "1", -1); +const _hoisted_13 = [ + _hoisted_12$1 +]; +const _hoisted_14 = ["title"]; +const _hoisted_15 = /* @__PURE__ */ createElementVNode("a", null, [ + /* @__PURE__ */ createElementVNode("i", { class: "ivu-icon ivu-icon-ios-arrow-back" }), + /* @__PURE__ */ createElementVNode("i", { class: "ivu-icon ivu-icon-ios-more" }) +], -1); +const _hoisted_16 = [ + _hoisted_15 +]; +const _hoisted_17 = ["title"]; +const _hoisted_18 = ["title"]; +const _hoisted_19 = ["title"]; +const _hoisted_20 = ["title"]; +const _hoisted_21 = ["title"]; +const _hoisted_22 = ["title"]; +const _hoisted_23 = ["title"]; +const _hoisted_24 = ["title"]; +const _hoisted_25 = /* @__PURE__ */ createElementVNode("a", null, [ + /* @__PURE__ */ createElementVNode("i", { class: "ivu-icon ivu-icon-ios-arrow-forward" }), + /* @__PURE__ */ createElementVNode("i", { class: "ivu-icon ivu-icon-ios-more" }) +], -1); +const _hoisted_26 = [ + _hoisted_25 +]; +const _hoisted_27 = ["title"]; +const _hoisted_28 = ["title"]; +const _hoisted_29 = { + key: 1, + class: "ivu-icon ivu-icon-ios-arrow-forward" +}; +function _sfc_render$D(_ctx, _cache, $props, $setup, $data, $options) { + const _component_Options = resolveComponent("Options"); + return $props.simple ? (openBlock(), createElementBlock("ul", { + key: 0, + class: normalizeClass($options.simpleWrapClasses), + style: normalizeStyle($props.styles) + }, [ + createElementVNode("li", { + title: _ctx.t("i.page.prev"), + class: normalizeClass($options.prevClasses), + onClick: _cache[0] || (_cache[0] = (...args) => $options.prev && $options.prev(...args)) + }, _hoisted_3$c, 10, _hoisted_1$o), + createElementVNode("div", { + class: normalizeClass($options.simplePagerClasses), + title: $data.currentPage + "/" + $options.allPages + }, [ + createElementVNode("input", { + type: "text", + value: $data.currentPage, + autocomplete: "off", + spellcheck: "false", + disabled: $props.disabled, + onKeydown: _cache[1] || (_cache[1] = (...args) => $options.keyDown && $options.keyDown(...args)), + onKeyup: _cache[2] || (_cache[2] = (...args) => $options.keyUp && $options.keyUp(...args)), + onChange: _cache[3] || (_cache[3] = (...args) => $options.keyUp && $options.keyUp(...args)) + }, null, 40, _hoisted_5$4), + _hoisted_6$3, + createTextVNode(" " + toDisplayString($options.allPages), 1) + ], 10, _hoisted_4$9), + createElementVNode("li", { + title: _ctx.t("i.page.next"), + class: normalizeClass($options.nextClasses), + onClick: _cache[4] || (_cache[4] = (...args) => $options.next && $options.next(...args)) + }, _hoisted_9$2, 10, _hoisted_7$2) + ], 6)) : (openBlock(), createElementBlock("ul", { + key: 1, + class: normalizeClass($options.wrapClasses), + style: normalizeStyle($props.styles) + }, [ + $props.showTotal ? (openBlock(), createElementBlock("span", { + key: 0, + class: normalizeClass([$data.prefixCls + "-total"]) + }, [ + renderSlot(_ctx.$slots, "default", {}, () => [ + createTextVNode(toDisplayString(_ctx.t("i.page.total")) + " " + toDisplayString($props.total) + " ", 1), + $props.total <= 1 ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [ + createTextVNode(toDisplayString(_ctx.t("i.page.item")), 1) + ], 64)) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [ + createTextVNode(toDisplayString(_ctx.t("i.page.items")), 1) + ], 64)) + ]) + ], 2)) : createCommentVNode("", true), + createElementVNode("li", { + title: _ctx.t("i.page.prev"), + class: normalizeClass($options.prevClasses), + onClick: _cache[5] || (_cache[5] = (...args) => $options.prev && $options.prev(...args)) + }, [ + createElementVNode("a", null, [ + $props.prevText !== "" ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [ + createTextVNode(toDisplayString($props.prevText), 1) + ], 64)) : (openBlock(), createElementBlock("i", _hoisted_11$1)) + ]) + ], 10, _hoisted_10$1), + createElementVNode("li", { + title: "1", + class: normalizeClass($options.firstPageClasses), + onClick: _cache[6] || (_cache[6] = ($event) => $options.changePage(1)) + }, _hoisted_13, 2), + $data.currentPage > 5 ? (openBlock(), createElementBlock("li", { + key: 1, + title: _ctx.t("i.page.prev5"), + class: normalizeClass([$data.prefixCls + "-item-jump-prev"]), + onClick: _cache[7] || (_cache[7] = (...args) => $options.fastPrev && $options.fastPrev(...args)) + }, _hoisted_16, 10, _hoisted_14)) : createCommentVNode("", true), + $data.currentPage === 5 ? (openBlock(), createElementBlock("li", { + key: 2, + title: $data.currentPage - 3, + class: normalizeClass([$data.prefixCls + "-item"]), + onClick: _cache[8] || (_cache[8] = ($event) => $options.changePage($data.currentPage - 3)) + }, [ + createElementVNode("a", null, toDisplayString($data.currentPage - 3), 1) + ], 10, _hoisted_17)) : createCommentVNode("", true), + $data.currentPage - 2 > 1 ? (openBlock(), createElementBlock("li", { + key: 3, + title: $data.currentPage - 2, + class: normalizeClass([$data.prefixCls + "-item"]), + onClick: _cache[9] || (_cache[9] = ($event) => $options.changePage($data.currentPage - 2)) + }, [ + createElementVNode("a", null, toDisplayString($data.currentPage - 2), 1) + ], 10, _hoisted_18)) : createCommentVNode("", true), + $data.currentPage - 1 > 1 ? (openBlock(), createElementBlock("li", { + key: 4, + title: $data.currentPage - 1, + class: normalizeClass([$data.prefixCls + "-item"]), + onClick: _cache[10] || (_cache[10] = ($event) => $options.changePage($data.currentPage - 1)) + }, [ + createElementVNode("a", null, toDisplayString($data.currentPage - 1), 1) + ], 10, _hoisted_19)) : createCommentVNode("", true), + $data.currentPage != 1 && $data.currentPage != $options.allPages ? (openBlock(), createElementBlock("li", { + key: 5, + title: $data.currentPage, + class: normalizeClass([$data.prefixCls + "-item", $data.prefixCls + "-item-active"]) + }, [ + createElementVNode("a", null, toDisplayString($data.currentPage), 1) + ], 10, _hoisted_20)) : createCommentVNode("", true), + $data.currentPage + 1 < $options.allPages ? (openBlock(), createElementBlock("li", { + key: 6, + title: $data.currentPage + 1, + class: normalizeClass([$data.prefixCls + "-item"]), + onClick: _cache[11] || (_cache[11] = ($event) => $options.changePage($data.currentPage + 1)) + }, [ + createElementVNode("a", null, toDisplayString($data.currentPage + 1), 1) + ], 10, _hoisted_21)) : createCommentVNode("", true), + $data.currentPage + 2 < $options.allPages ? (openBlock(), createElementBlock("li", { + key: 7, + title: $data.currentPage + 2, + class: normalizeClass([$data.prefixCls + "-item"]), + onClick: _cache[12] || (_cache[12] = ($event) => $options.changePage($data.currentPage + 2)) + }, [ + createElementVNode("a", null, toDisplayString($data.currentPage + 2), 1) + ], 10, _hoisted_22)) : createCommentVNode("", true), + $options.allPages - $data.currentPage === 4 ? (openBlock(), createElementBlock("li", { + key: 8, + title: $data.currentPage + 3, + class: normalizeClass([$data.prefixCls + "-item"]), + onClick: _cache[13] || (_cache[13] = ($event) => $options.changePage($data.currentPage + 3)) + }, [ + createElementVNode("a", null, toDisplayString($data.currentPage + 3), 1) + ], 10, _hoisted_23)) : createCommentVNode("", true), + $options.allPages - $data.currentPage >= 5 ? (openBlock(), createElementBlock("li", { + key: 9, + title: _ctx.t("i.page.next5"), + class: normalizeClass([$data.prefixCls + "-item-jump-next"]), + onClick: _cache[14] || (_cache[14] = (...args) => $options.fastNext && $options.fastNext(...args)) + }, _hoisted_26, 10, _hoisted_24)) : createCommentVNode("", true), + $options.allPages > 1 ? (openBlock(), createElementBlock("li", { + key: 10, + title: $options.allPages, + class: normalizeClass($options.lastPageClasses), + onClick: _cache[15] || (_cache[15] = ($event) => $options.changePage($options.allPages)) + }, [ + createElementVNode("a", null, toDisplayString($options.allPages), 1) + ], 10, _hoisted_27)) : createCommentVNode("", true), + createElementVNode("li", { + title: _ctx.t("i.page.next"), + class: normalizeClass($options.nextClasses), + onClick: _cache[16] || (_cache[16] = (...args) => $options.next && $options.next(...args)) + }, [ + createElementVNode("a", null, [ + $props.nextText !== "" ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [ + createTextVNode(toDisplayString($props.nextText), 1) + ], 64)) : (openBlock(), createElementBlock("i", _hoisted_29)) + ]) + ], 10, _hoisted_28), + createVNode(_component_Options, { + "show-sizer": $props.showSizer, + "page-size": $data.currentPageSize, + "page-size-opts": $props.pageSizeOpts, + placement: $props.placement, + transfer: $props.transfer, + "show-elevator": $props.showElevator, + _current: $data.currentPage, + current: $data.currentPage, + disabled: $props.disabled, + "all-pages": $options.allPages, + "is-small": $options.isSmall, + eventsEnabled: $props.eventsEnabled, + onOnSize: $options.onSize, + onOnPage: $options.onPage + }, null, 8, ["show-sizer", "page-size", "page-size-opts", "placement", "transfer", "show-elevator", "_current", "current", "disabled", "all-pages", "is-small", "eventsEnabled", "onOnSize", "onOnPage"]) + ], 6)); +} +var Page = /* @__PURE__ */ _export_sfc(_sfc_main$M, [["render", _sfc_render$D]]); +const _sfc_main$L = { + name: "PageHeader", + components: { Breadcrumb, BreadcrumbItem, Divider, Icon, Tabs, TabPane }, + emits: ["on-tab-change", "on-back"], + props: { + title: { + type: String + }, + back: { + type: Boolean, + default: false + }, + logo: { + type: String + }, + action: { + type: String + }, + content: { + type: String + }, + extra: { + type: String + }, + breadcrumbList: { + type: Array + }, + hiddenBreadcrumb: { + type: Boolean, + default: false + }, + tabList: { + type: Array + }, + tabActiveKey: { + type: String + }, + wide: { + type: Boolean, + default: false + } + }, + computed: { + classes() { + return { + "ivu-page-header-wide": this.wide + }; + } + }, + methods: { + handleTabChange(name2) { + const tab = this.tabList.find((item) => item.name === name2); + this.$emit("on-tab-change", JSON.parse(JSON.stringify(tab))); + }, + handleBack() { + this.$emit("on-back"); + } + } +}; +const _hoisted_1$n = { + key: 0, + class: "ivu-page-header-breadcrumb" +}; +const _hoisted_2$f = { class: "ivu-page-header-detail" }; +const _hoisted_3$b = { + key: 1, + class: "ivu-page-header-logo" +}; +const _hoisted_4$8 = ["src"]; +const _hoisted_5$3 = { class: "ivu-page-header-main" }; +const _hoisted_6$2 = { class: "ivu-page-header-row" }; +const _hoisted_7$1 = { + key: 1, + class: "ivu-page-header-title" +}; +const _hoisted_8$1 = { + key: 2, + class: "ivu-page-header-action" +}; +const _hoisted_9$1 = { class: "ivu-page-header-row" }; +const _hoisted_10 = { + key: 0, + class: "ivu-page-header-content" +}; +const _hoisted_11 = { + key: 1, + class: "ivu-page-header-extra" +}; +const _hoisted_12 = { + key: 1, + class: "ivu-page-header-tabs" +}; +function _sfc_render$C(_ctx, _cache, $props, $setup, $data, $options) { + const _component_BreadcrumbItem = resolveComponent("BreadcrumbItem"); + const _component_Breadcrumb = resolveComponent("Breadcrumb"); + const _component_Icon = resolveComponent("Icon"); + const _component_Divider = resolveComponent("Divider"); + const _component_TabPane = resolveComponent("TabPane"); + const _component_Tabs = resolveComponent("Tabs"); + return openBlock(), createElementBlock("div", { + class: normalizeClass(["ivu-page-header", $options.classes]) + }, [ + _ctx.$slots.breadcrumb || !$props.hiddenBreadcrumb ? (openBlock(), createElementBlock("div", _hoisted_1$n, [ + renderSlot(_ctx.$slots, "breadcrumb", {}, () => [ + createVNode(_component_Breadcrumb, null, { + default: withCtx(() => [ + (openBlock(true), createElementBlock(Fragment, null, renderList($props.breadcrumbList, (item, index2) => { + return openBlock(), createBlock(_component_BreadcrumbItem, { + key: index2, + to: item.to, + replace: item.replace, + target: item.target + }, { + default: withCtx(() => [ + createTextVNode(toDisplayString(item.title), 1) + ]), + _: 2 + }, 1032, ["to", "replace", "target"]); + }), 128)) + ]), + _: 1 + }) + ]) + ])) : createCommentVNode("", true), + createElementVNode("div", _hoisted_2$f, [ + $props.back || _ctx.$slots.back ? (openBlock(), createElementBlock("div", { + key: 0, + class: "ivu-page-header-back", + onClick: _cache[0] || (_cache[0] = (...args) => $options.handleBack && $options.handleBack(...args)) + }, [ + renderSlot(_ctx.$slots, "back", {}, () => [ + createVNode(_component_Icon, { type: "md-arrow-back" }) + ]), + createVNode(_component_Divider, { type: "vertical" }) + ])) : createCommentVNode("", true), + $props.logo || _ctx.$slots.logo ? (openBlock(), createElementBlock("div", _hoisted_3$b, [ + renderSlot(_ctx.$slots, "logo", {}, () => [ + createElementVNode("img", { src: $props.logo }, null, 8, _hoisted_4$8) + ]) + ])) : createCommentVNode("", true), + createElementVNode("div", _hoisted_5$3, [ + createElementVNode("div", _hoisted_6$2, [ + $props.back || _ctx.$slots.back ? (openBlock(), createElementBlock("div", { + key: 0, + class: "ivu-page-header-back", + onClick: _cache[1] || (_cache[1] = (...args) => $options.handleBack && $options.handleBack(...args)) + }, [ + renderSlot(_ctx.$slots, "back", {}, () => [ + createVNode(_component_Icon, { type: "md-arrow-back" }) + ]), + createVNode(_component_Divider, { type: "vertical" }) + ])) : createCommentVNode("", true), + $props.title || _ctx.$slots.title ? (openBlock(), createElementBlock("div", _hoisted_7$1, [ + renderSlot(_ctx.$slots, "title", {}, () => [ + createTextVNode(toDisplayString($props.title), 1) + ]) + ])) : createCommentVNode("", true), + $props.action || _ctx.$slots.action ? (openBlock(), createElementBlock("div", _hoisted_8$1, [ + renderSlot(_ctx.$slots, "action", {}, () => [ + createTextVNode(toDisplayString($props.action), 1) + ]) + ])) : createCommentVNode("", true) + ]), + createElementVNode("div", _hoisted_9$1, [ + $props.content || _ctx.$slots.content ? (openBlock(), createElementBlock("div", _hoisted_10, [ + renderSlot(_ctx.$slots, "content", {}, () => [ + createTextVNode(toDisplayString($props.content), 1) + ]) + ])) : createCommentVNode("", true), + $props.extra || _ctx.$slots.extra ? (openBlock(), createElementBlock("div", _hoisted_11, [ + renderSlot(_ctx.$slots, "extra", {}, () => [ + createTextVNode(toDisplayString($props.extra), 1) + ]) + ])) : createCommentVNode("", true) + ]) + ]) + ]), + $props.tabList && $props.tabList.length ? (openBlock(), createElementBlock("div", _hoisted_12, [ + createVNode(_component_Tabs, { + animated: false, + "model-value": $props.tabActiveKey, + onOnClick: $options.handleTabChange + }, { + default: withCtx(() => [ + (openBlock(true), createElementBlock(Fragment, null, renderList($props.tabList, (item, index2) => { + return openBlock(), createBlock(_component_TabPane, { + key: index2, + label: item.label, + name: item.name + }, null, 8, ["label", "name"]); + }), 128)) + ]), + _: 1 + }, 8, ["model-value", "onOnClick"]) + ])) : createCommentVNode("", true) + ], 2); +} +var PageHeader = /* @__PURE__ */ _export_sfc(_sfc_main$L, [["render", _sfc_render$C]]); +const _sfc_main$K = defineComponent({ + name: "CollapseTransition", + props: { + ready: { + type: Boolean, + default: true + } + }, + setup(props) { + return { + on: { + beforeEnter(el) { + if (!props.ready) + return; + addClass(el, "collapse-transition"); + if (!el.dataset) + el.dataset = {}; + el.dataset.oldPaddingTop = el.style.paddingTop; + el.dataset.oldPaddingBottom = el.style.paddingBottom; + el.style.height = "0"; + el.style.paddingTop = 0; + el.style.paddingBottom = 0; + }, + enter(el) { + if (!props.ready) + return; + el.dataset.oldOverflow = el.style.overflow; + if (el.scrollHeight !== 0) { + el.style.height = el.scrollHeight + "px"; + el.style.paddingTop = el.dataset.oldPaddingTop; + el.style.paddingBottom = el.dataset.oldPaddingBottom; + } else { + el.style.height = ""; + el.style.paddingTop = el.dataset.oldPaddingTop; + el.style.paddingBottom = el.dataset.oldPaddingBottom; + } + el.style.overflow = "hidden"; + }, + afterEnter(el) { + if (!props.ready) + return; + removeClass(el, "collapse-transition"); + el.style.height = ""; + el.style.overflow = el.dataset.oldOverflow; + }, + beforeLeave(el) { + if (!props.ready) + return; + if (!el.dataset) + el.dataset = {}; + el.dataset.oldPaddingTop = el.style.paddingTop; + el.dataset.oldPaddingBottom = el.style.paddingBottom; + el.dataset.oldOverflow = el.style.overflow; + el.style.height = el.scrollHeight + "px"; + el.style.overflow = "hidden"; + }, + leave(el) { + if (!props.ready) + return; + if (el.scrollHeight !== 0) { + addClass(el, "collapse-transition"); + el.style.height = 0; + el.style.paddingTop = 0; + el.style.paddingBottom = 0; + } + }, + afterLeave(el) { + if (!props.ready) + return; + removeClass(el, "collapse-transition"); + el.style.height = ""; + el.style.overflow = el.dataset.oldOverflow; + el.style.paddingTop = el.dataset.oldPaddingTop; + el.style.paddingBottom = el.dataset.oldPaddingBottom; + } + } + }; + } +}); +function _sfc_render$B(_ctx, _cache, $props, $setup, $data, $options) { + return openBlock(), createBlock(Transition, toHandlers(_ctx.on), { + default: withCtx(() => [ + renderSlot(_ctx.$slots, "default") + ]), + _: 3 + }, 16); +} +var CollapseTransition = /* @__PURE__ */ _export_sfc(_sfc_main$K, [["render", _sfc_render$B]]); +const prefixCls$l = "ivu-collapse"; +const _sfc_main$J = { + name: "Panel", + components: { Icon, CollapseTransition }, + inject: ["CollapseInstance"], + props: { + name: { + type: String + }, + hideArrow: { + type: Boolean, + default: false + } + }, + data() { + return { + index: 0, + mounted: false + }; + }, + computed: { + itemClasses() { + return [ + `${prefixCls$l}-item`, + { + [`${prefixCls$l}-item-active`]: this.isActive + } + ]; + }, + headerClasses() { + return `${prefixCls$l}-header`; + }, + contentClasses() { + return `${prefixCls$l}-content`; + }, + boxClasses() { + return `${prefixCls$l}-content-box`; + }, + isActive() { + const activeKey = this.CollapseInstance.getActiveKey(); + const name2 = this.name || this.index.toString(); + return activeKey.indexOf(name2) > -1; + } + }, + methods: { + setIndex() { + this.index = this.CollapseInstance.panelCount + 1; + this.CollapseInstance.panelCount = this.index; + }, + toggle() { + this.CollapseInstance.toggle({ + name: this.name || this.index, + isActive: this.isActive + }); + } + }, + mounted() { + this.setIndex(); + this.mounted = true; + } +}; +function _sfc_render$A(_ctx, _cache, $props, $setup, $data, $options) { + const _component_Icon = resolveComponent("Icon"); + const _component_collapse_transition = resolveComponent("collapse-transition"); + return openBlock(), createElementBlock("div", { + class: normalizeClass($options.itemClasses) + }, [ + createElementVNode("div", { + class: normalizeClass($options.headerClasses), + onClick: _cache[0] || (_cache[0] = (...args) => $options.toggle && $options.toggle(...args)) + }, [ + !$props.hideArrow ? (openBlock(), createBlock(_component_Icon, { + key: 0, + type: "ios-arrow-forward" + })) : createCommentVNode("", true), + renderSlot(_ctx.$slots, "default") + ], 2), + $data.mounted ? (openBlock(), createBlock(_component_collapse_transition, { key: 0 }, { + default: withCtx(() => [ + withDirectives(createElementVNode("div", { + class: normalizeClass($options.contentClasses) + }, [ + createElementVNode("div", { + class: normalizeClass($options.boxClasses) + }, [ + renderSlot(_ctx.$slots, "content") + ], 2) + ], 2), [ + [vShow, $options.isActive] + ]) + ]), + _: 3 + })) : createCommentVNode("", true) + ], 2); +} +var Panel = /* @__PURE__ */ _export_sfc(_sfc_main$J, [["render", _sfc_render$A]]); +const _sfc_main$I = { + name: "Paragraph", + mixins: [baseProps], + render() { + return h(_sfc_main$17, { + ...this.$props, + component: "div", + ...this.commonEvents() + }, this.commonSlots()); + } +}; +const _sfc_main$H = { + name: "Password", + mixins: [LoginItem], + data() { + return { + className: "ivu-login-password", + prefix: "ios-lock-outline", + placeholder: "\u8BF7\u8F93\u5165\u5BC6\u7801", + type: "password" + }; + } +}; +const prefixCls$k = "ivu-poptip"; +const _sfc_main$G = { + name: "Poptip", + mixins: [Popper, Locale], + emits: ["on-ok", "on-cancel"], + directives: { clickOutside }, + components: { iButton: _sfc_main$2c }, + props: { + trigger: { + validator(value) { + return oneOf(value, ["click", "focus", "hover"]); + }, + default: "click" + }, + placement: { + validator(value) { + return oneOf(value, ["top", "top-start", "top-end", "bottom", "bottom-start", "bottom-end", "left", "left-start", "left-end", "right", "right-start", "right-end"]); + }, + default: "top" + }, + title: { + type: [String, Number] + }, + content: { + type: [String, Number], + default: "" + }, + width: { + type: [String, Number] + }, + confirm: { + type: Boolean, + default: false + }, + okText: { + type: String + }, + cancelText: { + type: String + }, + transfer: { + type: Boolean, + default() { + const global2 = getCurrentInstance().appContext.config.globalProperties; + return !global2.$VIEWUI || global2.$VIEWUI.transfer === "" ? false : global2.$VIEWUI.transfer; + } + }, + popperClass: { + type: String + }, + wordWrap: { + type: Boolean, + default: false + }, + padding: { + type: String + }, + disabled: { + type: Boolean, + default: false + }, + capture: { + type: Boolean, + default() { + const global2 = getCurrentInstance().appContext.config.globalProperties; + return !global2.$VIEWUI ? false : global2.$VIEWUI.capture; + } + }, + transferClassName: { + type: String + } + }, + data() { + return { + prefixCls: prefixCls$k, + showTitle: true, + isInput: false, + disableCloseUnderTransfer: false, + tIndex: this.handleGetIndex() + }; + }, + computed: { + classes() { + return [ + `${prefixCls$k}`, + { + [`${prefixCls$k}-confirm`]: this.confirm + } + ]; + }, + popperClasses() { + return [ + `${prefixCls$k}-popper`, + { + [`${prefixCls$k}-confirm`]: this.transfer && this.confirm, + [`${this.popperClass}`]: !!this.popperClass, + [prefixCls$k + "-transfer"]: this.transfer, + [this.transferClassName]: this.transferClassName + } + ]; + }, + styles() { + let style2 = {}; + if (this.width) { + style2.width = `${this.width}px`; + } + if (this.transfer) + style2["z-index"] = 1060 + this.tIndex; + return style2; + }, + localeOkText() { + if (this.okText === void 0) { + return this.t("i.poptip.okText"); + } else { + return this.okText; + } + }, + localeCancelText() { + if (this.cancelText === void 0) { + return this.t("i.poptip.cancelText"); + } else { + return this.cancelText; + } + }, + contentClasses() { + return [ + `${prefixCls$k}-body-content`, + { + [`${prefixCls$k}-body-content-word-wrap`]: this.wordWrap + } + ]; + }, + contentPaddingStyle() { + const styles = {}; + if (this.padding !== "") + styles["padding"] = this.padding; + return styles; + } + }, + methods: { + handleClick() { + if (this.disabled) + return; + if (this.confirm) { + this.visible = !this.visible; + return true; + } + if (this.trigger !== "click") { + return false; + } + this.visible = !this.visible; + }, + handleTransferClick() { + if (this.transfer) + this.disableCloseUnderTransfer = true; + }, + handleClose() { + if (this.disableCloseUnderTransfer) { + this.disableCloseUnderTransfer = false; + return false; + } + if (this.confirm) { + this.visible = false; + return true; + } + if (this.trigger !== "click") { + return false; + } + this.visible = false; + }, + handleFocus(fromInput = true) { + if (this.disabled) + return; + if (this.trigger !== "focus" || this.confirm || this.isInput && !fromInput) { + return false; + } + this.visible = true; + }, + handleBlur(fromInput = true) { + if (this.trigger !== "focus" || this.confirm || this.isInput && !fromInput) { + return false; + } + this.visible = false; + }, + handleMouseenter() { + if (this.disabled) + return; + if (this.trigger !== "hover" || this.confirm) { + return false; + } + if (this.enterTimer) + clearTimeout(this.enterTimer); + this.enterTimer = setTimeout(() => { + this.visible = true; + }, 100); + }, + handleMouseleave() { + if (this.trigger !== "hover" || this.confirm) { + return false; + } + if (this.enterTimer) { + clearTimeout(this.enterTimer); + this.enterTimer = setTimeout(() => { + this.visible = false; + }, 100); + } + }, + cancel() { + this.visible = false; + this.$emit("on-cancel"); + }, + ok() { + this.visible = false; + this.$emit("on-ok"); + }, + getInputChildren() { + const $input = this.$refs.reference.querySelectorAll("input"); + const $textarea = this.$refs.reference.querySelectorAll("textarea"); + let $children = null; + if ($input.length) { + $children = $input[0]; + } else if ($textarea.length) { + $children = $textarea[0]; + } + return $children; + }, + handleGetIndex() { + transferIncrease(); + return transferIndex; + }, + handleIndexIncrease() { + this.tIndex = this.handleGetIndex(); + } + }, + mounted() { + if (!this.confirm) { + this.showTitle = this.$slots.title !== void 0 || this.title; + } + if (this.trigger === "focus") { + nextTick(() => { + const $children = this.getInputChildren(); + if ($children) { + this.isInput = true; + $children.addEventListener("focus", this.handleFocus, false); + $children.addEventListener("blur", this.handleBlur, false); + } + }); + } + }, + beforeUnmount() { + const $children = this.getInputChildren(); + if ($children) { + $children.removeEventListener("focus", this.handleFocus, false); + $children.removeEventListener("blur", this.handleBlur, false); + } + } +}; +const _hoisted_1$m = /* @__PURE__ */ createElementVNode("i", { class: "ivu-icon ivu-icon-ios-help-circle" }, null, -1); +function _sfc_render$z(_ctx, _cache, $props, $setup, $data, $options) { + const _component_i_button = resolveComponent("i-button"); + const _directive_click_outside = resolveDirective("click-outside"); + return withDirectives((openBlock(), createElementBlock("div", { + class: normalizeClass($options.classes), + onMouseenter: _cache[6] || (_cache[6] = (...args) => $options.handleMouseenter && $options.handleMouseenter(...args)), + onMouseleave: _cache[7] || (_cache[7] = (...args) => $options.handleMouseleave && $options.handleMouseleave(...args)) + }, [ + createElementVNode("div", { + class: normalizeClass([$data.prefixCls + "-rel"]), + ref: "reference", + onClick: _cache[0] || (_cache[0] = (...args) => $options.handleClick && $options.handleClick(...args)), + onMousedown: _cache[1] || (_cache[1] = ($event) => $options.handleFocus(false)), + onMouseup: _cache[2] || (_cache[2] = ($event) => $options.handleBlur(false)) + }, [ + renderSlot(_ctx.$slots, "default") + ], 34), + (openBlock(), createBlock(Teleport, { + to: "body", + disabled: !$props.transfer + }, [ + createVNode(Transition, { name: "fade" }, { + default: withCtx(() => [ + withDirectives(createElementVNode("div", { + class: normalizeClass($options.popperClasses), + style: normalizeStyle($options.styles), + ref: "popper", + onClick: _cache[3] || (_cache[3] = (...args) => $options.handleTransferClick && $options.handleTransferClick(...args)), + onMouseenter: _cache[4] || (_cache[4] = (...args) => $options.handleMouseenter && $options.handleMouseenter(...args)), + onMouseleave: _cache[5] || (_cache[5] = (...args) => $options.handleMouseleave && $options.handleMouseleave(...args)) + }, [ + createElementVNode("div", { + class: normalizeClass([$data.prefixCls + "-content"]) + }, [ + createElementVNode("div", { + class: normalizeClass([$data.prefixCls + "-arrow"]) + }, null, 2), + $props.confirm ? (openBlock(), createElementBlock("div", { + key: 0, + class: normalizeClass([$data.prefixCls + "-inner"]) + }, [ + createElementVNode("div", { + class: normalizeClass([$data.prefixCls + "-body"]) + }, [ + _hoisted_1$m, + createElementVNode("div", { + class: normalizeClass([$data.prefixCls + "-body-message"]) + }, [ + renderSlot(_ctx.$slots, "title", {}, () => [ + createTextVNode(toDisplayString($props.title), 1) + ]) + ], 2) + ], 2), + createElementVNode("div", { + class: normalizeClass([$data.prefixCls + "-footer"]) + }, [ + createVNode(_component_i_button, { + type: "text", + size: "small", + onClick: $options.cancel + }, { + default: withCtx(() => [ + createTextVNode(toDisplayString($options.localeCancelText), 1) + ]), + _: 1 + }, 8, ["onClick"]), + createVNode(_component_i_button, { + type: "primary", + size: "small", + onClick: $options.ok + }, { + default: withCtx(() => [ + createTextVNode(toDisplayString($options.localeOkText), 1) + ]), + _: 1 + }, 8, ["onClick"]) + ], 2) + ], 2)) : createCommentVNode("", true), + !$props.confirm ? (openBlock(), createElementBlock("div", { + key: 1, + class: normalizeClass([$data.prefixCls + "-inner"]) + }, [ + $data.showTitle ? (openBlock(), createElementBlock("div", { + key: 0, + class: normalizeClass([$data.prefixCls + "-title"]), + style: normalizeStyle($options.contentPaddingStyle), + ref: "title" + }, [ + renderSlot(_ctx.$slots, "title", {}, () => [ + createElementVNode("div", { + class: normalizeClass([$data.prefixCls + "-title-inner"]) + }, toDisplayString($props.title), 3) + ]) + ], 6)) : createCommentVNode("", true), + createElementVNode("div", { + class: normalizeClass([$data.prefixCls + "-body"]), + style: normalizeStyle($options.contentPaddingStyle) + }, [ + createElementVNode("div", { + class: normalizeClass($options.contentClasses) + }, [ + renderSlot(_ctx.$slots, "content", {}, () => [ + createElementVNode("div", { + class: normalizeClass([$data.prefixCls + "-body-content-inner"]) + }, toDisplayString($props.content), 3) + ]) + ], 2) + ], 6) + ], 2)) : createCommentVNode("", true) + ], 2) + ], 38), [ + [vShow, _ctx.visible] + ]) + ]), + _: 3 + }) + ], 8, ["disabled"])) + ], 34)), [ + [_directive_click_outside, $options.handleClose] + ]); +} +var Poptip = /* @__PURE__ */ _export_sfc(_sfc_main$G, [["render", _sfc_render$z]]); +const prefixCls$j = "ivu-progress"; +const _sfc_main$F = { + name: "Progress", + components: { Icon }, + props: { + percent: { + type: Number, + default: 0 + }, + successPercent: { + type: Number, + default: 0 + }, + status: { + validator(value) { + return oneOf(value, ["normal", "active", "wrong", "success"]); + }, + default: "normal" + }, + hideInfo: { + type: Boolean, + default: false + }, + strokeWidth: { + type: Number, + default: 10 + }, + vertical: { + type: Boolean, + default: false + }, + strokeColor: { + type: [String, Array] + }, + textInside: { + type: Boolean, + default: false + } + }, + data() { + return { + currentStatus: this.status + }; + }, + computed: { + isStatus() { + return this.currentStatus === "wrong" || this.currentStatus === "success"; + }, + statusIcon() { + let type2 = ""; + switch (this.currentStatus) { + case "wrong": + type2 = "ios-close-circle"; + break; + case "success": + type2 = "ios-checkmark-circle"; + break; + } + return type2; + }, + bgStyle() { + const style2 = this.vertical ? { + height: `${this.percent}%`, + width: `${this.strokeWidth}px` + } : { + width: `${this.percent}%`, + height: `${this.strokeWidth}px` + }; + if (this.strokeColor) { + if (typeof this.strokeColor === "string") { + style2["background-color"] = this.strokeColor; + } else { + style2["background-image"] = `linear-gradient(to right, ${this.strokeColor[0]} 0%, ${this.strokeColor[1]} 100%)`; + } + } + return style2; + }, + successBgStyle() { + return this.vertical ? { + height: `${this.successPercent}%`, + width: `${this.strokeWidth}px` + } : { + width: `${this.successPercent}%`, + height: `${this.strokeWidth}px` + }; + }, + wrapClasses() { + return [ + `${prefixCls$j}`, + `${prefixCls$j}-${this.currentStatus}`, + { + [`${prefixCls$j}-show-info`]: !this.hideInfo && !this.textInside, + [`${prefixCls$j}-vertical`]: this.vertical + } + ]; + }, + textClasses() { + return `${prefixCls$j}-text`; + }, + textInnerClasses() { + return `${prefixCls$j}-text-inner`; + }, + outerClasses() { + return `${prefixCls$j}-outer`; + }, + innerClasses() { + return `${prefixCls$j}-inner`; + }, + bgClasses() { + return `${prefixCls$j}-bg`; + }, + successBgClasses() { + return `${prefixCls$j}-success-bg`; + } + }, + created() { + this.handleStatus(); + }, + methods: { + handleStatus(isDown) { + if (isDown) { + this.currentStatus = "normal"; + this.$emit("on-status-change", "normal"); + } else { + if (parseInt(this.percent, 10) === 100) { + this.currentStatus = "success"; + this.$emit("on-status-change", "success"); + } + } + } + }, + watch: { + percent(val, oldVal) { + if (val < oldVal) { + this.handleStatus(true); + } else { + this.handleStatus(); + } + }, + status(val) { + this.currentStatus = val; + } + } +}; +const _hoisted_1$l = { + key: 0, + class: "ivu-progress-inner-text" +}; +function _sfc_render$y(_ctx, _cache, $props, $setup, $data, $options) { + const _component_Icon = resolveComponent("Icon"); + return openBlock(), createElementBlock("div", { + class: normalizeClass($options.wrapClasses) + }, [ + createElementVNode("div", { + class: normalizeClass($options.outerClasses) + }, [ + createElementVNode("div", { + class: normalizeClass($options.innerClasses) + }, [ + createElementVNode("div", { + class: normalizeClass($options.bgClasses), + style: normalizeStyle($options.bgStyle) + }, [ + $props.textInside ? (openBlock(), createElementBlock("div", _hoisted_1$l, toDisplayString($props.percent) + "%", 1)) : createCommentVNode("", true) + ], 6), + createElementVNode("div", { + class: normalizeClass($options.successBgClasses), + style: normalizeStyle($options.successBgStyle) + }, null, 6) + ], 2) + ], 2), + !$props.hideInfo && !$props.textInside ? (openBlock(), createElementBlock("span", { + key: 0, + class: normalizeClass($options.textClasses) + }, [ + renderSlot(_ctx.$slots, "default", {}, () => [ + $options.isStatus ? (openBlock(), createElementBlock("span", { + key: 0, + class: normalizeClass($options.textInnerClasses) + }, [ + createVNode(_component_Icon, { type: $options.statusIcon }, null, 8, ["type"]) + ], 2)) : (openBlock(), createElementBlock("span", { + key: 1, + class: normalizeClass($options.textInnerClasses) + }, toDisplayString($props.percent) + "% ", 3)) + ]) + ], 2)) : createCommentVNode("", true) + ], 2); +} +var iProgress = /* @__PURE__ */ _export_sfc(_sfc_main$F, [["render", _sfc_render$y]]); +const prefixCls$i = "ivu-rate"; +const _sfc_main$E = { + name: "Rate", + mixins: [Locale, mixinsForm], + emits: ["update:modelValue", "on-change"], + props: { + count: { + type: Number, + default: 5 + }, + modelValue: { + type: Number, + default: 0 + }, + allowHalf: { + type: Boolean, + default: false + }, + disabled: { + type: Boolean, + default: false + }, + showText: { + type: Boolean, + default: false + }, + name: { + type: String + }, + clearable: { + type: Boolean, + default: false + }, + character: { + type: String, + default: "" + }, + icon: { + type: String, + default: "" + }, + customIcon: { + type: String, + default: "" + } + }, + data() { + const value = this.modelValue || 0; + return { + prefixCls: prefixCls$i, + hoverIndex: -1, + isHover: false, + isHalf: this.allowHalf && value.toString().indexOf(".") >= 0, + currentValue: value + }; + }, + computed: { + classes() { + return [ + `${prefixCls$i}`, + { + [`${prefixCls$i}-disabled`]: this.itemDisabled + } + ]; + }, + iconClasses() { + return [ + "ivu-icon", + { + [`ivu-icon-${this.icon}`]: this.icon !== "", + [`${this.customIcon}`]: this.customIcon !== "" + } + ]; + }, + showCharacter() { + return this.character !== "" || this.icon !== "" || this.customIcon !== ""; + } + }, + watch: { + modelValue(val) { + this.currentValue = val || 0; + }, + currentValue(val) { + this.setHalf(val); + } + }, + methods: { + starCls(value) { + const hoverIndex = this.hoverIndex; + const currentIndex = this.isHover ? hoverIndex : this.currentValue; + let full = false; + let isLast = false; + if (currentIndex >= value) + full = true; + if (this.isHover) { + isLast = currentIndex === value; + } else { + isLast = Math.ceil(this.currentValue) === value; + } + return [ + { + [`${prefixCls$i}-star`]: !this.showCharacter, + [`${prefixCls$i}-star-chart`]: this.showCharacter, + [`${prefixCls$i}-star-full`]: !isLast && full || isLast && !this.isHalf, + [`${prefixCls$i}-star-half`]: isLast && this.isHalf, + [`${prefixCls$i}-star-zero`]: !full + } + ]; + }, + handleMousemove(value, event) { + if (this.itemDisabled) + return; + this.isHover = true; + if (this.allowHalf) { + const type2 = event.target.getAttribute("type") || false; + this.isHalf = type2 === "half"; + } else { + this.isHalf = false; + } + this.hoverIndex = value; + }, + handleMouseleave() { + if (this.itemDisabled) + return; + this.isHover = false; + this.setHalf(this.currentValue); + this.hoverIndex = -1; + }, + setHalf(val) { + this.isHalf = this.allowHalf && val.toString().indexOf(".") >= 0; + }, + handleClick(value) { + if (this.itemDisabled) + return; + if (this.isHalf) + value -= 0.5; + if (this.clearable && Math.abs(value - this.currentValue) < 0.01) { + value = 0; + } + this.currentValue = value; + this.$emit("update:modelValue", value); + this.$emit("on-change", value); + this.handleFormItemChange("change", value); + } + } +}; +const _hoisted_1$k = ["name", "value"]; +const _hoisted_2$e = ["onMousemove", "onClick"]; +const _hoisted_3$a = { key: 0 }; +const _hoisted_4$7 = { key: 1 }; +function _sfc_render$x(_ctx, _cache, $props, $setup, $data, $options) { + return openBlock(), createElementBlock("div", { + class: normalizeClass($options.classes), + onMouseleave: _cache[0] || (_cache[0] = (...args) => $options.handleMouseleave && $options.handleMouseleave(...args)) + }, [ + createElementVNode("input", { + type: "hidden", + name: $props.name, + value: $data.currentValue + }, null, 8, _hoisted_1$k), + (openBlock(true), createElementBlock(Fragment, null, renderList($props.count, (item) => { + return openBlock(), createElementBlock("div", { + class: normalizeClass($options.starCls(item)), + onMousemove: ($event) => $options.handleMousemove(item, $event), + key: item, + onClick: ($event) => $options.handleClick(item) + }, [ + !$options.showCharacter ? (openBlock(), createElementBlock("span", { + key: 0, + class: normalizeClass([$data.prefixCls + "-star-content"]), + type: "half" + }, null, 2)) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [ + createElementVNode("span", { + class: normalizeClass([$data.prefixCls + "-star-first"]), + type: "half" + }, [ + $props.character !== "" ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [ + createTextVNode(toDisplayString($props.character), 1) + ], 64)) : (openBlock(), createElementBlock("i", { + key: 1, + class: normalizeClass($options.iconClasses), + type: "half" + }, null, 2)) + ], 2), + createElementVNode("span", { + class: normalizeClass([$data.prefixCls + "-star-second"]) + }, [ + $props.character !== "" ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [ + createTextVNode(toDisplayString($props.character), 1) + ], 64)) : (openBlock(), createElementBlock("i", { + key: 1, + class: normalizeClass($options.iconClasses) + }, null, 2)) + ], 2) + ], 64)) + ], 42, _hoisted_2$e); + }), 128)), + $props.showText ? withDirectives((openBlock(), createElementBlock("div", { + key: 0, + class: normalizeClass([$data.prefixCls + "-text"]) + }, [ + renderSlot(_ctx.$slots, "default", {}, () => [ + createElementVNode("span", null, toDisplayString($data.currentValue), 1), + createTextVNode(), + $data.currentValue <= 1 ? (openBlock(), createElementBlock("span", _hoisted_3$a, toDisplayString(_ctx.t("i.rate.star")), 1)) : (openBlock(), createElementBlock("span", _hoisted_4$7, toDisplayString(_ctx.t("i.rate.stars")), 1)) + ]) + ], 2)), [ + [vShow, $data.currentValue > 0] + ]) : createCommentVNode("", true) + ], 34); +} +var Rate = /* @__PURE__ */ _export_sfc(_sfc_main$E, [["render", _sfc_render$x]]); +const _sfc_main$D = { + name: "Result", + components: { Icon }, + props: { + type: { + validator(value) { + return oneOf(value, ["success", "error", "warning"]); + } + }, + title: { + type: String + }, + desc: { + type: String + }, + extra: { + type: String + } + }, + computed: { + iconClasses() { + return { + "ivu-result-icon-success": this.type === "success", + "ivu-result-icon-error": this.type === "error", + "ivu-result-icon-warning": this.type === "warning" + }; + } + } +}; +const _hoisted_1$j = { class: "ivu-result" }; +const _hoisted_2$d = { + key: 0, + class: "ivu-result-title" +}; +const _hoisted_3$9 = { + key: 1, + class: "ivu-result-desc" +}; +const _hoisted_4$6 = { + key: 2, + class: "ivu-result-extra" +}; +const _hoisted_5$2 = { + key: 3, + class: "ivu-result-actions" +}; +function _sfc_render$w(_ctx, _cache, $props, $setup, $data, $options) { + const _component_Icon = resolveComponent("Icon"); + return openBlock(), createElementBlock("div", _hoisted_1$j, [ + createElementVNode("div", { + class: normalizeClass(["ivu-result-icon", $options.iconClasses]) + }, [ + $props.type === "success" ? (openBlock(), createBlock(_component_Icon, { + key: 0, + type: "ios-checkmark" + })) : createCommentVNode("", true), + $props.type === "error" ? (openBlock(), createBlock(_component_Icon, { + key: 1, + type: "ios-close" + })) : createCommentVNode("", true), + $props.type === "warning" ? (openBlock(), createBlock(_component_Icon, { + key: 2, + type: "ios-information" + })) : createCommentVNode("", true) + ], 2), + $props.title || _ctx.$slots.title ? (openBlock(), createElementBlock("div", _hoisted_2$d, [ + renderSlot(_ctx.$slots, "title", {}, () => [ + createTextVNode(toDisplayString($props.title), 1) + ]) + ])) : createCommentVNode("", true), + $props.desc || _ctx.$slots.desc ? (openBlock(), createElementBlock("div", _hoisted_3$9, [ + renderSlot(_ctx.$slots, "desc", {}, () => [ + createTextVNode(toDisplayString($props.desc), 1) + ]) + ])) : createCommentVNode("", true), + $props.extra || _ctx.$slots.extra ? (openBlock(), createElementBlock("div", _hoisted_4$6, [ + renderSlot(_ctx.$slots, "extra", {}, () => [ + createTextVNode(toDisplayString($props.extra), 1) + ]) + ])) : createCommentVNode("", true), + _ctx.$slots.actions ? (openBlock(), createElementBlock("div", _hoisted_5$2, [ + renderSlot(_ctx.$slots, "actions") + ])) : createCommentVNode("", true) + ]); +} +var Result = /* @__PURE__ */ _export_sfc(_sfc_main$D, [["render", _sfc_render$w]]); +const prefixCls$h = "ivu-scroll"; +const _sfc_main$C = { + props: ["text", "active", "spinnerHeight"], + components: { Spin, Icon }, + computed: { + wrapperClasses() { + return [ + `${prefixCls$h}-loader-wrapper`, + { + [`${prefixCls$h}-loader-wrapper-active`]: this.active + } + ]; + }, + spinnerClasses() { + return `${prefixCls$h}-spinner`; + }, + iconClasses() { + return `${prefixCls$h}-spinner-icon`; + }, + textClasses() { + return `${prefixCls$h}-loader-text`; + } + } +}; +function _sfc_render$v(_ctx, _cache, $props, $setup, $data, $options) { + const _component_Icon = resolveComponent("Icon"); + const _component_Spin = resolveComponent("Spin"); + return openBlock(), createElementBlock("div", { + class: normalizeClass($options.wrapperClasses) + }, [ + createElementVNode("div", { + class: normalizeClass($options.spinnerClasses) + }, [ + createVNode(_component_Spin, { fix: "" }, { + default: withCtx(() => [ + createVNode(_component_Icon, { + type: "ios-loading", + size: "18", + class: normalizeClass($options.iconClasses) + }, null, 8, ["class"]), + $props.text ? (openBlock(), createElementBlock("div", { + key: 0, + class: normalizeClass($options.textClasses) + }, toDisplayString($props.text), 3)) : createCommentVNode("", true) + ]), + _: 1 + }) + ], 2) + ], 2); +} +var loader = /* @__PURE__ */ _export_sfc(_sfc_main$C, [["render", _sfc_render$v]]); +const prefixCls$g = "ivu-scroll"; +const dragConfig = { + sensitivity: 10, + minimumStartDragOffset: 5 +}; +const noop = () => Promise.resolve(); +const _sfc_main$B = { + name: "Scroll", + mixins: [Locale], + components: { loader }, + props: { + height: { + type: [Number, String], + default: 300 + }, + onReachTop: { + type: Function + }, + onReachBottom: { + type: Function + }, + onReachEdge: { + type: Function + }, + loadingText: { + type: String + }, + distanceToEdge: [Number, Array], + stopSlide: { + type: Boolean, + default: false + } + }, + data() { + const distanceToEdge = this.calculateProximityThreshold(); + return { + showTopLoader: false, + showBottomLoader: false, + showBodyLoader: false, + lastScroll: 0, + reachedTopScrollLimit: true, + reachedBottomScrollLimit: false, + topRubberPadding: 0, + bottomRubberPadding: 0, + rubberRollBackTimeout: false, + isLoading: false, + pointerTouchDown: null, + touchScroll: false, + handleScroll: () => { + }, + pointerUpHandler: () => { + }, + pointerMoveHandler: () => { + }, + topProximityThreshold: distanceToEdge[0], + bottomProximityThreshold: distanceToEdge[1] + }; + }, + computed: { + wrapClasses() { + return `${prefixCls$g}-wrapper`; + }, + scrollContainerClasses() { + return [ + `${prefixCls$g}-container`, + { + [`${prefixCls$g}-container-loading`]: this.showBodyLoader && this.stopSlide + } + ]; + }, + slotContainerClasses() { + return [ + `${prefixCls$g}-content`, + { + [`${prefixCls$g}-content-loading`]: this.showBodyLoader + } + ]; + }, + loaderClasses() { + return `${prefixCls$g}-loader`; + }, + wrapperPadding() { + return { + paddingTop: this.topRubberPadding + "px", + paddingBottom: this.bottomRubberPadding + "px" + }; + }, + localeLoadingText() { + if (this.loadingText === void 0) { + return this.t("i.select.loading"); + } else { + return this.loadingText; + } + } + }, + methods: { + waitOneSecond() { + return new Promise((resolve) => { + setTimeout(resolve, 1e3); + }); + }, + calculateProximityThreshold() { + const dte = this.distanceToEdge; + if (typeof dte == "undefined") + return [20, 20]; + return Array.isArray(dte) ? dte : [dte, dte]; + }, + onCallback(dir) { + this.isLoading = true; + this.showBodyLoader = true; + if (dir > 0) { + this.showTopLoader = true; + this.topRubberPadding = 20; + } else { + this.showBottomLoader = true; + this.bottomRubberPadding = 20; + let bottomLoaderHeight = 0; + const container = this.$refs.scrollContainer; + const initialScrollTop = container.scrollTop; + for (let i = 0; i < 20; i++) { + setTimeout(() => { + bottomLoaderHeight = Math.max( + bottomLoaderHeight, + this.$refs.bottomLoader.getBoundingClientRect().height + ); + container.scrollTop = initialScrollTop + bottomLoaderHeight; + }, i * 50); + } + } + const callbacks = [this.waitOneSecond(), this.onReachEdge ? this.onReachEdge(dir) : noop()]; + callbacks.push(dir > 0 ? this.onReachTop ? this.onReachTop() : noop() : this.onReachBottom ? this.onReachBottom() : noop()); + let tooSlow = setTimeout(() => { + this.reset(); + }, 5e3); + Promise.all(callbacks).then(() => { + clearTimeout(tooSlow); + this.reset(); + }); + }, + reset() { + [ + "showTopLoader", + "showBottomLoader", + "showBodyLoader", + "isLoading", + "reachedTopScrollLimit", + "reachedBottomScrollLimit" + ].forEach((prop2) => this[prop2] = false); + this.lastScroll = 0; + this.topRubberPadding = 0; + this.bottomRubberPadding = 0; + clearInterval(this.rubberRollBackTimeout); + if (this.touchScroll) { + setTimeout(() => { + off(window, "touchend", this.pointerUpHandler); + this.$refs.scrollContainer.removeEventListener("touchmove", this.pointerMoveHandler); + this.touchScroll = false; + }, 500); + } + }, + onWheel(event) { + if (this.isLoading) + return; + const wheelDelta = event.wheelDelta ? event.wheelDelta : -(event.detail || event.deltaY); + this.stretchEdge(wheelDelta); + }, + stretchEdge(direction) { + clearTimeout(this.rubberRollBackTimeout); + if (!this.onReachEdge) { + if (direction > 0) { + if (!this.onReachTop) + return; + } else { + if (!this.onReachBottom) + return; + } + } + this.rubberRollBackTimeout = setTimeout(() => { + if (!this.isLoading) + this.reset(); + }, 250); + if (direction > 0 && this.reachedTopScrollLimit) { + this.topRubberPadding += 5 - this.topRubberPadding / 5; + if (this.topRubberPadding > this.topProximityThreshold) + this.onCallback(1); + } else if (direction < 0 && this.reachedBottomScrollLimit) { + this.bottomRubberPadding += 6 - this.bottomRubberPadding / 4; + if (this.bottomRubberPadding > this.bottomProximityThreshold) + this.onCallback(-1); + } else { + this.onScroll(); + } + }, + onScroll() { + const el = this.$refs.scrollContainer; + if (this.isLoading || !el) + return; + const scrollDirection = Math.sign(this.lastScroll - el.scrollTop); + const displacement = el.scrollHeight - el.clientHeight - el.scrollTop; + const topNegativeProximity = this.topProximityThreshold < 0 ? this.topProximityThreshold : 0; + const bottomNegativeProximity = this.bottomProximityThreshold < 0 ? this.bottomProximityThreshold : 0; + if (scrollDirection == -1 && displacement + bottomNegativeProximity <= dragConfig.sensitivity) { + this.reachedBottomScrollLimit = true; + } else if (scrollDirection >= 0 && el.scrollTop + topNegativeProximity <= 0) { + this.reachedTopScrollLimit = true; + } else { + this.reachedTopScrollLimit = false; + this.reachedBottomScrollLimit = false; + this.lastScroll = el.scrollTop; + } + }, + getTouchCoordinates(e) { + return { + x: e.touches[0].pageX, + y: e.touches[0].pageY + }; + }, + onPointerDown(e) { + if (this.isLoading) + return; + if (e.type == "touchstart") { + const container = this.$refs.scrollContainer; + if (this.reachedTopScrollLimit) + container.scrollTop = 5; + else if (this.reachedBottomScrollLimit) + container.scrollTop -= 5; + } + if (e.type == "touchstart" && this.$refs.scrollContainer.scrollTop == 0) + this.$refs.scrollContainer.scrollTop = 5; + this.pointerTouchDown = this.getTouchCoordinates(e); + on(window, "touchend", this.pointerUpHandler); + this.$refs.scrollContainer.parentElement.addEventListener("touchmove", (e2) => { + e2.stopPropagation(); + this.pointerMoveHandler(e2); + }, { passive: false, useCapture: true }); + }, + onPointerMove(e) { + if (!this.pointerTouchDown) + return; + if (this.isLoading) + return; + const pointerPosition = this.getTouchCoordinates(e); + const yDiff = pointerPosition.y - this.pointerTouchDown.y; + this.stretchEdge(yDiff); + if (!this.touchScroll) { + const wasDragged = Math.abs(yDiff) > dragConfig.minimumStartDragOffset; + if (wasDragged) + this.touchScroll = true; + } + }, + onPointerUp() { + this.pointerTouchDown = null; + } + }, + created() { + this.handleScroll = lodash_throttle(this.onScroll, 150, { leading: false }); + this.pointerUpHandler = this.onPointerUp.bind(this); + this.pointerMoveHandler = lodash_throttle(this.onPointerMove, 50, { leading: false }); + } +}; +function _sfc_render$u(_ctx, _cache, $props, $setup, $data, $options) { + const _component_loader = resolveComponent("loader"); + return openBlock(), createElementBlock("div", { + class: normalizeClass($options.wrapClasses), + style: { "touch-action": "none" } + }, [ + createElementVNode("div", { + class: normalizeClass($options.scrollContainerClasses), + style: normalizeStyle({ height: $props.height + "px" }), + onScroll: _cache[0] || (_cache[0] = (...args) => $data.handleScroll && $data.handleScroll(...args)), + onWheel: _cache[1] || (_cache[1] = (...args) => $options.onWheel && $options.onWheel(...args)), + onTouchstart: _cache[2] || (_cache[2] = (...args) => $options.onPointerDown && $options.onPointerDown(...args)), + ref: "scrollContainer" + }, [ + createElementVNode("div", { + class: normalizeClass($options.loaderClasses), + style: normalizeStyle({ paddingTop: $options.wrapperPadding.paddingTop }), + ref: "toploader" + }, [ + createVNode(_component_loader, { + text: $options.localeLoadingText, + active: $data.showTopLoader + }, null, 8, ["text", "active"]) + ], 6), + createElementVNode("div", { + class: normalizeClass($options.slotContainerClasses), + ref: "scrollContent" + }, [ + renderSlot(_ctx.$slots, "default") + ], 2), + createElementVNode("div", { + class: normalizeClass($options.loaderClasses), + style: normalizeStyle({ paddingBottom: $options.wrapperPadding.paddingBottom }), + ref: "bottomLoader" + }, [ + createVNode(_component_loader, { + text: $options.localeLoadingText, + active: $data.showBottomLoader + }, null, 8, ["text", "active"]) + ], 6) + ], 38) + ], 2); +} +var Scroll = /* @__PURE__ */ _export_sfc(_sfc_main$B, [["render", _sfc_render$u]]); +const COMPLETE = "COMPLETE"; +const CANCELED = "CANCELED"; +function requestAnimation$1(task) { + if (isClient && "requestAnimationFrame" in window) { + return window.requestAnimationFrame(task); + } + setTimeout(task, 16); +} +function setElementScroll(element, x, y) { + if (element === window) { + element.scrollTo(x, y); + } else { + element.scrollLeft = x; + element.scrollTop = y; + } +} +function getTargetScrollLocation(target, parent, align) { + if (!isClient) + return; + let targetPosition = target.getBoundingClientRect(); + let parentPosition = null; + let x = null; + let y = null; + let differenceX = null; + let differenceY = null; + let targetWidth = null; + let targetHeight = null; + let leftAlign = align && align.left != null ? align.left : 0.5; + let topAlign = align && align.top != null ? align.top : 0.5; + let leftOffset = align && align.leftOffset != null ? align.leftOffset : 0; + let topOffset = align && align.topOffset != null ? align.topOffset : 0; + let leftScalar = leftAlign; + let topScalar = topAlign; + if (parent === window) { + targetWidth = Math.min(targetPosition.width, window.innerWidth); + targetHeight = Math.min(targetPosition.height, window.innerHeight); + x = targetPosition.left + window.pageXOffset - window.innerWidth * leftScalar + targetWidth * leftScalar; + y = targetPosition.top + window.pageYOffset - window.innerHeight * topScalar + targetHeight * topScalar; + x -= leftOffset; + y -= topOffset; + differenceX = x - window.pageXOffset; + differenceY = y - window.pageYOffset; + } else { + targetWidth = targetPosition.width; + targetHeight = targetPosition.height; + parentPosition = parent.getBoundingClientRect(); + let offsetLeft = targetPosition.left - (parentPosition.left - parent.scrollLeft); + let offsetTop = targetPosition.top - (parentPosition.top - parent.scrollTop); + x = offsetLeft + targetWidth * leftScalar - parent.clientWidth * leftScalar; + y = offsetTop + targetHeight * topScalar - parent.clientHeight * topScalar; + x = Math.max(Math.min(x, parent.scrollWidth - parent.clientWidth), 0); + y = Math.max(Math.min(y, parent.scrollHeight - parent.clientHeight), 0); + x -= leftOffset; + y -= topOffset; + differenceX = x - parent.scrollLeft; + differenceY = y - parent.scrollTop; + } + return { + x, + y, + differenceX, + differenceY + }; +} +function animate(parent) { + requestAnimation$1(function() { + let scrollSettings = parent.scrollOption; + if (!scrollSettings) { + return; + } + let location = getTargetScrollLocation(scrollSettings.target, parent, scrollSettings.align); + let time = Date.now() - scrollSettings.startTime; + let timeValue = Math.min(1 / scrollSettings.time * time, 1); + if (time > scrollSettings.time + 20) { + setElementScroll(parent, location.x, location.y); + parent.scrollOption = null; + return scrollSettings.end(COMPLETE); + } + let easeValue = 1 - scrollSettings.ease(timeValue); + setElementScroll( + parent, + location.x - location.differenceX * easeValue, + location.y - location.differenceY * easeValue + ); + animate(parent); + }); +} +function transitionScrollTo(target, parent, settings, callback) { + let idle = !parent.scrollOption; + let lastSettings = parent.scrollOption; + let now2 = Date.now(); + let endHandler; + if (lastSettings) { + lastSettings.end(CANCELED); + } + function end(endType) { + parent.scrollOption = null; + if (parent.parentElement && parent.parentElement.scrollOption) { + parent.parentElement.scrollOption.end(endType); + } + callback(endType); + parent.removeEventListener("touchstart", endHandler); + } + parent.scrollOption = { + startTime: lastSettings ? lastSettings.startTime : Date.now(), + target, + time: settings.time + (lastSettings ? now2 - lastSettings.startTime : 0), + ease: settings.ease, + align: settings.align, + end + }; + endHandler = end.bind(null, CANCELED); + parent.addEventListener("touchstart", endHandler); + if (idle) { + animate(parent); + } +} +function defaultIsScrollable(element) { + if (!isClient) + return; + return element === window || (element.scrollHeight !== element.clientHeight || element.scrollWidth !== element.clientWidth) && getComputedStyle(element).overflow !== "hidden"; +} +function defaultValidTarget() { + return true; +} +function index$1(target, settings, callback) { + if (!target) { + return; + } + if (typeof settings === "function") { + callback = settings; + settings = null; + } + if (!settings) { + settings = {}; + } + settings.time = isNaN(settings.time) ? 1e3 : settings.time; + settings.ease = settings.ease || function(v) { + return 1 - Math.pow(1 - v, v / 2); + }; + let parent = target.parentElement; + let parents = 0; + function done(endType) { + parents -= 1; + if (!parents && callback) { + callback(endType); + } + } + let validTarget = settings.validTarget || defaultValidTarget; + let isScrollable = settings.isScrollable; + while (parent) { + if (validTarget(parent, parents) && (isScrollable ? isScrollable(parent, defaultIsScrollable) : defaultIsScrollable(parent))) { + parents += 1; + transitionScrollTo(target, parent, settings, done); + } + parent = parent.parentElement; + if (!parent) { + return; + } + if (parent.tagName === "BODY") { + parent = window; + } + } +} +function requestAnimation(task) { + if (isClient && "requestAnimationFrame" in window) { + return window.requestAnimationFrame(task); + } + setTimeout(task, 16); +} +function index(el, settings, callback) { + if (!el) { + return; + } + if (typeof settings === "function") { + callback = settings; + settings = null; + } + if (!settings) { + settings = {}; + } + settings.time = isNaN(settings.time) ? 500 : settings.time; + const from = el.scrollTop; + const to = settings.to || 0; + const difference = Math.abs(from - to); + const step = Math.ceil(difference / settings.time * 50); + function scroll2(start, end, step2) { + if (start === end) { + callback && callback(); + return; + } + let d = start + step2 > end ? end : start + step2; + if (start > end) { + d = start - step2 < end ? end : start - step2; + } + el.scrollTop = d; + requestAnimation(() => scroll2(d, end, step2)); + } + scroll2(from, to, step); +} +const prefixCls$f = "ivu-layout-sider"; +setMatchMedia(); +const _sfc_main$A = { + name: "Sider", + emits: ["on-collapse", "update:modelValue"], + props: { + modelValue: { + type: Boolean, + default: false + }, + width: { + type: [Number, String], + default: 200 + }, + collapsedWidth: { + type: [Number, String], + default: 64 + }, + hideTrigger: { + type: Boolean, + default: false + }, + breakpoint: { + type: String, + validator(val) { + return oneOf(val, ["xs", "sm", "md", "lg", "xl", "xxl"]); + } + }, + collapsible: { + type: Boolean, + default: false + }, + defaultCollapsed: { + type: Boolean, + default: false + }, + reverseArrow: { + type: Boolean, + default: false + } + }, + data() { + return { + prefixCls: prefixCls$f, + mediaMatched: false + }; + }, + computed: { + wrapClasses() { + return [ + `${prefixCls$f}`, + this.siderWidth ? "" : `${prefixCls$f}-zero-width`, + this.modelValue ? `${prefixCls$f}-collapsed` : "" + ]; + }, + wrapStyles() { + return { + width: `${this.siderWidth}px`, + minWidth: `${this.siderWidth}px`, + maxWidth: `${this.siderWidth}px`, + flex: `0 0 ${this.siderWidth}px` + }; + }, + triggerClasses() { + return [ + `${prefixCls$f}-trigger`, + this.modelValue ? `${prefixCls$f}-trigger-collapsed` : "" + ]; + }, + childClasses() { + return `${this.prefixCls}-children`; + }, + zeroWidthTriggerClasses() { + return [ + `${prefixCls$f}-zero-width-trigger`, + this.reverseArrow ? `${prefixCls$f}-zero-width-trigger-left` : "" + ]; + }, + triggerIconClasses() { + return [ + "ivu-icon", + `ivu-icon-ios-arrow-${this.reverseArrow ? "forward" : "back"}`, + `${prefixCls$f}-trigger-icon` + ]; + }, + siderWidth() { + return this.collapsible ? this.modelValue ? this.mediaMatched ? 0 : parseInt(this.collapsedWidth) : parseInt(this.width) : this.width; + }, + showZeroTrigger() { + return this.collapsible ? this.mediaMatched && !this.hideTrigger || parseInt(this.collapsedWidth) === 0 && this.modelValue && !this.hideTrigger : false; + }, + showBottomTrigger() { + return this.collapsible ? !this.mediaMatched && !this.hideTrigger : false; + } + }, + methods: { + toggleCollapse() { + let modelValue = this.collapsible ? !this.modelValue : false; + this.$emit("update:modelValue", modelValue); + }, + matchMedia() { + if (!isClient) + return; + let matchMedia; + if (window.matchMedia) { + matchMedia = window.matchMedia; + } + let mediaMatched = this.mediaMatched; + this.mediaMatched = matchMedia(`(max-width: ${dimensionMap[this.breakpoint]})`).matches; + if (this.mediaMatched !== mediaMatched) { + this.$emit("update:modelValue", this.mediaMatched); + } + }, + onWindowResize() { + this.matchMedia(); + } + }, + watch: { + modelValue(state) { + this.$emit("on-collapse", state); + } + }, + mounted() { + if (this.defaultCollapsed) { + this.$emit("update:modelValue", this.defaultCollapsed); + } + if (this.breakpoint !== void 0) { + on(window, "resize", this.onWindowResize); + this.matchMedia(); + } + }, + beforeUnmount() { + if (this.breakpoint !== void 0) { + off(window, "resize", this.onWindowResize); + } + } +}; +const _hoisted_1$i = /* @__PURE__ */ createElementVNode("i", { class: "ivu-icon ivu-icon-ios-menu" }, null, -1); +const _hoisted_2$c = [ + _hoisted_1$i +]; +function _sfc_render$t(_ctx, _cache, $props, $setup, $data, $options) { + return openBlock(), createElementBlock("div", { + class: normalizeClass($options.wrapClasses), + style: normalizeStyle($options.wrapStyles) + }, [ + withDirectives(createElementVNode("span", { + onClick: _cache[0] || (_cache[0] = (...args) => $options.toggleCollapse && $options.toggleCollapse(...args)), + class: normalizeClass($options.zeroWidthTriggerClasses) + }, _hoisted_2$c, 2), [ + [vShow, $options.showZeroTrigger] + ]), + createElementVNode("div", { + class: normalizeClass($options.childClasses) + }, [ + renderSlot(_ctx.$slots, "default") + ], 2), + renderSlot(_ctx.$slots, "trigger", {}, () => [ + withDirectives(createElementVNode("div", { + class: normalizeClass($options.triggerClasses), + onClick: _cache[1] || (_cache[1] = (...args) => $options.toggleCollapse && $options.toggleCollapse(...args)), + style: normalizeStyle({ width: $options.siderWidth + "px" }) + }, [ + createElementVNode("i", { + class: normalizeClass($options.triggerIconClasses) + }, null, 2) + ], 6), [ + [vShow, $options.showBottomTrigger] + ]) + ]) + ], 6); +} +var Sider = /* @__PURE__ */ _export_sfc(_sfc_main$A, [["render", _sfc_render$t]]); +const prefixCls$e = "ivu-skeleton-item"; +const _sfc_main$z = { + name: "SkeletonItem", + components: { Icon }, + inject: { + SkeletonInstance: { + default: null + } + }, + props: { + animated: { + type: Boolean, + default: false + }, + type: { + validator(value) { + return oneOf(value, ["circle", "square", "rect", "image"]); + }, + default: "rect" + }, + size: { + validator(value) { + return oneOf(value, ["small", "large", "default"]); + }, + default() { + const global2 = getCurrentInstance().appContext.config.globalProperties; + return !global2.$VIEWUI || global2.$VIEWUI.size === "" ? "default" : global2.$VIEWUI.size; + } + }, + width: { + type: [String, Number] + }, + height: { + type: [String, Number] + }, + block: { + type: Boolean, + default: false + }, + imgSrc: { + type: String + } + }, + data() { + return { + prefixCls: prefixCls$e + }; + }, + computed: { + classes() { + return [ + prefixCls$e, + prefixCls$e + "-" + this.type, + prefixCls$e + "-" + this.type + "-" + this.size, + { + [prefixCls$e + "-animated"]: this.animated || Boolean(this.SkeletonInstance) && this.SkeletonInstance.animated, + [prefixCls$e + "-inline"]: !this.block, + [prefixCls$e + "-with-image"]: this.showImage, + [prefixCls$e + "-round"]: Boolean(this.SkeletonInstance) && this.SkeletonInstance.round + } + ]; + }, + styles() { + const styleObj = {}; + if (["rect", "image"].includes(this.type)) { + if (this.width) { + styleObj.width = typeof this.width === "number" ? `${this.width}px` : this.width; + } + if (this.height) { + styleObj.height = typeof this.height === "number" ? `${this.height}px` : this.height; + } + if (this.showImage) { + styleObj.background = `no-repeat url(${this.imgSrc}) center center`; + styleObj.backgroundSize = "contain"; + } + } + return styleObj; + }, + showIcon() { + return this.type === "image" && !this.imgSrc; + }, + showImage() { + return this.type === "image" && Boolean(this.imgSrc); + }, + iconSize() { + let iconSize = 16; + if (this.size === "large") + iconSize = 32; + if (this.size === "small") + iconSize = 10; + return iconSize; + } + } +}; +function _sfc_render$s(_ctx, _cache, $props, $setup, $data, $options) { + const _component_Icon = resolveComponent("Icon"); + return openBlock(), createElementBlock("div", { + class: normalizeClass($options.classes), + style: normalizeStyle($options.styles) + }, [ + $options.showIcon ? (openBlock(), createBlock(_component_Icon, { + key: 0, + class: normalizeClass($data.prefixCls + "-image-icon"), + type: "ios-image", + size: $options.iconSize + }, null, 8, ["class", "size"])) : createCommentVNode("", true) + ], 6); +} +var SkeletonItem = /* @__PURE__ */ _export_sfc(_sfc_main$z, [["render", _sfc_render$s]]); +const prefixCls$d = "ivu-skeleton"; +const _sfc_main$y = { + name: "Skeleton", + components: { SkeletonItem, Row, Col }, + provide() { + return { + SkeletonInstance: this + }; + }, + props: { + animated: { + type: Boolean, + default: false + }, + loading: { + type: Boolean, + default: false + }, + round: { + type: Boolean, + default: false + }, + paragraph: { + validator(value) { + if (typeof value === "number") { + return value >= 1; + } + return typeof value.rows === "number" && value.rows >= 1; + }, + type: [Number, Object], + default: 3 + }, + title: { + validator(value) { + if (typeof value === "object") { + if (value.width) + return ["number", "string"].includes(typeof value.width); + } + return true; + }, + type: [Boolean, Object], + default: true + }, + avatar: { + validator(value) { + if (typeof value === "object") { + if (value.type) + return oneOf(value.type, ["circle", "square"]); + if (value.size) + return oneOf(value.size, ["small", "large", "default"]); + } + return true; + }, + type: [Boolean, Object], + default: false + } + }, + data() { + return { + prefixCls: prefixCls$d + }; + }, + computed: { + classes() { + return [ + prefixCls$d, + { + [prefixCls$d + "-with-title"]: this.showTitle, + [prefixCls$d + "-with-avatar"]: this.showAvatar + } + ]; + }, + rows() { + if (typeof this.paragraph === "number") { + return this.paragraph; + } + return this.paragraph.rows; + }, + rowsCount() { + return this.rows + Number(this.showTitle); + }, + showTitle() { + return Boolean(this.title); + }, + titleWidth() { + if (typeof this.title === "object" && this.title.width) { + return typeof this.title.width === "string" ? this.title.width : `${this.title.width}px`; + } + return ""; + }, + showAvatar() { + return Boolean(this.avatar); + }, + avatarType() { + if (typeof this.avatar === "object" && this.avatar.type) + return this.avatar.type; + return "circle"; + }, + avatarSize() { + if (typeof this.avatar === "object" && this.avatar.size) + return this.avatar.size; + return !this.$VIEWUI || this.$VIEWUI.size === "" ? "default" : this.$VIEWUI.size; + } + }, + methods: { + rowClasses(row) { + return [ + prefixCls$d + "-item-inner", + { + [prefixCls$d + "-item-round"]: this.round, + [prefixCls$d + "-item-title"]: this.showTitle && row === 1 + } + ]; + }, + rowWidth(row) { + if (this.showTitle && row === 1) { + return this.titleWidth || "38%"; + } + if (typeof this.paragraph === "object") { + if (typeof this.paragraph.width === "string") { + return this.paragraph.width; + } + if (typeof this.paragraph.width === "number") { + return `${this.paragraph.width}px`; + } + const index2 = row - 1 - Number(this.showTitle); + if (Array.isArray(this.paragraph.width) && this.paragraph.width[index2]) { + if (typeof this.paragraph.width[index2] === "number") { + return `${this.paragraph.width[index2]}px`; + } else { + return this.paragraph.width[index2]; + } + } + } + return row === this.rowsCount ? "62%" : "100%"; + } + } +}; +function _sfc_render$r(_ctx, _cache, $props, $setup, $data, $options) { + const _component_SkeletonItem = resolveComponent("SkeletonItem"); + const _component_Col = resolveComponent("Col"); + const _component_Row = resolveComponent("Row"); + return $props.loading ? (openBlock(), createElementBlock("div", mergeProps({ key: 0 }, _ctx.$attrs, { class: $options.classes }), [ + $props.loading ? renderSlot(_ctx.$slots, "template", { key: 0 }, () => [ + createVNode(_component_Row, null, { + default: withCtx(() => [ + $options.showAvatar ? (openBlock(), createBlock(_component_Col, { + key: 0, + flex: "0" + }, { + default: withCtx(() => [ + createVNode(_component_SkeletonItem, { + type: $options.avatarType, + size: $options.avatarSize, + animated: $props.animated, + class: normalizeClass($data.prefixCls + "-item-avatar") + }, null, 8, ["type", "size", "animated", "class"]) + ]), + _: 1 + })) : createCommentVNode("", true), + createVNode(_component_Col, { flex: "1" }, { + default: withCtx(() => [ + (openBlock(true), createElementBlock(Fragment, null, renderList($options.rowsCount, (row) => { + return openBlock(), createBlock(_component_SkeletonItem, { + key: row, + class: normalizeClass($options.rowClasses(row)), + animated: $props.animated, + width: $options.rowWidth(row), + block: "" + }, null, 8, ["class", "animated", "width"]); + }), 128)) + ]), + _: 1 + }) + ]), + _: 1 + }) + ]) : createCommentVNode("", true) + ], 16)) : renderSlot(_ctx.$slots, "default", normalizeProps(mergeProps({ key: 1 }, _ctx.$attrs))); +} +var Skeleton = /* @__PURE__ */ _export_sfc(_sfc_main$y, [["render", _sfc_render$r]]); +var SliderMarker = { + name: "SliderMarker", + props: { + mark: { + type: [String, Object] + } + }, + render() { + let label = typeof this.mark === "string" ? this.mark : [this.mark.label]; + return h("div", { + class: "ivu-slider-marks-item", + style: this.mark.style || {} + }, label); + } +}; +const prefixCls$c = "ivu-slider"; +const _sfc_main$x = { + name: "Slider", + mixins: [mixinsForm], + emits: ["update:modelValue", "on-input", "on-change"], + components: { InputNumber, Tooltip, SliderMarker }, + inject: { + ModalInstance: { + default: null + }, + DrawerInstance: { + default: null + } + }, + props: { + min: { + type: Number, + default: 0 + }, + max: { + type: Number, + default: 100 + }, + step: { + type: Number, + default: 1 + }, + range: { + type: Boolean, + default: false + }, + modelValue: { + type: [Number, Array], + default: 0 + }, + disabled: { + type: Boolean, + default: false + }, + showInput: { + type: Boolean, + default: false + }, + inputSize: { + type: String, + default: "default", + validator(value) { + return oneOf(value, ["small", "large", "default"]); + } + }, + showStops: { + type: Boolean, + default: false + }, + tipFormat: { + type: Function, + default(val) { + return val; + } + }, + showTip: { + type: String, + default: "hover", + validator(value) { + return oneOf(value, ["hover", "always", "never"]); + } + }, + name: { + type: String + }, + activeChange: { + type: Boolean, + default: true + }, + marks: { + type: Object + } + }, + data() { + let val = this.checkLimits(Array.isArray(this.modelValue) ? this.modelValue : [this.modelValue]); + if (this.range && this.modelValue === null) + val = [0, 0]; + return { + prefixCls: prefixCls$c, + currentValue: val, + dragging: false, + pointerDown: "", + startX: 0, + currentX: 0, + startPos: 0, + oldValue: [...val], + valueIndex: { + min: 0, + max: 1 + }, + sliderWidth: 0, + isValueNull: false, + id: random(6) + }; + }, + watch: { + modelValue(val) { + if (val === null) + this.isValueNull = true; + val = this.checkLimits(Array.isArray(val) ? val : [val]); + if (!this.dragging && (val[0] !== this.currentValue[0] || val[1] !== this.currentValue[1])) { + if (this.isValueNull && this.range) + this.currentValue = [0, 0]; + else + this.currentValue = val; + } + }, + exportValue(values) { + nextTick(() => { + this.$refs.minTooltip.updatePopper(); + if (this.range) { + this.$refs.maxTooltip.updatePopper(); + } + }); + const value = this.range ? values : values[0]; + if (this.isValueNull) { + this.isValueNull = false; + this.$emit("update:modelValue", null); + } else { + this.$emit("update:modelValue", value); + } + this.$emit("on-input", value); + } + }, + computed: { + classes() { + return [ + `${prefixCls$c}`, + { + [`${prefixCls$c}-input`]: this.showInput && !this.range, + [`${prefixCls$c}-range`]: this.range, + [`${prefixCls$c}-disabled`]: this.itemDisabled + } + ]; + }, + minButtonClasses() { + return [ + `${prefixCls$c}-button`, + { + [`${prefixCls$c}-button-dragging`]: this.pointerDown === "min" + } + ]; + }, + maxButtonClasses() { + return [ + `${prefixCls$c}-button`, + { + [`${prefixCls$c}-button-dragging`]: this.pointerDown === "max" + } + ]; + }, + exportValue() { + const decimalCases = (String(this.step).split(".")[1] || "").length; + return this.currentValue.map((nr) => Number(nr.toFixed(decimalCases))); + }, + minPosition() { + const val = this.currentValue; + return (val[0] - this.min) / this.valueRange * 100; + }, + maxPosition: function() { + const val = this.currentValue; + return (val[1] - this.min) / this.valueRange * 100; + }, + barStyle() { + const style2 = { + width: (this.currentValue[0] - this.min) / this.valueRange * 100 + "%" + }; + if (this.range) { + style2.left = (this.currentValue[0] - this.min) / this.valueRange * 100 + "%"; + style2.width = (this.currentValue[1] - this.currentValue[0]) / this.valueRange * 100 + "%"; + } + return style2; + }, + stops() { + let stopCount = this.valueRange / this.step; + let result = []; + let stepWidth = 100 * this.step / this.valueRange; + for (let i = 1; i < stopCount; i++) { + result.push(i * stepWidth); + } + return result; + }, + markList() { + if (!this.marks) + return []; + const marksKeys = Object.keys(this.marks); + return marksKeys.map(parseFloat).sort((a, b) => a - b).filter((point) => point <= this.max && point >= this.min).map((point) => ({ + point, + position: (point - this.min) * 100 / (this.max - this.min), + mark: this.marks[point] + })); + }, + tipDisabled() { + return this.tipFormat(this.currentValue[0]) === null || this.showTip === "never"; + }, + valueRange() { + return this.max - this.min; + }, + firstPosition() { + return this.currentValue[0]; + }, + secondPosition() { + return this.currentValue[1]; + } + }, + methods: { + getPointerX(e) { + return e.type.indexOf("touch") !== -1 ? e.touches[0].clientX : e.clientX; + }, + checkLimits([min, max]) { + min = Math.max(this.min, min); + min = Math.min(this.max, min); + max = Math.max(this.min, min, max); + max = Math.min(this.max, max); + return [min, max]; + }, + getCurrentValue(event, type2) { + if (this.itemDisabled) { + return; + } + const index2 = this.valueIndex[type2]; + if (typeof index2 === "undefined") { + return; + } + return this.currentValue[index2]; + }, + onKeyLeft(event, type2) { + const value = this.getCurrentValue(event, type2); + if (Number.isFinite(value)) { + this.changeButtonPosition(value - this.step, type2); + } + }, + onKeyRight(event, type2) { + const value = this.getCurrentValue(event, type2); + if (Number.isFinite(value)) { + this.changeButtonPosition(value + this.step, type2); + } + }, + onPointerDown(event, type2) { + if (this.itemDisabled) + return; + event.preventDefault(); + this.pointerDown = type2; + this.onPointerDragStart(event); + on(window, "mousemove", this.onPointerDrag); + on(window, "touchmove", this.onPointerDrag); + on(window, "mouseup", this.onPointerDragEnd); + on(window, "touchend", this.onPointerDragEnd); + }, + onPointerDragStart(event) { + this.dragging = false; + this.startX = this.getPointerX(event); + this.startPos = this[`${this.pointerDown}Position`] * this.valueRange / 100 + this.min; + }, + onPointerDrag(event) { + this.dragging = true; + this.$refs[`${this.pointerDown}Tooltip`].visible = true; + this.currentX = this.getPointerX(event); + const diff = (this.currentX - this.startX) / this.sliderWidth * this.valueRange; + this.changeButtonPosition(this.startPos + diff); + }, + onPointerDragEnd() { + if (this.dragging) { + this.dragging = false; + this.$refs[`${this.pointerDown}Tooltip`].visible = false; + this.emitChange(); + } + this.pointerDown = ""; + off(window, "mousemove", this.onPointerDrag); + off(window, "touchmove", this.onPointerDrag); + off(window, "mouseup", this.onPointerDragEnd); + off(window, "touchend", this.onPointerDragEnd); + }, + changeButtonPosition(newPos, forceType) { + const type2 = forceType || this.pointerDown; + const index2 = type2 === "min" ? 0 : 1; + if (type2 === "min") + newPos = this.checkLimits([newPos, this.max])[0]; + else + newPos = this.checkLimits([this.min, newPos])[1]; + const modulus = this.handleDecimal(newPos, this.step); + const value = this.currentValue; + value[index2] = newPos - modulus; + if (this.range) { + if (type2 === "min" && value[0] > value[1]) + value[1] = value[0]; + if (type2 === "max" && value[0] > value[1]) + value[0] = value[1]; + } + this.currentValue = [...value]; + if (!this.dragging) { + if (this.currentValue[index2] !== this.oldValue[index2]) { + this.emitChange(); + this.oldValue[index2] = this.currentValue[index2]; + } + } + }, + handleDecimal(pos, step) { + if (step < 1) { + let sl = step.toString(), multiple = 1, m; + try { + m = sl.split(".")[1].length; + } catch (e) { + m = 0; + } + multiple = Math.pow(10, m); + return pos * multiple % (step * multiple) / multiple; + } else + return pos % step; + }, + emitChange() { + const value = this.range ? this.exportValue : this.exportValue[0]; + this.$emit("on-change", value); + this.handleFormItemChange("change", value); + }, + sliderClick(event) { + if (this.itemDisabled) + return; + const currentX = this.getPointerX(event); + const sliderOffsetLeft = this.$refs.slider.getBoundingClientRect().left; + let newPos = (currentX - sliderOffsetLeft) / this.sliderWidth * this.valueRange + this.min; + let regularNewPos = newPos / this.valueRange * 100; + if (!this.range || regularNewPos <= this.minPosition) + this.changeButtonPosition(newPos, "min"); + else if (regularNewPos >= this.maxPosition) + this.changeButtonPosition(newPos, "max"); + else + this.changeButtonPosition(newPos, newPos - this.firstPosition <= this.secondPosition - newPos ? "min" : "max"); + }, + handleInputChange(val) { + this.currentValue = [val === 0 ? 0 : val || this.min, this.currentValue[1]]; + this.emitChange(); + }, + handleFocus(type2) { + this.$refs[`${type2}Tooltip`].handleShowPopper(); + }, + handleBlur(type2) { + this.$refs[`${type2}Tooltip`].handleClosePopper(); + }, + handleSetSliderWidth() { + this.sliderWidth = parseInt(getStyle(this.$refs.slider, "width"), 10); + }, + handleOnVisibleChange(val) { + if (val && this.showTip === "always") { + this.$refs.minTooltip.doDestroy(); + if (this.range) { + this.$refs.maxTooltip.doDestroy(); + } + nextTick(() => { + this.$refs.minTooltip.updatePopper(); + if (this.range) { + this.$refs.maxTooltip.updatePopper(); + } + }); + } + }, + addSlider(instance) { + const target = this[instance]; + if (!target) + return; + if (!target.sliderList) + target.sliderList = []; + target.sliderList.push({ + id: this.id, + slider: this + }); + }, + removeSlider(instance) { + const target = this[instance]; + if (!target || !target.sliderList) + return; + const index2 = target.sliderList.findIndex((item) => item.id === this.id); + target.sliderList.splice(index2, 1); + } + }, + mounted() { + this.addSlider("ModalInstance"); + this.addSlider("DrawerInstance"); + this.observer = elementResizeDetector(); + this.observer.listenTo(this.$refs.slider, this.handleSetSliderWidth); + }, + beforeUnmount() { + this.removeSlider("ModalInstance"); + this.removeSlider("DrawerInstance"); + this.observer.removeListener(this.$refs.slider, this.handleSetSliderWidth); + } +}; +const _hoisted_1$h = ["name", "value"]; +const _hoisted_2$b = { class: "ivu-slider-marks" }; +function _sfc_render$q(_ctx, _cache, $props, $setup, $data, $options) { + const _component_Input_number = resolveComponent("Input-number"); + const _component_SliderMarker = resolveComponent("SliderMarker"); + const _component_Tooltip = resolveComponent("Tooltip"); + return openBlock(), createElementBlock("div", { + class: normalizeClass($options.classes) + }, [ + !$props.range && $props.showInput ? (openBlock(), createBlock(_component_Input_number, { + key: 0, + min: $props.min, + size: $props.inputSize, + max: $props.max, + step: $props.step, + modelValue: $options.exportValue[0], + disabled: _ctx.itemDisabled, + "active-change": $props.activeChange, + onOnChange: $options.handleInputChange + }, null, 8, ["min", "size", "max", "step", "modelValue", "disabled", "active-change", "onOnChange"])) : createCommentVNode("", true), + createElementVNode("div", { + class: normalizeClass([$data.prefixCls + "-wrap"]), + ref: "slider", + onClick: _cache[19] || (_cache[19] = withModifiers((...args) => $options.sliderClick && $options.sliderClick(...args), ["self"])) + }, [ + createElementVNode("input", { + type: "hidden", + name: $props.name, + value: $options.exportValue + }, null, 8, _hoisted_1$h), + createElementVNode("div", { + class: normalizeClass([$data.prefixCls + "-bar"]), + style: normalizeStyle($options.barStyle), + onClick: _cache[0] || (_cache[0] = withModifiers((...args) => $options.sliderClick && $options.sliderClick(...args), ["self"])) + }, null, 6), + $props.showStops ? (openBlock(true), createElementBlock(Fragment, { key: 0 }, renderList($options.stops, (item) => { + return openBlock(), createElementBlock("div", { + class: normalizeClass([$data.prefixCls + "-stop"]), + key: item, + style: normalizeStyle({ "left": item + "%" }), + onClick: _cache[1] || (_cache[1] = withModifiers((...args) => $options.sliderClick && $options.sliderClick(...args), ["self"])) + }, null, 6); + }), 128)) : createCommentVNode("", true), + $options.markList.length > 0 ? (openBlock(), createElementBlock(Fragment, { key: 1 }, [ + (openBlock(true), createElementBlock(Fragment, null, renderList($options.markList, (item, key2) => { + return openBlock(), createElementBlock("div", { + key: key2, + class: normalizeClass([$data.prefixCls + "-stop"]), + style: normalizeStyle({ "left": item.position + "%" }), + onClick: _cache[2] || (_cache[2] = withModifiers((...args) => $options.sliderClick && $options.sliderClick(...args), ["self"])) + }, null, 6); + }), 128)), + createElementVNode("div", _hoisted_2$b, [ + (openBlock(true), createElementBlock(Fragment, null, renderList($options.markList, (item, key2) => { + return openBlock(), createBlock(_component_SliderMarker, { + key: key2, + mark: item.mark, + style: normalizeStyle({ "left": item.position + "%" }), + onClick: $options.sliderClick + }, null, 8, ["mark", "style", "onClick"]); + }), 128)) + ]) + ], 64)) : createCommentVNode("", true), + createElementVNode("div", { + class: normalizeClass([$data.prefixCls + "-button-wrap"]), + style: normalizeStyle({ left: $options.minPosition + "%" }), + onTouchstart: _cache[9] || (_cache[9] = ($event) => $options.onPointerDown($event, "min")), + onMousedown: _cache[10] || (_cache[10] = ($event) => $options.onPointerDown($event, "min")) + }, [ + createVNode(_component_Tooltip, { + controlled: $data.pointerDown === "min", + placement: "top", + content: $props.tipFormat($options.exportValue[0]), + disabled: $options.tipDisabled, + always: $props.showTip === "always", + ref: "minTooltip" + }, { + default: withCtx(() => [ + createElementVNode("div", { + class: normalizeClass($options.minButtonClasses), + tabindex: "0", + onFocus: _cache[3] || (_cache[3] = ($event) => $options.handleFocus("min")), + onBlur: _cache[4] || (_cache[4] = ($event) => $options.handleBlur("min")), + onKeydown: [ + _cache[5] || (_cache[5] = withKeys(($event) => $options.onKeyLeft($event, "min"), ["left"])), + _cache[6] || (_cache[6] = withKeys(($event) => $options.onKeyLeft($event, "min"), ["down"])), + _cache[7] || (_cache[7] = withKeys(($event) => $options.onKeyRight($event, "min"), ["right"])), + _cache[8] || (_cache[8] = withKeys(($event) => $options.onKeyRight($event, "min"), ["up"])) + ] + }, null, 34) + ]), + _: 1 + }, 8, ["controlled", "content", "disabled", "always"]) + ], 38), + $props.range ? (openBlock(), createElementBlock("div", { + key: 2, + class: normalizeClass([$data.prefixCls + "-button-wrap"]), + style: normalizeStyle({ left: $options.maxPosition + "%" }), + onTouchstart: _cache[17] || (_cache[17] = ($event) => $options.onPointerDown($event, "max")), + onMousedown: _cache[18] || (_cache[18] = ($event) => $options.onPointerDown($event, "max")) + }, [ + createVNode(_component_Tooltip, { + controlled: $data.pointerDown === "max", + placement: "top", + content: $props.tipFormat($options.exportValue[1]), + disabled: $options.tipDisabled, + always: $props.showTip === "always", + ref: "maxTooltip" + }, { + default: withCtx(() => [ + createElementVNode("div", { + class: normalizeClass($options.maxButtonClasses), + tabindex: "0", + onFocus: _cache[11] || (_cache[11] = ($event) => $options.handleFocus("max")), + onBlur: _cache[12] || (_cache[12] = ($event) => $options.handleBlur("max")), + onKeydown: [ + _cache[13] || (_cache[13] = withKeys(($event) => $options.onKeyLeft($event, "max"), ["left"])), + _cache[14] || (_cache[14] = withKeys(($event) => $options.onKeyLeft($event, "max"), ["down"])), + _cache[15] || (_cache[15] = withKeys(($event) => $options.onKeyRight($event, "max"), ["right"])), + _cache[16] || (_cache[16] = withKeys(($event) => $options.onKeyRight($event, "max"), ["up"])) + ] + }, null, 34) + ]), + _: 1 + }, 8, ["controlled", "content", "disabled", "always"]) + ], 38)) : createCommentVNode("", true) + ], 2) + ], 2); +} +var Slider = /* @__PURE__ */ _export_sfc(_sfc_main$x, [["render", _sfc_render$q]]); +const spaceSize = { + small: 8, + default: 16, + large: 24 +}; +const _sfc_main$w = { + name: "Space", + props: { + size: { + type: [String, Number, Array], + validator(value) { + const sizes = ["small", "large", "default"]; + if (typeof value === "string") { + return oneOf(value, sizes); + } + if (Array.isArray(value)) { + return value.length > 0 && value.every((i) => typeof i === "number" || oneOf(i, sizes)); + } + return true; + }, + default() { + const global2 = getCurrentInstance().appContext.config.globalProperties; + return !global2.$VIEWUI || !global2.$VIEWUI.space || global2.$VIEWUI.space.size === "" ? "small" : global2.$VIEWUI.space.size; + } + }, + direction: { + type: String, + validator(value) { + return oneOf(value, ["horizontal", "vertical"]); + }, + default: "horizontal" + }, + align: { + type: String, + validator(value) { + return oneOf(value, ["start", "end", "center", "baseline", "stretch"]); + } + }, + wrap: { + type: Boolean, + default: false + }, + split: { + type: Boolean, + default: false + }, + type: { + type: String, + validator(value) { + return oneOf(value, ["inline-flex", "flex"]); + }, + default: "inline-flex" + } + }, + computed: { + mergedAlign() { + if (!this.align) { + if (this.direction === "horizontal") + return "center"; + if (this.type === "flex") + return "stretch"; + } + return this.align; + }, + classes() { + return [ + "ivu-space", + `ivu-space-${this.direction}`, + { + "ivu-space-flex": this.type === "flex", + "ivu-space-wrap": this.wrap, + [`ivu-space-${this.mergedAlign}`]: this.mergedAlign + } + ]; + }, + styles() { + const style2 = {}; + if (["number", "string"].includes(typeof this.size)) { + style2.gap = this.getSize(this.size); + } + if (Array.isArray(this.size)) { + if (this.size.length === 1) { + style2.columnGap = this.getSize(this.size[0]); + } else if (this.size.length > 1) { + style2.columnGap = this.getSize(this.size[0]); + style2.rowGap = this.getSize(this.size[1]); + } + } + return style2; + } + }, + methods: { + getSize(size) { + return `${typeof size === "string" ? spaceSize[size] : size || 0}px`; + }, + filterEmpty(children = []) { + const res = []; + children.forEach((child) => { + if (Array.isArray(child)) { + res.push(...child); + } else if (child.type === Fragment) { + res.push(...child.children); + } else { + res.push(child); + } + }); + return res.filter((c) => !this.isEmptyElement(c)); + }, + isEmptyElement(c) { + return c && (c.type === Comment || c.type === Fragment && c.children.length === 0 || c.type === Text && c.children.trim() === ""); + } + }, + render() { + const items = this.filterEmpty(this.$slots.default ? this.$slots.default() : []); + const len = items.length; + if (len === 0) + return null; + let split = null; + if (this.split && !this.$slots.split) { + split = h(Divider, { type: "vertical" }); + } else if (this.$slots.split) { + split = this.$slots.split(); + } + return h( + "div", + { class: this.classes, style: this.styles }, + items.map((child, index2) => { + const item = h("div", { class: "ivu-space-item" }, [child]); + if (split && index2 + 1 < len) { + return [ + item, + h("div", { class: "ivu-space-split" }, [split]) + ]; + } + return item; + }) + ); + } +}; +const _sfc_main$v = { + name: "Trigger", + props: { + mode: String + }, + data() { + return { + prefix: "ivu-split-trigger", + initOffset: 0 + }; + }, + computed: { + isVertical() { + return this.mode === "vertical"; + }, + classes() { + return [ + this.prefix, + this.isVertical ? `${this.prefix}-vertical` : `${this.prefix}-horizontal` + ]; + }, + barConClasses() { + return [ + `${this.prefix}-bar-con`, + this.isVertical ? "vertical" : "horizontal" + ]; + } + } +}; +function _sfc_render$p(_ctx, _cache, $props, $setup, $data, $options) { + return openBlock(), createElementBlock("div", { + class: normalizeClass($options.classes) + }, [ + createElementVNode("div", { + class: normalizeClass($options.barConClasses) + }, [ + _cache[0] || (setBlockTracking(-1), _cache[0] = (openBlock(), createElementBlock(Fragment, null, renderList(8, (i) => { + return createElementVNode("i", { + class: normalizeClass(`${$data.prefix}-bar`), + key: `trigger-${i}` + }, null, 2); + }), 64)), setBlockTracking(1), _cache[0]) + ], 2) + ], 2); +} +var Trigger = /* @__PURE__ */ _export_sfc(_sfc_main$v, [["render", _sfc_render$p]]); +const _sfc_main$u = { + name: "Split", + components: { Trigger }, + emits: ["update:modelValue", "on-move-start", "on-moving", "on-move-end"], + props: { + modelValue: { + type: [Number, String], + default: 0.5 + }, + mode: { + validator(value) { + return oneOf(value, ["horizontal", "vertical"]); + }, + default: "horizontal" + }, + min: { + type: [Number, String], + default: "40px" + }, + max: { + type: [Number, String], + default: "40px" + } + }, + data() { + return { + prefix: "ivu-split", + offset: 0, + oldOffset: 0, + isMoving: false, + computedMin: 0, + computedMax: 0, + currentValue: 0.5 + }; + }, + computed: { + wrapperClasses() { + return [ + `${this.prefix}-wrapper`, + this.isMoving ? "no-select" : "" + ]; + }, + paneClasses() { + return [ + `${this.prefix}-pane`, + { + [`${this.prefix}-pane-moving`]: this.isMoving + } + ]; + }, + isHorizontal() { + return this.mode === "horizontal"; + }, + anotherOffset() { + return 100 - this.offset; + }, + valueIsPx() { + return typeof this.modelValue === "string"; + }, + offsetSize() { + return this.isHorizontal ? "offsetWidth" : "offsetHeight"; + } + }, + methods: { + px2percent(numerator, denominator) { + return parseFloat(numerator) / parseFloat(denominator); + }, + getComputedThresholdValue(type2) { + let size = this.$refs.outerWrapper[this.offsetSize]; + if (this.valueIsPx) + return typeof this[type2] === "string" ? this[type2] : size * this[type2]; + else + return typeof this[type2] === "string" ? this.px2percent(this[type2], size) : this[type2]; + }, + getMin(value1, value2) { + if (this.valueIsPx) + return `${Math.min(parseFloat(value1), parseFloat(value2))}px`; + else + return Math.min(value1, value2); + }, + getMax(value1, value2) { + if (this.valueIsPx) + return `${Math.max(parseFloat(value1), parseFloat(value2))}px`; + else + return Math.max(value1, value2); + }, + getAnotherOffset(value) { + let res = 0; + if (this.valueIsPx) + res = `${this.$refs.outerWrapper[this.offsetSize] - parseFloat(value)}px`; + else + res = 1 - value; + return res; + }, + handleMove(e) { + let pageOffset = this.isHorizontal ? e.pageX : e.pageY; + let offset = pageOffset - this.initOffset; + let outerWidth = this.$refs.outerWrapper[this.offsetSize]; + let value = this.valueIsPx ? `${parseFloat(this.oldOffset) + offset}px` : this.px2percent(outerWidth * this.oldOffset + offset, outerWidth); + let anotherValue = this.getAnotherOffset(value); + if (parseFloat(value) <= parseFloat(this.computedMin)) + value = this.getMax(value, this.computedMin); + if (parseFloat(anotherValue) <= parseFloat(this.computedMax)) + value = this.getAnotherOffset(this.getMax(anotherValue, this.computedMax)); + e.atMin = this.modelValue === this.computedMin; + e.atMax = this.valueIsPx ? this.getAnotherOffset(this.modelValue) === this.computedMax : this.getAnotherOffset(this.modelValue).toFixed(5) === this.computedMax.toFixed(5); + this.$emit("update:modelValue", value); + this.$emit("on-moving", e); + }, + handleUp() { + this.isMoving = false; + off(document, "mousemove", this.handleMove); + off(document, "mouseup", this.handleUp); + this.$emit("on-move-end"); + }, + handleMousedown(e) { + this.initOffset = this.isHorizontal ? e.pageX : e.pageY; + this.oldOffset = this.modelValue; + this.isMoving = true; + on(document, "mousemove", this.handleMove); + on(document, "mouseup", this.handleUp); + this.$emit("on-move-start"); + }, + computeOffset() { + nextTick(() => { + this.computedMin = this.getComputedThresholdValue("min"); + this.computedMax = this.getComputedThresholdValue("max"); + this.offset = (this.valueIsPx ? this.px2percent(this.modelValue, this.$refs.outerWrapper[this.offsetSize]) : this.modelValue) * 1e4 / 100; + }); + } + }, + watch: { + modelValue(val) { + if (val !== this.currentValue) { + this.currentValue = val; + this.computeOffset(); + } + } + }, + mounted() { + nextTick(() => { + this.computeOffset(); + }); + on(window, "resize", this.computeOffset); + }, + beforeUnmount() { + off(window, "resize", this.computeOffset); + } +}; +function _sfc_render$o(_ctx, _cache, $props, $setup, $data, $options) { + const _component_trigger = resolveComponent("trigger"); + return openBlock(), createElementBlock("div", { + ref: "outerWrapper", + class: normalizeClass($options.wrapperClasses) + }, [ + $options.isHorizontal ? (openBlock(), createElementBlock("div", { + key: 0, + class: normalizeClass(`${$data.prefix}-horizontal`) + }, [ + createElementVNode("div", { + style: normalizeStyle({ right: `${$options.anotherOffset}%` }), + class: normalizeClass(["left-pane", $options.paneClasses]) + }, [ + renderSlot(_ctx.$slots, "left") + ], 6), + createElementVNode("div", { + class: normalizeClass(`${$data.prefix}-trigger-con`), + style: normalizeStyle({ left: `${$data.offset}%` }), + onMousedown: _cache[0] || (_cache[0] = (...args) => $options.handleMousedown && $options.handleMousedown(...args)) + }, [ + renderSlot(_ctx.$slots, "trigger", {}, () => [ + createVNode(_component_trigger, { mode: "vertical" }) + ]) + ], 38), + createElementVNode("div", { + style: normalizeStyle({ left: `${$data.offset}%` }), + class: normalizeClass(["right-pane", $options.paneClasses]) + }, [ + renderSlot(_ctx.$slots, "right") + ], 6) + ], 2)) : (openBlock(), createElementBlock("div", { + key: 1, + class: normalizeClass(`${$data.prefix}-vertical`) + }, [ + createElementVNode("div", { + style: normalizeStyle({ bottom: `${$options.anotherOffset}%` }), + class: normalizeClass(["top-pane", $options.paneClasses]) + }, [ + renderSlot(_ctx.$slots, "top") + ], 6), + createElementVNode("div", { + class: normalizeClass(`${$data.prefix}-trigger-con`), + style: normalizeStyle({ top: `${$data.offset}%` }), + onMousedown: _cache[1] || (_cache[1] = (...args) => $options.handleMousedown && $options.handleMousedown(...args)) + }, [ + renderSlot(_ctx.$slots, "trigger", {}, () => [ + createVNode(_component_trigger, { mode: "horizontal" }) + ]) + ], 38), + createElementVNode("div", { + style: normalizeStyle({ top: `${$data.offset}%` }), + class: normalizeClass(["bottom-pane", $options.paneClasses]) + }, [ + renderSlot(_ctx.$slots, "bottom") + ], 6) + ], 2)) + ], 2); +} +var Split = /* @__PURE__ */ _export_sfc(_sfc_main$u, [["render", _sfc_render$o]]); +const prefixCls$b = "ivu-steps"; +const iconPrefixCls = "ivu-icon"; +const _sfc_main$t = { + name: "Step", + inject: ["StepsInstance"], + props: { + status: { + validator(value) { + return oneOf(value, ["wait", "process", "finish", "error"]); + } + }, + title: { + type: String, + default: "" + }, + content: { + type: String + }, + icon: { + type: String + } + }, + data() { + return { + prefixCls: prefixCls$b, + id: random(6) + }; + }, + computed: { + wrapClasses() { + return [ + `${prefixCls$b}-item`, + `${prefixCls$b}-status-${this.currentStatus}`, + { + [`${prefixCls$b}-custom`]: !!this.icon || !!this.$slots.icon, + [`${prefixCls$b}-next-error`]: this.nextError + } + ]; + }, + iconClasses() { + let icon = ""; + if (this.icon) { + icon = this.icon; + } else { + if (this.currentStatus === "finish") { + icon = "ios-checkmark"; + } else if (this.currentStatus === "error") { + icon = "ios-close"; + } + } + return [ + `${prefixCls$b}-icon`, + `${iconPrefixCls}`, + { + [`${iconPrefixCls}-${icon}`]: icon !== "" + } + ]; + }, + stepNumber() { + return this.StepsInstance.steps.findIndex((item) => item.id === this.id) + 1; + }, + total() { + return this.StepsInstance.direction === "horizontal" ? this.StepsInstance.steps.length : 1; + }, + currentStatus() { + let status = ""; + if (this.status) { + status = this.status; + } else { + const StepsInstance = this.StepsInstance; + const current = StepsInstance.current; + const index2 = StepsInstance.steps.findIndex((item) => item.id === this.id); + if (index2 === current) { + if (StepsInstance.status !== "error") { + status = "process"; + } else { + status = "error"; + } + } else if (index2 < current) { + status = "finish"; + } else { + status = "wait"; + } + } + return status; + }, + nextError() { + let status = false; + const StepsInstance = this.StepsInstance; + const index2 = StepsInstance.steps.findIndex((item) => item.id === this.id); + if (index2 + 1 < StepsInstance.steps.length) { + const nextStep = StepsInstance.steps[index2 + 1]; + if (nextStep.currentStatus === "error") + status = true; + } + return status; + } + }, + beforeMount() { + this.StepsInstance.addStep(this.id, this); + }, + beforeUnmount() { + this.StepsInstance.removeStep(this.id); + } +}; +const _hoisted_1$g = /* @__PURE__ */ createElementVNode("i", null, null, -1); +const _hoisted_2$a = [ + _hoisted_1$g +]; +const _hoisted_3$8 = { key: 0 }; +const _hoisted_4$5 = { + key: 1, + class: "ivu-steps-icon" +}; +function _sfc_render$n(_ctx, _cache, $props, $setup, $data, $options) { + return openBlock(), createElementBlock("div", { + class: normalizeClass($options.wrapClasses) + }, [ + createElementVNode("div", { + class: normalizeClass([$data.prefixCls + "-tail"]) + }, _hoisted_2$a, 2), + createElementVNode("div", { + class: normalizeClass([$data.prefixCls + "-head"]) + }, [ + createElementVNode("div", { + class: normalizeClass([$data.prefixCls + "-head-inner"]) + }, [ + !$props.icon && !_ctx.$slots.icon && $options.currentStatus !== "finish" && $options.currentStatus !== "error" ? (openBlock(), createElementBlock("span", _hoisted_3$8, toDisplayString($options.stepNumber), 1)) : _ctx.$slots.icon ? (openBlock(), createElementBlock("span", _hoisted_4$5, [ + renderSlot(_ctx.$slots, "icon") + ])) : (openBlock(), createElementBlock("span", { + key: 2, + class: normalizeClass($options.iconClasses) + }, null, 2)) + ], 2) + ], 2), + createElementVNode("div", { + class: normalizeClass([$data.prefixCls + "-main"]) + }, [ + createElementVNode("div", { + class: normalizeClass([$data.prefixCls + "-title"]) + }, [ + renderSlot(_ctx.$slots, "title", {}, () => [ + createTextVNode(toDisplayString($props.title), 1) + ]) + ], 2), + $props.content || _ctx.$slots.content ? (openBlock(), createElementBlock("div", { + key: 0, + class: normalizeClass([$data.prefixCls + "-content"]) + }, [ + renderSlot(_ctx.$slots, "content", {}, () => [ + createTextVNode(toDisplayString($props.content), 1) + ]) + ], 2)) : createCommentVNode("", true) + ], 2) + ], 2); +} +var Step = /* @__PURE__ */ _export_sfc(_sfc_main$t, [["render", _sfc_render$n]]); +const prefixCls$a = "ivu-steps"; +const _sfc_main$s = { + name: "Steps", + provide() { + return { + StepsInstance: this + }; + }, + props: { + current: { + type: Number, + default: 0 + }, + status: { + validator(value) { + return oneOf(value, ["wait", "process", "finish", "error"]); + }, + default: "process" + }, + size: { + validator(value) { + return oneOf(value, ["small"]); + } + }, + direction: { + validator(value) { + return oneOf(value, ["horizontal", "vertical"]); + }, + default: "horizontal" + } + }, + data() { + return { + steps: [] + }; + }, + computed: { + classes() { + return [ + `${prefixCls$a}`, + `${prefixCls$a}-${this.direction}`, + { + [`${prefixCls$a}-${this.size}`]: !!this.size + } + ]; + }, + children() { + return this.steps.map((item) => item.step); + } + }, + methods: { + addStep(id, step) { + this.steps.push({ id, step }); + }, + removeStep(id) { + const stepIndex = this.steps.findIndex((item) => item.id === id); + this.steps.splice(stepIndex, 1); + } + } +}; +function _sfc_render$m(_ctx, _cache, $props, $setup, $data, $options) { + return openBlock(), createElementBlock("div", { + class: normalizeClass($options.classes) + }, [ + renderSlot(_ctx.$slots, "default") + ], 2); +} +var Steps = /* @__PURE__ */ _export_sfc(_sfc_main$s, [["render", _sfc_render$m]]); +const prefixCls$9 = "ivu-menu"; +const _sfc_main$r = { + name: "Submenu", + mixins: [mixin, globalConfig], + components: { Icon, Drop, CollapseTransition }, + provide() { + return { + SubmenuInstance: this + }; + }, + props: { + name: { + type: [String, Number], + required: true + }, + disabled: { + type: Boolean, + default: false + } + }, + data() { + return { + prefixCls: prefixCls$9, + active: false, + opened: false, + dropWidth: parseFloat(getStyle(this.$el, "width")), + id: random(6), + childSubmenuList: [] + }; + }, + computed: { + classes() { + return [ + `${prefixCls$9}-submenu`, + { + [`${prefixCls$9}-item-active`]: this.active && !this.hasParentSubmenu, + [`${prefixCls$9}-opened`]: this.opened, + [`${prefixCls$9}-submenu-disabled`]: this.disabled, + [`${prefixCls$9}-submenu-has-parent-submenu`]: this.hasParentSubmenu, + [`${prefixCls$9}-child-item-active`]: this.active + } + ]; + }, + accordion() { + return this.menu.accordion; + }, + dropStyle() { + let style2 = {}; + if (this.dropWidth) + style2.minWidth = `${this.dropWidth}px`; + return style2; + }, + titleStyle() { + return this.hasParentSubmenu && this.mode !== "horizontal" ? { + paddingLeft: 43 + (this.parentSubmenuNum - 1) * 24 + "px" + } : {}; + }, + arrowType() { + const config = this.globalConfig; + let type2 = "ios-arrow-down"; + if (config) { + if (config.menu.customArrow) { + type2 = ""; + } else if (config.menu.arrow) { + type2 = config.menu.arrow; + } + } + return type2; + }, + customArrowType() { + const config = this.globalConfig; + let type2 = ""; + if (config) { + if (config.menu.customArrow) { + type2 = config.menu.customArrow; + } + } + return type2; + }, + arrowSize() { + const config = this.globalConfig; + let size = ""; + if (config) { + if (config.menu.arrowSize) { + size = config.menu.arrowSize; + } + } + return size; + } + }, + methods: { + handleMouseenter() { + if (this.disabled) + return; + if (this.mode === "vertical") + return; + clearTimeout(this.timeout); + this.timeout = setTimeout(() => { + this.menu.updateOpenKeys(this.name); + this.opened = true; + }, 250); + }, + handleMouseleave() { + if (this.disabled) + return; + if (this.mode === "vertical") + return; + clearTimeout(this.timeout); + this.timeout = setTimeout(() => { + this.menu.updateOpenKeys(this.name); + this.opened = false; + }, 150); + }, + handleClick() { + if (this.disabled) + return; + if (this.mode === "horizontal") + return; + const opened = this.opened; + this.opened = !opened; + this.menu.updateOpenKeys(this.name); + }, + addSubmenu() { + const root2 = this.MenuInstance; + if (!root2.submenuList) + root2.submenuList = []; + root2.submenuList.push({ + id: this.id, + submenu: this + }); + const parentSubmenu = findComponentUpward(this, "Submenu"); + if (parentSubmenu) { + if (!parentSubmenu.childSubmenuList) + parentSubmenu.childSubmenuList = []; + parentSubmenu.childSubmenuList.push({ + id: this.id, + submenu: this + }); + } + }, + removeSubmenu() { + const root2 = this.MenuInstance; + if (root2.submenuList && root2.submenuList.length) { + const index2 = root2.submenuList.findIndex((item) => item.id === this.id); + root2.submenuList.splice(index2, 1); + } + const parentSubmenu = findComponentUpward(this, "Submenu"); + if (parentSubmenu) { + if (parentSubmenu.childSubmenuList && parentSubmenu.childSubmenuList.length) { + const index2 = parentSubmenu.childSubmenuList.findIndex((item) => item.id === this.id); + parentSubmenu.childSubmenuList.splice(index2, 1); + } + } + }, + handleMenuItemSelect(name2) { + if (this.mode === "horizontal") + this.opened = false; + this.MenuInstance.handleMenuItemSelect(name2); + }, + handleUpdateActiveName(status) { + if (findComponentUpward(this, "Submenu")) + this.SubmenuInstance.handleUpdateActiveName(status); + if (this.childSubmenuList && this.childSubmenuList.length) { + this.childSubmenuList.map((item) => item.submenu).forEach((item) => { + item.active = false; + }); + } + this.active = status; + } + }, + watch: { + mode(val) { + if (val === "horizontal") { + this.$refs.drop.update(); + } + }, + opened(val) { + if (this.mode === "vertical") + return; + if (val) { + this.dropWidth = parseFloat(getStyle(this.$el, "width")); + this.$refs.drop.update(); + } else { + this.$refs.drop.destroy(); + } + } + }, + mounted() { + this.addSubmenu(); + }, + beforeUnmount() { + this.removeSubmenu(); + } +}; +function _sfc_render$l(_ctx, _cache, $props, $setup, $data, $options) { + const _component_Icon = resolveComponent("Icon"); + const _component_collapse_transition = resolveComponent("collapse-transition"); + const _component_Drop = resolveComponent("Drop"); + return openBlock(), createElementBlock("li", { + class: normalizeClass($options.classes), + onMouseenter: _cache[1] || (_cache[1] = (...args) => $options.handleMouseenter && $options.handleMouseenter(...args)), + onMouseleave: _cache[2] || (_cache[2] = (...args) => $options.handleMouseleave && $options.handleMouseleave(...args)) + }, [ + createElementVNode("div", { + class: normalizeClass([$data.prefixCls + "-submenu-title"]), + ref: "reference", + onClick: _cache[0] || (_cache[0] = withModifiers((...args) => $options.handleClick && $options.handleClick(...args), ["stop"])), + style: normalizeStyle($options.titleStyle) + }, [ + renderSlot(_ctx.$slots, "title"), + createVNode(_component_Icon, { + type: $options.arrowType, + custom: $options.customArrowType, + size: $options.arrowSize, + class: normalizeClass([$data.prefixCls + "-submenu-title-icon"]) + }, null, 8, ["type", "custom", "size", "class"]) + ], 6), + _ctx.mode === "vertical" ? (openBlock(), createBlock(_component_collapse_transition, { + key: 0, + ready: _ctx.menu.ready + }, { + default: withCtx(() => [ + withDirectives(createElementVNode("ul", { + class: normalizeClass([$data.prefixCls]) + }, [ + renderSlot(_ctx.$slots, "default") + ], 2), [ + [vShow, $data.opened] + ]) + ]), + _: 3 + }, 8, ["ready"])) : createCommentVNode("", true), + _ctx.mode === "horizontal" ? (openBlock(), createBlock(_component_Drop, { + key: 1, + ref: "drop", + visible: $data.opened, + placement: "bottom", + "transition-name": "slide-up", + styles: $options.dropStyle + }, { + default: withCtx(() => [ + createElementVNode("ul", { + class: normalizeClass([$data.prefixCls + "-drop-list"]) + }, [ + renderSlot(_ctx.$slots, "default") + ], 2) + ]), + _: 3 + }, 8, ["visible", "styles"])) : createCommentVNode("", true) + ], 34); +} +var Submenu = /* @__PURE__ */ _export_sfc(_sfc_main$r, [["render", _sfc_render$l]]); +const _sfc_main$q = { + name: "Submit", + inject: ["LoginInstance"], + props: {}, + methods: { + handleSubmit() { + this.LoginInstance.handleSubmit(); + } + }, + render() { + const defaultProps = { + size: "large", + type: "primary", + long: true + }; + const finalProps = Object.assign(defaultProps, this.$attrs); + const $button = h(_sfc_main$2c, { + ...finalProps, + onClick: this.handleSubmit + }, this.$slots.default || (() => "\u767B\u5F55")); + return h("div", { + class: "ivu-login-submit" + }, [$button]); + } +}; +const prefixCls$8 = "ivu-switch"; +const _sfc_main$p = { + name: "iSwitch", + mixins: [mixinsForm], + emits: ["update:modelValue", "on-change"], + props: { + modelValue: { + type: [String, Number, Boolean], + default: false + }, + trueValue: { + type: [String, Number, Boolean], + default: true + }, + falseValue: { + type: [String, Number, Boolean], + default: false + }, + disabled: { + type: Boolean, + default: false + }, + size: { + validator(value) { + return oneOf(value, ["large", "small", "default"]); + }, + default() { + const global2 = getCurrentInstance().appContext.config.globalProperties; + return !global2.$VIEWUI || global2.$VIEWUI.size === "" ? "default" : global2.$VIEWUI.size; + } + }, + name: { + type: String + }, + loading: { + type: Boolean, + default: false + }, + trueColor: { + type: String + }, + falseColor: { + type: String + }, + beforeChange: Function + }, + data() { + return { + currentValue: this.modelValue + }; + }, + computed: { + wrapClasses() { + return [ + `${prefixCls$8}`, + { + [`${prefixCls$8}-checked`]: this.currentValue === this.trueValue, + [`${prefixCls$8}-disabled`]: this.itemDisabled, + [`${prefixCls$8}-${this.size}`]: !!this.size, + [`${prefixCls$8}-loading`]: this.loading + } + ]; + }, + wrapStyles() { + let style2 = {}; + if (this.trueColor && this.currentValue === this.trueValue) { + style2["border-color"] = this.trueColor; + style2["background-color"] = this.trueColor; + } else if (this.falseColor && this.currentValue === this.falseValue) { + style2["border-color"] = this.falseColor; + style2["background-color"] = this.falseColor; + } + return style2; + }, + innerClasses() { + return `${prefixCls$8}-inner`; + } + }, + methods: { + handleToggle() { + const checked = this.currentValue === this.trueValue ? this.falseValue : this.trueValue; + this.currentValue = checked; + this.$emit("update:modelValue", checked); + this.$emit("on-change", checked); + this.handleFormItemChange("change", checked); + }, + toggle(event) { + event.preventDefault(); + if (this.itemDisabled || this.loading) { + return false; + } + if (!this.beforeChange) { + return this.handleToggle(); + } + const before = this.beforeChange(); + if (before && before.then) { + before.then(() => { + this.handleToggle(); + }); + } else { + this.handleToggle(); + } + } + }, + watch: { + modelValue(val) { + if (val !== this.trueValue && val !== this.falseValue && val !== null) { + throw "Value should be trueValue or falseValue."; + } + this.currentValue = val; + } + } +}; +const _hoisted_1$f = ["name", "value"]; +function _sfc_render$k(_ctx, _cache, $props, $setup, $data, $options) { + return openBlock(), createElementBlock("span", { + tabindex: "0", + class: normalizeClass($options.wrapClasses), + style: normalizeStyle($options.wrapStyles), + onClick: _cache[0] || (_cache[0] = (...args) => $options.toggle && $options.toggle(...args)), + onKeydown: _cache[1] || (_cache[1] = withKeys((...args) => $options.toggle && $options.toggle(...args), ["space"])) + }, [ + createElementVNode("input", { + type: "hidden", + name: $props.name, + value: $data.currentValue + }, null, 8, _hoisted_1$f), + createElementVNode("span", { + class: normalizeClass($options.innerClasses) + }, [ + $data.currentValue === $props.trueValue ? renderSlot(_ctx.$slots, "open", { key: 0 }) : createCommentVNode("", true), + $data.currentValue === $props.falseValue ? renderSlot(_ctx.$slots, "close", { key: 1 }) : createCommentVNode("", true) + ], 2) + ], 38); +} +var Switch = /* @__PURE__ */ _export_sfc(_sfc_main$p, [["render", _sfc_render$k]]); +var renderHeader = { + name: "TableRenderHeader", + props: { + render: Function, + column: Object, + index: Number + }, + render() { + const params = { + column: this.column, + index: this.index + }; + return this.render(h, params); + } +}; +var Mixin = { + methods: { + alignCls(column, row = {}) { + let cellClassName = ""; + if (row.cellClassName && column.key && row.cellClassName[column.key]) { + cellClassName = row.cellClassName[column.key]; + } + return [ + `${this.prefixCls}-column-${column.__id}`, + { + [`${cellClassName}`]: cellClassName, + [`${column.className}`]: column.className, + [`${this.prefixCls}-column-${column.align}`]: column.align, + [`${this.prefixCls}-hidden`]: this.fixed === "left" && column.fixed !== "left" || this.fixed === "right" && column.fixed !== "right" || !this.fixed && column.fixed && (column.fixed === "left" || column.fixed === "right") + } + ]; + }, + isPopperShow(column) { + return column.filters && (!this.fixed && !column.fixed || this.fixed === "left" && column.fixed === "left" || this.fixed === "right" && column.fixed === "right"); + }, + setCellWidth(column) { + let width = ""; + if (column.width) { + width = column.width; + } else if (this.columnsWidth[column._index]) { + width = this.columnsWidth[column._index].width; + } + if (width === "0") + width = ""; + return width; + } + } +}; +const _sfc_main$o = { + name: "TableHead", + mixins: [Mixin, Locale], + components: { CheckboxGroup, Checkbox, Poptip, iButton: _sfc_main$2c, renderHeader }, + props: { + prefixCls: String, + styleObject: Object, + columns: Array, + objData: Object, + data: Array, + columnsWidth: Object, + fixed: { + type: [Boolean, String], + default: false + }, + columnRows: Array, + fixedColumnRows: Array + }, + data() { + return { + draggingColumn: null, + dragging: false, + dragState: {} + }; + }, + computed: { + styles() { + const style2 = Object.assign({}, this.styleObject); + const width = parseInt(this.styleObject.width); + style2.width = `${width}px`; + return style2; + }, + isSelectAll() { + let isSelectAll = true; + if (!this.data.length) + isSelectAll = false; + let isAllDisabledAndUnSelected = true; + for (let i in this.objData) { + const objData = this.objData[i]; + if (!objData._isChecked && !objData._isDisabled) { + isSelectAll = false; + break; + } else if (objData.children && objData.children.length) { + isSelectAll = this.isChildrenSelected(objData, isSelectAll); + } + if (!(objData._isDisabled && !objData._isChecked)) { + isAllDisabledAndUnSelected = false; + } else if (objData.children && objData.children.length) { + isAllDisabledAndUnSelected = this.isChildrenAllDisabledAndUnSelected(objData, isAllDisabledAndUnSelected); + } + } + if (isAllDisabledAndUnSelected) + isSelectAll = false; + return isSelectAll; + }, + headRows() { + const isGroup = this.columnRows.length > 1; + if (isGroup) { + return this.fixed ? this.fixedColumnRows : this.columnRows; + } else { + return [this.columns]; + } + }, + isSelectDisabled() { + let isSelectDisabled = true; + if (this.data.length) { + for (let i in this.objData) { + const objData = this.objData[i]; + if (!objData._isDisabled) { + isSelectDisabled = false; + } else if (objData.children && objData.children.length) { + isSelectDisabled = this.isChildrenDisabled(objData, isSelectDisabled); + } + } + } + return isSelectDisabled; + } + }, + methods: { + cellClasses(column) { + return [ + `${this.prefixCls}-cell`, + { + [`${this.prefixCls}-hidden`]: !this.fixed && column.fixed && (column.fixed === "left" || column.fixed === "right"), + [`${this.prefixCls}-cell-with-selection`]: column.type === "selection" + } + ]; + }, + scrollBarCellClass() { + let hasRightFixed = false; + for (let i in this.headRows) { + for (let j in this.headRows[i]) { + if (this.headRows[i][j].fixed === "right") { + hasRightFixed = true; + break; + } + if (hasRightFixed) + break; + } + } + return [ + { + [`${this.prefixCls}-hidden`]: hasRightFixed + } + ]; + }, + itemClasses(column, item) { + return [ + `${this.prefixCls}-filter-select-item`, + { + [`${this.prefixCls}-filter-select-item-selected`]: column._filterChecked[0] === item.value + } + ]; + }, + itemAllClasses(column) { + return [ + `${this.prefixCls}-filter-select-item`, + { + [`${this.prefixCls}-filter-select-item-selected`]: !column._filterChecked.length + } + ]; + }, + selectAll() { + const status = !this.isSelectAll; + this.$parent.selectAll(status); + }, + handleSort(index2, type2) { + const column = this.columns.find((item) => item._index === index2); + const _index = column._index; + if (column._sortType === type2) { + type2 = "normal"; + } + this.$parent.handleSort(_index, type2); + }, + handleSortByHead(index2) { + const column = this.columns.find((item) => item._index === index2); + if (column.sortable) { + const type2 = column._sortType; + if (type2 === "normal") { + this.handleSort(index2, "asc"); + } else if (type2 === "asc") { + this.handleSort(index2, "desc"); + } else { + this.handleSort(index2, "normal"); + } + } + }, + handleFilter(index2) { + this.$parent.handleFilter(index2); + }, + handleSelect(index2, value) { + this.$parent.handleFilterSelect(index2, value); + }, + handleReset(index2) { + this.$parent.handleFilterReset(index2); + }, + handleFilterHide(index2) { + this.$parent.handleFilterHide(index2); + }, + getColumn(rowIndex, index2) { + const isGroup = this.columnRows.length > 1; + if (isGroup) { + const id = this.headRows[rowIndex][index2].__id; + return this.columns.filter((item) => item.__id === id)[0]; + } else { + return this.headRows[rowIndex][index2]; + } + }, + handleMouseDown(column, event) { + if (this.$isServer) + return; + if (isClient && this.draggingColumn) { + this.dragging = true; + const table = this.$parent; + const tableEl = table.$el; + const tableLeft = tableEl.getBoundingClientRect().left; + const columnEl = this.$el.querySelector(`th.ivu-table-column-${column.__id}`); + const columnRect = columnEl.getBoundingClientRect(); + const minLeft = columnRect.left - tableLeft + 30; + table.showResizeLine = true; + this.dragState = { + startMouseLeft: event.clientX, + startLeft: columnRect.right - tableLeft, + startColumnLeft: columnRect.left - tableLeft, + tableLeft + }; + const resizeProxy = table.$refs.resizeLine; + resizeProxy.style.left = this.dragState.startLeft + "px"; + document.onselectstart = function() { + return false; + }; + document.ondragstart = function() { + return false; + }; + const handleMouseMove = (event2) => { + const deltaLeft = event2.clientX - this.dragState.startMouseLeft; + const proxyLeft = this.dragState.startLeft + deltaLeft; + resizeProxy.style.left = Math.max(minLeft, proxyLeft) + "px"; + }; + const handleMouseUp = () => { + if (this.dragging) { + const { + startColumnLeft, + startLeft + } = this.dragState; + const finalLeft = parseInt(resizeProxy.style.left, 10); + const columnWidth = finalLeft - startColumnLeft; + const _column = table.allColumns.find((item) => item.__id === column.__id); + if (_column) { + _column.width = columnWidth; + column.width = columnWidth; + table.handleResize(); + } + table.$emit("on-column-width-resize", _column.width, startLeft - startColumnLeft, column, event); + isClient && (document.body.style.cursor = ""); + this.dragging = false; + this.draggingColumn = null; + this.dragState = {}; + table.showResizeLine = false; + } + if (!isClient) + return; + document.removeEventListener("mousemove", handleMouseMove); + document.removeEventListener("mouseup", handleMouseUp); + document.onselectstart = null; + document.ondragstart = null; + }; + if (!isClient) + return; + document.addEventListener("mousemove", handleMouseMove); + document.addEventListener("mouseup", handleMouseUp); + } + }, + handleMouseMove(column, event) { + let target = event.target; + while (target && target.tagName !== "TH") { + target = target.parentNode; + } + if (!column || !column.resizable) + return; + if (isClient && !this.dragging) { + let rect = target.getBoundingClientRect(); + const bodyStyle = document.body.style; + if (rect.width > 12 && rect.right - event.pageX < 8) { + bodyStyle.cursor = "col-resize"; + this.draggingColumn = column; + } else if (!this.dragging) { + bodyStyle.cursor = ""; + this.draggingColumn = null; + } + } + }, + handleMouseOut() { + if (this.$isServer) + return; + isClient && (document.body.style.cursor = ""); + }, + isChildrenSelected(objData, isSelectAll) { + let status = isSelectAll; + if (objData.children && objData.children.length) { + objData.children.forEach((row) => { + if (!row._isChecked && !row._isDisabled) { + status = false; + } else if (row.children && row.children.length) { + status = this.isChildrenSelected(row, status); + } + }); + } + return status; + }, + isChildrenAllDisabledAndUnSelected(objData, isAllDisabledAndUnSelected) { + let status = isAllDisabledAndUnSelected; + if (objData.children && objData.children.length) { + objData.children.forEach((row) => { + if (!(row._isDisabled && !row._isChecked)) { + status = false; + } else if (row.children && row.children.length) { + status = this.isChildrenAllDisabledAndUnSelected(row, status); + } + }); + } + return status; + }, + isChildrenDisabled(objData, isSelectDisabled) { + let status = isSelectDisabled; + if (objData.children && objData.children.length) { + objData.children.forEach((row) => { + if (!row._isDisabled) { + status = false; + } else if (row.children && row.children.length) { + status = this.isChildrenDisabled(row, status); + } + }); + } + return status; + } + } +}; +const _hoisted_1$e = ["width"]; +const _hoisted_2$9 = ["width"]; +const _hoisted_3$7 = ["colspan", "rowspan"]; +const _hoisted_4$4 = { key: 0 }; +const _hoisted_5$1 = ["onClick"]; +const _hoisted_6$1 = ["onClick"]; +const _hoisted_7 = ["onClick"]; +const _hoisted_8 = ["onMousedown", "onMousemove"]; +const _hoisted_9 = ["rowspan"]; +function _sfc_render$j(_ctx, _cache, $props, $setup, $data, $options) { + const _component_render_header = resolveComponent("render-header"); + const _component_Checkbox = resolveComponent("Checkbox"); + const _component_checkbox = resolveComponent("checkbox"); + const _component_checkbox_group = resolveComponent("checkbox-group"); + const _component_i_button = resolveComponent("i-button"); + const _component_Poptip = resolveComponent("Poptip"); + return openBlock(), createElementBlock("table", { + cellspacing: "0", + cellpadding: "0", + border: "0", + style: normalizeStyle($options.styles) + }, [ + createElementVNode("colgroup", null, [ + (openBlock(true), createElementBlock(Fragment, null, renderList($props.columns, (column, index2) => { + return openBlock(), createElementBlock("col", { + key: index2, + width: _ctx.setCellWidth(column) + }, null, 8, _hoisted_1$e); + }), 128)), + _ctx.$parent.showVerticalScrollBar ? (openBlock(), createElementBlock("col", { + key: 0, + width: _ctx.$parent.scrollBarWidth + }, null, 8, _hoisted_2$9)) : createCommentVNode("", true) + ]), + createElementVNode("thead", null, [ + (openBlock(true), createElementBlock(Fragment, null, renderList($options.headRows, (cols, rowIndex) => { + return openBlock(), createElementBlock("tr", { key: rowIndex }, [ + (openBlock(true), createElementBlock(Fragment, null, renderList(cols, (column, index2) => { + return openBlock(), createElementBlock("th", { + key: index2, + colspan: column.colSpan, + rowspan: column.rowSpan, + class: normalizeClass(_ctx.alignCls(column)) + }, [ + createElementVNode("div", { + class: normalizeClass($options.cellClasses(column)) + }, [ + column.type === "expand" ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [ + !column.renderHeader ? (openBlock(), createElementBlock("span", _hoisted_4$4, toDisplayString(column.title || ""), 1)) : (openBlock(), createBlock(_component_render_header, { + key: 1, + render: column.renderHeader, + column, + index: index2 + }, null, 8, ["render", "column", "index"])) + ], 64)) : column.type === "selection" ? (openBlock(), createElementBlock(Fragment, { key: 1 }, [ + !column.hideSelectAll ? (openBlock(), createBlock(_component_Checkbox, { + key: 0, + "model-value": $options.isSelectAll, + disabled: $options.isSelectDisabled, + onOnChange: $options.selectAll + }, null, 8, ["model-value", "disabled", "onOnChange"])) : createCommentVNode("", true) + ], 64)) : (openBlock(), createElementBlock(Fragment, { key: 2 }, [ + !column.renderHeader ? (openBlock(), createElementBlock("span", { + key: 0, + class: normalizeClass({ [$props.prefixCls + "-cell-sort"]: column.sortable }), + onClick: ($event) => column.sortable && $options.handleSortByHead($options.getColumn(rowIndex, index2)._index) + }, toDisplayString(column.title || "#"), 11, _hoisted_5$1)) : (openBlock(), createBlock(_component_render_header, { + key: 1, + render: column.renderHeader, + column, + index: index2 + }, null, 8, ["render", "column", "index"])), + column.sortable ? (openBlock(), createElementBlock("span", { + key: 2, + class: normalizeClass([$props.prefixCls + "-sort"]) + }, [ + createElementVNode("i", { + class: normalizeClass(["ivu-icon ivu-icon-md-arrow-dropup", { on: $options.getColumn(rowIndex, index2)._sortType === "asc" }]), + onClick: ($event) => $options.handleSort($options.getColumn(rowIndex, index2)._index, "asc") + }, null, 10, _hoisted_6$1), + createElementVNode("i", { + class: normalizeClass(["ivu-icon ivu-icon-md-arrow-dropdown", { on: $options.getColumn(rowIndex, index2)._sortType === "desc" }]), + onClick: ($event) => $options.handleSort($options.getColumn(rowIndex, index2)._index, "desc") + }, null, 10, _hoisted_7) + ], 2)) : createCommentVNode("", true), + _ctx.isPopperShow(column) ? (openBlock(), createBlock(_component_Poptip, { + key: 3, + modelValue: $options.getColumn(rowIndex, index2)._filterVisible, + "onUpdate:modelValue": ($event) => $options.getColumn(rowIndex, index2)._filterVisible = $event, + placement: "bottom", + "popper-class": "ivu-table-popper", + transfer: "", + capture: false, + onOnPopperHide: ($event) => $options.handleFilterHide($options.getColumn(rowIndex, index2)._index) + }, createSlots({ + default: withCtx(() => [ + createElementVNode("span", { + class: normalizeClass([$props.prefixCls + "-filter"]) + }, [ + createElementVNode("i", { + class: normalizeClass(["ivu-icon ivu-icon-ios-funnel", { on: $options.getColumn(rowIndex, index2)._isFiltered }]) + }, null, 2) + ], 2) + ]), + _: 2 + }, [ + $options.getColumn(rowIndex, index2)._filterMultiple ? { + name: "content", + fn: withCtx(() => [ + createElementVNode("div", { + class: normalizeClass([$props.prefixCls + "-filter-list"]) + }, [ + createElementVNode("div", { + class: normalizeClass([$props.prefixCls + "-filter-list-item"]) + }, [ + createVNode(_component_checkbox_group, { + modelValue: $options.getColumn(rowIndex, index2)._filterChecked, + "onUpdate:modelValue": ($event) => $options.getColumn(rowIndex, index2)._filterChecked = $event + }, { + default: withCtx(() => [ + (openBlock(true), createElementBlock(Fragment, null, renderList(column.filters, (item, index3) => { + return openBlock(), createBlock(_component_checkbox, { + key: index3, + label: item.value + }, { + default: withCtx(() => [ + createTextVNode(toDisplayString(item.label), 1) + ]), + _: 2 + }, 1032, ["label"]); + }), 128)) + ]), + _: 2 + }, 1032, ["modelValue", "onUpdate:modelValue"]) + ], 2), + createElementVNode("div", { + class: normalizeClass([$props.prefixCls + "-filter-footer"]) + }, [ + createVNode(_component_i_button, { + type: "text", + size: "small", + disabled: !$options.getColumn(rowIndex, index2)._filterChecked.length, + onClick: ($event) => $options.handleFilter($options.getColumn(rowIndex, index2)._index) + }, { + default: withCtx(() => [ + createTextVNode(toDisplayString(_ctx.t("i.table.confirmFilter")), 1) + ]), + _: 2 + }, 1032, ["disabled", "onClick"]), + createVNode(_component_i_button, { + type: "text", + size: "small", + onClick: ($event) => $options.handleReset($options.getColumn(rowIndex, index2)._index) + }, { + default: withCtx(() => [ + createTextVNode(toDisplayString(_ctx.t("i.table.resetFilter")), 1) + ]), + _: 2 + }, 1032, ["onClick"]) + ], 2) + ], 2) + ]), + key: "0" + } : { + name: "content", + fn: withCtx(() => [ + createElementVNode("div", { + class: normalizeClass([$props.prefixCls + "-filter-list"]) + }, [ + createElementVNode("ul", { + class: normalizeClass([$props.prefixCls + "-filter-list-single"]) + }, [ + createElementVNode("li", { + class: normalizeClass($options.itemAllClasses($options.getColumn(rowIndex, index2))), + onClick: ($event) => $options.handleReset($options.getColumn(rowIndex, index2)._index) + }, toDisplayString(_ctx.t("i.table.clearFilter")), 11, ["onClick"]), + (openBlock(true), createElementBlock(Fragment, null, renderList(column.filters, (item) => { + return openBlock(), createElementBlock("li", { + class: normalizeClass($options.itemClasses($options.getColumn(rowIndex, index2), item)), + key: item.value, + onClick: ($event) => $options.handleSelect($options.getColumn(rowIndex, index2)._index, item.value) + }, toDisplayString(item.label), 11, ["onClick"]); + }), 128)) + ], 2) + ], 2) + ]), + key: "1" + } + ]), 1032, ["modelValue", "onUpdate:modelValue", "onOnPopperHide"])) : createCommentVNode("", true) + ], 64)) + ], 2), + column.resizable ? (openBlock(), createElementBlock("div", { + key: 0, + class: "ivu-table-header-resizable", + onMousedown: ($event) => $options.handleMouseDown(column, $event), + onMousemove: ($event) => $options.handleMouseMove(column, $event), + onMouseout: _cache[0] || (_cache[0] = (...args) => $options.handleMouseOut && $options.handleMouseOut(...args)) + }, null, 40, _hoisted_8)) : createCommentVNode("", true) + ], 10, _hoisted_3$7); + }), 128)), + _ctx.$parent.showVerticalScrollBar && rowIndex === 0 ? (openBlock(), createElementBlock("th", { + key: 0, + class: normalizeClass($options.scrollBarCellClass()), + rowspan: $options.headRows.length + }, null, 10, _hoisted_9)) : createCommentVNode("", true) + ]); + }), 128)) + ]) + ], 4); +} +var tableHead = /* @__PURE__ */ _export_sfc(_sfc_main$o, [["render", _sfc_render$j]]); +const _sfc_main$n = { + props: { + row: Object, + prefixCls: String, + draggable: Boolean, + isChildren: Boolean + }, + computed: { + objData() { + return this.$parent.objData; + } + }, + methods: { + onDrag(e, index2) { + e.dataTransfer.setData("index", index2); + }, + onDrop(e, index2) { + const dragIndex = e.dataTransfer.getData("index"); + this.$parent.$parent.dragAndDrop(dragIndex, index2); + e.preventDefault(); + }, + allowDrop(e) { + e.preventDefault(); + }, + rowClasses(_index) { + const objData = this.isChildren ? this.$parent.$parent.getDataByRowKey(this.row._rowKey) : this.objData[_index]; + return [ + `${this.prefixCls}-row`, + this.rowClsName(_index), + { + [`${this.prefixCls}-row-highlight`]: objData && objData._isHighlight, + [`${this.prefixCls}-row-hover`]: objData && objData._isHover + } + ]; + }, + rowClsName(_index) { + return this.$parent.$parent.rowClassName(this.objData[_index], _index); + } + } +}; +const _hoisted_1$d = ["draggable"]; +function _sfc_render$i(_ctx, _cache, $props, $setup, $data, $options) { + return $props.draggable ? (openBlock(), createElementBlock("tr", { + key: 0, + class: normalizeClass($options.rowClasses($props.row._index)), + draggable: $props.draggable, + onDragstart: _cache[0] || (_cache[0] = ($event) => $options.onDrag($event, $props.row._index)), + onDrop: _cache[1] || (_cache[1] = ($event) => $options.onDrop($event, $props.row._index)), + onDragover: _cache[2] || (_cache[2] = ($event) => $options.allowDrop($event)) + }, [ + renderSlot(_ctx.$slots, "default") + ], 42, _hoisted_1$d)) : (openBlock(), createElementBlock("tr", { + key: 1, + class: normalizeClass($options.rowClasses($props.row._index)), + draggable: false + }, [ + renderSlot(_ctx.$slots, "default") + ], 2)); +} +var TableTr = /* @__PURE__ */ _export_sfc(_sfc_main$n, [["render", _sfc_render$i]]); +var Expand = { + name: "TableExpand", + props: { + row: Object, + render: Function, + index: Number, + column: { + type: Object, + default: null + } + }, + render() { + const params = { + row: this.row, + index: this.index + }; + if (this.column) + params.column = this.column; + return this.render(h, params); + } +}; +var TableSlot = { + name: "TableSlot", + inject: ["TableInstance"], + props: { + row: Object, + index: Number, + column: { + type: Object, + default: null + }, + display: { + type: String, + default: "block" + } + }, + render() { + return h("div", { + "class": { + "ivu-table-cell-slot": true, + "ivu-table-cell-slot-inline": this.display === "inline", + "ivu-table-cell-slot-inline-block": this.display === "inline-block" + } + }, this.TableInstance.$slots[this.column.slot]({ + row: this.row, + column: this.column, + index: this.index + })); + } +}; +const _sfc_main$m = { + name: "TableCell", + components: { Icon, Checkbox, TableExpand: Expand, TableSlot, Tooltip }, + inject: ["TableInstance"], + props: { + prefixCls: String, + row: Object, + column: Object, + naturalIndex: Number, + index: Number, + checked: Boolean, + disabled: Boolean, + expanded: Boolean, + fixed: { + type: [Boolean, String], + default: false + }, + treeNode: Boolean, + treeLevel: { + type: Number, + default: 0 + } + }, + data() { + return { + renderType: "", + uid: -1, + context: this.$parent.$parent.$parent.currentContext, + showTooltip: false + }; + }, + computed: { + classes() { + return [ + `${this.prefixCls}-cell`, + { + [`${this.prefixCls}-hidden`]: !this.fixed && this.column.fixed && (this.column.fixed === "left" || this.column.fixed === "right"), + [`${this.prefixCls}-cell-ellipsis`]: this.column.ellipsis || false, + [`${this.prefixCls}-cell-with-expand`]: this.renderType === "expand", + [`${this.prefixCls}-cell-with-selection`]: this.renderType === "selection" + } + ]; + }, + expandCls() { + return [ + `${this.prefixCls}-cell-expand`, + { + [`${this.prefixCls}-cell-expand-expanded`]: this.expanded + } + ]; + }, + showChildren() { + let status = false; + if (this.renderType === "html" || this.renderType === "normal" || this.renderType === "render" || this.renderType === "slot") { + const data = this.row; + if (data.children && data.children.length || "_loading" in data) { + if (this.column.tree) + status = true; + } + } + return status; + }, + showTreeNode() { + let status = false; + if (this.renderType === "html" || this.renderType === "normal" || this.renderType === "render" || this.renderType === "slot") { + if (this.column.tree && this.treeNode) + status = true; + } + return status; + }, + showLevel() { + let status = false; + if (this.renderType === "html" || this.renderType === "normal" || this.renderType === "render" || this.renderType === "slot") { + if (this.column.tree && this.treeNode) + status = true; + } + return status; + }, + treeLevelStyle() { + return { + "padding-left": this.treeLevel * this.TableInstance.indentSize + "px" + }; + }, + childrenExpand() { + const data = this.TableInstance.getDataByRowKey(this.row._rowKey); + return data._isShowChildren; + }, + childrenLoading() { + const data = this.TableInstance.getDataByRowKey(this.row._rowKey); + return "_loading" in data && data._loading; + } + }, + methods: { + toggleSelect() { + if (this.treeNode) { + this.$parent.$parent.$parent.toggleSelect(this.index, this.row._rowKey); + } else { + this.$parent.$parent.$parent.toggleSelect(this.index); + } + }, + toggleExpand() { + this.$parent.$parent.$parent.toggleExpand(this.index); + }, + handleClick() { + }, + handleTooltipIn() { + if (!isClient) + return; + const $content = this.$refs.content; + let range2 = document.createRange(); + range2.setStart($content, 0); + range2.setEnd($content, $content.childNodes.length); + const rangeWidth = range2.getBoundingClientRect().width; + this.showTooltip = rangeWidth > $content.offsetWidth; + range2 = null; + }, + handleToggleTree() { + this.$parent.$parent.$parent.toggleTree(this.row._rowKey); + } + }, + created() { + if (this.column.type === "index") { + this.renderType = "index"; + } else if (this.column.type === "selection") { + this.renderType = "selection"; + } else if (this.column.type === "html") { + this.renderType = "html"; + } else if (this.column.type === "expand") { + this.renderType = "expand"; + } else if (this.column.render) { + this.renderType = "render"; + } else if (this.column.slot) { + this.renderType = "slot"; + } else { + this.renderType = "normal"; + } + } +}; +const _hoisted_1$c = { key: 0 }; +const _hoisted_2$8 = { + key: 4, + class: "ivu-table-cell-tree ivu-table-cell-tree-empty" +}; +const _hoisted_3$6 = ["innerHTML"]; +const _hoisted_4$3 = { key: 1 }; +function _sfc_render$h(_ctx, _cache, $props, $setup, $data, $options) { + const _component_Checkbox = resolveComponent("Checkbox"); + const _component_Icon = resolveComponent("Icon"); + const _component_Tooltip = resolveComponent("Tooltip"); + const _component_table_expand = resolveComponent("table-expand"); + const _component_table_slot = resolveComponent("table-slot"); + return openBlock(), createElementBlock("div", { + class: normalizeClass($options.classes), + ref: "cell" + }, [ + $data.renderType === "index" ? (openBlock(), createElementBlock("span", _hoisted_1$c, toDisplayString($props.column.indexMethod ? $props.column.indexMethod($props.row, $props.naturalIndex) : $props.naturalIndex + 1), 1)) : createCommentVNode("", true), + $data.renderType === "selection" ? (openBlock(), createBlock(_component_Checkbox, { + key: 1, + "model-value": $props.checked, + onClick: withModifiers($options.handleClick, ["stop"]), + onOnChange: $options.toggleSelect, + disabled: $props.disabled + }, null, 8, ["model-value", "onClick", "onOnChange", "disabled"])) : createCommentVNode("", true), + $options.showLevel ? (openBlock(), createElementBlock("div", { + key: 2, + class: "ivu-table-cell-tree-level", + style: normalizeStyle($options.treeLevelStyle) + }, null, 4)) : createCommentVNode("", true), + $options.showChildren ? (openBlock(), createElementBlock("div", { + key: 3, + class: normalizeClass(["ivu-table-cell-tree", { "ivu-table-cell-tree-loading": $options.childrenLoading }]), + onClick: _cache[0] || (_cache[0] = withModifiers((...args) => $options.handleToggleTree && $options.handleToggleTree(...args), ["prevent", "stop"])) + }, [ + $options.childrenLoading ? (openBlock(), createBlock(_component_Icon, { + key: 0, + type: "ios-loading", + class: "ivu-load-loop" + })) : !$options.childrenExpand ? (openBlock(), createBlock(_component_Icon, { + key: 1, + type: "ios-add" + })) : (openBlock(), createBlock(_component_Icon, { + key: 2, + type: "ios-remove" + })) + ], 2)) : $options.showTreeNode ? (openBlock(), createElementBlock("div", _hoisted_2$8)) : createCommentVNode("", true), + $data.renderType === "html" ? (openBlock(), createElementBlock("span", { + key: 5, + innerHTML: $props.row[$props.column.key] + }, null, 8, _hoisted_3$6)) : createCommentVNode("", true), + $data.renderType === "normal" ? (openBlock(), createElementBlock(Fragment, { key: 6 }, [ + $props.column.tooltip ? (openBlock(), createBlock(_component_Tooltip, { + key: 0, + transfer: "", + content: $props.row[$props.column.key], + theme: $props.column.tooltipTheme ? $props.column.tooltipTheme : $options.TableInstance.tooltipTheme, + disabled: !$data.showTooltip, + "max-width": $props.column.tooltipMaxWidth ? $props.column.tooltipMaxWidth : $options.TableInstance.tooltipMaxWidth, + class: "ivu-table-cell-tooltip" + }, { + default: withCtx(() => [ + createElementVNode("span", { + ref: "content", + onMouseenter: _cache[1] || (_cache[1] = (...args) => $options.handleTooltipIn && $options.handleTooltipIn(...args)), + class: "ivu-table-cell-tooltip-content" + }, toDisplayString($props.row[$props.column.key]), 545) + ]), + _: 1 + }, 8, ["content", "theme", "disabled", "max-width"])) : (openBlock(), createElementBlock("span", _hoisted_4$3, toDisplayString($props.row[$props.column.key]), 1)) + ], 64)) : createCommentVNode("", true), + $data.renderType === "expand" && !$props.row._disableExpand ? (openBlock(), createElementBlock("div", { + key: 7, + class: normalizeClass($options.expandCls), + onClick: _cache[2] || (_cache[2] = (...args) => $options.toggleExpand && $options.toggleExpand(...args)) + }, [ + createVNode(_component_Icon, { type: "ios-arrow-forward" }) + ], 2)) : createCommentVNode("", true), + $data.renderType === "render" ? (openBlock(), createBlock(_component_table_expand, { + key: 8, + row: $props.row, + column: $props.column, + index: $props.index, + render: $props.column.render + }, null, 8, ["row", "column", "index", "render"])) : createCommentVNode("", true), + $data.renderType === "slot" ? (openBlock(), createBlock(_component_table_slot, { + key: 9, + row: $props.row, + column: $props.column, + display: $props.column.display || "block", + index: $props.index + }, null, 8, ["row", "column", "display", "index"])) : createCommentVNode("", true) + ], 2); +} +var TableCell = /* @__PURE__ */ _export_sfc(_sfc_main$m, [["render", _sfc_render$h]]); +const _sfc_main$l = { + name: "TableBody", + mixins: [Mixin], + components: { TableCell, Expand, TableTr }, + props: { + prefixCls: String, + styleObject: Object, + columns: Array, + data: Array, + objData: Object, + columnsWidth: Object, + fixed: { + type: [Boolean, String], + default: false + }, + draggable: { + type: Boolean, + default: false + }, + rowKey: { + type: [Boolean, String], + default: false + } + }, + computed: { + expandRender() { + let render = function() { + return ""; + }; + for (let i = 0; i < this.columns.length; i++) { + const column = this.columns[i]; + if (column.type && column.type === "expand") { + if (column.render) + render = column.render; + } + } + return render; + } + }, + methods: { + rowChecked(_index) { + return this.objData[_index] && this.objData[_index]._isChecked; + }, + rowDisabled(_index) { + return this.objData[_index] && this.objData[_index]._isDisabled; + }, + rowExpanded(_index) { + return this.objData[_index] && this.objData[_index]._isExpanded; + }, + rowStatusByRowKey(type2, rowKey2) { + const data = this.$parent.getDataByRowKey(rowKey2); + return data[type2]; + }, + handleMouseIn(_index, event, rowKey2) { + event.stopPropagation(); + this.$parent.handleMouseIn(_index, rowKey2); + }, + handleMouseOut(_index, event, rowKey2) { + event.stopPropagation(); + this.$parent.handleMouseOut(_index, rowKey2); + }, + clickCurrentRow(_index, event, rowKey2) { + this.$parent.clickCurrentRow(_index, rowKey2); + }, + dblclickCurrentRow(_index, event, rowKey2) { + event.stopPropagation(); + this.$parent.dblclickCurrentRow(_index, rowKey2); + }, + clickCell(row, column, key2, event) { + this.$parent.$emit("on-cell-click", row, column, row[key2], event); + }, + contextmenuCurrentRow(_index, event, rowKey2) { + event.stopPropagation(); + if (this.$parent.contextMenu) + event.preventDefault(); + this.$parent.contextmenuCurrentRow(_index, rowKey2, event); + }, + selectStartCurrentRow() { + if (this.$parent.contextMenu) + ; + }, + getSpan(row, column, rowIndex, columnIndex) { + const fn = this.$parent.spanMethod; + if (typeof fn === "function") { + const result = fn({ + row, + column, + rowIndex, + columnIndex + }); + let rowspan = 1; + let colspan = 1; + if (Array.isArray(result)) { + rowspan = result[0]; + colspan = result[1]; + } else if (typeof result === "object") { + rowspan = result.rowspan; + colspan = result.colspan; + } + return { + rowspan, + colspan + }; + } else { + return {}; + } + }, + showWithSpan(row, column, rowIndex, columnIndex) { + const result = this.getSpan(row, column, rowIndex, columnIndex); + return !("rowspan" in result && result.rowspan === 0 || "colspan" in result && result.colspan === 0); + }, + isTrShow(rowKey2) { + let status = true; + let child; + for (let i in this.objData) { + const row = this.objData[i]; + const showChildren = row._isShowChildren; + if (row._rowKey === rowKey2) { + status = status && showChildren; + break; + } else if (row.children && row.children.length) { + child = this.getTrStatus(rowKey2, row, status && showChildren); + if (child[0] && child[0]._rowKey === rowKey2) { + return child[1]; + } + } + } + return status; + }, + getTrStatus(rowKey2, data, parentStatus) { + let status = parentStatus; + let childData; + if (data.children && data.children.length) { + for (let i = 0; i < data.children.length; i++) { + const row = data.children[i]; + const showChildren = row._isShowChildren; + if (row._rowKey === rowKey2) { + childData = row; + status = status && showChildren; + break; + } else if (row.children && row.children.length) { + const child = this.getTrStatus(rowKey2, row, status && showChildren); + if (child[0] && child[0]._rowKey === rowKey2) { + return child; + } + } + } + } + return [childData, status]; + }, + getLevel(rowKey2) { + let level; + let child; + for (let i = 0; i < this.data.length; i++) { + const row = this.data[i]; + if (row[this.rowKey] === rowKey2) { + level = 0; + break; + } else if (row.children && row.children.length) { + child = this.getChildLevel(row, rowKey2, 1); + if (child[0] && child[0][this.rowKey] === rowKey2) { + return child[1]; + } + } + } + return level; + }, + getChildLevel(data, rowKey2, level) { + let newLevel; + let childData; + if (data.children && data.children.length) { + for (let i = 0; i < data.children.length; i++) { + const row = data.children[i]; + if (row[this.rowKey] === rowKey2) { + childData = row; + newLevel = level; + break; + } else if (row.children && row.children.length) { + const child = this.getChildLevel(row, rowKey2, level + 1); + if (child[0] && child[0][this.rowKey] === rowKey2) { + return child; + } + } + } + } + return [childData, newLevel]; + }, + getChildNode(h2, data, nodes) { + if (data.children && data.children.length) { + data.children.forEach((row, index2) => { + let $tds = []; + this.columns.forEach((column, colIndex) => { + if (this.showWithSpan(row, column, index2, colIndex)) { + const $tableCell = h2(TableCell, { + fixed: this.fixed, + "prefix-cls": this.prefixCls, + row, + column, + "natural-index": index2, + index: row._index, + checked: this.rowStatusByRowKey("_isChecked", row._rowKey), + disabled: this.rowStatusByRowKey("_isDisabled", row._rowKey), + expanded: this.rowStatusByRowKey("_isExpanded", row._rowKey), + treeNode: true, + treeLevel: this.getLevel(row._rowKey), + key: column._columnKey + }); + const $td = h2("td", { + class: this.alignCls(column, row), + ...this.getSpan(row, column, index2, colIndex), + onClick: (e) => this.clickCell(row, column, column.key, e) + }, [$tableCell]); + $tds.push($td); + } + }); + const trStyle = {}; + if (!this.isTrShow(data._rowKey)) + trStyle.display = "none"; + const $tableTr = h2(TableTr, { + draggable: false, + row, + "prefix-cls": this.prefixCls, + isChildren: true, + style: trStyle, + key: this.rowKey ? row._rowKey : index2, + onMouseenter: (e) => this.handleMouseIn(row._index, e, row._rowKey), + onMouseleave: (e) => this.handleMouseOut(row._index, e, row._rowKey), + onClick: (e) => this.clickCurrentRow(row._index, e, row._rowKey), + onDblclick: (e) => this.dblclickCurrentRow(row._index, e, row._rowKey), + onContextmenu: (e) => this.contextmenuCurrentRow(row._index, e, row._rowKey), + onSelectstart: (e) => this.selectStartCurrentRow(row._index, e, row._rowKey) + }, () => $tds); + nodes.push($tableTr); + if (row.children && row.children.length) { + this.getChildNode(h2, row, nodes); + } + }); + return nodes; + } else { + return nodes; + } + } + }, + render() { + let $cols = []; + this.columns.forEach((column) => { + const $col = h("col", { + width: this.setCellWidth(column) + }); + $cols.push($col); + }); + const $colgroup = h("colgroup", {}, $cols); + let $tableTrs = []; + this.data.forEach((row, index2) => { + let $tds = []; + this.columns.forEach((column, colIndex) => { + if (this.showWithSpan(row, column, index2, colIndex)) { + const $tableCell = h(TableCell, { + fixed: this.fixed, + "prefix-cls": this.prefixCls, + row, + column, + "natural-index": index2, + index: row._index, + checked: this.rowChecked(row._index), + disabled: this.rowDisabled(row._index), + expanded: this.rowExpanded(row._index), + key: column._columnKey + }); + const $td = h("td", { + class: this.alignCls(column, row), + ...this.getSpan(row, column, index2, colIndex), + onClick: (e) => this.clickCell(row, column, column.key, e) + }, [$tableCell]); + $tds.push($td); + } + }); + const $tableTr = h(TableTr, { + draggable: this.draggable, + row, + "prefix-cls": this.prefixCls, + key: this.rowKey ? row._rowKey : index2, + onMouseenter: (e) => this.handleMouseIn(row._index, e), + onMouseleave: (e) => this.handleMouseOut(row._index, e), + onClick: (e) => this.clickCurrentRow(row._index, e), + onDblclick: (e) => this.dblclickCurrentRow(row._index, e), + onContextmenu: (e) => this.contextmenuCurrentRow(row._index, e), + onSelectstart: (e) => this.selectStartCurrentRow(row._index, e) + }, () => $tds); + $tableTrs.push($tableTr); + if (this.rowExpanded(row._index)) { + const $Expand = h(Expand, { + row, + render: this.expandRender, + index: row._index, + key: this.rowKey ? row._rowKey : index2 + }); + const $td = h("td", { + colspan: this.columns.length, + class: this.prefixCls + "-expanded-cell" + }, [$Expand]); + const $tr = h("tr", { + class: { + [this.prefixCls + "-expanded-hidden"]: this.fixed + } + }, [$td]); + $tableTrs.push($tr); + } + if (row.children && row.children.length) { + const $childNodes = this.getChildNode(h, row, []); + $childNodes.forEach((item) => { + $tableTrs.push(item); + }); + } + }); + const $tbody = h("tbody", { + class: this.prefixCls + "-tbody" + }, [$tableTrs]); + return h("table", { + cellspacing: "0", + cellpadding: "0", + border: "0", + style: this.styleObject + }, [$colgroup, $tbody]); + } +}; +const _sfc_main$k = { + name: "TableSummary", + mixins: [Mixin], + props: { + prefixCls: String, + styleObject: Object, + columns: Array, + data: Object, + columnsWidth: Object, + fixed: { + type: [Boolean, String], + default: false + } + }, + methods: { + cellCls(column) { + return [ + { + ["ivu-table-hidden"]: this.fixed === "left" && column.fixed !== "left" || this.fixed === "right" && column.fixed !== "right" || !this.fixed && column.fixed && (column.fixed === "left" || column.fixed === "right") + } + ]; + } + } +}; +const _hoisted_1$b = { style: { "overflow": "hidden" } }; +const _hoisted_2$7 = ["width"]; +const _hoisted_3$5 = { class: "ivu-table-row" }; +function _sfc_render$g(_ctx, _cache, $props, $setup, $data, $options) { + return openBlock(), createElementBlock("div", _hoisted_1$b, [ + createElementVNode("table", { + class: "ivu-table-summary", + cellspacing: "0", + cellpadding: "0", + border: "0", + style: normalizeStyle($props.styleObject) + }, [ + createElementVNode("colgroup", null, [ + (openBlock(true), createElementBlock(Fragment, null, renderList($props.columns, (column, index2) => { + return openBlock(), createElementBlock("col", { + key: index2, + width: _ctx.setCellWidth(column) + }, null, 8, _hoisted_2$7); + }), 128)) + ]), + createElementVNode("tbody", { + class: normalizeClass([$props.prefixCls + "-tbody"]) + }, [ + createElementVNode("tr", _hoisted_3$5, [ + (openBlock(true), createElementBlock(Fragment, null, renderList($props.columns, (column, index2) => { + return openBlock(), createElementBlock("td", { + key: index2, + class: normalizeClass(_ctx.alignCls(column)) + }, [ + createElementVNode("div", { + class: normalizeClass(["ivu-table-cell", $options.cellCls(column)]) + }, [ + createElementVNode("span", null, toDisplayString($props.data[column.key].value), 1) + ], 2) + ], 2); + }), 128)) + ]) + ], 2) + ], 4) + ]); +} +var tableSummary = /* @__PURE__ */ _export_sfc(_sfc_main$k, [["render", _sfc_render$g]]); +const newLine = "\r\n"; +const appendLine = (content, row, { separator, quoted }) => { + const line = row.map((data) => { + if (!quoted) + return data; + data = typeof data === "string" ? data.replace(/"/g, '"') : data; + return `"${data}"`; + }); + content.push(line.join(separator)); +}; +const defaults = { + separator: ",", + quoted: false +}; +function csv$1(columns, datas, options, noHeader = false) { + options = Object.assign({}, defaults, options); + let columnOrder; + const content = []; + const column = []; + if (columns) { + columnOrder = columns.map((v) => { + if (typeof v === "string") + return v; + if (!noHeader) { + column.push(typeof v.title !== "undefined" ? v.title : v.key); + } + return v.key; + }); + if (column.length > 0) + appendLine(content, column, options); + } else { + columnOrder = []; + datas.forEach((v) => { + if (!Array.isArray(v)) { + columnOrder = columnOrder.concat(Object.keys(v)); + } + }); + if (columnOrder.length > 0) { + columnOrder = columnOrder.filter((value, index2, self2) => self2.indexOf(value) === index2); + if (!noHeader) + appendLine(content, columnOrder, options); + } + } + if (Array.isArray(datas)) { + datas.forEach((row) => { + if (!Array.isArray(row)) { + row = columnOrder.map((k) => typeof row[k] !== "undefined" ? row[k] : ""); + } + appendLine(content, row, options); + }); + } + return content.join(newLine); +} +function has(browser) { + const ua = navigator.userAgent; + if (browser === "ie") { + const isIE = ua.indexOf("compatible") > -1 && ua.indexOf("MSIE") > -1; + if (isIE) { + const reIE = new RegExp("MSIE (\\d+\\.\\d+);"); + reIE.test(ua); + return parseFloat(RegExp["$1"]); + } else { + return false; + } + } else { + return ua.indexOf(browser) > -1; + } +} +const csv = { + _isIE11() { + let iev = 0; + const ieold = /MSIE (\d+\.\d+);/.test(navigator.userAgent); + const trident = !!navigator.userAgent.match(/Trident\/7.0/); + const rv = navigator.userAgent.indexOf("rv:11.0"); + if (ieold) { + iev = Number(RegExp.$1); + } + if (navigator.appVersion.indexOf("MSIE 10") !== -1) { + iev = 10; + } + if (trident && rv !== -1) { + iev = 11; + } + return iev === 11; + }, + _isEdge() { + return /Edge/.test(navigator.userAgent); + }, + _getDownloadUrl(text) { + const BOM = "\uFEFF"; + if (isClient && window.Blob && window.URL && window.URL.createObjectURL) { + const csvData = new Blob([BOM + text], { type: "text/csv" }); + return URL.createObjectURL(csvData); + } else { + return "data:attachment/csv;charset=utf-8," + BOM + encodeURIComponent(text); + } + }, + download(filename, text) { + if (!isClient) + return; + if (has("ie") && has("ie") < 10) { + const oWin = window.top.open("about:blank", "_blank"); + oWin.document.charset = "utf-8"; + oWin.document.write(text); + oWin.document.close(); + oWin.document.execCommand("SaveAs", filename); + oWin.close(); + } else if (has("ie") === 10 || this._isIE11() || this._isEdge()) { + const BOM = "\uFEFF"; + const csvData = new Blob([BOM + text], { type: "text/csv" }); + navigator.msSaveBlob(csvData, filename); + } else { + const link = document.createElement("a"); + link.download = filename; + link.href = this._getDownloadUrl(text); + document.body.appendChild(link); + link.click(); + document.body.removeChild(link); + } + } +}; +const convertColumnOrder = (columns, fixedType) => { + let list = []; + let other = []; + columns.forEach((col) => { + if (col.fixed && col.fixed === fixedType) { + list.push(col); + } else { + other.push(col); + } + }); + return list.concat(other); +}; +const getAllColumns = (cols, forTableHead = false) => { + const columns = deepCopy(cols); + const result = []; + columns.forEach((column) => { + if (column.children) { + if (forTableHead) + result.push(column); + result.push.apply(result, getAllColumns(column.children, forTableHead)); + } else { + result.push(column); + } + }); + return result; +}; +const convertToRows = (columns, fixedType = false) => { + const originColumns = fixedType ? fixedType === "left" ? deepCopy(convertColumnOrder(columns, "left")) : deepCopy(convertColumnOrder(columns, "right")) : deepCopy(columns); + let maxLevel = 1; + const traverse = (column, parent) => { + if (parent) { + column.level = parent.level + 1; + if (maxLevel < column.level) { + maxLevel = column.level; + } + } + if (column.children) { + let colSpan = 0; + column.children.forEach((subColumn) => { + traverse(subColumn, column); + colSpan += subColumn.colSpan; + }); + column.colSpan = colSpan; + } else { + column.colSpan = 1; + } + }; + originColumns.forEach((column) => { + column.level = 1; + traverse(column); + }); + const rows = []; + for (let i = 0; i < maxLevel; i++) { + rows.push([]); + } + const allColumns = getAllColumns(originColumns, true); + allColumns.forEach((column) => { + if (!column.children) { + column.rowSpan = maxLevel - column.level + 1; + } else { + column.rowSpan = 1; + } + rows[column.level - 1].push(column); + }); + return rows; +}; +const getRandomStr = function(len = 32) { + const $chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"; + const maxPos = $chars.length; + let str = ""; + for (let i = 0; i < len; i++) { + str += $chars.charAt(Math.floor(Math.random() * maxPos)); + } + return str; +}; +const prefixCls$7 = "ivu-table"; +let rowKey = 1; +let columnKey = 1; +const _sfc_main$j = { + name: "Table", + mixins: [Locale], + components: { tableHead, tableBody: _sfc_main$l, tableSummary, Spin, Dropdown, DropdownMenu }, + emits: ["on-current-change", "on-row-click", "on-row-dblclick", "on-contextmenu", "on-select", "on-select-cancel", "on-selection-change", "on-expand", "on-expand-tree", "on-select-all", "on-select-all-cancel", "on-sort-change", "on-filter-change", "on-drag-drop", "on-cell-click", "on-column-width-resize"], + provide() { + return { + TableInstance: this + }; + }, + inject: { + TabsInstance: { + default: null + }, + ModalInstance: { + default: null + }, + DrawerInstance: { + default: null + } + }, + props: { + data: { + type: Array, + default() { + return []; + } + }, + columns: { + type: Array, + default() { + return []; + } + }, + size: { + validator(value) { + return oneOf(value, ["small", "large", "default"]); + }, + default() { + const global2 = getCurrentInstance().appContext.config.globalProperties; + return !global2.$VIEWUI || global2.$VIEWUI.size === "" ? "default" : global2.$VIEWUI.size; + } + }, + width: { + type: [Number, String] + }, + height: { + type: [Number, String] + }, + maxHeight: { + type: [Number, String] + }, + stripe: { + type: Boolean, + default: false + }, + border: { + type: Boolean, + default: false + }, + showHeader: { + type: Boolean, + default: true + }, + highlightRow: { + type: Boolean, + default: false + }, + rowClassName: { + type: Function, + default() { + return ""; + } + }, + context: { + type: Object + }, + noDataText: { + type: String + }, + noFilteredDataText: { + type: String + }, + disabledHover: { + type: Boolean + }, + loading: { + type: Boolean, + default: false + }, + draggable: { + type: Boolean, + default: false + }, + tooltipTheme: { + validator(value) { + return oneOf(value, ["dark", "light"]); + }, + default: "dark" + }, + tooltipMaxWidth: { + type: Number, + default: 300 + }, + rowKey: { + type: [Boolean, String], + default: false + }, + spanMethod: { + type: Function + }, + showSummary: { + type: Boolean, + default: false + }, + summaryMethod: { + type: Function + }, + sumText: { + type: String + }, + indentSize: { + type: Number, + default: 16 + }, + loadData: { + type: Function + }, + updateShowChildren: { + type: Boolean, + default: false + }, + contextMenu: { + type: Boolean, + default: false + }, + showContextMenu: { + type: Boolean, + default: false + }, + fixedShadow: { + validator(value) { + return oneOf(value, ["auto", "show", "hide"]); + }, + default: "show" + }, + autoCloseContextmenu: { + type: Boolean, + default: true + } + }, + data() { + const colsWithId = this.makeColumnsId(this.columns); + return { + ready: false, + tableWidth: 0, + columnsWidth: {}, + prefixCls: prefixCls$7, + compiledUids: [], + objData: this.makeObjData(), + rebuildData: [], + cloneColumns: this.makeColumns(colsWithId), + columnRows: this.makeColumnRows(false, colsWithId), + leftFixedColumnRows: this.makeColumnRows("left", colsWithId), + rightFixedColumnRows: this.makeColumnRows("right", colsWithId), + allColumns: getAllColumns(colsWithId), + showSlotHeader: true, + showSlotFooter: true, + bodyHeight: 0, + scrollBarWidth: getScrollBarSize(), + currentContext: this.context, + cloneData: deepCopy(this.data), + showVerticalScrollBar: false, + showHorizontalScrollBar: false, + headerWidth: 0, + headerHeight: 0, + showResizeLine: false, + contextMenuVisible: false, + contextMenuStyles: { + top: 0, + left: 0 + }, + scrollOnTheLeft: false, + scrollOnTheRight: false, + id: random(6) + }; + }, + computed: { + localeNoDataText() { + if (this.noDataText === void 0) { + return this.t("i.table.noDataText"); + } else { + return this.noDataText; + } + }, + localeNoFilteredDataText() { + if (this.noFilteredDataText === void 0) { + return this.t("i.table.noFilteredDataText"); + } else { + return this.noFilteredDataText; + } + }, + localeSumText() { + if (this.sumText === void 0) { + return this.t("i.table.sumText"); + } else { + return this.sumText; + } + }, + wrapClasses() { + return [ + `${prefixCls$7}-wrapper`, + { + [`${prefixCls$7}-hide`]: !this.ready, + [`${prefixCls$7}-with-header`]: this.showSlotHeader, + [`${prefixCls$7}-with-footer`]: this.showSlotFooter, + [`${prefixCls$7}-with-summary`]: this.showSummary, + [`${prefixCls$7}-wrapper-with-border`]: this.border + } + ]; + }, + classes() { + return [ + `${prefixCls$7}`, + { + [`${prefixCls$7}-${this.size}`]: !!this.size, + [`${prefixCls$7}-border`]: this.border, + [`${prefixCls$7}-stripe`]: this.stripe, + [`${prefixCls$7}-with-fixed-top`]: !!this.height + } + ]; + }, + fixedTableClasses() { + return [ + `${prefixCls$7}-fixed`, + { + [`${prefixCls$7}-fixed-shadow`]: this.fixedShadow === "show" || this.fixedShadow === "auto" && !this.scrollOnTheLeft + } + ]; + }, + fixedRightTableClasses() { + return [ + `${prefixCls$7}-fixed-right`, + { + [`${prefixCls$7}-fixed-shadow`]: this.fixedShadow === "show" || this.fixedShadow === "auto" && !this.scrollOnTheRight + } + ]; + }, + fixedHeaderClasses() { + return [ + `${prefixCls$7}-fixed-header`, + { + [`${prefixCls$7}-fixed-header-with-empty`]: !this.rebuildData.length + } + ]; + }, + styles() { + let style2 = {}; + let summaryHeight = 0; + if (this.showSummary) { + if (this.size === "small") + summaryHeight = 40; + else if (this.size === "large") + summaryHeight = 60; + else + summaryHeight = 48; + } + if (this.height) { + let height2 = parseInt(this.height) + summaryHeight; + style2.height = `${height2}px`; + } + if (this.maxHeight) { + const maxHeight = parseInt(this.maxHeight) + summaryHeight; + style2.maxHeight = `${maxHeight}px`; + } + if (this.width) + style2.width = `${this.width}px`; + return style2; + }, + tableStyle() { + let style2 = {}; + if (this.tableWidth !== 0) { + let width = ""; + if (this.bodyHeight === 0) { + width = this.tableWidth; + } else { + width = this.tableWidth - (this.showVerticalScrollBar ? this.scrollBarWidth : 0); + } + style2.width = `${width}px`; + } + return style2; + }, + tableHeaderStyle() { + let style2 = {}; + if (this.tableWidth !== 0) { + let width = ""; + width = this.tableWidth; + style2.width = `${width}px`; + } + return style2; + }, + fixedTableStyle() { + let style2 = {}; + let width = 0; + this.leftFixedColumns.forEach((col) => { + if (col.fixed && col.fixed === "left") + width += col._width; + }); + style2.width = `${width}px`; + return style2; + }, + fixedRightTableStyle() { + let style2 = {}; + let width = 0; + this.rightFixedColumns.forEach((col) => { + if (col.fixed && col.fixed === "right") + width += col._width; + }); + style2.width = `${width}px`; + style2.right = `${this.showVerticalScrollBar ? this.scrollBarWidth : 0}px`; + return style2; + }, + fixedRightHeaderStyle() { + let style2 = {}; + let width = 0; + let height2 = this.headerHeight + 1; + if (this.showVerticalScrollBar) { + width = this.scrollBarWidth; + } + style2.width = `${width}px`; + style2.height = `${height2}px`; + return style2; + }, + bodyStyle() { + let style2 = {}; + if (this.bodyHeight !== 0) { + const height2 = this.bodyHeight; + if (this.height) { + style2.height = `${height2}px`; + } else if (this.maxHeight) { + style2.maxHeight = `${height2}px`; + } + } + return style2; + }, + fixedBodyStyle() { + let style2 = {}; + if (this.bodyHeight !== 0) { + let height2 = this.bodyHeight - (this.showHorizontalScrollBar ? this.scrollBarWidth : 0); + const bodyHeight = this.showHorizontalScrollBar ? `${height2}px` : `${height2 - 1}px`; + if (this.height) + style2.height = bodyHeight; + else if (this.maxHeight) + style2.maxHeight = bodyHeight; + } + return style2; + }, + leftFixedColumns() { + return convertColumnOrder(this.cloneColumns, "left"); + }, + rightFixedColumns() { + return convertColumnOrder(this.cloneColumns, "right"); + }, + isLeftFixed() { + return this.columns.some((col) => col.fixed && col.fixed === "left"); + }, + isRightFixed() { + return this.columns.some((col) => col.fixed && col.fixed === "right"); + }, + summaryData() { + if (!this.showSummary) + return {}; + let sums = {}; + if (this.summaryMethod) { + sums = this.summaryMethod({ columns: this.cloneColumns, data: this.rebuildData }); + } else { + this.cloneColumns.forEach((column, index2) => { + const key2 = column.key; + if (index2 === 0) { + sums[key2] = { + key: column.key, + value: this.localeSumText + }; + return; + } + const values = this.rebuildData.map((item) => Number(item[column.key])); + const precisions = []; + let notNumber = true; + values.forEach((value) => { + if (!isNaN(value)) { + notNumber = false; + let decimal = ("" + value).split(".")[1]; + precisions.push(decimal ? decimal.length : 0); + } + }); + const precision = Math.max.apply(null, precisions); + if (!notNumber) { + const currentValue = values.reduce((prev, curr) => { + const value = Number(curr); + if (!isNaN(value)) { + return parseFloat((prev + curr).toFixed(Math.min(precision, 20))); + } else { + return prev; + } + }, 0); + sums[key2] = { + key: column.key, + value: currentValue + }; + } else { + sums[key2] = { + key: column.key, + value: "" + }; + } + }); + } + return sums; + } + }, + methods: { + rowClsName(index2) { + return this.rowClassName(this.data[index2], index2); + }, + handleResize() { + let tableWidth = this.$el.offsetWidth - 1; + let columnsWidth = {}; + let sumMinWidth = 0; + let hasWidthColumns = []; + let noWidthColumns = []; + let noMaxWidthColumns = []; + this.cloneColumns.forEach((col) => { + if (col.width) { + hasWidthColumns.push(col); + } else { + noWidthColumns.push(col); + if (col.minWidth) { + sumMinWidth += col.minWidth; + } + if (col.maxWidth) + ; + else { + noMaxWidthColumns.push(col); + } + } + col._width = null; + }); + let unUsableWidth = hasWidthColumns.map((cell) => cell.width).reduce((a, b) => a + b, 0); + let usableWidth = tableWidth - unUsableWidth - sumMinWidth - (this.showVerticalScrollBar ? this.scrollBarWidth : 0) - 1; + let usableLength = noWidthColumns.length; + let columnWidth = 0; + if (usableWidth > 0 && usableLength > 0) { + columnWidth = parseInt(usableWidth / usableLength); + } + for (let i = 0; i < this.cloneColumns.length; i++) { + const column = this.cloneColumns[i]; + let width = columnWidth + (column.minWidth ? column.minWidth : 0); + if (column.width) { + width = column.width; + } else { + if (column._width) { + width = column._width; + } else { + if (column.minWidth > width) { + width = column.minWidth; + } else if (column.maxWidth < width) { + width = column.maxWidth; + } + if (usableWidth > 0) { + usableWidth -= width - (column.minWidth ? column.minWidth : 0); + usableLength--; + if (usableLength > 0) { + columnWidth = parseInt(usableWidth / usableLength); + } else { + columnWidth = 0; + } + } else { + columnWidth = 0; + } + } + } + column._width = width; + columnsWidth[column._index] = { + width + }; + } + if (usableWidth > 0) { + usableLength = noMaxWidthColumns.length; + columnWidth = parseInt(usableWidth / usableLength); + for (let i = 0; i < noMaxWidthColumns.length; i++) { + const column = noMaxWidthColumns[i]; + let width = column._width + columnWidth; + if (usableLength > 1) { + usableLength--; + usableWidth -= columnWidth; + columnWidth = parseInt(usableWidth / usableLength); + } else { + columnWidth = 0; + } + column._width = width; + columnsWidth[column._index] = { + width + }; + } + } + this.tableWidth = this.cloneColumns.map((cell) => cell._width).reduce((a, b) => a + b, 0) + (this.showVerticalScrollBar ? this.scrollBarWidth : 0) + 1; + this.columnsWidth = columnsWidth; + this.fixedHeader(); + if (this.fixedShadow === "auto") { + nextTick(() => { + const $body = this.$refs.body; + this.scrollOnTheLeft = $body.scrollLeft === 0; + this.scrollOnTheRight = $body.scrollWidth === $body.scrollLeft + $body.clientWidth; + }); + } + }, + handleMouseIn(_index, rowKey2) { + if (this.disabledHover) + return; + const objData = rowKey2 ? this.getDataByRowKey(rowKey2) : this.objData[_index]; + if (objData._isHover) + return; + objData._isHover = true; + }, + handleMouseOut(_index, rowKey2) { + if (this.disabledHover) + return; + const objData = rowKey2 ? this.getDataByRowKey(rowKey2) : this.objData[_index]; + objData._isHover = false; + }, + handleCurrentRow(type2, _index, rowKey2) { + const objData = rowKey2 ? this.getDataByRowKey(rowKey2) : this.objData[_index]; + let oldData = null; + let oldIndex = -1; + for (let i in this.objData) { + if (this.objData[i]._isHighlight) { + oldIndex = parseInt(i); + this.objData[i]._isHighlight = false; + break; + } else if (this.objData[i].children && this.objData[i].children.length) { + const resetData = this.handleResetChildrenRow(this.objData[i]); + if (resetData) + oldData = JSON.parse(JSON.stringify(resetData)); + } + } + if (type2 === "highlight") + objData._isHighlight = true; + if (oldIndex >= 0) { + oldData = JSON.parse(JSON.stringify(this.cloneData[oldIndex])); + } + const newData = type2 === "highlight" ? rowKey2 ? JSON.parse(JSON.stringify(this.getBaseDataByRowKey(rowKey2))) : JSON.parse(JSON.stringify(this.cloneData[_index])) : null; + this.$emit("on-current-change", newData, oldData); + }, + handleResetChildrenRow(objData) { + let data = null; + if (objData.children && objData.children.length) { + for (let i = 0; i < objData.children.length; i++) { + const item = objData.children[i]; + if (item._isHighlight) { + item._isHighlight = false; + data = item; + break; + } else if (item.children && item.children.length) { + data = this.handleResetChildrenRow(item); + } + } + } + return data; + }, + highlightCurrentRow(_index, rowKey2) { + const objData = rowKey2 ? this.getDataByRowKey(rowKey2) : this.objData[_index]; + if (!this.highlightRow || objData._isHighlight) + return; + this.handleCurrentRow("highlight", _index, rowKey2); + }, + clearCurrentRow() { + if (!this.highlightRow) + return; + this.handleCurrentRow("clear"); + }, + clickCurrentRow(_index, rowKey2) { + this.highlightCurrentRow(_index, rowKey2); + if (rowKey2) { + this.$emit("on-row-click", JSON.parse(JSON.stringify(this.getBaseDataByRowKey(rowKey2)))); + } else { + this.$emit("on-row-click", JSON.parse(JSON.stringify(this.cloneData[_index])), _index); + } + }, + dblclickCurrentRow(_index, rowKey2) { + this.highlightCurrentRow(_index, rowKey2); + if (rowKey2) { + this.$emit("on-row-dblclick", JSON.parse(JSON.stringify(this.getBaseDataByRowKey(rowKey2)))); + } else { + this.$emit("on-row-dblclick", JSON.parse(JSON.stringify(this.cloneData[_index])), _index); + } + }, + contextmenuCurrentRow(_index, rowKey2, event) { + if (this.contextMenuVisible) + this.handleClickContextMenuOutside(); + nextTick(() => { + const $TableWrap = this.$refs.tableWrap; + const TableBounding = $TableWrap.getBoundingClientRect(); + const position = { + left: `${event.clientX - TableBounding.left}px`, + top: `${event.clientY - TableBounding.top}px` + }; + this.contextMenuStyles = position; + this.contextMenuVisible = true; + if (rowKey2) { + this.$emit("on-contextmenu", JSON.parse(JSON.stringify(this.getBaseDataByRowKey(rowKey2))), event, position); + } else { + this.$emit("on-contextmenu", JSON.parse(JSON.stringify(this.cloneData[_index])), event, position); + } + }); + }, + getSelection() { + let selectionIndexes = []; + let selectionRowKeys = []; + for (let i in this.objData) { + const objData = this.objData[i]; + if (objData._isChecked) + selectionIndexes.push(parseInt(i)); + if (objData.children && objData.children.length) { + selectionRowKeys = selectionRowKeys.concat(this.getSelectionChildrenRowKeys(objData, selectionRowKeys)); + } + } + selectionRowKeys = [...new Set(selectionRowKeys)]; + let selection = []; + this.data.forEach((item, index2) => { + if (selectionIndexes.indexOf(index2) > -1) { + selection = selection.concat(item); + } + if (item.children && item.children.length && selectionRowKeys.length) { + selection = selection.concat(this.getSelectionChildren(item, selection, selectionRowKeys)); + } + }); + selection = [...new Set(selection)]; + return JSON.parse(JSON.stringify(selection)); + }, + getSelectionChildrenRowKeys(objData, selectionRowKeys) { + if (objData.children && objData.children.length) { + objData.children.forEach((item) => { + if (item._isChecked) + selectionRowKeys.push(item._rowKey); + if (item.children && item.children.length) { + selectionRowKeys = selectionRowKeys.concat(this.getSelectionChildrenRowKeys(item, selectionRowKeys)); + } + }); + } + return selectionRowKeys; + }, + getSelectionChildren(data, selection, selectionRowKeys) { + if (data.children && data.children.length) { + data.children.forEach((item) => { + if (selectionRowKeys.indexOf(item[this.rowKey]) > -1) { + selection = selection.concat(item); + } + if (item.children && item.children.length) { + selection = selection.concat(this.getSelectionChildren(item, selection, selectionRowKeys)); + } + }); + } + return selection; + }, + toggleSelect(_index, rowKey2) { + let data = {}; + if (rowKey2) { + data = this.getDataByRowKey(rowKey2); + } else { + for (let i in this.objData) { + if (parseInt(i) === _index) { + data = this.objData[i]; + break; + } + } + } + const status = !data._isChecked; + data._isChecked = status; + const selection = this.getSelection(); + const selectedData = rowKey2 ? this.getBaseDataByRowKey(rowKey2, this.data) : this.data[_index]; + this.$emit(status ? "on-select" : "on-select-cancel", selection, JSON.parse(JSON.stringify(selectedData))); + this.$emit("on-selection-change", selection); + }, + toggleExpand(_index) { + let data = {}; + for (let i in this.objData) { + if (parseInt(i) === _index) { + data = this.objData[i]; + break; + } + } + const status = !data._isExpanded; + this.objData[_index]._isExpanded = status; + this.$emit("on-expand", JSON.parse(JSON.stringify(this.cloneData[_index])), status); + if (this.height || this.maxHeight) { + nextTick(() => this.fixedBody()); + } + }, + toggleTree(rowKey2) { + const data = this.getDataByRowKey(rowKey2); + if ("_loading" in data && data._loading) + return; + if ("_loading" in data && !data._loading && data.children.length === 0) { + const sourceData = this.getBaseDataByRowKey(rowKey2, this.data); + sourceData._loading = true; + this.loadData(sourceData, (children) => { + sourceData._loading = false; + if (children.length) { + sourceData.children = children; + nextTick(() => { + const newData = this.getDataByRowKey(rowKey2); + newData._isShowChildren = !newData._isShowChildren; + this.updateDataStatus(rowKey2, "_showChildren", newData._isShowChildren); + }); + } + }); + return; + } + data._isShowChildren = !data._isShowChildren; + if (this.updateShowChildren) + this.updateDataStatus(rowKey2, "_showChildren", data._isShowChildren); + this.$emit("on-expand-tree", rowKey2, data._isShowChildren); + }, + updateDataStatus(rowKey2, key2, value) { + const data = this.getBaseDataByRowKey(rowKey2, this.data); + data[key2] = value; + }, + getDataByRowKey(rowKey2, objData = this.objData) { + let data = null; + for (let i in objData) { + const thisData = objData[i]; + if (thisData._rowKey === rowKey2) { + data = thisData; + break; + } else if (thisData.children && thisData.children.length) { + data = this.getChildrenByRowKey(rowKey2, thisData); + if (data) { + break; + } + } + } + return data; + }, + getChildrenByRowKey(rowKey2, objData) { + let data = null; + if (objData.children && objData.children.length) { + for (let i = 0; i < objData.children.length; i++) { + const item = objData.children[i]; + if (item._rowKey === rowKey2) { + data = item; + break; + } else if (item.children && item.children.length) { + data = this.getChildrenByRowKey(rowKey2, item); + if (data) { + break; + } + } + } + } + return data; + }, + getBaseDataByRowKey(rowKey2, sourceData = this.cloneData) { + let data = null; + for (let i = 0; i < sourceData.length; i++) { + const thisData = sourceData[i]; + if (thisData[this.rowKey] === rowKey2) { + data = thisData; + break; + } else if (thisData.children && thisData.children.length) { + data = this.getChildrenDataByRowKey(rowKey2, thisData); + if (data && data[this.rowKey] === rowKey2) + return data; + } + } + return data; + }, + getChildrenDataByRowKey(rowKey2, cloneData) { + let data = null; + if (cloneData.children && cloneData.children.length) { + for (let i = 0; i < cloneData.children.length; i++) { + const item = cloneData.children[i]; + if (item[this.rowKey] === rowKey2) { + data = item; + break; + } else if (item.children && item.children.length) { + data = this.getChildrenDataByRowKey(rowKey2, item); + if (data) { + break; + } + } + } + } + return data; + }, + selectAll(status) { + for (const data of this.rebuildData) { + const objData = this.objData[data._index]; + if (!objData._isDisabled) { + objData._isChecked = status; + } + if (data.children && data.children.length) { + this.selectAllChildren(objData, status); + } + } + const selection = this.getSelection(); + if (status) { + this.$emit("on-select-all", selection); + } else { + this.$emit("on-select-all-cancel", selection); + } + this.$emit("on-selection-change", selection); + }, + selectAllChildren(data, status) { + if (data.children && data.children.length) { + data.children.map((item) => { + if (!item._isDisabled) { + item._isChecked = status; + } + if (item.children && item.children.length) { + this.selectAllChildren(item, status); + } + }); + } + }, + fixedHeader() { + if (this.height || this.maxHeight) { + nextTick(() => { + const titleHeight = parseInt(getStyle(this.$refs.title, "height")) || 0; + const headerHeight = parseInt(getStyle(this.$refs.header, "height")) || 0; + const footerHeight = parseInt(getStyle(this.$refs.footer, "height")) || 0; + if (this.height) { + this.bodyHeight = this.height - titleHeight - headerHeight - footerHeight; + } else if (this.maxHeight) { + this.bodyHeight = this.maxHeight - titleHeight - headerHeight - footerHeight; + } + nextTick(() => this.fixedBody()); + }); + } else { + this.bodyHeight = 0; + nextTick(() => this.fixedBody()); + } + }, + fixedBody() { + if (this.$refs.header) { + this.headerWidth = this.$refs.header.children[0].offsetWidth; + this.headerHeight = this.$refs.header.children[0].offsetHeight; + } + if (!this.$refs.tbody || !this.data || this.data.length === 0) { + this.showVerticalScrollBar = false; + } else { + let bodyContentEl = this.$refs.tbody.$el; + let bodyEl = bodyContentEl.parentElement; + let bodyContentHeight = bodyContentEl.offsetHeight; + let bodyHeight = bodyEl.offsetHeight; + this.showHorizontalScrollBar = bodyEl.offsetWidth < bodyContentEl.offsetWidth + (this.showVerticalScrollBar ? this.scrollBarWidth : 0); + this.showVerticalScrollBar = this.bodyHeight ? bodyHeight - (this.showHorizontalScrollBar ? this.scrollBarWidth : 0) < bodyContentHeight : false; + if (this.showVerticalScrollBar) { + bodyEl.classList.add(this.prefixCls + "-overflowY"); + } else { + bodyEl.classList.remove(this.prefixCls + "-overflowY"); + } + if (this.showHorizontalScrollBar) { + bodyEl.classList.add(this.prefixCls + "-overflowX"); + } else { + bodyEl.classList.remove(this.prefixCls + "-overflowX"); + } + } + }, + hideColumnFilter() { + this.cloneColumns.forEach((col) => col._filterVisible = false); + }, + handleBodyScroll(event) { + this.scrollOnTheLeft = event.target.scrollLeft === 0; + this.scrollOnTheRight = event.target.scrollWidth === event.target.scrollLeft + event.target.clientWidth; + if (this.showHeader) + this.$refs.header.scrollLeft = event.target.scrollLeft; + if (this.isLeftFixed) + this.$refs.fixedBody.scrollTop = event.target.scrollTop; + if (this.isRightFixed) + this.$refs.fixedRightBody.scrollTop = event.target.scrollTop; + if (this.showSummary && this.$refs.summary) + this.$refs.summary.$el.scrollLeft = event.target.scrollLeft; + this.hideColumnFilter(); + }, + handleFixedMousewheel(event) { + let deltaY = event.deltaY; + if (!deltaY && event.detail) { + deltaY = event.detail * 40; + } + if (!deltaY && event.wheelDeltaY) { + deltaY = -event.wheelDeltaY; + } + if (!deltaY && event.wheelDelta) { + deltaY = -event.wheelDelta; + } + if (!deltaY) + return; + const body = this.$refs.body; + const currentScrollTop = body.scrollTop; + if (deltaY < 0 && currentScrollTop !== 0) { + event.preventDefault(); + } + if (deltaY > 0 && body.scrollHeight - body.clientHeight > currentScrollTop) { + event.preventDefault(); + } + let step = 0; + let timeId = setInterval(() => { + step += 5; + if (deltaY > 0) { + body.scrollTop += 2; + } else { + body.scrollTop -= 2; + } + if (step >= Math.abs(deltaY)) { + clearInterval(timeId); + } + }, 5); + }, + handleMouseWheel(event) { + const deltaX = event.deltaX; + const $body = this.$refs.body; + if (deltaX > 0) { + $body.scrollLeft = $body.scrollLeft + 10; + } else { + $body.scrollLeft = $body.scrollLeft - 10; + } + }, + sortData(data, type2, index2) { + const key2 = this.cloneColumns[index2].key; + data.sort((a, b) => { + if (this.cloneColumns[index2].sortMethod) { + return this.cloneColumns[index2].sortMethod(a[key2], b[key2], type2); + } else { + if (type2 === "asc") { + return a[key2] > b[key2] ? 1 : -1; + } else if (type2 === "desc") { + return a[key2] < b[key2] ? 1 : -1; + } + } + }); + for (let i = 0; i < data.length; i++) { + if (data[i].children && data[i].children.length) { + data[i].children = this.sortData(data[i].children, type2, index2); + } + } + return data; + }, + handleSort(_index, type2) { + const index2 = this.GetOriginalIndex(_index); + this.cloneColumns.forEach((col) => col._sortType = "normal"); + const key2 = this.cloneColumns[index2].key; + if (this.cloneColumns[index2].sortable !== "custom") { + if (type2 === "normal") { + this.rebuildData = this.makeDataWithFilter(); + } else { + this.rebuildData = this.sortData(this.rebuildData, type2, index2); + } + } + this.cloneColumns[index2]._sortType = type2; + this.$emit("on-sort-change", { + column: JSON.parse(JSON.stringify(this.allColumns[this.cloneColumns[index2]._index])), + key: key2, + order: type2 + }); + }, + handleFilterHide(index2) { + if (!this.cloneColumns[index2]._isFiltered) + this.cloneColumns[index2]._filterChecked = []; + }, + filterData(data, column) { + return data.filter((row) => { + if (typeof column.filterRemote === "function") + return true; + let status = !column._filterChecked.length; + for (let i = 0; i < column._filterChecked.length; i++) { + status = column.filterMethod(column._filterChecked[i], row); + if (status) + break; + } + return status; + }); + }, + filterOtherData(data, index2) { + let column = this.cloneColumns[index2]; + if (typeof column.filterRemote === "function") { + column.filterRemote.call(this.$parent, column._filterChecked, column.key, column); + } + this.cloneColumns.forEach((col, colIndex) => { + if (colIndex !== index2) { + data = this.filterData(data, col); + } + }); + return data; + }, + handleFilter(index2) { + const column = this.cloneColumns[index2]; + let filterData = this.makeDataWithSort(); + filterData = this.filterOtherData(filterData, index2); + this.rebuildData = this.filterData(filterData, column); + this.cloneColumns[index2]._isFiltered = true; + this.cloneColumns[index2]._filterVisible = false; + this.$emit("on-filter-change", column); + }, + GetOriginalIndex(_index) { + return this.cloneColumns.findIndex((item) => item._index === _index); + }, + handleFilterSelect(_index, value) { + const index2 = this.GetOriginalIndex(_index); + this.cloneColumns[index2]._filterChecked = [value]; + this.handleFilter(index2); + }, + handleFilterReset(_index) { + const index2 = this.GetOriginalIndex(_index); + this.cloneColumns[index2]._isFiltered = false; + this.cloneColumns[index2]._filterVisible = false; + this.cloneColumns[index2]._filterChecked = []; + let filterData = this.makeDataWithSort(); + filterData = this.filterOtherData(filterData, index2); + this.rebuildData = filterData; + this.$emit("on-filter-change", this.cloneColumns[index2]); + }, + makeData() { + let data = deepCopy(this.data); + data.forEach((row, index2) => { + row._index = index2; + row._rowKey = typeof this.rowKey === "string" ? row[this.rowKey] : rowKey++; + if (row.children && row.children.length) { + row.children = this.makeChildrenData(row); + } + }); + return data; + }, + makeChildrenData(data) { + if (data.children && data.children.length) { + return data.children.map((row, index2) => { + const newRow = deepCopy(row); + newRow._index = index2; + newRow._rowKey = typeof this.rowKey === "string" ? newRow[this.rowKey] : rowKey++; + if (newRow.children && newRow.children.length) { + newRow.children = this.makeChildrenData(newRow); + } + return newRow; + }); + } else { + return data; + } + }, + makeDataWithSort() { + let data = this.makeData(); + let sortType = "normal"; + let sortIndex = -1; + let isCustom = false; + for (let i = 0; i < this.cloneColumns.length; i++) { + if (this.cloneColumns[i]._sortType !== "normal") { + sortType = this.cloneColumns[i]._sortType; + sortIndex = i; + isCustom = this.cloneColumns[i].sortable === "custom"; + break; + } + } + if (sortType !== "normal" && !isCustom) + data = this.sortData(data, sortType, sortIndex); + return data; + }, + makeDataWithFilter() { + let data = this.makeData(); + this.cloneColumns.forEach((col) => data = this.filterData(data, col)); + return data; + }, + makeDataWithSortAndFilter() { + let data = this.makeDataWithSort(); + this.cloneColumns.forEach((col) => data = this.filterData(data, col)); + return data; + }, + makeObjBaseData(row) { + const newRow = deepCopy(row); + if (typeof this.rowKey === "string") { + newRow._rowKey = newRow[this.rowKey]; + } + newRow._isHover = false; + if (newRow._disabled) { + newRow._isDisabled = newRow._disabled; + } else { + newRow._isDisabled = false; + } + if (newRow._checked) { + newRow._isChecked = newRow._checked; + } else { + newRow._isChecked = false; + } + if (newRow._expanded) { + newRow._isExpanded = newRow._expanded; + } else { + newRow._isExpanded = false; + } + if (newRow._highlight) { + newRow._isHighlight = newRow._highlight; + } else { + newRow._isHighlight = false; + } + return newRow; + }, + makeObjData() { + let data = {}; + this.data.forEach((row, index2) => { + const newRow = this.makeObjBaseData(row); + if (newRow.children && newRow.children.length) { + if (newRow._showChildren) { + newRow._isShowChildren = newRow._showChildren; + } else { + newRow._isShowChildren = false; + } + newRow.children = this.makeChildrenObjData(newRow); + } + data[index2] = newRow; + }); + return data; + }, + makeChildrenObjData(data) { + if (data.children && data.children.length) { + return data.children.map((row) => { + const newRow = this.makeObjBaseData(row); + if (newRow._showChildren) { + newRow._isShowChildren = newRow._showChildren; + } else { + newRow._isShowChildren = false; + } + if (newRow.children && newRow.children.length) { + newRow.children = this.makeChildrenObjData(newRow); + } + return newRow; + }); + } else { + return data; + } + }, + makeColumnsId(columns) { + const cloneColumns = deepCopy(columns); + return cloneColumns.map((item) => { + if ("children" in item) + this.makeColumnsId(item.children); + item.__id = getRandomStr(6); + return item; + }); + }, + makeColumns(cols) { + let columns = deepCopy(getAllColumns(cols)); + let left = []; + let right = []; + let center = []; + columns.forEach((column, index2) => { + column._index = index2; + column._columnKey = columnKey++; + column.width = parseInt(column.width); + column._width = column.width ? column.width : ""; + column._sortType = "normal"; + column._filterVisible = false; + column._isFiltered = false; + column._filterChecked = []; + if ("filterMultiple" in column) { + column._filterMultiple = column.filterMultiple; + } else { + column._filterMultiple = true; + } + if ("filteredValue" in column) { + column._filterChecked = column.filteredValue; + column._isFiltered = true; + } + if ("sortType" in column) { + column._sortType = column.sortType; + } + if (column.fixed && column.fixed === "left") { + left.push(column); + } else if (column.fixed && column.fixed === "right") { + right.push(column); + } else { + center.push(column); + } + }); + return left.concat(center).concat(right); + }, + makeColumnRows(fixedType, cols) { + return convertToRows(cols, fixedType); + }, + exportCsv(params) { + if (params.filename) { + if (params.filename.indexOf(".csv") === -1) { + params.filename += ".csv"; + } + } else { + params.filename = "table.csv"; + } + let columns = []; + let datas = []; + if (params.columns && params.data) { + columns = params.columns; + datas = params.data; + } else { + columns = this.allColumns; + if (!("original" in params)) + params.original = true; + datas = params.original ? this.data : this.rebuildData; + } + let noHeader = false; + if ("noHeader" in params) + noHeader = params.noHeader; + const data = csv$1(columns, datas, params, noHeader); + if (params.callback) + params.callback(data); + else + csv.download(params.filename, data); + }, + dragAndDrop(a, b) { + this.$emit("on-drag-drop", a, b); + }, + handleClickContextMenuOutside() { + this.contextMenuVisible = false; + }, + handleOnVisibleChange(val) { + if (val) { + nextTick(() => { + this.handleResize(); + }); + } + }, + addTable(instance) { + const target = this[instance]; + if (!target) + return; + if (!target.tableList) + target.tableList = []; + target.tableList.push({ + id: this.id, + table: this + }); + }, + removeTable(instance) { + const target = this[instance]; + if (!target || !target.tableList) + return; + const index2 = target.tableList.findIndex((item) => item.id === this.id); + target.tableList.splice(index2, 1); + }, + closeContextMenu() { + this.handleClickContextMenuOutside(); + }, + handleClickDropdownItem() { + if (this.autoCloseContextmenu) + this.closeContextMenu(); + } + }, + created() { + if (!this.context) + this.currentContext = this.$parent; + this.showSlotHeader = this.$slots.header !== void 0; + this.showSlotFooter = this.$slots.footer !== void 0; + this.rebuildData = this.makeDataWithSortAndFilter(); + }, + mounted() { + this.addTable("TabsInstance"); + this.addTable("ModalInstance"); + this.addTable("DrawerInstance"); + this.handleResize(); + nextTick(() => this.ready = true); + on(window, "resize", this.handleResize); + this.observer = elementResizeDetector(); + this.observer.listenTo(this.$el, this.handleResize); + }, + beforeUnmount() { + this.removeTable("TabsInstance"); + this.removeTable("ModalInstance"); + this.removeTable("DrawerInstance"); + off(window, "resize", this.handleResize); + this.observer.removeAllListeners(this.$el); + this.observer.uninstall(this.$el); + this.observer = null; + }, + watch: { + data: { + handler() { + const oldDataLen = this.rebuildData.length; + this.objData = this.makeObjData(); + this.rebuildData = this.makeDataWithSortAndFilter(); + this.handleResize(); + if (!oldDataLen) { + this.fixedHeader(); + } + setTimeout(() => { + this.cloneData = deepCopy(this.data); + }, 0); + }, + deep: true + }, + columns: { + handler() { + const colsWithId = this.makeColumnsId(this.columns); + this.allColumns = getAllColumns(colsWithId); + this.cloneColumns = this.makeColumns(colsWithId); + this.columnRows = this.makeColumnRows(false, colsWithId); + this.leftFixedColumnRows = this.makeColumnRows("left", colsWithId); + this.rightFixedColumnRows = this.makeColumnRows("right", colsWithId); + this.rebuildData = this.makeDataWithSortAndFilter(); + this.handleResize(); + }, + deep: true + }, + height() { + this.handleResize(); + }, + maxHeight() { + this.handleResize(); + }, + showHorizontalScrollBar() { + this.handleResize(); + }, + showVerticalScrollBar() { + this.handleResize(); + } + } +}; +const _hoisted_1$a = { + cellspacing: "0", + cellpadding: "0", + border: "0" +}; +const _hoisted_2$6 = ["innerHTML"]; +const _hoisted_3$4 = ["innerHTML"]; +const _hoisted_4$2 = { + class: "ivu-table-resize-line", + ref: "resizeLine" +}; +function _sfc_render$f(_ctx, _cache, $props, $setup, $data, $options) { + const _component_table_head = resolveComponent("table-head"); + const _component_table_body = resolveComponent("table-body"); + const _component_table_summary = resolveComponent("table-summary"); + const _component_DropdownMenu = resolveComponent("DropdownMenu"); + const _component_Dropdown = resolveComponent("Dropdown"); + const _component_Spin = resolveComponent("Spin"); + return openBlock(), createElementBlock("div", { + class: normalizeClass($options.wrapClasses), + style: normalizeStyle($options.styles), + ref: "tableWrap" + }, [ + createElementVNode("div", { + class: normalizeClass($options.classes) + }, [ + $data.showSlotHeader ? (openBlock(), createElementBlock("div", { + key: 0, + class: normalizeClass([$data.prefixCls + "-title"]), + ref: "title" + }, [ + renderSlot(_ctx.$slots, "header") + ], 2)) : createCommentVNode("", true), + $props.showHeader ? (openBlock(), createElementBlock("div", { + key: 1, + class: normalizeClass([$data.prefixCls + "-header"]), + ref: "header", + onMousewheel: _cache[0] || (_cache[0] = (...args) => $options.handleMouseWheel && $options.handleMouseWheel(...args)) + }, [ + createVNode(_component_table_head, { + "prefix-cls": $data.prefixCls, + styleObject: $options.tableHeaderStyle, + columns: $data.cloneColumns, + "column-rows": $data.columnRows, + "obj-data": $data.objData, + "columns-width": $data.columnsWidth, + data: $data.rebuildData + }, null, 8, ["prefix-cls", "styleObject", "columns", "column-rows", "obj-data", "columns-width", "data"]) + ], 34)) : createCommentVNode("", true), + withDirectives(createElementVNode("div", { + class: normalizeClass([$data.prefixCls + "-body"]), + style: normalizeStyle($options.bodyStyle), + ref: "body", + onScroll: _cache[1] || (_cache[1] = (...args) => $options.handleBodyScroll && $options.handleBodyScroll(...args)) + }, [ + createVNode(_component_table_body, { + ref: "tbody", + draggable: $props.draggable, + "prefix-cls": $data.prefixCls, + styleObject: $options.tableStyle, + columns: $data.cloneColumns, + data: $data.rebuildData, + "row-key": $props.rowKey, + "columns-width": $data.columnsWidth, + "obj-data": $data.objData + }, null, 8, ["draggable", "prefix-cls", "styleObject", "columns", "data", "row-key", "columns-width", "obj-data"]) + ], 38), [ + [vShow, !(!!$options.localeNoDataText && (!$props.data || $props.data.length === 0) || !!$options.localeNoFilteredDataText && (!$data.rebuildData || $data.rebuildData.length === 0))] + ]), + $props.showSummary && ($props.data && $props.data.length) ? (openBlock(), createBlock(_component_table_summary, { + key: 2, + ref: "summary", + "prefix-cls": $data.prefixCls, + styleObject: $options.tableStyle, + columns: $data.cloneColumns, + data: $options.summaryData, + "columns-width": $data.columnsWidth + }, null, 8, ["prefix-cls", "styleObject", "columns", "data", "columns-width"])) : createCommentVNode("", true), + withDirectives(createElementVNode("div", { + class: normalizeClass([$data.prefixCls + "-tip"]), + style: normalizeStyle($options.bodyStyle), + onScroll: _cache[2] || (_cache[2] = (...args) => $options.handleBodyScroll && $options.handleBodyScroll(...args)) + }, [ + createElementVNode("table", _hoisted_1$a, [ + createElementVNode("tbody", null, [ + createElementVNode("tr", null, [ + createElementVNode("td", { + style: normalizeStyle({ "height": $options.bodyStyle.height, "width": `${$data.headerWidth}px` }) + }, [ + !$props.data || $props.data.length === 0 ? (openBlock(), createElementBlock("span", { + key: 0, + innerHTML: $options.localeNoDataText + }, null, 8, _hoisted_2$6)) : (openBlock(), createElementBlock("span", { + key: 1, + innerHTML: $options.localeNoFilteredDataText + }, null, 8, _hoisted_3$4)) + ], 4) + ]) + ]) + ]) + ], 38), [ + [vShow, !!$options.localeNoDataText && (!$props.data || $props.data.length === 0) || !!$options.localeNoFilteredDataText && (!$data.rebuildData || $data.rebuildData.length === 0)] + ]), + $options.isLeftFixed ? (openBlock(), createElementBlock("div", { + key: 3, + class: normalizeClass($options.fixedTableClasses), + style: normalizeStyle($options.fixedTableStyle) + }, [ + $props.showHeader ? (openBlock(), createElementBlock("div", { + key: 0, + class: normalizeClass($options.fixedHeaderClasses) + }, [ + createVNode(_component_table_head, { + fixed: "left", + "prefix-cls": $data.prefixCls, + styleObject: $options.fixedTableStyle, + columns: $options.leftFixedColumns, + "column-rows": $data.columnRows, + "fixed-column-rows": $data.leftFixedColumnRows, + "obj-data": $data.objData, + "columns-width": $data.columnsWidth, + data: $data.rebuildData + }, null, 8, ["prefix-cls", "styleObject", "columns", "column-rows", "fixed-column-rows", "obj-data", "columns-width", "data"]) + ], 2)) : createCommentVNode("", true), + createElementVNode("div", { + class: normalizeClass([$data.prefixCls + "-fixed-body"]), + style: normalizeStyle($options.fixedBodyStyle), + ref: "fixedBody", + onMousewheel: _cache[3] || (_cache[3] = (...args) => $options.handleFixedMousewheel && $options.handleFixedMousewheel(...args)), + "on:DOMMouseScroll": _cache[4] || (_cache[4] = (...args) => $options.handleFixedMousewheel && $options.handleFixedMousewheel(...args)) + }, [ + createVNode(_component_table_body, { + fixed: "left", + draggable: $props.draggable, + "prefix-cls": $data.prefixCls, + styleObject: $options.fixedTableStyle, + columns: $options.leftFixedColumns, + data: $data.rebuildData, + "row-key": $props.rowKey, + "columns-width": $data.columnsWidth, + "obj-data": $data.objData + }, null, 8, ["draggable", "prefix-cls", "styleObject", "columns", "data", "row-key", "columns-width", "obj-data"]) + ], 38), + $props.showSummary && ($props.data && $props.data.length) ? (openBlock(), createBlock(_component_table_summary, { + key: 1, + fixed: "left", + "prefix-cls": $data.prefixCls, + styleObject: $options.fixedTableStyle, + columns: $options.leftFixedColumns, + data: $options.summaryData, + "columns-width": $data.columnsWidth, + style: normalizeStyle({ "margin-top": $data.showHorizontalScrollBar ? $data.scrollBarWidth + "px" : 0 }) + }, null, 8, ["prefix-cls", "styleObject", "columns", "data", "columns-width", "style"])) : createCommentVNode("", true) + ], 6)) : createCommentVNode("", true), + $options.isRightFixed ? (openBlock(), createElementBlock("div", { + key: 4, + class: normalizeClass($options.fixedRightTableClasses), + style: normalizeStyle($options.fixedRightTableStyle) + }, [ + $props.showHeader ? (openBlock(), createElementBlock("div", { + key: 0, + class: normalizeClass($options.fixedHeaderClasses) + }, [ + createVNode(_component_table_head, { + fixed: "right", + "prefix-cls": $data.prefixCls, + styleObject: $options.fixedRightTableStyle, + columns: $options.rightFixedColumns, + "column-rows": $data.columnRows, + "fixed-column-rows": $data.rightFixedColumnRows, + "obj-data": $data.objData, + "columns-width": $data.columnsWidth, + data: $data.rebuildData + }, null, 8, ["prefix-cls", "styleObject", "columns", "column-rows", "fixed-column-rows", "obj-data", "columns-width", "data"]) + ], 2)) : createCommentVNode("", true), + createElementVNode("div", { + class: normalizeClass([$data.prefixCls + "-fixed-body"]), + style: normalizeStyle($options.fixedBodyStyle), + ref: "fixedRightBody", + onMousewheel: _cache[5] || (_cache[5] = (...args) => $options.handleFixedMousewheel && $options.handleFixedMousewheel(...args)), + "on:DOMMouseScroll": _cache[6] || (_cache[6] = (...args) => $options.handleFixedMousewheel && $options.handleFixedMousewheel(...args)) + }, [ + createVNode(_component_table_body, { + fixed: "right", + draggable: $props.draggable, + "prefix-cls": $data.prefixCls, + styleObject: $options.fixedRightTableStyle, + columns: $options.rightFixedColumns, + data: $data.rebuildData, + "row-key": $props.rowKey, + "columns-width": $data.columnsWidth, + "obj-data": $data.objData + }, null, 8, ["draggable", "prefix-cls", "styleObject", "columns", "data", "row-key", "columns-width", "obj-data"]) + ], 38), + $props.showSummary && ($props.data && $props.data.length) ? (openBlock(), createBlock(_component_table_summary, { + key: 1, + fixed: "right", + "prefix-cls": $data.prefixCls, + styleObject: $options.fixedRightTableStyle, + columns: $options.rightFixedColumns, + data: $options.summaryData, + "columns-width": $data.columnsWidth, + style: normalizeStyle({ "margin-top": $data.showHorizontalScrollBar ? $data.scrollBarWidth + "px" : 0 }) + }, null, 8, ["prefix-cls", "styleObject", "columns", "data", "columns-width", "style"])) : createCommentVNode("", true) + ], 6)) : createCommentVNode("", true), + $options.isRightFixed ? (openBlock(), createElementBlock("div", { + key: 5, + class: normalizeClass([$data.prefixCls + "-fixed-right-header"]), + style: normalizeStyle($options.fixedRightHeaderStyle) + }, null, 6)) : createCommentVNode("", true), + $data.showSlotFooter ? (openBlock(), createElementBlock("div", { + key: 6, + class: normalizeClass([$data.prefixCls + "-footer"]), + ref: "footer" + }, [ + renderSlot(_ctx.$slots, "footer") + ], 2)) : createCommentVNode("", true) + ], 2), + withDirectives(createElementVNode("div", _hoisted_4$2, null, 512), [ + [vShow, $data.showResizeLine] + ]), + $props.showContextMenu ? (openBlock(), createElementBlock("div", { + key: 0, + class: "ivu-table-context-menu", + style: normalizeStyle($data.contextMenuStyles) + }, [ + createVNode(_component_Dropdown, { + trigger: "custom", + visible: $data.contextMenuVisible, + transfer: "", + onOnClick: $options.handleClickDropdownItem, + onOnClickoutside: $options.handleClickContextMenuOutside + }, { + list: withCtx(() => [ + createVNode(_component_DropdownMenu, null, { + default: withCtx(() => [ + renderSlot(_ctx.$slots, "contextMenu") + ]), + _: 3 + }) + ]), + _: 3 + }, 8, ["visible", "onOnClick", "onOnClickoutside"]) + ], 4)) : createCommentVNode("", true), + createVNode(_component_Spin, { + fix: "", + size: "large", + show: $props.loading + }, { + default: withCtx(() => [ + renderSlot(_ctx.$slots, "loading") + ]), + _: 3 + }, 8, ["show"]) + ], 6); +} +var Table = /* @__PURE__ */ _export_sfc(_sfc_main$j, [["render", _sfc_render$f]]); +const _sfc_main$i = { + name: "TablePaste", + components: { Row, Col, Input, Table }, + emits: ["on-change", "on-error", "on-success"], + props: { + value: { + type: String + }, + inputProps: { + type: Object, + default() { + return {}; + } + }, + tableProps: { + type: Object, + default() { + return {}; + } + }, + hideTable: { + type: Boolean, + default: false + } + }, + data() { + return { + content: "", + tableColumns: [], + tableData: [] + }; + }, + watch: { + value: { + handler(content) { + this.handleResolveContent(content); + }, + immediate: true + } + }, + methods: { + handleContentChange(e) { + const content = e.target.value.trim(); + this.$emit("on-change", content); + this.handleResolveContent(content); + }, + handleResolveContent(content) { + let rows = []; + if (content !== "" && content !== void 0) { + rows = content.split(/[\n\u0085\u2028\u2029]|\r\n?/g).map((row) => { + return row.split(" "); + }); + } + const errorIndex = this.handleGetErrorIndex(rows); + const tableData = this.contentToTable(rows); + this.tableColumns = tableData.columns; + this.tableData = tableData.data; + if (errorIndex.length) { + this.$emit("on-error", tableData, errorIndex); + } else { + this.$emit("on-success", tableData); + } + }, + handleGetErrorIndex(rows) { + const array3 = deepCopy(rows); + const errorIndex = []; + if (array3.length) { + const colLen = array3[0].length; + array3.forEach((item, index2) => { + if (item.length !== colLen) + errorIndex.push(index2); + }); + } + return errorIndex; + }, + contentToTable(rows) { + const array3 = deepCopy(rows); + let columns = []; + let tableData = []; + if (array3.length > 1) { + let titles = array3.shift(); + columns = titles.map((item, index2) => { + return { + title: item, + key: `key${index2}` + }; + }); + tableData = array3.map((item) => { + const res = {}; + item.forEach((col, i) => { + res[`key${i}`] = col; + }); + return res; + }); + } + return { + columns, + data: tableData + }; + } + } +}; +const _hoisted_1$9 = { class: "ivu-table-paste" }; +const _hoisted_2$5 = { + key: 0, + class: "ivu-table-paste-input" +}; +const _hoisted_3$3 = { + key: 0, + class: "ivu-table-paste-input" +}; +function _sfc_render$e(_ctx, _cache, $props, $setup, $data, $options) { + const _component_Input = resolveComponent("Input"); + const _component_Col = resolveComponent("Col"); + const _component_Table = resolveComponent("Table"); + const _component_Row = resolveComponent("Row"); + return openBlock(), createElementBlock("div", _hoisted_1$9, [ + !$props.hideTable ? (openBlock(), createBlock(_component_Row, { + key: 0, + gutter: 32 + }, { + default: withCtx(() => [ + createVNode(_component_Col, { span: "12" }, { + default: withCtx(() => [ + $props.value !== void 0 || !_ctx.$slots.default ? (openBlock(), createElementBlock("div", _hoisted_2$5, [ + renderSlot(_ctx.$slots, "default", {}, () => [ + createVNode(_component_Input, mergeProps({ + modelValue: $data.content, + "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => $data.content = $event), + type: "textarea" + }, $props.inputProps, { onOnChange: $options.handleContentChange }), null, 16, ["modelValue", "onOnChange"]) + ]) + ])) : createCommentVNode("", true) + ]), + _: 3 + }), + createVNode(_component_Col, { span: "12" }, { + default: withCtx(() => [ + createVNode(_component_Table, mergeProps({ + columns: $data.tableColumns, + data: $data.tableData + }, $props.tableProps), null, 16, ["columns", "data"]) + ]), + _: 1 + }) + ]), + _: 3 + })) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [ + $props.value !== void 0 || !_ctx.$slots.default ? (openBlock(), createElementBlock("div", _hoisted_3$3, [ + renderSlot(_ctx.$slots, "default", {}, () => [ + createVNode(_component_Input, mergeProps({ + modelValue: $data.content, + "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => $data.content = $event), + type: "textarea" + }, $props.inputProps, { onOnChange: $options.handleContentChange }), null, 16, ["modelValue", "onOnChange"]) + ]) + ])) : createCommentVNode("", true) + ], 64)) + ]); +} +var TablePaste = /* @__PURE__ */ _export_sfc(_sfc_main$i, [["render", _sfc_render$e]]); +const _sfc_main$h = { + name: "TagSelect", + mixins: [mixinsForm], + components: { Tag, Icon }, + emits: ["on-change", "on-checked-all", "update:modelValue"], + provide() { + return { + TagSelectInstance: this + }; + }, + props: { + modelValue: { + type: Array, + default() { + return []; + } + }, + expandable: { + type: Boolean, + default: false + }, + hideCheckAll: { + type: Boolean, + default: false + }, + locale: { + type: Object, + default() { + return { + collapseText: "\u6536\u8D77", + expandText: "\u5C55\u5F00" + }; + } + } + }, + data() { + return { + currentValue: this.modelValue, + checkedAll: false, + expand: false, + tagSelectOptionList: [] + }; + }, + computed: { + classes() { + return { + "ivu-tag-select-with-expanded": this.expandable, + "ivu-tag-select-expanded": this.expand + }; + } + }, + watch: { + modelValue(val) { + this.currentValue = val; + this.handleUpdateTags(); + } + }, + methods: { + handleUpdateTags() { + let checkedAll = true; + const tags = this.tagSelectOptionList.map((item) => item.option); + tags.forEach((tag) => { + if (this.currentValue.indexOf(tag.name) >= 0) { + tag.checked = true; + } else { + tag.checked = false; + checkedAll = false; + } + }); + this.checkedAll = checkedAll; + }, + handleChangeTag(name2) { + const checkedNames = []; + let checkedAll = true; + const tags = this.tagSelectOptionList.map((item) => item.option); + tags.forEach((tag) => { + if (tag.checked) { + checkedNames.push(tag.name); + } else { + checkedAll = false; + } + }); + this.currentValue = checkedNames; + this.$emit("update:modelValue", checkedNames); + this.$emit("on-change", [...checkedNames], name2); + this.handleFormItemChange("change", name2); + if (name2) { + this.checkedAll = checkedAll; + } + }, + handleCheckAll(checked) { + this.checkedAll = checked; + const tags = this.tagSelectOptionList.map((item) => item.option); + tags.forEach((tag) => { + tag.checked = checked; + }); + this.handleChangeTag(); + this.$emit("on-checked-all", checked); + }, + handleToggleExpand() { + this.expand = !this.expand; + } + }, + mounted() { + this.handleUpdateTags(); + } +}; +const _hoisted_1$8 = { + key: 0, + class: "ivu-tag-select-option" +}; +const _hoisted_2$4 = { key: 0 }; +const _hoisted_3$2 = { key: 1 }; +function _sfc_render$d(_ctx, _cache, $props, $setup, $data, $options) { + const _component_Tag = resolveComponent("Tag"); + const _component_Icon = resolveComponent("Icon"); + return openBlock(), createElementBlock("div", { + class: normalizeClass(["ivu-tag-select", $options.classes]) + }, [ + !$props.hideCheckAll ? (openBlock(), createElementBlock("div", _hoisted_1$8, [ + createVNode(_component_Tag, { + checkable: "", + checked: $data.checkedAll, + onOnChange: $options.handleCheckAll, + color: "primary" + }, { + default: withCtx(() => [ + createTextVNode("\u5168\u90E8") + ]), + _: 1 + }, 8, ["checked", "onOnChange"]) + ])) : createCommentVNode("", true), + renderSlot(_ctx.$slots, "default"), + $props.expandable ? (openBlock(), createElementBlock("a", { + key: 1, + class: "ivu-tag-select-expand-btn", + onClick: _cache[0] || (_cache[0] = (...args) => $options.handleToggleExpand && $options.handleToggleExpand(...args)) + }, [ + $data.expand ? (openBlock(), createElementBlock("span", _hoisted_2$4, toDisplayString($props.locale.collapseText), 1)) : (openBlock(), createElementBlock("span", _hoisted_3$2, toDisplayString($props.locale.expandText), 1)), + $data.expand ? (openBlock(), createBlock(_component_Icon, { + key: 2, + type: "ios-arrow-up" + })) : (openBlock(), createBlock(_component_Icon, { + key: 3, + type: "ios-arrow-down" + })) + ])) : createCommentVNode("", true) + ], 2); +} +var TagSelect = /* @__PURE__ */ _export_sfc(_sfc_main$h, [["render", _sfc_render$d]]); +const _sfc_main$g = { + name: "TagSelectOption", + components: { Tag }, + inject: ["TagSelectInstance"], + props: { + name: { + type: [String, Number], + required: true + }, + tagProps: { + type: Object, + default() { + return {}; + } + }, + color: { + type: String, + default: "primary" + } + }, + data() { + return { + checked: false, + id: random(6) + }; + }, + methods: { + handleChange(checked) { + this.checked = checked; + this.TagSelectInstance.handleChangeTag(this.name); + }, + addOption() { + const target = this.TagSelectInstance; + target.tagSelectOptionList.push({ + id: this.id, + option: this + }); + }, + removeOption() { + const target = this.TagSelectInstance; + const index2 = target.tagSelectOptionList.findIndex((item) => item.id === this.id); + target.tagSelectOptionList.splice(index2, 1); + } + }, + mounted() { + this.addOption(); + }, + beforeUnmount() { + this.removeOption(); + } +}; +const _hoisted_1$7 = { class: "ivu-tag-select-option" }; +function _sfc_render$c(_ctx, _cache, $props, $setup, $data, $options) { + const _component_Tag = resolveComponent("Tag"); + return openBlock(), createElementBlock("div", _hoisted_1$7, [ + createVNode(_component_Tag, mergeProps({ + checkable: "", + checked: $data.checked, + onOnChange: $options.handleChange, + color: $props.color + }, $props.tagProps), { + default: withCtx(() => [ + renderSlot(_ctx.$slots, "default") + ]), + _: 3 + }, 16, ["checked", "onOnChange", "color"]) + ]); +} +var TagSelectOption = /* @__PURE__ */ _export_sfc(_sfc_main$g, [["render", _sfc_render$c]]); +const _sfc_main$f = { + name: "Text", + mixins: [baseProps], + render() { + return h(_sfc_main$17, { + ...this.$props, + component: "span", + ...this.commonEvents() + }, this.commonSlots()); + } +}; +const prefixCls$6 = "ivu-timeline"; +const _sfc_main$e = { + name: "Timeline", + props: { + pending: { + type: Boolean, + default: false + } + }, + computed: { + classes() { + return [ + `${prefixCls$6}`, + { + [`${prefixCls$6}-pending`]: this.pending + } + ]; + } + } +}; +function _sfc_render$b(_ctx, _cache, $props, $setup, $data, $options) { + return openBlock(), createElementBlock("ul", { + class: normalizeClass($options.classes) + }, [ + renderSlot(_ctx.$slots, "default") + ], 2); +} +var Timeline = /* @__PURE__ */ _export_sfc(_sfc_main$e, [["render", _sfc_render$b]]); +const prefixCls$5 = "ivu-timeline"; +const _sfc_main$d = { + name: "TimelineItem", + props: { + color: { + type: String, + default: "blue" + } + }, + data() { + return { + dot: false + }; + }, + mounted() { + this.dot = !!this.$refs.dot.innerHTML.length; + }, + computed: { + itemClasses() { + return `${prefixCls$5}-item`; + }, + tailClasses() { + return `${prefixCls$5}-item-tail`; + }, + headClasses() { + return [ + `${prefixCls$5}-item-head`, + { + [`${prefixCls$5}-item-head-custom`]: this.dot, + [`${prefixCls$5}-item-head-${this.color}`]: this.headColorShow + } + ]; + }, + headColorShow() { + return this.color === "blue" || this.color === "red" || this.color === "green"; + }, + customColor() { + let style2 = {}; + if (this.color) { + if (!this.headColorShow) { + style2 = { + "color": this.color, + "border-color": this.color + }; + } + } + return style2; + }, + contentClasses() { + return `${prefixCls$5}-item-content`; + } + } +}; +function _sfc_render$a(_ctx, _cache, $props, $setup, $data, $options) { + return openBlock(), createElementBlock("li", { + class: normalizeClass($options.itemClasses) + }, [ + createElementVNode("div", { + class: normalizeClass($options.tailClasses) + }, null, 2), + createElementVNode("div", { + class: normalizeClass($options.headClasses), + style: normalizeStyle($options.customColor), + ref: "dot" + }, [ + renderSlot(_ctx.$slots, "dot") + ], 6), + createElementVNode("div", { + class: normalizeClass($options.contentClasses) + }, [ + renderSlot(_ctx.$slots, "default") + ], 2) + ], 2); +} +var TimelineItem = /* @__PURE__ */ _export_sfc(_sfc_main$d, [["render", _sfc_render$a]]); +var TimePicker = { + mixins: [Picker, Options$1], + components: { TimePickerPanel, RangeTimePickerPanel }, + props: { + type: { + validator(value) { + return oneOf(value, ["time", "timerange"]); + }, + default: "time" + } + }, + computed: { + panel() { + const isRange = this.type === "timerange"; + return isRange ? "RangeTimePickerPanel" : "TimePickerPanel"; + }, + ownPickerProps() { + return { + disabledHours: this.disabledHours, + disabledMinutes: this.disabledMinutes, + disabledSeconds: this.disabledSeconds, + hideDisabledOptions: this.hideDisabledOptions + }; + } + }, + watch: { + visible(visible) { + if (visible) { + nextTick(() => { + const spinners = this.timeSpinnerList.map((item) => item.timeSpinner); + spinners.forEach((instance) => instance.updateScroll()); + }); + } + } + } +}; +const _sfc_main$c = { + name: "Title", + mixins: [baseProps], + props: { + level: { + type: Number, + validator(value) { + return oneOf(value, [1, 2, 3, 4, 5, 6]); + }, + default: 1 + } + }, + render() { + return h(_sfc_main$17, { + ...this.$props, + component: `h${this.level}`, + ...this.commonEvents() + }, this.commonSlots()); + } +}; +const _sfc_main$b = { + name: "Search", + components: { Input }, + emits: ["on-query-change", "on-query-clear"], + props: { + prefixCls: String, + placeholder: String, + query: String + }, + data() { + return { + currentQuery: this.query + }; + }, + watch: { + query(val) { + this.currentQuery = val; + }, + currentQuery(val) { + this.$emit("on-query-change", val); + } + }, + computed: { + icon() { + return this.query === "" ? "ios-search" : "ios-close-circle"; + } + }, + methods: { + handleClick() { + if (this.currentQuery === "") + return; + this.currentQuery = ""; + this.$emit("on-query-clear"); + } + } +}; +function _sfc_render$9(_ctx, _cache, $props, $setup, $data, $options) { + const _component_Input = resolveComponent("Input"); + return openBlock(), createElementBlock("div", { + class: normalizeClass($props.prefixCls) + }, [ + createVNode(_component_Input, { + modelValue: $data.currentQuery, + "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => $data.currentQuery = $event), + size: "small", + icon: $options.icon, + placeholder: $props.placeholder, + onOnClick: $options.handleClick + }, null, 8, ["modelValue", "icon", "placeholder", "onOnClick"]) + ], 2); +} +var Search = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["render", _sfc_render$9]]); +const _sfc_main$a = { + name: "TransferList", + components: { Search, Checkbox }, + inject: ["TransferInstance"], + emits: ["on-checked-keys-change"], + props: { + prefixCls: String, + data: Array, + renderFormat: Function, + checkedKeys: Array, + listStyle: Object, + title: [String, Number], + filterable: Boolean, + filterPlaceholder: String, + filterMethod: Function, + notFoundText: String, + validKeysCount: Number + }, + data() { + return { + showItems: [], + query: "", + showFooter: true + }; + }, + watch: { + data() { + this.updateFilteredData(); + } + }, + computed: { + classes() { + return [ + `${this.prefixCls}`, + { + [`${this.prefixCls}-with-footer`]: this.showFooter + } + ]; + }, + bodyClasses() { + return [ + `${this.prefixCls}-body`, + { + [`${this.prefixCls}-body-with-search`]: this.filterable, + [`${this.prefixCls}-body-with-footer`]: this.showFooter + } + ]; + }, + count() { + const validKeysCount = this.validKeysCount; + return (validKeysCount > 0 ? `${validKeysCount}/` : "") + `${this.data.length}`; + }, + checkedAll() { + return this.filterData.filter((data) => !data.disabled).length === this.validKeysCount && this.validKeysCount !== 0; + }, + checkedAllDisabled() { + return this.filterData.filter((data) => !data.disabled).length <= 0; + }, + filterData() { + return this.showItems.filter((item) => this.filterMethod(item, this.query)); + } + }, + methods: { + itemClasses(item) { + return [ + `${this.prefixCls}-content-item`, + { + [`${this.prefixCls}-content-item-disabled`]: item.disabled + } + ]; + }, + showLabel(item) { + return this.renderFormat(item); + }, + isCheck(item) { + return this.checkedKeys.some((key2) => key2 === item.key); + }, + select(item) { + if (item.disabled) + return; + const index2 = this.checkedKeys.indexOf(item.key); + index2 > -1 ? this.checkedKeys.splice(index2, 1) : this.checkedKeys.push(item.key); + this.TransferInstance.handleCheckedKeys(); + }, + updateFilteredData() { + this.showItems = this.data; + }, + toggleSelectAll(status) { + const keys = status ? this.filterData.filter((data) => !data.disabled || this.checkedKeys.indexOf(data.key) > -1).map((data) => data.key) : this.filterData.filter((data) => data.disabled && this.checkedKeys.indexOf(data.key) > -1).map((data) => data.key); + this.$emit("on-checked-keys-change", keys); + }, + handleQueryClear() { + this.query = ""; + }, + handleQueryChange(val) { + this.query = val; + } + }, + created() { + this.updateFilteredData(); + }, + mounted() { + this.showFooter = this.$slots.default !== void 0; + } +}; +const _hoisted_1$6 = ["onClick"]; +const _hoisted_2$3 = ["innerHTML"]; +function _sfc_render$8(_ctx, _cache, $props, $setup, $data, $options) { + const _component_Checkbox = resolveComponent("Checkbox"); + const _component_Search = resolveComponent("Search"); + return openBlock(), createElementBlock("div", { + class: normalizeClass($options.classes), + style: normalizeStyle($props.listStyle) + }, [ + createElementVNode("div", { + class: normalizeClass($props.prefixCls + "-header") + }, [ + createVNode(_component_Checkbox, { + modelValue: $options.checkedAll, + disabled: $options.checkedAllDisabled, + "onUpdate:modelValue": $options.toggleSelectAll + }, null, 8, ["modelValue", "disabled", "onUpdate:modelValue"]), + createElementVNode("span", { + class: normalizeClass($props.prefixCls + "-header-title"), + onClick: _cache[0] || (_cache[0] = ($event) => $options.toggleSelectAll(!$options.checkedAll)) + }, toDisplayString($props.title), 3), + createElementVNode("span", { + class: normalizeClass($props.prefixCls + "-header-count") + }, toDisplayString($options.count), 3) + ], 2), + createElementVNode("div", { + class: normalizeClass($options.bodyClasses) + }, [ + $props.filterable ? (openBlock(), createElementBlock("div", { + key: 0, + class: normalizeClass($props.prefixCls + "-body-search-wrapper") + }, [ + createVNode(_component_Search, { + "prefix-cls": $props.prefixCls + "-search", + query: $data.query, + onOnQueryClear: $options.handleQueryClear, + onOnQueryChange: $options.handleQueryChange, + placeholder: $props.filterPlaceholder + }, null, 8, ["prefix-cls", "query", "onOnQueryClear", "onOnQueryChange", "placeholder"]) + ], 2)) : createCommentVNode("", true), + createElementVNode("ul", { + class: normalizeClass($props.prefixCls + "-content") + }, [ + (openBlock(true), createElementBlock(Fragment, null, renderList($options.filterData, (item, index2) => { + return openBlock(), createElementBlock("li", { + key: index2, + class: normalizeClass($options.itemClasses(item)), + onClick: withModifiers(($event) => $options.select(item), ["prevent"]) + }, [ + createVNode(_component_Checkbox, { + modelValue: $options.isCheck(item), + disabled: item.disabled + }, null, 8, ["modelValue", "disabled"]), + createElementVNode("span", { + innerHTML: $options.showLabel(item) + }, null, 8, _hoisted_2$3) + ], 10, _hoisted_1$6); + }), 128)), + createElementVNode("li", { + class: normalizeClass($props.prefixCls + "-content-not-found") + }, toDisplayString($props.notFoundText), 3) + ], 2) + ], 2), + $data.showFooter ? (openBlock(), createElementBlock("div", { + key: 0, + class: normalizeClass($props.prefixCls + "-footer") + }, [ + renderSlot(_ctx.$slots, "default") + ], 2)) : createCommentVNode("", true) + ], 6); +} +var List = /* @__PURE__ */ _export_sfc(_sfc_main$a, [["render", _sfc_render$8]]); +const _sfc_main$9 = { + name: "Operation", + components: { Button: _sfc_main$2c, Icon }, + inject: ["TransferInstance"], + props: { + prefixCls: String, + operations: Array, + leftActive: Boolean, + rightActive: Boolean, + reverseOperation: Boolean + }, + methods: { + moveToLeft() { + this.TransferInstance.moveTo("left"); + }, + moveToRight() { + this.TransferInstance.moveTo("right"); + } + } +}; +const _hoisted_1$5 = { key: 0 }; +const _hoisted_2$2 = { key: 0 }; +const _hoisted_3$1 = { key: 0 }; +const _hoisted_4$1 = { key: 0 }; +function _sfc_render$7(_ctx, _cache, $props, $setup, $data, $options) { + const _component_Icon = resolveComponent("Icon"); + const _component_Button = resolveComponent("Button"); + return openBlock(), createElementBlock("div", { + class: normalizeClass($props.prefixCls + "-operation") + }, [ + $props.reverseOperation ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [ + createVNode(_component_Button, { + type: "primary", + size: "small", + disabled: !$props.leftActive, + onClick: $options.moveToRight + }, { + default: withCtx(() => [ + $props.operations[1] ? (openBlock(), createElementBlock("span", _hoisted_1$5, toDisplayString($props.operations[1]), 1)) : createCommentVNode("", true), + createVNode(_component_Icon, { type: "ios-arrow-forward" }) + ]), + _: 1 + }, 8, ["disabled", "onClick"]), + createVNode(_component_Button, { + type: "primary", + size: "small", + disabled: !$props.rightActive, + onClick: $options.moveToLeft + }, { + default: withCtx(() => [ + createVNode(_component_Icon, { type: "ios-arrow-back" }), + $props.operations[0] ? (openBlock(), createElementBlock("span", _hoisted_2$2, toDisplayString($props.operations[0]), 1)) : createCommentVNode("", true) + ]), + _: 1 + }, 8, ["disabled", "onClick"]) + ], 64)) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [ + createVNode(_component_Button, { + type: "primary", + size: "small", + disabled: !$props.rightActive, + onClick: $options.moveToLeft + }, { + default: withCtx(() => [ + createVNode(_component_Icon, { type: "ios-arrow-back" }), + $props.operations[0] ? (openBlock(), createElementBlock("span", _hoisted_3$1, toDisplayString($props.operations[0]), 1)) : createCommentVNode("", true) + ]), + _: 1 + }, 8, ["disabled", "onClick"]), + createVNode(_component_Button, { + type: "primary", + size: "small", + disabled: !$props.leftActive, + onClick: $options.moveToRight + }, { + default: withCtx(() => [ + $props.operations[1] ? (openBlock(), createElementBlock("span", _hoisted_4$1, toDisplayString($props.operations[1]), 1)) : createCommentVNode("", true), + createVNode(_component_Icon, { type: "ios-arrow-forward" }) + ]), + _: 1 + }, 8, ["disabled", "onClick"]) + ], 64)) + ], 2); +} +var Operation = /* @__PURE__ */ _export_sfc(_sfc_main$9, [["render", _sfc_render$7]]); +const prefixCls$4 = "ivu-transfer"; +const _sfc_main$8 = { + name: "Transfer", + mixins: [Locale, mixinsForm], + emits: ["on-change", "on-selected-change"], + provide() { + return { + TransferInstance: this + }; + }, + render() { + const defaultSlot = this.$slots.default ? this.$slots.default() : ""; + return h("div", { + "class": this.classes + }, [ + h(List, { + ref: "left", + prefixCls: this.prefixCls + "-list", + data: this.leftData, + renderFormat: this.renderFormat, + checkedKeys: this.leftCheckedKeys, + validKeysCount: this.leftValidKeysCount, + listStyle: this.listStyle, + title: this.localeTitles[0], + filterable: this.filterable, + filterPlaceholder: this.localeFilterPlaceholder, + filterMethod: this.filterMethod, + notFoundText: this.localeNotFoundText, + "onOn-checked-keys-change": this.handleLeftCheckedKeysChange + }, () => defaultSlot), + h(Operation, { + prefixCls: this.prefixCls, + operations: this.operations, + leftActive: this.leftValidKeysCount > 0, + rightActive: this.rightValidKeysCount > 0, + reverseOperation: this.reverseOperation + }), + h(List, { + ref: "right", + prefixCls: this.prefixCls + "-list", + data: this.rightData, + renderFormat: this.renderFormat, + checkedKeys: this.rightCheckedKeys, + validKeysCount: this.rightValidKeysCount, + listStyle: this.listStyle, + title: this.localeTitles[1], + filterable: this.filterable, + filterPlaceholder: this.localeFilterPlaceholder, + filterMethod: this.filterMethod, + notFoundText: this.localeNotFoundText, + "onOn-checked-keys-change": this.handleRightCheckedKeysChange + }, () => defaultSlot) + ]); + }, + props: { + data: { + type: Array, + default() { + return []; + } + }, + renderFormat: { + type: Function, + default(item) { + return item.label || item.key; + } + }, + targetKeys: { + type: Array, + default() { + return []; + } + }, + selectedKeys: { + type: Array, + default() { + return []; + } + }, + listStyle: { + type: Object, + default() { + return {}; + } + }, + titles: { + type: Array + }, + operations: { + type: Array, + default() { + return []; + } + }, + filterable: { + type: Boolean, + default: false + }, + filterPlaceholder: { + type: String + }, + filterMethod: { + type: Function, + default(data, query) { + const type2 = "label" in data ? "label" : "key"; + return data[type2].indexOf(query) > -1; + } + }, + notFoundText: { + type: String + }, + reverseOperation: { + type: Boolean, + default: false + } + }, + data() { + return { + prefixCls: prefixCls$4, + leftData: [], + rightData: [], + leftCheckedKeys: [], + rightCheckedKeys: [] + }; + }, + computed: { + classes() { + return [ + `${prefixCls$4}` + ]; + }, + leftValidKeysCount() { + return this.getValidKeys("left").length; + }, + rightValidKeysCount() { + return this.getValidKeys("right").length; + }, + localeFilterPlaceholder() { + if (this.filterPlaceholder === void 0) { + return this.t("i.transfer.filterPlaceholder"); + } else { + return this.filterPlaceholder; + } + }, + localeNotFoundText() { + if (this.notFoundText === void 0) { + return this.t("i.transfer.notFoundText"); + } else { + return this.notFoundText; + } + }, + localeTitles() { + if (this.titles === void 0) { + return [this.t("i.transfer.titles.source"), this.t("i.transfer.titles.target")]; + } else { + return this.titles; + } + } + }, + methods: { + getValidKeys(direction) { + return this[`${direction}Data`].filter((data) => !data.disabled && this[`${direction}CheckedKeys`].indexOf(data.key) > -1).map((data) => data.key); + }, + splitData(init = false) { + this.leftData = [...this.data]; + this.rightData = []; + if (this.targetKeys.length > 0) { + this.targetKeys.forEach((targetKey) => { + const filteredData = this.leftData.filter((data, index2) => { + if (data.key === targetKey) { + this.leftData.splice(index2, 1); + return true; + } + return false; + }); + if (filteredData && filteredData.length > 0) + this.rightData.push(filteredData[0]); + }); + } + if (init) { + this.splitSelectedKey(); + } + }, + splitSelectedKey() { + const selectedKeys = this.selectedKeys; + if (selectedKeys.length > 0) { + this.leftCheckedKeys = this.leftData.filter((data) => selectedKeys.indexOf(data.key) > -1).map((data) => data.key); + this.rightCheckedKeys = this.rightData.filter((data) => selectedKeys.indexOf(data.key) > -1).map((data) => data.key); + } + }, + moveTo(direction) { + const targetKeys = this.targetKeys; + const opposite = direction === "left" ? "right" : "left"; + const moveKeys = this.getValidKeys(opposite); + const newTargetKeys = direction === "right" ? moveKeys.concat(targetKeys) : targetKeys.filter((targetKey) => !moveKeys.some((checkedKey) => targetKey === checkedKey)); + this.$refs[opposite].toggleSelectAll(false); + this.$emit("on-change", newTargetKeys, direction, moveKeys); + this.handleFormItemChange("change", { + tarketKeys: newTargetKeys, + direction, + moveKeys + }); + }, + handleLeftCheckedKeysChange(keys) { + this.leftCheckedKeys = keys; + }, + handleRightCheckedKeysChange(keys) { + this.rightCheckedKeys = keys; + }, + handleCheckedKeys() { + const sourceSelectedKeys = this.getValidKeys("left"); + const targetSelectedKeys = this.getValidKeys("right"); + this.$emit("on-selected-change", sourceSelectedKeys, targetSelectedKeys); + } + }, + watch: { + targetKeys() { + this.splitData(false); + }, + data() { + this.splitData(false); + } + }, + mounted() { + this.splitData(true); + } +}; +var Render = { + name: "RenderCell", + props: { + render: Function, + data: Object, + node: Array + }, + render() { + const params = { + root: this.node[0], + node: this.node[1], + data: this.data + }; + return this.render(h, params); + } +}; +const prefixCls$3 = "ivu-tree"; +const _sfc_main$7 = { + name: "TreeNode", + inject: ["TreeInstance"], + components: { Checkbox, Icon, CollapseTransition, Render }, + props: { + data: { + type: Object, + default: () => { + } + }, + multiple: { + type: Boolean, + default: false + }, + childrenKey: { + type: String, + default: "children" + }, + showCheckbox: { + type: Boolean, + default: false + }, + appear: { + type: Boolean, + default: false + } + }, + data() { + return { + prefixCls: prefixCls$3, + appearByClickArrow: false, + globalConfig: {} + }; + }, + computed: { + classes() { + return [ + `${prefixCls$3}-children` + ]; + }, + selectedCls() { + return [ + { + [`${prefixCls$3}-node-selected`]: this.data.selected + } + ]; + }, + arrowClasses() { + return [ + `${prefixCls$3}-arrow`, + { + [`${prefixCls$3}-arrow-disabled`]: this.data.disabled, + [`${prefixCls$3}-arrow-open`]: this.data.expand + } + ]; + }, + titleClasses() { + return [ + `${prefixCls$3}-title`, + { + [`${prefixCls$3}-title-selected`]: this.data.selected + } + ]; + }, + showArrow() { + return this.data[this.childrenKey] && this.data[this.childrenKey].length || "loading" in this.data && !this.data.loading; + }, + showLoading() { + return "loading" in this.data && this.data.loading; + }, + isParentRender() { + const Tree2 = findComponentUpward(this, "Tree"); + return Tree2 && Tree2.render; + }, + parentRender() { + const Tree2 = findComponentUpward(this, "Tree"); + if (Tree2 && Tree2.render) { + return Tree2.render; + } else { + return null; + } + }, + node() { + const Tree2 = findComponentUpward(this, "Tree"); + if (Tree2) { + return [Tree2.flatState, Tree2.flatState.find((item) => item.nodeKey === this.data.nodeKey)]; + } else { + return []; + } + }, + children() { + return this.data[this.childrenKey]; + }, + arrowType() { + const config = this.globalConfig; + let type2 = "ios-arrow-forward"; + if (config) { + if (config.tree.customArrow) { + type2 = ""; + } else if (config.tree.arrow) { + type2 = config.tree.arrow; + } + } + return type2; + }, + customArrowType() { + const config = this.globalConfig; + let type2 = ""; + if (config) { + if (config.tree.customArrow) { + type2 = config.tree.customArrow; + } + } + return type2; + }, + arrowSize() { + const config = this.globalConfig; + let size = ""; + if (config) { + if (config.tree.arrowSize) { + size = config.tree.arrowSize; + } + } + return size; + } + }, + methods: { + handleExpand() { + const item = this.data; + this.appearByClickArrow = true; + if (item[this.childrenKey].length === 0) { + const tree = findComponentUpward(this, "Tree"); + if (tree && tree.loadData) { + this.data.loading = true; + tree.loadData(item, (children) => { + this.data.loading = false; + if (children.length) { + this.data[this.childrenKey] = children; + nextTick(() => this.handleExpand()); + } + }); + return; + } + } + if (item[this.childrenKey] && item[this.childrenKey].length) { + this.data.expand = !this.data.expand; + this.TreeInstance.handleToggleExpand(this.data); + } + }, + handleClickNode() { + if (this.TreeInstance.expandNode) { + if (this.showArrow) + this.handleExpand(); + } else if (this.TreeInstance.selectNode) { + this.handleSelect(); + } + }, + handleSelect() { + if (this.data.disabled) + return; + if (this.TreeInstance.showCheckbox && this.TreeInstance.checkDirectly) { + this.handleCheck(); + } else { + this.TreeInstance.handleOnSelected(this.data.nodeKey); + } + }, + handleCheck() { + if (this.data.disabled) + return; + const changes = { + checked: !this.data.checked && !this.data.indeterminate, + nodeKey: this.data.nodeKey + }; + this.TreeInstance.handleOnCheck(changes); + }, + handleContextmenu(data, event) { + if (data.contextmenu) { + event.preventDefault(); + this.TreeInstance.handleOnContextmenu({ data, event }); + } + }, + handlePreventSelect(data, event) { + if (data.contextmenu) { + event.preventDefault(); + } + } + }, + created() { + const instance = getCurrentInstance(); + this.globalConfig = instance.appContext.config.globalProperties.$VIEWUI; + } +}; +const _hoisted_1$4 = { + key: 0, + class: "ivu-tree-expand" +}; +function _sfc_render$6(_ctx, _cache, $props, $setup, $data, $options) { + const _component_Icon = resolveComponent("Icon"); + const _component_Checkbox = resolveComponent("Checkbox"); + const _component_Render = resolveComponent("Render"); + const _component_TreeNode = resolveComponent("TreeNode"); + const _component_collapse_transition = resolveComponent("collapse-transition"); + return openBlock(), createElementBlock("ul", { + class: normalizeClass($options.classes) + }, [ + createElementVNode("li", { + onContextmenu: _cache[2] || (_cache[2] = withModifiers(($event) => $options.handleContextmenu($props.data, $event), ["stop"])), + onSelectstart: _cache[3] || (_cache[3] = withModifiers(($event) => $options.handlePreventSelect($props.data, $event), ["stop"])) + }, [ + createElementVNode("span", { + class: normalizeClass($options.arrowClasses), + onClick: _cache[0] || (_cache[0] = (...args) => $options.handleExpand && $options.handleExpand(...args)) + }, [ + $options.showArrow ? (openBlock(), createBlock(_component_Icon, { + key: 0, + type: $options.arrowType, + custom: $options.customArrowType, + size: $options.arrowSize + }, null, 8, ["type", "custom", "size"])) : createCommentVNode("", true), + $options.showLoading ? (openBlock(), createBlock(_component_Icon, { + key: 1, + type: "ios-loading", + class: "ivu-load-loop" + })) : createCommentVNode("", true) + ], 2), + $props.showCheckbox ? (openBlock(), createBlock(_component_Checkbox, { + key: 0, + "model-value": $props.data.checked, + indeterminate: $props.data.indeterminate, + disabled: $props.data.disabled || $props.data.disableCheckbox, + onClick: withModifiers($options.handleCheck, ["prevent"]) + }, null, 8, ["model-value", "indeterminate", "disabled", "onClick"])) : createCommentVNode("", true), + createElementVNode("span", { + class: normalizeClass($options.titleClasses), + onClick: _cache[1] || (_cache[1] = (...args) => $options.handleClickNode && $options.handleClickNode(...args)) + }, [ + $props.data.render ? (openBlock(), createBlock(_component_Render, { + key: 0, + render: $props.data.render, + data: $props.data, + node: $options.node + }, null, 8, ["render", "data", "node"])) : $options.isParentRender ? (openBlock(), createBlock(_component_Render, { + key: 1, + render: $options.parentRender, + data: $props.data, + node: $options.node + }, null, 8, ["render", "data", "node"])) : (openBlock(), createElementBlock(Fragment, { key: 2 }, [ + createTextVNode(toDisplayString($props.data.title), 1) + ], 64)) + ], 2), + createVNode(_component_collapse_transition, { appear: $props.appear }, { + default: withCtx(() => [ + $props.data.expand ? (openBlock(), createElementBlock("div", _hoisted_1$4, [ + (openBlock(true), createElementBlock(Fragment, null, renderList($options.children, (item, i) => { + return openBlock(), createBlock(_component_TreeNode, { + appear: $data.appearByClickArrow, + key: i, + data: item, + multiple: $props.multiple, + "show-checkbox": $props.showCheckbox, + "children-key": $props.childrenKey + }, null, 8, ["appear", "data", "multiple", "show-checkbox", "children-key"]); + }), 128)) + ])) : createCommentVNode("", true) + ]), + _: 1 + }, 8, ["appear"]) + ], 32) + ], 2); +} +var TreeNode = /* @__PURE__ */ _export_sfc(_sfc_main$7, [["render", _sfc_render$6]]); +const prefixCls$2 = "ivu-tree"; +const _sfc_main$6 = { + name: "Tree", + mixins: [Locale], + components: { TreeNode, Dropdown, DropdownMenu }, + emits: ["on-select-change", "on-check-change", "on-contextmenu", "on-toggle-expand"], + provide() { + return { + TreeInstance: this + }; + }, + props: { + data: { + type: Array, + default: () => [] + }, + multiple: { + type: Boolean, + default: false + }, + showCheckbox: { + type: Boolean, + default: false + }, + checkStrictly: { + type: Boolean, + default: false + }, + checkDirectly: { + type: Boolean, + default: false + }, + emptyText: { + type: String + }, + childrenKey: { + type: String, + default: "children" + }, + loadData: { + type: Function + }, + render: { + type: Function + }, + selectNode: { + type: Boolean, + default: true + }, + expandNode: { + type: Boolean, + default: false + }, + autoCloseContextmenu: { + type: Boolean, + default: true + } + }, + data() { + return { + prefixCls: prefixCls$2, + stateTree: this.data, + flatState: [], + contextMenuVisible: false, + contextMenuStyles: { + top: 0, + left: 0 + } + }; + }, + watch: { + data: { + deep: true, + handler() { + this.stateTree = this.data; + this.flatState = this.compileFlatState(); + this.rebuildTree(); + } + } + }, + computed: { + localeEmptyText() { + if (typeof this.emptyText === "undefined") { + return this.t("i.tree.emptyText"); + } else { + return this.emptyText; + } + } + }, + methods: { + compileFlatState() { + let keyCounter = 0; + let childrenKey = this.childrenKey; + const flatTree = []; + function flattenChildren(node, parent) { + node.nodeKey = keyCounter++; + flatTree[node.nodeKey] = { node, nodeKey: node.nodeKey }; + if (typeof parent != "undefined") { + flatTree[node.nodeKey].parent = parent.nodeKey; + flatTree[parent.nodeKey][childrenKey].push(node.nodeKey); + } + if (node[childrenKey]) { + flatTree[node.nodeKey][childrenKey] = []; + node[childrenKey].forEach((child) => flattenChildren(child, node)); + } + } + this.stateTree.forEach((rootNode) => { + flattenChildren(rootNode); + }); + return flatTree; + }, + updateTreeUp(nodeKey) { + const parentKey = this.flatState[nodeKey].parent; + if (typeof parentKey == "undefined" || this.checkStrictly) + return; + const node = this.flatState[nodeKey].node; + const parent = this.flatState[parentKey].node; + if (node.checked == parent.checked && node.indeterminate == parent.indeterminate) + return; + if (node.checked == true) { + parent.checked = parent[this.childrenKey].every((node2) => node2.checked); + parent.indeterminate = !parent.checked; + } else { + parent.checked = false; + parent.indeterminate = parent[this.childrenKey].some((node2) => node2.checked || node2.indeterminate); + } + this.updateTreeUp(parentKey); + }, + rebuildTree() { + const checkedNodes = this.getCheckedNodes(); + checkedNodes.forEach((node) => { + this.updateTreeDown(node, { checked: true }); + const parentKey = this.flatState[node.nodeKey].parent; + if (!parentKey && parentKey !== 0) + return; + const parent = this.flatState[parentKey].node; + const childHasCheckSetter = typeof node.checked != "undefined" && node.checked; + if (childHasCheckSetter && parent.checked != node.checked) { + this.updateTreeUp(node.nodeKey); + } + }); + }, + getSelectedNodes() { + return this.flatState.filter((obj) => obj.node.selected).map((obj) => obj.node); + }, + getCheckedNodes() { + return this.flatState.filter((obj) => obj.node.checked).map((obj) => obj.node); + }, + getCheckedAndIndeterminateNodes() { + return this.flatState.filter((obj) => obj.node.checked || obj.node.indeterminate).map((obj) => obj.node); + }, + updateTreeDown(node, changes = {}) { + if (this.checkStrictly) + return; + for (let key2 in changes) { + node[key2] = changes[key2]; + } + if (node[this.childrenKey]) { + node[this.childrenKey].forEach((child) => { + this.updateTreeDown(child, changes); + }); + } + }, + handleSelect(nodeKey) { + if (!this.flatState[nodeKey]) + return; + const node = this.flatState[nodeKey].node; + if (!this.multiple) { + const currentSelectedKey = this.flatState.findIndex((obj) => obj.node.selected); + if (currentSelectedKey >= 0 && currentSelectedKey !== nodeKey) + this.flatState[currentSelectedKey].node.selected = false; + } + node.selected = !node.selected; + this.$emit("on-select-change", this.getSelectedNodes(), node); + }, + handleCheck({ checked, nodeKey }) { + if (!this.flatState[nodeKey]) + return; + const node = this.flatState[nodeKey].node; + node.checked = checked; + node.indeterminate = false; + this.updateTreeUp(nodeKey); + this.updateTreeDown(node, { checked, indeterminate: false }); + this.$emit("on-check-change", this.getCheckedNodes(), node); + }, + handleContextmenu({ data, event }) { + if (this.contextMenuVisible) + this.handleClickContextMenuOutside(); + nextTick(() => { + const $TreeWrap = this.$refs.treeWrap; + const TreeBounding = $TreeWrap.getBoundingClientRect(); + const position = { + left: `${event.clientX - TreeBounding.left}px`, + top: `${event.clientY - TreeBounding.top}px` + }; + this.contextMenuStyles = position; + this.contextMenuVisible = true; + this.$emit("on-contextmenu", data, event, position); + }); + }, + handleClickContextMenuOutside() { + this.contextMenuVisible = false; + }, + handleOnCheck(param) { + this.handleCheck(param); + }, + handleOnSelected(param) { + this.handleSelect(param); + }, + handleToggleExpand(node) { + this.$emit("on-toggle-expand", node); + }, + handleOnContextmenu(param) { + this.handleContextmenu(param); + }, + closeContextMenu() { + this.handleClickContextMenuOutside(); + }, + handleClickDropdownItem() { + if (this.autoCloseContextmenu) + this.closeContextMenu(); + } + }, + created() { + this.flatState = this.compileFlatState(); + this.rebuildTree(); + } +}; +function _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) { + const _component_TreeNode = resolveComponent("TreeNode"); + const _component_DropdownMenu = resolveComponent("DropdownMenu"); + const _component_Dropdown = resolveComponent("Dropdown"); + return openBlock(), createElementBlock("div", { + class: normalizeClass($data.prefixCls), + ref: "treeWrap" + }, [ + (openBlock(true), createElementBlock(Fragment, null, renderList($data.stateTree, (item, i) => { + return openBlock(), createBlock(_component_TreeNode, { + key: i, + data: item, + visible: "", + multiple: $props.multiple, + "show-checkbox": $props.showCheckbox, + "children-key": $props.childrenKey + }, null, 8, ["data", "multiple", "show-checkbox", "children-key"]); + }), 128)), + !$data.stateTree.length ? (openBlock(), createElementBlock("div", { + key: 0, + class: normalizeClass([$data.prefixCls + "-empty"]) + }, toDisplayString($options.localeEmptyText), 3)) : createCommentVNode("", true), + createElementVNode("div", { + class: "ivu-tree-context-menu", + style: normalizeStyle($data.contextMenuStyles) + }, [ + createVNode(_component_Dropdown, { + trigger: "custom", + visible: $data.contextMenuVisible, + transfer: "", + onOnClick: $options.handleClickDropdownItem, + onOnClickoutside: $options.handleClickContextMenuOutside + }, { + list: withCtx(() => [ + createVNode(_component_DropdownMenu, null, { + default: withCtx(() => [ + renderSlot(_ctx.$slots, "contextMenu") + ]), + _: 3 + }) + ]), + _: 3 + }, 8, ["visible", "onOnClick", "onOnClickoutside"]) + ], 4) + ], 2); +} +var Tree = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["render", _sfc_render$5]]); +const _sfc_main$5 = { + name: "TreeSelect", + components: { Select, Tree }, + emits: ["on-change", "update:modelValue", "on-open-change"], + mixins: [mixinsForm], + props: { + modelValue: { + type: [String, Number, Array] + }, + data: { + type: Array, + default: () => [] + }, + multiple: { + type: Boolean, + default: false + }, + showCheckbox: { + type: Boolean, + default: false + }, + loadData: { + type: Function + }, + transfer: { + type: Boolean, + default() { + const global2 = getCurrentInstance().appContext.config.globalProperties; + return !global2.$VIEWUI || global2.$VIEWUI.transfer === "" ? false : global2.$VIEWUI.transfer; + } + } + }, + data() { + let value = this.modelValue; + if (value === null) { + if (this.multiple) + value = []; + else + value = ""; + } + return { + currentValue: value, + isChangeValueInTree: false, + isValueChangeByTree: false, + isValueNull: false + }; + }, + watch: { + modelValue(val) { + if (this.isChangeValueInTree) { + this.isChangeValueInTree = false; + } else { + let value = val; + if (value === null) { + this.isValueNull = true; + if (this.multiple) + value = []; + else + value = ""; + } + this.currentValue = value; + this.$refs.select.reset(); + this.handleUpdateTreeNodes(this.data, true); + } + }, + data() { + if (this.isChangeValueInTree) { + this.isChangeValueInTree = false; + } else { + this.$refs.select.reset(); + this.handleUpdateTreeNodes(this.data, true); + } + } + }, + computed: { + valueToArray() { + return typeof this.currentValue === "object" ? this.currentValue : [this.currentValue]; + }, + isCheckboxUsable() { + return this.multiple && this.showCheckbox; + }, + transferClassName() { + return this.transfer ? "ivu-tree-select-transfer" : ""; + }, + classes() { + return { + "ivu-tree-select-with-checkbox": this.showCheckbox + }; + } + }, + methods: { + handleSelectNode(selectedNodes, currentNode) { + if (this.multiple) { + if (selectedNodes.length) { + this.currentValue = selectedNodes.map((item) => item.value); + this.handleUpdateSelectValue(currentNode.value, currentNode.title); + } else { + this.currentValue = []; + this.handleUpdateSelectValue("", ""); + } + } else { + if (selectedNodes.length) { + const node = selectedNodes[0]; + this.currentValue = node.value; + this.handleUpdateSelectValue(node.value, node.title); + } else { + this.currentValue = ""; + this.handleUpdateSelectValue("", ""); + } + } + this.isChangeValueInTree = true; + this.$emit("update:modelValue", this.currentValue); + this.$emit("on-change", this.currentValue); + this.handleFormItemChange("change", this.currentValue); + }, + handleUpdateTreeNodes(data, isInit = false) { + data.forEach((item) => { + if (this.valueToArray.indexOf(item.value) >= 0) { + if (this.isCheckboxUsable) { + item.checked = true; + } else { + item.selected = true; + } + this.handleUpdateSelectValue(item.value, item.title); + } else { + if (this.isCheckboxUsable) { + item.checked = false; + } else { + item.selected = false; + } + } + if (item.children && item.children.length) { + this.handleUpdateTreeNodes(item.children); + } + }); + if (isInit) + this.$refs.select.isFocused = false; + }, + handleUpdateSelectValue(value, label) { + if (value === "") { + this.$refs.select.reset(); + } else { + this.isValueChangeByTree = true; + this.$refs.select.onOptionClick({ + value, + label + }); + } + }, + handleChange(value) { + if (this.isValueChangeByTree) { + this.isValueChangeByTree = false; + } else { + this.currentValue = value; + if (this.isValueNull) { + this.isValueNull = false; + this.$emit("update:modelValue", null); + } else { + this.$emit("update:modelValue", value); + } + this.$emit("on-change", value); + this.handleFormItemChange("change", value); + this.$refs.select.reset(); + this.handleUpdateTreeNodes(this.data, true); + nextTick(() => { + this.isValueChangeByTree = false; + }); + } + }, + handleOpenChange(status) { + this.$emit("on-open-change", status); + } + }, + mounted() { + this.handleUpdateTreeNodes(this.data, true); + } +}; +function _sfc_render$4(_ctx, _cache, $props, $setup, $data, $options) { + const _component_Tree = resolveComponent("Tree"); + const _component_Select = resolveComponent("Select"); + return openBlock(), createBlock(_component_Select, mergeProps({ ref: "select" }, _ctx.$attrs, { + multiple: $props.multiple, + class: ["ivu-tree-select", $options.classes], + "transfer-class-name": $options.transferClassName, + onOnChange: $options.handleChange, + onOnOpenChange: $options.handleOpenChange, + hideNotFound: "", + transfer: $props.transfer + }), { + default: withCtx(() => [ + createVNode(_component_Tree, { + data: $props.data, + multiple: $props.multiple, + onOnSelectChange: $options.handleSelectNode, + onOnCheckChange: $options.handleSelectNode, + "check-strictly": "", + "show-checkbox": $props.multiple && $props.showCheckbox, + "check-directly": "", + "load-data": $props.loadData + }, null, 8, ["data", "multiple", "onOnSelectChange", "onOnCheckChange", "show-checkbox", "load-data"]) + ]), + _: 1 + }, 16, ["multiple", "class", "transfer-class-name", "onOnChange", "onOnOpenChange", "transfer"]); +} +var TreeSelect = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["render", _sfc_render$4]]); +const _sfc_main$4 = { + name: "Typography" +}; +const _hoisted_1$3 = { class: "ivu-typography" }; +function _sfc_render$3(_ctx, _cache, $props, $setup, $data, $options) { + return openBlock(), createElementBlock("article", _hoisted_1$3, [ + renderSlot(_ctx.$slots, "default") + ]); +} +var Typography = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["render", _sfc_render$3]]); +const prefixCls$1 = "ivu-upload"; +const _sfc_main$3 = { + name: "UploadList", + components: { Icon, iProgress }, + emits: ["on-file-click", "on-file-preview", "on-file-remove"], + props: { + files: { + type: Array, + default() { + return []; + } + } + }, + data() { + return { + prefixCls: prefixCls$1 + }; + }, + methods: { + fileCls(file) { + return [ + `${prefixCls$1}-list-file`, + { + [`${prefixCls$1}-list-file-finish`]: file.status === "finished" + } + ]; + }, + handleClick(file) { + this.$emit("on-file-click", file); + }, + handlePreview(file) { + this.$emit("on-file-preview", file); + }, + handleRemove(file) { + this.$emit("on-file-remove", file); + }, + format(file) { + const format2 = file.name.split(".").pop().toLocaleLowerCase() || ""; + let type2 = "ios-document-outline"; + if (["gif", "jpg", "jpeg", "png", "bmp", "webp"].indexOf(format2) > -1) { + type2 = "ios-image"; + } + if (["mp4", "m3u8", "rmvb", "avi", "swf", "3gp", "mkv", "flv"].indexOf(format2) > -1) { + type2 = "ios-film"; + } + if (["mp3", "wav", "wma", "ogg", "aac", "flac"].indexOf(format2) > -1) { + type2 = "ios-musical-notes"; + } + if (["doc", "txt", "docx", "pages", "epub", "pdf"].indexOf(format2) > -1) { + type2 = "md-document"; + } + if (["numbers", "csv", "xls", "xlsx"].indexOf(format2) > -1) { + type2 = "ios-stats"; + } + if (["keynote", "ppt", "pptx"].indexOf(format2) > -1) { + type2 = "ios-videocam"; + } + return type2; + }, + parsePercentage(val) { + return parseInt(val, 10); + } + } +}; +const _hoisted_1$2 = ["onClick"]; +const _hoisted_2$1 = ["onClick"]; +function _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) { + const _component_Icon = resolveComponent("Icon"); + const _component_i_progress = resolveComponent("i-progress"); + return openBlock(), createElementBlock("ul", { + class: normalizeClass([$data.prefixCls + "-list"]) + }, [ + (openBlock(true), createElementBlock(Fragment, null, renderList($props.files, (file, index2) => { + return openBlock(), createElementBlock("li", { + key: index2, + class: normalizeClass($options.fileCls(file)), + onClick: ($event) => $options.handleClick(file) + }, [ + createElementVNode("span", { + onClick: ($event) => $options.handlePreview(file) + }, [ + createVNode(_component_Icon, { + type: $options.format(file) + }, null, 8, ["type"]), + createTextVNode(" " + toDisplayString(file.name), 1) + ], 8, _hoisted_2$1), + withDirectives(createVNode(_component_Icon, { + type: "ios-close", + class: normalizeClass([$data.prefixCls + "-list-remove"]), + onClick: ($event) => $options.handleRemove(file) + }, null, 8, ["class", "onClick"]), [ + [vShow, file.status === "finished"] + ]), + createVNode(Transition, { name: "fade" }, { + default: withCtx(() => [ + file.showProgress ? (openBlock(), createBlock(_component_i_progress, { + key: 0, + "stroke-width": 2, + percent: $options.parsePercentage(file.percentage), + status: file.status === "finished" && file.showProgress ? "success" : "normal" + }, null, 8, ["percent", "status"])) : createCommentVNode("", true) + ]), + _: 2 + }, 1024) + ], 10, _hoisted_1$2); + }), 128)) + ], 2); +} +var UploadList = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["render", _sfc_render$2]]); +function getError(action, option, xhr) { + const msg = `fail to post ${action} ${xhr.status}'`; + const err = new Error(msg); + err.status = xhr.status; + err.method = "post"; + err.url = action; + return err; +} +function getBody(xhr) { + const text = xhr.responseText || xhr.response; + if (!text) { + return text; + } + try { + return JSON.parse(text); + } catch (e) { + return text; + } +} +function upload(option) { + if (typeof XMLHttpRequest === "undefined") { + return; + } + const xhr = new XMLHttpRequest(); + const action = option.action; + if (xhr.upload) { + xhr.upload.onprogress = function progress(e) { + if (e.total > 0) { + e.percent = e.loaded / e.total * 100; + } + option.onProgress(e); + }; + } + const formData = new FormData(); + if (option.data) { + Object.keys(option.data).map((key2) => { + formData.append(key2, option.data[key2]); + }); + } + formData.append(option.filename, option.file); + xhr.onerror = function error(e) { + option.onError(e); + }; + xhr.onload = function onload() { + if (xhr.status < 200 || xhr.status >= 300) { + return option.onError(getError(action, option, xhr), getBody(xhr)); + } + option.onSuccess(getBody(xhr)); + }; + xhr.open("post", action, true); + if (option.withCredentials && "withCredentials" in xhr) { + xhr.withCredentials = true; + } + const headers = option.headers || {}; + for (let item in headers) { + if (headers.hasOwnProperty(item) && headers[item] !== null) { + xhr.setRequestHeader(item, headers[item]); + } + } + xhr.send(formData); +} +const prefixCls = "ivu-upload"; +const _sfc_main$2 = { + name: "Upload", + mixins: [mixinsForm], + components: { UploadList }, + props: { + action: { + type: String, + required: true + }, + headers: { + type: Object, + default() { + return {}; + } + }, + multiple: { + type: Boolean, + default: false + }, + data: { + type: Object + }, + name: { + type: String, + default: "file" + }, + withCredentials: { + type: Boolean, + default: false + }, + showUploadList: { + type: Boolean, + default: true + }, + type: { + type: String, + validator(value) { + return oneOf(value, ["select", "drag"]); + }, + default: "select" + }, + format: { + type: Array, + default() { + return []; + } + }, + accept: { + type: String + }, + maxSize: { + type: Number + }, + beforeUpload: Function, + onProgress: { + type: Function, + default() { + return {}; + } + }, + onSuccess: { + type: Function, + default() { + return {}; + } + }, + onError: { + type: Function, + default() { + return {}; + } + }, + onRemove: { + type: Function, + default() { + return {}; + } + }, + onPreview: { + type: Function, + default() { + return {}; + } + }, + onExceededSize: { + type: Function, + default() { + return {}; + } + }, + onFormatError: { + type: Function, + default() { + return {}; + } + }, + defaultFileList: { + type: Array, + default() { + return []; + } + }, + paste: { + type: Boolean, + default: false + }, + disabled: { + type: Boolean, + default: false + }, + webkitdirectory: { + type: Boolean, + default: false + } + }, + data() { + return { + prefixCls, + dragOver: false, + fileList: [], + tempIndex: 1 + }; + }, + computed: { + classes() { + return [ + `${prefixCls}`, + { + [`${prefixCls}-select`]: this.type === "select", + [`${prefixCls}-drag`]: this.type === "drag", + [`${prefixCls}-dragOver`]: this.type === "drag" && this.dragOver + } + ]; + } + }, + methods: { + handleClick() { + if (this.itemDisabled) + return; + this.$refs.input.click(); + }, + handleChange(e) { + const files2 = e.target.files; + if (!files2) { + return; + } + this.uploadFiles(files2); + this.$refs.input.value = null; + }, + onDrop(e) { + this.dragOver = false; + if (this.itemDisabled) + return; + this.uploadFiles(e.dataTransfer.files); + }, + handlePaste(e) { + if (this.itemDisabled) + return; + if (this.paste) { + this.uploadFiles(e.clipboardData.files); + } + }, + uploadFiles(files2) { + let postFiles = Array.prototype.slice.call(files2); + if (!this.multiple) + postFiles = postFiles.slice(0, 1); + if (postFiles.length === 0) + return; + postFiles.forEach((file) => { + this.upload(file); + }); + }, + upload(file) { + if (!this.beforeUpload) { + return this.post(file); + } + const before = this.beforeUpload(file); + if (before && before.then) { + before.then((processedFile) => { + if (Object.prototype.toString.call(processedFile) === "[object File]") { + this.post(processedFile); + } else { + this.post(file); + } + }, () => { + }); + } else if (before !== false) { + this.post(file); + } else + ; + }, + post(file) { + if (this.format.length) { + const _file_format = file.name.split(".").pop().toLocaleLowerCase(); + const checked = this.format.some((item) => item.toLocaleLowerCase() === _file_format); + if (!checked) { + this.onFormatError(file, this.fileList); + return false; + } + } + if (this.maxSize) { + if (file.size > this.maxSize * 1024) { + this.onExceededSize(file, this.fileList); + return false; + } + } + this.handleStart(file); + let formData = new FormData(); + formData.append(this.name, file); + upload({ + headers: this.headers, + withCredentials: this.withCredentials, + file, + data: this.data, + filename: this.name, + action: this.action, + onProgress: (e) => { + this.handleProgress(e, file); + }, + onSuccess: (res) => { + this.handleSuccess(res, file); + }, + onError: (err, response) => { + this.handleError(err, response, file); + } + }); + }, + handleStart(file) { + file.uid = Date.now() + this.tempIndex++; + const _file = { + status: "uploading", + name: file.name, + size: file.size, + percentage: 0, + uid: file.uid, + showProgress: true + }; + this.fileList.push(_file); + }, + getFile(file) { + const fileList = this.fileList; + let target; + fileList.every((item) => { + target = file.uid === item.uid ? item : null; + return !target; + }); + return target; + }, + handleProgress(e, file) { + const _file = this.getFile(file); + this.onProgress(e, _file, this.fileList); + _file.percentage = e.percent || 0; + }, + handleSuccess(res, file) { + const _file = this.getFile(file); + if (_file) { + _file.status = "finished"; + _file.response = res; + this.onSuccess(res, _file, this.fileList); + this.handleFormItemChange("change", _file); + setTimeout(() => { + _file.showProgress = false; + }, 1e3); + } + }, + handleError(err, response, file) { + const _file = this.getFile(file); + const fileList = this.fileList; + _file.status = "fail"; + fileList.splice(fileList.indexOf(_file), 1); + this.onError(err, response, file); + }, + handleRemove(file) { + const fileList = this.fileList; + fileList.splice(fileList.indexOf(file), 1); + this.onRemove(file, fileList); + }, + handlePreview(file) { + if (file.status === "finished") { + this.onPreview(file); + } + }, + clearFiles() { + this.fileList = []; + } + }, + watch: { + defaultFileList: { + immediate: true, + handler(fileList) { + this.fileList = fileList.map((item) => { + item.status = "finished"; + item.percentage = 100; + item.uid = Date.now() + this.tempIndex++; + return item; + }); + } + } + } +}; +const _hoisted_1$1 = ["multiple", "webkitdirectory", "accept"]; +function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) { + const _component_upload_list = resolveComponent("upload-list"); + return openBlock(), createElementBlock("div", { + class: normalizeClass([$data.prefixCls]) + }, [ + createElementVNode("div", { + class: normalizeClass($options.classes), + onClick: _cache[1] || (_cache[1] = (...args) => $options.handleClick && $options.handleClick(...args)), + onDrop: _cache[2] || (_cache[2] = withModifiers((...args) => $options.onDrop && $options.onDrop(...args), ["prevent"])), + onPaste: _cache[3] || (_cache[3] = (...args) => $options.handlePaste && $options.handlePaste(...args)), + onDragover: _cache[4] || (_cache[4] = withModifiers(($event) => $data.dragOver = true, ["prevent"])), + onDragleave: _cache[5] || (_cache[5] = withModifiers(($event) => $data.dragOver = false, ["prevent"])) + }, [ + createElementVNode("input", { + ref: "input", + type: "file", + class: normalizeClass([$data.prefixCls + "-input"]), + onChange: _cache[0] || (_cache[0] = (...args) => $options.handleChange && $options.handleChange(...args)), + multiple: $props.multiple, + webkitdirectory: $props.webkitdirectory, + accept: $props.accept + }, null, 42, _hoisted_1$1), + renderSlot(_ctx.$slots, "default") + ], 34), + renderSlot(_ctx.$slots, "tip"), + $props.showUploadList ? (openBlock(), createBlock(_component_upload_list, { + key: 0, + files: $data.fileList, + onOnFileRemove: $options.handleRemove, + onOnFilePreview: $options.handlePreview + }, null, 8, ["files", "onOnFileRemove", "onOnFilePreview"])) : createCommentVNode("", true) + ], 2); +} +var Upload = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["render", _sfc_render$1]]); +const _sfc_main$1 = { + name: "UserName", + mixins: [LoginItem], + data() { + return { + className: "ivu-login-username", + prefix: "ios-contact-outline", + placeholder: "\u8BF7\u8F93\u5165\u7528\u6237\u540D", + type: "text", + validateMessage: "\u8BF7\u8F93\u5165\u7528\u6237\u540D\uFF01" + }; + } +}; +const _sfc_main = { + name: "WordCount", + components: { Circle }, + props: { + value: { + type: [String, Number], + default: "" + }, + total: { + type: Number, + default: 0 + }, + hideTotal: { + type: Boolean, + default: false + }, + overflow: { + type: Boolean, + default: false + }, + circle: { + type: Boolean, + default: false + }, + size: { + type: [String, Number], + default: 14 + } + }, + computed: { + isOverflow() { + return this.value.length > this.total; + }, + percent() { + let percent = this.value.length / this.total * 100; + if (percent > 100) + percent = 100; + return percent; + }, + strokeColor() { + return this.isOverflow ? "#ed4014" : "#2d8cf0"; + } + } +}; +const _hoisted_1 = { class: "ivu-word-count" }; +const _hoisted_2 = { + key: 0, + class: "ivu-word-count-prefix" +}; +const _hoisted_3 = { + key: 1, + class: "ivu-word-count-prefix ivu-word-count-overflow" +}; +const _hoisted_4 = { + key: 3, + class: "ivu-word-count-overflow" +}; +const _hoisted_5 = { + key: 5, + class: "ivu-word-count-suffix" +}; +const _hoisted_6 = { + key: 6, + class: "ivu-word-count-suffix ivu-word-count-overflow" +}; +function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) { + const _component_Circle = resolveComponent("Circle"); + return openBlock(), createElementBlock("div", _hoisted_1, [ + $props.circle ? (openBlock(), createBlock(_component_Circle, { + key: 0, + percent: $options.percent, + size: $props.size, + "stroke-color": $options.strokeColor + }, null, 8, ["percent", "size", "stroke-color"])) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [ + !$options.isOverflow ? (openBlock(), createElementBlock("span", _hoisted_2, [ + renderSlot(_ctx.$slots, "prefix") + ])) : (openBlock(), createElementBlock("span", _hoisted_3, [ + renderSlot(_ctx.$slots, "prefix-overflow") + ])), + !$options.isOverflow || !$props.overflow ? (openBlock(), createElementBlock("span", { + key: 2, + class: normalizeClass({ "ivu-word-count-overflow": $options.isOverflow }) + }, [ + renderSlot(_ctx.$slots, "length", { + length: $props.value.length + }, () => [ + createTextVNode(toDisplayString($props.value.length), 1) + ]) + ], 2)) : (openBlock(), createElementBlock("span", _hoisted_4, toDisplayString($props.value.length - $props.total), 1)), + !$props.hideTotal ? (openBlock(), createElementBlock(Fragment, { key: 4 }, [ + renderSlot(_ctx.$slots, "separator", {}, () => [ + createTextVNode(" / ") + ]), + renderSlot(_ctx.$slots, "total", { total: $props.total }, () => [ + createTextVNode(toDisplayString($props.total), 1) + ]) + ], 64)) : createCommentVNode("", true), + !$options.isOverflow ? (openBlock(), createElementBlock("span", _hoisted_5, [ + renderSlot(_ctx.$slots, "suffix") + ])) : (openBlock(), createElementBlock("span", _hoisted_6, [ + renderSlot(_ctx.$slots, "suffix-overflow") + ])) + ], 64)) + ]); +} +var WordCount = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]); +var components = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({ + __proto__: null, + Affix, + Alert, + Anchor, + AnchorLink, + Auth: _sfc_main$2q, + AutoComplete, + Avatar, + AvatarList, + BackTop, + Badge, + Breadcrumb, + BreadcrumbItem, + Button: _sfc_main$2c, + ButtonGroup, + Calendar, + Captcha: _sfc_main$22, + Card, + Carousel, + CarouselItem, + Cascader, + Cell, + CellGroup, + Checkbox, + CheckboxGroup, + Circle, + City, + Col, + Collapse, + ColorPicker, + Content, + Copy, + CountDown, + CountUp, + DatePicker, + Description: _sfc_main$1r, + DescriptionList, + Divider, + Drawer, + Dropdown, + DropdownItem, + DropdownMenu, + Ellipsis, + Email: _sfc_main$1l, + Exception, + Footer, + FooterToolbar, + Form, + FormItem, + GlobalFooter, + Grid, + GridItem, + Header, + Icon, + Image, + ImagePreview, + Input, + InputNumber, + Layout, + Link: _sfc_main$16, + List: List$1, + ListItem, + ListItemMeta, + LoadingBar: index$3, + Login, + Menu, + MenuGroup, + MenuItem, + Message: $Message, + Mobile: _sfc_main$Z, + Modal, + Notice: index$2, + Notification, + NotificationItem, + NotificationTab, + NumberInfo, + Numeral, + Option: iOption, + OptionGroup, + Page, + PageHeader, + Panel, + Paragraph: _sfc_main$I, + Password: _sfc_main$H, + Poptip, + Progress: iProgress, + Radio, + RadioGroup, + Rate, + Result, + Row, + Scroll, + ScrollIntoView: index$1, + ScrollTop: index, + Select, + Sider, + Skeleton, + SkeletonItem, + Slider, + Space: _sfc_main$w, + Spin, + Split, + Step, + Steps, + Submenu, + Submit: _sfc_main$q, + Switch, + Table, + TablePaste, + TabPane, + Tabs, + Tag, + TagSelect, + TagSelectOption, + Text: _sfc_main$f, + Time, + Timeline, + TimelineItem, + TimePicker, + Title: _sfc_main$c, + Tooltip, + Transfer: _sfc_main$8, + Tree, + TreeSelect, + Trend, + Typography, + Upload, + UserName: _sfc_main$1, + WordCount +}, Symbol.toStringTag, { value: "Module" })); +var lineClamp = { + mounted(el, binding) { + if (binding.value) { + addClass(el, "ivu-line-clamp"); + el.style["-webkit-line-clamp"] = binding.value; + } + }, + updated(el, binding) { + if (binding.value) { + el.style["-webkit-line-clamp"] = binding.value; + } + }, + unmounted(el) { + removeClass(el, "ivu-line-clamp"); + el.style["-webkit-line-clamp"] = null; + } +}; +var resize = { + mounted(el, binding) { + function resizeHandler(e) { + binding.value(e); + } + el.__resizeHandler__ = resizeHandler; + el.__observer__ = elementResizeDetector(); + el.__observer__.listenTo(el, resizeHandler); + }, + updated() { + }, + unmounted(el, binding) { + el.__observer__.removeListener(el, el.__resizeHandler__); + delete el.__resizeHandler__; + delete el.__observer__; + } +}; +function unit(value) { + return String(value).endsWith("%") ? "" : "px"; +} +var style = { + display: { + mounted(el, binding) { + if (binding.value) { + el.style.display = binding.value; + } + }, + updated(el, binding) { + if (binding.value) { + el.style.display = binding.value; + } + }, + unmounted(el) { + el.style.display = null; + } + }, + width: { + mounted(el, binding) { + if (binding.value) { + el.style.width = binding.value + unit(binding.value); + } + }, + updated(el, binding) { + if (binding.value) { + el.style.width = binding.value + unit(binding.value); + } + }, + unmounted(el) { + el.style.width = null; + } + }, + height: { + mounted(el, binding) { + if (binding.value) { + el.style.height = binding.value + unit(binding.value); + } + }, + updated(el, binding) { + if (binding.value) { + el.style.height = binding.value + unit(binding.value); + } + }, + unmounted(el) { + el.style.height = null; + } + }, + margin: { + mounted(el, binding) { + if (binding.value) { + el.style.margin = binding.value + unit(binding.value); + } + }, + updated(el, binding) { + if (binding.value) { + el.style.margin = binding.value + unit(binding.value); + } + }, + unmounted(el) { + el.style.margin = null; + } + }, + padding: { + mounted(el, binding) { + if (binding.value) { + el.style.padding = binding.value + unit(binding.value); + } + }, + updated(el, binding) { + if (binding.value) { + el.style.padding = binding.value + unit(binding.value); + } + }, + unmounted(el) { + el.style.padding = null; + } + }, + font: { + mounted(el, binding) { + if (binding && binding.value) { + el.style.fontSize = `${binding.value}px`; + } + }, + updated(el, binding) { + if (binding && binding.value) { + el.style.fontSize = `${binding.value}px`; + } + }, + unmounted(el) { + el.style.fontSize = null; + } + }, + color: { + mounted(el, binding) { + if (binding.value) { + el.style.color = binding.value; + } + }, + updated(el, binding) { + if (binding.value) { + el.style.color = binding.value; + } + }, + unmounted(el) { + el.style.color = null; + } + }, + bgColor: { + mounted(el, binding) { + if (binding.value) { + el.style.backgroundColor = binding.value; + } + }, + updated(el, binding) { + if (binding.value) { + el.style.backgroundColor = binding.value; + } + }, + unmounted(el) { + el.style.backgroundColor = null; + } + } +}; +const name = "view-ui-plus"; +const version$1 = "1.3.18"; +const title = "ViewUIPlus"; +const description = "A high quality UI components Library with Vue.js 3"; +const homepage = "http://www.iviewui.com"; +const keywords = [ + "iview", + "vue", + "viewui", + "viewuiplus", + "vue.js", + "component", + "components", + "ui", + "framework" +]; +const main = "dist/viewuiplus.min.js"; +const typings = "types/index.d.ts"; +const files = [ + "dist", + "src", + "types" +]; +const scripts = { + dev: "vue-cli-service serve", + build: "npm run build:prod && npm run build:style && npm run build:lang", + "build:style": "gulp --gulpfile build/build-style.js", + "build:prod": "vite build", + "build:lang": "vite build --config build/vite.lang.config.js", + lint: "vue-cli-service lint --fix" +}; +const repository = { + type: "git", + url: "https://github.com/view-design/ViewUIPlus" +}; +const author = "Aresn"; +const license = "MIT"; +const bugs = { + url: "https://github.com/view-design/ViewUIPlus/issues" +}; +const dependencies = { + "async-validator": "^3.3.0", + "countup.js": "^1.9.3", + dayjs: "^1.11.0", + deepmerge: "^2.2.1", + "element-resize-detector": "^1.2.0", + "js-calendar": "^1.2.3", + "lodash.chunk": "^4.2.0", + "lodash.throttle": "^4.1.1", + numeral: "^2.0.6", + "popper.js": "^1.14.6", + select: "^1.1.2", + tinycolor2: "^1.4.1", + "v-click-outside-x": "^3.7.1" +}; +const devDependencies = { + "@vitejs/plugin-vue": "^1.9.3", + "@vue/cli-plugin-babel": "~4.5.0", + "@vue/cli-plugin-eslint": "~4.5.0", + "@vue/cli-service": "~4.5.0", + "@vue/compiler-sfc": "^3.0.0", + "babel-eslint": "^10.1.0", + "babel-plugin-import": "^1.13.3", + chai: "^4.2.0", + "copy-webpack-plugin": "^6.4.1", + "cross-env": "^5.2.0", + eslint: "^6.7.2", + "eslint-plugin-vue": "^7.0.0-0", + gulp: "^4.0.2", + "gulp-autoprefixer": "^8.0.0", + "gulp-clean-css": "^4.3.0", + "gulp-less": "^4.0.1", + "gulp-rename": "^2.0.0", + karma: "^2.0.5", + "karma-chrome-launcher": "^2.2.0", + "karma-coverage": "^1.1.1", + "karma-mocha": "^1.3.0", + "karma-sinon-chai": "^1.3.3", + "karma-sourcemap-loader": "^0.3.7", + "karma-spec-reporter": "^0.0.32", + "karma-webpack": "^2.0.13", + less: "^2.7.3", + "less-loader": "^4.1.0", + "lint-staged": "^10.5.4", + lolex: "^2.7.5", + mocha: "^5.0.4", + sinon: "^4.4.2", + "sinon-chai": "^3.3.0", + "style-loader": "^0.20.2", + tslint: "^5.14.0", + typescript: "^3.3.4000", + "uglifyjs-webpack-plugin": "^1.3.0", + "url-loader": "^1.1.2", + vite: "^2.6.4", + vue: "^3.2.47", + "vue-hot-reload-api": "^2.3.4", + "vue-html-loader": "^1.2.4", + "vue-loader": "^17.0.0", + "vue-router": "^4.0.14", + "vue-style-loader": "^4.1.3", + "vue-template-compiler": "^2.6.14" +}; +var pkg = { + name, + version: version$1, + title, + description, + homepage, + keywords, + main, + typings, + files, + scripts, + repository, + author, + license, + bugs, + dependencies, + devDependencies +}; +const directives = { + display: style.display, + width: style.width, + height: style.height, + margin: style.margin, + padding: style.padding, + font: style.font, + color: style.color, + "bg-color": style.bgColor, + resize, + "line-clamp": lineClamp +}; +const ViewUI = { + ...components, + iButton: _sfc_main$2c, + iCircle: Circle, + iCol: Col, + iContent: Content, + iForm: Form, + iFooter: Footer, + iHeader: Header, + iInput: Input, + iMenu: Menu, + iOption, + iProgress, + iSelect: Select, + iSwitch: Switch, + iTable: Table, + iTime: Time +}; +const install = function(app, opts = {}) { + if (install.installed) + return; + if (opts.locale) { + localeFile.use(opts.locale); + } + if (opts.i18n) { + localeFile.i18n(opts.i18n); + } + Object.keys(ViewUI).forEach((key2) => { + app.component(key2, ViewUI[key2]); + }); + Object.keys(directives).forEach((key2) => { + app.directive(key2, directives[key2]); + }); + app.config.globalProperties.$VIEWUI = { + size: opts.size || "", + capture: "capture" in opts ? opts.capture : true, + transfer: "transfer" in opts ? opts.transfer : "", + cell: { + arrow: opts.cell ? opts.cell.arrow ? opts.cell.arrow : "" : "", + customArrow: opts.cell ? opts.cell.customArrow ? opts.cell.customArrow : "" : "", + arrowSize: opts.cell ? opts.cell.arrowSize ? opts.cell.arrowSize : "" : "" + }, + menu: { + arrow: opts.menu ? opts.menu.arrow ? opts.menu.arrow : "" : "", + customArrow: opts.menu ? opts.menu.customArrow ? opts.menu.customArrow : "" : "", + arrowSize: opts.menu ? opts.menu.arrowSize ? opts.menu.arrowSize : "" : "" + }, + modal: { + maskClosable: opts.modal ? "maskClosable" in opts.modal ? opts.modal.maskClosable : "" : "" + }, + tabs: { + closeIcon: opts.tabs ? opts.tabs.closeIcon ? opts.tabs.closeIcon : "" : "", + customCloseIcon: opts.tabs ? opts.tabs.customCloseIcon ? opts.tabs.customCloseIcon : "" : "", + closeIconSize: opts.tabs ? opts.tabs.closeIconSize ? opts.tabs.closeIconSize : "" : "" + }, + select: { + arrow: opts.select ? opts.select.arrow ? opts.select.arrow : "" : "", + customArrow: opts.select ? opts.select.customArrow ? opts.select.customArrow : "" : "", + arrowSize: opts.select ? opts.select.arrowSize ? opts.select.arrowSize : "" : "" + }, + colorPicker: { + arrow: opts.colorPicker ? opts.colorPicker.arrow ? opts.colorPicker.arrow : "" : "", + customArrow: opts.colorPicker ? opts.colorPicker.customArrow ? opts.colorPicker.customArrow : "" : "", + arrowSize: opts.colorPicker ? opts.colorPicker.arrowSize ? opts.colorPicker.arrowSize : "" : "" + }, + cascader: { + arrow: opts.cascader ? opts.cascader.arrow ? opts.cascader.arrow : "" : "", + customArrow: opts.cascader ? opts.cascader.customArrow ? opts.cascader.customArrow : "" : "", + arrowSize: opts.cascader ? opts.cascader.arrowSize ? opts.cascader.arrowSize : "" : "", + itemArrow: opts.cascader ? opts.cascader.itemArrow ? opts.cascader.itemArrow : "" : "", + customItemArrow: opts.cascader ? opts.cascader.customItemArrow ? opts.cascader.customItemArrow : "" : "", + itemArrowSize: opts.cascader ? opts.cascader.itemArrowSize ? opts.cascader.itemArrowSize : "" : "" + }, + tree: { + arrow: opts.tree ? opts.tree.arrow ? opts.tree.arrow : "" : "", + customArrow: opts.tree ? opts.tree.customArrow ? opts.tree.customArrow : "" : "", + arrowSize: opts.tree ? opts.tree.arrowSize ? opts.tree.arrowSize : "" : "" + }, + datePicker: { + icon: opts.datePicker ? opts.datePicker.icon ? opts.datePicker.icon : "" : "", + customIcon: opts.datePicker ? opts.datePicker.customIcon ? opts.datePicker.customIcon : "" : "", + iconSize: opts.datePicker ? opts.datePicker.iconSize ? opts.datePicker.iconSize : "" : "" + }, + timePicker: { + icon: opts.timePicker ? opts.timePicker.icon ? opts.timePicker.icon : "" : "", + customIcon: opts.timePicker ? opts.timePicker.customIcon ? opts.timePicker.customIcon : "" : "", + iconSize: opts.timePicker ? opts.timePicker.iconSize ? opts.timePicker.iconSize : "" : "" + }, + typography: { + copyConfig: opts.typography ? opts.typography.copyConfig ? opts.typography.copyConfig : "" : "", + editConfig: opts.typography ? opts.typography.editConfig ? opts.typography.editConfig : "" : "", + ellipsisConfig: opts.typography ? opts.typography.ellipsisConfig ? opts.typography.ellipsisConfig : "" : "" + }, + space: { + size: opts.space ? opts.space.size ? opts.space.size : "" : "" + }, + image: { + toolbar: opts.image ? opts.image.toolbar ? opts.image.toolbar : "" : "" + } + }; + app.config.globalProperties.$Spin = Spin; + app.config.globalProperties.$Loading = index$3; + app.config.globalProperties.$Message = $Message; + app.config.globalProperties.$Notice = index$2; + app.config.globalProperties.$Modal = Modal; + app.config.globalProperties.$ImagePreview = ImagePreview; + app.config.globalProperties.$Copy = Copy; + app.config.globalProperties.$ScrollIntoView = index$1; + app.config.globalProperties.$ScrollTop = index; + app.config.globalProperties.$Date = dayjs; +}; +const version = pkg.version; +const locale = localeFile.use; +const i18n = localeFile.i18n; +const lang = (code) => { + const langObject = window["viewuiplus/locale"].default; + if (code === langObject.i.locale) + localeFile.use(langObject); + else + console.log(`The ${code} language pack is not loaded.`); +}; +const API = { + version, + locale, + i18n, + install, + lang, + ...components +}; +export { Affix, Alert, Anchor, AnchorLink, _sfc_main$2q as Auth, AutoComplete, Avatar, AvatarList, BackTop, Badge, Breadcrumb, BreadcrumbItem, _sfc_main$2c as Button, ButtonGroup, Calendar, _sfc_main$22 as Captcha, Card, Carousel, CarouselItem, Cascader, Cell, CellGroup, Checkbox, CheckboxGroup, Circle, City, Col, Collapse, ColorPicker, Content, Copy, CountDown, CountUp, DatePicker, _sfc_main$1r as Description, DescriptionList, Divider, Drawer, Dropdown, DropdownItem, DropdownMenu, Ellipsis, _sfc_main$1l as Email, Exception, Footer, FooterToolbar, Form, FormItem, GlobalFooter, Grid, GridItem, Header, Icon, Image, ImagePreview, Input, InputNumber, Layout, _sfc_main$16 as Link, List$1 as List, ListItem, ListItemMeta, index$3 as LoadingBar, Login, Menu, MenuGroup, MenuItem, $Message as Message, _sfc_main$Z as Mobile, Modal, index$2 as Notice, Notification, NotificationItem, NotificationTab, NumberInfo, Numeral, iOption as Option, OptionGroup, Page, PageHeader, Panel, _sfc_main$I as Paragraph, _sfc_main$H as Password, Poptip, iProgress as Progress, Radio, RadioGroup, Rate, Result, Row, Scroll, index$1 as ScrollIntoView, index as ScrollTop, Select, Sider, Skeleton, SkeletonItem, Slider, _sfc_main$w as Space, Spin, Split, Step, Steps, Submenu, _sfc_main$q as Submit, Switch, TabPane, Table, TablePaste, Tabs, Tag, TagSelect, TagSelectOption, _sfc_main$f as Text, Time, TimePicker, Timeline, TimelineItem, _sfc_main$c as Title, Tooltip, _sfc_main$8 as Transfer, Tree, TreeSelect, Trend, Typography, Upload, _sfc_main$1 as UserName, WordCount, API as default, i18n, install, lang, locale, version }; diff --git a/dist/viewuiplus.min.js b/dist/viewuiplus.min.js new file mode 100644 index 0000000000000000000000000000000000000000..f34c8ea4ae77f8cd246140069267e12b1bbd1ba6 --- /dev/null +++ b/dist/viewuiplus.min.js @@ -0,0 +1,73 @@ +(function(B,t){typeof exports=="object"&&typeof module!="undefined"?t(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],t):(B=typeof globalThis!="undefined"?globalThis:B||self,t(B.ViewUIPlus={},B.Vue))})(this,function(B,t){"use strict";const H=typeof window!="undefined",fe=function(){return H&&document.addEventListener?function(e,n,i,l=!1){e&&n&&i&&e.addEventListener(n,i,l)}:function(e,n,i){e&&n&&i&&e.attachEvent("on"+n,i)}}(),ue=function(){return H&&document.removeEventListener?function(e,n,i,l=!1){e&&n&&e.removeEventListener(n,i,l)}:function(e,n,i){e&&n&&e.detachEvent("on"+n,i)}}();var S=(e,n)=>{const i=e.__vccOpts||e;for(const[l,r]of n)i[l]=r;return i};const Uc="ivu-affix";function ys(e,n){const i=n?"pageYOffset":"pageXOffset",l=n?"scrollTop":"scrollLeft";let r=e[i];return H&&typeof r!="number"&&(r=window.document.documentElement[l]),r}function vc(e){if(!H)return;const n=e.getBoundingClientRect(),i=ys(window,!0),l=ys(window),r=window.document.body,s=r.clientTop||0,a=r.clientLeft||0;return{top:n.top+i-s,left:n.left+l-a}}const jc={name:"Affix",emits:["on-change"],props:{offsetTop:{type:Number,default:0},offsetBottom:{type:Number},useCapture:{type:Boolean,default:!1}},data(){return{affix:!1,styles:{},slot:!1,slotStyle:{}}},computed:{offsetType(){let e="top";return this.offsetBottom>=0&&(e="bottom"),e},classes(){return[{[`${Uc}`]:this.affix}]}},mounted(){fe(window,"scroll",this.handleScroll,this.useCapture),fe(window,"resize",this.handleScroll,this.useCapture),t.nextTick(()=>{this.handleScroll()})},beforeUnmount(){ue(window,"scroll",this.handleScroll,this.useCapture),ue(window,"resize",this.handleScroll,this.useCapture)},methods:{handleScroll(){if(!H)return;const e=this.affix,n=ys(window,!0),i=vc(this.$el),l=window.innerHeight,r=this.$el.getElementsByTagName("div")[0].offsetHeight;i.top-this.offsetTopn&&this.offsetType=="top"&&e&&(this.slot=!1,this.slotStyle={},this.affix=!1,this.styles=null,this.$emit("on-change",!1)),i.top+this.offsetBottom+r>n+l&&this.offsetType=="bottom"&&!e?(this.affix=!0,this.styles={bottom:`${this.offsetBottom}px`,left:`${i.left}px`,width:`${this.$el.offsetWidth}px`},this.$emit("on-change",!0)):i.top+this.offsetBottom+rc?c:d+h;d>c&&(m=d-ho(m,c,h))}o(n,i,a)}function Ne(e,n,i){typeof n=="string"?i=[n]:i=n;let l=e.$parent,r=l.$options.name;for(;l&&(!r||i.indexOf(r)<0);)l=l.$parent,l&&(r=l.$options.name);return l}function ki(e,n){let i=[];const l=e.$parent;return l?(l.$options.name===n&&i.push(l),i.concat(ki(l,n))):[]}const ed=function(e){return(e||"").replace(/^[\s\uFEFF]+|[\s\uFEFF]+$/g,"")};function Hr(e,n){if(!e||!n)return!1;if(n.indexOf(" ")!==-1)throw new Error("className should not contain space.");return e.classList?e.classList.contains(n):(" "+e.className+" ").indexOf(" "+n+" ")>-1}function ws(e,n){if(!e)return;let i=e.className;const l=(n||"").split(" ");for(let r=0,s=l.length;r({media:n,matches:!1,on(){},off(){}});window.matchMedia=window.matchMedia||e}const id=/#([^#]+)$/;async function sd(e,n="unnamed"){if(!H)return Promise.reject();try{const l=await(await fetch(e)).blob();if(!l)return Promise.reject();const r=URL.createObjectURL(l),s=document.createElement("a");return s.setAttribute("href",r),s.setAttribute("download",n),s.click(),URL.revokeObjectURL(r),Promise.resolve()}catch(i){return Promise.reject(i)}}const wt="ivu-alert",rd={name:"Alert",components:{Icon:se},props:{type:{validator(e){return V(e,["success","info","warning","error"])},default:"info"},closable:{type:Boolean,default:!1},showIcon:{type:Boolean,default:!1},banner:{type:Boolean,default:!1},fade:{type:Boolean,default:!0}},data(){return{closed:!1,desc:!1}},computed:{wrapClasses(){return[`${wt}`,`${wt}-${this.type}`,{[`${wt}-with-icon`]:this.showIcon,[`${wt}-with-desc`]:this.desc,[`${wt}-with-banner`]:this.banner}]},messageClasses(){return`${wt}-message`},descClasses(){return`${wt}-desc`},closeClasses(){return`${wt}-close`},iconClasses(){return`${wt}-icon`},iconType(){let e="";switch(this.type){case"success":e="ios-checkmark-circle";break;case"info":e="ios-information-circle";break;case"warning":e="ios-alert";break;case"error":e="ios-close-circle";break}return this.desc&&(e+="-outline"),e}},methods:{close(e){this.closed=!0,this.$emit("on-close",e)}},mounted(){this.desc=this.$slots.desc!==void 0}};function ld(e,n,i,l,r,s){const a=t.resolveComponent("Icon");return t.openBlock(),t.createBlock(t.Transition,{name:i.fade?"fade":""},{default:t.withCtx(()=>[r.closed?t.createCommentVNode("",!0):(t.openBlock(),t.createElementBlock("div",{key:0,class:t.normalizeClass(s.wrapClasses)},[i.showIcon?(t.openBlock(),t.createElementBlock("span",{key:0,class:t.normalizeClass(s.iconClasses)},[t.renderSlot(e.$slots,"icon",{},()=>[t.createVNode(a,{type:s.iconType},null,8,["type"])])],2)):t.createCommentVNode("",!0),t.createElementVNode("span",{class:t.normalizeClass(s.messageClasses)},[t.renderSlot(e.$slots,"default")],2),t.createElementVNode("span",{class:t.normalizeClass(s.descClasses)},[t.renderSlot(e.$slots,"desc")],2),i.closable?(t.openBlock(),t.createElementBlock("a",{key:1,class:t.normalizeClass(s.closeClasses),onClick:n[0]||(n[0]=(...o)=>s.close&&s.close(...o))},[t.renderSlot(e.$slots,"close",{},()=>[t.createVNode(a,{type:"ios-close"})])],2)):t.createCommentVNode("",!0)],2))]),_:3},8,["name"])}var Wr=S(rd,[["render",ld]]);const ad={name:"Anchor",provide(){return{AnchorInstance:this}},emits:["on-change","on-select"],props:{affix:{type:Boolean,default:!0},offsetTop:{type:Number,default:0},offsetBottom:Number,bounds:{type:Number,default:5},container:null,showInk:{type:Boolean,default:!1},scrollOffset:{type:Number,default:0}},data(){return{prefix:"ivu-anchor",isAffixed:!1,inkTop:0,animating:!1,currentLink:"",currentId:"",scrollContainer:null,scrollElement:null,wrapperTop:0,upperFirstTitle:!0,links:[]}},computed:{wrapperComponent(){return this.affix?"Affix":"div"},wrapperStyle(){return{maxHeight:this.offsetTop?`calc(100vh - ${this.offsetTop}px)`:"100vh"}},containerIsWindow(){return this.scrollContainer===window},titlesOffsetArr(){const n=this.links.map(l=>l.link.href).map(l=>l.split("#")[1]);let i=[];return H&&n.forEach(l=>{const r=document.getElementById(l);r&&i.push({link:`#${l}`,offset:r.offsetTop-this.scrollElement.offsetTop})}),i}},methods:{handleAffixStateChange(e){this.isAffixed=this.affix&&e},handleScroll(e){if(this.upperFirstTitle=!!this.titlesOffsetArr[0]&&e.target.scrollTop{this.animating=!1}),this.handleSetInkTop()},handleSetInkTop(){if(!H)return;const e=document.querySelector(`a[data-href="${this.currentLink}"]`);if(!e)return;const n=e.offsetTop,i=n<0?this.offsetTop:n;this.inkTop=i},getCurrentScrollAtTitleId(e){let n=-1,i=this.titlesOffsetArr.length,l={link:"#",offset:0};for(e+=this.bounds;++n=r.offset&&e<(s&&s.offset||1/0)){l=this.titlesOffsetArr[n];break}}this.currentLink=l.link,this.handleSetInkTop()},getContainer(){!H||(this.scrollContainer=this.container?typeof this.container=="string"?document.querySelector(this.container):this.container:window,this.scrollElement=this.container?this.scrollContainer:document.documentElement||document.body)},removeListener(){ue(this.scrollContainer,"scroll",this.handleScroll),ue(window,"hashchange",this.handleHashChange)},init(){this.handleHashChange(),t.nextTick(()=>{this.removeListener(),this.getContainer(),this.wrapperTop=this.containerIsWindow?0:this.scrollElement.offsetTop,this.handleScrollTo(),this.handleSetInkTop(),this.titlesOffsetArr[0]&&(this.upperFirstTitle=this.scrollElement.scrollTopi.id===e);this.links.splice(n,1)}},watch:{$route(){this.currentLink="",this.currentId="",this.handleHashChange(),t.nextTick(()=>{this.handleScrollTo()})},container(){this.init()},currentLink(e,n){this.$emit("on-change",e,n)}},mounted(){this.init()},beforeUnmount(){this.removeListener()}};function od(e,n,i,l,r,s){return t.openBlock(),t.createBlock(t.resolveDynamicComponent(s.wrapperComponent),{"offset-top":i.offsetTop,"offset-bottom":i.offsetBottom,onOnChange:s.handleAffixStateChange},{default:t.withCtx(()=>[t.createElementVNode("div",{class:t.normalizeClass(`${r.prefix}-wrapper`),style:t.normalizeStyle(s.wrapperStyle)},[t.createElementVNode("div",{class:t.normalizeClass(`${r.prefix}`)},[t.createElementVNode("div",{class:t.normalizeClass(`${r.prefix}-ink`)},[t.withDirectives(t.createElementVNode("span",{class:t.normalizeClass(`${r.prefix}-ink-ball`),style:t.normalizeStyle({top:`${r.inkTop}px`})},null,6),[[t.vShow,i.showInk]])],2),t.renderSlot(e.$slots,"default")],2)],6)]),_:3},40,["offset-top","offset-bottom","onOnChange"])}var Ur=S(ad,[["render",od]]);function Ee(e=32){const n="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890",i=n.length;let l="";for(let r=0;r{}):H&&(window.location.href=this.href)}},mounted(){this.AnchorInstance.addLink(this.id,this),t.nextTick(()=>{this.AnchorInstance.init()})},beforeUnmount(){this.AnchorInstance.removeLink(this.id)}},dd=["href","data-scroll-offset","data-href","title"];function hd(e,n,i,l,r,s){return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(s.anchorLinkClasses)},[t.createElementVNode("a",{class:t.normalizeClass(s.linkTitleClasses),href:i.href,"data-scroll-offset":i.scrollOffset,"data-href":i.href,onClick:n[0]||(n[0]=t.withModifiers((...a)=>s.goAnchor&&s.goAnchor(...a),["prevent"])),title:i.title},t.toDisplayString(i.title),11,dd),t.renderSlot(e.$slots,"default")],2)}var vr=S(cd,[["render",hd]]),en={props:{to:{type:[Object,String]},replace:{type:Boolean,default:!1},target:{type:String,validator(e){return V(e,["_blank","_self","_parent","_top"])},default:"_self"},append:{type:Boolean,required:!1,default:!1}},computed:{linkUrl(){if(typeof this.to!=="string")return null;if(this.to.includes("//"))return this.to;const n=this.$router;if(n){const i=this.$route,l=n.resolve(this.to,i,this.append);return l?l.href:this.to}return this.to}},methods:{handleOpenTo(){if(!H)return;const e=this.$router;let n=this.to;if(e){const i=this.$route,l=e.resolve(this.to,i,this.append);n=l?l.href:this.to}typeof this.to!="string"&&window.open(n)},handleClick(e=!1){const n=this.$router;!H||(e?this.handleOpenTo():n?typeof this.to=="string"&&this.to.includes("//")?window.location.href=this.to:this.replace?this.$router.replace(this.to,()=>{}):this.$router.push(this.to,()=>{}):window.location.href=this.to)},handleCheckClick(e,n=!1){if(this.to){if(this.target==="_blank")return this.handleOpenTo(),!1;e.preventDefault(),this.handleClick(n)}}}};function fd(e,n){let i=!1;return n.forEach(l=>{e.includes(l)&&(i=!0)}),i}const jr={name:"Auth",mixins:[en],emits:["click"],props:{authority:{type:[String,Array,Function,Boolean],default:!0},access:{type:[String,Array]},prevent:{type:Boolean,default:!1},message:{type:String,default:"\u60A8\u6CA1\u6709\u6743\u9650\u8FDB\u884C\u6B64\u64CD\u4F5C"},customTip:{type:Boolean,default:!1},display:{type:String}},computed:{isPermission(){let e;if(typeof this.authority=="boolean")e=this.authority;else if(this.authority instanceof Function)e=this.authority();else{const n=typeof this.authority=="string"?[this.authority]:this.authority,i=typeof this.access=="string"?[this.access]:this.access;e=fd(n,i)}return e},options(){let e={};return this.display&&(e.display=this.display),{class:{"ivu-auth":!0,"ivu-auth-permission":this.isPermission,"ivu-auth-no-math":!this.isPermission,"ivu-auth-redirect":!this.isPermission&&this.to,"ivu-auth-prevent":this.prevent},style:e}}},render(){return this.isPermission?t.h("div",this.options,this.$slots.default()):this.to?t.h("div",this.options):this.prevent?t.h("div",Object.assign({},this.options,{onClick:this.handlePreventClick}),[t.h("div",{class:"ivu-auth-prevent-no-match"},this.$slots.default())]):t.h("div",this.options,this.$slots.noMatch())},methods:{handlePreventClick(e){this.isPermission||(this.customTip||this.$Message.info({content:this.message,duration:3}),this.$emit("click",e))}},created(){!this.isPermission&&this.to&&this.handleClick(!1)}};var St=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:{};function ud(e){throw new Error('Could not dynamically require "'+e+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var Kr={exports:{}};/**! + * @fileOverview Kickass library to create and place poppers near their reference elements. + * @version 1.16.1 + * @license + * Copyright (c) 2016 Federico Zivolo and contributors + * + * 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: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * 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. + */(function(e,n){(function(i,l){e.exports=l()})(St,function(){var i=typeof window!="undefined"&&typeof document!="undefined"&&typeof navigator!="undefined",l=function(){for(var f=["Edge","Trident","Firefox"],p=0;p=0)return 1;return 0}();function r(f){var p=!1;return function(){p||(p=!0,window.Promise.resolve().then(function(){p=!1,f()}))}}function s(f){var p=!1;return function(){p||(p=!0,setTimeout(function(){p=!1,f()},l))}}var a=i&&window.Promise,o=a?r:s;function d(f){var p={};return f&&p.toString.call(f)==="[object Function]"}function c(f,p){if(f.nodeType!==1)return[];var b=f.ownerDocument.defaultView,w=b.getComputedStyle(f,null);return p?w[p]:w}function h(f){return f.nodeName==="HTML"?f:f.parentNode||f.host}function m(f){if(!f)return document.body;switch(f.nodeName){case"HTML":case"BODY":return f.ownerDocument.body;case"#document":return f.body}var p=c(f),b=p.overflow,w=p.overflowX,_=p.overflowY;return/(auto|scroll|overlay)/.test(b+_+w)?f:m(h(f))}function g(f){return f&&f.referenceNode?f.referenceNode:f}var y=i&&!!(window.MSInputMethodContext&&document.documentMode),C=i&&/MSIE 10/.test(navigator.userAgent);function u(f){return f===11?y:f===10?C:y||C}function x(f){if(!f)return document.documentElement;for(var p=u(10)?document.body:null,b=f.offsetParent||null;b===p&&f.nextElementSibling;)b=(f=f.nextElementSibling).offsetParent;var w=b&&b.nodeName;return!w||w==="BODY"||w==="HTML"?f?f.ownerDocument.documentElement:document.documentElement:["TH","TD","TABLE"].indexOf(b.nodeName)!==-1&&c(b,"position")==="static"?x(b):b}function I(f){var p=f.nodeName;return p==="BODY"?!1:p==="HTML"||x(f.firstElementChild)===f}function O(f){return f.parentNode!==null?O(f.parentNode):f}function v(f,p){if(!f||!f.nodeType||!p||!p.nodeType)return document.documentElement;var b=f.compareDocumentPosition(p)&Node.DOCUMENT_POSITION_FOLLOWING,w=b?f:p,_=b?p:f,N=document.createRange();N.setStart(w,0),N.setEnd(_,0);var D=N.commonAncestorContainer;if(f!==D&&p!==D||w.contains(_))return I(D)?D:x(D);var z=O(f);return z.host?v(z.host,p):v(f,O(p).host)}function T(f){var p=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"top",b=p==="top"?"scrollTop":"scrollLeft",w=f.nodeName;if(w==="BODY"||w==="HTML"){var _=f.ownerDocument.documentElement,N=f.ownerDocument.scrollingElement||_;return N[b]}return f[b]}function k(f,p){var b=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,w=T(p,"top"),_=T(p,"left"),N=b?-1:1;return f.top+=w*N,f.bottom+=w*N,f.left+=_*N,f.right+=_*N,f}function M(f,p){var b=p==="x"?"Left":"Top",w=b==="Left"?"Right":"Bottom";return parseFloat(f["border"+b+"Width"])+parseFloat(f["border"+w+"Width"])}function E(f,p,b,w){return Math.max(p["offset"+f],p["scroll"+f],b["client"+f],b["offset"+f],b["scroll"+f],u(10)?parseInt(b["offset"+f])+parseInt(w["margin"+(f==="Height"?"Top":"Left")])+parseInt(w["margin"+(f==="Height"?"Bottom":"Right")]):0)}function U(f){var p=f.body,b=f.documentElement,w=u(10)&&getComputedStyle(b);return{height:E("Height",p,b,w),width:E("Width",p,b,w)}}var Q=function(f,p){if(!(f instanceof p))throw new TypeError("Cannot call a class as a function")},R=function(){function f(p,b){for(var w=0;w2&&arguments[2]!==void 0?arguments[2]:!1,w=u(10),_=p.nodeName==="HTML",N=A(f),D=A(p),z=m(f),F=c(p),X=parseFloat(F.borderTopWidth),ee=parseFloat(F.borderLeftWidth);b&&_&&(D.top=Math.max(D.top,0),D.left=Math.max(D.left,0));var G=Z({top:N.top-D.top-X,left:N.left-D.left-ee,width:N.width,height:N.height});if(G.marginTop=0,G.marginLeft=0,!w&&_){var le=parseFloat(F.marginTop),re=parseFloat(F.marginLeft);G.top-=X-le,G.bottom-=X-le,G.left-=ee-re,G.right-=ee-re,G.marginTop=le,G.marginLeft=re}return(w&&!b?p.contains(z):p===z&&z.nodeName!=="BODY")&&(G=k(G,p)),G}function $(f){var p=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,b=f.ownerDocument.documentElement,w=P(f,b),_=Math.max(b.clientWidth,window.innerWidth||0),N=Math.max(b.clientHeight,window.innerHeight||0),D=p?0:T(b),z=p?0:T(b,"left"),F={top:D-w.top+w.marginTop,left:z-w.left+w.marginLeft,width:_,height:N};return Z(F)}function j(f){var p=f.nodeName;if(p==="BODY"||p==="HTML")return!1;if(c(f,"position")==="fixed")return!0;var b=h(f);return b?j(b):!1}function L(f){if(!f||!f.parentElement||u())return document.documentElement;for(var p=f.parentElement;p&&c(p,"transform")==="none";)p=p.parentElement;return p||document.documentElement}function te(f,p,b,w){var _=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!1,N={top:0,left:0},D=_?L(f):v(f,g(p));if(w==="viewport")N=$(D,_);else{var z=void 0;w==="scrollParent"?(z=m(h(p)),z.nodeName==="BODY"&&(z=f.ownerDocument.documentElement)):w==="window"?z=f.ownerDocument.documentElement:z=w;var F=P(z,D,_);if(z.nodeName==="HTML"&&!j(D)){var X=U(f.ownerDocument),ee=X.height,G=X.width;N.top+=F.top-F.marginTop,N.bottom=ee+F.top,N.left+=F.left-F.marginLeft,N.right=G+F.left}else N=F}b=b||0;var le=typeof b=="number";return N.left+=le?b:b.left||0,N.top+=le?b:b.top||0,N.right-=le?b:b.right||0,N.bottom-=le?b:b.bottom||0,N}function ie(f){var p=f.width,b=f.height;return p*b}function de(f,p,b,w,_){var N=arguments.length>5&&arguments[5]!==void 0?arguments[5]:0;if(f.indexOf("auto")===-1)return f;var D=te(b,w,N,_),z={top:{width:D.width,height:p.top-D.top},right:{width:D.right-p.right,height:D.height},bottom:{width:D.width,height:D.bottom-p.bottom},left:{width:p.left-D.left,height:D.height}},F=Object.keys(z).map(function(le){return Y({key:le},z[le],{area:ie(z[le])})}).sort(function(le,re){return re.area-le.area}),X=F.filter(function(le){var re=le.width,ae=le.height;return re>=b.clientWidth&&ae>=b.clientHeight}),ee=X.length>0?X[0].key:F[0].key,G=f.split("-")[1];return ee+(G?"-"+G:"")}function pe(f,p,b){var w=arguments.length>3&&arguments[3]!==void 0?arguments[3]:null,_=w?L(p):v(p,g(b));return P(b,_,w)}function be(f){var p=f.ownerDocument.defaultView,b=p.getComputedStyle(f),w=parseFloat(b.marginTop||0)+parseFloat(b.marginBottom||0),_=parseFloat(b.marginLeft||0)+parseFloat(b.marginRight||0),N={width:f.offsetWidth+_,height:f.offsetHeight+w};return N}function ke(f){var p={left:"right",right:"left",bottom:"top",top:"bottom"};return f.replace(/left|right|bottom|top/g,function(b){return p[b]})}function Me(f,p,b){b=b.split("-")[0];var w=be(f),_={width:w.width,height:w.height},N=["right","left"].indexOf(b)!==-1,D=N?"top":"left",z=N?"left":"top",F=N?"height":"width",X=N?"width":"height";return _[D]=p[D]+p[F]/2-w[F]/2,b===z?_[z]=p[z]-w[X]:_[z]=p[ke(z)],_}function We(f,p){return Array.prototype.find?f.find(p):f.filter(p)[0]}function at(f,p,b){if(Array.prototype.findIndex)return f.findIndex(function(_){return _[p]===b});var w=We(f,function(_){return _[p]===b});return f.indexOf(w)}function ot(f,p,b){var w=b===void 0?f:f.slice(0,at(f,"name",b));return w.forEach(function(_){_.function&&console.warn("`modifier.function` is deprecated, use `modifier.fn`!");var N=_.function||_.fn;_.enabled&&d(N)&&(p.offsets.popper=Z(p.offsets.popper),p.offsets.reference=Z(p.offsets.reference),p=N(p,_))}),p}function W(){if(!this.state.isDestroyed){var f={instance:this,styles:{},arrowStyles:{},attributes:{},flipped:!1,offsets:{}};f.offsets.reference=pe(this.state,this.popper,this.reference,this.options.positionFixed),f.placement=de(this.options.placement,f.offsets.reference,this.popper,this.reference,this.options.modifiers.flip.boundariesElement,this.options.modifiers.flip.padding),f.originalPlacement=f.placement,f.positionFixed=this.options.positionFixed,f.offsets.popper=Me(this.popper,f.offsets.reference,f.placement),f.offsets.popper.position=this.options.positionFixed?"fixed":"absolute",f=ot(this.modifiers,f),this.state.isCreated?this.options.onUpdate(f):(this.state.isCreated=!0,this.options.onCreate(f))}}function ne(f,p){return f.some(function(b){var w=b.name,_=b.enabled;return _&&w===p})}function ce(f){for(var p=[!1,"ms","Webkit","Moz","O"],b=f.charAt(0).toUpperCase()+f.slice(1),w=0;wD[re]&&(f.offsets.popper[G]+=z[G]+ae-D[re]),f.offsets.popper=Z(f.offsets.popper);var Se=z[G]+z[X]/2-ae/2,Mt=c(f.instance.popper),Qt=parseFloat(Mt["margin"+ee]),tt=parseFloat(Mt["border"+ee+"Width"]),mn=Se-f.offsets.popper[G]-Qt-tt;return mn=Math.max(Math.min(D[X]-ae,mn),0),f.arrowElement=w,f.offsets.arrow=(b={},q(b,G,Math.round(mn)),q(b,le,""),b),f}function ht(f){return f==="end"?"start":f==="start"?"end":f}var Dt=["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"],ft=Dt.slice(3);function ps(f){var p=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,b=ft.indexOf(f),w=ft.slice(b+1).concat(ft.slice(0,b));return p?w.reverse():w}var Zt={FLIP:"flip",CLOCKWISE:"clockwise",COUNTERCLOCKWISE:"counterclockwise"};function Or(f,p){if(ne(f.instance.modifiers,"inner")||f.flipped&&f.placement===f.originalPlacement)return f;var b=te(f.instance.popper,f.instance.reference,p.padding,p.boundariesElement,f.positionFixed),w=f.placement.split("-")[0],_=ke(w),N=f.placement.split("-")[1]||"",D=[];switch(p.behavior){case Zt.FLIP:D=[w,_];break;case Zt.CLOCKWISE:D=ps(w);break;case Zt.COUNTERCLOCKWISE:D=ps(w,!0);break;default:D=p.behavior}return D.forEach(function(z,F){if(w!==z||D.length===F+1)return f;w=f.placement.split("-")[0],_=ke(w);var X=f.offsets.popper,ee=f.offsets.reference,G=Math.floor,le=w==="left"&&G(X.right)>G(ee.left)||w==="right"&&G(X.left)G(ee.top)||w==="bottom"&&G(X.top)G(b.right),Se=G(X.top)G(b.bottom),Qt=w==="left"&&re||w==="right"&&ae||w==="top"&&Se||w==="bottom"&&Mt,tt=["top","bottom"].indexOf(w)!==-1,mn=!!p.flipVariations&&(tt&&N==="start"&&re||tt&&N==="end"&&ae||!tt&&N==="start"&&Se||!tt&&N==="end"&&Mt),kx=!!p.flipVariationsByContent&&(tt&&N==="start"&&ae||tt&&N==="end"&&re||!tt&&N==="start"&&Mt||!tt&&N==="end"&&Se),Wc=mn||kx;(le||Qt||Wc)&&(f.flipped=!0,(le||Qt)&&(w=D[F+1]),Wc&&(N=ht(N)),f.placement=w+(N?"-"+N:""),f.offsets.popper=Y({},f.offsets.popper,Me(f.instance.popper,f.offsets.reference,f.placement)),f=ot(f.instance.modifiers,f,"flip"))}),f}function bi(f){var p=f.offsets,b=p.popper,w=p.reference,_=f.placement.split("-")[0],N=Math.floor,D=["top","bottom"].indexOf(_)!==-1,z=D?"right":"bottom",F=D?"left":"top",X=D?"width":"height";return b[z]N(w[z])&&(f.offsets.popper[F]=N(w[z])),f}function Lr(f,p,b,w){var _=f.match(/((?:\-|\+)?\d*\.?\d*)(.*)/),N=+_[1],D=_[2];if(!N)return f;if(D.indexOf("%")===0){var z=void 0;switch(D){case"%p":z=b;break;case"%":case"%r":default:z=w}var F=Z(z);return F[p]/100*N}else if(D==="vh"||D==="vw"){var X=void 0;return D==="vh"?X=Math.max(document.documentElement.clientHeight,window.innerHeight||0):X=Math.max(document.documentElement.clientWidth,window.innerWidth||0),X/100*N}else return N}function fx(f,p,b,w){var _=[0,0],N=["right","left"].indexOf(w)!==-1,D=f.split(/(\+|\-)/).map(function(ee){return ee.trim()}),z=D.indexOf(We(D,function(ee){return ee.search(/,|\s/)!==-1}));D[z]&&D[z].indexOf(",")===-1&&console.warn("Offsets separated by white space(s) are deprecated, use a comma (,) instead.");var F=/\s*,\s*|\s+/,X=z!==-1?[D.slice(0,z).concat([D[z].split(F)[0]]),[D[z].split(F)[1]].concat(D.slice(z+1))]:[D];return X=X.map(function(ee,G){var le=(G===1?!N:N)?"height":"width",re=!1;return ee.reduce(function(ae,Se){return ae[ae.length-1]===""&&["+","-"].indexOf(Se)!==-1?(ae[ae.length-1]=Se,re=!0,ae):re?(ae[ae.length-1]+=Se,re=!1,ae):ae.concat(Se)},[]).map(function(ae){return Lr(ae,le,p,b)})}),X.forEach(function(ee,G){ee.forEach(function(le,re){ct(le)&&(_[G]+=le*(ee[re-1]==="-"?-1:1))})}),_}function ux(f,p){var b=p.offset,w=f.placement,_=f.offsets,N=_.popper,D=_.reference,z=w.split("-")[0],F=void 0;return ct(+b)?F=[+b,0]:F=fx(b,N,D,z),z==="left"?(N.top+=F[0],N.left-=F[1]):z==="right"?(N.top+=F[0],N.left+=F[1]):z==="top"?(N.left+=F[0],N.top-=F[1]):z==="bottom"&&(N.left+=F[0],N.top+=F[1]),f.popper=N,f}function mx(f,p){var b=p.boundariesElement||x(f.instance.popper);f.instance.reference===b&&(b=x(b));var w=ce("transform"),_=f.instance.popper.style,N=_.top,D=_.left,z=_[w];_.top="",_.left="",_[w]="";var F=te(f.instance.popper,f.instance.reference,p.padding,b,f.positionFixed);_.top=N,_.left=D,_[w]=z,p.boundaries=F;var X=p.priority,ee=f.offsets.popper,G={primary:function(re){var ae=ee[re];return ee[re]F[re]&&!p.escapeWithReference&&(Se=Math.min(ee[ae],F[re]-(re==="right"?ee.width:ee.height))),q({},ae,Se)}};return X.forEach(function(le){var re=["left","top"].indexOf(le)!==-1?"primary":"secondary";ee=Y({},ee,G[re](le))}),f.offsets.popper=ee,f}function px(f){var p=f.placement,b=p.split("-")[0],w=p.split("-")[1];if(w){var _=f.offsets,N=_.reference,D=_.popper,z=["bottom","top"].indexOf(b)!==-1,F=z?"left":"top",X=z?"width":"height",ee={start:q({},F,N[F]),end:q({},F,N[F]+N[X]-D[X])};f.offsets.popper=Y({},D,ee[w])}return f}function gx(f){if(!Ci(f.instance.modifiers,"hide","preventOverflow"))return f;var p=f.offsets.reference,b=We(f.instance.modifiers,function(w){return w.name==="preventOverflow"}).boundaries;if(p.bottomb.right||p.top>b.bottom||p.right2&&arguments[2]!==void 0?arguments[2]:{};Q(this,f),this.scheduleUpdate=function(){return requestAnimationFrame(w.update)},this.update=o(this.update.bind(this)),this.options=Y({},f.Defaults,_),this.state={isDestroyed:!1,isCreated:!1,scrollParents:[]},this.reference=p&&p.jquery?p[0]:p,this.popper=b&&b.jquery?b[0]:b,this.options.modifiers={},Object.keys(Y({},f.Defaults.modifiers,_.modifiers)).forEach(function(D){w.options.modifiers[D]=Y({},f.Defaults.modifiers[D]||{},_.modifiers?_.modifiers[D]:{})}),this.modifiers=Object.keys(this.options.modifiers).map(function(D){return Y({name:D},w.options.modifiers[D])}).sort(function(D,z){return D.order-z.order}),this.modifiers.forEach(function(D){D.enabled&&d(D.onLoad)&&D.onLoad(w.reference,w.popper,w.options,D,w.state)}),this.update();var N=this.options.eventsEnabled;N&&this.enableEventListeners(),this.state.eventsEnabled=N}return R(f,[{key:"update",value:function(){return W.call(this)}},{key:"destroy",value:function(){return De.call(this)}},{key:"enableEventListeners",value:function(){return Re.call(this)}},{key:"disableEventListeners",value:function(){return Ue.call(this)}}]),f}();return gs.Utils=(typeof window!="undefined"?window:St).PopperUtils,gs.placements=Dt,gs.Defaults=bx,gs})})(Kr);var qr=Kr.exports;let zt=0,wi=0;function tn(){zt++}function md(){wi++}const pd={name:"Drop",emits:["mouseenter","mouseleave","click"],props:{placement:{type:String,default:"bottom-start"},className:{type:String},transfer:{type:Boolean},eventsEnabled:{type:Boolean,default:!1},visible:{type:Boolean},classes:{type:Object,default:()=>{}},styles:{type:Object,default:()=>{}},transitionName:{type:String,default:"transition-drop"},boundariesElement:{default:"window"}},data(){return{popper:null,width:"",popperStatus:!1,tIndex:this.handleGetIndex()}},computed:{mergedStyle(){let e={};return this.width&&(e.minWidth=`${this.width}px`),this.transfer&&(e["z-index"]=1060+this.tIndex),Object.assign({},this.styles,e)},mergedClass(){return Object.assign({},this.classes,{[this.className]:this.className})}},methods:{update(){t.nextTick(()=>{this.popper?(this.popper.update(),this.popperStatus=!0):this.popper=new qr(this.$parent.$refs.reference,this.$refs.drop,{eventsEnabled:this.eventsEnabled,placement:this.placement,modifiers:{computeStyle:{gpuAcceleration:!1},preventOverflow:{boundariesElement:this.boundariesElement}},onCreate:()=>{this.resetTransformOrigin(),t.nextTick(this.popper.update())},onUpdate:()=>{this.resetTransformOrigin()}}),this.$parent.$options.name==="iSelect"&&(this.width=parseInt(ut(this.$parent.$el,"width"))),this.tIndex=this.handleGetIndex()})},destroy(){this.popper&&setTimeout(()=>{this.popper&&!this.popperStatus&&(this.popper.popper.style.display="none",this.popper.destroy(),this.popper=null),this.popperStatus=!1},300)},resetTransformOrigin(){if(!this.popper)return;let e=this.popper.popper.getAttribute("x-placement"),n=e.split("-")[0],i=e.split("-")[1];e==="left"||e==="right"||(this.popper.popper.style.transformOrigin=n==="bottom"||n!=="top"&&i==="start"?"center top":"center bottom")},handleGetIndex(){return tn(),zt},handleMouseenter(e){this.$emit("mouseenter",e)},handleMouseleave(e){this.$emit("mouseleave",e)},handleOnUpdatePopper(){this.update()},handleOnDestroyPopper(){this.destroy()},handleClick(e){this.$emit("click",e)}},beforeUnmount(){this.popper&&(this.popper.destroy(),this.popper=null)}};function gd(e,n,i,l,r,s){return t.openBlock(),t.createBlock(t.Teleport,{to:"body",disabled:!i.transfer},[t.createVNode(t.Transition,{name:i.transitionName},{default:t.withCtx(()=>[t.withDirectives(t.createElementVNode("div",t.mergeProps({class:["ivu-select-dropdown",s.mergedClass],ref:"drop",style:s.mergedStyle},e.$attrs,{onMouseenter:n[0]||(n[0]=(...a)=>s.handleMouseenter&&s.handleMouseenter(...a)),onMouseleave:n[1]||(n[1]=(...a)=>s.handleMouseleave&&s.handleMouseleave(...a)),onClick:n[2]||(n[2]=t.withModifiers((...a)=>s.handleClick&&s.handleClick(...a),["stop"]))}),[t.renderSlot(e.$slots,"default")],16),[[t.vShow,i.visible]])]),_:3},8,["name"])],8,["disabled"])}var pn=S(pd,[["render",gd]]);function yd(e){H&&typeof window.viewuiplus!="undefined"&&("langs"in viewuiplus||(viewuiplus.langs={}),viewuiplus.langs[e.i.locale]=e)}const xs={i:{locale:"zh-CN",select:{placeholder:"\u8BF7\u9009\u62E9",noMatch:"\u65E0\u5339\u914D\u6570\u636E",loading:"\u52A0\u8F7D\u4E2D"},table:{noDataText:"\u6682\u65E0\u6570\u636E",noFilteredDataText:"\u6682\u65E0\u7B5B\u9009\u7ED3\u679C",confirmFilter:"\u7B5B\u9009",resetFilter:"\u91CD\u7F6E",clearFilter:"\u5168\u90E8",sumText:"\u5408\u8BA1"},datepicker:{selectDate:"\u9009\u62E9\u65E5\u671F",selectTime:"\u9009\u62E9\u65F6\u95F4",startTime:"\u5F00\u59CB\u65F6\u95F4",endTime:"\u7ED3\u675F\u65F6\u95F4",clear:"\u6E05\u7A7A",ok:"\u786E\u5B9A",datePanelLabel:"[yyyy\u5E74] [m\u6708]",month:"\u6708",month1:"1 \u6708",month2:"2 \u6708",month3:"3 \u6708",month4:"4 \u6708",month5:"5 \u6708",month6:"6 \u6708",month7:"7 \u6708",month8:"8 \u6708",month9:"9 \u6708",month10:"10 \u6708",month11:"11 \u6708",month12:"12 \u6708",year:"\u5E74",weekStartDay:"0",weeks:{sun:"\u65E5",mon:"\u4E00",tue:"\u4E8C",wed:"\u4E09",thu:"\u56DB",fri:"\u4E94",sat:"\u516D"},months:{m1:"1\u6708",m2:"2\u6708",m3:"3\u6708",m4:"4\u6708",m5:"5\u6708",m6:"6\u6708",m7:"7\u6708",m8:"8\u6708",m9:"9\u6708",m10:"10\u6708",m11:"11\u6708",m12:"12\u6708"}},transfer:{titles:{source:"\u6E90\u5217\u8868",target:"\u76EE\u7684\u5217\u8868"},filterPlaceholder:"\u8BF7\u8F93\u5165\u641C\u7D22\u5185\u5BB9",notFoundText:"\u5217\u8868\u4E3A\u7A7A"},modal:{okText:"\u786E\u5B9A",cancelText:"\u53D6\u6D88"},poptip:{okText:"\u786E\u5B9A",cancelText:"\u53D6\u6D88"},page:{prev:"\u4E0A\u4E00\u9875",next:"\u4E0B\u4E00\u9875",total:"\u5171",item:"\u6761",items:"\u6761",prev5:"\u5411\u524D 5 \u9875",next5:"\u5411\u540E 5 \u9875",page:"\u6761/\u9875",goto:"\u8DF3\u81F3",p:"\u9875"},rate:{star:"\u661F",stars:"\u661F"},time:{before:"\u524D",after:"\u540E",just:"\u521A\u521A",seconds:"\u79D2",minutes:"\u5206\u949F",hours:"\u5C0F\u65F6",days:"\u5929"},tree:{emptyText:"\u6682\u65E0\u6570\u636E"},image:{zoomIn:"\u653E\u5927",zoomOut:"\u7F29\u5C0F",rotateLeft:"\u5DE6\u65CB\u8F6C",rotateRight:"\u53F3\u65CB\u8F6C",fail:"\u5931\u8D25",preview:"\u9884\u89C8"}}};yd(xs);var Cd=function(n){return bd(n)&&!kd(n)};function bd(e){return!!e&&typeof e=="object"}function kd(e){var n=Object.prototype.toString.call(e);return n==="[object RegExp]"||n==="[object Date]"||xd(e)}var wd=typeof Symbol=="function"&&Symbol.for,Sd=wd?Symbol.for("react.element"):60103;function xd(e){return e.$$typeof===Sd}function Bd(e){return Array.isArray(e)?[]:{}}function Si(e,n){return n.clone!==!1&&n.isMergeableObject(e)?$n(Bd(e),e,n):e}function Vd(e,n,i){return e.concat(n).map(function(l){return Si(l,i)})}function Ed(e,n,i){var l={};return i.isMergeableObject(e)&&Object.keys(e).forEach(function(r){l[r]=Si(e[r],i)}),Object.keys(n).forEach(function(r){!i.isMergeableObject(n[r])||!e[r]?l[r]=Si(n[r],i):l[r]=$n(e[r],n[r],i)}),l}function $n(e,n,i){i=i||{},i.arrayMerge=i.arrayMerge||Vd,i.isMergeableObject=i.isMergeableObject||Cd;var l=Array.isArray(n),r=Array.isArray(e),s=l===r;return s?l?i.arrayMerge(e,n,i):Ed(e,n,i):Si(n,i)}$n.all=function(n,i){if(!Array.isArray(n))throw new Error("first argument should be an array");return n.reduce(function(l,r){return $n(l,r,i)},{})};var Td=$n;const Nd=/(%|)\{([0-9a-zA-Z_]+)\}/g;function Id(){function e(i,l){return Object.prototype.hasOwnProperty.call(i,l)}function n(i,...l){return l.length===1&&typeof l[0]=="object"&&(l=l[0]),(!l||!l.hasOwnProperty)&&(l={}),i===void 0?"":i.replace(Nd,(r,s,a,o)=>{let d;return i[o-1]==="{"&&i[o+r.length]==="}"?a:(d=e(l,a)?l[a]:null,d==null?"":d)})}return n}const _d=Id();let xi=xs;const Dd={zh:xs};let Yr=null,Gr={},ze=null,Md=function(){if(Reflect.has(this,"$t"))return this.$t(...arguments);if(ze&&ze.global)return ze.global.t(...arguments);if(ze&&ze.locale){if(!Gr[ze.locale]||Yr!=ze.locale){Gr[ze.locale]=!0;let e=ze.getLocaleMessage(ze.locale)||{},n={};Td(n,Dd[ze.locale],e),xi=n,ze.setLocaleMessage(ze.locale,n),Yr=ze.locale}return ze.hlang(...arguments)}};const Jr=function(e,n){let i=Md.apply(this,arguments);if(i!=null)return i;const l=e.split(".");let r=xi;for(let s=0,a=l.length;s[]},clearable:{type:[Function,Boolean],default:!1},inputElementId:{type:String},placeholder:{type:String},queryProp:{type:String,default:""},prefix:{type:String},maxTagCount:{type:Number},maxTagPlaceholder:{type:Function},allowCreate:{type:Boolean},showCreateItem:{type:Boolean}},data(){return{prefixCls:Ln,query:"",inputLength:20,remoteInitialLabel:this.initialLabel,preventRemoteCall:!1}},computed:{singleDisplayClasses(){const{filterable:e,multiple:n,showPlaceholder:i}=this;return[{[Ln+"-head-with-prefix"]:this.showPrefix,[Ln+"-placeholder"]:i&&!e,[Ln+"-selected-value"]:!i&&!n&&!e}]},singleDisplayValue(){return this.multiple&&this.values.length>0||this.filterable?"":`${this.selectedSingle}`||this.localePlaceholder},showPlaceholder(){let e=!1;if(this.multiple)!this.values.length>0&&(e=!0);else{const n=this.values[0];(typeof n=="undefined"||String(n).trim()==="")&&(e=!this.remoteInitialLabel)}return e},resetSelect(){return!this.showPlaceholder&&this.clearable},inputStyle(){let e={};return this.multiple&&(this.showPlaceholder?e.width="100%":e.width=`${this.inputLength}px`),e},localePlaceholder(){return this.placeholder===void 0?this.t("i.select.placeholder"):this.placeholder},selectedSingle(){const e=this.values[0];return e?e.label:this.remoteInitialLabel||""},selectedMultiple(){return(this.multiple?this.values:[]).filter((n,i)=>this.maxTagCount===void 0||i0),n||this.prefix},arrowSize(){const e=this.globalConfig;let n="";return e&&e.select.arrowSize&&(n=e.select.arrowSize),n}},methods:{onInputFocus(){this.$emit("on-input-focus")},onInputBlur(){this.showCreateItem||(this.values.length||(this.query=""),this.$emit("on-input-blur"))},removeTag(e){if(this.disabled)return!1;this.SelectInstance.handleOnSelectSelected(e)},resetInputState(){this.inputLength=this.$refs.input.value.length*12+20,this.$emit("on-keydown")},handleInputDelete(e){const n=e.target.value;this.multiple&&this.selectedMultiple.length&&this.query===""&&n===""&&this.removeTag(this.selectedMultiple[this.selectedMultiple.length-1])},handleInputEnter(e){this.$emit("on-enter"),this.showCreateItem&&e.stopPropagation()},onHeaderClick(e){this.filterable&&e.target===this.$el&&this.$refs.input.focus()},onClear(){this.$emit("on-clear")}},watch:{values([e]){if(!!this.filterable){if(this.preventRemoteCall=!0,this.multiple){this.query="",this.preventRemoteCall=!1;return}typeof e=="undefined"||e===""||e===null?this.query="":this.query=e.label,t.nextTick(()=>this.preventRemoteCall=!1)}},query(e){if(this.preventRemoteCall){this.preventRemoteCall=!1;return}this.$emit("on-query-change",e)},queryProp(e){e!==this.query&&(this.query=e)}}},Pd={key:1,class:"ivu-tag ivu-tag-checked"},$d={class:"ivu-tag-text ivu-select-max-tag"},Od=["id","disabled","placeholder"];function Ld(e,n,i,l,r,s){const a=t.resolveComponent("Icon");return t.openBlock(),t.createElementBlock("div",{onClick:n[6]||(n[6]=(...o)=>s.onHeaderClick&&s.onHeaderClick(...o)),class:t.normalizeClass(s.headCls)},[s.showPrefix?(t.openBlock(),t.createElementBlock("span",{key:0,class:t.normalizeClass([r.prefixCls+"-prefix"])},[t.renderSlot(e.$slots,"prefix",{},()=>[i.prefix?(t.openBlock(),t.createBlock(a,{key:0,type:i.prefix},null,8,["type"])):t.createCommentVNode("",!0)])],2)):t.createCommentVNode("",!0),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(s.selectedMultiple,(o,d)=>(t.openBlock(),t.createElementBlock("div",{class:"ivu-tag ivu-tag-checked",key:d},[t.createElementVNode("span",{class:t.normalizeClass(["ivu-tag-text",{"ivu-select-multiple-tag-hidden":o.disabled}])},t.toDisplayString(o.tag!==void 0?o.tag:o.label),3),o.disabled?t.createCommentVNode("",!0):(t.openBlock(),t.createBlock(a,{key:0,type:"ios-close",onClick:t.withModifiers(c=>s.removeTag(o),["stop"])},null,8,["onClick"]))]))),128)),i.maxTagCount!==void 0&&i.values.length>i.maxTagCount?(t.openBlock(),t.createElementBlock("div",Pd,[t.createElementVNode("span",$d,[i.maxTagPlaceholder?(t.openBlock(),t.createElementBlock(t.Fragment,{key:0},[t.createTextVNode(t.toDisplayString(i.maxTagPlaceholder(i.values.length-i.maxTagCount)),1)],64)):(t.openBlock(),t.createElementBlock(t.Fragment,{key:1},[t.createTextVNode("+ "+t.toDisplayString(i.values.length-i.maxTagCount)+"...",1)],64))])])):t.createCommentVNode("",!0),t.withDirectives(t.createElementVNode("span",{class:t.normalizeClass(s.singleDisplayClasses)},t.toDisplayString(s.singleDisplayValue),3),[[t.vShow,s.singleDisplayValue]]),i.filterable?t.withDirectives((t.openBlock(),t.createElementBlock("input",{key:2,id:i.inputElementId,type:"text","onUpdate:modelValue":n[0]||(n[0]=o=>r.query=o),disabled:i.disabled,class:t.normalizeClass([r.prefixCls+"-input"]),placeholder:s.showPlaceholder?s.localePlaceholder:"",style:t.normalizeStyle(s.inputStyle),autocomplete:"off",spellcheck:"false",onKeydown:[n[1]||(n[1]=(...o)=>s.resetInputState&&s.resetInputState(...o)),n[2]||(n[2]=t.withKeys((...o)=>s.handleInputDelete&&s.handleInputDelete(...o),["delete"])),n[3]||(n[3]=t.withKeys((...o)=>s.handleInputEnter&&s.handleInputEnter(...o),["enter"]))],onFocus:n[4]||(n[4]=(...o)=>s.onInputFocus&&s.onInputFocus(...o)),onBlur:n[5]||(n[5]=(...o)=>s.onInputBlur&&s.onInputBlur(...o)),ref:"input"},null,46,Od)),[[t.vModelText,r.query]]):t.createCommentVNode("",!0),s.resetSelect?(t.openBlock(),t.createBlock(a,{key:3,type:"ios-close-circle",class:t.normalizeClass([r.prefixCls+"-arrow"]),onClick:t.withModifiers(s.onClear,["stop"])},null,8,["class","onClick"])):t.createCommentVNode("",!0),!s.resetSelect&&!i.remote?(t.openBlock(),t.createBlock(a,{key:4,type:s.arrowType,custom:s.customArrowType,size:s.arrowSize,class:t.normalizeClass([r.prefixCls+"-arrow"])},null,8,["type","custom","size","class"])):t.createCommentVNode("",!0)],2)}var Fd=S(zd,[["render",Ld]]);const Ad="click",Fn=Object.create(null),Bi=Object.create(null),Rd=[Fn,Bi],Xr=function(n,i,l){const{target:r}=l,s=function(d){const{el:c}=d;if(c!==r&&!c.contains(r)){const{binding:h}=d;h.modifiers.stop&&l.stopPropagation(),h.modifiers.prevent&&l.preventDefault(),h.value.call(n,l)}},a=function(d){return i[d].forEach(s)};Object.keys(i).forEach(a)},Zr=function(n){Xr(this,Fn,n)},Qr=function(n){Xr(this,Bi,n)},el=function(n){return n?Zr:Qr},Bs=Object.defineProperties({},{$_captureInstances:{value:Fn},$_nonCaptureInstances:{value:Bi},$_onCaptureEvent:{value:Zr},$_onNonCaptureEvent:{value:Qr},beforeMount:{value:function(n,i){if(typeof i.value!="function")throw new TypeError("Binding value must be a function.");let l;const r=i.modifiers;r.click?l="click":r.mousedown?l="mousedown":r.touchstart?l="touchstart":l=Ad;const s=i.arg,a={...i,modifiers:{capture:!1,prevent:!1,stop:!1,...i.modifiers}},o=s?Fn:Bi;Array.isArray(o[l])||(o[l]=[]),o[l].push({el:n,binding:a})===1&&typeof document=="object"&&document&&document.addEventListener(l,el(s),s)}},unmounted:{value:function(n){const i=function(s){return s.el!==n},l=function(s){const a=Object.keys(s);if(a.length){const o=s===Fn,d=function(h){const m=s[h].filter(i);m.length?s[h]=m:(typeof document=="object"&&document&&document.removeEventListener(h,el(o),o),delete s[h])};a.forEach(d)}};Rd.forEach(l)}},version:{enumerable:!0,value:"3.7.1"}});var xe={inject:{FormInstance:{default:""},FormItemInstance:{default:null}},computed:{itemDisabled(){let e=this.disabled;return!e&&this.FormInstance&&(e=this.FormInstance.disabled),e?!0:null}},methods:{handleFormItemChange(e,n){this.FormItemInstance&&(e==="blur"?this.FormItemInstance.formBlur(n):e==="change"&&this.FormItemInstance.formChange(n))}}};const nt="ivu-select",Hd=(e,n,i)=>{const l=JSON.stringify(e),r=JSON.stringify(n),s=JSON.stringify(i.map(a=>a.value));return l!==r||l!==s||s!==r},tl=300,Wd={name:"iSelect",mixins:[ge,xe],components:{Drop:pn,SelectHead:Fd,Icon:se},directives:{clickOutside:Bs},emits:["on-set-default-options","on-clear","on-clickoutside","on-select","on-create","on-change","on-query-change","on-open-change","update:modelValue"],provide(){return{SelectInstance:this}},props:{modelValue:{type:[String,Number,Array],default:""},label:{type:[String,Number,Array],default:""},defaultLabel:{type:[String,Number,Array],default:""},multiple:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},clearable:{type:Boolean,default:!1},placeholder:{type:String},filterable:{type:Boolean,default:!1},filterMethod:{type:Function},remoteMethod:{type:Function},loading:{type:Boolean,default:!1},loadingText:{type:String},size:{validator(e){return V(e,["small","large","default"])},default(){const e=t.getCurrentInstance().appContext.config.globalProperties;return!e.$VIEWUI||e.$VIEWUI.size===""?"default":e.$VIEWUI.size}},labelInValue:{type:Boolean,default:!1},notFoundText:{type:String},placement:{validator(e){return V(e,["top","bottom","top-start","bottom-start","top-end","bottom-end"])},default:"bottom-start"},transfer:{type:Boolean,default(){const e=t.getCurrentInstance().appContext.config.globalProperties;return!e.$VIEWUI||e.$VIEWUI.transfer===""?!1:e.$VIEWUI.transfer}},autoComplete:{type:Boolean,default:!1},name:{type:String},elementId:{type:String},transferClassName:{type:String},prefix:{type:String},maxTagCount:{type:Number},maxTagPlaceholder:{type:Function},allowCreate:{type:Boolean,default:!1},capture:{type:Boolean,default(){const e=t.getCurrentInstance().appContext.config.globalProperties;return e.$VIEWUI?e.$VIEWUI.capture:!0}},filterByLabel:{type:Boolean,default:!1},eventsEnabled:{type:Boolean,default:!1},hideNotFound:{type:Boolean,default:!1}},mounted(){if(!this.remote&&this.slotOptions.length>0&&(this.values=this.getInitialValue().map(e=>typeof e!="number"&&!e?null:this.getOptionData(e)).filter(Boolean)),this.checkUpdateStatus(),this.remote&&this.modelValue&&this.defaultLabel){if(!this.multiple)this.query=this.defaultLabel,this.modelValue&&this.defaultLabel&&this.values.push({label:this.defaultLabel,value:this.modelValue});else if(this.multiple&&this.defaultLabel instanceof Array&&this.modelValue.length===this.defaultLabel.length){const e=this.modelValue.map((n,i)=>({value:n,label:this.defaultLabel[i]}));setTimeout(()=>{this.values=e})}}},data(){return{prefixCls:nt,values:[],dropDownWidth:0,visible:!1,focusIndex:-1,isFocused:!1,query:"",initialLabel:this.label,hasMouseHoverHead:!1,slotOptions:[],caretPosition:-1,lastRemoteQuery:"",unchangedQuery:!0,hasExpectedValue:!1,isTyping:!1,preventRemoteCall:!1,filterQueryChange:!1,slotOptionsMap:new Map,isLocking:!1}},computed:{classes(){return[`${nt}`,{[`${nt}-visible`]:this.visible,[`${nt}-disabled`]:this.itemDisabled,[`${nt}-multiple`]:this.multiple,[`${nt}-single`]:!this.multiple,[`${nt}-${this.size}`]:!!this.size}]},dropdownCls(){return{[nt+"-dropdown-transfer"]:this.transfer,[nt+"-multiple"]:this.multiple&&this.transfer,["ivu-auto-complete"]:this.autoComplete,[this.transferClassName]:this.transferClassName}},selectionCls(){return{[`${nt}-selection`]:!this.autoComplete,[`${nt}-selection-focused`]:this.isFocused}},localeNotFoundText(){return typeof this.notFoundText=="undefined"?this.t("i.select.noMatch"):this.notFoundText},localeLoadingText(){return typeof this.loadingText=="undefined"?this.t("i.select.loading"):this.loadingText},showCreateItem(){let e=!1;const{allowCreate:n,query:i,slotOptions:l}=this;return n&&i!==""&&(e=!0,(l||[]).find(s=>s.proxy&&s.proxy.showLabel===i)&&(e=!1)),e},transitionName(){return this.placement==="bottom"?"slide-up":"slide-down"},dropVisible(){let e=!0;const n=this.slotOptions.length===0;return!this.loading&&this.remote&&this.query===""&&n&&(e=!1),this.autoComplete&&n&&(e=!1),this.visible&&e},showNotFoundLabel(){const{loading:e,remote:n,slotOptions:i,hideNotFound:l}=this,r=i||[],s=r.find(a=>a.proxy.isShow);return(r.length===0||!s)&&(!n||n&&!e)&&!l},publicValue(){return this.multiple?this.values.map(e=>e.value):(this.values[0]||{}).value},canBeCleared(){const e=this.hasMouseHoverHead,n=!this.multiple&&!this.itemDisabled&&this.clearable;return e&&n&&this.reset},selectTabindex(){return this.itemDisabled||this.filterable?-1:0},remote(){return typeof this.remoteMethod=="function"}},methods:{setQuery(e){if(e){this.onQueryChange(e);return}e===null&&(this.onQueryChange(""),this.values=[],this.lastRemoteQuery="")},clearSingleSelect(){this.multiple||this.$emit("update:modelValue",""),this.$emit("on-clear"),this.hideMenu(),this.clearable&&this.reset()},getOptionData(e){const n=this.slotOptions.find(({props:r})=>r.value===e);if(!n)return null;const{optionLabel:i,disabled:l}=n.proxy||{};return{value:e,label:i,disabled:l}},getInitialValue(){const{multiple:e,remote:n,modelValue:i}=this;let l=Array.isArray(i)?i:[i];if(!e&&(typeof l[0]=="undefined"||String(l[0]).trim()===""&&!Number.isFinite(l[0]))&&(l=[]),n&&!e&&i){const r=this.getOptionData(i);this.query=r?r.label:String(i)}return l.filter(r=>Boolean(r)||r===0)},validateOption({children:e,elm:n,propsData:i}){const l=i.value,r=i.label||"",s=n&&n.textContent||(e||[]).reduce((d,c)=>{const h=c.elm?c.elm.textContent:c.text;return`${d} ${h}`},"")||"",a=this.filterByLabel?[r].toString():[l,r,s].toString(),o=this.query.toLowerCase().trim();return a.toLowerCase().includes(o)},toggleMenu(e,n){if(this.itemDisabled)return!1;this.visible=typeof n!="undefined"?n:!this.visible,this.visible&&(this.dropDownWidth=this.$el.getBoundingClientRect().width,this.$refs.dropdown.handleOnUpdatePopper())},hideMenu(){this.toggleMenu(null,!1),this.isTyping=!1,setTimeout(()=>this.unchangedQuery=!0,tl)},onClickOutside(e){if(this.visible){if(e.type==="mousedown"){e.preventDefault();return}if(this.transfer){const n=this.$refs.dropdown.$refs.drop;if(n===e.target||n.contains(e.target))return}if(this.filterable){const n=this.$el.querySelector('input[type="text"]');this.caretPosition=n.selectionStart,t.nextTick(()=>{const i=this.caretPosition===-1?n.value.length:this.caretPosition;n.setSelectionRange(i,i)})}this.autoComplete||e.stopPropagation(),e.preventDefault(),this.hideMenu(),this.isFocused=!0,this.$emit("on-clickoutside",e)}else this.caretPosition=-1,this.isFocused=!1},reset(){this.query="",this.focusIndex=-1,this.unchangedQuery=!0,this.values=[],this.filterQueryChange=!1},handleKeydown(e){const n=e.key||e.code,i=e.keyCode||e.which;if(!(n==="Backspace"||i===8))if(this.visible){if(e.preventDefault(),n==="Tab"&&e.stopPropagation(),n==="Escape"&&(e.stopPropagation(),this.hideMenu()),n==="ArrowUp"&&this.navigateOptions(-1),n==="ArrowDown"&&this.navigateOptions(1),n==="Enter"){if(this.focusIndex===-1)return this.hideMenu();const l=this.slotOptions[this.focusIndex];if(l){const r=this.getOptionData(l.props.value);this.onOptionClick(r)}else this.hideMenu()}}else["ArrowUp","ArrowDown"].includes(e.key)&&this.toggleMenu(null,!0)},navigateOptions(e){const n=this.slotOptions,i=n.length-1;if(i<0)return;let l=this.focusIndex+e;l<0&&(l=i),l>i&&(l=0);let r,s=null;if(e>0){r=-1;for(let o=0;o=l)break}}else{r=n.length;for(let o=i;o>=0;o--){const{proxy:d}=n[o];if(!d.disabled&&(r=o),d.isShow&&s===null)s=o;else if(!d.isShow){r=o;continue}if(r<=l)break}}l=n[r].proxy.isShow?r:s,this.focusIndex=l},onOptionClick(e){if(this.multiple?(this.remote?this.lastRemoteQuery=this.lastRemoteQuery||this.query:this.lastRemoteQuery="",this.values.find(({value:i})=>i===e.value)?this.values=this.values.filter(({value:i})=>i!==e.value):this.values=this.values.concat(e),this.isFocused=!0):(this.query=String(e.label).trim(),this.values=[e],this.lastRemoteQuery="",this.hideMenu()),this.focusIndex=this.slotOptions.findIndex(n=>n?n.props.value===e.value:!1),this.filterable){const n=this.$el.querySelector('input[type="text"]');this.autoComplete||t.nextTick(()=>n.focus())}this.$emit("on-select",e),this.$refs.dropdown.handleOnUpdatePopper(),setTimeout(()=>{this.filterQueryChange=!1},tl)},onQueryChange(e){if(this.isTyping=!0,e.length>0&&e!==this.query)if(H&&this.autoComplete){let n=document.hasFocus&&document.hasFocus()&&document.activeElement===this.$el.querySelector("input");this.visible=n}else this.visible=!0;this.query=e,this.unchangedQuery=this.visible,this.filterQueryChange=!0},toggleHeaderFocus({type:e}){this.itemDisabled||(this.isFocused=e==="focus")},checkUpdateStatus(){this.getInitialValue().length>0&&this.slotOptions.length===0&&(this.hasExpectedValue=!0)},handleCreateItem(){if(this.allowCreate&&this.query!==""&&this.showCreateItem){const e=this.query;this.$emit("on-create",e),this.query="";const n={value:e,label:e,tag:void 0};this.$refs.dropdown.handleOnUpdatePopper(),setTimeout(()=>{this.onOptionClick(n)})}},handleOnSelectSelected(e){this.onOptionClick(e)},focus(){this.filterable&&(this.$refs.selectHead.$refs.input.focus(),this.toggleMenu())},lazyUpdateValue(e){const{getInitialValue:n,isLocking:i,defaultLabel:l,remote:r,modelValue:s,values:a}=this,o=!!(l&&l.length);(!!(s&&s.length)||a.length||o)&&r&&e||i||(this.isLocking=!0,t.nextTick(()=>{this.values=n().map(this.getOptionData).filter(Boolean),this.isLocking=!1}))}},watch:{modelValue(e){const{publicValue:n,values:i}=this;this.checkUpdateStatus(),e===""?(this.values=[],this.query=""):Hd(e,n,i)&&(this.lazyUpdateValue(),this.multiple||this.handleFormItemChange("change",this.publicValue))},values(e,n){const i=JSON.stringify(e),l=JSON.stringify(n);let r=this.publicValue;if(i!==l&&r!==this.modelValue){let a=this.publicValue;this.labelInValue&&(this.multiple?a=this.values:a=this.values[0]),(Array.isArray(r)&&!r.length&&this.modelValue===null||r===void 0&&this.modelValue===null)&&(r=null),this.$emit("update:modelValue",r),this.$emit("on-change",a),this.handleFormItemChange("change",a)}},query(e){this.focusIndex=-1,this.$emit("on-query-change",e);const{remoteMethod:n,lastRemoteQuery:i}=this,r=n&&(e!==""&&(e!==i||!i))&&!this.preventRemoteCall;if(this.preventRemoteCall=!1,r){const s=this.remoteMethod(e);this.initialLabel="",s&&s.then&&s.then(a=>{a&&(this.options=a)})}this.visible&&this.$refs.dropdown.handleOnUpdatePopper(),e!==""&&this.remote&&(this.lastRemoteQuery=e)},isFocused(e){(this.filterable?this.$el.querySelector('input[type="text"]'):this.$el)[this.isFocused?"focus":"blur"]();const[i]=this.values;if(i&&this.filterable&&!this.multiple&&!e){const l=String(i.label||i.value).trim();l&&this.query!==l&&(this.preventRemoteCall=!0,this.query=l)}},focusIndex(e){if(!(e<0||this.autoComplete)&&this.slotOptions[e]){const i=this.slotOptions[e].proxy.$el,l=this.$refs.dropdown.$refs.drop;let r=i.getBoundingClientRect().bottom-l.getBoundingClientRect().bottom,s=i.getBoundingClientRect().top-l.getBoundingClientRect().top;r>0&&(l.scrollTop+=r),s<0&&(l.scrollTop+=s)}},dropVisible(e){e?this.$refs.dropdown.handleOnUpdatePopper():this.$refs.dropdown.handleOnDestroyPopper()},visible(e){this.$emit("on-open-change",e)}}},Ud=["tabindex"],vd=["name","value"];function jd(e,n,i,l,r,s){const a=t.resolveComponent("select-head"),o=t.resolveComponent("Icon"),d=t.resolveComponent("Drop"),c=t.resolveDirective("click-outside");return t.withDirectives((t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(s.classes)},[t.createElementVNode("div",{ref:"reference",class:t.normalizeClass(s.selectionCls),tabindex:s.selectTabindex,onBlur:n[2]||(n[2]=(...h)=>s.toggleHeaderFocus&&s.toggleHeaderFocus(...h)),onFocus:n[3]||(n[3]=(...h)=>s.toggleHeaderFocus&&s.toggleHeaderFocus(...h)),onClick:n[4]||(n[4]=(...h)=>s.toggleMenu&&s.toggleMenu(...h)),onKeydown:[n[5]||(n[5]=t.withKeys((...h)=>s.handleKeydown&&s.handleKeydown(...h),["esc"])),n[6]||(n[6]=t.withKeys((...h)=>s.handleKeydown&&s.handleKeydown(...h),["enter"])),n[7]||(n[7]=t.withKeys(t.withModifiers((...h)=>s.handleKeydown&&s.handleKeydown(...h),["prevent"]),["up"])),n[8]||(n[8]=t.withKeys(t.withModifiers((...h)=>s.handleKeydown&&s.handleKeydown(...h),["prevent"]),["down"])),n[9]||(n[9]=t.withKeys((...h)=>s.handleKeydown&&s.handleKeydown(...h),["tab"])),n[10]||(n[10]=t.withKeys((...h)=>s.handleKeydown&&s.handleKeydown(...h),["delete"]))],onMouseenter:n[11]||(n[11]=h=>r.hasMouseHoverHead=!0),onMouseleave:n[12]||(n[12]=h=>r.hasMouseHoverHead=!1)},[t.renderSlot(e.$slots,"input",{},()=>[t.createElementVNode("input",{type:"hidden",name:i.name,value:s.publicValue},null,8,vd),t.createVNode(a,{ref:"selectHead",filterable:i.filterable,multiple:i.multiple,values:r.values,clearable:s.canBeCleared,prefix:i.prefix,disabled:e.itemDisabled,remote:s.remote,"input-element-id":i.elementId,"initial-label":r.initialLabel,placeholder:i.placeholder,"query-prop":r.query,"max-tag-count":i.maxTagCount,"max-tag-placeholder":i.maxTagPlaceholder,"allow-create":i.allowCreate,"show-create-item":s.showCreateItem,onOnQueryChange:s.onQueryChange,onOnInputFocus:n[0]||(n[0]=h=>r.isFocused=!0),onOnInputBlur:n[1]||(n[1]=h=>r.isFocused=!1),onOnClear:s.clearSingleSelect,onOnEnter:s.handleCreateItem},{prefix:t.withCtx(()=>[t.renderSlot(e.$slots,"prefix")]),_:3},8,["filterable","multiple","values","clearable","prefix","disabled","remote","input-element-id","initial-label","placeholder","query-prop","max-tag-count","max-tag-placeholder","allow-create","show-create-item","onOnQueryChange","onOnClear","onOnEnter"])])],42,Ud),t.createVNode(d,{ref:"dropdown",classes:s.dropdownCls,visible:s.dropVisible,placement:i.placement,eventsEnabled:i.eventsEnabled,transfer:i.transfer,"transition-name":"transition-drop"},{default:t.withCtx(()=>[t.withDirectives(t.createElementVNode("ul",{class:t.normalizeClass([r.prefixCls+"-not-found"])},[t.createElementVNode("li",null,t.toDisplayString(s.localeNotFoundText),1)],2),[[t.vShow,s.showNotFoundLabel&&!i.allowCreate]]),!s.remote||s.remote&&!i.loading?(t.openBlock(),t.createElementBlock("ul",{key:0,class:t.normalizeClass(r.prefixCls+"-dropdown-list")},[s.showCreateItem?(t.openBlock(),t.createElementBlock("li",{key:0,class:t.normalizeClass(r.prefixCls+"-item"),onClick:n[13]||(n[13]=(...h)=>s.handleCreateItem&&s.handleCreateItem(...h))},[t.createTextVNode(t.toDisplayString(r.query)+" ",1),t.createVNode(o,{type:"md-return-left",class:t.normalizeClass(r.prefixCls+"-item-enter")},null,8,["class"])],2)):t.createCommentVNode("",!0),t.renderSlot(e.$slots,"default")],2)):(t.openBlock(),t.createElementBlock("ul",{key:1,class:t.normalizeClass(r.prefixCls+"-dropdown-list")},[s.showCreateItem?(t.openBlock(),t.createElementBlock("li",{key:0,class:t.normalizeClass(r.prefixCls+"-item"),onClick:n[14]||(n[14]=(...h)=>s.handleCreateItem&&s.handleCreateItem(...h))},[t.createTextVNode(t.toDisplayString(r.query)+" ",1),t.createVNode(o,{type:"md-return-left",class:t.normalizeClass(r.prefixCls+"-item-enter")},null,8,["class"])],2)):t.createCommentVNode("",!0)],2)),t.withDirectives(t.createElementVNode("ul",{class:t.normalizeClass([r.prefixCls+"-loading"])},t.toDisplayString(s.localeLoadingText),3),[[t.vShow,i.loading]])]),_:3},8,["classes","visible","placement","eventsEnabled","transfer"])],2)),[[c,s.onClickOutside,i.capture],[c,s.onClickOutside,i.capture,{mousedown:!0}],[c,s.onClickOutside,i.capture,{touchstart:!0}]])}var nn=S(Wd,[["render",jd]]);const Vi="ivu-select-item",Kd={name:"iOption",componentName:"select-item",mixins:[xe],emits:["on-select-selected"],inject:{SelectInstance:{default:null},OptionGroupInstance:{default:null}},props:{value:{type:[String,Number],required:!0},label:{type:[String,Number]},disabled:{type:Boolean,default:!1},tag:{type:[String,Number]}},data(){return{searchLabel:"",autoComplete:!1,id:Ee(6),instance:null}},computed:{classes(){return[`${Vi}`,{[`${Vi}-disabled`]:this.itemDisabled,[`${Vi}-selected`]:this.selected&&!this.autoComplete,[`${Vi}-focus`]:this.isFocused}]},showLabel(){return this.label?this.label:this.value},optionLabel(){return this.label||this.$el&&this.$el.textContent},isFocused(){const e=this.SelectInstance;let n=e.slotOptions||[];const i=e.focusIndex,l=e.$slots.default;if(this.autoComplete&&l){n=[];let s=l();for(;s.length>0;){const a=s.shift();a.type&&typeof a.type=="object"&&a.type.name==="iOption"?n.push(a):Array.isArray(a.children)&&(s=s.concat(a.children))}}const r=n[i];return r&&r.props&&r.props.value===this.value},isShow(){const e=this.SelectInstance,n=e.filterable,i=e.query.toLowerCase().trim(),l=e.filterByLabel,r=e.slotOptionsMap,{props:s}=r.get(this.value)||{props:{}},a=this.label||this.$el&&this.$el.textContent;let o=(a||s.value||"").toLowerCase();l&&(o=(a||"").toLowerCase());const d=o.includes(i);return!n||n&&(d||!e.filterQueryChange)||bs(e.remoteMethod)==="function"},selected(){return(this.SelectInstance.values||[]).find(i=>i.value===this.value)}},methods:{select(){if(this.itemDisabled)return!1;this.SelectInstance.handleOnSelectSelected({value:this.value,label:this.optionLabel,tag:this.tag})},addOption(){const e=this.SelectInstance,n=this.OptionGroupInstance,{id:i,value:l,instance:r}=this;if(n&&n.optionList.push({...r,id:i,tag:"option"}),e){e.slotOptions.push({...r,id:i,tag:"option"}),e.slotOptionsMap.set(l,r);const{modelValue:s}=e;(s&&s.length||bs(s)==="number")&&e.lazyUpdateValue(!0)}},removeOption(){const e=this.OptionGroupInstance,n=this.SelectInstance,{id:i,value:l}=this;if(e){const r=e.optionList.findIndex(s=>s.id===i);r!==-1&&e.optionList.splice(r,1)}if(n){const r=this.SelectInstance,s=r.slotOptions.findIndex(a=>a.id===i);s!==-1&&r.slotOptions.splice(s,1),r.slotOptionsMap.has(l)&&r.slotOptionsMap.delete(l)}}},created(){this.instance=t.getCurrentInstance()},mounted(){this.addOption();const e=Ne(this,"iSelect");e&&(this.autoComplete=e.autoComplete)},beforeUnmount(){t.nextTick(()=>{this.removeOption(),this.instance=null})}};function qd(e,n,i,l,r,s){return t.withDirectives((t.openBlock(),t.createElementBlock("li",{class:t.normalizeClass(s.classes),onClick:n[0]||(n[0]=t.withModifiers((...a)=>s.select&&s.select(...a),["stop"])),onMousedown:n[1]||(n[1]=t.withModifiers(()=>{},["prevent"]))},[t.renderSlot(e.$slots,"default",{},()=>[t.createTextVNode(t.toDisplayString(s.showLabel),1)])],34)),[[t.vShow,s.isShow]])}var gn=S(Kd,[["render",qd]]);const Yd=` + min-height:0 !important; + max-height:none !important; + height:0 !important; + visibility:hidden !important; + overflow:hidden !important; + position:absolute !important; + z-index:-1000 !important; + top:0 !important; + right:0 !important +`,Gd=["letter-spacing","line-height","padding-top","padding-bottom","font-family","font-weight","font-size","text-rendering","text-transform","width","text-indent","padding-left","padding-right","border-width","box-sizing"];let Vs={},mt;function Jd(e,n=!1){if(!H)return;const i=e.getAttribute("id")||e.getAttribute("data-reactid")||e.getAttribute("name");if(n&&Vs[i])return Vs[i];const l=window.getComputedStyle(e),r=l.getPropertyValue("box-sizing")||l.getPropertyValue("-moz-box-sizing")||l.getPropertyValue("-webkit-box-sizing"),s=parseFloat(l.getPropertyValue("padding-bottom"))+parseFloat(l.getPropertyValue("padding-top")),a=parseFloat(l.getPropertyValue("border-bottom-width"))+parseFloat(l.getPropertyValue("border-top-width")),d={sizingStyle:Gd.map(c=>`${c}:${l.getPropertyValue(c)}`).join(";"),paddingSize:s,borderSize:a,boxSizing:r};return n&&i&&(Vs[i]=d),d}function Xd(e,n=null,i=null,l=!1){H&&!mt&&(mt=document.createElement("textarea"),document.body.appendChild(mt)),e.getAttribute("wrap")?mt.setAttribute("wrap",e.getAttribute("wrap")):mt.removeAttribute("wrap");let{paddingSize:r,borderSize:s,boxSizing:a,sizingStyle:o}=Jd(e,l);mt.setAttribute("style",`${o};${Yd}`),mt.value=e.value||e.placeholder||"";let d=Number.MIN_SAFE_INTEGER,c=Number.MAX_SAFE_INTEGER,h=mt.scrollHeight,m;if(a==="border-box"?h=h+s:a==="content-box"&&(h=h-r),n!==null||i!==null){mt.value=" ";let g=mt.scrollHeight-r;n!==null&&(d=g*n,a==="border-box"&&(d=d+r+s),h=Math.max(d,h)),i!==null&&(c=g*i,a==="border-box"&&(c=c+r+s),m=h>c?"":"hidden",h=Math.min(c,h))}return i||(m="hidden"),{height:`${h}px`,minHeight:`${d}px`,maxHeight:`${c}px`,overflowY:m}}const Be="ivu-input",Zd={name:"Input",mixins:[xe],emits:["on-enter","on-search","on-keydown","on-keypress","on-keyup","on-click","on-focus","on-blur","on-change","on-input-change","on-clear","update:modelValue"],props:{type:{validator(e){return V(e,["text","textarea","password","url","email","date","number","tel"])},default:"text"},modelValue:{type:[String,Number],default:""},size:{validator(e){return V(e,["small","large","default"])},default(){const e=t.getCurrentInstance().appContext.config.globalProperties;return!e.$VIEWUI||e.$VIEWUI.size===""?"default":e.$VIEWUI.size}},placeholder:{type:String,default:""},maxlength:{type:[String,Number]},disabled:{type:Boolean,default:!1},icon:String,autosize:{type:[Boolean,Object],default:!1},rows:{type:Number,default:2},readonly:{type:Boolean,default:!1},name:{type:String},number:{type:Boolean,default:!1},autofocus:{type:Boolean,default:!1},spellcheck:{type:Boolean,default:!1},autocomplete:{type:String,default:"off"},clearable:{type:Boolean,default:!1},elementId:{type:String},wrap:{validator(e){return V(e,["hard","soft"])},default:"soft"},prefix:{type:String,default:""},suffix:{type:String,default:""},search:{type:Boolean,default:!1},enterButton:{type:[Boolean,String],default:!1},showWordLimit:{type:Boolean,default:!1},password:{type:Boolean,default:!1},border:{type:Boolean,default:!0}},data(){return{currentValue:this.modelValue,prefixCls:Be,slotReady:!1,textareaStyles:{},isOnComposition:!1,showPassword:!1,clearableIconOffset:0}},computed:{currentType(){let e=this.type;return e==="password"&&this.password&&this.showPassword&&(e="text"),e},prepend(){let e=!1;return this.type!=="textarea"&&(e=this.$slots.prepend!==void 0),e},append(){let e=!1;return this.type!=="textarea"&&(e=this.$slots.append!==void 0),e},showPrefix(){let e=!1;return this.type!=="textarea"&&(e=this.prefix!==""||this.$slots.prefix!==void 0),e},showSuffix(){let e=!1;return this.type!=="textarea"&&(e=this.suffix!==""||this.$slots.suffix!==void 0),e},wrapClasses(){return[`${Be}-wrapper`,{[`${Be}-wrapper-${this.size}`]:!!this.size,[`${Be}-type-${this.type}`]:this.type,[`${Be}-group`]:this.prepend||this.append||this.search&&this.enterButton,[`${Be}-group-${this.size}`]:(this.prepend||this.append||this.search&&this.enterButton)&&!!this.size,[`${Be}-group-with-prepend`]:this.prepend,[`${Be}-group-with-append`]:this.append||this.search&&this.enterButton,[`${Be}-hide-icon`]:this.append,[`${Be}-with-search`]:this.search&&this.enterButton,[`${Be}-wrapper-disabled`]:this.itemDisabled}]},inputClasses(){return[`${Be}`,{[`${Be}-${this.size}`]:!!this.size,[`${Be}-disabled`]:this.itemDisabled,[`${Be}-no-border`]:!this.border,[`${Be}-with-prefix`]:this.showPrefix,[`${Be}-with-suffix`]:this.showSuffix||this.search&&this.enterButton===!1}]},textareaClasses(){return[`${Be}`,{[`${Be}-disabled`]:this.itemDisabled,[`${Be}-no-border`]:!this.border}]},upperLimit(){return this.maxlength},textLength(){return typeof this.modelValue=="number"?String(this.modelValue).length:(this.modelValue||"").length},clearableStyles(){const e={};let n=this.clearableIconOffset;return n&&(e.transform=`translateX(-${n}px)`),e}},methods:{handleEnter(e){this.$emit("on-enter",e),this.search&&this.$emit("on-search",this.currentValue)},handleKeydown(e){this.$emit("on-keydown",e)},handleKeypress(e){this.$emit("on-keypress",e)},handleKeyup(e){this.$emit("on-keyup",e)},handleIconClick(e){this.$emit("on-click",e)},handleFocus(e){this.$emit("on-focus",e)},handleBlur(e){this.$emit("on-blur",e),Ne(this,["DatePicker","TimePicker","Cascader","Search"])||this.handleFormItemChange("blur",this.currentValue)},handleComposition(e){e.type==="compositionstart"&&(this.isOnComposition=!0),e.type==="compositionend"&&(this.isOnComposition=!1,this.handleInput(e))},handleInput(e){if(this.isOnComposition)return;let n=e.target.value;this.number&&n!==""&&(n=Number.isNaN(Number(n))?n:Number(n)),this.$emit("update:modelValue",n),this.setCurrentValue(n),this.$emit("on-change",e)},handleChange(e){this.$emit("on-input-change",e)},setCurrentValue(e){e!==this.currentValue&&(t.nextTick(()=>{this.resizeTextarea()}),this.currentValue=e,Ne(this,["DatePicker","TimePicker","Cascader","Search"])||this.handleFormItemChange("change",e))},resizeTextarea(){const e=this.autosize;if(!e||this.type!=="textarea")return!1;const n=e.minRows,i=e.maxRows;this.textareaStyles=Xd(this.$refs.textarea,n,i)},focus(e){const n=this.type==="textarea"?this.$refs.textarea:this.$refs.input;n.focus(e);const{cursor:i}=e||{};if(i){const l=n.value.length;switch(i){case"start":n.setSelectionRange(0,0);break;case"end":n.setSelectionRange(l,l);break;default:n.setSelectionRange(0,l)}}},blur(){this.type==="textarea"?this.$refs.textarea.blur():this.$refs.input.blur()},handleClear(){const e={target:{value:""}};this.$emit("update:modelValue",""),this.setCurrentValue(""),this.$emit("on-change",e),this.$emit("on-clear")},handleSearch(){if(this.itemDisabled)return!1;this.$refs.input.focus(),this.$emit("on-search",this.currentValue)},handleToggleShowPassword(){if(this.itemDisabled)return!1;this.showPassword=!this.showPassword,this.focus();const e=this.currentValue.length;setTimeout(()=>{this.$refs.input.setSelectionRange(e,e)},0)},handleCalcIconOffset(){const e=this.$el.querySelectorAll(".ivu-input-group-append")[0];e?this.clearableIconOffset=e.offsetWidth:this.clearableIconOffset=0}},watch:{modelValue(e){this.setCurrentValue(e)},type(){t.nextTick(this.handleCalcIconOffset)}},mounted(){this.slotReady=!0,this.resizeTextarea(),this.handleCalcIconOffset()},updated(){t.nextTick(this.handleCalcIconOffset)}},Qd={key:4,class:"ivu-input-suffix"},eh={key:5,class:"ivu-input-word-count"},th={key:0,class:"ivu-icon ivu-icon-ios-eye-outline"},nh={key:1,class:"ivu-icon ivu-icon-ios-eye-off-outline"},ih=["id","autocomplete","spellcheck","type","placeholder","disabled","maxlength","readonly","name","value","number","autofocus"],sh={key:0,class:"ivu-icon ivu-icon-ios-search"},rh={key:9,class:"ivu-input-prefix"},lh=["id","wrap","autocomplete","spellcheck","placeholder","disabled","rows","maxlength","readonly","name","value","autofocus"],ah={key:0,class:"ivu-input-word-count"};function oh(e,n,i,l,r,s){return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(s.wrapClasses)},[i.type!=="textarea"?(t.openBlock(),t.createElementBlock(t.Fragment,{key:0},[s.prepend?t.withDirectives((t.openBlock(),t.createElementBlock("div",{key:0,class:t.normalizeClass([r.prefixCls+"-group-prepend"])},[t.renderSlot(e.$slots,"prepend")],2)),[[t.vShow,r.slotReady]]):t.createCommentVNode("",!0),i.clearable&&r.currentValue&&!e.itemDisabled?(t.openBlock(),t.createElementBlock("i",{key:1,class:t.normalizeClass(["ivu-icon",["ivu-icon-ios-close-circle",r.prefixCls+"-icon",r.prefixCls+"-icon-clear",r.prefixCls+"-icon-normal"]]),onClick:n[0]||(n[0]=(...a)=>s.handleClear&&s.handleClear(...a)),style:t.normalizeStyle(s.clearableStyles)},null,6)):i.icon?(t.openBlock(),t.createElementBlock("i",{key:2,class:t.normalizeClass(["ivu-icon",["ivu-icon-"+i.icon,r.prefixCls+"-icon",r.prefixCls+"-icon-normal"]]),onClick:n[1]||(n[1]=(...a)=>s.handleIconClick&&s.handleIconClick(...a))},null,2)):i.search&&i.enterButton===!1?(t.openBlock(),t.createElementBlock("i",{key:3,class:t.normalizeClass(["ivu-icon ivu-icon-ios-search",[r.prefixCls+"-icon",r.prefixCls+"-icon-normal",r.prefixCls+"-search-icon"]]),onClick:n[2]||(n[2]=(...a)=>s.handleSearch&&s.handleSearch(...a))},null,2)):s.showSuffix?(t.openBlock(),t.createElementBlock("span",Qd,[t.renderSlot(e.$slots,"suffix",{},()=>[i.suffix?(t.openBlock(),t.createElementBlock("i",{key:0,class:t.normalizeClass(["ivu-icon",["ivu-icon-"+i.suffix]])},null,2)):t.createCommentVNode("",!0)])])):i.showWordLimit?(t.openBlock(),t.createElementBlock("span",eh,t.toDisplayString(s.textLength)+"/"+t.toDisplayString(s.upperLimit),1)):i.password?(t.openBlock(),t.createElementBlock("span",{key:6,class:"ivu-input-suffix",onClick:n[3]||(n[3]=(...a)=>s.handleToggleShowPassword&&s.handleToggleShowPassword(...a))},[r.showPassword?(t.openBlock(),t.createElementBlock("i",th)):(t.openBlock(),t.createElementBlock("i",nh))])):t.createCommentVNode("",!0),t.createVNode(t.Transition,{name:"fade"},{default:t.withCtx(()=>[i.icon?t.createCommentVNode("",!0):(t.openBlock(),t.createElementBlock("i",{key:0,class:t.normalizeClass(["ivu-icon ivu-icon-ios-loading ivu-load-loop",[r.prefixCls+"-icon",r.prefixCls+"-icon-validate"]])},null,2))]),_:1}),t.createElementVNode("input",{id:i.elementId,autocomplete:i.autocomplete,spellcheck:i.spellcheck,ref:"input",type:s.currentType,class:t.normalizeClass(s.inputClasses),placeholder:i.placeholder,disabled:e.itemDisabled,maxlength:i.maxlength,readonly:i.readonly,name:i.name,value:r.currentValue,number:i.number,autofocus:i.autofocus,onKeyup:[n[4]||(n[4]=t.withKeys((...a)=>s.handleEnter&&s.handleEnter(...a),["enter"])),n[5]||(n[5]=(...a)=>s.handleKeyup&&s.handleKeyup(...a))],onKeypress:n[6]||(n[6]=(...a)=>s.handleKeypress&&s.handleKeypress(...a)),onKeydown:n[7]||(n[7]=(...a)=>s.handleKeydown&&s.handleKeydown(...a)),onFocus:n[8]||(n[8]=(...a)=>s.handleFocus&&s.handleFocus(...a)),onBlur:n[9]||(n[9]=(...a)=>s.handleBlur&&s.handleBlur(...a)),onCompositionstart:n[10]||(n[10]=(...a)=>s.handleComposition&&s.handleComposition(...a)),onCompositionupdate:n[11]||(n[11]=(...a)=>s.handleComposition&&s.handleComposition(...a)),onCompositionend:n[12]||(n[12]=(...a)=>s.handleComposition&&s.handleComposition(...a)),onInput:n[13]||(n[13]=(...a)=>s.handleInput&&s.handleInput(...a)),onChange:n[14]||(n[14]=(...a)=>s.handleChange&&s.handleChange(...a))},null,42,ih),s.append?t.withDirectives((t.openBlock(),t.createElementBlock("div",{key:7,class:t.normalizeClass([r.prefixCls+"-group-append"])},[t.renderSlot(e.$slots,"append")],2)),[[t.vShow,r.slotReady]]):i.search&&i.enterButton?(t.openBlock(),t.createElementBlock("div",{key:8,class:t.normalizeClass([r.prefixCls+"-group-append",r.prefixCls+"-search"]),onClick:n[15]||(n[15]=(...a)=>s.handleSearch&&s.handleSearch(...a))},[i.enterButton===!0?(t.openBlock(),t.createElementBlock("i",sh)):(t.openBlock(),t.createElementBlock(t.Fragment,{key:1},[t.createTextVNode(t.toDisplayString(i.enterButton),1)],64))],2)):s.showPrefix?(t.openBlock(),t.createElementBlock("span",rh,[t.renderSlot(e.$slots,"prefix",{},()=>[i.prefix?(t.openBlock(),t.createElementBlock("i",{key:0,class:t.normalizeClass(["ivu-icon",["ivu-icon-"+i.prefix]])},null,2)):t.createCommentVNode("",!0)])])):t.createCommentVNode("",!0)],64)):(t.openBlock(),t.createElementBlock(t.Fragment,{key:1},[t.createElementVNode("textarea",{id:i.elementId,wrap:i.wrap,autocomplete:i.autocomplete,spellcheck:i.spellcheck,ref:"textarea",class:t.normalizeClass(s.textareaClasses),style:t.normalizeStyle(r.textareaStyles),placeholder:i.placeholder,disabled:e.itemDisabled,rows:i.rows,maxlength:i.maxlength,readonly:i.readonly,name:i.name,value:r.currentValue,autofocus:i.autofocus,onKeyup:[n[16]||(n[16]=t.withKeys((...a)=>s.handleEnter&&s.handleEnter(...a),["enter"])),n[17]||(n[17]=(...a)=>s.handleKeyup&&s.handleKeyup(...a))],onKeypress:n[18]||(n[18]=(...a)=>s.handleKeypress&&s.handleKeypress(...a)),onKeydown:n[19]||(n[19]=(...a)=>s.handleKeydown&&s.handleKeydown(...a)),onFocus:n[20]||(n[20]=(...a)=>s.handleFocus&&s.handleFocus(...a)),onBlur:n[21]||(n[21]=(...a)=>s.handleBlur&&s.handleBlur(...a)),onCompositionstart:n[22]||(n[22]=(...a)=>s.handleComposition&&s.handleComposition(...a)),onCompositionupdate:n[23]||(n[23]=(...a)=>s.handleComposition&&s.handleComposition(...a)),onCompositionend:n[24]||(n[24]=(...a)=>s.handleComposition&&s.handleComposition(...a)),onInput:n[25]||(n[25]=(...a)=>s.handleInput&&s.handleInput(...a))},` + `,46,lh),i.showWordLimit?(t.openBlock(),t.createElementBlock("span",ah,t.toDisplayString(s.textLength)+"/"+t.toDisplayString(s.upperLimit),1)):t.createCommentVNode("",!0)],64))],2)}var Ze=S(Zd,[["render",oh]]);const ch={name:"AutoComplete",mixins:[xe],components:{iSelect:nn,iOption:gn,iInput:Ze},emits:["update:modelValue","on-change","on-search","on-select","on-focus","on-blur","on-clear"],props:{modelValue:{type:[String,Number],default:""},label:{type:[String,Number],default:""},data:{type:Array,default:()=>[]},disabled:{type:Boolean,default:!1},clearable:{type:Boolean,default:!1},placeholder:{type:String},size:{validator(e){return V(e,["small","large","default"])},default(){const e=t.getCurrentInstance().appContext.config.globalProperties;return!e.$VIEWUI||e.$VIEWUI.size===""?"default":e.$VIEWUI.size}},icon:{type:String},filterMethod:{type:[Function,Boolean],default:!1},placement:{validator(e){return V(e,["top","bottom","top-start","bottom-start","top-end","bottom-end"])},default:"bottom-start"},transfer:{type:Boolean,default(){const e=t.getCurrentInstance().appContext.config.globalProperties;return!e.$VIEWUI||e.$VIEWUI.transfer===""?!1:e.$VIEWUI.transfer}},name:{type:String},elementId:{type:String},transferClassName:{type:String},capture:{type:Boolean,default(){const e=t.getCurrentInstance().appContext.config.globalProperties;return e.$VIEWUI?e.$VIEWUI.capture:!0}},eventsEnabled:{type:Boolean,default:!1}},data(){return{currentValue:this.modelValue,disableEmitChange:!1}},computed:{inputIcon(){let e="";return this.clearable&&this.currentValue&&!this.disabled?e="ios-close-circle":this.icon&&(e=this.icon),e},filteredData(){return this.filterMethod?this.data.filter(e=>this.filterMethod(this.currentValue,e)):this.data}},watch:{modelValue(e){this.currentValue!==e&&(this.disableEmitChange=!0),this.currentValue=e},currentValue(e){if(this.$refs.select.setQuery(e),this.$emit("update:modelValue",e),this.disableEmitChange){this.disableEmitChange=!1;return}this.$emit("on-change",e),this.handleFormItemChange("change",e)}},methods:{remoteMethod(e){this.$emit("on-search",e)},handleSelect(e){const n=e.value;n!=null&&(this.currentValue=n,this.$refs.input.blur(),this.$emit("on-select",n))},handleFocus(e){this.$emit("on-focus",e)},handleBlur(e){this.$emit("on-blur",e)},handleClear(){!this.clearable||(this.currentValue="",this.$refs.select.reset(),this.$emit("on-clear"))},handleClickOutside(){t.nextTick(()=>{this.$refs.input.blur()})}}};function dh(e,n,i,l,r,s){const a=t.resolveComponent("i-input"),o=t.resolveComponent("i-option"),d=t.resolveComponent("i-select");return t.openBlock(),t.createBlock(d,{ref:"select",class:"ivu-auto-complete",label:i.label,disabled:e.itemDisabled,clearable:i.clearable,placeholder:i.placeholder,size:i.size,placement:i.placement,"model-value":r.currentValue,"transfer-class-name":i.transferClassName,filterable:"",remote:"","auto-complete":"","remote-method":s.remoteMethod,onOnSelect:s.handleSelect,onOnClickoutside:s.handleClickOutside,transfer:i.transfer,capture:i.capture,eventsEnabled:i.eventsEnabled},{input:t.withCtx(()=>[t.renderSlot(e.$slots,"input",{},()=>[t.createVNode(a,{"element-id":i.elementId,ref:"input",modelValue:r.currentValue,"onUpdate:modelValue":n[0]||(n[0]=c=>r.currentValue=c),name:i.name,placeholder:i.placeholder,disabled:e.itemDisabled,size:i.size,icon:s.inputIcon,onOnClick:s.handleClear,onOnFocus:s.handleFocus,onOnBlur:s.handleBlur},null,8,["element-id","modelValue","name","placeholder","disabled","size","icon","onOnClick","onOnFocus","onOnBlur"])])]),default:t.withCtx(()=>[t.renderSlot(e.$slots,"default",{},()=>[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(s.filteredData,c=>(t.openBlock(),t.createBlock(o,{value:c,key:c},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(c),1)]),_:2},1032,["value"]))),128))])]),_:3},8,["label","disabled","clearable","placeholder","size","placement","model-value","transfer-class-name","remote-method","onOnSelect","onOnClickoutside","transfer","capture","eventsEnabled"])}var nl=S(ch,[["render",dh]]);const yn="ivu-avatar",il=["small","large","default"],hh={name:"Avatar",components:{Icon:se},emits:["on-error"],props:{shape:{validator(e){return V(e,["circle","square"])},default:"circle"},size:{type:[String,Number],default(){const e=t.getCurrentInstance().appContext.config.globalProperties;return!e.$VIEWUI||e.$VIEWUI.size===""?"default":e.$VIEWUI.size}},src:{type:String},icon:{type:String},customIcon:{type:String,default:""}},data(){return{prefixCls:yn,scale:1,childrenWidth:0,isSlotShow:!1,slotTemp:null}},computed:{classes(){return[`${yn}`,`${yn}-${this.shape}`,{[`${yn}-image`]:!!this.src,[`${yn}-icon`]:!!this.icon||!!this.customIcon,[`${yn}-${this.size}`]:V(this.size,il)}]},styles(){let e={};return this.size&&!V(this.size,il)&&(e.width=`${this.size}px`,e.height=`${this.size}px`,e.lineHeight=`${this.size}px`,e.fontSize=`${this.size/2}px`),e},childrenStyle(){let e={};return this.isSlotShow&&(e={msTransform:`scale(${this.scale})`,WebkitTransform:`scale(${this.scale})`,transform:`scale(${this.scale})`,position:"absolute",display:"inline-block",left:`calc(50% - ${Math.round(this.childrenWidth/2)}px)`}),e}},watch:{size(e,n){e!==n&&this.setScale()}},methods:{setScale(){if(this.isSlotShow=!this.src&&!this.icon,this.$refs.children){this.childrenWidth=this.$refs.children.offsetWidth;const e=this.$el.getBoundingClientRect().width;e-8s.handleError&&s.handleError(...o))},null,40,fh)):i.icon||i.customIcon?(t.openBlock(),t.createBlock(a,{key:1,type:i.icon,custom:i.customIcon},null,8,["type","custom"])):(t.openBlock(),t.createElementBlock("span",{key:2,ref:"children",class:t.normalizeClass([r.prefixCls+"-string"]),style:t.normalizeStyle(s.childrenStyle)},[t.renderSlot(e.$slots,"default")],6))],6)}var An=S(hh,[["render",uh]]),sl={emits:["on-popper-show","on-popper-hide","created","update:modelValue"],props:{eventsEnabled:{type:Boolean,default:!1},placement:{type:String,default:"bottom"},boundariesPadding:{type:Number,default:5},reference:Object,popper:Object,offset:{default:0},modelValue:{type:Boolean,default:!1},transition:String,options:{type:Object,default(){return{modifiers:{computeStyle:{gpuAcceleration:!1},preventOverflow:{boundariesElement:"window"}}}}}},data(){return{visible:this.modelValue}},watch:{modelValue:{immediate:!0,handler(e){this.visible=e,this.$emit("update:modelValue",e)}},visible(e){e?(this.handleIndexIncrease&&this.handleIndexIncrease(),this.updatePopper(),this.$emit("on-popper-show")):this.$emit("on-popper-hide"),this.$emit("update:modelValue",e)}},methods:{createPopper(){if(!/^(top|bottom|left|right)(-start|-end)?$/g.test(this.placement))return;const e=this.options,n=this.popper||this.$refs.popper,i=this.reference||this.$refs.reference;!n||!i||(this.popperJS&&this.popperJS.hasOwnProperty("destroy")&&this.popperJS.destroy(),e.eventsEnabled=this.eventsEnabled,e.placement=this.placement,e.modifiers.offset||(e.modifiers.offset={}),e.modifiers.offset.offset=this.offset,e.onCreate=()=>{t.nextTick(this.updatePopper),this.$emit("created",this)},this.popperJS=new qr(i,n,e))},updatePopper(){this.popperJS?this.popperJS.update():this.createPopper()},doDestroy(){this.visible||(this.popperJS.destroy(),this.popperJS=null)}},updated(){t.nextTick(()=>this.updatePopper())},beforeUnmount(){this.popperJS&&this.popperJS.destroy()}};const Cn="ivu-tooltip",mh={name:"Tooltip",mixins:[sl],props:{placement:{validator(e){return V(e,["top","top-start","top-end","bottom","bottom-start","bottom-end","left","left-start","left-end","right","right-start","right-end"])},default:"bottom"},content:{type:[String,Number],default:""},delay:{type:Number,default:100},disabled:{type:Boolean,default:!1},controlled:{type:Boolean,default:!1},always:{type:Boolean,default:!1},transfer:{type:Boolean,default(){const e=t.getCurrentInstance().appContext.config.globalProperties;return!e.$VIEWUI||e.$VIEWUI.transfer===""?!1:e.$VIEWUI.transfer}},theme:{validator(e){return V(e,["dark","light"])},default:"dark"},maxWidth:{type:[String,Number]},transferClassName:{type:String}},data(){return{prefixCls:Cn,tIndex:this.handleGetIndex()}},computed:{innerStyles(){const e={};return this.maxWidth&&(e["max-width"]=`${this.maxWidth}px`),e},innerClasses(){return[`${Cn}-inner`,{[`${Cn}-inner-with-width`]:!!this.maxWidth}]},dropStyles(){let e={};return this.transfer&&(e["z-index"]=1060+this.tIndex),e},dropdownCls(){return[`${Cn}-popper`,`${Cn}-${this.theme}`,{[Cn+"-transfer"]:this.transfer,[this.transferClassName]:this.transferClassName}]}},watch:{content(){this.updatePopper()}},methods:{handleShowPopper(){this.timeout&&clearTimeout(this.timeout),this.timeout=setTimeout(()=>{this.visible=!0},this.delay),this.tIndex=this.handleGetIndex()},handleClosePopper(){this.timeout&&(clearTimeout(this.timeout),this.controlled||(this.timeout=setTimeout(()=>{this.visible=!1},100)))},handleGetIndex(){return tn(),zt}},mounted(){this.always&&this.updatePopper()}};function ph(e,n,i,l,r,s){return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass([r.prefixCls]),onMouseenter:n[2]||(n[2]=(...a)=>s.handleShowPopper&&s.handleShowPopper(...a)),onMouseleave:n[3]||(n[3]=(...a)=>s.handleClosePopper&&s.handleClosePopper(...a))},[t.createElementVNode("div",{class:t.normalizeClass([r.prefixCls+"-rel"]),ref:"reference"},[t.renderSlot(e.$slots,"default")],2),(t.openBlock(),t.createBlock(t.Teleport,{to:"body",disabled:!i.transfer},[t.createVNode(t.Transition,{name:"fade"},{default:t.withCtx(()=>[t.withDirectives(t.createElementVNode("div",{ref:"popper",class:t.normalizeClass(s.dropdownCls),style:t.normalizeStyle(s.dropStyles),onMouseenter:n[0]||(n[0]=(...a)=>s.handleShowPopper&&s.handleShowPopper(...a)),onMouseleave:n[1]||(n[1]=(...a)=>s.handleClosePopper&&s.handleClosePopper(...a))},[t.createElementVNode("div",{class:t.normalizeClass([r.prefixCls+"-content"])},[t.createElementVNode("div",{class:t.normalizeClass([r.prefixCls+"-arrow"])},null,2),t.createElementVNode("div",{class:t.normalizeClass(s.innerClasses),style:t.normalizeStyle(s.innerStyles)},[t.renderSlot(e.$slots,"content",{},()=>[t.createTextVNode(t.toDisplayString(i.content),1)])],6)],2)],38),[[t.vShow,!i.disabled&&(e.visible||i.always)]])]),_:3})],8,["disabled"]))],34)}var xt=S(mh,[["render",ph]]);const gh={name:"AvatarList",components:{Avatar:An,Tooltip:xt},props:{list:{type:Array,default(){return[]}},shape:{validator(e){return V(e,["circle","square"])},default:"circle"},size:{validator(e){return V(e,["small","large","default"])},default:"default"},excessStyle:{type:Object,default(){return{}}},max:{type:Number},tooltip:{type:Boolean,default:!0},placement:{validator(e){return V(e,["top","top-start","top-end","bottom","bottom-start","bottom-end","left","left-start","left-end","right","right-start","right-end"])},default:"top"},transfer:{type:Boolean,default(){const e=t.getCurrentInstance().appContext.config.globalProperties;return!e.$VIEWUI||e.$VIEWUI.transfer===""?!1:e.$VIEWUI.transfer}}},computed:{currentList(){const e=this.list.length,n=this.max;return e<=n?[...this.list]:[...this.list].slice(0,n)}}},yh={key:0,class:"ivu-avatar-list-item ivu-avatar-list-item-excess"},Ch={key:1,class:"ivu-avatar-list-item ivu-avatar-list-item-excess"};function bh(e,n,i,l,r,s){const a=t.resolveComponent("Avatar"),o=t.resolveComponent("Tooltip");return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(["ivu-avatar-list","ivu-avatar-list-"+i.size])},[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(s.currentList,(d,c)=>(t.openBlock(),t.createElementBlock("div",{class:"ivu-avatar-list-item",key:c},[i.tooltip&&d.tip?(t.openBlock(),t.createBlock(o,{key:0,content:d.tip,placement:i.placement,transfer:i.transfer},{default:t.withCtx(()=>[t.createVNode(a,{src:d.src,size:i.size,shape:i.shape},null,8,["src","size","shape"])]),_:2},1032,["content","placement","transfer"])):(t.openBlock(),t.createBlock(a,{key:1,src:d.src,size:i.size,shape:i.shape},null,8,["src","size","shape"]))]))),128)),e.$slots.extra?(t.openBlock(),t.createElementBlock("div",yh,[t.createVNode(a,{size:i.size,shape:i.shape,style:t.normalizeStyle(i.excessStyle)},{default:t.withCtx(()=>[t.renderSlot(e.$slots,"extra")]),_:3},8,["size","shape","style"])])):i.list.length>i.max?(t.openBlock(),t.createElementBlock("div",Ch,[t.createVNode(a,{size:i.size,shape:i.shape,style:t.normalizeStyle(i.excessStyle)},{default:t.withCtx(()=>[t.renderSlot(e.$slots,"excess",{},()=>[t.createTextVNode("+"+t.toDisplayString(i.list.length-i.max),1)])]),_:3},8,["size","shape","style"])])):t.createCommentVNode("",!0)],2)}var rl=S(gh,[["render",bh]]);const Es="ivu-back-top",kh={name:"BackTop",emits:["on-click"],props:{height:{type:Number,default:400},bottom:{type:Number,default:30},right:{type:Number,default:30},duration:{type:Number,default:1e3}},data(){return{backTop:!1}},mounted(){fe(window,"scroll",this.handleScroll),fe(window,"resize",this.handleScroll)},beforeUnmount(){ue(window,"scroll",this.handleScroll),ue(window,"resize",this.handleScroll)},computed:{classes(){return[`${Es}`,{[`${Es}-show`]:this.backTop}]},styles(){return{bottom:`${this.bottom}px`,right:`${this.right}px`}},innerClasses(){return`${Es}-inner`}},methods:{handleScroll(){!H||(this.backTop=window.pageYOffset>=this.height)},back(){if(!H)return;const e=document.documentElement.scrollTop||document.body.scrollTop;ks(window,e,0,this.duration),this.$emit("on-click")}}},wh=[t.createElementVNode("i",{class:"ivu-icon ivu-icon-ios-arrow-up"},null,-1)];function Sh(e,n,i,l,r,s){return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(s.classes),style:t.normalizeStyle(s.styles),onClick:n[0]||(n[0]=(...a)=>s.back&&s.back(...a))},[t.renderSlot(e.$slots,"default",{},()=>[t.createElementVNode("div",{class:t.normalizeClass(s.innerClasses)},wh,2)])],6)}var ll=S(kh,[["render",Sh]]);const al=["blue","green","red","yellow","pink","magenta","volcano","orange","gold","lime","cyan","geekblue","purple"],pt="ivu-badge",xh={name:"Badge",props:{count:Number,dot:{type:Boolean,default:!1},overflowCount:{type:[Number,String],default:99},className:String,showZero:{type:Boolean,default:!1},text:{type:String,default:""},status:{validator(e){return V(e,["success","processing","default","error","warning"])}},type:{validator(e){return V(e,["success","primary","normal","error","warning","info"])}},offset:{type:Array},color:{type:String}},computed:{classes(){return`${pt}`},dotClasses(){return`${pt}-dot`},countClasses(){return[`${pt}-count`,{[`${this.className}`]:!!this.className,[`${pt}-count-alone`]:this.alone,[`${pt}-count-${this.type}`]:!!this.type}]},customCountClasses(){return[`${pt}-count`,`${pt}-count-custom`,{[`${this.className}`]:!!this.className}]},statusClasses(){return[`${pt}-status-dot`,{[`${pt}-status-${this.status}`]:!!this.status,[`${pt}-status-${this.color}`]:!!this.color&&V(this.color,al)}]},statusStyles(){return V(this.color,al)?{}:{backgroundColor:this.color}},styles(){const e={};return this.offset&&this.offset.length===2&&(e["margin-top"]=`${this.offset[0]}px`,e["margin-right"]=`${this.offset[1]}px`),e},finalCount(){return this.text!==""?this.text:parseInt(this.count)>=parseInt(this.overflowCount)?`${this.overflowCount}+`:this.count},badge(){let e=!1;return this.count&&(e=parseInt(this.count)!==0),this.dot&&(e=!0,this.count!==null&&parseInt(this.count)===0&&(e=!1)),this.text!==""&&(e=!0),e||this.showZero},hasCount(){return!!(this.count||this.text!==""||this.showZero&&parseInt(this.count)===0)},alone(){return this.$slots.default===void 0}}},Bh={class:"ivu-badge-status-text"};function Vh(e,n,i,l,r,s){return i.dot?(t.openBlock(),t.createElementBlock("span",{key:0,class:t.normalizeClass(s.classes),ref:"badge"},[t.renderSlot(e.$slots,"default"),t.withDirectives(t.createElementVNode("sup",{class:t.normalizeClass(s.dotClasses),style:t.normalizeStyle(s.styles)},null,6),[[t.vShow,s.badge]])],2)):i.status||i.color?(t.openBlock(),t.createElementBlock("span",{key:1,class:t.normalizeClass([s.classes,"ivu-badge-status"]),ref:"badge"},[t.createElementVNode("span",{class:t.normalizeClass(s.statusClasses),style:t.normalizeStyle(s.statusStyles)},null,6),t.createElementVNode("span",Bh,[t.renderSlot(e.$slots,"text",{},()=>[t.createTextVNode(t.toDisplayString(i.text),1)])])],2)):(t.openBlock(),t.createElementBlock("span",{key:2,class:t.normalizeClass(s.classes),ref:"badge"},[t.renderSlot(e.$slots,"default"),e.$slots.count?(t.openBlock(),t.createElementBlock("sup",{key:0,style:t.normalizeStyle(s.styles),class:t.normalizeClass(s.customCountClasses)},[t.renderSlot(e.$slots,"count")],6)):s.hasCount?t.withDirectives((t.openBlock(),t.createElementBlock("sup",{key:1,style:t.normalizeStyle(s.styles),class:t.normalizeClass(s.countClasses)},[t.renderSlot(e.$slots,"text",{},()=>[t.createTextVNode(t.toDisplayString(s.finalCount),1)])],6)),[[t.vShow,s.badge]]):t.createCommentVNode("",!0)],2))}var Ei=S(xh,[["render",Vh]]);const Eh={name:"Breadcrumb",provide(){return{BreadcrumbInstance:this}},props:{separator:{type:String,default:"/"}}},Th={class:"ivu-breadcrumb"};function Nh(e,n,i,l,r,s){return t.openBlock(),t.createElementBlock("div",Th,[t.renderSlot(e.$slots,"default")])}var Ts=S(Eh,[["render",Nh]]);const ol="ivu-breadcrumb-item",Ih={name:"BreadcrumbItem",mixins:[en],inject:["BreadcrumbInstance"],props:{},data(){return{showSeparator:!1}},computed:{linkClasses(){return`${ol}-link`},separatorClasses(){return`${ol}-separator`},separator(){return this.BreadcrumbInstance.separator}},mounted(){this.showSeparator=this.$slots.separator!==void 0}},_h=["href","target"],Dh=["innerHTML"];function Mh(e,n,i,l,r,s){return t.openBlock(),t.createElementBlock("span",null,[e.to?(t.openBlock(),t.createElementBlock("a",{key:0,href:e.linkUrl,target:e.target,class:t.normalizeClass(s.linkClasses),onClick:[n[0]||(n[0]=t.withModifiers(a=>e.handleCheckClick(a,!1),["exact"])),n[1]||(n[1]=t.withModifiers(a=>e.handleCheckClick(a,!0),["ctrl"])),n[2]||(n[2]=t.withModifiers(a=>e.handleCheckClick(a,!0),["meta"]))]},[t.renderSlot(e.$slots,"default")],10,_h)):(t.openBlock(),t.createElementBlock("span",{key:1,class:t.normalizeClass(s.linkClasses)},[t.renderSlot(e.$slots,"default")],2)),r.showSeparator?(t.openBlock(),t.createElementBlock("span",{key:3,class:t.normalizeClass(s.separatorClasses)},[t.renderSlot(e.$slots,"separator")],2)):(t.openBlock(),t.createElementBlock("span",{key:2,class:t.normalizeClass(s.separatorClasses),innerHTML:s.separator},null,10,Dh))])}var Ns=S(Ih,[["render",Mh]]);const $t="ivu-btn",Oe={name:"Button",mixins:[en,xe],components:{Icon:se},emits:["click"],props:{type:{validator(e){return V(e,["default","primary","dashed","text","info","success","warning","error"])},default:"default"},shape:{validator(e){return V(e,["circle","circle-outline"])}},size:{validator(e){return V(e,["small","large","default"])},default(){const e=t.getCurrentInstance().appContext.config.globalProperties;return!e.$VIEWUI||e.$VIEWUI.size===""?"default":e.$VIEWUI.size}},loading:Boolean,disabled:Boolean,htmlType:{default:"button",validator(e){return V(e,["button","submit","reset"])}},icon:{type:String,default:""},customIcon:{type:String,default:""},long:{type:Boolean,default:!1},ghost:{type:Boolean,default:!1}},computed:{showSlot(){return!!this.$slots.default},classes(){return[`${$t}`,`${$t}-${this.type}`,{[`${$t}-long`]:this.long,[`${$t}-${this.shape}`]:!!this.shape,[`${$t}-${this.size}`]:this.size!=="default",[`${$t}-loading`]:this.loading!=null&&this.loading,[`${$t}-icon-only`]:!this.showSlot&&(!!this.icon||!!this.customIcon||this.loading),[`${$t}-ghost`]:this.ghost}]},isHrefPattern(){const{to:e}=this;return!!e},tagName(){const{isHrefPattern:e}=this;return e?"a":"button"},tagProps(){const{isHrefPattern:e}=this;if(e){const{linkUrl:n,target:i}=this;return{href:n,target:i}}else{const{htmlType:n}=this;return{type:n}}}},methods:{handleClickLink(e){this.$emit("click",e);const n=e.ctrlKey||e.metaKey;this.handleCheckClick(e,n)}},render(){let e;this.tagName==="button"?e="button":this.tagName==="a"&&(e="a");let n=[];return this.loading&&n.push(t.h(se,{class:"ivu-load-loop",type:"ios-loading"})),(this.icon||this.customIcon)&&!this.loading&&n.push(t.h(se,{type:this.icon,custom:this.customIcon})),this.$slots.default&&n.push(t.h("span",{ref:"slot"},this.$slots.default())),t.h(e,{class:this.classes,disabled:this.itemDisabled,onClick:this.handleClickLink,...this.tagProps},n)}},Ti="ivu-btn-group",zh={name:"ButtonGroup",props:{size:{validator(e){return V(e,["small","large","default"])},default(){const e=t.getCurrentInstance().appContext.config.globalProperties;return!e.$VIEWUI||e.$VIEWUI.size===""?"default":e.$VIEWUI.size}},shape:{validator(e){return V(e,["circle","circle-outline"])}},vertical:{type:Boolean,default:!1}},computed:{classes(){return[`${Ti}`,{[`${Ti}-${this.size}`]:!!this.size,[`${Ti}-${this.shape}`]:!!this.shape,[`${Ti}-vertical`]:this.vertical}]}}};function Ph(e,n,i,l,r,s){return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(s.classes)},[t.renderSlot(e.$slots,"default")],2)}var Is=S(zh,[["render",Ph]]);const Rn="ivu-radio-group";let $h=0;const Oh=Date.now(),Lh={name:"RadioGroup",mixins:[xe],emits:["update:modelValue","on-change"],provide(){return{RadioGroupInstance:this}},props:{modelValue:{type:[String,Number],default:""},size:{validator(e){return V(e,["small","large","default"])},default(){const e=t.getCurrentInstance().appContext.config.globalProperties;return!e.$VIEWUI||e.$VIEWUI.size===""?"default":e.$VIEWUI.size}},type:{validator(e){return V(e,["button"])}},vertical:{type:Boolean,default:!1},name:{type:String,default:()=>`ivuRadioGroup_${Oh}_${$h++}`},buttonStyle:{validator(e){return V(e,["default","solid"])},default:"default"}},data(){return{currentValue:this.modelValue,children:[]}},computed:{classes(){return[`${Rn}`,{[`${Rn}-${this.size}`]:!!this.size,[`ivu-radio-${this.size}`]:!!this.size,[`${Rn}-${this.type}`]:!!this.type,[`${Rn}-button-${this.buttonStyle}`]:this.type==="button"&&this.buttonStyle!=="default",[`${Rn}-vertical`]:this.vertical}]}},methods:{change(e){this.currentValue=e.value,this.$emit("update:modelValue",e.value),this.$emit("on-change",e.value),this.handleFormItemChange("change",e.value)}},watch:{modelValue(){this.currentValue!==this.modelValue&&(this.currentValue=this.modelValue)}}},Fh=["name"];function Ah(e,n,i,l,r,s){return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(s.classes),name:i.name},[t.renderSlot(e.$slots,"default")],10,Fh)}var Ni=S(Lh,[["render",Ah]]);const ve="ivu-radio",Rh={name:"Radio",mixins:[xe],emits:["update:modelValue","on-change"],inject:{RadioGroupInstance:{default:null}},props:{modelValue:{type:[String,Number,Boolean],default:!1},trueValue:{type:[String,Number,Boolean],default:!0},falseValue:{type:[String,Number,Boolean],default:!1},label:{type:[String,Number]},disabled:{type:Boolean,default:!1},size:{validator(e){return V(e,["small","large","default"])},default(){const e=t.getCurrentInstance().appContext.config.globalProperties;return!e.$VIEWUI||e.$VIEWUI.size===""?"default":e.$VIEWUI.size}},name:{type:String},border:{type:Boolean,default:!1}},data(){return{groupName:this.name,parent:this.RadioGroupInstance,focusWrapper:!1,focusInner:!1}},computed:{wrapClasses(){return[`${ve}-wrapper`,{[`${ve}-group-item`]:this.group,[`${ve}-wrapper-checked`]:this.currentValue,[`${ve}-wrapper-disabled`]:this.itemDisabled,[`${ve}-${this.size}`]:!!this.size,[`${ve}-focus`]:this.focusWrapper,[`${ve}-border`]:this.border}]},radioClasses(){return[`${ve}`,{[`${ve}-checked`]:this.currentValue,[`${ve}-disabled`]:this.itemDisabled}]},innerClasses(){return[`${ve}-inner`,{[`${ve}-focus`]:this.focusInner}]},inputClasses(){return`${ve}-input`},currentValue(){return this.RadioGroupInstance?this.RadioGroupInstance.currentValue===this.label:this.modelValue===this.trueValue},group(){return!!this.RadioGroupInstance}},mounted(){this.parent&&(this.name&&this.name!==this.parent.name?console.warn&&console.warn("[View UI] Name does not match Radio Group name."):this.groupName=this.parent.name)},methods:{change(e){if(this.itemDisabled)return!1;const i=e.target.checked?this.trueValue:this.falseValue;this.$emit("update:modelValue",i),this.group?this.label!==void 0&&this.parent.change({value:this.label,checked:this.modelValue}):(this.$emit("on-change",i),this.handleFormItemChange("change",i))},onBlur(){this.focusWrapper=!1,this.focusInner=!1},onFocus(){this.group&&this.parent.type==="button"?this.focusWrapper=!0:this.focusInner=!0}},watch:{modelValue(e){if(!(e===this.trueValue||e===this.falseValue))throw"Value should be trueValue or falseValue."}}},Hh=["disabled","checked","name"];function Wh(e,n,i,l,r,s){return t.openBlock(),t.createElementBlock("label",{class:t.normalizeClass(s.wrapClasses)},[t.createElementVNode("span",{class:t.normalizeClass(s.radioClasses)},[t.createElementVNode("span",{class:t.normalizeClass(s.innerClasses)},null,2),t.createElementVNode("input",{type:"radio",class:t.normalizeClass(s.inputClasses),disabled:e.itemDisabled,checked:s.currentValue,name:r.groupName,onChange:n[0]||(n[0]=(...a)=>s.change&&s.change(...a)),onFocus:n[1]||(n[1]=(...a)=>s.onFocus&&s.onFocus(...a)),onBlur:n[2]||(n[2]=(...a)=>s.onBlur&&s.onBlur(...a))},null,42,Hh)],2),t.renderSlot(e.$slots,"default",{},()=>[t.createTextVNode(t.toDisplayString(i.label),1)])],2)}var Ii=S(Rh,[["render",Wh]]),cl={exports:{}};(function(e,n){(function(i,l){e.exports=l()})(St,function(){var i=1e3,l=6e4,r=36e5,s="millisecond",a="second",o="minute",d="hour",c="day",h="week",m="month",g="quarter",y="year",C="date",u="Invalid Date",x=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,I=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,O={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(A){var P=["th","st","nd","rd"],$=A%100;return"["+A+(P[($-20)%10]||P[$]||P[0])+"]"}},v=function(A,P,$){var j=String(A);return!j||j.length>=P?A:""+Array(P+1-j.length).join($)+A},T={s:v,z:function(A){var P=-A.utcOffset(),$=Math.abs(P),j=Math.floor($/60),L=$%60;return(P<=0?"+":"-")+v(j,2,"0")+":"+v(L,2,"0")},m:function A(P,$){if(P.date()<$.date())return-A($,P);var j=12*($.year()-P.year())+($.month()-P.month()),L=P.clone().add(j,m),te=$-L<0,ie=P.clone().add(j+(te?-1:1),m);return+(-(j+($-L)/(te?L-ie:ie-L))||0)},a:function(A){return A<0?Math.ceil(A)||0:Math.floor(A)},p:function(A){return{M:m,y,w:h,d:c,D:C,h:d,m:o,s:a,ms:s,Q:g}[A]||String(A||"").toLowerCase().replace(/s$/,"")},u:function(A){return A===void 0}},k="en",M={};M[k]=O;var E="$isDayjsObject",U=function(A){return A instanceof Y||!(!A||!A[E])},Q=function A(P,$,j){var L;if(!P)return k;if(typeof P=="string"){var te=P.toLowerCase();M[te]&&(L=te),$&&(M[te]=$,L=te);var ie=P.split("-");if(!L&&ie.length>1)return A(ie[0])}else{var de=P.name;M[de]=P,L=de}return!j&&L&&(k=L),L||!j&&k},R=function(A,P){if(U(A))return A.clone();var $=typeof P=="object"?P:{};return $.date=A,$.args=arguments,new Y($)},q=T;q.l=Q,q.i=U,q.w=function(A,P){return R(A,{locale:P.$L,utc:P.$u,x:P.$x,$offset:P.$offset})};var Y=function(){function A($){this.$L=Q($.locale,null,!0),this.parse($),this.$x=this.$x||$.x||{},this[E]=!0}var P=A.prototype;return P.parse=function($){this.$d=function(j){var L=j.date,te=j.utc;if(L===null)return new Date(NaN);if(q.u(L))return new Date;if(L instanceof Date)return new Date(L);if(typeof L=="string"&&!/Z$/i.test(L)){var ie=L.match(x);if(ie){var de=ie[2]-1||0,pe=(ie[7]||"0").substring(0,3);return te?new Date(Date.UTC(ie[1],de,ie[3]||1,ie[4]||0,ie[5]||0,ie[6]||0,pe)):new Date(ie[1],de,ie[3]||1,ie[4]||0,ie[5]||0,ie[6]||0,pe)}}return new Date(L)}($),this.init()},P.init=function(){var $=this.$d;this.$y=$.getFullYear(),this.$M=$.getMonth(),this.$D=$.getDate(),this.$W=$.getDay(),this.$H=$.getHours(),this.$m=$.getMinutes(),this.$s=$.getSeconds(),this.$ms=$.getMilliseconds()},P.$utils=function(){return q},P.isValid=function(){return this.$d.toString()!==u},P.isSame=function($,j){var L=R($);return this.startOf(j)<=L&&L<=this.endOf(j)},P.isAfter=function($,j){return R($)r?0:r+n),i=i>r?r:i,i<0&&(i+=r),r=n>i?0:i-n>>>0,n>>>=0;for(var s=Array(r);++l-1&&e%1==0&&e-1&&e%1==0&&e<=hl}function _i(e){var n=typeof e;return!!e&&(n=="object"||n=="function")}function hf(e){return!!e&&typeof e=="object"}function ff(e){return typeof e=="symbol"||hf(e)&&ul.call(e)==Kh}function uf(e){if(!e)return e===0?e:0;if(e=pf(e),e===dl||e===-dl){var n=e<0?-1:1;return n*Uh}return e===e?e:0}function mf(e){var n=uf(e),i=n%1;return n===n?i?n-i:n:0}function pf(e){if(typeof e=="number")return e;if(ff(e))return fl;if(_i(e)){var n=typeof e.valueOf=="function"?e.valueOf():e;e=_i(n)?n+"":n}if(typeof e!="string")return e===0?e:+e;e=e.replace(qh,"");var i=Gh.test(e);return i||Jh.test(e)?Zh(e.slice(2),i?2:8):Yh.test(e)?fl:+e}var ml=lf,pl={emits:["on-cell-click","on-cell-contextmenu"],methods:{handleCellClick(e){this.CalendarInstance.$emit("on-cell-click",e)},handleCellContextmenu(e){this.CalendarInstance.$emit("on-cell-contextmenu",e)}}};const gf={name:"CalendarMonth",mixins:[pl],inject:["CalendarInstance"],props:{date:Object},data(){return{firstDayOfWeek:this.CalendarInstance.firstDayOfWeek,weekDays:this.CalendarInstance.locale.weekDays}},computed:{finalWeekDays(){return this.weekDays.slice(this.firstDayOfWeek).concat(this.weekDays.slice(0,this.firstDayOfWeek))},days(){let e=[];const n=je(this.date.format("YYYY-MM-01")),i=n.day(),l=this.firstDayOfWeek,r=l<=i?i-l:7-(l-i);for(let d=0;d(t.openBlock(),t.createElementBlock("th",{key:a},t.toDisplayString(a),1))),128))]),t.createElementVNode("tbody",null,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(s.chunkDays,(a,o)=>(t.openBlock(),t.createElementBlock("tr",{key:o},[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(a,d=>(t.openBlock(),t.createElementBlock("td",{key:d.text,onClick:c=>e.handleCellClick(d),onContextmenu:t.withModifiers(c=>e.handleCellContextmenu(d),["prevent"])},[t.createElementVNode("div",{class:t.normalizeClass(["ivu-calendar-table-day",{"ivu-calendar-table-day-other":d.type!=="current","ivu-calendar-table-day-current":d.text===s.currentDate}]),style:t.normalizeStyle(s.dayStyles),onClick:c=>s.handleClickDate(d.text)},[t.createElementVNode("div",kf,t.toDisplayString(d.date),1),t.createElementVNode("div",wf,[t.renderSlot(e.$slots,"month",{date:new Date(d.date),data:{type:d.type+"-month",day:d.text,selected:d.text===s.currentDate}})])],14,bf)],40,Cf))),128))]))),128))])])}var xf=S(gf,[["render",Sf]]);const Bf={name:"CalendarYear",mixins:[pl],inject:["CalendarInstance"],props:{date:Object},data(){return{}},computed:{months(){let e=[];const n=je(this.date.format("YYYY-01-01"));for(let i=0;i<12;i++){const l=n.add(i,"month");e.push({text:l.format("YYYY-MM"),month:this.CalendarInstance.locale.months[i],type:"current"})}return e},chunkMonths(){return ml(this.months,3)},dayStyles(){let e={};return this.CalendarInstance.cellHeight!==100&&(e.height=`${this.CalendarInstance.cellHeight}px`),e},currentMonth(){return this.date.format("YYYY-MM")}},methods:{handleClickDate(e){this.CalendarInstance.handleChangeDate(je(e))}}},Vf={class:"ivu-calendar-table ivu-calendar-table-year",cellspacing:"0",cellpadding:"0"},Ef=["onClick","onContextmenu"],Tf=["onClick"],Nf={class:"ivu-calendar-table-day-title"},If={class:"ivu-calendar-table-day-slot"};function _f(e,n,i,l,r,s){return t.openBlock(),t.createElementBlock("table",Vf,[t.createElementVNode("tbody",null,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(s.chunkMonths,(a,o)=>(t.openBlock(),t.createElementBlock("tr",{key:o},[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(a,d=>(t.openBlock(),t.createElementBlock("td",{key:d.text,onClick:c=>e.handleCellClick(d),onContextmenu:t.withModifiers(c=>e.handleCellContextmenu(d),["prevent"])},[t.createElementVNode("div",{class:t.normalizeClass(["ivu-calendar-table-day",{"ivu-calendar-table-day-current":d.text===s.currentMonth}]),style:t.normalizeStyle(s.dayStyles),onClick:c=>s.handleClickDate(d.text)},[t.createElementVNode("div",Nf,t.toDisplayString(d.month),1),t.createElementVNode("div",If,[t.renderSlot(e.$slots,"year",{month:new Date(d.month),data:{type:d.type+"-year",month:d.text,selected:d.text===s.currentMonth}})])],14,Tf)],40,Ef))),128))]))),128))])])}var Df=S(Bf,[["render",_f]]);const Mf={name:"Calendar",components:{CalendarMonth:xf,CalendarYear:Df,ButtonGroup:Is,Button:Oe,RadioGroup:Ni,Radio:Ii,Icon:se},emits:["on-type-change","on-prev","on-next","on-today","on-change","update:modelValue","on-cell-click","on-cell-contextmenu"],provide(){return{CalendarInstance:this}},props:{modelValue:{type:[Date,String,Number]},type:{validator(e){return V(e,["month","year"])},default:"month"},cellHeight:{type:Number,default:100},showHeader:{type:Boolean,default:!0},headerType:{validator(e){return V(e,["simple","full"])},default:"simple"},firstDayOfWeek:{validator(e){return V(e,[1,2,3,4,5,6,7])},default:1},hideType:{type:Boolean,default:!1},locale:{type:Object,default(){return{today:"\u4ECA\u5929",type:{month:"\u6708",year:"\u5E74"},weekDays:["\u65E5","\u4E00","\u4E8C","\u4E09","\u56DB","\u4E94","\u516D"],months:["1\u6708","2\u6708","3\u6708","4\u6708","5\u6708","6\u6708","7\u6708","8\u6708","9\u6708","10\u6708","11\u6708","12\u6708"]}}}},data(){const e=this.modelValue?this.modelValue:new Date;return{currentValue:je(e),mode:this.type}},watch:{modelValue(e){const n=e||new Date;this.currentValue=je(n)},type(e){this.mode=e}},computed:{headerTitle(){if(this.mode==="month")return this.currentValue.format("YYYY \u5E74 M \u6708");if(this.mode==="year")return this.currentValue.format("YYYY \u5E74")}},methods:{handleChangeType(e){this.$emit("on-type-change",e)},handlePrev(){const e=this.currentValue.format("YYYY-MM-01");let n;this.mode==="month"?n=je(e).subtract(1,"month"):this.mode==="year"&&(n=je(e).subtract(1,"year")),this.handleChangeDate(n),this.$emit("on-prev")},handleNext(){const e=this.currentValue.format("YYYY-MM-01");let n;this.mode==="month"?n=je(e).add(1,"month"):this.mode==="year"&&(n=je(e).add(1,"year")),this.handleChangeDate(n),this.$emit("on-next")},handleToday(){const e=je(new Date),n=e.format("YYYY-MM-DD"),i=this.currentValue.format("YYYY-MM-DD");n!==i&&this.handleChangeDate(e),this.$emit("on-today")},handleChangeDate(e){this.currentValue=e;const n=new Date(e.format("YYYY-MM-DD"));this.$emit("update:modelValue",n),this.$emit("on-change",n)}}},zf={class:"ivu-calendar"},Pf={key:0,class:"ivu-calendar-header"},$f={class:"ivu-calendar-header-title"},Of={class:"ivu-calendar-header-action"},Lf={class:"ivu-calendar-body"};function Ff(e,n,i,l,r,s){const a=t.resolveComponent("Icon"),o=t.resolveComponent("Button"),d=t.resolveComponent("ButtonGroup"),c=t.resolveComponent("Radio"),h=t.resolveComponent("RadioGroup"),m=t.resolveComponent("CalendarMonth"),g=t.resolveComponent("CalendarYear");return t.openBlock(),t.createElementBlock("div",zf,[i.showHeader?(t.openBlock(),t.createElementBlock("div",Pf,[t.renderSlot(e.$slots,"header",{},()=>[t.createElementVNode("div",$f,[t.renderSlot(e.$slots,"headerTitle",{},()=>[t.createTextVNode(t.toDisplayString(s.headerTitle),1)])]),t.createElementVNode("div",Of,[i.headerType==="simple"?(t.openBlock(),t.createElementBlock(t.Fragment,{key:0},[t.createVNode(d,null,{default:t.withCtx(()=>[t.createVNode(o,{onClick:s.handlePrev},{default:t.withCtx(()=>[t.createVNode(a,{type:"ios-arrow-back"})]),_:1},8,["onClick"]),t.createVNode(o,{onClick:s.handleToday},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(i.locale.today),1)]),_:1},8,["onClick"]),t.createVNode(o,{onClick:s.handleNext},{default:t.withCtx(()=>[t.createVNode(a,{type:"ios-arrow-forward"})]),_:1},8,["onClick"])]),_:1}),i.hideType?t.createCommentVNode("",!0):(t.openBlock(),t.createBlock(h,{key:0,modelValue:r.mode,"onUpdate:modelValue":n[0]||(n[0]=y=>r.mode=y),type:"button",class:"ivu-ml",onOnChange:s.handleChangeType},{default:t.withCtx(()=>[t.createVNode(c,{label:"month"},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(i.locale.type.month),1)]),_:1}),t.createVNode(c,{label:"year"},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(i.locale.type.year),1)]),_:1})]),_:1},8,["modelValue","onOnChange"]))],64)):i.headerType==="full"?(t.openBlock(),t.createElementBlock(t.Fragment,{key:1},[],64)):t.createCommentVNode("",!0)])])])):t.createCommentVNode("",!0),t.createElementVNode("div",Lf,[r.mode==="month"?(t.openBlock(),t.createBlock(m,{key:0,date:r.currentValue},{month:t.withCtx(({date:y,data:C})=>[t.renderSlot(e.$slots,"month",{date:y,data:C})]),_:3},8,["date"])):r.mode==="year"?(t.openBlock(),t.createBlock(g,{key:1,date:r.currentValue},{year:t.withCtx(({month:y,data:C})=>[t.renderSlot(e.$slots,"year",{month:y,data:C})]),_:3},8,["date"])):t.createCommentVNode("",!0)])])}var gl=S(Mf,[["render",Ff]]);const Bt="ivu-col";function Af(e){return typeof e=="number"?`${e} ${e} auto`:/^\d+(\.\d+)?(px|em|rem|%)$/.test(e)?`0 0 ${e}`:e}const Rf={name:"iCol",inject:["RowInstance"],props:{span:[Number,String],order:[Number,String],offset:[Number,String],push:[Number,String],pull:[Number,String],className:String,xs:[Number,Object],sm:[Number,Object],md:[Number,Object],lg:[Number,Object],xl:[Number,Object],xxl:[Number,Object],flex:{type:[Number,String],default:""}},computed:{gutter(){return this.RowInstance.gutter},classes(){let e=[`${Bt}`,{[`${Bt}-span-${this.span}`]:this.span,[`${Bt}-order-${this.order}`]:this.order,[`${Bt}-offset-${this.offset}`]:this.offset,[`${Bt}-push-${this.push}`]:this.push,[`${Bt}-pull-${this.pull}`]:this.pull,[`${this.className}`]:!!this.className}];return["xs","sm","md","lg","xl","xxl"].forEach(n=>{if(typeof this[n]=="number")e.push(`${Bt}-span-${n}-${this[n]}`);else if(typeof this[n]=="object"){let i=this[n];Object.keys(i).forEach(l=>{e.push(l!=="span"?`${Bt}-${n}-${l}-${i[l]}`:`${Bt}-span-${n}-${i[l]}`)})}}),e},styles(){let e={};return this.gutter!==0&&(e={paddingLeft:this.gutter/2+"px",paddingRight:this.gutter/2+"px"}),this.flex&&(e.flex=Af(this.flex)),e}}};function Hf(e,n,i,l,r,s){return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(s.classes),style:t.normalizeStyle(s.styles)},[t.renderSlot(e.$slots,"default")],6)}var gt=S(Rf,[["render",Hf]]);const sn="ivu-row",Wf={name:"Row",provide(){return{RowInstance:this}},props:{type:{validator(e){return V(e,["flex"])}},align:{validator(e){return V(e,["top","middle","bottom"])}},justify:{validator(e){return V(e,["start","end","center","space-around","space-between"])}},gutter:{type:Number,default:0},className:String,wrap:{type:Boolean,default:!0}},computed:{classes(){return[`${sn}`,{[`${sn}-${this.type}`]:!!this.type,[`${sn}-${this.type}-${this.align}`]:!!this.align&&this.type,[`${sn}-${this.type}-${this.justify}`]:!!this.justify&&this.type,[`${sn}-${this.align}`]:!!this.align,[`${sn}-${this.justify}`]:!!this.justify,[`${this.className}`]:!!this.className,[`${sn}-no-wrap`]:!this.wrap}]},styles(){let e={};return this.gutter!==0&&(e={marginLeft:this.gutter/-2+"px",marginRight:this.gutter/-2+"px"}),e}}};function Uf(e,n,i,l,r,s){return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(s.classes),style:t.normalizeStyle(s.styles)},[t.renderSlot(e.$slots,"default")],6)}var Ot=S(Wf,[["render",Uf]]);function rn(){return rn=Object.assign||function(e){for(var n=1;n=s)return o;switch(o){case"%s":return String(n[l++]);case"%d":return Number(n[l++]);case"%j":try{return JSON.stringify(n[l++])}catch{return"[Circular]"}break;default:return o}});return a}return r}function Gf(e){return e==="string"||e==="url"||e==="hex"||e==="email"||e==="date"||e==="pattern"}function Te(e,n){return!!(e==null||n==="array"&&Array.isArray(e)&&!e.length||Gf(n)&&typeof e=="string"&&!e)}function Jf(e,n,i){var l=[],r=0,s=e.length;function a(o){l.push.apply(l,o),r++,r===s&&i(l)}e.forEach(function(o){n(o,a)})}function yl(e,n,i){var l=0,r=e.length;function s(a){if(a&&a.length){i(a);return}var o=l;l=l+1,o()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/,url:new RegExp("^(?!mailto:)(?:(?:http|https|ftp)://|//)(?:\\S+(?::\\S*)?@)?(?:(?:(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[0-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u00a1-\\uffff0-9]+-*)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]+-*)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))|localhost)(?::\\d{2,5})?(?:(/|\\?|#)[^\\s]*)?$","i"),hex:/^#?([a-f0-9]{6}|[a-f0-9]{3})$/i},Wn={integer:function(n){return Wn.number(n)&&parseInt(n,10)===n},float:function(n){return Wn.number(n)&&!Wn.integer(n)},array:function(n){return Array.isArray(n)},regexp:function(n){if(n instanceof RegExp)return!0;try{return!!new RegExp(n)}catch{return!1}},date:function(n){return typeof n.getTime=="function"&&typeof n.getMonth=="function"&&typeof n.getYear=="function"&&!isNaN(n.getTime())},number:function(n){return isNaN(n)?!1:typeof n=="number"},object:function(n){return typeof n=="object"&&!Wn.array(n)},method:function(n){return typeof n=="function"},email:function(n){return typeof n=="string"&&!!n.match(zs.email)&&n.length<255},url:function(n){return typeof n=="string"&&!!n.match(zs.url)},hex:function(n){return typeof n=="string"&&!!n.match(zs.hex)}};function eu(e,n,i,l,r){if(e.required&&n===void 0){wl(e,n,i,l,r);return}var s=["integer","float","array","regexp","object","method","email","number","date","url","hex"],a=e.type;s.indexOf(a)>-1?Wn[a](n)||l.push(Ke(r.messages.types[a],e.fullField,e.type)):a&&typeof n!==e.type&&l.push(Ke(r.messages.types[a],e.fullField,e.type))}function tu(e,n,i,l,r){var s=typeof e.len=="number",a=typeof e.min=="number",o=typeof e.max=="number",d=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,c=n,h=null,m=typeof n=="number",g=typeof n=="string",y=Array.isArray(n);if(m?h="number":g?h="string":y&&(h="array"),!h)return!1;y&&(c=n.length),g&&(c=n.replace(d,"_").length),s?c!==e.len&&l.push(Ke(r.messages[h].len,e.fullField,e.len)):a&&!o&&ce.max?l.push(Ke(r.messages[h].max,e.fullField,e.max)):a&&o&&(ce.max)&&l.push(Ke(r.messages[h].range,e.fullField,e.min,e.max))}var bn="enum";function nu(e,n,i,l,r){e[bn]=Array.isArray(e[bn])?e[bn]:[],e[bn].indexOf(n)===-1&&l.push(Ke(r.messages[bn],e.fullField,e[bn].join(", ")))}function iu(e,n,i,l,r){if(e.pattern){if(e.pattern instanceof RegExp)e.pattern.lastIndex=0,e.pattern.test(n)||l.push(Ke(r.messages.pattern.mismatch,e.fullField,n,e.pattern));else if(typeof e.pattern=="string"){var s=new RegExp(e.pattern);s.test(n)||l.push(Ke(r.messages.pattern.mismatch,e.fullField,n,e.pattern))}}}var oe={required:wl,whitespace:Qf,type:eu,range:tu,enum:nu,pattern:iu};function su(e,n,i,l,r){var s=[],a=e.required||!e.required&&l.hasOwnProperty(e.field);if(a){if(Te(n,"string")&&!e.required)return i();oe.required(e,n,l,s,r,"string"),Te(n,"string")||(oe.type(e,n,l,s,r),oe.range(e,n,l,s,r),oe.pattern(e,n,l,s,r),e.whitespace===!0&&oe.whitespace(e,n,l,s,r))}i(s)}function ru(e,n,i,l,r){var s=[],a=e.required||!e.required&&l.hasOwnProperty(e.field);if(a){if(Te(n)&&!e.required)return i();oe.required(e,n,l,s,r),n!==void 0&&oe.type(e,n,l,s,r)}i(s)}function lu(e,n,i,l,r){var s=[],a=e.required||!e.required&&l.hasOwnProperty(e.field);if(a){if(n===""&&(n=void 0),Te(n)&&!e.required)return i();oe.required(e,n,l,s,r),n!==void 0&&(oe.type(e,n,l,s,r),oe.range(e,n,l,s,r))}i(s)}function au(e,n,i,l,r){var s=[],a=e.required||!e.required&&l.hasOwnProperty(e.field);if(a){if(Te(n)&&!e.required)return i();oe.required(e,n,l,s,r),n!==void 0&&oe.type(e,n,l,s,r)}i(s)}function ou(e,n,i,l,r){var s=[],a=e.required||!e.required&&l.hasOwnProperty(e.field);if(a){if(Te(n)&&!e.required)return i();oe.required(e,n,l,s,r),Te(n)||oe.type(e,n,l,s,r)}i(s)}function cu(e,n,i,l,r){var s=[],a=e.required||!e.required&&l.hasOwnProperty(e.field);if(a){if(Te(n)&&!e.required)return i();oe.required(e,n,l,s,r),n!==void 0&&(oe.type(e,n,l,s,r),oe.range(e,n,l,s,r))}i(s)}function du(e,n,i,l,r){var s=[],a=e.required||!e.required&&l.hasOwnProperty(e.field);if(a){if(Te(n)&&!e.required)return i();oe.required(e,n,l,s,r),n!==void 0&&(oe.type(e,n,l,s,r),oe.range(e,n,l,s,r))}i(s)}function hu(e,n,i,l,r){var s=[],a=e.required||!e.required&&l.hasOwnProperty(e.field);if(a){if(n==null&&!e.required)return i();oe.required(e,n,l,s,r,"array"),n!=null&&(oe.type(e,n,l,s,r),oe.range(e,n,l,s,r))}i(s)}function fu(e,n,i,l,r){var s=[],a=e.required||!e.required&&l.hasOwnProperty(e.field);if(a){if(Te(n)&&!e.required)return i();oe.required(e,n,l,s,r),n!==void 0&&oe.type(e,n,l,s,r)}i(s)}var uu="enum";function mu(e,n,i,l,r){var s=[],a=e.required||!e.required&&l.hasOwnProperty(e.field);if(a){if(Te(n)&&!e.required)return i();oe.required(e,n,l,s,r),n!==void 0&&oe[uu](e,n,l,s,r)}i(s)}function pu(e,n,i,l,r){var s=[],a=e.required||!e.required&&l.hasOwnProperty(e.field);if(a){if(Te(n,"string")&&!e.required)return i();oe.required(e,n,l,s,r),Te(n,"string")||oe.pattern(e,n,l,s,r)}i(s)}function gu(e,n,i,l,r){var s=[],a=e.required||!e.required&&l.hasOwnProperty(e.field);if(a){if(Te(n,"date")&&!e.required)return i();if(oe.required(e,n,l,s,r),!Te(n,"date")){var o;n instanceof Date?o=n:o=new Date(n),oe.type(e,o,l,s,r),o&&oe.range(e,o.getTime(),l,s,r)}}i(s)}function yu(e,n,i,l,r){var s=[],a=Array.isArray(n)?"array":typeof n;oe.required(e,n,l,s,r,a),i(s)}function Ps(e,n,i,l,r){var s=e.type,a=[],o=e.required||!e.required&&l.hasOwnProperty(e.field);if(o){if(Te(n,s)&&!e.required)return i();oe.required(e,n,l,a,r,s),Te(n,s)||oe.type(e,n,l,a,r)}i(a)}function Cu(e,n,i,l,r){var s=[],a=e.required||!e.required&&l.hasOwnProperty(e.field);if(a){if(Te(n)&&!e.required)return i();oe.required(e,n,l,s,r)}i(s)}var Un={string:su,method:ru,number:lu,boolean:au,regexp:ou,integer:cu,float:du,array:hu,object:fu,enum:mu,pattern:pu,date:gu,url:Ps,hex:Ps,email:Ps,required:yu,any:Cu};function $s(){return{default:"Validation error on field %s",required:"%s is required",enum:"%s must be one of %s",whitespace:"%s cannot be empty",date:{format:"%s date %s is invalid for format %s",parse:"%s date could not be parsed, %s is invalid ",invalid:"%s date %s is invalid"},types:{string:"%s is not a %s",method:"%s is not a %s (function)",array:"%s is not an %s",object:"%s is not an %s",number:"%s is not a %s",date:"%s is not a %s",boolean:"%s is not a %s",integer:"%s is not an %s",float:"%s is not a %s",regexp:"%s is not a valid %s",email:"%s is not a valid %s",url:"%s is not a valid %s",hex:"%s is not a valid %s"},string:{len:"%s must be exactly %s characters",min:"%s must be at least %s characters",max:"%s cannot be longer than %s characters",range:"%s must be between %s and %s characters"},number:{len:"%s must equal %s",min:"%s cannot be less than %s",max:"%s cannot be greater than %s",range:"%s must be between %s and %s"},array:{len:"%s must be exactly %s in length",min:"%s cannot be less than %s in length",max:"%s cannot be greater than %s in length",range:"%s must be between %s and %s in length"},pattern:{mismatch:"%s value %s does not match pattern %s"},clone:function(){var n=JSON.parse(JSON.stringify(this));return n.clone=this.clone,n}}}var Os=$s();function Lt(e){this.rules=null,this._messages=Os,this.define(e)}Lt.prototype={messages:function(n){return n&&(this._messages=kl($s(),n)),this._messages},define:function(n){if(!n)throw new Error("Cannot configure a schema with no rules");if(typeof n!="object"||Array.isArray(n))throw new Error("Rules must be an object");this.rules={};var i,l;for(i in n)n.hasOwnProperty(i)&&(l=n[i],this.rules[i]=Array.isArray(l)?l:[l])},validate:function(n,i,l){var r=this;i===void 0&&(i={}),l===void 0&&(l=function(){});var s=n,a=i,o=l;if(typeof a=="function"&&(o=a,a={}),!this.rules||Object.keys(this.rules).length===0)return o&&o(),Promise.resolve();function d(u){var x,I=[],O={};function v(T){if(Array.isArray(T)){var k;I=(k=I).concat.apply(k,T)}else I.push(T)}for(x=0;x{this.isRequired=n.required}):this.required&&(this.isRequired=this.required))},getRules(){let e=this.FormInstance.rules;const n=this.rules;return e=e?e[this.prop]:[],[].concat(n||e||[])},getFilteredRule(e){return this.getRules().filter(i=>!i.trigger||i.trigger.indexOf(e)!==-1)},validate(e,n=function(){}){let i=this.getFilteredRule(e);if(!i||i.length===0)if(this.required)i=[{required:!0}];else return n(),!0;this.validateState="validating";let l={};l[this.prop]=i;const r=new Lt(l);let s={};s[this.prop]=this.fieldValue,r.validate(s,{firstFields:!0},a=>{this.validateState=a?"error":"success",this.validateMessage=a?a[0].message:"",n(this.validateMessage),this.FormInstance&&this.FormInstance.$emit("on-validate",this.prop,!a,this.validateMessage||null)}),this.validateDisabled=!1},resetField(){this.validateState="",this.validateMessage="";let e=this.FormInstance.model,n=this.fieldValue,i=this.prop;i.indexOf(":")!==-1&&(i=i.replace(/:/,"."));let l=Sl(e,i);Array.isArray(n)&&this.initialValue!==null?(this.validateDisabled=!0,l.o[l.k]=[].concat(this.initialValue)):(this.validateDisabled=!0,l.o[l.k]=this.initialValue)},onFieldBlur(){this.validate("blur")},onFieldChange(){if(this.validateDisabled){this.validateDisabled=!1;return}this.validate("change")},formBlur(){this.onFieldBlur()},formChange(){this.onFieldChange()}},mounted(){this.prop&&(this.FormInstance.addField(this),Object.defineProperty(this,"initialValue",{value:this.fieldValue}),this.setRules())},beforeUnmount(){this.FormInstance.removeField(this)}},ku=["for"];function wu(e,n,i,l,r,s){return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(s.classes)},[i.label||e.$slots.label?(t.openBlock(),t.createElementBlock("label",{key:0,class:t.normalizeClass([r.prefixCls+"-label"]),for:i.labelFor,style:t.normalizeStyle(s.labelStyles)},[t.renderSlot(e.$slots,"label",{},()=>[t.createTextVNode(t.toDisplayString(i.label)+t.toDisplayString(s.FormInstance.colon),1)])],14,ku)):t.createCommentVNode("",!0),t.createElementVNode("div",{class:t.normalizeClass([r.prefixCls+"-content"]),style:t.normalizeStyle(s.contentStyles)},[t.renderSlot(e.$slots,"default"),t.createVNode(t.Transition,{name:"fade"},{default:t.withCtx(()=>[r.validateState==="error"&&i.showMessage&&s.FormInstance.showMessage?(t.openBlock(),t.createElementBlock("div",{key:0,class:t.normalizeClass([r.prefixCls+"-error-tip"])},t.toDisplayString(r.validateMessage),3)):t.createCommentVNode("",!0)]),_:1})],6)],2)}var Mi=S(bu,[["render",wu]]),Ls={UserName:"\u8BF7\u8F93\u5165\u7528\u6237\u540D\uFF01",Password:"\u8BF7\u8F93\u5165\u5BC6\u7801\uFF01",Email:"\u8BF7\u8F93\u5165\u90AE\u7BB1\uFF01",Mobile:"\u8BF7\u8F93\u5165\u624B\u673A\u53F7\u7801\uFF01",Captcha:"\u8BF7\u8F93\u5165\u9A8C\u8BC1\u7801\uFF01"},jn={inject:["LoginInstance"],emits:["on-change"],props:{rules:{type:[Object,Array],default(){const e=t.getCurrentInstance().type.name;return[{required:!0,message:Ls[e],trigger:"change"}]}},value:{type:String},name:{type:String,required:!0},enterToSubmit:{type:Boolean,default:!1}},data(){return{prop:""}},methods:{handleChange(e){this.LoginInstance.formValidate[this.prop]=e,this.$emit("on-change",e)},handleEnter(){this.enterToSubmit&&this.LoginInstance.handleSubmit()},handleSetValue(){const e=this.$props;e.value&&(this.LoginInstance.formValidate[this.prop]=e.value)},handleGetProps(){let n=this.$props.name;const i={prefix:this.prefix,placeholder:this.placeholder,type:this.type,size:"large",modelValue:this.LoginInstance.formValidate[this.prop]};return n&&(i.name=n),Object.assign(i,this.$attrs)}},render(){const e=this.handleGetProps(),n=t.h(Ze,{...e,"onUpdate:modelValue":this.handleChange,"onOn-enter":this.handleEnter}),i=t.h(Mi,{prop:this.prop,rules:this.rules},()=>[n]);return t.h("div",{class:this.className},[i])},created(){const e=this.name,n=Object.assign({},this.LoginInstance.formValidate);n[e]="",this.LoginInstance.formValidate=n,this.prop=e,this.handleSetValue()}};const xl={name:"Captcha",mixins:[jn],emits:["on-get-captcha"],props:{field:{type:[String,Array]},countDown:{type:Number,default:60},text:{type:String},unitText:{type:String,default:"\u79D2"},beforeClick:Function},data(){return{className:"ivu-login-captcha",prefix:"ios-keypad-outline",placeholder:"\u8BF7\u8F93\u5165\u9A8C\u8BC1\u7801",type:"text",buttonDisabled:!1,limitCountDown:0}},methods:{handleClickCaptcha(){if(this.field){const e=typeof this.field=="string"?[this.field]:this.field;this.LoginInstance.handleValidate(e,n=>{n&&this.handleBeforeGetCaptcha()})}else this.handleBeforeGetCaptcha()},handleBeforeGetCaptcha(){if(!this.beforeClick)return this.handleGetCaptcha();const e=this.beforeClick();e&&e.then?e.then(()=>{this.handleGetCaptcha()}):this.handleGetCaptcha()},handleGetCaptcha(){this.countDown>0&&(this.buttonDisabled=!0,this.limitCountDown=this.countDown,this.handleCountDown()),this.$emit("on-get-captcha",this.LoginInstance.formValidate[this.prop],JSON.parse(JSON.stringify(this.LoginInstance.formValidate)))},handleCountDown(){this.timer=setTimeout(()=>{this.limitCountDown--,this.limitCountDown===0?(this.buttonDisabled=!1,clearTimeout(this.timer)):this.handleCountDown()},1e3)}},render(){const e=this.$attrs,n=this.handleGetProps(),i={size:"large",type:"default",long:!0,disabled:this.buttonDisabled};"size"in e&&(i.size=e.size),"button-type"in e&&(i.type=e["button-type"]);let l;this.$slots.text?l=this.$slots.text:this.limitCountDown!==0?l=()=>`${this.limitCountDown} ${this.unitText}`:this.text?l=()=>this.text:l=()=>"\u83B7\u53D6\u9A8C\u8BC1\u7801";const r=t.h(Oe,{...i,onClick:this.handleClickCaptcha},l),s=t.h(Ze,{...n,"onUpdate:modelValue":this.handleChange,"onOn-enter":this.handleEnter}),a=t.h(gt,{span:16},()=>[s]),o=t.h(gt,{span:8},()=>[r]),d=t.h(Ot,{gutter:8},()=>[a,o]),c=t.h(Mi,{prop:this.prop,rules:this.rules},()=>[d]);return t.h("div",{class:this.className},[c])},beforeUnmount(){this.timer&&clearTimeout(this.timer)}},ln="ivu-card",Bl=16,Su={name:"Card",mixins:[en],components:{Icon:se},props:{bordered:{type:Boolean,default:!0},disHover:{type:Boolean,default:!1},shadow:{type:Boolean,default:!1},padding:{type:Number,default:Bl},title:{type:String},icon:{type:String}},data(){return{showHead:!0,showExtra:!0}},computed:{classes(){return[`${ln}`,{[`${ln}-bordered`]:this.bordered&&!this.shadow,[`${ln}-dis-hover`]:this.disHover||this.shadow,[`${ln}-shadow`]:this.shadow}]},headClasses(){return`${ln}-head`},extraClasses(){return`${ln}-extra`},bodyClasses(){return`${ln}-body`},bodyStyles(){return this.padding!==Bl?{padding:`${this.padding}px`}:""},isHrefPattern(){const{to:e}=this;return!!e},tagName(){const{isHrefPattern:e}=this;return e?"a":"div"},tagProps(){const{isHrefPattern:e}=this;if(e){const{linkUrl:n,target:i}=this;return{href:n,target:i}}else return{}}},methods:{handleClickLink(e){if(!this.isHrefPattern)return;const n=e.ctrlKey||e.metaKey;this.handleCheckClick(e,n)}},mounted(){this.showHead=this.title||this.$slots.title!==void 0,this.showExtra=this.$slots.extra!==void 0}},xu={key:0};function Bu(e,n,i,l,r,s){const a=t.resolveComponent("Icon");return t.openBlock(),t.createBlock(t.resolveDynamicComponent(s.tagName),t.mergeProps({class:s.classes},s.tagProps,{onClick:s.handleClickLink}),{default:t.withCtx(()=>[r.showHead?(t.openBlock(),t.createElementBlock("div",{key:0,class:t.normalizeClass(s.headClasses)},[t.renderSlot(e.$slots,"title",{},()=>[i.title?(t.openBlock(),t.createElementBlock("p",xu,[i.icon?(t.openBlock(),t.createBlock(a,{key:0,type:i.icon},null,8,["type"])):t.createCommentVNode("",!0),t.createElementVNode("span",null,t.toDisplayString(i.title),1)])):t.createCommentVNode("",!0)])],2)):t.createCommentVNode("",!0),r.showExtra?(t.openBlock(),t.createElementBlock("div",{key:1,class:t.normalizeClass(s.extraClasses)},[t.renderSlot(e.$slots,"extra")],2)):t.createCommentVNode("",!0),t.createElementVNode("div",{class:t.normalizeClass(s.bodyClasses),style:t.normalizeStyle(s.bodyStyles)},[t.renderSlot(e.$slots,"default")],6)]),_:3},16,["class","onClick"])}var Vl=S(Su,[["render",Bu]]);const kn="ivu-carousel",Vu={name:"Carousel",provide(){return{CarouselInstance:this}},components:{Icon:se},emits:["on-change","on-click","update:modelValue"],props:{arrow:{type:String,default:"hover",validator(e){return V(e,["hover","always","never"])}},autoplay:{type:Boolean,default:!1},autoplaySpeed:{type:Number,default:2e3},loop:{type:Boolean,default:!1},easing:{type:String,default:"ease"},dots:{type:String,default:"inside",validator(e){return V(e,["inside","outside","none"])}},radiusDot:{type:Boolean,default:!1},trigger:{type:String,default:"click",validator(e){return V(e,["click","hover"])}},modelValue:{type:Number,default:0},height:{type:[String,Number],default:"auto",validator(e){return e==="auto"||Object.prototype.toString.call(e)==="[object Number]"}}},data(){return{prefixCls:kn,listWidth:0,trackWidth:0,trackOffset:0,trackCopyOffset:0,showCopyTrack:!1,slides:[],slideInstances:[],timer:null,ready:!1,currentIndex:this.modelValue,trackIndex:this.modelValue,copyTrackIndex:this.modelValue,hideTrackPos:-1,carouselItemList:[]}},computed:{classes(){return[`${kn}`]},trackStyles(){const e=this.trackIndex===-1?"hidden":"visible";return{width:`${this.trackWidth}px`,transform:`translate3d(${-this.trackOffset}px, 0px, 0px)`,transition:`transform 500ms ${this.easing}`,visibility:e}},copyTrackStyles(){return{width:`${this.trackWidth}px`,transform:`translate3d(${-this.trackCopyOffset}px, 0px, 0px)`,transition:`transform 500ms ${this.easing}`,position:"absolute"}},arrowClasses(){return[`${kn}-arrow`,`${kn}-arrow-${this.arrow}`]},dotsClasses(){return[`${kn}-dots`,`${kn}-dots-${this.dots}`]}},methods:{findChild(e){this.carouselItemList.length&&this.carouselItemList.forEach(n=>{e(n.carouselItem)})},initCopyTrackDom(){t.nextTick(()=>{this.$refs.copyTrack.innerHTML=this.$refs.originTrack.innerHTML})},updateSlides(e){let n=[],i=1;this.findChild(l=>{n.push({$el:l.$el}),l.index=i++,e&&this.slideInstances.push(l)}),this.slides=n,this.updatePos()},updatePos(){this.findChild(e=>{e.width=this.listWidth,e.height=typeof this.height=="number"?`${this.height}px`:this.height}),this.trackWidth=(this.slides.length||0)*this.listWidth},slotChange(){t.nextTick(()=>{this.slides=[],this.slideInstances=[],this.updateSlides(!0,!0),this.updatePos(),this.updateOffset()})},handleResize(){this.listWidth=parseInt(ut(this.$el,"width")),this.updatePos(),this.updateOffset()},updateTrackPos(e){this.showCopyTrack?this.trackIndex=e:this.copyTrackIndex=e},updateTrackIndex(e){this.showCopyTrack?this.copyTrackIndex=e:this.trackIndex=e,this.currentIndex=e},add(e){let n=this.slides.length;this.loop&&(e>0?this.hideTrackPos=-1:this.hideTrackPos=n,this.updateTrackPos(this.hideTrackPos));const i=this.showCopyTrack?this.copyTrackIndex:this.trackIndex;let l=i+e;for(;l<0;)l+=n;(e>0&&l===n||e<0&&l===n-1)&&this.loop?(this.showCopyTrack=!this.showCopyTrack,this.trackIndex+=e,this.copyTrackIndex+=e):(this.loop||(l=l%this.slides.length),this.updateTrackIndex(l)),this.currentIndex=l===this.slides.length?0:l,this.$emit("on-change",i,this.currentIndex),this.$emit("update:modelValue",this.currentIndex)},arrowEvent(e){this.setAutoplay(),this.add(e)},dotsEvent(e,n){let i=this.showCopyTrack?this.copyTrackIndex:this.trackIndex;const l=this.currentIndex;e===this.trigger&&i!==n&&(this.updateTrackIndex(n),this.$emit("on-change",l,this.currentIndex),this.$emit("update:modelValue",n),this.setAutoplay())},setAutoplay(){!H||(window.clearInterval(this.timer),this.autoplay&&(this.timer=window.setInterval(()=>{this.add(1)},this.autoplaySpeed)))},updateOffset(){t.nextTick(()=>{let e=this.copyTrackIndex>0?-1:1;this.trackOffset=this.trackIndex*this.listWidth,this.trackCopyOffset=this.copyTrackIndex*this.listWidth+e})},handleClick(e){this.$emit("on-click",this[e])}},watch:{autoplay(){this.setAutoplay()},autoplaySpeed(){this.setAutoplay()},trackIndex(){this.updateOffset()},copyTrackIndex(){this.updateOffset()},height(){this.updatePos()},modelValue(e){this.updateTrackIndex(e),this.setAutoplay()}},mounted(){this.updateSlides(!0),this.handleResize(),this.setAutoplay(),fe(window,"resize",this.handleResize)},beforeUnmount(){ue(window,"resize",this.handleResize)}},Eu=["onClick","onMouseover"];function Tu(e,n,i,l,r,s){const a=t.resolveComponent("Icon");return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(s.classes)},[t.createElementVNode("button",{type:"button",class:t.normalizeClass([s.arrowClasses,"left"]),onClick:n[0]||(n[0]=o=>s.arrowEvent(-1))},[t.createVNode(a,{type:"ios-arrow-back"})],2),t.createElementVNode("div",{class:t.normalizeClass([r.prefixCls+"-list"])},[t.createElementVNode("div",{class:t.normalizeClass([r.prefixCls+"-track",r.showCopyTrack?"":"higher"]),style:t.normalizeStyle(s.trackStyles),ref:"originTrack",onClick:n[1]||(n[1]=o=>s.handleClick("currentIndex"))},[t.renderSlot(e.$slots,"default")],6),i.loop?(t.openBlock(),t.createElementBlock("div",{key:0,class:t.normalizeClass([r.prefixCls+"-track",r.showCopyTrack?"higher":""]),style:t.normalizeStyle(s.copyTrackStyles),ref:"copyTrack",onClick:n[2]||(n[2]=o=>s.handleClick("copyTrackIndex"))},null,6)):t.createCommentVNode("",!0)],2),t.createElementVNode("button",{type:"button",class:t.normalizeClass([s.arrowClasses,"right"]),onClick:n[3]||(n[3]=o=>s.arrowEvent(1))},[t.createVNode(a,{type:"ios-arrow-forward"})],2),t.createElementVNode("ul",{class:t.normalizeClass(s.dotsClasses)},[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(r.slides.length,o=>(t.openBlock(),t.createElementBlock("li",{key:o,class:t.normalizeClass([o-1===r.currentIndex?r.prefixCls+"-active":""]),onClick:d=>s.dotsEvent("click",o-1),onMouseover:d=>s.dotsEvent("hover",o-1)},[t.createElementVNode("button",{type:"button",class:t.normalizeClass([i.radiusDot?"radius":""])},null,2)],42,Eu))),128))],2)],2)}var El=S(Vu,[["render",Tu]]);const Nu="ivu-carousel-item",Iu={componentName:"carousel-item",name:"CarouselItem",inject:["CarouselInstance"],data(){return{prefixCls:Nu,width:0,height:"auto",left:0,id:Ee(6)}},computed:{styles(){return{width:`${this.width}px`,height:`${this.height}`,left:`${this.left}px`}}},watch:{width(e){e&&this.CarouselInstance.loop&&t.nextTick(()=>{this.CarouselInstance.initCopyTrackDom()})},height(e){e&&this.CarouselInstance.loop&&t.nextTick(()=>{this.CarouselInstance.initCopyTrackDom()})}},methods:{addInstance(){const e=this.CarouselInstance;e.carouselItemList||(e.carouselItemList=[]),e.carouselItemList.push({id:this.id,carouselItem:this})},removeInstance(){const e=this.CarouselInstance;if(!e.carouselItemList)return;const n=e.carouselItemList.findIndex(i=>i.id===this.id);e.carouselItemList.splice(n,1)}},mounted(){this.addInstance(),this.CarouselInstance.slotChange()},beforeUnmount(){this.removeInstance(),this.CarouselInstance.slotChange()}};function _u(e,n,i,l,r,s){return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(r.prefixCls),style:t.normalizeStyle(s.styles)},[t.renderSlot(e.$slots,"default")],6)}var Tl=S(Iu,[["render",_u]]);const Du={name:"Casitem",components:{Icon:se},mixins:[Pt],props:{data:Object,prefixCls:String,tmpItem:Object},computed:{classes(){return[`${this.prefixCls}-menu-item`,{[`${this.prefixCls}-menu-item-active`]:this.tmpItem.value===this.data.value,[`${this.prefixCls}-menu-item-disabled`]:this.data.disabled}]},showArrow(){return this.data.children&&this.data.children.length||"loading"in this.data&&!this.data.loading},showLoading(){return"loading"in this.data&&this.data.loading},arrowType(){const e=this.globalConfig;let n="ios-arrow-forward";return e&&(e.cascader.customItemArrow?n="":e.cascader.itemArrow&&(n=e.cascader.itemArrow)),n},customArrowType(){const e=this.globalConfig;let n="";return e&&e.cascader.customItemArrow&&(n=e.cascader.customItemArrow),n},arrowSize(){const e=this.globalConfig;let n="";return e&&e.cascader.itemArrowSize&&(n=e.cascader.itemArrowSize),n}}},Mu={key:1,class:"ivu-icon ivu-icon-ios-loading ivu-load-loop ivu-cascader-menu-item-loading"};function zu(e,n,i,l,r,s){const a=t.resolveComponent("Icon");return t.openBlock(),t.createElementBlock("li",{class:t.normalizeClass(s.classes)},[t.createTextVNode(t.toDisplayString(i.data.label)+" ",1),s.showArrow?(t.openBlock(),t.createBlock(a,{key:0,type:s.arrowType,custom:s.customArrowType,size:s.arrowSize},null,8,["type","custom","size"])):t.createCommentVNode("",!0),s.showLoading?(t.openBlock(),t.createElementBlock("i",Mu)):t.createCommentVNode("",!0)],2)}var Pu=S(Du,[["render",zu]]);let $u=1;const Ou={name:"Caspanel",components:{Casitem:Pu},inject:["CascaderInstance"],provide(){return{CaspanelInstance:this}},props:{data:{type:Array,default(){return[]}},disabled:Boolean,changeOnSelect:Boolean,trigger:String,prefixCls:String},data(){return{tmpItem:{},result:[],sublist:[],id:Ee(6),childCaspanelList:[]}},watch:{data(){this.sublist=[]}},methods:{handleClickItem(e){this.trigger!=="click"&&e.children&&e.children.length||this.handleTriggerItem(e,!1,!0)},handleHoverItem(e){this.trigger!=="hover"||!e.children||!e.children.length||this.handleTriggerItem(e,!1,!0)},handleTriggerItem(e,n=!1,i=!1){if(e.disabled)return;const l=Ne(this,"Cascader");if(e.loading!==void 0&&!e.children.length&&l&&l.loadData){l.loadData(e,()=>{i&&(l.isLoadedChildren=!0),e.children.length&&this.handleTriggerItem(e)});return}const r=this.getBaseItem(e);(this.changeOnSelect||r.label!==this.tmpItem.label||r.value!==this.tmpItem.value||r.label===this.tmpItem.label&&r.value===this.tmpItem.value)&&(this.tmpItem=r,this.emitUpdate([r])),e.children&&e.children.length?(this.sublist=e.children,this.CascaderInstance.handleOnResultChange({lastValue:!1,changeOnSelect:this.changeOnSelect,fromInit:n}),this.changeOnSelect&&this.childCaspanelList.length&&this.childCaspanelList[0].caspanel.handleOnClear(!0)):(this.sublist=[],this.CascaderInstance.handleOnResultChange({lastValue:!0,changeOnSelect:this.changeOnSelect,fromInit:n})),l&&l.$refs.drop.update()},updateResult(e){this.result=[this.tmpItem].concat(e),this.emitUpdate(this.result)},getBaseItem(e){let n=Object.assign({},e);return n.children&&delete n.children,n},emitUpdate(e){this.$parent.$options.name==="Caspanel"?this.$parent.updateResult(e):this.CascaderInstance.updateResult(e)},getKey(){return $u++},handleOnFindSelected(e){let i=[...e.value];for(let l=0;l{this.childCaspanelList.length&&this.childCaspanelList[0].caspanel.handleOnFindSelected({value:i})}),!1},handleOnClear(e=!1){this.sublist=[],this.tmpItem={},e&&this.childCaspanelList.length&&this.childCaspanelList[0].caspanel.handleOnClear(!0)},addCaspanel(){const e=this.CascaderInstance;e.caspanelList||(e.caspanelList=[]),e.caspanelList.push({id:this.id,caspanel:this});const n=Ne(this,"Caspanel");n&&(n.childCaspanelList||(n.childCaspanelList=[]),n.childCaspanelList.push({id:this.id,caspanel:this}))},removeCaspanel(){const e=this.CascaderInstance;if(e.caspanelList&&e.caspanelList.length){const i=e.caspanelList.findIndex(l=>l.id===this.id);e.caspanelList.splice(i,1)}const n=Ne(this,"Caspanel");if(n&&n.childCaspanelList&&n.childCaspanelList.length){const i=n.childCaspanelList.findIndex(l=>l.id===this.id);n.childCaspanelList.splice(i,1)}}},mounted(){this.addCaspanel()},beforeUnmount(){this.removeCaspanel()}};function Lu(e,n,i,l,r,s){const a=t.resolveComponent("Casitem"),o=t.resolveComponent("Caspanel",!0);return t.openBlock(),t.createElementBlock("span",null,[i.data&&i.data.length?(t.openBlock(),t.createElementBlock("ul",{key:0,class:t.normalizeClass([i.prefixCls+"-menu"])},[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(i.data,(d,c)=>(t.openBlock(),t.createBlock(a,{key:c,"prefix-cls":i.prefixCls,data:d,"tmp-item":r.tmpItem,onClick:t.withModifiers(h=>s.handleClickItem(d),["stop"]),onMouseenter:t.withModifiers(h=>s.handleHoverItem(d),["stop"])},null,8,["prefix-cls","data","tmp-item","onClick","onMouseenter"]))),128))],2)):t.createCommentVNode("",!0),r.sublist&&r.sublist.length?(t.openBlock(),t.createBlock(o,{key:1,"prefix-cls":i.prefixCls,data:r.sublist,disabled:i.disabled,trigger:i.trigger,"change-on-select":i.changeOnSelect},null,8,["prefix-cls","data","disabled","trigger","change-on-select"])):t.createCommentVNode("",!0)])}var Fu=S(Ou,[["render",Lu]]),Fs={beforeMount(e,n,i){function l(r){if(e.contains(r.target))return!1;n.value(r)}e.__vueClickOutside__=l,H&&document.addEventListener("click",l)},unmounted(e,n){H&&document.removeEventListener("click",e.__vueClickOutside__),delete e.__vueClickOutside__}};const Ft="ivu-cascader",Au="ivu-select",Ru={name:"Cascader",mixins:[ge,xe,Pt],components:{iInput:Ze,Drop:pn,Icon:se,Caspanel:Fu},directives:{clickOutside:Fs},emits:["on-change","on-visible-change","update:modelValue"],provide(){return{CascaderInstance:this}},props:{data:{type:Array,default(){return[]}},modelValue:{type:Array,default(){return[]}},disabled:{type:Boolean,default:!1},clearable:{type:Boolean,default:!0},placeholder:{type:String},size:{validator(e){return V(e,["small","large","default"])},default(){const e=t.getCurrentInstance().appContext.config.globalProperties;return!e.$VIEWUI||e.$VIEWUI.size===""?"default":e.$VIEWUI.size}},trigger:{validator(e){return V(e,["click","hover"])},default:"click"},changeOnSelect:{type:Boolean,default:!1},renderFormat:{type:Function,default(e){return e.join(" / ")}},loadData:{type:Function},filterable:{type:Boolean,default:!1},notFoundText:{type:String},transfer:{type:Boolean,default(){const e=t.getCurrentInstance().appContext.config.globalProperties;return!e.$VIEWUI||e.$VIEWUI.transfer===""?!1:e.$VIEWUI.transfer}},name:{type:String},elementId:{type:String},capture:{type:Boolean,default(){const e=t.getCurrentInstance().appContext.config.globalProperties;return e.$VIEWUI?e.$VIEWUI.capture:!0}},transferClassName:{type:String},eventsEnabled:{type:Boolean,default:!1}},data(){return{prefixCls:Ft,selectPrefixCls:Au,visible:!1,selected:[],tmpSelected:[],updatingValue:!1,currentValue:this.modelValue||[],query:"",validDataStr:"",isLoadedChildren:!1,isValueNull:!1,caspanelList:[]}},computed:{classes(){return[`${Ft}`,{[`${Ft}-show-clear`]:this.showCloseIcon,[`${Ft}-size-${this.size}`]:!!this.size,[`${Ft}-visible`]:this.visible,[`${Ft}-disabled`]:this.itemDisabled,[`${Ft}-not-found`]:this.filterable&&this.query!==""&&!this.querySelections.length}]},showCloseIcon(){return this.currentValue&&this.currentValue.length&&this.clearable&&!this.itemDisabled},displayRender(){let e=[];for(let n=0;ni.label?i.label.indexOf(this.query)>-1:!1).map(i=>(i.display=i.display.replace(new RegExp(this.query,"g"),`${this.query}`),i)),e},arrowType(){const e=this.globalConfig;let n="ios-arrow-down";return e&&(e.cascader.customArrow?n="":e.cascader.arrow&&(n=e.cascader.arrow)),n},customArrowType(){const e=this.globalConfig;let n="";return e&&e.cascader.customArrow&&(n=e.cascader.customArrow),n},arrowSize(){const e=this.globalConfig;let n="";return e&&e.cascader.arrowSize&&(n=e.cascader.arrowSize),n},dropdownCls(){return{[Ft+"-transfer"]:this.transfer,[this.transferClassName]:this.transferClassName}}},methods:{clearSelect(){if(this.itemDisabled)return!1;const e=JSON.stringify(this.currentValue);this.currentValue=this.selected=this.tmpSelected=[],this.handleClose(),this.emitValue(this.currentValue,e),this.caspanelList.forEach(n=>{n.caspanel.handleOnClear()})},handleClose(){this.visible=!1},toggleOpen(){if(this.itemDisabled)return!1;this.visible?this.filterable||this.handleClose():this.onFocus()},onFocus(){this.visible=!0,this.currentValue.length||this.caspanelList.forEach(e=>{e.caspanel.handleOnClear()})},updateResult(e){this.tmpSelected=e},updateSelected(e=!1,n=!1){(!this.changeOnSelect||e||n)&&this.caspanelList.forEach(i=>{i.caspanel.handleOnFindSelected({value:this.currentValue})})},emitValue(e,n){JSON.stringify(e)!==n&&(this.$emit("on-change",this.currentValue,JSON.parse(JSON.stringify(this.selected))),t.nextTick(()=>{this.handleFormItemChange("change",{value:this.currentValue,selected:JSON.parse(JSON.stringify(this.selected))})}))},handleInput(e){this.query=e.target.value},handleSelectItem(e){const n=this.querySelections[e];if(n.item.disabled)return!1;this.query="",this.$refs.input.currentValue="";const i=JSON.stringify(this.currentValue);this.currentValue=n.value.split(","),setTimeout(()=>{this.emitValue(this.currentValue,i),this.handleClose()},0)},handleFocus(){this.$refs.input.focus()},getValidData(e){const n=me(e);function i(l){const r=Object.assign({},l);return"loading"in r&&delete r.loading,"__value"in r&&delete r.__value,"__label"in r&&delete r.__label,"children"in r&&r.children.length&&(r.children=r.children.map(s=>i(s))),r}return n.map(l=>i(l))},handleOnResultChange(e){const n=e.lastValue,i=e.changeOnSelect,l=e.fromInit;if(n||i){const r=JSON.stringify(this.currentValue);this.selected=this.tmpSelected;let s=[];this.selected.forEach(a=>{s.push(a.value)}),l||(this.updatingValue=!0,this.currentValue=s,this.emitValue(this.currentValue,r))}n&&!l&&this.handleClose()}},created(){this.validDataStr=JSON.stringify(this.getValidData(this.data))},mounted(){this.updateSelected(!0)},watch:{visible(e){e?(this.currentValue.length&&this.updateSelected(),this.transfer&&this.$refs.drop.update(),this.$refs.drop.handleOnUpdatePopper()):(this.filterable&&(this.query="",this.$refs.input.currentValue=""),this.transfer&&this.$refs.drop.destroy(),this.$refs.drop.handleOnDestroyPopper()),this.$emit("on-visible-change",e)},modelValue(e){e===null&&(this.isValueNull=!0),this.currentValue=e||[],(e===null||!e.length)&&(this.selected=[])},currentValue(){if(this.isValueNull?(this.isValueNull=!1,this.$emit("update:modelValue",null)):this.$emit("update:modelValue",this.currentValue),this.updatingValue){this.updatingValue=!1;return}this.updateSelected(!0)},data:{deep:!0,handler(){const e=JSON.stringify(this.getValidData(this.data));e!==this.validDataStr&&(this.validDataStr=e,this.isLoadedChildren||t.nextTick(()=>this.updateSelected(!1,this.changeOnSelect)),this.isLoadedChildren=!1)}}}},Hu=["name","value"],Wu=["onClick","innerHTML"];function Uu(e,n,i,l,r,s){const a=t.resolveComponent("i-input"),o=t.resolveComponent("Icon"),d=t.resolveComponent("Caspanel"),c=t.resolveComponent("Drop"),h=t.resolveDirective("click-outside");return t.withDirectives((t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(s.classes)},[t.createElementVNode("div",{class:t.normalizeClass([r.prefixCls+"-rel"]),onClick:n[1]||(n[1]=(...m)=>s.toggleOpen&&s.toggleOpen(...m)),ref:"reference"},[t.createElementVNode("input",{type:"hidden",name:i.name,value:r.currentValue},null,8,Hu),t.renderSlot(e.$slots,"default",{},()=>[t.createVNode(a,{"element-id":i.elementId,ref:"input",readonly:!i.filterable,disabled:e.itemDisabled,modelValue:s.displayInputRender,onOnChange:s.handleInput,size:i.size,placeholder:s.inputPlaceholder},null,8,["element-id","readonly","disabled","modelValue","onOnChange","size","placeholder"]),t.withDirectives(t.createElementVNode("div",{class:t.normalizeClass([r.prefixCls+"-label"]),onClick:n[0]||(n[0]=(...m)=>s.handleFocus&&s.handleFocus(...m))},t.toDisplayString(s.displayRender),3),[[t.vShow,i.filterable&&r.query===""]]),t.withDirectives(t.createVNode(o,{type:"ios-close-circle",class:t.normalizeClass([r.prefixCls+"-arrow"]),onClick:t.withModifiers(s.clearSelect,["stop"])},null,8,["class","onClick"]),[[t.vShow,s.showCloseIcon]]),t.createVNode(o,{type:s.arrowType,custom:s.customArrowType,size:s.arrowSize,class:t.normalizeClass([r.prefixCls+"-arrow"])},null,8,["type","custom","size","class"])])],2),t.createVNode(c,{ref:"drop",visible:r.visible,classes:s.dropdownCls,eventsEnabled:i.eventsEnabled,"transition-name":"transition-drop",transfer:i.transfer},{default:t.withCtx(()=>[t.createElementVNode("div",null,[t.withDirectives(t.createVNode(d,{ref:"caspanel","prefix-cls":r.prefixCls,data:i.data,disabled:e.itemDisabled,"change-on-select":i.changeOnSelect,trigger:i.trigger},null,8,["prefix-cls","data","disabled","change-on-select","trigger"]),[[t.vShow,!i.filterable||i.filterable&&r.query===""]]),t.withDirectives(t.createElementVNode("div",{class:t.normalizeClass([r.prefixCls+"-dropdown"])},[t.createElementVNode("ul",{class:t.normalizeClass([r.selectPrefixCls+"-dropdown-list"])},[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(s.querySelections,(m,g)=>(t.openBlock(),t.createElementBlock("li",{class:t.normalizeClass([r.selectPrefixCls+"-item",{[r.selectPrefixCls+"-item-disabled"]:m.disabled}]),key:g,onClick:y=>s.handleSelectItem(g),innerHTML:m.display},null,10,Wu))),128))],2)],2),[[t.vShow,i.filterable&&r.query!==""&&s.querySelections.length]]),t.withDirectives(t.createElementVNode("ul",{class:t.normalizeClass([r.prefixCls+"-not-found-tip"])},[t.createElementVNode("li",null,t.toDisplayString(s.localeNotFoundText),1)],2),[[t.vShow,i.filterable&&r.query!==""&&!s.querySelections.length||!i.data.length]])])]),_:1},8,["visible","classes","eventsEnabled","transfer"])],2)),[[h,s.handleClose]])}var Nl=S(Ru,[["render",Uu]]);const vu={name:"CellItem",props:{title:{type:String,default:""},label:{type:String,default:""},extra:{type:String,default:""}}},ju={class:"ivu-cell-item"},Ku={class:"ivu-cell-icon"},qu={class:"ivu-cell-main"},Yu={class:"ivu-cell-title"},Gu={class:"ivu-cell-label"},Ju={class:"ivu-cell-footer"},Xu={class:"ivu-cell-extra"};function Zu(e,n,i,l,r,s){return t.openBlock(),t.createElementBlock("div",ju,[t.createElementVNode("div",Ku,[t.renderSlot(e.$slots,"icon")]),t.createElementVNode("div",qu,[t.createElementVNode("div",Yu,[t.renderSlot(e.$slots,"default",{},()=>[t.createTextVNode(t.toDisplayString(i.title),1)])]),t.createElementVNode("div",Gu,[t.renderSlot(e.$slots,"label",{},()=>[t.createTextVNode(t.toDisplayString(i.label),1)])])]),t.createElementVNode("div",Ju,[t.createElementVNode("span",Xu,[t.renderSlot(e.$slots,"extra",{},()=>[t.createTextVNode(t.toDisplayString(i.extra),1)])])])])}var Qu=S(vu,[["render",Zu]]);const Kn="ivu-cell",em={name:"Cell",inject:["CellGroupInstance"],mixins:[en,Pt],components:{CellItem:Qu,Icon:se},props:{name:{type:[String,Number]},title:{type:String,default:""},label:{type:String,default:""},extra:{type:String,default:""},disabled:{type:Boolean,default:!1},selected:{type:Boolean,default:!1}},data(){return{prefixCls:Kn}},computed:{classes(){return[`${Kn}`,{[`${Kn}-disabled`]:this.disabled,[`${Kn}-selected`]:this.selected,[`${Kn}-with-link`]:this.to}]},arrowType(){const e=this.globalConfig;let n="ios-arrow-forward";return e&&(e.cell.customArrow?n="":e.cell.arrow&&(n=e.cell.arrow)),n},customArrowType(){const e=this.globalConfig;let n="";return e&&e.cell.customArrow&&(n=e.cell.customArrow),n},arrowSize(){const e=this.globalConfig;let n="";return e&&e.cell.arrowSize&&(n=e.cell.arrowSize),n}},methods:{handleClickItem(e,n){this.CellGroupInstance.handleClick(this.name),this.handleCheckClick(e,n)}}},tm=["href","target"],nm={key:2,class:"ivu-cell-arrow"};function im(e,n,i,l,r,s){const a=t.resolveComponent("CellItem"),o=t.resolveComponent("Icon");return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(s.classes)},[e.to?(t.openBlock(),t.createElementBlock("a",{key:0,href:e.linkUrl,target:e.target,class:"ivu-cell-link",onClick:[n[0]||(n[0]=t.withModifiers(d=>s.handleClickItem(d,!1),["exact"])),n[1]||(n[1]=t.withModifiers(d=>s.handleClickItem(d,!0),["ctrl"])),n[2]||(n[2]=t.withModifiers(d=>s.handleClickItem(d,!0),["meta"]))]},[t.createVNode(a,{title:i.title,label:i.label,extra:i.extra},{icon:t.withCtx(()=>[t.renderSlot(e.$slots,"icon")]),default:t.withCtx(()=>[t.renderSlot(e.$slots,"default")]),extra:t.withCtx(()=>[t.renderSlot(e.$slots,"extra")]),label:t.withCtx(()=>[t.renderSlot(e.$slots,"label")]),_:3},8,["title","label","extra"])],8,tm)):(t.openBlock(),t.createElementBlock("div",{key:1,class:"ivu-cell-link",onClick:n[3]||(n[3]=(...d)=>s.handleClickItem&&s.handleClickItem(...d))},[t.createVNode(a,{title:i.title,label:i.label,extra:i.extra},{icon:t.withCtx(()=>[t.renderSlot(e.$slots,"icon")]),default:t.withCtx(()=>[t.renderSlot(e.$slots,"default")]),extra:t.withCtx(()=>[t.renderSlot(e.$slots,"extra")]),label:t.withCtx(()=>[t.renderSlot(e.$slots,"label")]),_:3},8,["title","label","extra"])])),e.to?(t.openBlock(),t.createElementBlock("div",nm,[t.renderSlot(e.$slots,"arrow",{},()=>[t.createVNode(o,{type:s.arrowType,custom:s.customArrowType,size:s.arrowSize},null,8,["type","custom","size"])])])):t.createCommentVNode("",!0)],2)}var Il=S(em,[["render",im]]);const sm={name:"CellGroup",emits:["on-click"],provide(){return{CellGroupInstance:this}},methods:{handleClick(e){this.$emit("on-click",e)}}},rm={class:"ivu-cell-group"};function lm(e,n,i,l,r,s){return t.openBlock(),t.createElementBlock("div",rm,[t.renderSlot(e.$slots,"default")])}var _l=S(sm,[["render",lm]]);const qe="ivu-checkbox",am={name:"Checkbox",mixins:[xe],emits:["update:modelValue","on-change"],inject:{CheckboxGroupInstance:{default:null}},props:{disabled:{type:Boolean,default:!1},modelValue:{type:[String,Number,Boolean],default:!1},trueValue:{type:[String,Number,Boolean],default:!0},falseValue:{type:[String,Number,Boolean],default:!1},label:{type:[String,Number,Boolean]},indeterminate:{type:Boolean,default:!1},size:{validator(e){return V(e,["small","large","default"])},default(){const e=t.getCurrentInstance().appContext.config.globalProperties;return!e.$VIEWUI||e.$VIEWUI.size===""?"default":e.$VIEWUI.size}},name:{type:String},border:{type:Boolean,default:!1}},data(){return{showSlot:!0,focusInner:!1,model:[]}},computed:{wrapClasses(){return[`${qe}-wrapper`,{[`${qe}-group-item`]:this.group,[`${qe}-wrapper-checked`]:this.currentValue,[`${qe}-wrapper-disabled`]:this.itemDisabled,[`${qe}-${this.size}`]:!!this.size,[`${qe}-border`]:this.border}]},checkboxClasses(){return[`${qe}`,{[`${qe}-checked`]:this.currentValue,[`${qe}-disabled`]:this.itemDisabled,[`${qe}-indeterminate`]:this.indeterminate}]},innerClasses(){return[`${qe}-inner`,{[`${qe}-focus`]:this.focusInner}]},inputClasses(){return`${qe}-input`},currentValue(){return this.CheckboxGroupInstance?this.CheckboxGroupInstance.modelValue.indexOf(this.label)>=0:this.modelValue===this.trueValue},group(){return!!this.CheckboxGroupInstance}},mounted(){this.CheckboxGroupInstance||(this.showSlot=this.$slots.default!==void 0)},methods:{change(e){if(this.itemDisabled)return!1;const i=e.target.checked?this.trueValue:this.falseValue;this.$emit("update:modelValue",i),this.group?this.CheckboxGroupInstance.change(this.model):(this.$emit("on-change",i),this.handleFormItemChange("change",i))},onBlur(){this.focusInner=!1},onFocus(){this.focusInner=!0}},watch:{modelValue(e){if(!(e===this.trueValue||e===this.falseValue))throw"Value should be trueValue or falseValue."},"CheckboxGroupInstance.modelValue":{handler(e){this.model=e||[]},immediate:!0}}},om=["disabled","value","name"],cm=["disabled","checked","name"],dm={key:0,class:"ivu-checkbox-label-text"};function hm(e,n,i,l,r,s){return t.openBlock(),t.createElementBlock("label",{class:t.normalizeClass(s.wrapClasses)},[t.createElementVNode("span",{class:t.normalizeClass(s.checkboxClasses)},[t.createElementVNode("span",{class:t.normalizeClass(s.innerClasses)},null,2),s.group?t.withDirectives((t.openBlock(),t.createElementBlock("input",{key:0,type:"checkbox",class:t.normalizeClass(s.inputClasses),disabled:e.itemDisabled,value:i.label,"onUpdate:modelValue":n[0]||(n[0]=a=>r.model=a),name:i.name,onChange:n[1]||(n[1]=(...a)=>s.change&&s.change(...a)),onFocus:n[2]||(n[2]=(...a)=>s.onFocus&&s.onFocus(...a)),onBlur:n[3]||(n[3]=(...a)=>s.onBlur&&s.onBlur(...a))},null,42,om)),[[t.vModelCheckbox,r.model]]):(t.openBlock(),t.createElementBlock("input",{key:1,type:"checkbox",class:t.normalizeClass(s.inputClasses),disabled:e.itemDisabled,checked:s.currentValue,name:i.name,onChange:n[4]||(n[4]=(...a)=>s.change&&s.change(...a)),onFocus:n[5]||(n[5]=(...a)=>s.onFocus&&s.onFocus(...a)),onBlur:n[6]||(n[6]=(...a)=>s.onBlur&&s.onBlur(...a))},null,42,cm))],2),r.showSlot?(t.openBlock(),t.createElementBlock("span",dm,[t.renderSlot(e.$slots,"default",{},()=>[t.createTextVNode(t.toDisplayString(i.label),1)])])):t.createCommentVNode("",!0)],2)}var wn=S(am,[["render",hm]]);const fm="ivu-checkbox-group",um={name:"CheckboxGroup",mixins:[xe],emits:["update:modelValue","on-change"],provide(){return{CheckboxGroupInstance:this}},props:{modelValue:{type:Array,default(){return[]}},size:{validator(e){return V(e,["small","large","default"])},default(){const e=t.getCurrentInstance().appContext.config.globalProperties;return!e.$VIEWUI||e.$VIEWUI.size===""?"default":e.$VIEWUI.size}}},data(){return{currentValue:this.modelValue||[],children:[]}},computed:{classes(){return[`${fm}`,{[`ivu-checkbox-${this.size}`]:!!this.size}]}},methods:{change(e){this.currentValue=e,this.$emit("update:modelValue",e),this.$emit("on-change",e),this.handleFormItemChange("change",e)}}};function mm(e,n,i,l,r,s){return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(s.classes)},[t.renderSlot(e.$slots,"default")],2)}var As=S(um,[["render",mm]]);const Dl="ivu-chart-circle",pm={name:"iCircle",props:{percent:{type:Number,default:0},size:{type:Number,default:120},strokeWidth:{type:Number,default:6},strokeColor:{type:[String,Array],default:"#2d8cf0"},strokeLinecap:{validator(e){return V(e,["square","round"])},default:"round"},trailWidth:{type:Number,default:5},trailColor:{type:String,default:"#eaeef2"},dashboard:{type:Boolean,default:!1}},data(){return{id:`ivu-chart-circle-${Ee(3)}`}},computed:{circleSize(){return{width:`${this.size}px`,height:`${this.size}px`}},computedStrokeWidth(){return this.percent===0&&this.dashboard?0:this.strokeWidth},radius(){return 50-this.strokeWidth/2},pathString(){return this.dashboard?`M 50,50 m 0,${this.radius} + a ${this.radius},${this.radius} 0 1 1 0,-${2*this.radius} + a ${this.radius},${this.radius} 0 1 1 0,${2*this.radius}`:`M 50,50 m 0,-${this.radius} + a ${this.radius},${this.radius} 0 1 1 0,${2*this.radius} + a ${this.radius},${this.radius} 0 1 1 0,-${2*this.radius}`},len(){return Math.PI*2*this.radius},trailStyle(){let e={};return this.dashboard&&(e={"stroke-dasharray":`${this.len-75}px ${this.len}px`,"stroke-dashoffset":`-${75/2}px`,transition:"stroke-dashoffset .3s ease 0s, stroke-dasharray .3s ease 0s, stroke .3s"}),e},pathStyle(){let e={};return this.dashboard?e={"stroke-dasharray":`${this.percent/100*(this.len-75)}px ${this.len}px`,"stroke-dashoffset":`-${75/2}px`,transition:"stroke-dashoffset .3s ease 0s, stroke-dasharray .6s ease 0s, stroke .6s, stroke-width .06s ease .6s"}:e={"stroke-dasharray":`${this.len}px ${this.len}px`,"stroke-dashoffset":`${(100-this.percent)/100*this.len}px`,transition:"stroke-dashoffset 0.6s ease 0s, stroke 0.6s ease"},e},wrapClasses(){return`${Dl}`},innerClasses(){return`${Dl}-inner`},strokeValue(){let e=this.strokeColor;return typeof this.strokeColor!="string"&&(e=`url(#${this.id})`),e},showDefs(){return typeof this.strokeColor!="string"}}},gm={viewBox:"0 0 100 100"},ym={key:0},Cm=["id"],bm=["stop-color"],km=["stop-color"],wm=["d","stroke","stroke-width","stroke-linecap"],Sm=["d","stroke-linecap","stroke","stroke-width"];function xm(e,n,i,l,r,s){return t.openBlock(),t.createElementBlock("div",{style:t.normalizeStyle(s.circleSize),class:t.normalizeClass(s.wrapClasses)},[(t.openBlock(),t.createElementBlock("svg",gm,[s.showDefs?(t.openBlock(),t.createElementBlock("defs",ym,[t.createElementVNode("linearGradient",{id:r.id,x1:"100%",y1:"0%",x2:"0%",y2:"0%"},[t.createElementVNode("stop",{offset:"0%","stop-color":i.strokeColor[0]},null,8,bm),t.createElementVNode("stop",{offset:"100%","stop-color":i.strokeColor[1]},null,8,km)],8,Cm)])):t.createCommentVNode("",!0),t.createElementVNode("path",{d:s.pathString,stroke:i.trailColor,"stroke-width":i.trailWidth,"fill-opacity":0,style:t.normalizeStyle(s.trailStyle),"stroke-linecap":i.strokeLinecap},null,12,wm),t.createElementVNode("path",{d:s.pathString,"stroke-linecap":i.strokeLinecap,stroke:s.strokeValue,"stroke-width":s.computedStrokeWidth,"fill-opacity":"0",style:t.normalizeStyle(s.pathStyle)},null,12,Sm)])),t.createElementVNode("div",{class:t.normalizeClass(s.innerClasses)},[t.renderSlot(e.$slots,"default")],2)],6)}var zi=S(pm,[["render",xm]]);const Pi="ivu-dropdown",Bm={name:"Dropdown",directives:{clickOutside:Fs},components:{Drop:pn},emits:["on-visible-change","on-clickoutside","on-click","on-hover-click","on-haschild-click"],props:{trigger:{validator(e){return V(e,["click","hover","custom","contextMenu"])},default:"hover"},placement:{validator(e){return V(e,["top","top-start","top-end","bottom","bottom-start","bottom-end","left","left-start","left-end","right","right-start","right-end"])},default:"bottom"},visible:{type:Boolean,default:!1},transfer:{type:Boolean,default(){const e=t.getCurrentInstance().appContext.config.globalProperties;return!e.$VIEWUI||e.$VIEWUI.transfer===""?!1:e.$VIEWUI.transfer}},transferClassName:{type:String},stopPropagation:{type:Boolean,default:!1},capture:{type:Boolean,default(){const e=t.getCurrentInstance().appContext.config.globalProperties;return e.$VIEWUI?e.$VIEWUI.capture:!0}},eventsEnabled:{type:Boolean,default:!1},boundariesElement:{default:"window"}},computed:{transition(){return["bottom-start","bottom","bottom-end"].indexOf(this.placement)>-1?"slide-up":"fade"},dropdownCls(){return{[Pi+"-transfer"]:this.transfer,[this.transferClassName]:this.transferClassName}},relClasses(){return[`${Pi}-rel`,{[`${Pi}-rel-user-select-none`]:this.trigger==="contextMenu"}]}},data(){return{prefixCls:Pi,currentVisible:this.visible,timeout:null}},watch:{visible(e){this.currentVisible=e},currentVisible(e){e?this.$refs.drop.update():this.$refs.drop.destroy(),this.$emit("on-visible-change",e)}},methods:{handleClick(){if(this.trigger==="custom"||this.trigger!=="click")return!1;this.hasParent()||(this.currentVisible=!this.currentVisible)},handleRightClick(){if(this.trigger==="custom"||this.trigger!=="contextMenu")return!1;this.currentVisible=!this.currentVisible},handleMouseenter(){if(this.trigger==="custom"||this.trigger!=="hover")return!1;this.timeout&&clearTimeout(this.timeout),this.timeout=setTimeout(()=>{this.currentVisible=!0},250)},handleMouseleave(){if(this.trigger==="custom"||this.trigger!=="hover")return!1;this.timeout&&(clearTimeout(this.timeout),this.timeout=setTimeout(()=>{this.currentVisible=!1},150))},onClickoutside(e){this.handleClose(),this.handleRightClose(),this.currentVisible&&this.$emit("on-clickoutside",e)},handleClose(){if(this.trigger==="custom"||this.trigger!=="click")return!1;this.currentVisible=!1},handleRightClose(){if(this.trigger==="custom"||this.trigger!=="contextMenu")return!1;this.currentVisible=!1},hasParent(){const e=Ne(this,"Dropdown");return e||!1},handleHaschildClick(){t.nextTick(()=>{if(this.trigger==="custom")return!1;this.currentVisible=!0});const e=this.hasParent();e&&e.handleHaschildClick()},handleItemClick(e){if(this.stopPropagation)return;const n=this.hasParent();n?n.handleItemClick(e):this.$emit("on-click",e)},handleHoverClick(){const e=this.hasParent();e?(t.nextTick(()=>{if(this.trigger==="custom")return!1;this.currentVisible=!1}),e.handleHoverClick()):t.nextTick(()=>{if(this.trigger==="custom")return!1;this.currentVisible=!1})}}};function Vm(e,n,i,l,r,s){const a=t.resolveComponent("Drop"),o=t.resolveDirective("click-outside");return t.withDirectives((t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass([r.prefixCls]),onMouseenter:n[2]||(n[2]=(...d)=>s.handleMouseenter&&s.handleMouseenter(...d)),onMouseleave:n[3]||(n[3]=(...d)=>s.handleMouseleave&&s.handleMouseleave(...d))},[t.createElementVNode("div",{class:t.normalizeClass(s.relClasses),ref:"reference",onClick:n[0]||(n[0]=(...d)=>s.handleClick&&s.handleClick(...d)),onContextmenu:n[1]||(n[1]=t.withModifiers((...d)=>s.handleRightClick&&s.handleRightClick(...d),["prevent"]))},[t.renderSlot(e.$slots,"default")],34),t.createVNode(a,{ref:"drop",visible:r.currentVisible,classes:s.dropdownCls,placement:i.placement,eventsEnabled:i.eventsEnabled,boundariesElement:i.boundariesElement,transfer:i.transfer,"transition-name":"transition-drop",onMouseenter:s.handleMouseenter,onMouseleave:s.handleMouseleave},{default:t.withCtx(()=>[t.renderSlot(e.$slots,"list")]),_:3},8,["visible","classes","placement","eventsEnabled","boundariesElement","transfer","onMouseenter","onMouseleave"])],34)),[[o,s.onClickoutside]])}var an=S(Bm,[["render",Vm]]);const Em={name:"DropdownMenu"},Tm={class:"ivu-dropdown-menu"};function Nm(e,n,i,l,r,s){return t.openBlock(),t.createElementBlock("ul",Tm,[t.renderSlot(e.$slots,"default")])}var on=S(Em,[["render",Nm]]);const Qe="ivu-tag",Vt=["default","primary","success","warning","error","blue","green","red","yellow","pink","magenta","volcano","orange","gold","lime","cyan","geekblue","purple"],Im=["pink","magenta","volcano","orange","gold","lime","cyan","geekblue","purple"],_m={name:"Tag",components:{Icon:se},emits:["on-change","on-close"],props:{closable:{type:Boolean,default:!1},checkable:{type:Boolean,default:!1},checked:{type:Boolean,default:!0},color:{type:String,default:"default"},type:{validator(e){return V(e,["border","dot"])}},name:{type:[String,Number]},size:{validator(e){return V(e,["default","medium","large"])},default:"default"}},data(){return{isChecked:this.checked}},computed:{classes(){return[`${Qe}`,`${Qe}-size-${this.size}`,{[`${Qe}-${this.color}`]:!!this.color&&V(this.color,Vt),[`${Qe}-${this.type}`]:!!this.type,[`${Qe}-closable`]:this.closable,[`${Qe}-checked`]:this.isChecked,[`${Qe}-checkable`]:this.checkable}]},wraperStyles(){return V(this.color,Vt)?{}:{background:this.isChecked?this.defaultTypeColor:"transparent",borderWidth:"1px",borderStyle:"solid",borderColor:this.type!=="dot"&&this.type!=="border"&&this.isChecked?this.borderColor:this.lineColor,color:this.lineColor}},textClasses(){return[`${Qe}-text`,this.type==="border"&&V(this.color,Vt)?`${Qe}-color-${this.color}`:"",this.type!=="dot"&&this.type!=="border"&&this.color!=="default"&&this.isChecked&&Im.indexOf(this.color)<0?`${Qe}-color-white`:""]},dotClasses(){return`${Qe}-dot-inner`},iconClass(){return this.type==="dot"?"":this.type==="border"?V(this.color,Vt)?`${Qe}-color-${this.color}`:"":this.color!==void 0?this.color==="default"?"":"rgb(255, 255, 255)":""},showDot(){return!!this.type&&this.type==="dot"},lineColor(){return this.type==="dot"?"":this.type==="border"?this.color!==void 0?V(this.color,Vt)?"":this.color:"":this.color!==void 0?this.color==="default"?"":"rgb(255, 255, 255)":""},borderColor(){return this.color!==void 0?this.color==="default"?"":this.color:""},dotColor(){return this.color!==void 0?V(this.color,Vt)?"":this.color:""},textColorStyle(){return V(this.color,Vt)?{}:this.type!=="dot"&&this.type!=="border"?this.isChecked?{color:this.lineColor}:{}:{color:this.lineColor}},bgColorStyle(){return V(this.color,Vt)?{}:{background:this.dotColor}},defaultTypeColor(){return this.type!=="dot"&&this.type!=="border"&&this.color!==void 0?V(this.color,Vt)?"":this.color:""}},methods:{close(e){this.name===void 0?this.$emit("on-close",e):this.$emit("on-close",e,this.name)},check(){if(!this.checkable)return;const e=!this.isChecked;this.isChecked=e,this.name===void 0?this.$emit("on-change",e):this.$emit("on-change",e,this.name)}},watch:{checked(e){this.isChecked=e}}};function Dm(e,n,i,l,r,s){const a=t.resolveComponent("Icon");return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(s.classes),onClick:n[0]||(n[0]=t.withModifiers((...o)=>s.check&&s.check(...o),["stop"])),style:t.normalizeStyle(s.wraperStyles)},[s.showDot?(t.openBlock(),t.createElementBlock("span",{key:0,class:t.normalizeClass(s.dotClasses),style:t.normalizeStyle(s.bgColorStyle)},null,6)):t.createCommentVNode("",!0),t.createElementVNode("span",{class:t.normalizeClass(s.textClasses),style:t.normalizeStyle(s.textColorStyle)},[t.renderSlot(e.$slots,"default")],6),i.closable?(t.openBlock(),t.createBlock(a,{key:1,class:t.normalizeClass(s.iconClass),color:s.lineColor,type:"ios-close",onClick:t.withModifiers(s.close,["stop"])},null,8,["class","color","onClick"])):t.createCommentVNode("",!0)],6)}var Sn=S(_m,[["render",Dm]]),Ml={11e4:{l:"Z1",n:"\u5317\u4EAC",c:"110000",p:"86"},12e4:{l:"Z1",n:"\u5929\u6D25",c:"120000",p:"86"},13e4:{l:"H",n:"\u6CB3\u5317",c:"130000",p:"86"},14e4:{l:"S",n:"\u5C71\u897F",c:"140000",p:"86"},15e4:{l:"N",n:"\u5185\u8499\u53E4",c:"150000",p:"86"},21e4:{l:"L",n:"\u8FBD\u5B81",c:"210000",p:"86"},22e4:{l:"J",n:"\u5409\u6797",c:"220000",p:"86"},23e4:{l:"H",n:"\u9ED1\u9F99\u6C5F",c:"230000",p:"86"},31e4:{l:"Z1",n:"\u4E0A\u6D77",c:"310000",p:"86"},32e4:{l:"J",n:"\u6C5F\u82CF",c:"320000",p:"86"},33e4:{l:"Z",n:"\u6D59\u6C5F",c:"330000",p:"86"},34e4:{l:"A",n:"\u5B89\u5FBD",c:"340000",p:"86"},35e4:{l:"F",n:"\u798F\u5EFA",c:"350000",p:"86"},36e4:{l:"J",n:"\u6C5F\u897F",c:"360000",p:"86"},37e4:{l:"S",n:"\u5C71\u4E1C",c:"370000",p:"86"},41e4:{l:"H",n:"\u6CB3\u5357",c:"410000",p:"86"},42e4:{l:"H",n:"\u6E56\u5317",c:"420000",p:"86"},43e4:{l:"H",n:"\u6E56\u5357",c:"430000",p:"86"},44e4:{l:"G",n:"\u5E7F\u4E1C",c:"440000",p:"86"},45e4:{l:"G",n:"\u5E7F\u897F",c:"450000",p:"86"},46e4:{l:"H",n:"\u6D77\u5357",c:"460000",p:"86"},5e5:{l:"Z1",n:"\u91CD\u5E86",c:"500000",p:"86"},51e4:{l:"S",n:"\u56DB\u5DDD",c:"510000",p:"86"},52e4:{l:"G",n:"\u8D35\u5DDE",c:"520000",p:"86"},53e4:{l:"Y",n:"\u4E91\u5357",c:"530000",p:"86"},54e4:{l:"X",n:"\u897F\u85CF",c:"540000",p:"86"},61e4:{l:"S",n:"\u9655\u897F",c:"610000",p:"86"},62e4:{l:"G",n:"\u7518\u8083",c:"620000",p:"86"},63e4:{l:"Q",n:"\u9752\u6D77",c:"630000",p:"86"},64e4:{l:"N",n:"\u5B81\u590F",c:"640000",p:"86"},65e4:{l:"X",n:"\u65B0\u7586",c:"650000",p:"86"},71e4:{l:"T",n:"\u53F0\u6E7E",c:"710000",p:"86"},81e4:{l:"Z2",n:"\u9999\u6E2F",c:"810000",p:"86"},82e4:{l:"Z2",n:"\u6FB3\u95E8",c:"820000",p:"86"}},xn={11e4:{l:"B",n:"\u5317\u4EAC\u5E02",c:"110000",p:"86"},12e4:{l:"T",n:"\u5929\u6D25\u5E02",c:"120000",p:"86"},130100:{l:"S",n:"\u77F3\u5BB6\u5E84\u5E02",c:"130100",p:"130000"},130200:{l:"T",n:"\u5510\u5C71\u5E02",c:"130200",p:"130000"},130300:{l:"Q",n:"\u79E6\u7687\u5C9B\u5E02",c:"130300",p:"130000"},130400:{l:"H",n:"\u90AF\u90F8\u5E02",c:"130400",p:"130000"},130500:{l:"X",n:"\u90A2\u53F0\u5E02",c:"130500",p:"130000"},130600:{l:"B",n:"\u4FDD\u5B9A\u5E02",c:"130600",p:"130000"},130700:{l:"Z",n:"\u5F20\u5BB6\u53E3\u5E02",c:"130700",p:"130000"},130800:{l:"C",n:"\u627F\u5FB7\u5E02",c:"130800",p:"130000"},130900:{l:"C",n:"\u6CA7\u5DDE\u5E02",c:"130900",p:"130000"},131e3:{l:"L",n:"\u5ECA\u574A\u5E02",c:"131000",p:"130000"},131100:{l:"H",n:"\u8861\u6C34\u5E02",c:"131100",p:"130000"},139001:{l:"D",n:"\u5B9A\u5DDE\u5E02",c:"139001",p:"130000"},139002:{l:"X",n:"\u8F9B\u96C6\u5E02",c:"139002",p:"130000"},140100:{l:"T",n:"\u592A\u539F\u5E02",c:"140100",p:"140000"},140200:{l:"D",n:"\u5927\u540C\u5E02",c:"140200",p:"140000"},140300:{l:"Y",n:"\u9633\u6CC9\u5E02",c:"140300",p:"140000"},140400:{l:"C",n:"\u957F\u6CBB\u5E02",c:"140400",p:"140000"},140500:{l:"J",n:"\u664B\u57CE\u5E02",c:"140500",p:"140000"},140600:{l:"S",n:"\u6714\u5DDE\u5E02",c:"140600",p:"140000"},140700:{l:"J",n:"\u664B\u4E2D\u5E02",c:"140700",p:"140000"},140800:{l:"Y",n:"\u8FD0\u57CE\u5E02",c:"140800",p:"140000"},140900:{l:"X",n:"\u5FFB\u5DDE\u5E02",c:"140900",p:"140000"},141e3:{l:"L",n:"\u4E34\u6C7E\u5E02",c:"141000",p:"140000"},141100:{l:"L",n:"\u5415\u6881\u5E02",c:"141100",p:"140000"},150100:{l:"H",n:"\u547C\u548C\u6D69\u7279\u5E02",c:"150100",p:"150000"},150200:{l:"B",n:"\u5305\u5934\u5E02",c:"150200",p:"150000"},150300:{l:"W",n:"\u4E4C\u6D77\u5E02",c:"150300",p:"150000"},150400:{l:"C",n:"\u8D64\u5CF0\u5E02",c:"150400",p:"150000"},150500:{l:"T",n:"\u901A\u8FBD\u5E02",c:"150500",p:"150000"},150600:{l:"E",n:"\u9102\u5C14\u591A\u65AF\u5E02",c:"150600",p:"150000"},150700:{l:"H",n:"\u547C\u4F26\u8D1D\u5C14\u5E02",c:"150700",p:"150000"},150800:{l:"B",n:"\u5DF4\u5F66\u6DD6\u5C14\u5E02",c:"150800",p:"150000"},150900:{l:"W",n:"\u4E4C\u5170\u5BDF\u5E03\u5E02",c:"150900",p:"150000"},152200:{l:"X",n:"\u5174\u5B89\u76DF",c:"152200",p:"150000"},152500:{l:"X",n:"\u9521\u6797\u90ED\u52D2\u76DF",c:"152500",p:"150000"},152900:{l:"A",n:"\u963F\u62C9\u5584\u76DF",c:"152900",p:"150000"},210100:{l:"S",n:"\u6C88\u9633\u5E02",c:"210100",p:"210000"},210200:{l:"D",n:"\u5927\u8FDE\u5E02",c:"210200",p:"210000"},210300:{l:"A",n:"\u978D\u5C71\u5E02",c:"210300",p:"210000"},210400:{l:"F",n:"\u629A\u987A\u5E02",c:"210400",p:"210000"},210500:{l:"B",n:"\u672C\u6EAA\u5E02",c:"210500",p:"210000"},210600:{l:"D",n:"\u4E39\u4E1C\u5E02",c:"210600",p:"210000"},210700:{l:"J",n:"\u9526\u5DDE\u5E02",c:"210700",p:"210000"},210800:{l:"Y",n:"\u8425\u53E3\u5E02",c:"210800",p:"210000"},210900:{l:"F",n:"\u961C\u65B0\u5E02",c:"210900",p:"210000"},211e3:{l:"L",n:"\u8FBD\u9633\u5E02",c:"211000",p:"210000"},211100:{l:"P",n:"\u76D8\u9526\u5E02",c:"211100",p:"210000"},211200:{l:"T",n:"\u94C1\u5CAD\u5E02",c:"211200",p:"210000"},211300:{l:"C",n:"\u671D\u9633\u5E02",c:"211300",p:"210000"},211400:{l:"H",n:"\u846B\u82A6\u5C9B\u5E02",c:"211400",p:"210000"},220100:{l:"C",n:"\u957F\u6625\u5E02",c:"220100",p:"220000"},220200:{l:"J",n:"\u5409\u6797\u5E02",c:"220200",p:"220000"},220300:{l:"S",n:"\u56DB\u5E73\u5E02",c:"220300",p:"220000"},220400:{l:"L",n:"\u8FBD\u6E90\u5E02",c:"220400",p:"220000"},220500:{l:"T",n:"\u901A\u5316\u5E02",c:"220500",p:"220000"},220600:{l:"B",n:"\u767D\u5C71\u5E02",c:"220600",p:"220000"},220700:{l:"S",n:"\u677E\u539F\u5E02",c:"220700",p:"220000"},220800:{l:"B",n:"\u767D\u57CE\u5E02",c:"220800",p:"220000"},222400:{l:"Y",n:"\u5EF6\u8FB9\u671D\u9C9C\u65CF\u81EA\u6CBB\u5DDE",c:"222400",p:"220000"},230100:{l:"H",n:"\u54C8\u5C14\u6EE8\u5E02",c:"230100",p:"230000"},230200:{l:"Q",n:"\u9F50\u9F50\u54C8\u5C14\u5E02",c:"230200",p:"230000"},230300:{l:"J",n:"\u9E21\u897F\u5E02",c:"230300",p:"230000"},230400:{l:"H",n:"\u9E64\u5C97\u5E02",c:"230400",p:"230000"},230500:{l:"S",n:"\u53CC\u9E2D\u5C71\u5E02",c:"230500",p:"230000"},230600:{l:"D",n:"\u5927\u5E86\u5E02",c:"230600",p:"230000"},230700:{l:"Y",n:"\u4F0A\u6625\u5E02",c:"230700",p:"230000"},230800:{l:"J",n:"\u4F73\u6728\u65AF\u5E02",c:"230800",p:"230000"},230900:{l:"Q",n:"\u4E03\u53F0\u6CB3\u5E02",c:"230900",p:"230000"},231e3:{l:"M",n:"\u7261\u4E39\u6C5F\u5E02",c:"231000",p:"230000"},231100:{l:"H",n:"\u9ED1\u6CB3\u5E02",c:"231100",p:"230000"},231200:{l:"S",n:"\u7EE5\u5316\u5E02",c:"231200",p:"230000"},232700:{l:"D",n:"\u5927\u5174\u5B89\u5CAD\u5730\u533A",c:"232700",p:"230000"},31e4:{l:"S",n:"\u4E0A\u6D77\u5E02",c:"310000",p:"86"},320100:{l:"N",n:"\u5357\u4EAC\u5E02",c:"320100",p:"320000"},320200:{l:"W",n:"\u65E0\u9521\u5E02",c:"320200",p:"320000"},320300:{l:"X",n:"\u5F90\u5DDE\u5E02",c:"320300",p:"320000"},320400:{l:"C",n:"\u5E38\u5DDE\u5E02",c:"320400",p:"320000"},320500:{l:"S",n:"\u82CF\u5DDE\u5E02",c:"320500",p:"320000"},320600:{l:"N",n:"\u5357\u901A\u5E02",c:"320600",p:"320000"},320700:{l:"L",n:"\u8FDE\u4E91\u6E2F\u5E02",c:"320700",p:"320000"},320800:{l:"H",n:"\u6DEE\u5B89\u5E02",c:"320800",p:"320000"},320900:{l:"Y",n:"\u76D0\u57CE\u5E02",c:"320900",p:"320000"},321e3:{l:"Y",n:"\u626C\u5DDE\u5E02",c:"321000",p:"320000"},321100:{l:"Z",n:"\u9547\u6C5F\u5E02",c:"321100",p:"320000"},321200:{l:"T",n:"\u6CF0\u5DDE\u5E02",c:"321200",p:"320000"},321300:{l:"X",n:"\u5BBF\u8FC1\u5E02",c:"321300",p:"320000"},330100:{l:"H",n:"\u676D\u5DDE\u5E02",c:"330100",p:"330000"},330200:{l:"N",n:"\u5B81\u6CE2\u5E02",c:"330200",p:"330000"},330300:{l:"W",n:"\u6E29\u5DDE\u5E02",c:"330300",p:"330000"},330400:{l:"J",n:"\u5609\u5174\u5E02",c:"330400",p:"330000"},330500:{l:"H",n:"\u6E56\u5DDE\u5E02",c:"330500",p:"330000"},330600:{l:"S",n:"\u7ECD\u5174\u5E02",c:"330600",p:"330000"},330700:{l:"J",n:"\u91D1\u534E\u5E02",c:"330700",p:"330000"},330800:{l:"Q",n:"\u8862\u5DDE\u5E02",c:"330800",p:"330000"},330900:{l:"Z",n:"\u821F\u5C71\u5E02",c:"330900",p:"330000"},331e3:{l:"T",n:"\u53F0\u5DDE\u5E02",c:"331000",p:"330000"},331100:{l:"L",n:"\u4E3D\u6C34\u5E02",c:"331100",p:"330000"},340100:{l:"H",n:"\u5408\u80A5\u5E02",c:"340100",p:"340000"},340200:{l:"W",n:"\u829C\u6E56\u5E02",c:"340200",p:"340000"},340300:{l:"B",n:"\u868C\u57E0\u5E02",c:"340300",p:"340000"},340400:{l:"H",n:"\u6DEE\u5357\u5E02",c:"340400",p:"340000"},340500:{l:"M",n:"\u9A6C\u978D\u5C71\u5E02",c:"340500",p:"340000"},340600:{l:"H",n:"\u6DEE\u5317\u5E02",c:"340600",p:"340000"},340700:{l:"T",n:"\u94DC\u9675\u5E02",c:"340700",p:"340000"},340800:{l:"A",n:"\u5B89\u5E86\u5E02",c:"340800",p:"340000"},341e3:{l:"H",n:"\u9EC4\u5C71\u5E02",c:"341000",p:"340000"},341100:{l:"C",n:"\u6EC1\u5DDE\u5E02",c:"341100",p:"340000"},341200:{l:"F",n:"\u961C\u9633\u5E02",c:"341200",p:"340000"},341300:{l:"X",n:"\u5BBF\u5DDE\u5E02",c:"341300",p:"340000"},341500:{l:"L",n:"\u516D\u5B89\u5E02",c:"341500",p:"340000"},341600:{l:"B",n:"\u4EB3\u5DDE\u5E02",c:"341600",p:"340000"},341700:{l:"C",n:"\u6C60\u5DDE\u5E02",c:"341700",p:"340000"},341800:{l:"X",n:"\u5BA3\u57CE\u5E02",c:"341800",p:"340000"},350100:{l:"F",n:"\u798F\u5DDE\u5E02",c:"350100",p:"350000"},350200:{l:"S",n:"\u53A6\u95E8\u5E02",c:"350200",p:"350000"},350300:{l:"P",n:"\u8386\u7530\u5E02",c:"350300",p:"350000"},350400:{l:"S",n:"\u4E09\u660E\u5E02",c:"350400",p:"350000"},350500:{l:"Q",n:"\u6CC9\u5DDE\u5E02",c:"350500",p:"350000"},350600:{l:"Z",n:"\u6F33\u5DDE\u5E02",c:"350600",p:"350000"},350700:{l:"N",n:"\u5357\u5E73\u5E02",c:"350700",p:"350000"},350800:{l:"L",n:"\u9F99\u5CA9\u5E02",c:"350800",p:"350000"},350900:{l:"N",n:"\u5B81\u5FB7\u5E02",c:"350900",p:"350000"},360100:{l:"N",n:"\u5357\u660C\u5E02",c:"360100",p:"360000"},360200:{l:"J",n:"\u666F\u5FB7\u9547\u5E02",c:"360200",p:"360000"},360300:{l:"P",n:"\u840D\u4E61\u5E02",c:"360300",p:"360000"},360400:{l:"J",n:"\u4E5D\u6C5F\u5E02",c:"360400",p:"360000"},360500:{l:"X",n:"\u65B0\u4F59\u5E02",c:"360500",p:"360000"},360600:{l:"Y",n:"\u9E70\u6F6D\u5E02",c:"360600",p:"360000"},360700:{l:"G",n:"\u8D63\u5DDE\u5E02",c:"360700",p:"360000"},360800:{l:"J",n:"\u5409\u5B89\u5E02",c:"360800",p:"360000"},360900:{l:"Y",n:"\u5B9C\u6625\u5E02",c:"360900",p:"360000"},361e3:{l:"F",n:"\u629A\u5DDE\u5E02",c:"361000",p:"360000"},361100:{l:"S",n:"\u4E0A\u9976\u5E02",c:"361100",p:"360000"},370100:{l:"J",n:"\u6D4E\u5357\u5E02",c:"370100",p:"370000"},370200:{l:"Q",n:"\u9752\u5C9B\u5E02",c:"370200",p:"370000"},370300:{l:"Z",n:"\u6DC4\u535A\u5E02",c:"370300",p:"370000"},370400:{l:"Z",n:"\u67A3\u5E84\u5E02",c:"370400",p:"370000"},370500:{l:"D",n:"\u4E1C\u8425\u5E02",c:"370500",p:"370000"},370600:{l:"Y",n:"\u70DF\u53F0\u5E02",c:"370600",p:"370000"},370700:{l:"W",n:"\u6F4D\u574A\u5E02",c:"370700",p:"370000"},370800:{l:"J",n:"\u6D4E\u5B81\u5E02",c:"370800",p:"370000"},370900:{l:"T",n:"\u6CF0\u5B89\u5E02",c:"370900",p:"370000"},371e3:{l:"W",n:"\u5A01\u6D77\u5E02",c:"371000",p:"370000"},371100:{l:"R",n:"\u65E5\u7167\u5E02",c:"371100",p:"370000"},371200:{l:"L",n:"\u83B1\u829C\u5E02",c:"371200",p:"370000"},371300:{l:"L",n:"\u4E34\u6C82\u5E02",c:"371300",p:"370000"},371400:{l:"D",n:"\u5FB7\u5DDE\u5E02",c:"371400",p:"370000"},371500:{l:"L",n:"\u804A\u57CE\u5E02",c:"371500",p:"370000"},371600:{l:"B",n:"\u6EE8\u5DDE\u5E02",c:"371600",p:"370000"},371700:{l:"H",n:"\u83CF\u6CFD\u5E02",c:"371700",p:"370000"},410100:{l:"Z",n:"\u90D1\u5DDE\u5E02",c:"410100",p:"410000"},410200:{l:"K",n:"\u5F00\u5C01\u5E02",c:"410200",p:"410000"},410300:{l:"L",n:"\u6D1B\u9633\u5E02",c:"410300",p:"410000"},410400:{l:"P",n:"\u5E73\u9876\u5C71\u5E02",c:"410400",p:"410000"},410500:{l:"A",n:"\u5B89\u9633\u5E02",c:"410500",p:"410000"},410600:{l:"H",n:"\u9E64\u58C1\u5E02",c:"410600",p:"410000"},410700:{l:"X",n:"\u65B0\u4E61\u5E02",c:"410700",p:"410000"},410800:{l:"J",n:"\u7126\u4F5C\u5E02",c:"410800",p:"410000"},410900:{l:"P",n:"\u6FEE\u9633\u5E02",c:"410900",p:"410000"},411e3:{l:"X",n:"\u8BB8\u660C\u5E02",c:"411000",p:"410000"},411100:{l:"L",n:"\u6F2F\u6CB3\u5E02",c:"411100",p:"410000"},411200:{l:"S",n:"\u4E09\u95E8\u5CE1\u5E02",c:"411200",p:"410000"},411300:{l:"N",n:"\u5357\u9633\u5E02",c:"411300",p:"410000"},411400:{l:"S",n:"\u5546\u4E18\u5E02",c:"411400",p:"410000"},411500:{l:"X",n:"\u4FE1\u9633\u5E02",c:"411500",p:"410000"},411600:{l:"Z",n:"\u5468\u53E3\u5E02",c:"411600",p:"410000"},411700:{l:"Z",n:"\u9A7B\u9A6C\u5E97\u5E02",c:"411700",p:"410000"},419001:{l:"J",n:"\u6D4E\u6E90\u5E02",c:"419001",p:"410000"},420100:{l:"W",n:"\u6B66\u6C49\u5E02",c:"420100",p:"420000"},420200:{l:"H",n:"\u9EC4\u77F3\u5E02",c:"420200",p:"420000"},420300:{l:"S",n:"\u5341\u5830\u5E02",c:"420300",p:"420000"},420500:{l:"Y",n:"\u5B9C\u660C\u5E02",c:"420500",p:"420000"},420600:{l:"X",n:"\u8944\u9633\u5E02",c:"420600",p:"420000"},420700:{l:"E",n:"\u9102\u5DDE\u5E02",c:"420700",p:"420000"},420800:{l:"J",n:"\u8346\u95E8\u5E02",c:"420800",p:"420000"},420900:{l:"X",n:"\u5B5D\u611F\u5E02",c:"420900",p:"420000"},421e3:{l:"J",n:"\u8346\u5DDE\u5E02",c:"421000",p:"420000"},421100:{l:"H",n:"\u9EC4\u5188\u5E02",c:"421100",p:"420000"},421200:{l:"X",n:"\u54B8\u5B81\u5E02",c:"421200",p:"420000"},421300:{l:"S",n:"\u968F\u5DDE\u5E02",c:"421300",p:"420000"},422800:{l:"E",n:"\u6069\u65BD\u571F\u5BB6\u65CF\u82D7\u65CF\u81EA\u6CBB\u5DDE",c:"422800",p:"420000"},429004:{l:"X",n:"\u4ED9\u6843\u5E02",c:"429004",p:"420000"},429005:{l:"Q",n:"\u6F5C\u6C5F\u5E02",c:"429005",p:"420000"},429006:{l:"T",n:"\u5929\u95E8\u5E02",c:"429006",p:"420000"},429021:{l:"S",n:"\u795E\u519C\u67B6\u6797\u533A",c:"429021",p:"420000"},430100:{l:"C",n:"\u957F\u6C99\u5E02",c:"430100",p:"430000"},430200:{l:"Z",n:"\u682A\u6D32\u5E02",c:"430200",p:"430000"},430300:{l:"X",n:"\u6E58\u6F6D\u5E02",c:"430300",p:"430000"},430400:{l:"H",n:"\u8861\u9633\u5E02",c:"430400",p:"430000"},430500:{l:"S",n:"\u90B5\u9633\u5E02",c:"430500",p:"430000"},430600:{l:"Y",n:"\u5CB3\u9633\u5E02",c:"430600",p:"430000"},430700:{l:"C",n:"\u5E38\u5FB7\u5E02",c:"430700",p:"430000"},430800:{l:"Z",n:"\u5F20\u5BB6\u754C\u5E02",c:"430800",p:"430000"},430900:{l:"Y",n:"\u76CA\u9633\u5E02",c:"430900",p:"430000"},431e3:{l:"C",n:"\u90F4\u5DDE\u5E02",c:"431000",p:"430000"},431100:{l:"Y",n:"\u6C38\u5DDE\u5E02",c:"431100",p:"430000"},431200:{l:"H",n:"\u6000\u5316\u5E02",c:"431200",p:"430000"},431300:{l:"L",n:"\u5A04\u5E95\u5E02",c:"431300",p:"430000"},433100:{l:"X",n:"\u6E58\u897F\u571F\u5BB6\u65CF\u82D7\u65CF\u81EA\u6CBB\u5DDE",c:"433100",p:"430000"},440100:{l:"G",n:"\u5E7F\u5DDE\u5E02",c:"440100",p:"440000"},440200:{l:"S",n:"\u97F6\u5173\u5E02",c:"440200",p:"440000"},440300:{l:"S",n:"\u6DF1\u5733\u5E02",c:"440300",p:"440000"},440400:{l:"Z",n:"\u73E0\u6D77\u5E02",c:"440400",p:"440000"},440500:{l:"S",n:"\u6C55\u5934\u5E02",c:"440500",p:"440000"},440600:{l:"F",n:"\u4F5B\u5C71\u5E02",c:"440600",p:"440000"},440700:{l:"J",n:"\u6C5F\u95E8\u5E02",c:"440700",p:"440000"},440800:{l:"Z",n:"\u6E5B\u6C5F\u5E02",c:"440800",p:"440000"},440900:{l:"M",n:"\u8302\u540D\u5E02",c:"440900",p:"440000"},441200:{l:"Z",n:"\u8087\u5E86\u5E02",c:"441200",p:"440000"},441300:{l:"H",n:"\u60E0\u5DDE\u5E02",c:"441300",p:"440000"},441400:{l:"M",n:"\u6885\u5DDE\u5E02",c:"441400",p:"440000"},441500:{l:"S",n:"\u6C55\u5C3E\u5E02",c:"441500",p:"440000"},441600:{l:"H",n:"\u6CB3\u6E90\u5E02",c:"441600",p:"440000"},441700:{l:"Y",n:"\u9633\u6C5F\u5E02",c:"441700",p:"440000"},441800:{l:"Q",n:"\u6E05\u8FDC\u5E02",c:"441800",p:"440000"},441900:{l:"D",n:"\u4E1C\u839E\u5E02",c:"441900",p:"440000"},442e3:{l:"Z",n:"\u4E2D\u5C71\u5E02",c:"442000",p:"440000"},445100:{l:"C",n:"\u6F6E\u5DDE\u5E02",c:"445100",p:"440000"},445200:{l:"J",n:"\u63ED\u9633\u5E02",c:"445200",p:"440000"},445300:{l:"Y",n:"\u4E91\u6D6E\u5E02",c:"445300",p:"440000"},450100:{l:"N",n:"\u5357\u5B81\u5E02",c:"450100",p:"450000"},450200:{l:"L",n:"\u67F3\u5DDE\u5E02",c:"450200",p:"450000"},450300:{l:"G",n:"\u6842\u6797\u5E02",c:"450300",p:"450000"},450400:{l:"W",n:"\u68A7\u5DDE\u5E02",c:"450400",p:"450000"},450500:{l:"B",n:"\u5317\u6D77\u5E02",c:"450500",p:"450000"},450600:{l:"F",n:"\u9632\u57CE\u6E2F\u5E02",c:"450600",p:"450000"},450700:{l:"Q",n:"\u94A6\u5DDE\u5E02",c:"450700",p:"450000"},450800:{l:"G",n:"\u8D35\u6E2F\u5E02",c:"450800",p:"450000"},450900:{l:"Y",n:"\u7389\u6797\u5E02",c:"450900",p:"450000"},451e3:{l:"B",n:"\u767E\u8272\u5E02",c:"451000",p:"450000"},451100:{l:"H",n:"\u8D3A\u5DDE\u5E02",c:"451100",p:"450000"},451200:{l:"H",n:"\u6CB3\u6C60\u5E02",c:"451200",p:"450000"},451300:{l:"L",n:"\u6765\u5BBE\u5E02",c:"451300",p:"450000"},451400:{l:"C",n:"\u5D07\u5DE6\u5E02",c:"451400",p:"450000"},460100:{l:"H",n:"\u6D77\u53E3\u5E02",c:"460100",p:"460000"},460200:{l:"S",n:"\u4E09\u4E9A\u5E02",c:"460200",p:"460000"},460300:{l:"S",n:"\u4E09\u6C99\u5E02",c:"460300",p:"460000"},460400:{l:"D",n:"\u510B\u5DDE\u5E02",c:"460400",p:"460000"},469001:{l:"W",n:"\u4E94\u6307\u5C71\u5E02",c:"469001",p:"460000"},469002:{l:"Q",n:"\u743C\u6D77\u5E02",c:"469002",p:"460000"},469005:{l:"W",n:"\u6587\u660C\u5E02",c:"469005",p:"460000"},469006:{l:"W",n:"\u4E07\u5B81\u5E02",c:"469006",p:"460000"},469007:{l:"D",n:"\u4E1C\u65B9\u5E02",c:"469007",p:"460000"},469021:{l:"D",n:"\u5B9A\u5B89\u53BF",c:"469021",p:"460000"},469022:{l:"T",n:"\u5C6F\u660C\u53BF",c:"469022",p:"460000"},469023:{l:"C",n:"\u6F84\u8FC8\u53BF",c:"469023",p:"460000"},469024:{l:"L",n:"\u4E34\u9AD8\u53BF",c:"469024",p:"460000"},469025:{l:"B",n:"\u767D\u6C99\u9ECE\u65CF\u81EA\u6CBB\u53BF",c:"469025",p:"460000"},469026:{l:"C",n:"\u660C\u6C5F\u9ECE\u65CF\u81EA\u6CBB\u53BF",c:"469026",p:"460000"},469027:{l:"L",n:"\u4E50\u4E1C\u9ECE\u65CF\u81EA\u6CBB\u53BF",c:"469027",p:"460000"},469028:{l:"L",n:"\u9675\u6C34\u9ECE\u65CF\u81EA\u6CBB\u53BF",c:"469028",p:"460000"},469029:{l:"B",n:"\u4FDD\u4EAD\u9ECE\u65CF\u82D7\u65CF\u81EA\u6CBB\u53BF",c:"469029",p:"460000"},469030:{l:"Q",n:"\u743C\u4E2D\u9ECE\u65CF\u82D7\u65CF\u81EA\u6CBB\u53BF",c:"469030",p:"460000"},5e5:{l:"C",n:"\u91CD\u5E86\u5E02",c:"500000",p:"86"},510100:{l:"C",n:"\u6210\u90FD\u5E02",c:"510100",p:"510000"},510300:{l:"Z",n:"\u81EA\u8D21\u5E02",c:"510300",p:"510000"},510400:{l:"P",n:"\u6500\u679D\u82B1\u5E02",c:"510400",p:"510000"},510500:{l:"L",n:"\u6CF8\u5DDE\u5E02",c:"510500",p:"510000"},510600:{l:"D",n:"\u5FB7\u9633\u5E02",c:"510600",p:"510000"},510700:{l:"M",n:"\u7EF5\u9633\u5E02",c:"510700",p:"510000"},510800:{l:"G",n:"\u5E7F\u5143\u5E02",c:"510800",p:"510000"},510900:{l:"S",n:"\u9042\u5B81\u5E02",c:"510900",p:"510000"},511e3:{l:"N",n:"\u5185\u6C5F\u5E02",c:"511000",p:"510000"},511100:{l:"L",n:"\u4E50\u5C71\u5E02",c:"511100",p:"510000"},511300:{l:"N",n:"\u5357\u5145\u5E02",c:"511300",p:"510000"},511400:{l:"M",n:"\u7709\u5C71\u5E02",c:"511400",p:"510000"},511500:{l:"Y",n:"\u5B9C\u5BBE\u5E02",c:"511500",p:"510000"},511600:{l:"G",n:"\u5E7F\u5B89\u5E02",c:"511600",p:"510000"},511700:{l:"D",n:"\u8FBE\u5DDE\u5E02",c:"511700",p:"510000"},511800:{l:"Y",n:"\u96C5\u5B89\u5E02",c:"511800",p:"510000"},511900:{l:"B",n:"\u5DF4\u4E2D\u5E02",c:"511900",p:"510000"},512e3:{l:"Z",n:"\u8D44\u9633\u5E02",c:"512000",p:"510000"},513200:{l:"A",n:"\u963F\u575D\u85CF\u65CF\u7F8C\u65CF\u81EA\u6CBB\u5DDE",c:"513200",p:"510000"},513300:{l:"G",n:"\u7518\u5B5C\u85CF\u65CF\u81EA\u6CBB\u5DDE",c:"513300",p:"510000"},513400:{l:"L",n:"\u51C9\u5C71\u5F5D\u65CF\u81EA\u6CBB\u5DDE",c:"513400",p:"510000"},520100:{l:"G",n:"\u8D35\u9633\u5E02",c:"520100",p:"520000"},520200:{l:"L",n:"\u516D\u76D8\u6C34\u5E02",c:"520200",p:"520000"},520300:{l:"Z",n:"\u9075\u4E49\u5E02",c:"520300",p:"520000"},520400:{l:"A",n:"\u5B89\u987A\u5E02",c:"520400",p:"520000"},520500:{l:"B",n:"\u6BD5\u8282\u5E02",c:"520500",p:"520000"},520600:{l:"T",n:"\u94DC\u4EC1\u5E02",c:"520600",p:"520000"},522300:{l:"Q",n:"\u9ED4\u897F\u5357\u5E03\u4F9D\u65CF\u82D7\u65CF\u81EA\u6CBB\u5DDE",c:"522300",p:"520000"},522600:{l:"Q",n:"\u9ED4\u4E1C\u5357\u82D7\u65CF\u4F97\u65CF\u81EA\u6CBB\u5DDE",c:"522600",p:"520000"},522700:{l:"Q",n:"\u9ED4\u5357\u5E03\u4F9D\u65CF\u82D7\u65CF\u81EA\u6CBB\u5DDE",c:"522700",p:"520000"},530100:{l:"K",n:"\u6606\u660E\u5E02",c:"530100",p:"530000"},530300:{l:"Q",n:"\u66F2\u9756\u5E02",c:"530300",p:"530000"},530400:{l:"Y",n:"\u7389\u6EAA\u5E02",c:"530400",p:"530000"},530500:{l:"B",n:"\u4FDD\u5C71\u5E02",c:"530500",p:"530000"},530600:{l:"Z",n:"\u662D\u901A\u5E02",c:"530600",p:"530000"},530700:{l:"L",n:"\u4E3D\u6C5F\u5E02",c:"530700",p:"530000"},530800:{l:"P",n:"\u666E\u6D31\u5E02",c:"530800",p:"530000"},530900:{l:"L",n:"\u4E34\u6CA7\u5E02",c:"530900",p:"530000"},532300:{l:"C",n:"\u695A\u96C4\u5F5D\u65CF\u81EA\u6CBB\u5DDE",c:"532300",p:"530000"},532500:{l:"H",n:"\u7EA2\u6CB3\u54C8\u5C3C\u65CF\u5F5D\u65CF\u81EA\u6CBB\u5DDE",c:"532500",p:"530000"},532600:{l:"W",n:"\u6587\u5C71\u58EE\u65CF\u82D7\u65CF\u81EA\u6CBB\u5DDE",c:"532600",p:"530000"},532800:{l:"X",n:"\u897F\u53CC\u7248\u7EB3\u50A3\u65CF\u81EA\u6CBB\u5DDE",c:"532800",p:"530000"},532900:{l:"D",n:"\u5927\u7406\u767D\u65CF\u81EA\u6CBB\u5DDE",c:"532900",p:"530000"},533100:{l:"D",n:"\u5FB7\u5B8F\u50A3\u65CF\u666F\u9887\u65CF\u81EA\u6CBB\u5DDE",c:"533100",p:"530000"},533300:{l:"N",n:"\u6012\u6C5F\u5088\u50F3\u65CF\u81EA\u6CBB\u5DDE",c:"533300",p:"530000"},533400:{l:"D",n:"\u8FEA\u5E86\u85CF\u65CF\u81EA\u6CBB\u5DDE",c:"533400",p:"530000"},540100:{l:"L",n:"\u62C9\u8428\u5E02",c:"540100",p:"540000"},540200:{l:"R",n:"\u65E5\u5580\u5219\u5E02",c:"540200",p:"540000"},540300:{l:"C",n:"\u660C\u90FD\u5E02",c:"540300",p:"540000"},540400:{l:"L",n:"\u6797\u829D\u5E02",c:"540400",p:"540000"},540500:{l:"S",n:"\u5C71\u5357\u5E02",c:"540500",p:"540000"},542400:{l:"N",n:"\u90A3\u66F2\u5730\u533A",c:"542400",p:"540000"},542500:{l:"A",n:"\u963F\u91CC\u5730\u533A",c:"542500",p:"540000"},610100:{l:"X",n:"\u897F\u5B89\u5E02",c:"610100",p:"610000"},610200:{l:"T",n:"\u94DC\u5DDD\u5E02",c:"610200",p:"610000"},610300:{l:"B",n:"\u5B9D\u9E21\u5E02",c:"610300",p:"610000"},610400:{l:"X",n:"\u54B8\u9633\u5E02",c:"610400",p:"610000"},610500:{l:"W",n:"\u6E2D\u5357\u5E02",c:"610500",p:"610000"},610600:{l:"Y",n:"\u5EF6\u5B89\u5E02",c:"610600",p:"610000"},610700:{l:"H",n:"\u6C49\u4E2D\u5E02",c:"610700",p:"610000"},610800:{l:"Y",n:"\u6986\u6797\u5E02",c:"610800",p:"610000"},610900:{l:"A",n:"\u5B89\u5EB7\u5E02",c:"610900",p:"610000"},611e3:{l:"S",n:"\u5546\u6D1B\u5E02",c:"611000",p:"610000"},620100:{l:"L",n:"\u5170\u5DDE\u5E02",c:"620100",p:"620000"},620200:{l:"J",n:"\u5609\u5CEA\u5173\u5E02",c:"620200",p:"620000"},620300:{l:"J",n:"\u91D1\u660C\u5E02",c:"620300",p:"620000"},620400:{l:"B",n:"\u767D\u94F6\u5E02",c:"620400",p:"620000"},620500:{l:"T",n:"\u5929\u6C34\u5E02",c:"620500",p:"620000"},620600:{l:"W",n:"\u6B66\u5A01\u5E02",c:"620600",p:"620000"},620700:{l:"Z",n:"\u5F20\u6396\u5E02",c:"620700",p:"620000"},620800:{l:"P",n:"\u5E73\u51C9\u5E02",c:"620800",p:"620000"},620900:{l:"J",n:"\u9152\u6CC9\u5E02",c:"620900",p:"620000"},621e3:{l:"Q",n:"\u5E86\u9633\u5E02",c:"621000",p:"620000"},621100:{l:"D",n:"\u5B9A\u897F\u5E02",c:"621100",p:"620000"},621200:{l:"L",n:"\u9647\u5357\u5E02",c:"621200",p:"620000"},622900:{l:"L",n:"\u4E34\u590F\u56DE\u65CF\u81EA\u6CBB\u5DDE",c:"622900",p:"620000"},623e3:{l:"G",n:"\u7518\u5357\u85CF\u65CF\u81EA\u6CBB\u5DDE",c:"623000",p:"620000"},630100:{l:"X",n:"\u897F\u5B81\u5E02",c:"630100",p:"630000"},630200:{l:"H",n:"\u6D77\u4E1C\u5E02",c:"630200",p:"630000"},632200:{l:"H",n:"\u6D77\u5317\u85CF\u65CF\u81EA\u6CBB\u5DDE",c:"632200",p:"630000"},632300:{l:"H",n:"\u9EC4\u5357\u85CF\u65CF\u81EA\u6CBB\u5DDE",c:"632300",p:"630000"},632500:{l:"H",n:"\u6D77\u5357\u85CF\u65CF\u81EA\u6CBB\u5DDE",c:"632500",p:"630000"},632600:{l:"G",n:"\u679C\u6D1B\u85CF\u65CF\u81EA\u6CBB\u5DDE",c:"632600",p:"630000"},632700:{l:"Y",n:"\u7389\u6811\u85CF\u65CF\u81EA\u6CBB\u5DDE",c:"632700",p:"630000"},632800:{l:"H",n:"\u6D77\u897F\u8499\u53E4\u65CF\u85CF\u65CF\u81EA\u6CBB\u5DDE",c:"632800",p:"630000"},640100:{l:"Y",n:"\u94F6\u5DDD\u5E02",c:"640100",p:"640000"},640200:{l:"S",n:"\u77F3\u5634\u5C71\u5E02",c:"640200",p:"640000"},640300:{l:"W",n:"\u5434\u5FE0\u5E02",c:"640300",p:"640000"},640400:{l:"G",n:"\u56FA\u539F\u5E02",c:"640400",p:"640000"},640500:{l:"Z",n:"\u4E2D\u536B\u5E02",c:"640500",p:"640000"},650100:{l:"W",n:"\u4E4C\u9C81\u6728\u9F50\u5E02",c:"650100",p:"650000"},650200:{l:"K",n:"\u514B\u62C9\u739B\u4F9D\u5E02",c:"650200",p:"650000"},650400:{l:"T",n:"\u5410\u9C81\u756A\u5E02",c:"650400",p:"650000"},650500:{l:"H",n:"\u54C8\u5BC6\u5E02",c:"650500",p:"650000"},652300:{l:"C",n:"\u660C\u5409\u56DE\u65CF\u81EA\u6CBB\u5DDE",c:"652300",p:"650000"},652700:{l:"B",n:"\u535A\u5C14\u5854\u62C9\u8499\u53E4\u81EA\u6CBB\u5DDE",c:"652700",p:"650000"},652800:{l:"B",n:"\u5DF4\u97F3\u90ED\u695E\u8499\u53E4\u81EA\u6CBB\u5DDE",c:"652800",p:"650000"},652900:{l:"A",n:"\u963F\u514B\u82CF\u5730\u533A",c:"652900",p:"650000"},653e3:{l:"K",n:"\u514B\u5B5C\u52D2\u82CF\u67EF\u5C14\u514B\u5B5C\u81EA\u6CBB\u5DDE",c:"653000",p:"650000"},653100:{l:"K",n:"\u5580\u4EC0\u5730\u533A",c:"653100",p:"650000"},653200:{l:"H",n:"\u548C\u7530\u5730\u533A",c:"653200",p:"650000"},654e3:{l:"Y",n:"\u4F0A\u7281\u54C8\u8428\u514B\u81EA\u6CBB\u5DDE",c:"654000",p:"650000"},654200:{l:"T",n:"\u5854\u57CE\u5730\u533A",c:"654200",p:"650000"},654300:{l:"A",n:"\u963F\u52D2\u6CF0\u5730\u533A",c:"654300",p:"650000"},659001:{l:"S",n:"\u77F3\u6CB3\u5B50\u5E02",c:"659001",p:"650000"},659002:{l:"A",n:"\u963F\u62C9\u5C14\u5E02",c:"659002",p:"650000"},659003:{l:"T",n:"\u56FE\u6728\u8212\u514B\u5E02",c:"659003",p:"650000"},659004:{l:"W",n:"\u4E94\u5BB6\u6E20\u5E02",c:"659004",p:"650000"},659006:{l:"T",n:"\u94C1\u95E8\u5173\u5E02",c:"659006",p:"650000"},710101:{l:"J",n:"\u91D1\u95E8",c:"710101",p:"710000"},710102:{l:"L",n:"\u8FDE\u6C5F",c:"710102",p:"710000"},710103:{l:"M",n:"\u82D7\u6817",c:"710103",p:"710000"},710104:{l:"N",n:"\u5357\u6295",c:"710104",p:"710000"},710105:{l:"P",n:"\u6F8E\u6E56",c:"710105",p:"710000"},710106:{l:"P",n:"\u5C4F\u4E1C",c:"710106",p:"710000"},710107:{l:"T",n:"\u53F0\u4E1C",c:"710107",p:"710000"},710108:{l:"T",n:"\u53F0\u4E2D",c:"710108",p:"710000"},710109:{l:"T",n:"\u53F0\u5357",c:"710109",p:"710000"},710110:{l:"T",n:"\u53F0\u5317",c:"710110",p:"710000"},710111:{l:"T",n:"\u6843\u56ED",c:"710111",p:"710000"},710112:{l:"Y",n:"\u4E91\u6797",c:"710112",p:"710000"},710113:{l:"X",n:"\u65B0\u5317",c:"710113",p:"710000"},710114:{l:"Z",n:"\u5F70\u5316",c:"710114",p:"710000"},710115:{l:"J",n:"\u5609\u4E49",c:"710115",p:"710000"},710116:{l:"X",n:"\u65B0\u7AF9",c:"710116",p:"710000"},710117:{l:"H",n:"\u82B1\u83B2",c:"710117",p:"710000"},710118:{l:"Y",n:"\u5B9C\u5170",c:"710118",p:"710000"},710119:{l:"G",n:"\u9AD8\u96C4",c:"710119",p:"710000"},710120:{l:"J",n:"\u57FA\u9686",c:"710120",p:"710000"},81e4:{l:"X",n:"\u9999\u6E2F\u7279\u522B\u884C\u653F\u533A",c:"810000",p:"86"},82e4:{l:"A",n:"\u6FB3\u95E8\u7279\u522B\u884C\u653F\u533A",c:"820000",p:"86"}};function qn(e){return e.replace("\u5E02","").replace("\u5730\u533A","").replace("\u7279\u522B\u884C\u653F\u533A","")}function Mm(){const e=me(xn),n=[];for(let i in e){const l=e[i];l.n=qn(l.n),n.push(l)}return n}function zl(e,n){if(!n)return"";const i=e.find(l=>l.n===n);return i?i.c:(console.error("[View UI warn]: City name error."),"")}function zm(e,n){return e.find(l=>l.c===n).n}const Pm={name:"City",mixins:[xe],components:{Dropdown:an,DropdownMenu:on,Select:nn,Option:gn,Tag:Sn,Icon:se,RadioGroup:Ni,Radio:Ii},emits:["on-change","update:modelValue"],props:{modelValue:{type:String},useName:{type:Boolean,default:!1},cities:{type:Array,default(){return[]}},disabled:{type:Boolean,default:!1},clearable:{type:Boolean,default:!1},showSuffix:{type:Boolean,default:!1},size:{validator(e){return V(e,["small","large","default"])},default(){const e=t.getCurrentInstance().appContext.config.globalProperties;return!e.$VIEWUI||e.$VIEWUI.size===""?"default":e.$VIEWUI.size}},transfer:{type:Boolean,default(){const e=t.getCurrentInstance().appContext.config.globalProperties;return!e.$VIEWUI||e.$VIEWUI.transfer===""?!1:e.$VIEWUI.transfer}},name:{type:String},elementId:{type:String},placeholder:{type:String,default:"\u8BF7\u9009\u62E9"},searchPlaceholder:{type:String,default:"\u8F93\u5165\u57CE\u5E02\u540D\u79F0\u641C\u7D22"},transferClassName:{type:String}},data(){const e=Mm();return{currentValue:this.useName?zl(e,this.modelValue):this.modelValue,visible:!1,provinceList:[],cityListByProvince:[],cityListByLetter:{},allCities:e,listType:"province",queryCity:""}},watch:{modelValue(e){const n=this.useName?zl(this.allCities,e):e;this.currentValue=n}},computed:{showCloseIcon(){return this.currentValue&&this.clearable&&!this.itemDisabled},classes(){return[{["ivu-city-show-clear"]:this.showCloseIcon,[`ivu-city-size-${this.size}`]:!!this.size,["ivu-city-visible"]:this.visible,["ivu-city-disabled"]:this.itemDisabled}]},transferClasses(){let e="ivu-city-transfer";return this.transferClassName&&(e+=` ${this.transferClassName}`),e},relCities(){const e=[];return this.cities.length&&this.cities.forEach(n=>{const i=xn[n];i.n=qn(i.n),e.push(i)}),e},codeToName(){if(!this.currentValue)return this.placeholder;const e=xn[this.currentValue].n;return this.showSuffix?e:qn(e)}},methods:{handleSelect(e){e&&(this.handleChangeValue(e),t.nextTick(()=>{this.queryCity=""}))},handleChangeValue(e){this.currentValue=e,this.visible=!1;const n=this.useName?zm(this.allCities,e):e;this.$emit("update:modelValue",n),this.$emit("on-change",xn[e]),this.handleFormItemChange("change",e)},handleClickLetter(e){let n=e;n==="\u76F4\u8F96\u5E02"?n="Z1":n==="\u6E2F\u6FB3"&&(n="Z2");const i=`.ivu-city-${n}`,l=this.$refs.list,s=l.querySelectorAll(i)[0].offsetTop,a=l.offsetTop;l.scrollTop=s-a},clearSelect(){if(this.itemDisabled)return!1},handleToggleOpen(){if(this.itemDisabled)return!1;this.visible=!this.visible},handleVisibleChange(e){this.visible=e},handleClickOutside(e){this.$refs.city.contains(e.target)||(this.visible=!1)},handleGetProvinceByLetter(){const e={A:{n:"A",p:[],c:[]},F:{n:"F",p:[],c:[]},G:{n:"G",p:[],c:[]},H:{n:"H",p:[],c:[]},J:{n:"J",p:[],c:[]},L:{n:"L",p:[],c:[]},N:{n:"N",p:[],c:[]},Q:{n:"Q",p:[],c:[]},S:{n:"S",p:[],c:[]},T:{n:"T",p:[],c:[]},X:{n:"X",p:[],c:[]},Y:{n:"Y",p:[],c:[]},Z:{n:"Z",p:[],c:[]},Z1:{n:"\u76F4\u8F96\u5E02",p:[],c:[]},Z2:{n:"\u6E2F\u6FB3",p:[],c:[]}};for(let n in Ml){const i=Ml[n];e[i.l].p.push(i)}this.provinceList=e},handleGetCityByProvince(){const e=me(this.provinceList),n=[],i=me(xn),l=[{p:{n:"\u76F4\u8F96\u5E02",p:"86",l:"Z1"},c:[]},{p:{n:"\u6E2F\u6FB3",p:"86",l:"Z2"},c:[]}];for(let r in e){const s=e[r];for(let a=0;a[t.createVNode(g,{onClick:n[3]||(n[3]=t.withModifiers(()=>{},["stop"]))},{default:t.withCtx(()=>[t.createElementVNode("div",Om,[i.cities.length?(t.openBlock(),t.createElementBlock("div",Lm,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(s.relCities,C=>(t.openBlock(),t.createElementBlock("span",{key:C.n,onClick:u=>s.handleChangeValue(C.c)},t.toDisplayString(C.n),9,Fm))),128))])):t.createCommentVNode("",!0),t.createElementVNode("div",Am,[t.createElementVNode("div",Rm,[t.createVNode(d,{modelValue:r.listType,"onUpdate:modelValue":n[1]||(n[1]=C=>r.listType=C),type:"button",size:"small"},{default:t.withCtx(()=>[t.createVNode(o,{label:"province"},{default:t.withCtx(()=>[t.createTextVNode("\u6309\u7701\u4EFD")]),_:1}),t.createVNode(o,{label:"city"},{default:t.withCtx(()=>[t.createTextVNode("\u6309\u57CE\u5E02")]),_:1})]),_:1},8,["modelValue"])]),t.createElementVNode("div",Hm,[t.createVNode(h,{modelValue:r.queryCity,"onUpdate:modelValue":n[2]||(n[2]=C=>r.queryCity=C),filterable:"",size:"small",transfer:"",placeholder:i.searchPlaceholder,onOnChange:s.handleSelect},{default:t.withCtx(()=>[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(r.allCities,C=>(t.openBlock(),t.createBlock(c,{value:C.c,key:C.c},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(C.n),1)]),_:2},1032,["value"]))),128))]),_:1},8,["modelValue","placeholder","onOnChange"])])]),r.listType==="province"?(t.openBlock(),t.createElementBlock("div",Wm,[t.createElementVNode("div",Um,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(r.provinceList,C=>(t.openBlock(),t.createBlock(m,{onClick:u=>s.handleClickLetter(C.n),type:"border",fade:!1,key:C.n},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(C.n),1)]),_:2},1032,["onClick"]))),128))]),t.createElementVNode("div",vm,[t.createElementVNode("dl",null,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(r.cityListByProvince,C=>(t.openBlock(),t.createElementBlock(t.Fragment,{key:C.p.n},[t.createElementVNode("dt",{class:t.normalizeClass("ivu-city-"+C.p.l)},t.toDisplayString(C.p.n)+"\uFF1A",3),t.createElementVNode("dd",null,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(C.c,u=>(t.openBlock(),t.createElementBlock("li",{key:u.n,onClick:x=>s.handleChangeValue(u.c)},t.toDisplayString(u.n),9,jm))),128))])],64))),128))])],512)])):t.createCommentVNode("",!0),r.listType==="city"?(t.openBlock(),t.createElementBlock("div",Km,[t.createElementVNode("div",qm,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(r.cityListByLetter,(C,u)=>(t.openBlock(),t.createBlock(m,{onClick:x=>s.handleClickLetter(u),type:"border",fade:!1,key:u},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(u),1)]),_:2},1032,["onClick"]))),128))]),t.createElementVNode("div",Ym,[t.createElementVNode("dl",null,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(r.cityListByLetter,(C,u)=>(t.openBlock(),t.createElementBlock(t.Fragment,{key:u},[t.createElementVNode("dt",{class:t.normalizeClass("ivu-city-"+u)},t.toDisplayString(u)+"\uFF1A",3),t.createElementVNode("dd",null,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(C,x=>(t.openBlock(),t.createElementBlock("li",{key:x.n,onClick:I=>s.handleChangeValue(x.c)},t.toDisplayString(x.n),9,Gm))),128))])],64))),128))])],512)])):t.createCommentVNode("",!0)])]),_:1})]),default:t.withCtx(()=>[t.createElementVNode("div",{class:"ivu-city-rel",onClick:n[0]||(n[0]=t.withModifiers((...C)=>s.handleToggleOpen&&s.handleToggleOpen(...C),["prevent","stop"]))},[t.createElementVNode("input",{type:"hidden",name:i.name,value:r.currentValue},null,8,$m),t.renderSlot(e.$slots,"default",{},()=>[t.createElementVNode("span",null,t.toDisplayString(s.codeToName),1),t.withDirectives(t.createVNode(a,{type:"ios-close-circle",class:"ivu-city-arrow",onClick:t.withModifiers(s.clearSelect,["stop"])},null,8,["onClick"]),[[t.vShow,s.showCloseIcon]]),t.createVNode(a,{type:"ios-arrow-down",class:"ivu-city-arrow"})])])]),_:3},8,["visible","transfer","transfer-class-name","onOnVisibleChange","onOnClickoutside"])],2)}var Pl=S(Pm,[["render",Jm]]);const $l="ivu-collapse",Xm={name:"Collapse",emits:["on-change","update:modelValue"],provide(){return{CollapseInstance:this}},props:{accordion:{type:Boolean,default:!1},modelValue:{type:[Array,String]},simple:{type:Boolean,default:!1}},data(){return{currentValue:this.modelValue,panelCount:0}},computed:{classes(){return[`${$l}`,{[`${$l}-simple`]:this.simple}]}},methods:{getActiveKey(){let e=this.currentValue||[];const n=this.accordion;Array.isArray(e)||(e=[e]),n&&e.length>1&&(e=[e[0]]);for(let i=0;i-1&&l.splice(r,1):r<0&&l.push(n),i=l}this.currentValue=i,this.$emit("update:modelValue",i),this.$emit("on-change",i)}},watch:{modelValue(e){this.currentValue=e}}};function Zm(e,n,i,l,r,s){return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(s.classes)},[t.renderSlot(e.$slots,"default")],2)}var Ol=S(Xm,[["render",Zm]]);function $i(e){return $i=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(n){return typeof n}:function(n){return n&&typeof Symbol=="function"&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},$i(e)}var Qm=/^\s+/,ep=/\s+$/;function K(e,n){if(e=e||"",n=n||{},e instanceof K)return e;if(!(this instanceof K))return new K(e,n);var i=tp(e);this._originalInput=e,this._r=i.r,this._g=i.g,this._b=i.b,this._a=i.a,this._roundA=Math.round(100*this._a)/100,this._format=n.format||i.format,this._gradientType=n.gradientType,this._r<1&&(this._r=Math.round(this._r)),this._g<1&&(this._g=Math.round(this._g)),this._b<1&&(this._b=Math.round(this._b)),this._ok=i.ok}K.prototype={isDark:function(){return this.getBrightness()<128},isLight:function(){return!this.isDark()},isValid:function(){return this._ok},getOriginalInput:function(){return this._originalInput},getFormat:function(){return this._format},getAlpha:function(){return this._a},getBrightness:function(){var n=this.toRgb();return(n.r*299+n.g*587+n.b*114)/1e3},getLuminance:function(){var n=this.toRgb(),i,l,r,s,a,o;return i=n.r/255,l=n.g/255,r=n.b/255,i<=.03928?s=i/12.92:s=Math.pow((i+.055)/1.055,2.4),l<=.03928?a=l/12.92:a=Math.pow((l+.055)/1.055,2.4),r<=.03928?o=r/12.92:o=Math.pow((r+.055)/1.055,2.4),.2126*s+.7152*a+.0722*o},setAlpha:function(n){return this._a=Wl(n),this._roundA=Math.round(100*this._a)/100,this},toHsv:function(){var n=Fl(this._r,this._g,this._b);return{h:n.h*360,s:n.s,v:n.v,a:this._a}},toHsvString:function(){var n=Fl(this._r,this._g,this._b),i=Math.round(n.h*360),l=Math.round(n.s*100),r=Math.round(n.v*100);return this._a==1?"hsv("+i+", "+l+"%, "+r+"%)":"hsva("+i+", "+l+"%, "+r+"%, "+this._roundA+")"},toHsl:function(){var n=Ll(this._r,this._g,this._b);return{h:n.h*360,s:n.s,l:n.l,a:this._a}},toHslString:function(){var n=Ll(this._r,this._g,this._b),i=Math.round(n.h*360),l=Math.round(n.s*100),r=Math.round(n.l*100);return this._a==1?"hsl("+i+", "+l+"%, "+r+"%)":"hsla("+i+", "+l+"%, "+r+"%, "+this._roundA+")"},toHex:function(n){return Al(this._r,this._g,this._b,n)},toHexString:function(n){return"#"+this.toHex(n)},toHex8:function(n){return rp(this._r,this._g,this._b,this._a,n)},toHex8String:function(n){return"#"+this.toHex8(n)},toRgb:function(){return{r:Math.round(this._r),g:Math.round(this._g),b:Math.round(this._b),a:this._a}},toRgbString:function(){return this._a==1?"rgb("+Math.round(this._r)+", "+Math.round(this._g)+", "+Math.round(this._b)+")":"rgba("+Math.round(this._r)+", "+Math.round(this._g)+", "+Math.round(this._b)+", "+this._roundA+")"},toPercentageRgb:function(){return{r:Math.round(Ce(this._r,255)*100)+"%",g:Math.round(Ce(this._g,255)*100)+"%",b:Math.round(Ce(this._b,255)*100)+"%",a:this._a}},toPercentageRgbString:function(){return this._a==1?"rgb("+Math.round(Ce(this._r,255)*100)+"%, "+Math.round(Ce(this._g,255)*100)+"%, "+Math.round(Ce(this._b,255)*100)+"%)":"rgba("+Math.round(Ce(this._r,255)*100)+"%, "+Math.round(Ce(this._g,255)*100)+"%, "+Math.round(Ce(this._b,255)*100)+"%, "+this._roundA+")"},toName:function(){return this._a===0?"transparent":this._a<1?!1:yp[Al(this._r,this._g,this._b,!0)]||!1},toFilter:function(n){var i="#"+Rl(this._r,this._g,this._b,this._a),l=i,r=this._gradientType?"GradientType = 1, ":"";if(n){var s=K(n);l="#"+Rl(s._r,s._g,s._b,s._a)}return"progid:DXImageTransform.Microsoft.gradient("+r+"startColorstr="+i+",endColorstr="+l+")"},toString:function(n){var i=!!n;n=n||this._format;var l=!1,r=this._a<1&&this._a>=0,s=!i&&r&&(n==="hex"||n==="hex6"||n==="hex3"||n==="hex4"||n==="hex8"||n==="name");return s?n==="name"&&this._a===0?this.toName():this.toRgbString():(n==="rgb"&&(l=this.toRgbString()),n==="prgb"&&(l=this.toPercentageRgbString()),(n==="hex"||n==="hex6")&&(l=this.toHexString()),n==="hex3"&&(l=this.toHexString(!0)),n==="hex4"&&(l=this.toHex8String(!0)),n==="hex8"&&(l=this.toHex8String()),n==="name"&&(l=this.toName()),n==="hsl"&&(l=this.toHslString()),n==="hsv"&&(l=this.toHsvString()),l||this.toHexString())},clone:function(){return K(this.toString())},_applyModification:function(n,i){var l=n.apply(null,[this].concat([].slice.call(i)));return this._r=l._r,this._g=l._g,this._b=l._b,this.setAlpha(l._a),this},lighten:function(){return this._applyModification(cp,arguments)},brighten:function(){return this._applyModification(dp,arguments)},darken:function(){return this._applyModification(hp,arguments)},desaturate:function(){return this._applyModification(lp,arguments)},saturate:function(){return this._applyModification(ap,arguments)},greyscale:function(){return this._applyModification(op,arguments)},spin:function(){return this._applyModification(fp,arguments)},_applyCombination:function(n,i){return n.apply(null,[this].concat([].slice.call(i)))},analogous:function(){return this._applyCombination(pp,arguments)},complement:function(){return this._applyCombination(up,arguments)},monochromatic:function(){return this._applyCombination(gp,arguments)},splitcomplement:function(){return this._applyCombination(mp,arguments)},triad:function(){return this._applyCombination(Hl,[3])},tetrad:function(){return this._applyCombination(Hl,[4])}},K.fromRatio=function(e,n){if($i(e)=="object"){var i={};for(var l in e)e.hasOwnProperty(l)&&(l==="a"?i[l]=e[l]:i[l]=Yn(e[l]));e=i}return K(e,n)};function tp(e){var n={r:0,g:0,b:0},i=1,l=null,r=null,s=null,a=!1,o=!1;return typeof e=="string"&&(e=wp(e)),$i(e)=="object"&&(Et(e.r)&&Et(e.g)&&Et(e.b)?(n=np(e.r,e.g,e.b),a=!0,o=String(e.r).substr(-1)==="%"?"prgb":"rgb"):Et(e.h)&&Et(e.s)&&Et(e.v)?(l=Yn(e.s),r=Yn(e.v),n=sp(e.h,l,r),a=!0,o="hsv"):Et(e.h)&&Et(e.s)&&Et(e.l)&&(l=Yn(e.s),s=Yn(e.l),n=ip(e.h,l,s),a=!0,o="hsl"),e.hasOwnProperty("a")&&(i=e.a)),i=Wl(i),{ok:a,format:e.format||o,r:Math.min(255,Math.max(n.r,0)),g:Math.min(255,Math.max(n.g,0)),b:Math.min(255,Math.max(n.b,0)),a:i}}function np(e,n,i){return{r:Ce(e,255)*255,g:Ce(n,255)*255,b:Ce(i,255)*255}}function Ll(e,n,i){e=Ce(e,255),n=Ce(n,255),i=Ce(i,255);var l=Math.max(e,n,i),r=Math.min(e,n,i),s,a,o=(l+r)/2;if(l==r)s=a=0;else{var d=l-r;switch(a=o>.5?d/(2-l-r):d/(l+r),l){case e:s=(n-i)/d+(n1&&(m-=1),m<1/6?c+(h-c)*6*m:m<1/2?h:m<2/3?c+(h-c)*(2/3-m)*6:c}if(n===0)l=r=s=i;else{var o=i<.5?i*(1+n):i+n-i*n,d=2*i-o;l=a(d,o,e+1/3),r=a(d,o,e),s=a(d,o,e-1/3)}return{r:l*255,g:r*255,b:s*255}}function Fl(e,n,i){e=Ce(e,255),n=Ce(n,255),i=Ce(i,255);var l=Math.max(e,n,i),r=Math.min(e,n,i),s,a,o=l,d=l-r;if(a=l===0?0:d/l,l==r)s=0;else{switch(l){case e:s=(n-i)/d+(n>1)+720)%360;--n;)l.h=(l.h+r)%360,s.push(K(l));return s}function gp(e,n){n=n||6;for(var i=K(e).toHsv(),l=i.h,r=i.s,s=i.v,a=[],o=1/n;n--;)a.push(K({h:l,s:r,v:s})),s=(s+o)%1;return a}K.mix=function(e,n,i){i=i===0?0:i||50;var l=K(e).toRgb(),r=K(n).toRgb(),s=i/100,a={r:(r.r-l.r)*s+l.r,g:(r.g-l.g)*s+l.g,b:(r.b-l.b)*s+l.b,a:(r.a-l.a)*s+l.a};return K(a)},K.readability=function(e,n){var i=K(e),l=K(n);return(Math.max(i.getLuminance(),l.getLuminance())+.05)/(Math.min(i.getLuminance(),l.getLuminance())+.05)},K.isReadable=function(e,n,i){var l=K.readability(e,n),r,s;switch(s=!1,r=Sp(i),r.level+r.size){case"AAsmall":case"AAAlarge":s=l>=4.5;break;case"AAlarge":s=l>=3;break;case"AAAsmall":s=l>=7;break}return s},K.mostReadable=function(e,n,i){var l=null,r=0,s,a,o,d;i=i||{},a=i.includeFallbackColors,o=i.level,d=i.size;for(var c=0;cr&&(r=s,l=K(n[c]));return K.isReadable(e,l,{level:o,size:d})||!a?l:(i.includeFallbackColors=!1,K.mostReadable(e,["#fff","#000"],i))};var Rs=K.names={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"0ff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"00f",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",burntsienna:"ea7e5d",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"0ff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"f0f",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"663399",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"},yp=K.hexNames=Cp(Rs);function Cp(e){var n={};for(var i in e)e.hasOwnProperty(i)&&(n[e[i]]=i);return n}function Wl(e){return e=parseFloat(e),(isNaN(e)||e<0||e>1)&&(e=1),e}function Ce(e,n){bp(e)&&(e="100%");var i=kp(e);return e=Math.min(n,Math.max(0,parseFloat(e))),i&&(e=parseInt(e*n,10)/100),Math.abs(e-n)<1e-6?1:e%n/parseFloat(n)}function Oi(e){return Math.min(1,Math.max(0,e))}function Ye(e){return parseInt(e,16)}function bp(e){return typeof e=="string"&&e.indexOf(".")!=-1&&parseFloat(e)===1}function kp(e){return typeof e=="string"&&e.indexOf("%")!=-1}function it(e){return e.length==1?"0"+e:""+e}function Yn(e){return e<=1&&(e=e*100+"%"),e}function Ul(e){return Math.round(parseFloat(e)*255).toString(16)}function vl(e){return Ye(e)/255}var st=function(){var e="[-\\+]?\\d+%?",n="[-\\+]?\\d*\\.\\d+%?",i="(?:"+n+")|(?:"+e+")",l="[\\s|\\(]+("+i+")[,|\\s]+("+i+")[,|\\s]+("+i+")\\s*\\)?",r="[\\s|\\(]+("+i+")[,|\\s]+("+i+")[,|\\s]+("+i+")[,|\\s]+("+i+")\\s*\\)?";return{CSS_UNIT:new RegExp(i),rgb:new RegExp("rgb"+l),rgba:new RegExp("rgba"+r),hsl:new RegExp("hsl"+l),hsla:new RegExp("hsla"+r),hsv:new RegExp("hsv"+l),hsva:new RegExp("hsva"+r),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/}}();function Et(e){return!!st.CSS_UNIT.exec(e)}function wp(e){e=e.replace(Qm,"").replace(ep,"").toLowerCase();var n=!1;if(Rs[e])e=Rs[e],n=!0;else if(e=="transparent")return{r:0,g:0,b:0,a:0,format:"name"};var i;return(i=st.rgb.exec(e))?{r:i[1],g:i[2],b:i[3]}:(i=st.rgba.exec(e))?{r:i[1],g:i[2],b:i[3],a:i[4]}:(i=st.hsl.exec(e))?{h:i[1],s:i[2],l:i[3]}:(i=st.hsla.exec(e))?{h:i[1],s:i[2],l:i[3],a:i[4]}:(i=st.hsv.exec(e))?{h:i[1],s:i[2],v:i[3]}:(i=st.hsva.exec(e))?{h:i[1],s:i[2],v:i[3],a:i[4]}:(i=st.hex8.exec(e))?{r:Ye(i[1]),g:Ye(i[2]),b:Ye(i[3]),a:vl(i[4]),format:n?"name":"hex8"}:(i=st.hex6.exec(e))?{r:Ye(i[1]),g:Ye(i[2]),b:Ye(i[3]),format:n?"name":"hex"}:(i=st.hex4.exec(e))?{r:Ye(i[1]+""+i[1]),g:Ye(i[2]+""+i[2]),b:Ye(i[3]+""+i[3]),a:vl(i[4]+""+i[4]),format:n?"name":"hex8"}:(i=st.hex3.exec(e))?{r:Ye(i[1]+""+i[1]),g:Ye(i[2]+""+i[2]),b:Ye(i[3]+""+i[3]),format:n?"name":"hex"}:!1}function Sp(e){var n,i;return e=e||{level:"AA",size:"small"},n=(e.level||"AA").toUpperCase(),i=(e.size||"small").toLowerCase(),n!=="AA"&&n!=="AAA"&&(n="AA"),i!=="small"&&i!=="large"&&(i="small"),{level:n,size:i}}var jl={inject:["ColorPickerInstance"],methods:{handleEscape(e){this.ColorPickerInstance.handleOnEscapeKeydown(e)}}},Gn={data(){return{prefixCls:"ivu-color-picker",inputPrefixCls:"ivu-input",iconPrefixCls:"ivu-icon",transferPrefixCls:"ivu-transfer"}}};function Hs(e,n){const i=K(e),{_a:l}=i;return l==null&&i.setAlpha(n||1),i}function xp(e,n){const i=n&&n.a;if(n){if(n.hsl)return Hs(n.hsl,i);if(n.hex&&n.hex.length>0)return Hs(n.hex,i)}return Hs(n,i)}function Jn(e,n){const i=e===""?"#2d8cf0":e,l=xp(e,i),r=l.toHsl(),s=l.toHsv();return r.s===0&&(r.h=i.h||i.hsl&&i.hsl.h||n||0,s.h=r.h),s.v<.0164&&(s.h=i.h||i.hsv&&i.hsv.h||0,s.s=i.s||i.hsv&&i.hsv.s||0),r.l<.01&&(r.h=i.h||i.hsl&&i.hsl.h||0,r.s=i.s||i.hsl&&i.hsl.s||0),{hsl:r,hex:l.toHexString().toUpperCase(),rgba:l.toRgb(),hsv:s,oldHue:i.h||n||r.h,source:i.source,a:i.a||l.getAlpha()}}function rt(e,n,i){return ei?i:e}function Kl(e,n,i){return V(e,n)?i:0}function ql(e,n){return e.touches?e.touches[0][n]:0}function Xn(e){const{r:n,g:i,b:l,a:r}=e;return`rgba(${[n,i,l,r].join(",")})`}const Bp={name:"RecommendedColors",mixins:[jl,Gn],emits:["picker-color","change"],props:{list:{type:Array,default:void 0}},data(){const n=Math.ceil(this.list.length/12),i=1;return{left:-i,right:i,up:-i,down:i,powerKey:"shiftKey",grid:{x:1,y:1},rows:n,columns:12}},computed:{hideClass(){return`${this.prefixCls}-hide`},linearIndex(){return this.getLinearIndex(this.grid)},currentCircle(){return this.$refs[`color-circle-${this.linearIndex}`][0]}},methods:{getLinearIndex(e){return this.columns*(e.y-1)+e.x-1},getMaxLimit(e){return e==="x"?this.columns:this.rows},handleArrow(e,n,i){e.preventDefault(),e.stopPropagation(),this.blurColor();const l={...this.grid};e[this.powerKey]?i<0?l[n]=1:l[n]=this.getMaxLimit(n):l[n]+=i;const r=this.getLinearIndex(l);r>=0&&rs.handleClick&&s.handleClick(...a)),onKeydown:[n[1]||(n[1]=t.withKeys((...a)=>e.handleEscape&&e.handleEscape(...a),["esc"])),n[2]||(n[2]=t.withKeys((...a)=>s.handleEnter&&s.handleEnter(...a),["enter"])),n[3]||(n[3]=t.withKeys(a=>s.handleArrow(a,"x",r.left),["left"])),n[4]||(n[4]=t.withKeys(a=>s.handleArrow(a,"x",r.right),["right"])),n[5]||(n[5]=t.withKeys(a=>s.handleArrow(a,"y",r.up),["up"])),n[6]||(n[6]=t.withKeys(a=>s.handleArrow(a,"y",r.down),["down"]))],onBlur:n[7]||(n[7]=(...a)=>s.blurColor&&s.blurColor(...a)),onFocus:n[8]||(n[8]=(...a)=>s.focusColor&&s.focusColor(...a))},[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(i.list,(a,o)=>(t.openBlock(),t.createElementBlock(t.Fragment,{key:a+":"+o},[t.createElementVNode("div",{class:t.normalizeClass([e.prefixCls+"-picker-colors-wrapper"])},[t.createElementVNode("div",{"data-color-id":o},[t.createElementVNode("div",{style:t.normalizeStyle({background:a}),class:t.normalizeClass([e.prefixCls+"-picker-colors-wrapper-color"])},null,6),t.createElementVNode("div",{ref_for:!0,ref:"color-circle-"+o,class:t.normalizeClass([e.prefixCls+"-picker-colors-wrapper-circle",s.hideClass])},null,2)],8,Vp)],2),s.lineBreak(i.list,o)?(t.openBlock(),t.createElementBlock("br",Ep)):t.createCommentVNode("",!0)],64))),128))],544)}var Np=S(Bp,[["render",Tp]]),Zn={mixins:[jl],props:{focused:{type:Boolean,default:!1},value:{type:Object,default:void 0}},created(){this.focused&&setTimeout(()=>this.$el.focus(),1)},beforeUnmount(){this.unbindEventListeners()},methods:{handleLeft(e){this.handleSlide(e,this.left,"left")},handleRight(e){this.handleSlide(e,this.right,"right")},handleUp(e){this.handleSlide(e,this.up,"up")},handleDown(e){this.handleSlide(e,this.down,"down")},handleMouseDown(e){this.ColorPickerInstance.handleOnDragging(!0),this.handleChange(e,!0),fe(window,"mousemove",this.handleChange),fe(window,"mouseup",this.handleMouseUp)},handleMouseUp(){this.unbindEventListeners()},unbindEventListeners(){ue(window,"mousemove",this.handleChange),ue(window,"mouseup",this.handleMouseUp),setTimeout(()=>this.ColorPickerInstance.handleOnDragging(!1),1)},getLeft(e){if(!H)return;const{container:n}=this.$refs,i=n.getBoundingClientRect().left+window.pageXOffset;return(e.pageX||ql(e,"PageX"))-i},getTop(e){if(!H)return;const{container:n}=this.$refs,i=n.getBoundingClientRect().top+window.pageYOffset;return(e.pageY||ql(e,"PageY"))-i}}};const Ip={name:"Saturation",mixins:[Zn,Gn],emits:["change"],data(){return{left:-.01,right:.01,up:.01,down:-.01,multiplier:10,powerKey:"shiftKey"}},computed:{bgColorStyle(){return{background:`hsl(${this.value.hsv.h}, 100%, 50%)`}},pointerStyle(){return{top:`${-(this.value.hsv.v*100)+1+100}%`,left:`${this.value.hsv.s*100}%`}}},methods:{change(e,n,i,l){this.$emit("change",{h:e,s:n,v:i,a:l,source:"hsva"})},handleSlide(e,n,i){e.preventDefault(),e.stopPropagation();const r=e[this.powerKey]?n*this.multiplier:n,{h:s,s:a,v:o,a:d}=this.value.hsv,c=rt(a+Kl(i,["left","right"],r),0,1),h=rt(o+Kl(i,["up","down"],r),0,1);this.change(s,c,h,d)},handleChange(e){e.preventDefault(),e.stopPropagation();const{clientWidth:n,clientHeight:i}=this.$refs.container,l=rt(this.getLeft(e),0,n),r=rt(this.getTop(e),0,i),s=l/n,a=rt(1-r/i,0,1);this.change(this.value.hsv.h,s,a,this.value.hsv.a)},handleMouseDown(e){Zn.methods.handleMouseDown.call(this,e),fe(window,"mouseup",this.handleChange)},unbindEventListeners(e){Zn.methods.unbindEventListeners.call(this,e),ue(window,"mouseup",this.handleChange)}}};function _p(e,n,i,l,r,s){return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass([e.prefixCls+"-saturation-wrapper"]),tabindex:"0",onKeydown:[n[1]||(n[1]=t.withKeys((...a)=>e.handleEscape&&e.handleEscape(...a),["esc"])),n[3]||(n[3]=t.withKeys((...a)=>e.handleLeft&&e.handleLeft(...a),["left"])),n[4]||(n[4]=t.withKeys((...a)=>e.handleRight&&e.handleRight(...a),["right"])),n[5]||(n[5]=t.withKeys((...a)=>e.handleUp&&e.handleUp(...a),["up"])),n[6]||(n[6]=t.withKeys((...a)=>e.handleDown&&e.handleDown(...a),["down"]))],onClick:n[2]||(n[2]=a=>e.$el.focus())},[t.createElementVNode("div",{ref:"container",style:t.normalizeStyle(s.bgColorStyle),class:t.normalizeClass([e.prefixCls+"-saturation"]),onMousedown:n[0]||(n[0]=(...a)=>s.handleMouseDown&&s.handleMouseDown(...a))},[t.createElementVNode("div",{class:t.normalizeClass([e.prefixCls+"-saturation--white"])},null,2),t.createElementVNode("div",{class:t.normalizeClass([e.prefixCls+"-saturation--black"])},null,2),t.createElementVNode("div",{style:t.normalizeStyle(s.pointerStyle),class:t.normalizeClass([e.prefixCls+"-saturation-pointer"])},[t.createElementVNode("div",{class:t.normalizeClass([e.prefixCls+"-saturation-circle"])},null,2)],6)],38)],34)}var Dp=S(Ip,[["render",_p]]);const Mp={name:"Hue",mixins:[Zn,Gn],emits:["change"],data(){const e=.06944444444444445,n=20*e;return{left:-e,right:e,up:n,down:-n,powerKey:"shiftKey",percent:rt(this.value.hsl.h*100/360,0,100)}},watch:{value(){this.percent=rt(this.value.hsl.h*100/360,0,100)}},methods:{change(e){this.percent=rt(e,0,100);const{h:n,s:i,l,a:r}=this.value.hsl,s=rt(e/100*360,0,360);n!==s&&this.$emit("change",{h:s,s:i,l,a:r,source:"hsl"})},handleSlide(e,n){if(e.preventDefault(),e.stopPropagation(),e[this.powerKey]){this.change(n<0?0:100);return}this.change(this.percent+n)},handleChange(e){e.preventDefault(),e.stopPropagation();const n=this.getLeft(e);if(n<0){this.change(0);return}const{clientWidth:i}=this.$refs.container;if(n>i){this.change(100);return}this.change(n*100/i)}}};function zp(e,n,i,l,r,s){return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass([e.prefixCls+"-hue"]),tabindex:"0",onClick:n[3]||(n[3]=a=>e.$el.focus()),onKeydown:[n[4]||(n[4]=t.withKeys((...a)=>e.handleEscape&&e.handleEscape(...a),["esc"])),n[5]||(n[5]=t.withKeys((...a)=>e.handleLeft&&e.handleLeft(...a),["left"])),n[6]||(n[6]=t.withKeys((...a)=>e.handleRight&&e.handleRight(...a),["right"])),n[7]||(n[7]=t.withKeys((...a)=>e.handleUp&&e.handleUp(...a),["up"])),n[8]||(n[8]=t.withKeys((...a)=>e.handleDown&&e.handleDown(...a),["down"]))]},[t.createElementVNode("div",{ref:"container",class:t.normalizeClass([e.prefixCls+"-hue-container"]),onMousedown:n[0]||(n[0]=(...a)=>e.handleMouseDown&&e.handleMouseDown(...a)),onTouchmove:n[1]||(n[1]=(...a)=>s.handleChange&&s.handleChange(...a)),onTouchstart:n[2]||(n[2]=(...a)=>s.handleChange&&s.handleChange(...a))},[t.createElementVNode("div",{style:t.normalizeStyle({top:0,left:`${r.percent}%`}),class:t.normalizeClass([e.prefixCls+"-hue-pointer"])},[t.createElementVNode("div",{class:t.normalizeClass([e.prefixCls+"-hue-picker"])},null,2)],6)],34)],34)}var Pp=S(Mp,[["render",zp]]);const $p={name:"Alpha",mixins:[Zn,Gn],emits:["change"],data(){return{left:-1,right:1,up:10,down:-10,powerKey:"shiftKey"}},computed:{gradientStyle(){const{r:e,g:n,b:i}=this.value.rgba,l=Xn({r:e,g:n,b:i,a:0}),r=Xn({r:e,g:n,b:i,a:1});return{background:`linear-gradient(to right, ${l} 0%, ${r} 100%)`}}},methods:{change(e){const{h:n,s:i,l}=this.value.hsl,{a:r}=this.value;r!==e&&this.$emit("change",{h:n,s:i,l,a:e,source:"rgba"})},handleSlide(e,n){e.preventDefault(),e.stopPropagation(),this.change(rt(e[this.powerKey]?n:Math.round(this.value.hsl.a*100+n)/100,0,1))},handleChange(e){e.preventDefault(),e.stopPropagation();const n=this.getLeft(e);if(n<0){this.change(0);return}const{clientWidth:i}=this.$refs.container;if(n>i){this.change(1);return}this.change(Math.round(n*100/i)/100)}}};function Op(e,n,i,l,r,s){return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass([e.prefixCls+"-alpha"]),tabindex:"0",onClick:n[3]||(n[3]=a=>e.$el.focus()),onKeydown:[n[4]||(n[4]=t.withKeys((...a)=>e.handleEscape&&e.handleEscape(...a),["esc"])),n[5]||(n[5]=t.withKeys((...a)=>e.handleLeft&&e.handleLeft(...a),["left"])),n[6]||(n[6]=t.withKeys((...a)=>e.handleRight&&e.handleRight(...a),["right"])),n[7]||(n[7]=t.withKeys((...a)=>e.handleUp&&e.handleUp(...a),["up"])),n[8]||(n[8]=t.withKeys((...a)=>e.handleDown&&e.handleDown(...a),["down"]))]},[t.createElementVNode("div",{class:t.normalizeClass([e.prefixCls+"-alpha-checkboard-wrap"])},[t.createElementVNode("div",{class:t.normalizeClass([e.prefixCls+"-alpha-checkerboard"])},null,2)],2),t.createElementVNode("div",{style:t.normalizeStyle(s.gradientStyle),class:t.normalizeClass([e.prefixCls+"-alpha-gradient"])},null,6),t.createElementVNode("div",{ref:"container",class:t.normalizeClass([e.prefixCls+"-alpha-container"]),onMousedown:n[0]||(n[0]=(...a)=>e.handleMouseDown&&e.handleMouseDown(...a)),onTouchmove:n[1]||(n[1]=(...a)=>s.handleChange&&s.handleChange(...a)),onTouchstart:n[2]||(n[2]=(...a)=>s.handleChange&&s.handleChange(...a))},[t.createElementVNode("div",{style:t.normalizeStyle({top:0,left:`${e.value.a*100}%`}),class:t.normalizeClass([e.prefixCls+"-alpha-pointer"])},[t.createElementVNode("div",{class:t.normalizeClass([e.prefixCls+"-alpha-picker"])},null,2)],6)],34)],34)}var Lp=S($p,[["render",Op]]);const Fp={name:"ColorPicker",components:{Drop:pn,RecommendColors:Np,Saturation:Dp,Hue:Pp,Alpha:Lp,iInput:Ze,iButton:Oe,Icon:se},directives:{clickOutside:Bs},mixins:[ge,Gn,xe,Pt],emits:["on-active-change","on-open-change","on-change","on-pick-success","on-pick-clear","update:modelValue"],provide(){return{ColorPickerInstance:this}},props:{modelValue:{type:String,default:void 0},hue:{type:Boolean,default:!0},alpha:{type:Boolean,default:!1},recommend:{type:Boolean,default:!1},format:{type:String,validator(e){return V(e,["hsl","hsv","hex","rgb"])},default:void 0},colors:{type:Array,default(){return[]}},disabled:{type:Boolean,default:!1},size:{validator(e){return V(e,["small","large","default"])},default(){const e=t.getCurrentInstance().appContext.config.globalProperties;return!e.$VIEWUI||e.$VIEWUI.size===""?"default":e.$VIEWUI.size}},hideDropDown:{type:Boolean,default:!1},placement:{type:String,validator(e){return V(e,["top","top-start","top-end","bottom","bottom-start","bottom-end","left","left-start","left-end","right","right-start","right-end"])},default:"bottom"},transfer:{type:Boolean,default(){const e=t.getCurrentInstance().appContext.config.globalProperties;return!e.$VIEWUI||e.$VIEWUI.transfer===""?!1:e.$VIEWUI.transfer}},name:{type:String,default:void 0},editable:{type:Boolean,default:!0},capture:{type:Boolean,default(){const e=t.getCurrentInstance().appContext.config.globalProperties;return e.$VIEWUI?e.$VIEWUI.capture:!0}},transferClassName:{type:String},eventsEnabled:{type:Boolean,default:!1}},data(){return{val:Jn(this.modelValue||""),currentValue:this.modelValue||"",dragging:!1,visible:!1,recommendedColor:["#2d8cf0","#19be6b","#ff9900","#ed4014","#00b5ff","#19c919","#f9e31c","#ea1a1a","#9b1dea","#00c2b1","#ac7a33","#1d35ea","#8bc34a","#f16b62","#ea4ca3","#0d94aa","#febd79","#5d4037","#00bcd4","#f06292","#cddc39","#607d8b","#000000","#ffffff"]}},computed:{arrowClasses(){return[`${this.inputPrefixCls}-icon`,`${this.inputPrefixCls}-icon-normal`]},transition(){return V(this.placement,["bottom-start","bottom","bottom-end"])?"slide-up":"fade"},saturationColors:{get(){return this.val},set(e){this.val=e,this.$emit("on-active-change",this.formatColor)}},classes(){return[`${this.prefixCls}`,{[`${this.prefixCls}-transfer`]:this.transfer}]},wrapClasses(){return[`${this.prefixCls}-rel`,`${this.prefixCls}-${this.size}`,`${this.inputPrefixCls}-wrapper`,`${this.inputPrefixCls}-wrapper-${this.size}`,{[`${this.prefixCls}-disabled`]:this.itemDisabled}]},inputClasses(){return[`${this.prefixCls}-input`,`${this.inputPrefixCls}`,`${this.inputPrefixCls}-${this.size}`,{[`${this.prefixCls}-focused`]:this.visible,[`${this.prefixCls}-disabled`]:this.itemDisabled}]},dropClasses(){return{[`${this.transferPrefixCls}-no-max-height`]:!0,[`${this.prefixCls}-transfer`]:this.transfer,[`${this.prefixCls}-hide-drop`]:this.hideDropDown,[this.transferClassName]:this.transferClassName}},displayedColorStyle(){return{backgroundColor:Xn(this.visible?this.saturationColors.rgba:K(this.modelValue).toRgb())}},formatColor(){const{format:e,saturationColors:n}=this;if(e){if(e==="hsl")return K(n.hsl).toHslString();if(e==="hsv")return K(n.hsv).toHsvString();if(e==="hex")return n.hex;if(e==="rgb")return Xn(n.rgba)}else if(this.alpha)return Xn(n.rgba);return n.hex},confirmColorClasses(){return[`${this.prefixCls}-confirm-color`,{[`${this.prefixCls}-confirm-color-editable`]:this.editable}]},arrowType(){const e=this.globalConfig;let n="ios-arrow-down";return e&&(e.colorPicker.customArrow?n="":e.colorPicker.arrow&&(n=e.colorPicker.arrow)),n},customArrowType(){const e=this.globalConfig;let n="";return e&&e.colorPicker.customArrow&&(n=e.colorPicker.customArrow),n},arrowSize(){const e=this.globalConfig;let n="";return e&&e.colorPicker.arrowSize&&(n=e.colorPicker.arrowSize),n}},watch:{modelValue(e){this.val=Jn(e||"")},visible(e){this.val=Jn(this.modelValue||""),this.$refs.drop[e?"update":"destroy"](),this.$emit("on-open-change",Boolean(e))}},methods:{setDragging(e){this.dragging=e},handleClose(e){if(this.visible){if(this.dragging||e.type==="mousedown"){this.$refs.editColorInput&&e.target!==this.$refs.editColorInput.$el.querySelector("input")&&e.preventDefault();return}if(this.transfer){const n=this.$refs.drop.$refs.drop;if(n===e.target||n.contains(e.target))return}this.closer(e);return}this.visible=!1},toggleVisible(){this.itemDisabled||(this.visible=!this.visible,this.$refs.input.focus())},childChange(e){this.colorChange(e)},colorChange(e,n){this.oldHue=this.saturationColors.hsl.h,this.saturationColors=Jn(e,n||this.oldHue)},closer(e){e&&(e.preventDefault(),e.stopPropagation()),this.visible=!1,this.$refs.input.focus()},handleButtons(e,n){this.currentValue=n,this.$emit("update:modelValue",n),this.$emit("on-change",n),this.handleFormItemChange("change",n),this.closer(e)},handleSuccess(e){this.handleButtons(e,this.formatColor),this.$emit("on-pick-success")},handleClear(e){this.handleButtons(e,""),this.$emit("on-pick-clear")},handleSelectColor(e){this.val=Jn(e),this.$emit("on-active-change",this.formatColor)},handleEditColor(e){const n=e.target.value;this.handleSelectColor(n)},handleFirstTab(e){e.shiftKey&&(e.preventDefault(),e.stopPropagation(),this.$refs.ok.$el.focus())},handleLastTab(e){e.shiftKey||(e.preventDefault(),e.stopPropagation(),this.$refs.saturation.$el.focus())},onTab(e){this.visible&&e.preventDefault()},onEscape(e){this.visible&&this.closer(e)},onArrow(e){this.visible||(e.preventDefault(),e.stopPropagation(),this.visible=!0)},handleOnEscapeKeydown(e){this.closer(e)},handleOnDragging(e){this.setDragging(e)}}},Ap=["name","value"],Rp=["tabindex"];function Hp(e,n,i,l,r,s){const a=t.resolveComponent("Icon"),o=t.resolveComponent("Saturation"),d=t.resolveComponent("Hue"),c=t.resolveComponent("Alpha"),h=t.resolveComponent("recommend-colors"),m=t.resolveComponent("i-input"),g=t.resolveComponent("i-button"),y=t.resolveComponent("Drop"),C=t.resolveDirective("click-outside");return t.withDirectives((t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(s.classes)},[t.createElementVNode("div",{ref:"reference",class:t.normalizeClass(s.wrapClasses),onClick:n[4]||(n[4]=(...u)=>s.toggleVisible&&s.toggleVisible(...u))},[t.createElementVNode("input",{name:i.name,value:r.currentValue,type:"hidden"},null,8,Ap),t.createVNode(a,{type:s.arrowType,custom:s.customArrowType,size:s.arrowSize,class:t.normalizeClass(s.arrowClasses)},null,8,["type","custom","size","class"]),t.createElementVNode("div",{ref:"input",tabindex:e.itemDisabled?void 0:0,class:t.normalizeClass(s.inputClasses),onKeydown:[n[0]||(n[0]=t.withKeys((...u)=>s.onTab&&s.onTab(...u),["tab"])),n[1]||(n[1]=t.withKeys((...u)=>s.onEscape&&s.onEscape(...u),["esc"])),n[2]||(n[2]=t.withKeys((...u)=>s.onArrow&&s.onArrow(...u),["up"])),n[3]||(n[3]=t.withKeys((...u)=>s.onArrow&&s.onArrow(...u),["down"]))]},[t.createElementVNode("div",{class:t.normalizeClass([e.prefixCls+"-color"])},[t.withDirectives(t.createElementVNode("div",{class:t.normalizeClass([e.prefixCls+"-color-empty"])},[t.createElementVNode("i",{class:t.normalizeClass([e.iconPrefixCls,e.iconPrefixCls+"-ios-close"])},null,2)],2),[[t.vShow,i.modelValue===""&&!r.visible]]),t.withDirectives(t.createElementVNode("div",{style:t.normalizeStyle(s.displayedColorStyle)},null,4),[[t.vShow,i.modelValue||r.visible]])],2)],42,Rp)],2),t.createVNode(y,{ref:"drop",visible:r.visible,placement:i.placement,transfer:i.transfer,classes:s.dropClasses,eventsEnabled:i.eventsEnabled,"transition-name":"transition-drop"},{default:t.withCtx(()=>[t.createVNode(t.Transition,{name:"fade"},{default:t.withCtx(()=>[r.visible?(t.openBlock(),t.createElementBlock("div",{key:0,class:t.normalizeClass([e.prefixCls+"-picker"])},[t.createElementVNode("div",{class:t.normalizeClass([e.prefixCls+"-picker-wrapper"])},[t.createElementVNode("div",{class:t.normalizeClass([e.prefixCls+"-picker-panel"])},[t.createVNode(o,{ref:"saturation",value:s.saturationColors,focused:r.visible,onChange:s.childChange,onKeydown:t.withKeys(s.handleFirstTab,["tab"])},null,8,["value","focused","onChange","onKeydown"])],2),i.hue?(t.openBlock(),t.createElementBlock("div",{key:0,class:t.normalizeClass([e.prefixCls+"-picker-hue-slider"])},[t.createVNode(d,{value:s.saturationColors,onChange:s.childChange},null,8,["value","onChange"])],2)):t.createCommentVNode("",!0),i.alpha?(t.openBlock(),t.createElementBlock("div",{key:1,class:t.normalizeClass([e.prefixCls+"-picker-alpha-slider"])},[t.createVNode(c,{value:s.saturationColors,onChange:s.childChange},null,8,["value","onChange"])],2)):t.createCommentVNode("",!0),i.colors.length?(t.openBlock(),t.createBlock(h,{key:2,list:i.colors,class:t.normalizeClass([e.prefixCls+"-picker-colors"]),onPickerColor:s.handleSelectColor},null,8,["list","class","onPickerColor"])):t.createCommentVNode("",!0),!i.colors.length&&i.recommend?(t.openBlock(),t.createBlock(h,{key:3,list:r.recommendedColor,class:t.normalizeClass([e.prefixCls+"-picker-colors"]),onPickerColor:s.handleSelectColor},null,8,["list","class","onPickerColor"])):t.createCommentVNode("",!0)],2),t.createElementVNode("div",{class:t.normalizeClass([e.prefixCls+"-confirm"])},[t.createElementVNode("span",{class:t.normalizeClass(s.confirmColorClasses)},[i.editable?(t.openBlock(),t.createBlock(m,{key:0,ref:"editColorInput",modelValue:s.formatColor,size:"small",onOnEnter:s.handleEditColor,onOnBlur:s.handleEditColor},null,8,["modelValue","onOnEnter","onOnBlur"])):(t.openBlock(),t.createElementBlock(t.Fragment,{key:1},[t.createTextVNode(t.toDisplayString(s.formatColor),1)],64))],2),t.createVNode(g,{class:t.normalizeClass([e.prefixCls+"-confirm-btn-cancel"]),ref:"clear",tabindex:0,size:"small",onClick:s.handleClear,onKeydown:[t.withKeys(s.handleClear,["enter"]),t.withKeys(s.closer,["esc"])]},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(e.t("i.datepicker.clear")),1)]),_:1},8,["class","onClick","onKeydown"]),t.createVNode(g,{ref:"ok",tabindex:0,size:"small",type:"primary",onClick:s.handleSuccess,onKeydown:[t.withKeys(s.handleLastTab,["tab"]),t.withKeys(s.handleSuccess,["enter"]),t.withKeys(s.closer,["esc"])]},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(e.t("i.datepicker.ok")),1)]),_:1},8,["onClick","onKeydown"])],2)],2)):t.createCommentVNode("",!0)]),_:1})]),_:1},8,["visible","placement","transfer","classes","eventsEnabled"])],2)),[[C,s.handleClose,i.capture]])}var Yl=S(Fp,[["render",Hp]]);const Wp="ivu-layout",Up={name:"Content",computed:{wrapClasses(){return`${Wp}-content`}}};function vp(e,n,i,l,r,s){return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(s.wrapClasses)},[t.renderSlot(e.$slots,"default")],2)}var Ws=S(Up,[["render",vp]]);function jp(e){var n;if(e.nodeName==="SELECT")e.focus(),n=e.value;else if(e.nodeName==="INPUT"||e.nodeName==="TEXTAREA"){var i=e.hasAttribute("readonly");i||e.setAttribute("readonly",""),e.select(),e.setSelectionRange(0,e.value.length),i||e.removeAttribute("readonly"),n=e.value}else{e.hasAttribute("contenteditable")&&e.focus();var l=window.getSelection(),r=document.createRange();r.selectNodeContents(e),l.removeAllRanges(),l.addRange(r),n=l.toString()}return n}var Kp=jp,Gl={name:"RenderCell",props:{render:Function},render(){return this.render(t.h)}};const qp={components:{RenderCell:Gl},props:{prefixCls:{type:String,default:""},duration:{type:Number,default:1.5},type:{type:String},content:{type:String,default:""},withIcon:Boolean,render:{type:Function},hasTitle:Boolean,styles:{type:Object,default:function(){return{right:"50%"}}},closable:{type:Boolean,default:!1},className:{type:String},name:{type:String,required:!0},onClose:{type:Function},transitionName:{type:String},background:{type:Boolean,default:!1},msgType:{type:String}},data(){return{withDesc:!1}},computed:{baseClass(){return`${this.prefixCls}-notice`},renderFunc(){return this.render||function(){}},classes(){return[this.baseClass,{[`${this.className}`]:!!this.className,[`${this.baseClass}-closable`]:this.closable,[`${this.baseClass}-with-desc`]:this.withDesc,[`${this.baseClass}-with-background`]:this.background}]},contentClasses(){return[`${this.baseClass}-content`,this.render!==void 0?`${this.baseClass}-content-with-render`:""]},messageContentClasses(){return[`${this.baseClass}-content`,{[`${this.baseClass}-content-${this.msgType}`]:this.msgType,[`${this.baseClass}-content-background`]:this.background}]},contentWithIcon(){return[this.withIcon?`${this.prefixCls}-content-with-icon`:"",!this.hasTitle&&this.withIcon?`${this.prefixCls}-content-with-render-notitle`:""]},messageClasses(){return[`${this.baseClass}-content`,this.render!==void 0?`${this.baseClass}-content-with-render`:""]}},methods:{clearCloseTimer(){this.closeTimer&&(clearTimeout(this.closeTimer),this.closeTimer=null)},close(){this.clearCloseTimer(),this.onClose(),this.$parent.$parent.close(this.name)},handleEnter(e){this.type==="message"&&(e.style.height=e.scrollHeight+"px")},handleLeave(e){this.type==="message"&&H&&document.getElementsByClassName("ivu-message-notice").length!==1&&(e.style.height=0,e.style.paddingTop=0,e.style.paddingBottom=0)}},mounted(){if(this.handleEnter(this.$el),this.clearCloseTimer(),this.duration!==0&&(this.closeTimer=setTimeout(()=>{this.close()},this.duration*1e3)),this.prefixCls==="ivu-notice"){let e=this.$refs.content.querySelectorAll(`.${this.prefixCls}-desc`)[0];this.withDesc=this.render?!0:e?e.innerHTML!=="":!1}},beforeUnmount(){this.handleLeave(this.$el),this.clearCloseTimer()}},Yp=["innerHTML"],Gp=[t.createElementVNode("i",{class:"ivu-icon ivu-icon-ios-close"},null,-1)],Jp=["innerHTML"],Xp=[t.createElementVNode("i",{class:"ivu-icon ivu-icon-ios-close"},null,-1)];function Zp(e,n,i,l,r,s){const a=t.resolveComponent("render-cell");return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(s.classes),style:t.normalizeStyle(i.styles)},[i.type==="notice"?(t.openBlock(),t.createElementBlock(t.Fragment,{key:0},[t.createElementVNode("div",{class:t.normalizeClass(s.contentClasses),ref:"content",innerHTML:i.content},null,10,Yp),t.createElementVNode("div",{class:t.normalizeClass(s.contentWithIcon)},[t.createVNode(a,{render:s.renderFunc},null,8,["render"])],2),i.closable?(t.openBlock(),t.createElementBlock("a",{key:0,class:t.normalizeClass([s.baseClass+"-close"]),onClick:n[0]||(n[0]=(...o)=>s.close&&s.close(...o))},Gp,2)):t.createCommentVNode("",!0)],64)):t.createCommentVNode("",!0),i.type==="message"?(t.openBlock(),t.createElementBlock("div",{key:1,class:t.normalizeClass(s.messageContentClasses),ref:"content"},[t.createElementVNode("div",{class:t.normalizeClass([s.baseClass+"-content-text"]),innerHTML:i.content},null,10,Jp),t.createElementVNode("div",{class:t.normalizeClass([s.baseClass+"-content-text"])},[t.createVNode(a,{render:s.renderFunc},null,8,["render"])],2),i.closable?(t.openBlock(),t.createElementBlock("a",{key:0,class:t.normalizeClass([s.baseClass+"-close"]),onClick:n[1]||(n[1]=(...o)=>s.close&&s.close(...o))},Xp,2)):t.createCommentVNode("",!0)],2)):t.createCommentVNode("",!0)],6)}var Qp=S(qp,[["render",Zp]]);const e0="ivu-notification";let t0=0;const n0=Date.now();function i0(){return"ivuNotification_"+n0+"_"+t0++}const s0={components:{Notice:Qp},props:{prefixCls:{type:String,default:e0},styles:{type:Object,default:function(){return{top:"65px",left:"50%"}}},content:{type:String},className:{type:String},transitionName:{type:String}},data(){return{notices:[],tIndex:this.handleGetIndex()}},computed:{classes(){return[`${this.prefixCls}`,{[`${this.className}`]:!!this.className}]},wrapStyles(){let e=Object.assign({},this.styles);return e["z-index"]=1010+this.tIndex,e}},methods:{add(e){const n=e.name||i0();let i=Object.assign({styles:{right:"50%"},content:"",duration:1.5,closable:!1,name:n},e);this.notices.push(i),this.tIndex=this.handleGetIndex()},close(e){const n=this.notices;for(let i=0;i[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(r.notices,o=>(t.openBlock(),t.createBlock(a,{key:o.name,"prefix-cls":i.prefixCls,styles:o.styles,type:o.type,content:o.content,duration:o.duration,render:o.render,"has-title":o.hasTitle,withIcon:o.withIcon,closable:o.closable,name:o.name,"transition-name":o.transitionName,background:o.background,"msg-type":o.msgType,"on-close":o.onClose},null,8,["prefix-cls","styles","type","content","duration","render","has-title","withIcon","closable","name","transition-name","background","msg-type","on-close"]))),128))]),_:1},8,["name"])],6)}var Li=S(s0,[["render",r0]]);Li.newInstance=e=>{if(!H)return;const n=e||{};let i=null;const l=t.createApp({render(){return t.h(Li,Object.assign({ref:"notification"},n))},created(){i=t.getCurrentInstance()}}),r=document.createElement("div");document.body.appendChild(r),l.mount(r);const s=i.refs.notification;return{notice(a){s.add(a)},remove(a){s.close(a)},component:s,destroy(a){s.closeAll(),H&&setTimeout(function(){document.body.removeChild(document.getElementsByClassName(a)[0])},500)}}};const Us="ivu-message",Jl="ivu-icon",Xl="ivu_message_key_",Bn={top:24,duration:1.5,background:!1};let Fi,Zl=1;const l0={info:"ios-information-circle",success:"ios-checkmark-circle",warning:"ios-alert",error:"ios-close-circle",loading:"ios-loading"},Ql="move-up";function ea(){return Fi=Fi||Li.newInstance({prefixCls:Us,styles:{top:`${Bn.top}px`},transitionName:Ql}),Fi}function a0(e="",n=Bn.duration,i,l=function(){},r=!1,s=function(){},a=Bn.background){const o=l0[i],d=i==="loading"?" ivu-load-loop":"";let c=ea();return c.notice({name:`${Xl}${Zl}`,duration:n,styles:{},transitionName:Ql,content:` +
+ + ${e} +
+ `,render:s,onClose:l,closable:r,type:"message",msgType:i,background:a}),function(){let h=Zl++;return function(){c.remove(`${Xl}${h}`)}}()}var Qn={name:"Message",info(e){return this.message("info",e)},success(e){return this.message("success",e)},warning(e){return this.message("warning",e)},error(e){return this.message("error",e)},loading(e){return this.message("loading",e)},message(e,n){return typeof n=="string"&&(n={content:n}),a0(n.content,n.duration,e,n.onClose,n.closable,n.render,n.background)},config(e){(e.top||e.top===0)&&(Bn.top=e.top),(e.duration||e.duration===0)&&(Bn.duration=e.duration),e.background&&(Bn.background=e.background)},destroy(){let e=ea();Fi=null,e.destroy("ivu-message")}};const o0="\u590D\u5236\u6210\u529F",c0="\u590D\u5236\u5931\u8D25";function Ai({text:e="",successTip:n=o0,errorTip:i=c0,success:l,error:r,showTip:s=!0}){if(!H)return;const a=document.documentElement.getAttribute("dir")==="rtl",o=document.createElement("textarea");o.style.fontSize="12pt",o.style.border="0",o.style.padding="0",o.style.margin="0",o.style.position="absolute",o.style[a?"right":"left"]="-9999px";let d=window.pageYOffset||document.documentElement.scrollTop;o.style.top=`${d}px`,o.setAttribute("readonly",""),o.value=e,document.body.appendChild(o),Kp(o);let c;try{c=document.execCommand("copy"),s&&Qn.success({content:n}),document.body.removeChild(o),l&&l.call()}catch{c=!1,s&&Qn.error({content:i}),document.body.removeChild(o),r&&r.call()}}function vs(e){return e*1<10?`0${e}`:e}const d0={name:"CountDown",emits:["on-end"],props:{format:{type:Function},target:{type:[Date,Number]},interval:{type:Number,default:1e3}},data(){return{lastTime:""}},methods:{initTime(){let e=0,n=0;try{Object.prototype.toString.call(this.target)==="[object Date]"?n=this.target.getTime():n=new Date(this.target).getTime()}catch(i){throw new Error("invalid target prop",i)}return e=n-new Date().getTime(),e<0?0:e},tick(){let{lastTime:e}=this;this.timer=setTimeout(()=>{e1?u.options.decimal+k[1]:"",u.options.useGrouping){for(U="",Q=0,R=M.length;Qu.endVal,u.frameVal=u.startVal,u.initialized=!0,!0):(u.error="[CountUp] startVal ("+o+") or endVal ("+d+") is not a number",!1)):(u.error="[CountUp] target is null or undefined",!1))},u.printValue=function(T){var k=u.options.formattingFn(T);u.d.tagName==="INPUT"?this.d.value=k:u.d.tagName==="text"||u.d.tagName==="tspan"?this.d.textContent=k:this.d.innerHTML=k},u.count=function(T){u.startTime||(u.startTime=T),u.timestamp=T;var k=T-u.startTime;u.remaining=u.duration-k,u.options.useEasing?u.countDown?u.frameVal=u.startVal-u.options.easingFn(k,0,u.startVal-u.endVal,u.duration):u.frameVal=u.options.easingFn(k,u.startVal,u.endVal-u.startVal,u.duration):u.countDown?u.frameVal=u.startVal-(u.startVal-u.endVal)*(k/u.duration):u.frameVal=u.startVal+(u.endVal-u.startVal)*(k/u.duration),u.countDown?u.frameVal=u.frameValu.endVal?u.endVal:u.frameVal,u.frameVal=Math.round(u.frameVal*u.dec)/u.dec,u.printValue(u.frameVal),ku.endVal,u.rAF=requestAnimationFrame(u.count))}},u.initialize()&&u.printValue(u.startVal)};return s})})(js,js.exports);var f0=js.exports;const u0={name:"CountUp",props:{start:{type:Number,required:!1,default:0},end:{type:Number,required:!0},decimals:{type:Number,required:!1,default:0},duration:{type:Number,required:!1,default:2},options:{type:Object,required:!1,default(){return{}}},callback:{type:Function,required:!1,default:()=>{}}},data(){return{CountUp:null}},watch:{end(e){this.CountUp&&this.CountUp.update&&this.CountUp.update(e)}},mounted(){this.init()},methods:{init(){this.CountUp||(this.CountUp=new f0(this.$el,this.start,this.end,this.decimals,this.duration,this.options),this.CountUp.start(()=>{this.callback(this.CountUp)}))},destroy(){this.CountUp=null}},beforeUnmounted(){this.destroy()},start(e){this.CountUp&&this.CountUp.start&&this.CountUp.start(()=>{e&&e(this.CountUp)})},pauseResume(){this.CountUp&&this.CountUp.pauseResume&&this.CountUp.pauseResume()},reset(){this.CountUp&&this.CountUp.reset&&this.CountUp.reset()},update(e){this.CountUp&&this.CountUp.update&&this.CountUp.update(e)}},m0={class:"ivu-count-up"};function p0(e,n,i,l,r,s){return t.openBlock(),t.createElementBlock("span",m0)}var na=S(u0,[["render",p0]]),lt={},ia=/d{1,4}|M{1,4}|yy(?:yy)?|S{1,3}|Do|ZZ|([HhMsDm])\1?|[aA]|"[^"]*"|'[^']*'/g,cn=/\d\d?/,g0=/\d{3}/,y0=/\d{4}/,Ri=/[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i,sa=function(){};function ra(e,n){for(var i=[],l=0,r=e.length;l3?0:(n-n%10!==10)*n%10]}};var ca={D:function(e){return e.getDay()},DD:function(e){return yt(e.getDay())},Do:function(e,n){return n.DoFn(e.getDate())},d:function(e){return e.getDate()},dd:function(e){return yt(e.getDate())},ddd:function(e,n){return n.dayNamesShort[e.getDay()]},dddd:function(e,n){return n.dayNames[e.getDay()]},M:function(e){return e.getMonth()+1},MM:function(e){return yt(e.getMonth()+1)},MMM:function(e,n){return n.monthNamesShort[e.getMonth()]},MMMM:function(e,n){return n.monthNames[e.getMonth()]},yy:function(e){return String(e.getFullYear()).substr(2)},yyyy:function(e){return e.getFullYear()},h:function(e){return e.getHours()%12||12},hh:function(e){return yt(e.getHours()%12||12)},H:function(e){return e.getHours()},HH:function(e){return yt(e.getHours())},m:function(e){return e.getMinutes()},mm:function(e){return yt(e.getMinutes())},s:function(e){return e.getSeconds()},ss:function(e){return yt(e.getSeconds())},S:function(e){return Math.round(e.getMilliseconds()/100)},SS:function(e){return yt(Math.round(e.getMilliseconds()/10),2)},SSS:function(e){return yt(e.getMilliseconds(),3)},a:function(e,n){return e.getHours()<12?n.amPm[0]:n.amPm[1]},A:function(e,n){return e.getHours()<12?n.amPm[0].toUpperCase():n.amPm[1].toUpperCase()},ZZ:function(e){var n=e.getTimezoneOffset();return(n>0?"-":"+")+yt(Math.floor(Math.abs(n)/60)*100+Math.abs(n)%60,4)}},we={d:[cn,function(e,n){e.day=n}],M:[cn,function(e,n){e.month=n-1}],yy:[cn,function(e,n){var i=new Date,l=+(""+i.getFullYear()).substr(0,2);e.year=""+(n>68?l-1:l)+n}],h:[cn,function(e,n){e.hour=n}],m:[cn,function(e,n){e.minute=n}],s:[cn,function(e,n){e.second=n}],yyyy:[y0,function(e,n){e.year=n}],S:[/\d/,function(e,n){e.millisecond=n*100}],SS:[/\d{2}/,function(e,n){e.millisecond=n*10}],SSS:[g0,function(e,n){e.millisecond=n}],D:[cn,sa],ddd:[Ri,sa],MMM:[Ri,la("monthNamesShort")],MMMM:[Ri,la("monthNames")],a:[Ri,function(e,n,i){var l=n.toLowerCase();l===i.amPm[0]?e.isPm=!1:l===i.amPm[1]&&(e.isPm=!0)}],ZZ:[/[\+\-]\d\d:?\d\d/,function(e,n){var i=(n+"").match(/([\+\-]|\d\d)/gi),l;i&&(l=+(i[1]*60)+parseInt(i[2],10),e.timezoneOffset=i[0]==="+"?l:-l)}]};we.DD=we.DD,we.dddd=we.ddd,we.Do=we.dd=we.d,we.mm=we.m,we.hh=we.H=we.HH=we.h,we.MM=we.M,we.ss=we.s,we.A=we.a,lt.masks={default:"ddd MMM dd yyyy HH:mm:ss",shortDate:"M/D/yy",mediumDate:"MMM d, yyyy",longDate:"MMMM d, yyyy",fullDate:"dddd, MMMM d, yyyy",shortTime:"HH:mm",mediumTime:"HH:mm:ss",longTime:"HH:mm:ss.SSS"},lt.format=function(e,n,i){var l=i||lt.i18n;if(typeof e=="number"&&(e=new Date(e)),Object.prototype.toString.call(e)!=="[object Date]"||isNaN(e.getTime()))throw new Error("Invalid Date in fecha.format");return n=lt.masks[n]||n||lt.masks.default,n.replace(ia,function(r){return r in ca?ca[r](e,l):r.slice(1,r.length-1)})},lt.parse=function(e,n,i){var l=i||lt.i18n;if(typeof n!="string")throw new Error("Invalid format in fecha.parse");if(n=lt.masks[n]||n,e.length>1e3)return!1;var r=!0,s={};if(n.replace(ia,function(d){if(we[d]){var c=we[d],h=e.search(c[0]);~h?e.replace(c[0],function(m){return c[1](s,m,l),e=e.substr(h+m.length),m}):r=!1}return we[d]?"":d.slice(1,d.length-1)}),!r)return!1;var a=new Date;s.isPm===!0&&s.hour!=null&&+s.hour!=12?s.hour=+s.hour+12:s.isPm===!1&&+s.hour==12&&(s.hour=0);var o;return s.timezoneOffset!=null?(s.minute=+(s.minute||0)-+s.timezoneOffset,o=new Date(Date.UTC(s.year||a.getFullYear(),s.month||0,s.day||1,s.hour||0,s.minute||0,s.second||0,s.millisecond||0))):o=new Date(s.year||a.getFullYear(),s.month||0,s.day||1,s.hour||0,s.minute||0,s.second||0,s.millisecond||0),o};const Ks=function(e){let n=new Date(e);return isNaN(n.getTime())&&typeof e=="string"&&(n=e.split("-").map(Number),n[1]+=1,n=new Date(...n)),isNaN(n.getTime())?null:n},Le=function(e){const n=new Date(e);return n.setHours(0,0,0,0),n.getTime()},k0=(e,n,i)=>{if(!n||!i)return!1;const[l,r]=[n,i].sort();return e>=l&&e<=r},ei=function(e,n){return e=Ks(e),e?lt.format(e,n||"yyyy-MM-dd"):""},Hi=function(e,n){return lt.parse(e,n||"yyyy-MM-dd")},da=function(e,n){return new Date(e,n+1,0).getDate()},ha=function(e,n){const i=new Date(e),l=i.getMonth()+n,r=da(i.getFullYear(),l);return ri.getFullYear(),m:i=>i.getMonth()+1,mm:i=>("0"+(i.getMonth()+1)).slice(-2),mmm:(i,l)=>i.toLocaleDateString(l,{month:"long"}).slice(0,3),Mmm:(i,l)=>{const r=i.toLocaleDateString(l,{month:"long"});return(r[0].toUpperCase()+r.slice(1).toLowerCase()).slice(0,3)},mmmm:(i,l)=>i.toLocaleDateString(l,{month:"long"}),Mmmm:(i,l)=>{const r=i.toLocaleDateString(l,{month:"long"});return r[0].toUpperCase()+r.slice(1).toLowerCase()}},n=new RegExp(["yyyy","Mmmm","mmmm","Mmm","mmm","mm","m"].join("|"),"g");return function(i,l,r){const s=/(\[[^\]]+\])([^\[\]]+)(\[[^\]]+\])/,a=l.match(s).slice(1),o=a[1],d=[a[0],a[2]].map(c=>({label:c.replace(/\[[^\]]+\]/,m=>m.slice(1,-1).replace(n,g=>e[g](r,i))),type:c.indexOf("yy")!=-1?"year":"month"}));return{separator:o,labels:d}}}(),fa={date:"yyyy-MM-dd",month:"yyyy-MM",year:"yyyy",datetime:"yyyy-MM-dd HH:mm:ss",time:"HH:mm:ss",timerange:"HH:mm:ss",daterange:"yyyy-MM-dd",datetimerange:"yyyy-MM-dd HH:mm:ss"},ti=function(e,n){return ei(e,n)},ni=function(e,n){return Hi(e,n)},Ys=function(e,n,i){if(Array.isArray(e)&&e.length===2){const l=e[0],r=e[1];if(l&&r)return ei(l,n)+i+ei(r,n)}else if(!Array.isArray(e)&&e instanceof Date)return ei(e,n);return""},Gs=function(e,n,i){const l=Array.isArray(e)?e:e.split(i);if(l.length===2){const r=l[0],s=l[1];return[r instanceof Date?r:Hi(r,n),s instanceof Date?s:Hi(s,n)]}return[]},Vn={default:{formatter(e){return e?""+e:""},parser(e){return e===void 0||e===""?null:e}},date:{formatter:ti,parser:ni},datetime:{formatter:ti,parser:ni},daterange:{formatter:Ys,parser:Gs},datetimerange:{formatter:Ys,parser:Gs},timerange:{formatter:Ys,parser:Gs},time:{formatter:ti,parser:ni},month:{formatter:ti,parser:ni},year:{formatter:ti,parser:ni},multiple:{formatter:(e,n)=>e.filter(Boolean).map(i=>ei(i,n)).join(","),parser:(e,n)=>(typeof e=="string"?e.split(","):e).map(l=>l instanceof Date?l:(typeof l=="string"?l=l.trim():typeof l!="number"&&!l&&(l=""),Hi(l,n)))},number:{formatter(e){return e?""+e:""},parser(e){let n=Number(e);return isNaN(e)?null:n}}},Wi="ivu-date-picker",w0="ivu-picker",S0=e=>e.reduce((n,i)=>n&&!i||typeof i=="string"&&i.trim()==="",!0),x0={40:"up",39:"right",38:"down",37:"left"},En=(e,n,i)=>{if(e==="left")return n*-1;if(e==="right")return n*1;if(e==="up")return i*1;if(e==="down")return i*-1},B0=e=>{const n="ivu-date-picker-btn-pulse";e.classList.add(n),setTimeout(()=>e.classList.remove(n),200)},Js=e=>e?[e.getHours(),e.getMinutes(),e.getSeconds()]:[0,0,0],V0={mixins:[xe,Pt],components:{iInput:Ze,Drop:pn,Icon:se},directives:{clickOutside:Bs},emits:["on-clickoutside","on-clear","on-change","on-ok","on-open-change","update:modelValue"],provide(){return{PickerInstance:this}},props:{format:{type:String},readonly:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},editable:{type:Boolean,default:!0},clearable:{type:Boolean,default:!0},confirm:{type:Boolean,default:!1},open:{type:Boolean,default:null},multiple:{type:Boolean,default:!1},timePickerOptions:{type:Object,default:()=>({})},splitPanels:{type:Boolean,default:!1},showWeekNumbers:{type:Boolean,default:!1},startDate:{type:Date},size:{validator(e){return V(e,["small","large","default"])},default(){const e=t.getCurrentInstance().appContext.config.globalProperties;return!e.$VIEWUI||e.$VIEWUI.size===""?"default":e.$VIEWUI.size}},placeholder:{type:String,default:""},placement:{validator(e){return V(e,["top","top-start","top-end","bottom","bottom-start","bottom-end","left","left-start","left-end","right","right-start","right-end"])},default:"bottom-start"},transfer:{type:Boolean,default(){const e=t.getCurrentInstance().appContext.config.globalProperties;return!e.$VIEWUI||e.$VIEWUI.transfer===""?!1:e.$VIEWUI.transfer}},name:{type:String},elementId:{type:String},steps:{type:Array,default:()=>[]},modelValue:{type:[Date,String,Array]},options:{type:Object,default:()=>({})},separator:{type:String,default:" - "},capture:{type:Boolean,default(){const e=t.getCurrentInstance().appContext.config.globalProperties;return e.$VIEWUI?e.$VIEWUI.capture:!0}},transferClassName:{type:String},eventsEnabled:{type:Boolean,default:!1}},data(){const e=this.type.includes("range"),n=e?[null,null]:[null],i=S0((e?this.modelValue:[this.modelValue])||[])?n:this.parseDate(this.modelValue),l=i.map(Js);return{prefixCls:Wi,showClose:!1,visible:!1,internalValue:i,disableClickOutSide:!1,disableCloseUnderTransfer:!1,selectionMode:this.onSelectionModeChange(this.type),forceInputRerender:1,isFocused:!1,focusedDate:i[0]||this.startDate||new Date,focusedTime:{column:0,picker:0,time:l,active:!1},internalFocus:!1,isValueNull:!1,timeSpinnerList:[],panelTableList:[]}},computed:{wrapperClasses(){return[Wi,{[Wi+"-focused"]:this.isFocused}]},publicVModelValue(){if(this.multiple)return this.internalValue.slice();{const e=this.type.includes("range");let n=this.internalValue.map(i=>i instanceof Date?new Date(i):i||"");return this.type.match(/^time/)&&(n=n.map(this.formatDate)),e||this.multiple?n:n[0]}},publicStringValue(){const{formatDate:e,publicVModelValue:n,type:i}=this;return i.match(/^time/)?n:this.multiple?e(n):Array.isArray(n)?n.map(e):e(n)},opened(){return this.open===null?this.visible:this.open},transition(){return this.placement.match(/^bottom/)?"slide-up":"slide-down"},visualValue(){return this.formatDate(this.internalValue)},isConfirm(){return this.confirm||this.type==="datetime"||this.type==="datetimerange"||this.multiple},arrowType(){const e=this.globalConfig;let n="";if(this.type==="time"||this.type==="timerange")n="ios-time-outline",e&&(e.timePicker.customIcon?n="":e.timePicker.icon&&(n=e.timePicker.icon));else{const i=this.globalConfig;n="ios-calendar-outline",i&&(i.datePicker.customIcon?n="":i.datePicker.icon&&(n=i.datePicker.icon))}return this.showClose&&(n="ios-close-circle"),n},customArrowType(){const e=this.globalConfig;let n="";return this.showClose||(this.type==="time"||this.type==="timerange"?e&&e.timePicker.customIcon&&(n=e.timePicker.customIcon):e&&e.datePicker.customIcon&&(n=e.datePicker.customIcon)),n},arrowSize(){const e=this.globalConfig;let n="";return this.showClose||(this.type==="time"||this.type==="timerange"?e&&e.timePicker.iconSize&&(n=e.timePicker.iconSize):e&&e.datePicker.iconSize&&(n=e.datePicker.iconSize)),n},dropdownCls(){return{[Wi+"-transfer"]:this.transfer,[this.transferClassName]:this.transferClassName}}},methods:{onSelectionModeChange(e){return e.match(/^date/)&&(e="date"),this.selectionMode=V(e,["year","month","date","time"])&&e,this.selectionMode},handleTransferClick(){this.transfer&&(this.disableCloseUnderTransfer=!0)},handleClose(e){if(this.disableCloseUnderTransfer)return this.disableCloseUnderTransfer=!1,!1;if(e&&e.type==="mousedown"&&this.visible){e.preventDefault(),e.stopPropagation();return}if(this.visible){const n=this.$refs.pickerPanel&&this.$refs.pickerPanel.$el;if(e&&n&&n.contains(e.target))return;this.visible=!1,e&&e.preventDefault(),e&&e.stopPropagation(),this.$emit("on-clickoutside",e);return}this.isFocused=!1,this.disableClickOutSide=!1},handleFocus(e){this.readonly||(this.isFocused=!0,!(e&&e.type==="focus")&&(this.itemDisabled||(this.visible=!0)))},handleBlur(e){if(this.internalFocus){this.internalFocus=!1;return}if(this.visible){e.preventDefault();return}this.isFocused=!1,this.onSelectionModeChange(this.type),this.internalValue=this.internalValue.slice(),this.reset(),this.$refs.pickerPanel.onToggleVisibility(!1)},handleKeydown(e){const n=e.keyCode;if(n===9)if(this.visible)if(e.stopPropagation(),e.preventDefault(),this.isConfirm){const l=`.${w0}-confirm > *`,r=this.$refs.drop.$el.querySelectorAll(l);this.internalFocus=!0,[...r][e.shiftKey?"pop":"shift"]().focus()}else this.handleClose();else this.focused=!1;const i=[37,38,39,40];if(!this.visible&&i.includes(n)){this.visible=!0;return}if(n===27&&this.visible&&(e.stopPropagation(),this.handleClose()),n===13){const l=this.timeSpinnerList.map(r=>r.timeSpinner);if(l.length>0){const r=l[0].showSeconds?3:2,s=Math.floor(this.focusedTime.column/r),a=this.focusedTime.time[s];l[s].chooseValue(a);return}if(this.type.match(/range/))this.$refs.pickerPanel.handleRangePick(this.focusedDate,"date");else{const r=this.panelTableList.map(o=>o.panelTable),s=o=>{const d=["year","month","date"].indexOf(this.type)+1;return[o.getFullYear(),o.getMonth(),o.getDate()].slice(0,d).join("-")};r.find(({cells:o})=>o.find(({date:d,disabled:c})=>s(d)===s(this.focusedDate)&&!c))&&this.onPick(this.focusedDate,!1,"date")}}!i.includes(n)||(this.focusedTime.active&&e.preventDefault(),this.navigateDatePanel(x0[n],e.shiftKey))},reset(){this.$refs.pickerPanel.reset&&this.$refs.pickerPanel.reset()},navigateTimePanel(e){this.focusedTime.active=!0;const n=e.match(/left|right/),i=e.match(/up|down/),l=this.timeSpinnerList.map(c=>c.timeSpinner),r=(l[0].showSeconds?3:2)*l.length,s=(c=>(c+(n?e==="left"?-1:1:0)+r)%r)(this.focusedTime.column),a=r/l.length,o=Math.floor(s/a),d=s%a;if(n){const c=this.internalValue.map(Js);this.focusedTime={...this.focusedTime,column:s,time:c},l.forEach((h,m)=>{m===o?h.updateFocusedTime(d,c[o]):h.updateFocusedTime(-1,h.focusedTime)})}if(i){const c=e==="up"?1:-1,h=["hours","minutes","seconds"],m=l[o][`${h[d]}List`],y=(m.findIndex(({text:x})=>this.focusedTime.time[o][d]===x)+c+m.length)%m.length,C=m[y].text,u=this.focusedTime.time.map((x,I)=>(I!==o||(x[d]=C),x));this.focusedTime={...this.focusedTime,time:u},l.forEach((x,I)=>{I===o?x.updateFocusedTime(d,u[I]):x.updateFocusedTime(-1,x.focusedTime)})}},navigateDatePanel(e,n){const i=this.timeSpinnerList.map(s=>s.timeSpinner);if(i.length>0){this.navigateTimePanel(e,n,i);return}if(n){this.type==="year"?this.focusedDate=new Date(this.focusedDate.getFullYear()+En(e,0,10),this.focusedDate.getMonth(),this.focusedDate.getDate()):this.focusedDate=new Date(this.focusedDate.getFullYear()+En(e,0,1),this.focusedDate.getMonth()+En(e,1,0),this.focusedDate.getDate());const s=e.match(/left|down/)?"prev":"next",a=e.match(/up|down/)?"-double":"",o=this.$refs.drop.$el.querySelector(`.ivu-date-picker-${s}-btn-arrow${a}`);o&&B0(o);return}const l=this.focusedDate||this.internalValue&&this.internalValue[0]||new Date,r=new Date(l);if(this.type.match(/^date/)){const s=da(l.getFullYear(),l.getMonth()),a=l.getDate(),o=r.getDate()+En(e,1,7);o<1?e.match(/left|right/)?(r.setMonth(r.getMonth()+1),r.setDate(o)):r.setDate(a+Math.floor((s-a)/7)*7):o>s?e.match(/left|right/)?(r.setMonth(r.getMonth()-1),r.setDate(o)):r.setDate(a%7):r.setDate(o)}this.type.match(/^month/)&&r.setMonth(r.getMonth()+En(e,1,3)),this.type.match(/^year/)&&r.setFullYear(r.getFullYear()+En(e,1,3)),this.focusedDate=r},handleInputChange(e){const n=this.type.includes("range")||this.multiple,i=this.visualValue,l=e.target.value,r=this.parseDate(l),s=this.options&&typeof this.options.disabledDate=="function"&&this.options.disabledDate,a=n?r:r[0],o=s&&s(a),d=r.reduce((c,h)=>c&&h instanceof Date,!0);l!==i&&!o&&d?(this.emitChange(this.type),this.internalValue=r):this.forceInputRerender++},handleInputMouseenter(){this.readonly||this.itemDisabled||this.visualValue&&this.clearable&&(this.showClose=!0)},handleInputMouseleave(){this.showClose=!1},handleIconClick(e){this.showClose?(e&&e.stopPropagation(),this.handleClear()):this.itemDisabled||this.handleFocus()},handleClear(){this.visible=!1,this.internalValue=this.internalValue.map(()=>null),this.$emit("on-clear"),this.handleFormItemChange("change",""),this.emitChange(this.type),this.reset(),setTimeout(()=>this.onSelectionModeChange(this.type),500)},emitChange(e){t.nextTick(()=>{this.$emit("on-change",this.publicStringValue,e),this.handleFormItemChange("change",this.publicStringValue)})},parseDate(e){const n=this.type.includes("range"),i=this.type,l=(Vn[i]||Vn.default).parser,r=this.format||fa[i],s=Vn.multiple.parser;if(e&&i==="time"&&!(e instanceof Date))e=l(e,r,this.separator);else if(this.multiple&&e)e=s(e,r,this.separator);else if(n)if(!e)e=[null,null];else if(typeof e=="string")e=l(e,r,this.separator);else if(i==="timerange")e=l(e,r,this.separator).map(a=>a||"");else{const[a,o]=e;a instanceof Date&&o instanceof Date?e=e.map(d=>new Date(d)):typeof a=="string"&&typeof o=="string"?e=l(e.join(this.separator),r,this.separator):(!a||!o)&&(e=[null,null])}else typeof e=="string"&&i.indexOf("time")!==0&&(e=l(e,r)||null);return n||this.multiple?e||[]:[e]},formatDate(e){const n=fa[this.type];if(this.multiple){const i=Vn.multiple.formatter;return i(e,this.format||n,this.separator)}else{const{formatter:i}=Vn[this.type]||Vn.default;return i(e,this.format||n,this.separator)}},onPick(e,n=!1,i){if(this.multiple){const l=e.getTime(),r=this.internalValue.findIndex(o=>o&&o.getTime()===l),a=[...this.internalValue,e].filter(Boolean).map(o=>o.getTime()).filter((o,d,c)=>c.indexOf(o)===d&&d!==r);this.internalValue=a.map(o=>new Date(o))}else e=this.parseDate(e),this.internalValue=Array.isArray(e)?e:[e];this.internalValue[0]&&(this.focusedDate=this.internalValue[0]),this.focusedTime={...this.focusedTime,time:this.internalValue.map(Js)},this.isConfirm||this.onSelectionModeChange(this.type),this.isConfirm||(this.visible=!!n),this.emitChange(i)},onPickSuccess(){this.visible=!1,this.$emit("on-ok"),this.focus(),this.reset()},focus(){this.$refs.input&&this.$refs.input.focus()},updatePopper(){this.$refs.drop.update()},handleOnFocusInput(){this.focus()},handleOnUpdatePopper(){this.updatePopper()}},watch:{visible(e){e===!1&&this.$refs.drop.destroy(),e&&this.$refs.drop.update(),this.$emit("on-open-change",e)},modelValue(e){e===null&&(this.isValueNull=!0),this.internalValue=this.parseDate(e)},open(e){this.visible=e===!0},type(e){this.onSelectionModeChange(e)},publicVModelValue(e,n){const i=JSON.stringify(e),l=JSON.stringify(n);(i!==l||typeof e!=typeof n)&&(this.isValueNull?(this.isValueNull=!1,this.$emit("update:modelValue",null)):this.$emit("update:modelValue",e))}},mounted(){this.open!==null&&(this.visible=this.open)}};function E0(e,n,i,l,r,s){const a=t.resolveComponent("Icon"),o=t.resolveComponent("i-input"),d=t.resolveComponent("Drop"),c=t.resolveDirective("click-outside");return t.withDirectives((t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(s.wrapperClasses)},[t.createElementVNode("div",{ref:"reference",class:t.normalizeClass([r.prefixCls+"-rel"])},[t.renderSlot(e.$slots,"default",{},()=>[(t.openBlock(),t.createBlock(o,{key:r.forceInputRerender,"element-id":i.elementId,class:t.normalizeClass([r.prefixCls+"-editor"]),readonly:!i.editable||i.readonly,disabled:e.itemDisabled,size:i.size,placeholder:i.placeholder,"model-value":s.visualValue,name:i.name,ref:"input",onOnInputChange:s.handleInputChange,onOnFocus:s.handleFocus,onOnBlur:s.handleBlur,onClick:s.handleFocus,onKeydown:s.handleKeydown,onMouseenter:s.handleInputMouseenter,onMouseleave:s.handleInputMouseleave},{suffix:t.withCtx(()=>[t.createVNode(a,{onClick:s.handleIconClick,type:s.arrowType,custom:s.customArrowType,size:s.arrowSize},null,8,["onClick","type","custom","size"])]),_:1},8,["element-id","class","readonly","disabled","size","placeholder","model-value","name","onOnInputChange","onOnFocus","onOnBlur","onClick","onKeydown","onMouseenter","onMouseleave"]))])],2),t.createVNode(d,{ref:"drop",visible:s.opened,classes:s.dropdownCls,placement:i.placement,eventsEnabled:i.eventsEnabled,transfer:i.transfer,"transition-name":"transition-drop",onClick:s.handleTransferClick},{default:t.withCtx(()=>[t.createElementVNode("div",null,[(t.openBlock(),t.createBlock(t.resolveDynamicComponent(e.panel),t.mergeProps({ref:"pickerPanel",visible:r.visible,showTime:e.type==="datetime"||e.type==="datetimerange",confirm:s.isConfirm,selectionMode:r.selectionMode,steps:i.steps,format:i.format,"model-value":r.internalValue,"start-date":i.startDate,"split-panels":i.splitPanels,"show-week-numbers":i.showWeekNumbers,"picker-type":e.type,multiple:i.multiple,"focused-date":r.focusedDate,"time-picker-options":i.timePickerOptions},e.ownPickerProps,{onOnPick:s.onPick,onOnPickClear:s.handleClear,onOnPickSuccess:s.onPickSuccess,onOnPickClick:n[0]||(n[0]=h=>r.disableClickOutSide=!0),onOnSelectionModeChange:s.onSelectionModeChange}),null,16,["visible","showTime","confirm","selectionMode","steps","format","model-value","start-date","split-panels","show-week-numbers","picker-type","multiple","focused-date","time-picker-options","onOnPick","onOnPickClear","onOnPickSuccess","onOnSelectionModeChange"]))])]),_:1},8,["visible","classes","placement","eventsEnabled","transfer","onClick"])],2)),[[c,s.handleClose,i.capture,{mousedown:!0}],[c,s.handleClose,i.capture,{touchstart:!0}],[c,s.handleClose,i.capture]])}var ua=S(V0,[["render",E0]]),ma=1e3*60*60*24;function pa(e,n){return new Date(e,n+1,0).getDate()}function ga(e,n,i){return n===0&&i>50?e-1:n===11&&i<10?e+1:e}function ya(e,n,i,l){n>11&&(n=0,e++);var r=new Date(e,n,i);l&&r.setDate(r.getDate()+4-(r.getDay()||7));var s=l?r.getFullYear():e,a=new Date(s,0,1),o=1+Math.round((r-a)/ma);l||(o+=a.getDay());var d=Math.ceil(o/7);if(!l){var c=new Date(e,n,i),h=new Date(e+1,0,1),m=h.getDay();c.getTime()>=h.getTime()-ma*m&&(d=1)}return d}function T0(e,n,i){for(var l=this.lang||"en",r=this.onlyDays,s=typeof this.weekStart=="undefined"?1:this.weekStart,a=s===1,o=[],d=new Date(e,n,1),c=d.getDay()||(a?7:0),h=s-c,m=ya(e,n,1,a),g=pa(e,n),y=pa(e,n-1),C,u,x,I=ga(e,n,m),O={month:n,year:e,daysInMonth:g},v=0;v<7;v++){x=h;for(var T=0;T<8;T++){v>0&&T>0&&h++,h>g||h<1?(u=h>g?h-g:y+h,C=h>g?n+1:n-1):(u=h,C=n);var k=function(){return T===0?"weekLabel":v===0?"dayLabel":h<1?"prevMonth":h>g?"nextMonth":"monthDay"}(),M=x!==h&&v>0,E={desc:M?u:m,week:m,type:k,format:a?"ISO 8601":"US",date:M?new Date(Date.UTC(e,C,u)):!1,year:I,index:o.length};i&&(typeof i=="function"?E=i.call(O,E,l):i.forEach(function(U){E=U.call(O,E,l)})),r&&M?o.push(E):r||o.push(E)}v>0&&(m=ya(e,C,u+1,a)),I=ga(e,n,m)}return O.cells=o,O}var N0=function(e){return T0.bind(e)},I0={weekPlaceholder:"",columnNames:{en:{0:"w",1:"monday",2:"tuesday",3:"wednesday",4:"thursday",5:"friday",6:"saturday",7:"sunday"},sv:{0:"v",1:"m\xE5ndag",2:"tisdag",3:"onsdag",4:"torsdag",5:"fredag",6:"l\xF6rdag",7:"s\xF6ndag"},pt:{0:"s",1:"segunda",2:"ter\xE7a",3:"quarta",4:"quinta",5:"sexta",6:"s\xE1bado",7:"domingo"}},monthNames:{en:["January","February","March","April","May","June","July","August","September","October","November","December"],sv:["januari","februari","mars","april","maj","juni","juli","augusti","september","oktober","november","december"],pt:["Janeiro","Fevereiro","Mar\xE7o","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"]},classes:{dayLabel:"day-of-week",weekLabel:"week-number",prevMonth:"inactive",nextMonth:"inactive",monthDay:"day-in-month"}},bt=I0;function _0(e){return e==null?!1:e.constructor===Array||e.constructor===Object}function Ca(e,n){for(var i in e)n[i]?_0(e[i])&&Ca(e[i],n[i]):n[i]=e[i]}function ba(e,n){var i=[bt.classes[e.type]];return e.class?e.class=(typeof e.class=="string"?[e.class]:e.class).concat(i):e.class=i,e.type.indexOf("Label")>0&&(e.index==0&&bt.weekPlaceholder?e.desc=bt.weekPlaceholder:e.index<8?e.desc=bt.columnNames[n][e.index]:e.index%8==0&&(e.desc=e.week)),e.date&&(e.monthName=bt.monthNames[n][e.date.getMonth()]),this.monthName||(this.monthName=bt.monthNames[n][this.month]),this.labels||(this.labels={monthNames:bt.monthNames[n],columnNames:bt.columnNames[n],classes:bt.classes}),e}ba.setLabels=function(e){Ca(e,bt)};var D0=ba,M0={Generator:N0,addLabels:D0},Xs={name:"PanelTable",emits:["on-pick","on-pick-click","on-change-range"],inject:["PickerInstance"],props:{tableDate:{type:Date,required:!0},disabledDate:{type:Function},selectionMode:{type:String,required:!0},modelValue:{type:Array,required:!0},rangeState:{type:Object,default:()=>({from:null,to:null,selecting:!1})},focusedDate:{type:Date,required:!0}},data(){return{id:Ee(6)}},computed:{dates(){const{selectionMode:e,modelValue:n,rangeState:i}=this;return e==="range"&&i.selecting?[i.from]:n}},methods:{handleClick(e,n){if(n.stopPropagation(),e.disabled||e.type==="weekLabel")return;const i=new Date(Le(e.date));this.$emit("on-pick",i),this.$emit("on-pick-click")},handleMouseMove(e){if(!this.rangeState.selecting||e.disabled)return;const n=e.date;this.$emit("on-change-range",n)},addPanelTable(){const e=this.PickerInstance;e.panelTableList||(e.panelTableList=[]),e.panelTableList.push({id:this.id,panelTable:this})},removePanelTable(){const e=this.PickerInstance;if(e.panelTableList&&e.panelTableList.length){const n=e.panelTableList.findIndex(i=>i.id===this.id);e.panelTableList.splice(n,1)}}},mounted(){this.addPanelTable()},beforeUnmount(){this.removePanelTable()}},ye="ivu-date-picker-cells";const z0={mixins:[ge,Xs],props:{showWeekNumbers:{type:Boolean,default:!1}},computed:{classes(){return[`${ye}`,{[`${ye}-show-week-numbers`]:this.showWeekNumbers}]},calendar(){const e=Number(this.t("i.datepicker.weekStartDay"));return new M0.Generator({onlyDays:!this.showWeekNumbers,weekStart:e})},headerDays(){const e=Number(this.t("i.datepicker.weekStartDay")),n=["sun","mon","tue","wed","thu","fri","sat"].map(l=>this.t("i.datepicker.weeks."+l)),i=n.splice(e,7-e).concat(n.splice(0,e));return this.showWeekNumbers?[""].concat(i):i},cells(){const e=this.tableDate.getFullYear(),n=this.tableDate.getMonth(),i=Le(new Date),l=this.dates.filter(Boolean).map(Le),[r,s]=this.dates.map(Le),a=this.rangeState.from&&Le(this.rangeState.from),o=this.rangeState.to&&Le(this.rangeState.to),d=this.selectionMode==="range",c=typeof this.disabledDate=="function"&&this.disabledDate;return this.calendar(e,n,h=>{h.date instanceof Date&&h.date.setTime(h.date.getTime()+h.date.getTimezoneOffset()*6e4+480*60*1e3);const m=h.date&&Le(h.date),g=h.date&&n===h.date.getMonth();return{...h,type:m===i?"today":h.type,selected:g&&l.includes(m),disabled:h.date&&c&&c(new Date(m)),range:g&&d&&k0(m,a,o),start:g&&d&&m===r,end:g&&d&&m===s}}).cells.slice(this.showWeekNumbers?8:0)}},methods:{getCellCls(e){return[`${ye}-cell`,{[`${ye}-cell-selected`]:e.selected||e.start||e.end,[`${ye}-cell-disabled`]:e.disabled,[`${ye}-cell-today`]:e.type==="today",[`${ye}-cell-prev-month`]:e.type==="prevMonth",[`${ye}-cell-next-month`]:e.type==="nextMonth",[`${ye}-cell-week-label`]:e.type==="weekLabel",[`${ye}-cell-range`]:e.range&&!e.start&&!e.end,[`${ye}-focused`]:Le(e.date)===Le(this.focusedDate)}]}}},P0={class:"ivu-date-picker-cells-header"},$0=["onClick","onMouseenter"];function O0(e,n,i,l,r,s){return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(s.classes)},[t.createElementVNode("div",P0,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(s.headerDays,a=>(t.openBlock(),t.createElementBlock("span",{key:a},t.toDisplayString(a),1))),128))]),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(s.cells,(a,o)=>(t.openBlock(),t.createElementBlock("span",{key:String(a.date)+o,class:t.normalizeClass(s.getCellCls(a)),onClick:d=>e.handleClick(a,d),onMouseenter:d=>e.handleMouseMove(a)},[t.createElementVNode("em",null,t.toDisplayString(a.desc),1)],42,$0))),128))],2)}var ka=S(z0,[["render",O0]]);const L0={mixins:[Xs],props:{},computed:{classes(){return[`${ye}`,`${ye}-year`]},startYear(){return Math.floor(this.tableDate.getFullYear()/10)*10},cells(){let e=[];const n={text:"",selected:!1,disabled:!1},i=this.dates.filter(Boolean).map(r=>Le(new Date(r.getFullYear(),0,1))),l=Le(new Date(this.focusedDate.getFullYear(),0,1));for(let r=0;r<10;r++){const s=me(n);s.date=new Date(this.startYear+r,0,1),s.disabled=typeof this.disabledDate=="function"&&this.disabledDate(s.date)&&this.selectionMode==="year";const a=Le(s.date);s.selected=i.includes(a),s.focused=a===l,e.push(s)}return e}},methods:{getCellCls(e){return[`${ye}-cell`,{[`${ye}-cell-selected`]:e.selected,[`${ye}-cell-disabled`]:e.disabled,[`${ye}-cell-focused`]:e.focused,[`${ye}-cell-range`]:e.range&&!e.start&&!e.end}]}}},F0=["onClick","onMouseenter"];function A0(e,n,i,l,r,s){return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(s.classes)},[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(s.cells,a=>(t.openBlock(),t.createElementBlock("span",{class:t.normalizeClass(s.getCellCls(a)),key:a.date,onClick:o=>e.handleClick(a,o),onMouseenter:o=>e.handleMouseMove(a)},[t.createElementVNode("em",null,t.toDisplayString(a.date.getFullYear()),1)],42,F0))),128))],2)}var wa=S(L0,[["render",A0]]);const R0={mixins:[ge,Xs],props:{},computed:{classes(){return[`${ye}`,`${ye}-month`]},cells(){let e=[];const n={text:"",selected:!1,disabled:!1},i=this.tableDate.getFullYear(),l=this.dates.filter(Boolean).map(s=>Le(new Date(s.getFullYear(),s.getMonth(),1))),r=Le(new Date(this.focusedDate.getFullYear(),this.focusedDate.getMonth(),1));for(let s=0;s<12;s++){const a=me(n);a.date=new Date(i,s,1),a.text=this.tCell(s+1);const o=Le(a.date);a.disabled=typeof this.disabledDate=="function"&&this.disabledDate(a.date)&&this.selectionMode==="month",a.selected=l.includes(o),a.focused=o===r,e.push(a)}return e}},methods:{getCellCls(e){return[`${ye}-cell`,{[`${ye}-cell-selected`]:e.selected,[`${ye}-cell-disabled`]:e.disabled,[`${ye}-cell-focused`]:e.focused,[`${ye}-cell-range`]:e.range&&!e.start&&!e.end}]},tCell(e){return this.t(`i.datepicker.months.m${e}`)}}},H0=["onClick","onMouseenter"];function W0(e,n,i,l,r,s){return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(s.classes)},[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(s.cells,a=>(t.openBlock(),t.createElementBlock("span",{class:t.normalizeClass(s.getCellCls(a)),key:a.text,onClick:o=>e.handleClick(a,o),onMouseenter:o=>e.handleMouseMove(a)},[t.createElementVNode("em",null,t.toDisplayString(a.text),1)],42,H0))),128))],2)}var Sa=S(R0,[["render",W0]]),Ui={props:{disabledHours:{type:Array,default(){return[]}},disabledMinutes:{type:Array,default(){return[]}},disabledSeconds:{type:Array,default(){return[]}},hideDisabledOptions:{type:Boolean,default:!1}}};const dn="ivu-time-picker-cells",Zs=["hours","minutes","seconds"],U0={name:"TimeSpinner",mixins:[Ui],emits:["on-change","on-pick-click"],inject:["PickerInstance"],props:{hours:{type:[Number,String],default:NaN},minutes:{type:[Number,String],default:NaN},seconds:{type:[Number,String],default:NaN},showSeconds:{type:Boolean,default:!0},steps:{type:Array,default:()=>[]}},data(){return{spinerSteps:[1,1,1].map((e,n)=>Math.abs(this.steps[n])||e),prefixCls:dn,compiled:!1,focusedColumn:-1,focusedTime:[0,0,0],id:Ee(6)}},computed:{classes(){return[`${dn}`,{[`${dn}-with-seconds`]:this.showSeconds}]},hoursList(){let e=[];const n=this.spinerSteps[0],i=this.focusedColumn===0&&this.focusedTime[0],l={text:0,selected:!1,disabled:!1,hide:!1};for(let r=0;r<24;r+=n){const s=me(l);s.text=r,s.focused=r===i,this.disabledHours.length&&this.disabledHours.indexOf(r)>-1&&(s.disabled=!0,this.hideDisabledOptions&&(s.hide=!0)),this.hours===r&&(s.selected=!0),e.push(s)}return e},minutesList(){let e=[];const n=this.spinerSteps[1],i=this.focusedColumn===1&&this.focusedTime[1],l={text:0,selected:!1,disabled:!1,hide:!1};for(let r=0;r<60;r+=n){const s=me(l);s.text=r,s.focused=r===i,this.disabledMinutes.length&&this.disabledMinutes.indexOf(r)>-1&&(s.disabled=!0,this.hideDisabledOptions&&(s.hide=!0)),this.minutes===r&&(s.selected=!0),e.push(s)}return e},secondsList(){let e=[];const n=this.spinerSteps[2],i=this.focusedColumn===2&&this.focusedTime[2],l={text:0,selected:!1,disabled:!1,hide:!1};for(let r=0;r<60;r+=n){const s=me(l);s.text=r,s.focused=r===i,this.disabledSeconds.length&&this.disabledSeconds.indexOf(r)>-1&&(s.disabled=!0,this.hideDisabledOptions&&(s.hide=!0)),this.seconds===r&&(s.selected=!0),e.push(s)}return e}},methods:{getCellCls(e){return[`${dn}-cell`,{[`${dn}-cell-selected`]:e.selected,[`${dn}-cell-focused`]:e.focused,[`${dn}-cell-disabled`]:e.disabled}]},chooseValue(e){const n=Zs.reduce((i,l,r)=>{const s=e[r];return this[l]===s?i:{...i,[l]:s}},{});Object.keys(n).length>0&&this.emitChange(n)},handleClick(e,n){if(n.disabled)return;const i={[e]:n.text};this.emitChange(i)},emitChange(e){this.$emit("on-change",e),this.$emit("on-pick-click")},scroll(e,n){const i=this.$refs[e].scrollTop,l=24*this.getScrollIndex(e,n);ks(this.$refs[e],i,l,500)},getScrollIndex(e,n){const i=Qc(e),l=this[`disabled${i}`];if(l.length&&this.hideDisabledOptions){let r=0;l.forEach(s=>s<=n?r++:""),n-=r}return n},updateScroll(){t.nextTick(()=>{Zs.forEach(e=>{this.$refs[e].scrollTop=24*this[`${e}List`].findIndex(n=>n.text==this[e])})})},formatTime(e){return e<10?"0"+e:e},updateFocusedTime(e,n){this.focusedColumn=e,this.focusedTime=n.slice()},addTimeSpinner(){const e=this.PickerInstance;e.timeSpinnerList||(e.timeSpinnerList=[]),e.timeSpinnerList.push({id:this.id,timeSpinner:this})},removeTimeSpinner(){const e=this.PickerInstance;if(e.timeSpinnerList&&e.timeSpinnerList.length){const n=e.timeSpinnerList.findIndex(i=>i.id===this.id);e.timeSpinnerList.splice(n,1)}}},watch:{hours(e){!this.compiled||this.scroll("hours",this.hoursList.findIndex(n=>n.text==e))},minutes(e){!this.compiled||this.scroll("minutes",this.minutesList.findIndex(n=>n.text==e))},seconds(e){!this.compiled||this.scroll("seconds",this.secondsList.findIndex(n=>n.text==e))},focusedTime(e,n){Zs.forEach((i,l)=>{if(e[l]===n[l]||typeof e[l]=="undefined")return;const r=this[`${i}List`].findIndex(s=>s.text===e[l]);this.scroll(i,r)})}},mounted(){this.addTimeSpinner(),t.nextTick(()=>this.compiled=!0)},beforeUnmount(){this.removeTimeSpinner()}},v0=["onClick"],j0=["onClick"],K0=["onClick"];function q0(e,n,i,l,r,s){return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(s.classes)},[t.createElementVNode("div",{class:t.normalizeClass([r.prefixCls+"-list"]),ref:"hours"},[t.createElementVNode("ul",{class:t.normalizeClass([r.prefixCls+"-ul"])},[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(s.hoursList,a=>t.withDirectives((t.openBlock(),t.createElementBlock("li",{class:t.normalizeClass(s.getCellCls(a)),key:a.text,onClick:o=>s.handleClick("hours",a)},t.toDisplayString(s.formatTime(a.text)),11,v0)),[[t.vShow,!a.hide]])),128))],2)],2),t.createElementVNode("div",{class:t.normalizeClass([r.prefixCls+"-list"]),ref:"minutes"},[t.createElementVNode("ul",{class:t.normalizeClass([r.prefixCls+"-ul"])},[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(s.minutesList,a=>t.withDirectives((t.openBlock(),t.createElementBlock("li",{class:t.normalizeClass(s.getCellCls(a)),key:a.text,onClick:o=>s.handleClick("minutes",a)},t.toDisplayString(s.formatTime(a.text)),11,j0)),[[t.vShow,!a.hide]])),128))],2)],2),t.withDirectives(t.createElementVNode("div",{class:t.normalizeClass([r.prefixCls+"-list"]),ref:"seconds"},[t.createElementVNode("ul",{class:t.normalizeClass([r.prefixCls+"-ul"])},[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(s.secondsList,a=>t.withDirectives((t.openBlock(),t.createElementBlock("li",{class:t.normalizeClass(s.getCellCls(a)),key:a.text,onClick:o=>s.handleClick("seconds",a)},t.toDisplayString(s.formatTime(a.text)),11,K0)),[[t.vShow,!a.hide]])),128))],2)],2),[[t.vShow,i.showSeconds]])],2)}var xa=S(U0,[["render",q0]]);const Ba="ivu-picker",Y0={mixins:[ge],components:{iButton:Oe},emits:["on-pick-clear","on-pick-success","on-pick-toggle-time"],inject:["PickerInstance"],props:{showTime:{type:Boolean,default:!1},isTime:{type:Boolean,default:!1},timeDisabled:{type:Boolean,default:!1}},data(){return{prefixCls:Ba}},computed:{timeClasses(){return`${Ba}-confirm-time`},labels(){const e=["time","clear","ok"],n=[this.isTime?"selectDate":"selectTime","clear","ok"];return e.reduce((i,l,r)=>(i[l]=this.t("i.datepicker."+n[r]),i),{})}},methods:{handleClear(){this.$emit("on-pick-clear")},handleSuccess(){this.$emit("on-pick-success")},handleToggleTime(){this.timeDisabled||(this.$emit("on-pick-toggle-time"),this.PickerInstance.handleOnFocusInput(),this.PickerInstance.handleOnUpdatePopper())},handleTab(e){const i=[...this.$el.children][e.shiftKey?"shift":"pop"]();H&&document.activeElement===i&&(e.preventDefault(),e.stopPropagation(),this.PickerInstance.handleOnFocusInput())}}};function G0(e,n,i,l,r,s){const a=t.resolveComponent("i-button");return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass([r.prefixCls+"-confirm"]),onKeydownCapture:n[0]||(n[0]=t.withKeys((...o)=>s.handleTab&&s.handleTab(...o),["tab"]))},[i.showTime?(t.openBlock(),t.createBlock(a,{key:0,class:t.normalizeClass(s.timeClasses),size:"small",type:"text",disabled:i.timeDisabled,onClick:s.handleToggleTime},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(s.labels.time),1)]),_:1},8,["class","disabled","onClick"])):t.createCommentVNode("",!0),t.createVNode(a,{size:"small",class:"ivu-picker-confirm-btn-cancel",onClick:s.handleClear,onKeydown:t.withKeys(s.handleClear,["enter"])},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(s.labels.clear),1)]),_:1},8,["onClick","onKeydown"]),t.createVNode(a,{size:"small",type:"primary",onClick:s.handleSuccess,onKeydown:t.withKeys(s.handleSuccess,["enter"])},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(s.labels.ok),1)]),_:1},8,["onClick","onKeydown"])],34)}var vi=S(Y0,[["render",G0]]);const J0="ivu-picker-panel",Va="ivu-date-picker";var ji={emits:["on-pick-clear","on-pick-success","on-pick-click","on-pick"],props:{confirm:{type:Boolean,default:!1}},methods:{iconBtnCls(e,n=""){return[`${J0}-icon-btn`,`${Va}-${e}-btn`,`${Va}-${e}-btn-arrow${n}`]},handleShortcutClick(e){e.value&&this.$emit("on-pick",e.value()),e.onClick&&e.onClick(this)},handlePickClear(){this.resetView(),this.$emit("on-pick-clear")},handlePickSuccess(){this.resetView(),this.$emit("on-pick-success")},handlePickClick(){this.$emit("on-pick-click")},resetView(){setTimeout(()=>this.currentView=this.selectionMode,500)},handleClear(){this.dates=this.dates.map(()=>null),this.rangeState={},this.$emit("on-pick",this.dates),this.handleConfirm()},handleConfirm(e,n){this.$emit("on-pick",this.dates,e,n||this.type)},onToggleVisibility(e){const{timeSpinner:n,timeSpinnerEnd:i}=this.$refs;e&&n&&n.updateScroll(),e&&i&&i.updateScroll()}}};const X0="ivu-picker-panel",Z0="ivu-time-picker",Q0=e=>e[0].toUpperCase()+e.slice(1),eg=(e,n,i,l)=>{const r=new Date(e.getTime());return r.setHours(n),r.setMinutes(i),r.setSeconds(l),r},tg=(e,n,i)=>i.indexOf(e)===n,Ea=()=>!1,ng={name:"TimePickerPanel",mixins:[ji,ge,Ui],components:{TimeSpinner:xa,Confirm:vi},emits:["on-pick"],props:{disabledDate:{type:Function,default:Ea},steps:{type:Array,default:()=>[]},format:{type:String,default:"HH:mm:ss"},modelValue:{type:Array,required:!0}},data(){return{prefixCls:X0,timePrefixCls:Z0,date:this.modelValue[0]||Ct(),showDate:!1}},computed:{showSeconds(){return!!(this.format||"").match(/ss/)},visibleDate(){const e=this.date,n=e.getMonth()+1,i=this.t("i.datepicker.year"),l=this.t(`i.datepicker.month${n}`);return`${e.getFullYear()}${i} ${l}`},timeSlots(){return this.modelValue[0]?["getHours","getMinutes","getSeconds"].map(e=>this.date[e]()):[]},disabledHMS(){const e=["disabledHours","disabledMinutes","disabledSeconds"];if(this.disabledDate===Ea||!this.modelValue[0])return e.reduce((i,l)=>(i[l]=this[l],i),{});{const n=[24,60,60],l=["Hours","Minutes","Seconds"].map(r=>this[`disabled${r}`]).map((r,s)=>{const a=n[s],o=r;for(let d=0;dg===s?d:m),h=eg(this.date,...c);this.disabledDate(h,!0)&&o.push(d)}return o.filter(tg)});return e.reduce((r,s,a)=>(r[s]=l[a],r),{})}}},watch:{modelValue(e){let n=e[0]||Ct();n=new Date(n),this.date=n}},methods:{handleChange(e,n=!0){const i=new Date(this.date);Object.keys(e).forEach(l=>i[`set${Q0(l)}`](e[l])),n&&this.$emit("on-pick",i,"time")}},mounted(){this.$parent&&this.$parent.$options.name==="DatePicker"&&(this.showDate=!0)}};function ig(e,n,i,l,r,s){const a=t.resolveComponent("time-spinner"),o=t.resolveComponent("Confirm");return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass([r.prefixCls+"-body-wrapper"]),onMousedown:n[0]||(n[0]=t.withModifiers(()=>{},["prevent"]))},[t.createElementVNode("div",{class:t.normalizeClass([r.prefixCls+"-body"])},[r.showDate?(t.openBlock(),t.createElementBlock("div",{key:0,class:t.normalizeClass([r.timePrefixCls+"-header"])},t.toDisplayString(s.visibleDate),3)):t.createCommentVNode("",!0),t.createElementVNode("div",{class:t.normalizeClass([r.prefixCls+"-content"])},[t.createVNode(a,{ref:"timeSpinner","show-seconds":s.showSeconds,steps:i.steps,hours:s.timeSlots[0],minutes:s.timeSlots[1],seconds:s.timeSlots[2],"disabled-hours":s.disabledHMS.disabledHours,"disabled-minutes":s.disabledHMS.disabledMinutes,"disabled-seconds":s.disabledHMS.disabledSeconds,"hide-disabled-options":e.hideDisabledOptions,onOnChange:s.handleChange,onOnPickClick:e.handlePickClick},null,8,["show-seconds","steps","hours","minutes","seconds","disabled-hours","disabled-minutes","disabled-seconds","hide-disabled-options","onOnChange","onOnPickClick"])],2),e.confirm?(t.openBlock(),t.createBlock(o,{key:1,onOnPickClear:e.handlePickClear,onOnPickSuccess:e.handlePickSuccess},null,8,["onOnPickClear","onOnPickSuccess"])):t.createCommentVNode("",!0)],2)],34)}var Ta=S(ng,[["render",ig]]);const sg={props:{datePanelLabel:Object,currentView:String,datePrefixCls:String}};function rg(e,n,i,l,r,s){return t.openBlock(),t.createElementBlock("span",null,[i.datePanelLabel?t.withDirectives((t.openBlock(),t.createElementBlock("span",{key:0,class:t.normalizeClass([i.datePrefixCls+"-header-label"]),onClick:n[0]||(n[0]=(...a)=>i.datePanelLabel.labels[0].handler&&i.datePanelLabel.labels[0].handler(...a))},t.toDisplayString(i.datePanelLabel.labels[0].label),3)),[[t.vShow,i.datePanelLabel.labels[0].type==="year"||i.currentView==="date"]]):t.createCommentVNode("",!0),i.datePanelLabel&&i.currentView==="date"?(t.openBlock(),t.createElementBlock(t.Fragment,{key:1},[t.createTextVNode(t.toDisplayString(i.datePanelLabel.separator),1)],64)):t.createCommentVNode("",!0),i.datePanelLabel?t.withDirectives((t.openBlock(),t.createElementBlock("span",{key:2,class:t.normalizeClass([i.datePrefixCls+"-header-label"]),onClick:n[1]||(n[1]=(...a)=>i.datePanelLabel.labels[1].handler&&i.datePanelLabel.labels[1].handler(...a))},t.toDisplayString(i.datePanelLabel.labels[1].label),3)),[[t.vShow,i.datePanelLabel.labels[1].type==="year"||i.currentView==="date"]]):t.createCommentVNode("",!0)])}var Na=S(sg,[["render",rg]]),Ia={props:{showTime:{type:Boolean,default:!1},format:{type:String,default:"yyyy-MM-dd"},selectionMode:{type:String,validator(e){return V(e,["year","month","date","time"])},default:"date"},shortcuts:{type:Array,default:()=>[]},disabledDate:{type:Function,default:()=>!1},modelValue:{type:Array,default:()=>[Ct(),Ct()]},timePickerOptions:{default:()=>({}),type:Object},showWeekNumbers:{type:Boolean,default:!1},startDate:{type:Date},pickerType:{type:String,require:!0},focusedDate:{type:Date,required:!0}},computed:{isTime(){return this.currentView==="time"}},methods:{handleToggleTime(){this.currentView=this.currentView==="time"?"date":"time"}}};const Qs="ivu-picker-panel",lg="ivu-date-picker",ag={name:"DatePickerPanel",mixins:[ji,ge,Ia],components:{Icon:se,DateTable:ka,YearTable:wa,MonthTable:Sa,TimePicker:Ta,Confirm:vi,datePanelLabel:Na},emits:["on-selection-mode-change","on-pick"],props:{multiple:{type:Boolean,default:!1}},data(){const{selectionMode:e,modelValue:n}=this,i=n.slice().sort();return{prefixCls:Qs,datePrefixCls:lg,currentView:e||"date",pickerTable:this.getTableType(e),dates:i,panelDate:this.startDate||i[0]||new Date}},computed:{classes(){return[`${Qs}-body-wrapper`,{[`${Qs}-with-sidebar`]:this.shortcuts.length}]},panelPickerHandlers(){return this.pickerTable===`${this.currentView}-table`?this.handlePick:this.handlePreSelection},datePanelLabel(){const e=this.t("i.locale"),n=this.t("i.datepicker.datePanelLabel"),i=this.panelDate,{labels:l,separator:r}=qs(e,n,i),s=a=>()=>this.pickerTable=this.getTableType(a);return{separator:r,labels:l.map(a=>(a.handler=s(a.type),a))}},timeDisabled(){return!this.dates[0]}},watch:{modelValue(e){this.dates=e;const n=this.multiple?this.dates[this.dates.length-1]:this.startDate||this.dates[0];this.panelDate=n||new Date},currentView(e){this.$emit("on-selection-mode-change",e),this.currentView==="time"&&t.nextTick(()=>{this.$refs.timePicker.$refs.timeSpinner.updateScroll()})},selectionMode(e){this.currentView=e,this.pickerTable=this.getTableType(e)},focusedDate(e){const n=e.getFullYear()!==this.panelDate.getFullYear(),i=n||e.getMonth()!==this.panelDate.getMonth();(n||i)&&(this.multiple||(this.panelDate=e))}},methods:{reset(){this.currentView=this.selectionMode,this.pickerTable=this.getTableType(this.currentView)},changeYear(e){this.selectionMode==="year"||this.pickerTable==="year-table"?this.panelDate=new Date(this.panelDate.getFullYear()+e*10,0,1):this.panelDate=ha(this.panelDate,e*12)},getTableType(e){return e.match(/^time/)?"time-picker":`${e}-table`},changeMonth(e){this.panelDate=ha(this.panelDate,e)},handlePreSelection(e){this.panelDate=e,this.pickerTable==="year-table"?this.pickerTable="month-table":this.pickerTable=this.getTableType(this.currentView)},handlePick(e,n){const{selectionMode:i,panelDate:l}=this;i==="year"?e=new Date(e.getFullYear(),0,1):i==="month"?e=new Date(l.getFullYear(),e.getMonth(),1):e=new Date(e),this.dates=[e],this.$emit("on-pick",e,!1,n||i)}}},og=["onClick"];function cg(e,n,i,l,r,s){const a=t.resolveComponent("Icon"),o=t.resolveComponent("date-panel-label"),d=t.resolveComponent("time-picker"),c=t.resolveComponent("Confirm");return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(s.classes),onMousedown:n[4]||(n[4]=t.withModifiers(()=>{},["prevent"]))},[e.shortcuts.length?(t.openBlock(),t.createElementBlock("div",{key:0,class:t.normalizeClass([r.prefixCls+"-sidebar"])},[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(e.shortcuts,h=>(t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass([r.prefixCls+"-shortcut"]),key:h.text,onClick:m=>e.handleShortcutClick(h)},t.toDisplayString(h.text),11,og))),128))],2)):t.createCommentVNode("",!0),t.createElementVNode("div",{class:t.normalizeClass([r.prefixCls+"-body"])},[t.withDirectives(t.createElementVNode("div",{class:t.normalizeClass([r.datePrefixCls+"-header"])},[t.createElementVNode("span",{class:t.normalizeClass(e.iconBtnCls("prev","-double")),onClick:n[0]||(n[0]=h=>s.changeYear(-1))},[t.createVNode(a,{type:"ios-arrow-back"})],2),r.pickerTable==="date-table"?t.withDirectives((t.openBlock(),t.createElementBlock("span",{key:0,class:t.normalizeClass(e.iconBtnCls("prev")),onClick:n[1]||(n[1]=h=>s.changeMonth(-1))},[t.createVNode(a,{type:"ios-arrow-back"})],2)),[[t.vShow,r.currentView==="date"]]):t.createCommentVNode("",!0),t.createVNode(o,{"date-panel-label":s.datePanelLabel,"current-view":r.pickerTable.split("-").shift(),"date-prefix-cls":r.datePrefixCls},null,8,["date-panel-label","current-view","date-prefix-cls"]),t.createElementVNode("span",{class:t.normalizeClass(e.iconBtnCls("next","-double")),onClick:n[2]||(n[2]=h=>s.changeYear(1))},[t.createVNode(a,{type:"ios-arrow-forward"})],2),r.pickerTable==="date-table"?t.withDirectives((t.openBlock(),t.createElementBlock("span",{key:1,class:t.normalizeClass(e.iconBtnCls("next")),onClick:n[3]||(n[3]=h=>s.changeMonth(1))},[t.createVNode(a,{type:"ios-arrow-forward"})],2)),[[t.vShow,r.currentView==="date"]]):t.createCommentVNode("",!0)],2),[[t.vShow,r.currentView!=="time"]]),t.createElementVNode("div",{class:t.normalizeClass([r.prefixCls+"-content"])},[r.currentView!=="time"?(t.openBlock(),t.createBlock(t.resolveDynamicComponent(r.pickerTable),{key:0,ref:"pickerTable","table-date":r.panelDate,"show-week-numbers":e.showWeekNumbers,"model-value":r.dates,"selection-mode":e.selectionMode,"disabled-date":e.disabledDate,"focused-date":e.focusedDate,onOnPick:s.panelPickerHandlers,onOnPickClick:e.handlePickClick},null,40,["table-date","show-week-numbers","model-value","selection-mode","disabled-date","focused-date","onOnPick","onOnPickClick"])):t.createCommentVNode("",!0)],2),t.withDirectives(t.createElementVNode("div",{class:t.normalizeClass([r.prefixCls+"-content"])},[r.currentView==="time"?(t.openBlock(),t.createBlock(d,t.mergeProps({key:0,ref:"timePicker","model-value":r.dates,format:e.format,"time-disabled":s.timeDisabled,"disabled-date":e.disabledDate,"focused-date":e.focusedDate},e.timePickerOptions,{onOnPick:s.handlePick,onOnPickClick:e.handlePickClick,onOnPickClear:e.handlePickClear,onOnPickSuccess:e.handlePickSuccess,onOnPickToggleTime:e.handleToggleTime}),null,16,["model-value","format","time-disabled","disabled-date","focused-date","onOnPick","onOnPickClick","onOnPickClear","onOnPickSuccess","onOnPickToggleTime"])):t.createCommentVNode("",!0)],2),[[t.vShow,e.isTime]]),e.confirm?(t.openBlock(),t.createBlock(c,{key:0,"show-time":e.showTime,"is-time":e.isTime,onOnPickToggleTime:e.handleToggleTime,onOnPickClear:e.handlePickClear,onOnPickSuccess:e.handlePickSuccess},null,8,["show-time","is-time","onOnPickToggleTime","onOnPickClear","onOnPickSuccess"])):t.createCommentVNode("",!0)],2)],34)}var dg=S(ag,[["render",cg]]);const _a="ivu-picker-panel",er="ivu-time-picker",Da=e=>e[0].toUpperCase()+e.slice(1),hg={name:"RangeTimePickerPanel",mixins:[ji,ge,Ui],components:{TimeSpinner:xa,Confirm:vi},emits:["on-pick"],props:{steps:{type:Array,default:()=>[]},format:{type:String,default:"HH:mm:ss"},modelValue:{type:Array,required:!0}},data(){const[e,n]=this.modelValue.slice();return{prefixCls:_a,timePrefixCls:er,showDate:!1,dateStart:e||Ct(),dateEnd:n||Ct()}},computed:{classes(){return[`${_a}-body-wrapper`,`${er}-with-range`,{[`${er}-with-seconds`]:this.showSeconds}]},showSeconds(){return!!(this.format||"").match(/ss/)},leftDatePanelLabel(){return this.panelLabelConfig(this.date)},rightDatePanelLabel(){return this.panelLabelConfig(this.dateEnd)}},watch:{modelValue(e){const[n,i]=e.slice();this.dateStart=n||Ct(),this.dateEnd=i||Ct()}},methods:{panelLabelConfig(e){const n=this.t("i.locale"),i=this.t("i.datepicker.datePanelLabel"),{labels:l,separator:r}=qs(n,i,e||Ct());return[l[0].label,r,l[1].label].join("")},handleChange(e,n,i=!0){const l=new Date(this.dateStart);let r=new Date(this.dateEnd);Object.keys(e).forEach(s=>{l[`set${Da(s)}`](e[s])}),Object.keys(n).forEach(s=>{r[`set${Da(s)}`](n[s])}),r{},["prevent"]))},[t.createElementVNode("div",{class:t.normalizeClass([r.prefixCls+"-body"])},[t.createElementVNode("div",{class:t.normalizeClass([r.prefixCls+"-content",r.prefixCls+"-content-left"])},[t.createElementVNode("div",{class:t.normalizeClass([r.timePrefixCls+"-header"])},[r.showDate?(t.openBlock(),t.createElementBlock(t.Fragment,{key:0},[t.createTextVNode(t.toDisplayString(s.leftDatePanelLabel),1)],64)):(t.openBlock(),t.createElementBlock(t.Fragment,{key:1},[t.createTextVNode(t.toDisplayString(e.t("i.datepicker.startTime")),1)],64))],2),t.createVNode(a,{ref:"timeSpinner",steps:i.steps,"show-seconds":s.showSeconds,hours:i.modelValue[0]&&r.dateStart.getHours(),minutes:i.modelValue[0]&&r.dateStart.getMinutes(),seconds:i.modelValue[0]&&r.dateStart.getSeconds(),"disabled-hours":e.disabledHours,"disabled-minutes":e.disabledMinutes,"disabled-seconds":e.disabledSeconds,"hide-disabled-options":e.hideDisabledOptions,onOnChange:s.handleStartChange,onOnPickClick:e.handlePickClick},null,8,["steps","show-seconds","hours","minutes","seconds","disabled-hours","disabled-minutes","disabled-seconds","hide-disabled-options","onOnChange","onOnPickClick"])],2),t.createElementVNode("div",{class:t.normalizeClass([r.prefixCls+"-content",r.prefixCls+"-content-right"])},[t.createElementVNode("div",{class:t.normalizeClass([r.timePrefixCls+"-header"])},[r.showDate?(t.openBlock(),t.createElementBlock(t.Fragment,{key:0},[t.createTextVNode(t.toDisplayString(s.rightDatePanelLabel),1)],64)):(t.openBlock(),t.createElementBlock(t.Fragment,{key:1},[t.createTextVNode(t.toDisplayString(e.t("i.datepicker.endTime")),1)],64))],2),t.createVNode(a,{ref:"timeSpinnerEnd",steps:i.steps,"show-seconds":s.showSeconds,hours:i.modelValue[1]&&r.dateEnd.getHours(),minutes:i.modelValue[1]&&r.dateEnd.getMinutes(),seconds:i.modelValue[1]&&r.dateEnd.getSeconds(),"disabled-hours":e.disabledHours,"disabled-minutes":e.disabledMinutes,"disabled-seconds":e.disabledSeconds,"hide-disabled-options":e.hideDisabledOptions,onOnChange:s.handleEndChange,onOnPickClick:e.handlePickClick},null,8,["steps","show-seconds","hours","minutes","seconds","disabled-hours","disabled-minutes","disabled-seconds","hide-disabled-options","onOnChange","onOnPickClick"])],2),e.confirm?(t.openBlock(),t.createBlock(o,{key:0,onOnPickClear:e.handlePickClear,onOnPickSuccess:e.handlePickSuccess},null,8,["onOnPickClear","onOnPickSuccess"])):t.createCommentVNode("",!0)],2)],34)}var Ma=S(hg,[["render",fg]]);const Tn="ivu-picker-panel",tr="ivu-date-picker",za=(e,n)=>!e||!n?0:e.getTime()-n.getTime(),ug={name:"RangeDatePickerPanel",mixins:[ji,ge,Ia],components:{Icon:se,DateTable:ka,YearTable:wa,MonthTable:Sa,TimePicker:Ma,Confirm:vi,datePanelLabel:Na},props:{splitPanels:{type:Boolean,default:!1}},data(){const[e,n]=this.modelValue.map(l=>l||Ct()),i=this.startDate?this.startDate:e;return{prefixCls:Tn,datePrefixCls:tr,dates:this.modelValue,rangeState:{from:this.modelValue[0],to:this.modelValue[1],selecting:e&&!n},currentView:this.selectionMode||"range",leftPickerTable:`${this.selectionMode}-table`,rightPickerTable:`${this.selectionMode}-table`,leftPanelDate:i,rightPanelDate:new Date(i.getFullYear(),i.getMonth()+1,1)}},computed:{classes(){return[`${Tn}-body-wrapper`,`${tr}-with-range`,{[`${Tn}-with-sidebar`]:this.shortcuts.length,[`${tr}-with-week-numbers`]:this.showWeekNumbers}]},panelBodyClasses(){return[Tn+"-body",{[Tn+"-body-time"]:this.showTime,[Tn+"-body-date"]:!this.showTime}]},leftDatePanelLabel(){return this.panelLabelConfig("left")},rightDatePanelLabel(){return this.panelLabelConfig("right")},leftDatePanelView(){return this.leftPickerTable.split("-").shift()},rightDatePanelView(){return this.rightPickerTable.split("-").shift()},timeDisabled(){return!(this.dates[0]&&this.dates[1])},preSelecting(){const e=`${this.currentView}-table`;return{left:this.leftPickerTable!==e,right:this.rightPickerTable!==e}},panelPickerHandlers(){return{left:this.preSelecting.left?this.handlePreSelection.bind(this,"left"):this.handleRangePick,right:this.preSelecting.right?this.handlePreSelection.bind(this,"right"):this.handleRangePick}}},watch:{modelValue(e){const n=e[0]?Ks(e[0]):null,i=e[1]?Ks(e[1]):null;this.dates=[n,i].sort(za),this.rangeState={from:this.dates[0],to:this.dates[1],selecting:!1},this.setPanelDates(this.startDate||this.dates[0]||new Date)},currentView(e){const n=this.leftPanelDate.getMonth(),i=this.rightPanelDate.getMonth(),l=this.leftPanelDate.getFullYear()===this.rightPanelDate.getFullYear();e==="date"&&l&&n===i&&this.changePanelDate("right","Month",1),e==="month"&&l&&this.changePanelDate("right","FullYear",1),e==="year"&&l&&this.changePanelDate("right","FullYear",10)},selectionMode(e){this.currentView=e||"range"},focusedDate(e){this.setPanelDates(e||new Date)}},methods:{reset(){this.currentView=this.selectionMode,this.leftPickerTable=`${this.currentView}-table`,this.rightPickerTable=`${this.currentView}-table`},setPanelDates(e){this.leftPanelDate=e;const n=new Date(e.getFullYear(),e.getMonth()+1,1),i=this.dates[1]?this.dates[1].getTime():this.dates[1];this.rightPanelDate=this.splitPanels?new Date(Math.max(i,n.getTime())):n},panelLabelConfig(e){const n=this.t("i.locale"),i=this.t("i.datepicker.datePanelLabel"),l=o=>{const d=o=="month"?this.showMonthPicker:this.showYearPicker;return()=>d(e)},r=this[`${e}PanelDate`],{labels:s,separator:a}=qs(n,i,r);return{separator:a,labels:s.map(o=>(o.handler=l(o.type),o))}},prevYear(e){const n=this.currentView==="year"?-10:-1;this.changePanelDate(e,"FullYear",n)},nextYear(e){const n=this.currentView==="year"?10:1;this.changePanelDate(e,"FullYear",n)},prevMonth(e){this.changePanelDate(e,"Month",-1)},nextMonth(e){this.changePanelDate(e,"Month",1)},changePanelDate(e,n,i,l=!0){const r=new Date(this[`${e}PanelDate`]);if(n==="FullYear"?r[`set${n}`](r[`get${n}`]()+i):r[`set${n}`](r[`get${n}`]()+i,1),this[`${e}PanelDate`]=r,!!l)if(this.splitPanels){const s=e==="left"?"right":"left";e==="left"&&this.leftPanelDate>=this.rightPanelDate&&this.changePanelDate(s,n,1),e==="right"&&this.rightPanelDate<=this.leftPanelDate&&this.changePanelDate(s,n,-1)}else{const s=e==="left"?"right":"left",a=this[`${s}PanelDate`],o=new Date(a);if(n==="Month"){const d=new Date(o.getFullYear(),o.getMonth()+i+1,0).getDate();o.setDate(Math.min(d,o.getDate()))}o[`set${n}`](o[`get${n}`]()+i),this[`${s}PanelDate`]=o}},showYearPicker(e){this[`${e}PickerTable`]="year-table"},showMonthPicker(e){this[`${e}PickerTable`]="month-table"},handlePreSelection(e,n){if(this[`${e}PanelDate`]=n,this[`${e}PickerTable`]==="year-table"?this[`${e}PickerTable`]="month-table":this[`${e}PickerTable`]=`${this.currentView}-table`,!this.splitPanels){const l=e==="left"?"right":"left";this[`${l}PanelDate`]=n;const r=l==="left"?-1:1;this.changePanelDate(l,"Month",r,!1)}},handleRangePick(e,n){if(this.rangeState.selecting||this.currentView==="time"){if(this.currentView==="time")this.dates=e;else{const[i,l]=[this.rangeState.from,e].sort(za);this.dates=[i,l],this.rangeState={from:i,to:l,selecting:!1}}this.handleConfirm(!1,n||"date")}else this.rangeState={from:e,to:null,selecting:!0}},handleChangeRange(e){this.rangeState.to=e}}},mg=["onClick"];function pg(e,n,i,l,r,s){const a=t.resolveComponent("Icon"),o=t.resolveComponent("date-panel-label"),d=t.resolveComponent("time-picker"),c=t.resolveComponent("Confirm");return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(s.classes),onMousedown:n[8]||(n[8]=t.withModifiers(()=>{},["prevent"]))},[e.shortcuts.length?(t.openBlock(),t.createElementBlock("div",{key:0,class:t.normalizeClass([r.prefixCls+"-sidebar"])},[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(e.shortcuts,h=>(t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass([r.prefixCls+"-shortcut"]),key:h.text,onClick:m=>e.handleShortcutClick(h)},t.toDisplayString(h.text),11,mg))),128))],2)):t.createCommentVNode("",!0),t.createElementVNode("div",{class:t.normalizeClass(s.panelBodyClasses)},[t.withDirectives(t.createElementVNode("div",{class:t.normalizeClass([r.prefixCls+"-content",r.prefixCls+"-content-left"])},[t.withDirectives(t.createElementVNode("div",{class:t.normalizeClass([r.datePrefixCls+"-header"])},[t.createElementVNode("span",{class:t.normalizeClass(e.iconBtnCls("prev","-double")),onClick:n[0]||(n[0]=h=>s.prevYear("left"))},[t.createVNode(a,{type:"ios-arrow-back"})],2),r.leftPickerTable==="date-table"?t.withDirectives((t.openBlock(),t.createElementBlock("span",{key:0,class:t.normalizeClass(e.iconBtnCls("prev")),onClick:n[1]||(n[1]=h=>s.prevMonth("left"))},[t.createVNode(a,{type:"ios-arrow-back"})],2)),[[t.vShow,r.currentView==="date"]]):t.createCommentVNode("",!0),t.createVNode(o,{"date-panel-label":s.leftDatePanelLabel,"current-view":s.leftDatePanelView,"date-prefix-cls":r.datePrefixCls},null,8,["date-panel-label","current-view","date-prefix-cls"]),i.splitPanels||r.leftPickerTable!=="date-table"?(t.openBlock(),t.createElementBlock("span",{key:1,class:t.normalizeClass(e.iconBtnCls("next","-double")),onClick:n[2]||(n[2]=h=>s.nextYear("left"))},[t.createVNode(a,{type:"ios-arrow-forward"})],2)):t.createCommentVNode("",!0),i.splitPanels&&r.leftPickerTable==="date-table"?t.withDirectives((t.openBlock(),t.createElementBlock("span",{key:2,class:t.normalizeClass(e.iconBtnCls("next")),onClick:n[3]||(n[3]=h=>s.nextMonth("left"))},[t.createVNode(a,{type:"ios-arrow-forward"})],2)),[[t.vShow,r.currentView==="date"]]):t.createCommentVNode("",!0)],2),[[t.vShow,r.currentView!=="time"]]),r.currentView!=="time"?(t.openBlock(),t.createBlock(t.resolveDynamicComponent(r.leftPickerTable),{key:0,ref:"leftYearTable","table-date":r.leftPanelDate,"selection-mode":"range","disabled-date":e.disabledDate,"range-state":r.rangeState,"show-week-numbers":e.showWeekNumbers,"model-value":s.preSelecting.left?[r.dates[0]]:r.dates,"focused-date":e.focusedDate,onOnChangeRange:s.handleChangeRange,onOnPick:s.panelPickerHandlers.left,onOnPickClick:e.handlePickClick},null,40,["table-date","disabled-date","range-state","show-week-numbers","model-value","focused-date","onOnChangeRange","onOnPick","onOnPickClick"])):t.createCommentVNode("",!0)],2),[[t.vShow,!e.isTime]]),t.withDirectives(t.createElementVNode("div",{class:t.normalizeClass([r.prefixCls+"-content",r.prefixCls+"-content-right"])},[t.withDirectives(t.createElementVNode("div",{class:t.normalizeClass([r.datePrefixCls+"-header"])},[i.splitPanels||r.rightPickerTable!=="date-table"?(t.openBlock(),t.createElementBlock("span",{key:0,class:t.normalizeClass(e.iconBtnCls("prev","-double")),onClick:n[4]||(n[4]=h=>s.prevYear("right"))},[t.createVNode(a,{type:"ios-arrow-back"})],2)):t.createCommentVNode("",!0),i.splitPanels&&r.rightPickerTable==="date-table"?t.withDirectives((t.openBlock(),t.createElementBlock("span",{key:1,class:t.normalizeClass(e.iconBtnCls("prev")),onClick:n[5]||(n[5]=h=>s.prevMonth("right"))},[t.createVNode(a,{type:"ios-arrow-back"})],2)),[[t.vShow,r.currentView==="date"]]):t.createCommentVNode("",!0),t.createVNode(o,{"date-panel-label":s.rightDatePanelLabel,"current-view":s.rightDatePanelView,"date-prefix-cls":r.datePrefixCls},null,8,["date-panel-label","current-view","date-prefix-cls"]),t.createElementVNode("span",{class:t.normalizeClass(e.iconBtnCls("next","-double")),onClick:n[6]||(n[6]=h=>s.nextYear("right"))},[t.createVNode(a,{type:"ios-arrow-forward"})],2),r.rightPickerTable==="date-table"?t.withDirectives((t.openBlock(),t.createElementBlock("span",{key:2,class:t.normalizeClass(e.iconBtnCls("next")),onClick:n[7]||(n[7]=h=>s.nextMonth("right"))},[t.createVNode(a,{type:"ios-arrow-forward"})],2)),[[t.vShow,r.currentView==="date"]]):t.createCommentVNode("",!0)],2),[[t.vShow,r.currentView!=="time"]]),r.currentView!=="time"?(t.openBlock(),t.createBlock(t.resolveDynamicComponent(r.rightPickerTable),{key:0,ref:"rightYearTable","table-date":r.rightPanelDate,"selection-mode":"range","range-state":r.rangeState,"disabled-date":e.disabledDate,"show-week-numbers":e.showWeekNumbers,"model-value":s.preSelecting.right?[r.dates[r.dates.length-1]]:r.dates,"focused-date":e.focusedDate,onOnChangeRange:s.handleChangeRange,onOnPick:s.panelPickerHandlers.right,onOnPickClick:e.handlePickClick},null,40,["table-date","range-state","disabled-date","show-week-numbers","model-value","focused-date","onOnChangeRange","onOnPick","onOnPickClick"])):t.createCommentVNode("",!0)],2),[[t.vShow,!e.isTime]]),t.withDirectives(t.createElementVNode("div",{class:t.normalizeClass([r.prefixCls+"-content"])},[r.currentView==="time"?(t.openBlock(),t.createBlock(d,t.mergeProps({key:0,ref:"timePicker","model-value":r.dates,format:e.format,"time-disabled":s.timeDisabled},e.timePickerOptions,{onOnPick:s.handleRangePick,onOnPickClick:e.handlePickClick,onOnPickClear:e.handlePickClear,onOnPickSuccess:e.handlePickSuccess,onOnPickToggleTime:e.handleToggleTime}),null,16,["model-value","format","time-disabled","onOnPick","onOnPickClick","onOnPickClear","onOnPickSuccess","onOnPickToggleTime"])):t.createCommentVNode("",!0)],2),[[t.vShow,e.isTime]]),e.confirm?(t.openBlock(),t.createBlock(c,{key:0,"show-time":e.showTime,"is-time":e.isTime,"time-disabled":s.timeDisabled,onOnPickToggleTime:e.handleToggleTime,onOnPickClear:e.handlePickClear,onOnPickSuccess:e.handlePickSuccess},null,8,["show-time","is-time","time-disabled","onOnPickToggleTime","onOnPickClear","onOnPickSuccess"])):t.createCommentVNode("",!0)],2)],34)}var gg=S(ug,[["render",pg]]),Pa={name:"CalendarPicker",mixins:[ua],props:{type:{validator(e){return V(e,["year","month","date","daterange","datetime","datetimerange"])},default:"date"}},components:{DatePickerPanel:dg,RangeDatePickerPanel:gg},computed:{panel(){return this.type==="daterange"||this.type==="datetimerange"?"RangeDatePickerPanel":"DatePickerPanel"},ownPickerProps(){return this.options}}},yg={1:{xs:24},2:{xs:24,sm:12},3:{xs:24,sm:12,md:8},4:{xs:24,sm:12,md:6}};const $a={name:"Description",inject:["DescriptionListInstance"],props:{term:{type:String}},computed:{styles(){let e={};return this.DescriptionListInstance.gutter!==0&&(e={paddingLeft:this.DescriptionListInstance.gutter/2+"px",paddingRight:this.DescriptionListInstance.gutter/2+"px"}),e}},render(){let e;(this.term||this.$slots.term)&&(this.$slots.term?e=t.h("div",{class:"ivu-description-term"},this.$slots.term()):e=t.h("div",{class:"ivu-description-term"},this.term));const n=t.h("div",{class:"ivu-description-detail"},this.$slots.default()),i=e?[e,n]:[n];return t.h(gt,{...yg[this.DescriptionListInstance.col],style:this.styles},()=>i)}},Cg={name:"DescriptionList",components:{Row:Ot},provide(){return{DescriptionListInstance:this}},props:{layout:{validator(e){return V(e,["horizontal","vertical"])},default:"horizontal"},title:{type:String},gutter:{type:Number,default:32},col:{validator(e){return V(e,[1,2,3,4])},default:3}}},bg={key:0,class:"ivu-description-list-title"};function kg(e,n,i,l,r,s){const a=t.resolveComponent("Row");return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(["ivu-description-list",{"ivu-description-list-vertical":i.layout==="vertical"}])},[i.title||e.$slots.title?(t.openBlock(),t.createElementBlock("div",bg,[t.renderSlot(e.$slots,"title",{},()=>[t.createTextVNode(t.toDisplayString(i.title),1)])])):t.createCommentVNode("",!0),t.createVNode(a,{gutter:i.gutter},{default:t.withCtx(()=>[t.renderSlot(e.$slots,"default")]),_:3},8,["gutter"])],2)}var Oa=S(Cg,[["render",kg]]);const At="ivu-divider",wg={name:"Divider",props:{type:{type:String,default:"horizontal",validator(e){return V(e,["horizontal","vertical"])}},orientation:{type:String,default:"center",validator(e){return V(e,["left","right","center"])}},dashed:{type:Boolean,default:!1},size:{validator(e){return V(e,["small","default"])},default:"default"},plain:{type:Boolean,default:!1}},computed:{hasSlot(){return!!this.$slots.default},classes(){return[`${At}`,`${At}-${this.type}`,`${At}-${this.size}`,{[`${At}-with-text`]:this.hasSlot&&this.orientation==="center",[`${At}-with-text-${this.orientation}`]:this.hasSlot,[`${At}-dashed`]:!!this.dashed,[`${At}-plain`]:this.plain}]},slotClasses(){return[`${At}-inner-text`]}}};function Sg(e,n,i,l,r,s){return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(s.classes)},[s.hasSlot?(t.openBlock(),t.createElementBlock("span",{key:0,class:t.normalizeClass(s.slotClasses)},[t.renderSlot(e.$slots,"default")],2)):t.createCommentVNode("",!0)],2)}var Ki=S(wg,[["render",Sg]]),nr={props:{lockScroll:{type:Boolean,default:!0}},methods:{checkScrollBar(){if(!H)return;let e=window.innerWidth;if(!e){const n=document.documentElement.getBoundingClientRect();e=n.right-Math.abs(n.left)}this.bodyIsOverflowing=document.body.clientWidthn.style.display==="none"||n.classList.contains("fade-leave-to"))},setScrollBar(){H&&this.bodyIsOverflowing&&this.scrollBarWidth!==void 0&&(document.body.style.paddingRight=`${this.scrollBarWidth}px`)},resetScrollBar(){H&&(document.body.style.paddingRight="")},addScrollEffect(){!this.lockScroll||(this.checkScrollBar(),this.setScrollBar(),H&&(document.body.style.overflow="hidden"))},removeScrollEffect(){!this.lockScroll||H&&this.checkMaskInVisible()&&(document.body.style.overflow="",this.resetScrollBar())}}};const Fe="ivu-drawer",xg={name:"Drawer",mixins:[nr],components:{Icon:se},emits:["on-close","on-resize-width","on-visible-change","update:modelValue","on-drag"],provide(){return{DrawerInstance:this}},props:{modelValue:{type:Boolean,default:!1},title:{type:String},width:{type:[Number,String],default:256},height:{type:[Number,String],default:256},closable:{type:Boolean,default:!0},maskClosable:{type:Boolean,default:!0},mask:{type:Boolean,default:!0},maskStyle:{type:Object},styles:{type:Object},scrollable:{type:Boolean,default:!1},placement:{validator(e){return V(e,["left","right","top","bottom"])},default:"right"},zIndex:{type:Number,default:1e3},transfer:{type:Boolean,default(){const e=t.getCurrentInstance().appContext.config.globalProperties;return!e.$VIEWUI||e.$VIEWUI.transfer===""?!0:e.$VIEWUI.transfer}},className:{type:String},inner:{type:Boolean,default:!1},draggable:{type:Boolean,default:!1},beforeClose:Function},data(){return{prefixCls:Fe,visible:this.modelValue,wrapShow:!1,showHead:!0,canMove:!1,dragWidth:this.width,dragHeight:this.height,wrapperWidth:this.width,wrapperHeight:this.height,wrapperLeft:0,minWidth:256,minHeight:256,id:Ee(6),tableList:[],sliderList:[]}},computed:{wrapClasses(){return[`${Fe}-wrap`,{[`${Fe}-hidden`]:!this.wrapShow,[`${this.className}`]:!!this.className,[`${Fe}-no-mask`]:!this.mask,[`${Fe}-wrap-inner`]:this.inner,[`${Fe}-wrap-dragging`]:this.canMove}]},wrapStyles(){return{zIndex:this.zIndex}},mainStyles(){let e={};if(this.placement==="left"||this.placement==="right"){const n=parseInt(this.dragWidth),i={width:n<=100?`${n}%`:`${n}px`};Object.assign(e,i)}else{const n=parseInt(this.dragHeight),i={height:n<=100?`${n}%`:`${n}px`};Object.assign(e,i)}return e},contentClasses(){return[`${Fe}-content`,{[`${Fe}-content-no-mask`]:!this.mask}]},classes(){return[`${Fe}`,`${Fe}-${this.placement}`,{[`${Fe}-no-header`]:!this.showHead,[`${Fe}-inner`]:this.inner}]},maskClasses(){return[`${Fe}-mask`,{[`${Fe}-mask-inner`]:this.inner}]},transitionName(){return this.placement==="left"||this.placement==="right"?`move-${this.placement}`:this.placement==="top"?"move-up":"move-down"}},methods:{close(){if(!this.beforeClose)return this.handleClose();const e=this.beforeClose();e&&e.then?e.then(()=>{this.handleClose()}):this.handleClose()},handleClose(){this.visible=!1,this.$emit("update:modelValue",!1),this.$emit("on-close")},handleMask(){this.maskClosable&&this.mask&&this.close()},handleWrapClick(e){const n=e.target.getAttribute("class");n&&n.indexOf(`${Fe}-wrap`)>-1&&this.handleMask()},handleMousemove(e){if(!this.canMove||!this.draggable)return;this.handleSetWrapperWidth();const n=e.pageX-this.wrapperLeft;let i=this.placement==="right"?this.wrapperWidth-n:n;i=Math.max(i,parseFloat(this.minWidth)),e.atMin=i===parseFloat(this.minWidth),i<=100&&(i=i/this.wrapperWidth*100),this.dragWidth=i,this.$emit("on-resize-width",parseInt(this.dragWidth)),this.$emit("on-drag","dragging",parseInt(this.dragWidth))},handleSetWrapperWidth(){const{width:e,left:n}=this.$refs.drawer.getBoundingClientRect();this.wrapperWidth=e,this.wrapperLeft=n},handleMouseup(){!this.draggable||(this.canMove=!1,this.$emit("on-drag","end"))},handleTriggerMousedown(){this.canMove=!0,window.getSelection().removeAllRanges(),this.$emit("on-drag","start")},addDrawer(){const e=this.$root;e.drawerList||(e.drawerList=[]),e.drawerList.push({id:this.id,drawer:this})},removeDrawer(){const e=this.$root;if(!e.drawerList)return;const n=e.drawerList.findIndex(i=>i.id===this.id);e.drawerList.splice(n,1)}},mounted(){this.visible&&(this.wrapShow=!0);let e=!0;this.$slots.header===void 0&&!this.title&&(e=!1),this.showHead=e,this.addDrawer(),fe(document,"mousemove",this.handleMousemove),fe(document,"mouseup",this.handleMouseup),this.handleSetWrapperWidth()},beforeUnmount(){this.removeDrawer(),ue(document,"mousemove",this.handleMousemove),ue(document,"mouseup",this.handleMouseup),this.removeScrollEffect()},watch:{modelValue(e){this.visible=e},visible(e){e===!1?this.timer=setTimeout(()=>{this.wrapShow=!1,this.$root.drawerList.map(r=>r.drawer).filter(r=>r.id!==this.id).some(r=>r.visible&&!r.scrollable)||this.removeScrollEffect()},300):(this.timer&&clearTimeout(this.timer),this.wrapShow=!0,this.scrollable||this.addScrollEffect()),this.tableList.forEach(n=>{n.table.handleOnVisibleChange(e)}),this.sliderList.forEach(n=>{n.slider.handleOnVisibleChange(e)}),this.$emit("on-visible-change",e)},scrollable(e){e?this.removeScrollEffect():this.addScrollEffect()},title(e){this.$slots.header===void 0&&(this.showHead=!!e)},width(e){this.dragWidth=e},height(e){this.dragHeight=e}}},Bg={ref:"drawer"},Vg=t.createElementVNode("div",{class:"ivu-drawer-drag-move-trigger"},[t.createElementVNode("div",{class:"ivu-drawer-drag-move-trigger-point"},[t.createElementVNode("i"),t.createElementVNode("i"),t.createElementVNode("i"),t.createElementVNode("i"),t.createElementVNode("i")])],-1);function Eg(e,n,i,l,r,s){const a=t.resolveComponent("Icon");return t.openBlock(),t.createBlock(t.Teleport,{to:"body",disabled:!i.transfer},[t.createElementVNode("div",Bg,[t.createVNode(t.Transition,{name:"fade"},{default:t.withCtx(()=>[i.mask?t.withDirectives((t.openBlock(),t.createElementBlock("div",{key:0,class:t.normalizeClass(s.maskClasses),style:t.normalizeStyle(i.maskStyle),onClick:n[0]||(n[0]=(...o)=>s.handleMask&&s.handleMask(...o))},null,6)),[[t.vShow,r.visible]]):t.createCommentVNode("",!0)]),_:1}),t.createElementVNode("div",{class:t.normalizeClass(s.wrapClasses),style:t.normalizeStyle(s.wrapStyles),onClick:n[3]||(n[3]=(...o)=>s.handleWrapClick&&s.handleWrapClick(...o))},[t.createVNode(t.Transition,{name:s.transitionName},{default:t.withCtx(()=>[t.withDirectives(t.createElementVNode("div",{class:t.normalizeClass(s.classes),style:t.normalizeStyle(s.mainStyles)},[t.createElementVNode("div",{class:t.normalizeClass(s.contentClasses),ref:"content"},[i.closable?(t.openBlock(),t.createElementBlock("a",{key:0,class:"ivu-drawer-close",onClick:n[1]||(n[1]=(...o)=>s.close&&s.close(...o))},[t.renderSlot(e.$slots,"close",{},()=>[t.createVNode(a,{type:"ios-close"})])])):t.createCommentVNode("",!0),r.showHead?(t.openBlock(),t.createElementBlock("div",{key:1,class:t.normalizeClass([r.prefixCls+"-header"])},[t.renderSlot(e.$slots,"header",{},()=>[t.createElementVNode("div",{class:t.normalizeClass([r.prefixCls+"-header-inner"])},t.toDisplayString(i.title),3)])],2)):t.createCommentVNode("",!0),t.createElementVNode("div",{class:t.normalizeClass([r.prefixCls+"-body"]),style:t.normalizeStyle(i.styles)},[t.renderSlot(e.$slots,"default")],6)],2),i.draggable&&(i.placement==="left"||i.placement==="right")?(t.openBlock(),t.createElementBlock("div",{key:0,class:t.normalizeClass(["ivu-drawer-drag","ivu-drawer-drag-"+i.placement]),onMousedown:n[2]||(n[2]=(...o)=>s.handleTriggerMousedown&&s.handleTriggerMousedown(...o))},[t.renderSlot(e.$slots,"trigger",{},()=>[Vg])],34)):t.createCommentVNode("",!0)],6),[[t.vShow,r.visible]])]),_:3},8,["name"])],6)],512)],8,["disabled"])}var La=S(xg,[["render",Eg]]);const qi="ivu-dropdown-item",Tg={name:"DropdownItem",props:{name:{type:[String,Number]},disabled:{type:Boolean,default:!1},selected:{type:Boolean,default:!1},divided:{type:Boolean,default:!1}},computed:{classes(){return[`${qi}`,{[`${qi}-disabled`]:this.disabled,[`${qi}-selected`]:this.selected,[`${qi}-divided`]:this.divided}]}},methods:{handleClick(){if(this.disabled)return;const e=Ne(this,"Dropdown");this.$parent&&this.$parent.$options.name==="Dropdown"?this.$parent.handleHaschildClick():e&&e.$options.name==="Dropdown"&&e.handleHoverClick(),e.handleItemClick(this.name)}}};function Ng(e,n,i,l,r,s){return t.openBlock(),t.createElementBlock("li",{class:t.normalizeClass(s.classes),onClick:n[0]||(n[0]=(...a)=>s.handleClick&&s.handleClick(...a))},[t.renderSlot(e.$slots,"default")],2)}var Fa=S(Tg,[["render",Ng]]);const Ig=(e="")=>e.split("").reduce((n,i)=>{const l=i.charCodeAt(0);return l>=0&&l<=128?n+1:n+2},0),_g=(e="",n)=>{let i=0;return e.split("").reduce((l,r)=>{const s=r.charCodeAt(0);return s>=0&&s<=128?i+=1:i+=2,i<=n?l+r:l},"")},Dg={name:"Ellipsis",components:{Tooltip:xt},emits:["on-show","on-hide"],props:{text:{type:String},height:{type:Number},lines:{type:Number},length:{type:Number},fullWidthRecognition:{type:Boolean,default:!1},autoResize:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},tooltip:{type:Boolean,default:!1},transfer:{type:Boolean,default(){const e=t.getCurrentInstance().appContext.config.globalProperties;return!e.$VIEWUI||e.$VIEWUI.transfer===""?!1:e.$VIEWUI.transfer}},theme:{validator(e){return V(e,["dark","light"])},default:"dark"},maxWidth:{type:[String,Number],default:250},placement:{validator(e){return V(e,["top","top-start","top-end","bottom","bottom-start","bottom-end","left","left-start","left-end","right","right-start","right-end"])},default:"bottom"}},data(){return{oversize:!1,computedReady:!1,computedText:""}},watch:{disabled(){this.init()},text(){this.init()},height(){this.init()}},mounted(){this.init()},methods:{init(){this.disabled||(this.computeText(),this.limitShow())},computeText(){this.oversize=!1,this.computedReady=!1,t.nextTick(()=>{let e=this.$refs.text,n=this.$el,i=this.$refs.more,l=1e3,r=this.text,s=this.height;if(!s&&this.lines&&(s=parseInt(ut(n,"lineHeight"),10)*this.lines),e){if(this.length)(this.fullWidthRecognition?Ig(r):r.length)>this.length&&(this.oversize=!0,i.style.display="inline-block",r=this.fullWidthRecognition?_g(r,this.length):r.slice(0,this.length));else if(n.offsetHeight>s)for(this.oversize=!0,i.style.display="inline-block";n.offsetHeight>s&&l>0;)n.offsetHeight>s*3?e.innerText=r=r.substring(0,Math.floor(r.length/2)):e.innerText=r=r.substring(0,r.length-1),l--}this.computedText=r})},limitShow(){this.computedReady=!0,t.nextTick(()=>{let e=this.$refs.text,n=this.$el;e&&(e.innerText=this.computedText,n.offsetHeight>this.height?this.$emit("on-hide"):this.$emit("on-show"))})}}},Mg={class:"ivu-ellipsis"},zg={class:"ivu-ellipsis-more",ref:"more"},Pg={class:"ivu-ellipsis-more",ref:"more"},$g={key:1,class:"ivu-ellipsis-hidden"},Og={class:"ivu-ellipsis-more",ref:"more"};function Lg(e,n,i,l,r,s){const a=t.resolveComponent("Tooltip");return t.openBlock(),t.createElementBlock("div",Mg,[t.renderSlot(e.$slots,"prefix",{class:"ivu-ellipsis-prefix"}),r.computedReady?(t.openBlock(),t.createElementBlock(t.Fragment,{key:0},[i.tooltip?(t.openBlock(),t.createBlock(a,{key:0,content:i.text,theme:i.theme,"max-width":i.maxWidth,placement:i.placement,transfer:i.transfer},{default:t.withCtx(()=>[t.createElementVNode("span",{class:"ivu-ellipsis-text",ref:"text"},t.toDisplayString(i.text),513),t.withDirectives(t.createElementVNode("span",zg,[t.renderSlot(e.$slots,"more",{},()=>[t.createTextVNode("...")])],512),[[t.vShow,r.oversize]]),t.renderSlot(e.$slots,"suffix",{class:"ivu-ellipsis-suffix"})]),_:3},8,["content","theme","max-width","placement","transfer"])):(t.openBlock(),t.createElementBlock(t.Fragment,{key:1},[t.createElementVNode("span",{class:"ivu-ellipsis-text",ref:"text"},t.toDisplayString(i.text),513),t.withDirectives(t.createElementVNode("span",Pg,[t.renderSlot(e.$slots,"more",{},()=>[t.createTextVNode("...")])],512),[[t.vShow,r.oversize]]),t.renderSlot(e.$slots,"suffix",{class:"ivu-ellipsis-suffix"})],64))],64)):(t.openBlock(),t.createElementBlock("div",$g,[t.createElementVNode("span",{class:"ivu-ellipsis-text",ref:"text"},t.toDisplayString(i.text),513),t.withDirectives(t.createElementVNode("span",Og,[t.renderSlot(e.$slots,"more",{},()=>[t.createTextVNode("...")])],512),[[t.vShow,r.oversize]]),t.renderSlot(e.$slots,"suffix",{class:"ivu-ellipsis-suffix"})]))])}var Aa=S(Dg,[["render",Lg]]);const Ra={name:"Email",mixins:[jn],data(){return{className:"ivu-login-mail",prefix:"ios-mail-outline",placeholder:"\u8BF7\u8F93\u5165\u90AE\u7BB1",type:"email"}},props:{rules:{type:[Object,Array],default(){return[{required:!0,message:Ls.Email,trigger:"change"},{type:"email",message:"\u8F93\u5165\u7684\u90AE\u7BB1\u683C\u5F0F\u4E0D\u6B63\u786E\uFF01",trigger:"change"}]}}}};var Yi={403:{img:"https://file.iviewui.com/iview-pro/icon-403.svg",imgColor:"https://file.iviewui.com/iview-pro/icon-403-color.svg",title:"403",desc:"\u62B1\u6B49\uFF0C\u4F60\u65E0\u6743\u8BBF\u95EE\u8BE5\u9875\u9762"},404:{img:"https://file.iviewui.com/iview-pro/icon-404.svg",imgColor:"https://file.iviewui.com/iview-pro/icon-404-color.svg",title:"404",desc:"\u62B1\u6B49\uFF0C\u4F60\u8BBF\u95EE\u7684\u9875\u9762\u4E0D\u5B58\u5728"},500:{img:"https://file.iviewui.com/iview-pro/icon-500.svg",imgColor:"https://file.iviewui.com/iview-pro/icon-500-color.svg",title:"500",desc:"\u62B1\u6B49\uFF0C\u670D\u52A1\u5668\u51FA\u9519\u4E86"}};const Fg={name:"Exception",components:{Button:Oe},props:{type:{validator(e){return V(e,["403","404","500",403,404,500])},default:"404"},title:{type:String},desc:{type:String},img:{type:String},imgColor:{type:Boolean,default:!1},backText:{type:String,default:"\u8FD4\u56DE\u9996\u9875"},redirect:{type:String,default:"/"}},computed:{imgPath(){return this.img?this.img:this.imgColor?Yi[this.type].imgColor:Yi[this.type].img},titleText(){return this.title?this.title:Yi[this.type].title},descText(){return this.desc?this.desc:Yi[this.type].desc}}},Ag={class:"ivu-exception"},Rg={class:"ivu-exception-img"},Hg={class:"ivu-exception-content"},Wg={class:"ivu-exception-content-desc"},Ug={class:"ivu-exception-content-actions"};function vg(e,n,i,l,r,s){const a=t.resolveComponent("Button");return t.openBlock(),t.createElementBlock("div",Ag,[t.createElementVNode("div",Rg,[t.createElementVNode("div",{class:"ivu-exception-img-element",style:t.normalizeStyle({"background-image":"url("+s.imgPath+")"})},null,4)]),t.createElementVNode("div",Hg,[t.createElementVNode("h1",null,[t.renderSlot(e.$slots,"title",{},()=>[t.createTextVNode(t.toDisplayString(s.titleText),1)])]),t.createElementVNode("div",Wg,[t.renderSlot(e.$slots,"desc",{},()=>[t.createTextVNode(t.toDisplayString(s.descText),1)])]),t.createElementVNode("div",Ug,[t.renderSlot(e.$slots,"actions",{},()=>[t.createVNode(a,{to:i.redirect,type:"primary",size:"large"},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(i.backText),1)]),_:1},8,["to"])])])])])}var Ha=S(Fg,[["render",vg]]);const jg="ivu-layout",Kg={name:"Footer",computed:{wrapClasses(){return`${jg}-footer`}}};function qg(e,n,i,l,r,s){return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(s.wrapClasses)},[t.renderSlot(e.$slots,"default")],2)}var ir=S(Kg,[["render",qg]]);const Yg={name:"FooterToolbar",props:{extra:{type:String}}},Gg={class:"ivu-footer-toolbar"},Jg={key:0,class:"ivu-footer-toolbar-left"},Xg={class:"ivu-footer-toolbar-right"};function Zg(e,n,i,l,r,s){return t.openBlock(),t.createElementBlock("div",Gg,[i.extra||e.$slots.extra?(t.openBlock(),t.createElementBlock("div",Jg,[t.renderSlot(e.$slots,"extra",{},()=>[t.createTextVNode(t.toDisplayString(i.extra),1)])])):t.createCommentVNode("",!0),t.createElementVNode("div",Xg,[t.renderSlot(e.$slots,"default")])])}var Wa=S(Yg,[["render",Zg]]);const Gi="ivu-form",Qg={name:"iForm",emits:["on-validate"],provide(){return{FormInstance:this}},props:{model:{type:Object},rules:{type:Object},labelWidth:{type:Number},labelPosition:{validator(e){return V(e,["left","right","top"])},default:"right"},inline:{type:Boolean,default:!1},showMessage:{type:Boolean,default:!0},autocomplete:{validator(e){return V(e,["on","off"])},default:"off"},hideRequiredMark:{type:Boolean,default:!1},labelColon:{type:[Boolean,String],default:!1},disabled:{type:Boolean,default:!1}},data(){return{fields:[]}},computed:{classes(){return[`${Gi}`,`${Gi}-label-${this.labelPosition}`,{[`${Gi}-inline`]:this.inline,[`${Gi}-hide-required-mark`]:this.hideRequiredMark}]},colon(){let e="";return this.labelColon&&(e=typeof this.labelColon=="boolean"?":":this.labelColon),e}},methods:{resetFields(){this.fields.forEach(e=>{e.resetField()})},validate(e){return new Promise(n=>{let i=!0,l=0;this.fields.length===0&&(n(i),typeof e=="function"&&e(i)),this.fields.forEach(r=>{r.validate("",s=>{s&&(i=!1),++l===this.fields.length&&(n(i),typeof e=="function"&&e(i))})})})},validateField(e,n){const i=this.fields.filter(l=>l.prop===e)[0];if(!i)throw new Error("[View UI warn]: must call validateField with valid prop string!");i.validate("",n)},addField(e){e&&this.fields.push(e)},removeField(e){e.prop&&this.fields.splice(this.fields.indexOf(e),1)}},watch:{rules(){this.validate()}}},ey=["autocomplete"];function ty(e,n,i,l,r,s){return t.openBlock(),t.createElementBlock("form",{class:t.normalizeClass(s.classes),autocomplete:i.autocomplete},[t.renderSlot(e.$slots,"default")],10,ey)}var Ji=S(Qg,[["render",ty]]);const ny={name:"GlobalFooter",components:{Icon:se},props:{links:{type:Array,default(){return[]}},copyright:{type:String}}},iy={class:"ivu-global-footer"},sy={key:0,class:"ivu-global-footer-links"},ry=["href","target","title"],ly={key:1,class:"ivu-global-footer-copyright"};function ay(e,n,i,l,r,s){const a=t.resolveComponent("Icon");return t.openBlock(),t.createElementBlock("footer",iy,[i.links.length||e.$slots.links?(t.openBlock(),t.createElementBlock("div",sy,[t.renderSlot(e.$slots,"links",{},()=>[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(i.links,o=>(t.openBlock(),t.createElementBlock("a",{href:o.href,target:o.blankTarget?"_blank":"_self",key:o.key,title:o.title},[o.icon?(t.openBlock(),t.createBlock(a,{key:0,type:o.icon},null,8,["type"])):o.customIcon?(t.openBlock(),t.createBlock(a,{key:1,custom:o.customIcon},null,8,["custom"])):t.createCommentVNode("",!0),t.createTextVNode(" "+t.toDisplayString(o.title),1)],8,ry))),128))])])):t.createCommentVNode("",!0),i.copyright||e.$slots.copyright?(t.openBlock(),t.createElementBlock("div",ly,[t.renderSlot(e.$slots,"copyright",{},()=>[t.createTextVNode(t.toDisplayString(i.copyright),1)])])):t.createCommentVNode("",!0)])}var Ua=S(ny,[["render",ay]]),sr={exports:{}},oy=sr.exports={};oy.forEach=function(e,n){for(var i=0;i";while(a[0]);return r>4?r:l}();return e===i},va.isLegacyOpera=function(){return!!window.opera};var ja={exports:{}},my=ja.exports={};my.getOption=py;function py(e,n,i){var l=e[n];return l==null&&i!==void 0?i:l}var Ka=ja.exports,gy=function(n){n=n||{};var i=n.reporter,l=Ka.getOption(n,"async",!0),r=Ka.getOption(n,"auto",!0);r&&!l&&(i&&i.warn("Invalid options combination. auto=true and async=false is invalid. Setting async=true."),l=!0);var s=qa(),a,o=!1;function d(C,u){!o&&r&&l&&s.size()===0&&m(),s.add(C,u)}function c(){for(o=!0;s.size();){var C=s;s=qa(),C.process()}o=!1}function h(C){o||(C===void 0&&(C=l),a&&(g(a),a=null),C?m():c())}function m(){a=y(c)}function g(C){var u=clearTimeout;return u(C)}function y(C){var u=function(x){return setTimeout(x,0)};return u(C)}return{add:d,force:h}};function qa(){var e={},n=0,i=0,l=0;function r(o,d){d||(d=o,o=0),o>i?i=o:o div::-webkit-scrollbar { "+c(["display: none"])+` } + +`,R+="."+Q+" { "+c(["-webkit-animation-duration: 0.1s","animation-duration: 0.1s","-webkit-animation-name: "+U,"animation-name: "+U])+` } +`,R+="@-webkit-keyframes "+U+` { 0% { opacity: 1; } 50% { opacity: 0; } 100% { opacity: 1; } } +`,R+="@keyframes "+U+" { 0% { opacity: 1; } 50% { opacity: 0; } 100% { opacity: 1; } }",E(R)}}function g(T){T.className+=" "+o+"_animation_active"}function y(T,k,M){if(T.addEventListener)T.addEventListener(k,M);else if(T.attachEvent)T.attachEvent("on"+k,M);else return n.error("[scroll] Don't know how to add event listeners.")}function C(T,k,M){if(T.removeEventListener)T.removeEventListener(k,M);else if(T.detachEvent)T.detachEvent("on"+k,M);else return n.error("[scroll] Don't know how to remove event listeners.")}function u(T){return l(T).container.childNodes[0].childNodes[0].childNodes[0]}function x(T){return l(T).container.childNodes[0].childNodes[0].childNodes[1]}function I(T,k){var M=l(T).listeners;if(!M.push)throw new Error("Cannot add listener to an element that is not detectable.");l(T).listeners.push(k)}function O(T,k,M){M||(M=k,k=T,T=null),T=T||{};function E(){if(T.debug){var W=Array.prototype.slice.call(arguments);if(W.unshift(r.get(k),"Scroll: "),n.log.apply)n.log.apply(null,W);else for(var ne=0;ne=n||E<0||m&&U>=s}function I(){var M=ar();if(x(M))return O(M);o=setTimeout(I,u(M))}function O(M){return o=void 0,g&&l?y(M):(l=r=void 0,a)}function v(){o!==void 0&&clearTimeout(o),c=0,l=d=r=o=void 0}function T(){return o===void 0?a:O(ar())}function k(){var M=ar(),E=x(M);if(l=arguments,r=this,d=M,E){if(o===void 0)return C(d);if(m)return o=setTimeout(I,n),y(d)}return o===void 0&&(o=setTimeout(I,n)),a}return k.cancel=v,k.flush=T,k}function jy(e,n,i){var l=!0,r=!0;if(typeof e!="function")throw new TypeError(Qa);return Xi(i)&&(l="leading"in i?!!i.leading:l,r="trailing"in i?!!i.trailing:r),vy(e,n,{leading:l,maxWait:n,trailing:r})}function Xi(e){var n=typeof e;return!!e&&(n=="object"||n=="function")}function Ky(e){return!!e&&typeof e=="object"}function qy(e){return typeof e=="symbol"||Ky(e)&&Hy.call(e)==Dy}function to(e){if(typeof e=="number")return e;if(qy(e))return eo;if(Xi(e)){var n=typeof e.valueOf=="function"?e.valueOf():e;e=Xi(n)?n+"":n}if(typeof e!="string")return e===0?e:+e;e=e.replace(My,"");var i=Py.test(e);return i||$y.test(e)?Oy(e.slice(2),i?2:8):zy.test(e)?eo:+e}var Zi=jy;const Yy={name:"Grid",provide(){return{GridInstance:this}},props:{col:{type:Number,default:3},square:{type:Boolean,default:!1},padding:{type:String,default:"24px"},center:{type:Boolean,default:!1},border:{type:Boolean,default:!0},hover:{type:Boolean,default:!1}},data(){return{resizeCount:0,handleResize:()=>{}}},computed:{classes(){return{"ivu-grid-center":this.center,"ivu-grid-border":this.border,"ivu-grid-hover":this.hover}}},methods:{onResize(){this.resizeCount++}},mounted(){this.handleResize=Zi(this.onResize,150,{leading:!1}),this.observer=Nn(),this.observer.listenTo(this.$refs.grid,this.handleResize)},beforeUnmount(){this.observer.removeListener(this.$refs.grid,this.handleResize)}};function Gy(e,n,i,l,r,s){return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(["ivu-grid",s.classes]),ref:"grid"},[t.renderSlot(e.$slots,"default")],2)}var no=S(Yy,[["render",Gy]]);const Jy={name:"GridItem",inject:["GridInstance"],data(){return{height:0}},computed:{col(){return this.GridInstance.col},square(){return this.GridInstance.square},styles(){const e={width:`${100/this.col}%`};return this.height&&this.square&&(e.height=`${this.height}px`),e},mainStyles(){return{padding:this.GridInstance.padding}}},watch:{col(){t.nextTick(()=>{this.handleChangeHeight()})},square(){this.handleChangeHeight()},"GridInstance.resizeCount"(){this.handleChangeHeight()}},methods:{handleChangeHeight(){if(this.square){const e=this.$refs.col;this.height=parseFloat(ut(e,"width"))}}},mounted(){this.handleChangeHeight()}};function Xy(e,n,i,l,r,s){return t.openBlock(),t.createElementBlock("div",{class:"ivu-grid-item",style:t.normalizeStyle(s.styles),ref:"col"},[t.createElementVNode("div",{class:"ivu-grid-item-main",style:t.normalizeStyle(s.mainStyles)},[t.renderSlot(e.$slots,"default")],4)],4)}var io=S(Jy,[["render",Xy]]);const Zy="ivu-layout",Qy={name:"Header",computed:{wrapClasses(){return`${Zy}-header`}}};function eC(e,n,i,l,r,s){return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(s.wrapClasses)},[t.renderSlot(e.$slots,"default")],2)}var or=S(Qy,[["render",eC]]);const J={MAC_ENTER:3,BACKSPACE:8,TAB:9,NUM_CENTER:12,ENTER:13,SHIFT:16,CTRL:17,ALT:18,PAUSE:19,CAPS_LOCK:20,ESC:27,SPACE:32,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40,PRINT_SCREEN:44,INSERT:45,DELETE:46,ZERO:48,ONE:49,TWO:50,THREE:51,FOUR:52,FIVE:53,SIX:54,SEVEN:55,EIGHT:56,NINE:57,QUESTION_MARK:63,A:65,B:66,C:67,D:68,E:69,F:70,G:71,H:72,I:73,J:74,K:75,L:76,M:77,N:78,O:79,P:80,Q:81,R:82,S:83,T:84,U:85,V:86,W:87,X:88,Y:89,Z:90,META:91,WIN_KEY_RIGHT:92,CONTEXT_MENU:93,NUM_ZERO:96,NUM_ONE:97,NUM_TWO:98,NUM_THREE:99,NUM_FOUR:100,NUM_FIVE:101,NUM_SIX:102,NUM_SEVEN:103,NUM_EIGHT:104,NUM_NINE:105,NUM_MULTIPLY:106,NUM_PLUS:107,NUM_MINUS:109,NUM_PERIOD:110,NUM_DIVISION:111,F1:112,F2:113,F3:114,F4:115,F5:116,F6:117,F7:118,F8:119,F9:120,F10:121,F11:122,F12:123,NUMLOCK:144,SEMICOLON:186,DASH:189,EQUALS:187,COMMA:188,PERIOD:190,SLASH:191,APOSTROPHE:192,SINGLE_QUOTE:222,OPEN_SQUARE_BRACKET:219,BACKSLASH:220,CLOSE_SQUARE_BRACKET:221,WIN_KEY:224,MAC_FF_META:224,WIN_IME:229,isTextModifyingKeyEvent(e){const{keyCode:n}=e;if(e.altKey&&!e.ctrlKey||e.metaKey||n>=J.F1&&n<=J.F12)return!1;switch(n){case J.ALT:case J.CAPS_LOCK:case J.CONTEXT_MENU:case J.CTRL:case J.DOWN:case J.END:case J.ESC:case J.HOME:case J.INSERT:case J.LEFT:case J.MAC_FF_META:case J.META:case J.NUMLOCK:case J.NUM_CENTER:case J.PAGE_DOWN:case J.PAGE_UP:case J.PAUSE:case J.PRINT_SCREEN:case J.RIGHT:case J.SHIFT:case J.UP:case J.WIN_KEY:case J.WIN_KEY_RIGHT:return!1;default:return!0}},isCharacterKey(e){if(e>=J.ZERO&&e<=J.NINE||e>=J.NUM_ZERO&&e<=J.NUM_MULTIPLY||e>=J.A&&e<=J.Z||window.navigator.userAgent.indexOf("WebKit")!==-1&&e===0)return!0;switch(e){case J.SPACE:case J.QUESTION_MARK:case J.NUM_PLUS:case J.NUM_MINUS:case J.NUM_PERIOD:case J.NUM_DIVISION:case J.SEMICOLON:case J.DASH:case J.EQUALS:case J.COMMA:case J.PERIOD:case J.SLASH:case J.APOSTROPHE:case J.SINGLE_QUOTE:case J.OPEN_SQUARE_BRACKET:case J.BACKSLASH:case J.CLOSE_SQUARE_BRACKET:return!0;default:return!1}}},Wt="ivu-spin",tC={name:"Spin",mixins:[nr],props:{size:{validator(e){return V(e,["small","large","default"])},default(){const e=t.getCurrentInstance().appContext.config.globalProperties;return!e.$VIEWUI||e.$VIEWUI.size===""?"default":e.$VIEWUI.size}},fix:{type:Boolean,default:!1},fullscreen:{type:Boolean,default:!1},show:{type:Boolean,default:!0}},data(){return{showText:!1,visible:!1}},computed:{classes(){return[`${Wt}`,{[`${Wt}-${this.size}`]:!!this.size,[`${Wt}-fix`]:this.fix,[`${Wt}-show-text`]:this.showText,[`${Wt}-fullscreen`]:this.fullscreen}]},mainClasses(){return`${Wt}-main`},dotClasses(){return`${Wt}-dot`},textClasses(){return`${Wt}-text`},fullscreenVisible(){return this.fullscreen?this.visible:!0}},watch:{visible(e){e?this.addScrollEffect():this.removeScrollEffect()}},mounted(){this.showText=!!this.$slots.default&&this.$slots.default().some(e=>e.children&&e.children.length)}};function nC(e,n,i,l,r,s){return t.openBlock(),t.createBlock(t.Transition,{name:"fade"},{default:t.withCtx(()=>[s.fullscreenVisible&&i.show?(t.openBlock(),t.createElementBlock("div",{key:0,class:t.normalizeClass(s.classes)},[t.createElementVNode("div",{class:t.normalizeClass(s.mainClasses)},[t.createElementVNode("span",{class:t.normalizeClass(s.dotClasses)},null,2),t.createElementVNode("div",{class:t.normalizeClass(s.textClasses)},[t.renderSlot(e.$slots,"default")],2)],2)],2)):t.createCommentVNode("",!0)]),_:3})}var Ge=S(tC,[["render",nC]]);const iC={name:"ImagePreview",mixins:[ge],components:{Icon:se,Spin:Ge,Row:Ot,Col:gt},inheritAttrs:!1,emits:["update:modelValue","on-close","on-switch"],props:{modelValue:{type:Boolean,default:!1},transfer:{type:Boolean,default(){const e=t.getCurrentInstance().appContext.config.globalProperties;return!e.$VIEWUI||e.$VIEWUI.transfer===""?!1:e.$VIEWUI.transfer}},maskClosable:{type:Boolean,default:!0},previewList:{type:Array,default(){return[]}},initialIndex:{type:Number,default:0},infinite:{type:Boolean,default:!0},toolbar:{type:Array,default(){const e=t.getCurrentInstance().appContext.config.globalProperties;return!e.$VIEWUI||!e.$VIEWUI.image||e.$VIEWUI.image.toolbar===""?["zoomIn","zoomOut","original","rotateLeft","rotateRight","download"]:e.$VIEWUI.image.toolbar}}},data(){return{currentIndex:0,scale:1,degree:0,translate:{x:0,y:0},startX:0,startY:0,transition:!0,original:!1,prevOverflow:"",status:"loading",zIndex:1e3,maskIndex:this.getMaskIndex(),downloading:!1}},computed:{imgClasses(){return["ivu-image-preview-image",{["ivu-image-preview-grabbing"]:!this.transition,["ivu-image-preview-hidden"]:this.status==="failed",["ivu-image-preview-transition"]:this.transition,["ivu-image-preview-limit"]:!this.original}]},imageStyle(){let e=this.translate.x/this.scale,n=this.translate.y/this.scale;const i=this.degree%360;return[90,-270].includes(i)&&([e,n]=[n,-e]),[180,-180].includes(i)&&([e,n]=[-e,-n]),[270,-90].includes(i)&&([e,n]=[-n,e]),{transform:` + scale(${this.scale}) + rotate(${this.degree}deg) + translate(${e}px, ${n}px) + `}},maskStyle(){return{zIndex:this.maskIndex+this.zIndex}},leftClasses(){return["ivu-image-preview-arrow-left",{["ivu-image-preview-arrow-disabled"]:this.hasLeftSwitchEnd}]},rightClasses(){return["ivu-image-preview-arrow-right",{["ivu-image-preview-arrow-disabled"]:this.hasRightSwitchEnd}]},hasRightSwitchEnd(){const{currentIndex:e,infinite:n,previewList:i}=this,l=i.length;return n?!1:e>=l-1},hasLeftSwitchEnd(){const{currentIndex:e,infinite:n}=this;return n?!1:e===0},currentSrc(){return this.previewList[this.currentIndex]},failLang(){return this.t("i.image.fail")}},methods:{resetStyle(){this.scale=1,this.degree=0,this.translate.x=0,this.translate.y=0},handleClose(){this.$emit("update:modelValue",!1),this.$emit("on-close")},handleClickMask(){!this.maskClosable||this.handleClose()},handleSwitch(e){e?this.currentIndex+1===this.previewList.length?this.infinite&&(this.resetStyle(),this.currentIndex=0):(this.resetStyle(),this.currentIndex+=1):this.currentIndex===0?this.infinite&&(this.resetStyle(),this.currentIndex=this.previewList.length-1):(this.resetStyle(),this.currentIndex-=1),this.$emit("on-switch",{currentIndex:this.currentIndex})},handleOperation(e){e==="zoomIn"&&this.scale<6&&(this.scale+=.25),e==="zoomOut"&&this.scale>.25&&(this.scale-=.25),e==="rotateLeft"&&(this.degree-=90),e==="rotateRight"&&(this.degree+=90),e==="original"&&(this.original=!this.original,this.transition=!1,this.resetStyle(),setTimeout(()=>{this.transition=!0},0)),e==="download"&&(this.downloading=!0,sd(this.previewList[this.currentIndex]).then(()=>{this.downloading=!1}).catch(()=>{this.downloading=!1}))},handleKeydown(e){if(!this.modelValue)return;const{keyCode:n}=e;n===J.LEFT&&this.handleSwitch(!1),n===J.RIGHT&&this.handleSwitch(!0),n===J.UP&&this.handleOperation("zoomIn"),n===J.DOWN&&this.handleOperation("zoomOut"),n===J.SPACE&&(e.preventDefault(),this.original=!this.original)},handleKeyup(e){if(!this.modelValue)return;const{keyCode:n}=e;n===J.ESC&&this.handleClose()},handleWheel(e){if(!this.modelValue)return;const{deltaY:n}=e;this.handleOperation(n<0?"zoomIn":"zoomOut")},handleMousedown(e){const{pageX:n,pageY:i,which:l}=e;l===1&&(this.startX=n,this.startY=i,this.transition=!1,fe(document,"mousemove",this.handleMousemove),fe(document,"mouseup",this.handleMouseup))},handleMousemove:Zi(function(e){e.stopPropagation();const{pageX:n,pageY:i}=e;this.translate.x+=n-this.startX,this.translate.y+=i-this.startY,this.startX=n,this.startY=i}),handleMouseup(){this.transition=!0,ue(document,"mousemove",this.handleMousemove),ue(document,"mouseup",this.handleMouseup)},getBodyOverflow(){return H?document.body.style.overflow:""},setBodyOverflow(e){!H||(document.body.style.overflow=e)},handleImageLoad(){this.status="loaded"},handleImageError(){this.status="failed"},getMaskIndex(){return tn(),zt}},watch:{modelValue(e){e?(this.currentIndex=this.initialIndex,this.resetStyle(),this.original=!1,this.prevOverflow=this.getBodyOverflow(),this.setBodyOverflow("hidden"),this.maskIndex=this.getMaskIndex()):this.setBodyOverflow(this.prevOverflow)},currentIndex(){this.status="loading"}},mounted(){fe(document,"keydown",this.handleKeydown),fe(document,"keyup",this.handleKeyup),fe(document,"wheel",this.handleWheel)},beforeUnmount(){ue(document,"keydown",this.handleKeydown),ue(document,"keyup",this.handleKeyup),ue(document,"wheel",this.handleWheel)}},sC={key:1,class:"ivu-image-preview-fail"},rC=["src"],lC=[t.createElementVNode("path",{d:"M637 443H519V309c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v134H325c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h118v134c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V519h118c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8z","p-id":"7198",fill:"#ffffff"},null,-1),t.createElementVNode("path",{d:"M921 867L775 721c122.1-148.9 113.6-369.5-26-509-148-148.1-388.4-148.1-537 0-148.1 148.6-148.1 389 0 537 139.5 139.6 360.1 148.1 509 26l146 146c3.2 2.8 8.3 2.8 11 0l43-43c2.8-2.7 2.8-7.8 0-11zM696 696c-118.8 118.7-311.2 118.7-430 0-118.7-118.8-118.7-311.2 0-430 118.8-118.7 311.2-118.7 430 0 118.7 118.8 118.7 311.2 0 430z","p-id":"7199",fill:"#ffffff"},null,-1)],aC=[t.createElementVNode("path",{d:"M637 443H325c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h312c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8z","p-id":"7413",fill:"#ffffff"},null,-1),t.createElementVNode("path",{d:"M921 867L775 721c122.1-148.9 113.6-369.5-26-509-148-148.1-388.4-148.1-537 0-148.1 148.6-148.1 389 0 537 139.5 139.6 360.1 148.1 509 26l146 146c3.2 2.8 8.3 2.8 11 0l43-43c2.8-2.7 2.8-7.8 0-11zM696 696c-118.8 118.7-311.2 118.7-430 0-118.7-118.8-118.7-311.2 0-430 118.8-118.7 311.2-118.7 430 0 118.7 118.8 118.7 311.2 0 430z","p-id":"7414",fill:"#ffffff"},null,-1)],oC=[t.createElementVNode("path",{d:"M358.058667 128H156.970667A28.970667 28.970667 0 0 0 128 157.013333v202.837334c0 7.978667 6.528 14.506667 14.506667 14.506666h43.434666a14.506667 14.506667 0 0 0 14.506667-14.506666V200.448h157.610667a14.506667 14.506667 0 0 0 14.506666-14.506667V142.506667a14.506667 14.506667 0 0 0-14.506666-14.506667zM881.493333 649.642667h-43.434666a14.506667 14.506667 0 0 0-14.506667 14.506666v159.402667h-157.610667a14.506667 14.506667 0 0 0-14.506666 14.506667v43.434666c0 7.978667 6.570667 14.506667 14.506666 14.506667h201.088c16 0 28.970667-12.928 28.970667-29.013333v-202.837334a14.506667 14.506667 0 0 0-14.506667-14.506666zM358.058667 823.552H200.448v-159.402667a14.506667 14.506667 0 0 0-14.506667-14.506666H142.506667a14.506667 14.506667 0 0 0-14.506667 14.506666v202.88c0 16 12.970667 28.970667 29.013333 28.970667h201.045334a14.506667 14.506667 0 0 0 14.506666-14.506667v-43.434666a14.506667 14.506667 0 0 0-14.506666-14.506667zM866.986667 128h-201.088a14.506667 14.506667 0 0 0-14.506667 14.506667v43.434666c0 7.978667 6.570667 14.506667 14.506667 14.506667h157.610666v159.402667c0 7.978667 6.528 14.506667 14.506667 14.506666h43.434667a14.506667 14.506667 0 0 0 14.506666-14.506666V156.970667A28.928 28.928 0 0 0 866.986667 128z","p-id":"26673",fill:"#ffffff"},null,-1)],cC=[t.createElementVNode("path",{d:"M864 128H160c-19.2 0-32 12.8-32 32v704c0 19.2 12.8 32 32 32h704c19.2 0 32-12.8 32-32V160c0-19.2-12.8-32-32-32z m-32 704H192V192h640v640z","p-id":"1977",fill:"#ffffff"},null,-1),t.createElementVNode("path",{d:"M320 384v288c0 19.2 12.8 32 32 32s32-12.8 32-32V352c0-19.2-12.8-32-32-32h-32c-19.2 0-32 12.8-32 32s12.8 32 32 32zM640 384v288c0 19.2 12.8 32 32 32s32-12.8 32-32V352c0-19.2-12.8-32-32-32h-32c-19.2 0-32 12.8-32 32s12.8 32 32 32z","p-id":"1978",fill:"#ffffff"},null,-1),t.createElementVNode("path",{d:"M512 384m-32 0a32 32 0 1 0 64 0 32 32 0 1 0-64 0Z","p-id":"1979",fill:"#ffffff"},null,-1),t.createElementVNode("path",{d:"M512 640m-32 0a32 32 0 1 0 64 0 32 32 0 1 0-64 0Z","p-id":"1980",fill:"#ffffff"},null,-1)],dC=[t.createElementVNode("path",{d:"M672 418H144c-17.7 0-32 14.3-32 32v414c0 17.7 14.3 32 32 32h528c17.7 0 32-14.3 32-32V450c0-17.7-14.3-32-32-32z m-44 402H188V494h440v326z m191.3-491.5c-78.8-100.7-196-153.6-314.6-154.2l-0.2-64c0-6.5-7.6-10.1-12.6-6.1l-128 101c-4 3.1-3.9 9.1 0 12.3L492 318.6c5.1 4 12.7 0.4 12.6-6.1v-63.9c12.9 0.1 25.9 0.9 38.8 2.5 42.1 5.2 82.1 18.2 119 38.7 38.1 21.2 71.2 49.7 98.4 84.3 27.1 34.7 46.7 73.7 58.1 115.8 11 40.7 14 82.7 8.9 124.8-0.7 5.4-1.4 10.8-2.4 16.1h74.9c14.8-103.6-11.3-213-81-302.3z","p-id":"13309",fill:"#ffffff"},null,-1)],hC=[t.createElementVNode("path",{d:"M480.5 251.2c13-1.6 25.9-2.4 38.8-2.5v63.9c0 6.5 7.5 10.1 12.6 6.1L660 217.6c4-3.2 4-9.2 0-12.3l-128-101c-5.1-4-12.6-0.4-12.6 6.1l-0.2 64c-118.6 0.5-235.8 53.4-314.6 154.2-69.6 89.2-95.7 198.6-81.1 302.4h74.9c-0.9-5.3-1.7-10.7-2.4-16.1-5.1-42.1-2.1-84.1 8.9-124.8 11.4-42.2 31-81.1 58.1-115.8 27.2-34.7 60.3-63.2 98.4-84.3 37-20.6 76.9-33.6 119.1-38.8zM880 418H352c-17.7 0-32 14.3-32 32v414c0 17.7 14.3 32 32 32h528c17.7 0 32-14.3 32-32V450c0-17.7-14.3-32-32-32z m-44 402H396V494h440v326z","p-id":"13522",fill:"#ffffff"},null,-1)],fC=[t.createElementVNode("path",{d:"M505.7 621c3.2 4.1 9.4 4.1 12.6 0l112-141.7c4.1-5.2 0.4-12.9-6.3-12.9h-72.1V120c0-4.4-3.6-8-8-8h-64c-4.4 0-8 3.6-8 8v346.3H400c-6.7 0-10.4 7.7-6.3 12.9l112 141.8z","p-id":"8826",fill:"#ffffff"},null,-1),t.createElementVNode("path",{d:"M903 516h-64c-4.4 0-8 3.6-8 8v300c0 4.4-3.6 8-8 8H199c-4.4 0-8-3.6-8-8V524c0-4.4-3.6-8-8-8h-64c-4.4 0-8 3.6-8 8v372c0 8.8 7.2 16 16 16h768c8.8 0 16-7.2 16-16V524c0-4.4-3.6-8-8-8z","p-id":"8827",fill:"#ffffff"},null,-1)],uC={class:"ivu-image-preview-operations-item ivu-image-preview-operations-wait ivu-anim-loop",viewBox:"0 0 1024 1024",version:"1.1",xmlns:"http://www.w3.org/2000/svg","p-id":"7816",width:"200",height:"200"},mC=[t.createElementVNode("path",{d:"M512 64c247.2 0 448 200.8 448 448h-64c0-212-172-384-384-384V64z m0 832c-212 0-384-172-384-384H64c0 247.2 200.8 448 448 448v-64z","p-id":"7817",fill:"#ffffff"},null,-1)];function pC(e,n,i,l,r,s){const a=t.resolveComponent("Spin"),o=t.resolveComponent("Col"),d=t.resolveComponent("Row"),c=t.resolveComponent("Icon");return t.openBlock(),t.createBlock(t.Teleport,{to:"body",disabled:!i.transfer},[t.createVNode(t.Transition,{name:"fade"},{default:t.withCtx(()=>[i.modelValue?(t.openBlock(),t.createElementBlock("div",{key:0,class:"ivu-image-preview-mask",style:t.normalizeStyle(s.maskStyle)},null,4)):t.createCommentVNode("",!0)]),_:1}),t.createVNode(t.Transition,{name:"fade"},{default:t.withCtx(()=>[i.modelValue?(t.openBlock(),t.createElementBlock("div",{key:0,class:"ivu-image-preview-wrap",style:t.normalizeStyle(s.maskStyle)},[t.createElementVNode("div",t.mergeProps({class:"ivu-image-preview"},e.$attrs,{onClick:n[14]||(n[14]=t.withModifiers((...h)=>s.handleClickMask&&s.handleClickMask(...h),["stop"]))}),[r.status==="loading"?(t.openBlock(),t.createBlock(a,{key:0,size:"large",class:"ivu-image-preview-loading"})):r.status==="failed"?(t.openBlock(),t.createElementBlock("div",sC,[t.createElementVNode("span",null,t.toDisplayString(s.failLang),1)])):t.createCommentVNode("",!0),(t.openBlock(),t.createElementBlock("img",{class:t.normalizeClass(s.imgClasses),style:t.normalizeStyle(s.imageStyle),src:s.currentSrc,key:r.currentIndex.toString(),onClick:n[0]||(n[0]=t.withModifiers(()=>{},["stop"])),onMousedown:n[1]||(n[1]=t.withModifiers((...h)=>s.handleMousedown&&s.handleMousedown(...h),["stop","prevent"])),onLoad:n[2]||(n[2]=(...h)=>s.handleImageLoad&&s.handleImageLoad(...h)),onError:n[3]||(n[3]=(...h)=>s.handleImageError&&s.handleImageError(...h))},null,46,rC)),i.toolbar&&i.toolbar.length>0?(t.openBlock(),t.createBlock(d,{key:2,"class-name":"ivu-image-preview-operations",wrap:!1,onClick:n[11]||(n[11]=t.withModifiers(()=>{},["stop"]))},{default:t.withCtx(()=>[i.toolbar.indexOf("zoomIn")>-1?(t.openBlock(),t.createBlock(o,{key:0,flex:"1",order:i.toolbar.indexOf("zoomIn")+1},{default:t.withCtx(()=>[(t.openBlock(),t.createElementBlock("svg",{class:"ivu-image-preview-operations-item",onClick:n[4]||(n[4]=t.withModifiers(h=>s.handleOperation("zoomIn"),["stop"])),viewBox:"0 0 1024 1024",version:"1.1",xmlns:"http://www.w3.org/2000/svg","p-id":"7197",width:"200",height:"200"},lC))]),_:1},8,["order"])):t.createCommentVNode("",!0),i.toolbar.indexOf("zoomOut")>-1?(t.openBlock(),t.createBlock(o,{key:1,flex:"1",order:i.toolbar.indexOf("zoomOut")+1},{default:t.withCtx(()=>[(t.openBlock(),t.createElementBlock("svg",{class:"ivu-image-preview-operations-item",onClick:n[5]||(n[5]=t.withModifiers(h=>s.handleOperation("zoomOut"),["stop"])),viewBox:"0 0 1024 1024",version:"1.1",xmlns:"http://www.w3.org/2000/svg","p-id":"7412",width:"200",height:"200"},aC))]),_:1},8,["order"])):t.createCommentVNode("",!0),i.toolbar.indexOf("original")>-1?(t.openBlock(),t.createBlock(o,{key:2,flex:"1",order:i.toolbar.indexOf("original")+1},{default:t.withCtx(()=>[t.withDirectives((t.openBlock(),t.createElementBlock("svg",{class:"ivu-image-preview-operations-item",onClick:n[6]||(n[6]=t.withModifiers(h=>s.handleOperation("original"),["stop"])),viewBox:"0 0 1024 1024",version:"1.1",xmlns:"http://www.w3.org/2000/svg","p-id":"26672",width:"200",height:"200"},oC,512)),[[t.vShow,!this.original]]),t.withDirectives((t.openBlock(),t.createElementBlock("svg",{class:"ivu-image-preview-operations-item",onClick:n[7]||(n[7]=t.withModifiers(h=>s.handleOperation("original"),["stop"])),viewBox:"0 0 1024 1024",version:"1.1",xmlns:"http://www.w3.org/2000/svg","p-id":"1976",width:"200",height:"200"},cC,512)),[[t.vShow,this.original]])]),_:1},8,["order"])):t.createCommentVNode("",!0),i.toolbar.indexOf("rotateLeft")>-1?(t.openBlock(),t.createBlock(o,{key:3,flex:"1",order:i.toolbar.indexOf("rotateLeft")+1},{default:t.withCtx(()=>[(t.openBlock(),t.createElementBlock("svg",{class:"ivu-image-preview-operations-item",onClick:n[8]||(n[8]=t.withModifiers(h=>s.handleOperation("rotateLeft"),["stop"])),viewBox:"0 0 1024 1024",version:"1.1",xmlns:"http://www.w3.org/2000/svg","p-id":"13308",width:"200",height:"200"},dC))]),_:1},8,["order"])):t.createCommentVNode("",!0),i.toolbar.indexOf("rotateRight")>-1?(t.openBlock(),t.createBlock(o,{key:4,flex:"1",order:i.toolbar.indexOf("rotateRight")+1},{default:t.withCtx(()=>[(t.openBlock(),t.createElementBlock("svg",{class:"ivu-image-preview-operations-item",onClick:n[9]||(n[9]=t.withModifiers(h=>s.handleOperation("rotateRight"),["stop"])),viewBox:"0 0 1024 1024",version:"1.1",xmlns:"http://www.w3.org/2000/svg","p-id":"13521",width:"200",height:"200"},hC))]),_:1},8,["order"])):t.createCommentVNode("",!0),i.toolbar.indexOf("download")>-1?(t.openBlock(),t.createBlock(o,{key:5,flex:"1",order:i.toolbar.indexOf("download")+1},{default:t.withCtx(()=>[t.withDirectives((t.openBlock(),t.createElementBlock("svg",{class:"ivu-image-preview-operations-item",onClick:n[10]||(n[10]=t.withModifiers(h=>s.handleOperation("download"),["stop"])),viewBox:"0 0 1024 1024",version:"1.1",xmlns:"http://www.w3.org/2000/svg","p-id":"8825",width:"200",height:"200"},fC,512)),[[t.vShow,!r.downloading]]),t.withDirectives((t.openBlock(),t.createElementBlock("svg",uC,mC,512)),[[t.vShow,r.downloading]])]),_:1},8,["order"])):t.createCommentVNode("",!0)]),_:1})):t.createCommentVNode("",!0),i.previewList.length>1?(t.openBlock(),t.createBlock(c,{key:3,class:t.normalizeClass(s.leftClasses),type:"ios-arrow-back",onClick:n[12]||(n[12]=t.withModifiers(h=>s.handleSwitch(!1),["stop"]))},null,8,["class"])):t.createCommentVNode("",!0),i.previewList.length>1?(t.openBlock(),t.createBlock(c,{key:4,class:t.normalizeClass(s.rightClasses),type:"ios-arrow-forward",onClick:n[13]||(n[13]=t.withModifiers(h=>s.handleSwitch(!0),["stop"]))},null,8,["class"])):t.createCommentVNode("",!0),t.createVNode(c,{class:"ivu-image-preview-arrow-close",type:"md-close",onClick:t.withModifiers(s.handleClose,["stop"])},null,8,["onClick"])],16)],4)):t.createCommentVNode("",!0)]),_:1})],8,["disabled"])}var Ut=S(iC,[["render",pC]]);const gC=e=>typeof HTMLElement=="object"&&e instanceof HTMLElement,yC={name:"Image",mixins:[ge],components:{ImagePreview:Ut},emits:["on-load","on-error","on-switch","on-close","on-click"],props:{src:{type:String,default:""},alt:{type:String,default:""},preview:{type:Boolean,default:!1},referrerPolicy:{type:String,default:""},width:{type:[String,Number],default:""},height:{type:[String,Number],default:""},fit:{type:String,default:""},lazy:{type:Boolean,default:!1},scrollContainer:{type:[String],default:""},transfer:{type:Boolean,default(){const e=t.getCurrentInstance().appContext.config.globalProperties;return!e.$VIEWUI||e.$VIEWUI.transfer===""?!1:e.$VIEWUI.transfer}},maskClosable:{type:Boolean,default:!0},previewList:{type:Array},infinite:{type:Boolean,default:!0},initialIndex:{type:Number,default:0},previewTip:{type:Boolean,default:!0},toolbar:{type:Array,default(){const e=t.getCurrentInstance().appContext.config.globalProperties;return!e.$VIEWUI||!e.$VIEWUI.image||e.$VIEWUI.image.toolbar===""?["zoomIn","zoomOut","original","rotateLeft","rotateRight","download"]:e.$VIEWUI.image.toolbar}}},data(){return{loadingImage:!1,loading:!1,imageError:!1,scrollElement:null,observer:null,imagePreviewModal:!1}},watch:{src(){this.loadImage()}},computed:{innerClasses(){return["ivu-image-inner",{["ivu-image-cursor"]:this.preview}]},imgClasses(){return["ivu-image-img",{["ivu-image-img-hidden"]:this.loading||this.imageError}]},fitStyle(){const e=["fill","contain","cover","none","scale-down"],{fit:n}=this;return e.includes(n)?`object-fit:${n};`:""},imageStyles(){return{width:typeof this.width=="number"?`${this.width}px`:this.width,height:typeof this.height=="number"?`${this.height}px`:this.height}},loadingLang(){return this.t("i.select.loading")},failLang(){return this.t("i.image.fail")},previewLang(){return this.t("i.image.preview")},loadingType(){return this.lazy?"lazy":"eager"}},mounted(){H&&this.handleImageEvent()},methods:{handleLazy(){const e=this.$refs.image;(this.observer=new IntersectionObserver(this.handlerObserveImage,{root:this.scrollElement,rootMargin:"0px",threshold:0})).observe(e)},handlerObserveImage(e){for(let n of e)n.isIntersecting&&(this.offObserver(),this.loadImage())},addLazyImageListener(){const{scrollContainer:e}=this;this.scrollElement=null,gC(e)?this.scrollElement=e:e&&typeof e=="string"&&(this.scrollElement=document.querySelector(e)),this.handleLazy()},handleImageLoad(){this.loading=!1,this.imageError=!1,this.$emit("on-load")},handleImageError(){this.loading=!1,this.imageError=!0,this.loadingImage=!1,this.$emit("on-error")},loadImage(){this.loading=!0,this.imageError=!1,this.loadingImage=!0},handleImageEvent(){const{lazy:e}=this;e?this.addLazyImageListener():this.loadImage()},offObserver(){const{observer:e}=this;e&&e.disconnect()},handlePreview(){const{preview:e,initialIndex:n}=this;e&&(this.imagePreviewModal=!0,this.$emit("on-click",{initialIndex:n}))},handleClose(){this.$emit("on-close")},handleSwitch(e){this.$emit("on-switch",e)}},beforeUnmount(){this.offObserver()}},CC={key:0,class:"ivu-image-placeholder"},bC={key:1,class:"ivu-image-error"},kC=["alt","src","loading","referrerPolicy"],wC={class:"ivu-image-mark"};function SC(e,n,i,l,r,s){const a=t.resolveComponent("ImagePreview");return t.openBlock(),t.createElementBlock("div",{class:"ivu-image",ref:"image",style:t.normalizeStyle(s.imageStyles)},[r.loading?(t.openBlock(),t.createElementBlock("div",CC,[t.renderSlot(e.$slots,"placeholder",{},()=>[t.createElementVNode("span",null,t.toDisplayString(s.loadingLang),1)])])):r.imageError?(t.openBlock(),t.createElementBlock("div",bC,[t.renderSlot(e.$slots,"error",{},()=>[t.createElementVNode("span",null,t.toDisplayString(s.failLang),1)])])):t.createCommentVNode("",!0),r.loadingImage?(t.openBlock(),t.createElementBlock("div",{key:2,class:t.normalizeClass(s.innerClasses),onClick:n[2]||(n[2]=(...o)=>s.handlePreview&&s.handlePreview(...o))},[t.createElementVNode("img",{class:t.normalizeClass(s.imgClasses),style:t.normalizeStyle([s.fitStyle]),alt:i.alt,src:i.src,loading:s.loadingType,referrerPolicy:i.referrerPolicy,onLoad:n[0]||(n[0]=(...o)=>s.handleImageLoad&&s.handleImageLoad(...o)),onError:n[1]||(n[1]=(...o)=>s.handleImageError&&s.handleImageError(...o))},null,46,kC),i.preview&&i.previewTip?t.renderSlot(e.$slots,"preview",{key:0},()=>[t.createElementVNode("div",wC,[t.createElementVNode("span",null,t.toDisplayString(s.previewLang),1)])]):t.createCommentVNode("",!0)],2)):t.createCommentVNode("",!0),i.preview?(t.openBlock(),t.createBlock(a,{key:3,modelValue:r.imagePreviewModal,"onUpdate:modelValue":n[3]||(n[3]=o=>r.imagePreviewModal=o),"preview-list":i.previewList,"initial-index":i.initialIndex,infinite:i.infinite,"mask-closable":i.maskClosable,transfer:i.transfer,toolbar:i.toolbar,onOnClose:s.handleClose,onOnSwitch:s.handleSwitch},null,8,["modelValue","preview-list","initial-index","infinite","mask-closable","transfer","toolbar","onOnClose","onOnSwitch"])):t.createCommentVNode("",!0)],4)}var so=S(yC,[["render",SC]]);Ut.newInstance=e=>{if(!H)return;const n=e||{};let i=null;const l=t.createApp({data(){return Object.assign({},n,{visible:!1,previewList:[],initialIndex:0,toolbar:["zoomIn","zoomOut","original","rotateLeft","rotateRight","download"],infinite:!0,maskClosable:!0,transfer:!0})},render(){return t.h(Ut,Object.assign({},n,{ref:"imagePreview",modelValue:this.visible,previewList:this.previewList,initialIndex:this.initialIndex,toolbar:this.toolbar,infinite:this.infinite,maskClosable:this.maskClosable,transfer:this.transfer,"onOn-close":this.close}))},methods:{close(){this.visible=!1,setTimeout(()=>{this.destroy(),this.onRemove()},300)},destroy(){l.unmount(),document.body.removeChild(r)},onRemove(){}},created(){i=t.getCurrentInstance()}}),r=document.createElement("div");document.body.appendChild(r),l.mount(r);const s=i.refs.imagePreview;return{show(a){Object.keys(a).forEach(o=>{s.$parent[o]=a[o]}),s.$parent.visible=!0},component:s}};let Qi;function xC(){return Qi=Qi||Ut.newInstance(),Qi}Ut.show=function(e={}){const n=xC();e.onRemove=function(){Qi=null},n.show(e)};const Pe="ivu-input-number",es="ivu-icon";function ts(e,n){let i,l,r;try{i=e.toString().split(".")[1].length}catch{i=0}try{l=n.toString().split(".")[1].length}catch{l=0}return r=Math.pow(10,Math.max(i,l)),(Math.round(e*r)+Math.round(n*r))/r}const BC={name:"InputNumber",mixins:[xe],emits:["on-change","on-focus","on-blur","update:modelValue"],props:{max:{type:Number,default:1/0},min:{type:Number,default:-1/0},step:{type:Number,default:1},activeChange:{type:Boolean,default:!0},modelValue:{type:Number,default:1},size:{validator(e){return V(e,["small","large","default"])},default(){const e=t.getCurrentInstance().appContext.config.globalProperties;return!e.$VIEWUI||e.$VIEWUI.size===""?"default":e.$VIEWUI.size}},disabled:{type:Boolean,default:!1},autofocus:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},editable:{type:Boolean,default:!0},name:{type:String},precision:{type:Number},elementId:{type:String},formatter:{type:Function},parser:{type:Function},placeholder:{type:String,default:""},controlsOutside:{type:Boolean,default:!1}},data(){return{focused:!1,upDisabled:!1,downDisabled:!1,currentValue:this.modelValue}},computed:{wrapClasses(){return[`${Pe}`,{[`${Pe}-${this.size}`]:!!this.size,[`${Pe}-disabled`]:this.itemDisabled,[`${Pe}-focused`]:this.focused,[`${Pe}-controls-outside`]:this.controlsOutside}]},handlerClasses(){return`${Pe}-handler-wrap`},upClasses(){return[`${Pe}-handler`,`${Pe}-handler-up`,{[`${Pe}-handler-up-disabled`]:this.upDisabled}]},innerUpClasses(){return`${Pe}-handler-up-inner ${es} ${es}-ios-arrow-up`},downClasses(){return[`${Pe}-handler`,`${Pe}-handler-down`,{[`${Pe}-handler-down-disabled`]:this.downDisabled}]},innerDownClasses(){return`${Pe}-handler-down-inner ${es} ${es}-ios-arrow-down`},inputWrapClasses(){return`${Pe}-input-wrap`},inputClasses(){return`${Pe}-input`},precisionValue(){return this.currentValue?this.precision?this.currentValue.toFixed(this.precision):this.currentValue:this.currentValue},formatterValue(){return this.formatter&&this.precisionValue!==null?this.formatter(this.precisionValue):this.precisionValue}},methods:{preventDefault(e){e.preventDefault()},up(e){const n=Number(e.target.value);if(this.upDisabled&&isNaN(n))return!1;this.changeStep("up",e)},down(e){const n=Number(e.target.value);if(this.downDisabled&&isNaN(n))return!1;this.changeStep("down",e)},changeStep(e,n){if(this.itemDisabled||this.readonly)return!1;const i=Number(n.target.value);let l=Number(this.currentValue);const r=Number(this.step);if(isNaN(l))return!1;if(!isNaN(i)){if(e==="up")if(ts(i,r)<=this.max)l=i;else return!1;else if(e==="down")if(ts(i,-r)>=this.min)l=i;else return!1}e==="up"?l=ts(l,r):e==="down"&&(l=ts(l,-r)),this.setValue(l)},setValue(e){e&&!isNaN(this.precision)&&(e=Number(Number(e).toFixed(this.precision)));const{min:n,max:i}=this;e!==null&&(e>i?e=i:e{this.currentValue=e,this.$emit("update:modelValue",e),this.$emit("on-change",e),this.handleFormItemChange("change",e)})},focus(e){this.focused=!0,this.$emit("on-focus",e)},blur(){this.focused=!1,this.$emit("on-blur"),Ne(this,["DatePicker","TimePicker","Cascader","Search"])||this.handleFormItemChange("blur",this.currentValue)},keyDown(e){e.keyCode===38?(e.preventDefault(),this.up(e)):e.keyCode===40&&(e.preventDefault(),this.down(e))},change(e){if(e.type==="change"&&this.activeChange||e.type==="input"&&!this.activeChange)return;let n=e.target.value.trim();if(this.parser&&(n=this.parser(n)),n.length===0){this.setValue(null);return}e.type==="input"&&n.match(/^\-?\.?$|\.$/)||(n=Number(n),isNaN(n)?e.target.value=this.currentValue:(this.currentValue=n,this.setValue(n)))},changeVal(e){if(e=Number(e),isNaN(e))this.upDisabled=!0,this.downDisabled=!0;else{const n=this.step;this.upDisabled=e+n>this.max,this.downDisabled=e-ns.up&&s.up(...a)),class:t.normalizeClass(s.upClasses)},[t.createElementVNode("span",{class:t.normalizeClass(s.innerUpClasses),onClick:n[0]||(n[0]=(...a)=>s.preventDefault&&s.preventDefault(...a))},null,2)],2),t.createElementVNode("a",{onClick:n[3]||(n[3]=(...a)=>s.down&&s.down(...a)),class:t.normalizeClass(s.downClasses)},[t.createElementVNode("span",{class:t.normalizeClass(s.innerDownClasses),onClick:n[2]||(n[2]=(...a)=>s.preventDefault&&s.preventDefault(...a))},null,2)],2)],2)),i.controlsOutside?(t.openBlock(),t.createElementBlock("div",{key:1,class:t.normalizeClass(["ivu-input-number-controls-outside-btn ivu-input-number-controls-outside-down",{"ivu-input-number-controls-outside-btn-disabled":r.downDisabled}]),onClick:n[4]||(n[4]=(...a)=>s.down&&s.down(...a))},VC,2)):t.createCommentVNode("",!0),i.controlsOutside?(t.openBlock(),t.createElementBlock("div",{key:2,class:t.normalizeClass(["ivu-input-number-controls-outside-btn ivu-input-number-controls-outside-up",{"ivu-input-number-controls-outside-btn-disabled":r.upDisabled}]),onClick:n[5]||(n[5]=(...a)=>s.up&&s.up(...a))},EC,2)):t.createCommentVNode("",!0),t.createElementVNode("div",{class:t.normalizeClass(s.inputWrapClasses)},[t.createElementVNode("input",{id:i.elementId,class:t.normalizeClass(s.inputClasses),disabled:e.itemDisabled,autocomplete:"off",spellcheck:"false",autofocus:i.autofocus,onFocus:n[6]||(n[6]=(...a)=>s.focus&&s.focus(...a)),onBlur:n[7]||(n[7]=(...a)=>s.blur&&s.blur(...a)),onKeydown:n[8]||(n[8]=t.withModifiers((...a)=>s.keyDown&&s.keyDown(...a),["stop"])),onInput:n[9]||(n[9]=(...a)=>s.change&&s.change(...a)),onMouseup:n[10]||(n[10]=(...a)=>s.preventDefault&&s.preventDefault(...a)),onChange:n[11]||(n[11]=(...a)=>s.change&&s.change(...a)),readonly:i.readonly||!i.editable,name:i.name,value:s.formatterValue,placeholder:i.placeholder},null,42,TC)],2)],2)}var cr=S(BC,[["render",NC]]);const ro="ivu-layout",IC={name:"Layout",data(){return{hasSider:!1}},computed:{wrapClasses(){return[`${ro}`,{[`${ro}-has-sider`]:this.hasSider}]}},methods:{findSider(){return this.$slots.default().some(e=>e.type.name==="Sider")}},mounted(){this.hasSider=this.findSider()}};function _C(e,n,i,l,r,s){return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(s.wrapClasses)},[t.renderSlot(e.$slots,"default")],2)}var lo=S(IC,[["render",_C]]);const ao={tooltips:["\u590D\u5236","\u590D\u5236\u6210\u529F"],showTip:!1,successTip:"\u590D\u5236\u6210\u529F",errorTip:"\u590D\u5236\u5931\u8D25"},oo={tooltip:"\u7F16\u8F91",editing:!1,maxlength:"",autosize:!0,triggerType:"icon"},co={rows:1,tooltip:!1,suffix:!1,expandable:!1,symbol:"\u5C55\u5F00"};var ri={emits:["update:modelValue"],mixins:[en],props:{type:{validator(e){return V(e,["secondary","success","warning","danger",""])},default:""},copyable:{type:Boolean,default:!1},copyText:{type:String,default:""},copyConfig:{type:Object,default(){const e=t.getCurrentInstance().appContext.config.globalProperties;return!e.$VIEWUI||e.$VIEWUI.typography.copyConfig===""?ao:e.$VIEWUI.typography.copyConfig}},editable:{type:Boolean,default:!1},editConfig:{type:Object,default(){const e=t.getCurrentInstance().appContext.config.globalProperties;return!e.$VIEWUI||e.$VIEWUI.typography.editConfig===""?oo:e.$VIEWUI.typography.editConfig}},ellipsis:{type:Boolean,default:!1},ellipsisConfig:{type:Object,default(){const e=t.getCurrentInstance().appContext.config.globalProperties;return!e.$VIEWUI||e.$VIEWUI.typography.ellipsisConfig===""?co:e.$VIEWUI.typography.ellipsisConfig}},disabled:{type:Boolean,default:!1},code:{type:Boolean,default:!1},delete:{type:Boolean,default:!1},keyboard:{type:Boolean,default:!1},mark:{type:Boolean,default:!1},strong:{type:Boolean,default:!1},underline:{type:Boolean,default:!1},italic:{type:Boolean,default:!1},modelValue:{type:String,default:""},transfer:{type:Boolean,default(){const e=t.getCurrentInstance().appContext.config.globalProperties;return!e.$VIEWUI||e.$VIEWUI.transfer===""?!1:e.$VIEWUI.transfer}},theme:{validator(e){return V(e,["dark","light"])},default:"dark"},maxWidth:{type:[String,Number],default:250},placement:{validator(e){return V(e,["top","top-start","top-end","bottom","bottom-start","bottom-end","left","left-start","left-end","right","right-start","right-end"])},default:"top"}},computed:{isHrefPattern(){const{to:e}=this;return!!e},linkProps(){if(this.isHrefPattern){const{linkUrl:e,target:n}=this;return{href:e,target:n}}else return{}},mergedCopyConfig(){return Object.assign({},ao,this.copyConfig)},mergedEditConfig(){return Object.assign({},oo,this.editConfig)},mergedEllipsisConfig(){return Object.assign({},co,this.ellipsisConfig)}},methods:{commonSlots(){const e={};return this.$slots.default&&(e.default=()=>this.$slots.default()),this.$slots.copyIcon&&(e.copyIcon=n=>this.$slots.copyIcon(n)),this.$slots.editIcon&&(e.editIcon=n=>this.$slots.editIcon(n)),this.$slots.enterIcon&&(e.enterIcon=n=>this.$slots.enterIcon(n)),e},commonEvents(){return{"onUpdate:modelValue":this.handleOnUpdateModelValue}},handleOnUpdateModelValue(e){this.$emit("update:modelValue",e)}}};const ns={name:"TypographyBase",mixins:[ri],emits:["on-copy-success","on-copy-error","on-edit-start","on-edit-end","on-edit-change","on-edit-cancel"],props:{component:{type:String,default:"div"},level:{type:Number,default:0}},data(){return{currentContent:this.modelValue,copied:!1,copyTimeout:null,editing:!1,editContent:"",lastKeyCode:"",isEditESC:!1,ellipsisText:"",ellipsisContent:"",isEllipsis:!1,ellipsisExpanded:!1,observer:null}},created(){this.editing=this.mergedEditConfig.editing||!1,this.editing&&(this.editContent=this.currentContent?this.currentContent:this.handleGetContent())},watch:{modelValue(e){this.currentContent=e},editing(e){e||t.nextTick(()=>{this.handleRemoveObserver(),this.handleCreateObserver()})},isEllipsis(){t.nextTick(()=>{this.handleRemoveObserver(),this.handleCreateObserver()})},ellipsis:{handler(e){e?t.nextTick(()=>{this.handleUpdateEllipsisStatus(),this.handleCreateObserver()}):this.handleRemoveObserver()},immediate:!0}},computed:{classes(){return["ivu-typography",{[`ivu-typography-${this.type}`]:this.type,["ivu-typography-disabled"]:this.disabled,["ivu-typography-ellipsis-line-clamp"]:this.ellipsis&&!this.ellipsisExpanded,["ivu-typography-ellipsis-single-line"]:this.ellipsis&&!this.ellipsisExpanded&&this.mergedEllipsisConfig.rows===1}]}},methods:{wrapperDecorations(){let e=this.currentContent?this.currentContent:this.$slots.default?this.$slots.default():"";function n(i,l){!i||(e=t.h(l,e))}return n(this.strong,"strong"),n(this.underline,"u"),n(this.delete,"del"),n(this.code,"code"),n(this.mark,"mark"),n(this.keyboard,"kbd"),n(this.italic,"i"),e},handleClickContent(e){if(!this.isHrefPattern&&this.component!=="a"){const n=this.mergedEditConfig.triggerType;this.editable&&(n==="text"||n==="both")&&this.handleEdit()}else{const n=e.ctrlKey||e.metaKey;this.handleCheckClick(e,n)}},handleGetContent(){const e=document.createElement("div");document.body.appendChild(e);let n=null,i=null,l="";const r=this.wrapperDecorations();return n=t.createApp({render(){return t.h("div",{ref:"text",style:{display:"none"}},r)},created(){i=t.getCurrentInstance()}}),n.mount(e),l=i.refs.text.innerText,n.unmount(),document.body.removeChild(e),l},handleCopy(){let e="";this.copyText?e=this.copyText:this.currentContent?e=this.currentContent:this.$slots.default&&(e=this.handleGetContent()),Ai({text:this.copyText?this.copyText:e,showTip:this.mergedCopyConfig.showTip,successTip:this.mergedCopyConfig.successTip,errorTip:this.mergedCopyConfig.errorTip,success:()=>{this.$emit("on-copy-success"),this.copied=!0,this.copyTimeout&&clearTimeout(this.copyTimeout),this.copyTimeout=setTimeout(()=>{this.copied=!1},3e3)},error:()=>{this.$emit("on-copy-error")}})},handleEdit(){this.editContent=this.currentContent?this.currentContent:this.handleGetContent(),t.nextTick(()=>{this.editing=!0,this.$emit("on-edit-start"),t.nextTick(()=>{this.$refs.edit.focus({cursor:"end"})})})},handleEditBlur(){if(this.isEditESC){this.isEditESC=!1;return}this.handleEditSave(),this.$emit("on-edit-end",this.editContent)},handleEditChange(e){const n=e.target.value;this.editContent=n,this.$emit("on-edit-change",n)},handleEditSave(){this.$emit("update:modelValue",this.editContent),this.editing=!1},handleEditKeydown(e){const{keyCode:n}=e;n===J.ENTER&&e.preventDefault(),this.lastKeyCode=n},handleEditKeyup(e){const{keyCode:n,ctrlKey:i,altKey:l,metaKey:r,shiftKey:s}=e;this.lastKeyCode===n&&!i&&!l&&!r&&!s&&(n===J.ENTER?(this.handleEditSave(),this.$emit("on-edit-end",this.editContent)):n===J.ESC&&(this.isEditESC=!0,this.$emit("on-edit-cancel"),this.editing=!1))},handleUpdateEllipsisStatus(){if(this.ellipsis&&!this.ellipsisExpanded){const e=this.$refs.typography;this.isEllipsis=e.scrollHeight>e.clientHeight}else this.isEllipsis=!1},handleCreateObserver(){this.ellipsis&&!this.ellipsisExpanded&&(this.observer=Nn(),this.observer.listenTo(this.$refs.typography,this.handleUpdateEllipsisStatus))},handleRemoveObserver(){this.observer&&(this.observer.removeListener(this.$refs.typography,this.handleUpdateEllipsisStatus),this.observer=null)}},render(){let e=[];const n=this.wrapperDecorations();if(e.push(n),this.editable){const i=this.mergedEditConfig.triggerType;if(i==="icon"||i==="both"){const l=this.$slots.editIcon?this.$slots.editIcon():t.h(se,{type:"md-create"}),r=t.h("div",{class:"ivu-typography-edit",onClick:this.handleEdit},l);if(this.mergedEditConfig.tooltip){const s=t.h(xt,{content:this.mergedEditConfig.tooltip,placement:"top"},()=>r);e.push(s)}else e.push(r)}}if(this.copyable){const i=this.$slots.copyIcon?this.$slots.copyIcon({copied:this.copied}):t.h(se,{type:this.copied?"md-checkmark":"md-copy"}),l=t.h("div",{class:["ivu-typography-copy",{"ivu-typography-copy-success":this.copied}],onClick:this.handleCopy},i);if(this.mergedCopyConfig.tooltips instanceof Array&&this.mergedCopyConfig.tooltips.length===2){const r=t.h(xt,{content:this.copied?this.mergedCopyConfig.tooltips[1]:this.mergedCopyConfig.tooltips[0],placement:"top"},()=>l);e.push(r)}else e.push(l)}if(this.editing){const i=t.h(Ze,{ref:"edit",modelValue:this.editContent,type:"textarea",autosize:this.mergedEditConfig.autosize,maxlength:this.mergedEditConfig.maxlength,"onOn-blur":this.handleEditBlur,"onOn-keydown":this.handleEditKeydown,"onOn-keyup":this.handleEditKeyup,"onOn-change":this.handleEditChange}),l=this.$slots.enterIcon?this.$slots.enterIcon():t.h(se,{type:"md-return-left"}),r=t.h("span",{class:"ivu-typography-edit-content-confirm"},l);return t.h("div",{class:["ivu-typography","ivu-typography-edit-content",{[`ivu-typography-h${this.level}`]:this.level,["ivu-typography-div"]:!this.level}]},[i,r])}else{const i={};this.ellipsis&&!this.ellipsisExpanded&&(i["-webkit-line-clamp"]=this.mergedEllipsisConfig.rows);let l=null;const r=t.h(this.component,{ref:"typography",class:this.classes,...this.linkProps,style:i,onClick:this.handleClickContent},[e,l]);return this.ellipsis&&!this.ellipsisExpanded&&this.isEllipsis&&this.mergedEllipsisConfig.tooltip?t.h(xt,{content:this.mergedEllipsisConfig.tooltip===!0?this.handleGetContent():this.mergedEllipsisConfig.tooltip,placement:this.placement,transfer:this.transfer,theme:this.theme,maxWidth:this.maxWidth},()=>r):r}},beforeUnmount(){this.handleRemoveObserver()}},ho={name:"Link",mixins:[ri],render(){return t.h(ns,{...this.$props,component:"a",...this.commonEvents()},this.commonSlots())}};function fo(){return tn(),zt}let uo=fo();Ge.newInstance=e=>{if(!H)return;const n=e||{};let i=null;const l=t.createApp({data(){return Object.assign({},n,{})},render(){let a="";return this.render?a=t.h(Ge,{fix:!0,fullscreen:!0,ref:"spin"},[this.render(t.h)]):a=t.h(Ge,{size:"large",fix:!0,fullscreen:!0,ref:"spin"}),t.h("div",{class:"ivu-spin-fullscreen ivu-spin-fullscreen-wrapper",style:{"z-index":2010+uo}},[a])},created(){i=t.getCurrentInstance()}}),r=document.createElement("div");document.body.appendChild(r),l.mount(r);const s=i.refs.spin;return{show(){t.nextTick(()=>{i.refs.spin.visible=!0,uo=fo()})},remove(a){i.refs.spin.visible=!1,setTimeout(function(){l.unmount(),document.body.removeChild(r),a()},500)},component:s}};let li;function mo(e=void 0){return li=li||Ge.newInstance({render:e}),li}function DC(e){const n="render"in e?e.render:void 0;mo(n).show(e)}Ge.show=function(e={}){return DC(e)},Ge.hide=function(){if(!li)return!1;mo().remove(()=>{li=null})};const ai="ivu-list",MC={name:"List",provide(){return{ListInstance:this}},components:{Spin:Ge},props:{border:{type:Boolean,default:!1},itemLayout:{validator(e){return V(e,["horizontal","vertical"])},default:"horizontal"},header:{type:String,default:""},footer:{type:String,default:""},loading:{type:Boolean,default:!1},size:{validator(e){return V(e,["small","large","default"])},default(){const e=t.getCurrentInstance().appContext.config.globalProperties;return!e.$VIEWUI||e.$VIEWUI.size===""?"default":e.$VIEWUI.size}},split:{type:Boolean,default:!0}},data(){return{}},computed:{classes(){return[`${ai}`,`${ai}-${this.size}`,`${ai}-${this.itemLayout}`,{[`${ai}-bordered`]:this.border,[`${ai}-split`]:this.split}]}},methods:{}},zC={key:0,class:"ivu-list-header"},PC={class:"ivu-list-container"},$C={class:"ivu-list-items"},OC={key:2,class:"ivu-list-footer"};function LC(e,n,i,l,r,s){const a=t.resolveComponent("Spin");return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(s.classes)},[i.header||e.$slots.header?(t.openBlock(),t.createElementBlock("div",zC,[t.renderSlot(e.$slots,"header",{},()=>[t.createTextVNode(t.toDisplayString(i.header),1)])])):t.createCommentVNode("",!0),t.createElementVNode("div",PC,[t.createElementVNode("ul",$C,[t.renderSlot(e.$slots,"default")])]),i.loading?(t.openBlock(),t.createBlock(a,{key:1,fix:"",size:"large"},{default:t.withCtx(()=>[t.renderSlot(e.$slots,"spin")]),_:3})):t.createCommentVNode("",!0),i.footer||e.$slots.footer?(t.openBlock(),t.createElementBlock("div",OC,[t.renderSlot(e.$slots,"footer",{},()=>[t.createTextVNode(t.toDisplayString(i.footer),1)])])):t.createCommentVNode("",!0)],2)}var po=S(MC,[["render",LC]]);const FC={name:"ListItem",inject:["ListInstance"],props:{},computed:{itemLayout(){return this.ListInstance.itemLayout},isItemContainsTextNode(){let e;return this.$slots.default().forEach(n=>{typeof n=="string"&&(e=!0)}),e},isFlexMode(){const e=this.$slots.extra;return this.itemLayout==="vertical"?!!e:!this.isItemContainsTextNode},classes(){return[{"ivu-list-item-no-flex":!this.isFlexMode}]}}},AC={class:"ivu-list-item-main"},RC={key:0,class:"ivu-list-item-action"},HC={class:"ivu-list-item-extra"},WC={key:0,class:"ivu-list-item-action"},UC={class:"ivu-list-item-extra"};function vC(e,n,i,l,r,s){return t.openBlock(),t.createElementBlock("li",{class:t.normalizeClass(["ivu-list-item",s.classes])},[s.itemLayout==="vertical"&&e.$slots.extra?(t.openBlock(),t.createElementBlock(t.Fragment,{key:0},[t.createElementVNode("div",AC,[t.renderSlot(e.$slots,"default"),e.$slots.action?(t.openBlock(),t.createElementBlock("ul",RC,[t.renderSlot(e.$slots,"action")])):t.createCommentVNode("",!0)]),t.createElementVNode("div",HC,[t.renderSlot(e.$slots,"extra")])],64)):(t.openBlock(),t.createElementBlock(t.Fragment,{key:1},[t.renderSlot(e.$slots,"default"),e.$slots.action?(t.openBlock(),t.createElementBlock("ul",WC,[t.renderSlot(e.$slots,"action")])):t.createCommentVNode("",!0),t.createElementVNode("div",UC,[t.renderSlot(e.$slots,"extra")])],64))],2)}var go=S(FC,[["render",vC]]);const jC={name:"ListItemMeta",components:{Avatar:An},props:{avatar:{type:String,default:""},title:{type:String,default:""},description:{type:String,default:""}}},KC={class:"ivu-list-item-meta"},qC={key:0,class:"ivu-list-item-meta-avatar"},YC={class:"ivu-list-item-meta-content"},GC={key:0,class:"ivu-list-item-meta-title"},JC={key:1,class:"ivu-list-item-meta-description"};function XC(e,n,i,l,r,s){const a=t.resolveComponent("Avatar");return t.openBlock(),t.createElementBlock("div",KC,[i.avatar||e.$slots.avatar?(t.openBlock(),t.createElementBlock("div",qC,[t.renderSlot(e.$slots,"avatar",{},()=>[t.createVNode(a,{src:i.avatar},null,8,["src"])])])):t.createCommentVNode("",!0),t.createElementVNode("div",YC,[i.title||e.$slots.title?(t.openBlock(),t.createElementBlock("div",GC,[t.renderSlot(e.$slots,"title",{},()=>[t.createTextVNode(t.toDisplayString(i.title),1)])])):t.createCommentVNode("",!0),i.description||e.$slots.description?(t.openBlock(),t.createElementBlock("div",JC,[t.renderSlot(e.$slots,"description",{},()=>[t.createTextVNode(t.toDisplayString(i.description),1)])])):t.createCommentVNode("",!0)])])}var yo=S(jC,[["render",XC]]);const is="ivu-loading-bar",ZC={name:"LoadingBar",props:{color:{type:String,default:"primary"},failedColor:{type:String,default:"error"},height:{type:Number,default:2}},data(){return{percent:0,status:"success",show:!1}},computed:{classes(){return`${is}`},innerClasses(){return[`${is}-inner`,{[`${is}-inner-color-primary`]:this.color==="primary"&&this.status==="success",[`${is}-inner-failed-color-error`]:this.failedColor==="error"&&this.status==="error"}]},outerStyles(){return{height:`${this.height}px`}},styles(){let e={width:`${this.percent}%`,height:`${this.height}px`};return this.color!=="primary"&&this.status==="success"&&(e.backgroundColor=this.color),this.failedColor!=="error"&&this.status==="error"&&(e.backgroundColor=this.failedColor),e}}};function QC(e,n,i,l,r,s){return t.openBlock(),t.createBlock(t.Transition,{name:"fade"},{default:t.withCtx(()=>[t.withDirectives(t.createElementVNode("div",{class:t.normalizeClass(s.classes),style:t.normalizeStyle(s.outerStyles)},[t.createElementVNode("div",{class:t.normalizeClass(s.innerClasses),style:t.normalizeStyle(s.styles)},null,6)],6),[[t.vShow,r.show]])]),_:1})}var dr=S(ZC,[["render",QC]]);dr.newInstance=e=>{if(!H)return;const n=e||{};let i=null;const l=t.createApp({data(){return n},render(){return t.h(dr,Object.assign({ref:"loadingBar"},n))},created(){i=t.getCurrentInstance()}}),r=document.createElement("div");document.body.appendChild(r),l.mount(r);const s=i.refs.loadingBar;return{update(a){"percent"in a&&(s.percent=a.percent),a.status&&(s.status=a.status),"show"in a&&(s.show=a.show)},component:s,destroy(){l.unmount(),document.body.removeChild(r)}}};let ss,Co="primary",bo=800,ko="error",wo=2,oi;function So(){return ss=ss||dr.newInstance({color:Co,failedColor:ko,height:wo}),ss}function hn(e){So().update(e)}function xo(){setTimeout(()=>{hn({show:!1}),setTimeout(()=>{hn({percent:0})},200)},bo)}function ci(){oi&&(clearInterval(oi),oi=null)}var hr={start(){if(oi)return;let e=0;hn({percent:e,status:"success",show:!0}),oi=setInterval(()=>{e+=Math.floor(Math.random()*3+1),e>95&&ci(),hn({percent:e,status:"success",show:!0})},200)},update(e){ci(),hn({percent:e,status:"success",show:!0})},finish(){ci(),hn({percent:100,status:"success",show:!0}),xo()},error(){ci(),hn({percent:100,status:"error",show:!0}),xo()},config(e){e.color&&(Co=e.color),e.duration&&(bo=e.duration),e.failedColor&&(ko=e.failedColor),e.height&&(wo=e.height)},destroy(){ci();let e=So();ss=null,e.destroy()}};const eb={name:"Login",components:{Form:Ji},emits:["on-submit"],provide(){return{LoginInstance:this}},props:{},data(){return{formValidate:{}}},methods:{handleSubmit(){this.$refs.form.validate(e=>{this.$emit("on-submit",e,JSON.parse(JSON.stringify(this.formValidate)))})},handleValidate(e,n){let i=!0;e.forEach(l=>{this.$refs.form.validateField(l,r=>{r&&(i=!1)})}),n(i)}}},tb={class:"ivu-login"};function nb(e,n,i,l,r,s){const a=t.resolveComponent("Form");return t.openBlock(),t.createElementBlock("div",tb,[t.createVNode(a,{ref:"form",model:r.formValidate,onSubmit:n[0]||(n[0]=t.withModifiers(()=>{},["prevent"]))},{default:t.withCtx(()=>[t.renderSlot(e.$slots,"default")]),_:3},8,["model"])])}var Bo=S(eb,[["render",nb]]);const fr="ivu-menu",ib={name:"Menu",emits:["on-select","on-open-change"],provide(){return{MenuInstance:this}},props:{mode:{validator(e){return V(e,["horizontal","vertical"])},default:"vertical"},theme:{validator(e){return V(e,["light","dark","primary"])},default:"light"},activeName:{type:[String,Number]},openNames:{type:Array,default(){return[]}},accordion:{type:Boolean,default:!1},width:{type:String,default:"240px"}},data(){return{currentActiveName:this.activeName,openedNames:[],submenuList:[],menuItemList:[],ready:!1}},computed:{classes(){let e=this.theme;return this.mode==="vertical"&&this.theme==="primary"&&(e="light"),[`${fr}`,`${fr}-${e}`,{[`${fr}-${this.mode}`]:this.mode}]},styles(){let e={};return this.mode==="vertical"&&(e.width=this.width),e}},methods:{updateActiveName(){this.currentActiveName===void 0&&(this.currentActiveName=-1),this.submenuList.map(e=>e.submenu).forEach(e=>{e.handleUpdateActiveName(!1)}),this.menuItemList.map(e=>e.menuitem).forEach(e=>{e.handleUpdateActiveName(this.currentActiveName)})},updateOpenKeys(e){const i=[...this.openedNames].indexOf(e),l=this.submenuList.map(s=>s.submenu);if(this.accordion&&l.forEach(s=>{s.opened=!1}),i>=0){let s=null;l.forEach(a=>{a.name===e&&(s=a,a.opened=!1)}),ki(s,"Submenu").forEach(a=>{a.opened=!0}),s.childSubmenuList.map(a=>a.submenu).forEach(a=>{a.opened=!1})}else if(this.accordion){let s=null;l.forEach(a=>{a.name===e&&(s=a,a.opened=!0)}),ki(s,"Submenu").forEach(a=>{a.opened=!0})}else this.submenuList.map(a=>a.submenu).forEach(a=>{a.name===e&&(a.opened=!0)});let r=l.filter(s=>s.opened).map(s=>s.name);this.openedNames=[...r],this.$emit("on-open-change",r)},updateOpened(){const e=(this.submenuList||[]).map(n=>n.submenu);e.length&&e.forEach(n=>{this.openedNames.indexOf(n.name)>-1?n.opened=!0:n.opened=!1})},handleEmitSelectEvent(e){this.$emit("on-select",e)},handleMenuItemSelect(e){this.currentActiveName=e,this.$emit("on-select",e)}},mounted(){this.openedNames=[...this.openNames],this.updateOpened(),t.nextTick(()=>{this.updateActiveName(),this.ready=!0})},watch:{openNames(e){this.openedNames=e},activeName(e){this.currentActiveName=e},currentActiveName(){this.updateActiveName()}}};function sb(e,n,i,l,r,s){return t.openBlock(),t.createElementBlock("ul",{class:t.normalizeClass(s.classes),style:t.normalizeStyle(s.styles)},[t.renderSlot(e.$slots,"default")],6)}var ur=S(ib,[["render",sb]]),mr={inject:{MenuInstance:{default:null},SubmenuInstance:{default:null}},data(){return{menu:this.MenuInstance}},computed:{hasParentSubmenu(){return!!this.SubmenuInstance},parentSubmenuNum(){return ki(this,"Submenu").length},mode(){return this.MenuInstance.mode}}};const rb="ivu-menu",lb={name:"MenuGroup",mixins:[mr],props:{title:{type:String,default:""}},data(){return{prefixCls:rb}},computed:{groupStyle(){return this.hasParentSubmenu&&this.mode!=="horizontal"?{paddingLeft:43+(this.parentSubmenuNum-1)*28+"px"}:{}}}};function ab(e,n,i,l,r,s){return t.openBlock(),t.createElementBlock("li",{class:t.normalizeClass([r.prefixCls+"-item-group"])},[t.createElementVNode("div",{class:t.normalizeClass([r.prefixCls+"-item-group-title"]),style:t.normalizeStyle(s.groupStyle)},t.toDisplayString(i.title),7),t.createElementVNode("ul",null,[t.renderSlot(e.$slots,"default")])],2)}var Vo=S(lb,[["render",ab]]);const rs="ivu-menu",ob={name:"MenuItem",mixins:[mr,en],props:{name:{type:[String,Number],required:!0},disabled:{type:Boolean,default:!1}},data(){return{active:!1,id:Ee(6)}},computed:{classes(){return[`${rs}-item`,{[`${rs}-item-active`]:this.active,[`${rs}-item-selected`]:this.active,[`${rs}-item-disabled`]:this.disabled}]},itemStyle(){return this.hasParentSubmenu&&this.mode!=="horizontal"?{paddingLeft:43+(this.parentSubmenuNum-1)*24+"px"}:{}}},methods:{handleClickItem(e,n=!1){if(!this.disabled)if(n||this.target==="_blank"){this.handleCheckClick(e,n);let i=Ne(this,"Menu");i&&i.handleEmitSelectEvent(this.name)}else Ne(this,"Submenu")?this.SubmenuInstance.handleMenuItemSelect(this.name):this.MenuInstance.handleMenuItemSelect(this.name),this.handleCheckClick(e,n)},handleUpdateActiveName(e){this.name===e?(this.active=!0,this.SubmenuInstance&&this.SubmenuInstance.handleUpdateActiveName(e)):this.active=!1},addMenuItem(){const e=this.MenuInstance;e.menuItemList||(e.menuItemList=[]),e.menuItemList.push({id:this.id,menuitem:this})},removeMenuItem(){const e=this.MenuInstance;if(e.menuItemList&&e.menuItemList.length){const n=e.menuItemList.findIndex(i=>i.id===this.id);e.menuItemList.splice(n,1)}}},mounted(){this.addMenuItem()},beforeUnmount(){this.removeMenuItem()}},cb=["href","target"];function db(e,n,i,l,r,s){return e.to?(t.openBlock(),t.createElementBlock("a",{key:0,href:e.linkUrl,target:e.target,class:t.normalizeClass(s.classes),onClick:[n[0]||(n[0]=t.withModifiers(a=>s.handleClickItem(a,!1),["exact"])),n[1]||(n[1]=t.withModifiers(a=>s.handleClickItem(a,!0),["ctrl"])),n[2]||(n[2]=t.withModifiers(a=>s.handleClickItem(a,!0),["meta"]))],style:t.normalizeStyle(s.itemStyle)},[t.renderSlot(e.$slots,"default")],14,cb)):(t.openBlock(),t.createElementBlock("li",{key:1,class:t.normalizeClass(s.classes),onClick:n[3]||(n[3]=t.withModifiers((...a)=>s.handleClickItem&&s.handleClickItem(...a),["stop"])),style:t.normalizeStyle(s.itemStyle)},[t.renderSlot(e.$slots,"default")],6))}var Eo=S(ob,[["render",db]]);const To={name:"Mobile",mixins:[jn],data(){return{className:"ivu-login-mobile",prefix:"ios-phone-portrait",placeholder:"\u8BF7\u8F93\u5165\u624B\u673A\u53F7\u7801",type:"text"}},props:{rules:{type:[Object,Array],default(){return[{required:!0,message:Ls.Mobile,trigger:"change"},{pattern:/^1\d{10}$/,message:"\u8F93\u5165\u7684\u624B\u673A\u53F7\u7801\u683C\u5F0F\u4E0D\u6B63\u786E\uFF01",trigger:"change"}]}}}},He="ivu-modal",No={x:null,y:null,dragX:null,dragY:null,dragging:!1,rect:null},hb={inheritAttrs:!1,name:"Modal",mixins:[ge,nr],components:{Icon:se,iButton:Oe},emits:["on-cancel","on-ok","on-hidden","on-visible-change","update:modelValue"],provide(){return{ModalInstance:this}},props:{modelValue:{type:Boolean,default:!1},closable:{type:Boolean,default:!0},maskClosable:{type:Boolean,default(){const e=t.getCurrentInstance().appContext.config.globalProperties;return!e.$VIEWUI||e.$VIEWUI.modal.maskClosable===""?!0:e.$VIEWUI.modal.maskClosable}},title:{type:String},width:{type:[Number,String],default:520},okText:{type:String},cancelText:{type:String},loading:{type:Boolean,default:!1},styles:{type:Object,default(){return{}}},className:{type:String},footerHide:{type:Boolean,default:!1},scrollable:{type:Boolean,default:!1},transitionNames:{type:Array,default(){return["ease","fade"]}},transfer:{type:Boolean,default(){const e=t.getCurrentInstance().appContext.config.globalProperties;return!e.$VIEWUI||e.$VIEWUI.transfer===""?!0:e.$VIEWUI.transfer}},fullscreen:{type:Boolean,default:!1},mask:{type:Boolean,default:!0},draggable:{type:Boolean,default:!1},sticky:{type:Boolean,default:!1},stickyDistance:{type:Number,default:10},resetDragPosition:{type:Boolean,default:!1},zIndex:{type:Number,default:1e3},beforeClose:Function,render:Function},data(){return{prefixCls:He,wrapShow:!1,showHead:!0,buttonLoading:!1,visible:this.modelValue,dragData:me(No),modalIndex:this.handleGetModalIndex(),isMouseTriggerIn:!1,id:Ee(6),tableList:[],sliderList:[]}},computed:{wrapClasses(){return[`${He}-wrap`,{[`${He}-hidden`]:!this.wrapShow,[`${this.className}`]:!!this.className,[`${He}-no-mask`]:!this.showMask}]},wrapStyles(){return{zIndex:this.modalIndex+this.zIndex}},maskClasses(){return`${He}-mask`},classes(){return[`${He}`,{[`${He}-fullscreen`]:this.fullscreen,[`${He}-fullscreen-no-header`]:this.fullscreen&&!this.showHead,[`${He}-fullscreen-no-footer`]:this.fullscreen&&this.footerHide}]},contentClasses(){return[`${He}-content`,{[`${He}-content-no-mask`]:!this.showMask,[`${He}-content-drag`]:this.draggable&&!this.fullscreen,[`${He}-content-dragging`]:this.draggable&&this.dragData.dragging}]},mainStyles(){let e={};const n=parseInt(this.width),i=this.dragData.x!==null?{top:0}:{width:n<=100?`${n}%`:`${n}px`},l=this.styles?this.styles:{};return Object.assign(e,i,l),e},contentStyles(){let e={};if(this.draggable&&!this.fullscreen){const n=this.styles.top?parseFloat(this.styles.top):0,i=this.styles.left?parseFloat(this.styles.left):0;this.dragData.x!==null&&(e.left=`${this.dragData.x-i}px`),this.dragData.y!==null&&(e.top=`${this.dragData.y}px`),this.dragData.y!==null&&(e.top=`${this.dragData.y-n}px`);const l=parseInt(this.width),r={width:l<=100?`${l}%`:`${l}px`};Object.assign(e,r)}return e},localeOkText(){return this.okText===void 0?this.t("i.modal.okText"):this.okText},localeCancelText(){return this.cancelText===void 0?this.t("i.modal.cancelText"):this.cancelText},showMask(){return this.mask}},methods:{close(){if(!this.beforeClose)return this.handleClose();const e=this.beforeClose();e&&e.then?e.then(()=>{this.handleClose()}):this.handleClose()},handleClose(){this.visible=!1,this.$emit("update:modelValue",!1),this.$emit("on-cancel")},handleMask(){this.maskClosable&&this.showMask&&this.close()},handleWrapClick(e){if(this.isMouseTriggerIn){this.isMouseTriggerIn=!1;return}const n=e.target.getAttribute("class");n&&n.indexOf(`${He}-wrap`)>-1&&this.handleMask()},handleMousedown(){this.isMouseTriggerIn=!0},cancel(){this.close()},ok(){this.loading?this.buttonLoading=!0:(this.visible=!1,this.$emit("update:modelValue",!1)),this.$emit("on-ok")},EscClose(e){if(this.visible&&this.closable&&e.keyCode===27){const i=this.$root.modalList.map(l=>l.modal).filter(l=>l.$data.visible&&l.$props.closable).sort((l,r)=>l.$data.modalIndex{i.close()},0)}},animationFinish(){this.$emit("on-hidden")},handleMoveStart(e){if(!this.draggable||this.fullscreen)return!1;const i=this.$refs.content.getBoundingClientRect();this.dragData.rect=i,this.dragData.x=i.x||i.left,this.dragData.y=i.y||i.top;const l={x:e.clientX,y:e.clientY};this.dragData.dragX=l.x,this.dragData.dragY=l.y,this.dragData.dragging=!0,fe(window,"mousemove",this.handleMoveMove),fe(window,"mouseup",this.handleMoveEnd)},handleMoveMove(e){if(!this.dragData.dragging||this.fullscreen)return!1;const n={x:e.clientX,y:e.clientY},i={x:n.x-this.dragData.dragX,y:n.y-this.dragData.dragY};if(H&&this.sticky){const l=document.documentElement.clientWidth,r=document.documentElement.clientHeight;this.dragData.x+i.x<=this.stickyDistance&&i.x<0?this.dragData.x=0:this.dragData.x+this.dragData.rect.width-l>-this.stickyDistance&&i.x>0?this.dragData.x=l-this.dragData.rect.width:this.dragData.x+=i.x,this.dragData.y+i.y<=this.stickyDistance&&i.y<0?this.dragData.y=0:this.dragData.y+this.dragData.rect.height-r>-this.stickyDistance&&i.y>0?this.dragData.y=r-this.dragData.rect.height:this.dragData.y+=i.y}else this.dragData.x+=i.x,this.dragData.y+=i.y;this.dragData.dragX=n.x,this.dragData.dragY=n.y},handleMoveEnd(){this.dragData.dragging=!1,ue(window,"mousemove",this.handleMoveMove),ue(window,"mouseup",this.handleMoveEnd)},handleGetModalIndex(){return tn(),zt},handleClickModal(){if(this.draggable){if(wi!==this.lastVisibleIndex){this.lastVisibleIndex=wi;return}this.modalIndex=this.handleGetModalIndex()}},addModal(){const e=this.$root;e.modalList||(e.modalList=[]),e.modalList.push({id:this.id,modal:this})},removeModal(){const e=this.$root;if(!e.modalList)return;const n=e.modalList.findIndex(i=>i.id===this.id);e.modalList.splice(n,1)}},watch:{modelValue(e){this.visible=e},visible(e){e===!1?(this.buttonLoading=!1,this.timer=setTimeout(()=>{this.wrapShow=!1,this.removeScrollEffect()},300)):(this.lastVisible!==e&&(this.modalIndex=this.handleGetModalIndex(),md()),this.timer&&clearTimeout(this.timer),this.wrapShow=!0,this.scrollable||this.addScrollEffect()),this.tableList.forEach(n=>{n.table.handleOnVisibleChange(e)}),this.sliderList.forEach(n=>{n.slider.handleOnVisibleChange(e)}),this.$emit("on-visible-change",e),this.lastVisible=e,this.lastVisibleIndex=wi,e&&this.resetDragPosition&&(this.dragData=me(No))},loading(e){e||(this.buttonLoading=!1)},scrollable(e){e?this.removeScrollEffect():this.addScrollEffect()},title(e){this.$slots.header===void 0&&(this.showHead=!!e)}},mounted(){this.visible&&(this.wrapShow=!0);let e=!0;this.$slots.header===void 0&&!this.title&&(e=!1),this.showHead=e,this.addModal(),H&&document.addEventListener("keydown",this.EscClose)},beforeUnmount(){this.removeModal(),H&&document.removeEventListener("keydown",this.EscClose),this.removeScrollEffect()}};function fb(e,n,i,l,r,s){const a=t.resolveComponent("Icon"),o=t.resolveComponent("i-button");return t.openBlock(),t.createBlock(t.Teleport,{to:"body",disabled:!i.transfer},[t.createVNode(t.Transition,{name:i.transitionNames[1]},{default:t.withCtx(()=>[s.showMask?t.withDirectives((t.openBlock(),t.createElementBlock("div",{key:0,class:t.normalizeClass(s.maskClasses),style:t.normalizeStyle(s.wrapStyles),onClick:n[0]||(n[0]=(...d)=>s.handleMask&&s.handleMask(...d))},null,6)),[[t.vShow,r.visible]]):t.createCommentVNode("",!0)]),_:1},8,["name"]),t.createElementVNode("div",{class:t.normalizeClass(s.wrapClasses),style:t.normalizeStyle(s.wrapStyles),onClick:n[5]||(n[5]=(...d)=>s.handleWrapClick&&s.handleWrapClick(...d))},[t.createVNode(t.Transition,{name:i.transitionNames[0],onAfterLeave:s.animationFinish},{default:t.withCtx(()=>[t.withDirectives(t.createElementVNode("div",t.mergeProps(e.$attrs,{class:s.classes,style:s.mainStyles,onMousedown:n[4]||(n[4]=(...d)=>s.handleMousedown&&s.handleMousedown(...d))}),[t.createElementVNode("div",{class:t.normalizeClass(s.contentClasses),ref:"content",style:t.normalizeStyle(s.contentStyles),onClick:n[3]||(n[3]=(...d)=>s.handleClickModal&&s.handleClickModal(...d))},[i.closable?(t.openBlock(),t.createElementBlock("a",{key:0,class:t.normalizeClass([r.prefixCls+"-close"]),onClick:n[1]||(n[1]=(...d)=>s.close&&s.close(...d))},[t.renderSlot(e.$slots,"close",{},()=>[t.createVNode(a,{type:"ios-close"})])],2)):t.createCommentVNode("",!0),r.showHead?(t.openBlock(),t.createElementBlock("div",{key:1,class:t.normalizeClass([r.prefixCls+"-header"]),onMousedown:n[2]||(n[2]=(...d)=>s.handleMoveStart&&s.handleMoveStart(...d))},[t.renderSlot(e.$slots,"header",{},()=>[t.createElementVNode("div",{class:t.normalizeClass([r.prefixCls+"-header-inner"])},t.toDisplayString(i.title),3)])],34)):t.createCommentVNode("",!0),t.createElementVNode("div",{class:t.normalizeClass([r.prefixCls+"-body"])},[t.renderSlot(e.$slots,"default")],2),i.footerHide?t.createCommentVNode("",!0):(t.openBlock(),t.createElementBlock("div",{key:2,class:t.normalizeClass([r.prefixCls+"-footer"])},[t.renderSlot(e.$slots,"footer",{},()=>[t.createVNode(o,{type:"text",onClick:s.cancel},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(s.localeCancelText),1)]),_:1},8,["onClick"]),t.createVNode(o,{type:"primary",loading:r.buttonLoading,onClick:s.ok},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(s.localeOkText),1)]),_:1},8,["loading","onClick"])])],2))],6)],16),[[t.vShow,r.visible]])]),_:3},8,["name","onAfterLeave"])],6)],8,["disabled"])}var et=S(hb,[["render",fb]]);const Tt="ivu-modal-confirm";et.newInstance=e=>{if(!H)return;const n=e||{},i=document.createElement("div");document.body.appendChild(i);let l=null;const r=t.createApp({mixins:[ge],data(){return Object.assign({},n,{visible:!1,width:416,title:"",body:"",iconType:"",iconName:"",okText:void 0,cancelText:void 0,showCancel:!1,loading:!1,buttonLoading:!1,scrollable:!1,closable:!1,closing:!1})},render(){let a=[];this.showCancel&&a.push(t.h(Oe,{type:"text",onClick:this.cancel},()=>this.localeCancelText)),a.push(t.h(Oe,{type:"primary",loading:this.buttonLoading,onClick:this.ok},()=>this.localeOkText));let o;this.render?o=t.h("div",{class:`${Tt}-body ${Tt}-body-render`},[this.render(t.h)]):o=t.h("div",{class:`${Tt}-body`},[t.h("div",{innerHTML:this.body})]);let d;return this.title&&(d=t.h("div",{class:`${Tt}-head`},[t.h("div",{class:this.iconTypeCls},[t.h("i",{class:this.iconNameCls})]),t.h("div",{class:`${Tt}-head-title`,innerHTML:this.title})])),t.h(et,Object.assign({},n,{width:this.width,scrollable:this.scrollable,closable:this.closable,ref:"modal"},{modelValue:this.visible,"onUpdate:modelValue":c=>this.visible=c,"onOn-cancel":this.cancel}),()=>t.h("div",{class:Tt},[d,o,t.h("div",{class:`${Tt}-footer`},a)]))},computed:{iconTypeCls(){return[`${Tt}-head-icon`,`${Tt}-head-icon-${this.iconType}`]},iconNameCls(){return["ivu-icon",`ivu-icon-${this.iconName}`]},localeOkText(){return this.okText?this.okText:this.t("i.modal.okText")},localeCancelText(){return this.cancelText?this.cancelText:this.t("i.modal.cancelText")}},methods:{cancel(){this.closing||(this.$refs.modal.visible=!1,this.buttonLoading=!1,this.onCancel(),this.remove())},ok(){this.closing||(this.loading?this.buttonLoading=!0:(this.$refs.modal.visible=!1,this.remove()),this.onOk())},remove(){this.closing=!0,setTimeout(()=>{this.closing=!1,this.destroy()},300)},destroy(){r.unmount(),document.body.removeChild(i),this.onRemove()},onOk(){},onCancel(){},onRemove(){}},created(){l=t.getCurrentInstance()}});r.mount(i);const s=l.refs.modal;return{show(a){switch(s.$parent.showCancel=a.showCancel,s.$parent.iconType=a.icon,a.icon){case"info":s.$parent.iconName="ios-information-circle";break;case"success":s.$parent.iconName="ios-checkmark-circle";break;case"warning":s.$parent.iconName="ios-alert";break;case"error":s.$parent.iconName="ios-close-circle";break;case"confirm":s.$parent.iconName="ios-help-circle";break}"width"in a&&(s.$parent.width=a.width),"closable"in a&&(s.$parent.closable=a.closable),"title"in a&&(s.$parent.title=a.title),"content"in a&&(s.$parent.body=a.content),"okText"in a&&(s.$parent.okText=a.okText),"cancelText"in a&&(s.$parent.cancelText=a.cancelText),"onCancel"in a&&(s.$parent.onCancel=a.onCancel),"onOk"in a&&(s.$parent.onOk=a.onOk),"loading"in a&&(s.$parent.loading=a.loading),"scrollable"in a&&(s.$parent.scrollable=a.scrollable),s.$parent.onRemove=a.onRemove,s.visible=!0},remove(){s.visible=!1,s.$parent.buttonLoading=!1,s.$parent.remove()},component:s}};let di;function Io(e=void 0,n=!0){return di=di||et.newInstance({closable:!1,maskClosable:!1,footerHide:!0,render:e,lockScroll:n}),di}function hi(e){const n="render"in e?e.render:void 0,i="lockScroll"in e?e.lockScroll:!0;let l=Io(n,i);e.onRemove=function(){di=null},l.show(e)}et.info=function(e={}){return e.icon="info",e.showCancel=!1,hi(e)},et.success=function(e={}){return e.icon="success",e.showCancel=!1,hi(e)},et.warning=function(e={}){return e.icon="warning",e.showCancel=!1,hi(e)},et.error=function(e={}){return e.icon="error",e.showCancel=!1,hi(e)},et.confirm=function(e={}){return e.icon="confirm",e.showCancel=!0,hi(e)},et.remove=function(){if(!di)return!1;Io().remove()};const Je="ivu-notice",_o="ivu-icon",ub="ivu_notice_key_";let Do=24,Mo=4.5,In,zo=1;const mb={info:"ios-information-circle",success:"ios-checkmark-circle",warning:"ios-alert",error:"ios-close-circle"},Po="move-notice";function $o(){return In=In||Li.newInstance({prefixCls:Je,styles:{top:`${Do}px`,right:0},transitionName:Po}),In}function fi(e,n){const i=n.title||"",l=n.desc||"",r=n.name||`${ub}${zo}`,s=n.onClose||function(){},a=n.render,o=n.duration===0?0:n.duration||Mo;zo++;let d=$o(),c,h;const m=n.render&&!i?"":l||n.render?` ${Je}-with-desc`:"";if(e==="normal")h=!1,c=` +
+
${i}
+
${l}
+
+ `;else{const g=mb[e],y=m===""?"":"-outline";h=!0,c=` +
+ + + +
${i}
+
${l}
+
+ `}d.notice({name:r.toString(),duration:o,styles:{},transitionName:Po,content:c,withIcon:h,render:a,hasTitle:!!i,onClose:s,closable:!0,type:"notice"})}var pr={open(e){return fi("normal",e)},info(e){return fi("info",e)},success(e){return fi("success",e)},warning(e){return fi("warning",e)},error(e){return fi("error",e)},config(e){e.top&&(Do=e.top),(e.duration||e.duration===0)&&(Mo=e.duration)},close(e){if(e)e=e.toString(),In&&In.remove(e);else return!1},destroy(){let e=$o();In=null,e.destroy("ivu-notice")}};const Ie="ivu-tabs",gr=300,Oo=(e,n,i,l)=>{const s=(e.findIndex(o=>o.name===n)+i+e.length)%e.length,a=e[s];return a.disabled?Oo(e,a.name,i):a},Lo=(e,n)=>{try{e.focus()}catch{}if(H&&document.activeElement==e&&e!==n)return!0;const i=e.children;for(let l of i)if(Lo(l,n))return!0;return!1},pb={name:"Tabs",mixins:[Pt],emits:["on-click","on-dblclick","on-contextmenu","on-tab-remove","on-drag-drop","update:modelValue"],components:{Icon:se,Render:Gl,Dropdown:an,DropdownMenu:on},provide(){return{TabsInstance:this}},props:{modelValue:{type:[String,Number]},type:{validator(e){return V(e,["line","card"])},default:"line"},size:{validator(e){return V(e,["small","default"])},default:"default"},animated:{type:Boolean,default:!0},captureFocus:{type:Boolean,default:!1},closable:{type:Boolean,default:!1},beforeRemove:Function,name:{type:String},draggable:{type:Boolean,default:!1},autoCloseContextmenu:{type:Boolean,default:!0}},data(){return{prefixCls:Ie,navList:[],barWidth:0,barOffset:0,activeKey:this.modelValue,focusedKey:this.modelValue,showSlot:!1,navStyle:{transform:""},scrollable:!1,transitioning:!1,contextMenuVisible:!1,contextMenuStyles:{top:0,left:0},paneList:[],tableList:[]}},computed:{classes(){return[`${Ie}`,{[`${Ie}-card`]:this.type==="card",[`${Ie}-mini`]:this.size==="small"&&this.type==="line",[`${Ie}-no-animation`]:!this.animated}]},contentClasses(){return[`${Ie}-content`,{[`${Ie}-content-animated`]:this.animated}]},barClasses(){return[`${Ie}-ink-bar`,{[`${Ie}-ink-bar-animated`]:this.animated}]},contentStyle(){const e=this.getTabIndex(this.activeKey),n=e===0?"0%":`-${e}00%`;let i={};return e>-1&&(i={transform:`translateX(${n}) translateZ(0px)`}),i},barStyle(){let e={visibility:"hidden",width:`${this.barWidth}px`};return this.type==="line"&&(e.visibility="visible"),this.animated?e.transform=`translate3d(${this.barOffset}px, 0px, 0px)`:e.left=`${this.barOffset}px`,e},arrowType(){const e=this.globalConfig;let n="ios-close";return e&&(e.tabs.customCloseIcon?n="":e.tabs.closeIcon&&(n=e.tabs.closeIcon)),n},customArrowType(){const e=this.globalConfig;let n="";return e&&e.tabs.customCloseIcon&&(n=e.tabs.customCloseIcon),n},arrowSize(){const e=this.globalConfig;let n="";return e&&e.tabs.closeIconSize&&(n=e.tabs.closeIconSize),n}},methods:{getTabs(){const e=this.paneList.map(i=>i.pane),n=[];return e.forEach(i=>{i.tab&&this.name?i.tab===this.name&&n.push(i):n.push(i)}),n.sort((i,l)=>{if(i.index&&l.index)return i.index>l.index?1:-1}),n},updateNav(){this.navList=[],this.getTabs().forEach((e,n)=>{this.navList.push({labelType:typeof e.label,label:e.label,icon:e.icon||"",name:e.currentName||n,disabled:e.disabled,closable:e.closable,contextMenu:e.contextMenu}),e.currentName||(e.currentName=n),n===0&&(this.activeKey||(this.activeKey=e.currentName||n))}),this.updateStatus(),this.updateBar()},updateBar(){t.nextTick(()=>{const e=this.getTabIndex(this.activeKey);if(!this.$refs.nav)return;const n=this.$refs.nav.querySelectorAll(`.${Ie}-tab`),i=n[e];if(this.barWidth=i?parseFloat(i.offsetWidth):0,e>0){let l=0;const r=this.size==="small"?0:16;for(let s=0;sn.show=n.currentName===this.activeKey||this.animated)},tabCls(e){return[`${Ie}-tab`,{[`${Ie}-tab-disabled`]:e.disabled,[`${Ie}-tab-active`]:e.name===this.activeKey,[`${Ie}-tab-focused`]:e.name===this.focusedKey}]},handleChange(e){if(this.transitioning)return;this.transitioning=!0,setTimeout(()=>this.transitioning=!1,gr);const n=this.navList[e];!n||n.disabled||(this.activeKey=n.name,this.$emit("update:modelValue",n.name),this.$emit("on-click",n.name))},handleDblclick(e){const n=this.navList[e];!n||n.disabled||this.$emit("on-dblclick",n.name)},handleContextmenu(e,n){this.contextMenuVisible&&this.handleClickContextMenuOutside(),t.nextTick(()=>{const i=this.navList[e];if(!i||i.disabled||!i.contextMenu)return;n.preventDefault();const r=this.$refs.tabsWrap.getBoundingClientRect(),s={left:`${n.clientX-r.left}px`,top:`${n.clientY-r.top}px`};this.contextMenuStyles=s,this.contextMenuVisible=!0,this.$emit("on-contextmenu",i,n,s)})},handleClickContextMenuOutside(){this.contextMenuVisible=!1},handlePreventSelect(e,n){const i=this.navList[e];!i||i.disabled||!i.contextMenu||n.preventDefault()},handleTabKeyNavigation(e){if(e.keyCode!==37&&e.keyCode!==39)return;const n=e.keyCode===39?1:-1,i=Oo(this.navList,this.focusedKey,n);this.focusedKey=i.name},handleTabKeyboardSelect(e=!1){if(e)return;const n=this.focusedKey||0,i=this.getTabIndex(n);this.handleChange(i)},handleRemove(e){if(!this.beforeRemove)return this.handleRemoveTab(e);const n=this.beforeRemove(e);n&&n.then?n.then(()=>{this.handleRemoveTab(e)}):this.handleRemoveTab(e)},handleRemoveTab(e){const n=this.getTabs(),i=n[e];if(i.currentName===this.activeKey){const l=this.getTabs();let r=-1;if(l.length){const s=n.filter((o,d)=>!o.disabled&&d!o.disabled&&d>e);a.length?r=a[0].currentName:s.length?r=s[s.length-1].currentName:r=l[0].currentName}this.activeKey=r,this.$emit("update:modelValue",r)}this.$emit("on-tab-remove",i.currentName),this.updateNav()},showClose(e){return this.type==="card"?e.closable!==null?e.closable:this.closable:!1},scrollPrev(){const e=this.$refs.navScroll.offsetWidth,n=this.getCurrentScrollOffset();if(!n)return;let i=n>e?n-e:0;this.setOffset(i)},scrollNext(){const e=this.$refs.nav.offsetWidth,n=this.$refs.navScroll.offsetWidth,i=this.getCurrentScrollOffset();if(e-i<=n)return;let l=e-i>n*2?i+n:e-n;this.setOffset(l)},getCurrentScrollOffset(){const{navStyle:e}=this;return e.transform?Number(e.transform.match(/translateX\(-(\d+(\.\d+)*)px\)/)[1]):0},getTabIndex(e){return this.navList.findIndex(n=>n.name===e)},setOffset(e){this.navStyle.transform=`translateX(-${e}px)`},scrollToActiveTab(){if(!this.scrollable)return;const e=this.$refs.nav,n=this.$el.querySelector(`.${Ie}-tab-active`);if(!n)return;const i=this.$refs.navScroll,l=n.getBoundingClientRect(),r=i.getBoundingClientRect(),s=e.getBoundingClientRect(),a=this.getCurrentScrollOffset();let o=a;s.rightr.right&&(o=a+l.right-r.right),a!==o&&this.setOffset(Math.max(o,0))},updateNavScroll(){const e=this.$refs.nav.offsetWidth,n=this.$refs.navScroll.offsetWidth,i=this.getCurrentScrollOffset();n0&&this.setOffset(0))},handleScroll(e){e.preventDefault(),e.stopPropagation();const n=e.type;let i=0;(n==="DOMMouseScroll"||n==="mousewheel")&&(i=e.wheelDelta?e.wheelDelta:-(e.detail||0)*40),i>0?this.scrollPrev():this.scrollNext()},handleResize(){this.updateNavScroll()},isInsideHiddenElement(){if(!H)return;let e=this.$el.parentNode;for(;e&&e!==document.body;){if(e.style&&e.style.display==="none")return e;e=e.parentNode}return!1},updateVisibility(e){[...this.$refs.panes.querySelectorAll(`.${Ie}-tabpane`)].forEach((n,i)=>{e===i?([...n.children].filter(l=>l.classList.contains(`${Ie}-tabpane`)).forEach(l=>l.style.visibility="visible"),this.captureFocus&&setTimeout(()=>Lo(n,n),gr)):setTimeout(()=>{[...n.children].filter(l=>l.classList.contains(`${Ie}-tabpane`)).forEach(l=>l.style.visibility="hidden")},gr)})},handleDrag(e,n){const i=this.navList[e];i&&n.dataTransfer.setData("tab-name",i.name)},handleDrop(e,n){const i=this.navList[e];if(i){const l=n.dataTransfer.getData("tab-name");n.preventDefault();let r=this.navList.map(o=>o.name);const s=parseInt(r.findIndex(o=>o===l)),a=parseInt(r.findIndex(o=>o===i.name));r.splice(a,1,...r.splice(s,1,r[a])),this.$emit("on-drag-drop",l,i.name,s,a,r)}},closeContextMenu(){this.handleClickContextMenuOutside()},handleClickDropdownItem(){this.autoCloseContextmenu&&this.closeContextMenu()}},watch:{modelValue(e){this.activeKey=e,this.focusedKey=e},activeKey(e){this.focusedKey=e,this.updateBar(),this.updateStatus(),this.tableList.forEach(i=>{i.table.handleOnVisibleChange(!0)}),t.nextTick(()=>{this.scrollToActiveTab()});const n=Math.max(this.getTabIndex(this.focusedKey),0);this.updateVisibility(n)}},mounted(){this.showSlot=this.$slots.extra!==void 0,this.observer=Nn(),this.observer.listenTo(this.$refs.navWrap,this.handleResize);const e=this.isInsideHiddenElement();e&&(this.mutationObserver=new Gc(()=>{e.style.display!=="none"&&(this.updateBar(),this.mutationObserver.disconnect())}),this.mutationObserver.observe(e,{attributes:!0,childList:!0,characterData:!0,attributeFilter:["style"]})),this.handleTabKeyboardSelect(!0),this.updateVisibility(this.getTabIndex(this.activeKey))},beforeUnmount(){this.observer.removeListener(this.$refs.navWrap,this.handleResize),this.mutationObserver&&this.mutationObserver.disconnect()}},gb=["onClick","onDblclick","onContextmenu","onSelectstart","draggable","onDragstart","onDrop"];function yb(e,n,i,l,r,s){const a=t.resolveComponent("Icon"),o=t.resolveComponent("Render"),d=t.resolveComponent("DropdownMenu"),c=t.resolveComponent("Dropdown");return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(s.classes),ref:"tabsWrap"},[t.createElementVNode("div",{class:t.normalizeClass([r.prefixCls+"-bar"])},[r.showSlot?(t.openBlock(),t.createElementBlock("div",{key:0,class:t.normalizeClass([r.prefixCls+"-nav-right"])},[t.renderSlot(e.$slots,"extra")],2)):t.createCommentVNode("",!0),t.createElementVNode("div",{class:t.normalizeClass([r.prefixCls+"-nav-container"]),tabindex:"0",ref:"navContainer",onKeydown:[n[5]||(n[5]=(...h)=>s.handleTabKeyNavigation&&s.handleTabKeyNavigation(...h)),n[6]||(n[6]=t.withKeys(t.withModifiers(h=>s.handleTabKeyboardSelect(!1),["prevent"]),["space"]))]},[t.createElementVNode("div",{ref:"navWrap",class:t.normalizeClass([r.prefixCls+"-nav-wrap",r.scrollable?r.prefixCls+"-nav-scrollable":""])},[t.createElementVNode("span",{class:t.normalizeClass([r.prefixCls+"-nav-prev",r.scrollable?"":r.prefixCls+"-nav-scroll-disabled"]),onClick:n[0]||(n[0]=(...h)=>s.scrollPrev&&s.scrollPrev(...h))},[t.createVNode(a,{type:"ios-arrow-back"})],2),t.createElementVNode("span",{class:t.normalizeClass([r.prefixCls+"-nav-next",r.scrollable?"":r.prefixCls+"-nav-scroll-disabled"]),onClick:n[1]||(n[1]=(...h)=>s.scrollNext&&s.scrollNext(...h))},[t.createVNode(a,{type:"ios-arrow-forward"})],2),t.createElementVNode("div",{ref:"navScroll",class:t.normalizeClass([r.prefixCls+"-nav-scroll"]),"on:DOMMouseScroll":n[3]||(n[3]=(...h)=>s.handleScroll&&s.handleScroll(...h)),onMousewheel:n[4]||(n[4]=(...h)=>s.handleScroll&&s.handleScroll(...h))},[t.createElementVNode("div",{ref:"nav",class:t.normalizeClass([r.prefixCls+"-nav"]),style:t.normalizeStyle(r.navStyle)},[t.createElementVNode("div",{class:t.normalizeClass(s.barClasses),style:t.normalizeStyle(s.barStyle)},null,6),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(r.navList,(h,m)=>(t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(s.tabCls(h)),key:m,onClick:g=>s.handleChange(m),onDblclick:g=>s.handleDblclick(m),onContextmenu:t.withModifiers(g=>s.handleContextmenu(m,g),["stop"]),onSelectstart:t.withModifiers(g=>s.handlePreventSelect(m,g),["stop"]),draggable:i.draggable,onDragstart:g=>s.handleDrag(m,g),onDrop:g=>s.handleDrop(m,g),onDragover:n[2]||(n[2]=t.withModifiers(()=>{},["prevent"]))},[h.icon!==""?(t.openBlock(),t.createBlock(a,{key:0,type:h.icon},null,8,["type"])):t.createCommentVNode("",!0),h.labelType==="function"?(t.openBlock(),t.createBlock(o,{key:1,render:h.label},null,8,["render"])):(t.openBlock(),t.createElementBlock(t.Fragment,{key:2},[t.createTextVNode(t.toDisplayString(h.label),1)],64)),s.showClose(h)?(t.openBlock(),t.createBlock(a,{key:3,class:t.normalizeClass([r.prefixCls+"-close"]),type:s.arrowType,custom:s.customArrowType,size:s.arrowSize,onClick:t.withModifiers(g=>s.handleRemove(m),["stop"])},null,8,["class","type","custom","size","onClick"])):t.createCommentVNode("",!0)],42,gb))),128))],6)],34)],2)],34)],2),t.createElementVNode("div",{class:t.normalizeClass(s.contentClasses),style:t.normalizeStyle(s.contentStyle),ref:"panes"},[t.renderSlot(e.$slots,"default")],6),t.createElementVNode("div",{class:"ivu-tabs-context-menu",style:t.normalizeStyle(r.contextMenuStyles)},[t.createVNode(c,{trigger:"custom",visible:r.contextMenuVisible,transfer:"",onOnClick:s.handleClickDropdownItem,onOnClickoutside:s.handleClickContextMenuOutside},{list:t.withCtx(()=>[t.createVNode(d,null,{default:t.withCtx(()=>[t.renderSlot(e.$slots,"contextMenu")]),_:3})]),_:3},8,["visible","onOnClick","onOnClickoutside"])],4)],2)}var ls=S(pb,[["render",yb]]);const Cb={name:"Notification",components:{Dropdown:an,DropdownMenu:on,Badge:Ei,Tabs:ls},emits:["on-visible-change","on-item-click","on-clear","on-load-more","on-tab-change"],provide(){return{NotificationInstance:this}},props:{count:{type:Number},autoCount:{type:Boolean,default:!1},countType:{validator(e){return V(e,["text","badge"])},default:"text"},icon:{type:String,default:"md-notifications-outline"},transfer:{type:Boolean,default(){const e=t.getCurrentInstance().appContext.config.globalProperties;return!e.$VIEWUI||e.$VIEWUI.transfer===""?!1:e.$VIEWUI.transfer}},placement:{validator(e){return V(e,["top","top-start","top-end","bottom","bottom-start","bottom-end","left","left-start","left-end","right","right-start","right-end"])},default:"bottom"},badgeProps:{type:Object,default(){return{}}},clearClose:{type:Boolean,default:!1},locale:{type:Object,default(){return{loadedAll:"\u52A0\u8F7D\u5B8C\u6BD5",loading:"\u52A0\u8F7D\u4E2D...",loadMore:"\u52A0\u8F7D\u66F4\u591A",clear:"\u6E05\u7A7A"}}},tab:{type:String},wide:{type:Boolean,default:!1},transferClassName:{type:String}},data(){return{visible:!1,countAll:0,tabList:[]}},computed:{finalCount(){return this.autoCount?this.countAll:this.count},transferClasses(){let e="ivu-notifications-transfer";return this.transferClassName&&(e+=` ${this.transferClassName}`),e}},watch:{visible(e){this.$emit("on-visible-change",e)}},methods:{handleVisibleChange(e){this.visible=e},handleClickOutside(e){this.$refs.notice.contains(e.target)||(this.visible=!1)},handleToggleOpen(){this.visible=!this.visible},handleGetCountAll(){if(this.autoCount){const e=this.tabList.map(i=>i.tab);let n=0;e.forEach(i=>{i.count&&(n+=i.count)}),this.countAll=n}},handleItemClick(e,n){this.$emit("on-item-click",e,n)},handleClear(e){this.$emit("on-clear",e),this.clearClose&&this.handleClose()},handleLoadMore(e){this.$emit("on-load-more",e)},handleClose(){this.visible=!1},handleTabChange(e){const n=this.tabList.map(l=>l.tab);let i={};n.forEach(l=>{l.$refs.tab.currentName===e&&(i=l.handleGetTabBaseInfo())}),this.$emit("on-tab-change",i)}}},bb={class:"ivu-notifications",ref:"notice"},kb={class:"ivu-notifications-tabs"},wb={key:0,class:"ivu-notifications-extra"};function Sb(e,n,i,l,r,s){const a=t.resolveComponent("Icon"),o=t.resolveComponent("Badge"),d=t.resolveComponent("Tabs"),c=t.resolveComponent("DropdownMenu"),h=t.resolveComponent("Dropdown");return t.openBlock(),t.createElementBlock("div",bb,[t.createVNode(h,{trigger:"custom",visible:r.visible,transfer:i.transfer,placement:i.placement,"transfer-class-name":s.transferClasses,onOnVisibleChange:s.handleVisibleChange,onOnClickoutside:s.handleClickOutside},{list:t.withCtx(()=>[e.$slots.default?(t.openBlock(),t.createBlock(c,{key:0,onClick:n[1]||(n[1]=t.withModifiers(()=>{},["stop"]))},{default:t.withCtx(()=>[t.createElementVNode("div",{class:t.normalizeClass(["ivu-notifications-list",{"ivu-notifications-list-wide":i.wide}])},[t.createElementVNode("div",kb,[t.createVNode(d,{animated:!1,"model-value":i.tab,onOnClick:s.handleTabChange},{default:t.withCtx(()=>[t.renderSlot(e.$slots,"default")]),_:3},8,["model-value","onOnClick"])])],2),e.$slots.extra?(t.openBlock(),t.createElementBlock("div",wb,[t.renderSlot(e.$slots,"extra")])):t.createCommentVNode("",!0)]),_:3})):t.createCommentVNode("",!0)]),default:t.withCtx(()=>[t.createElementVNode("div",{class:"ivu-notifications-rel",onClick:n[0]||(n[0]=t.withModifiers((...m)=>s.handleToggleOpen&&s.handleToggleOpen(...m),["prevent","stop"]))},[t.createVNode(o,t.mergeProps({count:s.finalCount},i.badgeProps),{default:t.withCtx(()=>[t.renderSlot(e.$slots,"icon",{},()=>[t.createVNode(a,{type:i.icon,size:"24"},null,8,["type"])])]),_:3},16,["count"])])]),_:3},8,["visible","transfer","placement","transfer-class-name","onOnVisibleChange","onOnClickoutside"])],512)}var Fo=S(Cb,[["render",Sb]]);const xb=(e,n)=>e<=n,ui=e=>e<10?"0"+e:e,Ao=(e,n)=>{const i=new Date(e),l=i.getFullYear(),r=ui(i.getMonth()+1),s=ui(i.getDate()),a=ui(i.getHours()),o=ui(i.getMinutes()),d=ui(i.getSeconds());let c="";return n==="year"?c=l+"-"+r+"-"+s+" "+a+":"+o+":"+d:c=r+"-"+s+" "+a+":"+o,c},Bb=(e,n)=>{const i=new Date().getTime(),l=xb(e,i);let r=i-e;l||(r=-r);let s="",a=l?n("i.time.before")||"\u524D":n("i.time.after")||"\u540E";return r<1e3?s=n("i.time.just")||"\u521A\u521A":r<6e4?s=parseInt(r/1e3)+(n("i.time.seconds")||"\u79D2")+a:r>=6e4&&r<36e5?s=Math.floor(r/6e4)+(n("i.time.minutes")||"\u5206\u949F")+a:r>=36e5&&r<864e5?s=Math.floor(r/36e5)+(n("i.time.hours")||"\u5C0F\u65F6")+a:r>=864e5&&r<262386e4?s=Math.floor(r/864e5)+(n("i.time.days")||"\u5929")+a:r>=262386e4&&r<=3156786e4&&l?s=Ao(e):s=Ao(e,"year"),s};function Vb(e,n){return Bb(e,n)}const Ro="ivu-time",Eb={name:"Time",mixins:[ge],props:{time:{type:[Number,Date,String],required:!0},type:{type:String,validator(e){return V(e,["relative","date","datetime"])},default:"relative"},hash:{type:String,default:""},interval:{type:Number,default:60}},data(){return{date:""}},computed:{classes(){return[`${Ro}`,{[`${Ro}-with-hash`]:this.hash}]}},watch:{time(){this.setTime()}},methods:{handleClick(){H&&this.hash!==""&&(window.location.hash=this.hash)},setTime(){const e=typeof this.time;let n;if(e==="number"){const i=this.time.toString().length>10?this.time:this.time*1e3;n=new Date(i).getTime()}else e==="object"?n=this.time.getTime():e==="string"&&(n=je(this.time).valueOf());if(this.type==="relative")this.date=Vb(n,this.t);else{const i=new Date(this.time),l=i.getFullYear(),r=i.getMonth()+1<10?"0"+(i.getMonth()+1):i.getMonth()+1,s=i.getDate()<10?"0"+i.getDate():i.getDate(),a=i.getHours()<10?"0"+i.getHours():i.getHours(),o=i.getMinutes()<10?"0"+i.getMinutes():i.getMinutes(),d=i.getSeconds()<10?"0"+i.getSeconds():i.getSeconds();this.type==="datetime"?this.date=`${l}-${r}-${s} ${a}:${o}:${d}`:this.type==="date"&&(this.date=`${l}-${r}-${s}`)}}},mounted(){this.setTime(),this.interval!==0&&(this.timer=setInterval(()=>{this.setTime()},1e3*this.interval))},beforeUnmount(){this.timer&&clearInterval(this.timer)}};function Tb(e,n,i,l,r,s){return t.openBlock(),t.createElementBlock("span",{class:t.normalizeClass(s.classes),onClick:n[0]||(n[0]=(...a)=>s.handleClick&&s.handleClick(...a))},t.toDisplayString(r.date),3)}var as=S(Eb,[["render",Tb]]);const Nb={name:"NotificationItem",inject:["NotificationTabInstance","NotificationInstance"],components:{Row:Ot,Col:gt,Avatar:An,Tag:Sn,Time:as},emits:["on-item-click"],props:{rowProps:{type:Object,default(){return{type:"flex",justify:"center",align:"middle"}}},read:{type:[Boolean,Number],default:!1},icon:{type:String},customIcon:{type:String},iconColor:{type:String},iconSize:{validator(e){return V(e,["small","default","large"])},default:"default"},avatar:{type:String},avatarShape:{validator(e){return V(e,["circle","square"])},default:"circle"},title:{type:String},content:{type:String},time:{type:[Number,Date,String]},timeProps:{type:Object,default(){return{}}},tag:{type:String},tagProps:{type:Object,default(){return{}}},clickClose:{type:Boolean,default:!1}},data(){return{id:Ee(6)}},computed:{classes(){return{"ivu-notifications-item-unread":this.read===!1||this.read===0}},contentSpan(){return this.icon||this.customIcon||this.avatar||this.$slots.avatar?20:24},iconStyle(){let e={};return this.iconColor&&(e={"background-color":this.iconColor}),e}},methods:{handleClick(){this.$emit("on-item-click",this.$attrs),this.NotificationTabInstance.handleItemClick(this.$attrs),this.clickClose&&this.NotificationInstance.handleClose()},addItem(){this.NotificationTabInstance.itemList.push({id:this.id,item:this})},removeItem(){const e=this.NotificationTabInstance,n=e.itemList.findIndex(i=>i.id===this.id);e.itemList.splice(n,1)}},mounted(){this.addItem(),this.NotificationTabInstance.handleGetItems()},unmounted(){this.NotificationTabInstance.handleGetItems()},beforeUnmount(){this.removeItem()}},Ib={class:"ivu-notifications-item-title"},_b={key:0},Db={key:0,class:"ivu-notifications-item-tag"},Mb={key:0,class:"ivu-notifications-item-desc"},zb={key:1,class:"ivu-notifications-item-time"};function Pb(e,n,i,l,r,s){const a=t.resolveComponent("Avatar"),o=t.resolveComponent("Col"),d=t.resolveComponent("Tag"),c=t.resolveComponent("Time"),h=t.resolveComponent("Row");return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(["ivu-notifications-item",s.classes]),onClick:n[0]||(n[0]=(...m)=>s.handleClick&&s.handleClick(...m))},[t.renderSlot(e.$slots,"default",{},()=>[t.createVNode(h,t.normalizeProps(t.guardReactiveProps(i.rowProps)),{default:t.withCtx(()=>[i.icon||i.customIcon||i.avatar||e.$slots.avatar?(t.openBlock(),t.createBlock(o,{key:0,span:"4",class:"ivu-notifications-item-icon"},{default:t.withCtx(()=>[t.renderSlot(e.$slots,"avatar",{},()=>[i.icon?(t.openBlock(),t.createBlock(a,{key:0,icon:i.icon,shape:i.avatarShape,size:i.iconSize,style:t.normalizeStyle(s.iconStyle)},null,8,["icon","shape","size","style"])):i.customIcon?(t.openBlock(),t.createBlock(a,{key:1,"custom-icon":i.customIcon,shape:i.avatarShape,size:i.iconSize,style:t.normalizeStyle(s.iconStyle)},null,8,["custom-icon","shape","size","style"])):i.avatar?(t.openBlock(),t.createBlock(a,{key:2,src:i.avatar,shape:i.avatarShape,size:i.iconSize,style:t.normalizeStyle(s.iconStyle)},null,8,["src","shape","size","style"])):t.createCommentVNode("",!0)])]),_:3})):t.createCommentVNode("",!0),t.createVNode(o,{span:s.contentSpan,class:"ivu-notifications-item-content"},{default:t.withCtx(()=>[t.createElementVNode("div",Ib,[i.title||e.$slots.title?(t.openBlock(),t.createElementBlock("h4",_b,[t.renderSlot(e.$slots,"title",{},()=>[t.createTextVNode(t.toDisplayString(i.title),1)]),i.tag?(t.openBlock(),t.createElementBlock("div",Db,[t.createVNode(d,t.normalizeProps(t.guardReactiveProps(i.tagProps)),{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(i.tag),1)]),_:1},16)])):t.createCommentVNode("",!0)])):t.createCommentVNode("",!0)]),i.content||e.$slots.content?(t.openBlock(),t.createElementBlock("div",Mb,[t.renderSlot(e.$slots,"content",{},()=>[t.createTextVNode(t.toDisplayString(i.content),1)])])):t.createCommentVNode("",!0),i.time||e.$slots.time?(t.openBlock(),t.createElementBlock("div",zb,[t.renderSlot(e.$slots,"time",{},()=>[t.createVNode(c,t.mergeProps({time:i.time},i.timeProps),null,16,["time"])])])):t.createCommentVNode("",!0)]),_:3},8,["span"])]),_:3},16)])],2)}var Ho=S(Nb,[["render",Pb]]);const $b="ivu-tabs-tabpane",Ob={name:"TabPane",inject:["TabsInstance"],props:{name:{type:String},label:{type:[String,Function],default:""},icon:{type:String},disabled:{type:Boolean,default:!1},closable:{type:Boolean,default:null},tab:{type:String},index:{type:Number},contextMenu:{type:Boolean,default:!1}},data(){return{prefixCls:$b,show:!0,currentName:this.name,id:Ee(6)}},computed:{contentStyle(){return{visibility:this.TabsInstance.activeKey!==this.currentName?"hidden":"visible"}}},methods:{updateNav(){this.TabsInstance.updateNav()},addPane(){const e=this.TabsInstance;e.paneList||(e.paneList=[]),e.paneList.push({id:this.id,pane:this})},removePane(){const e=this.TabsInstance;if(e.paneList&&e.paneList.length){const n=e.paneList.findIndex(i=>i.id===this.id);e.paneList.splice(n,1)}}},watch:{name(e){this.currentName=e,this.updateNav()},label(e){typeof e!="function"&&this.updateNav()},icon(){this.updateNav()},disabled(){this.updateNav()}},mounted(){this.addPane(),this.updateNav()},beforeUnmount(){this.removePane(),this.updateNav()}};function Lb(e,n,i,l,r,s){return t.withDirectives((t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(r.prefixCls),style:t.normalizeStyle(s.contentStyle)},[t.renderSlot(e.$slots,"default")],6)),[[t.vShow,r.show]])}var os=S(Ob,[["render",Lb]]);const Fb={name:"NotificationTab",inject:["NotificationInstance"],components:{TabPane:os,Icon:se},provide(){return{NotificationTabInstance:this}},props:{count:{type:Number},title:{type:String,required:!0},name:{type:String},emptyText:{type:String,default:"\u76EE\u524D\u6CA1\u6709\u901A\u77E5"},emptyImage:{type:String,default:"https://file.iviewui.com/iview-pro/icon-no-message.svg"},loadedAll:{type:Boolean,default:!0},showLoadedAll:{type:Boolean,default:!0},loading:{type:Boolean,default:!1},scrollToLoad:{type:Boolean,default:!0},showClear:{type:Boolean,default:!0},showClearIcon:{type:Boolean,default:!0}},data(){return{customLabel:e=>e("div",[e("span",this.title),e(Ei,{count:this.count})]),itemCount:0,itemList:[],id:Ee(6)}},computed:{currentTitle(){const e=this.NotificationInstance.countType;if(e==="text"){const n=this.count?`(${this.count})`:"";return`${this.title} ${n}`}else if(e==="badge")return this.customLabel}},watch:{count:{handler(){this.NotificationInstance.handleGetCountAll()},immediate:!0}},methods:{handleGetTabBaseInfo(){return{name:this.name,title:this.title}},handleGetItems(){const e=this.itemList.map(n=>n.item);this.itemCount=e.length},handleItemClick(e){this.NotificationInstance.handleItemClick(this.handleGetTabBaseInfo(),e)},handleClear(){this.NotificationInstance.handleClear(this.handleGetTabBaseInfo())},handleLoadMore(){this.NotificationInstance.handleLoadMore(this.handleGetTabBaseInfo())},handleScroll(){if(!this.scrollToLoad)return;const e=this.$refs.scroll,n=e.scrollHeight-e.clientHeight-e.scrollTop;!this.loading&&n===0&&this.handleLoadMore()},addTab(){this.NotificationInstance.tabList.push({id:this.id,tab:this})},removeTab(){const e=this.NotificationInstance,n=e.tabList.findIndex(i=>i.id===this.id);e.tabList.splice(n,1)}},mounted(){this.addTab()},beforeUnmount(){this.removeTab()}},Ab={class:"ivu-notifications-container-list"},Rb={key:0,class:"ivu-notifications-tab-empty"},Hb=["src"],Wb={class:"ivu-notifications-tab-empty-text"},Ub={class:"ivu-notifications-tab-loading"},vb={key:0,class:"ivu-notifications-tab-loading-item ivu-notifications-tab-loading-show"},jb={key:2,class:"ivu-notifications-tab-loading-item ivu-notifications-tab-loading-all"};function Kb(e,n,i,l,r,s){const a=t.resolveComponent("Icon"),o=t.resolveComponent("TabPane");return t.openBlock(),t.createBlock(o,{label:s.currentTitle,name:i.name,ref:"tab",class:"ivu-notifications-tab"},{default:t.withCtx(()=>[t.createElementVNode("div",{class:"ivu-notifications-container",onScroll:n[1]||(n[1]=(...d)=>s.handleScroll&&s.handleScroll(...d)),ref:"scroll"},[t.renderSlot(e.$slots,"top"),t.createElementVNode("div",Ab,[t.renderSlot(e.$slots,"default")]),!i.loading&&r.itemCount===0?(t.openBlock(),t.createElementBlock("div",Rb,[t.renderSlot(e.$slots,"empty",{},()=>[i.emptyImage?(t.openBlock(),t.createElementBlock("img",{key:0,class:"ivu-notifications-tab-empty-img",src:i.emptyImage},null,8,Hb)):t.createCommentVNode("",!0),t.createElementVNode("div",Wb,t.toDisplayString(i.emptyText),1)])])):t.createCommentVNode("",!0),t.createElementVNode("div",Ub,[i.loading?(t.openBlock(),t.createElementBlock("div",vb,[t.renderSlot(e.$slots,"loading",{},()=>[t.createVNode(a,{type:"ios-loading",class:"ivu-load-loop"}),t.createTextVNode(" "+t.toDisplayString(s.NotificationInstance.locale.loading),1)])])):i.loadedAll?i.showLoadedAll&&i.loadedAll?(t.openBlock(),t.createElementBlock("div",jb,[t.renderSlot(e.$slots,"loaded-all",{},()=>[t.createTextVNode(t.toDisplayString(s.NotificationInstance.locale.loadedAll),1)])])):t.createCommentVNode("",!0):(t.openBlock(),t.createElementBlock("div",{key:1,class:"ivu-notifications-tab-loading-item ivu-notifications-tab-loading-more",onClick:n[0]||(n[0]=(...d)=>s.handleLoadMore&&s.handleLoadMore(...d))},[t.renderSlot(e.$slots,"load-more",{},()=>[t.createTextVNode(t.toDisplayString(s.NotificationInstance.locale.loadMore),1)])]))])],544),i.showClear&&r.itemCount!==0?(t.openBlock(),t.createElementBlock("div",{key:0,class:"ivu-notifications-tab-clear",onClick:n[2]||(n[2]=(...d)=>s.handleClear&&s.handleClear(...d))},[t.renderSlot(e.$slots,"clear",{},()=>[i.showClearIcon?(t.openBlock(),t.createBlock(a,{key:0,type:"md-done-all"})):t.createCommentVNode("",!0),t.createElementVNode("span",null,t.toDisplayString(s.NotificationInstance.locale.clear)+t.toDisplayString(i.title),1)])])):t.createCommentVNode("",!0)]),_:3},8,["label","name"])}var Wo=S(Fb,[["render",Kb]]);const qb={name:"Trend",components:{Icon:se},props:{flag:{validator(e){return V(e,["up","down"])}},colorful:{type:Boolean,default:!0},reverseColor:{type:Boolean,default:!1},textColor:{type:Boolean,default:!1},showTitle:{type:[Boolean,String],default:!1}},computed:{classes(){return[{["ivu-trend-up"]:this.flag==="up",["ivu-trend-down"]:this.flag==="down",["ivu-trend-reverse-color"]:this.reverseColor,["ivu-trend-colorful"]:this.colorful,["ivu-trend-text-color"]:this.textColor}]},flagType(){return this.flag==="up"?"md-arrow-dropup":this.flag==="down"?"md-arrow-dropdown":""}}},Yb={class:"ivu-trend-text"};function Gb(e,n,i,l,r,s){const a=t.resolveComponent("Icon");return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(["ivu-trend",s.classes])},[t.createElementVNode("span",Yb,[t.renderSlot(e.$slots,"default")]),t.createVNode(a,{type:s.flagType,class:"ivu-trend-flag"},null,8,["type"])],2)}var yr=S(qb,[["render",Gb]]);const Jb={name:"NumberInfo",components:{Trend:yr},props:{title:{type:String},subTitle:{type:String},total:{type:[String,Number]},subTotal:{type:[String,Number]},status:{validator(e){return V(e,["up","down"])}},gap:{type:[String,Number],default:8}},computed:{valueStyle(){return{"margin-top":this.gap+"px"}}}},Xb={class:"ivu-number-info"},Zb={key:0,class:"ivu-number-info-title"},Qb={key:1,class:"ivu-number-info-subTitle"},ek={class:"ivu-number-info-total"},tk={key:0,class:"ivu-number-info-subTotal"};function nk(e,n,i,l,r,s){const a=t.resolveComponent("Trend");return t.openBlock(),t.createElementBlock("div",Xb,[i.title||e.$slots.title?(t.openBlock(),t.createElementBlock("div",Zb,[t.renderSlot(e.$slots,"title",{},()=>[t.createTextVNode(t.toDisplayString(i.title),1)])])):t.createCommentVNode("",!0),i.subTitle||e.$slots.subTitle?(t.openBlock(),t.createElementBlock("div",Qb,[t.renderSlot(e.$slots,"subTitle",{},()=>[t.createTextVNode(t.toDisplayString(i.subTitle),1)])])):t.createCommentVNode("",!0),t.createElementVNode("div",{class:"ivu-number-info-value",style:t.normalizeStyle(s.valueStyle)},[t.createElementVNode("span",ek,[t.renderSlot(e.$slots,"total",{},()=>[t.createTextVNode(t.toDisplayString(i.total),1)])]),i.subTotal||e.$slots.subTotal?(t.openBlock(),t.createElementBlock("span",tk,[t.renderSlot(e.$slots,"subTotal",{},()=>[t.createVNode(a,{flag:i.status},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(i.subTotal),1)]),_:1},8,["flag"])])])):t.createCommentVNode("",!0)],4)])}var Uo=S(Jb,[["render",nk]]),vo={exports:{}};/*! @preserve + * numeral.js + * version : 2.0.6 + * author : Adam Draper + * license : MIT + * http://adamwdraper.github.com/Numeral-js/ + */(function(e){(function(n,i){e.exports?e.exports=i():n.numeral=i()})(St,function(){var n,i,l="2.0.6",r={},s={},a={currentLocale:"en",zeroFormat:null,nullFormat:null,defaultFormat:"0,0",scalePercentBy100:!0},o={currentLocale:a.currentLocale,zeroFormat:a.zeroFormat,nullFormat:a.nullFormat,defaultFormat:a.defaultFormat,scalePercentBy100:a.scalePercentBy100};function d(c,h){this._input=c,this._value=h}return n=function(c){var h,m,g,y;if(n.isNumeral(c))h=c.value();else if(c===0||typeof c=="undefined")h=0;else if(c===null||i.isNaN(c))h=null;else if(typeof c=="string")if(o.zeroFormat&&c===o.zeroFormat)h=0;else if(o.nullFormat&&c===o.nullFormat||!c.replace(/[^0-9]+/g,"").length)h=null;else{for(m in r)if(y=typeof r[m].regexps.unformat=="function"?r[m].regexps.unformat():r[m].regexps.unformat,y&&c.match(y)){g=r[m].unformat;break}g=g||n._.stringToNumber,h=g(c)}else h=Number(c)||null;return new d(c,h)},n.version=l,n.isNumeral=function(c){return c instanceof d},n._=i={numberToFormat:function(c,h,m){var g=s[n.options.currentLocale],y=!1,C=!1,u=0,x="",I=1e12,O=1e9,v=1e6,T=1e3,k="",M=!1,E,U,Q,R,q,Y,Z;if(c=c||0,U=Math.abs(c),n._.includes(h,"(")?(y=!0,h=h.replace(/[\(|\)]/g,"")):(n._.includes(h,"+")||n._.includes(h,"-"))&&(q=n._.includes(h,"+")?h.indexOf("+"):c<0?h.indexOf("-"):-1,h=h.replace(/[\+|\-]/g,"")),n._.includes(h,"a")&&(E=h.match(/a(k|m|b|t)?/),E=E?E[1]:!1,n._.includes(h," a")&&(x=" "),h=h.replace(new RegExp(x+"a[kmbt]?"),""),U>=I&&!E||E==="t"?(x+=g.abbreviations.trillion,c=c/I):U=O&&!E||E==="b"?(x+=g.abbreviations.billion,c=c/O):U=v&&!E||E==="m"?(x+=g.abbreviations.million,c=c/v):(U=T&&!E||E==="k")&&(x+=g.abbreviations.thousand,c=c/T)),n._.includes(h,"[.]")&&(C=!0,h=h.replace("[.]",".")),Q=c.toString().split(".")[0],R=h.split(".")[1],Y=h.indexOf(","),u=(h.split(".")[0].split(",")[0].match(/0/g)||[]).length,R?(n._.includes(R,"[")?(R=R.replace("]",""),R=R.split("["),k=n._.toFixed(c,R[0].length+R[1].length,m,R[1].length)):k=n._.toFixed(c,R.length,m),Q=k.split(".")[0],n._.includes(k,".")?k=g.delimiters.decimal+k.split(".")[1]:k="",C&&Number(k.slice(1))===0&&(k="")):Q=n._.toFixed(c,0,m),x&&!E&&Number(Q)>=1e3&&x!==g.abbreviations.trillion)switch(Q=String(Number(Q)/1e3),x){case g.abbreviations.thousand:x=g.abbreviations.million;break;case g.abbreviations.million:x=g.abbreviations.billion;break;case g.abbreviations.billion:x=g.abbreviations.trillion;break}if(n._.includes(Q,"-")&&(Q=Q.slice(1),M=!0),Q.length0;A--)Q="0"+Q;return Y>-1&&(Q=Q.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g,"$1"+g.delimiters.thousands)),h.indexOf(".")===0&&(Q=""),Z=Q+k+(x||""),y?Z=(y&&M?"(":"")+Z+(y&&M?")":""):q>=0?Z=q===0?(M?"-":"+")+Z:Z+(M?"-":"+"):M&&(Z="-"+Z),Z},stringToNumber:function(c){var h=s[o.currentLocale],m=c,g={thousand:3,million:6,billion:9,trillion:12},y,C,u;if(o.zeroFormat&&c===o.zeroFormat)C=0;else if(o.nullFormat&&c===o.nullFormat||!c.replace(/[^0-9]+/g,"").length)C=null;else{C=1,h.delimiters.decimal!=="."&&(c=c.replace(/\./g,"").replace(h.delimiters.decimal,"."));for(y in g)if(u=new RegExp("[^a-zA-Z]"+h.abbreviations[y]+"(?:\\)|(\\"+h.currency.symbol+")?(?:\\))?)?$"),m.match(u)){C*=Math.pow(10,g[y]);break}C*=(c.split("-").length+Math.min(c.split("(").length-1,c.split(")").length-1))%2?1:-1,c=c.replace(/[^0-9\.]+/g,""),C*=Number(c)}return C},isNaN:function(c){return typeof c=="number"&&isNaN(c)},includes:function(c,h){return c.indexOf(h)!==-1},insert:function(c,h,m){return c.slice(0,m)+h+c.slice(m)},reduce:function(c,h){if(this===null)throw new TypeError("Array.prototype.reduce called on null or undefined");if(typeof h!="function")throw new TypeError(h+" is not a function");var m=Object(c),g=m.length>>>0,y=0,C;if(arguments.length===3)C=arguments[2];else{for(;y=g)throw new TypeError("Reduce of empty array with no initial value");C=m[y++]}for(;yg?h:g},1)},toFixed:function(c,h,m,g){var y=c.toString().split("."),C=h-(g||0),u,x,I,O;return y.length===2?u=Math.min(Math.max(y[1].length,C),h):u=C,I=Math.pow(10,u),O=(m(c+"e+"+u)/I).toFixed(u),g>h-u&&(x=new RegExp("\\.?0{1,"+(g-(h-u))+"}$"),O=O.replace(x,"")),O}},n.options=o,n.formats=r,n.locales=s,n.locale=function(c){return c&&(o.currentLocale=c.toLowerCase()),o.currentLocale},n.localeData=function(c){if(!c)return s[o.currentLocale];if(c=c.toLowerCase(),!s[c])throw new Error("Unknown locale : "+c);return s[c]},n.reset=function(){for(var c in a)o[c]=a[c]},n.zeroFormat=function(c){o.zeroFormat=typeof c=="string"?c:null},n.nullFormat=function(c){o.nullFormat=typeof c=="string"?c:null},n.defaultFormat=function(c){o.defaultFormat=typeof c=="string"?c:"0.0"},n.register=function(c,h,m){if(h=h.toLowerCase(),this[c+"s"][h])throw new TypeError(h+" "+c+" already registered.");return this[c+"s"][h]=m,m},n.validate=function(c,h){var m,g,y,C,u,x,I,O;if(typeof c!="string"&&(c+="",console.warn&&console.warn("Numeral.js: Value is not string. It has been co-erced to: ",c)),c=c.trim(),c.match(/^\d+$/))return!0;if(c==="")return!1;try{I=n.localeData(h)}catch{I=n.localeData(n.locale())}return y=I.currency.symbol,u=I.abbreviations,m=I.delimiters.decimal,I.delimiters.thousands==="."?g="\\.":g=I.delimiters.thousands,O=c.match(/^[^\d]+/),O!==null&&(c=c.substr(1),O[0]!==y)||(O=c.match(/[^\d]+$/),O!==null&&(c=c.slice(0,-1),O[0]!==u.thousand&&O[0]!==u.million&&O[0]!==u.billion&&O[0]!==u.trillion))?!1:(x=new RegExp(g+"{2}"),c.match(/[^\d.,]/g)?!1:(C=c.split(m),C.length>2?!1:C.length<2?!!C[0].match(/^\d+.*\d$/)&&!C[0].match(x):C[0].length===1?!!C[0].match(/^\d+$/)&&!C[0].match(x)&&!!C[1].match(/^\d+$/):!!C[0].match(/^\d+.*\d$/)&&!C[0].match(x)&&!!C[1].match(/^\d+$/)))},n.fn=d.prototype={clone:function(){return n(this)},format:function(c,h){var m=this._value,g=c||o.defaultFormat,y,C,u;if(h=h||Math.round,m===0&&o.zeroFormat!==null)C=o.zeroFormat;else if(m===null&&o.nullFormat!==null)C=o.nullFormat;else{for(y in r)if(g.match(r[y].regexps.format)){u=r[y].format;break}u=u||n._.numberToFormat,C=u(m,g,h)}return C},value:function(){return this._value},input:function(){return this._input},set:function(c){return this._value=Number(c),this},add:function(c){var h=i.correctionFactor.call(null,this._value,c);function m(g,y,C,u){return g+Math.round(h*y)}return this._value=i.reduce([this._value,c],m,0)/h,this},subtract:function(c){var h=i.correctionFactor.call(null,this._value,c);function m(g,y,C,u){return g-Math.round(h*y)}return this._value=i.reduce([c],m,Math.round(this._value*h))/h,this},multiply:function(c){function h(m,g,y,C){var u=i.correctionFactor(m,g);return Math.round(m*u)*Math.round(g*u)/Math.round(u*u)}return this._value=i.reduce([this._value,c],h,1),this},divide:function(c){function h(m,g,y,C){var u=i.correctionFactor(m,g);return Math.round(m*u)/Math.round(g*u)}return this._value=i.reduce([this._value,c],h),this},difference:function(c){return Math.abs(n(this._value).subtract(c).value())}},n.register("locale","en",{delimiters:{thousands:",",decimal:"."},abbreviations:{thousand:"k",million:"m",billion:"b",trillion:"t"},ordinal:function(c){var h=c%10;return~~(c%100/10)===1?"th":h===1?"st":h===2?"nd":h===3?"rd":"th"},currency:{symbol:"$"}}),function(){n.register("format","bps",{regexps:{format:/(BPS)/,unformat:/(BPS)/},format:function(c,h,m){var g=n._.includes(h," BPS")?" ":"",y;return c=c*1e4,h=h.replace(/\s?BPS/,""),y=n._.numberToFormat(c,h,m),n._.includes(y,")")?(y=y.split(""),y.splice(-1,0,g+"BPS"),y=y.join("")):y=y+g+"BPS",y},unformat:function(c){return+(n._.stringToNumber(c)*1e-4).toFixed(15)}})}(),function(){var c={base:1e3,suffixes:["B","KB","MB","GB","TB","PB","EB","ZB","YB"]},h={base:1024,suffixes:["B","KiB","MiB","GiB","TiB","PiB","EiB","ZiB","YiB"]},m=c.suffixes.concat(h.suffixes.filter(function(y){return c.suffixes.indexOf(y)<0})),g=m.join("|");g="("+g.replace("B","B(?!PS)")+")",n.register("format","bytes",{regexps:{format:/([0\s]i?b)/,unformat:new RegExp(g)},format:function(y,C,u){var x,I=n._.includes(C,"ib")?h:c,O=n._.includes(C," b")||n._.includes(C," ib")?" ":"",v,T,k;for(C=C.replace(/\s?i?b/,""),v=0;v<=I.suffixes.length;v++)if(T=Math.pow(I.base,v),k=Math.pow(I.base,v+1),y===null||y===0||y>=T&&y0&&(y=y/T);break}return x=n._.numberToFormat(y,C,u),x+O},unformat:function(y){var C=n._.stringToNumber(y),u,x;if(C){for(u=c.suffixes.length-1;u>=0;u--){if(n._.includes(y,c.suffixes[u])){x=Math.pow(c.base,u);break}if(n._.includes(y,h.suffixes[u])){x=Math.pow(h.base,u);break}}C*=x||1}return C}})}(),function(){n.register("format","currency",{regexps:{format:/(\$)/},format:function(c,h,m){var g=n.locales[n.options.currentLocale],y={before:h.match(/^([\+|\-|\(|\s|\$]*)/)[0],after:h.match(/([\+|\-|\)|\s|\$]*)$/)[0]},C,u,x;for(h=h.replace(/\s?\$\s?/,""),C=n._.numberToFormat(c,h,m),c>=0?(y.before=y.before.replace(/[\-\(]/,""),y.after=y.after.replace(/[\-\)]/,"")):c<0&&!n._.includes(y.before,"-")&&!n._.includes(y.before,"(")&&(y.before="-"+y.before),x=0;x=0;x--)switch(u=y.after[x],u){case"$":C=x===y.after.length-1?C+g.currency.symbol:n._.insert(C,g.currency.symbol,-(y.after.length-(1+x)));break;case" ":C=x===y.after.length-1?C+" ":n._.insert(C," ",-(y.after.length-(1+x)+g.currency.symbol.length-1));break}return C}})}(),function(){n.register("format","exponential",{regexps:{format:/(e\+|e-)/,unformat:/(e\+|e-)/},format:function(c,h,m){var g,y=typeof c=="number"&&!n._.isNaN(c)?c.toExponential():"0e+0",C=y.split("e");return h=h.replace(/e[\+|\-]{1}0/,""),g=n._.numberToFormat(Number(C[0]),h,m),g+"e"+C[1]},unformat:function(c){var h=n._.includes(c,"e+")?c.split("e+"):c.split("e-"),m=Number(h[0]),g=Number(h[1]);g=n._.includes(c,"e-")?g*=-1:g;function y(C,u,x,I){var O=n._.correctionFactor(C,u),v=C*O*(u*O)/(O*O);return v}return n._.reduce([m,Math.pow(10,g)],y,1)}})}(),function(){n.register("format","ordinal",{regexps:{format:/(o)/},format:function(c,h,m){var g=n.locales[n.options.currentLocale],y,C=n._.includes(h," o")?" ":"";return h=h.replace(/\s?o/,""),C+=g.ordinal(c),y=n._.numberToFormat(c,h,m),y+C}})}(),function(){n.register("format","percentage",{regexps:{format:/(%)/,unformat:/(%)/},format:function(c,h,m){var g=n._.includes(h," %")?" ":"",y;return n.options.scalePercentBy100&&(c=c*100),h=h.replace(/\s?\%/,""),y=n._.numberToFormat(c,h,m),n._.includes(y,")")?(y=y.split(""),y.splice(-1,0,g+"%"),y=y.join("")):y=y+g+"%",y},unformat:function(c){var h=n._.stringToNumber(c);return n.options.scalePercentBy100?h*.01:h}})}(),function(){n.register("format","time",{regexps:{format:/(:)/,unformat:/(:)/},format:function(c,h,m){var g=Math.floor(c/60/60),y=Math.floor((c-g*60*60)/60),C=Math.round(c-g*60*60-y*60);return g+":"+(y<10?"0"+y:y)+":"+(C<10?"0"+C:C)},unformat:function(c){var h=c.split(":"),m=0;return h.length===3?(m=m+Number(h[0])*60*60,m=m+Number(h[1])*60,m=m+Number(h[2])):h.length===2&&(m=m+Number(h[0])*60,m=m+Number(h[1])),Number(m)}})}(),n})})(vo);var ik=vo.exports;const sk={name:"Numeral",emits:["on-change"],props:{value:{type:[String,Number]},format:{type:String},prefix:{type:[String,Number]},suffix:{type:[String,Number]}},data(){return{currentValue:""}},watch:{value(){this.init()},format(){this.init()}},methods:{init(){if(this.value!==void 0){const e=ik(this.value);this.format?this.currentValue=e.format(this.format):this.currentValue=e.value(),this.$emit("on-change",this.currentValue)}},getValue(){return this.currentValue}},mounted(){this.init()}},rk={class:"ivu-numeral"};function lk(e,n,i,l,r,s){return t.openBlock(),t.createElementBlock("span",rk,[t.renderSlot(e.$slots,"prefix",{},()=>[t.createTextVNode(t.toDisplayString(i.prefix),1)]),t.createTextVNode(t.toDisplayString(r.currentValue),1),t.renderSlot(e.$slots,"suffix",{},()=>[t.createTextVNode(t.toDisplayString(i.suffix),1)])])}var jo=S(sk,[["render",lk]]);const ak="ivu-select-group",ok={name:"OptionGroup",props:{label:{type:String,default:""}},provide(){return{OptionGroupInstance:this}},inject:["SelectInstance"],data(){return{prefixCls:ak,hidden:!1,id:Ee(6),optionList:[]}},computed:{show(){return this.optionList.find(e=>e.proxy&&e.proxy.isShow)}}};function ck(e,n,i,l,r,s){return t.withDirectives((t.openBlock(),t.createElementBlock("li",{class:t.normalizeClass([r.prefixCls+"-wrap"])},[t.createElementVNode("div",{class:t.normalizeClass([r.prefixCls+"-title"])},t.toDisplayString(i.label),3),t.createElementVNode("ul",null,[t.createElementVNode("li",{class:t.normalizeClass([r.prefixCls]),ref:"options"},[t.renderSlot(e.$slots,"default")],2)])],2)),[[t.vShow,s.show]])}var Ko=S(ok,[["render",ck]]);const Cr="ivu-page";function dk(e){return/^[1-9][0-9]*$/.test(e+"")}const hk={name:"PageOption",mixins:[ge],components:{iSelect:nn,iOption:gn},emits:["on-size","on-page"],props:{pageSizeOpts:Array,showSizer:Boolean,showElevator:Boolean,current:Number,_current:Number,pageSize:Number,allPages:Number,isSmall:Boolean,placement:String,transfer:Boolean,disabled:Boolean,eventsEnabled:Boolean},data(){return{currentPageSize:this.pageSize}},watch:{pageSize(e){this.currentPageSize=e}},computed:{size(){return this.isSmall?"small":"default"},optsClasses(){return[`${Cr}-options`]},sizerClasses(){return[`${Cr}-options-sizer`]},ElevatorClasses(){return[`${Cr}-options-elevator`]}},methods:{changeSize(){this.$emit("on-size",this.currentPageSize)},changePage(e){let n=e.target.value.trim(),i=0;if(dk(n)){if(n=Number(n),n!=this.current){const l=this.allPages;n>l?i=l:i=n}}else i=1;i&&(this.$emit("on-page",i),e.target.value=i)}}},fk=["value","disabled"];function uk(e,n,i,l,r,s){const a=t.resolveComponent("i-option"),o=t.resolveComponent("i-select");return i.showSizer||i.showElevator?(t.openBlock(),t.createElementBlock("div",{key:0,class:t.normalizeClass(s.optsClasses)},[i.showSizer?(t.openBlock(),t.createElementBlock("div",{key:0,class:t.normalizeClass(s.sizerClasses)},[t.createVNode(o,{modelValue:r.currentPageSize,"onUpdate:modelValue":n[0]||(n[0]=d=>r.currentPageSize=d),size:s.size,placement:i.placement,transfer:i.transfer,disabled:i.disabled,eventsEnabled:i.eventsEnabled,onOnChange:s.changeSize},{default:t.withCtx(()=>[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(i.pageSizeOpts,d=>(t.openBlock(),t.createBlock(a,{key:d,value:d,style:{"text-align":"center"}},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(d)+" "+t.toDisplayString(e.t("i.page.page")),1)]),_:2},1032,["value"]))),128))]),_:1},8,["modelValue","size","placement","transfer","disabled","eventsEnabled","onOnChange"])],2)):t.createCommentVNode("",!0),i.showElevator?(t.openBlock(),t.createElementBlock("div",{key:1,class:t.normalizeClass(s.ElevatorClasses)},[t.createTextVNode(t.toDisplayString(e.t("i.page.goto"))+" ",1),t.createElementVNode("input",{type:"text",value:i._current,autocomplete:"off",spellcheck:"false",disabled:i.disabled,onKeyup:n[1]||(n[1]=t.withKeys((...d)=>s.changePage&&s.changePage(...d),["enter"]))},null,40,fk),t.createTextVNode(" "+t.toDisplayString(e.t("i.page.p")),1)],2)):t.createCommentVNode("",!0)],2)):t.createCommentVNode("",!0)}var mk=S(hk,[["render",uk]]);const $e="ivu-page",pk={name:"Page",mixins:[ge],components:{Options:mk},emits:["update:modelValue","on-change","on-prev","on-next","on-page-size-change"],props:{modelValue:{type:Number,default:1},total:{type:Number,default:0},pageSize:{type:Number,default:10},pageSizeOpts:{type:Array,default(){return[10,20,30,40]}},placement:{validator(e){return V(e,["top","bottom"])},default:"bottom"},transfer:{type:Boolean,default(){const e=t.getCurrentInstance().appContext.config.globalProperties;return!e.$VIEWUI||e.$VIEWUI.transfer===""?!1:e.$VIEWUI.transfer}},size:{validator(e){return V(e,["small","default"])}},simple:{type:Boolean,default:!1},showTotal:{type:Boolean,default:!1},showElevator:{type:Boolean,default:!1},showSizer:{type:Boolean,default:!1},className:{type:String},styles:{type:Object},prevText:{type:String,default:""},nextText:{type:String,default:""},disabled:{type:Boolean,default:!1},eventsEnabled:{type:Boolean,default:!1}},data(){return{prefixCls:$e,currentPage:this.modelValue,currentPageSize:this.pageSize}},watch:{total(e){let n=Math.ceil(e/this.currentPageSize);n=this.allPages)return!1;this.changePage(e+1),this.$emit("on-next",e+1)},fastPrev(){if(this.disabled)return;const e=this.currentPage-5;e>0?this.changePage(e):this.changePage(1)},fastNext(){if(this.disabled)return;const e=this.currentPage+5;e>this.allPages?this.changePage(this.allPages):this.changePage(e)},onSize(e){this.disabled||(this.currentPageSize=e,this.$emit("on-page-size-change",e),this.changePage(1))},onPage(e){this.disabled||this.changePage(e)},keyDown(e){const n=e.keyCode;n>=48&&n<=57||n>=96&&n<=105||n===8||n===37||n===39||e.preventDefault()},keyUp(e){const n=e.keyCode,i=parseInt(e.target.value);if(n===38)this.prev();else if(n===40)this.next();else if(n===13){let l=1;i>this.allPages?l=this.allPages:i<=0||!i?l=1:l=i,e.target.value=l,this.changePage(l)}}}},gk=["title"],yk=[t.createElementVNode("a",null,[t.createElementVNode("i",{class:"ivu-icon ivu-icon-ios-arrow-back"})],-1)],Ck=["title"],bk=["value","disabled"],kk=t.createElementVNode("span",null,"/",-1),wk=["title"],Sk=[t.createElementVNode("a",null,[t.createElementVNode("i",{class:"ivu-icon ivu-icon-ios-arrow-forward"})],-1)],xk=["title"],Bk={key:1,class:"ivu-icon ivu-icon-ios-arrow-back"},Vk=[t.createElementVNode("a",null,"1",-1)],Ek=["title"],Tk=[t.createElementVNode("a",null,[t.createElementVNode("i",{class:"ivu-icon ivu-icon-ios-arrow-back"}),t.createElementVNode("i",{class:"ivu-icon ivu-icon-ios-more"})],-1)],Nk=["title"],Ik=["title"],_k=["title"],Dk=["title"],Mk=["title"],zk=["title"],Pk=["title"],$k=["title"],Ok=[t.createElementVNode("a",null,[t.createElementVNode("i",{class:"ivu-icon ivu-icon-ios-arrow-forward"}),t.createElementVNode("i",{class:"ivu-icon ivu-icon-ios-more"})],-1)],Lk=["title"],Fk=["title"],Ak={key:1,class:"ivu-icon ivu-icon-ios-arrow-forward"};function Rk(e,n,i,l,r,s){const a=t.resolveComponent("Options");return i.simple?(t.openBlock(),t.createElementBlock("ul",{key:0,class:t.normalizeClass(s.simpleWrapClasses),style:t.normalizeStyle(i.styles)},[t.createElementVNode("li",{title:e.t("i.page.prev"),class:t.normalizeClass(s.prevClasses),onClick:n[0]||(n[0]=(...o)=>s.prev&&s.prev(...o))},yk,10,gk),t.createElementVNode("div",{class:t.normalizeClass(s.simplePagerClasses),title:r.currentPage+"/"+s.allPages},[t.createElementVNode("input",{type:"text",value:r.currentPage,autocomplete:"off",spellcheck:"false",disabled:i.disabled,onKeydown:n[1]||(n[1]=(...o)=>s.keyDown&&s.keyDown(...o)),onKeyup:n[2]||(n[2]=(...o)=>s.keyUp&&s.keyUp(...o)),onChange:n[3]||(n[3]=(...o)=>s.keyUp&&s.keyUp(...o))},null,40,bk),kk,t.createTextVNode(" "+t.toDisplayString(s.allPages),1)],10,Ck),t.createElementVNode("li",{title:e.t("i.page.next"),class:t.normalizeClass(s.nextClasses),onClick:n[4]||(n[4]=(...o)=>s.next&&s.next(...o))},Sk,10,wk)],6)):(t.openBlock(),t.createElementBlock("ul",{key:1,class:t.normalizeClass(s.wrapClasses),style:t.normalizeStyle(i.styles)},[i.showTotal?(t.openBlock(),t.createElementBlock("span",{key:0,class:t.normalizeClass([r.prefixCls+"-total"])},[t.renderSlot(e.$slots,"default",{},()=>[t.createTextVNode(t.toDisplayString(e.t("i.page.total"))+" "+t.toDisplayString(i.total)+" ",1),i.total<=1?(t.openBlock(),t.createElementBlock(t.Fragment,{key:0},[t.createTextVNode(t.toDisplayString(e.t("i.page.item")),1)],64)):(t.openBlock(),t.createElementBlock(t.Fragment,{key:1},[t.createTextVNode(t.toDisplayString(e.t("i.page.items")),1)],64))])],2)):t.createCommentVNode("",!0),t.createElementVNode("li",{title:e.t("i.page.prev"),class:t.normalizeClass(s.prevClasses),onClick:n[5]||(n[5]=(...o)=>s.prev&&s.prev(...o))},[t.createElementVNode("a",null,[i.prevText!==""?(t.openBlock(),t.createElementBlock(t.Fragment,{key:0},[t.createTextVNode(t.toDisplayString(i.prevText),1)],64)):(t.openBlock(),t.createElementBlock("i",Bk))])],10,xk),t.createElementVNode("li",{title:"1",class:t.normalizeClass(s.firstPageClasses),onClick:n[6]||(n[6]=o=>s.changePage(1))},Vk,2),r.currentPage>5?(t.openBlock(),t.createElementBlock("li",{key:1,title:e.t("i.page.prev5"),class:t.normalizeClass([r.prefixCls+"-item-jump-prev"]),onClick:n[7]||(n[7]=(...o)=>s.fastPrev&&s.fastPrev(...o))},Tk,10,Ek)):t.createCommentVNode("",!0),r.currentPage===5?(t.openBlock(),t.createElementBlock("li",{key:2,title:r.currentPage-3,class:t.normalizeClass([r.prefixCls+"-item"]),onClick:n[8]||(n[8]=o=>s.changePage(r.currentPage-3))},[t.createElementVNode("a",null,t.toDisplayString(r.currentPage-3),1)],10,Nk)):t.createCommentVNode("",!0),r.currentPage-2>1?(t.openBlock(),t.createElementBlock("li",{key:3,title:r.currentPage-2,class:t.normalizeClass([r.prefixCls+"-item"]),onClick:n[9]||(n[9]=o=>s.changePage(r.currentPage-2))},[t.createElementVNode("a",null,t.toDisplayString(r.currentPage-2),1)],10,Ik)):t.createCommentVNode("",!0),r.currentPage-1>1?(t.openBlock(),t.createElementBlock("li",{key:4,title:r.currentPage-1,class:t.normalizeClass([r.prefixCls+"-item"]),onClick:n[10]||(n[10]=o=>s.changePage(r.currentPage-1))},[t.createElementVNode("a",null,t.toDisplayString(r.currentPage-1),1)],10,_k)):t.createCommentVNode("",!0),r.currentPage!=1&&r.currentPage!=s.allPages?(t.openBlock(),t.createElementBlock("li",{key:5,title:r.currentPage,class:t.normalizeClass([r.prefixCls+"-item",r.prefixCls+"-item-active"])},[t.createElementVNode("a",null,t.toDisplayString(r.currentPage),1)],10,Dk)):t.createCommentVNode("",!0),r.currentPage+1s.changePage(r.currentPage+1))},[t.createElementVNode("a",null,t.toDisplayString(r.currentPage+1),1)],10,Mk)):t.createCommentVNode("",!0),r.currentPage+2s.changePage(r.currentPage+2))},[t.createElementVNode("a",null,t.toDisplayString(r.currentPage+2),1)],10,zk)):t.createCommentVNode("",!0),s.allPages-r.currentPage===4?(t.openBlock(),t.createElementBlock("li",{key:8,title:r.currentPage+3,class:t.normalizeClass([r.prefixCls+"-item"]),onClick:n[13]||(n[13]=o=>s.changePage(r.currentPage+3))},[t.createElementVNode("a",null,t.toDisplayString(r.currentPage+3),1)],10,Pk)):t.createCommentVNode("",!0),s.allPages-r.currentPage>=5?(t.openBlock(),t.createElementBlock("li",{key:9,title:e.t("i.page.next5"),class:t.normalizeClass([r.prefixCls+"-item-jump-next"]),onClick:n[14]||(n[14]=(...o)=>s.fastNext&&s.fastNext(...o))},Ok,10,$k)):t.createCommentVNode("",!0),s.allPages>1?(t.openBlock(),t.createElementBlock("li",{key:10,title:s.allPages,class:t.normalizeClass(s.lastPageClasses),onClick:n[15]||(n[15]=o=>s.changePage(s.allPages))},[t.createElementVNode("a",null,t.toDisplayString(s.allPages),1)],10,Lk)):t.createCommentVNode("",!0),t.createElementVNode("li",{title:e.t("i.page.next"),class:t.normalizeClass(s.nextClasses),onClick:n[16]||(n[16]=(...o)=>s.next&&s.next(...o))},[t.createElementVNode("a",null,[i.nextText!==""?(t.openBlock(),t.createElementBlock(t.Fragment,{key:0},[t.createTextVNode(t.toDisplayString(i.nextText),1)],64)):(t.openBlock(),t.createElementBlock("i",Ak))])],10,Fk),t.createVNode(a,{"show-sizer":i.showSizer,"page-size":r.currentPageSize,"page-size-opts":i.pageSizeOpts,placement:i.placement,transfer:i.transfer,"show-elevator":i.showElevator,_current:r.currentPage,current:r.currentPage,disabled:i.disabled,"all-pages":s.allPages,"is-small":s.isSmall,eventsEnabled:i.eventsEnabled,onOnSize:s.onSize,onOnPage:s.onPage},null,8,["show-sizer","page-size","page-size-opts","placement","transfer","show-elevator","_current","current","disabled","all-pages","is-small","eventsEnabled","onOnSize","onOnPage"])],6))}var qo=S(pk,[["render",Rk]]);const Hk={name:"PageHeader",components:{Breadcrumb:Ts,BreadcrumbItem:Ns,Divider:Ki,Icon:se,Tabs:ls,TabPane:os},emits:["on-tab-change","on-back"],props:{title:{type:String},back:{type:Boolean,default:!1},logo:{type:String},action:{type:String},content:{type:String},extra:{type:String},breadcrumbList:{type:Array},hiddenBreadcrumb:{type:Boolean,default:!1},tabList:{type:Array},tabActiveKey:{type:String},wide:{type:Boolean,default:!1}},computed:{classes(){return{"ivu-page-header-wide":this.wide}}},methods:{handleTabChange(e){const n=this.tabList.find(i=>i.name===e);this.$emit("on-tab-change",JSON.parse(JSON.stringify(n)))},handleBack(){this.$emit("on-back")}}},Wk={key:0,class:"ivu-page-header-breadcrumb"},Uk={class:"ivu-page-header-detail"},vk={key:1,class:"ivu-page-header-logo"},jk=["src"],Kk={class:"ivu-page-header-main"},qk={class:"ivu-page-header-row"},Yk={key:1,class:"ivu-page-header-title"},Gk={key:2,class:"ivu-page-header-action"},Jk={class:"ivu-page-header-row"},Xk={key:0,class:"ivu-page-header-content"},Zk={key:1,class:"ivu-page-header-extra"},Qk={key:1,class:"ivu-page-header-tabs"};function ew(e,n,i,l,r,s){const a=t.resolveComponent("BreadcrumbItem"),o=t.resolveComponent("Breadcrumb"),d=t.resolveComponent("Icon"),c=t.resolveComponent("Divider"),h=t.resolveComponent("TabPane"),m=t.resolveComponent("Tabs");return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(["ivu-page-header",s.classes])},[e.$slots.breadcrumb||!i.hiddenBreadcrumb?(t.openBlock(),t.createElementBlock("div",Wk,[t.renderSlot(e.$slots,"breadcrumb",{},()=>[t.createVNode(o,null,{default:t.withCtx(()=>[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(i.breadcrumbList,(g,y)=>(t.openBlock(),t.createBlock(a,{key:y,to:g.to,replace:g.replace,target:g.target},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(g.title),1)]),_:2},1032,["to","replace","target"]))),128))]),_:1})])])):t.createCommentVNode("",!0),t.createElementVNode("div",Uk,[i.back||e.$slots.back?(t.openBlock(),t.createElementBlock("div",{key:0,class:"ivu-page-header-back",onClick:n[0]||(n[0]=(...g)=>s.handleBack&&s.handleBack(...g))},[t.renderSlot(e.$slots,"back",{},()=>[t.createVNode(d,{type:"md-arrow-back"})]),t.createVNode(c,{type:"vertical"})])):t.createCommentVNode("",!0),i.logo||e.$slots.logo?(t.openBlock(),t.createElementBlock("div",vk,[t.renderSlot(e.$slots,"logo",{},()=>[t.createElementVNode("img",{src:i.logo},null,8,jk)])])):t.createCommentVNode("",!0),t.createElementVNode("div",Kk,[t.createElementVNode("div",qk,[i.back||e.$slots.back?(t.openBlock(),t.createElementBlock("div",{key:0,class:"ivu-page-header-back",onClick:n[1]||(n[1]=(...g)=>s.handleBack&&s.handleBack(...g))},[t.renderSlot(e.$slots,"back",{},()=>[t.createVNode(d,{type:"md-arrow-back"})]),t.createVNode(c,{type:"vertical"})])):t.createCommentVNode("",!0),i.title||e.$slots.title?(t.openBlock(),t.createElementBlock("div",Yk,[t.renderSlot(e.$slots,"title",{},()=>[t.createTextVNode(t.toDisplayString(i.title),1)])])):t.createCommentVNode("",!0),i.action||e.$slots.action?(t.openBlock(),t.createElementBlock("div",Gk,[t.renderSlot(e.$slots,"action",{},()=>[t.createTextVNode(t.toDisplayString(i.action),1)])])):t.createCommentVNode("",!0)]),t.createElementVNode("div",Jk,[i.content||e.$slots.content?(t.openBlock(),t.createElementBlock("div",Xk,[t.renderSlot(e.$slots,"content",{},()=>[t.createTextVNode(t.toDisplayString(i.content),1)])])):t.createCommentVNode("",!0),i.extra||e.$slots.extra?(t.openBlock(),t.createElementBlock("div",Zk,[t.renderSlot(e.$slots,"extra",{},()=>[t.createTextVNode(t.toDisplayString(i.extra),1)])])):t.createCommentVNode("",!0)])])]),i.tabList&&i.tabList.length?(t.openBlock(),t.createElementBlock("div",Qk,[t.createVNode(m,{animated:!1,"model-value":i.tabActiveKey,onOnClick:s.handleTabChange},{default:t.withCtx(()=>[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(i.tabList,(g,y)=>(t.openBlock(),t.createBlock(h,{key:y,label:g.label,name:g.name},null,8,["label","name"]))),128))]),_:1},8,["model-value","onOnClick"])])):t.createCommentVNode("",!0)],2)}var Yo=S(Hk,[["render",ew]]);const tw=t.defineComponent({name:"CollapseTransition",props:{ready:{type:Boolean,default:!0}},setup(e){return{on:{beforeEnter(n){!e.ready||(ws(n,"collapse-transition"),n.dataset||(n.dataset={}),n.dataset.oldPaddingTop=n.style.paddingTop,n.dataset.oldPaddingBottom=n.style.paddingBottom,n.style.height="0",n.style.paddingTop=0,n.style.paddingBottom=0)},enter(n){!e.ready||(n.dataset.oldOverflow=n.style.overflow,n.scrollHeight!==0?(n.style.height=n.scrollHeight+"px",n.style.paddingTop=n.dataset.oldPaddingTop,n.style.paddingBottom=n.dataset.oldPaddingBottom):(n.style.height="",n.style.paddingTop=n.dataset.oldPaddingTop,n.style.paddingBottom=n.dataset.oldPaddingBottom),n.style.overflow="hidden")},afterEnter(n){!e.ready||(Ss(n,"collapse-transition"),n.style.height="",n.style.overflow=n.dataset.oldOverflow)},beforeLeave(n){!e.ready||(n.dataset||(n.dataset={}),n.dataset.oldPaddingTop=n.style.paddingTop,n.dataset.oldPaddingBottom=n.style.paddingBottom,n.dataset.oldOverflow=n.style.overflow,n.style.height=n.scrollHeight+"px",n.style.overflow="hidden")},leave(n){!e.ready||n.scrollHeight!==0&&(ws(n,"collapse-transition"),n.style.height=0,n.style.paddingTop=0,n.style.paddingBottom=0)},afterLeave(n){!e.ready||(Ss(n,"collapse-transition"),n.style.height="",n.style.overflow=n.dataset.oldOverflow,n.style.paddingTop=n.dataset.oldPaddingTop,n.style.paddingBottom=n.dataset.oldPaddingBottom)}}}}});function nw(e,n,i,l,r,s){return t.openBlock(),t.createBlock(t.Transition,t.toHandlers(e.on),{default:t.withCtx(()=>[t.renderSlot(e.$slots,"default")]),_:3},16)}var br=S(tw,[["render",nw]]);const mi="ivu-collapse",iw={name:"Panel",components:{Icon:se,CollapseTransition:br},inject:["CollapseInstance"],props:{name:{type:String},hideArrow:{type:Boolean,default:!1}},data(){return{index:0,mounted:!1}},computed:{itemClasses(){return[`${mi}-item`,{[`${mi}-item-active`]:this.isActive}]},headerClasses(){return`${mi}-header`},contentClasses(){return`${mi}-content`},boxClasses(){return`${mi}-content-box`},isActive(){const e=this.CollapseInstance.getActiveKey(),n=this.name||this.index.toString();return e.indexOf(n)>-1}},methods:{setIndex(){this.index=this.CollapseInstance.panelCount+1,this.CollapseInstance.panelCount=this.index},toggle(){this.CollapseInstance.toggle({name:this.name||this.index,isActive:this.isActive})}},mounted(){this.setIndex(),this.mounted=!0}};function sw(e,n,i,l,r,s){const a=t.resolveComponent("Icon"),o=t.resolveComponent("collapse-transition");return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(s.itemClasses)},[t.createElementVNode("div",{class:t.normalizeClass(s.headerClasses),onClick:n[0]||(n[0]=(...d)=>s.toggle&&s.toggle(...d))},[i.hideArrow?t.createCommentVNode("",!0):(t.openBlock(),t.createBlock(a,{key:0,type:"ios-arrow-forward"})),t.renderSlot(e.$slots,"default")],2),r.mounted?(t.openBlock(),t.createBlock(o,{key:0},{default:t.withCtx(()=>[t.withDirectives(t.createElementVNode("div",{class:t.normalizeClass(s.contentClasses)},[t.createElementVNode("div",{class:t.normalizeClass(s.boxClasses)},[t.renderSlot(e.$slots,"content")],2)],2),[[t.vShow,s.isActive]])]),_:3})):t.createCommentVNode("",!0)],2)}var Go=S(iw,[["render",sw]]);const Jo={name:"Paragraph",mixins:[ri],render(){return t.h(ns,{...this.$props,component:"div",...this.commonEvents()},this.commonSlots())}},Xo={name:"Password",mixins:[jn],data(){return{className:"ivu-login-password",prefix:"ios-lock-outline",placeholder:"\u8BF7\u8F93\u5165\u5BC6\u7801",type:"password"}}},vt="ivu-poptip",rw={name:"Poptip",mixins:[sl,ge],emits:["on-ok","on-cancel"],directives:{clickOutside:Fs},components:{iButton:Oe},props:{trigger:{validator(e){return V(e,["click","focus","hover"])},default:"click"},placement:{validator(e){return V(e,["top","top-start","top-end","bottom","bottom-start","bottom-end","left","left-start","left-end","right","right-start","right-end"])},default:"top"},title:{type:[String,Number]},content:{type:[String,Number],default:""},width:{type:[String,Number]},confirm:{type:Boolean,default:!1},okText:{type:String},cancelText:{type:String},transfer:{type:Boolean,default(){const e=t.getCurrentInstance().appContext.config.globalProperties;return!e.$VIEWUI||e.$VIEWUI.transfer===""?!1:e.$VIEWUI.transfer}},popperClass:{type:String},wordWrap:{type:Boolean,default:!1},padding:{type:String},disabled:{type:Boolean,default:!1},capture:{type:Boolean,default(){const e=t.getCurrentInstance().appContext.config.globalProperties;return e.$VIEWUI?e.$VIEWUI.capture:!1}},transferClassName:{type:String}},data(){return{prefixCls:vt,showTitle:!0,isInput:!1,disableCloseUnderTransfer:!1,tIndex:this.handleGetIndex()}},computed:{classes(){return[`${vt}`,{[`${vt}-confirm`]:this.confirm}]},popperClasses(){return[`${vt}-popper`,{[`${vt}-confirm`]:this.transfer&&this.confirm,[`${this.popperClass}`]:!!this.popperClass,[vt+"-transfer"]:this.transfer,[this.transferClassName]:this.transferClassName}]},styles(){let e={};return this.width&&(e.width=`${this.width}px`),this.transfer&&(e["z-index"]=1060+this.tIndex),e},localeOkText(){return this.okText===void 0?this.t("i.poptip.okText"):this.okText},localeCancelText(){return this.cancelText===void 0?this.t("i.poptip.cancelText"):this.cancelText},contentClasses(){return[`${vt}-body-content`,{[`${vt}-body-content-word-wrap`]:this.wordWrap}]},contentPaddingStyle(){const e={};return this.padding!==""&&(e.padding=this.padding),e}},methods:{handleClick(){if(!this.disabled){if(this.confirm)return this.visible=!this.visible,!0;if(this.trigger!=="click")return!1;this.visible=!this.visible}},handleTransferClick(){this.transfer&&(this.disableCloseUnderTransfer=!0)},handleClose(){if(this.disableCloseUnderTransfer)return this.disableCloseUnderTransfer=!1,!1;if(this.confirm)return this.visible=!1,!0;if(this.trigger!=="click")return!1;this.visible=!1},handleFocus(e=!0){if(!this.disabled){if(this.trigger!=="focus"||this.confirm||this.isInput&&!e)return!1;this.visible=!0}},handleBlur(e=!0){if(this.trigger!=="focus"||this.confirm||this.isInput&&!e)return!1;this.visible=!1},handleMouseenter(){if(!this.disabled){if(this.trigger!=="hover"||this.confirm)return!1;this.enterTimer&&clearTimeout(this.enterTimer),this.enterTimer=setTimeout(()=>{this.visible=!0},100)}},handleMouseleave(){if(this.trigger!=="hover"||this.confirm)return!1;this.enterTimer&&(clearTimeout(this.enterTimer),this.enterTimer=setTimeout(()=>{this.visible=!1},100))},cancel(){this.visible=!1,this.$emit("on-cancel")},ok(){this.visible=!1,this.$emit("on-ok")},getInputChildren(){const e=this.$refs.reference.querySelectorAll("input"),n=this.$refs.reference.querySelectorAll("textarea");let i=null;return e.length?i=e[0]:n.length&&(i=n[0]),i},handleGetIndex(){return tn(),zt},handleIndexIncrease(){this.tIndex=this.handleGetIndex()}},mounted(){this.confirm||(this.showTitle=this.$slots.title!==void 0||this.title),this.trigger==="focus"&&t.nextTick(()=>{const e=this.getInputChildren();e&&(this.isInput=!0,e.addEventListener("focus",this.handleFocus,!1),e.addEventListener("blur",this.handleBlur,!1))})},beforeUnmount(){const e=this.getInputChildren();e&&(e.removeEventListener("focus",this.handleFocus,!1),e.removeEventListener("blur",this.handleBlur,!1))}},lw=t.createElementVNode("i",{class:"ivu-icon ivu-icon-ios-help-circle"},null,-1);function aw(e,n,i,l,r,s){const a=t.resolveComponent("i-button"),o=t.resolveDirective("click-outside");return t.withDirectives((t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(s.classes),onMouseenter:n[6]||(n[6]=(...d)=>s.handleMouseenter&&s.handleMouseenter(...d)),onMouseleave:n[7]||(n[7]=(...d)=>s.handleMouseleave&&s.handleMouseleave(...d))},[t.createElementVNode("div",{class:t.normalizeClass([r.prefixCls+"-rel"]),ref:"reference",onClick:n[0]||(n[0]=(...d)=>s.handleClick&&s.handleClick(...d)),onMousedown:n[1]||(n[1]=d=>s.handleFocus(!1)),onMouseup:n[2]||(n[2]=d=>s.handleBlur(!1))},[t.renderSlot(e.$slots,"default")],34),(t.openBlock(),t.createBlock(t.Teleport,{to:"body",disabled:!i.transfer},[t.createVNode(t.Transition,{name:"fade"},{default:t.withCtx(()=>[t.withDirectives(t.createElementVNode("div",{class:t.normalizeClass(s.popperClasses),style:t.normalizeStyle(s.styles),ref:"popper",onClick:n[3]||(n[3]=(...d)=>s.handleTransferClick&&s.handleTransferClick(...d)),onMouseenter:n[4]||(n[4]=(...d)=>s.handleMouseenter&&s.handleMouseenter(...d)),onMouseleave:n[5]||(n[5]=(...d)=>s.handleMouseleave&&s.handleMouseleave(...d))},[t.createElementVNode("div",{class:t.normalizeClass([r.prefixCls+"-content"])},[t.createElementVNode("div",{class:t.normalizeClass([r.prefixCls+"-arrow"])},null,2),i.confirm?(t.openBlock(),t.createElementBlock("div",{key:0,class:t.normalizeClass([r.prefixCls+"-inner"])},[t.createElementVNode("div",{class:t.normalizeClass([r.prefixCls+"-body"])},[lw,t.createElementVNode("div",{class:t.normalizeClass([r.prefixCls+"-body-message"])},[t.renderSlot(e.$slots,"title",{},()=>[t.createTextVNode(t.toDisplayString(i.title),1)])],2)],2),t.createElementVNode("div",{class:t.normalizeClass([r.prefixCls+"-footer"])},[t.createVNode(a,{type:"text",size:"small",onClick:s.cancel},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(s.localeCancelText),1)]),_:1},8,["onClick"]),t.createVNode(a,{type:"primary",size:"small",onClick:s.ok},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(s.localeOkText),1)]),_:1},8,["onClick"])],2)],2)):t.createCommentVNode("",!0),i.confirm?t.createCommentVNode("",!0):(t.openBlock(),t.createElementBlock("div",{key:1,class:t.normalizeClass([r.prefixCls+"-inner"])},[r.showTitle?(t.openBlock(),t.createElementBlock("div",{key:0,class:t.normalizeClass([r.prefixCls+"-title"]),style:t.normalizeStyle(s.contentPaddingStyle),ref:"title"},[t.renderSlot(e.$slots,"title",{},()=>[t.createElementVNode("div",{class:t.normalizeClass([r.prefixCls+"-title-inner"])},t.toDisplayString(i.title),3)])],6)):t.createCommentVNode("",!0),t.createElementVNode("div",{class:t.normalizeClass([r.prefixCls+"-body"]),style:t.normalizeStyle(s.contentPaddingStyle)},[t.createElementVNode("div",{class:t.normalizeClass(s.contentClasses)},[t.renderSlot(e.$slots,"content",{},()=>[t.createElementVNode("div",{class:t.normalizeClass([r.prefixCls+"-body-content-inner"])},t.toDisplayString(i.content),3)])],2)],6)],2))],2)],38),[[t.vShow,e.visible]])]),_:3})],8,["disabled"]))],34)),[[o,s.handleClose]])}var kr=S(rw,[["render",aw]]);const kt="ivu-progress",ow={name:"Progress",components:{Icon:se},props:{percent:{type:Number,default:0},successPercent:{type:Number,default:0},status:{validator(e){return V(e,["normal","active","wrong","success"])},default:"normal"},hideInfo:{type:Boolean,default:!1},strokeWidth:{type:Number,default:10},vertical:{type:Boolean,default:!1},strokeColor:{type:[String,Array]},textInside:{type:Boolean,default:!1}},data(){return{currentStatus:this.status}},computed:{isStatus(){return this.currentStatus==="wrong"||this.currentStatus==="success"},statusIcon(){let e="";switch(this.currentStatus){case"wrong":e="ios-close-circle";break;case"success":e="ios-checkmark-circle";break}return e},bgStyle(){const e=this.vertical?{height:`${this.percent}%`,width:`${this.strokeWidth}px`}:{width:`${this.percent}%`,height:`${this.strokeWidth}px`};return this.strokeColor&&(typeof this.strokeColor=="string"?e["background-color"]=this.strokeColor:e["background-image"]=`linear-gradient(to right, ${this.strokeColor[0]} 0%, ${this.strokeColor[1]} 100%)`),e},successBgStyle(){return this.vertical?{height:`${this.successPercent}%`,width:`${this.strokeWidth}px`}:{width:`${this.successPercent}%`,height:`${this.strokeWidth}px`}},wrapClasses(){return[`${kt}`,`${kt}-${this.currentStatus}`,{[`${kt}-show-info`]:!this.hideInfo&&!this.textInside,[`${kt}-vertical`]:this.vertical}]},textClasses(){return`${kt}-text`},textInnerClasses(){return`${kt}-text-inner`},outerClasses(){return`${kt}-outer`},innerClasses(){return`${kt}-inner`},bgClasses(){return`${kt}-bg`},successBgClasses(){return`${kt}-success-bg`}},created(){this.handleStatus()},methods:{handleStatus(e){e?(this.currentStatus="normal",this.$emit("on-status-change","normal")):parseInt(this.percent,10)===100&&(this.currentStatus="success",this.$emit("on-status-change","success"))}},watch:{percent(e,n){e[s.isStatus?(t.openBlock(),t.createElementBlock("span",{key:0,class:t.normalizeClass(s.textInnerClasses)},[t.createVNode(a,{type:s.statusIcon},null,8,["type"])],2)):(t.openBlock(),t.createElementBlock("span",{key:1,class:t.normalizeClass(s.textInnerClasses)},t.toDisplayString(i.percent)+"% ",3))])],2)):t.createCommentVNode("",!0)],2)}var cs=S(ow,[["render",dw]]);const jt="ivu-rate",hw={name:"Rate",mixins:[ge,xe],emits:["update:modelValue","on-change"],props:{count:{type:Number,default:5},modelValue:{type:Number,default:0},allowHalf:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},showText:{type:Boolean,default:!1},name:{type:String},clearable:{type:Boolean,default:!1},character:{type:String,default:""},icon:{type:String,default:""},customIcon:{type:String,default:""}},data(){const e=this.modelValue||0;return{prefixCls:jt,hoverIndex:-1,isHover:!1,isHalf:this.allowHalf&&e.toString().indexOf(".")>=0,currentValue:e}},computed:{classes(){return[`${jt}`,{[`${jt}-disabled`]:this.itemDisabled}]},iconClasses(){return["ivu-icon",{[`ivu-icon-${this.icon}`]:this.icon!=="",[`${this.customIcon}`]:this.customIcon!==""}]},showCharacter(){return this.character!==""||this.icon!==""||this.customIcon!==""}},watch:{modelValue(e){this.currentValue=e||0},currentValue(e){this.setHalf(e)}},methods:{starCls(e){const n=this.hoverIndex,i=this.isHover?n:this.currentValue;let l=!1,r=!1;return i>=e&&(l=!0),this.isHover?r=i===e:r=Math.ceil(this.currentValue)===e,[{[`${jt}-star`]:!this.showCharacter,[`${jt}-star-chart`]:this.showCharacter,[`${jt}-star-full`]:!r&&l||r&&!this.isHalf,[`${jt}-star-half`]:r&&this.isHalf,[`${jt}-star-zero`]:!l}]},handleMousemove(e,n){if(!this.itemDisabled){if(this.isHover=!0,this.allowHalf){const i=n.target.getAttribute("type")||!1;this.isHalf=i==="half"}else this.isHalf=!1;this.hoverIndex=e}},handleMouseleave(){this.itemDisabled||(this.isHover=!1,this.setHalf(this.currentValue),this.hoverIndex=-1)},setHalf(e){this.isHalf=this.allowHalf&&e.toString().indexOf(".")>=0},handleClick(e){this.itemDisabled||(this.isHalf&&(e-=.5),this.clearable&&Math.abs(e-this.currentValue)<.01&&(e=0),this.currentValue=e,this.$emit("update:modelValue",e),this.$emit("on-change",e),this.handleFormItemChange("change",e))}}},fw=["name","value"],uw=["onMousemove","onClick"],mw={key:0},pw={key:1};function gw(e,n,i,l,r,s){return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(s.classes),onMouseleave:n[0]||(n[0]=(...a)=>s.handleMouseleave&&s.handleMouseleave(...a))},[t.createElementVNode("input",{type:"hidden",name:i.name,value:r.currentValue},null,8,fw),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(i.count,a=>(t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(s.starCls(a)),onMousemove:o=>s.handleMousemove(a,o),key:a,onClick:o=>s.handleClick(a)},[s.showCharacter?(t.openBlock(),t.createElementBlock(t.Fragment,{key:1},[t.createElementVNode("span",{class:t.normalizeClass([r.prefixCls+"-star-first"]),type:"half"},[i.character!==""?(t.openBlock(),t.createElementBlock(t.Fragment,{key:0},[t.createTextVNode(t.toDisplayString(i.character),1)],64)):(t.openBlock(),t.createElementBlock("i",{key:1,class:t.normalizeClass(s.iconClasses),type:"half"},null,2))],2),t.createElementVNode("span",{class:t.normalizeClass([r.prefixCls+"-star-second"])},[i.character!==""?(t.openBlock(),t.createElementBlock(t.Fragment,{key:0},[t.createTextVNode(t.toDisplayString(i.character),1)],64)):(t.openBlock(),t.createElementBlock("i",{key:1,class:t.normalizeClass(s.iconClasses)},null,2))],2)],64)):(t.openBlock(),t.createElementBlock("span",{key:0,class:t.normalizeClass([r.prefixCls+"-star-content"]),type:"half"},null,2))],42,uw))),128)),i.showText?t.withDirectives((t.openBlock(),t.createElementBlock("div",{key:0,class:t.normalizeClass([r.prefixCls+"-text"])},[t.renderSlot(e.$slots,"default",{},()=>[t.createElementVNode("span",null,t.toDisplayString(r.currentValue),1),t.createTextVNode(),r.currentValue<=1?(t.openBlock(),t.createElementBlock("span",mw,t.toDisplayString(e.t("i.rate.star")),1)):(t.openBlock(),t.createElementBlock("span",pw,t.toDisplayString(e.t("i.rate.stars")),1))])],2)),[[t.vShow,r.currentValue>0]]):t.createCommentVNode("",!0)],34)}var Zo=S(hw,[["render",gw]]);const yw={name:"Result",components:{Icon:se},props:{type:{validator(e){return V(e,["success","error","warning"])}},title:{type:String},desc:{type:String},extra:{type:String}},computed:{iconClasses(){return{"ivu-result-icon-success":this.type==="success","ivu-result-icon-error":this.type==="error","ivu-result-icon-warning":this.type==="warning"}}}},Cw={class:"ivu-result"},bw={key:0,class:"ivu-result-title"},kw={key:1,class:"ivu-result-desc"},ww={key:2,class:"ivu-result-extra"},Sw={key:3,class:"ivu-result-actions"};function xw(e,n,i,l,r,s){const a=t.resolveComponent("Icon");return t.openBlock(),t.createElementBlock("div",Cw,[t.createElementVNode("div",{class:t.normalizeClass(["ivu-result-icon",s.iconClasses])},[i.type==="success"?(t.openBlock(),t.createBlock(a,{key:0,type:"ios-checkmark"})):t.createCommentVNode("",!0),i.type==="error"?(t.openBlock(),t.createBlock(a,{key:1,type:"ios-close"})):t.createCommentVNode("",!0),i.type==="warning"?(t.openBlock(),t.createBlock(a,{key:2,type:"ios-information"})):t.createCommentVNode("",!0)],2),i.title||e.$slots.title?(t.openBlock(),t.createElementBlock("div",bw,[t.renderSlot(e.$slots,"title",{},()=>[t.createTextVNode(t.toDisplayString(i.title),1)])])):t.createCommentVNode("",!0),i.desc||e.$slots.desc?(t.openBlock(),t.createElementBlock("div",kw,[t.renderSlot(e.$slots,"desc",{},()=>[t.createTextVNode(t.toDisplayString(i.desc),1)])])):t.createCommentVNode("",!0),i.extra||e.$slots.extra?(t.openBlock(),t.createElementBlock("div",ww,[t.renderSlot(e.$slots,"extra",{},()=>[t.createTextVNode(t.toDisplayString(i.extra),1)])])):t.createCommentVNode("",!0),e.$slots.actions?(t.openBlock(),t.createElementBlock("div",Sw,[t.renderSlot(e.$slots,"actions")])):t.createCommentVNode("",!0)])}var Qo=S(yw,[["render",xw]]);const pi="ivu-scroll",Bw={props:["text","active","spinnerHeight"],components:{Spin:Ge,Icon:se},computed:{wrapperClasses(){return[`${pi}-loader-wrapper`,{[`${pi}-loader-wrapper-active`]:this.active}]},spinnerClasses(){return`${pi}-spinner`},iconClasses(){return`${pi}-spinner-icon`},textClasses(){return`${pi}-loader-text`}}};function Vw(e,n,i,l,r,s){const a=t.resolveComponent("Icon"),o=t.resolveComponent("Spin");return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(s.wrapperClasses)},[t.createElementVNode("div",{class:t.normalizeClass(s.spinnerClasses)},[t.createVNode(o,{fix:""},{default:t.withCtx(()=>[t.createVNode(a,{type:"ios-loading",size:"18",class:t.normalizeClass(s.iconClasses)},null,8,["class"]),i.text?(t.openBlock(),t.createElementBlock("div",{key:0,class:t.normalizeClass(s.textClasses)},t.toDisplayString(i.text),3)):t.createCommentVNode("",!0)]),_:1})],2)],2)}var Ew=S(Bw,[["render",Vw]]);const _n="ivu-scroll",ec={sensitivity:10,minimumStartDragOffset:5},wr=()=>Promise.resolve(),Tw={name:"Scroll",mixins:[ge],components:{loader:Ew},props:{height:{type:[Number,String],default:300},onReachTop:{type:Function},onReachBottom:{type:Function},onReachEdge:{type:Function},loadingText:{type:String},distanceToEdge:[Number,Array],stopSlide:{type:Boolean,default:!1}},data(){const e=this.calculateProximityThreshold();return{showTopLoader:!1,showBottomLoader:!1,showBodyLoader:!1,lastScroll:0,reachedTopScrollLimit:!0,reachedBottomScrollLimit:!1,topRubberPadding:0,bottomRubberPadding:0,rubberRollBackTimeout:!1,isLoading:!1,pointerTouchDown:null,touchScroll:!1,handleScroll:()=>{},pointerUpHandler:()=>{},pointerMoveHandler:()=>{},topProximityThreshold:e[0],bottomProximityThreshold:e[1]}},computed:{wrapClasses(){return`${_n}-wrapper`},scrollContainerClasses(){return[`${_n}-container`,{[`${_n}-container-loading`]:this.showBodyLoader&&this.stopSlide}]},slotContainerClasses(){return[`${_n}-content`,{[`${_n}-content-loading`]:this.showBodyLoader}]},loaderClasses(){return`${_n}-loader`},wrapperPadding(){return{paddingTop:this.topRubberPadding+"px",paddingBottom:this.bottomRubberPadding+"px"}},localeLoadingText(){return this.loadingText===void 0?this.t("i.select.loading"):this.loadingText}},methods:{waitOneSecond(){return new Promise(e=>{setTimeout(e,1e3)})},calculateProximityThreshold(){const e=this.distanceToEdge;return typeof e=="undefined"?[20,20]:Array.isArray(e)?e:[e,e]},onCallback(e){if(this.isLoading=!0,this.showBodyLoader=!0,e>0)this.showTopLoader=!0,this.topRubberPadding=20;else{this.showBottomLoader=!0,this.bottomRubberPadding=20;let l=0;const r=this.$refs.scrollContainer,s=r.scrollTop;for(let a=0;a<20;a++)setTimeout(()=>{l=Math.max(l,this.$refs.bottomLoader.getBoundingClientRect().height),r.scrollTop=s+l},a*50)}const n=[this.waitOneSecond(),this.onReachEdge?this.onReachEdge(e):wr()];n.push(e>0?this.onReachTop?this.onReachTop():wr():this.onReachBottom?this.onReachBottom():wr());let i=setTimeout(()=>{this.reset()},5e3);Promise.all(n).then(()=>{clearTimeout(i),this.reset()})},reset(){["showTopLoader","showBottomLoader","showBodyLoader","isLoading","reachedTopScrollLimit","reachedBottomScrollLimit"].forEach(e=>this[e]=!1),this.lastScroll=0,this.topRubberPadding=0,this.bottomRubberPadding=0,clearInterval(this.rubberRollBackTimeout),this.touchScroll&&setTimeout(()=>{ue(window,"touchend",this.pointerUpHandler),this.$refs.scrollContainer.removeEventListener("touchmove",this.pointerMoveHandler),this.touchScroll=!1},500)},onWheel(e){if(this.isLoading)return;const n=e.wheelDelta?e.wheelDelta:-(e.detail||e.deltaY);this.stretchEdge(n)},stretchEdge(e){if(clearTimeout(this.rubberRollBackTimeout),!this.onReachEdge){if(e>0){if(!this.onReachTop)return}else if(!this.onReachBottom)return}this.rubberRollBackTimeout=setTimeout(()=>{this.isLoading||this.reset()},250),e>0&&this.reachedTopScrollLimit?(this.topRubberPadding+=5-this.topRubberPadding/5,this.topRubberPadding>this.topProximityThreshold&&this.onCallback(1)):e<0&&this.reachedBottomScrollLimit?(this.bottomRubberPadding+=6-this.bottomRubberPadding/4,this.bottomRubberPadding>this.bottomProximityThreshold&&this.onCallback(-1)):this.onScroll()},onScroll(){const e=this.$refs.scrollContainer;if(this.isLoading||!e)return;const n=Math.sign(this.lastScroll-e.scrollTop),i=e.scrollHeight-e.clientHeight-e.scrollTop,l=this.topProximityThreshold<0?this.topProximityThreshold:0,r=this.bottomProximityThreshold<0?this.bottomProximityThreshold:0;n==-1&&i+r<=ec.sensitivity?this.reachedBottomScrollLimit=!0:n>=0&&e.scrollTop+l<=0?this.reachedTopScrollLimit=!0:(this.reachedTopScrollLimit=!1,this.reachedBottomScrollLimit=!1,this.lastScroll=e.scrollTop)},getTouchCoordinates(e){return{x:e.touches[0].pageX,y:e.touches[0].pageY}},onPointerDown(e){if(!this.isLoading){if(e.type=="touchstart"){const n=this.$refs.scrollContainer;this.reachedTopScrollLimit?n.scrollTop=5:this.reachedBottomScrollLimit&&(n.scrollTop-=5)}e.type=="touchstart"&&this.$refs.scrollContainer.scrollTop==0&&(this.$refs.scrollContainer.scrollTop=5),this.pointerTouchDown=this.getTouchCoordinates(e),fe(window,"touchend",this.pointerUpHandler),this.$refs.scrollContainer.parentElement.addEventListener("touchmove",n=>{n.stopPropagation(),this.pointerMoveHandler(n)},{passive:!1,useCapture:!0})}},onPointerMove(e){if(!this.pointerTouchDown||this.isLoading)return;const i=this.getTouchCoordinates(e).y-this.pointerTouchDown.y;this.stretchEdge(i),this.touchScroll||Math.abs(i)>ec.minimumStartDragOffset&&(this.touchScroll=!0)},onPointerUp(){this.pointerTouchDown=null}},created(){this.handleScroll=Zi(this.onScroll,150,{leading:!1}),this.pointerUpHandler=this.onPointerUp.bind(this),this.pointerMoveHandler=Zi(this.onPointerMove,50,{leading:!1})}};function Nw(e,n,i,l,r,s){const a=t.resolveComponent("loader");return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(s.wrapClasses),style:{"touch-action":"none"}},[t.createElementVNode("div",{class:t.normalizeClass(s.scrollContainerClasses),style:t.normalizeStyle({height:i.height+"px"}),onScroll:n[0]||(n[0]=(...o)=>r.handleScroll&&r.handleScroll(...o)),onWheel:n[1]||(n[1]=(...o)=>s.onWheel&&s.onWheel(...o)),onTouchstart:n[2]||(n[2]=(...o)=>s.onPointerDown&&s.onPointerDown(...o)),ref:"scrollContainer"},[t.createElementVNode("div",{class:t.normalizeClass(s.loaderClasses),style:t.normalizeStyle({paddingTop:s.wrapperPadding.paddingTop}),ref:"toploader"},[t.createVNode(a,{text:s.localeLoadingText,active:r.showTopLoader},null,8,["text","active"])],6),t.createElementVNode("div",{class:t.normalizeClass(s.slotContainerClasses),ref:"scrollContent"},[t.renderSlot(e.$slots,"default")],2),t.createElementVNode("div",{class:t.normalizeClass(s.loaderClasses),style:t.normalizeStyle({paddingBottom:s.wrapperPadding.paddingBottom}),ref:"bottomLoader"},[t.createVNode(a,{text:s.localeLoadingText,active:r.showBottomLoader},null,8,["text","active"])],6)],38)],2)}var tc=S(Tw,[["render",Nw]]);const Iw="COMPLETE",nc="CANCELED";function _w(e){if(H&&"requestAnimationFrame"in window)return window.requestAnimationFrame(e);setTimeout(e,16)}function ic(e,n,i){e===window?e.scrollTo(n,i):(e.scrollLeft=n,e.scrollTop=i)}function Dw(e,n,i){if(!H)return;let l=e.getBoundingClientRect(),r=null,s=null,a=null,o=null,d=null,c=null,h=null,m=i&&i.left!=null?i.left:.5,g=i&&i.top!=null?i.top:.5,y=i&&i.leftOffset!=null?i.leftOffset:0,C=i&&i.topOffset!=null?i.topOffset:0,u=m,x=g;if(n===window)c=Math.min(l.width,window.innerWidth),h=Math.min(l.height,window.innerHeight),s=l.left+window.pageXOffset-window.innerWidth*u+c*u,a=l.top+window.pageYOffset-window.innerHeight*x+h*x,s-=y,a-=C,o=s-window.pageXOffset,d=a-window.pageYOffset;else{c=l.width,h=l.height,r=n.getBoundingClientRect();let I=l.left-(r.left-n.scrollLeft),O=l.top-(r.top-n.scrollTop);s=I+c*u-n.clientWidth*u,a=O+h*x-n.clientHeight*x,s=Math.max(Math.min(s,n.scrollWidth-n.clientWidth),0),a=Math.max(Math.min(a,n.scrollHeight-n.clientHeight),0),s-=y,a-=C,o=s-n.scrollLeft,d=a-n.scrollTop}return{x:s,y:a,differenceX:o,differenceY:d}}function sc(e){_w(function(){let n=e.scrollOption;if(!n)return;let i=Dw(n.target,e,n.align),l=Date.now()-n.startTime,r=Math.min(1/n.time*l,1);if(l>n.time+20)return ic(e,i.x,i.y),e.scrollOption=null,n.end(Iw);let s=1-n.ease(r);ic(e,i.x-i.differenceX*s,i.y-i.differenceY*s),sc(e)})}function Mw(e,n,i,l){let r=!n.scrollOption,s=n.scrollOption,a=Date.now(),o;s&&s.end(nc);function d(c){n.scrollOption=null,n.parentElement&&n.parentElement.scrollOption&&n.parentElement.scrollOption.end(c),l(c),n.removeEventListener("touchstart",o)}n.scrollOption={startTime:s?s.startTime:Date.now(),target:e,time:i.time+(s?a-s.startTime:0),ease:i.ease,align:i.align,end:d},o=d.bind(null,nc),n.addEventListener("touchstart",o),r&&sc(n)}function rc(e){if(!!H)return e===window||(e.scrollHeight!==e.clientHeight||e.scrollWidth!==e.clientWidth)&&getComputedStyle(e).overflow!=="hidden"}function zw(){return!0}function Sr(e,n,i){if(!e)return;typeof n=="function"&&(i=n,n=null),n||(n={}),n.time=isNaN(n.time)?1e3:n.time,n.ease=n.ease||function(d){return 1-Math.pow(1-d,d/2)};let l=e.parentElement,r=0;function s(d){r-=1,!r&&i&&i(d)}let a=n.validTarget||zw,o=n.isScrollable;for(;l;){if(a(l,r)&&(o?o(l,rc):rc(l))&&(r+=1,Mw(e,l,n,s)),l=l.parentElement,!l)return;l.tagName==="BODY"&&(l=window)}}function Pw(e){if(H&&"requestAnimationFrame"in window)return window.requestAnimationFrame(e);setTimeout(e,16)}function xr(e,n,i){if(!e)return;typeof n=="function"&&(i=n,n=null),n||(n={}),n.time=isNaN(n.time)?500:n.time;const l=e.scrollTop,r=n.to||0,s=Math.abs(l-r),a=Math.ceil(s/n.time*50);function o(d,c,h){if(d===c){i&&i();return}let m=d+h>c?c:d+h;d>c&&(m=d-ho(m,c,h))}o(l,r,a)}const Nt="ivu-layout-sider";nd();const $w={name:"Sider",emits:["on-collapse","update:modelValue"],props:{modelValue:{type:Boolean,default:!1},width:{type:[Number,String],default:200},collapsedWidth:{type:[Number,String],default:64},hideTrigger:{type:Boolean,default:!1},breakpoint:{type:String,validator(e){return V(e,["xs","sm","md","lg","xl","xxl"])}},collapsible:{type:Boolean,default:!1},defaultCollapsed:{type:Boolean,default:!1},reverseArrow:{type:Boolean,default:!1}},data(){return{prefixCls:Nt,mediaMatched:!1}},computed:{wrapClasses(){return[`${Nt}`,this.siderWidth?"":`${Nt}-zero-width`,this.modelValue?`${Nt}-collapsed`:""]},wrapStyles(){return{width:`${this.siderWidth}px`,minWidth:`${this.siderWidth}px`,maxWidth:`${this.siderWidth}px`,flex:`0 0 ${this.siderWidth}px`}},triggerClasses(){return[`${Nt}-trigger`,this.modelValue?`${Nt}-trigger-collapsed`:""]},childClasses(){return`${this.prefixCls}-children`},zeroWidthTriggerClasses(){return[`${Nt}-zero-width-trigger`,this.reverseArrow?`${Nt}-zero-width-trigger-left`:""]},triggerIconClasses(){return["ivu-icon",`ivu-icon-ios-arrow-${this.reverseArrow?"forward":"back"}`,`${Nt}-trigger-icon`]},siderWidth(){return this.collapsible?this.modelValue?this.mediaMatched?0:parseInt(this.collapsedWidth):parseInt(this.width):this.width},showZeroTrigger(){return this.collapsible?this.mediaMatched&&!this.hideTrigger||parseInt(this.collapsedWidth)===0&&this.modelValue&&!this.hideTrigger:!1},showBottomTrigger(){return this.collapsible?!this.mediaMatched&&!this.hideTrigger:!1}},methods:{toggleCollapse(){let e=this.collapsible?!this.modelValue:!1;this.$emit("update:modelValue",e)},matchMedia(){if(!H)return;let e;window.matchMedia&&(e=window.matchMedia);let n=this.mediaMatched;this.mediaMatched=e(`(max-width: ${td[this.breakpoint]})`).matches,this.mediaMatched!==n&&this.$emit("update:modelValue",this.mediaMatched)},onWindowResize(){this.matchMedia()}},watch:{modelValue(e){this.$emit("on-collapse",e)}},mounted(){this.defaultCollapsed&&this.$emit("update:modelValue",this.defaultCollapsed),this.breakpoint!==void 0&&(fe(window,"resize",this.onWindowResize),this.matchMedia())},beforeUnmount(){this.breakpoint!==void 0&&ue(window,"resize",this.onWindowResize)}},Ow=[t.createElementVNode("i",{class:"ivu-icon ivu-icon-ios-menu"},null,-1)];function Lw(e,n,i,l,r,s){return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(s.wrapClasses),style:t.normalizeStyle(s.wrapStyles)},[t.withDirectives(t.createElementVNode("span",{onClick:n[0]||(n[0]=(...a)=>s.toggleCollapse&&s.toggleCollapse(...a)),class:t.normalizeClass(s.zeroWidthTriggerClasses)},Ow,2),[[t.vShow,s.showZeroTrigger]]),t.createElementVNode("div",{class:t.normalizeClass(s.childClasses)},[t.renderSlot(e.$slots,"default")],2),t.renderSlot(e.$slots,"trigger",{},()=>[t.withDirectives(t.createElementVNode("div",{class:t.normalizeClass(s.triggerClasses),onClick:n[1]||(n[1]=(...a)=>s.toggleCollapse&&s.toggleCollapse(...a)),style:t.normalizeStyle({width:s.siderWidth+"px"})},[t.createElementVNode("i",{class:t.normalizeClass(s.triggerIconClasses)},null,2)],6),[[t.vShow,s.showBottomTrigger]])])],6)}var lc=S($w,[["render",Lw]]);const Kt="ivu-skeleton-item",Fw={name:"SkeletonItem",components:{Icon:se},inject:{SkeletonInstance:{default:null}},props:{animated:{type:Boolean,default:!1},type:{validator(e){return V(e,["circle","square","rect","image"])},default:"rect"},size:{validator(e){return V(e,["small","large","default"])},default(){const e=t.getCurrentInstance().appContext.config.globalProperties;return!e.$VIEWUI||e.$VIEWUI.size===""?"default":e.$VIEWUI.size}},width:{type:[String,Number]},height:{type:[String,Number]},block:{type:Boolean,default:!1},imgSrc:{type:String}},data(){return{prefixCls:Kt}},computed:{classes(){return[Kt,Kt+"-"+this.type,Kt+"-"+this.type+"-"+this.size,{[Kt+"-animated"]:this.animated||Boolean(this.SkeletonInstance)&&this.SkeletonInstance.animated,[Kt+"-inline"]:!this.block,[Kt+"-with-image"]:this.showImage,[Kt+"-round"]:Boolean(this.SkeletonInstance)&&this.SkeletonInstance.round}]},styles(){const e={};return["rect","image"].includes(this.type)&&(this.width&&(e.width=typeof this.width=="number"?`${this.width}px`:this.width),this.height&&(e.height=typeof this.height=="number"?`${this.height}px`:this.height),this.showImage&&(e.background=`no-repeat url(${this.imgSrc}) center center`,e.backgroundSize="contain")),e},showIcon(){return this.type==="image"&&!this.imgSrc},showImage(){return this.type==="image"&&Boolean(this.imgSrc)},iconSize(){let e=16;return this.size==="large"&&(e=32),this.size==="small"&&(e=10),e}}};function Aw(e,n,i,l,r,s){const a=t.resolveComponent("Icon");return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(s.classes),style:t.normalizeStyle(s.styles)},[s.showIcon?(t.openBlock(),t.createBlock(a,{key:0,class:t.normalizeClass(r.prefixCls+"-image-icon"),type:"ios-image",size:s.iconSize},null,8,["class","size"])):t.createCommentVNode("",!0)],6)}var Br=S(Fw,[["render",Aw]]);const fn="ivu-skeleton",Rw={name:"Skeleton",components:{SkeletonItem:Br,Row:Ot,Col:gt},provide(){return{SkeletonInstance:this}},props:{animated:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},round:{type:Boolean,default:!1},paragraph:{validator(e){return typeof e=="number"?e>=1:typeof e.rows=="number"&&e.rows>=1},type:[Number,Object],default:3},title:{validator(e){return typeof e=="object"&&e.width?["number","string"].includes(typeof e.width):!0},type:[Boolean,Object],default:!0},avatar:{validator(e){if(typeof e=="object"){if(e.type)return V(e.type,["circle","square"]);if(e.size)return V(e.size,["small","large","default"])}return!0},type:[Boolean,Object],default:!1}},data(){return{prefixCls:fn}},computed:{classes(){return[fn,{[fn+"-with-title"]:this.showTitle,[fn+"-with-avatar"]:this.showAvatar}]},rows(){return typeof this.paragraph=="number"?this.paragraph:this.paragraph.rows},rowsCount(){return this.rows+Number(this.showTitle)},showTitle(){return Boolean(this.title)},titleWidth(){return typeof this.title=="object"&&this.title.width?typeof this.title.width=="string"?this.title.width:`${this.title.width}px`:""},showAvatar(){return Boolean(this.avatar)},avatarType(){return typeof this.avatar=="object"&&this.avatar.type?this.avatar.type:"circle"},avatarSize(){return typeof this.avatar=="object"&&this.avatar.size?this.avatar.size:!this.$VIEWUI||this.$VIEWUI.size===""?"default":this.$VIEWUI.size}},methods:{rowClasses(e){return[fn+"-item-inner",{[fn+"-item-round"]:this.round,[fn+"-item-title"]:this.showTitle&&e===1}]},rowWidth(e){if(this.showTitle&&e===1)return this.titleWidth||"38%";if(typeof this.paragraph=="object"){if(typeof this.paragraph.width=="string")return this.paragraph.width;if(typeof this.paragraph.width=="number")return`${this.paragraph.width}px`;const n=e-1-Number(this.showTitle);if(Array.isArray(this.paragraph.width)&&this.paragraph.width[n])return typeof this.paragraph.width[n]=="number"?`${this.paragraph.width[n]}px`:this.paragraph.width[n]}return e===this.rowsCount?"62%":"100%"}}};function Hw(e,n,i,l,r,s){const a=t.resolveComponent("SkeletonItem"),o=t.resolveComponent("Col"),d=t.resolveComponent("Row");return i.loading?(t.openBlock(),t.createElementBlock("div",t.mergeProps({key:0},e.$attrs,{class:s.classes}),[i.loading?t.renderSlot(e.$slots,"template",{key:0},()=>[t.createVNode(d,null,{default:t.withCtx(()=>[s.showAvatar?(t.openBlock(),t.createBlock(o,{key:0,flex:"0"},{default:t.withCtx(()=>[t.createVNode(a,{type:s.avatarType,size:s.avatarSize,animated:i.animated,class:t.normalizeClass(r.prefixCls+"-item-avatar")},null,8,["type","size","animated","class"])]),_:1})):t.createCommentVNode("",!0),t.createVNode(o,{flex:"1"},{default:t.withCtx(()=>[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(s.rowsCount,c=>(t.openBlock(),t.createBlock(a,{key:c,class:t.normalizeClass(s.rowClasses(c)),animated:i.animated,width:s.rowWidth(c),block:""},null,8,["class","animated","width"]))),128))]),_:1})]),_:1})]):t.createCommentVNode("",!0)],16)):t.renderSlot(e.$slots,"default",t.normalizeProps(t.mergeProps({key:1},e.$attrs)))}var ac=S(Rw,[["render",Hw]]),Ww={name:"SliderMarker",props:{mark:{type:[String,Object]}},render(){let e=typeof this.mark=="string"?this.mark:[this.mark.label];return t.h("div",{class:"ivu-slider-marks-item",style:this.mark.style||{}},e)}};const It="ivu-slider",Uw={name:"Slider",mixins:[xe],emits:["update:modelValue","on-input","on-change"],components:{InputNumber:cr,Tooltip:xt,SliderMarker:Ww},inject:{ModalInstance:{default:null},DrawerInstance:{default:null}},props:{min:{type:Number,default:0},max:{type:Number,default:100},step:{type:Number,default:1},range:{type:Boolean,default:!1},modelValue:{type:[Number,Array],default:0},disabled:{type:Boolean,default:!1},showInput:{type:Boolean,default:!1},inputSize:{type:String,default:"default",validator(e){return V(e,["small","large","default"])}},showStops:{type:Boolean,default:!1},tipFormat:{type:Function,default(e){return e}},showTip:{type:String,default:"hover",validator(e){return V(e,["hover","always","never"])}},name:{type:String},activeChange:{type:Boolean,default:!0},marks:{type:Object}},data(){let e=this.checkLimits(Array.isArray(this.modelValue)?this.modelValue:[this.modelValue]);return this.range&&this.modelValue===null&&(e=[0,0]),{prefixCls:It,currentValue:e,dragging:!1,pointerDown:"",startX:0,currentX:0,startPos:0,oldValue:[...e],valueIndex:{min:0,max:1},sliderWidth:0,isValueNull:!1,id:Ee(6)}},watch:{modelValue(e){e===null&&(this.isValueNull=!0),e=this.checkLimits(Array.isArray(e)?e:[e]),!this.dragging&&(e[0]!==this.currentValue[0]||e[1]!==this.currentValue[1])&&(this.isValueNull&&this.range?this.currentValue=[0,0]:this.currentValue=e)},exportValue(e){t.nextTick(()=>{this.$refs.minTooltip.updatePopper(),this.range&&this.$refs.maxTooltip.updatePopper()});const n=this.range?e:e[0];this.isValueNull?(this.isValueNull=!1,this.$emit("update:modelValue",null)):this.$emit("update:modelValue",n),this.$emit("on-input",n)}},computed:{classes(){return[`${It}`,{[`${It}-input`]:this.showInput&&!this.range,[`${It}-range`]:this.range,[`${It}-disabled`]:this.itemDisabled}]},minButtonClasses(){return[`${It}-button`,{[`${It}-button-dragging`]:this.pointerDown==="min"}]},maxButtonClasses(){return[`${It}-button`,{[`${It}-button-dragging`]:this.pointerDown==="max"}]},exportValue(){const e=(String(this.step).split(".")[1]||"").length;return this.currentValue.map(n=>Number(n.toFixed(e)))},minPosition(){return(this.currentValue[0]-this.min)/this.valueRange*100},maxPosition:function(){return(this.currentValue[1]-this.min)/this.valueRange*100},barStyle(){const e={width:(this.currentValue[0]-this.min)/this.valueRange*100+"%"};return this.range&&(e.left=(this.currentValue[0]-this.min)/this.valueRange*100+"%",e.width=(this.currentValue[1]-this.currentValue[0])/this.valueRange*100+"%"),e},stops(){let e=this.valueRange/this.step,n=[],i=100*this.step/this.valueRange;for(let l=1;ln-i).filter(n=>n<=this.max&&n>=this.min).map(n=>({point:n,position:(n-this.min)*100/(this.max-this.min),mark:this.marks[n]})):[]},tipDisabled(){return this.tipFormat(this.currentValue[0])===null||this.showTip==="never"},valueRange(){return this.max-this.min},firstPosition(){return this.currentValue[0]},secondPosition(){return this.currentValue[1]}},methods:{getPointerX(e){return e.type.indexOf("touch")!==-1?e.touches[0].clientX:e.clientX},checkLimits([e,n]){return e=Math.max(this.min,e),e=Math.min(this.max,e),n=Math.max(this.min,e,n),n=Math.min(this.max,n),[e,n]},getCurrentValue(e,n){if(this.itemDisabled)return;const i=this.valueIndex[n];if(typeof i!="undefined")return this.currentValue[i]},onKeyLeft(e,n){const i=this.getCurrentValue(e,n);Number.isFinite(i)&&this.changeButtonPosition(i-this.step,n)},onKeyRight(e,n){const i=this.getCurrentValue(e,n);Number.isFinite(i)&&this.changeButtonPosition(i+this.step,n)},onPointerDown(e,n){this.itemDisabled||(e.preventDefault(),this.pointerDown=n,this.onPointerDragStart(e),fe(window,"mousemove",this.onPointerDrag),fe(window,"touchmove",this.onPointerDrag),fe(window,"mouseup",this.onPointerDragEnd),fe(window,"touchend",this.onPointerDragEnd))},onPointerDragStart(e){this.dragging=!1,this.startX=this.getPointerX(e),this.startPos=this[`${this.pointerDown}Position`]*this.valueRange/100+this.min},onPointerDrag(e){this.dragging=!0,this.$refs[`${this.pointerDown}Tooltip`].visible=!0,this.currentX=this.getPointerX(e);const n=(this.currentX-this.startX)/this.sliderWidth*this.valueRange;this.changeButtonPosition(this.startPos+n)},onPointerDragEnd(){this.dragging&&(this.dragging=!1,this.$refs[`${this.pointerDown}Tooltip`].visible=!1,this.emitChange()),this.pointerDown="",ue(window,"mousemove",this.onPointerDrag),ue(window,"touchmove",this.onPointerDrag),ue(window,"mouseup",this.onPointerDragEnd),ue(window,"touchend",this.onPointerDragEnd)},changeButtonPosition(e,n){const i=n||this.pointerDown,l=i==="min"?0:1;i==="min"?e=this.checkLimits([e,this.max])[0]:e=this.checkLimits([this.min,e])[1];const r=this.handleDecimal(e,this.step),s=this.currentValue;s[l]=e-r,this.range&&(i==="min"&&s[0]>s[1]&&(s[1]=s[0]),i==="max"&&s[0]>s[1]&&(s[0]=s[1])),this.currentValue=[...s],this.dragging||this.currentValue[l]!==this.oldValue[l]&&(this.emitChange(),this.oldValue[l]=this.currentValue[l])},handleDecimal(e,n){if(n<1){let i=n.toString(),l=1,r;try{r=i.split(".")[1].length}catch{r=0}return l=Math.pow(10,r),e*l%(n*l)/l}else return e%n},emitChange(){const e=this.range?this.exportValue:this.exportValue[0];this.$emit("on-change",e),this.handleFormItemChange("change",e)},sliderClick(e){if(this.itemDisabled)return;const n=this.getPointerX(e),i=this.$refs.slider.getBoundingClientRect().left;let l=(n-i)/this.sliderWidth*this.valueRange+this.min,r=l/this.valueRange*100;!this.range||r<=this.minPosition?this.changeButtonPosition(l,"min"):r>=this.maxPosition?this.changeButtonPosition(l,"max"):this.changeButtonPosition(l,l-this.firstPosition<=this.secondPosition-l?"min":"max")},handleInputChange(e){this.currentValue=[e===0?0:e||this.min,this.currentValue[1]],this.emitChange()},handleFocus(e){this.$refs[`${e}Tooltip`].handleShowPopper()},handleBlur(e){this.$refs[`${e}Tooltip`].handleClosePopper()},handleSetSliderWidth(){this.sliderWidth=parseInt(ut(this.$refs.slider,"width"),10)},handleOnVisibleChange(e){e&&this.showTip==="always"&&(this.$refs.minTooltip.doDestroy(),this.range&&this.$refs.maxTooltip.doDestroy(),t.nextTick(()=>{this.$refs.minTooltip.updatePopper(),this.range&&this.$refs.maxTooltip.updatePopper()}))},addSlider(e){const n=this[e];!n||(n.sliderList||(n.sliderList=[]),n.sliderList.push({id:this.id,slider:this}))},removeSlider(e){const n=this[e];if(!n||!n.sliderList)return;const i=n.sliderList.findIndex(l=>l.id===this.id);n.sliderList.splice(i,1)}},mounted(){this.addSlider("ModalInstance"),this.addSlider("DrawerInstance"),this.observer=Nn(),this.observer.listenTo(this.$refs.slider,this.handleSetSliderWidth)},beforeUnmount(){this.removeSlider("ModalInstance"),this.removeSlider("DrawerInstance"),this.observer.removeListener(this.$refs.slider,this.handleSetSliderWidth)}},vw=["name","value"],jw={class:"ivu-slider-marks"};function Kw(e,n,i,l,r,s){const a=t.resolveComponent("Input-number"),o=t.resolveComponent("SliderMarker"),d=t.resolveComponent("Tooltip");return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(s.classes)},[!i.range&&i.showInput?(t.openBlock(),t.createBlock(a,{key:0,min:i.min,size:i.inputSize,max:i.max,step:i.step,modelValue:s.exportValue[0],disabled:e.itemDisabled,"active-change":i.activeChange,onOnChange:s.handleInputChange},null,8,["min","size","max","step","modelValue","disabled","active-change","onOnChange"])):t.createCommentVNode("",!0),t.createElementVNode("div",{class:t.normalizeClass([r.prefixCls+"-wrap"]),ref:"slider",onClick:n[19]||(n[19]=t.withModifiers((...c)=>s.sliderClick&&s.sliderClick(...c),["self"]))},[t.createElementVNode("input",{type:"hidden",name:i.name,value:s.exportValue},null,8,vw),t.createElementVNode("div",{class:t.normalizeClass([r.prefixCls+"-bar"]),style:t.normalizeStyle(s.barStyle),onClick:n[0]||(n[0]=t.withModifiers((...c)=>s.sliderClick&&s.sliderClick(...c),["self"]))},null,6),i.showStops?(t.openBlock(!0),t.createElementBlock(t.Fragment,{key:0},t.renderList(s.stops,c=>(t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass([r.prefixCls+"-stop"]),key:c,style:t.normalizeStyle({left:c+"%"}),onClick:n[1]||(n[1]=t.withModifiers((...h)=>s.sliderClick&&s.sliderClick(...h),["self"]))},null,6))),128)):t.createCommentVNode("",!0),s.markList.length>0?(t.openBlock(),t.createElementBlock(t.Fragment,{key:1},[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(s.markList,(c,h)=>(t.openBlock(),t.createElementBlock("div",{key:h,class:t.normalizeClass([r.prefixCls+"-stop"]),style:t.normalizeStyle({left:c.position+"%"}),onClick:n[2]||(n[2]=t.withModifiers((...m)=>s.sliderClick&&s.sliderClick(...m),["self"]))},null,6))),128)),t.createElementVNode("div",jw,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(s.markList,(c,h)=>(t.openBlock(),t.createBlock(o,{key:h,mark:c.mark,style:t.normalizeStyle({left:c.position+"%"}),onClick:s.sliderClick},null,8,["mark","style","onClick"]))),128))])],64)):t.createCommentVNode("",!0),t.createElementVNode("div",{class:t.normalizeClass([r.prefixCls+"-button-wrap"]),style:t.normalizeStyle({left:s.minPosition+"%"}),onTouchstart:n[9]||(n[9]=c=>s.onPointerDown(c,"min")),onMousedown:n[10]||(n[10]=c=>s.onPointerDown(c,"min"))},[t.createVNode(d,{controlled:r.pointerDown==="min",placement:"top",content:i.tipFormat(s.exportValue[0]),disabled:s.tipDisabled,always:i.showTip==="always",ref:"minTooltip"},{default:t.withCtx(()=>[t.createElementVNode("div",{class:t.normalizeClass(s.minButtonClasses),tabindex:"0",onFocus:n[3]||(n[3]=c=>s.handleFocus("min")),onBlur:n[4]||(n[4]=c=>s.handleBlur("min")),onKeydown:[n[5]||(n[5]=t.withKeys(c=>s.onKeyLeft(c,"min"),["left"])),n[6]||(n[6]=t.withKeys(c=>s.onKeyLeft(c,"min"),["down"])),n[7]||(n[7]=t.withKeys(c=>s.onKeyRight(c,"min"),["right"])),n[8]||(n[8]=t.withKeys(c=>s.onKeyRight(c,"min"),["up"]))]},null,34)]),_:1},8,["controlled","content","disabled","always"])],38),i.range?(t.openBlock(),t.createElementBlock("div",{key:2,class:t.normalizeClass([r.prefixCls+"-button-wrap"]),style:t.normalizeStyle({left:s.maxPosition+"%"}),onTouchstart:n[17]||(n[17]=c=>s.onPointerDown(c,"max")),onMousedown:n[18]||(n[18]=c=>s.onPointerDown(c,"max"))},[t.createVNode(d,{controlled:r.pointerDown==="max",placement:"top",content:i.tipFormat(s.exportValue[1]),disabled:s.tipDisabled,always:i.showTip==="always",ref:"maxTooltip"},{default:t.withCtx(()=>[t.createElementVNode("div",{class:t.normalizeClass(s.maxButtonClasses),tabindex:"0",onFocus:n[11]||(n[11]=c=>s.handleFocus("max")),onBlur:n[12]||(n[12]=c=>s.handleBlur("max")),onKeydown:[n[13]||(n[13]=t.withKeys(c=>s.onKeyLeft(c,"max"),["left"])),n[14]||(n[14]=t.withKeys(c=>s.onKeyLeft(c,"max"),["down"])),n[15]||(n[15]=t.withKeys(c=>s.onKeyRight(c,"max"),["right"])),n[16]||(n[16]=t.withKeys(c=>s.onKeyRight(c,"max"),["up"]))]},null,34)]),_:1},8,["controlled","content","disabled","always"])],38)):t.createCommentVNode("",!0)],2)],2)}var oc=S(Uw,[["render",Kw]]);const qw={small:8,default:16,large:24},cc={name:"Space",props:{size:{type:[String,Number,Array],validator(e){const n=["small","large","default"];return typeof e=="string"?V(e,n):Array.isArray(e)?e.length>0&&e.every(i=>typeof i=="number"||V(i,n)):!0},default(){const e=t.getCurrentInstance().appContext.config.globalProperties;return!e.$VIEWUI||!e.$VIEWUI.space||e.$VIEWUI.space.size===""?"small":e.$VIEWUI.space.size}},direction:{type:String,validator(e){return V(e,["horizontal","vertical"])},default:"horizontal"},align:{type:String,validator(e){return V(e,["start","end","center","baseline","stretch"])}},wrap:{type:Boolean,default:!1},split:{type:Boolean,default:!1},type:{type:String,validator(e){return V(e,["inline-flex","flex"])},default:"inline-flex"}},computed:{mergedAlign(){if(!this.align){if(this.direction==="horizontal")return"center";if(this.type==="flex")return"stretch"}return this.align},classes(){return["ivu-space",`ivu-space-${this.direction}`,{"ivu-space-flex":this.type==="flex","ivu-space-wrap":this.wrap,[`ivu-space-${this.mergedAlign}`]:this.mergedAlign}]},styles(){const e={};return["number","string"].includes(typeof this.size)&&(e.gap=this.getSize(this.size)),Array.isArray(this.size)&&(this.size.length===1?e.columnGap=this.getSize(this.size[0]):this.size.length>1&&(e.columnGap=this.getSize(this.size[0]),e.rowGap=this.getSize(this.size[1]))),e}},methods:{getSize(e){return`${typeof e=="string"?qw[e]:e||0}px`},filterEmpty(e=[]){const n=[];return e.forEach(i=>{Array.isArray(i)?n.push(...i):i.type===t.Fragment?n.push(...i.children):n.push(i)}),n.filter(i=>!this.isEmptyElement(i))},isEmptyElement(e){return e&&(e.type===t.Comment||e.type===t.Fragment&&e.children.length===0||e.type===t.Text&&e.children.trim()==="")}},render(){const e=this.filterEmpty(this.$slots.default?this.$slots.default():[]),n=e.length;if(n===0)return null;let i=null;return this.split&&!this.$slots.split?i=t.h(Ki,{type:"vertical"}):this.$slots.split&&(i=this.$slots.split()),t.h("div",{class:this.classes,style:this.styles},e.map((l,r)=>{const s=t.h("div",{class:"ivu-space-item"},[l]);return i&&r+1t.createElementVNode("i",{class:t.normalizeClass(`${r.prefix}-bar`),key:`trigger-${a}`},null,2)),64)),t.setBlockTracking(1),n[0])],2)],2)}var Jw=S(Yw,[["render",Gw]]);const Xw={name:"Split",components:{Trigger:Jw},emits:["update:modelValue","on-move-start","on-moving","on-move-end"],props:{modelValue:{type:[Number,String],default:.5},mode:{validator(e){return V(e,["horizontal","vertical"])},default:"horizontal"},min:{type:[Number,String],default:"40px"},max:{type:[Number,String],default:"40px"}},data(){return{prefix:"ivu-split",offset:0,oldOffset:0,isMoving:!1,computedMin:0,computedMax:0,currentValue:.5}},computed:{wrapperClasses(){return[`${this.prefix}-wrapper`,this.isMoving?"no-select":""]},paneClasses(){return[`${this.prefix}-pane`,{[`${this.prefix}-pane-moving`]:this.isMoving}]},isHorizontal(){return this.mode==="horizontal"},anotherOffset(){return 100-this.offset},valueIsPx(){return typeof this.modelValue=="string"},offsetSize(){return this.isHorizontal?"offsetWidth":"offsetHeight"}},methods:{px2percent(e,n){return parseFloat(e)/parseFloat(n)},getComputedThresholdValue(e){let n=this.$refs.outerWrapper[this.offsetSize];return this.valueIsPx?typeof this[e]=="string"?this[e]:n*this[e]:typeof this[e]=="string"?this.px2percent(this[e],n):this[e]},getMin(e,n){return this.valueIsPx?`${Math.min(parseFloat(e),parseFloat(n))}px`:Math.min(e,n)},getMax(e,n){return this.valueIsPx?`${Math.max(parseFloat(e),parseFloat(n))}px`:Math.max(e,n)},getAnotherOffset(e){let n=0;return this.valueIsPx?n=`${this.$refs.outerWrapper[this.offsetSize]-parseFloat(e)}px`:n=1-e,n},handleMove(e){let i=(this.isHorizontal?e.pageX:e.pageY)-this.initOffset,l=this.$refs.outerWrapper[this.offsetSize],r=this.valueIsPx?`${parseFloat(this.oldOffset)+i}px`:this.px2percent(l*this.oldOffset+i,l),s=this.getAnotherOffset(r);parseFloat(r)<=parseFloat(this.computedMin)&&(r=this.getMax(r,this.computedMin)),parseFloat(s)<=parseFloat(this.computedMax)&&(r=this.getAnotherOffset(this.getMax(s,this.computedMax))),e.atMin=this.modelValue===this.computedMin,e.atMax=this.valueIsPx?this.getAnotherOffset(this.modelValue)===this.computedMax:this.getAnotherOffset(this.modelValue).toFixed(5)===this.computedMax.toFixed(5),this.$emit("update:modelValue",r),this.$emit("on-moving",e)},handleUp(){this.isMoving=!1,ue(document,"mousemove",this.handleMove),ue(document,"mouseup",this.handleUp),this.$emit("on-move-end")},handleMousedown(e){this.initOffset=this.isHorizontal?e.pageX:e.pageY,this.oldOffset=this.modelValue,this.isMoving=!0,fe(document,"mousemove",this.handleMove),fe(document,"mouseup",this.handleUp),this.$emit("on-move-start")},computeOffset(){t.nextTick(()=>{this.computedMin=this.getComputedThresholdValue("min"),this.computedMax=this.getComputedThresholdValue("max"),this.offset=(this.valueIsPx?this.px2percent(this.modelValue,this.$refs.outerWrapper[this.offsetSize]):this.modelValue)*1e4/100})}},watch:{modelValue(e){e!==this.currentValue&&(this.currentValue=e,this.computeOffset())}},mounted(){t.nextTick(()=>{this.computeOffset()}),fe(window,"resize",this.computeOffset)},beforeUnmount(){ue(window,"resize",this.computeOffset)}};function Zw(e,n,i,l,r,s){const a=t.resolveComponent("trigger");return t.openBlock(),t.createElementBlock("div",{ref:"outerWrapper",class:t.normalizeClass(s.wrapperClasses)},[s.isHorizontal?(t.openBlock(),t.createElementBlock("div",{key:0,class:t.normalizeClass(`${r.prefix}-horizontal`)},[t.createElementVNode("div",{style:t.normalizeStyle({right:`${s.anotherOffset}%`}),class:t.normalizeClass(["left-pane",s.paneClasses])},[t.renderSlot(e.$slots,"left")],6),t.createElementVNode("div",{class:t.normalizeClass(`${r.prefix}-trigger-con`),style:t.normalizeStyle({left:`${r.offset}%`}),onMousedown:n[0]||(n[0]=(...o)=>s.handleMousedown&&s.handleMousedown(...o))},[t.renderSlot(e.$slots,"trigger",{},()=>[t.createVNode(a,{mode:"vertical"})])],38),t.createElementVNode("div",{style:t.normalizeStyle({left:`${r.offset}%`}),class:t.normalizeClass(["right-pane",s.paneClasses])},[t.renderSlot(e.$slots,"right")],6)],2)):(t.openBlock(),t.createElementBlock("div",{key:1,class:t.normalizeClass(`${r.prefix}-vertical`)},[t.createElementVNode("div",{style:t.normalizeStyle({bottom:`${s.anotherOffset}%`}),class:t.normalizeClass(["top-pane",s.paneClasses])},[t.renderSlot(e.$slots,"top")],6),t.createElementVNode("div",{class:t.normalizeClass(`${r.prefix}-trigger-con`),style:t.normalizeStyle({top:`${r.offset}%`}),onMousedown:n[1]||(n[1]=(...o)=>s.handleMousedown&&s.handleMousedown(...o))},[t.renderSlot(e.$slots,"trigger",{},()=>[t.createVNode(a,{mode:"horizontal"})])],38),t.createElementVNode("div",{style:t.normalizeStyle({top:`${r.offset}%`}),class:t.normalizeClass(["bottom-pane",s.paneClasses])},[t.renderSlot(e.$slots,"bottom")],6)],2))],2)}var dc=S(Xw,[["render",Zw]]);const Dn="ivu-steps",hc="ivu-icon",Qw={name:"Step",inject:["StepsInstance"],props:{status:{validator(e){return V(e,["wait","process","finish","error"])}},title:{type:String,default:""},content:{type:String},icon:{type:String}},data(){return{prefixCls:Dn,id:Ee(6)}},computed:{wrapClasses(){return[`${Dn}-item`,`${Dn}-status-${this.currentStatus}`,{[`${Dn}-custom`]:!!this.icon||!!this.$slots.icon,[`${Dn}-next-error`]:this.nextError}]},iconClasses(){let e="";return this.icon?e=this.icon:this.currentStatus==="finish"?e="ios-checkmark":this.currentStatus==="error"&&(e="ios-close"),[`${Dn}-icon`,`${hc}`,{[`${hc}-${e}`]:e!==""}]},stepNumber(){return this.StepsInstance.steps.findIndex(e=>e.id===this.id)+1},total(){return this.StepsInstance.direction==="horizontal"?this.StepsInstance.steps.length:1},currentStatus(){let e="";if(this.status)e=this.status;else{const n=this.StepsInstance,i=n.current,l=n.steps.findIndex(r=>r.id===this.id);l===i?n.status!=="error"?e="process":e="error":ll.id===this.id);return i+1[t.createTextVNode(t.toDisplayString(i.title),1)])],2),i.content||e.$slots.content?(t.openBlock(),t.createElementBlock("div",{key:0,class:t.normalizeClass([r.prefixCls+"-content"])},[t.renderSlot(e.$slots,"content",{},()=>[t.createTextVNode(t.toDisplayString(i.content),1)])],2)):t.createCommentVNode("",!0)],2)],2)}var fc=S(Qw,[["render",i1]]);const Vr="ivu-steps",s1={name:"Steps",provide(){return{StepsInstance:this}},props:{current:{type:Number,default:0},status:{validator(e){return V(e,["wait","process","finish","error"])},default:"process"},size:{validator(e){return V(e,["small"])}},direction:{validator(e){return V(e,["horizontal","vertical"])},default:"horizontal"}},data(){return{steps:[]}},computed:{classes(){return[`${Vr}`,`${Vr}-${this.direction}`,{[`${Vr}-${this.size}`]:!!this.size}]},children(){return this.steps.map(e=>e.step)}},methods:{addStep(e,n){this.steps.push({id:e,step:n})},removeStep(e){const n=this.steps.findIndex(i=>i.id===e);this.steps.splice(n,1)}}};function r1(e,n,i,l,r,s){return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(s.classes)},[t.renderSlot(e.$slots,"default")],2)}var uc=S(s1,[["render",r1]]);const un="ivu-menu",l1={name:"Submenu",mixins:[mr,Pt],components:{Icon:se,Drop:pn,CollapseTransition:br},provide(){return{SubmenuInstance:this}},props:{name:{type:[String,Number],required:!0},disabled:{type:Boolean,default:!1}},data(){return{prefixCls:un,active:!1,opened:!1,dropWidth:parseFloat(ut(this.$el,"width")),id:Ee(6),childSubmenuList:[]}},computed:{classes(){return[`${un}-submenu`,{[`${un}-item-active`]:this.active&&!this.hasParentSubmenu,[`${un}-opened`]:this.opened,[`${un}-submenu-disabled`]:this.disabled,[`${un}-submenu-has-parent-submenu`]:this.hasParentSubmenu,[`${un}-child-item-active`]:this.active}]},accordion(){return this.menu.accordion},dropStyle(){let e={};return this.dropWidth&&(e.minWidth=`${this.dropWidth}px`),e},titleStyle(){return this.hasParentSubmenu&&this.mode!=="horizontal"?{paddingLeft:43+(this.parentSubmenuNum-1)*24+"px"}:{}},arrowType(){const e=this.globalConfig;let n="ios-arrow-down";return e&&(e.menu.customArrow?n="":e.menu.arrow&&(n=e.menu.arrow)),n},customArrowType(){const e=this.globalConfig;let n="";return e&&e.menu.customArrow&&(n=e.menu.customArrow),n},arrowSize(){const e=this.globalConfig;let n="";return e&&e.menu.arrowSize&&(n=e.menu.arrowSize),n}},methods:{handleMouseenter(){this.disabled||this.mode!=="vertical"&&(clearTimeout(this.timeout),this.timeout=setTimeout(()=>{this.menu.updateOpenKeys(this.name),this.opened=!0},250))},handleMouseleave(){this.disabled||this.mode!=="vertical"&&(clearTimeout(this.timeout),this.timeout=setTimeout(()=>{this.menu.updateOpenKeys(this.name),this.opened=!1},150))},handleClick(){if(this.disabled||this.mode==="horizontal")return;const e=this.opened;this.opened=!e,this.menu.updateOpenKeys(this.name)},addSubmenu(){const e=this.MenuInstance;e.submenuList||(e.submenuList=[]),e.submenuList.push({id:this.id,submenu:this});const n=Ne(this,"Submenu");n&&(n.childSubmenuList||(n.childSubmenuList=[]),n.childSubmenuList.push({id:this.id,submenu:this}))},removeSubmenu(){const e=this.MenuInstance;if(e.submenuList&&e.submenuList.length){const i=e.submenuList.findIndex(l=>l.id===this.id);e.submenuList.splice(i,1)}const n=Ne(this,"Submenu");if(n&&n.childSubmenuList&&n.childSubmenuList.length){const i=n.childSubmenuList.findIndex(l=>l.id===this.id);n.childSubmenuList.splice(i,1)}},handleMenuItemSelect(e){this.mode==="horizontal"&&(this.opened=!1),this.MenuInstance.handleMenuItemSelect(e)},handleUpdateActiveName(e){Ne(this,"Submenu")&&this.SubmenuInstance.handleUpdateActiveName(e),this.childSubmenuList&&this.childSubmenuList.length&&this.childSubmenuList.map(n=>n.submenu).forEach(n=>{n.active=!1}),this.active=e}},watch:{mode(e){e==="horizontal"&&this.$refs.drop.update()},opened(e){this.mode!=="vertical"&&(e?(this.dropWidth=parseFloat(ut(this.$el,"width")),this.$refs.drop.update()):this.$refs.drop.destroy())}},mounted(){this.addSubmenu()},beforeUnmount(){this.removeSubmenu()}};function a1(e,n,i,l,r,s){const a=t.resolveComponent("Icon"),o=t.resolveComponent("collapse-transition"),d=t.resolveComponent("Drop");return t.openBlock(),t.createElementBlock("li",{class:t.normalizeClass(s.classes),onMouseenter:n[1]||(n[1]=(...c)=>s.handleMouseenter&&s.handleMouseenter(...c)),onMouseleave:n[2]||(n[2]=(...c)=>s.handleMouseleave&&s.handleMouseleave(...c))},[t.createElementVNode("div",{class:t.normalizeClass([r.prefixCls+"-submenu-title"]),ref:"reference",onClick:n[0]||(n[0]=t.withModifiers((...c)=>s.handleClick&&s.handleClick(...c),["stop"])),style:t.normalizeStyle(s.titleStyle)},[t.renderSlot(e.$slots,"title"),t.createVNode(a,{type:s.arrowType,custom:s.customArrowType,size:s.arrowSize,class:t.normalizeClass([r.prefixCls+"-submenu-title-icon"])},null,8,["type","custom","size","class"])],6),e.mode==="vertical"?(t.openBlock(),t.createBlock(o,{key:0,ready:e.menu.ready},{default:t.withCtx(()=>[t.withDirectives(t.createElementVNode("ul",{class:t.normalizeClass([r.prefixCls])},[t.renderSlot(e.$slots,"default")],2),[[t.vShow,r.opened]])]),_:3},8,["ready"])):t.createCommentVNode("",!0),e.mode==="horizontal"?(t.openBlock(),t.createBlock(d,{key:1,ref:"drop",visible:r.opened,placement:"bottom","transition-name":"slide-up",styles:s.dropStyle},{default:t.withCtx(()=>[t.createElementVNode("ul",{class:t.normalizeClass([r.prefixCls+"-drop-list"])},[t.renderSlot(e.$slots,"default")],2)]),_:3},8,["visible","styles"])):t.createCommentVNode("",!0)],34)}var mc=S(l1,[["render",a1]]);const pc={name:"Submit",inject:["LoginInstance"],props:{},methods:{handleSubmit(){this.LoginInstance.handleSubmit()}},render(){const n=Object.assign({size:"large",type:"primary",long:!0},this.$attrs),i=t.h(Oe,{...n,onClick:this.handleSubmit},this.$slots.default||(()=>"\u767B\u5F55"));return t.h("div",{class:"ivu-login-submit"},[i])}},Mn="ivu-switch",o1={name:"iSwitch",mixins:[xe],emits:["update:modelValue","on-change"],props:{modelValue:{type:[String,Number,Boolean],default:!1},trueValue:{type:[String,Number,Boolean],default:!0},falseValue:{type:[String,Number,Boolean],default:!1},disabled:{type:Boolean,default:!1},size:{validator(e){return V(e,["large","small","default"])},default(){const e=t.getCurrentInstance().appContext.config.globalProperties;return!e.$VIEWUI||e.$VIEWUI.size===""?"default":e.$VIEWUI.size}},name:{type:String},loading:{type:Boolean,default:!1},trueColor:{type:String},falseColor:{type:String},beforeChange:Function},data(){return{currentValue:this.modelValue}},computed:{wrapClasses(){return[`${Mn}`,{[`${Mn}-checked`]:this.currentValue===this.trueValue,[`${Mn}-disabled`]:this.itemDisabled,[`${Mn}-${this.size}`]:!!this.size,[`${Mn}-loading`]:this.loading}]},wrapStyles(){let e={};return this.trueColor&&this.currentValue===this.trueValue?(e["border-color"]=this.trueColor,e["background-color"]=this.trueColor):this.falseColor&&this.currentValue===this.falseValue&&(e["border-color"]=this.falseColor,e["background-color"]=this.falseColor),e},innerClasses(){return`${Mn}-inner`}},methods:{handleToggle(){const e=this.currentValue===this.trueValue?this.falseValue:this.trueValue;this.currentValue=e,this.$emit("update:modelValue",e),this.$emit("on-change",e),this.handleFormItemChange("change",e)},toggle(e){if(e.preventDefault(),this.itemDisabled||this.loading)return!1;if(!this.beforeChange)return this.handleToggle();const n=this.beforeChange();n&&n.then?n.then(()=>{this.handleToggle()}):this.handleToggle()}},watch:{modelValue(e){if(e!==this.trueValue&&e!==this.falseValue&&e!==null)throw"Value should be trueValue or falseValue.";this.currentValue=e}}},c1=["name","value"];function d1(e,n,i,l,r,s){return t.openBlock(),t.createElementBlock("span",{tabindex:"0",class:t.normalizeClass(s.wrapClasses),style:t.normalizeStyle(s.wrapStyles),onClick:n[0]||(n[0]=(...a)=>s.toggle&&s.toggle(...a)),onKeydown:n[1]||(n[1]=t.withKeys((...a)=>s.toggle&&s.toggle(...a),["space"]))},[t.createElementVNode("input",{type:"hidden",name:i.name,value:r.currentValue},null,8,c1),t.createElementVNode("span",{class:t.normalizeClass(s.innerClasses)},[r.currentValue===i.trueValue?t.renderSlot(e.$slots,"open",{key:0}):t.createCommentVNode("",!0),r.currentValue===i.falseValue?t.renderSlot(e.$slots,"close",{key:1}):t.createCommentVNode("",!0)],2)],38)}var Er=S(o1,[["render",d1]]),h1={name:"TableRenderHeader",props:{render:Function,column:Object,index:Number},render(){const e={column:this.column,index:this.index};return this.render(t.h,e)}},Tr={methods:{alignCls(e,n={}){let i="";return n.cellClassName&&e.key&&n.cellClassName[e.key]&&(i=n.cellClassName[e.key]),[`${this.prefixCls}-column-${e.__id}`,{[`${i}`]:i,[`${e.className}`]:e.className,[`${this.prefixCls}-column-${e.align}`]:e.align,[`${this.prefixCls}-hidden`]:this.fixed==="left"&&e.fixed!=="left"||this.fixed==="right"&&e.fixed!=="right"||!this.fixed&&e.fixed&&(e.fixed==="left"||e.fixed==="right")}]},isPopperShow(e){return e.filters&&(!this.fixed&&!e.fixed||this.fixed==="left"&&e.fixed==="left"||this.fixed==="right"&&e.fixed==="right")},setCellWidth(e){let n="";return e.width?n=e.width:this.columnsWidth[e._index]&&(n=this.columnsWidth[e._index].width),n==="0"&&(n=""),n}}};const f1={name:"TableHead",mixins:[Tr,ge],components:{CheckboxGroup:As,Checkbox:wn,Poptip:kr,iButton:Oe,renderHeader:h1},props:{prefixCls:String,styleObject:Object,columns:Array,objData:Object,data:Array,columnsWidth:Object,fixed:{type:[Boolean,String],default:!1},columnRows:Array,fixedColumnRows:Array},data(){return{draggingColumn:null,dragging:!1,dragState:{}}},computed:{styles(){const e=Object.assign({},this.styleObject),n=parseInt(this.styleObject.width);return e.width=`${n}px`,e},isSelectAll(){let e=!0;this.data.length||(e=!1);let n=!0;for(let i in this.objData){const l=this.objData[i];if(!l._isChecked&&!l._isDisabled){e=!1;break}else l.children&&l.children.length&&(e=this.isChildrenSelected(l,e));l._isDisabled&&!l._isChecked?l.children&&l.children.length&&(n=this.isChildrenAllDisabledAndUnSelected(l,n)):n=!1}return n&&(e=!1),e},headRows(){return this.columnRows.length>1?this.fixed?this.fixedColumnRows:this.columnRows:[this.columns]},isSelectDisabled(){let e=!0;if(this.data.length)for(let n in this.objData){const i=this.objData[n];i._isDisabled?i.children&&i.children.length&&(e=this.isChildrenDisabled(i,e)):e=!1}return e}},methods:{cellClasses(e){return[`${this.prefixCls}-cell`,{[`${this.prefixCls}-hidden`]:!this.fixed&&e.fixed&&(e.fixed==="left"||e.fixed==="right"),[`${this.prefixCls}-cell-with-selection`]:e.type==="selection"}]},scrollBarCellClass(){let e=!1;for(let n in this.headRows)for(let i in this.headRows[n]){if(this.headRows[n][i].fixed==="right"){e=!0;break}if(e)break}return[{[`${this.prefixCls}-hidden`]:e}]},itemClasses(e,n){return[`${this.prefixCls}-filter-select-item`,{[`${this.prefixCls}-filter-select-item-selected`]:e._filterChecked[0]===n.value}]},itemAllClasses(e){return[`${this.prefixCls}-filter-select-item`,{[`${this.prefixCls}-filter-select-item-selected`]:!e._filterChecked.length}]},selectAll(){const e=!this.isSelectAll;this.$parent.selectAll(e)},handleSort(e,n){const i=this.columns.find(r=>r._index===e),l=i._index;i._sortType===n&&(n="normal"),this.$parent.handleSort(l,n)},handleSortByHead(e){const n=this.columns.find(i=>i._index===e);if(n.sortable){const i=n._sortType;i==="normal"?this.handleSort(e,"asc"):i==="asc"?this.handleSort(e,"desc"):this.handleSort(e,"normal")}},handleFilter(e){this.$parent.handleFilter(e)},handleSelect(e,n){this.$parent.handleFilterSelect(e,n)},handleReset(e){this.$parent.handleFilterReset(e)},handleFilterHide(e){this.$parent.handleFilterHide(e)},getColumn(e,n){if(this.columnRows.length>1){const l=this.headRows[e][n].__id;return this.columns.filter(r=>r.__id===l)[0]}else return this.headRows[e][n]},handleMouseDown(e,n){if(!this.$isServer&&H&&this.draggingColumn){this.dragging=!0;const i=this.$parent,r=i.$el.getBoundingClientRect().left,a=this.$el.querySelector(`th.ivu-table-column-${e.__id}`).getBoundingClientRect(),o=a.left-r+30;i.showResizeLine=!0,this.dragState={startMouseLeft:n.clientX,startLeft:a.right-r,startColumnLeft:a.left-r,tableLeft:r};const d=i.$refs.resizeLine;d.style.left=this.dragState.startLeft+"px",document.onselectstart=function(){return!1},document.ondragstart=function(){return!1};const c=m=>{const g=m.clientX-this.dragState.startMouseLeft,y=this.dragState.startLeft+g;d.style.left=Math.max(o,y)+"px"},h=()=>{if(this.dragging){const{startColumnLeft:m,startLeft:g}=this.dragState,C=parseInt(d.style.left,10)-m,u=i.allColumns.find(x=>x.__id===e.__id);u&&(u.width=C,e.width=C,i.handleResize()),i.$emit("on-column-width-resize",u.width,g-m,e,n),H&&(document.body.style.cursor=""),this.dragging=!1,this.draggingColumn=null,this.dragState={},i.showResizeLine=!1}!H||(document.removeEventListener("mousemove",c),document.removeEventListener("mouseup",h),document.onselectstart=null,document.ondragstart=null)};if(!H)return;document.addEventListener("mousemove",c),document.addEventListener("mouseup",h)}},handleMouseMove(e,n){let i=n.target;for(;i&&i.tagName!=="TH";)i=i.parentNode;if(!(!e||!e.resizable)&&H&&!this.dragging){let l=i.getBoundingClientRect();const r=document.body.style;l.width>12&&l.right-n.pageX<8?(r.cursor="col-resize",this.draggingColumn=e):this.dragging||(r.cursor="",this.draggingColumn=null)}},handleMouseOut(){this.$isServer||H&&(document.body.style.cursor="")},isChildrenSelected(e,n){let i=n;return e.children&&e.children.length&&e.children.forEach(l=>{!l._isChecked&&!l._isDisabled?i=!1:l.children&&l.children.length&&(i=this.isChildrenSelected(l,i))}),i},isChildrenAllDisabledAndUnSelected(e,n){let i=n;return e.children&&e.children.length&&e.children.forEach(l=>{l._isDisabled&&!l._isChecked?l.children&&l.children.length&&(i=this.isChildrenAllDisabledAndUnSelected(l,i)):i=!1}),i},isChildrenDisabled(e,n){let i=n;return e.children&&e.children.length&&e.children.forEach(l=>{l._isDisabled?l.children&&l.children.length&&(i=this.isChildrenDisabled(l,i)):i=!1}),i}}},u1=["width"],m1=["width"],p1=["colspan","rowspan"],g1={key:0},y1=["onClick"],C1=["onClick"],b1=["onClick"],k1=["onMousedown","onMousemove"],w1=["rowspan"];function S1(e,n,i,l,r,s){const a=t.resolveComponent("render-header"),o=t.resolveComponent("Checkbox"),d=t.resolveComponent("checkbox"),c=t.resolveComponent("checkbox-group"),h=t.resolveComponent("i-button"),m=t.resolveComponent("Poptip");return t.openBlock(),t.createElementBlock("table",{cellspacing:"0",cellpadding:"0",border:"0",style:t.normalizeStyle(s.styles)},[t.createElementVNode("colgroup",null,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(i.columns,(g,y)=>(t.openBlock(),t.createElementBlock("col",{key:y,width:e.setCellWidth(g)},null,8,u1))),128)),e.$parent.showVerticalScrollBar?(t.openBlock(),t.createElementBlock("col",{key:0,width:e.$parent.scrollBarWidth},null,8,m1)):t.createCommentVNode("",!0)]),t.createElementVNode("thead",null,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(s.headRows,(g,y)=>(t.openBlock(),t.createElementBlock("tr",{key:y},[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(g,(C,u)=>(t.openBlock(),t.createElementBlock("th",{key:u,colspan:C.colSpan,rowspan:C.rowSpan,class:t.normalizeClass(e.alignCls(C))},[t.createElementVNode("div",{class:t.normalizeClass(s.cellClasses(C))},[C.type==="expand"?(t.openBlock(),t.createElementBlock(t.Fragment,{key:0},[C.renderHeader?(t.openBlock(),t.createBlock(a,{key:1,render:C.renderHeader,column:C,index:u},null,8,["render","column","index"])):(t.openBlock(),t.createElementBlock("span",g1,t.toDisplayString(C.title||""),1))],64)):C.type==="selection"?(t.openBlock(),t.createElementBlock(t.Fragment,{key:1},[C.hideSelectAll?t.createCommentVNode("",!0):(t.openBlock(),t.createBlock(o,{key:0,"model-value":s.isSelectAll,disabled:s.isSelectDisabled,onOnChange:s.selectAll},null,8,["model-value","disabled","onOnChange"]))],64)):(t.openBlock(),t.createElementBlock(t.Fragment,{key:2},[C.renderHeader?(t.openBlock(),t.createBlock(a,{key:1,render:C.renderHeader,column:C,index:u},null,8,["render","column","index"])):(t.openBlock(),t.createElementBlock("span",{key:0,class:t.normalizeClass({[i.prefixCls+"-cell-sort"]:C.sortable}),onClick:x=>C.sortable&&s.handleSortByHead(s.getColumn(y,u)._index)},t.toDisplayString(C.title||"#"),11,y1)),C.sortable?(t.openBlock(),t.createElementBlock("span",{key:2,class:t.normalizeClass([i.prefixCls+"-sort"])},[t.createElementVNode("i",{class:t.normalizeClass(["ivu-icon ivu-icon-md-arrow-dropup",{on:s.getColumn(y,u)._sortType==="asc"}]),onClick:x=>s.handleSort(s.getColumn(y,u)._index,"asc")},null,10,C1),t.createElementVNode("i",{class:t.normalizeClass(["ivu-icon ivu-icon-md-arrow-dropdown",{on:s.getColumn(y,u)._sortType==="desc"}]),onClick:x=>s.handleSort(s.getColumn(y,u)._index,"desc")},null,10,b1)],2)):t.createCommentVNode("",!0),e.isPopperShow(C)?(t.openBlock(),t.createBlock(m,{key:3,modelValue:s.getColumn(y,u)._filterVisible,"onUpdate:modelValue":x=>s.getColumn(y,u)._filterVisible=x,placement:"bottom","popper-class":"ivu-table-popper",transfer:"",capture:!1,onOnPopperHide:x=>s.handleFilterHide(s.getColumn(y,u)._index)},t.createSlots({default:t.withCtx(()=>[t.createElementVNode("span",{class:t.normalizeClass([i.prefixCls+"-filter"])},[t.createElementVNode("i",{class:t.normalizeClass(["ivu-icon ivu-icon-ios-funnel",{on:s.getColumn(y,u)._isFiltered}])},null,2)],2)]),_:2},[s.getColumn(y,u)._filterMultiple?{name:"content",fn:t.withCtx(()=>[t.createElementVNode("div",{class:t.normalizeClass([i.prefixCls+"-filter-list"])},[t.createElementVNode("div",{class:t.normalizeClass([i.prefixCls+"-filter-list-item"])},[t.createVNode(c,{modelValue:s.getColumn(y,u)._filterChecked,"onUpdate:modelValue":x=>s.getColumn(y,u)._filterChecked=x},{default:t.withCtx(()=>[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(C.filters,(x,I)=>(t.openBlock(),t.createBlock(d,{key:I,label:x.value},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(x.label),1)]),_:2},1032,["label"]))),128))]),_:2},1032,["modelValue","onUpdate:modelValue"])],2),t.createElementVNode("div",{class:t.normalizeClass([i.prefixCls+"-filter-footer"])},[t.createVNode(h,{type:"text",size:"small",disabled:!s.getColumn(y,u)._filterChecked.length,onClick:x=>s.handleFilter(s.getColumn(y,u)._index)},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(e.t("i.table.confirmFilter")),1)]),_:2},1032,["disabled","onClick"]),t.createVNode(h,{type:"text",size:"small",onClick:x=>s.handleReset(s.getColumn(y,u)._index)},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(e.t("i.table.resetFilter")),1)]),_:2},1032,["onClick"])],2)],2)]),key:"0"}:{name:"content",fn:t.withCtx(()=>[t.createElementVNode("div",{class:t.normalizeClass([i.prefixCls+"-filter-list"])},[t.createElementVNode("ul",{class:t.normalizeClass([i.prefixCls+"-filter-list-single"])},[t.createElementVNode("li",{class:t.normalizeClass(s.itemAllClasses(s.getColumn(y,u))),onClick:x=>s.handleReset(s.getColumn(y,u)._index)},t.toDisplayString(e.t("i.table.clearFilter")),11,["onClick"]),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(C.filters,x=>(t.openBlock(),t.createElementBlock("li",{class:t.normalizeClass(s.itemClasses(s.getColumn(y,u),x)),key:x.value,onClick:I=>s.handleSelect(s.getColumn(y,u)._index,x.value)},t.toDisplayString(x.label),11,["onClick"]))),128))],2)],2)]),key:"1"}]),1032,["modelValue","onUpdate:modelValue","onOnPopperHide"])):t.createCommentVNode("",!0)],64))],2),C.resizable?(t.openBlock(),t.createElementBlock("div",{key:0,class:"ivu-table-header-resizable",onMousedown:x=>s.handleMouseDown(C,x),onMousemove:x=>s.handleMouseMove(C,x),onMouseout:n[0]||(n[0]=(...x)=>s.handleMouseOut&&s.handleMouseOut(...x))},null,40,k1)):t.createCommentVNode("",!0)],10,p1))),128)),e.$parent.showVerticalScrollBar&&y===0?(t.openBlock(),t.createElementBlock("th",{key:0,class:t.normalizeClass(s.scrollBarCellClass()),rowspan:s.headRows.length},null,10,w1)):t.createCommentVNode("",!0)]))),128))])],4)}var x1=S(f1,[["render",S1]]);const B1={props:{row:Object,prefixCls:String,draggable:Boolean,isChildren:Boolean},computed:{objData(){return this.$parent.objData}},methods:{onDrag(e,n){e.dataTransfer.setData("index",n)},onDrop(e,n){const i=e.dataTransfer.getData("index");this.$parent.$parent.dragAndDrop(i,n),e.preventDefault()},allowDrop(e){e.preventDefault()},rowClasses(e){const n=this.isChildren?this.$parent.$parent.getDataByRowKey(this.row._rowKey):this.objData[e];return[`${this.prefixCls}-row`,this.rowClsName(e),{[`${this.prefixCls}-row-highlight`]:n&&n._isHighlight,[`${this.prefixCls}-row-hover`]:n&&n._isHover}]},rowClsName(e){return this.$parent.$parent.rowClassName(this.objData[e],e)}}},V1=["draggable"];function E1(e,n,i,l,r,s){return i.draggable?(t.openBlock(),t.createElementBlock("tr",{key:0,class:t.normalizeClass(s.rowClasses(i.row._index)),draggable:i.draggable,onDragstart:n[0]||(n[0]=a=>s.onDrag(a,i.row._index)),onDrop:n[1]||(n[1]=a=>s.onDrop(a,i.row._index)),onDragover:n[2]||(n[2]=a=>s.allowDrop(a))},[t.renderSlot(e.$slots,"default")],42,V1)):(t.openBlock(),t.createElementBlock("tr",{key:1,class:t.normalizeClass(s.rowClasses(i.row._index)),draggable:!1},[t.renderSlot(e.$slots,"default")],2))}var Nr=S(B1,[["render",E1]]),Ir={name:"TableExpand",props:{row:Object,render:Function,index:Number,column:{type:Object,default:null}},render(){const e={row:this.row,index:this.index};return this.column&&(e.column=this.column),this.render(t.h,e)}},T1={name:"TableSlot",inject:["TableInstance"],props:{row:Object,index:Number,column:{type:Object,default:null},display:{type:String,default:"block"}},render(){return t.h("div",{class:{"ivu-table-cell-slot":!0,"ivu-table-cell-slot-inline":this.display==="inline","ivu-table-cell-slot-inline-block":this.display==="inline-block"}},this.TableInstance.$slots[this.column.slot]({row:this.row,column:this.column,index:this.index}))}};const N1={name:"TableCell",components:{Icon:se,Checkbox:wn,TableExpand:Ir,TableSlot:T1,Tooltip:xt},inject:["TableInstance"],props:{prefixCls:String,row:Object,column:Object,naturalIndex:Number,index:Number,checked:Boolean,disabled:Boolean,expanded:Boolean,fixed:{type:[Boolean,String],default:!1},treeNode:Boolean,treeLevel:{type:Number,default:0}},data(){return{renderType:"",uid:-1,context:this.$parent.$parent.$parent.currentContext,showTooltip:!1}},computed:{classes(){return[`${this.prefixCls}-cell`,{[`${this.prefixCls}-hidden`]:!this.fixed&&this.column.fixed&&(this.column.fixed==="left"||this.column.fixed==="right"),[`${this.prefixCls}-cell-ellipsis`]:this.column.ellipsis||!1,[`${this.prefixCls}-cell-with-expand`]:this.renderType==="expand",[`${this.prefixCls}-cell-with-selection`]:this.renderType==="selection"}]},expandCls(){return[`${this.prefixCls}-cell-expand`,{[`${this.prefixCls}-cell-expand-expanded`]:this.expanded}]},showChildren(){let e=!1;if(this.renderType==="html"||this.renderType==="normal"||this.renderType==="render"||this.renderType==="slot"){const n=this.row;(n.children&&n.children.length||"_loading"in n)&&this.column.tree&&(e=!0)}return e},showTreeNode(){let e=!1;return(this.renderType==="html"||this.renderType==="normal"||this.renderType==="render"||this.renderType==="slot")&&this.column.tree&&this.treeNode&&(e=!0),e},showLevel(){let e=!1;return(this.renderType==="html"||this.renderType==="normal"||this.renderType==="render"||this.renderType==="slot")&&this.column.tree&&this.treeNode&&(e=!0),e},treeLevelStyle(){return{"padding-left":this.treeLevel*this.TableInstance.indentSize+"px"}},childrenExpand(){return this.TableInstance.getDataByRowKey(this.row._rowKey)._isShowChildren},childrenLoading(){const e=this.TableInstance.getDataByRowKey(this.row._rowKey);return"_loading"in e&&e._loading}},methods:{toggleSelect(){this.treeNode?this.$parent.$parent.$parent.toggleSelect(this.index,this.row._rowKey):this.$parent.$parent.$parent.toggleSelect(this.index)},toggleExpand(){this.$parent.$parent.$parent.toggleExpand(this.index)},handleClick(){},handleTooltipIn(){if(!H)return;const e=this.$refs.content;let n=document.createRange();n.setStart(e,0),n.setEnd(e,e.childNodes.length);const i=n.getBoundingClientRect().width;this.showTooltip=i>e.offsetWidth,n=null},handleToggleTree(){this.$parent.$parent.$parent.toggleTree(this.row._rowKey)}},created(){this.column.type==="index"?this.renderType="index":this.column.type==="selection"?this.renderType="selection":this.column.type==="html"?this.renderType="html":this.column.type==="expand"?this.renderType="expand":this.column.render?this.renderType="render":this.column.slot?this.renderType="slot":this.renderType="normal"}},I1={key:0},_1={key:4,class:"ivu-table-cell-tree ivu-table-cell-tree-empty"},D1=["innerHTML"],M1={key:1};function z1(e,n,i,l,r,s){const a=t.resolveComponent("Checkbox"),o=t.resolveComponent("Icon"),d=t.resolveComponent("Tooltip"),c=t.resolveComponent("table-expand"),h=t.resolveComponent("table-slot");return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(s.classes),ref:"cell"},[r.renderType==="index"?(t.openBlock(),t.createElementBlock("span",I1,t.toDisplayString(i.column.indexMethod?i.column.indexMethod(i.row,i.naturalIndex):i.naturalIndex+1),1)):t.createCommentVNode("",!0),r.renderType==="selection"?(t.openBlock(),t.createBlock(a,{key:1,"model-value":i.checked,onClick:t.withModifiers(s.handleClick,["stop"]),onOnChange:s.toggleSelect,disabled:i.disabled},null,8,["model-value","onClick","onOnChange","disabled"])):t.createCommentVNode("",!0),s.showLevel?(t.openBlock(),t.createElementBlock("div",{key:2,class:"ivu-table-cell-tree-level",style:t.normalizeStyle(s.treeLevelStyle)},null,4)):t.createCommentVNode("",!0),s.showChildren?(t.openBlock(),t.createElementBlock("div",{key:3,class:t.normalizeClass(["ivu-table-cell-tree",{"ivu-table-cell-tree-loading":s.childrenLoading}]),onClick:n[0]||(n[0]=t.withModifiers((...m)=>s.handleToggleTree&&s.handleToggleTree(...m),["prevent","stop"]))},[s.childrenLoading?(t.openBlock(),t.createBlock(o,{key:0,type:"ios-loading",class:"ivu-load-loop"})):s.childrenExpand?(t.openBlock(),t.createBlock(o,{key:2,type:"ios-remove"})):(t.openBlock(),t.createBlock(o,{key:1,type:"ios-add"}))],2)):s.showTreeNode?(t.openBlock(),t.createElementBlock("div",_1)):t.createCommentVNode("",!0),r.renderType==="html"?(t.openBlock(),t.createElementBlock("span",{key:5,innerHTML:i.row[i.column.key]},null,8,D1)):t.createCommentVNode("",!0),r.renderType==="normal"?(t.openBlock(),t.createElementBlock(t.Fragment,{key:6},[i.column.tooltip?(t.openBlock(),t.createBlock(d,{key:0,transfer:"",content:i.row[i.column.key],theme:i.column.tooltipTheme?i.column.tooltipTheme:s.TableInstance.tooltipTheme,disabled:!r.showTooltip,"max-width":i.column.tooltipMaxWidth?i.column.tooltipMaxWidth:s.TableInstance.tooltipMaxWidth,class:"ivu-table-cell-tooltip"},{default:t.withCtx(()=>[t.createElementVNode("span",{ref:"content",onMouseenter:n[1]||(n[1]=(...m)=>s.handleTooltipIn&&s.handleTooltipIn(...m)),class:"ivu-table-cell-tooltip-content"},t.toDisplayString(i.row[i.column.key]),545)]),_:1},8,["content","theme","disabled","max-width"])):(t.openBlock(),t.createElementBlock("span",M1,t.toDisplayString(i.row[i.column.key]),1))],64)):t.createCommentVNode("",!0),r.renderType==="expand"&&!i.row._disableExpand?(t.openBlock(),t.createElementBlock("div",{key:7,class:t.normalizeClass(s.expandCls),onClick:n[2]||(n[2]=(...m)=>s.toggleExpand&&s.toggleExpand(...m))},[t.createVNode(o,{type:"ios-arrow-forward"})],2)):t.createCommentVNode("",!0),r.renderType==="render"?(t.openBlock(),t.createBlock(c,{key:8,row:i.row,column:i.column,index:i.index,render:i.column.render},null,8,["row","column","index","render"])):t.createCommentVNode("",!0),r.renderType==="slot"?(t.openBlock(),t.createBlock(h,{key:9,row:i.row,column:i.column,display:i.column.display||"block",index:i.index},null,8,["row","column","display","index"])):t.createCommentVNode("",!0)],2)}var _r=S(N1,[["render",z1]]);const P1={name:"TableBody",mixins:[Tr],components:{TableCell:_r,Expand:Ir,TableTr:Nr},props:{prefixCls:String,styleObject:Object,columns:Array,data:Array,objData:Object,columnsWidth:Object,fixed:{type:[Boolean,String],default:!1},draggable:{type:Boolean,default:!1},rowKey:{type:[Boolean,String],default:!1}},computed:{expandRender(){let e=function(){return""};for(let n=0;n{let s=[];this.columns.forEach((d,c)=>{if(this.showWithSpan(l,d,r,c)){const h=e(_r,{fixed:this.fixed,"prefix-cls":this.prefixCls,row:l,column:d,"natural-index":r,index:l._index,checked:this.rowStatusByRowKey("_isChecked",l._rowKey),disabled:this.rowStatusByRowKey("_isDisabled",l._rowKey),expanded:this.rowStatusByRowKey("_isExpanded",l._rowKey),treeNode:!0,treeLevel:this.getLevel(l._rowKey),key:d._columnKey}),m=e("td",{class:this.alignCls(d,l),...this.getSpan(l,d,r,c),onClick:g=>this.clickCell(l,d,d.key,g)},[h]);s.push(m)}});const a={};this.isTrShow(n._rowKey)||(a.display="none");const o=e(Nr,{draggable:!1,row:l,"prefix-cls":this.prefixCls,isChildren:!0,style:a,key:this.rowKey?l._rowKey:r,onMouseenter:d=>this.handleMouseIn(l._index,d,l._rowKey),onMouseleave:d=>this.handleMouseOut(l._index,d,l._rowKey),onClick:d=>this.clickCurrentRow(l._index,d,l._rowKey),onDblclick:d=>this.dblclickCurrentRow(l._index,d,l._rowKey),onContextmenu:d=>this.contextmenuCurrentRow(l._index,d,l._rowKey),onSelectstart:d=>this.selectStartCurrentRow(l._index,d,l._rowKey)},()=>s);i.push(o),l.children&&l.children.length&&this.getChildNode(e,l,i)}),i}},render(){let e=[];this.columns.forEach(r=>{const s=t.h("col",{width:this.setCellWidth(r)});e.push(s)});const n=t.h("colgroup",{},e);let i=[];this.data.forEach((r,s)=>{let a=[];this.columns.forEach((d,c)=>{if(this.showWithSpan(r,d,s,c)){const h=t.h(_r,{fixed:this.fixed,"prefix-cls":this.prefixCls,row:r,column:d,"natural-index":s,index:r._index,checked:this.rowChecked(r._index),disabled:this.rowDisabled(r._index),expanded:this.rowExpanded(r._index),key:d._columnKey}),m=t.h("td",{class:this.alignCls(d,r),...this.getSpan(r,d,s,c),onClick:g=>this.clickCell(r,d,d.key,g)},[h]);a.push(m)}});const o=t.h(Nr,{draggable:this.draggable,row:r,"prefix-cls":this.prefixCls,key:this.rowKey?r._rowKey:s,onMouseenter:d=>this.handleMouseIn(r._index,d),onMouseleave:d=>this.handleMouseOut(r._index,d),onClick:d=>this.clickCurrentRow(r._index,d),onDblclick:d=>this.dblclickCurrentRow(r._index,d),onContextmenu:d=>this.contextmenuCurrentRow(r._index,d),onSelectstart:d=>this.selectStartCurrentRow(r._index,d)},()=>a);if(i.push(o),this.rowExpanded(r._index)){const d=t.h(Ir,{row:r,render:this.expandRender,index:r._index,key:this.rowKey?r._rowKey:s}),c=t.h("td",{colspan:this.columns.length,class:this.prefixCls+"-expanded-cell"},[d]),h=t.h("tr",{class:{[this.prefixCls+"-expanded-hidden"]:this.fixed}},[c]);i.push(h)}r.children&&r.children.length&&this.getChildNode(t.h,r,[]).forEach(c=>{i.push(c)})});const l=t.h("tbody",{class:this.prefixCls+"-tbody"},[i]);return t.h("table",{cellspacing:"0",cellpadding:"0",border:"0",style:this.styleObject},[n,l])}},$1={name:"TableSummary",mixins:[Tr],props:{prefixCls:String,styleObject:Object,columns:Array,data:Object,columnsWidth:Object,fixed:{type:[Boolean,String],default:!1}},methods:{cellCls(e){return[{["ivu-table-hidden"]:this.fixed==="left"&&e.fixed!=="left"||this.fixed==="right"&&e.fixed!=="right"||!this.fixed&&e.fixed&&(e.fixed==="left"||e.fixed==="right")}]}}},O1={style:{overflow:"hidden"}},L1=["width"],F1={class:"ivu-table-row"};function A1(e,n,i,l,r,s){return t.openBlock(),t.createElementBlock("div",O1,[t.createElementVNode("table",{class:"ivu-table-summary",cellspacing:"0",cellpadding:"0",border:"0",style:t.normalizeStyle(i.styleObject)},[t.createElementVNode("colgroup",null,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(i.columns,(a,o)=>(t.openBlock(),t.createElementBlock("col",{key:o,width:e.setCellWidth(a)},null,8,L1))),128))]),t.createElementVNode("tbody",{class:t.normalizeClass([i.prefixCls+"-tbody"])},[t.createElementVNode("tr",F1,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(i.columns,(a,o)=>(t.openBlock(),t.createElementBlock("td",{key:o,class:t.normalizeClass(e.alignCls(a))},[t.createElementVNode("div",{class:t.normalizeClass(["ivu-table-cell",s.cellCls(a)])},[t.createElementVNode("span",null,t.toDisplayString(i.data[a.key].value),1)],2)],2))),128))])],2)],4)])}var R1=S($1,[["render",A1]]);const H1=`\r +`,Dr=(e,n,{separator:i,quoted:l})=>{const r=n.map(s=>l?(s=typeof s=="string"?s.replace(/"/g,'"'):s,`"${s}"`):s);e.push(r.join(i))},W1={separator:",",quoted:!1};function U1(e,n,i,l=!1){i=Object.assign({},W1,i);let r;const s=[],a=[];return e?(r=e.map(o=>typeof o=="string"?o:(l||a.push(typeof o.title!="undefined"?o.title:o.key),o.key)),a.length>0&&Dr(s,a,i)):(r=[],n.forEach(o=>{Array.isArray(o)||(r=r.concat(Object.keys(o)))}),r.length>0&&(r=r.filter((o,d,c)=>c.indexOf(o)===d),l||Dr(s,r,i))),Array.isArray(n)&&n.forEach(o=>{Array.isArray(o)||(o=r.map(d=>typeof o[d]!="undefined"?o[d]:"")),Dr(s,o,i)}),s.join(H1)}function Mr(e){const n=navigator.userAgent;return e==="ie"?n.indexOf("compatible")>-1&&n.indexOf("MSIE")>-1?(new RegExp("MSIE (\\d+\\.\\d+);").test(n),parseFloat(RegExp.$1)):!1:n.indexOf(e)>-1}const v1={_isIE11(){let e=0;const n=/MSIE (\d+\.\d+);/.test(navigator.userAgent),i=!!navigator.userAgent.match(/Trident\/7.0/),l=navigator.userAgent.indexOf("rv:11.0");return n&&(e=Number(RegExp.$1)),navigator.appVersion.indexOf("MSIE 10")!==-1&&(e=10),i&&l!==-1&&(e=11),e===11},_isEdge(){return/Edge/.test(navigator.userAgent)},_getDownloadUrl(e){const n="\uFEFF";if(H&&window.Blob&&window.URL&&window.URL.createObjectURL){const i=new Blob([n+e],{type:"text/csv"});return URL.createObjectURL(i)}else return"data:attachment/csv;charset=utf-8,"+n+encodeURIComponent(e)},download(e,n){if(!!H)if(Mr("ie")&&Mr("ie")<10){const i=window.top.open("about:blank","_blank");i.document.charset="utf-8",i.document.write(n),i.document.close(),i.document.execCommand("SaveAs",e),i.close()}else if(Mr("ie")===10||this._isIE11()||this._isEdge()){const i="\uFEFF",l=new Blob([i+n],{type:"text/csv"});navigator.msSaveBlob(l,e)}else{const i=document.createElement("a");i.download=e,i.href=this._getDownloadUrl(n),document.body.appendChild(i),i.click(),document.body.removeChild(i)}}},ds=(e,n)=>{let i=[],l=[];return e.forEach(r=>{r.fixed&&r.fixed===n?i.push(r):l.push(r)}),i.concat(l)},gi=(e,n=!1)=>{const i=me(e),l=[];return i.forEach(r=>{r.children?(n&&l.push(r),l.push.apply(l,gi(r.children,n))):l.push(r)}),l},j1=(e,n=!1)=>{const i=me(n?n==="left"?ds(e,"left"):ds(e,"right"):e);let l=1;const r=(o,d)=>{if(d&&(o.level=d.level+1,l{r(h,o),c+=h.colSpan}),o.colSpan=c}else o.colSpan=1};i.forEach(o=>{o.level=1,r(o)});const s=[];for(let o=0;o{o.children?o.rowSpan=1:o.rowSpan=l-o.level+1,s[o.level-1].push(o)}),s},K1=function(e=32){const n="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890",i=n.length;let l="";for(let r=0;r{i.fixed&&i.fixed==="left"&&(n+=i._width)}),e.width=`${n}px`,e},fixedRightTableStyle(){let e={},n=0;return this.rightFixedColumns.forEach(i=>{i.fixed&&i.fixed==="right"&&(n+=i._width)}),e.width=`${n}px`,e.right=`${this.showVerticalScrollBar?this.scrollBarWidth:0}px`,e},fixedRightHeaderStyle(){let e={},n=0,i=this.headerHeight+1;return this.showVerticalScrollBar&&(n=this.scrollBarWidth),e.width=`${n}px`,e.height=`${i}px`,e},bodyStyle(){let e={};if(this.bodyHeight!==0){const n=this.bodyHeight;this.height?e.height=`${n}px`:this.maxHeight&&(e.maxHeight=`${n}px`)}return e},fixedBodyStyle(){let e={};if(this.bodyHeight!==0){let n=this.bodyHeight-(this.showHorizontalScrollBar?this.scrollBarWidth:0);const i=this.showHorizontalScrollBar?`${n}px`:`${n-1}px`;this.height?e.height=i:this.maxHeight&&(e.maxHeight=i)}return e},leftFixedColumns(){return ds(this.cloneColumns,"left")},rightFixedColumns(){return ds(this.cloneColumns,"right")},isLeftFixed(){return this.columns.some(e=>e.fixed&&e.fixed==="left")},isRightFixed(){return this.columns.some(e=>e.fixed&&e.fixed==="right")},summaryData(){if(!this.showSummary)return{};let e={};return this.summaryMethod?e=this.summaryMethod({columns:this.cloneColumns,data:this.rebuildData}):this.cloneColumns.forEach((n,i)=>{const l=n.key;if(i===0){e[l]={key:n.key,value:this.localeSumText};return}const r=this.rebuildData.map(d=>Number(d[n.key])),s=[];let a=!0;r.forEach(d=>{if(!isNaN(d)){a=!1;let c=(""+d).split(".")[1];s.push(c?c.length:0)}});const o=Math.max.apply(null,s);if(a)e[l]={key:n.key,value:""};else{const d=r.reduce((c,h)=>{const m=Number(h);return isNaN(m)?c:parseFloat((c+h).toFixed(Math.min(o,20)))},0);e[l]={key:n.key,value:d}}}),e}},methods:{rowClsName(e){return this.rowClassName(this.data[e],e)},handleResize(){let e=this.$el.offsetWidth-1,n={},i=0,l=[],r=[],s=[];this.cloneColumns.forEach(h=>{h.width?l.push(h):(r.push(h),h.minWidth&&(i+=h.minWidth),h.maxWidth||s.push(h)),h._width=null});let a=l.map(h=>h.width).reduce((h,m)=>h+m,0),o=e-a-i-(this.showVerticalScrollBar?this.scrollBarWidth:0)-1,d=r.length,c=0;o>0&&d>0&&(c=parseInt(o/d));for(let h=0;hg?g=m.minWidth:m.maxWidth0?(o-=g-(m.minWidth?m.minWidth:0),d--,d>0?c=parseInt(o/d):c=0):c=0),m._width=g,n[m._index]={width:g}}if(o>0){d=s.length,c=parseInt(o/d);for(let h=0;h1?(d--,o-=c,c=parseInt(o/d)):c=0,m._width=g,n[m._index]={width:g}}}this.tableWidth=this.cloneColumns.map(h=>h._width).reduce((h,m)=>h+m,0)+(this.showVerticalScrollBar?this.scrollBarWidth:0)+1,this.columnsWidth=n,this.fixedHeader(),this.fixedShadow==="auto"&&t.nextTick(()=>{const h=this.$refs.body;this.scrollOnTheLeft=h.scrollLeft===0,this.scrollOnTheRight=h.scrollWidth===h.scrollLeft+h.clientWidth})},handleMouseIn(e,n){if(this.disabledHover)return;const i=n?this.getDataByRowKey(n):this.objData[e];i._isHover||(i._isHover=!0)},handleMouseOut(e,n){if(this.disabledHover)return;const i=n?this.getDataByRowKey(n):this.objData[e];i._isHover=!1},handleCurrentRow(e,n,i){const l=i?this.getDataByRowKey(i):this.objData[n];let r=null,s=-1;for(let o in this.objData)if(this.objData[o]._isHighlight){s=parseInt(o),this.objData[o]._isHighlight=!1;break}else if(this.objData[o].children&&this.objData[o].children.length){const d=this.handleResetChildrenRow(this.objData[o]);d&&(r=JSON.parse(JSON.stringify(d)))}e==="highlight"&&(l._isHighlight=!0),s>=0&&(r=JSON.parse(JSON.stringify(this.cloneData[s])));const a=e==="highlight"?i?JSON.parse(JSON.stringify(this.getBaseDataByRowKey(i))):JSON.parse(JSON.stringify(this.cloneData[n])):null;this.$emit("on-current-change",a,r)},handleResetChildrenRow(e){let n=null;if(e.children&&e.children.length)for(let i=0;i{const r=this.$refs.tableWrap.getBoundingClientRect(),s={left:`${i.clientX-r.left}px`,top:`${i.clientY-r.top}px`};this.contextMenuStyles=s,this.contextMenuVisible=!0,n?this.$emit("on-contextmenu",JSON.parse(JSON.stringify(this.getBaseDataByRowKey(n))),i,s):this.$emit("on-contextmenu",JSON.parse(JSON.stringify(this.cloneData[e])),i,s)})},getSelection(){let e=[],n=[];for(let l in this.objData){const r=this.objData[l];r._isChecked&&e.push(parseInt(l)),r.children&&r.children.length&&(n=n.concat(this.getSelectionChildrenRowKeys(r,n)))}n=[...new Set(n)];let i=[];return this.data.forEach((l,r)=>{e.indexOf(r)>-1&&(i=i.concat(l)),l.children&&l.children.length&&n.length&&(i=i.concat(this.getSelectionChildren(l,i,n)))}),i=[...new Set(i)],JSON.parse(JSON.stringify(i))},getSelectionChildrenRowKeys(e,n){return e.children&&e.children.length&&e.children.forEach(i=>{i._isChecked&&n.push(i._rowKey),i.children&&i.children.length&&(n=n.concat(this.getSelectionChildrenRowKeys(i,n)))}),n},getSelectionChildren(e,n,i){return e.children&&e.children.length&&e.children.forEach(l=>{i.indexOf(l[this.rowKey])>-1&&(n=n.concat(l)),l.children&&l.children.length&&(n=n.concat(this.getSelectionChildren(l,n,i)))}),n},toggleSelect(e,n){let i={};if(n)i=this.getDataByRowKey(n);else for(let a in this.objData)if(parseInt(a)===e){i=this.objData[a];break}const l=!i._isChecked;i._isChecked=l;const r=this.getSelection(),s=n?this.getBaseDataByRowKey(n,this.data):this.data[e];this.$emit(l?"on-select":"on-select-cancel",r,JSON.parse(JSON.stringify(s))),this.$emit("on-selection-change",r)},toggleExpand(e){let n={};for(let l in this.objData)if(parseInt(l)===e){n=this.objData[l];break}const i=!n._isExpanded;this.objData[e]._isExpanded=i,this.$emit("on-expand",JSON.parse(JSON.stringify(this.cloneData[e])),i),(this.height||this.maxHeight)&&t.nextTick(()=>this.fixedBody())},toggleTree(e){const n=this.getDataByRowKey(e);if(!("_loading"in n&&n._loading)){if("_loading"in n&&!n._loading&&n.children.length===0){const i=this.getBaseDataByRowKey(e,this.data);i._loading=!0,this.loadData(i,l=>{i._loading=!1,l.length&&(i.children=l,t.nextTick(()=>{const r=this.getDataByRowKey(e);r._isShowChildren=!r._isShowChildren,this.updateDataStatus(e,"_showChildren",r._isShowChildren)}))});return}n._isShowChildren=!n._isShowChildren,this.updateShowChildren&&this.updateDataStatus(e,"_showChildren",n._isShowChildren),this.$emit("on-expand-tree",e,n._isShowChildren)}},updateDataStatus(e,n,i){const l=this.getBaseDataByRowKey(e,this.data);l[n]=i},getDataByRowKey(e,n=this.objData){let i=null;for(let l in n){const r=n[l];if(r._rowKey===e){i=r;break}else if(r.children&&r.children.length&&(i=this.getChildrenByRowKey(e,r),i))break}return i},getChildrenByRowKey(e,n){let i=null;if(n.children&&n.children.length)for(let l=0;l{i._isDisabled||(i._isChecked=n),i.children&&i.children.length&&this.selectAllChildren(i,n)})},fixedHeader(){this.height||this.maxHeight?t.nextTick(()=>{const e=parseInt(ut(this.$refs.title,"height"))||0,n=parseInt(ut(this.$refs.header,"height"))||0,i=parseInt(ut(this.$refs.footer,"height"))||0;this.height?this.bodyHeight=this.height-e-n-i:this.maxHeight&&(this.bodyHeight=this.maxHeight-e-n-i),t.nextTick(()=>this.fixedBody())}):(this.bodyHeight=0,t.nextTick(()=>this.fixedBody()))},fixedBody(){if(this.$refs.header&&(this.headerWidth=this.$refs.header.children[0].offsetWidth,this.headerHeight=this.$refs.header.children[0].offsetHeight),!this.$refs.tbody||!this.data||this.data.length===0)this.showVerticalScrollBar=!1;else{let e=this.$refs.tbody.$el,n=e.parentElement,i=e.offsetHeight,l=n.offsetHeight;this.showHorizontalScrollBar=n.offsetWidthe._filterVisible=!1)},handleBodyScroll(e){this.scrollOnTheLeft=e.target.scrollLeft===0,this.scrollOnTheRight=e.target.scrollWidth===e.target.scrollLeft+e.target.clientWidth,this.showHeader&&(this.$refs.header.scrollLeft=e.target.scrollLeft),this.isLeftFixed&&(this.$refs.fixedBody.scrollTop=e.target.scrollTop),this.isRightFixed&&(this.$refs.fixedRightBody.scrollTop=e.target.scrollTop),this.showSummary&&this.$refs.summary&&(this.$refs.summary.$el.scrollLeft=e.target.scrollLeft),this.hideColumnFilter()},handleFixedMousewheel(e){let n=e.deltaY;if(!n&&e.detail&&(n=e.detail*40),!n&&e.wheelDeltaY&&(n=-e.wheelDeltaY),!n&&e.wheelDelta&&(n=-e.wheelDelta),!n)return;const i=this.$refs.body,l=i.scrollTop;n<0&&l!==0&&e.preventDefault(),n>0&&i.scrollHeight-i.clientHeight>l&&e.preventDefault();let r=0,s=setInterval(()=>{r+=5,n>0?i.scrollTop+=2:i.scrollTop-=2,r>=Math.abs(n)&&clearInterval(s)},5)},handleMouseWheel(e){const n=e.deltaX,i=this.$refs.body;n>0?i.scrollLeft=i.scrollLeft+10:i.scrollLeft=i.scrollLeft-10},sortData(e,n,i){const l=this.cloneColumns[i].key;e.sort((r,s)=>{if(this.cloneColumns[i].sortMethod)return this.cloneColumns[i].sortMethod(r[l],s[l],n);if(n==="asc")return r[l]>s[l]?1:-1;if(n==="desc")return r[l]r._sortType="normal");const l=this.cloneColumns[i].key;this.cloneColumns[i].sortable!=="custom"&&(n==="normal"?this.rebuildData=this.makeDataWithFilter():this.rebuildData=this.sortData(this.rebuildData,n,i)),this.cloneColumns[i]._sortType=n,this.$emit("on-sort-change",{column:JSON.parse(JSON.stringify(this.allColumns[this.cloneColumns[i]._index])),key:l,order:n})},handleFilterHide(e){this.cloneColumns[e]._isFiltered||(this.cloneColumns[e]._filterChecked=[])},filterData(e,n){return e.filter(i=>{if(typeof n.filterRemote=="function")return!0;let l=!n._filterChecked.length;for(let r=0;r{r!==n&&(e=this.filterData(e,l))}),e},handleFilter(e){const n=this.cloneColumns[e];let i=this.makeDataWithSort();i=this.filterOtherData(i,e),this.rebuildData=this.filterData(i,n),this.cloneColumns[e]._isFiltered=!0,this.cloneColumns[e]._filterVisible=!1,this.$emit("on-filter-change",n)},GetOriginalIndex(e){return this.cloneColumns.findIndex(n=>n._index===e)},handleFilterSelect(e,n){const i=this.GetOriginalIndex(e);this.cloneColumns[i]._filterChecked=[n],this.handleFilter(i)},handleFilterReset(e){const n=this.GetOriginalIndex(e);this.cloneColumns[n]._isFiltered=!1,this.cloneColumns[n]._filterVisible=!1,this.cloneColumns[n]._filterChecked=[];let i=this.makeDataWithSort();i=this.filterOtherData(i,n),this.rebuildData=i,this.$emit("on-filter-change",this.cloneColumns[n])},makeData(){let e=me(this.data);return e.forEach((n,i)=>{n._index=i,n._rowKey=typeof this.rowKey=="string"?n[this.rowKey]:gc++,n.children&&n.children.length&&(n.children=this.makeChildrenData(n))}),e},makeChildrenData(e){return e.children&&e.children.length?e.children.map((n,i)=>{const l=me(n);return l._index=i,l._rowKey=typeof this.rowKey=="string"?l[this.rowKey]:gc++,l.children&&l.children.length&&(l.children=this.makeChildrenData(l)),l}):e},makeDataWithSort(){let e=this.makeData(),n="normal",i=-1,l=!1;for(let r=0;re=this.filterData(e,n)),e},makeDataWithSortAndFilter(){let e=this.makeDataWithSort();return this.cloneColumns.forEach(n=>e=this.filterData(e,n)),e},makeObjBaseData(e){const n=me(e);return typeof this.rowKey=="string"&&(n._rowKey=n[this.rowKey]),n._isHover=!1,n._disabled?n._isDisabled=n._disabled:n._isDisabled=!1,n._checked?n._isChecked=n._checked:n._isChecked=!1,n._expanded?n._isExpanded=n._expanded:n._isExpanded=!1,n._highlight?n._isHighlight=n._highlight:n._isHighlight=!1,n},makeObjData(){let e={};return this.data.forEach((n,i)=>{const l=this.makeObjBaseData(n);l.children&&l.children.length&&(l._showChildren?l._isShowChildren=l._showChildren:l._isShowChildren=!1,l.children=this.makeChildrenObjData(l)),e[i]=l}),e},makeChildrenObjData(e){return e.children&&e.children.length?e.children.map(n=>{const i=this.makeObjBaseData(n);return i._showChildren?i._isShowChildren=i._showChildren:i._isShowChildren=!1,i.children&&i.children.length&&(i.children=this.makeChildrenObjData(i)),i}):e},makeColumnsId(e){return me(e).map(i=>("children"in i&&this.makeColumnsId(i.children),i.__id=K1(6),i))},makeColumns(e){let n=me(gi(e)),i=[],l=[],r=[];return n.forEach((s,a)=>{s._index=a,s._columnKey=q1++,s.width=parseInt(s.width),s._width=s.width?s.width:"",s._sortType="normal",s._filterVisible=!1,s._isFiltered=!1,s._filterChecked=[],"filterMultiple"in s?s._filterMultiple=s.filterMultiple:s._filterMultiple=!0,"filteredValue"in s&&(s._filterChecked=s.filteredValue,s._isFiltered=!0),"sortType"in s&&(s._sortType=s.sortType),s.fixed&&s.fixed==="left"?i.push(s):s.fixed&&s.fixed==="right"?l.push(s):r.push(s)}),i.concat(r).concat(l)},makeColumnRows(e,n){return j1(n,e)},exportCsv(e){e.filename?e.filename.indexOf(".csv")===-1&&(e.filename+=".csv"):e.filename="table.csv";let n=[],i=[];e.columns&&e.data?(n=e.columns,i=e.data):(n=this.allColumns,"original"in e||(e.original=!0),i=e.original?this.data:this.rebuildData);let l=!1;"noHeader"in e&&(l=e.noHeader);const r=U1(n,i,e,l);e.callback?e.callback(r):v1.download(e.filename,r)},dragAndDrop(e,n){this.$emit("on-drag-drop",e,n)},handleClickContextMenuOutside(){this.contextMenuVisible=!1},handleOnVisibleChange(e){e&&t.nextTick(()=>{this.handleResize()})},addTable(e){const n=this[e];!n||(n.tableList||(n.tableList=[]),n.tableList.push({id:this.id,table:this}))},removeTable(e){const n=this[e];if(!n||!n.tableList)return;const i=n.tableList.findIndex(l=>l.id===this.id);n.tableList.splice(i,1)},closeContextMenu(){this.handleClickContextMenuOutside()},handleClickDropdownItem(){this.autoCloseContextmenu&&this.closeContextMenu()}},created(){this.context||(this.currentContext=this.$parent),this.showSlotHeader=this.$slots.header!==void 0,this.showSlotFooter=this.$slots.footer!==void 0,this.rebuildData=this.makeDataWithSortAndFilter()},mounted(){this.addTable("TabsInstance"),this.addTable("ModalInstance"),this.addTable("DrawerInstance"),this.handleResize(),t.nextTick(()=>this.ready=!0),fe(window,"resize",this.handleResize),this.observer=Nn(),this.observer.listenTo(this.$el,this.handleResize)},beforeUnmount(){this.removeTable("TabsInstance"),this.removeTable("ModalInstance"),this.removeTable("DrawerInstance"),ue(window,"resize",this.handleResize),this.observer.removeAllListeners(this.$el),this.observer.uninstall(this.$el),this.observer=null},watch:{data:{handler(){const e=this.rebuildData.length;this.objData=this.makeObjData(),this.rebuildData=this.makeDataWithSortAndFilter(),this.handleResize(),e||this.fixedHeader(),setTimeout(()=>{this.cloneData=me(this.data)},0)},deep:!0},columns:{handler(){const e=this.makeColumnsId(this.columns);this.allColumns=gi(e),this.cloneColumns=this.makeColumns(e),this.columnRows=this.makeColumnRows(!1,e),this.leftFixedColumnRows=this.makeColumnRows("left",e),this.rightFixedColumnRows=this.makeColumnRows("right",e),this.rebuildData=this.makeDataWithSortAndFilter(),this.handleResize()},deep:!0},height(){this.handleResize()},maxHeight(){this.handleResize()},showHorizontalScrollBar(){this.handleResize()},showVerticalScrollBar(){this.handleResize()}}},G1={cellspacing:"0",cellpadding:"0",border:"0"},J1=["innerHTML"],X1=["innerHTML"],Z1={class:"ivu-table-resize-line",ref:"resizeLine"};function Q1(e,n,i,l,r,s){const a=t.resolveComponent("table-head"),o=t.resolveComponent("table-body"),d=t.resolveComponent("table-summary"),c=t.resolveComponent("DropdownMenu"),h=t.resolveComponent("Dropdown"),m=t.resolveComponent("Spin");return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(s.wrapClasses),style:t.normalizeStyle(s.styles),ref:"tableWrap"},[t.createElementVNode("div",{class:t.normalizeClass(s.classes)},[r.showSlotHeader?(t.openBlock(),t.createElementBlock("div",{key:0,class:t.normalizeClass([r.prefixCls+"-title"]),ref:"title"},[t.renderSlot(e.$slots,"header")],2)):t.createCommentVNode("",!0),i.showHeader?(t.openBlock(),t.createElementBlock("div",{key:1,class:t.normalizeClass([r.prefixCls+"-header"]),ref:"header",onMousewheel:n[0]||(n[0]=(...g)=>s.handleMouseWheel&&s.handleMouseWheel(...g))},[t.createVNode(a,{"prefix-cls":r.prefixCls,styleObject:s.tableHeaderStyle,columns:r.cloneColumns,"column-rows":r.columnRows,"obj-data":r.objData,"columns-width":r.columnsWidth,data:r.rebuildData},null,8,["prefix-cls","styleObject","columns","column-rows","obj-data","columns-width","data"])],34)):t.createCommentVNode("",!0),t.withDirectives(t.createElementVNode("div",{class:t.normalizeClass([r.prefixCls+"-body"]),style:t.normalizeStyle(s.bodyStyle),ref:"body",onScroll:n[1]||(n[1]=(...g)=>s.handleBodyScroll&&s.handleBodyScroll(...g))},[t.createVNode(o,{ref:"tbody",draggable:i.draggable,"prefix-cls":r.prefixCls,styleObject:s.tableStyle,columns:r.cloneColumns,data:r.rebuildData,"row-key":i.rowKey,"columns-width":r.columnsWidth,"obj-data":r.objData},null,8,["draggable","prefix-cls","styleObject","columns","data","row-key","columns-width","obj-data"])],38),[[t.vShow,!(!!s.localeNoDataText&&(!i.data||i.data.length===0)||!!s.localeNoFilteredDataText&&(!r.rebuildData||r.rebuildData.length===0))]]),i.showSummary&&i.data&&i.data.length?(t.openBlock(),t.createBlock(d,{key:2,ref:"summary","prefix-cls":r.prefixCls,styleObject:s.tableStyle,columns:r.cloneColumns,data:s.summaryData,"columns-width":r.columnsWidth},null,8,["prefix-cls","styleObject","columns","data","columns-width"])):t.createCommentVNode("",!0),t.withDirectives(t.createElementVNode("div",{class:t.normalizeClass([r.prefixCls+"-tip"]),style:t.normalizeStyle(s.bodyStyle),onScroll:n[2]||(n[2]=(...g)=>s.handleBodyScroll&&s.handleBodyScroll(...g))},[t.createElementVNode("table",G1,[t.createElementVNode("tbody",null,[t.createElementVNode("tr",null,[t.createElementVNode("td",{style:t.normalizeStyle({height:s.bodyStyle.height,width:`${r.headerWidth}px`})},[!i.data||i.data.length===0?(t.openBlock(),t.createElementBlock("span",{key:0,innerHTML:s.localeNoDataText},null,8,J1)):(t.openBlock(),t.createElementBlock("span",{key:1,innerHTML:s.localeNoFilteredDataText},null,8,X1))],4)])])])],38),[[t.vShow,!!s.localeNoDataText&&(!i.data||i.data.length===0)||!!s.localeNoFilteredDataText&&(!r.rebuildData||r.rebuildData.length===0)]]),s.isLeftFixed?(t.openBlock(),t.createElementBlock("div",{key:3,class:t.normalizeClass(s.fixedTableClasses),style:t.normalizeStyle(s.fixedTableStyle)},[i.showHeader?(t.openBlock(),t.createElementBlock("div",{key:0,class:t.normalizeClass(s.fixedHeaderClasses)},[t.createVNode(a,{fixed:"left","prefix-cls":r.prefixCls,styleObject:s.fixedTableStyle,columns:s.leftFixedColumns,"column-rows":r.columnRows,"fixed-column-rows":r.leftFixedColumnRows,"obj-data":r.objData,"columns-width":r.columnsWidth,data:r.rebuildData},null,8,["prefix-cls","styleObject","columns","column-rows","fixed-column-rows","obj-data","columns-width","data"])],2)):t.createCommentVNode("",!0),t.createElementVNode("div",{class:t.normalizeClass([r.prefixCls+"-fixed-body"]),style:t.normalizeStyle(s.fixedBodyStyle),ref:"fixedBody",onMousewheel:n[3]||(n[3]=(...g)=>s.handleFixedMousewheel&&s.handleFixedMousewheel(...g)),"on:DOMMouseScroll":n[4]||(n[4]=(...g)=>s.handleFixedMousewheel&&s.handleFixedMousewheel(...g))},[t.createVNode(o,{fixed:"left",draggable:i.draggable,"prefix-cls":r.prefixCls,styleObject:s.fixedTableStyle,columns:s.leftFixedColumns,data:r.rebuildData,"row-key":i.rowKey,"columns-width":r.columnsWidth,"obj-data":r.objData},null,8,["draggable","prefix-cls","styleObject","columns","data","row-key","columns-width","obj-data"])],38),i.showSummary&&i.data&&i.data.length?(t.openBlock(),t.createBlock(d,{key:1,fixed:"left","prefix-cls":r.prefixCls,styleObject:s.fixedTableStyle,columns:s.leftFixedColumns,data:s.summaryData,"columns-width":r.columnsWidth,style:t.normalizeStyle({"margin-top":r.showHorizontalScrollBar?r.scrollBarWidth+"px":0})},null,8,["prefix-cls","styleObject","columns","data","columns-width","style"])):t.createCommentVNode("",!0)],6)):t.createCommentVNode("",!0),s.isRightFixed?(t.openBlock(),t.createElementBlock("div",{key:4,class:t.normalizeClass(s.fixedRightTableClasses),style:t.normalizeStyle(s.fixedRightTableStyle)},[i.showHeader?(t.openBlock(),t.createElementBlock("div",{key:0,class:t.normalizeClass(s.fixedHeaderClasses)},[t.createVNode(a,{fixed:"right","prefix-cls":r.prefixCls,styleObject:s.fixedRightTableStyle,columns:s.rightFixedColumns,"column-rows":r.columnRows,"fixed-column-rows":r.rightFixedColumnRows,"obj-data":r.objData,"columns-width":r.columnsWidth,data:r.rebuildData},null,8,["prefix-cls","styleObject","columns","column-rows","fixed-column-rows","obj-data","columns-width","data"])],2)):t.createCommentVNode("",!0),t.createElementVNode("div",{class:t.normalizeClass([r.prefixCls+"-fixed-body"]),style:t.normalizeStyle(s.fixedBodyStyle),ref:"fixedRightBody",onMousewheel:n[5]||(n[5]=(...g)=>s.handleFixedMousewheel&&s.handleFixedMousewheel(...g)),"on:DOMMouseScroll":n[6]||(n[6]=(...g)=>s.handleFixedMousewheel&&s.handleFixedMousewheel(...g))},[t.createVNode(o,{fixed:"right",draggable:i.draggable,"prefix-cls":r.prefixCls,styleObject:s.fixedRightTableStyle,columns:s.rightFixedColumns,data:r.rebuildData,"row-key":i.rowKey,"columns-width":r.columnsWidth,"obj-data":r.objData},null,8,["draggable","prefix-cls","styleObject","columns","data","row-key","columns-width","obj-data"])],38),i.showSummary&&i.data&&i.data.length?(t.openBlock(),t.createBlock(d,{key:1,fixed:"right","prefix-cls":r.prefixCls,styleObject:s.fixedRightTableStyle,columns:s.rightFixedColumns,data:s.summaryData,"columns-width":r.columnsWidth,style:t.normalizeStyle({"margin-top":r.showHorizontalScrollBar?r.scrollBarWidth+"px":0})},null,8,["prefix-cls","styleObject","columns","data","columns-width","style"])):t.createCommentVNode("",!0)],6)):t.createCommentVNode("",!0),s.isRightFixed?(t.openBlock(),t.createElementBlock("div",{key:5,class:t.normalizeClass([r.prefixCls+"-fixed-right-header"]),style:t.normalizeStyle(s.fixedRightHeaderStyle)},null,6)):t.createCommentVNode("",!0),r.showSlotFooter?(t.openBlock(),t.createElementBlock("div",{key:6,class:t.normalizeClass([r.prefixCls+"-footer"]),ref:"footer"},[t.renderSlot(e.$slots,"footer")],2)):t.createCommentVNode("",!0)],2),t.withDirectives(t.createElementVNode("div",Z1,null,512),[[t.vShow,r.showResizeLine]]),i.showContextMenu?(t.openBlock(),t.createElementBlock("div",{key:0,class:"ivu-table-context-menu",style:t.normalizeStyle(r.contextMenuStyles)},[t.createVNode(h,{trigger:"custom",visible:r.contextMenuVisible,transfer:"",onOnClick:s.handleClickDropdownItem,onOnClickoutside:s.handleClickContextMenuOutside},{list:t.withCtx(()=>[t.createVNode(c,null,{default:t.withCtx(()=>[t.renderSlot(e.$slots,"contextMenu")]),_:3})]),_:3},8,["visible","onOnClick","onOnClickoutside"])],4)):t.createCommentVNode("",!0),t.createVNode(m,{fix:"",size:"large",show:i.loading},{default:t.withCtx(()=>[t.renderSlot(e.$slots,"loading")]),_:3},8,["show"])],6)}var hs=S(Y1,[["render",Q1]]);const eS={name:"TablePaste",components:{Row:Ot,Col:gt,Input:Ze,Table:hs},emits:["on-change","on-error","on-success"],props:{value:{type:String},inputProps:{type:Object,default(){return{}}},tableProps:{type:Object,default(){return{}}},hideTable:{type:Boolean,default:!1}},data(){return{content:"",tableColumns:[],tableData:[]}},watch:{value:{handler(e){this.handleResolveContent(e)},immediate:!0}},methods:{handleContentChange(e){const n=e.target.value.trim();this.$emit("on-change",n),this.handleResolveContent(n)},handleResolveContent(e){let n=[];e!==""&&e!==void 0&&(n=e.split(/[\n\u0085\u2028\u2029]|\r\n?/g).map(r=>r.split(" ")));const i=this.handleGetErrorIndex(n),l=this.contentToTable(n);this.tableColumns=l.columns,this.tableData=l.data,i.length?this.$emit("on-error",l,i):this.$emit("on-success",l)},handleGetErrorIndex(e){const n=me(e),i=[];if(n.length){const l=n[0].length;n.forEach((r,s)=>{r.length!==l&&i.push(s)})}return i},contentToTable(e){const n=me(e);let i=[],l=[];return n.length>1&&(i=n.shift().map((s,a)=>({title:s,key:`key${a}`})),l=n.map(s=>{const a={};return s.forEach((o,d)=>{a[`key${d}`]=o}),a})),{columns:i,data:l}}}},tS={class:"ivu-table-paste"},nS={key:0,class:"ivu-table-paste-input"},iS={key:0,class:"ivu-table-paste-input"};function sS(e,n,i,l,r,s){const a=t.resolveComponent("Input"),o=t.resolveComponent("Col"),d=t.resolveComponent("Table"),c=t.resolveComponent("Row");return t.openBlock(),t.createElementBlock("div",tS,[i.hideTable?(t.openBlock(),t.createElementBlock(t.Fragment,{key:1},[i.value!==void 0||!e.$slots.default?(t.openBlock(),t.createElementBlock("div",iS,[t.renderSlot(e.$slots,"default",{},()=>[t.createVNode(a,t.mergeProps({modelValue:r.content,"onUpdate:modelValue":n[1]||(n[1]=h=>r.content=h),type:"textarea"},i.inputProps,{onOnChange:s.handleContentChange}),null,16,["modelValue","onOnChange"])])])):t.createCommentVNode("",!0)],64)):(t.openBlock(),t.createBlock(c,{key:0,gutter:32},{default:t.withCtx(()=>[t.createVNode(o,{span:"12"},{default:t.withCtx(()=>[i.value!==void 0||!e.$slots.default?(t.openBlock(),t.createElementBlock("div",nS,[t.renderSlot(e.$slots,"default",{},()=>[t.createVNode(a,t.mergeProps({modelValue:r.content,"onUpdate:modelValue":n[0]||(n[0]=h=>r.content=h),type:"textarea"},i.inputProps,{onOnChange:s.handleContentChange}),null,16,["modelValue","onOnChange"])])])):t.createCommentVNode("",!0)]),_:3}),t.createVNode(o,{span:"12"},{default:t.withCtx(()=>[t.createVNode(d,t.mergeProps({columns:r.tableColumns,data:r.tableData},i.tableProps),null,16,["columns","data"])]),_:1})]),_:3}))])}var yc=S(eS,[["render",sS]]);const rS={name:"TagSelect",mixins:[xe],components:{Tag:Sn,Icon:se},emits:["on-change","on-checked-all","update:modelValue"],provide(){return{TagSelectInstance:this}},props:{modelValue:{type:Array,default(){return[]}},expandable:{type:Boolean,default:!1},hideCheckAll:{type:Boolean,default:!1},locale:{type:Object,default(){return{collapseText:"\u6536\u8D77",expandText:"\u5C55\u5F00"}}}},data(){return{currentValue:this.modelValue,checkedAll:!1,expand:!1,tagSelectOptionList:[]}},computed:{classes(){return{"ivu-tag-select-with-expanded":this.expandable,"ivu-tag-select-expanded":this.expand}}},watch:{modelValue(e){this.currentValue=e,this.handleUpdateTags()}},methods:{handleUpdateTags(){let e=!0;this.tagSelectOptionList.map(i=>i.option).forEach(i=>{this.currentValue.indexOf(i.name)>=0?i.checked=!0:(i.checked=!1,e=!1)}),this.checkedAll=e},handleChangeTag(e){const n=[];let i=!0;this.tagSelectOptionList.map(r=>r.option).forEach(r=>{r.checked?n.push(r.name):i=!1}),this.currentValue=n,this.$emit("update:modelValue",n),this.$emit("on-change",[...n],e),this.handleFormItemChange("change",e),e&&(this.checkedAll=i)},handleCheckAll(e){this.checkedAll=e,this.tagSelectOptionList.map(i=>i.option).forEach(i=>{i.checked=e}),this.handleChangeTag(),this.$emit("on-checked-all",e)},handleToggleExpand(){this.expand=!this.expand}},mounted(){this.handleUpdateTags()}},lS={key:0,class:"ivu-tag-select-option"},aS={key:0},oS={key:1};function cS(e,n,i,l,r,s){const a=t.resolveComponent("Tag"),o=t.resolveComponent("Icon");return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(["ivu-tag-select",s.classes])},[i.hideCheckAll?t.createCommentVNode("",!0):(t.openBlock(),t.createElementBlock("div",lS,[t.createVNode(a,{checkable:"",checked:r.checkedAll,onOnChange:s.handleCheckAll,color:"primary"},{default:t.withCtx(()=>[t.createTextVNode("\u5168\u90E8")]),_:1},8,["checked","onOnChange"])])),t.renderSlot(e.$slots,"default"),i.expandable?(t.openBlock(),t.createElementBlock("a",{key:1,class:"ivu-tag-select-expand-btn",onClick:n[0]||(n[0]=(...d)=>s.handleToggleExpand&&s.handleToggleExpand(...d))},[r.expand?(t.openBlock(),t.createElementBlock("span",aS,t.toDisplayString(i.locale.collapseText),1)):(t.openBlock(),t.createElementBlock("span",oS,t.toDisplayString(i.locale.expandText),1)),r.expand?(t.openBlock(),t.createBlock(o,{key:2,type:"ios-arrow-up"})):(t.openBlock(),t.createBlock(o,{key:3,type:"ios-arrow-down"}))])):t.createCommentVNode("",!0)],2)}var Cc=S(rS,[["render",cS]]);const dS={name:"TagSelectOption",components:{Tag:Sn},inject:["TagSelectInstance"],props:{name:{type:[String,Number],required:!0},tagProps:{type:Object,default(){return{}}},color:{type:String,default:"primary"}},data(){return{checked:!1,id:Ee(6)}},methods:{handleChange(e){this.checked=e,this.TagSelectInstance.handleChangeTag(this.name)},addOption(){this.TagSelectInstance.tagSelectOptionList.push({id:this.id,option:this})},removeOption(){const e=this.TagSelectInstance,n=e.tagSelectOptionList.findIndex(i=>i.id===this.id);e.tagSelectOptionList.splice(n,1)}},mounted(){this.addOption()},beforeUnmount(){this.removeOption()}},hS={class:"ivu-tag-select-option"};function fS(e,n,i,l,r,s){const a=t.resolveComponent("Tag");return t.openBlock(),t.createElementBlock("div",hS,[t.createVNode(a,t.mergeProps({checkable:"",checked:r.checked,onOnChange:s.handleChange,color:i.color},i.tagProps),{default:t.withCtx(()=>[t.renderSlot(e.$slots,"default")]),_:3},16,["checked","onOnChange","color"])])}var bc=S(dS,[["render",fS]]);const kc={name:"Text",mixins:[ri],render(){return t.h(ns,{...this.$props,component:"span",...this.commonEvents()},this.commonSlots())}},wc="ivu-timeline",uS={name:"Timeline",props:{pending:{type:Boolean,default:!1}},computed:{classes(){return[`${wc}`,{[`${wc}-pending`]:this.pending}]}}};function mS(e,n,i,l,r,s){return t.openBlock(),t.createElementBlock("ul",{class:t.normalizeClass(s.classes)},[t.renderSlot(e.$slots,"default")],2)}var Sc=S(uS,[["render",mS]]);const zn="ivu-timeline",pS={name:"TimelineItem",props:{color:{type:String,default:"blue"}},data(){return{dot:!1}},mounted(){this.dot=!!this.$refs.dot.innerHTML.length},computed:{itemClasses(){return`${zn}-item`},tailClasses(){return`${zn}-item-tail`},headClasses(){return[`${zn}-item-head`,{[`${zn}-item-head-custom`]:this.dot,[`${zn}-item-head-${this.color}`]:this.headColorShow}]},headColorShow(){return this.color==="blue"||this.color==="red"||this.color==="green"},customColor(){let e={};return this.color&&(this.headColorShow||(e={color:this.color,"border-color":this.color})),e},contentClasses(){return`${zn}-item-content`}}};function gS(e,n,i,l,r,s){return t.openBlock(),t.createElementBlock("li",{class:t.normalizeClass(s.itemClasses)},[t.createElementVNode("div",{class:t.normalizeClass(s.tailClasses)},null,2),t.createElementVNode("div",{class:t.normalizeClass(s.headClasses),style:t.normalizeStyle(s.customColor),ref:"dot"},[t.renderSlot(e.$slots,"dot")],6),t.createElementVNode("div",{class:t.normalizeClass(s.contentClasses)},[t.renderSlot(e.$slots,"default")],2)],2)}var xc=S(pS,[["render",gS]]),Bc={mixins:[ua,Ui],components:{TimePickerPanel:Ta,RangeTimePickerPanel:Ma},props:{type:{validator(e){return V(e,["time","timerange"])},default:"time"}},computed:{panel(){return this.type==="timerange"?"RangeTimePickerPanel":"TimePickerPanel"},ownPickerProps(){return{disabledHours:this.disabledHours,disabledMinutes:this.disabledMinutes,disabledSeconds:this.disabledSeconds,hideDisabledOptions:this.hideDisabledOptions}}},watch:{visible(e){e&&t.nextTick(()=>{this.timeSpinnerList.map(i=>i.timeSpinner).forEach(i=>i.updateScroll())})}}};const Vc={name:"Title",mixins:[ri],props:{level:{type:Number,validator(e){return V(e,[1,2,3,4,5,6])},default:1}},render(){return t.h(ns,{...this.$props,component:`h${this.level}`,...this.commonEvents()},this.commonSlots())}},yS={name:"Search",components:{Input:Ze},emits:["on-query-change","on-query-clear"],props:{prefixCls:String,placeholder:String,query:String},data(){return{currentQuery:this.query}},watch:{query(e){this.currentQuery=e},currentQuery(e){this.$emit("on-query-change",e)}},computed:{icon(){return this.query===""?"ios-search":"ios-close-circle"}},methods:{handleClick(){this.currentQuery!==""&&(this.currentQuery="",this.$emit("on-query-clear"))}}};function CS(e,n,i,l,r,s){const a=t.resolveComponent("Input");return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(i.prefixCls)},[t.createVNode(a,{modelValue:r.currentQuery,"onUpdate:modelValue":n[0]||(n[0]=o=>r.currentQuery=o),size:"small",icon:s.icon,placeholder:i.placeholder,onOnClick:s.handleClick},null,8,["modelValue","icon","placeholder","onOnClick"])],2)}var bS=S(yS,[["render",CS]]);const kS={name:"TransferList",components:{Search:bS,Checkbox:wn},inject:["TransferInstance"],emits:["on-checked-keys-change"],props:{prefixCls:String,data:Array,renderFormat:Function,checkedKeys:Array,listStyle:Object,title:[String,Number],filterable:Boolean,filterPlaceholder:String,filterMethod:Function,notFoundText:String,validKeysCount:Number},data(){return{showItems:[],query:"",showFooter:!0}},watch:{data(){this.updateFilteredData()}},computed:{classes(){return[`${this.prefixCls}`,{[`${this.prefixCls}-with-footer`]:this.showFooter}]},bodyClasses(){return[`${this.prefixCls}-body`,{[`${this.prefixCls}-body-with-search`]:this.filterable,[`${this.prefixCls}-body-with-footer`]:this.showFooter}]},count(){const e=this.validKeysCount;return(e>0?`${e}/`:"")+`${this.data.length}`},checkedAll(){return this.filterData.filter(e=>!e.disabled).length===this.validKeysCount&&this.validKeysCount!==0},checkedAllDisabled(){return this.filterData.filter(e=>!e.disabled).length<=0},filterData(){return this.showItems.filter(e=>this.filterMethod(e,this.query))}},methods:{itemClasses(e){return[`${this.prefixCls}-content-item`,{[`${this.prefixCls}-content-item-disabled`]:e.disabled}]},showLabel(e){return this.renderFormat(e)},isCheck(e){return this.checkedKeys.some(n=>n===e.key)},select(e){if(e.disabled)return;const n=this.checkedKeys.indexOf(e.key);n>-1?this.checkedKeys.splice(n,1):this.checkedKeys.push(e.key),this.TransferInstance.handleCheckedKeys()},updateFilteredData(){this.showItems=this.data},toggleSelectAll(e){const n=e?this.filterData.filter(i=>!i.disabled||this.checkedKeys.indexOf(i.key)>-1).map(i=>i.key):this.filterData.filter(i=>i.disabled&&this.checkedKeys.indexOf(i.key)>-1).map(i=>i.key);this.$emit("on-checked-keys-change",n)},handleQueryClear(){this.query=""},handleQueryChange(e){this.query=e}},created(){this.updateFilteredData()},mounted(){this.showFooter=this.$slots.default!==void 0}},wS=["onClick"],SS=["innerHTML"];function xS(e,n,i,l,r,s){const a=t.resolveComponent("Checkbox"),o=t.resolveComponent("Search");return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(s.classes),style:t.normalizeStyle(i.listStyle)},[t.createElementVNode("div",{class:t.normalizeClass(i.prefixCls+"-header")},[t.createVNode(a,{modelValue:s.checkedAll,disabled:s.checkedAllDisabled,"onUpdate:modelValue":s.toggleSelectAll},null,8,["modelValue","disabled","onUpdate:modelValue"]),t.createElementVNode("span",{class:t.normalizeClass(i.prefixCls+"-header-title"),onClick:n[0]||(n[0]=d=>s.toggleSelectAll(!s.checkedAll))},t.toDisplayString(i.title),3),t.createElementVNode("span",{class:t.normalizeClass(i.prefixCls+"-header-count")},t.toDisplayString(s.count),3)],2),t.createElementVNode("div",{class:t.normalizeClass(s.bodyClasses)},[i.filterable?(t.openBlock(),t.createElementBlock("div",{key:0,class:t.normalizeClass(i.prefixCls+"-body-search-wrapper")},[t.createVNode(o,{"prefix-cls":i.prefixCls+"-search",query:r.query,onOnQueryClear:s.handleQueryClear,onOnQueryChange:s.handleQueryChange,placeholder:i.filterPlaceholder},null,8,["prefix-cls","query","onOnQueryClear","onOnQueryChange","placeholder"])],2)):t.createCommentVNode("",!0),t.createElementVNode("ul",{class:t.normalizeClass(i.prefixCls+"-content")},[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(s.filterData,(d,c)=>(t.openBlock(),t.createElementBlock("li",{key:c,class:t.normalizeClass(s.itemClasses(d)),onClick:t.withModifiers(h=>s.select(d),["prevent"])},[t.createVNode(a,{modelValue:s.isCheck(d),disabled:d.disabled},null,8,["modelValue","disabled"]),t.createElementVNode("span",{innerHTML:s.showLabel(d)},null,8,SS)],10,wS))),128)),t.createElementVNode("li",{class:t.normalizeClass(i.prefixCls+"-content-not-found")},t.toDisplayString(i.notFoundText),3)],2)],2),r.showFooter?(t.openBlock(),t.createElementBlock("div",{key:0,class:t.normalizeClass(i.prefixCls+"-footer")},[t.renderSlot(e.$slots,"default")],2)):t.createCommentVNode("",!0)],6)}var Ec=S(kS,[["render",xS]]);const BS={name:"Operation",components:{Button:Oe,Icon:se},inject:["TransferInstance"],props:{prefixCls:String,operations:Array,leftActive:Boolean,rightActive:Boolean,reverseOperation:Boolean},methods:{moveToLeft(){this.TransferInstance.moveTo("left")},moveToRight(){this.TransferInstance.moveTo("right")}}},VS={key:0},ES={key:0},TS={key:0},NS={key:0};function IS(e,n,i,l,r,s){const a=t.resolveComponent("Icon"),o=t.resolveComponent("Button");return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(i.prefixCls+"-operation")},[i.reverseOperation?(t.openBlock(),t.createElementBlock(t.Fragment,{key:0},[t.createVNode(o,{type:"primary",size:"small",disabled:!i.leftActive,onClick:s.moveToRight},{default:t.withCtx(()=>[i.operations[1]?(t.openBlock(),t.createElementBlock("span",VS,t.toDisplayString(i.operations[1]),1)):t.createCommentVNode("",!0),t.createVNode(a,{type:"ios-arrow-forward"})]),_:1},8,["disabled","onClick"]),t.createVNode(o,{type:"primary",size:"small",disabled:!i.rightActive,onClick:s.moveToLeft},{default:t.withCtx(()=>[t.createVNode(a,{type:"ios-arrow-back"}),i.operations[0]?(t.openBlock(),t.createElementBlock("span",ES,t.toDisplayString(i.operations[0]),1)):t.createCommentVNode("",!0)]),_:1},8,["disabled","onClick"])],64)):(t.openBlock(),t.createElementBlock(t.Fragment,{key:1},[t.createVNode(o,{type:"primary",size:"small",disabled:!i.rightActive,onClick:s.moveToLeft},{default:t.withCtx(()=>[t.createVNode(a,{type:"ios-arrow-back"}),i.operations[0]?(t.openBlock(),t.createElementBlock("span",TS,t.toDisplayString(i.operations[0]),1)):t.createCommentVNode("",!0)]),_:1},8,["disabled","onClick"]),t.createVNode(o,{type:"primary",size:"small",disabled:!i.leftActive,onClick:s.moveToRight},{default:t.withCtx(()=>[i.operations[1]?(t.openBlock(),t.createElementBlock("span",NS,t.toDisplayString(i.operations[1]),1)):t.createCommentVNode("",!0),t.createVNode(a,{type:"ios-arrow-forward"})]),_:1},8,["disabled","onClick"])],64))],2)}var _S=S(BS,[["render",IS]]);const Tc="ivu-transfer",Nc={name:"Transfer",mixins:[ge,xe],emits:["on-change","on-selected-change"],provide(){return{TransferInstance:this}},render(){const e=this.$slots.default?this.$slots.default():"";return t.h("div",{class:this.classes},[t.h(Ec,{ref:"left",prefixCls:this.prefixCls+"-list",data:this.leftData,renderFormat:this.renderFormat,checkedKeys:this.leftCheckedKeys,validKeysCount:this.leftValidKeysCount,listStyle:this.listStyle,title:this.localeTitles[0],filterable:this.filterable,filterPlaceholder:this.localeFilterPlaceholder,filterMethod:this.filterMethod,notFoundText:this.localeNotFoundText,"onOn-checked-keys-change":this.handleLeftCheckedKeysChange},()=>e),t.h(_S,{prefixCls:this.prefixCls,operations:this.operations,leftActive:this.leftValidKeysCount>0,rightActive:this.rightValidKeysCount>0,reverseOperation:this.reverseOperation}),t.h(Ec,{ref:"right",prefixCls:this.prefixCls+"-list",data:this.rightData,renderFormat:this.renderFormat,checkedKeys:this.rightCheckedKeys,validKeysCount:this.rightValidKeysCount,listStyle:this.listStyle,title:this.localeTitles[1],filterable:this.filterable,filterPlaceholder:this.localeFilterPlaceholder,filterMethod:this.filterMethod,notFoundText:this.localeNotFoundText,"onOn-checked-keys-change":this.handleRightCheckedKeysChange},()=>e)])},props:{data:{type:Array,default(){return[]}},renderFormat:{type:Function,default(e){return e.label||e.key}},targetKeys:{type:Array,default(){return[]}},selectedKeys:{type:Array,default(){return[]}},listStyle:{type:Object,default(){return{}}},titles:{type:Array},operations:{type:Array,default(){return[]}},filterable:{type:Boolean,default:!1},filterPlaceholder:{type:String},filterMethod:{type:Function,default(e,n){const i="label"in e?"label":"key";return e[i].indexOf(n)>-1}},notFoundText:{type:String},reverseOperation:{type:Boolean,default:!1}},data(){return{prefixCls:Tc,leftData:[],rightData:[],leftCheckedKeys:[],rightCheckedKeys:[]}},computed:{classes(){return[`${Tc}`]},leftValidKeysCount(){return this.getValidKeys("left").length},rightValidKeysCount(){return this.getValidKeys("right").length},localeFilterPlaceholder(){return this.filterPlaceholder===void 0?this.t("i.transfer.filterPlaceholder"):this.filterPlaceholder},localeNotFoundText(){return this.notFoundText===void 0?this.t("i.transfer.notFoundText"):this.notFoundText},localeTitles(){return this.titles===void 0?[this.t("i.transfer.titles.source"),this.t("i.transfer.titles.target")]:this.titles}},methods:{getValidKeys(e){return this[`${e}Data`].filter(n=>!n.disabled&&this[`${e}CheckedKeys`].indexOf(n.key)>-1).map(n=>n.key)},splitData(e=!1){this.leftData=[...this.data],this.rightData=[],this.targetKeys.length>0&&this.targetKeys.forEach(n=>{const i=this.leftData.filter((l,r)=>l.key===n?(this.leftData.splice(r,1),!0):!1);i&&i.length>0&&this.rightData.push(i[0])}),e&&this.splitSelectedKey()},splitSelectedKey(){const e=this.selectedKeys;e.length>0&&(this.leftCheckedKeys=this.leftData.filter(n=>e.indexOf(n.key)>-1).map(n=>n.key),this.rightCheckedKeys=this.rightData.filter(n=>e.indexOf(n.key)>-1).map(n=>n.key))},moveTo(e){const n=this.targetKeys,i=e==="left"?"right":"left",l=this.getValidKeys(i),r=e==="right"?l.concat(n):n.filter(s=>!l.some(a=>s===a));this.$refs[i].toggleSelectAll(!1),this.$emit("on-change",r,e,l),this.handleFormItemChange("change",{tarketKeys:r,direction:e,moveKeys:l})},handleLeftCheckedKeysChange(e){this.leftCheckedKeys=e},handleRightCheckedKeysChange(e){this.rightCheckedKeys=e},handleCheckedKeys(){const e=this.getValidKeys("left"),n=this.getValidKeys("right");this.$emit("on-selected-change",e,n)}},watch:{targetKeys(){this.splitData(!1)},data(){this.splitData(!1)}},mounted(){this.splitData(!0)}};var DS={name:"RenderCell",props:{render:Function,data:Object,node:Array},render(){const e={root:this.node[0],node:this.node[1],data:this.data};return this.render(t.h,e)}};const qt="ivu-tree",MS={name:"TreeNode",inject:["TreeInstance"],components:{Checkbox:wn,Icon:se,CollapseTransition:br,Render:DS},props:{data:{type:Object,default:()=>{}},multiple:{type:Boolean,default:!1},childrenKey:{type:String,default:"children"},showCheckbox:{type:Boolean,default:!1},appear:{type:Boolean,default:!1}},data(){return{prefixCls:qt,appearByClickArrow:!1,globalConfig:{}}},computed:{classes(){return[`${qt}-children`]},selectedCls(){return[{[`${qt}-node-selected`]:this.data.selected}]},arrowClasses(){return[`${qt}-arrow`,{[`${qt}-arrow-disabled`]:this.data.disabled,[`${qt}-arrow-open`]:this.data.expand}]},titleClasses(){return[`${qt}-title`,{[`${qt}-title-selected`]:this.data.selected}]},showArrow(){return this.data[this.childrenKey]&&this.data[this.childrenKey].length||"loading"in this.data&&!this.data.loading},showLoading(){return"loading"in this.data&&this.data.loading},isParentRender(){const e=Ne(this,"Tree");return e&&e.render},parentRender(){const e=Ne(this,"Tree");return e&&e.render?e.render:null},node(){const e=Ne(this,"Tree");return e?[e.flatState,e.flatState.find(n=>n.nodeKey===this.data.nodeKey)]:[]},children(){return this.data[this.childrenKey]},arrowType(){const e=this.globalConfig;let n="ios-arrow-forward";return e&&(e.tree.customArrow?n="":e.tree.arrow&&(n=e.tree.arrow)),n},customArrowType(){const e=this.globalConfig;let n="";return e&&e.tree.customArrow&&(n=e.tree.customArrow),n},arrowSize(){const e=this.globalConfig;let n="";return e&&e.tree.arrowSize&&(n=e.tree.arrowSize),n}},methods:{handleExpand(){const e=this.data;if(this.appearByClickArrow=!0,e[this.childrenKey].length===0){const n=Ne(this,"Tree");if(n&&n.loadData){this.data.loading=!0,n.loadData(e,i=>{this.data.loading=!1,i.length&&(this.data[this.childrenKey]=i,t.nextTick(()=>this.handleExpand()))});return}}e[this.childrenKey]&&e[this.childrenKey].length&&(this.data.expand=!this.data.expand,this.TreeInstance.handleToggleExpand(this.data))},handleClickNode(){this.TreeInstance.expandNode?this.showArrow&&this.handleExpand():this.TreeInstance.selectNode&&this.handleSelect()},handleSelect(){this.data.disabled||(this.TreeInstance.showCheckbox&&this.TreeInstance.checkDirectly?this.handleCheck():this.TreeInstance.handleOnSelected(this.data.nodeKey))},handleCheck(){if(this.data.disabled)return;const e={checked:!this.data.checked&&!this.data.indeterminate,nodeKey:this.data.nodeKey};this.TreeInstance.handleOnCheck(e)},handleContextmenu(e,n){e.contextmenu&&(n.preventDefault(),this.TreeInstance.handleOnContextmenu({data:e,event:n}))},handlePreventSelect(e,n){e.contextmenu&&n.preventDefault()}},created(){const e=t.getCurrentInstance();this.globalConfig=e.appContext.config.globalProperties.$VIEWUI}},zS={key:0,class:"ivu-tree-expand"};function PS(e,n,i,l,r,s){const a=t.resolveComponent("Icon"),o=t.resolveComponent("Checkbox"),d=t.resolveComponent("Render"),c=t.resolveComponent("TreeNode"),h=t.resolveComponent("collapse-transition");return t.openBlock(),t.createElementBlock("ul",{class:t.normalizeClass(s.classes)},[t.createElementVNode("li",{onContextmenu:n[2]||(n[2]=t.withModifiers(m=>s.handleContextmenu(i.data,m),["stop"])),onSelectstart:n[3]||(n[3]=t.withModifiers(m=>s.handlePreventSelect(i.data,m),["stop"]))},[t.createElementVNode("span",{class:t.normalizeClass(s.arrowClasses),onClick:n[0]||(n[0]=(...m)=>s.handleExpand&&s.handleExpand(...m))},[s.showArrow?(t.openBlock(),t.createBlock(a,{key:0,type:s.arrowType,custom:s.customArrowType,size:s.arrowSize},null,8,["type","custom","size"])):t.createCommentVNode("",!0),s.showLoading?(t.openBlock(),t.createBlock(a,{key:1,type:"ios-loading",class:"ivu-load-loop"})):t.createCommentVNode("",!0)],2),i.showCheckbox?(t.openBlock(),t.createBlock(o,{key:0,"model-value":i.data.checked,indeterminate:i.data.indeterminate,disabled:i.data.disabled||i.data.disableCheckbox,onClick:t.withModifiers(s.handleCheck,["prevent"])},null,8,["model-value","indeterminate","disabled","onClick"])):t.createCommentVNode("",!0),t.createElementVNode("span",{class:t.normalizeClass(s.titleClasses),onClick:n[1]||(n[1]=(...m)=>s.handleClickNode&&s.handleClickNode(...m))},[i.data.render?(t.openBlock(),t.createBlock(d,{key:0,render:i.data.render,data:i.data,node:s.node},null,8,["render","data","node"])):s.isParentRender?(t.openBlock(),t.createBlock(d,{key:1,render:s.parentRender,data:i.data,node:s.node},null,8,["render","data","node"])):(t.openBlock(),t.createElementBlock(t.Fragment,{key:2},[t.createTextVNode(t.toDisplayString(i.data.title),1)],64))],2),t.createVNode(h,{appear:i.appear},{default:t.withCtx(()=>[i.data.expand?(t.openBlock(),t.createElementBlock("div",zS,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(s.children,(m,g)=>(t.openBlock(),t.createBlock(c,{appear:r.appearByClickArrow,key:g,data:m,multiple:i.multiple,"show-checkbox":i.showCheckbox,"children-key":i.childrenKey},null,8,["appear","data","multiple","show-checkbox","children-key"]))),128))])):t.createCommentVNode("",!0)]),_:1},8,["appear"])],32)],2)}var $S=S(MS,[["render",PS]]);const OS="ivu-tree",LS={name:"Tree",mixins:[ge],components:{TreeNode:$S,Dropdown:an,DropdownMenu:on},emits:["on-select-change","on-check-change","on-contextmenu","on-toggle-expand"],provide(){return{TreeInstance:this}},props:{data:{type:Array,default:()=>[]},multiple:{type:Boolean,default:!1},showCheckbox:{type:Boolean,default:!1},checkStrictly:{type:Boolean,default:!1},checkDirectly:{type:Boolean,default:!1},emptyText:{type:String},childrenKey:{type:String,default:"children"},loadData:{type:Function},render:{type:Function},selectNode:{type:Boolean,default:!0},expandNode:{type:Boolean,default:!1},autoCloseContextmenu:{type:Boolean,default:!0}},data(){return{prefixCls:OS,stateTree:this.data,flatState:[],contextMenuVisible:!1,contextMenuStyles:{top:0,left:0}}},watch:{data:{deep:!0,handler(){this.stateTree=this.data,this.flatState=this.compileFlatState(),this.rebuildTree()}}},computed:{localeEmptyText(){return typeof this.emptyText=="undefined"?this.t("i.tree.emptyText"):this.emptyText}},methods:{compileFlatState(){let e=0,n=this.childrenKey;const i=[];function l(r,s){r.nodeKey=e++,i[r.nodeKey]={node:r,nodeKey:r.nodeKey},typeof s!="undefined"&&(i[r.nodeKey].parent=s.nodeKey,i[s.nodeKey][n].push(r.nodeKey)),r[n]&&(i[r.nodeKey][n]=[],r[n].forEach(a=>l(a,r)))}return this.stateTree.forEach(r=>{l(r)}),i},updateTreeUp(e){const n=this.flatState[e].parent;if(typeof n=="undefined"||this.checkStrictly)return;const i=this.flatState[e].node,l=this.flatState[n].node;i.checked==l.checked&&i.indeterminate==l.indeterminate||(i.checked==!0?(l.checked=l[this.childrenKey].every(r=>r.checked),l.indeterminate=!l.checked):(l.checked=!1,l.indeterminate=l[this.childrenKey].some(r=>r.checked||r.indeterminate)),this.updateTreeUp(n))},rebuildTree(){this.getCheckedNodes().forEach(n=>{this.updateTreeDown(n,{checked:!0});const i=this.flatState[n.nodeKey].parent;if(!i&&i!==0)return;const l=this.flatState[i].node;typeof n.checked!="undefined"&&n.checked&&l.checked!=n.checked&&this.updateTreeUp(n.nodeKey)})},getSelectedNodes(){return this.flatState.filter(e=>e.node.selected).map(e=>e.node)},getCheckedNodes(){return this.flatState.filter(e=>e.node.checked).map(e=>e.node)},getCheckedAndIndeterminateNodes(){return this.flatState.filter(e=>e.node.checked||e.node.indeterminate).map(e=>e.node)},updateTreeDown(e,n={}){if(!this.checkStrictly){for(let i in n)e[i]=n[i];e[this.childrenKey]&&e[this.childrenKey].forEach(i=>{this.updateTreeDown(i,n)})}},handleSelect(e){if(!this.flatState[e])return;const n=this.flatState[e].node;if(!this.multiple){const i=this.flatState.findIndex(l=>l.node.selected);i>=0&&i!==e&&(this.flatState[i].node.selected=!1)}n.selected=!n.selected,this.$emit("on-select-change",this.getSelectedNodes(),n)},handleCheck({checked:e,nodeKey:n}){if(!this.flatState[n])return;const i=this.flatState[n].node;i.checked=e,i.indeterminate=!1,this.updateTreeUp(n),this.updateTreeDown(i,{checked:e,indeterminate:!1}),this.$emit("on-check-change",this.getCheckedNodes(),i)},handleContextmenu({data:e,event:n}){this.contextMenuVisible&&this.handleClickContextMenuOutside(),t.nextTick(()=>{const l=this.$refs.treeWrap.getBoundingClientRect(),r={left:`${n.clientX-l.left}px`,top:`${n.clientY-l.top}px`};this.contextMenuStyles=r,this.contextMenuVisible=!0,this.$emit("on-contextmenu",e,n,r)})},handleClickContextMenuOutside(){this.contextMenuVisible=!1},handleOnCheck(e){this.handleCheck(e)},handleOnSelected(e){this.handleSelect(e)},handleToggleExpand(e){this.$emit("on-toggle-expand",e)},handleOnContextmenu(e){this.handleContextmenu(e)},closeContextMenu(){this.handleClickContextMenuOutside()},handleClickDropdownItem(){this.autoCloseContextmenu&&this.closeContextMenu()}},created(){this.flatState=this.compileFlatState(),this.rebuildTree()}};function FS(e,n,i,l,r,s){const a=t.resolveComponent("TreeNode"),o=t.resolveComponent("DropdownMenu"),d=t.resolveComponent("Dropdown");return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(r.prefixCls),ref:"treeWrap"},[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(r.stateTree,(c,h)=>(t.openBlock(),t.createBlock(a,{key:h,data:c,visible:"",multiple:i.multiple,"show-checkbox":i.showCheckbox,"children-key":i.childrenKey},null,8,["data","multiple","show-checkbox","children-key"]))),128)),r.stateTree.length?t.createCommentVNode("",!0):(t.openBlock(),t.createElementBlock("div",{key:0,class:t.normalizeClass([r.prefixCls+"-empty"])},t.toDisplayString(s.localeEmptyText),3)),t.createElementVNode("div",{class:"ivu-tree-context-menu",style:t.normalizeStyle(r.contextMenuStyles)},[t.createVNode(d,{trigger:"custom",visible:r.contextMenuVisible,transfer:"",onOnClick:s.handleClickDropdownItem,onOnClickoutside:s.handleClickContextMenuOutside},{list:t.withCtx(()=>[t.createVNode(o,null,{default:t.withCtx(()=>[t.renderSlot(e.$slots,"contextMenu")]),_:3})]),_:3},8,["visible","onOnClick","onOnClickoutside"])],4)],2)}var zr=S(LS,[["render",FS]]);const AS={name:"TreeSelect",components:{Select:nn,Tree:zr},emits:["on-change","update:modelValue","on-open-change"],mixins:[xe],props:{modelValue:{type:[String,Number,Array]},data:{type:Array,default:()=>[]},multiple:{type:Boolean,default:!1},showCheckbox:{type:Boolean,default:!1},loadData:{type:Function},transfer:{type:Boolean,default(){const e=t.getCurrentInstance().appContext.config.globalProperties;return!e.$VIEWUI||e.$VIEWUI.transfer===""?!1:e.$VIEWUI.transfer}}},data(){let e=this.modelValue;return e===null&&(this.multiple?e=[]:e=""),{currentValue:e,isChangeValueInTree:!1,isValueChangeByTree:!1,isValueNull:!1}},watch:{modelValue(e){if(this.isChangeValueInTree)this.isChangeValueInTree=!1;else{let n=e;n===null&&(this.isValueNull=!0,this.multiple?n=[]:n=""),this.currentValue=n,this.$refs.select.reset(),this.handleUpdateTreeNodes(this.data,!0)}},data(){this.isChangeValueInTree?this.isChangeValueInTree=!1:(this.$refs.select.reset(),this.handleUpdateTreeNodes(this.data,!0))}},computed:{valueToArray(){return typeof this.currentValue=="object"?this.currentValue:[this.currentValue]},isCheckboxUsable(){return this.multiple&&this.showCheckbox},transferClassName(){return this.transfer?"ivu-tree-select-transfer":""},classes(){return{"ivu-tree-select-with-checkbox":this.showCheckbox}}},methods:{handleSelectNode(e,n){if(this.multiple)e.length?(this.currentValue=e.map(i=>i.value),this.handleUpdateSelectValue(n.value,n.title)):(this.currentValue=[],this.handleUpdateSelectValue("",""));else if(e.length){const i=e[0];this.currentValue=i.value,this.handleUpdateSelectValue(i.value,i.title)}else this.currentValue="",this.handleUpdateSelectValue("","");this.isChangeValueInTree=!0,this.$emit("update:modelValue",this.currentValue),this.$emit("on-change",this.currentValue),this.handleFormItemChange("change",this.currentValue)},handleUpdateTreeNodes(e,n=!1){e.forEach(i=>{this.valueToArray.indexOf(i.value)>=0?(this.isCheckboxUsable?i.checked=!0:i.selected=!0,this.handleUpdateSelectValue(i.value,i.title)):this.isCheckboxUsable?i.checked=!1:i.selected=!1,i.children&&i.children.length&&this.handleUpdateTreeNodes(i.children)}),n&&(this.$refs.select.isFocused=!1)},handleUpdateSelectValue(e,n){e===""?this.$refs.select.reset():(this.isValueChangeByTree=!0,this.$refs.select.onOptionClick({value:e,label:n}))},handleChange(e){this.isValueChangeByTree?this.isValueChangeByTree=!1:(this.currentValue=e,this.isValueNull?(this.isValueNull=!1,this.$emit("update:modelValue",null)):this.$emit("update:modelValue",e),this.$emit("on-change",e),this.handleFormItemChange("change",e),this.$refs.select.reset(),this.handleUpdateTreeNodes(this.data,!0),t.nextTick(()=>{this.isValueChangeByTree=!1}))},handleOpenChange(e){this.$emit("on-open-change",e)}},mounted(){this.handleUpdateTreeNodes(this.data,!0)}};function RS(e,n,i,l,r,s){const a=t.resolveComponent("Tree"),o=t.resolveComponent("Select");return t.openBlock(),t.createBlock(o,t.mergeProps({ref:"select"},e.$attrs,{multiple:i.multiple,class:["ivu-tree-select",s.classes],"transfer-class-name":s.transferClassName,onOnChange:s.handleChange,onOnOpenChange:s.handleOpenChange,hideNotFound:"",transfer:i.transfer}),{default:t.withCtx(()=>[t.createVNode(a,{data:i.data,multiple:i.multiple,onOnSelectChange:s.handleSelectNode,onOnCheckChange:s.handleSelectNode,"check-strictly":"","show-checkbox":i.multiple&&i.showCheckbox,"check-directly":"","load-data":i.loadData},null,8,["data","multiple","onOnSelectChange","onOnCheckChange","show-checkbox","load-data"])]),_:1},16,["multiple","class","transfer-class-name","onOnChange","onOnOpenChange","transfer"])}var Ic=S(AS,[["render",RS]]);const HS={name:"Typography"},WS={class:"ivu-typography"};function US(e,n,i,l,r,s){return t.openBlock(),t.createElementBlock("article",WS,[t.renderSlot(e.$slots,"default")])}var _c=S(HS,[["render",US]]);const Pr="ivu-upload",vS={name:"UploadList",components:{Icon:se,iProgress:cs},emits:["on-file-click","on-file-preview","on-file-remove"],props:{files:{type:Array,default(){return[]}}},data(){return{prefixCls:Pr}},methods:{fileCls(e){return[`${Pr}-list-file`,{[`${Pr}-list-file-finish`]:e.status==="finished"}]},handleClick(e){this.$emit("on-file-click",e)},handlePreview(e){this.$emit("on-file-preview",e)},handleRemove(e){this.$emit("on-file-remove",e)},format(e){const n=e.name.split(".").pop().toLocaleLowerCase()||"";let i="ios-document-outline";return["gif","jpg","jpeg","png","bmp","webp"].indexOf(n)>-1&&(i="ios-image"),["mp4","m3u8","rmvb","avi","swf","3gp","mkv","flv"].indexOf(n)>-1&&(i="ios-film"),["mp3","wav","wma","ogg","aac","flac"].indexOf(n)>-1&&(i="ios-musical-notes"),["doc","txt","docx","pages","epub","pdf"].indexOf(n)>-1&&(i="md-document"),["numbers","csv","xls","xlsx"].indexOf(n)>-1&&(i="ios-stats"),["keynote","ppt","pptx"].indexOf(n)>-1&&(i="ios-videocam"),i},parsePercentage(e){return parseInt(e,10)}}},jS=["onClick"],KS=["onClick"];function qS(e,n,i,l,r,s){const a=t.resolveComponent("Icon"),o=t.resolveComponent("i-progress");return t.openBlock(),t.createElementBlock("ul",{class:t.normalizeClass([r.prefixCls+"-list"])},[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(i.files,(d,c)=>(t.openBlock(),t.createElementBlock("li",{key:c,class:t.normalizeClass(s.fileCls(d)),onClick:h=>s.handleClick(d)},[t.createElementVNode("span",{onClick:h=>s.handlePreview(d)},[t.createVNode(a,{type:s.format(d)},null,8,["type"]),t.createTextVNode(" "+t.toDisplayString(d.name),1)],8,KS),t.withDirectives(t.createVNode(a,{type:"ios-close",class:t.normalizeClass([r.prefixCls+"-list-remove"]),onClick:h=>s.handleRemove(d)},null,8,["class","onClick"]),[[t.vShow,d.status==="finished"]]),t.createVNode(t.Transition,{name:"fade"},{default:t.withCtx(()=>[d.showProgress?(t.openBlock(),t.createBlock(o,{key:0,"stroke-width":2,percent:s.parsePercentage(d.percentage),status:d.status==="finished"&&d.showProgress?"success":"normal"},null,8,["percent","status"])):t.createCommentVNode("",!0)]),_:2},1024)],10,jS))),128))],2)}var YS=S(vS,[["render",qS]]);function GS(e,n,i){const l=`fail to post ${e} ${i.status}'`,r=new Error(l);return r.status=i.status,r.method="post",r.url=e,r}function Dc(e){const n=e.responseText||e.response;if(!n)return n;try{return JSON.parse(n)}catch{return n}}function JS(e){if(typeof XMLHttpRequest=="undefined")return;const n=new XMLHttpRequest,i=e.action;n.upload&&(n.upload.onprogress=function(a){a.total>0&&(a.percent=a.loaded/a.total*100),e.onProgress(a)});const l=new FormData;e.data&&Object.keys(e.data).map(s=>{l.append(s,e.data[s])}),l.append(e.filename,e.file),n.onerror=function(a){e.onError(a)},n.onload=function(){if(n.status<200||n.status>=300)return e.onError(GS(i,e,n),Dc(n));e.onSuccess(Dc(n))},n.open("post",i,!0),e.withCredentials&&"withCredentials"in n&&(n.withCredentials=!0);const r=e.headers||{};for(let s in r)r.hasOwnProperty(s)&&r[s]!==null&&n.setRequestHeader(s,r[s]);n.send(l)}const yi="ivu-upload",XS={name:"Upload",mixins:[xe],components:{UploadList:YS},props:{action:{type:String,required:!0},headers:{type:Object,default(){return{}}},multiple:{type:Boolean,default:!1},data:{type:Object},name:{type:String,default:"file"},withCredentials:{type:Boolean,default:!1},showUploadList:{type:Boolean,default:!0},type:{type:String,validator(e){return V(e,["select","drag"])},default:"select"},format:{type:Array,default(){return[]}},accept:{type:String},maxSize:{type:Number},beforeUpload:Function,onProgress:{type:Function,default(){return{}}},onSuccess:{type:Function,default(){return{}}},onError:{type:Function,default(){return{}}},onRemove:{type:Function,default(){return{}}},onPreview:{type:Function,default(){return{}}},onExceededSize:{type:Function,default(){return{}}},onFormatError:{type:Function,default(){return{}}},defaultFileList:{type:Array,default(){return[]}},paste:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},webkitdirectory:{type:Boolean,default:!1}},data(){return{prefixCls:yi,dragOver:!1,fileList:[],tempIndex:1}},computed:{classes(){return[`${yi}`,{[`${yi}-select`]:this.type==="select",[`${yi}-drag`]:this.type==="drag",[`${yi}-dragOver`]:this.type==="drag"&&this.dragOver}]}},methods:{handleClick(){this.itemDisabled||this.$refs.input.click()},handleChange(e){const n=e.target.files;!n||(this.uploadFiles(n),this.$refs.input.value=null)},onDrop(e){this.dragOver=!1,!this.itemDisabled&&this.uploadFiles(e.dataTransfer.files)},handlePaste(e){this.itemDisabled||this.paste&&this.uploadFiles(e.clipboardData.files)},uploadFiles(e){let n=Array.prototype.slice.call(e);this.multiple||(n=n.slice(0,1)),n.length!==0&&n.forEach(i=>{this.upload(i)})},upload(e){if(!this.beforeUpload)return this.post(e);const n=this.beforeUpload(e);n&&n.then?n.then(i=>{Object.prototype.toString.call(i)==="[object File]"?this.post(i):this.post(e)},()=>{}):n!==!1&&this.post(e)},post(e){if(this.format.length){const i=e.name.split(".").pop().toLocaleLowerCase();if(!this.format.some(r=>r.toLocaleLowerCase()===i))return this.onFormatError(e,this.fileList),!1}if(this.maxSize&&e.size>this.maxSize*1024)return this.onExceededSize(e,this.fileList),!1;this.handleStart(e),new FormData().append(this.name,e),JS({headers:this.headers,withCredentials:this.withCredentials,file:e,data:this.data,filename:this.name,action:this.action,onProgress:i=>{this.handleProgress(i,e)},onSuccess:i=>{this.handleSuccess(i,e)},onError:(i,l)=>{this.handleError(i,l,e)}})},handleStart(e){e.uid=Date.now()+this.tempIndex++;const n={status:"uploading",name:e.name,size:e.size,percentage:0,uid:e.uid,showProgress:!0};this.fileList.push(n)},getFile(e){const n=this.fileList;let i;return n.every(l=>(i=e.uid===l.uid?l:null,!i)),i},handleProgress(e,n){const i=this.getFile(n);this.onProgress(e,i,this.fileList),i.percentage=e.percent||0},handleSuccess(e,n){const i=this.getFile(n);i&&(i.status="finished",i.response=e,this.onSuccess(e,i,this.fileList),this.handleFormItemChange("change",i),setTimeout(()=>{i.showProgress=!1},1e3))},handleError(e,n,i){const l=this.getFile(i),r=this.fileList;l.status="fail",r.splice(r.indexOf(l),1),this.onError(e,n,i)},handleRemove(e){const n=this.fileList;n.splice(n.indexOf(e),1),this.onRemove(e,n)},handlePreview(e){e.status==="finished"&&this.onPreview(e)},clearFiles(){this.fileList=[]}},watch:{defaultFileList:{immediate:!0,handler(e){this.fileList=e.map(n=>(n.status="finished",n.percentage=100,n.uid=Date.now()+this.tempIndex++,n))}}}},ZS=["multiple","webkitdirectory","accept"];function QS(e,n,i,l,r,s){const a=t.resolveComponent("upload-list");return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass([r.prefixCls])},[t.createElementVNode("div",{class:t.normalizeClass(s.classes),onClick:n[1]||(n[1]=(...o)=>s.handleClick&&s.handleClick(...o)),onDrop:n[2]||(n[2]=t.withModifiers((...o)=>s.onDrop&&s.onDrop(...o),["prevent"])),onPaste:n[3]||(n[3]=(...o)=>s.handlePaste&&s.handlePaste(...o)),onDragover:n[4]||(n[4]=t.withModifiers(o=>r.dragOver=!0,["prevent"])),onDragleave:n[5]||(n[5]=t.withModifiers(o=>r.dragOver=!1,["prevent"]))},[t.createElementVNode("input",{ref:"input",type:"file",class:t.normalizeClass([r.prefixCls+"-input"]),onChange:n[0]||(n[0]=(...o)=>s.handleChange&&s.handleChange(...o)),multiple:i.multiple,webkitdirectory:i.webkitdirectory,accept:i.accept},null,42,ZS),t.renderSlot(e.$slots,"default")],34),t.renderSlot(e.$slots,"tip"),i.showUploadList?(t.openBlock(),t.createBlock(a,{key:0,files:r.fileList,onOnFileRemove:s.handleRemove,onOnFilePreview:s.handlePreview},null,8,["files","onOnFileRemove","onOnFilePreview"])):t.createCommentVNode("",!0)],2)}var Mc=S(XS,[["render",QS]]);const zc={name:"UserName",mixins:[jn],data(){return{className:"ivu-login-username",prefix:"ios-contact-outline",placeholder:"\u8BF7\u8F93\u5165\u7528\u6237\u540D",type:"text",validateMessage:"\u8BF7\u8F93\u5165\u7528\u6237\u540D\uFF01"}}},ex={name:"WordCount",components:{Circle:zi},props:{value:{type:[String,Number],default:""},total:{type:Number,default:0},hideTotal:{type:Boolean,default:!1},overflow:{type:Boolean,default:!1},circle:{type:Boolean,default:!1},size:{type:[String,Number],default:14}},computed:{isOverflow(){return this.value.length>this.total},percent(){let e=this.value.length/this.total*100;return e>100&&(e=100),e},strokeColor(){return this.isOverflow?"#ed4014":"#2d8cf0"}}},tx={class:"ivu-word-count"},nx={key:0,class:"ivu-word-count-prefix"},ix={key:1,class:"ivu-word-count-prefix ivu-word-count-overflow"},sx={key:3,class:"ivu-word-count-overflow"},rx={key:5,class:"ivu-word-count-suffix"},lx={key:6,class:"ivu-word-count-suffix ivu-word-count-overflow"};function ax(e,n,i,l,r,s){const a=t.resolveComponent("Circle");return t.openBlock(),t.createElementBlock("div",tx,[i.circle?(t.openBlock(),t.createBlock(a,{key:0,percent:s.percent,size:i.size,"stroke-color":s.strokeColor},null,8,["percent","size","stroke-color"])):(t.openBlock(),t.createElementBlock(t.Fragment,{key:1},[s.isOverflow?(t.openBlock(),t.createElementBlock("span",ix,[t.renderSlot(e.$slots,"prefix-overflow")])):(t.openBlock(),t.createElementBlock("span",nx,[t.renderSlot(e.$slots,"prefix")])),!s.isOverflow||!i.overflow?(t.openBlock(),t.createElementBlock("span",{key:2,class:t.normalizeClass({"ivu-word-count-overflow":s.isOverflow})},[t.renderSlot(e.$slots,"length",{length:i.value.length},()=>[t.createTextVNode(t.toDisplayString(i.value.length),1)])],2)):(t.openBlock(),t.createElementBlock("span",sx,t.toDisplayString(i.value.length-i.total),1)),i.hideTotal?t.createCommentVNode("",!0):(t.openBlock(),t.createElementBlock(t.Fragment,{key:4},[t.renderSlot(e.$slots,"separator",{},()=>[t.createTextVNode(" / ")]),t.renderSlot(e.$slots,"total",{total:i.total},()=>[t.createTextVNode(t.toDisplayString(i.total),1)])],64)),s.isOverflow?(t.openBlock(),t.createElementBlock("span",lx,[t.renderSlot(e.$slots,"suffix-overflow")])):(t.openBlock(),t.createElementBlock("span",rx,[t.renderSlot(e.$slots,"suffix")]))],64))])}var Pc=S(ex,[["render",ax]]),$c=Object.freeze(Object.defineProperty({__proto__:null,Affix:Fr,Alert:Wr,Anchor:Ur,AnchorLink:vr,Auth:jr,AutoComplete:nl,Avatar:An,AvatarList:rl,BackTop:ll,Badge:Ei,Breadcrumb:Ts,BreadcrumbItem:Ns,Button:Oe,ButtonGroup:Is,Calendar:gl,Captcha:xl,Card:Vl,Carousel:El,CarouselItem:Tl,Cascader:Nl,Cell:Il,CellGroup:_l,Checkbox:wn,CheckboxGroup:As,Circle:zi,City:Pl,Col:gt,Collapse:Ol,ColorPicker:Yl,Content:Ws,Copy:Ai,CountDown:ta,CountUp:na,DatePicker:Pa,Description:$a,DescriptionList:Oa,Divider:Ki,Drawer:La,Dropdown:an,DropdownItem:Fa,DropdownMenu:on,Ellipsis:Aa,Email:Ra,Exception:Ha,Footer:ir,FooterToolbar:Wa,Form:Ji,FormItem:Mi,GlobalFooter:Ua,Grid:no,GridItem:io,Header:or,Icon:se,Image:so,ImagePreview:Ut,Input:Ze,InputNumber:cr,Layout:lo,Link:ho,List:po,ListItem:go,ListItemMeta:yo,LoadingBar:hr,Login:Bo,Menu:ur,MenuGroup:Vo,MenuItem:Eo,Message:Qn,Mobile:To,Modal:et,Notice:pr,Notification:Fo,NotificationItem:Ho,NotificationTab:Wo,NumberInfo:Uo,Numeral:jo,Option:gn,OptionGroup:Ko,Page:qo,PageHeader:Yo,Panel:Go,Paragraph:Jo,Password:Xo,Poptip:kr,Progress:cs,Radio:Ii,RadioGroup:Ni,Rate:Zo,Result:Qo,Row:Ot,Scroll:tc,ScrollIntoView:Sr,ScrollTop:xr,Select:nn,Sider:lc,Skeleton:ac,SkeletonItem:Br,Slider:oc,Space:cc,Spin:Ge,Split:dc,Step:fc,Steps:uc,Submenu:mc,Submit:pc,Switch:Er,Table:hs,TablePaste:yc,TabPane:os,Tabs:ls,Tag:Sn,TagSelect:Cc,TagSelectOption:bc,Text:kc,Time:as,Timeline:Sc,TimelineItem:xc,TimePicker:Bc,Title:Vc,Tooltip:xt,Transfer:Nc,Tree:zr,TreeSelect:Ic,Trend:yr,Typography:_c,Upload:Mc,UserName:zc,WordCount:Pc},Symbol.toStringTag,{value:"Module"})),ox={mounted(e,n){n.value&&(ws(e,"ivu-line-clamp"),e.style["-webkit-line-clamp"]=n.value)},updated(e,n){n.value&&(e.style["-webkit-line-clamp"]=n.value)},unmounted(e){Ss(e,"ivu-line-clamp"),e.style["-webkit-line-clamp"]=null}},cx={mounted(e,n){function i(l){n.value(l)}e.__resizeHandler__=i,e.__observer__=Nn(),e.__observer__.listenTo(e,i)},updated(){},unmounted(e,n){e.__observer__.removeListener(e,e.__resizeHandler__),delete e.__resizeHandler__,delete e.__observer__}};function Yt(e){return String(e).endsWith("%")?"":"px"}var Gt={display:{mounted(e,n){n.value&&(e.style.display=n.value)},updated(e,n){n.value&&(e.style.display=n.value)},unmounted(e){e.style.display=null}},width:{mounted(e,n){n.value&&(e.style.width=n.value+Yt(n.value))},updated(e,n){n.value&&(e.style.width=n.value+Yt(n.value))},unmounted(e){e.style.width=null}},height:{mounted(e,n){n.value&&(e.style.height=n.value+Yt(n.value))},updated(e,n){n.value&&(e.style.height=n.value+Yt(n.value))},unmounted(e){e.style.height=null}},margin:{mounted(e,n){n.value&&(e.style.margin=n.value+Yt(n.value))},updated(e,n){n.value&&(e.style.margin=n.value+Yt(n.value))},unmounted(e){e.style.margin=null}},padding:{mounted(e,n){n.value&&(e.style.padding=n.value+Yt(n.value))},updated(e,n){n.value&&(e.style.padding=n.value+Yt(n.value))},unmounted(e){e.style.padding=null}},font:{mounted(e,n){n&&n.value&&(e.style.fontSize=`${n.value}px`)},updated(e,n){n&&n.value&&(e.style.fontSize=`${n.value}px`)},unmounted(e){e.style.fontSize=null}},color:{mounted(e,n){n.value&&(e.style.color=n.value)},updated(e,n){n.value&&(e.style.color=n.value)},unmounted(e){e.style.color=null}},bgColor:{mounted(e,n){n.value&&(e.style.backgroundColor=n.value)},updated(e,n){n.value&&(e.style.backgroundColor=n.value)},unmounted(e){e.style.backgroundColor=null}}},dx={name:"view-ui-plus",version:"1.3.18",title:"ViewUIPlus",description:"A high quality UI components Library with Vue.js 3",homepage:"http://www.iviewui.com",keywords:["iview","vue","viewui","viewuiplus","vue.js","component","components","ui","framework"],main:"dist/viewuiplus.min.js",typings:"types/index.d.ts",files:["dist","src","types"],scripts:{dev:"vue-cli-service serve",build:"npm run build:prod && npm run build:style && npm run build:lang","build:style":"gulp --gulpfile build/build-style.js","build:prod":"vite build","build:lang":"vite build --config build/vite.lang.config.js",lint:"vue-cli-service lint --fix"},repository:{type:"git",url:"https://github.com/view-design/ViewUIPlus"},author:"Aresn",license:"MIT",bugs:{url:"https://github.com/view-design/ViewUIPlus/issues"},dependencies:{"async-validator":"^3.3.0","countup.js":"^1.9.3",dayjs:"^1.11.0",deepmerge:"^2.2.1","element-resize-detector":"^1.2.0","js-calendar":"^1.2.3","lodash.chunk":"^4.2.0","lodash.throttle":"^4.1.1",numeral:"^2.0.6","popper.js":"^1.14.6",select:"^1.1.2",tinycolor2:"^1.4.1","v-click-outside-x":"^3.7.1"},devDependencies:{"@vitejs/plugin-vue":"^1.9.3","@vue/cli-plugin-babel":"~4.5.0","@vue/cli-plugin-eslint":"~4.5.0","@vue/cli-service":"~4.5.0","@vue/compiler-sfc":"^3.0.0","babel-eslint":"^10.1.0","babel-plugin-import":"^1.13.3",chai:"^4.2.0","copy-webpack-plugin":"^6.4.1","cross-env":"^5.2.0",eslint:"^6.7.2","eslint-plugin-vue":"^7.0.0-0",gulp:"^4.0.2","gulp-autoprefixer":"^8.0.0","gulp-clean-css":"^4.3.0","gulp-less":"^4.0.1","gulp-rename":"^2.0.0",karma:"^2.0.5","karma-chrome-launcher":"^2.2.0","karma-coverage":"^1.1.1","karma-mocha":"^1.3.0","karma-sinon-chai":"^1.3.3","karma-sourcemap-loader":"^0.3.7","karma-spec-reporter":"^0.0.32","karma-webpack":"^2.0.13",less:"^2.7.3","less-loader":"^4.1.0","lint-staged":"^10.5.4",lolex:"^2.7.5",mocha:"^5.0.4",sinon:"^4.4.2","sinon-chai":"^3.3.0","style-loader":"^0.20.2",tslint:"^5.14.0",typescript:"^3.3.4000","uglifyjs-webpack-plugin":"^1.3.0","url-loader":"^1.1.2",vite:"^2.6.4",vue:"^3.2.47","vue-hot-reload-api":"^2.3.4","vue-html-loader":"^1.2.4","vue-loader":"^17.0.0","vue-router":"^4.0.14","vue-style-loader":"^4.1.3","vue-template-compiler":"^2.6.14"}};const Oc={display:Gt.display,width:Gt.width,height:Gt.height,margin:Gt.margin,padding:Gt.padding,font:Gt.font,color:Gt.color,"bg-color":Gt.bgColor,resize:cx,"line-clamp":ox},Lc={...$c,iButton:Oe,iCircle:zi,iCol:gt,iContent:Ws,iForm:Ji,iFooter:ir,iHeader:or,iInput:Ze,iMenu:ur,iOption:gn,iProgress:cs,iSelect:nn,iSwitch:Er,iTable:hs,iTime:as},$r=function(e,n={}){$r.installed||(n.locale&&On.use(n.locale),n.i18n&&On.i18n(n.i18n),Object.keys(Lc).forEach(i=>{e.component(i,Lc[i])}),Object.keys(Oc).forEach(i=>{e.directive(i,Oc[i])}),e.config.globalProperties.$VIEWUI={size:n.size||"",capture:"capture"in n?n.capture:!0,transfer:"transfer"in n?n.transfer:"",cell:{arrow:n.cell&&n.cell.arrow?n.cell.arrow:"",customArrow:n.cell&&n.cell.customArrow?n.cell.customArrow:"",arrowSize:n.cell&&n.cell.arrowSize?n.cell.arrowSize:""},menu:{arrow:n.menu&&n.menu.arrow?n.menu.arrow:"",customArrow:n.menu&&n.menu.customArrow?n.menu.customArrow:"",arrowSize:n.menu&&n.menu.arrowSize?n.menu.arrowSize:""},modal:{maskClosable:n.modal&&"maskClosable"in n.modal?n.modal.maskClosable:""},tabs:{closeIcon:n.tabs&&n.tabs.closeIcon?n.tabs.closeIcon:"",customCloseIcon:n.tabs&&n.tabs.customCloseIcon?n.tabs.customCloseIcon:"",closeIconSize:n.tabs&&n.tabs.closeIconSize?n.tabs.closeIconSize:""},select:{arrow:n.select&&n.select.arrow?n.select.arrow:"",customArrow:n.select&&n.select.customArrow?n.select.customArrow:"",arrowSize:n.select&&n.select.arrowSize?n.select.arrowSize:""},colorPicker:{arrow:n.colorPicker&&n.colorPicker.arrow?n.colorPicker.arrow:"",customArrow:n.colorPicker&&n.colorPicker.customArrow?n.colorPicker.customArrow:"",arrowSize:n.colorPicker&&n.colorPicker.arrowSize?n.colorPicker.arrowSize:""},cascader:{arrow:n.cascader&&n.cascader.arrow?n.cascader.arrow:"",customArrow:n.cascader&&n.cascader.customArrow?n.cascader.customArrow:"",arrowSize:n.cascader&&n.cascader.arrowSize?n.cascader.arrowSize:"",itemArrow:n.cascader&&n.cascader.itemArrow?n.cascader.itemArrow:"",customItemArrow:n.cascader&&n.cascader.customItemArrow?n.cascader.customItemArrow:"",itemArrowSize:n.cascader&&n.cascader.itemArrowSize?n.cascader.itemArrowSize:""},tree:{arrow:n.tree&&n.tree.arrow?n.tree.arrow:"",customArrow:n.tree&&n.tree.customArrow?n.tree.customArrow:"",arrowSize:n.tree&&n.tree.arrowSize?n.tree.arrowSize:""},datePicker:{icon:n.datePicker&&n.datePicker.icon?n.datePicker.icon:"",customIcon:n.datePicker&&n.datePicker.customIcon?n.datePicker.customIcon:"",iconSize:n.datePicker&&n.datePicker.iconSize?n.datePicker.iconSize:""},timePicker:{icon:n.timePicker&&n.timePicker.icon?n.timePicker.icon:"",customIcon:n.timePicker&&n.timePicker.customIcon?n.timePicker.customIcon:"",iconSize:n.timePicker&&n.timePicker.iconSize?n.timePicker.iconSize:""},typography:{copyConfig:n.typography&&n.typography.copyConfig?n.typography.copyConfig:"",editConfig:n.typography&&n.typography.editConfig?n.typography.editConfig:"",ellipsisConfig:n.typography&&n.typography.ellipsisConfig?n.typography.ellipsisConfig:""},space:{size:n.space&&n.space.size?n.space.size:""},image:{toolbar:n.image&&n.image.toolbar?n.image.toolbar:""}},e.config.globalProperties.$Spin=Ge,e.config.globalProperties.$Loading=hr,e.config.globalProperties.$Message=Qn,e.config.globalProperties.$Notice=pr,e.config.globalProperties.$Modal=et,e.config.globalProperties.$ImagePreview=Ut,e.config.globalProperties.$Copy=Ai,e.config.globalProperties.$ScrollIntoView=Sr,e.config.globalProperties.$ScrollTop=xr,e.config.globalProperties.$Date=je)},Fc=dx.version,Ac=On.use,Rc=On.i18n,Hc=e=>{const n=window["viewuiplus/locale"].default;e===n.i.locale?On.use(n):console.log(`The ${e} language pack is not loaded.`)},hx={version:Fc,locale:Ac,i18n:Rc,install:$r,lang:Hc,...$c};B.Affix=Fr,B.Alert=Wr,B.Anchor=Ur,B.AnchorLink=vr,B.Auth=jr,B.AutoComplete=nl,B.Avatar=An,B.AvatarList=rl,B.BackTop=ll,B.Badge=Ei,B.Breadcrumb=Ts,B.BreadcrumbItem=Ns,B.Button=Oe,B.ButtonGroup=Is,B.Calendar=gl,B.Captcha=xl,B.Card=Vl,B.Carousel=El,B.CarouselItem=Tl,B.Cascader=Nl,B.Cell=Il,B.CellGroup=_l,B.Checkbox=wn,B.CheckboxGroup=As,B.Circle=zi,B.City=Pl,B.Col=gt,B.Collapse=Ol,B.ColorPicker=Yl,B.Content=Ws,B.Copy=Ai,B.CountDown=ta,B.CountUp=na,B.DatePicker=Pa,B.Description=$a,B.DescriptionList=Oa,B.Divider=Ki,B.Drawer=La,B.Dropdown=an,B.DropdownItem=Fa,B.DropdownMenu=on,B.Ellipsis=Aa,B.Email=Ra,B.Exception=Ha,B.Footer=ir,B.FooterToolbar=Wa,B.Form=Ji,B.FormItem=Mi,B.GlobalFooter=Ua,B.Grid=no,B.GridItem=io,B.Header=or,B.Icon=se,B.Image=so,B.ImagePreview=Ut,B.Input=Ze,B.InputNumber=cr,B.Layout=lo,B.Link=ho,B.List=po,B.ListItem=go,B.ListItemMeta=yo,B.LoadingBar=hr,B.Login=Bo,B.Menu=ur,B.MenuGroup=Vo,B.MenuItem=Eo,B.Message=Qn,B.Mobile=To,B.Modal=et,B.Notice=pr,B.Notification=Fo,B.NotificationItem=Ho,B.NotificationTab=Wo,B.NumberInfo=Uo,B.Numeral=jo,B.Option=gn,B.OptionGroup=Ko,B.Page=qo,B.PageHeader=Yo,B.Panel=Go,B.Paragraph=Jo,B.Password=Xo,B.Poptip=kr,B.Progress=cs,B.Radio=Ii,B.RadioGroup=Ni,B.Rate=Zo,B.Result=Qo,B.Row=Ot,B.Scroll=tc,B.ScrollIntoView=Sr,B.ScrollTop=xr,B.Select=nn,B.Sider=lc,B.Skeleton=ac,B.SkeletonItem=Br,B.Slider=oc,B.Space=cc,B.Spin=Ge,B.Split=dc,B.Step=fc,B.Steps=uc,B.Submenu=mc,B.Submit=pc,B.Switch=Er,B.TabPane=os,B.Table=hs,B.TablePaste=yc,B.Tabs=ls,B.Tag=Sn,B.TagSelect=Cc,B.TagSelectOption=bc,B.Text=kc,B.Time=as,B.TimePicker=Bc,B.Timeline=Sc,B.TimelineItem=xc,B.Title=Vc,B.Tooltip=xt,B.Transfer=Nc,B.Tree=zr,B.TreeSelect=Ic,B.Trend=yr,B.Typography=_c,B.Upload=Mc,B.UserName=zc,B.WordCount=Pc,B.default=hx,B.i18n=Rc,B.install=$r,B.lang=Hc,B.locale=Ac,B.version=Fc,Object.defineProperties(B,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})}); diff --git a/examples/app.vue b/examples/app.vue new file mode 100644 index 0000000000000000000000000000000000000000..812daf6057cf7642211b7a143c2a92a05b8868a1 --- /dev/null +++ b/examples/app.vue @@ -0,0 +1,115 @@ + + + diff --git a/examples/components/table.vue b/examples/components/table.vue new file mode 100644 index 0000000000000000000000000000000000000000..5b2088202fc2f9206b330d9e181ad3b1cea7ca41 --- /dev/null +++ b/examples/components/table.vue @@ -0,0 +1,104 @@ + + diff --git a/examples/components/tableExpand.vue b/examples/components/tableExpand.vue new file mode 100644 index 0000000000000000000000000000000000000000..99d9344e60aaa0dcd6c263385df47da35d4ed663 --- /dev/null +++ b/examples/components/tableExpand.vue @@ -0,0 +1,44 @@ + + + \ No newline at end of file diff --git a/examples/components/test.vue b/examples/components/test.vue new file mode 100644 index 0000000000000000000000000000000000000000..e3a42bab79f877a65aae232ae1b3c535ff0d251a --- /dev/null +++ b/examples/components/test.vue @@ -0,0 +1,39 @@ + + \ No newline at end of file diff --git a/examples/components/wrapper.vue b/examples/components/wrapper.vue new file mode 100644 index 0000000000000000000000000000000000000000..b692aec9ded67bd1dac0e45a0343bb8a0607edaa --- /dev/null +++ b/examples/components/wrapper.vue @@ -0,0 +1,8 @@ + + \ No newline at end of file diff --git a/examples/index.html b/examples/index.html new file mode 100644 index 0000000000000000000000000000000000000000..71ceef7dd3ea51ebcf4b52d10c94c340f7a0c276 --- /dev/null +++ b/examples/index.html @@ -0,0 +1,15 @@ + + + + + View UI Plus Demo + + + + + +
+ + + diff --git a/examples/main.js b/examples/main.js new file mode 100644 index 0000000000000000000000000000000000000000..07dc3a91602e1173e644f2d055df2fcb716d5228 --- /dev/null +++ b/examples/main.js @@ -0,0 +1,372 @@ +/** + * Created by aresn on 16/6/20. + */ +import { createApp } from 'vue'; +import { createRouter, createWebHistory } from 'vue-router'; +import App from './app.vue'; +import ViewUIPlus from '../src/index'; +// import locale from '../src/locale/lang/en-US'; +// import locale from '../src/locale/lang/zh-CN'; + +// 路由配置 +const router = createRouter({ + esModule: false, + mode: 'history', + history: createWebHistory(), + routes: [ + { + path: '/split', + component: () => import('./routers/split.vue') + }, + { + path: '/layout', + component: () => import('./routers/layout.vue') + }, + { + path: '/affix', + component: () => import('./routers/affix.vue') + }, + { + path: '/anchor', + component: () => import('./routers/anchor.vue') + }, + { + path: '/grid', + component: () => import('./routers/grid.vue') + }, + { + path: '/button', + component: () => import('./routers/button.vue') + }, + { + path: '/input', + component: () => import('./routers/input.vue') + }, + { + path: '/radio', + component: () => import('./routers/radio.vue') + }, + { + path: '/checkbox', + component: () => import('./routers/checkbox.vue') + }, + { + path: '/steps', + component: () => import('./routers/steps.vue') + }, + { + path: '/timeline', + component: () => import('./routers/timeline.vue') + }, + { + path: '/switch', + component: () => import('./routers/switch.vue') + }, + { + path: '/alert', + component: () => import('./routers/alert.vue') + }, + { + path: '/badge', + component: () => import('./routers/badge.vue') + }, + { + path: '/tag', + component: () => import('./routers/tag.vue') + }, + { + path: '/input-number', + component: () => import('./routers/input-number.vue') + }, + { + path: '/upload', + component: () => import('./routers/upload.vue') + }, + { + path: '/progress', + component: () => import('./routers/progress.vue') + }, + { + path: '/collapse', + component: () => import('./routers/collapse.vue') + }, + { + path: '/carousel', + component: () => import('./routers/carousel.vue') + }, + { + path: '/card', + component: () => import('./routers/card.vue') + }, + { + path: '/tree', + component: () => import('./routers/tree.vue') + }, + { + path: '/rate', + component: () => import('./routers/rate.vue') + }, + { + path: '/circle', + component: () => import('./routers/circle.vue') + }, + { + path: '/tabs', + component: () => import('./routers/tabs.vue') + }, + { + path: '/tooltip', + component: () => import('./routers/tooltip.vue') + }, + { + path: '/poptip', + component: () => import('./routers/poptip.vue') + }, + { + path: '/slider', + component: () => import('./routers/slider.vue') + }, + { + path: '/dropdown', + component: () => import('./routers/dropdown.vue') + }, + { + path: '/breadcrumb', + component: () => import('./routers/breadcrumb.vue') + }, + { + path: '/menu', + component: () => import('./routers/menu.vue') + }, + { + path: '/spin', + component: () => import('./routers/spin.vue') + }, + { + path: '/cascader', + component: () => import('./routers/cascader.vue') + }, + { + path: '/select', + component: () => import('./routers/select.vue') + }, + { + path: '/backtop', + component: () => import('./routers/back-top.vue') + }, + { + path: '/page', + component: () => import('./routers/page.vue') + }, + { + path: '/transfer', + component: () => import('./routers/transfer.vue') + }, + { + path: '/date', + component: () => import('./routers/date.vue') + }, + { + path: '/form', + component: () => import('./routers/form.vue') + }, + { + path: '/table', + component: () => import('./routers/table.vue') + }, + { + path: '/loading-bar', + component: () => import('./routers/loading-bar.vue') + }, + { + path: '/modal', + component: () => import('./routers/modal.vue') + }, + { + path: '/message', + component: () => import('./routers/message.vue') + }, + { + path: '/notice', + component: () => import('./routers/notice.vue') + }, + { + path: '/avatar', + component: () => import('./routers/avatar.vue') + }, + { + path: '/color-picker', + component: () => import('./routers/color-picker.vue') + }, + { + path: '/auto-complete', + component: () => import('./routers/auto-complete.vue') + }, + { + path: '/scroll', + component: () => import('./routers/scroll.vue') + }, + { + path: '/divider', + component: () => import('./routers/divider.vue') + }, + { + path: '/time', + component: () => import('./routers/time.vue') + }, + { + path: '/cell', + component: () => import('./routers/cell.vue') + }, + { + path: '/drawer', + component: () => import('./routers/drawer.vue') + }, + { + path: '/icon', + component: () => import('./routers/icon.vue') + }, + { + path: '/list', + component: () => import('./routers/list.vue') + }, + { + path: '/grid-component', + component: () => import('./routers/grid-component.vue') + }, + { + path: '/description-list', + component: () => import('./routers/description-list.vue') + }, + { + path: '/page-header', + component: () => import('./routers/page-header.vue') + }, + { + path: '/tag-select', + component: () => import('./routers/tag-select.vue') + }, + { + path: '/login', + component: () => import('./routers/login.vue') + }, + { + path: '/notification', + component: () => import('./routers/notification.vue') + }, + { + path: '/calendar', + component: () => import('./routers/calendar.vue') + }, + { + path: '/auth', + component: () => import('./routers/auth.vue') + }, + { + path: '/ellipsis', + component: () => import('./routers/ellipsis.vue') + }, + { + path: '/table-paste', + component: () => import('./routers/table-paste.vue') + }, + { + path: '/avatar-list', + component: () => import('./routers/avatar-list.vue') + }, + { + path: '/count-down', + component: () => import('./routers/count-down.vue') + }, + { + path: '/count-up', + component: () => import('./routers/count-up.vue') + }, + { + path: '/numeral', + component: () => import('./routers/numeral.vue') + }, + { + path: '/number-info', + component: () => import('./routers/number-info.vue') + }, + { + path: '/trend', + component: () => import('./routers/trend.vue') + }, + { + path: '/footer-toolbar', + component: () => import('./routers/footer-toolbar.vue') + }, + { + path: '/global-footer', + component: () => import('./routers/global-footer.vue') + }, + { + path: '/word-count', + component: () => import('./routers/word-count.vue') + }, + { + path: '/result', + component: () => import('./routers/result.vue') + }, + { + path: '/exception', + component: () => import('./routers/exception.vue') + }, + { + path: '/v-style', + component: () => import('./routers/v-style.vue') + }, + { + path: '/v-resize', + component: () => import('./routers/v-resize.vue') + }, + { + path: '/v-line-clamp', + component: () => import('./routers/v-line-clamp.vue') + }, + { + path: '/copy', + component: () => import('./routers/copy.vue') + }, + { + path: '/scroll-top', + component: () => import('./routers/scroll-top.vue') + }, + { + path: '/scroll-into-view', + component: () => import('./routers/scroll-into-view.vue') + }, + { + path: '/tree-select', + component: () => import('./routers/tree-select.vue') + }, + { + path: '/city', + component: () => import('./routers/city.vue') + }, + { + path: '/skeleton', + component: () => import('./routers/skeleton.vue') + }, + { + path: '/image', + component: () => import('./routers/image.vue') + }, + { + path: '/typography', + component: () => import('./routers/typography.vue') + }, + { + path: '/space', + component: () => import('./routers/space.vue') + } + ] +}); + +const app = createApp(App); +app.use(ViewUIPlus); +app.use(router); +app.mount('#app'); +export default app; diff --git a/examples/routers/affix.vue b/examples/routers/affix.vue new file mode 100644 index 0000000000000000000000000000000000000000..d3c85a351ded8a7440f4d382bc3268787ba16abf --- /dev/null +++ b/examples/routers/affix.vue @@ -0,0 +1,33 @@ + + + diff --git a/examples/routers/alert.vue b/examples/routers/alert.vue new file mode 100644 index 0000000000000000000000000000000000000000..de718c69df26cd8e85bd0982061ea305684c3118 --- /dev/null +++ b/examples/routers/alert.vue @@ -0,0 +1,84 @@ + + diff --git a/examples/routers/anchor.vue b/examples/routers/anchor.vue new file mode 100644 index 0000000000000000000000000000000000000000..f4635bef1ea8b88b15623e7a68de113bbead02f1 --- /dev/null +++ b/examples/routers/anchor.vue @@ -0,0 +1,28 @@ + + diff --git a/examples/routers/auth.vue b/examples/routers/auth.vue new file mode 100644 index 0000000000000000000000000000000000000000..9d6c96e0af83d08f5bbed59eb671c2693475b47f --- /dev/null +++ b/examples/routers/auth.vue @@ -0,0 +1,32 @@ + + diff --git a/examples/routers/auto-complete.vue b/examples/routers/auto-complete.vue new file mode 100644 index 0000000000000000000000000000000000000000..3e26d400477c44f0890944f1891550d436745c15 --- /dev/null +++ b/examples/routers/auto-complete.vue @@ -0,0 +1,151 @@ + + + \ No newline at end of file diff --git a/examples/routers/avatar-list.vue b/examples/routers/avatar-list.vue new file mode 100644 index 0000000000000000000000000000000000000000..856b8b39ab63e1d24dd689b8b5dc96d84eaf96a1 --- /dev/null +++ b/examples/routers/avatar-list.vue @@ -0,0 +1,37 @@ + + diff --git a/examples/routers/avatar.vue b/examples/routers/avatar.vue new file mode 100644 index 0000000000000000000000000000000000000000..85d155940f60f95561098e174c75cd71fa206354 --- /dev/null +++ b/examples/routers/avatar.vue @@ -0,0 +1,70 @@ + + diff --git a/examples/routers/back-top.vue b/examples/routers/back-top.vue new file mode 100644 index 0000000000000000000000000000000000000000..c520564f651f3cce2637dec8df9b37d455ef7dc3 --- /dev/null +++ b/examples/routers/back-top.vue @@ -0,0 +1,22 @@ + + + diff --git a/examples/routers/badge.vue b/examples/routers/badge.vue new file mode 100644 index 0000000000000000000000000000000000000000..207b4962d97c8d6f3de029f6abd98d23459a4e65 --- /dev/null +++ b/examples/routers/badge.vue @@ -0,0 +1,142 @@ + + + + diff --git a/examples/routers/breadcrumb.vue b/examples/routers/breadcrumb.vue new file mode 100644 index 0000000000000000000000000000000000000000..22095554bd4a71e5b63ccf3b6f4af7017742b16f --- /dev/null +++ b/examples/routers/breadcrumb.vue @@ -0,0 +1,36 @@ + + + diff --git a/examples/routers/button.vue b/examples/routers/button.vue new file mode 100644 index 0000000000000000000000000000000000000000..d93697a78758144ec74c1a42c740d907268b4686 --- /dev/null +++ b/examples/routers/button.vue @@ -0,0 +1,624 @@ + + + diff --git a/examples/routers/calendar.vue b/examples/routers/calendar.vue new file mode 100644 index 0000000000000000000000000000000000000000..d03bade45442c2cc6f0c7ebe9f47eae3bc76e9b7 --- /dev/null +++ b/examples/routers/calendar.vue @@ -0,0 +1,20 @@ + + diff --git a/examples/routers/card.vue b/examples/routers/card.vue new file mode 100644 index 0000000000000000000000000000000000000000..3fc7343cbef4df4278170cfa9b4c4e5211e14ea7 --- /dev/null +++ b/examples/routers/card.vue @@ -0,0 +1,92 @@ + + diff --git a/examples/routers/carousel.vue b/examples/routers/carousel.vue new file mode 100644 index 0000000000000000000000000000000000000000..712202091ae80c785521cf783fb0ffe38773b5b5 --- /dev/null +++ b/examples/routers/carousel.vue @@ -0,0 +1,56 @@ + + + diff --git a/examples/routers/cascader.vue b/examples/routers/cascader.vue new file mode 100644 index 0000000000000000000000000000000000000000..5ddc2fe5b812a84e1f3ab880baa75c4c6d4f5933 --- /dev/null +++ b/examples/routers/cascader.vue @@ -0,0 +1,61 @@ + + diff --git a/examples/routers/cell.vue b/examples/routers/cell.vue new file mode 100644 index 0000000000000000000000000000000000000000..9df2ee0c3fa9ad17c84ff676a752d75776237241 --- /dev/null +++ b/examples/routers/cell.vue @@ -0,0 +1,42 @@ + + diff --git a/examples/routers/checkbox.vue b/examples/routers/checkbox.vue new file mode 100644 index 0000000000000000000000000000000000000000..0edaf8a4ca37f0b487f1615b102f9cc3cdf03d6f --- /dev/null +++ b/examples/routers/checkbox.vue @@ -0,0 +1,145 @@ + + diff --git a/examples/routers/circle.vue b/examples/routers/circle.vue new file mode 100644 index 0000000000000000000000000000000000000000..281b674cc2cc8f8d7e549b4ea53b8b80a6510b28 --- /dev/null +++ b/examples/routers/circle.vue @@ -0,0 +1,28 @@ + + diff --git a/examples/routers/city.vue b/examples/routers/city.vue new file mode 100644 index 0000000000000000000000000000000000000000..ec5c8317f181a89fadd744202bee27fb0265a245 --- /dev/null +++ b/examples/routers/city.vue @@ -0,0 +1,13 @@ + + \ No newline at end of file diff --git a/examples/routers/collapse.vue b/examples/routers/collapse.vue new file mode 100644 index 0000000000000000000000000000000000000000..273e2587826ed2bd1e78b7e64085984f801b183c --- /dev/null +++ b/examples/routers/collapse.vue @@ -0,0 +1,31 @@ + + diff --git a/examples/routers/color-picker.vue b/examples/routers/color-picker.vue new file mode 100644 index 0000000000000000000000000000000000000000..0c899d8630844ec4e30fc828a20ccf536f3024a7 --- /dev/null +++ b/examples/routers/color-picker.vue @@ -0,0 +1,22 @@ + + diff --git a/examples/routers/copy.vue b/examples/routers/copy.vue new file mode 100644 index 0000000000000000000000000000000000000000..403d5a531629ea91885d49951536ff1d39bae67d --- /dev/null +++ b/examples/routers/copy.vue @@ -0,0 +1,22 @@ + + diff --git a/examples/routers/count-down.vue b/examples/routers/count-down.vue new file mode 100644 index 0000000000000000000000000000000000000000..34e42ff3b44572f423fc7202466cb26159dd17f5 --- /dev/null +++ b/examples/routers/count-down.vue @@ -0,0 +1,25 @@ + + diff --git a/examples/routers/count-up.vue b/examples/routers/count-up.vue new file mode 100644 index 0000000000000000000000000000000000000000..0b1569e4be6408e7130a253f42ba9a057e2caadd --- /dev/null +++ b/examples/routers/count-up.vue @@ -0,0 +1,26 @@ + + diff --git a/examples/routers/custem-menu-item.vue b/examples/routers/custem-menu-item.vue new file mode 100644 index 0000000000000000000000000000000000000000..4d00501a94e8be82151985c54373de2decd771fe --- /dev/null +++ b/examples/routers/custem-menu-item.vue @@ -0,0 +1,32 @@ + + diff --git a/examples/routers/date.vue b/examples/routers/date.vue new file mode 100644 index 0000000000000000000000000000000000000000..01cf1390589951d10fe0656adea89721e8609641 --- /dev/null +++ b/examples/routers/date.vue @@ -0,0 +1,347 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/examples/routers/description-list.vue b/examples/routers/description-list.vue new file mode 100644 index 0000000000000000000000000000000000000000..cff7271d3a6b4886a2d0bfb697d84fd6dce0ce76 --- /dev/null +++ b/examples/routers/description-list.vue @@ -0,0 +1,18 @@ + + diff --git a/examples/routers/divider.vue b/examples/routers/divider.vue new file mode 100644 index 0000000000000000000000000000000000000000..6986563f26af0b851b944ba6c5d135c2a14d3274 --- /dev/null +++ b/examples/routers/divider.vue @@ -0,0 +1,98 @@ + + + + + diff --git a/examples/routers/drawer.vue b/examples/routers/drawer.vue new file mode 100644 index 0000000000000000000000000000000000000000..5bbcd6fd6432f789a9d26361add78a21ad82fe75 --- /dev/null +++ b/examples/routers/drawer.vue @@ -0,0 +1,24 @@ + + + diff --git a/examples/routers/dropdown.vue b/examples/routers/dropdown.vue new file mode 100644 index 0000000000000000000000000000000000000000..2a8009572179cb1ff71154c661509ceeac273ec1 --- /dev/null +++ b/examples/routers/dropdown.vue @@ -0,0 +1,37 @@ + + diff --git a/examples/routers/ellipsis.vue b/examples/routers/ellipsis.vue new file mode 100644 index 0000000000000000000000000000000000000000..1a4e5501577cdcc2ffe921b5f90bd69acfa41d9a --- /dev/null +++ b/examples/routers/ellipsis.vue @@ -0,0 +1,14 @@ + + diff --git a/examples/routers/exception.vue b/examples/routers/exception.vue new file mode 100644 index 0000000000000000000000000000000000000000..ecd77afc7d7c5d05ac70e4acbe0b5f2cb66a3a3e --- /dev/null +++ b/examples/routers/exception.vue @@ -0,0 +1,15 @@ + + diff --git a/examples/routers/footer-toolbar.vue b/examples/routers/footer-toolbar.vue new file mode 100644 index 0000000000000000000000000000000000000000..c0b999801de42dd127c0fc1231cfa5310894fee8 --- /dev/null +++ b/examples/routers/footer-toolbar.vue @@ -0,0 +1,36 @@ + + + diff --git a/examples/routers/form.vue b/examples/routers/form.vue new file mode 100644 index 0000000000000000000000000000000000000000..4d7499fa10863f62c0948e8058e953b6d10aa0fc --- /dev/null +++ b/examples/routers/form.vue @@ -0,0 +1,47 @@ + + diff --git a/examples/routers/global-footer.vue b/examples/routers/global-footer.vue new file mode 100644 index 0000000000000000000000000000000000000000..300a7b9b31f1506b98a6a886ca52d3ace70f120a --- /dev/null +++ b/examples/routers/global-footer.vue @@ -0,0 +1,32 @@ + + diff --git a/examples/routers/grid-component.vue b/examples/routers/grid-component.vue new file mode 100644 index 0000000000000000000000000000000000000000..50cd7e2f36140b216d1505cd5bce7d65484be3a6 --- /dev/null +++ b/examples/routers/grid-component.vue @@ -0,0 +1,27 @@ + + diff --git a/examples/routers/grid.vue b/examples/routers/grid.vue new file mode 100644 index 0000000000000000000000000000000000000000..f141629b7f726b737c93e85e6354df784f529173 --- /dev/null +++ b/examples/routers/grid.vue @@ -0,0 +1,205 @@ + + + diff --git a/examples/routers/icon.vue b/examples/routers/icon.vue new file mode 100644 index 0000000000000000000000000000000000000000..0e6ebbb41d05f0824d1e56237e60f08c9313dce4 --- /dev/null +++ b/examples/routers/icon.vue @@ -0,0 +1,15 @@ + + + diff --git a/examples/routers/image-preview.vue b/examples/routers/image-preview.vue new file mode 100644 index 0000000000000000000000000000000000000000..f702e4d2a98ceef1fb39d3085d39415daba447a4 --- /dev/null +++ b/examples/routers/image-preview.vue @@ -0,0 +1,60 @@ + + + + \ No newline at end of file diff --git a/examples/routers/image.vue b/examples/routers/image.vue new file mode 100644 index 0000000000000000000000000000000000000000..7c4003ca1f6373bfd86d2e8152cea2232796bf59 --- /dev/null +++ b/examples/routers/image.vue @@ -0,0 +1,150 @@ + + + + diff --git a/examples/routers/input-number.vue b/examples/routers/input-number.vue new file mode 100644 index 0000000000000000000000000000000000000000..bb85a8d6cda3ff1b0355c819cb58d77bee7e1290 --- /dev/null +++ b/examples/routers/input-number.vue @@ -0,0 +1,108 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/examples/routers/input.vue b/examples/routers/input.vue new file mode 100644 index 0000000000000000000000000000000000000000..50a1b6bd86a6d77234f019b65fac7cda1b6b9c17 --- /dev/null +++ b/examples/routers/input.vue @@ -0,0 +1,31 @@ + + diff --git a/examples/routers/layout.vue b/examples/routers/layout.vue new file mode 100644 index 0000000000000000000000000000000000000000..9c4102ff81ed4beac1d868d002c86d33e4b8a442 --- /dev/null +++ b/examples/routers/layout.vue @@ -0,0 +1,77 @@ + + + \ No newline at end of file diff --git a/examples/routers/list.vue b/examples/routers/list.vue new file mode 100644 index 0000000000000000000000000000000000000000..0a70e54934df6e6deca7b389f8677fbf767b6ecc --- /dev/null +++ b/examples/routers/list.vue @@ -0,0 +1,120 @@ + + diff --git a/examples/routers/loading-bar.vue b/examples/routers/loading-bar.vue new file mode 100644 index 0000000000000000000000000000000000000000..bcf63f09bcc20a8f4f200d843962f46f600922df --- /dev/null +++ b/examples/routers/loading-bar.vue @@ -0,0 +1,29 @@ + + diff --git a/examples/routers/login.vue b/examples/routers/login.vue new file mode 100644 index 0000000000000000000000000000000000000000..709e94514ff16c6979331e908127fcc69efb88ae --- /dev/null +++ b/examples/routers/login.vue @@ -0,0 +1,55 @@ + + + diff --git a/examples/routers/menu.vue b/examples/routers/menu.vue new file mode 100644 index 0000000000000000000000000000000000000000..7aa09f994d63763d30552c0b381df4abfa1ccdb0 --- /dev/null +++ b/examples/routers/menu.vue @@ -0,0 +1,51 @@ + + diff --git a/examples/routers/message.vue b/examples/routers/message.vue new file mode 100644 index 0000000000000000000000000000000000000000..9200c43ae3eaf1913cf877ba89356923272a671e --- /dev/null +++ b/examples/routers/message.vue @@ -0,0 +1,95 @@ + + diff --git a/examples/routers/modal.vue b/examples/routers/modal.vue new file mode 100644 index 0000000000000000000000000000000000000000..1ffae9029170bebe4ebd8f1559604a8a2d6eef39 --- /dev/null +++ b/examples/routers/modal.vue @@ -0,0 +1,106 @@ + + diff --git a/examples/routers/more.vue b/examples/routers/more.vue new file mode 100644 index 0000000000000000000000000000000000000000..62da1fe6fd37619f89a2b74e7aadd90646a2349f --- /dev/null +++ b/examples/routers/more.vue @@ -0,0 +1,67 @@ + + + diff --git a/examples/routers/notice.vue b/examples/routers/notice.vue new file mode 100644 index 0000000000000000000000000000000000000000..ffa06710ebf56e9bbfe72be350234aa4f1d5fd07 --- /dev/null +++ b/examples/routers/notice.vue @@ -0,0 +1,48 @@ + + diff --git a/examples/routers/notification.vue b/examples/routers/notification.vue new file mode 100644 index 0000000000000000000000000000000000000000..79db6fcb4c08077e819a485f897f2e7d7627a319 --- /dev/null +++ b/examples/routers/notification.vue @@ -0,0 +1,232 @@ + + diff --git a/examples/routers/number-info.vue b/examples/routers/number-info.vue new file mode 100644 index 0000000000000000000000000000000000000000..da4d520fa8ba2b139ae55633285f1bcb9e5c0003 --- /dev/null +++ b/examples/routers/number-info.vue @@ -0,0 +1,23 @@ + + diff --git a/examples/routers/numeral.vue b/examples/routers/numeral.vue new file mode 100644 index 0000000000000000000000000000000000000000..65cd95333e8637c374a5957f30e5d28d7214469c --- /dev/null +++ b/examples/routers/numeral.vue @@ -0,0 +1,11 @@ + + diff --git a/examples/routers/page-header.vue b/examples/routers/page-header.vue new file mode 100644 index 0000000000000000000000000000000000000000..7a22643da7cb0bc9215a1de92d96314fe9ea09ae --- /dev/null +++ b/examples/routers/page-header.vue @@ -0,0 +1,8 @@ + + diff --git a/examples/routers/page.vue b/examples/routers/page.vue new file mode 100644 index 0000000000000000000000000000000000000000..23b7b8cafc8d8ccb28c311d683741bacf8b31cad --- /dev/null +++ b/examples/routers/page.vue @@ -0,0 +1,8 @@ + + diff --git a/examples/routers/poptip.vue b/examples/routers/poptip.vue new file mode 100644 index 0000000000000000000000000000000000000000..b0cf98454514c33e926637cc96952c66163f79d0 --- /dev/null +++ b/examples/routers/poptip.vue @@ -0,0 +1,32 @@ + + diff --git a/examples/routers/progress.vue b/examples/routers/progress.vue new file mode 100644 index 0000000000000000000000000000000000000000..1e8a63dcff17ffa3d783183e60df5f13dd50a0f4 --- /dev/null +++ b/examples/routers/progress.vue @@ -0,0 +1,34 @@ + + diff --git a/examples/routers/radio.vue b/examples/routers/radio.vue new file mode 100644 index 0000000000000000000000000000000000000000..4dbd1ae2bea89c1f0338479663441d8437613810 --- /dev/null +++ b/examples/routers/radio.vue @@ -0,0 +1,18 @@ + + diff --git a/examples/routers/rate.vue b/examples/routers/rate.vue new file mode 100644 index 0000000000000000000000000000000000000000..29479113dc7e2eb32aaf695dc383e12b6c30090f --- /dev/null +++ b/examples/routers/rate.vue @@ -0,0 +1,36 @@ + + diff --git a/examples/routers/result.vue b/examples/routers/result.vue new file mode 100644 index 0000000000000000000000000000000000000000..3b0042fb76c4f4f1bfe03546cda23a0ef7cea9c9 --- /dev/null +++ b/examples/routers/result.vue @@ -0,0 +1,26 @@ + + diff --git a/examples/routers/scroll-into-view.vue b/examples/routers/scroll-into-view.vue new file mode 100644 index 0000000000000000000000000000000000000000..1e4315704b596301d7a2a8953ef9cf819d6aead4 --- /dev/null +++ b/examples/routers/scroll-into-view.vue @@ -0,0 +1,43 @@ + + + diff --git a/examples/routers/scroll-top.vue b/examples/routers/scroll-top.vue new file mode 100644 index 0000000000000000000000000000000000000000..f2ccc335e61d784b39e9a868f157b02bfc3010fa --- /dev/null +++ b/examples/routers/scroll-top.vue @@ -0,0 +1,58 @@ + + + diff --git a/examples/routers/scroll.vue b/examples/routers/scroll.vue new file mode 100644 index 0000000000000000000000000000000000000000..cb216cc7a1cb8ee83f43eee9fbc4d435e1e9aa82 --- /dev/null +++ b/examples/routers/scroll.vue @@ -0,0 +1,56 @@ + + + diff --git a/examples/routers/select.vue b/examples/routers/select.vue new file mode 100644 index 0000000000000000000000000000000000000000..2b8188934a0b61ed984ba82197999f417a2e112b --- /dev/null +++ b/examples/routers/select.vue @@ -0,0 +1,80 @@ + + \ No newline at end of file diff --git a/examples/routers/skeleton.vue b/examples/routers/skeleton.vue new file mode 100644 index 0000000000000000000000000000000000000000..82136b39d491418930384db34f0675af34fb51e8 --- /dev/null +++ b/examples/routers/skeleton.vue @@ -0,0 +1,21 @@ + + + diff --git a/examples/routers/slider.vue b/examples/routers/slider.vue new file mode 100644 index 0000000000000000000000000000000000000000..597fb0bbebe54d9ee87412b92c9d6374af84726c --- /dev/null +++ b/examples/routers/slider.vue @@ -0,0 +1,24 @@ + + diff --git a/examples/routers/space.vue b/examples/routers/space.vue new file mode 100644 index 0000000000000000000000000000000000000000..884f59d715152bce1536311b2f6d74d1041bbb96 --- /dev/null +++ b/examples/routers/space.vue @@ -0,0 +1,82 @@ + + + + + diff --git a/examples/routers/spin.vue b/examples/routers/spin.vue new file mode 100644 index 0000000000000000000000000000000000000000..aa0d7d4e773cb8d00ca6846c6dbd708eb64299ea --- /dev/null +++ b/examples/routers/spin.vue @@ -0,0 +1,48 @@ + + + diff --git a/examples/routers/split.vue b/examples/routers/split.vue new file mode 100644 index 0000000000000000000000000000000000000000..7da3a77429ead6d8f9a4d1b076bf2bbf4751c6c2 --- /dev/null +++ b/examples/routers/split.vue @@ -0,0 +1,50 @@ + + + diff --git a/examples/routers/steps.vue b/examples/routers/steps.vue new file mode 100644 index 0000000000000000000000000000000000000000..004a610e345764e4695c058082dec7a51ad51b5e --- /dev/null +++ b/examples/routers/steps.vue @@ -0,0 +1,13 @@ + + diff --git a/examples/routers/switch.vue b/examples/routers/switch.vue new file mode 100644 index 0000000000000000000000000000000000000000..32ceb3de84c6ee079a75b8b79776ccb65b0d1bc3 --- /dev/null +++ b/examples/routers/switch.vue @@ -0,0 +1,89 @@ + + diff --git a/examples/routers/table-paste.vue b/examples/routers/table-paste.vue new file mode 100644 index 0000000000000000000000000000000000000000..0e590d9895627d822cae32cb2c326b593a3dcecf --- /dev/null +++ b/examples/routers/table-paste.vue @@ -0,0 +1,25 @@ + + diff --git a/examples/routers/table.vue b/examples/routers/table.vue new file mode 100644 index 0000000000000000000000000000000000000000..aa82086b5f5ccd9e8e2c7ba6f3b6cc6a645522a9 --- /dev/null +++ b/examples/routers/table.vue @@ -0,0 +1,953 @@ + + diff --git a/examples/routers/tabs.vue b/examples/routers/tabs.vue new file mode 100644 index 0000000000000000000000000000000000000000..a746b18d5978c0976802850a1c8a45efcc4d37ad --- /dev/null +++ b/examples/routers/tabs.vue @@ -0,0 +1,41 @@ + + diff --git a/examples/routers/tag-select.vue b/examples/routers/tag-select.vue new file mode 100644 index 0000000000000000000000000000000000000000..d15b072fda8a8e2f07eb1f920ac7c192526344b0 --- /dev/null +++ b/examples/routers/tag-select.vue @@ -0,0 +1,19 @@ + + diff --git a/examples/routers/tag.vue b/examples/routers/tag.vue new file mode 100644 index 0000000000000000000000000000000000000000..5369527b3761cdb46844fac30a116c3c234e1758 --- /dev/null +++ b/examples/routers/tag.vue @@ -0,0 +1,112 @@ + + diff --git a/examples/routers/time.vue b/examples/routers/time.vue new file mode 100644 index 0000000000000000000000000000000000000000..b54494066abc23364d1570a9901f0a68e6c5682b --- /dev/null +++ b/examples/routers/time.vue @@ -0,0 +1,33 @@ + + diff --git a/examples/routers/timeline.vue b/examples/routers/timeline.vue new file mode 100644 index 0000000000000000000000000000000000000000..e7ebec6e17c73780a20db8360ce5f4d0c7e268ba --- /dev/null +++ b/examples/routers/timeline.vue @@ -0,0 +1,63 @@ + + + diff --git a/examples/routers/tooltip.vue b/examples/routers/tooltip.vue new file mode 100644 index 0000000000000000000000000000000000000000..0ae718f87be08077b05591c1ef8b41ced80199ba --- /dev/null +++ b/examples/routers/tooltip.vue @@ -0,0 +1,10 @@ + + diff --git a/examples/routers/transfer.vue b/examples/routers/transfer.vue new file mode 100644 index 0000000000000000000000000000000000000000..a55f6b4507856897ffe152dd9ebf5d115e41c6a0 --- /dev/null +++ b/examples/routers/transfer.vue @@ -0,0 +1,67 @@ + + diff --git a/examples/routers/tree-select.vue b/examples/routers/tree-select.vue new file mode 100644 index 0000000000000000000000000000000000000000..92e542efa22990fb37e1b960fbab436f0cdf8b00 --- /dev/null +++ b/examples/routers/tree-select.vue @@ -0,0 +1,65 @@ + + \ No newline at end of file diff --git a/examples/routers/tree.vue b/examples/routers/tree.vue new file mode 100644 index 0000000000000000000000000000000000000000..d96bcbbbd102151a3fef48bf3758930cc31897b8 --- /dev/null +++ b/examples/routers/tree.vue @@ -0,0 +1,43 @@ + + diff --git a/examples/routers/trend.vue b/examples/routers/trend.vue new file mode 100644 index 0000000000000000000000000000000000000000..4f2372511c11e08c54ef2a1d9a9ebf238bed011b --- /dev/null +++ b/examples/routers/trend.vue @@ -0,0 +1,15 @@ + + diff --git a/examples/routers/typography.vue b/examples/routers/typography.vue new file mode 100644 index 0000000000000000000000000000000000000000..af76953151c1eca1584658ce6ffc889477e669d4 --- /dev/null +++ b/examples/routers/typography.vue @@ -0,0 +1,83 @@ + + diff --git a/examples/routers/upload.vue b/examples/routers/upload.vue new file mode 100644 index 0000000000000000000000000000000000000000..3412083bf941b0b93f496e1a4c3034639910e207 --- /dev/null +++ b/examples/routers/upload.vue @@ -0,0 +1,17 @@ + + diff --git a/examples/routers/v-line-clamp.vue b/examples/routers/v-line-clamp.vue new file mode 100644 index 0000000000000000000000000000000000000000..29e9186c268bf242dd42d895a28ec8a5eef16db1 --- /dev/null +++ b/examples/routers/v-line-clamp.vue @@ -0,0 +1,10 @@ + + diff --git a/examples/routers/v-resize.vue b/examples/routers/v-resize.vue new file mode 100644 index 0000000000000000000000000000000000000000..7f06a78bc04123281045df457f74398d40dd13c2 --- /dev/null +++ b/examples/routers/v-resize.vue @@ -0,0 +1,27 @@ + + + diff --git a/examples/routers/v-style.vue b/examples/routers/v-style.vue new file mode 100644 index 0000000000000000000000000000000000000000..d8d0c30db259477f3020085fe6bb3df6bf987ccc --- /dev/null +++ b/examples/routers/v-style.vue @@ -0,0 +1,10 @@ + + diff --git a/examples/routers/word-count.vue b/examples/routers/word-count.vue new file mode 100644 index 0000000000000000000000000000000000000000..f59addc785043acf300b4f3367f718b46fb88ec3 --- /dev/null +++ b/examples/routers/word-count.vue @@ -0,0 +1,16 @@ + + diff --git a/package.json b/package.json index 72caa1750a1c44c18460a496d258fbd3c51c673a..df43a97d43ef19e3e79e4ca32607366f9b52d1b9 100644 --- a/package.json +++ b/package.json @@ -1,18 +1,104 @@ { - "name": "nodejs", - "version": "1.0.0", - "description": "", - "main": "index.js", + "name": "view-ui-plus", + "version": "1.3.18", + "title": "ViewUIPlus", + "description": "A high quality UI components Library with Vue.js 3", + "homepage": "http://www.iviewui.com", + "keywords": [ + "iview", + "vue", + "viewui", + "viewuiplus", + "vue.js", + "component", + "components", + "ui", + "framework" + ], + "main": "dist/viewuiplus.min.js", + "typings": "types/index.d.ts", + "files": [ + "dist", + "src", + "types" + ], "scripts": { - "dev": "node index.js", - "test": "echo \"Error: no test specified\" && exit 1" + "dev": "vue-cli-service serve", + "build": "npm run build:prod && npm run build:style && npm run build:lang", + "build:style": "gulp --gulpfile build/build-style.js", + "build:prod": "vite build", + "build:lang": "vite build --config build/vite.lang.config.js", + "lint": "vue-cli-service lint --fix" + }, + "repository": { + "type": "git", + "url": "https://github.com/view-design/ViewUIPlus" + }, + "author": "Aresn", + "license": "MIT", + "bugs": { + "url": "https://github.com/view-design/ViewUIPlus/issues" }, - "keywords": [], - "author": "", - "license": "ISC", "dependencies": { - "@types/node": "^18.0.6", - "node-fetch": "^3.2.6" + "async-validator": "^3.3.0", + "countup.js": "^1.9.3", + "dayjs": "^1.11.0", + "deepmerge": "^2.2.1", + "element-resize-detector": "^1.2.0", + "js-calendar": "^1.2.3", + "lodash.chunk": "^4.2.0", + "lodash.throttle": "^4.1.1", + "numeral": "^2.0.6", + "popper.js": "^1.14.6", + "select": "^1.1.2", + "tinycolor2": "^1.4.1", + "v-click-outside-x": "^3.7.1" + }, + "devDependencies": { + "@vitejs/plugin-vue": "^1.9.3", + "@vue/cli-plugin-babel": "~4.5.0", + "@vue/cli-plugin-eslint": "~4.5.0", + "@vue/cli-service": "~4.5.0", + "@vue/compiler-sfc": "^3.0.0", + "babel-eslint": "^10.1.0", + "babel-plugin-import": "^1.13.3", + "chai": "^4.2.0", + "copy-webpack-plugin": "^6.4.1", + "cross-env": "^5.2.0", + "eslint": "^6.7.2", + "eslint-plugin-vue": "^7.0.0-0", + "gulp": "^4.0.2", + "gulp-autoprefixer": "^8.0.0", + "gulp-clean-css": "^4.3.0", + "gulp-less": "^4.0.1", + "gulp-rename": "^2.0.0", + "karma": "^2.0.5", + "karma-chrome-launcher": "^2.2.0", + "karma-coverage": "^1.1.1", + "karma-mocha": "^1.3.0", + "karma-sinon-chai": "^1.3.3", + "karma-sourcemap-loader": "^0.3.7", + "karma-spec-reporter": "^0.0.32", + "karma-webpack": "^2.0.13", + "less": "^2.7.3", + "less-loader": "^4.1.0", + "lint-staged": "^10.5.4", + "lolex": "^2.7.5", + "mocha": "^5.0.4", + "sinon": "^4.4.2", + "sinon-chai": "^3.3.0", + "style-loader": "^0.20.2", + "tslint": "^5.14.0", + "typescript": "^3.3.4000", + "uglifyjs-webpack-plugin": "^1.3.0", + "url-loader": "^1.1.2", + "vite": "^2.6.4", + "vue": "^3.2.47", + "vue-hot-reload-api": "^2.3.4", + "vue-html-loader": "^1.2.4", + "vue-loader": "^17.0.0", + "vue-router": "^4.0.14", + "vue-style-loader": "^4.1.3", + "vue-template-compiler": "^2.6.14" } - } - \ No newline at end of file +} diff --git a/preview.yml b/preview.yml new file mode 100644 index 0000000000000000000000000000000000000000..f3822efc39fd636f9265ead1def3189e1fa9cbef --- /dev/null +++ b/preview.yml @@ -0,0 +1,10 @@ +# preview.yml +autoOpen: true # 打开工作空间时是否自动开启所有应用的预览 +apps: + - port: 3000 # 应用的端口 + run: npm i --registry=https://registry.npmmirror.com && npm run dev # 应用的启动命令 + command: # 使用此命令启动服务,且不执行run + root: ./ # 应用的启动目录 + name: View UI Plus # 应用名称 + description: View UI Plus # 应用描述 + autoOpen: true # 打开工作空间时是否自动开启预览(优先级高于根级 autoOpen) diff --git a/src/components/affix/affix.vue b/src/components/affix/affix.vue new file mode 100644 index 0000000000000000000000000000000000000000..8c218f0748ba77ddea22bc928ab0bf200e07699e --- /dev/null +++ b/src/components/affix/affix.vue @@ -0,0 +1,149 @@ + + diff --git a/src/components/affix/index.js b/src/components/affix/index.js new file mode 100644 index 0000000000000000000000000000000000000000..33c5c5b6b05dda6d15c8c204b165bc2f6267c7ab --- /dev/null +++ b/src/components/affix/index.js @@ -0,0 +1,2 @@ +import Affix from './affix.vue'; +export default Affix; \ No newline at end of file diff --git a/src/components/alert/alert.vue b/src/components/alert/alert.vue new file mode 100644 index 0000000000000000000000000000000000000000..cced13b6007124a8cd56cce046361008b5e388f3 --- /dev/null +++ b/src/components/alert/alert.vue @@ -0,0 +1,114 @@ + + diff --git a/src/components/alert/index.js b/src/components/alert/index.js new file mode 100644 index 0000000000000000000000000000000000000000..fa609b02a4e8a6eec4f0ef9e5298df4e428ed359 --- /dev/null +++ b/src/components/alert/index.js @@ -0,0 +1,2 @@ +import Alert from './alert.vue'; +export default Alert; \ No newline at end of file diff --git a/src/components/anchor-link/index.js b/src/components/anchor-link/index.js new file mode 100644 index 0000000000000000000000000000000000000000..aa60209883d2c60e635fa72fd63377a15312c640 --- /dev/null +++ b/src/components/anchor-link/index.js @@ -0,0 +1,2 @@ +import AnchorLink from '../anchor/anchor-link.vue'; +export default AnchorLink; diff --git a/src/components/anchor/anchor-link.vue b/src/components/anchor/anchor-link.vue new file mode 100644 index 0000000000000000000000000000000000000000..6021271970b285dfdc225ec711ac2284d42c704e --- /dev/null +++ b/src/components/anchor/anchor-link.vue @@ -0,0 +1,68 @@ + + diff --git a/src/components/anchor/anchor.vue b/src/components/anchor/anchor.vue new file mode 100644 index 0000000000000000000000000000000000000000..c8a9d392f2f5ddb44ab58b15335677553dc38a17 --- /dev/null +++ b/src/components/anchor/anchor.vue @@ -0,0 +1,219 @@ + + diff --git a/src/components/anchor/index.js b/src/components/anchor/index.js new file mode 100644 index 0000000000000000000000000000000000000000..cb29acf87026efb523b9d09aab290d98171b2c58 --- /dev/null +++ b/src/components/anchor/index.js @@ -0,0 +1,2 @@ +import Anchor from './anchor.vue'; +export default Anchor; diff --git a/src/components/auth/auth.vue b/src/components/auth/auth.vue new file mode 100644 index 0000000000000000000000000000000000000000..b1e9013781a74e8763dee937d04d08fba9cc4f56 --- /dev/null +++ b/src/components/auth/auth.vue @@ -0,0 +1,118 @@ + diff --git a/src/components/auth/index.js b/src/components/auth/index.js new file mode 100644 index 0000000000000000000000000000000000000000..772436af205a401c31938579e3652e90daa1a61d --- /dev/null +++ b/src/components/auth/index.js @@ -0,0 +1,2 @@ +import Auth from './auth.vue'; +export default Auth; diff --git a/src/components/auto-complete/auto-complete.vue b/src/components/auto-complete/auto-complete.vue new file mode 100644 index 0000000000000000000000000000000000000000..9d83d2fcb61b568cbaff90af16a383c6c8e27a63 --- /dev/null +++ b/src/components/auto-complete/auto-complete.vue @@ -0,0 +1,205 @@ + + diff --git a/src/components/auto-complete/index.js b/src/components/auto-complete/index.js new file mode 100644 index 0000000000000000000000000000000000000000..9fe71553ff201a2f571426570d76cc46aff89dba --- /dev/null +++ b/src/components/auto-complete/index.js @@ -0,0 +1,2 @@ +import AutoComplete from './auto-complete.vue'; +export default AutoComplete; \ No newline at end of file diff --git a/src/components/avatar-list/avatar-list.vue b/src/components/avatar-list/avatar-list.vue new file mode 100644 index 0000000000000000000000000000000000000000..ac0edd22926fe1d97d441fc3ffc237ab6adf4ff7 --- /dev/null +++ b/src/components/avatar-list/avatar-list.vue @@ -0,0 +1,85 @@ + + diff --git a/src/components/avatar-list/index.js b/src/components/avatar-list/index.js new file mode 100644 index 0000000000000000000000000000000000000000..654b7b0a276c20ca28a19f24ae8ccc73da36aa05 --- /dev/null +++ b/src/components/avatar-list/index.js @@ -0,0 +1,2 @@ +import AvatarList from './avatar-list.vue'; +export default AvatarList; \ No newline at end of file diff --git a/src/components/avatar/avatar.vue b/src/components/avatar/avatar.vue new file mode 100644 index 0000000000000000000000000000000000000000..f942e96d4b1a1ad5c938b6078236580953a4eba1 --- /dev/null +++ b/src/components/avatar/avatar.vue @@ -0,0 +1,127 @@ + + diff --git a/src/components/avatar/index.js b/src/components/avatar/index.js new file mode 100644 index 0000000000000000000000000000000000000000..9f57860664c82d67e8ff7323c93e7ddaa1c5a9ce --- /dev/null +++ b/src/components/avatar/index.js @@ -0,0 +1,2 @@ +import Avatar from './avatar.vue'; +export default Avatar; \ No newline at end of file diff --git a/src/components/back-top/back-top.vue b/src/components/back-top/back-top.vue new file mode 100644 index 0000000000000000000000000000000000000000..64234b01017956d9a26b4f1f0bf3f7a7c1c269bb --- /dev/null +++ b/src/components/back-top/back-top.vue @@ -0,0 +1,86 @@ + + diff --git a/src/components/back-top/index.js b/src/components/back-top/index.js new file mode 100644 index 0000000000000000000000000000000000000000..ace0f1fba0d6c944f5f72cc2d16deef2b3199145 --- /dev/null +++ b/src/components/back-top/index.js @@ -0,0 +1,2 @@ +import BackTop from './back-top.vue'; +export default BackTop; \ No newline at end of file diff --git a/src/components/badge/badge.vue b/src/components/badge/badge.vue new file mode 100644 index 0000000000000000000000000000000000000000..ac8f04b073efee3aea0de0b635e514edc3ba1551 --- /dev/null +++ b/src/components/badge/badge.vue @@ -0,0 +1,139 @@ + + diff --git a/src/components/badge/index.js b/src/components/badge/index.js new file mode 100644 index 0000000000000000000000000000000000000000..af477803fc64619bc0d4d0cc06143be9bc2e2f68 --- /dev/null +++ b/src/components/badge/index.js @@ -0,0 +1,2 @@ +import Badge from './badge.vue'; +export default Badge; \ No newline at end of file diff --git a/src/components/base/collapse-transition.vue b/src/components/base/collapse-transition.vue new file mode 100644 index 0000000000000000000000000000000000000000..122d06563f863b0d49987ce27447a8f5be353afc --- /dev/null +++ b/src/components/base/collapse-transition.vue @@ -0,0 +1,92 @@ + + diff --git a/src/components/base/notification/index.js b/src/components/base/notification/index.js new file mode 100644 index 0000000000000000000000000000000000000000..4c1fe21244ed89881d40299d894cbc8dd916a96d --- /dev/null +++ b/src/components/base/notification/index.js @@ -0,0 +1,44 @@ +import Notification from './notification.vue'; +import { createApp, h, getCurrentInstance } from 'vue'; +import { isClient } from '../../../utils/index'; + +Notification.newInstance = properties => { + if (!isClient) return; + const _props = properties || {}; + + let _instance = null; + + const Instance = createApp({ + render () { + return h(Notification, Object.assign({ + ref: 'notification' + }, _props)); + }, + created () { + _instance = getCurrentInstance(); + } + }); + + const container = document.createElement('div'); + document.body.appendChild(container); + Instance.mount(container); + const notification = _instance.refs.notification; + + return { + notice (noticeProps) { + notification.add(noticeProps); + }, + remove (name) { + notification.close(name); + }, + component: notification, + destroy (element) { + notification.closeAll(); + isClient && setTimeout(function() { + document.body.removeChild(document.getElementsByClassName(element)[0]); + }, 500); + } + }; +}; + +export default Notification; diff --git a/src/components/base/notification/notice.vue b/src/components/base/notification/notice.vue new file mode 100644 index 0000000000000000000000000000000000000000..ed5bace22343dccc7cad08fb999442ed0eaafa75 --- /dev/null +++ b/src/components/base/notification/notice.vue @@ -0,0 +1,187 @@ + + diff --git a/src/components/base/notification/notification.vue b/src/components/base/notification/notification.vue new file mode 100644 index 0000000000000000000000000000000000000000..dfb318d085082ba8b0aedb1826d5d44c43f53bf9 --- /dev/null +++ b/src/components/base/notification/notification.vue @@ -0,0 +1,121 @@ + + diff --git a/src/components/base/popper.js b/src/components/base/popper.js new file mode 100644 index 0000000000000000000000000000000000000000..bd04cf727569a3d6338e95aa203c466d1910ade9 --- /dev/null +++ b/src/components/base/popper.js @@ -0,0 +1,133 @@ +/** + * https://github.com/freeze-component/vue-popper + * */ +// import Vue from 'vue'; +// const isServer = Vue.prototype.$isServer; +// const Popper = isServer ? function() {} : require('popper.js/dist/umd/popper.js'); // eslint-disable-line +import { nextTick } from 'vue'; +import Popper from 'popper.js/dist/umd/popper.js'; + +export default { + emits: ['on-popper-show', 'on-popper-hide', 'created', 'update:modelValue'], + props: { + eventsEnabled: { + type: Boolean, + default: false + }, + placement: { + type: String, + default: 'bottom' + }, + boundariesPadding: { + type: Number, + default: 5 + }, + reference: Object, + popper: Object, + offset: { + default: 0 + }, + modelValue: { + type: Boolean, + default: false + }, + transition: String, + options: { + type: Object, + default () { + return { + modifiers: { + computeStyle:{ + gpuAcceleration: false, + }, + preventOverflow :{ + boundariesElement: 'window' + } + } + }; + } + }, + // visible: { + // type: Boolean, + // default: false + // } + }, + data () { + return { + visible: this.modelValue + }; + }, + watch: { + modelValue: { + immediate: true, + handler(val) { + this.visible = val; + this.$emit('update:modelValue', val); + } + }, + visible(val) { + if (val) { + if (this.handleIndexIncrease) this.handleIndexIncrease(); // just use for Poptip + this.updatePopper(); + this.$emit('on-popper-show'); + } else { + this.$emit('on-popper-hide'); + } + this.$emit('update:modelValue', val); + } + }, + methods: { + createPopper() { + // if (isServer) return; + if (!/^(top|bottom|left|right)(-start|-end)?$/g.test(this.placement)) { + return; + } + + const options = this.options; + const popper = this.popper || this.$refs.popper; + const reference = this.reference || this.$refs.reference; + + if (!popper || !reference) return; + + if (this.popperJS && this.popperJS.hasOwnProperty('destroy')) { + this.popperJS.destroy(); + } + + options.eventsEnabled = this.eventsEnabled; + + options.placement = this.placement; + + if (!options.modifiers.offset) { + options.modifiers.offset = {}; + } + options.modifiers.offset.offset = this.offset; + options.onCreate =()=>{ + nextTick(this.updatePopper); + this.$emit('created', this); + }; + + this.popperJS = new Popper(reference, popper, options); + + }, + updatePopper() { + // if (isServer) return; + this.popperJS ? this.popperJS.update() : this.createPopper(); + }, + doDestroy() { + // if (isServer) return; + if (this.visible) return; + this.popperJS.destroy(); + this.popperJS = null; + } + }, + updated (){ + nextTick(()=>this.updatePopper()); + + }, + beforeUnmount() { + // if (isServer) return; + if (this.popperJS) { + this.popperJS.destroy(); + } + } +}; diff --git a/src/components/base/render.js b/src/components/base/render.js new file mode 100644 index 0000000000000000000000000000000000000000..c53b1572fb1a9456f2426f6e41b3801c11cbc960 --- /dev/null +++ b/src/components/base/render.js @@ -0,0 +1,11 @@ +import { h } from 'vue'; + +export default { + name: 'RenderCell', + props: { + render: Function + }, + render () { + return this.render(h); + } +}; diff --git a/src/components/breadcrumb-item/index.js b/src/components/breadcrumb-item/index.js new file mode 100644 index 0000000000000000000000000000000000000000..e6e1f27f082ab36ecc26877de499b3902364a02e --- /dev/null +++ b/src/components/breadcrumb-item/index.js @@ -0,0 +1,3 @@ +import BreadcrumbItem from '../breadcrumb/breadcrumb-item.vue'; + +export default BreadcrumbItem; diff --git a/src/components/breadcrumb/breadcrumb-item.vue b/src/components/breadcrumb/breadcrumb-item.vue new file mode 100644 index 0000000000000000000000000000000000000000..9f8437cbaebd017f5d20c0124c4d3ffce8bc3465 --- /dev/null +++ b/src/components/breadcrumb/breadcrumb-item.vue @@ -0,0 +1,53 @@ + + diff --git a/src/components/breadcrumb/breadcrumb.vue b/src/components/breadcrumb/breadcrumb.vue new file mode 100644 index 0000000000000000000000000000000000000000..d4250083c742798aac99cf7d43dd467d24744c18 --- /dev/null +++ b/src/components/breadcrumb/breadcrumb.vue @@ -0,0 +1,21 @@ + + diff --git a/src/components/breadcrumb/index.js b/src/components/breadcrumb/index.js new file mode 100644 index 0000000000000000000000000000000000000000..e8472fc03ac68f6998adb16119829400e2ae7b2b --- /dev/null +++ b/src/components/breadcrumb/index.js @@ -0,0 +1,3 @@ +import Breadcrumb from './breadcrumb.vue'; + +export default Breadcrumb; diff --git a/src/components/button-group/index.js b/src/components/button-group/index.js new file mode 100644 index 0000000000000000000000000000000000000000..57b978b1505c6d8ad2e96cf15c80e8a5654253f7 --- /dev/null +++ b/src/components/button-group/index.js @@ -0,0 +1,3 @@ +import ButtonGroup from '../button/button-group.vue'; + +export default ButtonGroup; \ No newline at end of file diff --git a/src/components/button/button-claude.vue b/src/components/button/button-claude.vue new file mode 100644 index 0000000000000000000000000000000000000000..dad3c017bc65ee72f97666c3bc726c59b0e47d12 --- /dev/null +++ b/src/components/button/button-claude.vue @@ -0,0 +1,158 @@ + \ No newline at end of file diff --git a/src/components/button/button-gpt.vue b/src/components/button/button-gpt.vue new file mode 100644 index 0000000000000000000000000000000000000000..6f6c393e3d52451374a23e07f76716a4e6f61f8e --- /dev/null +++ b/src/components/button/button-gpt.vue @@ -0,0 +1,132 @@ + + + diff --git a/src/components/button/button-group.vue b/src/components/button/button-group.vue new file mode 100644 index 0000000000000000000000000000000000000000..973424e1ce23a209e2b57e7948fd66469b231b36 --- /dev/null +++ b/src/components/button/button-group.vue @@ -0,0 +1,47 @@ + + diff --git a/src/components/button/button.vue b/src/components/button/button.vue new file mode 100644 index 0000000000000000000000000000000000000000..bf4d1a04f89d86e1ac7c0457219b798993daa972 --- /dev/null +++ b/src/components/button/button.vue @@ -0,0 +1,140 @@ + diff --git a/src/components/button/index.js b/src/components/button/index.js new file mode 100644 index 0000000000000000000000000000000000000000..c913d7f8a9de7451929316e3b220a21faa862409 --- /dev/null +++ b/src/components/button/index.js @@ -0,0 +1,3 @@ +import Button from './button.vue'; + +export default Button; diff --git a/src/components/calendar/calendar.vue b/src/components/calendar/calendar.vue new file mode 100644 index 0000000000000000000000000000000000000000..d28bb14ac03ed317c2b4c9c035d36633db88e177 --- /dev/null +++ b/src/components/calendar/calendar.vue @@ -0,0 +1,182 @@ + + diff --git a/src/components/calendar/events.js b/src/components/calendar/events.js new file mode 100644 index 0000000000000000000000000000000000000000..d5ce1bca82054c20cd9a357dce0e16f334f45368 --- /dev/null +++ b/src/components/calendar/events.js @@ -0,0 +1,11 @@ +export default { + emits: ['on-cell-click', 'on-cell-contextmenu'], + methods: { + handleCellClick (data) { + this.CalendarInstance.$emit('on-cell-click', data); + }, + handleCellContextmenu (data) { + this.CalendarInstance.$emit('on-cell-contextmenu', data); + } + } +}; diff --git a/src/components/calendar/index.js b/src/components/calendar/index.js new file mode 100644 index 0000000000000000000000000000000000000000..4748aab23b01a6454e843f736dcb914c16be576b --- /dev/null +++ b/src/components/calendar/index.js @@ -0,0 +1,2 @@ +import Calendar from './calendar.vue'; +export default Calendar; diff --git a/src/components/calendar/month.vue b/src/components/calendar/month.vue new file mode 100644 index 0000000000000000000000000000000000000000..988248f1c9eb0620bcb3ca0695f5b51b9b3aa8fb --- /dev/null +++ b/src/components/calendar/month.vue @@ -0,0 +1,111 @@ + + diff --git a/src/components/calendar/year.vue b/src/components/calendar/year.vue new file mode 100644 index 0000000000000000000000000000000000000000..deeedd4771b196cf5c3b8bd3cb6b1c0bcee90d89 --- /dev/null +++ b/src/components/calendar/year.vue @@ -0,0 +1,76 @@ + + diff --git a/src/components/captcha/index.js b/src/components/captcha/index.js new file mode 100644 index 0000000000000000000000000000000000000000..cf934754d3b1e835962cafd0999824c622138224 --- /dev/null +++ b/src/components/captcha/index.js @@ -0,0 +1,3 @@ +import Captcha from '../login/captcha.vue'; + +export default Captcha; diff --git a/src/components/card/card.vue b/src/components/card/card.vue new file mode 100644 index 0000000000000000000000000000000000000000..de46e8c00798316b35bbaba8ffa18eb3e03dce4d --- /dev/null +++ b/src/components/card/card.vue @@ -0,0 +1,113 @@ + + diff --git a/src/components/card/index.js b/src/components/card/index.js new file mode 100644 index 0000000000000000000000000000000000000000..e305884b00e29b4219099e483319885bd60d3a53 --- /dev/null +++ b/src/components/card/index.js @@ -0,0 +1,2 @@ +import Card from './card.vue'; +export default Card; \ No newline at end of file diff --git a/src/components/carousel-item/index.js b/src/components/carousel-item/index.js new file mode 100644 index 0000000000000000000000000000000000000000..08225aa58c7d19d2828af9ca23dc43e863a855ff --- /dev/null +++ b/src/components/carousel-item/index.js @@ -0,0 +1,3 @@ +import CarouselItem from '../carousel/carousel-item.vue'; + +export default CarouselItem; \ No newline at end of file diff --git a/src/components/carousel/carousel-item.vue b/src/components/carousel/carousel-item.vue new file mode 100644 index 0000000000000000000000000000000000000000..4a349af3cc75b56a30f46750790351394d4e7eb1 --- /dev/null +++ b/src/components/carousel/carousel-item.vue @@ -0,0 +1,75 @@ + + diff --git a/src/components/carousel/carousel.vue b/src/components/carousel/carousel.vue new file mode 100644 index 0000000000000000000000000000000000000000..33a781b6c5d82d997dc75d2142fa88f83ff76cc2 --- /dev/null +++ b/src/components/carousel/carousel.vue @@ -0,0 +1,325 @@ + + diff --git a/src/components/carousel/index.js b/src/components/carousel/index.js new file mode 100644 index 0000000000000000000000000000000000000000..af22811e71d1567b2154343a2d5a95b9278b4e6a --- /dev/null +++ b/src/components/carousel/index.js @@ -0,0 +1,3 @@ +import Carousel from './carousel.vue'; + +export default Carousel; diff --git a/src/components/cascader/cascader.vue b/src/components/cascader/cascader.vue new file mode 100644 index 0000000000000000000000000000000000000000..c145463145d76bc06e027941dcf4206b56385426 --- /dev/null +++ b/src/components/cascader/cascader.vue @@ -0,0 +1,493 @@ + + diff --git a/src/components/cascader/casitem.vue b/src/components/cascader/casitem.vue new file mode 100644 index 0000000000000000000000000000000000000000..fb12e38338c1dbbfa0acdea1b68d2e8898d7b001 --- /dev/null +++ b/src/components/cascader/casitem.vue @@ -0,0 +1,77 @@ + + diff --git a/src/components/cascader/caspanel.vue b/src/components/cascader/caspanel.vue new file mode 100644 index 0000000000000000000000000000000000000000..d8c3eab09b98d61f235bedfd45c8c23a1fce881a --- /dev/null +++ b/src/components/cascader/caspanel.vue @@ -0,0 +1,220 @@ + + diff --git a/src/components/cascader/index.js b/src/components/cascader/index.js new file mode 100644 index 0000000000000000000000000000000000000000..e314d8973016f9f31ccdc683db521c302fbe774b --- /dev/null +++ b/src/components/cascader/index.js @@ -0,0 +1,2 @@ +import Cascader from './cascader.vue'; +export default Cascader; \ No newline at end of file diff --git a/src/components/cell-group/index.js b/src/components/cell-group/index.js new file mode 100644 index 0000000000000000000000000000000000000000..9624f30996d858b86e166dd7e32978c4770bdfdd --- /dev/null +++ b/src/components/cell-group/index.js @@ -0,0 +1,3 @@ +import CellGroup from '../cell/cell-group.vue'; + +export default CellGroup; diff --git a/src/components/cell/cell-group.vue b/src/components/cell/cell-group.vue new file mode 100644 index 0000000000000000000000000000000000000000..cd1f13965a68cc921436e4d1c28663d88222949a --- /dev/null +++ b/src/components/cell/cell-group.vue @@ -0,0 +1,21 @@ + + diff --git a/src/components/cell/cell-item.vue b/src/components/cell/cell-item.vue new file mode 100644 index 0000000000000000000000000000000000000000..33c5fb7071ade6b78e523871c409cca55530b90e --- /dev/null +++ b/src/components/cell/cell-item.vue @@ -0,0 +1,33 @@ + + diff --git a/src/components/cell/cell.vue b/src/components/cell/cell.vue new file mode 100644 index 0000000000000000000000000000000000000000..53f74a85e701f48e538c9b61f6b4b2feff677563 --- /dev/null +++ b/src/components/cell/cell.vue @@ -0,0 +1,133 @@ + + diff --git a/src/components/cell/index.js b/src/components/cell/index.js new file mode 100644 index 0000000000000000000000000000000000000000..b9620872c9d453a3aa1f67bdadc95e0dba31deaa --- /dev/null +++ b/src/components/cell/index.js @@ -0,0 +1,3 @@ +import Cell from './cell.vue'; + +export default Cell; diff --git a/src/components/checkbox-group/index.js b/src/components/checkbox-group/index.js new file mode 100644 index 0000000000000000000000000000000000000000..1d90ceba77ca9c27eb740b877b0d065646655cc5 --- /dev/null +++ b/src/components/checkbox-group/index.js @@ -0,0 +1,3 @@ +import CheckboxGroup from '../checkbox/checkbox-group.vue'; + +export default CheckboxGroup; diff --git a/src/components/checkbox/checkbox-group.vue b/src/components/checkbox/checkbox-group.vue new file mode 100644 index 0000000000000000000000000000000000000000..75ab6132cf387bf5576db19aa840997c916c1b57 --- /dev/null +++ b/src/components/checkbox/checkbox-group.vue @@ -0,0 +1,63 @@ + + diff --git a/src/components/checkbox/checkbox.vue b/src/components/checkbox/checkbox.vue new file mode 100644 index 0000000000000000000000000000000000000000..8e8985e8a12e904077bc828b8825fe40a3c96963 --- /dev/null +++ b/src/components/checkbox/checkbox.vue @@ -0,0 +1,184 @@ + + diff --git a/src/components/checkbox/index.js b/src/components/checkbox/index.js new file mode 100644 index 0000000000000000000000000000000000000000..97df006a189f505e1e49d55c64214ab701b4ce22 --- /dev/null +++ b/src/components/checkbox/index.js @@ -0,0 +1,3 @@ +import Checkbox from './checkbox.vue'; + +export default Checkbox; diff --git a/src/components/circle/circle.vue b/src/components/circle/circle.vue new file mode 100644 index 0000000000000000000000000000000000000000..244e460cc8e8c6711d383127bdfbab2b3a133303 --- /dev/null +++ b/src/components/circle/circle.vue @@ -0,0 +1,140 @@ + + diff --git a/src/components/circle/index.js b/src/components/circle/index.js new file mode 100644 index 0000000000000000000000000000000000000000..63c42450f8fcb169528ccab0a2cb26d09d0b8477 --- /dev/null +++ b/src/components/circle/index.js @@ -0,0 +1,2 @@ +import Circle from './circle.vue'; +export default Circle; \ No newline at end of file diff --git a/src/components/city/city.js b/src/components/city/city.js new file mode 100644 index 0000000000000000000000000000000000000000..8e5809ac39a55876139d5bf10ca9f24ff834c3e8 --- /dev/null +++ b/src/components/city/city.js @@ -0,0 +1,389 @@ +export default { + '110000': {'l': 'B', 'n': '北京市', 'c': '110000', 'p': '86'}, + '120000': {'l': 'T', 'n': '天津市', 'c': '120000', 'p': '86'}, + '130100': {'l': 'S', 'n': '石家庄市', 'c': '130100', 'p': '130000'}, + '130200': {'l': 'T', 'n': '唐山市', 'c': '130200', 'p': '130000'}, + '130300': {'l': 'Q', 'n': '秦皇岛市', 'c': '130300', 'p': '130000'}, + '130400': {'l': 'H', 'n': '邯郸市', 'c': '130400', 'p': '130000'}, + '130500': {'l': 'X', 'n': '邢台市', 'c': '130500', 'p': '130000'}, + '130600': {'l': 'B', 'n': '保定市', 'c': '130600', 'p': '130000'}, + '130700': {'l': 'Z', 'n': '张家口市', 'c': '130700', 'p': '130000'}, + '130800': {'l': 'C', 'n': '承德市', 'c': '130800', 'p': '130000'}, + '130900': {'l': 'C', 'n': '沧州市', 'c': '130900', 'p': '130000'}, + '131000': {'l': 'L', 'n': '廊坊市', 'c': '131000', 'p': '130000'}, + '131100': {'l': 'H', 'n': '衡水市', 'c': '131100', 'p': '130000'}, + '139001': {'l': 'D', 'n': '定州市', 'c': '139001', 'p': '130000'}, + '139002': {'l': 'X', 'n': '辛集市', 'c': '139002', 'p': '130000'}, + '140100': {'l': 'T', 'n': '太原市', 'c': '140100', 'p': '140000'}, + '140200': {'l': 'D', 'n': '大同市', 'c': '140200', 'p': '140000'}, + '140300': {'l': 'Y', 'n': '阳泉市', 'c': '140300', 'p': '140000'}, + '140400': {'l': 'C', 'n': '长治市', 'c': '140400', 'p': '140000'}, + '140500': {'l': 'J', 'n': '晋城市', 'c': '140500', 'p': '140000'}, + '140600': {'l': 'S', 'n': '朔州市', 'c': '140600', 'p': '140000'}, + '140700': {'l': 'J', 'n': '晋中市', 'c': '140700', 'p': '140000'}, + '140800': {'l': 'Y', 'n': '运城市', 'c': '140800', 'p': '140000'}, + '140900': {'l': 'X', 'n': '忻州市', 'c': '140900', 'p': '140000'}, + '141000': {'l': 'L', 'n': '临汾市', 'c': '141000', 'p': '140000'}, + '141100': {'l': 'L', 'n': '吕梁市', 'c': '141100', 'p': '140000'}, + '150100': {'l': 'H', 'n': '呼和浩特市', 'c': '150100', 'p': '150000'}, + '150200': {'l': 'B', 'n': '包头市', 'c': '150200', 'p': '150000'}, + '150300': {'l': 'W', 'n': '乌海市', 'c': '150300', 'p': '150000'}, + '150400': {'l': 'C', 'n': '赤峰市', 'c': '150400', 'p': '150000'}, + '150500': {'l': 'T', 'n': '通辽市', 'c': '150500', 'p': '150000'}, + '150600': {'l': 'E', 'n': '鄂尔多斯市', 'c': '150600', 'p': '150000'}, + '150700': {'l': 'H', 'n': '呼伦贝尔市', 'c': '150700', 'p': '150000'}, + '150800': {'l': 'B', 'n': '巴彦淖尔市', 'c': '150800', 'p': '150000'}, + '150900': {'l': 'W', 'n': '乌兰察布市', 'c': '150900', 'p': '150000'}, + '152200': {'l': 'X', 'n': '兴安盟', 'c': '152200', 'p': '150000'}, + '152500': {'l': 'X', 'n': '锡林郭勒盟', 'c': '152500', 'p': '150000'}, + '152900': {'l': 'A', 'n': '阿拉善盟', 'c': '152900', 'p': '150000'}, + '210100': {'l': 'S', 'n': '沈阳市', 'c': '210100', 'p': '210000'}, + '210200': {'l': 'D', 'n': '大连市', 'c': '210200', 'p': '210000'}, + '210300': {'l': 'A', 'n': '鞍山市', 'c': '210300', 'p': '210000'}, + '210400': {'l': 'F', 'n': '抚顺市', 'c': '210400', 'p': '210000'}, + '210500': {'l': 'B', 'n': '本溪市', 'c': '210500', 'p': '210000'}, + '210600': {'l': 'D', 'n': '丹东市', 'c': '210600', 'p': '210000'}, + '210700': {'l': 'J', 'n': '锦州市', 'c': '210700', 'p': '210000'}, + '210800': {'l': 'Y', 'n': '营口市', 'c': '210800', 'p': '210000'}, + '210900': {'l': 'F', 'n': '阜新市', 'c': '210900', 'p': '210000'}, + '211000': {'l': 'L', 'n': '辽阳市', 'c': '211000', 'p': '210000'}, + '211100': {'l': 'P', 'n': '盘锦市', 'c': '211100', 'p': '210000'}, + '211200': {'l': 'T', 'n': '铁岭市', 'c': '211200', 'p': '210000'}, + '211300': {'l': 'C', 'n': '朝阳市', 'c': '211300', 'p': '210000'}, + '211400': {'l': 'H', 'n': '葫芦岛市', 'c': '211400', 'p': '210000'}, + '220100': {'l': 'C', 'n': '长春市', 'c': '220100', 'p': '220000'}, + '220200': {'l': 'J', 'n': '吉林市', 'c': '220200', 'p': '220000'}, + '220300': {'l': 'S', 'n': '四平市', 'c': '220300', 'p': '220000'}, + '220400': {'l': 'L', 'n': '辽源市', 'c': '220400', 'p': '220000'}, + '220500': {'l': 'T', 'n': '通化市', 'c': '220500', 'p': '220000'}, + '220600': {'l': 'B', 'n': '白山市', 'c': '220600', 'p': '220000'}, + '220700': {'l': 'S', 'n': '松原市', 'c': '220700', 'p': '220000'}, + '220800': {'l': 'B', 'n': '白城市', 'c': '220800', 'p': '220000'}, + '222400': {'l': 'Y', 'n': '延边朝鲜族自治州', 'c': '222400', 'p': '220000'}, + '230100': {'l': 'H', 'n': '哈尔滨市', 'c': '230100', 'p': '230000'}, + '230200': {'l': 'Q', 'n': '齐齐哈尔市', 'c': '230200', 'p': '230000'}, + '230300': {'l': 'J', 'n': '鸡西市', 'c': '230300', 'p': '230000'}, + '230400': {'l': 'H', 'n': '鹤岗市', 'c': '230400', 'p': '230000'}, + '230500': {'l': 'S', 'n': '双鸭山市', 'c': '230500', 'p': '230000'}, + '230600': {'l': 'D', 'n': '大庆市', 'c': '230600', 'p': '230000'}, + '230700': {'l': 'Y', 'n': '伊春市', 'c': '230700', 'p': '230000'}, + '230800': {'l': 'J', 'n': '佳木斯市', 'c': '230800', 'p': '230000'}, + '230900': {'l': 'Q', 'n': '七台河市', 'c': '230900', 'p': '230000'}, + '231000': {'l': 'M', 'n': '牡丹江市', 'c': '231000', 'p': '230000'}, + '231100': {'l': 'H', 'n': '黑河市', 'c': '231100', 'p': '230000'}, + '231200': {'l': 'S', 'n': '绥化市', 'c': '231200', 'p': '230000'}, + '232700': {'l': 'D', 'n': '大兴安岭地区', 'c': '232700', 'p': '230000'}, + '310000': {'l': 'S', 'n': '上海市', 'c': '310000', 'p': '86'}, + '320100': {'l': 'N', 'n': '南京市', 'c': '320100', 'p': '320000'}, + '320200': {'l': 'W', 'n': '无锡市', 'c': '320200', 'p': '320000'}, + '320300': {'l': 'X', 'n': '徐州市', 'c': '320300', 'p': '320000'}, + '320400': {'l': 'C', 'n': '常州市', 'c': '320400', 'p': '320000'}, + '320500': {'l': 'S', 'n': '苏州市', 'c': '320500', 'p': '320000'}, + '320600': {'l': 'N', 'n': '南通市', 'c': '320600', 'p': '320000'}, + '320700': {'l': 'L', 'n': '连云港市', 'c': '320700', 'p': '320000'}, + '320800': {'l': 'H', 'n': '淮安市', 'c': '320800', 'p': '320000'}, + '320900': {'l': 'Y', 'n': '盐城市', 'c': '320900', 'p': '320000'}, + '321000': {'l': 'Y', 'n': '扬州市', 'c': '321000', 'p': '320000'}, + '321100': {'l': 'Z', 'n': '镇江市', 'c': '321100', 'p': '320000'}, + '321200': {'l': 'T', 'n': '泰州市', 'c': '321200', 'p': '320000'}, + '321300': {'l': 'X', 'n': '宿迁市', 'c': '321300', 'p': '320000'}, + '330100': {'l': 'H', 'n': '杭州市', 'c': '330100', 'p': '330000'}, + '330200': {'l': 'N', 'n': '宁波市', 'c': '330200', 'p': '330000'}, + '330300': {'l': 'W', 'n': '温州市', 'c': '330300', 'p': '330000'}, + '330400': {'l': 'J', 'n': '嘉兴市', 'c': '330400', 'p': '330000'}, + '330500': {'l': 'H', 'n': '湖州市', 'c': '330500', 'p': '330000'}, + '330600': {'l': 'S', 'n': '绍兴市', 'c': '330600', 'p': '330000'}, + '330700': {'l': 'J', 'n': '金华市', 'c': '330700', 'p': '330000'}, + '330800': {'l': 'Q', 'n': '衢州市', 'c': '330800', 'p': '330000'}, + '330900': {'l': 'Z', 'n': '舟山市', 'c': '330900', 'p': '330000'}, + '331000': {'l': 'T', 'n': '台州市', 'c': '331000', 'p': '330000'}, + '331100': {'l': 'L', 'n': '丽水市', 'c': '331100', 'p': '330000'}, + '340100': {'l': 'H', 'n': '合肥市', 'c': '340100', 'p': '340000'}, + '340200': {'l': 'W', 'n': '芜湖市', 'c': '340200', 'p': '340000'}, + '340300': {'l': 'B', 'n': '蚌埠市', 'c': '340300', 'p': '340000'}, + '340400': {'l': 'H', 'n': '淮南市', 'c': '340400', 'p': '340000'}, + '340500': {'l': 'M', 'n': '马鞍山市', 'c': '340500', 'p': '340000'}, + '340600': {'l': 'H', 'n': '淮北市', 'c': '340600', 'p': '340000'}, + '340700': {'l': 'T', 'n': '铜陵市', 'c': '340700', 'p': '340000'}, + '340800': {'l': 'A', 'n': '安庆市', 'c': '340800', 'p': '340000'}, + '341000': {'l': 'H', 'n': '黄山市', 'c': '341000', 'p': '340000'}, + '341100': {'l': 'C', 'n': '滁州市', 'c': '341100', 'p': '340000'}, + '341200': {'l': 'F', 'n': '阜阳市', 'c': '341200', 'p': '340000'}, + '341300': {'l': 'X', 'n': '宿州市', 'c': '341300', 'p': '340000'}, + '341500': {'l': 'L', 'n': '六安市', 'c': '341500', 'p': '340000'}, + '341600': {'l': 'B', 'n': '亳州市', 'c': '341600', 'p': '340000'}, + '341700': {'l': 'C', 'n': '池州市', 'c': '341700', 'p': '340000'}, + '341800': {'l': 'X', 'n': '宣城市', 'c': '341800', 'p': '340000'}, + '350100': {'l': 'F', 'n': '福州市', 'c': '350100', 'p': '350000'}, + '350200': {'l': 'S', 'n': '厦门市', 'c': '350200', 'p': '350000'}, + '350300': {'l': 'P', 'n': '莆田市', 'c': '350300', 'p': '350000'}, + '350400': {'l': 'S', 'n': '三明市', 'c': '350400', 'p': '350000'}, + '350500': {'l': 'Q', 'n': '泉州市', 'c': '350500', 'p': '350000'}, + '350600': {'l': 'Z', 'n': '漳州市', 'c': '350600', 'p': '350000'}, + '350700': {'l': 'N', 'n': '南平市', 'c': '350700', 'p': '350000'}, + '350800': {'l': 'L', 'n': '龙岩市', 'c': '350800', 'p': '350000'}, + '350900': {'l': 'N', 'n': '宁德市', 'c': '350900', 'p': '350000'}, + '360100': {'l': 'N', 'n': '南昌市', 'c': '360100', 'p': '360000'}, + '360200': {'l': 'J', 'n': '景德镇市', 'c': '360200', 'p': '360000'}, + '360300': {'l': 'P', 'n': '萍乡市', 'c': '360300', 'p': '360000'}, + '360400': {'l': 'J', 'n': '九江市', 'c': '360400', 'p': '360000'}, + '360500': {'l': 'X', 'n': '新余市', 'c': '360500', 'p': '360000'}, + '360600': {'l': 'Y', 'n': '鹰潭市', 'c': '360600', 'p': '360000'}, + '360700': {'l': 'G', 'n': '赣州市', 'c': '360700', 'p': '360000'}, + '360800': {'l': 'J', 'n': '吉安市', 'c': '360800', 'p': '360000'}, + '360900': {'l': 'Y', 'n': '宜春市', 'c': '360900', 'p': '360000'}, + '361000': {'l': 'F', 'n': '抚州市', 'c': '361000', 'p': '360000'}, + '361100': {'l': 'S', 'n': '上饶市', 'c': '361100', 'p': '360000'}, + '370100': {'l': 'J', 'n': '济南市', 'c': '370100', 'p': '370000'}, + '370200': {'l': 'Q', 'n': '青岛市', 'c': '370200', 'p': '370000'}, + '370300': {'l': 'Z', 'n': '淄博市', 'c': '370300', 'p': '370000'}, + '370400': {'l': 'Z', 'n': '枣庄市', 'c': '370400', 'p': '370000'}, + '370500': {'l': 'D', 'n': '东营市', 'c': '370500', 'p': '370000'}, + '370600': {'l': 'Y', 'n': '烟台市', 'c': '370600', 'p': '370000'}, + '370700': {'l': 'W', 'n': '潍坊市', 'c': '370700', 'p': '370000'}, + '370800': {'l': 'J', 'n': '济宁市', 'c': '370800', 'p': '370000'}, + '370900': {'l': 'T', 'n': '泰安市', 'c': '370900', 'p': '370000'}, + '371000': {'l': 'W', 'n': '威海市', 'c': '371000', 'p': '370000'}, + '371100': {'l': 'R', 'n': '日照市', 'c': '371100', 'p': '370000'}, + '371200': {'l': 'L', 'n': '莱芜市', 'c': '371200', 'p': '370000'}, + '371300': {'l': 'L', 'n': '临沂市', 'c': '371300', 'p': '370000'}, + '371400': {'l': 'D', 'n': '德州市', 'c': '371400', 'p': '370000'}, + '371500': {'l': 'L', 'n': '聊城市', 'c': '371500', 'p': '370000'}, + '371600': {'l': 'B', 'n': '滨州市', 'c': '371600', 'p': '370000'}, + '371700': {'l': 'H', 'n': '菏泽市', 'c': '371700', 'p': '370000'}, + '410100': {'l': 'Z', 'n': '郑州市', 'c': '410100', 'p': '410000'}, + '410200': {'l': 'K', 'n': '开封市', 'c': '410200', 'p': '410000'}, + '410300': {'l': 'L', 'n': '洛阳市', 'c': '410300', 'p': '410000'}, + '410400': {'l': 'P', 'n': '平顶山市', 'c': '410400', 'p': '410000'}, + '410500': {'l': 'A', 'n': '安阳市', 'c': '410500', 'p': '410000'}, + '410600': {'l': 'H', 'n': '鹤壁市', 'c': '410600', 'p': '410000'}, + '410700': {'l': 'X', 'n': '新乡市', 'c': '410700', 'p': '410000'}, + '410800': {'l': 'J', 'n': '焦作市', 'c': '410800', 'p': '410000'}, + '410900': {'l': 'P', 'n': '濮阳市', 'c': '410900', 'p': '410000'}, + '411000': {'l': 'X', 'n': '许昌市', 'c': '411000', 'p': '410000'}, + '411100': {'l': 'L', 'n': '漯河市', 'c': '411100', 'p': '410000'}, + '411200': {'l': 'S', 'n': '三门峡市', 'c': '411200', 'p': '410000'}, + '411300': {'l': 'N', 'n': '南阳市', 'c': '411300', 'p': '410000'}, + '411400': {'l': 'S', 'n': '商丘市', 'c': '411400', 'p': '410000'}, + '411500': {'l': 'X', 'n': '信阳市', 'c': '411500', 'p': '410000'}, + '411600': {'l': 'Z', 'n': '周口市', 'c': '411600', 'p': '410000'}, + '411700': {'l': 'Z', 'n': '驻马店市', 'c': '411700', 'p': '410000'}, + '419001': {'l': 'J', 'n': '济源市', 'c': '419001', 'p': '410000'}, + '420100': {'l': 'W', 'n': '武汉市', 'c': '420100', 'p': '420000'}, + '420200': {'l': 'H', 'n': '黄石市', 'c': '420200', 'p': '420000'}, + '420300': {'l': 'S', 'n': '十堰市', 'c': '420300', 'p': '420000'}, + '420500': {'l': 'Y', 'n': '宜昌市', 'c': '420500', 'p': '420000'}, + '420600': {'l': 'X', 'n': '襄阳市', 'c': '420600', 'p': '420000'}, + '420700': {'l': 'E', 'n': '鄂州市', 'c': '420700', 'p': '420000'}, + '420800': {'l': 'J', 'n': '荆门市', 'c': '420800', 'p': '420000'}, + '420900': {'l': 'X', 'n': '孝感市', 'c': '420900', 'p': '420000'}, + '421000': {'l': 'J', 'n': '荆州市', 'c': '421000', 'p': '420000'}, + '421100': {'l': 'H', 'n': '黄冈市', 'c': '421100', 'p': '420000'}, + '421200': {'l': 'X', 'n': '咸宁市', 'c': '421200', 'p': '420000'}, + '421300': {'l': 'S', 'n': '随州市', 'c': '421300', 'p': '420000'}, + '422800': {'l': 'E', 'n': '恩施土家族苗族自治州', 'c': '422800', 'p': '420000'}, + '429004': {'l': 'X', 'n': '仙桃市', 'c': '429004', 'p': '420000'}, + '429005': {'l': 'Q', 'n': '潜江市', 'c': '429005', 'p': '420000'}, + '429006': {'l': 'T', 'n': '天门市', 'c': '429006', 'p': '420000'}, + '429021': {'l': 'S', 'n': '神农架林区', 'c': '429021', 'p': '420000'}, + '430100': {'l': 'C', 'n': '长沙市', 'c': '430100', 'p': '430000'}, + '430200': {'l': 'Z', 'n': '株洲市', 'c': '430200', 'p': '430000'}, + '430300': {'l': 'X', 'n': '湘潭市', 'c': '430300', 'p': '430000'}, + '430400': {'l': 'H', 'n': '衡阳市', 'c': '430400', 'p': '430000'}, + '430500': {'l': 'S', 'n': '邵阳市', 'c': '430500', 'p': '430000'}, + '430600': {'l': 'Y', 'n': '岳阳市', 'c': '430600', 'p': '430000'}, + '430700': {'l': 'C', 'n': '常德市', 'c': '430700', 'p': '430000'}, + '430800': {'l': 'Z', 'n': '张家界市', 'c': '430800', 'p': '430000'}, + '430900': {'l': 'Y', 'n': '益阳市', 'c': '430900', 'p': '430000'}, + '431000': {'l': 'C', 'n': '郴州市', 'c': '431000', 'p': '430000'}, + '431100': {'l': 'Y', 'n': '永州市', 'c': '431100', 'p': '430000'}, + '431200': {'l': 'H', 'n': '怀化市', 'c': '431200', 'p': '430000'}, + '431300': {'l': 'L', 'n': '娄底市', 'c': '431300', 'p': '430000'}, + '433100': {'l': 'X', 'n': '湘西土家族苗族自治州', 'c': '433100', 'p': '430000'}, + '440100': {'l': 'G', 'n': '广州市', 'c': '440100', 'p': '440000'}, + '440200': {'l': 'S', 'n': '韶关市', 'c': '440200', 'p': '440000'}, + '440300': {'l': 'S', 'n': '深圳市', 'c': '440300', 'p': '440000'}, + '440400': {'l': 'Z', 'n': '珠海市', 'c': '440400', 'p': '440000'}, + '440500': {'l': 'S', 'n': '汕头市', 'c': '440500', 'p': '440000'}, + '440600': {'l': 'F', 'n': '佛山市', 'c': '440600', 'p': '440000'}, + '440700': {'l': 'J', 'n': '江门市', 'c': '440700', 'p': '440000'}, + '440800': {'l': 'Z', 'n': '湛江市', 'c': '440800', 'p': '440000'}, + '440900': {'l': 'M', 'n': '茂名市', 'c': '440900', 'p': '440000'}, + '441200': {'l': 'Z', 'n': '肇庆市', 'c': '441200', 'p': '440000'}, + '441300': {'l': 'H', 'n': '惠州市', 'c': '441300', 'p': '440000'}, + '441400': {'l': 'M', 'n': '梅州市', 'c': '441400', 'p': '440000'}, + '441500': {'l': 'S', 'n': '汕尾市', 'c': '441500', 'p': '440000'}, + '441600': {'l': 'H', 'n': '河源市', 'c': '441600', 'p': '440000'}, + '441700': {'l': 'Y', 'n': '阳江市', 'c': '441700', 'p': '440000'}, + '441800': {'l': 'Q', 'n': '清远市', 'c': '441800', 'p': '440000'}, + '441900': {'l': 'D', 'n': '东莞市', 'c': '441900', 'p': '440000'}, + '442000': {'l': 'Z', 'n': '中山市', 'c': '442000', 'p': '440000'}, + '445100': {'l': 'C', 'n': '潮州市', 'c': '445100', 'p': '440000'}, + '445200': {'l': 'J', 'n': '揭阳市', 'c': '445200', 'p': '440000'}, + '445300': {'l': 'Y', 'n': '云浮市', 'c': '445300', 'p': '440000'}, + '450100': {'l': 'N', 'n': '南宁市', 'c': '450100', 'p': '450000'}, + '450200': {'l': 'L', 'n': '柳州市', 'c': '450200', 'p': '450000'}, + '450300': {'l': 'G', 'n': '桂林市', 'c': '450300', 'p': '450000'}, + '450400': {'l': 'W', 'n': '梧州市', 'c': '450400', 'p': '450000'}, + '450500': {'l': 'B', 'n': '北海市', 'c': '450500', 'p': '450000'}, + '450600': {'l': 'F', 'n': '防城港市', 'c': '450600', 'p': '450000'}, + '450700': {'l': 'Q', 'n': '钦州市', 'c': '450700', 'p': '450000'}, + '450800': {'l': 'G', 'n': '贵港市', 'c': '450800', 'p': '450000'}, + '450900': {'l': 'Y', 'n': '玉林市', 'c': '450900', 'p': '450000'}, + '451000': {'l': 'B', 'n': '百色市', 'c': '451000', 'p': '450000'}, + '451100': {'l': 'H', 'n': '贺州市', 'c': '451100', 'p': '450000'}, + '451200': {'l': 'H', 'n': '河池市', 'c': '451200', 'p': '450000'}, + '451300': {'l': 'L', 'n': '来宾市', 'c': '451300', 'p': '450000'}, + '451400': {'l': 'C', 'n': '崇左市', 'c': '451400', 'p': '450000'}, + '460100': {'l': 'H', 'n': '海口市', 'c': '460100', 'p': '460000'}, + '460200': {'l': 'S', 'n': '三亚市', 'c': '460200', 'p': '460000'}, + '460300': {'l': 'S', 'n': '三沙市', 'c': '460300', 'p': '460000'}, + '460400': {'l': 'D', 'n': '儋州市', 'c': '460400', 'p': '460000'}, + '469001': {'l': 'W', 'n': '五指山市', 'c': '469001', 'p': '460000'}, + '469002': {'l': 'Q', 'n': '琼海市', 'c': '469002', 'p': '460000'}, + '469005': {'l': 'W', 'n': '文昌市', 'c': '469005', 'p': '460000'}, + '469006': {'l': 'W', 'n': '万宁市', 'c': '469006', 'p': '460000'}, + '469007': {'l': 'D', 'n': '东方市', 'c': '469007', 'p': '460000'}, + '469021': {'l': 'D', 'n': '定安县', 'c': '469021', 'p': '460000'}, + '469022': {'l': 'T', 'n': '屯昌县', 'c': '469022', 'p': '460000'}, + '469023': {'l': 'C', 'n': '澄迈县', 'c': '469023', 'p': '460000'}, + '469024': {'l': 'L', 'n': '临高县', 'c': '469024', 'p': '460000'}, + '469025': {'l': 'B', 'n': '白沙黎族自治县', 'c': '469025', 'p': '460000'}, + '469026': {'l': 'C', 'n': '昌江黎族自治县', 'c': '469026', 'p': '460000'}, + '469027': {'l': 'L', 'n': '乐东黎族自治县', 'c': '469027', 'p': '460000'}, + '469028': {'l': 'L', 'n': '陵水黎族自治县', 'c': '469028', 'p': '460000'}, + '469029': {'l': 'B', 'n': '保亭黎族苗族自治县', 'c': '469029', 'p': '460000'}, + '469030': {'l': 'Q', 'n': '琼中黎族苗族自治县', 'c': '469030', 'p': '460000'}, + '500000': {'l': 'C', 'n': '重庆市', 'c': '500000', 'p': '86'}, + '510100': {'l': 'C', 'n': '成都市', 'c': '510100', 'p': '510000'}, + '510300': {'l': 'Z', 'n': '自贡市', 'c': '510300', 'p': '510000'}, + '510400': {'l': 'P', 'n': '攀枝花市', 'c': '510400', 'p': '510000'}, + '510500': {'l': 'L', 'n': '泸州市', 'c': '510500', 'p': '510000'}, + '510600': {'l': 'D', 'n': '德阳市', 'c': '510600', 'p': '510000'}, + '510700': {'l': 'M', 'n': '绵阳市', 'c': '510700', 'p': '510000'}, + '510800': {'l': 'G', 'n': '广元市', 'c': '510800', 'p': '510000'}, + '510900': {'l': 'S', 'n': '遂宁市', 'c': '510900', 'p': '510000'}, + '511000': {'l': 'N', 'n': '内江市', 'c': '511000', 'p': '510000'}, + '511100': {'l': 'L', 'n': '乐山市', 'c': '511100', 'p': '510000'}, + '511300': {'l': 'N', 'n': '南充市', 'c': '511300', 'p': '510000'}, + '511400': {'l': 'M', 'n': '眉山市', 'c': '511400', 'p': '510000'}, + '511500': {'l': 'Y', 'n': '宜宾市', 'c': '511500', 'p': '510000'}, + '511600': {'l': 'G', 'n': '广安市', 'c': '511600', 'p': '510000'}, + '511700': {'l': 'D', 'n': '达州市', 'c': '511700', 'p': '510000'}, + '511800': {'l': 'Y', 'n': '雅安市', 'c': '511800', 'p': '510000'}, + '511900': {'l': 'B', 'n': '巴中市', 'c': '511900', 'p': '510000'}, + '512000': {'l': 'Z', 'n': '资阳市', 'c': '512000', 'p': '510000'}, + '513200': {'l': 'A', 'n': '阿坝藏族羌族自治州', 'c': '513200', 'p': '510000'}, + '513300': {'l': 'G', 'n': '甘孜藏族自治州', 'c': '513300', 'p': '510000'}, + '513400': {'l': 'L', 'n': '凉山彝族自治州', 'c': '513400', 'p': '510000'}, + '520100': {'l': 'G', 'n': '贵阳市', 'c': '520100', 'p': '520000'}, + '520200': {'l': 'L', 'n': '六盘水市', 'c': '520200', 'p': '520000'}, + '520300': {'l': 'Z', 'n': '遵义市', 'c': '520300', 'p': '520000'}, + '520400': {'l': 'A', 'n': '安顺市', 'c': '520400', 'p': '520000'}, + '520500': {'l': 'B', 'n': '毕节市', 'c': '520500', 'p': '520000'}, + '520600': {'l': 'T', 'n': '铜仁市', 'c': '520600', 'p': '520000'}, + '522300': {'l': 'Q', 'n': '黔西南布依族苗族自治州', 'c': '522300', 'p': '520000'}, + '522600': {'l': 'Q', 'n': '黔东南苗族侗族自治州', 'c': '522600', 'p': '520000'}, + '522700': {'l': 'Q', 'n': '黔南布依族苗族自治州', 'c': '522700', 'p': '520000'}, + '530100': {'l': 'K', 'n': '昆明市', 'c': '530100', 'p': '530000'}, + '530300': {'l': 'Q', 'n': '曲靖市', 'c': '530300', 'p': '530000'}, + '530400': {'l': 'Y', 'n': '玉溪市', 'c': '530400', 'p': '530000'}, + '530500': {'l': 'B', 'n': '保山市', 'c': '530500', 'p': '530000'}, + '530600': {'l': 'Z', 'n': '昭通市', 'c': '530600', 'p': '530000'}, + '530700': {'l': 'L', 'n': '丽江市', 'c': '530700', 'p': '530000'}, + '530800': {'l': 'P', 'n': '普洱市', 'c': '530800', 'p': '530000'}, + '530900': {'l': 'L', 'n': '临沧市', 'c': '530900', 'p': '530000'}, + '532300': {'l': 'C', 'n': '楚雄彝族自治州', 'c': '532300', 'p': '530000'}, + '532500': {'l': 'H', 'n': '红河哈尼族彝族自治州', 'c': '532500', 'p': '530000'}, + '532600': {'l': 'W', 'n': '文山壮族苗族自治州', 'c': '532600', 'p': '530000'}, + '532800': {'l': 'X', 'n': '西双版纳傣族自治州', 'c': '532800', 'p': '530000'}, + '532900': {'l': 'D', 'n': '大理白族自治州', 'c': '532900', 'p': '530000'}, + '533100': {'l': 'D', 'n': '德宏傣族景颇族自治州', 'c': '533100', 'p': '530000'}, + '533300': {'l': 'N', 'n': '怒江傈僳族自治州', 'c': '533300', 'p': '530000'}, + '533400': {'l': 'D', 'n': '迪庆藏族自治州', 'c': '533400', 'p': '530000'}, + '540100': {'l': 'L', 'n': '拉萨市', 'c': '540100', 'p': '540000'}, + '540200': {'l': 'R', 'n': '日喀则市', 'c': '540200', 'p': '540000'}, + '540300': {'l': 'C', 'n': '昌都市', 'c': '540300', 'p': '540000'}, + '540400': {'l': 'L', 'n': '林芝市', 'c': '540400', 'p': '540000'}, + '540500': {'l': 'S', 'n': '山南市', 'c': '540500', 'p': '540000'}, + '542400': {'l': 'N', 'n': '那曲地区', 'c': '542400', 'p': '540000'}, + '542500': {'l': 'A', 'n': '阿里地区', 'c': '542500', 'p': '540000'}, + '610100': {'l': 'X', 'n': '西安市', 'c': '610100', 'p': '610000'}, + '610200': {'l': 'T', 'n': '铜川市', 'c': '610200', 'p': '610000'}, + '610300': {'l': 'B', 'n': '宝鸡市', 'c': '610300', 'p': '610000'}, + '610400': {'l': 'X', 'n': '咸阳市', 'c': '610400', 'p': '610000'}, + '610500': {'l': 'W', 'n': '渭南市', 'c': '610500', 'p': '610000'}, + '610600': {'l': 'Y', 'n': '延安市', 'c': '610600', 'p': '610000'}, + '610700': {'l': 'H', 'n': '汉中市', 'c': '610700', 'p': '610000'}, + '610800': {'l': 'Y', 'n': '榆林市', 'c': '610800', 'p': '610000'}, + '610900': {'l': 'A', 'n': '安康市', 'c': '610900', 'p': '610000'}, + '611000': {'l': 'S', 'n': '商洛市', 'c': '611000', 'p': '610000'}, + '620100': {'l': 'L', 'n': '兰州市', 'c': '620100', 'p': '620000'}, + '620200': {'l': 'J', 'n': '嘉峪关市', 'c': '620200', 'p': '620000'}, + '620300': {'l': 'J', 'n': '金昌市', 'c': '620300', 'p': '620000'}, + '620400': {'l': 'B', 'n': '白银市', 'c': '620400', 'p': '620000'}, + '620500': {'l': 'T', 'n': '天水市', 'c': '620500', 'p': '620000'}, + '620600': {'l': 'W', 'n': '武威市', 'c': '620600', 'p': '620000'}, + '620700': {'l': 'Z', 'n': '张掖市', 'c': '620700', 'p': '620000'}, + '620800': {'l': 'P', 'n': '平凉市', 'c': '620800', 'p': '620000'}, + '620900': {'l': 'J', 'n': '酒泉市', 'c': '620900', 'p': '620000'}, + '621000': {'l': 'Q', 'n': '庆阳市', 'c': '621000', 'p': '620000'}, + '621100': {'l': 'D', 'n': '定西市', 'c': '621100', 'p': '620000'}, + '621200': {'l': 'L', 'n': '陇南市', 'c': '621200', 'p': '620000'}, + '622900': {'l': 'L', 'n': '临夏回族自治州', 'c': '622900', 'p': '620000'}, + '623000': {'l': 'G', 'n': '甘南藏族自治州', 'c': '623000', 'p': '620000'}, + '630100': {'l': 'X', 'n': '西宁市', 'c': '630100', 'p': '630000'}, + '630200': {'l': 'H', 'n': '海东市', 'c': '630200', 'p': '630000'}, + '632200': {'l': 'H', 'n': '海北藏族自治州', 'c': '632200', 'p': '630000'}, + '632300': {'l': 'H', 'n': '黄南藏族自治州', 'c': '632300', 'p': '630000'}, + '632500': {'l': 'H', 'n': '海南藏族自治州', 'c': '632500', 'p': '630000'}, + '632600': {'l': 'G', 'n': '果洛藏族自治州', 'c': '632600', 'p': '630000'}, + '632700': {'l': 'Y', 'n': '玉树藏族自治州', 'c': '632700', 'p': '630000'}, + '632800': {'l': 'H', 'n': '海西蒙古族藏族自治州', 'c': '632800', 'p': '630000'}, + '640100': {'l': 'Y', 'n': '银川市', 'c': '640100', 'p': '640000'}, + '640200': {'l': 'S', 'n': '石嘴山市', 'c': '640200', 'p': '640000'}, + '640300': {'l': 'W', 'n': '吴忠市', 'c': '640300', 'p': '640000'}, + '640400': {'l': 'G', 'n': '固原市', 'c': '640400', 'p': '640000'}, + '640500': {'l': 'Z', 'n': '中卫市', 'c': '640500', 'p': '640000'}, + '650100': {'l': 'W', 'n': '乌鲁木齐市', 'c': '650100', 'p': '650000'}, + '650200': {'l': 'K', 'n': '克拉玛依市', 'c': '650200', 'p': '650000'}, + '650400': {'l': 'T', 'n': '吐鲁番市', 'c': '650400', 'p': '650000'}, + '650500': {'l': 'H', 'n': '哈密市', 'c': '650500', 'p': '650000'}, + '652300': {'l': 'C', 'n': '昌吉回族自治州', 'c': '652300', 'p': '650000'}, + '652700': {'l': 'B', 'n': '博尔塔拉蒙古自治州', 'c': '652700', 'p': '650000'}, + '652800': {'l': 'B', 'n': '巴音郭楞蒙古自治州', 'c': '652800', 'p': '650000'}, + '652900': {'l': 'A', 'n': '阿克苏地区', 'c': '652900', 'p': '650000'}, + '653000': {'l': 'K', 'n': '克孜勒苏柯尔克孜自治州', 'c': '653000', 'p': '650000'}, + '653100': {'l': 'K', 'n': '喀什地区', 'c': '653100', 'p': '650000'}, + '653200': {'l': 'H', 'n': '和田地区', 'c': '653200', 'p': '650000'}, + '654000': {'l': 'Y', 'n': '伊犁哈萨克自治州', 'c': '654000', 'p': '650000'}, + '654200': {'l': 'T', 'n': '塔城地区', 'c': '654200', 'p': '650000'}, + '654300': {'l': 'A', 'n': '阿勒泰地区', 'c': '654300', 'p': '650000'}, + '659001': {'l': 'S', 'n': '石河子市', 'c': '659001', 'p': '650000'}, + '659002': {'l': 'A', 'n': '阿拉尔市', 'c': '659002', 'p': '650000'}, + '659003': {'l': 'T', 'n': '图木舒克市', 'c': '659003', 'p': '650000'}, + '659004': {'l': 'W', 'n': '五家渠市', 'c': '659004', 'p': '650000'}, + '659006': {'l': 'T', 'n': '铁门关市', 'c': '659006', 'p': '650000'}, + '710101': {'l': 'J', 'n': '金门', 'c': '710101', 'p': '710000'}, + '710102': {'l': 'L', 'n': '连江', 'c': '710102', 'p': '710000'}, + '710103': {'l': 'M', 'n': '苗栗', 'c': '710103', 'p': '710000'}, + '710104': {'l': 'N', 'n': '南投', 'c': '710104', 'p': '710000'}, + '710105': {'l': 'P', 'n': '澎湖', 'c': '710105', 'p': '710000'}, + '710106': {'l': 'P', 'n': '屏东', 'c': '710106', 'p': '710000'}, + '710107': {'l': 'T', 'n': '台东', 'c': '710107', 'p': '710000'}, + '710108': {'l': 'T', 'n': '台中', 'c': '710108', 'p': '710000'}, + '710109': {'l': 'T', 'n': '台南', 'c': '710109', 'p': '710000'}, + '710110': {'l': 'T', 'n': '台北', 'c': '710110', 'p': '710000'}, + '710111': {'l': 'T', 'n': '桃园', 'c': '710111', 'p': '710000'}, + '710112': {'l': 'Y', 'n': '云林', 'c': '710112', 'p': '710000'}, + '710113': {'l': 'X', 'n': '新北', 'c': '710113', 'p': '710000'}, + '710114': {'l': 'Z', 'n': '彰化', 'c': '710114', 'p': '710000'}, + '710115': {'l': 'J', 'n': '嘉义', 'c': '710115', 'p': '710000'}, + '710116': {'l': 'X', 'n': '新竹', 'c': '710116', 'p': '710000'}, + '710117': {'l': 'H', 'n': '花莲', 'c': '710117', 'p': '710000'}, + '710118': {'l': 'Y', 'n': '宜兰', 'c': '710118', 'p': '710000'}, + '710119': {'l': 'G', 'n': '高雄', 'c': '710119', 'p': '710000'}, + '710120': {'l': 'J', 'n': '基隆', 'c': '710120', 'p': '710000'}, + '810000': {'l': 'X', 'n': '香港特别行政区', 'c': '810000', 'p': '86'}, + '820000': {'l': 'A', 'n': '澳门特别行政区', 'c': '820000', 'p': '86'} +}; \ No newline at end of file diff --git a/src/components/city/city.vue b/src/components/city/city.vue new file mode 100644 index 0000000000000000000000000000000000000000..c58d8de47e144424fd231fe00fd241cd27421b2f --- /dev/null +++ b/src/components/city/city.vue @@ -0,0 +1,476 @@ + + diff --git a/src/components/city/index.js b/src/components/city/index.js new file mode 100644 index 0000000000000000000000000000000000000000..431dbab04c0afbedf7a1c341f7a5bd0eda4e50d9 --- /dev/null +++ b/src/components/city/index.js @@ -0,0 +1,2 @@ +import City from './city.vue'; +export default City; \ No newline at end of file diff --git a/src/components/city/province.js b/src/components/city/province.js new file mode 100644 index 0000000000000000000000000000000000000000..c6642cb4b3e28842624b593d18e1aeb473d45be8 --- /dev/null +++ b/src/components/city/province.js @@ -0,0 +1,36 @@ +export default { + '110000': {l: 'Z1', n: '北京', c: '110000', p: '86'}, + '120000': {l: 'Z1', n: '天津', c: '120000', p: '86'}, + '130000': {l: 'H', n: '河北', c: '130000', p: '86'}, + '140000': {l: 'S', n: '山西', c: '140000', p: '86'}, + '150000': {l: 'N', n: '内蒙古', c: '150000', p: '86'}, + '210000': {l: 'L', n: '辽宁', c: '210000', p: '86'}, + '220000': {l: 'J', n: '吉林', c: '220000', p: '86'}, + '230000': {l: 'H', n: '黑龙江', c: '230000', p: '86'}, + '310000': {l: 'Z1', n: '上海', c: '310000', p: '86'}, + '320000': {l: 'J', n: '江苏', c: '320000', p: '86'}, + '330000': {l: 'Z', n: '浙江', c: '330000', p: '86'}, + '340000': {l: 'A', n: '安徽', c: '340000', p: '86'}, + '350000': {l: 'F', n: '福建', c: '350000', p: '86'}, + '360000': {l: 'J', n: '江西', c: '360000', p: '86'}, + '370000': {l: 'S', n: '山东', c: '370000', p: '86'}, + '410000': {l: 'H', n: '河南', c: '410000', p: '86'}, + '420000': {l: 'H', n: '湖北', c: '420000', p: '86'}, + '430000': {l: 'H', n: '湖南', c: '430000', p: '86'}, + '440000': {l: 'G', n: '广东', c: '440000', p: '86'}, + '450000': {l: 'G', n: '广西', c: '450000', p: '86'}, + '460000': {l: 'H', n: '海南', c: '460000', p: '86'}, + '500000': {l: 'Z1', n: '重庆', c: '500000', p: '86'}, + '510000': {l: 'S', n: '四川', c: '510000', p: '86'}, + '520000': {l: 'G', n: '贵州', c: '520000', p: '86'}, + '530000': {l: 'Y', n: '云南', c: '530000', p: '86'}, + '540000': {l: 'X', n: '西藏', c: '540000', p: '86'}, + '610000': {l: 'S', n: '陕西', c: '610000', p: '86'}, + '620000': {l: 'G', n: '甘肃', c: '620000', p: '86'}, + '630000': {l: 'Q', n: '青海', c: '630000', p: '86'}, + '640000': {l: 'N', n: '宁夏', c: '640000', p: '86'}, + '650000': {l: 'X', n: '新疆', c: '650000', p: '86'}, + '710000': {l: 'T', n: '台湾', c: '710000', p: '86'}, + '810000': {l: 'Z2', n: '香港', c: '810000', p: '86'}, + '820000': {l: 'Z2', n: '澳门', c: '820000', p: '86'} +}; \ No newline at end of file diff --git a/src/components/col/col.vue b/src/components/col/col.vue new file mode 100644 index 0000000000000000000000000000000000000000..6d3ed74d10313452c9828d6d17dcec938b6df7a1 --- /dev/null +++ b/src/components/col/col.vue @@ -0,0 +1,95 @@ + + diff --git a/src/components/col/index.js b/src/components/col/index.js new file mode 100644 index 0000000000000000000000000000000000000000..57e20b11747b937d3e5856df9fdf9b32714cf549 --- /dev/null +++ b/src/components/col/index.js @@ -0,0 +1,3 @@ +import Col from './col.vue'; + +export default Col; diff --git a/src/components/collapse/collapse.vue b/src/components/collapse/collapse.vue new file mode 100644 index 0000000000000000000000000000000000000000..b8a9700cad00fa0e94cde91bb071b40851376c7f --- /dev/null +++ b/src/components/collapse/collapse.vue @@ -0,0 +1,101 @@ + + diff --git a/src/components/collapse/index.js b/src/components/collapse/index.js new file mode 100644 index 0000000000000000000000000000000000000000..56dfd6793d6be40758b7e352a29157434e3fc8c8 --- /dev/null +++ b/src/components/collapse/index.js @@ -0,0 +1,3 @@ +import Collapse from './collapse.vue'; + +export default Collapse; diff --git a/src/components/collapse/panel.vue b/src/components/collapse/panel.vue new file mode 100644 index 0000000000000000000000000000000000000000..4c073e74d34115b931f54d7fb5c7a1750f596420 --- /dev/null +++ b/src/components/collapse/panel.vue @@ -0,0 +1,79 @@ + + diff --git a/src/components/color-picker/alpha.vue b/src/components/color-picker/alpha.vue new file mode 100644 index 0000000000000000000000000000000000000000..9698c5fe40b1cf1363ac2407abf5e54b242c19df --- /dev/null +++ b/src/components/color-picker/alpha.vue @@ -0,0 +1,99 @@ + + diff --git a/src/components/color-picker/color-picker.vue b/src/components/color-picker/color-picker.vue new file mode 100644 index 0000000000000000000000000000000000000000..b7cbe5417f42f7b54fb00c3023458394ceaa713c --- /dev/null +++ b/src/components/color-picker/color-picker.vue @@ -0,0 +1,519 @@ + + diff --git a/src/components/color-picker/handleEscapeMixin.js b/src/components/color-picker/handleEscapeMixin.js new file mode 100644 index 0000000000000000000000000000000000000000..f3ecb5e3dcd928d8502671d125fd5b97bc71a178 --- /dev/null +++ b/src/components/color-picker/handleEscapeMixin.js @@ -0,0 +1,8 @@ +export default { + inject: ['ColorPickerInstance'], + methods: { + handleEscape (e) { + this.ColorPickerInstance.handleOnEscapeKeydown(e); + } + } +}; diff --git a/src/components/color-picker/hsaMixin.js b/src/components/color-picker/hsaMixin.js new file mode 100644 index 0000000000000000000000000000000000000000..0b3810ef0d87ef69b9ee10f4f07b7d5afe1aad5f --- /dev/null +++ b/src/components/color-picker/hsaMixin.js @@ -0,0 +1,76 @@ +import handleEscapeMixin from './handleEscapeMixin'; +import { getTouches } from './utils'; +import { on, off } from '../../utils/dom'; +import { isClient } from '../../utils/index'; + +export default { + mixins: [ handleEscapeMixin ], + props: { + focused: { + type: Boolean, + default: false, + }, + value: { + type: Object, + default: undefined, + } + }, + created () { + if (this.focused) { + setTimeout(() => this.$el.focus(), 1); + } + }, + beforeUnmount () { + this.unbindEventListeners(); + }, + methods: { + handleLeft (e) { + this.handleSlide(e, this.left, 'left'); + }, + handleRight (e) { + this.handleSlide(e, this.right, 'right'); + }, + handleUp (e) { + this.handleSlide(e, this.up, 'up'); + }, + handleDown (e) { + this.handleSlide(e, this.down, 'down'); + }, + handleMouseDown (e) { + this.ColorPickerInstance.handleOnDragging(true); + this.handleChange(e, true); + // window.addEventListener('mousemove', this.handleChange, false); + // window.addEventListener('mouseup', this.handleMouseUp, false); + on(window, 'mousemove', this.handleChange); + on(window, 'mouseup', this.handleMouseUp); + }, + handleMouseUp () { + this.unbindEventListeners(); + }, + unbindEventListeners () { + // window.removeEventListener('mousemove', this.handleChange); + // window.removeEventListener('mouseup', this.handleMouseUp); + off(window, 'mousemove', this.handleChange); + off(window, 'mouseup', this.handleMouseUp); + // This timeout is required so that the click handler for click-outside + // has the chance to run before the mouseup removes the dragging flag. + setTimeout(() => this.ColorPickerInstance.handleOnDragging(false), 1); + }, + getLeft (e) { + if (!isClient) return; + const {container} = this.$refs; + const xOffset = container.getBoundingClientRect().left + window.pageXOffset; + const pageX = e.pageX || getTouches(e, 'PageX'); + + return pageX - xOffset; + }, + getTop (e) { + if (!isClient) return; + const {container} = this.$refs; + const yOffset = container.getBoundingClientRect().top + window.pageYOffset; + const pageY = e.pageY || getTouches(e, 'PageY'); + + return pageY - yOffset; + } + } +}; diff --git a/src/components/color-picker/hue.vue b/src/components/color-picker/hue.vue new file mode 100644 index 0000000000000000000000000000000000000000..faeced2a22ff91485726c83466e1fa11efee0d27 --- /dev/null +++ b/src/components/color-picker/hue.vue @@ -0,0 +1,97 @@ + + diff --git a/src/components/color-picker/index.js b/src/components/color-picker/index.js new file mode 100644 index 0000000000000000000000000000000000000000..f6e20a6249b2ba2abee0d6c288e42b42e41b1566 --- /dev/null +++ b/src/components/color-picker/index.js @@ -0,0 +1,3 @@ +import ColorPicker from './color-picker.vue'; + +export default ColorPicker; diff --git a/src/components/color-picker/prefixMixin.js b/src/components/color-picker/prefixMixin.js new file mode 100644 index 0000000000000000000000000000000000000000..84e66d47ba3623dea4a1ed9a7d4a11924befcd10 --- /dev/null +++ b/src/components/color-picker/prefixMixin.js @@ -0,0 +1,10 @@ +export default { + data() { + return { + prefixCls: 'ivu-color-picker', + inputPrefixCls: 'ivu-input', + iconPrefixCls: 'ivu-icon', + transferPrefixCls: 'ivu-transfer', + }; + } +}; diff --git a/src/components/color-picker/recommend-colors.vue b/src/components/color-picker/recommend-colors.vue new file mode 100644 index 0000000000000000000000000000000000000000..40f04780f1222fe14a876f4ba0199e1402f3c177 --- /dev/null +++ b/src/components/color-picker/recommend-colors.vue @@ -0,0 +1,140 @@ + + diff --git a/src/components/color-picker/saturation.vue b/src/components/color-picker/saturation.vue new file mode 100644 index 0000000000000000000000000000000000000000..65463d2e7760450414c20cc65e39f421fef62a2b --- /dev/null +++ b/src/components/color-picker/saturation.vue @@ -0,0 +1,98 @@ + + diff --git a/src/components/color-picker/utils.js b/src/components/color-picker/utils.js new file mode 100644 index 0000000000000000000000000000000000000000..209bd722f4107b03e9227c58fd0d526dd32f43f6 --- /dev/null +++ b/src/components/color-picker/utils.js @@ -0,0 +1,118 @@ +import tinycolor from 'tinycolor2'; +import { oneOf } from '../../utils/assist'; + +function setAlpha(data, alpha) { + const color = tinycolor(data); + const {_a} = color; + + if (_a === undefined || _a === null) { + color.setAlpha(alpha || 1); + } + + return color; +} + +function getColor(data, colorData) { + const alpha = colorData && colorData.a; + + if (colorData) { + // hsl is better than hex between conversions + if (colorData.hsl) { + return setAlpha(colorData.hsl, alpha); + } + + if (colorData.hex && colorData.hex.length > 0) { + return setAlpha(colorData.hex, alpha); + } + } + + return setAlpha(colorData, alpha); +} + +export function changeColor(data, oldHue) { + const colorData = data === '' ? '#2d8cf0' : data; + const color = getColor(data, colorData); + const hsl = color.toHsl(); + const hsv = color.toHsv(); + + if (hsl.s === 0) { + hsl.h = colorData.h || (colorData.hsl && colorData.hsl.h) || oldHue || 0; + hsv.h = hsl.h; + } + + // when the hsv.v is less than 0.0164 (base on test) + // because of possible loss of precision + // the result of hue and saturation would be miscalculated + if (hsv.v < 0.0164) { + hsv.h = colorData.h || (colorData.hsv && colorData.hsv.h) || 0; + hsv.s = colorData.s || (colorData.hsv && colorData.hsv.s) || 0; + } + + if (hsl.l < 0.01) { + hsl.h = colorData.h || (colorData.hsl && colorData.hsl.h) || 0; + hsl.s = colorData.s || (colorData.hsl && colorData.hsl.s) || 0; + } + + return { + hsl, + hex: color.toHexString().toUpperCase(), + rgba: color.toRgb(), + hsv, + oldHue: colorData.h || oldHue || hsl.h, + source: colorData.source, + a: colorData.a || color.getAlpha(), + }; +} + +export function clamp(value, min, max) { + if (value < min) { + return min; + } + + if (value > max) { + return max; + } + + return value; +} + +export function getIncrement(key, keys, increment) { + return oneOf(key, keys) ? increment : 0; +} + +export function getTouches(e, prop) { + return e.touches ? e.touches[0][prop] : 0; +} + +export function toRGBAString(rgba) { + const {r, g, b, a} = rgba; + + return `rgba(${[r, g, b, a].join(',')})`; +} + +export function isValidHex(hex) { + return tinycolor(hex).isValid(); +} + +function checkIteratee(data, counts, letter) { + let {checked, passed} = counts; + const value = data[letter]; + + if (value) { + checked += 1; + + if (Number.isFinite(value)) { + passed += 1; + } + } + + return {checked, passed}; +} + +const keysToCheck = ['r', 'g', 'b', 'a', 'h', 's', 'l', 'v']; + +export function simpleCheckForValidColor(data) { + const results = keysToCheck.reduce(checkIteratee.bind(null, data), {checked: 0, passed: 0}); + + return results.checked === results.passed ? data : undefined; +} diff --git a/src/components/content/index.js b/src/components/content/index.js new file mode 100644 index 0000000000000000000000000000000000000000..9ed1cb4302bdea5f9bd64042e8d998f11497e6b5 --- /dev/null +++ b/src/components/content/index.js @@ -0,0 +1,3 @@ +import Content from '../layout/content.vue'; + +export default Content; diff --git a/src/components/copy/index.js b/src/components/copy/index.js new file mode 100644 index 0000000000000000000000000000000000000000..fef4287db3fe9ee9f48b967a9a8e0c0ad484ae5a --- /dev/null +++ b/src/components/copy/index.js @@ -0,0 +1,48 @@ +import select from 'select'; +import $Message from '../message'; +import { isClient } from '../../utils/index'; + +const defaultSuccessTip = '复制成功'; +const defaultErrorTip = '复制失败'; + +export default function ({ text = '', successTip = defaultSuccessTip, errorTip = defaultErrorTip, success, error, showTip = true }) { + if (!isClient) return; + const isRTL = document.documentElement.getAttribute('dir') === 'rtl'; + const $textarea = document.createElement('textarea'); + $textarea.style.fontSize = '12pt'; + $textarea.style.border = '0'; + $textarea.style.padding = '0'; + $textarea.style.margin = '0'; + $textarea.style.position = 'absolute'; + $textarea.style[isRTL ? 'right' : 'left'] = '-9999px'; + let yPosition = window.pageYOffset || document.documentElement.scrollTop; + $textarea.style.top = `${yPosition}px`; + $textarea.setAttribute('readonly', ''); + $textarea.value = text; + document.body.appendChild($textarea); + + select($textarea); + + let succeeded; // eslint-disable-line + + try { + succeeded = document.execCommand('copy'); + if (showTip) { + $Message.success({ + content: successTip + }); + } + document.body.removeChild($textarea); + if (success) success.call(); + } catch (err) { + succeeded = false; + + if (showTip) { + $Message.error({ + content: errorTip + }); + } + document.body.removeChild($textarea); + if (error) error.call(); + } +} diff --git a/src/components/count-down/count-down.vue b/src/components/count-down/count-down.vue new file mode 100644 index 0000000000000000000000000000000000000000..ad5fbf8b0645b18301dba7932a279d0ef810f3c8 --- /dev/null +++ b/src/components/count-down/count-down.vue @@ -0,0 +1,98 @@ + + diff --git a/src/components/count-down/index.js b/src/components/count-down/index.js new file mode 100644 index 0000000000000000000000000000000000000000..e2a2dd94fe743cf5d69e844769e472236142da50 --- /dev/null +++ b/src/components/count-down/index.js @@ -0,0 +1,2 @@ +import CountDown from './count-down.vue'; +export default CountDown; \ No newline at end of file diff --git a/src/components/count-up/count-up.vue b/src/components/count-up/count-up.vue new file mode 100644 index 0000000000000000000000000000000000000000..918982f4591c98b4623f9e0b3bb483ecee175e46 --- /dev/null +++ b/src/components/count-up/count-up.vue @@ -0,0 +1,106 @@ + + diff --git a/src/components/count-up/index.js b/src/components/count-up/index.js new file mode 100644 index 0000000000000000000000000000000000000000..6b7241f506eafdce604e57b3444703f61207a411 --- /dev/null +++ b/src/components/count-up/index.js @@ -0,0 +1,2 @@ +import CountUp from './count-up.vue'; +export default CountUp; \ No newline at end of file diff --git a/src/components/date-picker/base/confirm.vue b/src/components/date-picker/base/confirm.vue new file mode 100644 index 0000000000000000000000000000000000000000..896c58ca5beff464602c842e2e4b6753e90b52f0 --- /dev/null +++ b/src/components/date-picker/base/confirm.vue @@ -0,0 +1,83 @@ + + diff --git a/src/components/date-picker/base/date-table.vue b/src/components/date-picker/base/date-table.vue new file mode 100644 index 0000000000000000000000000000000000000000..3689f4e6264f29928887c237a0d6c1c202f85259 --- /dev/null +++ b/src/components/date-picker/base/date-table.vue @@ -0,0 +1,111 @@ + + diff --git a/src/components/date-picker/base/mixin.js b/src/components/date-picker/base/mixin.js new file mode 100644 index 0000000000000000000000000000000000000000..8f57d2f87dfe258b3112f560dd5a964dba0c52be --- /dev/null +++ b/src/components/date-picker/base/mixin.js @@ -0,0 +1,87 @@ +import { clearHours } from '../util'; +import random from '../../../utils/random_str'; + +export default { + name: 'PanelTable', + emits: ['on-pick', 'on-pick-click', 'on-change-range'], + inject: ['PickerInstance'], + props: { + tableDate: { + type: Date, + required: true + }, + disabledDate: { + type: Function + }, + selectionMode: { + type: String, + required: true + }, + modelValue: { + type: Array, + required: true + }, + rangeState: { + type: Object, + default: () => ({ + from: null, + to: null, + selecting: false + }) + }, + focusedDate: { + type: Date, + required: true, + } + }, + data () { + return { + id: random(6) + } + }, + computed: { + dates () { + const { selectionMode, modelValue, rangeState } = this; + const rangeSelecting = selectionMode === 'range' && rangeState.selecting; + return rangeSelecting ? [rangeState.from] : modelValue; + } + }, + methods: { + handleClick (cell, e) { + e.stopPropagation(); + + if (cell.disabled || cell.type === 'weekLabel') return; + const newDate = new Date(clearHours(cell.date)); + + this.$emit('on-pick', newDate); + this.$emit('on-pick-click'); + }, + handleMouseMove (cell) { + if (!this.rangeState.selecting) return; + if (cell.disabled) return; + const newDate = cell.date; + this.$emit('on-change-range', newDate); + }, + addPanelTable () { + const root = this.PickerInstance; + if (!root.panelTableList) root.panelTableList = []; + root.panelTableList.push({ + id: this.id, + panelTable: this + }); + }, + removePanelTable () { + const root = this.PickerInstance; + if (root.panelTableList && root.panelTableList.length) { + const index = root.panelTableList.findIndex(item => item.id === this.id); + root.panelTableList.splice(index, 1); + } + } + }, + mounted () { + this.addPanelTable(); + }, + beforeUnmount () { + this.removePanelTable(); + } +}; diff --git a/src/components/date-picker/base/month-table.vue b/src/components/date-picker/base/month-table.vue new file mode 100644 index 0000000000000000000000000000000000000000..96ebbe7c9a9e134cb23013cb09d1e3491b599eae --- /dev/null +++ b/src/components/date-picker/base/month-table.vue @@ -0,0 +1,75 @@ + + diff --git a/src/components/date-picker/base/prefixCls.js b/src/components/date-picker/base/prefixCls.js new file mode 100644 index 0000000000000000000000000000000000000000..5de0a7ad860aedad2f5b2d3f047fdaa8f42b7557 --- /dev/null +++ b/src/components/date-picker/base/prefixCls.js @@ -0,0 +1 @@ +export default 'ivu-date-picker-cells'; diff --git a/src/components/date-picker/base/time-spinner.vue b/src/components/date-picker/base/time-spinner.vue new file mode 100644 index 0000000000000000000000000000000000000000..e299ec357891e553d0591a6cfe41e0bc15cb1015 --- /dev/null +++ b/src/components/date-picker/base/time-spinner.vue @@ -0,0 +1,261 @@ + + diff --git a/src/components/date-picker/base/year-table.vue b/src/components/date-picker/base/year-table.vue new file mode 100644 index 0000000000000000000000000000000000000000..f5d44d4b68d2ddd5cd06f508d29e8d380587d9a7 --- /dev/null +++ b/src/components/date-picker/base/year-table.vue @@ -0,0 +1,72 @@ + + diff --git a/src/components/date-picker/index.js b/src/components/date-picker/index.js new file mode 100644 index 0000000000000000000000000000000000000000..2f1e3f694c7d010a93bd5c026a1c67cc97379984 --- /dev/null +++ b/src/components/date-picker/index.js @@ -0,0 +1,3 @@ +import DatePicker from './picker/date-picker'; + +export default DatePicker; \ No newline at end of file diff --git a/src/components/date-picker/panel/Date/date-panel-label.vue b/src/components/date-picker/panel/Date/date-panel-label.vue new file mode 100644 index 0000000000000000000000000000000000000000..91f0fc4e245562532452306018b24f7d520d2134 --- /dev/null +++ b/src/components/date-picker/panel/Date/date-panel-label.vue @@ -0,0 +1,25 @@ + + + diff --git a/src/components/date-picker/panel/Date/date-panel-mixin.js b/src/components/date-picker/panel/Date/date-panel-mixin.js new file mode 100644 index 0000000000000000000000000000000000000000..d64c01f7b34062474bac8c11396413817c21d4fb --- /dev/null +++ b/src/components/date-picker/panel/Date/date-panel-mixin.js @@ -0,0 +1,64 @@ +import { oneOf } from '../../../../utils/assist'; +import { initTimeDate } from '../../util'; + + +export default { + props: { + showTime: { + type: Boolean, + default: false + }, + format: { + type: String, + default: 'yyyy-MM-dd' + }, + selectionMode: { + type: String, + validator (value) { + return oneOf(value, ['year', 'month', 'date', 'time']); + }, + default: 'date' + }, + shortcuts: { + type: Array, + default: () => [] + }, + disabledDate: { + type: Function, + default: () => false + }, + modelValue: { + type: Array, + default: () => [initTimeDate(), initTimeDate()] + }, + timePickerOptions: { + default: () => ({}), + type: Object, + }, + showWeekNumbers: { + type: Boolean, + default: false + }, + startDate: { + type: Date + }, + pickerType: { + type: String, + require: true + }, + focusedDate: { + type: Date, + required: true, + } + }, + computed: { + isTime(){ + return this.currentView === 'time'; + } + }, + methods: { + handleToggleTime(){ + this.currentView = this.currentView === 'time' ? 'date' : 'time'; + }, + } +}; diff --git a/src/components/date-picker/panel/Date/date-range.vue b/src/components/date-picker/panel/Date/date-range.vue new file mode 100644 index 0000000000000000000000000000000000000000..e0f1d15c2f52c386777ebd840611c54a1141f9af --- /dev/null +++ b/src/components/date-picker/panel/Date/date-range.vue @@ -0,0 +1,384 @@ + + diff --git a/src/components/date-picker/panel/Date/date.vue b/src/components/date-picker/panel/Date/date.vue new file mode 100644 index 0000000000000000000000000000000000000000..774862fc4953f10008db1062758067464b5828f1 --- /dev/null +++ b/src/components/date-picker/panel/Date/date.vue @@ -0,0 +1,216 @@ + + diff --git a/src/components/date-picker/panel/Time/time-range.vue b/src/components/date-picker/panel/Time/time-range.vue new file mode 100644 index 0000000000000000000000000000000000000000..c88eb43c1fd0efbd6d648194be9f0a8de48a337b --- /dev/null +++ b/src/components/date-picker/panel/Time/time-range.vue @@ -0,0 +1,164 @@ + + diff --git a/src/components/date-picker/panel/Time/time.vue b/src/components/date-picker/panel/Time/time.vue new file mode 100644 index 0000000000000000000000000000000000000000..9768440ad2ca5450999065327e932aa2277ae878 --- /dev/null +++ b/src/components/date-picker/panel/Time/time.vue @@ -0,0 +1,147 @@ + + diff --git a/src/components/date-picker/panel/panel-mixin.js b/src/components/date-picker/panel/panel-mixin.js new file mode 100644 index 0000000000000000000000000000000000000000..7c8b4260a2961d01bd4b9d6f24b85db64039f919 --- /dev/null +++ b/src/components/date-picker/panel/panel-mixin.js @@ -0,0 +1,57 @@ +const prefixCls = 'ivu-picker-panel'; +const datePrefixCls = 'ivu-date-picker'; + +export default { + emits: ['on-pick-clear', 'on-pick-success', 'on-pick-click', 'on-pick'], + props: { + confirm: { + type: Boolean, + default: false + } + }, + methods: { + iconBtnCls (direction, type = '') { + return [ + `${prefixCls}-icon-btn`, + `${datePrefixCls}-${direction}-btn`, + `${datePrefixCls}-${direction}-btn-arrow${type}`, + ]; + }, + handleShortcutClick (shortcut) { + if (shortcut.value) this.$emit('on-pick', shortcut.value()); + if (shortcut.onClick) shortcut.onClick(this); + }, + handlePickClear () { + this.resetView(); + this.$emit('on-pick-clear'); + }, + handlePickSuccess () { + this.resetView(); + this.$emit('on-pick-success'); + }, + handlePickClick () { + this.$emit('on-pick-click'); + }, + resetView(){ + setTimeout( + () => this.currentView = this.selectionMode, + 500 // 500ms so the dropdown can close before changing + ); + }, + handleClear() { + this.dates = this.dates.map(() => null); + this.rangeState = {}; + this.$emit('on-pick', this.dates); + this.handleConfirm(); + // if (this.showTime) this.$refs.timePicker.handleClear(); + }, + handleConfirm(visible, type) { + this.$emit('on-pick', this.dates, visible, type || this.type); + }, + onToggleVisibility(open){ + const {timeSpinner, timeSpinnerEnd} = this.$refs; + if (open && timeSpinner) timeSpinner.updateScroll(); + if (open && timeSpinnerEnd) timeSpinnerEnd.updateScroll(); + } + } +}; diff --git a/src/components/date-picker/picker.vue b/src/components/date-picker/picker.vue new file mode 100644 index 0000000000000000000000000000000000000000..c2d3866395651d79c32c99d4a514e62bafb3f15d --- /dev/null +++ b/src/components/date-picker/picker.vue @@ -0,0 +1,846 @@ + + diff --git a/src/components/date-picker/picker/date-picker.js b/src/components/date-picker/picker/date-picker.js new file mode 100644 index 0000000000000000000000000000000000000000..8079121bc74f6e4d59703828450de50ecc4b9586 --- /dev/null +++ b/src/components/date-picker/picker/date-picker.js @@ -0,0 +1,28 @@ +import Picker from '../picker.vue'; +import DatePickerPanel from '../panel/Date/date.vue'; +import RangeDatePickerPanel from '../panel/Date/date-range.vue'; + +import { oneOf } from '../../../utils/assist'; + +export default { + name: 'CalendarPicker', + mixins: [ Picker ], + props: { + type: { + validator (value) { + return oneOf(value, ['year', 'month', 'date', 'daterange', 'datetime', 'datetimerange']); + }, + default: 'date' + }, + }, + components: { DatePickerPanel, RangeDatePickerPanel }, + computed: { + panel () { + const isRange = this.type === 'daterange' || this.type === 'datetimerange'; + return isRange ? 'RangeDatePickerPanel' : 'DatePickerPanel'; + }, + ownPickerProps () { + return this.options; + } + }, +}; diff --git a/src/components/date-picker/picker/time-picker.js b/src/components/date-picker/picker/time-picker.js new file mode 100644 index 0000000000000000000000000000000000000000..b05e7d9af6adebeb1ff5d0255484bdb82950dd86 --- /dev/null +++ b/src/components/date-picker/picker/time-picker.js @@ -0,0 +1,44 @@ +import { nextTick } from 'vue'; +import Picker from '../picker.vue'; +import TimePickerPanel from '../panel/Time/time.vue'; +import RangeTimePickerPanel from '../panel/Time/time-range.vue'; +import Options from '../time-mixins'; + +import { oneOf } from '../../../utils/assist'; + +export default { + mixins: [ Picker, Options ], + components: { TimePickerPanel, RangeTimePickerPanel }, + props: { + type: { + validator (value) { + return oneOf(value, ['time', 'timerange']); + }, + default: 'time' + }, + }, + computed: { + panel () { + const isRange = this.type === 'timerange'; + return isRange ? 'RangeTimePickerPanel' : 'TimePickerPanel'; + }, + ownPickerProps () { + return { + disabledHours: this.disabledHours, + disabledMinutes: this.disabledMinutes, + disabledSeconds: this.disabledSeconds, + hideDisabledOptions: this.hideDisabledOptions + }; + } + }, + watch: { + visible (visible) { + if (visible) { + nextTick(() => { + const spinners = this.timeSpinnerList.map(item => item.timeSpinner); + spinners.forEach(instance => instance.updateScroll()); + }); + } + } + } +}; diff --git a/src/components/date-picker/time-mixins.js b/src/components/date-picker/time-mixins.js new file mode 100644 index 0000000000000000000000000000000000000000..63a3efafe12cee1a2f06dd7bfb6231d5a8936919 --- /dev/null +++ b/src/components/date-picker/time-mixins.js @@ -0,0 +1,26 @@ +export default { + props: { + disabledHours: { + type: Array, + default () { + return []; + } + }, + disabledMinutes: { + type: Array, + default () { + return []; + } + }, + disabledSeconds: { + type: Array, + default () { + return []; + } + }, + hideDisabledOptions: { + type: Boolean, + default: false + } + } +}; \ No newline at end of file diff --git a/src/components/date-picker/util.js b/src/components/date-picker/util.js new file mode 100644 index 0000000000000000000000000000000000000000..7a05bbb3d1a3b75acbd04e6fabe8a59f01df05d3 --- /dev/null +++ b/src/components/date-picker/util.js @@ -0,0 +1,258 @@ +import dateUtil from '../../utils/date'; + +export const toDate = function(date) { + let _date = new Date(date); + // IE patch start (#1422) + if (isNaN(_date.getTime()) && typeof date === 'string'){ + _date = date.split('-').map(Number); + _date[1] += 1; + _date = new Date(..._date); + } + // IE patch end + + if (isNaN(_date.getTime())) return null; + return _date; +}; + +export const clearHours = function (time) { + const cloneDate = new Date(time); + cloneDate.setHours(0, 0, 0, 0); + return cloneDate.getTime(); +}; + +export const isInRange = (time, a, b) => { + if (!a || !b) return false; + const [start, end] = [a, b].sort(); + return time >= start && time <= end; +}; + +export const formatDate = function(date, format) { + date = toDate(date); + if (!date) return ''; + return dateUtil.format(date, format || 'yyyy-MM-dd'); +}; + +export const parseDate = function(string, format) { + return dateUtil.parse(string, format || 'yyyy-MM-dd'); +}; + +export const getDayCountOfMonth = function(year, month) { + return new Date(year, month + 1, 0).getDate(); +}; + +export const getFirstDayOfMonth = function(date) { + const temp = new Date(date.getTime()); + temp.setDate(1); + return temp.getDay(); +}; + +export const siblingMonth = function(src, diff) { + const temp = new Date(src); // lets copy it so we don't change the original + const newMonth = temp.getMonth() + diff; + const newMonthDayCount = getDayCountOfMonth(temp.getFullYear(), newMonth); + if (newMonthDayCount < temp.getDate()) { + temp.setDate(newMonthDayCount); + } + temp.setMonth(newMonth); + + return temp; +}; + +export const prevMonth = function(src) { + return siblingMonth(src, -1); +}; + +export const nextMonth = function(src) { + return siblingMonth(src, 1); +}; + +export const initTimeDate = function() { + const date = new Date(); + date.setHours(0); + date.setMinutes(0); + date.setSeconds(0); + return date; +}; + +export const formatDateLabels = (function() { + /* + Formats: + yyyy - 4 digit year + m - month, numeric, 1 - 12 + mm - month, numeric, 01 - 12 + mmm - month, 3 letters, as in `toLocaleDateString` + Mmm - month, 3 letters, capitalize the return from `toLocaleDateString` + mmmm - month, full name, as in `toLocaleDateString` + Mmmm - month, full name, capitalize the return from `toLocaleDateString` + */ + + const formats = { + yyyy: date => date.getFullYear(), + m: date => date.getMonth() + 1, + mm: date => ('0' + (date.getMonth() + 1)).slice(-2), + mmm: (date, locale) => { + const monthName = date.toLocaleDateString(locale, { + month: 'long' + }); + return monthName.slice(0, 3); + }, + Mmm: (date, locale) => { + const monthName = date.toLocaleDateString(locale, { + month: 'long' + }); + return (monthName[0].toUpperCase() + monthName.slice(1).toLowerCase()).slice(0, 3); + }, + mmmm: (date, locale) => + date.toLocaleDateString(locale, { + month: 'long' + }), + Mmmm: (date, locale) => { + const monthName = date.toLocaleDateString(locale, { + month: 'long' + }); + return monthName[0].toUpperCase() + monthName.slice(1).toLowerCase(); + } + }; + const formatRegex = new RegExp(['yyyy', 'Mmmm', 'mmmm', 'Mmm', 'mmm', 'mm', 'm'].join('|'), 'g'); + + return function(locale, format, date) { + const componetsRegex = /(\[[^\]]+\])([^\[\]]+)(\[[^\]]+\])/; + const components = format.match(componetsRegex).slice(1); + const separator = components[1]; + const labels = [components[0], components[2]].map(component => { + const label = component.replace(/\[[^\]]+\]/, str => { + return str.slice(1, -1).replace(formatRegex, match => formats[match](date, locale)); + }); + return { + label: label, + type: component.indexOf('yy') != -1 ? 'year' : 'month' + }; + }); + return { + separator: separator, + labels: labels + }; + }; +})(); + +// Parsers and Formaters +export const DEFAULT_FORMATS = { + date: 'yyyy-MM-dd', + month: 'yyyy-MM', + year: 'yyyy', + datetime: 'yyyy-MM-dd HH:mm:ss', + time: 'HH:mm:ss', + timerange: 'HH:mm:ss', + daterange: 'yyyy-MM-dd', + datetimerange: 'yyyy-MM-dd HH:mm:ss' +}; + +// export const RANGE_SEPARATOR = ' - '; // use picker.vue prop separator + +const DATE_FORMATTER = function(value, format) { + return formatDate(value, format); +}; +const DATE_PARSER = function(text, format) { + return parseDate(text, format); +}; +const RANGE_FORMATTER = function(value, format, RANGE_SEPARATOR) { + if (Array.isArray(value) && value.length === 2) { + const start = value[0]; + const end = value[1]; + + if (start && end) { + return formatDate(start, format) + RANGE_SEPARATOR + formatDate(end, format); + } + } else if (!Array.isArray(value) && value instanceof Date){ + return formatDate(value, format); + } + return ''; +}; +const RANGE_PARSER = function(text, format, RANGE_SEPARATOR) { + const array = Array.isArray(text) ? text : text.split(RANGE_SEPARATOR); + if (array.length === 2) { + const range1 = array[0]; + const range2 = array[1]; + + return [ + range1 instanceof Date ? range1 : parseDate(range1, format), + range2 instanceof Date ? range2 : parseDate(range2, format), + ]; + } + return []; +}; + +export const TYPE_VALUE_RESOLVER_MAP = { + default: { + formatter(value) { + if (!value) return ''; + return '' + value; + }, + parser(text) { + if (text === undefined || text === '') return null; + return text; + } + }, + date: { + formatter: DATE_FORMATTER, + parser: DATE_PARSER + }, + datetime: { + formatter: DATE_FORMATTER, + parser: DATE_PARSER + }, + daterange: { + formatter: RANGE_FORMATTER, + parser: RANGE_PARSER + }, + datetimerange: { + formatter: RANGE_FORMATTER, + parser: RANGE_PARSER + }, + timerange: { + formatter: RANGE_FORMATTER, + parser: RANGE_PARSER + }, + time: { + formatter: DATE_FORMATTER, + parser: DATE_PARSER + }, + month: { + formatter: DATE_FORMATTER, + parser: DATE_PARSER + }, + year: { + formatter: DATE_FORMATTER, + parser: DATE_PARSER + }, + multiple: { + formatter: (value, format) => { + return value.filter(Boolean).map(date => formatDate(date, format)).join(','); + }, + parser: (value, format) => { + const values = typeof value === 'string' ? value.split(',') : value; + return values.map(value => { + if (value instanceof Date) return value; + if (typeof value === 'string') value = value.trim(); + else if (typeof value !== 'number' && !value) value = ''; + return parseDate(value, format); + }); + } + }, + number: { + formatter(value) { + if (!value) return ''; + return '' + value; + }, + parser(text) { + let result = Number(text); + + if (!isNaN(text)) { + return result; + } else { + return null; + } + } + } +}; + diff --git a/src/components/description-list/description-list.vue b/src/components/description-list/description-list.vue new file mode 100644 index 0000000000000000000000000000000000000000..f5968e5233517e59ba9fe41ad3a115c0a9c94005 --- /dev/null +++ b/src/components/description-list/description-list.vue @@ -0,0 +1,43 @@ + + diff --git a/src/components/description-list/description.vue b/src/components/description-list/description.vue new file mode 100644 index 0000000000000000000000000000000000000000..5925366dcc5e72b6c8848c1813cdcf26d956b068 --- /dev/null +++ b/src/components/description-list/description.vue @@ -0,0 +1,53 @@ + diff --git a/src/components/description-list/index.js b/src/components/description-list/index.js new file mode 100644 index 0000000000000000000000000000000000000000..8a2bad76f6067dc23d7231aaac9a6f1e34891f72 --- /dev/null +++ b/src/components/description-list/index.js @@ -0,0 +1,3 @@ +import DescriptionList from './description-list.vue'; + +export default DescriptionList; diff --git a/src/components/description-list/responsive.js b/src/components/description-list/responsive.js new file mode 100644 index 0000000000000000000000000000000000000000..68a03e18351a8e7a5a9499c86b6238ae7b769a91 --- /dev/null +++ b/src/components/description-list/responsive.js @@ -0,0 +1,6 @@ +export default { + 1: { xs: 24 }, + 2: { xs: 24, sm: 12 }, + 3: { xs: 24, sm: 12, md: 8 }, + 4: { xs: 24, sm: 12, md: 6 }, +}; diff --git a/src/components/description/index.js b/src/components/description/index.js new file mode 100644 index 0000000000000000000000000000000000000000..65d939ec86e331a66a77a9f4ce9a9484177d8cec --- /dev/null +++ b/src/components/description/index.js @@ -0,0 +1,3 @@ +import Description from '../description-list/description.vue'; + +export default Description; diff --git a/src/components/divider/divider.vue b/src/components/divider/divider.vue new file mode 100644 index 0000000000000000000000000000000000000000..69c8105535a4ef1ba5c609647ed21e241a3bc0fc --- /dev/null +++ b/src/components/divider/divider.vue @@ -0,0 +1,71 @@ + + + diff --git a/src/components/divider/index.js b/src/components/divider/index.js new file mode 100644 index 0000000000000000000000000000000000000000..e4e866662bb9a606ca8eca42e445d2e6712f4b06 --- /dev/null +++ b/src/components/divider/index.js @@ -0,0 +1,3 @@ +import Divider from './divider.vue'; + +export default Divider; \ No newline at end of file diff --git a/src/components/drawer/drawer.vue b/src/components/drawer/drawer.vue new file mode 100644 index 0000000000000000000000000000000000000000..b21a5d9a123fa7301f28c26d99315fb70f808704 --- /dev/null +++ b/src/components/drawer/drawer.vue @@ -0,0 +1,381 @@ + + diff --git a/src/components/drawer/index.js b/src/components/drawer/index.js new file mode 100644 index 0000000000000000000000000000000000000000..7850291761afc1f661ca486eb6b1f09b3c7c1f6f --- /dev/null +++ b/src/components/drawer/index.js @@ -0,0 +1,3 @@ +import Drawer from './drawer.vue'; + +export default Drawer; \ No newline at end of file diff --git a/src/components/dropdown-item/index.js b/src/components/dropdown-item/index.js new file mode 100644 index 0000000000000000000000000000000000000000..2816d0b387594728d00f3553dcf3b68ebeaf22a8 --- /dev/null +++ b/src/components/dropdown-item/index.js @@ -0,0 +1,3 @@ +import DropdownItem from '../dropdown/dropdown-item.vue'; + +export default DropdownItem; diff --git a/src/components/dropdown-menu/index.js b/src/components/dropdown-menu/index.js new file mode 100644 index 0000000000000000000000000000000000000000..ce40286f9d673a2688b97a649454548a6b2b5991 --- /dev/null +++ b/src/components/dropdown-menu/index.js @@ -0,0 +1,3 @@ +import DropdownMenu from '../dropdown/dropdown-menu.vue'; + +export default DropdownMenu; diff --git a/src/components/dropdown/dropdown-item.vue b/src/components/dropdown/dropdown-item.vue new file mode 100644 index 0000000000000000000000000000000000000000..930930f54337ea353b56a495f0af1f4ed97a81e7 --- /dev/null +++ b/src/components/dropdown/dropdown-item.vue @@ -0,0 +1,57 @@ + + diff --git a/src/components/dropdown/dropdown-menu.vue b/src/components/dropdown/dropdown-menu.vue new file mode 100644 index 0000000000000000000000000000000000000000..4abb3c2833866cf292b50385ef9cdc06a62a9846 --- /dev/null +++ b/src/components/dropdown/dropdown-menu.vue @@ -0,0 +1,8 @@ + + diff --git a/src/components/dropdown/dropdown.vue b/src/components/dropdown/dropdown.vue new file mode 100644 index 0000000000000000000000000000000000000000..027572bf9ec325876863f35d539fb813526be46e --- /dev/null +++ b/src/components/dropdown/dropdown.vue @@ -0,0 +1,220 @@ + + diff --git a/src/components/dropdown/index.js b/src/components/dropdown/index.js new file mode 100644 index 0000000000000000000000000000000000000000..ca248edb75d6f4753ba714d6733eed59e6802993 --- /dev/null +++ b/src/components/dropdown/index.js @@ -0,0 +1,3 @@ +import Dropdown from './dropdown.vue'; + +export default Dropdown; diff --git a/src/components/ellipsis/ellipsis.vue b/src/components/ellipsis/ellipsis.vue new file mode 100644 index 0000000000000000000000000000000000000000..85d50f1cb209f7e34f09c35567e8033d4de5dc0e --- /dev/null +++ b/src/components/ellipsis/ellipsis.vue @@ -0,0 +1,212 @@ + + diff --git a/src/components/ellipsis/index.js b/src/components/ellipsis/index.js new file mode 100644 index 0000000000000000000000000000000000000000..e9d6c903af50406c725db8be030d9df85f27d4cc --- /dev/null +++ b/src/components/ellipsis/index.js @@ -0,0 +1,2 @@ +import Ellipsis from './ellipsis.vue'; +export default Ellipsis; \ No newline at end of file diff --git a/src/components/email/index.js b/src/components/email/index.js new file mode 100644 index 0000000000000000000000000000000000000000..b440d7afb75c2c2172b9db82c1629dea53792149 --- /dev/null +++ b/src/components/email/index.js @@ -0,0 +1,3 @@ +import Email from '../login/email.vue'; + +export default Email; diff --git a/src/components/exception/exception.vue b/src/components/exception/exception.vue new file mode 100644 index 0000000000000000000000000000000000000000..865899acffe40821170eb878b905a5b85051609a --- /dev/null +++ b/src/components/exception/exception.vue @@ -0,0 +1,65 @@ + + diff --git a/src/components/exception/index.js b/src/components/exception/index.js new file mode 100644 index 0000000000000000000000000000000000000000..69705b41953d1a317ae15a6dac08dd0daf2ffe50 --- /dev/null +++ b/src/components/exception/index.js @@ -0,0 +1,2 @@ +import Exception from './exception.vue'; +export default Exception; \ No newline at end of file diff --git a/src/components/exception/typeConfig.js b/src/components/exception/typeConfig.js new file mode 100644 index 0000000000000000000000000000000000000000..379909374821b50fbcb05075bc33a154843d7106 --- /dev/null +++ b/src/components/exception/typeConfig.js @@ -0,0 +1,20 @@ +export default { + 403: { + img: 'https://file.iviewui.com/iview-pro/icon-403.svg', + imgColor: 'https://file.iviewui.com/iview-pro/icon-403-color.svg', + title: '403', + desc: '抱歉,你无权访问该页面', + }, + 404: { + img: 'https://file.iviewui.com/iview-pro/icon-404.svg', + imgColor: 'https://file.iviewui.com/iview-pro/icon-404-color.svg', + title: '404', + desc: '抱歉,你访问的页面不存在', + }, + 500: { + img: 'https://file.iviewui.com/iview-pro/icon-500.svg', + imgColor: 'https://file.iviewui.com/iview-pro/icon-500-color.svg', + title: '500', + desc: '抱歉,服务器出错了', + }, +}; diff --git a/src/components/footer-toolbar/footer-toolbar.vue b/src/components/footer-toolbar/footer-toolbar.vue new file mode 100644 index 0000000000000000000000000000000000000000..82c84248eece3048f456210fc6e874d8806afe15 --- /dev/null +++ b/src/components/footer-toolbar/footer-toolbar.vue @@ -0,0 +1,17 @@ + + \ No newline at end of file diff --git a/src/components/footer-toolbar/index.js b/src/components/footer-toolbar/index.js new file mode 100644 index 0000000000000000000000000000000000000000..dd70ea316ae3cabe19f1de8ae8132ff2340d42d4 --- /dev/null +++ b/src/components/footer-toolbar/index.js @@ -0,0 +1,2 @@ +import FooterToolbar from './footer-toolbar.vue'; +export default FooterToolbar; \ No newline at end of file diff --git a/src/components/footer/index.js b/src/components/footer/index.js new file mode 100644 index 0000000000000000000000000000000000000000..9d2932b61f3a8bb56cc3eb856f4e9245d5ff78e1 --- /dev/null +++ b/src/components/footer/index.js @@ -0,0 +1,3 @@ +import Footer from '../layout/footer.vue'; + +export default Footer; diff --git a/src/components/form-item/index.js b/src/components/form-item/index.js new file mode 100644 index 0000000000000000000000000000000000000000..728511ab1bd0d91027d0bff113306eb4e77502c5 --- /dev/null +++ b/src/components/form-item/index.js @@ -0,0 +1,3 @@ +import FormItem from '../form/form-item.vue'; + +export default FormItem; \ No newline at end of file diff --git a/src/components/form/form-item.vue b/src/components/form/form-item.vue new file mode 100644 index 0000000000000000000000000000000000000000..e71b76f7d321436cb969da3e22d36a3a7c4e22cd --- /dev/null +++ b/src/components/form/form-item.vue @@ -0,0 +1,277 @@ + + diff --git a/src/components/form/form.vue b/src/components/form/form.vue new file mode 100644 index 0000000000000000000000000000000000000000..a9ca85dddc4ac8d05e6725f9fe0a26413974a3b2 --- /dev/null +++ b/src/components/form/form.vue @@ -0,0 +1,139 @@ + + diff --git a/src/components/form/index.js b/src/components/form/index.js new file mode 100644 index 0000000000000000000000000000000000000000..a93bb013eda4a0a547bfe3c549efba8d9b4d9e09 --- /dev/null +++ b/src/components/form/index.js @@ -0,0 +1,3 @@ +import Form from './form.vue'; + +export default Form; diff --git a/src/components/global-footer/global-footer.vue b/src/components/global-footer/global-footer.vue new file mode 100644 index 0000000000000000000000000000000000000000..da1467f80fd03ce24a1f99db3ae04f72653940e0 --- /dev/null +++ b/src/components/global-footer/global-footer.vue @@ -0,0 +1,40 @@ + + diff --git a/src/components/global-footer/index.js b/src/components/global-footer/index.js new file mode 100644 index 0000000000000000000000000000000000000000..550a9e19c704cd845bdded2839a2420cc305b9f5 --- /dev/null +++ b/src/components/global-footer/index.js @@ -0,0 +1,2 @@ +import GlobalFooter from './global-footer.vue'; +export default GlobalFooter; \ No newline at end of file diff --git a/src/components/grid-item/index.js b/src/components/grid-item/index.js new file mode 100644 index 0000000000000000000000000000000000000000..6241257741488e63be7cf65212f243dd90582731 --- /dev/null +++ b/src/components/grid-item/index.js @@ -0,0 +1,3 @@ +import GridItem from '../grid/grid-item.vue'; + +export default GridItem; diff --git a/src/components/grid/grid-item.vue b/src/components/grid/grid-item.vue new file mode 100644 index 0000000000000000000000000000000000000000..e3d6e2eaa00c9438a16a08035cc010681ce1e1a1 --- /dev/null +++ b/src/components/grid/grid-item.vue @@ -0,0 +1,66 @@ + + diff --git a/src/components/grid/grid.vue b/src/components/grid/grid.vue new file mode 100644 index 0000000000000000000000000000000000000000..98e8f9b8a1078b57b177333ac78e04be09d5c029 --- /dev/null +++ b/src/components/grid/grid.vue @@ -0,0 +1,75 @@ + + diff --git a/src/components/grid/index.js b/src/components/grid/index.js new file mode 100644 index 0000000000000000000000000000000000000000..0c5d7361d08a8373ac42ab12a24a344acf4efb79 --- /dev/null +++ b/src/components/grid/index.js @@ -0,0 +1,3 @@ +import Grid from './grid.vue'; + +export default Grid; diff --git a/src/components/header/index.js b/src/components/header/index.js new file mode 100644 index 0000000000000000000000000000000000000000..45fcf092691dbc8e47477345ca054d992d213a53 --- /dev/null +++ b/src/components/header/index.js @@ -0,0 +1,3 @@ +import Header from '../layout/header.vue'; + +export default Header; diff --git a/src/components/i18n/index.js b/src/components/i18n/index.js new file mode 100644 index 0000000000000000000000000000000000000000..0842260c3c3920b375e5b28caa1b9e91e7540df6 --- /dev/null +++ b/src/components/i18n/index.js @@ -0,0 +1,3 @@ +import locale from '../../locale/index'; + +export default locale.i18n; \ No newline at end of file diff --git a/src/components/icon/icon.vue b/src/components/icon/icon.vue new file mode 100644 index 0000000000000000000000000000000000000000..b2b503281601c8cf5230e8c6df06c99bc827ee25 --- /dev/null +++ b/src/components/icon/icon.vue @@ -0,0 +1,42 @@ + + diff --git a/src/components/icon/index.js b/src/components/icon/index.js new file mode 100644 index 0000000000000000000000000000000000000000..27b7cb890bb43375d36d337b352d60c9bc205237 --- /dev/null +++ b/src/components/icon/index.js @@ -0,0 +1,2 @@ +import Icon from './icon.vue'; +export default Icon; \ No newline at end of file diff --git a/src/components/image-preview/index.js b/src/components/image-preview/index.js new file mode 100644 index 0000000000000000000000000000000000000000..bd827e5c27c3d9dbd3c401251e28366526697f16 --- /dev/null +++ b/src/components/image-preview/index.js @@ -0,0 +1,21 @@ +import ImagePreview from '../image/image-preview.js'; + +let imagePreviewInstance; + +function getImagePreviewInstance () { + imagePreviewInstance = imagePreviewInstance || ImagePreview.newInstance(); + + return imagePreviewInstance; +} + +ImagePreview.show = function (props = {}) { + const instance = getImagePreviewInstance(); + + props.onRemove = function () { + imagePreviewInstance = null; + } + + instance.show(props); +}; + +export default ImagePreview; diff --git a/src/components/image/image-preview.js b/src/components/image/image-preview.js new file mode 100644 index 0000000000000000000000000000000000000000..6c4c19aa562d4c2da838f847ffd57f7bc6ebe311 --- /dev/null +++ b/src/components/image/image-preview.js @@ -0,0 +1,72 @@ +import { createApp, h, getCurrentInstance } from 'vue'; +import ImagePreview from './image-preview.vue'; + +import { isClient } from '../../utils/index'; + +ImagePreview.newInstance = properties => { + if (!isClient) return; + const _props = properties || {}; + + let _instance = null; + + const Instance = createApp({ + data () { + return Object.assign({}, _props, { + visible: false, + previewList: [], + initialIndex: 0, + toolbar: ['zoomIn', 'zoomOut', 'original', 'rotateLeft', 'rotateRight', 'download'], + infinite: true, + maskClosable: true, + transfer: true, + }); + }, + render () { + return h(ImagePreview, Object.assign({}, _props, { + ref: 'imagePreview', + modelValue: this.visible, + previewList: this.previewList, + initialIndex: this.initialIndex, + toolbar: this.toolbar, + infinite: this.infinite, + maskClosable: this.maskClosable, + transfer: this.transfer, + 'onOn-close': this.close + })); + }, + methods: { + close () { + this.visible = false; + setTimeout(() => { + this.destroy(); + this.onRemove(); + }, 300); + }, + destroy () { + Instance.unmount(); + document.body.removeChild(container); + }, + onRemove () {} + }, + created () { + _instance = getCurrentInstance(); + } + }); + + const container = document.createElement('div'); + document.body.appendChild(container); + Instance.mount(container); + const imagePreview = _instance.refs.imagePreview; + + return { + show (options) { + Object.keys(options).forEach(key => { + imagePreview.$parent[key] = options[key]; + }); + imagePreview.$parent.visible = true; + }, + component: imagePreview + }; +}; + +export default ImagePreview; diff --git a/src/components/image/image-preview.vue b/src/components/image/image-preview.vue new file mode 100644 index 0000000000000000000000000000000000000000..72456b8f87cf0dda6e097b102cc8f720cdfac5f3 --- /dev/null +++ b/src/components/image/image-preview.vue @@ -0,0 +1,351 @@ + + diff --git a/src/components/image/image.vue b/src/components/image/image.vue new file mode 100644 index 0000000000000000000000000000000000000000..43e05c15db6c5682d28809c0ee2e55cefe27f9b3 --- /dev/null +++ b/src/components/image/image.vue @@ -0,0 +1,270 @@ + + diff --git a/src/components/image/index.js b/src/components/image/index.js new file mode 100644 index 0000000000000000000000000000000000000000..59ea304b508c6b175b4e38c099f41db4aa670fdc --- /dev/null +++ b/src/components/image/index.js @@ -0,0 +1,2 @@ +import Image from './image.vue'; +export default Image; \ No newline at end of file diff --git a/src/components/index.js b/src/components/index.js new file mode 100644 index 0000000000000000000000000000000000000000..776c7794482f938022a3b1ab999325de2ee504ee --- /dev/null +++ b/src/components/index.js @@ -0,0 +1,128 @@ +export { default as Affix } from './affix'; +export { default as Alert } from './alert'; +export { default as Anchor } from './anchor'; +export { default as AnchorLink } from './anchor-link'; +export { default as Auth } from './auth'; +export { default as AutoComplete } from './auto-complete'; +export { default as Avatar } from './avatar'; +export { default as AvatarList } from './avatar-list'; +export { default as BackTop } from './back-top'; +export { default as Badge } from './badge'; +export { default as Breadcrumb } from './breadcrumb'; +export { default as BreadcrumbItem } from './breadcrumb-item'; +export { default as Button } from './button'; +export { default as ButtonGroup } from './button-group'; +export { default as Calendar } from './calendar'; +export { default as Captcha } from './captcha'; +export { default as Card } from './card'; +export { default as Carousel } from './carousel'; +export { default as CarouselItem } from './carousel-item'; +export { default as Cascader } from './cascader'; +export { default as Cell } from './cell'; +export { default as CellGroup } from './cell-group'; +export { default as Checkbox } from './checkbox'; +export { default as CheckboxGroup } from './checkbox-group'; +export { default as Circle } from './circle'; +export { default as City } from './city'; +export { default as Col } from './col'; +export { default as Collapse } from './collapse'; +export { default as ColorPicker } from './color-picker'; +export { default as Content } from './content'; +export { default as Copy } from './copy'; +export { default as CountDown } from './count-down'; +export { default as CountUp } from './count-up'; +export { default as DatePicker } from './date-picker'; +export { default as Description } from './description'; +export { default as DescriptionList } from './description-list'; +export { default as Divider } from './divider'; +export { default as Drawer } from './drawer'; +export { default as Dropdown } from './dropdown'; +export { default as DropdownItem } from './dropdown-item'; +export { default as DropdownMenu } from './dropdown-menu'; +export { default as Ellipsis } from './ellipsis'; +export { default as Email } from './email'; +export { default as Exception } from './exception'; +export { default as Footer } from './footer'; +export { default as FooterToolbar } from './footer-toolbar'; +export { default as Form } from './form'; +export { default as FormItem } from './form-item'; +export { default as GlobalFooter } from './global-footer'; +export { default as Grid } from './grid'; +export { default as GridItem } from './grid-item'; +export { default as Header } from './header'; +export { default as Icon } from './icon'; +export { default as Image } from './image'; +export { default as ImagePreview } from './image-preview'; +export { default as Input } from './input'; +export { default as InputNumber } from './input-number'; +export { default as Layout } from './layout'; +export { default as Link } from './link'; +export { default as List } from './list'; +export { default as ListItem } from './list-item'; +export { default as ListItemMeta } from './list-item-meta'; +export { default as LoadingBar } from './loading-bar'; +export { default as Login } from './login'; +export { default as Menu } from './menu'; +export { default as MenuGroup } from './menu-group'; +export { default as MenuItem } from './menu-item'; +export { default as Message } from './message'; +export { default as Mobile } from './mobile'; +export { default as Modal } from './modal'; +export { default as Notice } from './notice'; +export { default as Notification } from './notification'; +export { default as NotificationItem } from './notification-item'; +export { default as NotificationTab } from './notification-tab'; +export { default as NumberInfo } from './number-info'; +export { default as Numeral } from './numeral'; +export { default as Option } from './option'; +export { default as OptionGroup } from './option-group'; +export { default as Page } from './page'; +export { default as PageHeader } from './page-header'; +export { default as Panel } from './panel'; +export { default as Paragraph } from './paragraph'; +export { default as Password } from './password'; +export { default as Poptip } from './poptip'; +export { default as Progress } from './progress'; +export { default as Radio } from './radio'; +export { default as RadioGroup } from './radio-group'; +export { default as Rate } from './rate'; +export { default as Result } from './result'; +export { default as Row } from './row'; +export { default as Scroll } from './scroll'; +export { default as ScrollIntoView } from './scroll-into-view'; +export { default as ScrollTop } from './scroll-top'; +export { default as Select } from './select'; +export { default as Sider } from './sider'; +export { default as Skeleton } from './skeleton'; +export { default as SkeletonItem } from './skeleton-item'; +export { default as Slider } from './slider'; +export { default as Space } from './space'; +export { default as Spin } from './spin'; +export { default as Split } from './split'; +export { default as Step } from './step'; +export { default as Steps } from './steps'; +export { default as Submenu } from './submenu'; +export { default as Submit } from './submit'; +export { default as Switch } from './switch'; +export { default as Table } from './table'; +export { default as TablePaste } from './table-paste'; +export { default as TabPane } from './tab-pane'; +export { default as Tabs } from './tabs'; +export { default as Tag } from './tag'; +export { default as TagSelect } from './tag-select'; +export { default as TagSelectOption } from './tag-select-option'; +export { default as Text } from './text'; +export { default as Time } from './time'; +export { default as Timeline } from './timeline'; +export { default as TimelineItem } from './timeline-item'; +export { default as TimePicker } from './time-picker'; +export { default as Title } from './title'; +export { default as Tooltip } from './tooltip'; +export { default as Transfer } from './transfer'; +export { default as Tree } from './tree'; +export { default as TreeSelect } from './tree-select'; +export { default as Trend } from './trend'; +export { default as Typography } from './typography'; +export { default as Upload } from './upload'; +export { default as UserName } from './user-name'; +export { default as WordCount } from './word-count'; diff --git a/src/components/input-number/index.js b/src/components/input-number/index.js new file mode 100644 index 0000000000000000000000000000000000000000..15e9b6359319485e335f068ae5d5ddd46a58c451 --- /dev/null +++ b/src/components/input-number/index.js @@ -0,0 +1,2 @@ +import InputNumber from './input-number.vue'; +export default InputNumber; \ No newline at end of file diff --git a/src/components/input-number/input-number.vue b/src/components/input-number/input-number.vue new file mode 100644 index 0000000000000000000000000000000000000000..fe86b5834640f4d990cea8bf455086b3b12304ec --- /dev/null +++ b/src/components/input-number/input-number.vue @@ -0,0 +1,373 @@ + + diff --git a/src/components/input/index.js b/src/components/input/index.js new file mode 100644 index 0000000000000000000000000000000000000000..c63178b7b2808d0014b096b67c4f5739a2b64acf --- /dev/null +++ b/src/components/input/index.js @@ -0,0 +1,2 @@ +import Input from './input.vue'; +export default Input; \ No newline at end of file diff --git a/src/components/input/input.vue b/src/components/input/input.vue new file mode 100644 index 0000000000000000000000000000000000000000..91c3f941d0e502da867744f46137da430b21c3be --- /dev/null +++ b/src/components/input/input.vue @@ -0,0 +1,435 @@ + + diff --git a/src/components/layout/content.vue b/src/components/layout/content.vue new file mode 100644 index 0000000000000000000000000000000000000000..7691d2655032808349200b3846ff870a088396c7 --- /dev/null +++ b/src/components/layout/content.vue @@ -0,0 +1,14 @@ + + \ No newline at end of file diff --git a/src/components/layout/footer.vue b/src/components/layout/footer.vue new file mode 100644 index 0000000000000000000000000000000000000000..cf47ba68bc5fbd0e510370977d879e26672d1325 --- /dev/null +++ b/src/components/layout/footer.vue @@ -0,0 +1,14 @@ + + \ No newline at end of file diff --git a/src/components/layout/header.vue b/src/components/layout/header.vue new file mode 100644 index 0000000000000000000000000000000000000000..da2acc1c32e5072411345980342392c9d69c0cd6 --- /dev/null +++ b/src/components/layout/header.vue @@ -0,0 +1,14 @@ + + \ No newline at end of file diff --git a/src/components/layout/index.js b/src/components/layout/index.js new file mode 100644 index 0000000000000000000000000000000000000000..c140560caf1d43a87265c5d8626371e74aa6c2be --- /dev/null +++ b/src/components/layout/index.js @@ -0,0 +1,3 @@ +import Layout from './layout.vue'; + +export default Layout; diff --git a/src/components/layout/layout.vue b/src/components/layout/layout.vue new file mode 100644 index 0000000000000000000000000000000000000000..fe0fd87829a682bd51c423193b91d7a6d380bc1b --- /dev/null +++ b/src/components/layout/layout.vue @@ -0,0 +1,33 @@ + + diff --git a/src/components/layout/sider.vue b/src/components/layout/sider.vue new file mode 100644 index 0000000000000000000000000000000000000000..f4775895eb54475de7dd459fdbaea8a12fc17281 --- /dev/null +++ b/src/components/layout/sider.vue @@ -0,0 +1,158 @@ + + diff --git a/src/components/link/index.js b/src/components/link/index.js new file mode 100644 index 0000000000000000000000000000000000000000..8b5ccdfcf2cccdc895f9204e15ebfcba1e9059d1 --- /dev/null +++ b/src/components/link/index.js @@ -0,0 +1,3 @@ +import Link from '../typography/link.vue'; + +export default Link; diff --git a/src/components/list-item-meta/index.js b/src/components/list-item-meta/index.js new file mode 100644 index 0000000000000000000000000000000000000000..9cef6336a89c061a2201dba6221820cb11a33630 --- /dev/null +++ b/src/components/list-item-meta/index.js @@ -0,0 +1,3 @@ +import ListItemMeta from '../list/list-item-meta.vue'; + +export default ListItemMeta; diff --git a/src/components/list-item/index.js b/src/components/list-item/index.js new file mode 100644 index 0000000000000000000000000000000000000000..72b1b19a0f85b07727a64eaf4454ede2cd3d4ee4 --- /dev/null +++ b/src/components/list-item/index.js @@ -0,0 +1,3 @@ +import ListItem from '../list/list-item.vue'; + +export default ListItem; diff --git a/src/components/list/index.js b/src/components/list/index.js new file mode 100644 index 0000000000000000000000000000000000000000..3d5b271f9dc5f7611540a82793cc4c7f72b95a15 --- /dev/null +++ b/src/components/list/index.js @@ -0,0 +1,3 @@ +import List from './list.vue'; + +export default List; diff --git a/src/components/list/list-item-meta.vue b/src/components/list/list-item-meta.vue new file mode 100644 index 0000000000000000000000000000000000000000..e2b99679f59478e2991c139578f1b12047d7e142 --- /dev/null +++ b/src/components/list/list-item-meta.vue @@ -0,0 +1,35 @@ + + diff --git a/src/components/list/list-item.vue b/src/components/list/list-item.vue new file mode 100644 index 0000000000000000000000000000000000000000..a42088b2af64debdaac89a87aec14f48bcbabf33 --- /dev/null +++ b/src/components/list/list-item.vue @@ -0,0 +1,63 @@ + + diff --git a/src/components/list/list.vue b/src/components/list/list.vue new file mode 100644 index 0000000000000000000000000000000000000000..5c2b3801605510579bfe2e118732b3c04fbdc663 --- /dev/null +++ b/src/components/list/list.vue @@ -0,0 +1,88 @@ + + diff --git a/src/components/loading-bar/index.js b/src/components/loading-bar/index.js new file mode 100644 index 0000000000000000000000000000000000000000..7a9dd6ee39a1f8a1535128821bd5b17e8205f894 --- /dev/null +++ b/src/components/loading-bar/index.js @@ -0,0 +1,116 @@ +import LoadingBar from './loading-bar'; + +let loadingBarInstance; +let color = 'primary'; +let duration = 800; +let failedColor = 'error'; +let height = 2; +let timer; + +function getLoadingBarInstance () { + loadingBarInstance = loadingBarInstance || LoadingBar.newInstance({ + color: color, + failedColor: failedColor, + height: height + }); + + return loadingBarInstance; +} + +function update(options) { + let instance = getLoadingBarInstance(); + + instance.update(options); +} + +function hide() { + setTimeout(() => { + update({ + show: false + }); + setTimeout(() => { + update({ + percent: 0 + }); + }, 200); + }, duration); +} + +function clearTimer() { + if (timer) { + clearInterval(timer); + timer = null; + } +} + +export default { + start () { + if (timer) return; + + let percent = 0; + + update({ + percent: percent, + status: 'success', + show: true + }); + + timer = setInterval(() => { + percent += Math.floor(Math.random () * 3 + 1); + if (percent > 95) { + clearTimer(); + } + update({ + percent: percent, + status: 'success', + show: true + }); + }, 200); + }, + update (percent) { + clearTimer(); + update({ + percent: percent, + status: 'success', + show: true + }); + }, + finish () { + clearTimer(); + update({ + percent: 100, + status: 'success', + show: true + }); + hide(); + }, + error () { + clearTimer(); + update({ + percent: 100, + status: 'error', + show: true + }); + hide(); + }, + config (options) { + if (options.color) { + color = options.color; + } + if (options.duration) { + duration = options.duration; + } + if (options.failedColor) { + failedColor = options.failedColor; + } + if (options.height) { + height = options.height; + } + }, + destroy () { + clearTimer(); + let instance = getLoadingBarInstance(); + loadingBarInstance = null; + instance.destroy(); + } +}; diff --git a/src/components/loading-bar/loading-bar.js b/src/components/loading-bar/loading-bar.js new file mode 100644 index 0000000000000000000000000000000000000000..03d0335044df9603bc61dec78edada0a9aae3150 --- /dev/null +++ b/src/components/loading-bar/loading-bar.js @@ -0,0 +1,50 @@ +import { createApp, h, getCurrentInstance } from 'vue'; +import LoadingBar from './loading-bar.vue'; +import { isClient } from '../../utils/index'; + +LoadingBar.newInstance = properties => { + if (!isClient) return; + const _props = properties || {}; + + let _instance = null; + + const Instance = createApp({ + data () { + return _props + }, + render () { + return h(LoadingBar, Object.assign({ + ref: 'loadingBar' + }, _props)); + }, + created () { + _instance = getCurrentInstance(); + } + }); + + const container = document.createElement('div'); + document.body.appendChild(container); + Instance.mount(container); + const loading_bar = _instance.refs.loadingBar; + + return { + update (options) { + if ('percent' in options) { + loading_bar.percent = options.percent; + } + if (options.status) { + loading_bar.status = options.status; + } + if ('show' in options) { + loading_bar.show = options.show; + } + }, + component: loading_bar, + destroy () { + Instance.unmount(); + document.body.removeChild(container); + } + }; +}; + +export default LoadingBar; diff --git a/src/components/loading-bar/loading-bar.vue b/src/components/loading-bar/loading-bar.vue new file mode 100644 index 0000000000000000000000000000000000000000..52244c5e04defd06d1888f71e8335e8a0b58379a --- /dev/null +++ b/src/components/loading-bar/loading-bar.vue @@ -0,0 +1,90 @@ + + diff --git a/src/components/locale/index.js b/src/components/locale/index.js new file mode 100644 index 0000000000000000000000000000000000000000..babe402b21aea4b9f361cf5e705691130c3c67be --- /dev/null +++ b/src/components/locale/index.js @@ -0,0 +1,3 @@ +import locale from '../../locale/index'; + +export default locale.use; \ No newline at end of file diff --git a/src/components/login/captcha.vue b/src/components/login/captcha.vue new file mode 100644 index 0000000000000000000000000000000000000000..3dcb048b4813013682f39d842370cf7cdecee6b5 --- /dev/null +++ b/src/components/login/captcha.vue @@ -0,0 +1,156 @@ + diff --git a/src/components/login/default_validate_message.js b/src/components/login/default_validate_message.js new file mode 100644 index 0000000000000000000000000000000000000000..791498fae90d99bafbb2d435d9346f78b29d2103 --- /dev/null +++ b/src/components/login/default_validate_message.js @@ -0,0 +1,7 @@ +export default { + UserName: '请输入用户名!', + Password: '请输入密码!', + Email: '请输入邮箱!', + Mobile: '请输入手机号码!', + Captcha: '请输入验证码!' +}; \ No newline at end of file diff --git a/src/components/login/email.vue b/src/components/login/email.vue new file mode 100644 index 0000000000000000000000000000000000000000..3e158f349f78ae193eee8bd82e7645bd68c87c63 --- /dev/null +++ b/src/components/login/email.vue @@ -0,0 +1,36 @@ + \ No newline at end of file diff --git a/src/components/login/index.js b/src/components/login/index.js new file mode 100644 index 0000000000000000000000000000000000000000..17d79a11ad3294ba4ddcecb855eccaff76c918ed --- /dev/null +++ b/src/components/login/index.js @@ -0,0 +1,3 @@ +import Login from './login.vue'; + +export default Login; diff --git a/src/components/login/login-item.js b/src/components/login/login-item.js new file mode 100644 index 0000000000000000000000000000000000000000..97eb32e16b842fd2c058fa94873f823525d2c4c2 --- /dev/null +++ b/src/components/login/login-item.js @@ -0,0 +1,109 @@ +// UserName、Password、Mobile、Mail 基于此 mixin + +import { h, getCurrentInstance } from 'vue'; +import Input from '../input/input.vue'; +import FormItem from '../form/form-item.vue'; +import defaultValidateMessage from './default_validate_message.js'; + +export default { + inject: ['LoginInstance'], + emits: ['on-change'], + props: { + rules: { + type: [Object, Array], + default () { + const componentName = getCurrentInstance().type.name + return [ + { + required: true, + message: defaultValidateMessage[componentName], + trigger: 'change' + } + ]; + } + }, + // 默认值,设置后,初始化时会显示 + value: { + type: String + }, + // 自定义校验字段 + name: { + type: String, + required: true + }, + // 回车提交 + enterToSubmit: { + type: Boolean, + default: false + } + }, + data () { + return { + prop: '' + }; + }, + methods: { + handleChange (val) { + this.LoginInstance.formValidate[this.prop] = val; + this.$emit('on-change', val); + }, + handleEnter () { + if (this.enterToSubmit) this.LoginInstance.handleSubmit(); + }, + // 以下方法为了复用而抽象 + handleSetValue () { + const $props = this.$props; + // 如果设置了 value 初始值,则初始覆盖 + if ($props.value) { + this.LoginInstance.formValidate[this.prop] = $props.value; + } + }, + handleGetProps () { + const $props = this.$props; + // 由于 name 也是 Input 的一个 prop, 但是在 LoginItem 中也声明了,所以主动给 Input 也赋值一遍 + let name = $props.name; + const defaultProps = { + prefix: this.prefix, + placeholder: this.placeholder, + type: this.type, + size: 'large', + // 绑定来在 Form(login.vue) 的值 + modelValue: this.LoginInstance.formValidate[this.prop] + }; + + if (name) defaultProps.name = name; + + return Object.assign(defaultProps, this.$attrs); + } + }, + render () { + // 这里不能在 render 写,因为 @on-submit 获取不到实时输入的,render 这里每次输入都会触发 + // this.handleSetValue(); + const finalProps = this.handleGetProps(); + + const $input = h(Input, { + ...finalProps, + 'onUpdate:modelValue': this.handleChange, + 'onOn-enter': this.handleEnter + }); + + const $formitem = h(FormItem, { + prop: this.prop, + rules: this.rules + }, () => [$input]); + + return h('div', { + class: this.className + }, [$formitem]); + }, + created () { + const name = this.name; + // 这里如果直接指定 this.LoginInstance.formValidate['name'] = ''; 会导致一直校验失败 + // 原因是 iView 的 Form 绑定 model 不支持动态修改 + const formValidate = Object.assign({}, this.LoginInstance.formValidate); + formValidate[name] = ''; + this.LoginInstance.formValidate = formValidate; + this.prop = name; + this.handleSetValue(); + } +}; diff --git a/src/components/login/login.vue b/src/components/login/login.vue new file mode 100644 index 0000000000000000000000000000000000000000..3ce3050b4ec780a2db9faab4114ef1296f6019a7 --- /dev/null +++ b/src/components/login/login.vue @@ -0,0 +1,50 @@ + + diff --git a/src/components/login/mobile.vue b/src/components/login/mobile.vue new file mode 100644 index 0000000000000000000000000000000000000000..15c91ecb374f07c9cc9779f53dd331fbe1afd859 --- /dev/null +++ b/src/components/login/mobile.vue @@ -0,0 +1,36 @@ + \ No newline at end of file diff --git a/src/components/login/password.vue b/src/components/login/password.vue new file mode 100644 index 0000000000000000000000000000000000000000..1c3f131b149ec9768679eb17562a1ca9f872160a --- /dev/null +++ b/src/components/login/password.vue @@ -0,0 +1,16 @@ + \ No newline at end of file diff --git a/src/components/login/submit.vue b/src/components/login/submit.vue new file mode 100644 index 0000000000000000000000000000000000000000..c882a6547b7cdc3027e7d5d4bdb0a66a2169995e --- /dev/null +++ b/src/components/login/submit.vue @@ -0,0 +1,35 @@ + diff --git a/src/components/login/user-name.vue b/src/components/login/user-name.vue new file mode 100644 index 0000000000000000000000000000000000000000..7636338b16c3dae6756c6b4686beda929b4b1c31 --- /dev/null +++ b/src/components/login/user-name.vue @@ -0,0 +1,17 @@ + diff --git a/src/components/menu-group/index.js b/src/components/menu-group/index.js new file mode 100644 index 0000000000000000000000000000000000000000..b43f53dec85d22130ff690deda351b307672861a --- /dev/null +++ b/src/components/menu-group/index.js @@ -0,0 +1,3 @@ +import MenuGroup from '../menu/menu-group.vue'; + +export default MenuGroup; \ No newline at end of file diff --git a/src/components/menu-item/index.js b/src/components/menu-item/index.js new file mode 100644 index 0000000000000000000000000000000000000000..6adc224fc7adb8c0e3229bd7ae47b3cdc1606f4b --- /dev/null +++ b/src/components/menu-item/index.js @@ -0,0 +1,3 @@ +import MenuItem from '../menu/menu-item.vue'; + +export default MenuItem; \ No newline at end of file diff --git a/src/components/menu/index.js b/src/components/menu/index.js new file mode 100644 index 0000000000000000000000000000000000000000..4cd02dd2e2d98b943162bfa8a27d024b5460c78e --- /dev/null +++ b/src/components/menu/index.js @@ -0,0 +1,3 @@ +import Menu from './menu.vue'; + +export default Menu; diff --git a/src/components/menu/menu-group.vue b/src/components/menu/menu-group.vue new file mode 100644 index 0000000000000000000000000000000000000000..5037006076c1d9e111fdec799355fbbb68dc99df --- /dev/null +++ b/src/components/menu/menu-group.vue @@ -0,0 +1,33 @@ + + diff --git a/src/components/menu/menu-item.vue b/src/components/menu/menu-item.vue new file mode 100644 index 0000000000000000000000000000000000000000..c7a343eb526aa383d274b1c83f89b6215207e2f4 --- /dev/null +++ b/src/components/menu/menu-item.vue @@ -0,0 +1,109 @@ + + diff --git a/src/components/menu/menu.vue b/src/components/menu/menu.vue new file mode 100644 index 0000000000000000000000000000000000000000..bbdec29b4df705082351877ea362a3afd3f5811c --- /dev/null +++ b/src/components/menu/menu.vue @@ -0,0 +1,174 @@ + + diff --git a/src/components/menu/mixin.js b/src/components/menu/mixin.js new file mode 100644 index 0000000000000000000000000000000000000000..65a5dd735d250d10cb50a62e0f349a84be38e5f3 --- /dev/null +++ b/src/components/menu/mixin.js @@ -0,0 +1,27 @@ +import { findComponentsUpward } from '../../utils/assist'; +export default { + inject: { + MenuInstance: { + default: null + }, + SubmenuInstance: { + default: null + } + }, + data () { + return { + menu: this.MenuInstance + }; + }, + computed: { + hasParentSubmenu () { + return !!this.SubmenuInstance; + }, + parentSubmenuNum () { + return findComponentsUpward(this, 'Submenu').length; + }, + mode () { + return this.MenuInstance.mode; + } + } +}; diff --git a/src/components/menu/submenu.vue b/src/components/menu/submenu.vue new file mode 100644 index 0000000000000000000000000000000000000000..8257822855275ec2e3462073af14d5aab240d186 --- /dev/null +++ b/src/components/menu/submenu.vue @@ -0,0 +1,226 @@ + + diff --git a/src/components/message/index.js b/src/components/message/index.js new file mode 100644 index 0000000000000000000000000000000000000000..0e9b1228cad4f1701ebb028b45d51bc30174fa38 --- /dev/null +++ b/src/components/message/index.js @@ -0,0 +1,115 @@ +import Notification from '../base/notification'; + +const prefixCls = 'ivu-message'; +const iconPrefixCls = 'ivu-icon'; +const prefixKey = 'ivu_message_key_'; + +const defaults = { + top: 24, + duration: 1.5, + background: false +}; + +let messageInstance; +let name = 1; + +const iconTypes = { + 'info': 'ios-information-circle', + 'success': 'ios-checkmark-circle', + 'warning': 'ios-alert', + 'error': 'ios-close-circle', + 'loading': 'ios-loading' +}; + +const transitionName = 'move-up'; + +function getMessageInstance () { + messageInstance = messageInstance || Notification.newInstance({ + prefixCls: prefixCls, + styles: { + top: `${defaults.top}px` + }, + transitionName + }); + + return messageInstance; +} + +function notice (content = '', duration = defaults.duration, type, onClose = function () {}, closable = false, render = function () {}, background = defaults.background) { + const iconType = iconTypes[type]; + + // if loading + const loadCls = type === 'loading' ? ' ivu-load-loop' : ''; + + let instance = getMessageInstance(); + + instance.notice({ + name: `${prefixKey}${name}`, + duration: duration, + styles: {}, + transitionName, + content: ` +
+ + ${content} +
+ `, + render: render, + onClose: onClose, + closable: closable, + type: 'message', + msgType: type, + background: background + }); + + // 用于手动消除 + return (function () { + let target = name++; + + return function () { + instance.remove(`${prefixKey}${target}`); + }; + })(); +} + +export default { + name: 'Message', + + info (options) { + return this.message('info', options); + }, + success (options) { + return this.message('success', options); + }, + warning (options) { + return this.message('warning', options); + }, + error (options) { + return this.message('error', options); + }, + loading (options) { + return this.message('loading', options); + }, + message(type, options){ + if (typeof options === 'string') { + options = { + content: options + }; + } + return notice(options.content, options.duration, type, options.onClose, options.closable, options.render, options.background); + }, + config (options) { + if (options.top || options.top === 0) { + defaults.top = options.top; + } + if (options.duration || options.duration === 0) { + defaults.duration = options.duration; + } + if (options.background) defaults.background = options.background; + }, + destroy () { + let instance = getMessageInstance(); + messageInstance = null; + instance.destroy('ivu-message'); + } +}; diff --git a/src/components/mobile/index.js b/src/components/mobile/index.js new file mode 100644 index 0000000000000000000000000000000000000000..9784728d1c418f92dd04ad76466703489e51aa93 --- /dev/null +++ b/src/components/mobile/index.js @@ -0,0 +1,3 @@ +import Mobile from '../login/mobile.vue'; + +export default Mobile; diff --git a/src/components/modal/confirm.js b/src/components/modal/confirm.js new file mode 100644 index 0000000000000000000000000000000000000000..76a3c5dce09863b51563a80a43723fd0a01b7d14 --- /dev/null +++ b/src/components/modal/confirm.js @@ -0,0 +1,257 @@ +import { createApp, h, getCurrentInstance } from 'vue'; +import Modal from './modal.vue'; +import Button from '../button/button.vue'; +import Locale from '../../mixins/locale'; +import { isClient } from '../../utils/index'; + +const prefixCls = 'ivu-modal-confirm'; + +Modal.newInstance = properties => { + if (!isClient) return; + const _props = properties || {}; + + const container = document.createElement('div'); + document.body.appendChild(container); + + let _instance = null; + + const Instance = createApp({ + mixins: [ Locale ], + data () { + return Object.assign({}, _props, { + visible: false, + width: 416, + title: '', + body: '', + iconType: '', + iconName: '', + okText: undefined, + cancelText: undefined, + showCancel: false, + loading: false, + buttonLoading: false, + scrollable: false, + closable: false, + closing: false // 关闭有动画,期间使用此属性避免重复点击 + }); + }, + render () { + let footerVNodes = []; + if (this.showCancel) { + footerVNodes.push(h(Button, { + type: 'text', + onClick: this.cancel + }, () => this.localeCancelText)); + } + footerVNodes.push(h(Button, { + type: 'primary', + loading: this.buttonLoading, + onClick: this.ok + }, () => this.localeOkText)); + + // render content + let body_render; + if (this.render) { + body_render = h('div', { + class: `${prefixCls}-body ${prefixCls}-body-render` + }, [this.render(h)]); + } else { + body_render = h('div', { + class: `${prefixCls}-body` + }, [ + h('div', { + innerHTML: this.body + }) + ]); + } + + // when render with no title, hide head + let head_render; + if (this.title) { + head_render = h('div', { + class: `${prefixCls}-head` + }, [ + h('div', { + class: this.iconTypeCls + }, [ + h('i', { + class: this.iconNameCls + }) + ]), + h('div', { + class: `${prefixCls}-head-title`, + innerHTML: this.title + }) + ]); + } + + return h(Modal, Object.assign({}, _props, { + width: this.width, + scrollable: this.scrollable, + closable: this.closable, + ref: 'modal' + }, { + modelValue: this.visible, + 'onUpdate:modelValue': (status) => this.visible = status, + 'onOn-cancel': this.cancel + }), + () => h('div', { + class: prefixCls + }, [ + head_render, + body_render, + h('div', { + class: `${prefixCls}-footer` + }, footerVNodes) + ]) + ); + }, + computed: { + iconTypeCls () { + return [ + `${prefixCls}-head-icon`, + `${prefixCls}-head-icon-${this.iconType}` + ]; + }, + iconNameCls () { + return [ + 'ivu-icon', + `ivu-icon-${this.iconName}` + ]; + }, + localeOkText () { + if (this.okText) { + return this.okText; + } else { + return this.t('i.modal.okText'); + } + }, + localeCancelText () { + if (this.cancelText) { + return this.cancelText; + } else { + return this.t('i.modal.cancelText'); + } + } + }, + methods: { + cancel () { + if (this.closing) return; + this.$refs.modal.visible = false; + this.buttonLoading = false; + this.onCancel(); + this.remove(); + }, + ok () { + if (this.closing) return; + if (this.loading) { + this.buttonLoading = true; + } else { + this.$refs.modal.visible = false; + this.remove(); + } + this.onOk(); + }, + remove () { + this.closing = true; + setTimeout(() => { + this.closing = false; + this.destroy(); + }, 300); + }, + destroy () { + Instance.unmount(); + document.body.removeChild(container); + this.onRemove(); + }, + onOk () {}, + onCancel () {}, + onRemove () {} + }, + created () { + _instance = getCurrentInstance(); + } + }); + + Instance.mount(container); + const modal = _instance.refs.modal; + + return { + show (props) { + modal.$parent.showCancel = props.showCancel; + modal.$parent.iconType = props.icon; + + switch (props.icon) { + case 'info': + modal.$parent.iconName = 'ios-information-circle'; + break; + case 'success': + modal.$parent.iconName = 'ios-checkmark-circle'; + break; + case 'warning': + modal.$parent.iconName = 'ios-alert'; + break; + case 'error': + modal.$parent.iconName = 'ios-close-circle'; + break; + case 'confirm': + modal.$parent.iconName = 'ios-help-circle'; + break; + } + + if ('width' in props) { + modal.$parent.width = props.width; + } + + if ('closable' in props) { + modal.$parent.closable = props.closable; + } + + if ('title' in props) { + modal.$parent.title = props.title; + } + + if ('content' in props) { + modal.$parent.body = props.content; + } + + if ('okText' in props) { + modal.$parent.okText = props.okText; + } + + if ('cancelText' in props) { + modal.$parent.cancelText = props.cancelText; + } + + if ('onCancel' in props) { + modal.$parent.onCancel = props.onCancel; + } + + if ('onOk' in props) { + modal.$parent.onOk = props.onOk; + } + + // async for ok + if ('loading' in props) { + modal.$parent.loading = props.loading; + } + + if ('scrollable' in props) { + modal.$parent.scrollable = props.scrollable; + } + + // notice when component destroy + modal.$parent.onRemove = props.onRemove; + + modal.visible = true; + }, + remove () { + modal.visible = false; + modal.$parent.buttonLoading = false; + modal.$parent.remove(); + }, + component: modal + }; +}; + +export default Modal; diff --git a/src/components/modal/index.js b/src/components/modal/index.js new file mode 100644 index 0000000000000000000000000000000000000000..e8fc0834850cdddc2011050d446cb5f449e60685 --- /dev/null +++ b/src/components/modal/index.js @@ -0,0 +1,69 @@ +import Modal from './confirm'; + +let modalInstance; + +function getModalInstance (render = undefined, lockScroll = true) { + modalInstance = modalInstance || Modal.newInstance({ + closable: false, + maskClosable: false, + footerHide: true, + render: render, + lockScroll + }); + + return modalInstance; +} + +function confirm (options) { + const render = ('render' in options) ? options.render : undefined; + const lockScroll = ('lockScroll' in options) ? options.lockScroll : true; + let instance = getModalInstance(render, lockScroll); + + options.onRemove = function () { + modalInstance = null; + }; + + instance.show(options); +} + +Modal.info = function (props = {}) { + props.icon = 'info'; + props.showCancel = false; + return confirm(props); +}; + +Modal.success = function (props = {}) { + props.icon = 'success'; + props.showCancel = false; + return confirm(props); +}; + +Modal.warning = function (props = {}) { + props.icon = 'warning'; + props.showCancel = false; + return confirm(props); +}; + +Modal.error = function (props = {}) { + props.icon = 'error'; + props.showCancel = false; + return confirm(props); +}; + +Modal.confirm = function (props = {}) { + props.icon = 'confirm'; + props.showCancel = true; + return confirm(props); +}; + +Modal.remove = function () { + if (!modalInstance) { // at loading status, remove after Cancel + return false; + } + + const instance = getModalInstance(); + + instance.remove(); +}; + +export default Modal; diff --git a/src/components/modal/mixins-scrollbar.js b/src/components/modal/mixins-scrollbar.js new file mode 100644 index 0000000000000000000000000000000000000000..afd2e989cdc568743a14da5dbb1fc2abbb433435 --- /dev/null +++ b/src/components/modal/mixins-scrollbar.js @@ -0,0 +1,50 @@ +// used for Modal & $Spin & Drawer +import { getScrollBarSize } from '../../utils/assist'; +import { isClient } from '../../utils/index'; +export default { + props: { + lockScroll: { + type: Boolean, + default: true + } + }, + methods: { + checkScrollBar () { + if (!isClient) return; + let fullWindowWidth = window.innerWidth; + if (!fullWindowWidth) { // workaround for missing window.innerWidth in IE8 + const documentElementRect = document.documentElement.getBoundingClientRect(); + fullWindowWidth = documentElementRect.right - Math.abs(documentElementRect.left); + } + this.bodyIsOverflowing = document.body.clientWidth < fullWindowWidth; + if (this.bodyIsOverflowing) { + this.scrollBarWidth = getScrollBarSize(); + } + }, + checkMaskInVisible () { + let masks = isClient ? (document.getElementsByClassName('ivu-modal-mask') || []) : []; + return Array.from(masks).every(m => m.style.display === 'none' || m.classList.contains('fade-leave-to')); + }, + setScrollBar () { + if (isClient && this.bodyIsOverflowing && this.scrollBarWidth !== undefined) { + document.body.style.paddingRight = `${this.scrollBarWidth}px`; + } + }, + resetScrollBar () { + isClient && (document.body.style.paddingRight = ''); + }, + addScrollEffect () { + if (!this.lockScroll) return; + this.checkScrollBar(); + this.setScrollBar(); + isClient && (document.body.style.overflow = 'hidden'); + }, + removeScrollEffect() { + if (!this.lockScroll) return; + if (isClient && this.checkMaskInVisible()) { + document.body.style.overflow = ''; + this.resetScrollBar(); + } + } + } +}; diff --git a/src/components/modal/modal.vue b/src/components/modal/modal.vue new file mode 100644 index 0000000000000000000000000000000000000000..806313ab9eb912e3833a021ffe8cabc4dabe067d --- /dev/null +++ b/src/components/modal/modal.vue @@ -0,0 +1,519 @@ + + diff --git a/src/components/notice/index.js b/src/components/notice/index.js new file mode 100644 index 0000000000000000000000000000000000000000..db0b23a053138563bd2b25dfcbdfcff0fc573a33 --- /dev/null +++ b/src/components/notice/index.js @@ -0,0 +1,129 @@ +import Notification from '../base/notification'; + +const prefixCls = 'ivu-notice'; +const iconPrefixCls = 'ivu-icon'; +const prefixKey = 'ivu_notice_key_'; + +let top = 24; +let defaultDuration = 4.5; +let noticeInstance; +let name = 1; + +const iconTypes = { + 'info': 'ios-information-circle', + 'success': 'ios-checkmark-circle', + 'warning': 'ios-alert', + 'error': 'ios-close-circle' +}; + +const transitionName = 'move-notice'; + +function getNoticeInstance () { + noticeInstance = noticeInstance || Notification.newInstance({ + prefixCls: prefixCls, + styles: { + top: `${top}px`, + right: 0 + }, + transitionName + }); + + return noticeInstance; +} + +function notice (type, options) { + const title = options.title || ''; + const desc = options.desc || ''; + const noticeKey = options.name || `${prefixKey}${name}`; + const onClose = options.onClose || function () {}; + const render = options.render; + // todo const btn = options.btn || null; + const duration = (options.duration === 0) ? 0 : options.duration || defaultDuration; + + name++; + + let instance = getNoticeInstance(); + + let content; + + let withIcon; + + const with_desc = (options.render && !title) ? '' : (desc || options.render) ? ` ${prefixCls}-with-desc` : ''; + + if (type === 'normal') { + withIcon = false; + content = ` +
+
${title}
+
${desc}
+
+ `; + } else { + const iconType = iconTypes[type]; + const outlineIcon = with_desc === '' ? '' : '-outline'; + withIcon = true; + content = ` +
+ + + +
${title}
+
${desc}
+
+ `; + } + instance.notice({ + name: noticeKey.toString(), + duration: duration, + styles: {}, + transitionName, + content: content, + withIcon: withIcon, + render: render, + hasTitle: !!title, + onClose: onClose, + closable: true, + type: 'notice' + }); +} + +export default { + open (options) { + return notice('normal', options); + }, + info (options) { + return notice('info', options); + }, + success (options) { + return notice('success', options); + }, + warning (options) { + return notice('warning', options); + }, + error (options) { + return notice('error', options); + }, + config (options) { + if (options.top) { + top = options.top; + } + if (options.duration || options.duration === 0) { + defaultDuration = options.duration; + } + }, + close (name) { + if (name) { + name = name.toString(); + if (noticeInstance) { + noticeInstance.remove(name); + } + } else { + return false; + } + }, + destroy () { + let instance = getNoticeInstance(); + noticeInstance = null; + instance.destroy('ivu-notice'); + } +}; diff --git a/src/components/notification-item/index.js b/src/components/notification-item/index.js new file mode 100644 index 0000000000000000000000000000000000000000..10f1bcc9d04aaf652e34d071fa49aa4ea5a38d40 --- /dev/null +++ b/src/components/notification-item/index.js @@ -0,0 +1,3 @@ +import NotificationItem from '../notification/notification-item.vue'; + +export default NotificationItem; diff --git a/src/components/notification-tab/index.js b/src/components/notification-tab/index.js new file mode 100644 index 0000000000000000000000000000000000000000..088aee5d8fc8afbbd525f4a54a769cfed56f0877 --- /dev/null +++ b/src/components/notification-tab/index.js @@ -0,0 +1,3 @@ +import NotificationTab from '../notification/notification-tab.vue'; + +export default NotificationTab; diff --git a/src/components/notification/index.js b/src/components/notification/index.js new file mode 100644 index 0000000000000000000000000000000000000000..04a47557fc216f705d10fd3da47c1a7d7f71a025 --- /dev/null +++ b/src/components/notification/index.js @@ -0,0 +1,3 @@ +import Notification from './notification.vue'; + +export default Notification; diff --git a/src/components/notification/notification-item.vue b/src/components/notification/notification-item.vue new file mode 100644 index 0000000000000000000000000000000000000000..12b980c8768631b8f77604796638a72d1c47b808 --- /dev/null +++ b/src/components/notification/notification-item.vue @@ -0,0 +1,182 @@ + + diff --git a/src/components/notification/notification-tab.vue b/src/components/notification/notification-tab.vue new file mode 100644 index 0000000000000000000000000000000000000000..d27b07e1c785ee489a97ddb3a127f3eb3e1a92de --- /dev/null +++ b/src/components/notification/notification-tab.vue @@ -0,0 +1,191 @@ + + diff --git a/src/components/notification/notification.vue b/src/components/notification/notification.vue new file mode 100644 index 0000000000000000000000000000000000000000..a20f4dcf8288e90a9bb9bb7d98d8fab25ade5d87 --- /dev/null +++ b/src/components/notification/notification.vue @@ -0,0 +1,190 @@ + + diff --git a/src/components/number-info/index.js b/src/components/number-info/index.js new file mode 100644 index 0000000000000000000000000000000000000000..2920b79ade250dcc6b8c13e3e58408e984c43ff1 --- /dev/null +++ b/src/components/number-info/index.js @@ -0,0 +1,2 @@ +import NumberInfo from './number-info.vue'; +export default NumberInfo; \ No newline at end of file diff --git a/src/components/number-info/number-info.vue b/src/components/number-info/number-info.vue new file mode 100644 index 0000000000000000000000000000000000000000..568553daaf4f471e4632dc24f797930eab7611db --- /dev/null +++ b/src/components/number-info/number-info.vue @@ -0,0 +1,49 @@ + + \ No newline at end of file diff --git a/src/components/numeral/index.js b/src/components/numeral/index.js new file mode 100644 index 0000000000000000000000000000000000000000..de8d87cf7f4a3fb94a8e8159d3d5ff13929c187b --- /dev/null +++ b/src/components/numeral/index.js @@ -0,0 +1,2 @@ +import Numeral from './numeral.vue'; +export default Numeral; \ No newline at end of file diff --git a/src/components/numeral/numeral.vue b/src/components/numeral/numeral.vue new file mode 100644 index 0000000000000000000000000000000000000000..2d4c2346b682c7e25a68aa508c0723ae7db4b10a --- /dev/null +++ b/src/components/numeral/numeral.vue @@ -0,0 +1,58 @@ + + diff --git a/src/components/option-group/index.js b/src/components/option-group/index.js new file mode 100644 index 0000000000000000000000000000000000000000..14497e85c662f4f40a436867b87e73a279651d2e --- /dev/null +++ b/src/components/option-group/index.js @@ -0,0 +1,3 @@ +import OptionGroup from '../select/option-group.vue'; + +export default OptionGroup; \ No newline at end of file diff --git a/src/components/option/index.js b/src/components/option/index.js new file mode 100644 index 0000000000000000000000000000000000000000..633e72874eb8f96c481c6464fb2473492a676bc8 --- /dev/null +++ b/src/components/option/index.js @@ -0,0 +1,3 @@ +import Option from '../select/option.vue'; + +export default Option; \ No newline at end of file diff --git a/src/components/options/index.js b/src/components/options/index.js new file mode 100644 index 0000000000000000000000000000000000000000..a045d4bc0f71c9cb1f4a7420e950e75786075032 --- /dev/null +++ b/src/components/options/index.js @@ -0,0 +1,2 @@ +import Options from '../page/options.vue'; +export default Options; \ No newline at end of file diff --git a/src/components/page-header/index.js b/src/components/page-header/index.js new file mode 100644 index 0000000000000000000000000000000000000000..2237ede183c6b56fb897de3d61d403c71d511ca6 --- /dev/null +++ b/src/components/page-header/index.js @@ -0,0 +1,2 @@ +import PageHeader from './page-header.vue'; +export default PageHeader; \ No newline at end of file diff --git a/src/components/page-header/page-header.vue b/src/components/page-header/page-header.vue new file mode 100644 index 0000000000000000000000000000000000000000..ff93df293ea1f8c5f50293d5bf4201c4134cc1c5 --- /dev/null +++ b/src/components/page-header/page-header.vue @@ -0,0 +1,122 @@ + + diff --git a/src/components/page/index.js b/src/components/page/index.js new file mode 100644 index 0000000000000000000000000000000000000000..2fde37df920692aa54f70d294f50fc6a4d1f8fdd --- /dev/null +++ b/src/components/page/index.js @@ -0,0 +1,2 @@ +import Page from './page.vue'; +export default Page; \ No newline at end of file diff --git a/src/components/page/options.vue b/src/components/page/options.vue new file mode 100644 index 0000000000000000000000000000000000000000..9c3d888b35834f5c17372f83339c159c196c89dd --- /dev/null +++ b/src/components/page/options.vue @@ -0,0 +1,112 @@ + + diff --git a/src/components/page/page.vue b/src/components/page/page.vue new file mode 100644 index 0000000000000000000000000000000000000000..7445209a661cc25b2ae31591f07a09ccdbb4bbc4 --- /dev/null +++ b/src/components/page/page.vue @@ -0,0 +1,338 @@ + + diff --git a/src/components/panel/index.js b/src/components/panel/index.js new file mode 100644 index 0000000000000000000000000000000000000000..8b1acaa750e12b9d69352d36e1b63ad679d206a6 --- /dev/null +++ b/src/components/panel/index.js @@ -0,0 +1,3 @@ +import Panel from '../collapse/panel.vue'; + +export default Panel; diff --git a/src/components/paragraph/index.js b/src/components/paragraph/index.js new file mode 100644 index 0000000000000000000000000000000000000000..b75948b7ac87cb0249f196099c505205edcfd980 --- /dev/null +++ b/src/components/paragraph/index.js @@ -0,0 +1,3 @@ +import Paragraph from '../typography/paragraph.vue'; + +export default Paragraph; diff --git a/src/components/password/index.js b/src/components/password/index.js new file mode 100644 index 0000000000000000000000000000000000000000..f821ada0d350a218d6ba037715406e707e0f9ce4 --- /dev/null +++ b/src/components/password/index.js @@ -0,0 +1,3 @@ +import Password from '../login/password.vue'; + +export default Password; diff --git a/src/components/poptip/index.js b/src/components/poptip/index.js new file mode 100644 index 0000000000000000000000000000000000000000..2a29dc0a8972b8a945b15aa72627fe8edbd09680 --- /dev/null +++ b/src/components/poptip/index.js @@ -0,0 +1,3 @@ +import Poptip from './poptip.vue'; + +export default Poptip; \ No newline at end of file diff --git a/src/components/poptip/poptip.vue b/src/components/poptip/poptip.vue new file mode 100644 index 0000000000000000000000000000000000000000..f2a64166fc02e061d7becd2109b5e1526a06aa30 --- /dev/null +++ b/src/components/poptip/poptip.vue @@ -0,0 +1,323 @@ + + diff --git a/src/components/progress/index.js b/src/components/progress/index.js new file mode 100644 index 0000000000000000000000000000000000000000..5cc51708976e65cddc9a1fa5121aa97159b6dc9e --- /dev/null +++ b/src/components/progress/index.js @@ -0,0 +1,2 @@ +import Progress from './progress.vue'; +export default Progress; \ No newline at end of file diff --git a/src/components/progress/progress.vue b/src/components/progress/progress.vue new file mode 100644 index 0000000000000000000000000000000000000000..292e79bb42739e5185adafbc7c9eacbadc84dc89 --- /dev/null +++ b/src/components/progress/progress.vue @@ -0,0 +1,173 @@ + + diff --git a/src/components/radio-group/index.js b/src/components/radio-group/index.js new file mode 100644 index 0000000000000000000000000000000000000000..33502f1ca9fb29edf603c03b4ed39c0bc490fafa --- /dev/null +++ b/src/components/radio-group/index.js @@ -0,0 +1,3 @@ +import RadioGroup from '../radio/radio-group.vue'; + +export default RadioGroup; diff --git a/src/components/radio/index.js b/src/components/radio/index.js new file mode 100644 index 0000000000000000000000000000000000000000..599b121d88d893f83c273b877cfbfb80be966bc8 --- /dev/null +++ b/src/components/radio/index.js @@ -0,0 +1,3 @@ +import Radio from './radio.vue'; + +export default Radio; diff --git a/src/components/radio/radio-group.vue b/src/components/radio/radio-group.vue new file mode 100644 index 0000000000000000000000000000000000000000..329e65d1540adbc7e9300916651b5a9c18f25931 --- /dev/null +++ b/src/components/radio/radio-group.vue @@ -0,0 +1,97 @@ + + diff --git a/src/components/radio/radio.vue b/src/components/radio/radio.vue new file mode 100644 index 0000000000000000000000000000000000000000..0c0960fc80edd6e13dd914786596feacf4089203 --- /dev/null +++ b/src/components/radio/radio.vue @@ -0,0 +1,182 @@ + + diff --git a/src/components/rate/index.js b/src/components/rate/index.js new file mode 100644 index 0000000000000000000000000000000000000000..24e5406065dcd4f1d73c73ba25b12ab5cd4fb54f --- /dev/null +++ b/src/components/rate/index.js @@ -0,0 +1,2 @@ +import Rate from './rate.vue'; +export default Rate; \ No newline at end of file diff --git a/src/components/rate/rate.vue b/src/components/rate/rate.vue new file mode 100644 index 0000000000000000000000000000000000000000..b015553cc3457c269c47fad2145f170974d44b37 --- /dev/null +++ b/src/components/rate/rate.vue @@ -0,0 +1,184 @@ + + diff --git a/src/components/result/index.js b/src/components/result/index.js new file mode 100644 index 0000000000000000000000000000000000000000..1ec3378a491753e1b32bbcbe289724146953fd17 --- /dev/null +++ b/src/components/result/index.js @@ -0,0 +1,2 @@ +import Result from './result.vue'; +export default Result; \ No newline at end of file diff --git a/src/components/result/result.vue b/src/components/result/result.vue new file mode 100644 index 0000000000000000000000000000000000000000..039dcb947c198f7d6922d2f1548f57984d98f8cc --- /dev/null +++ b/src/components/result/result.vue @@ -0,0 +1,48 @@ + + diff --git a/src/components/row/index.js b/src/components/row/index.js new file mode 100644 index 0000000000000000000000000000000000000000..fe0e15bb21f9993468e69ab755ab043e05983a0b --- /dev/null +++ b/src/components/row/index.js @@ -0,0 +1,3 @@ +import Row from './row.vue'; + +export default Row; diff --git a/src/components/row/row.vue b/src/components/row/row.vue new file mode 100644 index 0000000000000000000000000000000000000000..8a2b4ea969f6f9b745709a3fc26565744fed93e4 --- /dev/null +++ b/src/components/row/row.vue @@ -0,0 +1,75 @@ + + diff --git a/src/components/scroll-into-view/index.js b/src/components/scroll-into-view/index.js new file mode 100644 index 0000000000000000000000000000000000000000..1e6873fc28fd86bf83cce42db7bc6dab627a6d81 --- /dev/null +++ b/src/components/scroll-into-view/index.js @@ -0,0 +1,224 @@ +/** + scrollIntoView(someElement, { + time: 500, // half a second + ease: function(value){ + return Math.pow(value,2) - value; // Do something weird. + }, + validTarget: function(target, parentsScrolled){ + // Only scroll the first two elements that don't have the class "dontScroll" + return parentsScrolled < 2 && target !== window && !target.matches('.dontScroll'); + }, + align:{ + top: 0 to 1, default 0.5 (center) + left: 0 to 1, default 0.5 (center) + topOffset: pixels to offset top alignment + leftOffset: pixels to offset left alignment + }, + isScrollable: function(target, defaultIsScrollable){ + // By default scroll-into-view will only attempt to scroll elements that have overflow not set to `"hidden"` and who's scroll width/height is larger than their client height. + // You can override this check by passing an `isScrollable` function to settings: + return defaultIsScrollable(target) || ~target.className.indexOf('scrollable'); + } +}); + */ +import { isClient } from '../../utils/index'; + +const COMPLETE = 'COMPLETE'; +const CANCELED = 'CANCELED'; + +function requestAnimation(task) { + if (isClient && 'requestAnimationFrame' in window) { + return window.requestAnimationFrame(task); + } + + setTimeout(task, 16); +} + +function setElementScroll(element, x, y) { + if (element === window) { + element.scrollTo(x, y); + } else { + element.scrollLeft = x; + element.scrollTop = y; + } +} + +function getTargetScrollLocation(target, parent, align) { + if (!isClient) return; + let targetPosition = target.getBoundingClientRect(); + let parentPosition = null; + let x = null; + let y = null; + let differenceX = null; + let differenceY = null; + let targetWidth = null; + let targetHeight = null; + let leftAlign = align && align.left != null ? align.left : 0.5; + let topAlign = align && align.top != null ? align.top : 0.5; + let leftOffset = align && align.leftOffset != null ? align.leftOffset : 0; + let topOffset = align && align.topOffset != null ? align.topOffset : 0; + let leftScalar = leftAlign; + let topScalar = topAlign; + + if (parent === window) { + targetWidth = Math.min(targetPosition.width, window.innerWidth); + targetHeight = Math.min(targetPosition.height, window.innerHeight); + x = targetPosition.left + window.pageXOffset - window.innerWidth * leftScalar + targetWidth * leftScalar; + y = targetPosition.top + window.pageYOffset - window.innerHeight * topScalar + targetHeight * topScalar; + x -= leftOffset; + y -= topOffset; + differenceX = x - window.pageXOffset; + differenceY = y - window.pageYOffset; + } else { + targetWidth = targetPosition.width; + targetHeight = targetPosition.height; + parentPosition = parent.getBoundingClientRect(); + let offsetLeft = targetPosition.left - (parentPosition.left - parent.scrollLeft); + let offsetTop = targetPosition.top - (parentPosition.top - parent.scrollTop); + x = offsetLeft + (targetWidth * leftScalar) - parent.clientWidth * leftScalar; + y = offsetTop + (targetHeight * topScalar) - parent.clientHeight * topScalar; + x = Math.max(Math.min(x, parent.scrollWidth - parent.clientWidth), 0); + y = Math.max(Math.min(y, parent.scrollHeight - parent.clientHeight), 0); + x -= leftOffset; + y -= topOffset; + differenceX = x - parent.scrollLeft; + differenceY = y - parent.scrollTop; + } + + return { + x, + y, + differenceX, + differenceY + }; +} + +function animate(parent) { + requestAnimation(function () { + let scrollSettings = parent.scrollOption; + if (!scrollSettings) { + return; + } + + let location = getTargetScrollLocation(scrollSettings.target, parent, scrollSettings.align); + let time = Date.now() - scrollSettings.startTime; + let timeValue = Math.min((1 / scrollSettings.time) * time, 1); + + if ( + time > scrollSettings.time + 20 + ) { + setElementScroll(parent, location.x, location.y); + parent.scrollOption = null; + return scrollSettings.end(COMPLETE); + } + + let easeValue = 1 - scrollSettings.ease(timeValue); + + setElementScroll(parent, + location.x - (location.differenceX * easeValue), + location.y - (location.differenceY * easeValue) + ); + + animate(parent); + }); +} + +function transitionScrollTo(target, parent, settings, callback) { + let idle = !parent.scrollOption; + let lastSettings = parent.scrollOption; + let now = Date.now(); + let endHandler; + + if (lastSettings) { + lastSettings.end(CANCELED); + } + + function end(endType) { + parent.scrollOption = null; + if (parent.parentElement && parent.parentElement.scrollOption) { + parent.parentElement.scrollOption.end(endType); + } + callback(endType); + parent.removeEventListener('touchstart', endHandler); + } + + parent.scrollOption = { + startTime: lastSettings ? lastSettings.startTime : Date.now(), + target, + time: settings.time + (lastSettings ? now - lastSettings.startTime : 0), + ease: settings.ease, + align: settings.align, + end + }; + + endHandler = end.bind(null, CANCELED); + parent.addEventListener('touchstart', endHandler); + + if (idle) { + animate(parent); + } +} + +function defaultIsScrollable(element) { + if (!isClient) return; + return ( + element === window || + (( + element.scrollHeight !== element.clientHeight || + element.scrollWidth !== element.clientWidth + ) && getComputedStyle(element).overflow !== 'hidden') + ); +} + +function defaultValidTarget() { + return true; +} + +export default function (target, settings, callback) { + if (!target) { + return; + } + + if (typeof settings === 'function') { + callback = settings; + settings = null; + } + + if (!settings) { + settings = {}; + } + + settings.time = isNaN(settings.time) ? 1000 : settings.time; + settings.ease = settings.ease || function (v) { return 1 - Math.pow(1 - v, v / 2); }; + + let parent = target.parentElement; + let parents = 0; + + function done(endType) { + parents -= 1; + if (!parents && callback) { + callback(endType); + } + } + + let validTarget = settings.validTarget || defaultValidTarget; + let isScrollable = settings.isScrollable; + + while (parent) { + if (validTarget(parent, parents) && (isScrollable ? isScrollable(parent, defaultIsScrollable) : defaultIsScrollable(parent))) { + parents += 1; + transitionScrollTo(target, parent, settings, done); + } + + parent = parent.parentElement; + + if (!parent) { + return; + } + + if (parent.tagName === 'BODY') { + parent = window; + } + } +} + diff --git a/src/components/scroll-top/index.js b/src/components/scroll-top/index.js new file mode 100644 index 0000000000000000000000000000000000000000..40f84002e943250bd688c223558f9e3120ef9613 --- /dev/null +++ b/src/components/scroll-top/index.js @@ -0,0 +1,48 @@ +import { isClient } from '../../utils/index'; + +function requestAnimation(task) { + if (isClient && 'requestAnimationFrame' in window) { + return window.requestAnimationFrame(task); + } + + setTimeout(task, 16); +} + +export default function (el, settings, callback) { + if (!el) { + return; + } + + if (typeof settings === 'function') { + callback = settings; + settings = null; + } + + if (!settings) { + settings = {}; + } + + settings.time = isNaN(settings.time) ? 500 : settings.time; + + const from = el.scrollTop; + const to = settings.to || 0; + + const difference = Math.abs(from - to); + const step = Math.ceil(difference / settings.time * 50); + + function scroll(start, end, step) { + if (start === end) { + callback && callback(); + return; + } + + let d = (start + step > end) ? end : start + step; + if (start > end) { + d = (start - step < end) ? end : start - step; + } + + el.scrollTop = d; + requestAnimation(() => scroll(d, end, step)); + } + scroll(from, to, step); +} diff --git a/src/components/scroll/index.js b/src/components/scroll/index.js new file mode 100644 index 0000000000000000000000000000000000000000..dedbe686f87f4ead5ca5ed3e372973f501434ef9 --- /dev/null +++ b/src/components/scroll/index.js @@ -0,0 +1,3 @@ +import Scroll from './scroll.vue'; + +export default Scroll; diff --git a/src/components/scroll/loading-component.vue b/src/components/scroll/loading-component.vue new file mode 100644 index 0000000000000000000000000000000000000000..80b7cde700868be212180b58b2ea5011aab781ef --- /dev/null +++ b/src/components/scroll/loading-component.vue @@ -0,0 +1,41 @@ + + diff --git a/src/components/scroll/scroll.vue b/src/components/scroll/scroll.vue new file mode 100644 index 0000000000000000000000000000000000000000..f0fdb9c8dbbacb8975af3f8358e5757d213134f9 --- /dev/null +++ b/src/components/scroll/scroll.vue @@ -0,0 +1,313 @@ + + diff --git a/src/components/select/dropdown.vue b/src/components/select/dropdown.vue new file mode 100644 index 0000000000000000000000000000000000000000..ac03b16acf4cdad3ed98a0aaa17900c2ad9051a5 --- /dev/null +++ b/src/components/select/dropdown.vue @@ -0,0 +1,177 @@ + + diff --git a/src/components/select/index.js b/src/components/select/index.js new file mode 100644 index 0000000000000000000000000000000000000000..a7e099911b34e974f4b1533856eb3114cba8e444 --- /dev/null +++ b/src/components/select/index.js @@ -0,0 +1,3 @@ +import Select from './select.vue'; + +export default Select; diff --git a/src/components/select/option-group.vue b/src/components/select/option-group.vue new file mode 100644 index 0000000000000000000000000000000000000000..29bf2a38d5ddee0c074a2049c04c1d69b5f61e26 --- /dev/null +++ b/src/components/select/option-group.vue @@ -0,0 +1,43 @@ + + diff --git a/src/components/select/option.vue b/src/components/select/option.vue new file mode 100644 index 0000000000000000000000000000000000000000..b4bc9968d7c13cc4c56ca9c586e276d2c698985c --- /dev/null +++ b/src/components/select/option.vue @@ -0,0 +1,184 @@ + + diff --git a/src/components/select/select-head.vue b/src/components/select/select-head.vue new file mode 100644 index 0000000000000000000000000000000000000000..1284ff90323db76d34e7566e67f96f97dcdaebb9 --- /dev/null +++ b/src/components/select/select-head.vue @@ -0,0 +1,304 @@ + + diff --git a/src/components/select/select.vue b/src/components/select/select.vue new file mode 100644 index 0000000000000000000000000000000000000000..35222ae08ecdc787b18cae57ee49b52708f0a589 --- /dev/null +++ b/src/components/select/select.vue @@ -0,0 +1,823 @@ + + diff --git a/src/components/select/utils.js b/src/components/select/utils.js new file mode 100644 index 0000000000000000000000000000000000000000..39ca34299f7c260df3604187a2fae6df732a7675 --- /dev/null +++ b/src/components/select/utils.js @@ -0,0 +1,16 @@ +import { nextTick } from 'vue'; + +export function debounce(fn) { + let waiting; + return function() { + if (waiting) return; + waiting = true; + const context = this, + args = arguments; + const later = function() { + waiting = false; + fn.apply(context, args); + }; + nextTick(later); + }; +} diff --git a/src/components/sider/index.js b/src/components/sider/index.js new file mode 100644 index 0000000000000000000000000000000000000000..5089527f0d998b95c7cdfc5a3823a2c04620eccb --- /dev/null +++ b/src/components/sider/index.js @@ -0,0 +1,3 @@ +import Sider from '../layout/sider.vue'; + +export default Sider; diff --git a/src/components/skeleton-item/index.js b/src/components/skeleton-item/index.js new file mode 100644 index 0000000000000000000000000000000000000000..1016485a4a3a01fc8f28f99b2d8f9ca78b418197 --- /dev/null +++ b/src/components/skeleton-item/index.js @@ -0,0 +1,2 @@ +import SkeletonItem from '../skeleton/skeleton-item.vue'; +export default SkeletonItem; diff --git a/src/components/skeleton/index.js b/src/components/skeleton/index.js new file mode 100644 index 0000000000000000000000000000000000000000..54efad139f3a957e82cac6f498e0238765123b3a --- /dev/null +++ b/src/components/skeleton/index.js @@ -0,0 +1,2 @@ +import Skeleton from './skeleton.vue'; +export default Skeleton; diff --git a/src/components/skeleton/skeleton-item.vue b/src/components/skeleton/skeleton-item.vue new file mode 100644 index 0000000000000000000000000000000000000000..6090c6c2a1d0a0d45cf3286d27d0c0f21ca1bd9e --- /dev/null +++ b/src/components/skeleton/skeleton-item.vue @@ -0,0 +1,106 @@ + + + diff --git a/src/components/skeleton/skeleton.vue b/src/components/skeleton/skeleton.vue new file mode 100644 index 0000000000000000000000000000000000000000..8a4c3fbfb39254275befa6ab81206800da889cbb --- /dev/null +++ b/src/components/skeleton/skeleton.vue @@ -0,0 +1,169 @@ + + + diff --git a/src/components/slider/index.js b/src/components/slider/index.js new file mode 100644 index 0000000000000000000000000000000000000000..155c8ea1e4642fcd02dae7872fde523725066d12 --- /dev/null +++ b/src/components/slider/index.js @@ -0,0 +1,3 @@ +import Slider from './slider.vue'; + +export default Slider; \ No newline at end of file diff --git a/src/components/slider/marker.js b/src/components/slider/marker.js new file mode 100644 index 0000000000000000000000000000000000000000..3311d5327702a65f11e0f802d433484a81559c0a --- /dev/null +++ b/src/components/slider/marker.js @@ -0,0 +1,17 @@ +import { h } from 'vue'; +export default { + name: 'SliderMarker', + props: { + mark: { + type: [String, Object] + } + }, + render () { + let label = typeof this.mark === 'string' ? this.mark : [this.mark.label]; + + return h('div', { + class: 'ivu-slider-marks-item', + style: this.mark.style || {} + }, label); + } +}; diff --git a/src/components/slider/slider.vue b/src/components/slider/slider.vue new file mode 100644 index 0000000000000000000000000000000000000000..a4026fe245f358a5e575b7c1a2b82953eb6def38 --- /dev/null +++ b/src/components/slider/slider.vue @@ -0,0 +1,518 @@ + + diff --git a/src/components/space/index.js b/src/components/space/index.js new file mode 100644 index 0000000000000000000000000000000000000000..f8fc8a51834f1b66d8930f056eb48be81c1e8bba --- /dev/null +++ b/src/components/space/index.js @@ -0,0 +1,3 @@ +import Space from './space.vue'; + +export default Space; diff --git a/src/components/space/space.vue b/src/components/space/space.vue new file mode 100644 index 0000000000000000000000000000000000000000..27e530598514257cd83eac1f8ded964436e04465 --- /dev/null +++ b/src/components/space/space.vue @@ -0,0 +1,156 @@ + diff --git a/src/components/spin/index.js b/src/components/spin/index.js new file mode 100644 index 0000000000000000000000000000000000000000..ffba3c7d1b186412f03dec1d66c81e83d2e325ec --- /dev/null +++ b/src/components/spin/index.js @@ -0,0 +1,33 @@ +import Spin from './spin.js'; + +let spinInstance; + +function getSpinInstance (render = undefined) { + spinInstance = spinInstance || Spin.newInstance({ + render: render + }); + + return spinInstance; +} + +function loading (options) { + const render = ('render' in options) ? options.render : undefined; + let instance = getSpinInstance(render); + + instance.show(options); +} + +Spin.show = function (props = {}) { + return loading(props); +}; +Spin.hide = function () { + if (!spinInstance) return false; + + const instance = getSpinInstance(); + + instance.remove(() => { + spinInstance = null; + }); +}; + +export default Spin; \ No newline at end of file diff --git a/src/components/spin/spin.js b/src/components/spin/spin.js new file mode 100644 index 0000000000000000000000000000000000000000..30510ab5b14cd19ba2f9c5b348b8034b5c240af7 --- /dev/null +++ b/src/components/spin/spin.js @@ -0,0 +1,78 @@ +import { createApp, h, getCurrentInstance, nextTick } from 'vue'; +import Spin from './spin.vue'; + +import { transferIndex, transferIncrease } from '../../utils/transfer-queue'; +import { isClient } from '../../utils/index'; + +function handleGetIndex() { + transferIncrease(); + return transferIndex; +} + +let tIndex = handleGetIndex(); + +Spin.newInstance = properties => { + if (!isClient) return; + const _props = properties || {}; + + let _instance = null; + + const Instance = createApp({ + data () { + return Object.assign({}, _props, { + + }); + }, + render () { + let vnode = ''; + if (this.render) { + vnode = h(Spin, { + fix: true, + fullscreen: true, + ref: 'spin' + }, [this.render(h)]); + } else { + vnode = h(Spin, { + size: 'large', + fix: true, + fullscreen: true, + ref: 'spin' + }); + } + return h('div', { + 'class': 'ivu-spin-fullscreen ivu-spin-fullscreen-wrapper', + 'style': { + 'z-index': 2010 + tIndex + } + }, [vnode]); + }, + created () { + _instance = getCurrentInstance(); + } + }); + + const container = document.createElement('div'); + document.body.appendChild(container); + Instance.mount(container); + const spin = _instance.refs.spin; + + return { + show () { + nextTick(()=> { + _instance.refs.spin.visible = true; + tIndex = handleGetIndex(); + }) + }, + remove (cb) { + _instance.refs.spin.visible = false; + setTimeout(function() { + Instance.unmount(); + document.body.removeChild(container); + cb(); + }, 500); + }, + component: spin + }; +}; + +export default Spin; diff --git a/src/components/spin/spin.vue b/src/components/spin/spin.vue new file mode 100644 index 0000000000000000000000000000000000000000..0a710d33e221324a1b270a9d87f6e4d6e575ded7 --- /dev/null +++ b/src/components/spin/spin.vue @@ -0,0 +1,93 @@ + + diff --git a/src/components/split/index.js b/src/components/split/index.js new file mode 100644 index 0000000000000000000000000000000000000000..fef6b58a046a7be9bb1e29a9646e597dff9304aa --- /dev/null +++ b/src/components/split/index.js @@ -0,0 +1,2 @@ +import Split from './split.vue'; +export default Split; diff --git a/src/components/split/split.vue b/src/components/split/split.vue new file mode 100644 index 0000000000000000000000000000000000000000..37afa99113c3a6487a9ed063d2c504dbffe424e3 --- /dev/null +++ b/src/components/split/split.vue @@ -0,0 +1,185 @@ + + diff --git a/src/components/split/trigger.vue b/src/components/split/trigger.vue new file mode 100644 index 0000000000000000000000000000000000000000..2f69e1b95db12368e8cf749dc9ef3e9b5bf8b13c --- /dev/null +++ b/src/components/split/trigger.vue @@ -0,0 +1,39 @@ + + + diff --git a/src/components/step/index.js b/src/components/step/index.js new file mode 100644 index 0000000000000000000000000000000000000000..6e9497d1350ae57a32b4098010869866eb4ed868 --- /dev/null +++ b/src/components/step/index.js @@ -0,0 +1,3 @@ +import Step from '../steps/step.vue'; + +export default Step; diff --git a/src/components/steps/index.js b/src/components/steps/index.js new file mode 100644 index 0000000000000000000000000000000000000000..85db83de648d7bf15c91bb32b19947b5dd96b4b5 --- /dev/null +++ b/src/components/steps/index.js @@ -0,0 +1,3 @@ +import Steps from './steps.vue'; + +export default Steps; diff --git a/src/components/steps/step.vue b/src/components/steps/step.vue new file mode 100644 index 0000000000000000000000000000000000000000..160ec34d27a56407f9bfe72ef6781d02cb133f43 --- /dev/null +++ b/src/components/steps/step.vue @@ -0,0 +1,136 @@ + + diff --git a/src/components/steps/steps.vue b/src/components/steps/steps.vue new file mode 100644 index 0000000000000000000000000000000000000000..6b6465ab1f0779623e25143f866fb11a56f50857 --- /dev/null +++ b/src/components/steps/steps.vue @@ -0,0 +1,70 @@ + + diff --git a/src/components/submenu/index.js b/src/components/submenu/index.js new file mode 100644 index 0000000000000000000000000000000000000000..9a25b25b6c8d5316f982c3b98aae9c5949a21907 --- /dev/null +++ b/src/components/submenu/index.js @@ -0,0 +1,3 @@ +import Submenu from '../menu/submenu.vue'; + +export default Submenu; \ No newline at end of file diff --git a/src/components/submit/index.js b/src/components/submit/index.js new file mode 100644 index 0000000000000000000000000000000000000000..fa420b7eea9625370551916ab0dabebf4f9abf08 --- /dev/null +++ b/src/components/submit/index.js @@ -0,0 +1,3 @@ +import Submit from '../login/submit.vue'; + +export default Submit; diff --git a/src/components/switch/index.js b/src/components/switch/index.js new file mode 100644 index 0000000000000000000000000000000000000000..f705e4ed3bb4a422360bc881e49ccdcb1cb0449f --- /dev/null +++ b/src/components/switch/index.js @@ -0,0 +1,2 @@ +import Switch from './switch.vue'; +export default Switch; \ No newline at end of file diff --git a/src/components/switch/switch.vue b/src/components/switch/switch.vue new file mode 100644 index 0000000000000000000000000000000000000000..471e35348c4c597c55cb1ec599dd42d73489fe5a --- /dev/null +++ b/src/components/switch/switch.vue @@ -0,0 +1,141 @@ + + diff --git a/src/components/tab-pane/index.js b/src/components/tab-pane/index.js new file mode 100644 index 0000000000000000000000000000000000000000..da06a50cf0c0338e74fd5320b3d7f783640436d8 --- /dev/null +++ b/src/components/tab-pane/index.js @@ -0,0 +1,3 @@ +import TabPane from '../tabs/pane.vue'; + +export default TabPane; \ No newline at end of file diff --git a/src/components/table-paste/index.js b/src/components/table-paste/index.js new file mode 100644 index 0000000000000000000000000000000000000000..6e05a593855b331149e28f3d32194fb46948be4a --- /dev/null +++ b/src/components/table-paste/index.js @@ -0,0 +1,2 @@ +import TablePaste from './table-paste.vue'; +export default TablePaste; \ No newline at end of file diff --git a/src/components/table-paste/table-paste.vue b/src/components/table-paste/table-paste.vue new file mode 100644 index 0000000000000000000000000000000000000000..7197b4ae451f3670d749b79061d6c25db0e1da3d --- /dev/null +++ b/src/components/table-paste/table-paste.vue @@ -0,0 +1,147 @@ + + diff --git a/src/components/table/cell.vue b/src/components/table/cell.vue new file mode 100644 index 0000000000000000000000000000000000000000..d9b052bbb36edbe3124df90f0993e13e5c2126a3 --- /dev/null +++ b/src/components/table/cell.vue @@ -0,0 +1,190 @@ + + diff --git a/src/components/table/expand.js b/src/components/table/expand.js new file mode 100644 index 0000000000000000000000000000000000000000..ac207c7c2b4979acb6347dfc0e12adc616948942 --- /dev/null +++ b/src/components/table/expand.js @@ -0,0 +1,22 @@ +import { h } from 'vue'; + +export default { + name: 'TableExpand', + props: { + row: Object, + render: Function, + index: Number, + column: { + type: Object, + default: null + } + }, + render () { + const params = { + row: this.row, + index: this.index + }; + if (this.column) params.column = this.column; + return this.render(h, params); + } +}; diff --git a/src/components/table/export-csv.js b/src/components/table/export-csv.js new file mode 100644 index 0000000000000000000000000000000000000000..ebd653a646de5cd1614283e7b5643d823510de54 --- /dev/null +++ b/src/components/table/export-csv.js @@ -0,0 +1,79 @@ +import { isClient } from '../../utils/index'; + +function has (browser) { + const ua = navigator.userAgent; + if (browser === 'ie') { + const isIE = ua.indexOf('compatible') > -1 && ua.indexOf('MSIE') > -1; + if (isIE) { + const reIE = new RegExp('MSIE (\\d+\\.\\d+);'); + reIE.test(ua); + return parseFloat(RegExp['$1']); + } else { + return false; + } + } else { + return ua.indexOf(browser) > -1; + } +} + +const csv = { + _isIE11 () { + let iev = 0; + const ieold = (/MSIE (\d+\.\d+);/.test(navigator.userAgent)); + const trident = !!navigator.userAgent.match(/Trident\/7.0/); + const rv = navigator.userAgent.indexOf('rv:11.0'); + + if (ieold) { + iev = Number(RegExp.$1); + } + if (navigator.appVersion.indexOf('MSIE 10') !== -1) { + iev = 10; + } + if (trident && rv !== -1) { + iev = 11; + } + + return iev === 11; + }, + + _isEdge () { + return /Edge/.test(navigator.userAgent); + }, + + _getDownloadUrl (text) { + const BOM = '\uFEFF'; + // Add BOM to text for open in excel correctly + if (isClient && window.Blob && window.URL && window.URL.createObjectURL) { + const csvData = new Blob([BOM + text], { type: 'text/csv' }); + return URL.createObjectURL(csvData); + } else { + return 'data:attachment/csv;charset=utf-8,' + BOM + encodeURIComponent(text); + } + }, + + download (filename, text) { + if (!isClient) return; + if (has('ie') && has('ie') < 10) { + // has module unable identify ie11 and Edge + const oWin = window.top.open('about:blank', '_blank'); + oWin.document.charset = 'utf-8'; + oWin.document.write(text); + oWin.document.close(); + oWin.document.execCommand('SaveAs', filename); + oWin.close(); + } else if (has('ie') === 10 || this._isIE11() || this._isEdge()) { + const BOM = '\uFEFF'; + const csvData = new Blob([BOM + text], { type: 'text/csv' }); + navigator.msSaveBlob(csvData, filename); + } else { + const link = document.createElement('a'); + link.download = filename; + link.href = this._getDownloadUrl(text); + document.body.appendChild(link); + link.click(); + document.body.removeChild(link); + } + } +}; + +export default csv; diff --git a/src/components/table/header.js b/src/components/table/header.js new file mode 100644 index 0000000000000000000000000000000000000000..cdbaf8fd61d211fead500880ad44a4627c86d184 --- /dev/null +++ b/src/components/table/header.js @@ -0,0 +1,17 @@ +import { h } from 'vue'; + +export default { + name: 'TableRenderHeader', + props: { + render: Function, + column: Object, + index: Number + }, + render () { + const params = { + column: this.column, + index: this.index + }; + return this.render(h, params); + } +}; diff --git a/src/components/table/index.js b/src/components/table/index.js new file mode 100644 index 0000000000000000000000000000000000000000..158c2e2df8c0d6334431250b3e3e614c6ed05d79 --- /dev/null +++ b/src/components/table/index.js @@ -0,0 +1,2 @@ +import Table from './table.vue'; +export default Table; \ No newline at end of file diff --git a/src/components/table/mixin.js b/src/components/table/mixin.js new file mode 100644 index 0000000000000000000000000000000000000000..ef84684eb99fe53642366a39441e7da08d0032d4 --- /dev/null +++ b/src/components/table/mixin.js @@ -0,0 +1,32 @@ +export default { + methods: { + alignCls (column, row = {}) { + let cellClassName = ''; + if (row.cellClassName && column.key && row.cellClassName[column.key]) { + cellClassName = row.cellClassName[column.key]; + } + return [ + `${this.prefixCls}-column-${column.__id}`, + { + [`${cellClassName}`]: cellClassName, // cell className + [`${column.className}`]: column.className, // column className + [`${this.prefixCls}-column-${column.align}`]: column.align, + [`${this.prefixCls}-hidden`]: (this.fixed === 'left' && column.fixed !== 'left') || (this.fixed === 'right' && column.fixed !== 'right') || (!this.fixed && column.fixed && (column.fixed === 'left' || column.fixed === 'right')) + } + ]; + }, + isPopperShow (column) { + return column.filters && ((!this.fixed && !column.fixed) || (this.fixed === 'left' && column.fixed === 'left') || (this.fixed === 'right' && column.fixed === 'right')); + }, + setCellWidth (column) { + let width = ''; + if (column.width) { + width = column.width; + } else if (this.columnsWidth[column._index]) { + width = this.columnsWidth[column._index].width; + } + if (width === '0') width = ''; + return width; + } + } +}; diff --git a/src/components/table/slot.js b/src/components/table/slot.js new file mode 100644 index 0000000000000000000000000000000000000000..5b54995b2e8e86465dc352e4ad293bb20c3a3f75 --- /dev/null +++ b/src/components/table/slot.js @@ -0,0 +1,31 @@ +import { h } from 'vue'; + +export default { + name: 'TableSlot', + inject: ['TableInstance'], + props: { + row: Object, + index: Number, + column: { + type: Object, + default: null + }, + display: { + type: String, + default: 'block' + } + }, + render () { + return h('div', { + 'class': { + 'ivu-table-cell-slot': true, + 'ivu-table-cell-slot-inline': this.display === 'inline', + 'ivu-table-cell-slot-inline-block': this.display === 'inline-block' + } + }, this.TableInstance.$slots[this.column.slot]({ + row: this.row, + column: this.column, + index: this.index + })); + } +}; diff --git a/src/components/table/summary.vue b/src/components/table/summary.vue new file mode 100644 index 0000000000000000000000000000000000000000..fa5f3976fb35239fc59809bd71666ad314404a5b --- /dev/null +++ b/src/components/table/summary.vue @@ -0,0 +1,46 @@ + + diff --git a/src/components/table/table-body.vue b/src/components/table/table-body.vue new file mode 100644 index 0000000000000000000000000000000000000000..854ea7e25e130a9bdd100054fd005a082fe35c97 --- /dev/null +++ b/src/components/table/table-body.vue @@ -0,0 +1,393 @@ + + diff --git a/src/components/table/table-head.vue b/src/components/table/table-head.vue new file mode 100644 index 0000000000000000000000000000000000000000..9a39d949f0ce574509ea2e9295dbac180c477049 --- /dev/null +++ b/src/components/table/table-head.vue @@ -0,0 +1,408 @@ + + diff --git a/src/components/table/table-tr.vue b/src/components/table/table-tr.vue new file mode 100644 index 0000000000000000000000000000000000000000..01744a444b3d16ebcfd79cdfb7144bf705c7944f --- /dev/null +++ b/src/components/table/table-tr.vue @@ -0,0 +1,46 @@ + + diff --git a/src/components/table/table.vue b/src/components/table/table.vue new file mode 100644 index 0000000000000000000000000000000000000000..2afbb43fe8424fbbd5c5e8839d68a65c8549f9ef --- /dev/null +++ b/src/components/table/table.vue @@ -0,0 +1,1567 @@ + + diff --git a/src/components/table/util.js b/src/components/table/util.js new file mode 100644 index 0000000000000000000000000000000000000000..21c3eb809a997660592cc6615066c8226ce05346 --- /dev/null +++ b/src/components/table/util.js @@ -0,0 +1,93 @@ +import { deepCopy } from '../../utils/assist'; + +const convertColumnOrder = (columns, fixedType) => { + let list = []; + let other = []; + columns.forEach((col) => { + if (col.fixed && col.fixed === fixedType) { + list.push(col); + } else { + other.push(col); + } + }); + return list.concat(other); +}; + +export {convertColumnOrder}; + +// set forTableHead to true when convertToRows, false in normal cases like table.vue +const getAllColumns = (cols, forTableHead = false) => { + const columns = deepCopy(cols); + const result = []; + columns.forEach((column) => { + if (column.children) { + if (forTableHead) result.push(column); + result.push.apply(result, getAllColumns(column.children, forTableHead)); + } else { + result.push(column); + } + }); + return result; +}; + +export {getAllColumns}; + +const convertToRows = (columns, fixedType = false) => { + const originColumns = fixedType ? fixedType === 'left' ? deepCopy(convertColumnOrder(columns, 'left')) : deepCopy(convertColumnOrder(columns, 'right')) : deepCopy(columns); + let maxLevel = 1; + const traverse = (column, parent) => { + if (parent) { + column.level = parent.level + 1; + if (maxLevel < column.level) { + maxLevel = column.level; + } + } + if (column.children) { + let colSpan = 0; + column.children.forEach((subColumn) => { + traverse(subColumn, column); + colSpan += subColumn.colSpan; + }); + column.colSpan = colSpan; + } else { + column.colSpan = 1; + } + }; + + originColumns.forEach((column) => { + column.level = 1; + traverse(column); + }); + + const rows = []; + for (let i = 0; i < maxLevel; i++) { + rows.push([]); + } + + const allColumns = getAllColumns(originColumns, true); + + allColumns.forEach((column) => { + if (!column.children) { + column.rowSpan = maxLevel - column.level + 1; + } else { + column.rowSpan = 1; + } + rows[column.level - 1].push(column); + }); + + return rows; +}; + +export {convertToRows}; + +const getRandomStr = function (len = 32) { + const $chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'; + const maxPos = $chars.length; + let str = ''; + for (let i = 0; i < len; i++) { + str += $chars.charAt(Math.floor(Math.random() * maxPos)); + } + return str; +}; + +export {getRandomStr}; \ No newline at end of file diff --git a/src/components/tabs/index.js b/src/components/tabs/index.js new file mode 100644 index 0000000000000000000000000000000000000000..31c21799bf6054d482ffe24dfe90dcbf6c03130e --- /dev/null +++ b/src/components/tabs/index.js @@ -0,0 +1,3 @@ +import Tabs from './tabs.vue'; + +export default Tabs; diff --git a/src/components/tabs/pane.vue b/src/components/tabs/pane.vue new file mode 100644 index 0000000000000000000000000000000000000000..dd7662118b8a90781cb12498d697bd8da538ce14 --- /dev/null +++ b/src/components/tabs/pane.vue @@ -0,0 +1,105 @@ + + diff --git a/src/components/tabs/tabs.vue b/src/components/tabs/tabs.vue new file mode 100644 index 0000000000000000000000000000000000000000..bd0e6a52c385ea3a5f19c83f0108b3eecb9ea522 --- /dev/null +++ b/src/components/tabs/tabs.vue @@ -0,0 +1,636 @@ + + diff --git a/src/components/tag-select-option/index.js b/src/components/tag-select-option/index.js new file mode 100644 index 0000000000000000000000000000000000000000..1aaf07897b49bde97248d031d331b4c7f603b4f1 --- /dev/null +++ b/src/components/tag-select-option/index.js @@ -0,0 +1,3 @@ +import TagSelectOption from '../tag-select/tag-select-option.vue' + +export default TagSelectOption; diff --git a/src/components/tag-select/index.js b/src/components/tag-select/index.js new file mode 100644 index 0000000000000000000000000000000000000000..fd8031a2155455bae974d654159a48f756ee35e1 --- /dev/null +++ b/src/components/tag-select/index.js @@ -0,0 +1,3 @@ +import TagSelect from './tag-select.vue'; + +export default TagSelect; diff --git a/src/components/tag-select/tag-select-option.vue b/src/components/tag-select/tag-select-option.vue new file mode 100644 index 0000000000000000000000000000000000000000..56870790543b78b946cf02ce68889e4ff240b861 --- /dev/null +++ b/src/components/tag-select/tag-select-option.vue @@ -0,0 +1,61 @@ + + diff --git a/src/components/tag-select/tag-select.vue b/src/components/tag-select/tag-select.vue new file mode 100644 index 0000000000000000000000000000000000000000..4df697c6c353c93279b734294544b1a657f2c0c3 --- /dev/null +++ b/src/components/tag-select/tag-select.vue @@ -0,0 +1,140 @@ + + diff --git a/src/components/tag/index.js b/src/components/tag/index.js new file mode 100644 index 0000000000000000000000000000000000000000..d158fbb885a2fcb47109fdaeffb9c2031371e263 --- /dev/null +++ b/src/components/tag/index.js @@ -0,0 +1,2 @@ +import Tag from './tag.vue'; +export default Tag; \ No newline at end of file diff --git a/src/components/tag/tag.vue b/src/components/tag/tag.vue new file mode 100644 index 0000000000000000000000000000000000000000..ea9eb9d4fe2c173516832ac58e98fe7661fee9b1 --- /dev/null +++ b/src/components/tag/tag.vue @@ -0,0 +1,146 @@ + + diff --git a/src/components/text/index.js b/src/components/text/index.js new file mode 100644 index 0000000000000000000000000000000000000000..c67359583c91baac90cc50ac6fca0d21bd024a8b --- /dev/null +++ b/src/components/text/index.js @@ -0,0 +1,3 @@ +import Text from '../typography/text.vue'; + +export default Text; diff --git a/src/components/time-picker/index.js b/src/components/time-picker/index.js new file mode 100644 index 0000000000000000000000000000000000000000..4dfd732bf53299ca09aa6a03dd32b0260dda881d --- /dev/null +++ b/src/components/time-picker/index.js @@ -0,0 +1,2 @@ +import TimePicker from '../date-picker/picker/time-picker'; +export default TimePicker; \ No newline at end of file diff --git a/src/components/time/index.js b/src/components/time/index.js new file mode 100644 index 0000000000000000000000000000000000000000..90c60880dfd66f9e59b6807979ba3a8f0b07fa27 --- /dev/null +++ b/src/components/time/index.js @@ -0,0 +1,2 @@ +import Time from './time.vue'; +export default Time; \ No newline at end of file diff --git a/src/components/time/time.js b/src/components/time/time.js new file mode 100644 index 0000000000000000000000000000000000000000..f2126898456897adf5b5078c66c9761aa964cb97 --- /dev/null +++ b/src/components/time/time.js @@ -0,0 +1,87 @@ +/** + * @param {Number} timeStamp 判断时间戳格式是否是毫秒 + * @returns {Boolean} + */ +// const isMillisecond = timeStamp => { +// const timeStr = String(timeStamp) +// return timeStr.length > 10 +// } + +/** + * @param {Number} timeStamp 传入的时间戳 + * @param {Number} currentTime 当前时间时间戳 + * @returns {Boolean} 传入的时间戳是否早于当前时间戳 + */ +const isEarly = (timeStamp, currentTime) => { + return timeStamp <= currentTime; +}; + +/** + * @param {Number} num 数值 + * @returns {String} 处理后的字符串 + * @description 如果传入的数值小于10,即位数只有1位,则在前面补充0 + */ +const getHandledValue = num => { + return num < 10 ? '0' + num : num; +}; + +/** + * @param {Number} timeStamp 传入的时间戳 + * @param {Number} startType 要返回的时间字符串的格式类型,传入'year'则返回年开头的完整时间 + */ +const getDate = (timeStamp, startType) => { + const d = new Date(timeStamp); + const year = d.getFullYear(); + const month = getHandledValue(d.getMonth() + 1); + const date = getHandledValue(d.getDate()); + const hours = getHandledValue(d.getHours()); + const minutes = getHandledValue(d.getMinutes()); + const second = getHandledValue(d.getSeconds()); + let resStr = ''; + if (startType === 'year') resStr = year + '-' + month + '-' + date + ' ' + hours + ':' + minutes + ':' + second; + else resStr = month + '-' + date + ' ' + hours + ':' + minutes; + return resStr; +}; + +/** + * @param {String|Number} timeStamp 时间戳 + * @returns {String} 相对时间字符串 + */ +export const getRelativeTime = (timeStamp, locale) => { + // 判断当前传入的时间戳是秒格式还是毫秒 + // const IS_MILLISECOND = true; + // 如果是毫秒格式则转为秒格式 + // if (IS_MILLISECOND) Math.floor(timeStamp /= 1000); + // 传入的时间戳可以是数值或字符串类型,这里统一转为数值类型 + // timeStamp = Number(timeStamp); + // 获取当前时间时间戳 + // const currentTime = Math.floor(Date.parse(new Date()) / 1000); + const currentTime = (new Date()).getTime(); + + // 判断传入时间戳是否早于当前时间戳 + const IS_EARLY = isEarly(timeStamp, currentTime); + // 获取两个时间戳差值 + let diff = currentTime - timeStamp; + // 如果IS_EARLY为false则差值取反 + if (!IS_EARLY) diff = -diff; + let resStr = ''; + let dirStr = IS_EARLY ? (locale('i.time.before') || '前') : (locale('i.time.after') || '后'); + + if (diff < 1000) resStr = locale('i.time.just') || '刚刚'; + // 少于等于59秒 + else if (diff < 60000) resStr = parseInt(diff / 1000) + (locale('i.time.seconds') || '秒') + dirStr; + // 多于59秒,少于等于59分钟59秒 + else if (diff >= 60000 && diff < 3600000) resStr = Math.floor(diff / 60000) + (locale('i.time.minutes') || '分钟') + dirStr; + // 多于59分钟59秒,少于等于23小时59分钟59秒 + else if (diff >= 3600000 && diff < 86400000) resStr = Math.floor(diff / 3600000) + (locale('i.time.hours') || '小时') + dirStr; + // 多于23小时59分钟59秒,少于等于29天59分钟59秒 + else if (diff >= 86400000 && diff < 2623860000) resStr = Math.floor(diff / 86400000) + (locale('i.time.days') || '天') + dirStr; + // 多于29天59分钟59秒,少于364天23小时59分钟59秒,且传入的时间戳早于当前 + else if (diff >= 2623860000 && diff <= 31567860000 && IS_EARLY) resStr = getDate(timeStamp); + else resStr = getDate(timeStamp, 'year'); + return resStr; +}; + +export default function (timestamp, locale) { + return getRelativeTime(timestamp, locale); +} diff --git a/src/components/time/time.vue b/src/components/time/time.vue new file mode 100644 index 0000000000000000000000000000000000000000..8b4d0ebbbe6597becdd5e87de0cfb9f9b49727d7 --- /dev/null +++ b/src/components/time/time.vue @@ -0,0 +1,111 @@ + + diff --git a/src/components/timeline-item/index.js b/src/components/timeline-item/index.js new file mode 100644 index 0000000000000000000000000000000000000000..98df7bb0e1d6705b9f5cb20b90df8cff23aa009a --- /dev/null +++ b/src/components/timeline-item/index.js @@ -0,0 +1,3 @@ +import TimelineItem from '../timeline/timeline-item.vue'; + +export default TimelineItem; \ No newline at end of file diff --git a/src/components/timeline/index.js b/src/components/timeline/index.js new file mode 100644 index 0000000000000000000000000000000000000000..962edb30fc6262b75ad0a7ffeb4922ea241ff3e4 --- /dev/null +++ b/src/components/timeline/index.js @@ -0,0 +1,3 @@ +import Timeline from './timeline.vue'; + +export default Timeline; diff --git a/src/components/timeline/timeline-item.vue b/src/components/timeline/timeline-item.vue new file mode 100644 index 0000000000000000000000000000000000000000..ffb3e0c701645bf1122d3a274a0a46c85f70dc6a --- /dev/null +++ b/src/components/timeline/timeline-item.vue @@ -0,0 +1,66 @@ + + diff --git a/src/components/timeline/timeline.vue b/src/components/timeline/timeline.vue new file mode 100644 index 0000000000000000000000000000000000000000..681023ca4854abed7a78b3786b68ae38b49d8f5a --- /dev/null +++ b/src/components/timeline/timeline.vue @@ -0,0 +1,28 @@ + + diff --git a/src/components/title/index.js b/src/components/title/index.js new file mode 100644 index 0000000000000000000000000000000000000000..27236db7585ffb23addf4c9218508e4180faeb75 --- /dev/null +++ b/src/components/title/index.js @@ -0,0 +1,3 @@ +import Title from '../typography/title.vue'; + +export default Title; diff --git a/src/components/tooltip/index.js b/src/components/tooltip/index.js new file mode 100644 index 0000000000000000000000000000000000000000..f861953a490ccecbd4c32d933adebac9dcf4e8d0 --- /dev/null +++ b/src/components/tooltip/index.js @@ -0,0 +1,3 @@ +import Tooltip from './tooltip.vue'; + +export default Tooltip; \ No newline at end of file diff --git a/src/components/tooltip/tooltip.vue b/src/components/tooltip/tooltip.vue new file mode 100644 index 0000000000000000000000000000000000000000..f3a8b4eaa5e1bb1639a25ce20392bcd5f44708b0 --- /dev/null +++ b/src/components/tooltip/tooltip.vue @@ -0,0 +1,154 @@ + + diff --git a/src/components/transfer/index.js b/src/components/transfer/index.js new file mode 100644 index 0000000000000000000000000000000000000000..85a6ab867ec48c77c891e2f936a7bf49faaa3da7 --- /dev/null +++ b/src/components/transfer/index.js @@ -0,0 +1,2 @@ +import Transfer from './transfer.vue'; +export default Transfer; \ No newline at end of file diff --git a/src/components/transfer/list.vue b/src/components/transfer/list.vue new file mode 100644 index 0000000000000000000000000000000000000000..345ca7dc4a64682d3ee00e88c42e390ce9f876af --- /dev/null +++ b/src/components/transfer/list.vue @@ -0,0 +1,143 @@ + + diff --git a/src/components/transfer/operation.vue b/src/components/transfer/operation.vue new file mode 100644 index 0000000000000000000000000000000000000000..27f1217767a81c53b783f12b78c7662e848b7757 --- /dev/null +++ b/src/components/transfer/operation.vue @@ -0,0 +1,45 @@ + + diff --git a/src/components/transfer/search.vue b/src/components/transfer/search.vue new file mode 100644 index 0000000000000000000000000000000000000000..e09bec49bc6d05b05a1b71c18cc2f360d7cbcdea --- /dev/null +++ b/src/components/transfer/search.vue @@ -0,0 +1,49 @@ + + diff --git a/src/components/transfer/transfer.vue b/src/components/transfer/transfer.vue new file mode 100644 index 0000000000000000000000000000000000000000..9ff9b8ee30e49980f6ecbfedda0b9927df68cdc7 --- /dev/null +++ b/src/components/transfer/transfer.vue @@ -0,0 +1,248 @@ + diff --git a/src/components/tree-select/index.js b/src/components/tree-select/index.js new file mode 100644 index 0000000000000000000000000000000000000000..76f559fd9c8cd16862459d32a76590b1bbbac0e3 --- /dev/null +++ b/src/components/tree-select/index.js @@ -0,0 +1,2 @@ +import TreeSelect from './tree-select.vue'; +export default TreeSelect; \ No newline at end of file diff --git a/src/components/tree-select/tree-select.vue b/src/components/tree-select/tree-select.vue new file mode 100644 index 0000000000000000000000000000000000000000..50f43d38cd59a8a615433f9490bf7490e725c22f --- /dev/null +++ b/src/components/tree-select/tree-select.vue @@ -0,0 +1,219 @@ + + diff --git a/src/components/tree/index.js b/src/components/tree/index.js new file mode 100644 index 0000000000000000000000000000000000000000..d1a1ccbdc10d3774963bfb7b9ea0ba1f24562f5e --- /dev/null +++ b/src/components/tree/index.js @@ -0,0 +1,2 @@ +import Tree from './tree.vue'; +export default Tree; \ No newline at end of file diff --git a/src/components/tree/node.vue b/src/components/tree/node.vue new file mode 100644 index 0000000000000000000000000000000000000000..52a95650a5743835fc5696289f645235532fc7b7 --- /dev/null +++ b/src/components/tree/node.vue @@ -0,0 +1,246 @@ + + diff --git a/src/components/tree/render.js b/src/components/tree/render.js new file mode 100644 index 0000000000000000000000000000000000000000..61e8019a2fc0f38bf9f2b982a5c6614e01e2ea90 --- /dev/null +++ b/src/components/tree/render.js @@ -0,0 +1,18 @@ +import { h } from 'vue'; + +export default { + name: 'RenderCell', + props: { + render: Function, + data: Object, + node: Array + }, + render () { + const params = { + root: this.node[0], + node: this.node[1], + data: this.data + }; + return this.render(h, params); + } +}; diff --git a/src/components/tree/tree.vue b/src/components/tree/tree.vue new file mode 100644 index 0000000000000000000000000000000000000000..5947e3bd0f178513e738304ff23150beb0f8dfc6 --- /dev/null +++ b/src/components/tree/tree.vue @@ -0,0 +1,264 @@ + + diff --git a/src/components/trend/index.js b/src/components/trend/index.js new file mode 100644 index 0000000000000000000000000000000000000000..051f26bb9bcc79c8e5aa18d107d1014f84e9d39d --- /dev/null +++ b/src/components/trend/index.js @@ -0,0 +1,2 @@ +import Trend from './trend.vue'; +export default Trend; \ No newline at end of file diff --git a/src/components/trend/trend.vue b/src/components/trend/trend.vue new file mode 100644 index 0000000000000000000000000000000000000000..10d4d5a41002a9997dd87275168d265c53c3966c --- /dev/null +++ b/src/components/trend/trend.vue @@ -0,0 +1,60 @@ + + diff --git a/src/components/typography/base.vue b/src/components/typography/base.vue new file mode 100644 index 0000000000000000000000000000000000000000..bfb0d5a9b8130a10431d9470184262a29debda44 --- /dev/null +++ b/src/components/typography/base.vue @@ -0,0 +1,384 @@ + diff --git a/src/components/typography/index.js b/src/components/typography/index.js new file mode 100644 index 0000000000000000000000000000000000000000..35513fa6b00d55cde11633575e728a95b3788e76 --- /dev/null +++ b/src/components/typography/index.js @@ -0,0 +1,3 @@ +import Typography from './typography.vue'; + +export default Typography; diff --git a/src/components/typography/link.vue b/src/components/typography/link.vue new file mode 100644 index 0000000000000000000000000000000000000000..a4ec9378adf02b55bc3788dfd160b4dfbe6fd12e --- /dev/null +++ b/src/components/typography/link.vue @@ -0,0 +1,17 @@ + diff --git a/src/components/typography/paragraph.vue b/src/components/typography/paragraph.vue new file mode 100644 index 0000000000000000000000000000000000000000..450b1acf6f1c3cb80996d16cde3434b4abf25a31 --- /dev/null +++ b/src/components/typography/paragraph.vue @@ -0,0 +1,17 @@ + diff --git a/src/components/typography/props.js b/src/components/typography/props.js new file mode 100644 index 0000000000000000000000000000000000000000..77fe3163acfbad8decb0275e3b97f6ded076078d --- /dev/null +++ b/src/components/typography/props.js @@ -0,0 +1,180 @@ +import { getCurrentInstance } from 'vue'; +import { oneOf } from '../../utils/assist'; +import mixinsLink from '../../mixins/link'; + +const defaultCopyConfig = { + tooltips: ['复制', '复制成功'], + showTip: false, + successTip: '复制成功', + errorTip: '复制失败' +}; + +const defaultEditConfig = { + tooltip: '编辑', + editing: false, + maxlength: '', + autosize: true, + triggerType: 'icon' // icon | text | both +}; + +const defaultEllipsisConfig = { + rows: 1, + tooltip: false, + suffix: false, + expandable: false, + symbol: '展开' +}; + +export default { + emits: ['update:modelValue'], + mixins: [ mixinsLink ], + props: { + type: { + validator (value) { + return oneOf(value, ['secondary', 'success', 'warning', 'danger', '']); + }, + default: '' + }, + copyable: { + type: Boolean, + default: false + }, + copyText: { + type: String, + default: '' + }, + copyConfig: { + type: Object, + default () { + const global = getCurrentInstance().appContext.config.globalProperties; + return !global.$VIEWUI || global.$VIEWUI.typography.copyConfig === '' ? defaultCopyConfig : global.$VIEWUI.typography.copyConfig; + } + }, + editable: { + type: Boolean, + default: false + }, + editConfig: { + type: Object, + default () { + const global = getCurrentInstance().appContext.config.globalProperties; + return !global.$VIEWUI || global.$VIEWUI.typography.editConfig === '' ? defaultEditConfig : global.$VIEWUI.typography.editConfig; + } + }, + ellipsis: { + type: Boolean, + default: false + }, + ellipsisConfig: { + type: Object, + default () { + const global = getCurrentInstance().appContext.config.globalProperties; + return !global.$VIEWUI || global.$VIEWUI.typography.ellipsisConfig === '' ? defaultEllipsisConfig : global.$VIEWUI.typography.ellipsisConfig; + } + }, + disabled: { + type: Boolean, + default: false + }, + code: { + type: Boolean, + default: false + }, + delete: { + type: Boolean, + default: false + }, + keyboard: { + type: Boolean, + default: false + }, + mark: { + type: Boolean, + default: false + }, + strong: { + type: Boolean, + default: false + }, + underline: { + type: Boolean, + default: false + }, + italic: { + type: Boolean, + default: false + }, + modelValue: { + type: String, + default: '' + }, + // 以下是 tooltip 部分选项,用于 ellipsis + transfer: { + type: Boolean, + default () { + const global = getCurrentInstance().appContext.config.globalProperties; + return !global.$VIEWUI || global.$VIEWUI.transfer === '' ? false : global.$VIEWUI.transfer; + } + }, + theme: { + validator (value) { + return oneOf(value, ['dark', 'light']); + }, + default: 'dark' + }, + maxWidth: { + type: [String, Number], + default: 250 + }, + placement: { + validator (value) { + return oneOf(value, ['top', 'top-start', 'top-end', 'bottom', 'bottom-start', 'bottom-end', 'left', 'left-start', 'left-end', 'right', 'right-start', 'right-end']); + }, + default: 'top' + } + }, + computed: { + isHrefPattern () { + const { to } = this; + return !!to; + }, + linkProps () { + if (this.isHrefPattern) { + const { linkUrl, target } = this; + return { href: linkUrl, target }; + } else { + return {}; + } + }, + mergedCopyConfig () { + return Object.assign({}, defaultCopyConfig, this.copyConfig); + }, + mergedEditConfig () { + return Object.assign({}, defaultEditConfig, this.editConfig); + }, + mergedEllipsisConfig () { + return Object.assign({}, defaultEllipsisConfig, this.ellipsisConfig); + } + + }, + methods: { + commonSlots () { + const slots = {}; + + if (this.$slots.default) slots.default = () => this.$slots.default(); + if (this.$slots.copyIcon) slots.copyIcon = (props) => this.$slots.copyIcon(props); + if (this.$slots.editIcon) slots.editIcon = (props) => this.$slots.editIcon(props); + if (this.$slots.enterIcon) slots.enterIcon = (props) => this.$slots.enterIcon(props); + + return slots; + }, + commonEvents () { + return { + 'onUpdate:modelValue': this.handleOnUpdateModelValue + } + }, + handleOnUpdateModelValue (value) { + this.$emit('update:modelValue', value); + } + } +} diff --git a/src/components/typography/text.vue b/src/components/typography/text.vue new file mode 100644 index 0000000000000000000000000000000000000000..e50e4c9dd8defe19e9b3f1caa9dcf8a49e45f603 --- /dev/null +++ b/src/components/typography/text.vue @@ -0,0 +1,17 @@ + diff --git a/src/components/typography/title.vue b/src/components/typography/title.vue new file mode 100644 index 0000000000000000000000000000000000000000..bcf3a4f1135c445c9aaabc53c1a82967e1fa3a69 --- /dev/null +++ b/src/components/typography/title.vue @@ -0,0 +1,27 @@ + diff --git a/src/components/typography/typography.vue b/src/components/typography/typography.vue new file mode 100644 index 0000000000000000000000000000000000000000..766ed6e6acb34de53a3a68ef3957e89ecca10cfc --- /dev/null +++ b/src/components/typography/typography.vue @@ -0,0 +1,10 @@ + + diff --git a/src/components/upload/ajax.js b/src/components/upload/ajax.js new file mode 100644 index 0000000000000000000000000000000000000000..911affd50c06528fe2e3b20f9dc18dffb01baf59 --- /dev/null +++ b/src/components/upload/ajax.js @@ -0,0 +1,82 @@ +// https://github.com/ElemeFE/element/blob/dev/packages/upload/src/ajax.js + +function getError(action, option, xhr) { + const msg = `fail to post ${action} ${xhr.status}'`; + const err = new Error(msg); + err.status = xhr.status; + err.method = 'post'; + err.url = action; + return err; +} + +function getBody(xhr) { + const text = xhr.responseText || xhr.response; + if (!text) { + return text; + } + + try { + return JSON.parse(text); + } catch (e) { + return text; + } +} + +export default function upload(option) { + if (typeof XMLHttpRequest === 'undefined') { + return; + } + + const xhr = new XMLHttpRequest(); + const action = option.action; + + if (xhr.upload) { + xhr.upload.onprogress = function progress(e) { + if (e.total > 0) { + e.percent = e.loaded / e.total * 100; + } + option.onProgress(e); + }; + } + + const formData = new FormData(); + + if (option.data) { + Object.keys(option.data).map(key => { + formData.append(key, option.data[key]); + }); + } + + formData.append(option.filename, option.file); + + xhr.onerror = function error(e) { + option.onError(e); + }; + + xhr.onload = function onload() { + if (xhr.status < 200 || xhr.status >= 300) { + return option.onError(getError(action, option, xhr), getBody(xhr)); + } + + option.onSuccess(getBody(xhr)); + }; + + xhr.open('post', action, true); + + if (option.withCredentials && 'withCredentials' in xhr) { + xhr.withCredentials = true; + } + + const headers = option.headers || {}; + + // if (headers['X-Requested-With'] !== null) { + // xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest'); + // } + + for (let item in headers) { + if (headers.hasOwnProperty(item) && headers[item] !== null) { + xhr.setRequestHeader(item, headers[item]); + } + } + xhr.send(formData); +} diff --git a/src/components/upload/index.js b/src/components/upload/index.js new file mode 100644 index 0000000000000000000000000000000000000000..59bcf38957ba2040775c2372ca8d233b7838213a --- /dev/null +++ b/src/components/upload/index.js @@ -0,0 +1,3 @@ +import Upload from './upload.vue'; + +export default Upload; \ No newline at end of file diff --git a/src/components/upload/upload-list.vue b/src/components/upload/upload-list.vue new file mode 100644 index 0000000000000000000000000000000000000000..3b6f074c105f2b89923d6e8019fb07a08d5decad --- /dev/null +++ b/src/components/upload/upload-list.vue @@ -0,0 +1,96 @@ + + diff --git a/src/components/upload/upload.vue b/src/components/upload/upload.vue new file mode 100644 index 0000000000000000000000000000000000000000..81a48ad4ea24d73601055e16cd4409a3e8220789 --- /dev/null +++ b/src/components/upload/upload.vue @@ -0,0 +1,350 @@ + + diff --git a/src/components/user-name/index.js b/src/components/user-name/index.js new file mode 100644 index 0000000000000000000000000000000000000000..6ac1e839bccb828a3f340e63f5f89ea11018c455 --- /dev/null +++ b/src/components/user-name/index.js @@ -0,0 +1,3 @@ +import UserName from '../login/user-name.vue'; + +export default UserName; diff --git a/src/components/word-count/index.js b/src/components/word-count/index.js new file mode 100644 index 0000000000000000000000000000000000000000..de08c1dc56a3605fcc689490f0f6493c66602e60 --- /dev/null +++ b/src/components/word-count/index.js @@ -0,0 +1,2 @@ +import WordCount from './word-count.vue'; +export default WordCount; \ No newline at end of file diff --git a/src/components/word-count/word-count.vue b/src/components/word-count/word-count.vue new file mode 100644 index 0000000000000000000000000000000000000000..d1671624b58c15635adf1d6371ca1c25c2dfa33d --- /dev/null +++ b/src/components/word-count/word-count.vue @@ -0,0 +1,70 @@ + + diff --git a/src/directives/clickoutside.js b/src/directives/clickoutside.js new file mode 100644 index 0000000000000000000000000000000000000000..0329b555d3e6f4f5c708151d4fc5cfcf2d94f51c --- /dev/null +++ b/src/directives/clickoutside.js @@ -0,0 +1,18 @@ +import { isClient } from '../utils/index'; + +export default { + beforeMount (el, binding, vnode) { + function documentHandler (e) { + if (el.contains(e.target)) { + return false; + } + binding.value(e); + } + el.__vueClickOutside__ = documentHandler; + isClient && document.addEventListener('click', documentHandler); + }, + unmounted (el, binding) { + isClient && document.removeEventListener('click', el.__vueClickOutside__); + delete el.__vueClickOutside__; + } +}; diff --git a/src/directives/line-clamp.js b/src/directives/line-clamp.js new file mode 100644 index 0000000000000000000000000000000000000000..54c373b4aae70f38e0afdb59c29f2141a86e8f87 --- /dev/null +++ b/src/directives/line-clamp.js @@ -0,0 +1,22 @@ +/** + * 限制文本最多显示几行,以...结束,仅适用于 webkit 内核浏览器 + * */ +import { addClass, removeClass } from '../utils/assist.js'; + +export default { + mounted (el, binding) { + if (binding.value) { + addClass(el, 'ivu-line-clamp'); + el.style['-webkit-line-clamp'] = binding.value; + } + }, + updated (el, binding) { + if (binding.value) { + el.style['-webkit-line-clamp'] = binding.value; + } + }, + unmounted (el) { + removeClass(el, 'ivu-line-clamp'); + el.style['-webkit-line-clamp'] = null; + } +} diff --git a/src/directives/resize.js b/src/directives/resize.js new file mode 100644 index 0000000000000000000000000000000000000000..21853e8b92efd007707b00d340636dfcca69c240 --- /dev/null +++ b/src/directives/resize.js @@ -0,0 +1,21 @@ +import elementResizeDetectorMaker from 'element-resize-detector'; + +export default { + // 使用 bind,会在初始化时调用两次handler + mounted (el, binding) { + function resizeHandler (e) { + binding.value(e); + } + el.__resizeHandler__ = resizeHandler; + el.__observer__ = elementResizeDetectorMaker(); + el.__observer__.listenTo(el, resizeHandler); + }, + updated () { + + }, + unmounted (el, binding) { + el.__observer__.removeListener(el, el.__resizeHandler__); + delete el.__resizeHandler__; + delete el.__observer__; + } +} diff --git a/src/directives/style.js b/src/directives/style.js new file mode 100644 index 0000000000000000000000000000000000000000..95638c30164f22a6b6ee895590bb0c9e459737d6 --- /dev/null +++ b/src/directives/style.js @@ -0,0 +1,126 @@ +function unit(value) { + return String(value).endsWith('%') ? '' : 'px'; +} + +export default { + display: { + mounted (el, binding) { + if (binding.value) { + el.style.display = binding.value; + } + }, + updated (el, binding) { + if (binding.value) { + el.style.display = binding.value; + } + }, + unmounted (el) { + el.style.display = null; + } + }, + width: { + mounted (el, binding) { + if (binding.value) { + el.style.width = binding.value + unit(binding.value); + } + }, + updated (el, binding) { + if (binding.value) { + el.style.width = binding.value + unit(binding.value); + } + }, + unmounted (el) { + el.style.width = null; + } + }, + height: { + mounted (el, binding) { + if (binding.value) { + el.style.height = binding.value + unit(binding.value); + } + }, + updated (el, binding) { + if (binding.value) { + el.style.height = binding.value + unit(binding.value); + } + }, + unmounted (el) { + el.style.height = null; + } + }, + margin: { + mounted (el, binding) { + if (binding.value) { + el.style.margin = binding.value + unit(binding.value); + } + }, + updated (el, binding) { + if (binding.value) { + el.style.margin = binding.value + unit(binding.value); + } + }, + unmounted (el) { + el.style.margin = null; + } + }, + padding: { + mounted (el, binding) { + if (binding.value) { + el.style.padding = binding.value + unit(binding.value); + } + }, + updated (el, binding) { + if (binding.value) { + el.style.padding = binding.value + unit(binding.value); + } + }, + unmounted (el) { + el.style.padding = null; + } + }, + font: { + mounted (el, binding) { + if (binding && binding.value) { + el.style.fontSize = `${binding.value}px`; + } + }, + updated (el, binding) { + if (binding && binding.value) { + el.style.fontSize = `${binding.value}px`; + } + }, + unmounted (el) { + el.style.fontSize = null; + } + }, + color: { + mounted (el, binding) { + if (binding.value) { + el.style.color = binding.value; + } + }, + updated (el, binding) { + if (binding.value) { + el.style.color = binding.value; + } + }, + unmounted (el) { + el.style.color = null; + } + }, + bgColor: { + mounted (el, binding) { + if (binding.value) { + el.style.backgroundColor = binding.value; + } + }, + updated (el, binding) { + if (binding.value) { + el.style.backgroundColor = binding.value; + } + }, + unmounted (el) { + el.style.backgroundColor = null; + } + }, +} diff --git a/src/directives/transfer-dom.js b/src/directives/transfer-dom.js new file mode 100644 index 0000000000000000000000000000000000000000..99d02ce65db47055787cbe793ee4294ca6bf47f2 --- /dev/null +++ b/src/directives/transfer-dom.js @@ -0,0 +1,80 @@ +// Thanks to: https://github.com/airyland/vux/blob/v2/src/directives/transfer-dom/index.js +// Thanks to: https://github.com/calebroseland/vue-dom-portal +import { isClient } from '../utils/index'; + +/** + * Get target DOM Node + * @param {(Node|string|Boolean)} [node=document.body] DOM Node, CSS selector, or Boolean + * @return {Node} The target that the el will be appended to + */ +function getTarget (node) { + if (!isClient) return; + if (node === void 0) { + node = document.body + } + if (node === true) { return document.body } + return node instanceof window.Node ? node : document.querySelector(node) +} + +const directive = { + inserted (el, { value }, vnode) { + if (!isClient) return; + if ( el.dataset && el.dataset.transfer !== 'true') return false; + el.className = el.className ? el.className + ' v-transfer-dom' : 'v-transfer-dom'; + const parentNode = el.parentNode; + if (!parentNode) return; + const home = document.createComment(''); + let hasMovedOut = false; + + if (value !== false) { + parentNode.replaceChild(home, el); // moving out, el is no longer in the document + getTarget(value).appendChild(el); // moving into new place + hasMovedOut = true + } + if (!el.__transferDomData) { + el.__transferDomData = { + parentNode: parentNode, + home: home, + target: getTarget(value), + hasMovedOut: hasMovedOut + } + } + }, + componentUpdated (el, { value }) { + if ( el.dataset && el.dataset.transfer !== 'true') return false; + // need to make sure children are done updating (vs. `update`) + const ref$1 = el.__transferDomData; + if (!ref$1) return; + // homes.get(el) + const parentNode = ref$1.parentNode; + const home = ref$1.home; + const hasMovedOut = ref$1.hasMovedOut; // recall where home is + + if (!hasMovedOut && value) { + // remove from document and leave placeholder + parentNode.replaceChild(home, el); + // append to target + getTarget(value).appendChild(el); + el.__transferDomData = Object.assign({}, el.__transferDomData, { hasMovedOut: true, target: getTarget(value) }); + } else if (hasMovedOut && value === false) { + // previously moved, coming back home + parentNode.replaceChild(el, home); + el.__transferDomData = Object.assign({}, el.__transferDomData, { hasMovedOut: false, target: getTarget(value) }); + } else if (value) { + // already moved, going somewhere else + getTarget(value).appendChild(el); + } + }, + unbind (el) { + if (el.dataset && el.dataset.transfer !== 'true') return false; + el.className = el.className.replace('v-transfer-dom', ''); + const ref$1 = el.__transferDomData; + if (!ref$1) return; + if (el.__transferDomData.hasMovedOut === true) { + el.__transferDomData.parentNode && el.__transferDomData.parentNode.appendChild(el) + } + el.__transferDomData = null + } +}; + +export default directive; diff --git a/src/directives/v-click-outside-x.js b/src/directives/v-click-outside-x.js new file mode 100644 index 0000000000000000000000000000000000000000..b4d4c32cfc3f7203eca891f2676218ac075062c9 --- /dev/null +++ b/src/directives/v-click-outside-x.js @@ -0,0 +1,219 @@ +const CLICK = 'click'; +const captureInstances = Object.create(null); +const nonCaptureInstances = Object.create(null); +const instancesList = [captureInstances, nonCaptureInstances]; + +/** + * The common event handler for bot capture and non-capture events. + * + * @param {!Object} context - The event context. + * @param {!Object} instances - The capture or non-capture registered instances. + * @param {Event} event - The event object. + * @returns {undefined} Default. + */ +const commonHandler = function _onCommonEvent(context, instances, event) { + const {target} = event; + + const itemIteratee = function _itemIteratee(item) { + const {el} = item; + + if (el !== target && !el.contains(target)) { + const {binding} = item; + + if (binding.modifiers.stop) { + event.stopPropagation(); + } + + if (binding.modifiers.prevent) { + event.preventDefault(); + } + + binding.value.call(context, event); + } + }; + + const keysIteratee = function _keysIteratee(eventName) { + return instances[eventName].forEach(itemIteratee); + }; + + Object.keys(instances).forEach(keysIteratee); +}; + +/** + * Event handler for capture events. + * + * @param {Event} event - The event object. + */ +const captureEventHandler = function onCaptureEvent(event) { + /* eslint-disable-next-line babel/no-invalid-this */ + commonHandler(this, captureInstances, event); +}; + +/** + * Event handler for non-capture events. + * + * @param {Event} event - The event object. + */ +const nonCaptureEventHandler = function onNonCaptureEvent(event) { + /* eslint-disable-next-line babel/no-invalid-this */ + commonHandler(this, nonCaptureInstances, event); +}; + +/** + * Get the correct event handler: Capture or non-capture. + * + * @param {boolean} useCapture - Indicate which handler to use; 'true' to use + * capture handler or 'false' for non-capture. + * @returns {Function} - The event handler. + */ +const getEventHandler = function _getEventHandler(useCapture) { + return useCapture ? captureEventHandler : nonCaptureEventHandler; +}; + +/** + * The directive definition. + * {@link https://vuejs.org/v2/guide/custom-directive.html|Custom directive} + * + * @namespace + * @property {!Object} $_captureInstances - Registered capture instances. + * @property {!Object} $_nonCaptureInstances - Registered non-capture instances. + * @property {Function} $_onCaptureEvent - Event handler for capture events. + * @property {Function} $_onNonCaptureEvent - Event handler for non-capture events. + * @property {Function} bind - Called only once, when the directive is first + * bound to the element. + * @property {Function} unbind - Called only once, when the directive is unbound + * from the element. + * @property {string} version - The version number of this release. + */ +export const directive = Object.defineProperties( + {}, + { + $_captureInstances: { + value: captureInstances, + }, + + $_nonCaptureInstances: { + value: nonCaptureInstances, + }, + + $_onCaptureEvent: { + value: captureEventHandler, + }, + + $_onNonCaptureEvent: { + value: nonCaptureEventHandler, + }, + + /** + * 注意,这里的 arg 修改为 capture,这样可以动态设置,原先的事件作为 modifiers + * */ + beforeMount: { + value: function bind(el, binding) { + if (typeof binding.value !== 'function') { + throw new TypeError('Binding value must be a function.'); + } + + let eventType; + const modifiers = binding.modifiers; + if (modifiers.click) eventType = 'click'; + else if (modifiers.mousedown) eventType = 'mousedown'; + else if (modifiers.touchstart) eventType = 'touchstart'; + else eventType = CLICK; + + const useCapture = binding.arg; + + const normalisedBinding = { + ...binding, + ...{ + modifiers: { + ...{ + capture: false, + prevent: false, + stop: false, + }, + ...binding.modifiers, + }, + }, + }; + + const instances = useCapture ? captureInstances : nonCaptureInstances; + + if (!Array.isArray(instances[eventType])) { + instances[eventType] = []; + } + + if (instances[eventType].push({el, binding: normalisedBinding}) === 1) { + if (typeof document === 'object' && document) { + document.addEventListener( + eventType, + getEventHandler(useCapture), + useCapture, + ); + } + } + }, + }, + + unmounted: { + value: function unbind(el) { + const compareElements = function _compareElements(item) { + return item.el !== el; + }; + + const instancesIteratee = function _instancesIteratee(instances) { + const instanceKeys = Object.keys(instances); + + if (instanceKeys.length) { + const useCapture = instances === captureInstances; + + const keysIteratee = function _keysIteratee(eventName) { + const newInstance = instances[eventName].filter(compareElements); + + if (newInstance.length) { + instances[eventName] = newInstance; + } else { + if (typeof document === 'object' && document) { + document.removeEventListener( + eventName, + getEventHandler(useCapture), + useCapture, + ); + } + + delete instances[eventName]; + } + }; + + instanceKeys.forEach(keysIteratee); + } + }; + + instancesList.forEach(instancesIteratee); + }, + }, + + /* Note: This needs to be manually updated to match package.json. */ + version: { + enumerable: true, + value: '3.7.1', + }, + }, +); + +/** + * @typedef {Function} Vue - The constructor. + * @property {Function} directive - You can register a global custom directive + * with the Vue.directive() method, passing in a directiveID followed by a + * definition object. + */ + +/** + * A Vue.js plugin should expose an install method. The method will be called + * with the Vue constructor as the first argument, along with possible options. + * {@link https://vuejs.org/v2/guide/plugins.html#Writing-a-Plugin|Writing a plugin}. + * + * @param {Vue} Vue - The Vue function. + */ +export function install(Vue) { + Vue.directive('click-outside', directive); +} diff --git a/src/index.js b/src/index.js new file mode 100644 index 0000000000000000000000000000000000000000..1714f7d683f163946cdd234196d0cd211fb80670 --- /dev/null +++ b/src/index.js @@ -0,0 +1,176 @@ +/* + * View UI Plus + * https://www.iviewui.com/ + * + * Copyright © ViewDeign 2019-present + * Released under the MIT license + * + */ +export * from './components'; +import * as components from './components'; +import localeFile from './locale/index'; + +// directives +import lineClamp from './directives/line-clamp'; +import resize from './directives/resize'; +import style from './directives/style'; + +// libraries +import dayjs from 'dayjs'; + +import pkg from '../package.json'; + +const directives = { + display: style.display, + width: style.width, + height: style.height, + margin: style.margin, + padding: style.padding, + font: style.font, + color: style.color, + 'bg-color': style.bgColor, + resize, + 'line-clamp': lineClamp +}; + +const ViewUI = { + ...components, + iButton: components.Button, + iCircle: components.Circle, + iCol: components.Col, + iContent: components.Content, + iForm: components.Form, + iFooter: components.Footer, + iHeader: components.Header, + iInput: components.Input, + iMenu: components.Menu, + iOption: components.Option, + iProgress: components.Progress, + iSelect: components.Select, + iSwitch: components.Switch, + iTable: components.Table, + iTime: components.Time +}; + +export const install = function(app, opts = {}) { + if (install.installed) return; + if (opts.locale) { + localeFile.use(opts.locale); + } + if (opts.i18n) { + localeFile.i18n(opts.i18n); + } + + Object.keys(ViewUI).forEach(key => { + app.component(key, ViewUI[key]); + // todo i-tag + }); + + Object.keys(directives).forEach(key => { + app.directive(key, directives[key]); + }); + + app.config.globalProperties.$VIEWUI = { + size: opts.size || '', + capture: 'capture' in opts ? opts.capture : true, + transfer: 'transfer' in opts ? opts.transfer : '', + cell: { + arrow: opts.cell ? opts.cell.arrow ? opts.cell.arrow : '' : '', + customArrow: opts.cell ? opts.cell.customArrow ? opts.cell.customArrow : '' : '', + arrowSize: opts.cell ? opts.cell.arrowSize ? opts.cell.arrowSize : '' : '' + }, + menu: { + arrow: opts.menu ? opts.menu.arrow ? opts.menu.arrow : '' : '', + customArrow: opts.menu ? opts.menu.customArrow ? opts.menu.customArrow : '' : '', + arrowSize: opts.menu ? opts.menu.arrowSize ? opts.menu.arrowSize : '' : '' + }, + modal: { + maskClosable: opts.modal ? 'maskClosable' in opts.modal ? opts.modal.maskClosable : '' : '' + }, + tabs: { + closeIcon: opts.tabs ? opts.tabs.closeIcon ? opts.tabs.closeIcon : '' : '', + customCloseIcon: opts.tabs ? opts.tabs.customCloseIcon ? opts.tabs.customCloseIcon : '' : '', + closeIconSize: opts.tabs ? opts.tabs.closeIconSize ? opts.tabs.closeIconSize : '' : '' + }, + select: { + arrow: opts.select ? opts.select.arrow ? opts.select.arrow : '' : '', + customArrow: opts.select ? opts.select.customArrow ? opts.select.customArrow : '' : '', + arrowSize: opts.select ? opts.select.arrowSize ? opts.select.arrowSize : '' : '' + }, + colorPicker: { + arrow: opts.colorPicker ? opts.colorPicker.arrow ? opts.colorPicker.arrow : '' : '', + customArrow: opts.colorPicker ? opts.colorPicker.customArrow ? opts.colorPicker.customArrow : '' : '', + arrowSize: opts.colorPicker ? opts.colorPicker.arrowSize ? opts.colorPicker.arrowSize : '' : '' + }, + cascader: { + arrow: opts.cascader ? opts.cascader.arrow ? opts.cascader.arrow : '' : '', + customArrow: opts.cascader ? opts.cascader.customArrow ? opts.cascader.customArrow : '' : '', + arrowSize: opts.cascader ? opts.cascader.arrowSize ? opts.cascader.arrowSize : '' : '', + itemArrow: opts.cascader ? opts.cascader.itemArrow ? opts.cascader.itemArrow : '' : '', + customItemArrow: opts.cascader ? opts.cascader.customItemArrow ? opts.cascader.customItemArrow : '' : '', + itemArrowSize: opts.cascader ? opts.cascader.itemArrowSize ? opts.cascader.itemArrowSize : '' : '' + }, + tree: { + arrow: opts.tree ? opts.tree.arrow ? opts.tree.arrow : '' : '', + customArrow: opts.tree ? opts.tree.customArrow ? opts.tree.customArrow : '' : '', + arrowSize: opts.tree ? opts.tree.arrowSize ? opts.tree.arrowSize : '' : '' + }, + datePicker: { + icon: opts.datePicker ? opts.datePicker.icon ? opts.datePicker.icon : '' : '', + customIcon: opts.datePicker ? opts.datePicker.customIcon ? opts.datePicker.customIcon : '' : '', + iconSize: opts.datePicker ? opts.datePicker.iconSize ? opts.datePicker.iconSize : '' : '' + }, + timePicker: { + icon: opts.timePicker ? opts.timePicker.icon ? opts.timePicker.icon : '' : '', + customIcon: opts.timePicker ? opts.timePicker.customIcon ? opts.timePicker.customIcon : '' : '', + iconSize: opts.timePicker ? opts.timePicker.iconSize ? opts.timePicker.iconSize : '' : '' + }, + typography: { + copyConfig: opts.typography ? opts.typography.copyConfig ? opts.typography.copyConfig : '' : '', + editConfig: opts.typography ? opts.typography.editConfig ? opts.typography.editConfig : '' : '', + ellipsisConfig: opts.typography ? opts.typography.ellipsisConfig ? opts.typography.ellipsisConfig : '' : '' + }, + space: { + size: opts.space ? opts.space.size ? opts.space.size : '' : '' + }, + image: { + toolbar: opts.image ? opts.image.toolbar ? opts.image.toolbar : '' : '' + } + } + app.config.globalProperties.$Spin = components.Spin; + app.config.globalProperties.$Loading = components.LoadingBar; + app.config.globalProperties.$Message = components.Message; + app.config.globalProperties.$Notice = components.Notice; + app.config.globalProperties.$Modal = components.Modal; + app.config.globalProperties.$ImagePreview = components.ImagePreview; + app.config.globalProperties.$Copy = components.Copy; + app.config.globalProperties.$ScrollIntoView = components.ScrollIntoView; + app.config.globalProperties.$ScrollTop = components.ScrollTop; + + app.config.globalProperties.$Date = dayjs; +}; + +export const version = pkg.version; + +export const locale = localeFile.use; + +export const i18n = localeFile.i18n; + +export const lang = (code) => { + const langObject = window['viewuiplus/locale'].default; + if (code === langObject.i.locale) localeFile.use(langObject); + else console.log(`The ${code} language pack is not loaded.`); // eslint-disable-line no-console +}; + +const API = { + version, + locale, + i18n, + install, + lang, + // Circle, + // Switch, + ...components +}; + +export default API; diff --git a/src/locale/format.js b/src/locale/format.js new file mode 100644 index 0000000000000000000000000000000000000000..a5944285f2fdf44b4a945e0ba237a2c3d5993faf --- /dev/null +++ b/src/locale/format.js @@ -0,0 +1,51 @@ +/** + * String format template + * - Inspired: + * https://github.com/Matt-Esch/string-template/index.js + */ + +const RE_NARGS = /(%|)\{([0-9a-zA-Z_]+)\}/g; + +export default function () { + function hasOwn(obj, key) { + return Object.prototype.hasOwnProperty.call(obj, key); + } + + /** + * template + * + * @param {String} string + * @param {Array} ...args + * @return {String} + */ + + function template(string, ...args) { + if (args.length === 1 && typeof args[0] === 'object') { + args = args[0]; + } + + if (!args || !args.hasOwnProperty) { + args = {}; + } + if (string === undefined) { + return ''; + } + + return string.replace(RE_NARGS, (match, prefix, i, index) => { + let result; + + if (string[index - 1] === '{' && string[index + match.length] === '}') { + return i; + } else { + result = hasOwn(args, i) ? args[i] : null; + if (result === null || result === undefined) { + return ''; + } + + return result; + } + }); + } + + return template; +} diff --git a/src/locale/index.js b/src/locale/index.js new file mode 100644 index 0000000000000000000000000000000000000000..b98a03e39710013b1994873bcc37cdbbe35570ff --- /dev/null +++ b/src/locale/index.js @@ -0,0 +1,63 @@ +import zhLang from './lang/zh-CN'; +import deepmerge from 'deepmerge'; +import Format from './format'; + +const format = Format(); +let lang = zhLang; +const langs = { + zh: zhLang +}; +let nowLang = null; +let merged = {}; +let vuei18n = null; +let i18nHandler = function () { + if (Reflect.has(this, '$t')) { + return this.$t(...arguments); + } + if (vuei18n && vuei18n.global) { + return vuei18n.global.t(...arguments); + } + if (vuei18n && vuei18n.locale) { + if (!merged[vuei18n.locale] || nowLang != vuei18n.locale) { + merged[vuei18n.locale] = true; + let localMessage = vuei18n.getLocaleMessage(vuei18n.locale) || {}; + let newLocalMessage = {}; + deepmerge(newLocalMessage, langs[vuei18n.locale], localMessage, { clone: true }) + lang = newLocalMessage; + vuei18n.setLocaleMessage(vuei18n.locale, newLocalMessage); + nowLang = vuei18n.locale; + } + return vuei18n.hlang(...arguments); + } +}; + +export const t = function (path, options) { + let value = i18nHandler.apply(this, arguments); + if (value !== null && value !== undefined) return value; + + const array = path.split('.'); + let current = lang; + + for (let i = 0, j = array.length; i < j; i++) { + const property = array[i]; + value = current[property]; + if (i === j - 1) return format(value, options); + if (!value) return ''; + current = value; + } + return ''; +}; + +export const use = function (l) { + lang = l || lang; +}; + +export const i18n = function (initI18n) { + vuei18n = initI18n; +}; + +export default { + use, + t, + i18n +}; diff --git a/src/locale/lang.js b/src/locale/lang.js new file mode 100644 index 0000000000000000000000000000000000000000..6c0af25ed60341900b2e79c07fbaaa171c945e24 --- /dev/null +++ b/src/locale/lang.js @@ -0,0 +1,15 @@ +// using with vue-i18n in CDN +/*eslint-disable */ +// import Vue from 'vue'; +// const isServer = Vue.prototype.$isServer; +import { isClient } from '../utils/index'; + +export default function (lang) { + if (isClient && typeof window.viewuiplus !== 'undefined') { + if (!('langs' in viewuiplus)) { + viewuiplus.langs = {}; + } + viewuiplus.langs[lang.i.locale] = lang; + } +}; +/*eslint-enable */ diff --git a/src/locale/lang/ar-EG.js b/src/locale/lang/ar-EG.js new file mode 100644 index 0000000000000000000000000000000000000000..f994a47ba8a598b8052c867850095b9214f2f389 --- /dev/null +++ b/src/locale/lang/ar-EG.js @@ -0,0 +1,115 @@ +import setLang from '../lang'; + +const lang = { + i: { + locale: 'ar-EG', + select: { + placeholder: 'إختيار', + noMatch: 'لا يوجد تطابق في البيانات', + loading: 'تحميل' + }, + table: { + noDataText: 'لا توجد بيانات', + noFilteredDataText: 'لا توجد بيانات', + confirmFilter: 'تأكيد', + resetFilter: 'إعادة تعيين', + clearFilter: 'الكل', + sumText: 'المجموع' + }, + datepicker: { + selectDate: 'إختر التاريخ', + selectTime: 'إختر الوقت', + startTime: 'وقت البداية', + endTime: 'وقت النهاية', + clear: 'إزالة', + ok: 'حسنا', + datePanelLabel: '[mmmm] [yyyy]', + month: 'شهر', + month1: 'يناير', + month2: 'فبراير', + month3: 'مارس', + month4: 'أبريل', + month5: 'مايو', + month6: 'يونيو', + month7: 'يوليو', + month8: 'أغسطس', + month9: 'سبتمبر', + month10: 'اكتوبر', + month11: 'نوفمبر', + month12: 'ديسمبر', + year: 'سنة', + weekStartDay: '0', + weeks: { + sun: 'أحد', + mon: 'إثنين', + tue: 'ثلاثاء', + wed: 'أربعاء', + thu: 'خميس', + fri: 'جمعة', + sat: 'سبت' + }, + months: { + m1: 'يناير', + m2: 'فبراير', + m3: 'مارس', + m4: 'أبريل', + m5: 'مايو', + m6: 'يونيو', + m7: 'يوليو', + m8: 'أغسطس', + m9: 'سبتمبر', + m10: 'اكتوبر', + m11: 'نوفمبر', + m12: 'ديسمبر' + } + }, + transfer: { + titles: { + source: 'المصدر', + target: 'الهدف' + }, + filterPlaceholder: 'إبحث هنا', + notFoundText: 'لا يوجد' + }, + modal: { + okText: 'حسنا', + cancelText: 'إلغاء' + }, + poptip: { + okText: 'حسنا', + cancelText: 'إلغاء' + }, + page: { + prev: 'الصفحة السابقة', + next: 'الصفحة التالية', + total: 'المجموع', + item: 'عنصر', + items: 'عناصر', + prev5: 'الخمس صفحات السابقة', + next5: 'الخمس صفحات التالية', + page: '/صفحة', + goto: 'الذهاب إلى', + p: '' + }, + rate: { + star: 'نجمة', + stars: 'نجوم' + }, + time: { + before: ' منذ', + after: ' بعد', + just: 'الآن', + seconds: ' ثواني', + minutes: ' دقائق', + hours: ' ساعات', + days: ' أيام' + }, + tree: { + emptyText: 'لا توجد بيانات' + } + } +}; + +setLang(lang); + +export default lang; diff --git a/src/locale/lang/ar-SA.js b/src/locale/lang/ar-SA.js new file mode 100644 index 0000000000000000000000000000000000000000..da546c82fd2ec95a6c66fc12ceca9af872fdd467 --- /dev/null +++ b/src/locale/lang/ar-SA.js @@ -0,0 +1,115 @@ +import setLang from '../lang'; + +const lang = { + i: { + locale: 'ar-SA', + select: { + placeholder: 'إختيار', + noMatch: 'لا يوجد تطابق في البيانات', + loading: 'تحميل' + }, + table: { + noDataText: 'لا توجد بيانات', + noFilteredDataText: 'لا توجد بيانات', + confirmFilter: 'تأكيد', + resetFilter: 'إعادة تعيين', + clearFilter: 'الكل', + sumText: 'المجموع' + }, + datepicker: { + selectDate: 'إختر التاريخ', + selectTime: 'إختر الوقت', + startTime: 'وقت البداية', + endTime: 'وقت النهاية', + clear: 'إزالة', + ok: 'حسنا', + datePanelLabel: '[mmmm] [yyyy]', + month: 'شهر', + month1: 'يناير', + month2: 'فبراير', + month3: 'مارس', + month4: 'أبريل', + month5: 'مايو', + month6: 'يونيو', + month7: 'يوليو', + month8: 'أغسطس', + month9: 'سبتمبر', + month10: 'اكتوبر', + month11: 'نوفمبر', + month12: 'ديسمبر', + year: 'سنة', + weekStartDay: '0', + weeks: { + sun: 'أحد', + mon: 'إثنين', + tue: 'ثلاثاء', + wed: 'أربعاء', + thu: 'خميس', + fri: 'جمعة', + sat: 'سبت' + }, + months: { + m1: 'يناير', + m2: 'فبراير', + m3: 'مارس', + m4: 'أبريل', + m5: 'مايو', + m6: 'يونيو', + m7: 'يوليو', + m8: 'أغسطس', + m9: 'سبتمبر', + m10: 'اكتوبر', + m11: 'نوفمبر', + m12: 'ديسمبر' + } + }, + transfer: { + titles: { + source: 'المصدر', + target: 'الهدف' + }, + filterPlaceholder: 'إبحث هنا', + notFoundText: 'لا يوجد' + }, + modal: { + okText: 'حسنا', + cancelText: 'إلغاء' + }, + poptip: { + okText: 'حسنا', + cancelText: 'إلغاء' + }, + page: { + prev: 'الصفحة السابقة', + next: 'الصفحة التالية', + total: 'المجموع', + item: 'عنصر', + items: 'عناصر', + prev5: 'الخمس صفحات السابقة', + next5: 'الخمس صفحات التالية', + page: '/صفحة', + goto: 'الذهاب إلى', + p: '' + }, + rate: { + star: 'نجمة', + stars: 'نجوم' + }, + time: { + before: ' منذ', + after: ' بعد', + just: 'الآن', + seconds: ' ثواني', + minutes: ' دقائق', + hours: ' ساعات', + days: ' أيام' + }, + tree: { + emptyText: 'لا توجد بيانات' + } + } +}; + +setLang(lang); + +export default lang; diff --git a/src/locale/lang/cs-CZ.js b/src/locale/lang/cs-CZ.js new file mode 100644 index 0000000000000000000000000000000000000000..273c3818ac74373071198a6ebd8612bc18873342 --- /dev/null +++ b/src/locale/lang/cs-CZ.js @@ -0,0 +1,112 @@ +import setLang from '../lang'; + +const lang = { + i: { + locale: 'cs-CZ', + select: { + placeholder: 'Vybrat', + noMatch: 'Nenalezeny žádné položky', + loading: 'Nahrávám' + }, + table: { + noDataText: 'Žádná data', + noFilteredDataText: 'Nenalezeny žádné položky', + confirmFilter: 'Potvrdit', + resetFilter: 'Reset', + clearFilter: 'Vše', + sumText: 'Sum' + }, + datepicker: { + selectDate: 'Vybrat datum', + selectTime: 'Vybrat čas', + startTime: 'Začátek', + endTime: 'Konec', + clear: 'Vymazat', + ok: 'OK', + datePanelLabel: '[mmmm] [yyyy]', + month: 'Měsíc', + month1: 'Leden', + month2: 'Únor', + month3: 'Březen', + month4: 'Duben', + month5: 'Květen', + month6: 'Červen', + month7: 'Červenec', + month8: 'Srpen', + month9: 'Září', + month10: 'Říjen', + month11: 'Listopad', + month12: 'Prosinec', + year: 'Rok', + weekStartDay: '1', + weeks: { + sun: 'Ne', + mon: 'Po', + tue: 'Út', + wed: 'St', + thu: 'Čt', + fri: 'Pá', + sat: 'So' + }, + months: { + m1: 'Led', + m2: 'Úno', + m3: 'Bře', + m4: 'Dub', + m5: 'Kvě', + m6: 'Čer', + m7: 'Čnc', + m8: 'Srp', + m9: 'Zář', + m10: 'Říj', + m11: 'Lis', + m12: 'Pro' + } + }, + transfer: { + titles: { + source: 'Zdroj', + target: 'Cíl' + }, + filterPlaceholder: 'Hledat', + notFoundText: 'Nenalezeno' + }, + modal: { + okText: 'OK', + cancelText: 'Zrušit' + }, + poptip: { + okText: 'OK', + cancelText: 'Zrušit' + }, + page: { + prev: 'Následující', + next: 'Předchozí', + total: 'Celkem', + item: 'položka', + /* TODO: add third plural form for Czech, + * If there is 2-4 items the translation should be "položky" + */ + items: 'položek', // Plural form for 5 or more items + prev5: 'Předchozích 5 stránek', + next5: 'Následujících 5 stránek', + page: 'na stránku', + goto: 'Jít na', + p: '' + }, + rate: { + star: 'hvězda', + stars: 'hvězdy' // Plural form for 2-4 items + /* TODO: add third plural form for Czech, + * If there is 5 or more items the translation should be "hvězd" + */ + }, + tree: { + emptyText: 'Žádná data' + } + } +}; + +setLang(lang); + +export default lang; diff --git a/src/locale/lang/da-DK.js b/src/locale/lang/da-DK.js new file mode 100644 index 0000000000000000000000000000000000000000..1244d47128ca5a4a7df3f70dafe38c3e9f85d527 --- /dev/null +++ b/src/locale/lang/da-DK.js @@ -0,0 +1,115 @@ +import setLang from '../lang'; + +const lang = { + i: { + locale: 'da-DK', + select: { + placeholder: 'Vælg', + noMatch: 'Ingen resultater fundet', + loading: 'Indlæser' + }, + table: { + noDataText: 'Ingen resultater fundet', + noFilteredDataText: 'No filter data', + confirmFilter: 'Bekræft', + resetFilter: 'Nulstil', + clearFilter: 'Alle', + sumText: 'Sum' + }, + datepicker: { + selectDate: 'Vælg dato', + selectTime: 'Vælg tid', + startTime: 'Starttid', + endTime: 'Sluttid', + clear: 'Ryd', + ok: 'OK', + datePanelLabel: '[mmmm] [yyyy]', + month: 'Måned', + month1: 'Januar', + month2: 'Februar', + month3: 'Marts', + month4: 'April', + month5: 'Maj', + month6: 'Juni', + month7: 'Juli', + month8: 'August', + month9: 'September', + month10: 'Oktober', + month11: 'November', + month12: 'December', + year: 'År', + weekStartDay: '0', + weeks: { + sun: 'Søn', + mon: 'Man', + tue: 'Tir', + wed: 'Ons', + thu: 'Tor', + fri: 'Fre', + sat: 'Lør' + }, + months: { + m1: 'Jan', + m2: 'Feb', + m3: 'Mar', + m4: 'Apr', + m5: 'Maj', + m6: 'Jun', + m7: 'Jul', + m8: 'Aug', + m9: 'Sep', + m10: 'Okt', + m11: 'Nov', + m12: 'Dec' + } + }, + transfer: { + titles: { + source: 'Kilde', + target: 'Mål' + }, + filterPlaceholder: 'Søg her', + notFoundText: 'Ikke fundet' + }, + modal: { + okText: 'OK', + cancelText: 'Annuller' + }, + poptip: { + okText: 'OK', + cancelText: 'Annuller' + }, + page: { + prev: 'Forrige side', + next: 'Næste side', + total: 'I alt', + item: 'emne', + items: 'emner', + prev5: 'Forrige 5 sider', + next5: 'Næste 5 sider', + page: '/page', + goto: 'Gå til', + p: '' + }, + rate: { + star: 'Stjerne', + stars: 'Stjerner' + }, + time: { + before: ' siden', + after: ' efter', + just: 'lige nu', + seconds: ' sekunder', + minutes: ' minutter', + hours: ' timer', + days: ' dage' + }, + tree: { + emptyText: 'Intet indhold' + } + } +}; + +setLang(lang); + +export default lang; diff --git a/src/locale/lang/de-DE.js b/src/locale/lang/de-DE.js new file mode 100644 index 0000000000000000000000000000000000000000..d7d8d500f58b2b5c259d848c0b51fecd129ea8ff --- /dev/null +++ b/src/locale/lang/de-DE.js @@ -0,0 +1,106 @@ +import setLang from '../lang'; + +const lang = { + i: { + locale: 'de-DE', + select: { + placeholder: 'Auswählen', + noMatch: 'Keine Übereinstimmungen', + loading: 'Lädt' + }, + table: { + noDataText: 'Keine Daten', + noFilteredDataText: 'Keine gefilterten Daten', + confirmFilter: 'Bestätigen', + resetFilter: 'Zurücksetzen', + clearFilter: 'Alle', + sumText: 'Summe' + }, + datepicker: { + selectDate: 'Datum auswählen', + selectTime: 'Zeit auswählen', + startTime: 'Beginn', + endTime: 'Ende', + clear: 'Leeren', + ok: 'OK', + datePanelLabel: '[mmmm] [yyyy]', + month: 'Monat', + month1: 'Januar', + month2: 'Februar', + month3: 'März', + month4: 'April', + month5: 'Mai', + month6: 'Juni', + month7: 'Juli', + month8: 'August', + month9: 'September', + month10: 'Oktober', + month11: 'November', + month12: 'Dezember', + year: 'Jahr', + weekStartDay: '1', + weeks: { + sun: 'So', + mon: 'Mo', + tue: 'Di', + wed: 'Mi', + thu: 'Do', + fri: 'Fr', + sat: 'Sa' + }, + months: { + m1: 'Jan', + m2: 'Feb', + m3: 'Mär', + m4: 'Apr', + m5: 'Mai', + m6: 'Jun', + m7: 'Jul', + m8: 'Aug', + m9: 'Sep', + m10: 'Okt', + m11: 'Nov', + m12: 'Dez' + } + }, + transfer: { + titles: { + source: 'Quelle', + target: 'Ziel' + }, + filterPlaceholder: 'Suchen', + notFoundText: 'Nicht gefunden' + }, + modal: { + okText: 'OK', + cancelText: 'Abbrechen' + }, + poptip: { + okText: 'OK', + cancelText: 'Abbrechen' + }, + page: { + prev: 'Vorherige Seite', + next: 'Nächste Seite', + total: 'Total', + item: 'Eintrag', + items: 'Einträge', + prev5: 'vorherigen fünf Seiten', + next5: 'nächste fünf Seiten', + page: '/seite', + goto: 'Gehe zu', + p: '' + }, + rate: { + star: 'Stern', + stars: 'Sterne' + }, + tree: { + emptyText: 'Keine Daten' + } + } +}; + +setLang(lang); + +export default lang; diff --git a/src/locale/lang/el-GR.js b/src/locale/lang/el-GR.js new file mode 100644 index 0000000000000000000000000000000000000000..0ebeac86a57d2586737a6920d62d4af5b7ea83e2 --- /dev/null +++ b/src/locale/lang/el-GR.js @@ -0,0 +1,106 @@ +import setLang from '../lang'; + +const lang = { + i: { + locale: 'el-GR', + select: { + placeholder: 'Επιλογή', + noMatch: 'Δεν βρέθηκαν αποτελέσματα', + loading: 'Φόρτωση' + }, + table: { + noDataText: 'Χωρίς δεδομένα', + noFilteredDataText: 'Χωρίς φίλτρο', + confirmFilter: 'Επιβεβαίωση', + resetFilter: 'Επαναφορά', + clearFilter: 'Όλα', + sumText: 'Σύνολο' + }, + datepicker: { + selectDate: 'Επιλέξτε ημέρα', + selectTime: 'Επιλέξτε ώρα', + startTime: 'Ωρα Έναρξης', + endTime: 'Ωρα Λήξης', + clear: 'Καθαρισμός', + ok: 'Εντάξει', + datePanelLabel: '[mmmm] [yyyy]', + month: 'Μήνας', + month1: 'Ιανουάριος', + month2: 'Φεβρουάριος', + month3: 'Μάρτιος', + month4: 'Απρίλιος', + month5: 'Μάιος', + month6: 'Ιούνιος', + month7: 'Ιούλιος', + month8: 'Αύγουστος', + month9: 'Σεπτέμβριος', + month10: 'Οκτώβριος', + month11: 'Νοέμβριος', + month12: 'Δεκέμβριος', + year: 'Έτος', + weekStartDay: '1', + weeks: { + sun: 'Κυρ', + mon: 'Δευ', + tue: 'Τρι', + wed: 'Τετ', + thu: 'Πεμ', + fri: 'Παρ', + sat: 'Σαβ' + }, + months: { + m1: 'Ιαν', + m2: 'Φεβ', + m3: 'Μαρ', + m4: 'Απρ', + m5: 'Μαϊ', + m6: 'Ιουν', + m7: 'Ιουλ', + m8: 'Αυγ', + m9: 'Σεπ', + m10: 'Οκτ', + m11: 'Νοε', + m12: 'Δεκ' + } + }, + transfer: { + titles: { + source: 'Πηγή', + target: 'Στόχος' + }, + filterPlaceholder: 'Αναζήτηση', + notFoundText: 'Δεν βρέθηκαν αποτελέσματα' + }, + modal: { + okText: 'Εντάξει', + cancelText: 'Ακύρωση' + }, + poptip: { + okText: 'Εντάξει', + cancelText: 'Ακύρωση' + }, + page: { + prev: 'Προηγούμενη Σελίδα', + next: 'Επόμενη Σελίδα', + total: 'Σύνολο', + item: 'Αντικείμενο', + items: 'Αντικείμενα', + prev5: 'Προηγούμενες 5 Σελίδες', + next5: 'Επόμενες 5 Σελίδες', + page: '/Σελίδα', + goto: 'Μετάβαση σε', + p: '' + }, + rate: { + star: 'Αστέρι', + stars: 'Αστέρια' + }, + tree: { + emptyText: 'Χωρίς Δεδομένα' + } + } +}; + +setLang(lang); + +export default lang; diff --git a/src/locale/lang/en-US.js b/src/locale/lang/en-US.js new file mode 100644 index 0000000000000000000000000000000000000000..a375e9aeb4490cf61d16678e2905d711e49a71c1 --- /dev/null +++ b/src/locale/lang/en-US.js @@ -0,0 +1,123 @@ +import setLang from '../lang'; + +const lang = { + i: { + locale: 'en-US', + select: { + placeholder: 'Select', + noMatch: 'No matching data', + loading: 'Loading' + }, + table: { + noDataText: 'No Data', + noFilteredDataText: 'No filter data', + confirmFilter: 'Confirm', + resetFilter: 'Reset', + clearFilter: 'All', + sumText: 'Sum' + }, + datepicker: { + selectDate: 'Select date', + selectTime: 'Select time', + startTime: 'Start Time', + endTime: 'End Time', + clear: 'Clear', + ok: 'OK', + datePanelLabel: '[mmmm] [yyyy]', + month: 'Month', + month1: 'January', + month2: 'February', + month3: 'March', + month4: 'April', + month5: 'May', + month6: 'June', + month7: 'July', + month8: 'August', + month9: 'September', + month10: 'October', + month11: 'November', + month12: 'December', + year: 'Year', + weekStartDay: '0', + weeks: { + sun: 'Sun', + mon: 'Mon', + tue: 'Tue', + wed: 'Wed', + thu: 'Thu', + fri: 'Fri', + sat: 'Sat' + }, + months: { + m1: 'Jan', + m2: 'Feb', + m3: 'Mar', + m4: 'Apr', + m5: 'May', + m6: 'Jun', + m7: 'Jul', + m8: 'Aug', + m9: 'Sep', + m10: 'Oct', + m11: 'Nov', + m12: 'Dec' + } + }, + transfer: { + titles: { + source: 'Source', + target: 'Target' + }, + filterPlaceholder: 'Search here', + notFoundText: 'Not Found' + }, + modal: { + okText: 'OK', + cancelText: 'Cancel' + }, + poptip: { + okText: 'OK', + cancelText: 'Cancel' + }, + page: { + prev: 'Previous Page', + next: 'Next Page', + total: 'Total', + item: 'item', + items: 'items', + prev5: 'Previous 5 Pages', + next5: 'Next 5 Pages', + page: '/page', + goto: 'Goto', + p: '' + }, + rate: { + star: 'Star', + stars: 'Stars' + }, + time: { + before: ' ago', + after: ' after', + just: 'just now', + seconds: ' seconds', + minutes: ' minutes', + hours: ' hours', + days: ' days' + }, + tree: { + emptyText: 'No Data' + }, + image: { + zoomIn: 'Zoom In', + zoomOut: 'Zoom Out', + rotateLeft: 'Rotate Left', + rotateRight: 'Rotate Right', + fail: 'failed', + preview: 'preview' + } + } +}; + +setLang(lang); + +export default lang; diff --git a/src/locale/lang/es-ES.js b/src/locale/lang/es-ES.js new file mode 100644 index 0000000000000000000000000000000000000000..d234bc7ebf6d8c6645157b14c8a16fc8627b4dee --- /dev/null +++ b/src/locale/lang/es-ES.js @@ -0,0 +1,106 @@ +import setLang from '../lang'; + +const lang = { + i: { + locale: 'es-ES', + select: { + placeholder: 'Seleccionar', + noMatch: 'Sin coincidencias', + loading: 'Cargando' + }, + table: { + noDataText: 'Sin Datos', + noFilteredDataText: 'Sin Datos para el filtro', + confirmFilter: 'Aceptar', + resetFilter: 'Quitar filtro', + clearFilter: 'Todos', + sumText: 'Suma' + }, + datepicker: { + selectDate: 'Seleccionar fecha', + selectTime: 'Seleccionar hora', + startTime: 'Hora de inicio', + endTime: 'Hora de fin', + clear: 'Limpiar', + ok: 'Aceptar', + datePanelLabel: '[mmmm] [yyyy]', + month: 'Mes', + month1: 'Enero', + month2: 'Febrero', + month3: 'Marzo', + month4: 'Abril', + month5: 'Mayo', + month6: 'Junio', + month7: 'Julio', + month8: 'Augosto', + month9: 'Septiembre', + month10: 'Octubre', + month11: 'Noviembre', + month12: 'Diciembre', + year: 'Año', + weekStartDay: '1', + weeks: { + sun: 'Dom', + mon: 'Lun', + tue: 'Mar', + wed: 'Mié', + thu: 'Jue', + fri: 'Vie', + sat: 'Sáb' + }, + months: { + m1: 'Ene', + m2: 'Feb', + m3: 'Mar', + m4: 'Abr', + m5: 'May', + m6: 'Jun', + m7: 'Jul', + m8: 'Ago', + m9: 'Sep', + m10: 'Oct', + m11: 'Nov', + m12: 'Dic' + } + }, + transfer: { + titles: { + source: 'Origen', + target: 'Destino' + }, + filterPlaceholder: 'Buscar aquí', + notFoundText: 'Sin resultados' + }, + modal: { + okText: 'Aceptar', + cancelText: 'Cancelar' + }, + poptip: { + okText: 'Aceptar', + cancelText: 'Cancelar' + }, + page: { + prev: 'Página Anterior', + next: 'Página Siguiente', + total: 'Total', + item: 'Elemento', + items: 'Elementos', + prev5: '5 Páginas Anteriores', + next5: '5 Páginas Siguientes', + page: '/page', + goto: 'Ir a', + p: '' + }, + rate: { + star: 'Estrella', + stars: 'Estrellas' + }, + tree: { + emptyText: 'Sin Datos' + } + } +}; + +setLang(lang); + +export default lang; diff --git a/src/locale/lang/fa-IR.js b/src/locale/lang/fa-IR.js new file mode 100644 index 0000000000000000000000000000000000000000..bebfe9ccc77fcb4d159168c485a3b2a87c30f3ed --- /dev/null +++ b/src/locale/lang/fa-IR.js @@ -0,0 +1,106 @@ +import setLang from '../lang'; + +const lang = { + i: { + locale: 'fa-IR', + select: { + placeholder: 'انتخاب‌ کنید', + noMatch: 'یافت نشد', + loading: 'در‌حال بارگذاری' + }, + table: { + noDataText: 'اطلاعاتی موجود نیست', + noFilteredDataText: 'بدون اطلاعات فیلترشده', + confirmFilter: 'تایید', + resetFilter: 'بازنشانی', + clearFilter: 'همه', + sumText: 'جمع' + }, + datepicker: { + selectDate: 'انتخاب تاریخ', + selectTime: 'انتخاب زمان', + startTime: 'تاریخ شروع', + endTime: 'تاریخ پایان', + clear: 'پاکسازی', + ok: 'تایید', + datePanelLabel: '[mmmm] [yyyy]', + month: 'ماه', + month1: 'January', + month2: 'February', + month3: 'March', + month4: 'April', + month5: 'May', + month6: 'June', + month7: 'July', + month8: 'August', + month9: 'September', + month10: 'October', + month11: 'November', + month12: 'December', + year: 'سال', + weekStartDay: '0', + weeks: { + sun: 'Sun', + mon: 'Mon', + tue: 'Tue', + wed: 'Wed', + thu: 'Thu', + fri: 'Fri', + sat: 'Sat' + }, + months: { + m1: 'Jan', + m2: 'Feb', + m3: 'Mar', + m4: 'Apr', + m5: 'May', + m6: 'Jun', + m7: 'Jul', + m8: 'Aug', + m9: 'Sep', + m10: 'Oct', + m11: 'Nov', + m12: 'Dec' + } + }, + transfer: { + titles: { + source: 'منبع', + target: 'هدف' + }, + filterPlaceholder: 'اینجا جستجو کنید', + notFoundText: 'پیدا نشد' + }, + modal: { + okText: 'تایید', + cancelText: 'لغو' + }, + poptip: { + okText: 'تایید', + cancelText: 'لغو' + }, + page: { + prev: 'صفحه قبلی', + next: 'صفحه بعدی', + total: 'مجموع', + item: 'داده', + items: 'داده‌ها', + prev5: '۵ صفحه قبلی', + next5: '۵ صفحه بعدی', + page: '/صفحه', + goto: 'برو‌به', + p: '' + }, + rate: { + star: 'ستاره', + stars: 'ستاره‌ها' + }, + tree: { + emptyText: 'بدون اطلاعات' + } + } +}; + +setLang(lang); + +export default lang; diff --git a/src/locale/lang/fi-FI.js b/src/locale/lang/fi-FI.js new file mode 100644 index 0000000000000000000000000000000000000000..580c4bbc42588cdecbea87c2a6a87be602ad4a2d --- /dev/null +++ b/src/locale/lang/fi-FI.js @@ -0,0 +1,115 @@ +import setLang from '../lang'; + +const lang = { + i: { + locale: 'fi-FI', + select: { + placeholder: 'Valitse', + noMatch: 'Ei tuloksia', + loading: 'Ladataan' + }, + table: { + noDataText: 'Ei tietoja', + noFilteredDataText: 'Ei suodatettua dataa', + confirmFilter: 'Hyväksy', + resetFilter: 'Nollaa', + clearFilter: 'Kaikki', + sumText: 'Summa' + }, + datepicker: { + selectDate: 'Valitse päivämäärä', + selectTime: 'Valitse aika', + startTime: 'Aloitusaika', + endTime: 'Päättymisaika', + clear: 'Tyhjennä', + ok: 'OK', + datePanelLabel: '[mmmm] [yyyy]', + month: 'Kuukausi', + month1: 'Tammikuu', + month2: 'Helmikuu', + month3: 'Maaliskuu', + month4: 'Huhtikuu', + month5: 'Toukokuu', + month6: 'Kesäkuu', + month7: 'Heinäkuu', + month8: 'Elokuu', + month9: 'Syyskuu', + month10: 'Lokakuu', + month11: 'Marraskuu', + month12: 'Joulukuu', + year: 'Vuosi', + weekStartDay: '1', + weeks: { + sun: 'Su', + mon: 'Ma', + tue: 'Ti', + wed: 'Ke', + thu: 'To', + fri: 'Pe', + sat: 'La' + }, + months: { + m1: 'Tam', + m2: 'Hel', + m3: 'Maa', + m4: 'Huh', + m5: 'Tou', + m6: 'Kes', + m7: 'Hei', + m8: 'Elo', + m9: 'Syy', + m10: 'Lok', + m11: 'Mar', + m12: 'Jou' + } + }, + transfer: { + titles: { + source: 'Lähde', + target: 'Kohde' + }, + filterPlaceholder: 'Hae täältä', + notFoundText: 'Ei tuloksia' + }, + modal: { + okText: 'OK', + cancelText: 'Peruuta' + }, + poptip: { + okText: 'OK', + cancelText: 'Peruuta' + }, + page: { + prev: 'Edellinen sivu', + next: 'Seuraava sivu', + total: 'Yhteensä', + item: 'kohde', + items: 'kohdetta', + prev5: 'Edelliset 5 sivua', + next5: 'Seuraavat 5 sivua', + page: '/page', + goto: 'Siirry', + p: '' + }, + rate: { + star: 'Tähti', + stars: 'Tähteä' + }, + time: { + before: ' sitten', + after: ' jälkeen', + just: 'juuri nyt', + seconds: ' sekuntia', + minutes: ' minuuttia', + hours: ' tuntia', + days: ' päivää' + }, + tree: { + emptyText: 'Ei tietoja' + } + } +}; + +setLang(lang); + +export default lang; diff --git a/src/locale/lang/fr-FR.js b/src/locale/lang/fr-FR.js new file mode 100644 index 0000000000000000000000000000000000000000..eb1020f00aa183f4ed0dd385c2d35e5fdca94c3c --- /dev/null +++ b/src/locale/lang/fr-FR.js @@ -0,0 +1,106 @@ +import setLang from '../lang'; + +const lang = { + i: { + locale: 'fr-FR', + select: { + placeholder: 'Sélectionnez', + noMatch: 'Aucun résultat', + loading: 'Chargement' + }, + table: { + noDataText: 'Aucune donnée', + noFilteredDataText: 'No filter data', + confirmFilter: 'Confirmez', + resetFilter: 'Reset', + clearFilter: 'Tout', + sumText: 'Somme' + }, + datepicker: { + selectDate: 'Sélectionnez une date', + selectTime: 'Sélectionnez une heure', + startTime: 'Heure de début', + endTime: 'Heure de fin', + clear: 'Annuler', + ok: 'OK', + datePanelLabel: '[mmmm] [yyyy]', + month: 'Mois', + month1: 'Janvier', + month2: 'Février', + month3: 'Mars', + month4: 'Avril', + month5: 'Mai', + month6: 'Juin', + month7: 'Juillet', + month8: 'Août', + month9: 'Septembre', + month10: 'Octobre', + month11: 'Novembre', + month12: 'Decembre', + year: 'An', + weekStartDay: '1', + weeks: { + sun: 'Dim', + mon: 'Lun', + tue: 'Mar', + wed: 'Mer', + thu: 'Jeu', + fri: 'Ven', + sat: 'Sam' + }, + months: { + m1: 'Jan', + m2: 'Fev', + m3: 'Mar', + m4: 'Avr', + m5: 'Mai', + m6: 'Jun', + m7: 'Jul', + m8: 'Aoû', + m9: 'Sep', + m10: 'Oct', + m11: 'Nov', + m12: 'Déc' + } + }, + transfer: { + titles: { + source: 'Source', + target: 'Cible' + }, + filterPlaceholder: 'Recherche', + notFoundText: 'Pas de résultat' + }, + modal: { + okText: 'OK', + cancelText: 'Annuler' + }, + poptip: { + okText: 'OK', + cancelText: 'Annuler' + }, + page: { + prev: 'Page Précédente', + next: 'Page Suivante', + total: 'Total', + item: 'élément', + items: 'éléments', + prev5: '5 Pages en Avant', + next5: '5 Pages en Arrière', + page: '/page', + goto: 'Aller à', + p: '' + }, + rate: { + star: 'Étoile', + stars: 'Étoiles' + }, + tree: { + emptyText: 'Aucune donnée' + } + } +}; + +setLang(lang); + +export default lang; diff --git a/src/locale/lang/hi-IN.js b/src/locale/lang/hi-IN.js new file mode 100644 index 0000000000000000000000000000000000000000..77d174972d7a6b05bbbd4d88d4a7a1dfe2dc1797 --- /dev/null +++ b/src/locale/lang/hi-IN.js @@ -0,0 +1,106 @@ +import setLang from '../lang'; + +const lang = { + i: { + locale: 'hi-IN', + select: { + placeholder: 'कृपया चुने|', + noMatch: 'कोई आकड़ा उपलब्ध नहीं है|', + loading: 'लोड हो रहा है' + }, + table: { + noDataText: 'कोई आकड़ा उपलब्ध नहीं है', + noFilteredDataText: 'कोई आकड़ा उपलब्ध नहीं है', + confirmFilter: 'पुष्टि करें', + resetFilter: 'पुनः तैयार करना', + clearFilter: 'सब कुछ', + sumText: 'Sum' + }, + datepicker: { + selectDate: 'दिनांक चुनें', + selectTime: 'समय चुनें', + startTime: 'प्रारंभ समय', + endTime: 'समाप्ति समय', + clear: 'साफ़ करें', + ok: 'ठीक', + datePanelLabel: '[mmmm] [yyyy]', + month: 'महीना', + month1: 'जनवरी', + month2: 'फरवरी', + month3: 'मार्च', + month4: 'अप्रैल', + month5: 'मई', + month6: 'जून', + month7: 'जुलाई', + month8: 'अगस्त', + month9: 'सितंबर', + month10: 'अक्टूबर', + month11: 'नवंबर', + month12: 'दिसंबर', + year: 'साल', + weekStartDay: '0', + weeks: { + sun: 'रविवार', + mon: 'सोमवार', + tue: 'मंगलवार', + wed: 'बुधवार', + thu: 'गुरुवार', + fri: 'शुक्रवार', + sat: 'शनिवार' + }, + months: { + m1: 'जनवरी', + m2: 'फरवरी', + m3: 'मार्च', + m4: 'अप्रैल', + m5: 'मई', + m6: 'जून', + m7: 'जुलाई', + m8: 'अगस्त', + m9: 'सितंबर', + m10: 'अक्टूबर', + m11: 'नवंबर', + m12: 'दिसंबर' + } + }, + transfer: { + titles: { + source: 'स्रोत', + target: 'लक्ष्य' + }, + filterPlaceholder: 'यहां खोजें', + notFoundText: 'कोई आकड़ा उपलब्ध नहीं है' + }, + modal: { + okText: 'ठीक', + cancelText: 'निरस्त करना' + }, + poptip: { + okText: 'ठीक', + cancelText: 'निरस्त करना' + }, + page: { + prev: 'पिछला पेज', + next: 'अगला पेज', + total: 'समस्त', + item: 'एक चीज', + items: 'अनेक चीज', + prev5: 'पिछला 5 पेज', + next5: 'अगला 5 पेज', + page: '/page', + goto: 'जाओ', + p: '' + }, + rate: { + star: 'प्रसिद्ध', + stars: 'प्रसिद्ध' + }, + tree: { + emptyText: 'कोई आकड़ा उपलब्ध नहीं है' + } + } +}; + +setLang(lang); + +export default lang; diff --git a/src/locale/lang/id-ID.js b/src/locale/lang/id-ID.js new file mode 100644 index 0000000000000000000000000000000000000000..d81f58c5579d15b56e596529ed2c24054f024447 --- /dev/null +++ b/src/locale/lang/id-ID.js @@ -0,0 +1,106 @@ +import setLang from '../lang'; + +const lang = { + i: { + locale: 'id-ID', + select: { + placeholder: 'Pilih', + noMatch: 'Tidak ada data yang cocok', + loading: 'Memuat' + }, + table: { + noDataText: 'Tidak ada data', + noFilteredDataText: 'Tidak ada data filter', + confirmFilter: 'Konfirmasi', + resetFilter: 'Tata ulang', + clearFilter: 'Semua', + sumText: 'Jml' + }, + datepicker: { + selectDate: 'Pilih tanggal', + selectTime: 'Pilih waktu', + startTime: 'Waktu Mulai', + endTime: 'Waktu Selesai', + clear: 'Bersihkan', + ok: 'OK', + datePanelLabel: '[mmmm] [yyyy]', + month: '', + month1: 'Januari', + month2: 'Februari', + month3: 'Maret', + month4: 'April', + month5: 'Mei', + month6: 'Juni', + month7: 'Juli', + month8: 'Agustus', + month9: 'September', + month10: 'Oktober', + month11: 'November', + month12: 'Desember', + year: '', + weekStartDay: '1', + weeks: { + sun: 'Min', + mon: 'Sen', + tue: 'Sel', + wed: 'Rab', + thu: 'Kam', + fri: 'Jum', + sat: 'Sab' + }, + months: { + m1: 'Jan', + m2: 'Feb', + m3: 'Mar', + m4: 'Apr', + m5: 'Mei', + m6: 'Jun', + m7: 'Jul', + m8: 'Agu', + m9: 'Sep', + m10: 'Okt', + m11: 'Nov', + m12: 'Dec' + } + }, + transfer: { + titles: { + source: 'Sumber', + target: 'Tujuan' + }, + filterPlaceholder: 'Cari disini', + notFoundText: 'Tidak ditemukan' + }, + modal: { + okText: 'OK', + cancelText: 'Batal' + }, + poptip: { + okText: 'OK', + cancelText: 'Batal' + }, + page: { + prev: 'Halaman Sebelumnya', + next: 'Halaman Selanjutnya', + total: 'Total', + item: 'butir', + items: 'butir', + prev5: '5 Halaman Sebelumnya', + next5: '5 Halaman Selanjutnya', + page: '/page', + goto: 'Pergi ke', + p: '' + }, + rate: { + star: 'Star', + stars: 'Stars' + }, + tree: { + emptyText: 'Tidak ada data' + } + } +}; + +setLang(lang); + +export default lang; diff --git a/src/locale/lang/it-IT.js b/src/locale/lang/it-IT.js new file mode 100644 index 0000000000000000000000000000000000000000..a66569700a8b80461bb4b348ed9240f8765965a6 --- /dev/null +++ b/src/locale/lang/it-IT.js @@ -0,0 +1,115 @@ +import setLang from '../lang'; + +const lang = { + i: { + locale: 'it-IT', + select: { + placeholder: 'Seleziona', + noMatch: 'Nessun Risultato', + loading: 'Caricamento' + }, + table: { + noDataText: 'Nessun Risultato', + noFilteredDataText: 'Filtro senza risultati', + confirmFilter: 'Conferma', + resetFilter: 'Reset', + clearFilter: 'Tutto', + sumText: 'Somma' + }, + datepicker: { + selectDate: 'Seleziona data', + selectTime: 'Seleziona orario', + startTime: 'Orario inizio', + endTime: 'Orario fine', + clear: 'Annulla', + ok: 'OK', + datePanelLabel: '[mmmm] [yyyy]', + month: 'Mese', + month1: 'Gennaio', + month2: 'Febbraio', + month3: 'Marzo', + month4: 'Aprile', + month5: 'Maggio', + month6: 'Giugno', + month7: 'Luglio', + month8: 'Agosto', + month9: 'Settembre', + month10: 'Ottobre', + month11: 'Novembre', + month12: 'Dicembre', + year: 'Anno', + weekStartDay: '1', + weeks: { + sun: 'Dom', + mon: 'Lun', + tue: 'Mar', + wed: 'Mer', + thu: 'Gio', + fri: 'Ven', + sat: 'Sab' + }, + months: { + m1: 'Gen', + m2: 'Feb', + m3: 'Mar', + m4: 'Apr', + m5: 'Mag', + m6: 'Giu', + m7: 'Lug', + m8: 'Ago', + m9: 'Set', + m10: 'Ott', + m11: 'Nov', + m12: 'Dic' + } + }, + transfer: { + titles: { + source: 'Origine', + target: 'Destinazione' + }, + filterPlaceholder: 'Cerca', + notFoundText: 'Nessun Risultato' + }, + modal: { + okText: 'OK', + cancelText: 'Annulla' + }, + poptip: { + okText: 'OK', + cancelText: 'Annulla' + }, + page: { + prev: 'Pagina Precedente', + next: 'Pagina Successiva', + total: 'Totale', + item: 'elemento', + items: 'elementi', + prev5: '5 Pagine Precedenti', + next5: '5 Pagine Successive', + page: '/pagina', + goto: 'Vai a', + p: '' + }, + rate: { + star: 'Stella', + stars: 'Stelle' + }, + time: { + before: 'fa', + after: ' dopo', + just: 'adesso', + seconds: ' secondi', + minutes: ' minuti', + hours: ' ore', + days: ' giorni' + }, + tree: { + emptyText: 'Nessun Risultato' + } + } +}; + +setLang(lang); + +export default lang; diff --git a/src/locale/lang/ja-JP.js b/src/locale/lang/ja-JP.js new file mode 100644 index 0000000000000000000000000000000000000000..30a0914913208aa5b741efbd7d67edddd04b4553 --- /dev/null +++ b/src/locale/lang/ja-JP.js @@ -0,0 +1,115 @@ +import setLang from '../lang'; + +const lang = { + i: { + locale: 'ja-JP', + select: { + placeholder: '選んでください', + noMatch: 'マッチするデータなし', + loading: 'ロード中' + }, + table: { + noDataText: 'データなし', + noFilteredDataText: 'スクリーニングしたデータなし', + confirmFilter: 'スクリーニング', + resetFilter: 'リセット', + clearFilter: '全部', + sumText: '合計' + }, + datepicker: { + selectDate: '日時を選んでください', + selectTime: '時間を選んでください', + startTime: 'スタート時間', + endTime: '終了時間', + clear: 'クリーア', + ok: '確定', + datePanelLabel: '[yyyy年] [m月]', + month: '月', + month1: '1 月', + month2: '2 月', + month3: '3 月', + month4: '4 月', + month5: '5 月', + month6: '6 月', + month7: '7 月', + month8: '8 月', + month9: '9 月', + month10: '10 月', + month11: '11 月', + month12: '12 月', + year: '年', + weekStartDay: '0', + weeks: { + sun: '日', + mon: '月', + tue: '火', + wed: '水', + thu: '木', + fri: '金', + sat: '土' + }, + months: { + m1: '1月', + m2: '2月', + m3: '3月', + m4: '4月', + m5: '5月', + m6: '6月', + m7: '7月', + m8: '8月', + m9: '9月', + m10: '10月', + m11: '11月', + m12: '12月' + } + }, + transfer: { + titles: { + source: 'ソースリスト', + target: 'ターゲットリスト' + }, + filterPlaceholder: '検索内容を入力ください', + notFoundText: '内容が見つかってなかった' + }, + modal: { + okText: '確定', + cancelText: 'キャンセル' + }, + poptip: { + okText: '確定', + cancelText: 'キャンセル' + }, + page: { + prev: '前へ', + next: '次へ', + total: '全部', + item: '件', + items: '件', + prev5: '前の5ページへ', + next5: '次の5ページへ', + page: '件/ページ', + goto: '', + p: 'ページ目へ' + }, + rate: { + star: '点', + stars: '点' + }, + time: { + before: '前', + after: '後', + just: 'たった今', + seconds: '秒', + minutes: '分', + hours: '時間', + days: '日' + }, + tree: { + emptyText: 'データなし' + } + } +}; + +setLang(lang); + +export default lang; diff --git a/src/locale/lang/ko-KR.js b/src/locale/lang/ko-KR.js new file mode 100644 index 0000000000000000000000000000000000000000..ed5edb44721702dbcadb54a6c2fe2e7f00feff89 --- /dev/null +++ b/src/locale/lang/ko-KR.js @@ -0,0 +1,115 @@ +import setLang from '../lang'; + +const lang = { + i: { + locale: 'ko-KR', + select: { + placeholder: '선택', + noMatch: '일치하는 데이터 없음', + loading: '로딩' + }, + table: { + noDataText: '데이터 없음', + noFilteredDataText: '필터된 데이터 없음', + confirmFilter: '확인', + resetFilter: '초기화', + clearFilter: '전부', + sumText: '합' + }, + datepicker: { + selectDate: '날짜 선택', + selectTime: '시간 선택', + startTime: '시작 시간', + endTime: '종료 시간', + clear: '삭제', + ok: '예', + datePanelLabel: '[yyyy년] [m월]', + month: '월', + month1: '1월', + month2: '2월', + month3: '3월', + month4: '4월', + month5: '5월', + month6: '6월', + month7: '7월', + month8: '8월', + month9: '9월', + month10: '10월', + month11: '11월', + month12: '12월', + year: '년', + weekStartDay: '0', + weeks: { + sun: '일', + mon: '월', + tue: '화', + wed: '수', + thu: '목', + fri: '금', + sat: '토' + }, + months: { + m1: '1월', + m2: '2월', + m3: '3월', + m4: '4월', + m5: '5월', + m6: '6월', + m7: '7월', + m8: '8월', + m9: '9월', + m10: '10월', + m11: '11월', + m12: '12월' + } + }, + transfer: { + titles: { + source: '소스', + target: '타겟' + }, + filterPlaceholder: '여기서 찾기', + notFoundText: '아무 것도 찾을 수 없음' + }, + modal: { + okText: '예', + cancelText: '취소' + }, + poptip: { + okText: '예', + cancelText: '취소' + }, + page: { + prev: '이전 페이지', + next: '다음 페이지', + total: '전체', + item: '항목', + items: '항목', + prev5: '이전 5 페이지', + next5: '다음 5 페이지', + page: '/페이지', + goto: '이동', + p: '' + }, + rate: { + star: '중요', + stars: '중요' + }, + time: { + before: ' 전', + after: ' 후', + just: '방금', + seconds: ' 초', + minutes: ' 분', + hours: ' 시간', + days: ' 일' + }, + tree: { + emptyText: '데이터 없음' + } + } +}; + +setLang(lang); + +export default lang; diff --git a/src/locale/lang/mn-MN.js b/src/locale/lang/mn-MN.js new file mode 100644 index 0000000000000000000000000000000000000000..6fcaa89ad875ac144f93d36f19506391e664ea29 --- /dev/null +++ b/src/locale/lang/mn-MN.js @@ -0,0 +1,106 @@ +import setLang from '../lang'; + +const lang = { + i: { + locale: 'mn-MN', + select: { + placeholder: 'Сонгох', + noMatch: 'Таарах өгөгдөл байхгүй байна', + loading: 'Ачааллаж байна' + }, + table: { + noDataText: 'Өгөгдөл алга', + noFilteredDataText: 'No filter data', + confirmFilter: 'Батлах', + resetFilter: 'Шинээр тохируулах', + clearFilter: 'Бүгд', + sumText: 'Нийт' + }, + datepicker: { + selectDate: 'Огноо сонгох', + selectTime: 'Цаг сонгох', + startTime: 'Эхлэх Цаг', + endTime: 'Дуусах Цаг', + clear: 'Цэвэрлэх', + ok: 'OK', + datePanelLabel: '[mmmm] [yyyy]', + month: 'Сар', + month1: '1-р сар', + month2: '2-р сар', + month3: '3-р сар', + month4: '4-р сар', + month5: '5-р сар', + month6: '6-р сар', + month7: '7-р сар', + month8: '8-р сар', + month9: '9-р сар', + month10: '10-р сар', + month11: '11-р сар', + month12: '12-р сар', + year: 'Жил', + weekStartDay: '0', + weeks: { + sun: 'Ням', + mon: 'Дав', + tue: 'Мяг', + wed: 'Лха', + thu: 'Пүр', + fri: 'Баа', + sat: 'Бяа' + }, + months: { + m1: '1-р сар', + m2: '2-р сар', + m3: '3-р сар', + m4: '4-р сар', + m5: '5-р сар', + m6: '6-р сар', + m7: '7-р сар', + m8: '8-р сар', + m9: '9-р сар', + m10: '10-р сар', + m11: '11-р сар', + m12: '12-р сар' + } + }, + transfer: { + titles: { + source: 'Эх сурвалж', + target: 'Оноох бай' + }, + filterPlaceholder: 'Эндээс хайх', + notFoundText: 'Олдсонгүй' + }, + modal: { + okText: 'OK', + cancelText: 'Болих' + }, + poptip: { + okText: 'OK', + cancelText: 'Болих' + }, + page: { + prev: 'Өмнөх хуудас', + next: 'Дараах хуудас', + total: 'Нийт', + item: 'зүйл', + items: 'зүйлүүд', + prev5: 'Өмнөх 5 хуудас', + next5: 'Дараагийн 5 хуудас', + page: '/хуудсанд', + goto: 'Очих хуудас', + p: '' + }, + rate: { + star: 'Од', + stars: 'Одууд' + }, + tree: { + emptyText: 'Өгөгдөл алга' + } + } +}; + +setLang(lang); + +export default lang; diff --git a/src/locale/lang/mn-TR.js b/src/locale/lang/mn-TR.js new file mode 100644 index 0000000000000000000000000000000000000000..3fb6399bf7be4c04660fd4c4f378ca47e68227d2 --- /dev/null +++ b/src/locale/lang/mn-TR.js @@ -0,0 +1,106 @@ +import setLang from '../lang'; + +const lang = { + i: { + locale: 'mn-TR', + select: { + placeholder: 'ᠰᠣᠩᠭᠣᠬᠤ', + noMatch: 'ᠣᠯᠳᠠᠭᠰᠠᠨ ᠦᠭᠡᠢ', + loading: 'ᠠᠴᠢᠶᠠᠯᠠᠵᠤ ᠪᠠᠶᠢᠨ᠎ᠠ' + }, + table: { + noDataText: 'ᠲᠣᠭ᠎ᠠ ᠪᠠᠷᠢᠮᠲᠠ ᠦᠭᠡᠶ', + noFilteredDataText: 'ᠨᠦᠬᠦᠴᠡᠯ ᠳᠦ ᠨᠡᠶᠢᠴᠡᠭᠰᠡᠨ ᠲᠣᠭ᠎ᠠ ᠪᠠᠷᠢᠮᠲᠠ ᠣᠯᠳᠠᠭᠰᠠᠨ ᠦᠭᠡᠢ', + confirmFilter: 'ᠰᠢᠯᠢᠬᠦ', + resetFilter: 'ᠪᠣᠴᠠᠭᠠᠬᠤ', + clearFilter: 'ᠪᠦᠬᠦ', + sumText: 'Sum' + }, + datepicker: { + selectDate: 'ᠡᠳᠦᠷ ᠰᠠᠷ᠎ᠠ ᠰᠣᠩᠭᠣᠬᠤ', + selectTime: 'ᠴᠠᠭ ᠢ ᠰᠣᠩᠭᠣᠬᠤ', + startTime: 'ᠡᠬᠢᠯᠡᠬᠦ ᠴᠠᠭ', + endTime: 'ᠲᠡᠭᠦᠰᠬᠦ ᠴᠠᠭ', + clear: 'ᠬᠣᠭᠤᠰᠤᠯᠠᠬᠤ', + ok: 'ᠲᠡᠭᠡᠶ᠎ᠡ', + datePanelLabel: '[yyyy ᠣᠨ] [m ᠰᠠᠷ᠎ᠠ]', + month: 'ᠰᠠᠷ᠎ᠠ', + month1: '1 ᠰᠠᠷ᠎ᠠ', + month2: '2 ᠰᠠᠷ᠎ᠠ', + month3: '3 ᠰᠠᠷ᠎ᠠ', + month4: '4 ᠰᠠᠷ᠎ᠠ', + month5: '5 ᠰᠠᠷ᠎ᠠ', + month6: '6 ᠰᠠᠷ᠎ᠠ', + month7: '7 ᠰᠠᠷ᠎ᠠ', + month8: '8 ᠰᠠᠷ᠎ᠠ', + month9: '9 ᠰᠠᠷ᠎ᠠ', + month10: '10 ᠰᠠᠷ᠎ᠠ', + month11: '11 ᠰᠠᠷ᠎ᠠ', + month12: '12 ᠰᠠᠷ᠎ᠠ', + year: 'ᠵᠢᠯ', + weekStartDay: '0', + weeks: { + sun: 'ᠡᠳᠦᠷ', + mon: 'ᠨᠢᠭᠡ', + tue: 'ᠬᠣᠶᠠᠷ', + wed: 'ᠭᠤᠷᠪᠠ', + thu: 'ᠳᠦᠷᠪᠡ', + fri: 'ᠲᠠᠪᠤ', + sat: 'ᠵᠢᠷᠭᠤᠭ᠎ᠠ' + }, + months: { + m1: '1 ᠰᠠᠷ᠎ᠠ', + m2: '2 ᠰᠠᠷ᠎ᠠ', + m3: '3 ᠰᠠᠷ᠎ᠠ', + m4: '4 ᠰᠠᠷ᠎ᠠ', + m5: '5 ᠰᠠᠷ᠎ᠠ', + m6: '6 ᠰᠠᠷ᠎ᠠ', + m7: '7 ᠰᠠᠷ᠎ᠠ', + m8: '8 ᠰᠠᠷ᠎ᠠ', + m9: '9 ᠰᠠᠷ᠎ᠠ', + m10: '10 ᠰᠠᠷ᠎ᠠ', + m11: '11 ᠰᠠᠷ᠎ᠠ', + m12: '12 ᠰᠠᠷ᠎ᠠ' + } + }, + transfer: { + titles: { + source: 'ᠡᠬᠢ ᠬᠦᠰᠦᠨᠦᠭ ', + target: 'ᠵᠣᠷᠢᠯᠭ᠎ᠠ ᠬᠦᠰᠦᠨᠦᠭ' + }, + filterPlaceholder: 'ᠬᠠᠶᠢᠬᠤ ᠠᠭᠤᠯᠭ᠎ᠠ ᠪᠠᠨ ᠣᠷᠤᠭᠤᠯ', + notFoundText: 'ᠬᠦᠰᠦᠨᠦᠭ ᠬᠣᠭᠣᠰᠣᠨ' + }, + modal: { + okText: 'ᠲᠡᠭᠡᠶ᠎ᠡ', + cancelText: 'ᠦᠭᠡᠶᠢᠰᠭᠡᠬᠦ' + }, + poptip: { + okText: 'ᠲᠡᠭᠡᠶ᠎ᠡ', + cancelText: 'ᠦᠭᠡᠶᠢᠰᠭᠡᠬᠦ' + }, + page: { + prev: 'ᠡᠮᠤᠨ᠎ᠠ ᠨᠢᠭᠤᠷ', + next: 'ᠳᠠᠷᠠᠭ᠎ᠠ ᠨᠢᠭᠤᠷ', + total: 'ᠨᠡᠶᠢᠲᠡ', + item: 'ᠵᠣᠷᠪᠤᠰ', + items: 'ᠵᠣᠷᠪᠤᠰ', + prev5: 'ᠡᠮᠦᠨᠡᠬᠢ 5 ᠨᠢᠭᠤᠷ', + next5: 'ᠬᠣᠶᠢᠨᠠᠬᠢ 5 ᠨᠢᠭᠤᠷ', + page: 'ᠵᠣᠷᠪᠤᠰ/ᠨᠢᠭᠤᠷ', + goto: 'ᠬᠦᠷᠬᠦ', + p: 'ᠨᠢᠭᠤᠷ' + }, + rate: { + star: 'ᠣᠳᠤ', + stars: 'ᠣᠳᠤ' + }, + tree: { + emptyText: 'ᠲᠣᠭ᠎ᠠ ᠪᠠᠷᠢᠮᠲᠠ ᠦᠭᠡᠶ' + } + } +}; + +setLang(lang); + +export default lang; diff --git a/src/locale/lang/nb-NO.js b/src/locale/lang/nb-NO.js new file mode 100644 index 0000000000000000000000000000000000000000..809e26ef5f9469f3c5713916ea9cd79a0471d212 --- /dev/null +++ b/src/locale/lang/nb-NO.js @@ -0,0 +1,115 @@ +import setLang from '../lang'; + +const lang = { + i: { + locale: 'nb-NO', + select: { + placeholder: 'Velg', + noMatch: 'Ingen treff', + loading: 'Laster' + }, + table: { + noDataText: 'Ingen data', + noFilteredDataText: 'Filtreringen gir ingen treff', + confirmFilter: 'Bekreft', + resetFilter: 'Nullstill', + clearFilter: 'Alle', + sumText: 'Sum' + }, + datepicker: { + selectDate: 'Velg dato', + selectTime: 'Velg klokkeslett', + startTime: 'Start klokken', + endTime: 'Slutt klokken', + clear: 'Nullstill', + ok: 'OK', + datePanelLabel: '[mmmm] [yyyy]', + month: 'Måned', + month1: 'Januar', + month2: 'Februar', + month3: 'Mars', + month4: 'April', + month5: 'Mai', + month6: 'Juni', + month7: 'Juli', + month8: 'August', + month9: 'September', + month10: 'Oktober', + month11: 'November', + month12: 'Desember', + year: 'År', + weekStartDay: '1', + weeks: { + sun: 'Søn', + mon: 'Man', + tue: 'Tir', + wed: 'Ons', + thu: 'Tor', + fri: 'Fre', + sat: 'Lør' + }, + months: { + m1: 'Jan', + m2: 'Feb', + m3: 'Mar', + m4: 'Apr', + m5: 'Mai', + m6: 'Jun', + m7: 'Jul', + m8: 'Aug', + m9: 'Sep', + m10: 'Okt', + m11: 'Nov', + m12: 'Des' + } + }, + transfer: { + titles: { + source: 'Kilde', + target: 'Mål' + }, + filterPlaceholder: 'Søkeord her', + notFoundText: 'Ikke funnet' + }, + modal: { + okText: 'OK', + cancelText: 'Avbryt' + }, + poptip: { + okText: 'OK', + cancelText: 'Avbryt' + }, + page: { + prev: 'Forrige side', + next: 'Neste side', + total: 'Total', + item: 'element', + items: 'elementer', + prev5: 'Forrige 5 sider', + next5: 'Neste 5 sider', + page: '/side', + goto: 'Gå til', + p: '' + }, + rate: { + star: 'Stjerne', + stars: 'Stjerner' + }, + time: { + before: ' siden', + after: ' etter', + just: 'akkurat nå', + seconds: ' sekunder', + minutes: ' minutter', + hours: ' timer', + days: ' dager' + }, + tree: { + emptyText: 'Ingen data' + } + } +}; + +setLang(lang); + +export default lang; diff --git a/src/locale/lang/nl-NL.js b/src/locale/lang/nl-NL.js new file mode 100644 index 0000000000000000000000000000000000000000..6c85e1059c250e1c9c813d1ec2ab624d5a1c3486 --- /dev/null +++ b/src/locale/lang/nl-NL.js @@ -0,0 +1,106 @@ +import setLang from '../lang'; + +const lang = { + i: { + locale: 'nl-NL', + select: { + placeholder: 'Selecteer', + noMatch: 'Geen overeenkomsten', + loading: 'Laden' + }, + table: { + noDataText: 'Geen data', + noFilteredDataText: 'Geen gefilterde data', + confirmFilter: 'Bevestig', + resetFilter: 'Herstel', + clearFilter: 'Alles', + sumText: 'Som' + }, + datepicker: { + selectDate: 'Selecteer datum', + selectTime: 'Selecteer tijd', + startTime: 'Begin tijd', + endTime: 'Eind tijd', + clear: 'Herstel', + ok: 'Ok', + datePanelLabel: '[mm] [yyyy]', + month: 'Maand', + month1: 'Januari', + month2: 'Februari', + month3: 'Maart', + month4: 'April', + month5: 'Mei', + month6: 'Juni', + month7: 'Juli', + month8: 'Augustus', + month9: 'September', + month10: 'Oktober', + month11: 'November', + month12: 'December', + year: 'Jaar', + weekStartDay: '1', + weeks: { + sun: 'Zon', + mon: 'Maa', + tue: 'Din', + wed: 'Woe', + thu: 'Don', + fri: 'Vri', + sat: 'Zat' + }, + months: { + m1: 'Jan', + m2: 'Feb', + m3: 'Mar', + m4: 'Apr', + m5: 'Mei', + m6: 'Jun', + m7: 'Jul', + m8: 'Aug', + m9: 'Sep', + m10: 'Okt', + m11: 'Nov', + m12: 'Dec' + } + }, + transfer: { + titles: { + source: 'Bron', + target: 'Doel' + }, + filterPlaceholder: 'Zoeken', + notFoundText: 'Niet gevonden' + }, + modal: { + okText: 'Ok', + cancelText: 'Annuleren' + }, + poptip: { + okText: 'Ok', + cancelText: 'Annuleren' + }, + page: { + prev: 'Vorige pagina', + next: 'Volgende pagina', + total: 'Totaal', + item: 'item', + items: 'items', + prev5: 'Vorige 5 pagina\'s', + next5: 'Volgende 5 pagina\'s', + page: '/pagina', + goto: 'Ga', + p: '' + }, + rate: { + star: 'Ster', + stars: 'Sterren' + }, + tree: { + emptyText: 'Geen data' + } + } +}; + +setLang(lang); + +export default lang; diff --git a/src/locale/lang/pl-PL.js b/src/locale/lang/pl-PL.js new file mode 100644 index 0000000000000000000000000000000000000000..55a5012ace78ddc7a89bdc2d58d5b79293d651e1 --- /dev/null +++ b/src/locale/lang/pl-PL.js @@ -0,0 +1,115 @@ +import setLang from '../lang'; + +const lang = { + i: { + locale: 'pl-PL', + select: { + placeholder: 'Wybierz', + noMatch: 'Brak pasujących wyników', + loading: 'Ładowanie' + }, + table: { + noDataText: 'Brak danych', + noFilteredDataText: 'Brak danych', + confirmFilter: 'Potwierdź', + resetFilter: 'Resetuj', + clearFilter: 'Wszystkie', + sumText: 'Razem' + }, + datepicker: { + selectDate: 'Wybierz datę', + selectTime: 'Wybierz godzinę', + startTime: 'Godzina początkowa', + endTime: 'Godzina końcowa', + clear: 'Wyczyść', + ok: 'OK', + datePanelLabel: '[mmmm] [yyyy]', + month: 'Miesiąc', + month1: 'Styczeń', + month2: 'Luty', + month3: 'Marzec', + month4: 'Kwiecień', + month5: 'Maj', + month6: 'Czerwiec', + month7: 'Lipiec', + month8: 'Sierpień', + month9: 'Wrzesień', + month10: 'Październik', + month11: 'Listopad', + month12: 'Grudzień', + year: 'Rok', + weekStartDay: '1', + weeks: { + sun: 'Ndz', + mon: 'Pon', + tue: 'Wto', + wed: 'Śro', + thu: 'Czw', + fri: 'Pią', + sat: 'Sob' + }, + months: { + m1: 'Sty', + m2: 'Lut', + m3: 'Mar', + m4: 'Kwi', + m5: 'Maj', + m6: 'Cze', + m7: 'Lip', + m8: 'Sie', + m9: 'Wrz', + m10: 'Paź', + m11: 'Lis', + m12: 'Gru' + } + }, + transfer: { + titles: { + source: 'Źródłowy', + target: 'Docelowy' + }, + filterPlaceholder: 'Szukaj tutaj', + notFoundText: 'Nie znaleziono' + }, + modal: { + okText: 'OK', + cancelText: 'Anuluj' + }, + poptip: { + okText: 'OK', + cancelText: 'Anuluj' + }, + page: { + prev: 'Poprzednia Strona', + next: 'Następna Strona', + total: 'Łącznie', + item: 'element', + items: 'elementów', + prev5: 'Poprzednie 5 Stron', + next5: 'Następne 5 Stron', + page: '/stronę', + goto: 'Idź do', + p: '' + }, + rate: { + star: 'Gwiazdka', + stars: 'Gwiazdek' + }, + time: { + before: ' temu', + after: ' po', + just: 'dopiero co', + seconds: ' sekund', + minutes: ' minut', + hours: ' godzin', + days: ' dni' + }, + tree: { + emptyText: 'Brak danych' + } + } +}; + +setLang(lang); + +export default lang; diff --git a/src/locale/lang/pt-BR.js b/src/locale/lang/pt-BR.js new file mode 100644 index 0000000000000000000000000000000000000000..b6bdbf64f38e1ae76835b1ce5324485f883eca75 --- /dev/null +++ b/src/locale/lang/pt-BR.js @@ -0,0 +1,106 @@ +import setLang from '../lang'; + +const lang = { + i: { + locale: 'pt-BR', + select: { + placeholder: 'Selecionar', + noMatch: 'Não encontrado', + loading: 'Carregando' + }, + table: { + noDataText: 'Sem dados', + noFilteredDataText: 'Sem dados filtrados', + confirmFilter: 'Confirmar', + resetFilter: 'Limpar', + clearFilter: 'Todos', + sumText: 'Sum' + }, + datepicker: { + selectDate: 'Selecione a data', + selectTime: 'Selecione a hora', + startTime: 'Hora inicial', + endTime: 'Hora final', + clear: 'Limpar', + ok: 'Confirmar', + datePanelLabel: '[mmmm] de [yyyy]', + month: 'Mês', + month1: 'Janeiro', + month2: 'Fevereiro', + month3: 'Março', + month4: 'Abril', + month5: 'Maio', + month6: 'Junho', + month7: 'Julho', + month8: 'Agosto', + month9: 'Setembro', + month10: 'Outubro', + month11: 'Novembro', + month12: 'Dezembro', + year: 'Ano', + weekStartDay: '0', + weeks: { + sun: 'Dom', + mon: 'Seg', + tue: 'Ter', + wed: 'Qua', + thu: 'Qui', + fri: 'Sex', + sat: 'Sáb' + }, + months: { + m1: 'Jan', + m2: 'Fev', + m3: 'Mar', + m4: 'Abr', + m5: 'Mai', + m6: 'Jun', + m7: 'Jul', + m8: 'Ago', + m9: 'Set', + m10: 'Out', + m11: 'Nov', + m12: 'Dez' + } + }, + transfer: { + titles: { + source: 'Origem', + target: 'Destino' + }, + filterPlaceholder: 'Pesquise aqui', + notFoundText: 'Não encontrado' + }, + modal: { + okText: 'Confirmar', + cancelText: 'Cancelar' + }, + poptip: { + okText: 'Confirmar', + cancelText: 'Cancelar' + }, + page: { + prev: 'Página Anterior', + next: 'Próxima Página', + total: 'Total', + item: 'item', + items: 'itens', + prev5: 'Voltar 5 Páginas', + next5: 'Avançar 5 Páginas', + page: '/page', + goto: 'Ir para', + p: '' + }, + rate: { + star: 'Estrela', + stars: 'Estrelas' + }, + tree: { + emptyText: 'Sem dados' + } + } +}; + +setLang(lang); + +export default lang; diff --git a/src/locale/lang/pt-PT.js b/src/locale/lang/pt-PT.js new file mode 100644 index 0000000000000000000000000000000000000000..e5dc0c804c1493d14a5510c81cad0431f9e71d27 --- /dev/null +++ b/src/locale/lang/pt-PT.js @@ -0,0 +1,106 @@ +import setLang from '../lang'; + +const lang = { + i: { + locale: 'pt-PT', + select: { + placeholder: 'Selecionar', + noMatch: 'Não encontrado', + loading: 'A carregar' + }, + table: { + noDataText: 'Sem dados', + noFilteredDataText: 'Sem dados filtrados', + confirmFilter: 'Confirmar', + resetFilter: 'Limpar', + clearFilter: 'Todos', + sumText: 'Sum' + }, + datepicker: { + selectDate: 'Selecione a data', + selectTime: 'Selecione a hora', + startTime: 'Hora inicial', + endTime: 'Hora final', + clear: 'Limpar', + ok: 'Confirmar', + datePanelLabel: '[mmmm] de [yyyy]', + month: 'Mês', + month1: 'Janeiro', + month2: 'Fevereiro', + month3: 'Março', + month4: 'Abril', + month5: 'Maio', + month6: 'Junho', + month7: 'Julho', + month8: 'Agosto', + month9: 'Setembro', + month10: 'Outubro', + month11: 'Novembro', + month12: 'Dezembro', + year: 'Ano', + weekStartDay: '1', + weeks: { + sun: 'Dom', + mon: 'Seg', + tue: 'Ter', + wed: 'Qua', + thu: 'Qui', + fri: 'Sex', + sat: 'Sáb' + }, + months: { + m1: 'Jan', + m2: 'Fev', + m3: 'Mar', + m4: 'Abr', + m5: 'Mai', + m6: 'Jun', + m7: 'Jul', + m8: 'Ago', + m9: 'Set', + m10: 'Out', + m11: 'Nov', + m12: 'Dez' + } + }, + transfer: { + titles: { + source: 'Origem', + target: 'Destino' + }, + filterPlaceholder: 'Pesquise aqui', + notFoundText: 'Não encontrado' + }, + modal: { + okText: 'Confirmar', + cancelText: 'Cancelar' + }, + poptip: { + okText: 'Confirmar', + cancelText: 'Cancelar' + }, + page: { + prev: 'Página anterior', + next: 'Próxima página', + total: 'Total', + item: 'item', + items: 'itens', + prev5: 'Voltar 5 páginas', + next5: 'Avançar 5 páginas', + page: '/page', + goto: 'Ir para', + p: '' + }, + rate: { + star: 'Estrela', + stars: 'Estrelas' + }, + tree: { + emptyText: 'Sem dados' + } + } +}; + +setLang(lang); + +export default lang; diff --git a/src/locale/lang/ro-RO.js b/src/locale/lang/ro-RO.js new file mode 100644 index 0000000000000000000000000000000000000000..f6983ff48b815e9f404649463e9fadd63ba8fbe4 --- /dev/null +++ b/src/locale/lang/ro-RO.js @@ -0,0 +1,106 @@ +import setLang from '../lang'; + +const lang = { + i: { + locale: 'ro-RO', + select: { + placeholder: 'Selectează', + noMatch: 'Niciun rezultat', + loading: 'Încărcare' + }, + table: { + noDataText: 'Fără date', + noFilteredDataText: 'Filtru fără rezultate', + confirmFilter: 'Confirmă', + resetFilter: 'Resetează', + clearFilter: 'Tot', + sumText: 'Suma' + }, + datepicker: { + selectDate: 'Selectează data', + selectTime: 'Selectează timpul', + startTime: 'Ora inițială', + endTime: 'Ora finală', + clear: 'Anulează', + ok: 'OK', + datePanelLabel: '[mmmm] [yyyy]', + month: 'Lună', + month1: 'Ianuarie', + month2: 'Februarie', + month3: 'Martie', + month4: 'Aprilia', + month5: 'Mai', + month6: 'Iunie', + month7: 'Iulie', + month8: 'August', + month9: 'Septembrie', + month10: 'Octombrie', + month11: 'Noiembrie', + month12: 'Decembrie', + year: 'An', + weekStartDay: '1', + weeks: { + sun: 'Dum', + mon: 'Lun', + tue: 'Mar', + wed: 'Mie', + thu: 'Joi', + fri: 'Vin', + sat: 'Sâm' + }, + months: { + m1: 'Ian', + m2: 'Feb', + m3: 'Mar', + m4: 'Apr', + m5: 'Mai', + m6: 'Iun', + m7: 'Iul', + m8: 'Aug', + m9: 'Sep', + m10: 'Oct', + m11: 'Noi', + m12: 'Dec' + } + }, + transfer: { + titles: { + source: 'Origine', + target: 'Destinație' + }, + filterPlaceholder: 'Caută', + notFoundText: 'Niciun rezultat' + }, + modal: { + okText: 'OK', + cancelText: 'Renunță' + }, + poptip: { + okText: 'OK', + cancelText: 'Renunță' + }, + page: { + prev: 'Pagina precedentă', + next: 'Pagina urmatoare', + total: 'Total', + item: 'element', + items: 'elemente', + prev5: '5 Pagini precedente', + next5: 'Urmatoarele 5 Pagini', + page: '/pagina', + goto: 'Du-te la', + p: '' + }, + rate: { + star: 'Stea', + stars: 'Stele' + }, + tree: { + emptyText: 'Fără date' + } + } +}; + +setLang(lang); + +export default lang; diff --git a/src/locale/lang/ru-RU.js b/src/locale/lang/ru-RU.js new file mode 100644 index 0000000000000000000000000000000000000000..503f6e98604141589e7e852c907ca5fb46cfe120 --- /dev/null +++ b/src/locale/lang/ru-RU.js @@ -0,0 +1,106 @@ +import setLang from '../lang'; + +const lang = { + i: { + locale: 'ru-RU', + select: { + placeholder: 'Выбрать', + noMatch: 'Нет соответствующих данных', + loading: 'Загрузка' + }, + table: { + noDataText: 'Нет данных', + noFilteredDataText: 'Нет данных по фильтру', + confirmFilter: 'Подтвердить', + resetFilter: 'Сброс', + clearFilter: 'Все', + sumText: 'Сумма' + }, + datepicker: { + selectDate: 'Выбрать дату', + selectTime: 'Выбрать время', + startTime: 'Начальное время', + endTime: 'Конечное время', + clear: 'Очистить', + ok: 'OK', + datePanelLabel: '[Mmmm] [yyyy]', + month: '', + month1: 'Январь', + month2: 'Февраль', + month3: 'Март', + month4: 'Апрель', + month5: 'Май', + month6: 'Июнь', + month7: 'Июль', + month8: 'Август', + month9: 'Сентябрь', + month10: 'Октябрь', + month11: 'Ноябрь', + month12: 'Декабрь', + year: '', + weekStartDay: '1', + weeks: { + sun: 'Вс', + mon: 'Пн', + tue: 'Вт', + wed: 'Ср', + thu: 'Чт', + fri: 'Пт', + sat: 'Сб' + }, + months: { + m1: 'Янв', + m2: 'Фев', + m3: 'Мар', + m4: 'Апр', + m5: 'Май', + m6: 'Июн', + m7: 'Июл', + m8: 'Авг', + m9: 'Сен', + m10: 'Окт', + m11: 'Ноя', + m12: 'Дек' + } + }, + transfer: { + titles: { + source: 'Источник', + target: 'Цель' + }, + filterPlaceholder: 'Искать здесь', + notFoundText: 'Не найдено' + }, + modal: { + okText: 'OK', + cancelText: 'Отменить' + }, + poptip: { + okText: 'OK', + cancelText: 'Отменить' + }, + page: { + prev: 'Пред. страница', + next: 'След. страница', + total: 'Всего', + item: 'пункт', + items: 'пункты', + prev5: 'Пред. 5 страниц', + next5: 'След. 5 страниц', + page: ' на странице', + goto: 'Перейти к', + p: '' + }, + rate: { + star: 'Звезда', + stars: 'Звезды' + }, + tree: { + emptyText: 'Нет данных' + } + } +}; + +setLang(lang); + +export default lang; diff --git a/src/locale/lang/si-LK.js b/src/locale/lang/si-LK.js new file mode 100644 index 0000000000000000000000000000000000000000..80fa3d114d79fcd755a164feff0feecc38890822 --- /dev/null +++ b/src/locale/lang/si-LK.js @@ -0,0 +1,115 @@ +import setLang from '../lang'; + +const lang = { + i: { + locale: 'si-LK', + select: { + placeholder: 'තෝරන්න', + noMatch: 'ගැළපෙන දත්ත නැත', + loading: 'පූරණය වෙමින්' + }, + table: { + noDataText: 'දත්ත නැත', + noFilteredDataText: 'පෙරහන් දත්ත නොමැත', + confirmFilter: 'තහවුරු කරන්න', + resetFilter: 'යළි පිහිටුවන්න', + clearFilter: 'සියල්ල', + sumText: 'එකතුව' + }, + datepicker: { + selectDate: 'දිනය තෝරන්න', + selectTime: 'වේලාව තෝරන්න', + startTime: 'ආරම්භක වේලාව', + endTime: 'අවසන් වේලාව', + clear: 'හිස් කරන්න', + ok: 'හරි', + datePanelLabel: '[yyyy] [mmmm]', + month: 'මාසය', + month1: 'දුරුතු', + month2: 'නවම්', + month3: 'මැදින්', + month4: 'බක්', + month5: 'වෙසක්', + month6: 'පොසොන්', + month7: 'ඇසළ', + month8: 'නිකිණි', + month9: 'බිනර', + month10: 'වප්', + month11: 'ඉල්', + month12: 'උඳුවප්', + year: 'වර්ෂය', + weekStartDay: '0', + weeks: { + sun: 'ඉරිදා', + mon: 'සඳුදා', + tue: 'අඟහ', + wed: 'බදාදා', + thu: 'බ්‍රහස්', + fri: 'සිකු', + sat: 'සෙන' + }, + months: { + m1: 'දුරුතු', + m2: 'නවම්', + m3: 'මැදින්', + m4: 'බක්', + m5: 'වෙසක්', + m6: 'පෙසොන්', + m7: 'ඇසළ', + m8: 'නිකිණි', + m9: 'බිනර', + m10: 'වප්', + m11: 'ඉල්', + m12: 'උඳුව' + } + }, + transfer: { + titles: { + source: 'ප්‍රභවය', + target: 'ඉලක්කය' + }, + filterPlaceholder: 'මෙතැන සොයන්න', + notFoundText: 'සොයා ගත නොහැක' + }, + modal: { + okText: 'හරි', + cancelText: 'අවලංගු කරන්න' + }, + poptip: { + okText: 'හරි', + cancelText: 'අවලංගු කරන්න' + }, + page: { + prev: 'පෙර පිටුව', + next: 'ඊළඟ පිටුව', + total: 'මුළු එකතුව', + item: 'අථකය', + items: 'අථක', + prev5: 'පෙර පිටු 5', + next5: 'ඊළඟ පිටු 5', + page: '/පිටුව', + goto: 'ට යන්න', + p: '' + }, + rate: { + star: 'තරුව', + stars: 'තරු' + }, + time: { + before: ' පෙර', + after: ' පසු', + just: 'මේ දැන්', + seconds: ' තත්පර', + minutes: ' විනාඩි', + hours: ' පැය', + days: ' දින' + }, + tree: { + emptyText: 'දත්ත නැත' + } + } +}; + +setLang(lang); + +export default lang; diff --git a/src/locale/lang/sv-SE.js b/src/locale/lang/sv-SE.js new file mode 100644 index 0000000000000000000000000000000000000000..22e554f73cffcedfe15b090a2be4d1e1a440caf3 --- /dev/null +++ b/src/locale/lang/sv-SE.js @@ -0,0 +1,106 @@ +import setLang from '../lang'; + +const lang = { + i: { + locale: 'sv-SE', + select: { + placeholder: 'Välj', + noMatch: 'Ingen träff', + loading: 'Laddar' + }, + table: { + noDataText: 'Ingen data', + noFilteredDataText: 'Ingen filter data', + confirmFilter: 'Bekräfta', + resetFilter: 'Återställ filter', + clearFilter: 'Rensa filter', + sumText: 'Sum' + }, + datepicker: { + selectDate: 'Välj datum', + selectTime: 'Välj tidpunkt', + startTime: 'Start tid', + endTime: 'Slut tid', + clear: 'Rensa', + ok: 'Ok', + datePanelLabel: '[mmmm] [yyyy]', + month: 'Månad', + month1: 'Januari', + month2: 'Februari', + month3: 'Mars', + month4: 'April', + month5: 'Maj', + month6: 'Juni', + month7: 'Juli', + month8: 'Augusti', + month9: 'September', + month10: 'Oktober', + month11: 'November', + month12: 'December', + year: 'År', + weekStartDay: '1', + weeks: { + sun: 'Sön', + mon: 'Mån', + tue: 'Tis', + wed: 'Ons', + thu: 'Tor', + fri: 'Fre', + sat: 'Lör' + }, + months: { + m1: 'Jan', + m2: 'Feb', + m3: 'Mar', + m4: 'Apr', + m5: 'Maj', + m6: 'Jun', + m7: 'Jul', + m8: 'Aug', + m9: 'Sep', + m10: 'Okt', + m11: 'Nov', + m12: 'Dec' + } + }, + transfer: { + titles: { + source: 'Källa', + target: 'Mål' + }, + filterPlaceholder: 'Sök här', + notFoundText: 'Hittade inte' + }, + modal: { + okText: 'Ok', + cancelText: 'Avbryt' + }, + poptip: { + okText: 'Ok', + cancelText: 'Avbryt' + }, + page: { + prev: 'Föregående sida', + next: 'Nästa sida', + total: 'Totalt', + item: 'objekt', + items: 'objekt', + prev5: 'Föregående 5 sidor', + next5: 'Nästa 5 sidor', + page: '/page', + goto: 'Gå till', + p: '' + }, + rate: { + star: 'Stjärna', + stars: 'Stjärnor' + }, + tree: { + emptyText: 'Ingen data' + } + } +}; + +setLang(lang); + +export default lang; diff --git a/src/locale/lang/th-TH.js b/src/locale/lang/th-TH.js new file mode 100644 index 0000000000000000000000000000000000000000..0f773c7fe6aa9571e26a7c21faab27cef6df0d8a --- /dev/null +++ b/src/locale/lang/th-TH.js @@ -0,0 +1,106 @@ +import setLang from '../lang'; + +const lang = { + i: { + locale: 'th-TH', + select: { + placeholder: 'ตัวเลือก', + noMatch: 'ข้อมูลไม่ตรงกัน', + loading: 'ดาวน์โหลด' + }, + table: { + noDataText: 'ไม่พบข้อมูล', + noFilteredDataText: 'ไม่พบตัวกรองข้อมูล', + confirmFilter: 'ยืนยัน', + resetFilter: 'รีเซ็ต', + clearFilter: 'ทั้งหมด', + sumText: 'Sum' + }, + datepicker: { + selectDate: 'เลือกวัน', + selectTime: 'เลือกเวลา', + startTime: 'เริ่มเวลา', + endTime: 'สิ้นสุดเวลา', + clear: 'ล้างข้อมูล', + ok: 'ตกลง', + datePanelLabel: '[mmmm] [yyyy]', + month: 'เดือน', + month1: 'มกราตม', + month2: 'กุมภาพันธ์', + month3: 'มีนาคม', + month4: 'เมษายน', + month5: 'พฤษภาคม', + month6: 'มิถุนายน', + month7: 'กรกฎาคม', + month8: 'สิงหาคม', + month9: 'กันยายน', + month10: 'ตุลาคม', + month11: 'พฤศจิกายน', + month12: 'ธันวาคม', + year: 'ปี', + weekStartDay: '0', + weeks: { + sun: 'อาทิตย์', + mon: 'จันทร์', + tue: 'อังคาร', + wed: 'พุธ', + thu: 'พฤหัสบดี', + fri: 'ศุกร์', + sat: 'เสาร์' + }, + months: { + m1: 'ม.ค.', + m2: 'ก.พ.', + m3: 'มี.ค.', + m4: 'เม.ย.', + m5: 'พ.ค.', + m6: 'มิ.ย.', + m7: 'ก.ค.', + m8: 'ส.ค.', + m9: 'ก.ย.', + m10: 'ต.ค.', + m11: 'พ.ย.', + m12: 'ธ.ค.' + } + }, + transfer: { + titles: { + source: 'แหล่งข้อมูล', + target: 'เป้าหมาย' + }, + filterPlaceholder: 'ค้นหาที่นี้', + notFoundText: 'ค้นหาไม่พบ' + }, + modal: { + okText: 'ตกลง', + cancelText: 'ยกเลิก' + }, + poptip: { + okText: 'ตกลง', + cancelText: 'ยกเลิก' + }, + page: { + prev: 'หน้าก่อน', + next: 'หน้าถัดไป', + total: 'ทั้งหมด', + item: 'ไอเทม', + items: 'ไอเทม', + prev5: 'ก่อน 5 หน้า', + next5: 'ถัดไป 5 หน้า', + page: '/หน้า', + goto: 'ไปยัง', + p: 'หน้า' + }, + rate: { + star: 'ดวง', + stars: 'ดวง' + }, + tree: { + emptyText: 'ไม่พบข้อมูล' + } + } +}; + +setLang(lang); + +export default lang; diff --git a/src/locale/lang/tr-TR.js b/src/locale/lang/tr-TR.js new file mode 100644 index 0000000000000000000000000000000000000000..4bd61f7caaccb674252d60380250c23f108634bf --- /dev/null +++ b/src/locale/lang/tr-TR.js @@ -0,0 +1,115 @@ +import setLang from '../lang'; + +const lang = { + i: { + locale: 'tr-TR', + select: { + placeholder: 'Seç', + noMatch: 'Eşleşen veri yok', + loading: 'yükleme' + }, + table: { + noDataText: 'Veri Yok', + noFilteredDataText: 'Süzülen veri yok', + confirmFilter: 'Onayla', + resetFilter: 'Sıfırla', + clearFilter: 'Hepsi', + sumText: 'Sum' + }, + datepicker: { + selectDate: 'Tarih seç', + selectTime: 'Zaman seç', + startTime: 'Başlangıç', + endTime: 'Bitişe', + clear: 'Temizle', + ok: 'Tamam', + datePanelLabel: '[mmmm] [yyyy]', + month: '', + month1: 'Ocak', + month2: 'Şubat', + month3: 'Mart', + month4: 'Nisan', + month5: 'Mayıs', + month6: 'Haziran', + month7: 'Temmuz', + month8: 'Ağustos', + month9: 'Eylül', + month10: 'Ekim', + month11: 'Kasım', + month12: 'Aralık', + year: '', + weekStartDay: '0', + weeks: { + sun: 'Paz', + mon: 'Pzt', + tue: 'Sal', + wed: 'Çar', + thu: 'Per', + fri: 'Cum', + sat: 'Cmt' + }, + months: { + m1: 'Oca', + m2: 'Şub', + m3: 'Mar', + m4: 'Nis', + m5: 'May', + m6: 'Haz', + m7: 'Tem', + m8: 'Ağu', + m9: 'Eyl', + m10: 'Ekm', + m11: 'Kas', + m12: 'Ara' + } + }, + transfer: { + titles: { + source: 'Kaynak', + target: 'Hedef' + }, + filterPlaceholder: 'Arama yapın', + notFoundText: 'Bulunamadı' + }, + modal: { + okText: 'Tamam', + cancelText: 'İptal' + }, + poptip: { + okText: 'Tamam', + cancelText: 'İptal' + }, + page: { + prev: 'Önceki', + next: 'Sonraki', + total: 'Toplam', + item: 'öğe', + items: 'öğeler', + prev5: 'Önceki 5 Sayfa', + next5: 'Sonraki 5 Sayfa', + page: '/sayfa', + goto: 'Git', + p: '' + }, + rate: { + star: 'Yıldız', + stars: 'Yıldız' + }, + time: { + before: ' önce', + after: ' sonra', + just: 'hemen şimdi', + seconds: ' saniye', + minutes: ' dakika', + hours: ' saat', + days: ' gün' + }, + tree: { + emptyText: 'Veri Yok' + } + } +}; + +setLang(lang); + +export default lang; diff --git a/src/locale/lang/uk-UA.js b/src/locale/lang/uk-UA.js new file mode 100644 index 0000000000000000000000000000000000000000..90aa0b784d60d955eb9eb07118860c6d96808e81 --- /dev/null +++ b/src/locale/lang/uk-UA.js @@ -0,0 +1,106 @@ +import setLang from '../lang'; + +const lang = { + i: { + locale: 'uk-UA', + select: { + placeholder: 'Обрати', + noMatch: 'Немає відповідних даних', + loading: 'Завантаження' + }, + table: { + noDataText: 'Немає даних', + noFilteredDataText: 'Немає даних по фільтру', + confirmFilter: 'Підтвердити', + resetFilter: 'Скинути', + clearFilter: 'Усе', + sumText: 'Sum' + }, + datepicker: { + selectDate: 'Обрати дату', + selectTime: 'Обрати час', + startTime: 'Початковий час', + endTime: 'Кінцевий час', + clear: 'Очистити', + ok: 'OK', + datePanelLabel: '[Mmmm] [yyyy]', + month: '', + month1: 'Січень', + month2: 'Лютий', + month3: 'Березень', + month4: 'Квітень', + month5: 'Травень', + month6: 'Червень', + month7: 'Липень', + month8: 'Серпень', + month9: 'Вересень', + month10: 'Жовтень', + month11: 'Листопад', + month12: 'Грудень', + year: '', + weekStartDay: '1', + weeks: { + sun: 'Нд', + mon: 'Пн', + tue: 'Вт', + wed: 'Ср', + thu: 'Чт', + fri: 'Пт', + sat: 'Сб' + }, + months: { + m1: 'Січ', + m2: 'Лют', + m3: 'Бер', + m4: 'Кві', + m5: 'Тра', + m6: 'Чер', + m7: 'Лип', + m8: 'Сер', + m9: 'Вер', + m10: 'Жов', + m11: 'Лис', + m12: 'Гру' + } + }, + transfer: { + titles: { + source: 'Джерело', + target: 'Ціль' + }, + filterPlaceholder: 'Шукати тут', + notFoundText: 'Не знайдено' + }, + modal: { + okText: 'OK', + cancelText: 'Скасувати' + }, + poptip: { + okText: 'OK', + cancelText: 'Скасувати' + }, + page: { + prev: 'Попер. сторінка', + next: 'Наст. сторінка', + total: 'Всього', + item: 'пункт', + items: 'пункти', + prev5: 'Попер. 5 сторінок', + next5: 'Наст. 5 сторінок', + page: '/page', + goto: 'Йти до', + p: '' + }, + rate: { + star: 'Зірка', + stars: 'Зірки' + }, + tree: { + emptyText: 'Немає даних' + } + } +}; + +setLang(lang); + +export default lang; diff --git a/src/locale/lang/vi-VN.js b/src/locale/lang/vi-VN.js new file mode 100644 index 0000000000000000000000000000000000000000..eee11bee23d7709ace28edcdc330954f5a3dc583 --- /dev/null +++ b/src/locale/lang/vi-VN.js @@ -0,0 +1,106 @@ +import setLang from '../lang'; + +const lang = { + i: { + locale: 'vi-VN', + select: { + placeholder: 'Chọn', + noMatch: 'Không tìm thấy', + loading: 'Đang tải' + }, + table: { + noDataText: 'Không có dữ liệu', + noFilteredDataText: 'Không có dữ liệu lọc', + confirmFilter: 'Xác nhận', + resetFilter: 'Làm lại', + clearFilter: 'Xóa hết', + sumText: 'Tổng' + }, + datepicker: { + selectDate: 'Chọn ngày', + selectTime: 'Chọn giờ', + startTime: 'Ngày bắt đầu', + endTime: 'Ngày kết thúc', + clear: 'Xóa', + ok: 'Đồng ý', + datePanelLabel: '[Tháng mm]/[yyyy]', + month: '', + month1: 'Tháng 1', + month2: 'Tháng 2', + month3: 'Tháng 3', + month4: 'Tháng 4', + month5: 'Tháng 5', + month6: 'Tháng 6', + month7: 'Tháng 7', + month8: 'Tháng 8', + month9: 'Tháng 9', + month10: 'Tháng 10', + month11: 'Tháng 11', + month12: 'Tháng 12', + year: '', + weekStartDay: '1', + weeks: { + sun: 'CN', + mon: 'T2', + tue: 'T3', + wed: 'T4', + thu: 'T5', + fri: 'T6', + sat: 'T7' + }, + months: { + m1: 'Th.1', + m2: 'Th.2', + m3: 'Th.3', + m4: 'Th.4', + m5: 'Th.5', + m6: 'Th.6', + m7: 'Th.7', + m8: 'Th.8', + m9: 'Th.9', + m10: 'Th.10', + m11: 'Th.11', + m12: 'Th.12' + } + }, + transfer: { + titles: { + source: 'Nguồn', + target: 'Đích' + }, + filterPlaceholder: 'Nhập từ khóa', + notFoundText: 'Không tìm thấy' + }, + modal: { + okText: 'Đồng ý', + cancelText: 'Hủy bỏ' + }, + poptip: { + okText: 'Đồng ý', + cancelText: 'Hủy bỏ' + }, + page: { + prev: 'Trang trước', + next: 'Trang kế', + total: 'Tổng', + item: 'kết quả', + items: 'kết quả', + prev5: '5 trang trước', + next5: '5 trang kế', + page: '/trang', + goto: 'Tới trang', + p: '' + }, + rate: { + star: 'Sao', + stars: 'Sao' + }, + tree: { + emptyText: 'Không có dữ liệu' + } + } +}; + +setLang(lang); + +export default lang; diff --git a/src/locale/lang/zh-CN.js b/src/locale/lang/zh-CN.js new file mode 100644 index 0000000000000000000000000000000000000000..b57269442a91ffb5524d30d7d518d247f6cbd9bf --- /dev/null +++ b/src/locale/lang/zh-CN.js @@ -0,0 +1,123 @@ +import setLang from '../lang'; + +const lang = { + i: { + locale: 'zh-CN', + select: { + placeholder: '请选择', + noMatch: '无匹配数据', + loading: '加载中' + }, + table: { + noDataText: '暂无数据', + noFilteredDataText: '暂无筛选结果', + confirmFilter: '筛选', + resetFilter: '重置', + clearFilter: '全部', + sumText: '合计' + }, + datepicker: { + selectDate: '选择日期', + selectTime: '选择时间', + startTime: '开始时间', + endTime: '结束时间', + clear: '清空', + ok: '确定', + datePanelLabel: '[yyyy年] [m月]', + month: '月', + month1: '1 月', + month2: '2 月', + month3: '3 月', + month4: '4 月', + month5: '5 月', + month6: '6 月', + month7: '7 月', + month8: '8 月', + month9: '9 月', + month10: '10 月', + month11: '11 月', + month12: '12 月', + year: '年', + weekStartDay: '0', + weeks: { + sun: '日', + mon: '一', + tue: '二', + wed: '三', + thu: '四', + fri: '五', + sat: '六' + }, + months: { + m1: '1月', + m2: '2月', + m3: '3月', + m4: '4月', + m5: '5月', + m6: '6月', + m7: '7月', + m8: '8月', + m9: '9月', + m10: '10月', + m11: '11月', + m12: '12月' + } + }, + transfer: { + titles: { + source: '源列表', + target: '目的列表' + }, + filterPlaceholder: '请输入搜索内容', + notFoundText: '列表为空' + }, + modal: { + okText: '确定', + cancelText: '取消' + }, + poptip: { + okText: '确定', + cancelText: '取消' + }, + page: { + prev: '上一页', + next: '下一页', + total: '共', + item: '条', + items: '条', + prev5: '向前 5 页', + next5: '向后 5 页', + page: '条/页', + goto: '跳至', + p: '页' + }, + rate: { + star: '星', + stars: '星' + }, + time: { + before: '前', + after: '后', + just: '刚刚', + seconds: '秒', + minutes: '分钟', + hours: '小时', + days: '天' + }, + tree: { + emptyText: '暂无数据' + }, + image: { + zoomIn: '放大', + zoomOut: '缩小', + rotateLeft: '左旋转', + rotateRight: '右旋转', + fail: '失败', + preview: '预览' + } + } +}; + +setLang(lang); + +export default lang; diff --git a/src/locale/lang/zh-TW.js b/src/locale/lang/zh-TW.js new file mode 100644 index 0000000000000000000000000000000000000000..cd1848fe7f3bd04712c9575d099a7bc033065f8b --- /dev/null +++ b/src/locale/lang/zh-TW.js @@ -0,0 +1,114 @@ +import setLang from '../lang'; + +const lang = { + i: { + locale: 'zh-TW', + select: { + placeholder: '請選擇', + noMatch: '無匹配資料', + loading: '加載中' + }, + table: { + noDataText: '暫無資料', + noFilteredDataText: '暫無篩選結果', + confirmFilter: '篩選', + resetFilter: '重置', + clearFilter: '全部', + sumText: '合計' + }, + datepicker: { + selectDate: '選擇日期', + selectTime: '選擇時間', + startTime: '開始時間', + endTime: '結束時間', + clear: '清空', + ok: '確定', + datePanelLabel: '[yyyy年] [m月]', + month: '月', + month1: '1 月', + month2: '2 月', + month3: '3 月', + month4: '4 月', + month5: '5 月', + month6: '6 月', + month7: '7 月', + month8: '8 月', + month9: '9 月', + month10: '10 月', + month11: '11 月', + month12: '12 月', + year: '年', + weekStartDay: '0', + weeks: { + sun: '日', + mon: '一', + tue: '二', + wed: '三', + thu: '四', + fri: '五', + sat: '六' + }, + months: { + m1: '1月', + m2: '2月', + m3: '3月', + m4: '4月', + m5: '5月', + m6: '6月', + m7: '7月', + m8: '8月', + m9: '9月', + m10: '10月', + m11: '11月', + m12: '12月' + } + }, + transfer: { + titles: { + source: '來源列表', + target: '目標列表' + }, + filterPlaceholder: '請輸入搜尋內容', + notFoundText: '列表爲空' + }, + modal: { + okText: '確定', + cancelText: '取消' + }, + poptip: { + okText: '確定', + cancelText: '取消' + }, + page: { + prev: '上一頁', + next: '下一頁', + total: '共', + item: '條', + items: '條', + prev5: '向前 5 頁', + next5: '向後 5 頁', + page: '條/頁', + goto: '跳至', + p: '頁' + }, + rate: { + star: '星', + stars: '星' + }, + tree: { + emptyText: '暫無資料' + }, + image: { + zoomIn: '放大', + zoomOut: '縮小', + rotateLeft: '左旋轉', + rotateRight: '右旋轉', + fail: '失敗', + preview: '預覽' + } + } +}; + +setLang(lang); + +export default lang; diff --git a/src/locale/lang/zh-UG.js b/src/locale/lang/zh-UG.js new file mode 100644 index 0000000000000000000000000000000000000000..4030f8788f100355f25f8d54b2df13b0c9cab2b0 --- /dev/null +++ b/src/locale/lang/zh-UG.js @@ -0,0 +1,115 @@ +import setLang from '../lang'; + +const lang = { + i: { + locale: 'zh-UG', + select: { + placeholder: 'تاللاش', + noMatch: 'ئۇچۇر يوق', + loading: 'سەل ساقلاش' + }, + table: { + noDataText: 'ئۇچۇر يوق', + noFilteredDataText: 'بۇنداق نەتىجە يوق', + confirmFilter: 'تاسقاش', + resetFilter: 'تازلاش', + clearFilter: 'بارلىق', + sumText: 'جەمئىي' + }, + datepicker: { + selectDate: 'چىسلا تاللاش', + selectTime: 'ۋاقىت تاللاش', + startTime: 'باشلىنىش', + endTime: 'ئاخىرلىشىش', + clear: 'بىكارلاش', + ok: 'جەزىملەش', + datePanelLabel: '[yyyyيىل] [mئاي]', + month: 'ئاي', + month1: '1-ئاي', + month2: '2-ئاي', + month3: '3-ئاي', + month4: '4-ئاي', + month5: '5-ئاي', + month6: '6-ئاي', + month7: '7-ئاي', + month8: '8-ئاي', + month9: '9-ئاي', + month10: '10-ئاي', + month11: '11-ئاي', + month12: '12-ئاي', + year: 'يىل', + weekStartDay: '0', + weeks: { + sun: 'يەك', + mon: 'دۈ', + tue: 'سەي', + wed: 'چار', + thu: 'پەي', + fri: 'جۈ', + sat: 'شەن' + }, + months: { + m1: '1-ئاي', + m2: '2-ئاي', + m3: '3-ئاي', + m4: '4-ئاي', + m5: '5-ئاي', + m6: '6-ئاي', + m7: '7-ئاي', + m8: '8-ئاي', + m9: '9-ئاي', + m10: '10-ئاي', + m11: '11-ئاي', + m12: '12-ئاي' + } + }, + transfer: { + titles: { + source: 'ئەسلى تىزىملىك', + target: 'نىشان تىزىملىك' + }, + filterPlaceholder: 'ئىزدەيدىغان مەزمۇننى كىرگۈزۈڭ', + notFoundText: 'ئۇچۇر يوق' + }, + modal: { + okText: 'جەزىملەش', + cancelText: 'بىكار قىلىش' + }, + poptip: { + okText: 'جەزىملەش', + cancelText: 'بىكار قىلىش' + }, + page: { + prev: 'ئالدىنقى بەت', + next: 'كىيىنكى بەت', + total: 'جەمئىي', + item: 'تال', + items: 'تال', + prev5: 'ئالدىغا 5 بەت', + next5: 'ئارقىغا 5 بەت', + page: 'تال/ھەر بىر بەت', + goto: 'ئاتلاش', + p: 'بەت' + }, + rate: { + star: 'يۇلتۇز', + stars: 'يۇلتۇز' + }, + time: { + before: ' بۇرۇن', + after: ' كىيىن', + just: 'بايىلا', + seconds: ' سىكونت', + minutes: ' مىنۇت', + hours: ' سائەت', + days: ' كۈن' + }, + tree: { + emptyText: 'ئۇچۇر يوق' + } + } +}; + +setLang(lang); + +export default lang; diff --git a/src/mixins/emitter.js b/src/mixins/emitter.js new file mode 100644 index 0000000000000000000000000000000000000000..e4bac478aeeafe957ac5f171502b642299a19748 --- /dev/null +++ b/src/mixins/emitter.js @@ -0,0 +1,34 @@ +function broadcast(componentName, eventName, params) { + this.$children.forEach(child => { + const name = child.$options.name; + + if (name === componentName) { + child.$emit.apply(child, [eventName].concat(params)); + } else { + // todo 如果 params 是空数组,接收到的会是 undefined + broadcast.apply(child, [componentName, eventName].concat([params])); + } + }); +} +export default { + methods: { + dispatch(componentName, eventName, params) { + let parent = this.$parent || this.$root; + let name = parent.$options.name; + + while (parent && (!name || name !== componentName)) { + parent = parent.$parent; + + if (parent) { + name = parent.$options.name; + } + } + if (parent) { + parent.$emit.apply(parent, [eventName].concat(params)); + } + }, + broadcast(componentName, eventName, params) { + broadcast.call(this, componentName, eventName, params); + } + } +}; \ No newline at end of file diff --git a/src/mixins/form.js b/src/mixins/form.js new file mode 100644 index 0000000000000000000000000000000000000000..9a2791f01261162ee3841fd43dc4dd3e0dca20a6 --- /dev/null +++ b/src/mixins/form.js @@ -0,0 +1,25 @@ +export default { + inject: { + FormInstance: { + default: '' + }, + FormItemInstance: { + default: null + } + }, + computed: { + itemDisabled () { + let state = this.disabled; + if (!state && this.FormInstance) state = this.FormInstance.disabled; + return state ? true : null; // todo can not set disabled: false + } + }, + methods: { + handleFormItemChange (type, data) { + if (this.FormItemInstance) { + if (type === 'blur') this.FormItemInstance.formBlur(data); + else if (type === 'change') this.FormItemInstance.formChange(data); + } + } + } +}; diff --git a/src/mixins/globalConfig.js b/src/mixins/globalConfig.js new file mode 100644 index 0000000000000000000000000000000000000000..9c5ac98de72665e0a63d1f7073c55da4096bc31c --- /dev/null +++ b/src/mixins/globalConfig.js @@ -0,0 +1,12 @@ +import { getCurrentInstance } from 'vue'; +export default { + data () { + return { + globalConfig: {} + } + }, + created () { + const instance = getCurrentInstance(); + this.globalConfig = instance.appContext.config.globalProperties.$VIEWUI; + } +} diff --git a/src/mixins/link.js b/src/mixins/link.js new file mode 100644 index 0000000000000000000000000000000000000000..3215b09f0525c5e5821206a98c6cbfca08d6f1ef --- /dev/null +++ b/src/mixins/link.js @@ -0,0 +1,88 @@ +import { oneOf } from '../utils/assist'; +import { isClient } from '../utils/index'; + +export default { + props: { + to: { + type: [ Object, String ] + }, + replace: { + type: Boolean, + default: false + }, + target: { + type: String, + validator (value) { + return oneOf(value, ['_blank', '_self', '_parent', '_top']); + }, + default: '_self' + }, + append: { + type: Boolean, + required: false, + default: false, + } + }, + computed: { + linkUrl () { + const type = typeof this.to; + if (type !== 'string') { + return null; + } + if (this.to.includes('//')) { + /* Absolute URL, we do not need to route this */ + return this.to; + } + const router = this.$router; + if (router) { + const current = this.$route; + const route = router.resolve(this.to, current, this.append); + return route ? route.href : this.to; + } + return this.to; + } + }, + methods: { + handleOpenTo () { + if (!isClient) return; + const router = this.$router; + let to = this.to; + if (router) { + const current = this.$route; + const route = router.resolve(this.to, current, this.append); + to = route ? route.href : this.to; + } + if (typeof this.to === 'string') return; // 会跳转两次 // todo Vue3这里不跳2次,待验证 + window.open(to); + }, + handleClick (new_window = false) { + const router = this.$router; + + if (!isClient) return; + if (new_window) { + this.handleOpenTo(); + } else { + if (router) { + if ((typeof this.to === 'string') && this.to.includes('//')) { + window.location.href = this.to; + } else { + this.replace ? this.$router.replace(this.to, () => {}) : this.$router.push(this.to, () => {}); + } + } else { + window.location.href = this.to; + } + } + }, + handleCheckClick (event, new_window = false) { + if (this.to) { + if (this.target === '_blank') { + this.handleOpenTo(); + return false; + } else { + event.preventDefault(); + this.handleClick(new_window); + } + } + } + } +}; diff --git a/src/mixins/locale.js b/src/mixins/locale.js new file mode 100644 index 0000000000000000000000000000000000000000..24a3992efcbbc11ead059523a4fb478b913564d7 --- /dev/null +++ b/src/mixins/locale.js @@ -0,0 +1,9 @@ +import { t } from '../locale'; + +export default { + methods: { + t(...args) { + return t.apply(this, args); + } + } +}; diff --git a/src/styles/README.md b/src/styles/README.md new file mode 100644 index 0000000000000000000000000000000000000000..edc51b5b00cd057815f810c58dbb4fa680a93282 --- /dev/null +++ b/src/styles/README.md @@ -0,0 +1,11 @@ +# 样式库说明 + +## 目录 + +|-- animation (动画) + +|-- common (全局样式) + +|-- components (组件样式) + +|-- mixins (混入) diff --git a/src/styles/animation/ease.less b/src/styles/animation/ease.less new file mode 100644 index 0000000000000000000000000000000000000000..15e650837ecccac3381f2ceb0aaa675be8cc2fcd --- /dev/null +++ b/src/styles/animation/ease.less @@ -0,0 +1,36 @@ +.ease-motion(@className, @keyframeName) { + .make-motion(@className, @keyframeName); + .@{className}-enter-active, .@{className}-appear { + opacity: 0; + animation-timing-function: linear; + animation-duration: @transition-time; + } + .@{className}-leave-active { + animation-timing-function: linear; + animation-duration: @transition-time; + } +} + +.ease-motion(ease, ivuEase); + +@keyframes ivuEaseIn { + 0% { + opacity: 0; + transform: scale(0.9); + } + 100% { + opacity: 1; + transform: scale(1); + } +} + +@keyframes ivuEaseOut { + 0% { + opacity: 1; + transform: scale(1); + } + 100% { + opacity: 0; + transform: scale(0.9); + } +} \ No newline at end of file diff --git a/src/styles/animation/fade.less b/src/styles/animation/fade.less new file mode 100644 index 0000000000000000000000000000000000000000..42391aa9848dc32d6c9e7b4dca45dbba909e2fd9 --- /dev/null +++ b/src/styles/animation/fade.less @@ -0,0 +1,30 @@ +.fade-motion(@className, @keyframeName) { + .make-motion(@className, @keyframeName, @animation-time-quick); + .@{className}-enter-active, .@{className}-appear { + opacity: 0; + animation-timing-function: linear; + } + .@{className}-leave-active { + animation-timing-function: linear; + } +} + +.fade-motion(fade, ivuFade); + +@keyframes ivuFadeIn { + 0% { + opacity: 0; + } + 100% { + opacity: 1; + } +} + +@keyframes ivuFadeOut { + 0% { + opacity: 1; + } + 100% { + opacity: 0; + } +} diff --git a/src/styles/animation/index.less b/src/styles/animation/index.less new file mode 100644 index 0000000000000000000000000000000000000000..a7d3e8262280ec29f6904dda9480c7a366098b7a --- /dev/null +++ b/src/styles/animation/index.less @@ -0,0 +1,33 @@ +.motion-common(@time) { + animation-duration: @time; + animation-fill-mode: both; +} + +.make-motion(@className, @keyframeName, @time: @animation-time) { + .@{className}-enter-active, .@{className}-appear { + .motion-common(@time); + animation-play-state: paused; + } + .@{className}-leave-active { + .motion-common(@time); + animation-play-state: paused; + } + .@{className}-enter-active, .@{className}-appear { + animation-name: ~"@{keyframeName}In"; + animation-play-state: running; + } + .@{className}-leave-active { + animation-name: ~"@{keyframeName}Out"; + animation-play-state: running; + } +} + +@import "fade"; +@import "move"; +@import "ease"; +@import "slide"; +@import "loop"; + +.collapse-transition { + transition: @transition-time height ease-in-out, @transition-time padding-top ease-in-out, @transition-time padding-bottom ease-in-out; +} diff --git a/src/styles/animation/loop.less b/src/styles/animation/loop.less new file mode 100644 index 0000000000000000000000000000000000000000..95c39089761dd7264b3eb89d5ca3bfd84cad3ac4 --- /dev/null +++ b/src/styles/animation/loop.less @@ -0,0 +1,3 @@ +.ivu-anim-loop{ + animation: ani-load-loop 1s linear infinite; +} \ No newline at end of file diff --git a/src/styles/animation/move.less b/src/styles/animation/move.less new file mode 100644 index 0000000000000000000000000000000000000000..7513c59a79fff2667a55d82036b3464956fabb8f --- /dev/null +++ b/src/styles/animation/move.less @@ -0,0 +1,161 @@ +.move-motion(@className, @keyframeName) { + .make-motion(@className, @keyframeName); + .@{className}-enter-active, .@{className}-appear { + opacity: 0; + animation-timing-function: @ease-in-out; + } + .@{className}-leave-active { + animation-timing-function: @ease-in-out; + } +} + +.move-motion(move-up, ivuMoveUp); +.move-motion(move-down, ivuMoveDown); +.move-motion(move-left, ivuMoveLeft); +.move-motion(move-right, ivuMoveRight); + +@keyframes ivuMoveDownIn { + 0% { + transform-origin: 0 0; + transform: translateY(100%); + opacity: 0; + } + 100% { + transform-origin: 0 0; + transform: translateY(0%); + opacity: 1; + } +} + +@keyframes ivuMoveDownOut { + 0% { + transform-origin: 0 0; + transform: translateY(0%); + opacity: 1; + } + 100% { + transform-origin: 0 0; + transform: translateY(100%); + opacity: 0; + } +} + +@keyframes ivuMoveLeftIn { + 0% { + transform-origin: 0 0; + transform: translateX(-100%); + opacity: 0; + } + 100% { + transform-origin: 0 0; + transform: translateX(0%); + opacity: 1; + } +} + +@keyframes ivuMoveLeftOut { + 0% { + transform-origin: 0 0; + transform: translateX(0%); + opacity: 1; + } + 100% { + transform-origin: 0 0; + transform: translateX(-100%); + opacity: 0; + } +} + +@keyframes ivuMoveRightIn { + 0% { + opacity: 0; + transform-origin: 0 0; + transform: translateX(100%); + } + 100% { + opacity: 1; + transform-origin: 0 0; + transform: translateX(0%); + } +} + +@keyframes ivuMoveRightOut { + 0% { + transform-origin: 0 0; + transform: translateX(0%); + opacity: 1; + } + 100% { + transform-origin: 0 0; + transform: translateX(100%); + opacity: 0; + } +} + +@keyframes ivuMoveUpIn { + 0% { + transform-origin: 0 0; + transform: translateY(-100%); + opacity: 0; + } + 100% { + transform-origin: 0 0; + transform: translateY(0%); + opacity: 1; + } +} + +@keyframes ivuMoveUpOut { + 0% { + transform-origin: 0 0; + transform: translateY(0%); + opacity: 1; + } + 100% { + transform-origin: 0 0; + transform: translateY(-100%); + opacity: 0; + } +} + +// specific transition for Notice + +.move-motion(move-notice, ivuMoveNotice); +@import '../components/notice.less'; + +@keyframes ivuMoveNoticeIn { + 0% { + opacity: 0; + transform-origin: 0 0; + transform: translateX(100%); + } + 100% { + opacity: 1; + transform-origin: 0 0; + transform: translateX(0%); + } +} + +@keyframes ivuMoveNoticeOut { + 0% { + transform-origin: 0 0; + transform: translateX(0%); + opacity: 1; + } + 70% { + transform-origin: 0 0; + transform: translateX(100%); + height: auto; + padding: @notice-padding; + margin-bottom: @notice-margin-bottom; + opacity: 0; + } + 100% { + transform-origin: 0 0; + transform: translateX(100%); + height: 0; + padding: 0; + margin-bottom: 0; + opacity: 0; + } +} diff --git a/src/styles/animation/slide.less b/src/styles/animation/slide.less new file mode 100644 index 0000000000000000000000000000000000000000..83c01343e2927c25ea3c96dfd5330eff9501f56a --- /dev/null +++ b/src/styles/animation/slide.less @@ -0,0 +1,142 @@ +.slide-motion(@className, @keyframeName) { + .make-motion(@className, @keyframeName); + .@{className}-enter-active, .@{className}-appear { + opacity: 0; + animation-timing-function: @ease-in-out; + } + .@{className}-leave-active { + animation-timing-function: @ease-in-out; + } +} + +.slide-motion(transition-drop, ivuTransitionDrop); +.slide-motion(slide-up, ivuSlideUp); +.slide-motion(slide-down, ivuSlideDown); +.slide-motion(slide-left, ivuSlideLeft); +.slide-motion(slide-right, ivuSlideRight); + +@keyframes ivuTransitionDropIn { + 0% { + opacity: 0; + transform: scaleY(0.8); + } + 100% { + opacity: 1; + transform: scaleY(1); + } +} + +@keyframes ivuTransitionDropOut { + 0% { + opacity: 1; + transform: scaleY(1); + } + 100% { + opacity: 0; + transform: scaleY(0.8); + } +} + +@keyframes ivuSlideUpIn { + 0% { + opacity: 0; + transform-origin: 0% 0%; + transform: scaleY(.8); + } + 100% { + opacity: 1; + transform-origin: 0% 0%; + transform: scaleY(1); + } +} + +@keyframes ivuSlideUpOut { + 0% { + opacity: 1; + transform-origin: 0% 0%; + transform: scaleY(1); + } + 100% { + opacity: 0; + transform-origin: 0% 0%; + transform: scaleY(.8); + } +} + +@keyframes ivuSlideDownIn { + 0% { + opacity: 0; + transform-origin: 100% 100%; + transform: scaleY(.8); + } + 100% { + opacity: 1; + transform-origin: 100% 100%; + transform: scaleY(1); + } +} + +@keyframes ivuSlideDownOut { + 0% { + opacity: 1; + transform-origin: 100% 100%; + transform: scaleY(1); + } + 100% { + opacity: 0; + transform-origin: 100% 100%; + transform: scaleY(.8); + } +} + +@keyframes ivuSlideLeftIn { + 0% { + opacity: 0; + transform-origin: 0% 0%; + transform: scaleX(.8); + } + 100% { + opacity: 1; + transform-origin: 0% 0%; + transform: scaleX(1); + } +} + +@keyframes ivuSlideLeftOut { + 0% { + opacity: 1; + transform-origin: 0% 0%; + transform: scaleX(1); + } + 100% { + opacity: 0; + transform-origin: 0% 0%; + transform: scaleX(.8); + } +} + +@keyframes ivuSlideRightIn { + 0% { + opacity: 0; + transform-origin: 100% 0%; + transform: scaleX(.8); + } + 100% { + opacity: 1; + transform-origin: 100% 0%; + transform: scaleX(1); + } +} + +@keyframes ivuSlideRightOut { + 0% { + opacity: 1; + transform-origin: 100% 0%; + transform: scaleX(1); + } + 100% { + opacity: 0; + transform-origin: 100% 0%; + transform: scaleX(.8); + } +} \ No newline at end of file diff --git a/src/styles/base.less b/src/styles/base.less new file mode 100644 index 0000000000000000000000000000000000000000..00cff14e7ec4cb6cf730e8cbe5fa7ab3371baa62 --- /dev/null +++ b/src/styles/base.less @@ -0,0 +1,192 @@ +.ivu{ + // 框类型 + &-block{ + display: block; + } + &-inline{ + display: inline; + } + &-inline-block{ + display: inline-block; + } + // 文字 + &-text-center{ + text-align: center; + } + &-text-left{ + text-align: left; + } + &-text-right{ + text-align: right; + } + + // 浮动 + &-fl{ + float: left; + } + &-fr{ + float: right; + } + &-clearfix{ + &:before,&:after{ + display: table; + content: ""; + } + &:after{ + clear: both; + } + } + + // 行数省略... + &-line-clamp{ + display: -webkit-box; + -webkit-box-orient: vertical; + overflow: hidden; + } + + // 边框 + &-b{ + border: 1px solid @border-color-split; + } + &-bt{ + border-top: 1px solid @border-color-split; + } + &-br{ + border-right: 1px solid @border-color-split; + } + &-bb{ + border-bottom: 1px solid @border-color-split; + } + &-bl{ + border-left: 1px solid @border-color-split; + } + + // 边距 + &-m-0{ + margin: 0 !important; + } + &-mt-0{ + margin-top: 0 !important; + } + &-mr-0{ + margin-right: 0 !important; + } + &-mb-0{ + margin-bottom: 0 !important; + } + &-ml-0{ + margin-left: 0 !important; + } + + &-m-4{ + margin: 4px !important; + } + &-mt-4{ + margin-top: 4px !important; + } + &-mr-4{ + margin-right: 4px !important; + } + &-mb-4{ + margin-bottom: 4px !important; + } + &-ml-4{ + margin-left: 4px !important; + } + + &-m-8{ + margin: 8px !important; + } + &-mt-8{ + margin-top: 8px !important; + } + &-mr-8{ + margin-right: 8px !important; + } + &-mb-8{ + margin-bottom: 8px !important; + } + &-ml-8{ + margin-left: 8px !important; + } + + &-p-0{ + padding: 0 !important; + } + &-pt-0{ + padding-top: 0 !important; + } + &-pr-0{ + padding-right: 0 !important; + } + &-pb-0{ + padding-bottom: 0 !important; + } + &-pl-0{ + padding-left: 0 !important; + } + + &-p-4{ + padding: 4px !important; + } + &-pt-4{ + padding-top: 4px !important; + } + &-pr-4{ + padding-right: 4px !important; + } + &-pb-4{ + padding-bottom: 4px !important; + } + &-pl-4{ + padding-left: 4px !important; + } + + &-p-8{ + padding: 8px !important; + } + &-pt-8{ + padding-top: 8px !important; + } + &-pr-8{ + padding-right: 8px !important; + } + &-pb-8{ + padding-bottom: 8px !important; + } + &-pl-8{ + padding-left: 8px !important; + } + + &-m-16, &-m{ + margin: 16px !important; + } + &-mt-16, &-mt{ + margin-top: 16px !important; + } + &-mr-16, &-mr{ + margin-right: 16px !important; + } + &-mb-16, &-mb{ + margin-bottom: 16px !important; + } + &-ml-16, &-ml{ + margin-left: 16px !important; + } + + &-p-16, &-p{ + padding: 16px !important; + } + &-pt-16, &-pt{ + padding-top: 16px !important; + } + &-pr-16, &-pr{ + padding-right: 16px !important; + } + &-pb-16, &-pb{ + padding-bottom: 16px !important; + } + &-pl-16, &-pl{ + padding-left: 16px !important; + } +} diff --git a/src/styles/color/bezierEasing.less b/src/styles/color/bezierEasing.less new file mode 100644 index 0000000000000000000000000000000000000000..cf1fc066c4a89307c6336210c55921d9eeaf512b --- /dev/null +++ b/src/styles/color/bezierEasing.less @@ -0,0 +1,110 @@ +/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors */ +.bezierEasingMixin() { +@functions: ~`(function() { + var NEWTON_ITERATIONS = 4; + var NEWTON_MIN_SLOPE = 0.001; + var SUBDIVISION_PRECISION = 0.0000001; + var SUBDIVISION_MAX_ITERATIONS = 10; + + var kSplineTableSize = 11; + var kSampleStepSize = 1.0 / (kSplineTableSize - 1.0); + + var float32ArraySupported = typeof Float32Array === 'function'; + + function A (aA1, aA2) { return 1.0 - 3.0 * aA2 + 3.0 * aA1; } + function B (aA1, aA2) { return 3.0 * aA2 - 6.0 * aA1; } + function C (aA1) { return 3.0 * aA1; } + + // Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2. + function calcBezier (aT, aA1, aA2) { return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT; } + + // Returns dx/dt given t, x1, and x2, or dy/dt given t, y1, and y2. + function getSlope (aT, aA1, aA2) { return 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1); } + + function binarySubdivide (aX, aA, aB, mX1, mX2) { + var currentX, currentT, i = 0; + do { + currentT = aA + (aB - aA) / 2.0; + currentX = calcBezier(currentT, mX1, mX2) - aX; + if (currentX > 0.0) { + aB = currentT; + } else { + aA = currentT; + } + } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS); + return currentT; + } + + function newtonRaphsonIterate (aX, aGuessT, mX1, mX2) { + for (var i = 0; i < NEWTON_ITERATIONS; ++i) { + var currentSlope = getSlope(aGuessT, mX1, mX2); + if (currentSlope === 0.0) { + return aGuessT; + } + var currentX = calcBezier(aGuessT, mX1, mX2) - aX; + aGuessT -= currentX / currentSlope; + } + return aGuessT; + } + + var BezierEasing = function (mX1, mY1, mX2, mY2) { + if (!(0 <= mX1 && mX1 <= 1 && 0 <= mX2 && mX2 <= 1)) { + throw new Error('bezier x values must be in [0, 1] range'); + } + + // Precompute samples table + var sampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize); + if (mX1 !== mY1 || mX2 !== mY2) { + for (var i = 0; i < kSplineTableSize; ++i) { + sampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2); + } + } + + function getTForX (aX) { + var intervalStart = 0.0; + var currentSample = 1; + var lastSample = kSplineTableSize - 1; + + for (; currentSample !== lastSample && sampleValues[currentSample] <= aX; ++currentSample) { + intervalStart += kSampleStepSize; + } + --currentSample; + + // Interpolate to provide an initial guess for t + var dist = (aX - sampleValues[currentSample]) / (sampleValues[currentSample + 1] - sampleValues[currentSample]); + var guessForT = intervalStart + dist * kSampleStepSize; + + var initialSlope = getSlope(guessForT, mX1, mX2); + if (initialSlope >= NEWTON_MIN_SLOPE) { + return newtonRaphsonIterate(aX, guessForT, mX1, mX2); + } else if (initialSlope === 0.0) { + return guessForT; + } else { + return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2); + } + } + + return function BezierEasing (x) { + if (mX1 === mY1 && mX2 === mY2) { + return x; // linear + } + // Because JavaScript number are imprecise, we should guarantee the extremes are right. + if (x === 0) { + return 0; + } + if (x === 1) { + return 1; + } + return calcBezier(getTForX(x), mY1, mY2); + }; + }; + + this.colorEasing = BezierEasing(0.26, 0.09, 0.37, 0.18); + // less 3 requires a return + return ''; +})()`; +} +// It is hacky way to make this function will be compiled preferentially by less +// resolve error: `ReferenceError: colorPalette is not defined` +// https://github.com/ant-design/ant-motion/issues/44 +.bezierEasingMixin(); diff --git a/src/styles/color/colorPalette.less b/src/styles/color/colorPalette.less new file mode 100644 index 0000000000000000000000000000000000000000..069991137cf1f479cc0192c3bfd08705b948ab6b --- /dev/null +++ b/src/styles/color/colorPalette.less @@ -0,0 +1,75 @@ +/* stylelint-disable no-duplicate-selectors */ +@import "bezierEasing"; +@import "tinyColor"; + +// We create a very complex algorithm which take the place of original tint/shade color system +// to make sure no one can understand it 👻 +// and create an entire color palette magicly by inputing just a single primary color. +// We are using bezier-curve easing function and some color manipulations like tint/shade/darken/spin +.colorPaletteMixin() { +@functions: ~`(function() { + var hueStep = 2; + var saturationStep = 16; + var saturationStep2 = 5; + var brightnessStep1 = 5; + var brightnessStep2 = 15; + var lightColorCount = 5; + var darkColorCount = 4; + + var getHue = function(hsv, i, isLight) { + var hue; + if (hsv.h >= 60 && hsv.h <= 240) { + hue = isLight ? hsv.h - hueStep * i : hsv.h + hueStep * i; + } else { + hue = isLight ? hsv.h + hueStep * i : hsv.h - hueStep * i; + } + if (hue < 0) { + hue += 360; + } else if (hue >= 360) { + hue -= 360; + } + return Math.round(hue); + }; + var getSaturation = function(hsv, i, isLight) { + var saturation; + if (isLight) { + saturation = Math.round(hsv.s * 100) - saturationStep * i; + } else if (i == darkColorCount) { + saturation = Math.round(hsv.s * 100) + saturationStep; + } else { + saturation = Math.round(hsv.s * 100) + saturationStep2 * i; + } + if (saturation > 100) { + saturation = 100; + } + if (isLight && i === lightColorCount && saturation > 10) { + saturation = 10; + } + if (saturation < 6) { + saturation = 6; + } + return Math.round(saturation); + }; + var getValue = function(hsv, i, isLight) { + if (isLight) { + return Math.round(hsv.v * 100) + brightnessStep1 * i; + } + return Math.round(hsv.v * 100) - brightnessStep2 * i; + }; + + this.colorPalette = function(color, index) { + var isLight = index <= 6; + var hsv = tinycolor(color).toHsv(); + var i = isLight ? lightColorCount + 1 - index : index - lightColorCount - 1; + return tinycolor({ + h: getHue(hsv, i, isLight), + s: getSaturation(hsv, i, isLight), + v: getValue(hsv, i, isLight), + }).toHexString(); + }; +})()`; +} +// It is hacky way to make this function will be compiled preferentially by less +// resolve error: `ReferenceError: colorPalette is not defined` +// https://github.com/ant-design/ant-motion/issues/44 +.colorPaletteMixin(); diff --git a/src/styles/color/colors.less b/src/styles/color/colors.less new file mode 100644 index 0000000000000000000000000000000000000000..9793a86d2726c8288dd929bcb6690fc45c62aa88 --- /dev/null +++ b/src/styles/color/colors.less @@ -0,0 +1,146 @@ +@import 'colorPalette'; + +// color palettes +@blue-1: color(~`colorPalette("@{blue-6}", 1)`); +@blue-2: color(~`colorPalette("@{blue-6}", 2)`); +@blue-3: color(~`colorPalette("@{blue-6}", 3)`); +@blue-4: color(~`colorPalette("@{blue-6}", 4)`); +@blue-5: color(~`colorPalette("@{blue-6}", 5)`); +@blue-6: #1890ff; +@blue-7: color(~`colorPalette("@{blue-6}", 7)`); +@blue-8: color(~`colorPalette("@{blue-6}", 8)`); +@blue-9: color(~`colorPalette("@{blue-6}", 9)`); +@blue-10: color(~`colorPalette("@{blue-6}", 10)`); + +@purple-1: color(~`colorPalette("@{purple-6}", 1)`); +@purple-2: color(~`colorPalette("@{purple-6}", 2)`); +@purple-3: color(~`colorPalette("@{purple-6}", 3)`); +@purple-4: color(~`colorPalette("@{purple-6}", 4)`); +@purple-5: color(~`colorPalette("@{purple-6}", 5)`); +@purple-6: #722ed1; +@purple-7: color(~`colorPalette("@{purple-6}", 7)`); +@purple-8: color(~`colorPalette("@{purple-6}", 8)`); +@purple-9: color(~`colorPalette("@{purple-6}", 9)`); +@purple-10: color(~`colorPalette("@{purple-6}", 10)`); + +@cyan-1: color(~`colorPalette("@{cyan-6}", 1)`); +@cyan-2: color(~`colorPalette("@{cyan-6}", 2)`); +@cyan-3: color(~`colorPalette("@{cyan-6}", 3)`); +@cyan-4: color(~`colorPalette("@{cyan-6}", 4)`); +@cyan-5: color(~`colorPalette("@{cyan-6}", 5)`); +@cyan-6: #13c2c2; +@cyan-7: color(~`colorPalette("@{cyan-6}", 7)`); +@cyan-8: color(~`colorPalette("@{cyan-6}", 8)`); +@cyan-9: color(~`colorPalette("@{cyan-6}", 9)`); +@cyan-10: color(~`colorPalette("@{cyan-6}", 10)`); + +@green-1: color(~`colorPalette("@{green-6}", 1)`); +@green-2: color(~`colorPalette("@{green-6}", 2)`); +@green-3: color(~`colorPalette("@{green-6}", 3)`); +@green-4: color(~`colorPalette("@{green-6}", 4)`); +@green-5: color(~`colorPalette("@{green-6}", 5)`); +@green-6: #52c41a; +@green-7: color(~`colorPalette("@{green-6}", 7)`); +@green-8: color(~`colorPalette("@{green-6}", 8)`); +@green-9: color(~`colorPalette("@{green-6}", 9)`); +@green-10: color(~`colorPalette("@{green-6}", 10)`); + +@magenta-1: color(~`colorPalette("@{magenta-6}", 1)`); +@magenta-2: color(~`colorPalette("@{magenta-6}", 2)`); +@magenta-3: color(~`colorPalette("@{magenta-6}", 3)`); +@magenta-4: color(~`colorPalette("@{magenta-6}", 4)`); +@magenta-5: color(~`colorPalette("@{magenta-6}", 5)`); +@magenta-6: #eb2f96; +@magenta-7: color(~`colorPalette("@{magenta-6}", 7)`); +@magenta-8: color(~`colorPalette("@{magenta-6}", 8)`); +@magenta-9: color(~`colorPalette("@{magenta-6}", 9)`); +@magenta-10: color(~`colorPalette("@{magenta-6}", 10)`); + +// alias of magenta +@pink-1: color(~`colorPalette("@{pink-6}", 1)`); +@pink-2: color(~`colorPalette("@{pink-6}", 2)`); +@pink-3: color(~`colorPalette("@{pink-6}", 3)`); +@pink-4: color(~`colorPalette("@{pink-6}", 4)`); +@pink-5: color(~`colorPalette("@{pink-6}", 5)`); +@pink-6: #eb2f96; +@pink-7: color(~`colorPalette("@{pink-6}", 7)`); +@pink-8: color(~`colorPalette("@{pink-6}", 8)`); +@pink-9: color(~`colorPalette("@{pink-6}", 9)`); +@pink-10: color(~`colorPalette("@{pink-6}", 10)`); + +@red-1: color(~`colorPalette("@{red-6}", 1)`); +@red-2: color(~`colorPalette("@{red-6}", 2)`); +@red-3: color(~`colorPalette("@{red-6}", 3)`); +@red-4: color(~`colorPalette("@{red-6}", 4)`); +@red-5: color(~`colorPalette("@{red-6}", 5)`); +@red-6: #f5222d; +@red-7: color(~`colorPalette("@{red-6}", 7)`); +@red-8: color(~`colorPalette("@{red-6}", 8)`); +@red-9: color(~`colorPalette("@{red-6}", 9)`); +@red-10: color(~`colorPalette("@{red-6}", 10)`); + +@orange-1: color(~`colorPalette("@{orange-6}", 1)`); +@orange-2: color(~`colorPalette("@{orange-6}", 2)`); +@orange-3: color(~`colorPalette("@{orange-6}", 3)`); +@orange-4: color(~`colorPalette("@{orange-6}", 4)`); +@orange-5: color(~`colorPalette("@{orange-6}", 5)`); +@orange-6: #fa8c16; +@orange-7: color(~`colorPalette("@{orange-6}", 7)`); +@orange-8: color(~`colorPalette("@{orange-6}", 8)`); +@orange-9: color(~`colorPalette("@{orange-6}", 9)`); +@orange-10: color(~`colorPalette("@{orange-6}", 10)`); + +@yellow-1: color(~`colorPalette("@{yellow-6}", 1)`); +@yellow-2: color(~`colorPalette("@{yellow-6}", 2)`); +@yellow-3: color(~`colorPalette("@{yellow-6}", 3)`); +@yellow-4: color(~`colorPalette("@{yellow-6}", 4)`); +@yellow-5: color(~`colorPalette("@{yellow-6}", 5)`); +@yellow-6: #fadb14; +@yellow-7: color(~`colorPalette("@{yellow-6}", 7)`); +@yellow-8: color(~`colorPalette("@{yellow-6}", 8)`); +@yellow-9: color(~`colorPalette("@{yellow-6}", 9)`); +@yellow-10: color(~`colorPalette("@{yellow-6}", 10)`); + +@volcano-1: color(~`colorPalette("@{volcano-6}", 1)`); +@volcano-2: color(~`colorPalette("@{volcano-6}", 2)`); +@volcano-3: color(~`colorPalette("@{volcano-6}", 3)`); +@volcano-4: color(~`colorPalette("@{volcano-6}", 4)`); +@volcano-5: color(~`colorPalette("@{volcano-6}", 5)`); +@volcano-6: #fa541c; +@volcano-7: color(~`colorPalette("@{volcano-6}", 7)`); +@volcano-8: color(~`colorPalette("@{volcano-6}", 8)`); +@volcano-9: color(~`colorPalette("@{volcano-6}", 9)`); +@volcano-10: color(~`colorPalette("@{volcano-6}", 10)`); + +@geekblue-1: color(~`colorPalette("@{geekblue-6}", 1)`); +@geekblue-2: color(~`colorPalette("@{geekblue-6}", 2)`); +@geekblue-3: color(~`colorPalette("@{geekblue-6}", 3)`); +@geekblue-4: color(~`colorPalette("@{geekblue-6}", 4)`); +@geekblue-5: color(~`colorPalette("@{geekblue-6}", 5)`); +@geekblue-6: #2f54eb; +@geekblue-7: color(~`colorPalette("@{geekblue-6}", 7)`); +@geekblue-8: color(~`colorPalette("@{geekblue-6}", 8)`); +@geekblue-9: color(~`colorPalette("@{geekblue-6}", 9)`); +@geekblue-10: color(~`colorPalette("@{geekblue-6}", 10)`); + +@lime-1: color(~`colorPalette("@{lime-6}", 1)`); +@lime-2: color(~`colorPalette("@{lime-6}", 2)`); +@lime-3: color(~`colorPalette("@{lime-6}", 3)`); +@lime-4: color(~`colorPalette("@{lime-6}", 4)`); +@lime-5: color(~`colorPalette("@{lime-6}", 5)`); +@lime-6: #a0d911; +@lime-7: color(~`colorPalette("@{lime-6}", 7)`); +@lime-8: color(~`colorPalette("@{lime-6}", 8)`); +@lime-9: color(~`colorPalette("@{lime-6}", 9)`); +@lime-10: color(~`colorPalette("@{lime-6}", 10)`); + +@gold-1: color(~`colorPalette("@{gold-6}", 1)`); +@gold-2: color(~`colorPalette("@{gold-6}", 2)`); +@gold-3: color(~`colorPalette("@{gold-6}", 3)`); +@gold-4: color(~`colorPalette("@{gold-6}", 4)`); +@gold-5: color(~`colorPalette("@{gold-6}", 5)`); +@gold-6: #faad14; +@gold-7: color(~`colorPalette("@{gold-6}", 7)`); +@gold-8: color(~`colorPalette("@{gold-6}", 8)`); +@gold-9: color(~`colorPalette("@{gold-6}", 9)`); +@gold-10: color(~`colorPalette("@{gold-6}", 10)`); diff --git a/src/styles/color/tinyColor.less b/src/styles/color/tinyColor.less new file mode 100644 index 0000000000000000000000000000000000000000..e576c7868711332ba026e9790c3cd886de701e5f --- /dev/null +++ b/src/styles/color/tinyColor.less @@ -0,0 +1,1184 @@ +/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */ +.tinyColorMixin() { +@functions: ~`(function() { +// TinyColor v1.4.1 +// https://github.com/bgrins/TinyColor +// 2016-07-07, Brian Grinstead, MIT License +var trimLeft = /^\s+/, + trimRight = /\s+$/, + tinyCounter = 0, + mathRound = Math.round, + mathMin = Math.min, + mathMax = Math.max, + mathRandom = Math.random; + +function tinycolor (color, opts) { + + color = (color) ? color : ''; + opts = opts || { }; + + // If input is already a tinycolor, return itself + if (color instanceof tinycolor) { + return color; + } + // If we are called as a function, call using new instead + if (!(this instanceof tinycolor)) { + return new tinycolor(color, opts); + } + + var rgb = inputToRGB(color); + this._originalInput = color, + this._r = rgb.r, + this._g = rgb.g, + this._b = rgb.b, + this._a = rgb.a, + this._roundA = mathRound(100*this._a) / 100, + this._format = opts.format || rgb.format; + this._gradientType = opts.gradientType; + + // Don't let the range of [0,255] come back in [0,1]. + // Potentially lose a little bit of precision here, but will fix issues where + // .5 gets interpreted as half of the total, instead of half of 1 + // If it was supposed to be 128, this was already taken care of by inputToRgb + if (this._r < 1) { this._r = mathRound(this._r); } + if (this._g < 1) { this._g = mathRound(this._g); } + if (this._b < 1) { this._b = mathRound(this._b); } + + this._ok = rgb.ok; + this._tc_id = tinyCounter++; +} + +tinycolor.prototype = { + isDark: function() { + return this.getBrightness() < 128; + }, + isLight: function() { + return !this.isDark(); + }, + isValid: function() { + return this._ok; + }, + getOriginalInput: function() { + return this._originalInput; + }, + getFormat: function() { + return this._format; + }, + getAlpha: function() { + return this._a; + }, + getBrightness: function() { + //http://www.w3.org/TR/AERT#color-contrast + var rgb = this.toRgb(); + return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000; + }, + getLuminance: function() { + //http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef + var rgb = this.toRgb(); + var RsRGB, GsRGB, BsRGB, R, G, B; + RsRGB = rgb.r/255; + GsRGB = rgb.g/255; + BsRGB = rgb.b/255; + + if (RsRGB <= 0.03928) {R = RsRGB / 12.92;} else {R = Math.pow(((RsRGB + 0.055) / 1.055), 2.4);} + if (GsRGB <= 0.03928) {G = GsRGB / 12.92;} else {G = Math.pow(((GsRGB + 0.055) / 1.055), 2.4);} + if (BsRGB <= 0.03928) {B = BsRGB / 12.92;} else {B = Math.pow(((BsRGB + 0.055) / 1.055), 2.4);} + return (0.2126 * R) + (0.7152 * G) + (0.0722 * B); + }, + setAlpha: function(value) { + this._a = boundAlpha(value); + this._roundA = mathRound(100*this._a) / 100; + return this; + }, + toHsv: function() { + var hsv = rgbToHsv(this._r, this._g, this._b); + return { h: hsv.h * 360, s: hsv.s, v: hsv.v, a: this._a }; + }, + toHsvString: function() { + var hsv = rgbToHsv(this._r, this._g, this._b); + var h = mathRound(hsv.h * 360), s = mathRound(hsv.s * 100), v = mathRound(hsv.v * 100); + return (this._a == 1) ? + "hsv(" + h + ", " + s + "%, " + v + "%)" : + "hsva(" + h + ", " + s + "%, " + v + "%, "+ this._roundA + ")"; + }, + toHsl: function() { + var hsl = rgbToHsl(this._r, this._g, this._b); + return { h: hsl.h * 360, s: hsl.s, l: hsl.l, a: this._a }; + }, + toHslString: function() { + var hsl = rgbToHsl(this._r, this._g, this._b); + var h = mathRound(hsl.h * 360), s = mathRound(hsl.s * 100), l = mathRound(hsl.l * 100); + return (this._a == 1) ? + "hsl(" + h + ", " + s + "%, " + l + "%)" : + "hsla(" + h + ", " + s + "%, " + l + "%, "+ this._roundA + ")"; + }, + toHex: function(allow3Char) { + return rgbToHex(this._r, this._g, this._b, allow3Char); + }, + toHexString: function(allow3Char) { + return '#' + this.toHex(allow3Char); + }, + toHex8: function(allow4Char) { + return rgbaToHex(this._r, this._g, this._b, this._a, allow4Char); + }, + toHex8String: function(allow4Char) { + return '#' + this.toHex8(allow4Char); + }, + toRgb: function() { + return { r: mathRound(this._r), g: mathRound(this._g), b: mathRound(this._b), a: this._a }; + }, + toRgbString: function() { + return (this._a == 1) ? + "rgb(" + mathRound(this._r) + ", " + mathRound(this._g) + ", " + mathRound(this._b) + ")" : + "rgba(" + mathRound(this._r) + ", " + mathRound(this._g) + ", " + mathRound(this._b) + ", " + this._roundA + ")"; + }, + toPercentageRgb: function() { + return { r: mathRound(bound01(this._r, 255) * 100) + "%", g: mathRound(bound01(this._g, 255) * 100) + "%", b: mathRound(bound01(this._b, 255) * 100) + "%", a: this._a }; + }, + toPercentageRgbString: function() { + return (this._a == 1) ? + "rgb(" + mathRound(bound01(this._r, 255) * 100) + "%, " + mathRound(bound01(this._g, 255) * 100) + "%, " + mathRound(bound01(this._b, 255) * 100) + "%)" : + "rgba(" + mathRound(bound01(this._r, 255) * 100) + "%, " + mathRound(bound01(this._g, 255) * 100) + "%, " + mathRound(bound01(this._b, 255) * 100) + "%, " + this._roundA + ")"; + }, + toName: function() { + if (this._a === 0) { + return "transparent"; + } + + if (this._a < 1) { + return false; + } + + return hexNames[rgbToHex(this._r, this._g, this._b, true)] || false; + }, + toFilter: function(secondColor) { + var hex8String = '#' + rgbaToArgbHex(this._r, this._g, this._b, this._a); + var secondHex8String = hex8String; + var gradientType = this._gradientType ? "GradientType = 1, " : ""; + + if (secondColor) { + var s = tinycolor(secondColor); + secondHex8String = '#' + rgbaToArgbHex(s._r, s._g, s._b, s._a); + } + + return "progid:DXImageTransform.Microsoft.gradient("+gradientType+"startColorstr="+hex8String+",endColorstr="+secondHex8String+")"; + }, + toString: function(format) { + var formatSet = !!format; + format = format || this._format; + + var formattedString = false; + var hasAlpha = this._a < 1 && this._a >= 0; + var needsAlphaFormat = !formatSet && hasAlpha && (format === "hex" || format === "hex6" || format === "hex3" || format === "hex4" || format === "hex8" || format === "name"); + + if (needsAlphaFormat) { + // Special case for "transparent", all other non-alpha formats + // will return rgba when there is transparency. + if (format === "name" && this._a === 0) { + return this.toName(); + } + return this.toRgbString(); + } + if (format === "rgb") { + formattedString = this.toRgbString(); + } + if (format === "prgb") { + formattedString = this.toPercentageRgbString(); + } + if (format === "hex" || format === "hex6") { + formattedString = this.toHexString(); + } + if (format === "hex3") { + formattedString = this.toHexString(true); + } + if (format === "hex4") { + formattedString = this.toHex8String(true); + } + if (format === "hex8") { + formattedString = this.toHex8String(); + } + if (format === "name") { + formattedString = this.toName(); + } + if (format === "hsl") { + formattedString = this.toHslString(); + } + if (format === "hsv") { + formattedString = this.toHsvString(); + } + + return formattedString || this.toHexString(); + }, + clone: function() { + return tinycolor(this.toString()); + }, + + _applyModification: function(fn, args) { + var color = fn.apply(null, [this].concat([].slice.call(args))); + this._r = color._r; + this._g = color._g; + this._b = color._b; + this.setAlpha(color._a); + return this; + }, + lighten: function() { + return this._applyModification(lighten, arguments); + }, + brighten: function() { + return this._applyModification(brighten, arguments); + }, + darken: function() { + return this._applyModification(darken, arguments); + }, + desaturate: function() { + return this._applyModification(desaturate, arguments); + }, + saturate: function() { + return this._applyModification(saturate, arguments); + }, + greyscale: function() { + return this._applyModification(greyscale, arguments); + }, + spin: function() { + return this._applyModification(spin, arguments); + }, + + _applyCombination: function(fn, args) { + return fn.apply(null, [this].concat([].slice.call(args))); + }, + analogous: function() { + return this._applyCombination(analogous, arguments); + }, + complement: function() { + return this._applyCombination(complement, arguments); + }, + monochromatic: function() { + return this._applyCombination(monochromatic, arguments); + }, + splitcomplement: function() { + return this._applyCombination(splitcomplement, arguments); + }, + triad: function() { + return this._applyCombination(triad, arguments); + }, + tetrad: function() { + return this._applyCombination(tetrad, arguments); + } +}; + +// If input is an object, force 1 into "1.0" to handle ratios properly +// String input requires "1.0" as input, so 1 will be treated as 1 +tinycolor.fromRatio = function(color, opts) { + if (typeof color == "object") { + var newColor = {}; + for (var i in color) { + if (color.hasOwnProperty(i)) { + if (i === "a") { + newColor[i] = color[i]; + } + else { + newColor[i] = convertToPercentage(color[i]); + } + } + } + color = newColor; + } + + return tinycolor(color, opts); +}; + +// Given a string or object, convert that input to RGB +// Possible string inputs: +// +// "red" +// "#f00" or "f00" +// "#ff0000" or "ff0000" +// "#ff000000" or "ff000000" +// "rgb 255 0 0" or "rgb (255, 0, 0)" +// "rgb 1.0 0 0" or "rgb (1, 0, 0)" +// "rgba (255, 0, 0, 1)" or "rgba 255, 0, 0, 1" +// "rgba (1.0, 0, 0, 1)" or "rgba 1.0, 0, 0, 1" +// "hsl(0, 100%, 50%)" or "hsl 0 100% 50%" +// "hsla(0, 100%, 50%, 1)" or "hsla 0 100% 50%, 1" +// "hsv(0, 100%, 100%)" or "hsv 0 100% 100%" +// +function inputToRGB(color) { + + var rgb = { r: 0, g: 0, b: 0 }; + var a = 1; + var s = null; + var v = null; + var l = null; + var ok = false; + var format = false; + + if (typeof color == "string") { + color = stringInputToObject(color); + } + + if (typeof color == "object") { + if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) { + rgb = rgbToRgb(color.r, color.g, color.b); + ok = true; + format = String(color.r).substr(-1) === "%" ? "prgb" : "rgb"; + } + else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) { + s = convertToPercentage(color.s); + v = convertToPercentage(color.v); + rgb = hsvToRgb(color.h, s, v); + ok = true; + format = "hsv"; + } + else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) { + s = convertToPercentage(color.s); + l = convertToPercentage(color.l); + rgb = hslToRgb(color.h, s, l); + ok = true; + format = "hsl"; + } + + if (color.hasOwnProperty("a")) { + a = color.a; + } + } + + a = boundAlpha(a); + + return { + ok: ok, + format: color.format || format, + r: mathMin(255, mathMax(rgb.r, 0)), + g: mathMin(255, mathMax(rgb.g, 0)), + b: mathMin(255, mathMax(rgb.b, 0)), + a: a + }; +} + +// Conversion Functions +// -------------------- + +// rgbToHsl, rgbToHsv, hslToRgb, hsvToRgb modified from: +// + +// rgbToRgb +// Handle bounds / percentage checking to conform to CSS color spec +// +// *Assumes:* r, g, b in [0, 255] or [0, 1] +// *Returns:* { r, g, b } in [0, 255] +function rgbToRgb(r, g, b){ + return { + r: bound01(r, 255) * 255, + g: bound01(g, 255) * 255, + b: bound01(b, 255) * 255 + }; +} + +// rgbToHsl +// Converts an RGB color value to HSL. +// *Assumes:* r, g, and b are contained in [0, 255] or [0, 1] +// *Returns:* { h, s, l } in [0,1] +function rgbToHsl(r, g, b) { + + r = bound01(r, 255); + g = bound01(g, 255); + b = bound01(b, 255); + + var max = mathMax(r, g, b), min = mathMin(r, g, b); + var h, s, l = (max + min) / 2; + + if(max == min) { + h = s = 0; // achromatic + } + else { + var d = max - min; + s = l > 0.5 ? d / (2 - max - min) : d / (max + min); + switch(max) { + case r: h = (g - b) / d + (g < b ? 6 : 0); break; + case g: h = (b - r) / d + 2; break; + case b: h = (r - g) / d + 4; break; + } + + h /= 6; + } + + return { h: h, s: s, l: l }; +} + +// hslToRgb +// Converts an HSL color value to RGB. +// *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100] +// *Returns:* { r, g, b } in the set [0, 255] +function hslToRgb(h, s, l) { + var r, g, b; + + h = bound01(h, 360); + s = bound01(s, 100); + l = bound01(l, 100); + + function hue2rgb(p, q, t) { + if(t < 0) t += 1; + if(t > 1) t -= 1; + if(t < 1/6) return p + (q - p) * 6 * t; + if(t < 1/2) return q; + if(t < 2/3) return p + (q - p) * (2/3 - t) * 6; + return p; + } + + if(s === 0) { + r = g = b = l; // achromatic + } + else { + var q = l < 0.5 ? l * (1 + s) : l + s - l * s; + var p = 2 * l - q; + r = hue2rgb(p, q, h + 1/3); + g = hue2rgb(p, q, h); + b = hue2rgb(p, q, h - 1/3); + } + + return { r: r * 255, g: g * 255, b: b * 255 }; +} + +// rgbToHsv +// Converts an RGB color value to HSV +// *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1] +// *Returns:* { h, s, v } in [0,1] +function rgbToHsv(r, g, b) { + + r = bound01(r, 255); + g = bound01(g, 255); + b = bound01(b, 255); + + var max = mathMax(r, g, b), min = mathMin(r, g, b); + var h, s, v = max; + + var d = max - min; + s = max === 0 ? 0 : d / max; + + if(max == min) { + h = 0; // achromatic + } + else { + switch(max) { + case r: h = (g - b) / d + (g < b ? 6 : 0); break; + case g: h = (b - r) / d + 2; break; + case b: h = (r - g) / d + 4; break; + } + h /= 6; + } + return { h: h, s: s, v: v }; +} + +// hsvToRgb +// Converts an HSV color value to RGB. +// *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100] +// *Returns:* { r, g, b } in the set [0, 255] + function hsvToRgb(h, s, v) { + + h = bound01(h, 360) * 6; + s = bound01(s, 100); + v = bound01(v, 100); + + var i = Math.floor(h), + f = h - i, + p = v * (1 - s), + q = v * (1 - f * s), + t = v * (1 - (1 - f) * s), + mod = i % 6, + r = [v, q, p, p, t, v][mod], + g = [t, v, v, q, p, p][mod], + b = [p, p, t, v, v, q][mod]; + + return { r: r * 255, g: g * 255, b: b * 255 }; +} + +// rgbToHex +// Converts an RGB color to hex +// Assumes r, g, and b are contained in the set [0, 255] +// Returns a 3 or 6 character hex +function rgbToHex(r, g, b, allow3Char) { + + var hex = [ + pad2(mathRound(r).toString(16)), + pad2(mathRound(g).toString(16)), + pad2(mathRound(b).toString(16)) + ]; + + // Return a 3 character hex if possible + if (allow3Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1)) { + return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0); + } + + return hex.join(""); +} + +// rgbaToHex +// Converts an RGBA color plus alpha transparency to hex +// Assumes r, g, b are contained in the set [0, 255] and +// a in [0, 1]. Returns a 4 or 8 character rgba hex +function rgbaToHex(r, g, b, a, allow4Char) { + + var hex = [ + pad2(mathRound(r).toString(16)), + pad2(mathRound(g).toString(16)), + pad2(mathRound(b).toString(16)), + pad2(convertDecimalToHex(a)) + ]; + + // Return a 4 character hex if possible + if (allow4Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1) && hex[3].charAt(0) == hex[3].charAt(1)) { + return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0); + } + + return hex.join(""); +} + +// rgbaToArgbHex +// Converts an RGBA color to an ARGB Hex8 string +// Rarely used, but required for "toFilter()" +function rgbaToArgbHex(r, g, b, a) { + + var hex = [ + pad2(convertDecimalToHex(a)), + pad2(mathRound(r).toString(16)), + pad2(mathRound(g).toString(16)), + pad2(mathRound(b).toString(16)) + ]; + + return hex.join(""); +} + +// equals +// Can be called with any tinycolor input +tinycolor.equals = function (color1, color2) { + if (!color1 || !color2) { return false; } + return tinycolor(color1).toRgbString() == tinycolor(color2).toRgbString(); +}; + +tinycolor.random = function() { + return tinycolor.fromRatio({ + r: mathRandom(), + g: mathRandom(), + b: mathRandom() + }); +}; + +// Modification Functions +// ---------------------- +// Thanks to less.js for some of the basics here +// + +function desaturate(color, amount) { + amount = (amount === 0) ? 0 : (amount || 10); + var hsl = tinycolor(color).toHsl(); + hsl.s -= amount / 100; + hsl.s = clamp01(hsl.s); + return tinycolor(hsl); +} + +function saturate(color, amount) { + amount = (amount === 0) ? 0 : (amount || 10); + var hsl = tinycolor(color).toHsl(); + hsl.s += amount / 100; + hsl.s = clamp01(hsl.s); + return tinycolor(hsl); +} + +function greyscale(color) { + return tinycolor(color).desaturate(100); +} + +function lighten (color, amount) { + amount = (amount === 0) ? 0 : (amount || 10); + var hsl = tinycolor(color).toHsl(); + hsl.l += amount / 100; + hsl.l = clamp01(hsl.l); + return tinycolor(hsl); +} + +function brighten(color, amount) { + amount = (amount === 0) ? 0 : (amount || 10); + var rgb = tinycolor(color).toRgb(); + rgb.r = mathMax(0, mathMin(255, rgb.r - mathRound(255 * - (amount / 100)))); + rgb.g = mathMax(0, mathMin(255, rgb.g - mathRound(255 * - (amount / 100)))); + rgb.b = mathMax(0, mathMin(255, rgb.b - mathRound(255 * - (amount / 100)))); + return tinycolor(rgb); +} + +function darken (color, amount) { + amount = (amount === 0) ? 0 : (amount || 10); + var hsl = tinycolor(color).toHsl(); + hsl.l -= amount / 100; + hsl.l = clamp01(hsl.l); + return tinycolor(hsl); +} + +// Spin takes a positive or negative amount within [-360, 360] indicating the change of hue. +// Values outside of this range will be wrapped into this range. +function spin(color, amount) { + var hsl = tinycolor(color).toHsl(); + var hue = (hsl.h + amount) % 360; + hsl.h = hue < 0 ? 360 + hue : hue; + return tinycolor(hsl); +} + +// Combination Functions +// --------------------- +// Thanks to jQuery xColor for some of the ideas behind these +// + +function complement(color) { + var hsl = tinycolor(color).toHsl(); + hsl.h = (hsl.h + 180) % 360; + return tinycolor(hsl); +} + +function triad(color) { + var hsl = tinycolor(color).toHsl(); + var h = hsl.h; + return [ + tinycolor(color), + tinycolor({ h: (h + 120) % 360, s: hsl.s, l: hsl.l }), + tinycolor({ h: (h + 240) % 360, s: hsl.s, l: hsl.l }) + ]; +} + +function tetrad(color) { + var hsl = tinycolor(color).toHsl(); + var h = hsl.h; + return [ + tinycolor(color), + tinycolor({ h: (h + 90) % 360, s: hsl.s, l: hsl.l }), + tinycolor({ h: (h + 180) % 360, s: hsl.s, l: hsl.l }), + tinycolor({ h: (h + 270) % 360, s: hsl.s, l: hsl.l }) + ]; +} + +function splitcomplement(color) { + var hsl = tinycolor(color).toHsl(); + var h = hsl.h; + return [ + tinycolor(color), + tinycolor({ h: (h + 72) % 360, s: hsl.s, l: hsl.l}), + tinycolor({ h: (h + 216) % 360, s: hsl.s, l: hsl.l}) + ]; +} + +function analogous(color, results, slices) { + results = results || 6; + slices = slices || 30; + + var hsl = tinycolor(color).toHsl(); + var part = 360 / slices; + var ret = [tinycolor(color)]; + + for (hsl.h = ((hsl.h - (part * results >> 1)) + 720) % 360; --results; ) { + hsl.h = (hsl.h + part) % 360; + ret.push(tinycolor(hsl)); + } + return ret; +} + +function monochromatic(color, results) { + results = results || 6; + var hsv = tinycolor(color).toHsv(); + var h = hsv.h, s = hsv.s, v = hsv.v; + var ret = []; + var modification = 1 / results; + + while (results--) { + ret.push(tinycolor({ h: h, s: s, v: v})); + v = (v + modification) % 1; + } + + return ret; +} + +// Utility Functions +// --------------------- + +tinycolor.mix = function(color1, color2, amount) { + amount = (amount === 0) ? 0 : (amount || 50); + + var rgb1 = tinycolor(color1).toRgb(); + var rgb2 = tinycolor(color2).toRgb(); + + var p = amount / 100; + + var rgba = { + r: ((rgb2.r - rgb1.r) * p) + rgb1.r, + g: ((rgb2.g - rgb1.g) * p) + rgb1.g, + b: ((rgb2.b - rgb1.b) * p) + rgb1.b, + a: ((rgb2.a - rgb1.a) * p) + rgb1.a + }; + + return tinycolor(rgba); +}; + +// Readability Functions +// --------------------- +// false +// tinycolor.isReadable("#000", "#111",{level:"AA",size:"large"}) => false +tinycolor.isReadable = function(color1, color2, wcag2) { + var readability = tinycolor.readability(color1, color2); + var wcag2Parms, out; + + out = false; + + wcag2Parms = validateWCAG2Parms(wcag2); + switch (wcag2Parms.level + wcag2Parms.size) { + case "AAsmall": + case "AAAlarge": + out = readability >= 4.5; + break; + case "AAlarge": + out = readability >= 3; + break; + case "AAAsmall": + out = readability >= 7; + break; + } + return out; + +}; + +// mostReadable +// Given a base color and a list of possible foreground or background +// colors for that base, returns the most readable color. +// Optionally returns Black or White if the most readable color is unreadable. +// *Example* +// tinycolor.mostReadable(tinycolor.mostReadable("#123", ["#124", "#125"],{includeFallbackColors:false}).toHexString(); // "#112255" +// tinycolor.mostReadable(tinycolor.mostReadable("#123", ["#124", "#125"],{includeFallbackColors:true}).toHexString(); // "#ffffff" +// tinycolor.mostReadable("#a8015a", ["#faf3f3"],{includeFallbackColors:true,level:"AAA",size:"large"}).toHexString(); // "#faf3f3" +// tinycolor.mostReadable("#a8015a", ["#faf3f3"],{includeFallbackColors:true,level:"AAA",size:"small"}).toHexString(); // "#ffffff" +tinycolor.mostReadable = function(baseColor, colorList, args) { + var bestColor = null; + var bestScore = 0; + var readability; + var includeFallbackColors, level, size ; + args = args || {}; + includeFallbackColors = args.includeFallbackColors ; + level = args.level; + size = args.size; + + for (var i= 0; i < colorList.length ; i++) { + readability = tinycolor.readability(baseColor, colorList[i]); + if (readability > bestScore) { + bestScore = readability; + bestColor = tinycolor(colorList[i]); + } + } + + if (tinycolor.isReadable(baseColor, bestColor, {"level":level,"size":size}) || !includeFallbackColors) { + return bestColor; + } + else { + args.includeFallbackColors=false; + return tinycolor.mostReadable(baseColor,["#fff", "#000"],args); + } +}; + +// Big List of Colors +// ------------------ +// +var names = tinycolor.names = { + aliceblue: "f0f8ff", + antiquewhite: "faebd7", + aqua: "0ff", + aquamarine: "7fffd4", + azure: "f0ffff", + beige: "f5f5dc", + bisque: "ffe4c4", + black: "000", + blanchedalmond: "ffebcd", + blue: "00f", + blueviolet: "8a2be2", + brown: "a52a2a", + burlywood: "deb887", + burntsienna: "ea7e5d", + cadetblue: "5f9ea0", + chartreuse: "7fff00", + chocolate: "d2691e", + coral: "ff7f50", + cornflowerblue: "6495ed", + cornsilk: "fff8dc", + crimson: "dc143c", + cyan: "0ff", + darkblue: "00008b", + darkcyan: "008b8b", + darkgoldenrod: "b8860b", + darkgray: "a9a9a9", + darkgreen: "006400", + darkgrey: "a9a9a9", + darkkhaki: "bdb76b", + darkmagenta: "8b008b", + darkolivegreen: "556b2f", + darkorange: "ff8c00", + darkorchid: "9932cc", + darkred: "8b0000", + darksalmon: "e9967a", + darkseagreen: "8fbc8f", + darkslateblue: "483d8b", + darkslategray: "2f4f4f", + darkslategrey: "2f4f4f", + darkturquoise: "00ced1", + darkviolet: "9400d3", + deeppink: "ff1493", + deepskyblue: "00bfff", + dimgray: "696969", + dimgrey: "696969", + dodgerblue: "1e90ff", + firebrick: "b22222", + floralwhite: "fffaf0", + forestgreen: "228b22", + fuchsia: "f0f", + gainsboro: "dcdcdc", + ghostwhite: "f8f8ff", + gold: "ffd700", + goldenrod: "daa520", + gray: "808080", + green: "008000", + greenyellow: "adff2f", + grey: "808080", + honeydew: "f0fff0", + hotpink: "ff69b4", + indianred: "cd5c5c", + indigo: "4b0082", + ivory: "fffff0", + khaki: "f0e68c", + lavender: "e6e6fa", + lavenderblush: "fff0f5", + lawngreen: "7cfc00", + lemonchiffon: "fffacd", + lightblue: "add8e6", + lightcoral: "f08080", + lightcyan: "e0ffff", + lightgoldenrodyellow: "fafad2", + lightgray: "d3d3d3", + lightgreen: "90ee90", + lightgrey: "d3d3d3", + lightpink: "ffb6c1", + lightsalmon: "ffa07a", + lightseagreen: "20b2aa", + lightskyblue: "87cefa", + lightslategray: "789", + lightslategrey: "789", + lightsteelblue: "b0c4de", + lightyellow: "ffffe0", + lime: "0f0", + limegreen: "32cd32", + linen: "faf0e6", + magenta: "f0f", + maroon: "800000", + mediumaquamarine: "66cdaa", + mediumblue: "0000cd", + mediumorchid: "ba55d3", + mediumpurple: "9370db", + mediumseagreen: "3cb371", + mediumslateblue: "7b68ee", + mediumspringgreen: "00fa9a", + mediumturquoise: "48d1cc", + mediumvioletred: "c71585", + midnightblue: "191970", + mintcream: "f5fffa", + mistyrose: "ffe4e1", + moccasin: "ffe4b5", + navajowhite: "ffdead", + navy: "000080", + oldlace: "fdf5e6", + olive: "808000", + olivedrab: "6b8e23", + orange: "ffa500", + orangered: "ff4500", + orchid: "da70d6", + palegoldenrod: "eee8aa", + palegreen: "98fb98", + paleturquoise: "afeeee", + palevioletred: "db7093", + papayawhip: "ffefd5", + peachpuff: "ffdab9", + peru: "cd853f", + pink: "ffc0cb", + plum: "dda0dd", + powderblue: "b0e0e6", + purple: "800080", + rebeccapurple: "663399", + red: "f00", + rosybrown: "bc8f8f", + royalblue: "4169e1", + saddlebrown: "8b4513", + salmon: "fa8072", + sandybrown: "f4a460", + seagreen: "2e8b57", + seashell: "fff5ee", + sienna: "a0522d", + silver: "c0c0c0", + skyblue: "87ceeb", + slateblue: "6a5acd", + slategray: "708090", + slategrey: "708090", + snow: "fffafa", + springgreen: "00ff7f", + steelblue: "4682b4", + tan: "d2b48c", + teal: "008080", + thistle: "d8bfd8", + tomato: "ff6347", + turquoise: "40e0d0", + violet: "ee82ee", + wheat: "f5deb3", + white: "fff", + whitesmoke: "f5f5f5", + yellow: "ff0", + yellowgreen: "9acd32" +}; + +// Make it easy to access colors via hexNames[hex] +var hexNames = tinycolor.hexNames = flip(names); + +// Utilities +// --------- + +// { 'name1': 'val1' } becomes { 'val1': 'name1' } +function flip(o) { + var flipped = { }; + for (var i in o) { + if (o.hasOwnProperty(i)) { + flipped[o[i]] = i; + } + } + return flipped; +} + +// Return a valid alpha value [0,1] with all invalid values being set to 1 +function boundAlpha(a) { + a = parseFloat(a); + + if (isNaN(a) || a < 0 || a > 1) { + a = 1; + } + + return a; +} + +// Take input from [0, n] and return it as [0, 1] +function bound01(n, max) { + if (isOnePointZero(n)) { n = "100%"; } + + var processPercent = isPercentage(n); + n = mathMin(max, mathMax(0, parseFloat(n))); + + // Automatically convert percentage into number + if (processPercent) { + n = parseInt(n * max, 10) / 100; + } + + // Handle floating point rounding errors + if ((Math.abs(n - max) < 0.000001)) { + return 1; + } + + // Convert into [0, 1] range if it isn't already + return (n % max) / parseFloat(max); +} + +// Force a number between 0 and 1 +function clamp01(val) { + return mathMin(1, mathMax(0, val)); +} + +// Parse a base-16 hex value into a base-10 integer +function parseIntFromHex(val) { + return parseInt(val, 16); +} + +// Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1 +// +function isOnePointZero(n) { + return typeof n == "string" && n.indexOf('.') != -1 && parseFloat(n) === 1; +} + +// Check to see if string passed in is a percentage +function isPercentage(n) { + return typeof n === "string" && n.indexOf('%') != -1; +} + +// Force a hex value to have 2 characters +function pad2(c) { + return c.length == 1 ? '0' + c : '' + c; +} + +// Replace a decimal with it's percentage value +function convertToPercentage(n) { + if (n <= 1) { + n = (n * 100) + "%"; + } + + return n; +} + +// Converts a decimal to a hex value +function convertDecimalToHex(d) { + return Math.round(parseFloat(d) * 255).toString(16); +} +// Converts a hex value to a decimal +function convertHexToDecimal(h) { + return (parseIntFromHex(h) / 255); +} + +var matchers = (function() { + + // + var CSS_INTEGER = "[-\\+]?\\d+%?"; + + // + var CSS_NUMBER = "[-\\+]?\\d*\\.\\d+%?"; + + // Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome. + var CSS_UNIT = "(?:" + CSS_NUMBER + ")|(?:" + CSS_INTEGER + ")"; + + // Actual matching. + // Parentheses and commas are optional, but not required. + // Whitespace can take the place of commas or opening paren + var PERMISSIVE_MATCH3 = "[\\s|\\(]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")\\s*\\)?"; + var PERMISSIVE_MATCH4 = "[\\s|\\(]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")\\s*\\)?"; + + return { + CSS_UNIT: new RegExp(CSS_UNIT), + rgb: new RegExp("rgb" + PERMISSIVE_MATCH3), + rgba: new RegExp("rgba" + PERMISSIVE_MATCH4), + hsl: new RegExp("hsl" + PERMISSIVE_MATCH3), + hsla: new RegExp("hsla" + PERMISSIVE_MATCH4), + hsv: new RegExp("hsv" + PERMISSIVE_MATCH3), + hsva: new RegExp("hsva" + PERMISSIVE_MATCH4), + hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/, + hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/, + hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/, + hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/ + }; +})(); + +// isValidCSSUnit +// Take in a single string / number and check to see if it looks like a CSS unit +// (see matchers above for definition). +function isValidCSSUnit(color) { + return !!matchers.CSS_UNIT.exec(color); +} + +// stringInputToObject +// Permissive string parsing. Take in a number of formats, and output an object +// based on detected format. Returns { r, g, b } or { h, s, l } or { h, s, v} +function stringInputToObject(color) { + + color = color.replace(trimLeft, '').replace(trimRight, '').toLowerCase(); + var named = false; + if (names[color]) { + color = names[color]; + named = true; + } + else if (color == 'transparent') { + return { r: 0, g: 0, b: 0, a: 0, format: "name" }; + } + + // Try to match string input using regular expressions. + // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360] + // Just return an object and let the conversion functions handle that. + // This way the result will be the same whether the tinycolor is initialized with string or object. + var match; + if ((match = matchers.rgb.exec(color))) { + return { r: match[1], g: match[2], b: match[3] }; + } + if ((match = matchers.rgba.exec(color))) { + return { r: match[1], g: match[2], b: match[3], a: match[4] }; + } + if ((match = matchers.hsl.exec(color))) { + return { h: match[1], s: match[2], l: match[3] }; + } + if ((match = matchers.hsla.exec(color))) { + return { h: match[1], s: match[2], l: match[3], a: match[4] }; + } + if ((match = matchers.hsv.exec(color))) { + return { h: match[1], s: match[2], v: match[3] }; + } + if ((match = matchers.hsva.exec(color))) { + return { h: match[1], s: match[2], v: match[3], a: match[4] }; + } + if ((match = matchers.hex8.exec(color))) { + return { + r: parseIntFromHex(match[1]), + g: parseIntFromHex(match[2]), + b: parseIntFromHex(match[3]), + a: convertHexToDecimal(match[4]), + format: named ? "name" : "hex8" + }; + } + if ((match = matchers.hex6.exec(color))) { + return { + r: parseIntFromHex(match[1]), + g: parseIntFromHex(match[2]), + b: parseIntFromHex(match[3]), + format: named ? "name" : "hex" + }; + } + if ((match = matchers.hex4.exec(color))) { + return { + r: parseIntFromHex(match[1] + '' + match[1]), + g: parseIntFromHex(match[2] + '' + match[2]), + b: parseIntFromHex(match[3] + '' + match[3]), + a: convertHexToDecimal(match[4] + '' + match[4]), + format: named ? "name" : "hex8" + }; + } + if ((match = matchers.hex3.exec(color))) { + return { + r: parseIntFromHex(match[1] + '' + match[1]), + g: parseIntFromHex(match[2] + '' + match[2]), + b: parseIntFromHex(match[3] + '' + match[3]), + format: named ? "name" : "hex" + }; + } + + return false; +} + +function validateWCAG2Parms(parms) { + // return valid WCAG2 parms for isReadable. + // If input parms are invalid, return {"level":"AA", "size":"small"} + var level, size; + parms = parms || {"level":"AA", "size":"small"}; + level = (parms.level || "AA").toUpperCase(); + size = (parms.size || "small").toLowerCase(); + if (level !== "AA" && level !== "AAA") { + level = "AA"; + } + if (size !== "small" && size !== "large") { + size = "small"; + } + return {"level":level, "size":size}; +} + +this.tinycolor = tinycolor; + +})()`; +} +// It is hacky way to make this function will be compiled preferentially by less +// resolve error: `ReferenceError: colorPalette is not defined` +// https://github.com/ant-design/ant-motion/issues/44 +.tinyColorMixin(); diff --git a/src/styles/common/article.less b/src/styles/common/article.less new file mode 100644 index 0000000000000000000000000000000000000000..d1aea50835ec8824f89097b9e46ce2548cd2de31 --- /dev/null +++ b/src/styles/common/article.less @@ -0,0 +1,59 @@ +.ivu-article { + h1{ + font-size: 26px; + font-weight: normal; + } + h2{ + font-size: 20px; + font-weight: normal; + } + h3{ + font-size: 16px; + font-weight: normal; + } + h4{ + font-size: 14px; + font-weight: normal; + } + h5{ + font-size: 12px; + font-weight: normal; + } + h6{ + font-size: 12px; + font-weight: normal; + } + + blockquote{ + padding: 5px 5px 3px 10px; + line-height: 1.5; + border-left: 4px solid #ddd; + margin-bottom: 20px; + color: #666; + font-size: 14px; + } + + ul:not([class^="ivu-"]){ + padding-left: 40px; + list-style-type: disc; + } + li:not([class^="ivu-"]){ + margin-bottom: 5px; + font-size: 14px; + } + ul ul:not([class^="ivu-"]), ol ul:not([class^="ivu-"]){ + list-style-type: circle; + } + + p{ + margin: 5px; + font-size: 14px; + } + + a:not([class^="ivu-"])[target="_blank"]:after{ + content: "\F3F2"; + font-family: Ionicons; + color: #aaa; + margin-left: 3px; + } +} \ No newline at end of file diff --git a/src/styles/common/base.less b/src/styles/common/base.less new file mode 100644 index 0000000000000000000000000000000000000000..4563bd282393826f42c397016204f05fc048d135 --- /dev/null +++ b/src/styles/common/base.less @@ -0,0 +1,72 @@ +@import "normalize"; + +* { + box-sizing: border-box; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); +} + +*:before, +*:after { + box-sizing: border-box; +} + +body { + font-family: @font-family; + font-size: @font-size-base; + line-height: @line-height-base; + color: @text-color; + background-color: @body-background; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, form, fieldset, legend, input, textarea, p, blockquote, th, td, hr, button, article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section { + margin: 0; + padding: 0; +} + +button, input, select, textarea { + font-family: inherit; + font-size: inherit; + line-height: inherit; +} + +input::-ms-clear, input::-ms-reveal { + display: none; +} + +a { + color: @link-color; + background: transparent; + text-decoration: none; + outline: none; + cursor: pointer; + transition: color @transition-time ease; + + &:hover { + color: @link-hover-color; + } + + &:active { + color: @link-active-color; + } + + &:active, + &:hover { + outline: 0; + text-decoration: none; + } + + &[disabled] { + color: #ccc; + cursor: @cursor-disabled; + pointer-events: none; + } +} + +code, +kbd, +pre, +samp { + font-family: @code-family; +} diff --git a/src/styles/common/iconfont/_ionicons-font.less b/src/styles/common/iconfont/_ionicons-font.less new file mode 100644 index 0000000000000000000000000000000000000000..25f935a6afdd03fef29204e4480b5dcbc79c5962 --- /dev/null +++ b/src/styles/common/iconfont/_ionicons-font.less @@ -0,0 +1,32 @@ +// Ionicons Font Path +// -------------------------- + +@font-face { + font-family: @ionicons-font-family; + src: url("@{ionicons-font-path}/ionicons.woff2?v=@{ionicons-version}") format("woff2"), + url("@{ionicons-font-path}/ionicons.woff?v=@{ionicons-version}") format("woff"), + url("@{ionicons-font-path}/ionicons.ttf?v=@{ionicons-version}") format("truetype"), + url("@{ionicons-font-path}/ionicons.svg?v=@{ionicons-version}#Ionicons") format("svg"); + font-weight: normal; + font-style: normal; +} + +.ivu-icon() { + display: inline-block; + font-family: @ionicons-font-family; + speak: none; + font-style: normal; + font-weight: normal; + font-variant: normal; + text-transform: none; + text-rendering: optimizeLegibility; + line-height: 1; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + vertical-align: -0.125em; + text-align: center; +} + +.ivu-icon { + .ivu-icon(); +} diff --git a/src/styles/common/iconfont/_ionicons-icons.less b/src/styles/common/iconfont/_ionicons-icons.less new file mode 100644 index 0000000000000000000000000000000000000000..8b77f74388893167c4b527aaf8c6918e28c7cba8 --- /dev/null +++ b/src/styles/common/iconfont/_ionicons-icons.less @@ -0,0 +1,2583 @@ +// Ionicons Icons +// -------------------------- + +.ivu-icon-ios-add-circle-outline:before { + content: "\f100"; +} +.ivu-icon-ios-add-circle:before { + content: "\f101"; +} +.ivu-icon-ios-add:before { + content: "\f102"; +} +.ivu-icon-ios-alarm-outline:before { + content: "\f103"; +} +.ivu-icon-ios-alarm:before { + content: "\f104"; +} +.ivu-icon-ios-albums-outline:before { + content: "\f105"; +} +.ivu-icon-ios-albums:before { + content: "\f106"; +} +.ivu-icon-ios-alert-outline:before { + content: "\f107"; +} +.ivu-icon-ios-alert:before { + content: "\f108"; +} +.ivu-icon-ios-american-football-outline:before { + content: "\f109"; +} +.ivu-icon-ios-american-football:before { + content: "\f10a"; +} +.ivu-icon-ios-analytics-outline:before { + content: "\f10b"; +} +.ivu-icon-ios-analytics:before { + content: "\f10c"; +} +.ivu-icon-ios-aperture-outline:before { + content: "\f10d"; +} +.ivu-icon-ios-aperture:before { + content: "\f10e"; +} +.ivu-icon-ios-apps-outline:before { + content: "\f10f"; +} +.ivu-icon-ios-apps:before { + content: "\f110"; +} +.ivu-icon-ios-appstore-outline:before { + content: "\f111"; +} +.ivu-icon-ios-appstore:before { + content: "\f112"; +} +.ivu-icon-ios-archive-outline:before { + content: "\f113"; +} +.ivu-icon-ios-archive:before { + content: "\f114"; +} +.ivu-icon-ios-arrow-back:before { + content: "\f115"; +} +.ivu-icon-ios-arrow-down:before { + content: "\f116"; +} +.ivu-icon-ios-arrow-dropdown-circle:before { + content: "\f117"; +} +.ivu-icon-ios-arrow-dropdown:before { + content: "\f118"; +} +.ivu-icon-ios-arrow-dropleft-circle:before { + content: "\f119"; +} +.ivu-icon-ios-arrow-dropleft:before { + content: "\f11a"; +} +.ivu-icon-ios-arrow-dropright-circle:before { + content: "\f11b"; +} +.ivu-icon-ios-arrow-dropright:before { + content: "\f11c"; +} +.ivu-icon-ios-arrow-dropup-circle:before { + content: "\f11d"; +} +.ivu-icon-ios-arrow-dropup:before { + content: "\f11e"; +} +.ivu-icon-ios-arrow-forward:before { + content: "\f11f"; +} +.ivu-icon-ios-arrow-round-back:before { + content: "\f120"; +} +.ivu-icon-ios-arrow-round-down:before { + content: "\f121"; +} +.ivu-icon-ios-arrow-round-forward:before { + content: "\f122"; +} +.ivu-icon-ios-arrow-round-up:before { + content: "\f123"; +} +.ivu-icon-ios-arrow-up:before { + content: "\f124"; +} +.ivu-icon-ios-at-outline:before { + content: "\f125"; +} +.ivu-icon-ios-at:before { + content: "\f126"; +} +.ivu-icon-ios-attach:before { + content: "\f127"; +} +.ivu-icon-ios-backspace-outline:before { + content: "\f128"; +} +.ivu-icon-ios-backspace:before { + content: "\f129"; +} +.ivu-icon-ios-barcode-outline:before { + content: "\f12a"; +} +.ivu-icon-ios-barcode:before { + content: "\f12b"; +} +.ivu-icon-ios-baseball-outline:before { + content: "\f12c"; +} +.ivu-icon-ios-baseball:before { + content: "\f12d"; +} +.ivu-icon-ios-basket-outline:before { + content: "\f12e"; +} +.ivu-icon-ios-basket:before { + content: "\f12f"; +} +.ivu-icon-ios-basketball-outline:before { + content: "\f130"; +} +.ivu-icon-ios-basketball:before { + content: "\f131"; +} +.ivu-icon-ios-battery-charging:before { + content: "\f132"; +} +.ivu-icon-ios-battery-dead:before { + content: "\f133"; +} +.ivu-icon-ios-battery-full:before { + content: "\f134"; +} +.ivu-icon-ios-beaker-outline:before { + content: "\f135"; +} +.ivu-icon-ios-beaker:before { + content: "\f136"; +} +.ivu-icon-ios-beer-outline:before { + content: "\f137"; +} +.ivu-icon-ios-beer:before { + content: "\f138"; +} +.ivu-icon-ios-bicycle:before { + content: "\f139"; +} +.ivu-icon-ios-bluetooth:before { + content: "\f13a"; +} +.ivu-icon-ios-boat-outline:before { + content: "\f13b"; +} +.ivu-icon-ios-boat:before { + content: "\f13c"; +} +.ivu-icon-ios-body-outline:before { + content: "\f13d"; +} +.ivu-icon-ios-body:before { + content: "\f13e"; +} +.ivu-icon-ios-bonfire-outline:before { + content: "\f13f"; +} +.ivu-icon-ios-bonfire:before { + content: "\f140"; +} +.ivu-icon-ios-book-outline:before { + content: "\f141"; +} +.ivu-icon-ios-book:before { + content: "\f142"; +} +.ivu-icon-ios-bookmark-outline:before { + content: "\f143"; +} +.ivu-icon-ios-bookmark:before { + content: "\f144"; +} +.ivu-icon-ios-bookmarks-outline:before { + content: "\f145"; +} +.ivu-icon-ios-bookmarks:before { + content: "\f146"; +} +.ivu-icon-ios-bowtie-outline:before { + content: "\f147"; +} +.ivu-icon-ios-bowtie:before { + content: "\f148"; +} +.ivu-icon-ios-briefcase-outline:before { + content: "\f149"; +} +.ivu-icon-ios-briefcase:before { + content: "\f14a"; +} +.ivu-icon-ios-browsers-outline:before { + content: "\f14b"; +} +.ivu-icon-ios-browsers:before { + content: "\f14c"; +} +.ivu-icon-ios-brush-outline:before { + content: "\f14d"; +} +.ivu-icon-ios-brush:before { + content: "\f14e"; +} +.ivu-icon-ios-bug-outline:before { + content: "\f14f"; +} +.ivu-icon-ios-bug:before { + content: "\f150"; +} +.ivu-icon-ios-build-outline:before { + content: "\f151"; +} +.ivu-icon-ios-build:before { + content: "\f152"; +} +.ivu-icon-ios-bulb-outline:before { + content: "\f153"; +} +.ivu-icon-ios-bulb:before { + content: "\f154"; +} +.ivu-icon-ios-bus-outline:before { + content: "\f155"; +} +.ivu-icon-ios-bus:before { + content: "\f156"; +} +.ivu-icon-ios-cafe-outline:before { + content: "\f157"; +} +.ivu-icon-ios-cafe:before { + content: "\f158"; +} +.ivu-icon-ios-calculator-outline:before { + content: "\f159"; +} +.ivu-icon-ios-calculator:before { + content: "\f15a"; +} +.ivu-icon-ios-calendar-outline:before { + content: "\f15b"; +} +.ivu-icon-ios-calendar:before { + content: "\f15c"; +} +.ivu-icon-ios-call-outline:before { + content: "\f15d"; +} +.ivu-icon-ios-call:before { + content: "\f15e"; +} +.ivu-icon-ios-camera-outline:before { + content: "\f15f"; +} +.ivu-icon-ios-camera:before { + content: "\f160"; +} +.ivu-icon-ios-car-outline:before { + content: "\f161"; +} +.ivu-icon-ios-car:before { + content: "\f162"; +} +.ivu-icon-ios-card-outline:before { + content: "\f163"; +} +.ivu-icon-ios-card:before { + content: "\f164"; +} +.ivu-icon-ios-cart-outline:before { + content: "\f165"; +} +.ivu-icon-ios-cart:before { + content: "\f166"; +} +.ivu-icon-ios-cash-outline:before { + content: "\f167"; +} +.ivu-icon-ios-cash:before { + content: "\f168"; +} +.ivu-icon-ios-chatboxes-outline:before { + content: "\f169"; +} +.ivu-icon-ios-chatboxes:before { + content: "\f16a"; +} +.ivu-icon-ios-chatbubbles-outline:before { + content: "\f16b"; +} +.ivu-icon-ios-chatbubbles:before { + content: "\f16c"; +} +.ivu-icon-ios-checkbox-outline:before { + content: "\f16d"; +} +.ivu-icon-ios-checkbox:before { + content: "\f16e"; +} +.ivu-icon-ios-checkmark-circle-outline:before { + content: "\f16f"; +} +.ivu-icon-ios-checkmark-circle:before { + content: "\f170"; +} +.ivu-icon-ios-checkmark:before { + content: "\f171"; +} +.ivu-icon-ios-clipboard-outline:before { + content: "\f172"; +} +.ivu-icon-ios-clipboard:before { + content: "\f173"; +} +.ivu-icon-ios-clock-outline:before { + content: "\f174"; +} +.ivu-icon-ios-clock:before { + content: "\f175"; +} +.ivu-icon-ios-close-circle-outline:before { + content: "\f176"; +} +.ivu-icon-ios-close-circle:before { + content: "\f177"; +} +.ivu-icon-ios-close:before { + content: "\f178"; +} +.ivu-icon-ios-closed-captioning-outline:before { + content: "\f179"; +} +.ivu-icon-ios-closed-captioning:before { + content: "\f17a"; +} +.ivu-icon-ios-cloud-circle-outline:before { + content: "\f17b"; +} +.ivu-icon-ios-cloud-circle:before { + content: "\f17c"; +} +.ivu-icon-ios-cloud-done-outline:before { + content: "\f17d"; +} +.ivu-icon-ios-cloud-done:before { + content: "\f17e"; +} +.ivu-icon-ios-cloud-download-outline:before { + content: "\f17f"; +} +.ivu-icon-ios-cloud-download:before { + content: "\f180"; +} +.ivu-icon-ios-cloud-outline:before { + content: "\f181"; +} +.ivu-icon-ios-cloud-upload-outline:before { + content: "\f182"; +} +.ivu-icon-ios-cloud-upload:before { + content: "\f183"; +} +.ivu-icon-ios-cloud:before { + content: "\f184"; +} +.ivu-icon-ios-cloudy-night-outline:before { + content: "\f185"; +} +.ivu-icon-ios-cloudy-night:before { + content: "\f186"; +} +.ivu-icon-ios-cloudy-outline:before { + content: "\f187"; +} +.ivu-icon-ios-cloudy:before { + content: "\f188"; +} +.ivu-icon-ios-code-download:before { + content: "\f189"; +} +.ivu-icon-ios-code-working:before { + content: "\f18a"; +} +.ivu-icon-ios-code:before { + content: "\f18b"; +} +.ivu-icon-ios-cog-outline:before { + content: "\f18c"; +} +.ivu-icon-ios-cog:before { + content: "\f18d"; +} +.ivu-icon-ios-color-fill-outline:before { + content: "\f18e"; +} +.ivu-icon-ios-color-fill:before { + content: "\f18f"; +} +.ivu-icon-ios-color-filter-outline:before { + content: "\f190"; +} +.ivu-icon-ios-color-filter:before { + content: "\f191"; +} +.ivu-icon-ios-color-palette-outline:before { + content: "\f192"; +} +.ivu-icon-ios-color-palette:before { + content: "\f193"; +} +.ivu-icon-ios-color-wand-outline:before { + content: "\f194"; +} +.ivu-icon-ios-color-wand:before { + content: "\f195"; +} +.ivu-icon-ios-compass-outline:before { + content: "\f196"; +} +.ivu-icon-ios-compass:before { + content: "\f197"; +} +.ivu-icon-ios-construct-outline:before { + content: "\f198"; +} +.ivu-icon-ios-construct:before { + content: "\f199"; +} +.ivu-icon-ios-contact-outline:before { + content: "\f19a"; +} +.ivu-icon-ios-contact:before { + content: "\f19b"; +} +.ivu-icon-ios-contacts-outline:before { + content: "\f19c"; +} +.ivu-icon-ios-contacts:before { + content: "\f19d"; +} +.ivu-icon-ios-contract:before { + content: "\f19e"; +} +.ivu-icon-ios-contrast:before { + content: "\f19f"; +} +.ivu-icon-ios-copy-outline:before { + content: "\f1a0"; +} +.ivu-icon-ios-copy:before { + content: "\f1a1"; +} +.ivu-icon-ios-create-outline:before { + content: "\f1a2"; +} +.ivu-icon-ios-create:before { + content: "\f1a3"; +} +.ivu-icon-ios-crop-outline:before { + content: "\f1a4"; +} +.ivu-icon-ios-crop:before { + content: "\f1a5"; +} +.ivu-icon-ios-cube-outline:before { + content: "\f1a6"; +} +.ivu-icon-ios-cube:before { + content: "\f1a7"; +} +.ivu-icon-ios-cut-outline:before { + content: "\f1a8"; +} +.ivu-icon-ios-cut:before { + content: "\f1a9"; +} +.ivu-icon-ios-desktop-outline:before { + content: "\f1aa"; +} +.ivu-icon-ios-desktop:before { + content: "\f1ab"; +} +.ivu-icon-ios-disc-outline:before { + content: "\f1ac"; +} +.ivu-icon-ios-disc:before { + content: "\f1ad"; +} +.ivu-icon-ios-document-outline:before { + content: "\f1ae"; +} +.ivu-icon-ios-document:before { + content: "\f1af"; +} +.ivu-icon-ios-done-all:before { + content: "\f1b0"; +} +.ivu-icon-ios-download-outline:before { + content: "\f1b1"; +} +.ivu-icon-ios-download:before { + content: "\f1b2"; +} +.ivu-icon-ios-easel-outline:before { + content: "\f1b3"; +} +.ivu-icon-ios-easel:before { + content: "\f1b4"; +} +.ivu-icon-ios-egg-outline:before { + content: "\f1b5"; +} +.ivu-icon-ios-egg:before { + content: "\f1b6"; +} +.ivu-icon-ios-exit-outline:before { + content: "\f1b7"; +} +.ivu-icon-ios-exit:before { + content: "\f1b8"; +} +.ivu-icon-ios-expand:before { + content: "\f1b9"; +} +.ivu-icon-ios-eye-off-outline:before { + content: "\f1ba"; +} +.ivu-icon-ios-eye-off:before { + content: "\f1bb"; +} +.ivu-icon-ios-eye-outline:before { + content: "\f1bc"; +} +.ivu-icon-ios-eye:before { + content: "\f1bd"; +} +.ivu-icon-ios-fastforward-outline:before { + content: "\f1be"; +} +.ivu-icon-ios-fastforward:before { + content: "\f1bf"; +} +.ivu-icon-ios-female:before { + content: "\f1c0"; +} +.ivu-icon-ios-filing-outline:before { + content: "\f1c1"; +} +.ivu-icon-ios-filing:before { + content: "\f1c2"; +} +.ivu-icon-ios-film-outline:before { + content: "\f1c3"; +} +.ivu-icon-ios-film:before { + content: "\f1c4"; +} +.ivu-icon-ios-finger-print:before { + content: "\f1c5"; +} +.ivu-icon-ios-flag-outline:before { + content: "\f1c6"; +} +.ivu-icon-ios-flag:before { + content: "\f1c7"; +} +.ivu-icon-ios-flame-outline:before { + content: "\f1c8"; +} +.ivu-icon-ios-flame:before { + content: "\f1c9"; +} +.ivu-icon-ios-flash-outline:before { + content: "\f1ca"; +} +.ivu-icon-ios-flash:before { + content: "\f1cb"; +} +.ivu-icon-ios-flask-outline:before { + content: "\f1cc"; +} +.ivu-icon-ios-flask:before { + content: "\f1cd"; +} +.ivu-icon-ios-flower-outline:before { + content: "\f1ce"; +} +.ivu-icon-ios-flower:before { + content: "\f1cf"; +} +.ivu-icon-ios-folder-open-outline:before { + content: "\f1d0"; +} +.ivu-icon-ios-folder-open:before { + content: "\f1d1"; +} +.ivu-icon-ios-folder-outline:before { + content: "\f1d2"; +} +.ivu-icon-ios-folder:before { + content: "\f1d3"; +} +.ivu-icon-ios-football-outline:before { + content: "\f1d4"; +} +.ivu-icon-ios-football:before { + content: "\f1d5"; +} +.ivu-icon-ios-funnel-outline:before { + content: "\f1d6"; +} +.ivu-icon-ios-funnel:before { + content: "\f1d7"; +} +.ivu-icon-ios-game-controller-a-outline:before { + content: "\f1d8"; +} +.ivu-icon-ios-game-controller-a:before { + content: "\f1d9"; +} +.ivu-icon-ios-game-controller-b-outline:before { + content: "\f1da"; +} +.ivu-icon-ios-game-controller-b:before { + content: "\f1db"; +} +.ivu-icon-ios-git-branch:before { + content: "\f1dc"; +} +.ivu-icon-ios-git-commit:before { + content: "\f1dd"; +} +.ivu-icon-ios-git-compare:before { + content: "\f1de"; +} +.ivu-icon-ios-git-merge:before { + content: "\f1df"; +} +.ivu-icon-ios-git-network:before { + content: "\f1e0"; +} +.ivu-icon-ios-git-pull-request:before { + content: "\f1e1"; +} +.ivu-icon-ios-glasses-outline:before { + content: "\f1e2"; +} +.ivu-icon-ios-glasses:before { + content: "\f1e3"; +} +.ivu-icon-ios-globe-outline:before { + content: "\f1e4"; +} +.ivu-icon-ios-globe:before { + content: "\f1e5"; +} +.ivu-icon-ios-grid-outline:before { + content: "\f1e6"; +} +.ivu-icon-ios-grid:before { + content: "\f1e7"; +} +.ivu-icon-ios-hammer-outline:before { + content: "\f1e8"; +} +.ivu-icon-ios-hammer:before { + content: "\f1e9"; +} +.ivu-icon-ios-hand-outline:before { + content: "\f1ea"; +} +.ivu-icon-ios-hand:before { + content: "\f1eb"; +} +.ivu-icon-ios-happy-outline:before { + content: "\f1ec"; +} +.ivu-icon-ios-happy:before { + content: "\f1ed"; +} +.ivu-icon-ios-headset-outline:before { + content: "\f1ee"; +} +.ivu-icon-ios-headset:before { + content: "\f1ef"; +} +.ivu-icon-ios-heart-outline:before { + content: "\f1f0"; +} +.ivu-icon-ios-heart:before { + content: "\f1f1"; +} +.ivu-icon-ios-help-buoy-outline:before { + content: "\f1f2"; +} +.ivu-icon-ios-help-buoy:before { + content: "\f1f3"; +} +.ivu-icon-ios-help-circle-outline:before { + content: "\f1f4"; +} +.ivu-icon-ios-help-circle:before { + content: "\f1f5"; +} +.ivu-icon-ios-help:before { + content: "\f1f6"; +} +.ivu-icon-ios-home-outline:before { + content: "\f1f7"; +} +.ivu-icon-ios-home:before { + content: "\f1f8"; +} +.ivu-icon-ios-ice-cream-outline:before { + content: "\f1f9"; +} +.ivu-icon-ios-ice-cream:before { + content: "\f1fa"; +} +.ivu-icon-ios-image-outline:before { + content: "\f1fb"; +} +.ivu-icon-ios-image:before { + content: "\f1fc"; +} +.ivu-icon-ios-images-outline:before { + content: "\f1fd"; +} +.ivu-icon-ios-images:before { + content: "\f1fe"; +} +.ivu-icon-ios-infinite-outline:before { + content: "\f1ff"; +} +.ivu-icon-ios-infinite:before { + content: "\f200"; +} +.ivu-icon-ios-information-circle-outline:before { + content: "\f201"; +} +.ivu-icon-ios-information-circle:before { + content: "\f202"; +} +.ivu-icon-ios-information:before { + content: "\f203"; +} +.ivu-icon-ios-ionic-outline:before { + content: "\f204"; +} +.ivu-icon-ios-ionic:before { + content: "\f205"; +} +.ivu-icon-ios-ionitron-outline:before { + content: "\f206"; +} +.ivu-icon-ios-ionitron:before { + content: "\f207"; +} +.ivu-icon-ios-jet-outline:before { + content: "\f208"; +} +.ivu-icon-ios-jet:before { + content: "\f209"; +} +.ivu-icon-ios-key-outline:before { + content: "\f20a"; +} +.ivu-icon-ios-key:before { + content: "\f20b"; +} +.ivu-icon-ios-keypad-outline:before { + content: "\f20c"; +} +.ivu-icon-ios-keypad:before { + content: "\f20d"; +} +.ivu-icon-ios-laptop:before { + content: "\f20e"; +} +.ivu-icon-ios-leaf-outline:before { + content: "\f20f"; +} +.ivu-icon-ios-leaf:before { + content: "\f210"; +} +.ivu-icon-ios-link-outline:before { + content: "\f211"; +} +.ivu-icon-ios-link:before { + content: "\f212"; +} +.ivu-icon-ios-list-box-outline:before { + content: "\f213"; +} +.ivu-icon-ios-list-box:before { + content: "\f214"; +} +.ivu-icon-ios-list:before { + content: "\f215"; +} +.ivu-icon-ios-locate-outline:before { + content: "\f216"; +} +.ivu-icon-ios-locate:before { + content: "\f217"; +} +.ivu-icon-ios-lock-outline:before { + content: "\f218"; +} +.ivu-icon-ios-lock:before { + content: "\f219"; +} +.ivu-icon-ios-log-in:before { + content: "\f21a"; +} +.ivu-icon-ios-log-out:before { + content: "\f21b"; +} +.ivu-icon-ios-magnet-outline:before { + content: "\f21c"; +} +.ivu-icon-ios-magnet:before { + content: "\f21d"; +} +.ivu-icon-ios-mail-open-outline:before { + content: "\f21e"; +} +.ivu-icon-ios-mail-open:before { + content: "\f21f"; +} +.ivu-icon-ios-mail-outline:before { + content: "\f220"; +} +.ivu-icon-ios-mail:before { + content: "\f221"; +} +.ivu-icon-ios-male:before { + content: "\f222"; +} +.ivu-icon-ios-man-outline:before { + content: "\f223"; +} +.ivu-icon-ios-man:before { + content: "\f224"; +} +.ivu-icon-ios-map-outline:before { + content: "\f225"; +} +.ivu-icon-ios-map:before { + content: "\f226"; +} +.ivu-icon-ios-medal-outline:before { + content: "\f227"; +} +.ivu-icon-ios-medal:before { + content: "\f228"; +} +.ivu-icon-ios-medical-outline:before { + content: "\f229"; +} +.ivu-icon-ios-medical:before { + content: "\f22a"; +} +.ivu-icon-ios-medkit-outline:before { + content: "\f22b"; +} +.ivu-icon-ios-medkit:before { + content: "\f22c"; +} +.ivu-icon-ios-megaphone-outline:before { + content: "\f22d"; +} +.ivu-icon-ios-megaphone:before { + content: "\f22e"; +} +.ivu-icon-ios-menu-outline:before { + content: "\f22f"; +} +.ivu-icon-ios-menu:before { + content: "\f230"; +} +.ivu-icon-ios-mic-off-outline:before { + content: "\f231"; +} +.ivu-icon-ios-mic-off:before { + content: "\f232"; +} +.ivu-icon-ios-mic-outline:before { + content: "\f233"; +} +.ivu-icon-ios-mic:before { + content: "\f234"; +} +.ivu-icon-ios-microphone-outline:before { + content: "\f235"; +} +.ivu-icon-ios-microphone:before { + content: "\f236"; +} +.ivu-icon-ios-moon-outline:before { + content: "\f237"; +} +.ivu-icon-ios-moon:before { + content: "\f238"; +} +.ivu-icon-ios-more-outline:before { + content: "\f239"; +} +.ivu-icon-ios-more:before { + content: "\f23a"; +} +.ivu-icon-ios-move:before { + content: "\f23b"; +} +.ivu-icon-ios-musical-note-outline:before { + content: "\f23c"; +} +.ivu-icon-ios-musical-note:before { + content: "\f23d"; +} +.ivu-icon-ios-musical-notes-outline:before { + content: "\f23e"; +} +.ivu-icon-ios-musical-notes:before { + content: "\f23f"; +} +.ivu-icon-ios-navigate-outline:before { + content: "\f240"; +} +.ivu-icon-ios-navigate:before { + content: "\f241"; +} +.ivu-icon-ios-no-smoking-outline:before { + content: "\f242"; +} +.ivu-icon-ios-no-smoking:before { + content: "\f243"; +} +.ivu-icon-ios-notifications-off-outline:before { + content: "\f244"; +} +.ivu-icon-ios-notifications-off:before { + content: "\f245"; +} +.ivu-icon-ios-notifications-outline:before { + content: "\f246"; +} +.ivu-icon-ios-notifications:before { + content: "\f247"; +} +.ivu-icon-ios-nuclear-outline:before { + content: "\f248"; +} +.ivu-icon-ios-nuclear:before { + content: "\f249"; +} +.ivu-icon-ios-nutrition-outline:before { + content: "\f24a"; +} +.ivu-icon-ios-nutrition:before { + content: "\f24b"; +} +.ivu-icon-ios-open-outline:before { + content: "\f24c"; +} +.ivu-icon-ios-open:before { + content: "\f24d"; +} +.ivu-icon-ios-options-outline:before { + content: "\f24e"; +} +.ivu-icon-ios-options:before { + content: "\f24f"; +} +.ivu-icon-ios-outlet-outline:before { + content: "\f250"; +} +.ivu-icon-ios-outlet:before { + content: "\f251"; +} +.ivu-icon-ios-paper-outline:before { + content: "\f252"; +} +.ivu-icon-ios-paper-plane-outline:before { + content: "\f253"; +} +.ivu-icon-ios-paper-plane:before { + content: "\f254"; +} +.ivu-icon-ios-paper:before { + content: "\f255"; +} +.ivu-icon-ios-partly-sunny-outline:before { + content: "\f256"; +} +.ivu-icon-ios-partly-sunny:before { + content: "\f257"; +} +.ivu-icon-ios-pause-outline:before { + content: "\f258"; +} +.ivu-icon-ios-pause:before { + content: "\f259"; +} +.ivu-icon-ios-paw-outline:before { + content: "\f25a"; +} +.ivu-icon-ios-paw:before { + content: "\f25b"; +} +.ivu-icon-ios-people-outline:before { + content: "\f25c"; +} +.ivu-icon-ios-people:before { + content: "\f25d"; +} +.ivu-icon-ios-person-add-outline:before { + content: "\f25e"; +} +.ivu-icon-ios-person-add:before { + content: "\f25f"; +} +.ivu-icon-ios-person-outline:before { + content: "\f260"; +} +.ivu-icon-ios-person:before { + content: "\f261"; +} +.ivu-icon-ios-phone-landscape:before { + content: "\f262"; +} +.ivu-icon-ios-phone-portrait:before { + content: "\f263"; +} +.ivu-icon-ios-photos-outline:before { + content: "\f264"; +} +.ivu-icon-ios-photos:before { + content: "\f265"; +} +.ivu-icon-ios-pie-outline:before { + content: "\f266"; +} +.ivu-icon-ios-pie:before { + content: "\f267"; +} +.ivu-icon-ios-pin-outline:before { + content: "\f268"; +} +.ivu-icon-ios-pin:before { + content: "\f269"; +} +.ivu-icon-ios-pint-outline:before { + content: "\f26a"; +} +.ivu-icon-ios-pint:before { + content: "\f26b"; +} +.ivu-icon-ios-pizza-outline:before { + content: "\f26c"; +} +.ivu-icon-ios-pizza:before { + content: "\f26d"; +} +.ivu-icon-ios-plane-outline:before { + content: "\f26e"; +} +.ivu-icon-ios-plane:before { + content: "\f26f"; +} +.ivu-icon-ios-planet-outline:before { + content: "\f270"; +} +.ivu-icon-ios-planet:before { + content: "\f271"; +} +.ivu-icon-ios-play-outline:before { + content: "\f272"; +} +.ivu-icon-ios-play:before { + content: "\f273"; +} +.ivu-icon-ios-podium-outline:before { + content: "\f274"; +} +.ivu-icon-ios-podium:before { + content: "\f275"; +} +.ivu-icon-ios-power-outline:before { + content: "\f276"; +} +.ivu-icon-ios-power:before { + content: "\f277"; +} +.ivu-icon-ios-pricetag-outline:before { + content: "\f278"; +} +.ivu-icon-ios-pricetag:before { + content: "\f279"; +} +.ivu-icon-ios-pricetags-outline:before { + content: "\f27a"; +} +.ivu-icon-ios-pricetags:before { + content: "\f27b"; +} +.ivu-icon-ios-print-outline:before { + content: "\f27c"; +} +.ivu-icon-ios-print:before { + content: "\f27d"; +} +.ivu-icon-ios-pulse-outline:before { + content: "\f27e"; +} +.ivu-icon-ios-pulse:before { + content: "\f27f"; +} +.ivu-icon-ios-qr-scanner:before { + content: "\f280"; +} +.ivu-icon-ios-quote-outline:before { + content: "\f281"; +} +.ivu-icon-ios-quote:before { + content: "\f282"; +} +.ivu-icon-ios-radio-button-off:before { + content: "\f283"; +} +.ivu-icon-ios-radio-button-on:before { + content: "\f284"; +} +.ivu-icon-ios-radio-outline:before { + content: "\f285"; +} +.ivu-icon-ios-radio:before { + content: "\f286"; +} +.ivu-icon-ios-rainy-outline:before { + content: "\f287"; +} +.ivu-icon-ios-rainy:before { + content: "\f288"; +} +.ivu-icon-ios-recording-outline:before { + content: "\f289"; +} +.ivu-icon-ios-recording:before { + content: "\f28a"; +} +.ivu-icon-ios-redo-outline:before { + content: "\f28b"; +} +.ivu-icon-ios-redo:before { + content: "\f28c"; +} +.ivu-icon-ios-refresh-circle-outline:before { + content: "\f28d"; +} +.ivu-icon-ios-refresh-circle:before { + content: "\f28e"; +} +.ivu-icon-ios-refresh:before { + content: "\f28f"; +} +.ivu-icon-ios-remove-circle-outline:before { + content: "\f290"; +} +.ivu-icon-ios-remove-circle:before { + content: "\f291"; +} +.ivu-icon-ios-remove:before { + content: "\f292"; +} +.ivu-icon-ios-reorder:before { + content: "\f293"; +} +.ivu-icon-ios-repeat:before { + content: "\f294"; +} +.ivu-icon-ios-resize:before { + content: "\f295"; +} +.ivu-icon-ios-restaurant-outline:before { + content: "\f296"; +} +.ivu-icon-ios-restaurant:before { + content: "\f297"; +} +.ivu-icon-ios-return-left:before { + content: "\f298"; +} +.ivu-icon-ios-return-right:before { + content: "\f299"; +} +.ivu-icon-ios-reverse-camera-outline:before { + content: "\f29a"; +} +.ivu-icon-ios-reverse-camera:before { + content: "\f29b"; +} +.ivu-icon-ios-rewind-outline:before { + content: "\f29c"; +} +.ivu-icon-ios-rewind:before { + content: "\f29d"; +} +.ivu-icon-ios-ribbon-outline:before { + content: "\f29e"; +} +.ivu-icon-ios-ribbon:before { + content: "\f29f"; +} +.ivu-icon-ios-rose-outline:before { + content: "\f2a0"; +} +.ivu-icon-ios-rose:before { + content: "\f2a1"; +} +.ivu-icon-ios-sad-outline:before { + content: "\f2a2"; +} +.ivu-icon-ios-sad:before { + content: "\f2a3"; +} +.ivu-icon-ios-school-outline:before { + content: "\f2a4"; +} +.ivu-icon-ios-school:before { + content: "\f2a5"; +} +.ivu-icon-ios-search-outline:before { + content: "\f2a6"; +} +.ivu-icon-ios-search:before { + content: "\f2a7"; +} +.ivu-icon-ios-send-outline:before { + content: "\f2a8"; +} +.ivu-icon-ios-send:before { + content: "\f2a9"; +} +.ivu-icon-ios-settings-outline:before { + content: "\f2aa"; +} +.ivu-icon-ios-settings:before { + content: "\f2ab"; +} +.ivu-icon-ios-share-alt-outline:before { + content: "\f2ac"; +} +.ivu-icon-ios-share-alt:before { + content: "\f2ad"; +} +.ivu-icon-ios-share-outline:before { + content: "\f2ae"; +} +.ivu-icon-ios-share:before { + content: "\f2af"; +} +.ivu-icon-ios-shirt-outline:before { + content: "\f2b0"; +} +.ivu-icon-ios-shirt:before { + content: "\f2b1"; +} +.ivu-icon-ios-shuffle:before { + content: "\f2b2"; +} +.ivu-icon-ios-skip-backward-outline:before { + content: "\f2b3"; +} +.ivu-icon-ios-skip-backward:before { + content: "\f2b4"; +} +.ivu-icon-ios-skip-forward-outline:before { + content: "\f2b5"; +} +.ivu-icon-ios-skip-forward:before { + content: "\f2b6"; +} +.ivu-icon-ios-snow-outline:before { + content: "\f2b7"; +} +.ivu-icon-ios-snow:before { + content: "\f2b8"; +} +.ivu-icon-ios-speedometer-outline:before { + content: "\f2b9"; +} +.ivu-icon-ios-speedometer:before { + content: "\f2ba"; +} +.ivu-icon-ios-square-outline:before { + content: "\f2bb"; +} +.ivu-icon-ios-square:before { + content: "\f2bc"; +} +.ivu-icon-ios-star-half:before { + content: "\f2bd"; +} +.ivu-icon-ios-star-outline:before { + content: "\f2be"; +} +.ivu-icon-ios-star:before { + content: "\f2bf"; +} +.ivu-icon-ios-stats-outline:before { + content: "\f2c0"; +} +.ivu-icon-ios-stats:before { + content: "\f2c1"; +} +.ivu-icon-ios-stopwatch-outline:before { + content: "\f2c2"; +} +.ivu-icon-ios-stopwatch:before { + content: "\f2c3"; +} +.ivu-icon-ios-subway-outline:before { + content: "\f2c4"; +} +.ivu-icon-ios-subway:before { + content: "\f2c5"; +} +.ivu-icon-ios-sunny-outline:before { + content: "\f2c6"; +} +.ivu-icon-ios-sunny:before { + content: "\f2c7"; +} +.ivu-icon-ios-swap:before { + content: "\f2c8"; +} +.ivu-icon-ios-switch-outline:before { + content: "\f2c9"; +} +.ivu-icon-ios-switch:before { + content: "\f2ca"; +} +.ivu-icon-ios-sync:before { + content: "\f2cb"; +} +.ivu-icon-ios-tablet-landscape:before { + content: "\f2cc"; +} +.ivu-icon-ios-tablet-portrait:before { + content: "\f2cd"; +} +.ivu-icon-ios-tennisball-outline:before { + content: "\f2ce"; +} +.ivu-icon-ios-tennisball:before { + content: "\f2cf"; +} +.ivu-icon-ios-text-outline:before { + content: "\f2d0"; +} +.ivu-icon-ios-text:before { + content: "\f2d1"; +} +.ivu-icon-ios-thermometer-outline:before { + content: "\f2d2"; +} +.ivu-icon-ios-thermometer:before { + content: "\f2d3"; +} +.ivu-icon-ios-thumbs-down-outline:before { + content: "\f2d4"; +} +.ivu-icon-ios-thumbs-down:before { + content: "\f2d5"; +} +.ivu-icon-ios-thumbs-up-outline:before { + content: "\f2d6"; +} +.ivu-icon-ios-thumbs-up:before { + content: "\f2d7"; +} +.ivu-icon-ios-thunderstorm-outline:before { + content: "\f2d8"; +} +.ivu-icon-ios-thunderstorm:before { + content: "\f2d9"; +} +.ivu-icon-ios-time-outline:before { + content: "\f2da"; +} +.ivu-icon-ios-time:before { + content: "\f2db"; +} +.ivu-icon-ios-timer-outline:before { + content: "\f2dc"; +} +.ivu-icon-ios-timer:before { + content: "\f2dd"; +} +.ivu-icon-ios-train-outline:before { + content: "\f2de"; +} +.ivu-icon-ios-train:before { + content: "\f2df"; +} +.ivu-icon-ios-transgender:before { + content: "\f2e0"; +} +.ivu-icon-ios-trash-outline:before { + content: "\f2e1"; +} +.ivu-icon-ios-trash:before { + content: "\f2e2"; +} +.ivu-icon-ios-trending-down:before { + content: "\f2e3"; +} +.ivu-icon-ios-trending-up:before { + content: "\f2e4"; +} +.ivu-icon-ios-trophy-outline:before { + content: "\f2e5"; +} +.ivu-icon-ios-trophy:before { + content: "\f2e6"; +} +.ivu-icon-ios-umbrella-outline:before { + content: "\f2e7"; +} +.ivu-icon-ios-umbrella:before { + content: "\f2e8"; +} +.ivu-icon-ios-undo-outline:before { + content: "\f2e9"; +} +.ivu-icon-ios-undo:before { + content: "\f2ea"; +} +.ivu-icon-ios-unlock-outline:before { + content: "\f2eb"; +} +.ivu-icon-ios-unlock:before { + content: "\f2ec"; +} +.ivu-icon-ios-videocam-outline:before { + content: "\f2ed"; +} +.ivu-icon-ios-videocam:before { + content: "\f2ee"; +} +.ivu-icon-ios-volume-down:before { + content: "\f2ef"; +} +.ivu-icon-ios-volume-mute:before { + content: "\f2f0"; +} +.ivu-icon-ios-volume-off:before { + content: "\f2f1"; +} +.ivu-icon-ios-volume-up:before { + content: "\f2f2"; +} +.ivu-icon-ios-walk:before { + content: "\f2f3"; +} +.ivu-icon-ios-warning-outline:before { + content: "\f2f4"; +} +.ivu-icon-ios-warning:before { + content: "\f2f5"; +} +.ivu-icon-ios-watch:before { + content: "\f2f6"; +} +.ivu-icon-ios-water-outline:before { + content: "\f2f7"; +} +.ivu-icon-ios-water:before { + content: "\f2f8"; +} +.ivu-icon-ios-wifi-outline:before { + content: "\f2f9"; +} +.ivu-icon-ios-wifi:before { + content: "\f2fa"; +} +.ivu-icon-ios-wine-outline:before { + content: "\f2fb"; +} +.ivu-icon-ios-wine:before { + content: "\f2fc"; +} +.ivu-icon-ios-woman-outline:before { + content: "\f2fd"; +} +.ivu-icon-ios-woman:before { + content: "\f2fe"; +} +.ivu-icon-logo-android:before { + content: "\f2ff"; +} +.ivu-icon-logo-angular:before { + content: "\f300"; +} +.ivu-icon-logo-apple:before { + content: "\f301"; +} +.ivu-icon-logo-bitcoin:before { + content: "\f302"; +} +.ivu-icon-logo-buffer:before { + content: "\f303"; +} +.ivu-icon-logo-chrome:before { + content: "\f304"; +} +.ivu-icon-logo-codepen:before { + content: "\f305"; +} +.ivu-icon-logo-css3:before { + content: "\f306"; +} +.ivu-icon-logo-designernews:before { + content: "\f307"; +} +.ivu-icon-logo-dribbble:before { + content: "\f308"; +} +.ivu-icon-logo-dropbox:before { + content: "\f309"; +} +.ivu-icon-logo-euro:before { + content: "\f30a"; +} +.ivu-icon-logo-facebook:before { + content: "\f30b"; +} +.ivu-icon-logo-foursquare:before { + content: "\f30c"; +} +.ivu-icon-logo-freebsd-devil:before { + content: "\f30d"; +} +.ivu-icon-logo-github:before { + content: "\f30e"; +} +.ivu-icon-logo-google:before { + content: "\f30f"; +} +.ivu-icon-logo-googleplus:before { + content: "\f310"; +} +.ivu-icon-logo-hackernews:before { + content: "\f311"; +} +.ivu-icon-logo-html5:before { + content: "\f312"; +} +.ivu-icon-logo-instagram:before { + content: "\f313"; +} +.ivu-icon-logo-javascript:before { + content: "\f314"; +} +.ivu-icon-logo-linkedin:before { + content: "\f315"; +} +.ivu-icon-logo-markdown:before { + content: "\f316"; +} +.ivu-icon-logo-nodejs:before { + content: "\f317"; +} +.ivu-icon-logo-octocat:before { + content: "\f318"; +} +.ivu-icon-logo-pinterest:before { + content: "\f319"; +} +.ivu-icon-logo-playstation:before { + content: "\f31a"; +} +.ivu-icon-logo-python:before { + content: "\f31b"; +} +.ivu-icon-logo-reddit:before { + content: "\f31c"; +} +.ivu-icon-logo-rss:before { + content: "\f31d"; +} +.ivu-icon-logo-sass:before { + content: "\f31e"; +} +.ivu-icon-logo-skype:before { + content: "\f31f"; +} +.ivu-icon-logo-snapchat:before { + content: "\f320"; +} +.ivu-icon-logo-steam:before { + content: "\f321"; +} +.ivu-icon-logo-tumblr:before { + content: "\f322"; +} +.ivu-icon-logo-tux:before { + content: "\f323"; +} +.ivu-icon-logo-twitch:before { + content: "\f324"; +} +.ivu-icon-logo-twitter:before { + content: "\f325"; +} +.ivu-icon-logo-usd:before { + content: "\f326"; +} +.ivu-icon-logo-vimeo:before { + content: "\f327"; +} +.ivu-icon-logo-whatsapp:before { + content: "\f328"; +} +.ivu-icon-logo-windows:before { + content: "\f329"; +} +.ivu-icon-logo-wordpress:before { + content: "\f32a"; +} +.ivu-icon-logo-xbox:before { + content: "\f32b"; +} +.ivu-icon-logo-yahoo:before { + content: "\f32c"; +} +.ivu-icon-logo-yen:before { + content: "\f32d"; +} +.ivu-icon-logo-youtube:before { + content: "\f32e"; +} +.ivu-icon-md-add-circle:before { + content: "\f32f"; +} +.ivu-icon-md-add:before { + content: "\f330"; +} +.ivu-icon-md-alarm:before { + content: "\f331"; +} +.ivu-icon-md-albums:before { + content: "\f332"; +} +.ivu-icon-md-alert:before { + content: "\f333"; +} +.ivu-icon-md-american-football:before { + content: "\f334"; +} +.ivu-icon-md-analytics:before { + content: "\f335"; +} +.ivu-icon-md-aperture:before { + content: "\f336"; +} +.ivu-icon-md-apps:before { + content: "\f337"; +} +.ivu-icon-md-appstore:before { + content: "\f338"; +} +.ivu-icon-md-archive:before { + content: "\f339"; +} +.ivu-icon-md-arrow-back:before { + content: "\f33a"; +} +.ivu-icon-md-arrow-down:before { + content: "\f33b"; +} +.ivu-icon-md-arrow-dropdown-circle:before { + content: "\f33c"; +} +.ivu-icon-md-arrow-dropdown:before { + content: "\f33d"; +} +.ivu-icon-md-arrow-dropleft-circle:before { + content: "\f33e"; +} +.ivu-icon-md-arrow-dropleft:before { + content: "\f33f"; +} +.ivu-icon-md-arrow-dropright-circle:before { + content: "\f340"; +} +.ivu-icon-md-arrow-dropright:before { + content: "\f341"; +} +.ivu-icon-md-arrow-dropup-circle:before { + content: "\f342"; +} +.ivu-icon-md-arrow-dropup:before { + content: "\f343"; +} +.ivu-icon-md-arrow-forward:before { + content: "\f344"; +} +.ivu-icon-md-arrow-round-back:before { + content: "\f345"; +} +.ivu-icon-md-arrow-round-down:before { + content: "\f346"; +} +.ivu-icon-md-arrow-round-forward:before { + content: "\f347"; +} +.ivu-icon-md-arrow-round-up:before { + content: "\f348"; +} +.ivu-icon-md-arrow-up:before { + content: "\f349"; +} +.ivu-icon-md-at:before { + content: "\f34a"; +} +.ivu-icon-md-attach:before { + content: "\f34b"; +} +.ivu-icon-md-backspace:before { + content: "\f34c"; +} +.ivu-icon-md-barcode:before { + content: "\f34d"; +} +.ivu-icon-md-baseball:before { + content: "\f34e"; +} +.ivu-icon-md-basket:before { + content: "\f34f"; +} +.ivu-icon-md-basketball:before { + content: "\f350"; +} +.ivu-icon-md-battery-charging:before { + content: "\f351"; +} +.ivu-icon-md-battery-dead:before { + content: "\f352"; +} +.ivu-icon-md-battery-full:before { + content: "\f353"; +} +.ivu-icon-md-beaker:before { + content: "\f354"; +} +.ivu-icon-md-beer:before { + content: "\f355"; +} +.ivu-icon-md-bicycle:before { + content: "\f356"; +} +.ivu-icon-md-bluetooth:before { + content: "\f357"; +} +.ivu-icon-md-boat:before { + content: "\f358"; +} +.ivu-icon-md-body:before { + content: "\f359"; +} +.ivu-icon-md-bonfire:before { + content: "\f35a"; +} +.ivu-icon-md-book:before { + content: "\f35b"; +} +.ivu-icon-md-bookmark:before { + content: "\f35c"; +} +.ivu-icon-md-bookmarks:before { + content: "\f35d"; +} +.ivu-icon-md-bowtie:before { + content: "\f35e"; +} +.ivu-icon-md-briefcase:before { + content: "\f35f"; +} +.ivu-icon-md-browsers:before { + content: "\f360"; +} +.ivu-icon-md-brush:before { + content: "\f361"; +} +.ivu-icon-md-bug:before { + content: "\f362"; +} +.ivu-icon-md-build:before { + content: "\f363"; +} +.ivu-icon-md-bulb:before { + content: "\f364"; +} +.ivu-icon-md-bus:before { + content: "\f365"; +} +.ivu-icon-md-cafe:before { + content: "\f366"; +} +.ivu-icon-md-calculator:before { + content: "\f367"; +} +.ivu-icon-md-calendar:before { + content: "\f368"; +} +.ivu-icon-md-call:before { + content: "\f369"; +} +.ivu-icon-md-camera:before { + content: "\f36a"; +} +.ivu-icon-md-car:before { + content: "\f36b"; +} +.ivu-icon-md-card:before { + content: "\f36c"; +} +.ivu-icon-md-cart:before { + content: "\f36d"; +} +.ivu-icon-md-cash:before { + content: "\f36e"; +} +.ivu-icon-md-chatboxes:before { + content: "\f36f"; +} +.ivu-icon-md-chatbubbles:before { + content: "\f370"; +} +.ivu-icon-md-checkbox-outline:before { + content: "\f371"; +} +.ivu-icon-md-checkbox:before { + content: "\f372"; +} +.ivu-icon-md-checkmark-circle-outline:before { + content: "\f373"; +} +.ivu-icon-md-checkmark-circle:before { + content: "\f374"; +} +.ivu-icon-md-checkmark:before { + content: "\f375"; +} +.ivu-icon-md-clipboard:before { + content: "\f376"; +} +.ivu-icon-md-clock:before { + content: "\f377"; +} +.ivu-icon-md-close-circle:before { + content: "\f378"; +} +.ivu-icon-md-close:before { + content: "\f379"; +} +.ivu-icon-md-closed-captioning:before { + content: "\f37a"; +} +.ivu-icon-md-cloud-circle:before { + content: "\f37b"; +} +.ivu-icon-md-cloud-done:before { + content: "\f37c"; +} +.ivu-icon-md-cloud-download:before { + content: "\f37d"; +} +.ivu-icon-md-cloud-outline:before { + content: "\f37e"; +} +.ivu-icon-md-cloud-upload:before { + content: "\f37f"; +} +.ivu-icon-md-cloud:before { + content: "\f380"; +} +.ivu-icon-md-cloudy-night:before { + content: "\f381"; +} +.ivu-icon-md-cloudy:before { + content: "\f382"; +} +.ivu-icon-md-code-download:before { + content: "\f383"; +} +.ivu-icon-md-code-working:before { + content: "\f384"; +} +.ivu-icon-md-code:before { + content: "\f385"; +} +.ivu-icon-md-cog:before { + content: "\f386"; +} +.ivu-icon-md-color-fill:before { + content: "\f387"; +} +.ivu-icon-md-color-filter:before { + content: "\f388"; +} +.ivu-icon-md-color-palette:before { + content: "\f389"; +} +.ivu-icon-md-color-wand:before { + content: "\f38a"; +} +.ivu-icon-md-compass:before { + content: "\f38b"; +} +.ivu-icon-md-construct:before { + content: "\f38c"; +} +.ivu-icon-md-contact:before { + content: "\f38d"; +} +.ivu-icon-md-contacts:before { + content: "\f38e"; +} +.ivu-icon-md-contract:before { + content: "\f38f"; +} +.ivu-icon-md-contrast:before { + content: "\f390"; +} +.ivu-icon-md-copy:before { + content: "\f391"; +} +.ivu-icon-md-create:before { + content: "\f392"; +} +.ivu-icon-md-crop:before { + content: "\f393"; +} +.ivu-icon-md-cube:before { + content: "\f394"; +} +.ivu-icon-md-cut:before { + content: "\f395"; +} +.ivu-icon-md-desktop:before { + content: "\f396"; +} +.ivu-icon-md-disc:before { + content: "\f397"; +} +.ivu-icon-md-document:before { + content: "\f398"; +} +.ivu-icon-md-done-all:before { + content: "\f399"; +} +.ivu-icon-md-download:before { + content: "\f39a"; +} +.ivu-icon-md-easel:before { + content: "\f39b"; +} +.ivu-icon-md-egg:before { + content: "\f39c"; +} +.ivu-icon-md-exit:before { + content: "\f39d"; +} +.ivu-icon-md-expand:before { + content: "\f39e"; +} +.ivu-icon-md-eye-off:before { + content: "\f39f"; +} +.ivu-icon-md-eye:before { + content: "\f3a0"; +} +.ivu-icon-md-fastforward:before { + content: "\f3a1"; +} +.ivu-icon-md-female:before { + content: "\f3a2"; +} +.ivu-icon-md-filing:before { + content: "\f3a3"; +} +.ivu-icon-md-film:before { + content: "\f3a4"; +} +.ivu-icon-md-finger-print:before { + content: "\f3a5"; +} +.ivu-icon-md-flag:before { + content: "\f3a6"; +} +.ivu-icon-md-flame:before { + content: "\f3a7"; +} +.ivu-icon-md-flash:before { + content: "\f3a8"; +} +.ivu-icon-md-flask:before { + content: "\f3a9"; +} +.ivu-icon-md-flower:before { + content: "\f3aa"; +} +.ivu-icon-md-folder-open:before { + content: "\f3ab"; +} +.ivu-icon-md-folder:before { + content: "\f3ac"; +} +.ivu-icon-md-football:before { + content: "\f3ad"; +} +.ivu-icon-md-funnel:before { + content: "\f3ae"; +} +.ivu-icon-md-game-controller-a:before { + content: "\f3af"; +} +.ivu-icon-md-game-controller-b:before { + content: "\f3b0"; +} +.ivu-icon-md-git-branch:before { + content: "\f3b1"; +} +.ivu-icon-md-git-commit:before { + content: "\f3b2"; +} +.ivu-icon-md-git-compare:before { + content: "\f3b3"; +} +.ivu-icon-md-git-merge:before { + content: "\f3b4"; +} +.ivu-icon-md-git-network:before { + content: "\f3b5"; +} +.ivu-icon-md-git-pull-request:before { + content: "\f3b6"; +} +.ivu-icon-md-glasses:before { + content: "\f3b7"; +} +.ivu-icon-md-globe:before { + content: "\f3b8"; +} +.ivu-icon-md-grid:before { + content: "\f3b9"; +} +.ivu-icon-md-hammer:before { + content: "\f3ba"; +} +.ivu-icon-md-hand:before { + content: "\f3bb"; +} +.ivu-icon-md-happy:before { + content: "\f3bc"; +} +.ivu-icon-md-headset:before { + content: "\f3bd"; +} +.ivu-icon-md-heart-outline:before { + content: "\f3be"; +} +.ivu-icon-md-heart:before { + content: "\f3bf"; +} +.ivu-icon-md-help-buoy:before { + content: "\f3c0"; +} +.ivu-icon-md-help-circle:before { + content: "\f3c1"; +} +.ivu-icon-md-help:before { + content: "\f3c2"; +} +.ivu-icon-md-home:before { + content: "\f3c3"; +} +.ivu-icon-md-ice-cream:before { + content: "\f3c4"; +} +.ivu-icon-md-image:before { + content: "\f3c5"; +} +.ivu-icon-md-images:before { + content: "\f3c6"; +} +.ivu-icon-md-infinite:before { + content: "\f3c7"; +} +.ivu-icon-md-information-circle:before { + content: "\f3c8"; +} +.ivu-icon-md-information:before { + content: "\f3c9"; +} +.ivu-icon-md-ionic:before { + content: "\f3ca"; +} +.ivu-icon-md-ionitron:before { + content: "\f3cb"; +} +.ivu-icon-md-jet:before { + content: "\f3cc"; +} +.ivu-icon-md-key:before { + content: "\f3cd"; +} +.ivu-icon-md-keypad:before { + content: "\f3ce"; +} +.ivu-icon-md-laptop:before { + content: "\f3cf"; +} +.ivu-icon-md-leaf:before { + content: "\f3d0"; +} +.ivu-icon-md-link:before { + content: "\f3d1"; +} +.ivu-icon-md-list-box:before { + content: "\f3d2"; +} +.ivu-icon-md-list:before { + content: "\f3d3"; +} +.ivu-icon-md-locate:before { + content: "\f3d4"; +} +.ivu-icon-md-lock:before { + content: "\f3d5"; +} +.ivu-icon-md-log-in:before { + content: "\f3d6"; +} +.ivu-icon-md-log-out:before { + content: "\f3d7"; +} +.ivu-icon-md-magnet:before { + content: "\f3d8"; +} +.ivu-icon-md-mail-open:before { + content: "\f3d9"; +} +.ivu-icon-md-mail:before { + content: "\f3da"; +} +.ivu-icon-md-male:before { + content: "\f3db"; +} +.ivu-icon-md-man:before { + content: "\f3dc"; +} +.ivu-icon-md-map:before { + content: "\f3dd"; +} +.ivu-icon-md-medal:before { + content: "\f3de"; +} +.ivu-icon-md-medical:before { + content: "\f3df"; +} +.ivu-icon-md-medkit:before { + content: "\f3e0"; +} +.ivu-icon-md-megaphone:before { + content: "\f3e1"; +} +.ivu-icon-md-menu:before { + content: "\f3e2"; +} +.ivu-icon-md-mic-off:before { + content: "\f3e3"; +} +.ivu-icon-md-mic:before { + content: "\f3e4"; +} +.ivu-icon-md-microphone:before { + content: "\f3e5"; +} +.ivu-icon-md-moon:before { + content: "\f3e6"; +} +.ivu-icon-md-more:before { + content: "\f3e7"; +} +.ivu-icon-md-move:before { + content: "\f3e8"; +} +.ivu-icon-md-musical-note:before { + content: "\f3e9"; +} +.ivu-icon-md-musical-notes:before { + content: "\f3ea"; +} +.ivu-icon-md-navigate:before { + content: "\f3eb"; +} +.ivu-icon-md-no-smoking:before { + content: "\f3ec"; +} +.ivu-icon-md-notifications-off:before { + content: "\f3ed"; +} +.ivu-icon-md-notifications-outline:before { + content: "\f3ee"; +} +.ivu-icon-md-notifications:before { + content: "\f3ef"; +} +.ivu-icon-md-nuclear:before { + content: "\f3f0"; +} +.ivu-icon-md-nutrition:before { + content: "\f3f1"; +} +.ivu-icon-md-open:before { + content: "\f3f2"; +} +.ivu-icon-md-options:before { + content: "\f3f3"; +} +.ivu-icon-md-outlet:before { + content: "\f3f4"; +} +.ivu-icon-md-paper-plane:before { + content: "\f3f5"; +} +.ivu-icon-md-paper:before { + content: "\f3f6"; +} +.ivu-icon-md-partly-sunny:before { + content: "\f3f7"; +} +.ivu-icon-md-pause:before { + content: "\f3f8"; +} +.ivu-icon-md-paw:before { + content: "\f3f9"; +} +.ivu-icon-md-people:before { + content: "\f3fa"; +} +.ivu-icon-md-person-add:before { + content: "\f3fb"; +} +.ivu-icon-md-person:before { + content: "\f3fc"; +} +.ivu-icon-md-phone-landscape:before { + content: "\f3fd"; +} +.ivu-icon-md-phone-portrait:before { + content: "\f3fe"; +} +.ivu-icon-md-photos:before { + content: "\f3ff"; +} +.ivu-icon-md-pie:before { + content: "\f400"; +} +.ivu-icon-md-pin:before { + content: "\f401"; +} +.ivu-icon-md-pint:before { + content: "\f402"; +} +.ivu-icon-md-pizza:before { + content: "\f403"; +} +.ivu-icon-md-plane:before { + content: "\f404"; +} +.ivu-icon-md-planet:before { + content: "\f405"; +} +.ivu-icon-md-play:before { + content: "\f406"; +} +.ivu-icon-md-podium:before { + content: "\f407"; +} +.ivu-icon-md-power:before { + content: "\f408"; +} +.ivu-icon-md-pricetag:before { + content: "\f409"; +} +.ivu-icon-md-pricetags:before { + content: "\f40a"; +} +.ivu-icon-md-print:before { + content: "\f40b"; +} +.ivu-icon-md-pulse:before { + content: "\f40c"; +} +.ivu-icon-md-qr-scanner:before { + content: "\f40d"; +} +.ivu-icon-md-quote:before { + content: "\f40e"; +} +.ivu-icon-md-radio-button-off:before { + content: "\f40f"; +} +.ivu-icon-md-radio-button-on:before { + content: "\f410"; +} +.ivu-icon-md-radio:before { + content: "\f411"; +} +.ivu-icon-md-rainy:before { + content: "\f412"; +} +.ivu-icon-md-recording:before { + content: "\f413"; +} +.ivu-icon-md-redo:before { + content: "\f414"; +} +.ivu-icon-md-refresh-circle:before { + content: "\f415"; +} +.ivu-icon-md-refresh:before { + content: "\f416"; +} +.ivu-icon-md-remove-circle:before { + content: "\f417"; +} +.ivu-icon-md-remove:before { + content: "\f418"; +} +.ivu-icon-md-reorder:before { + content: "\f419"; +} +.ivu-icon-md-repeat:before { + content: "\f41a"; +} +.ivu-icon-md-resize:before { + content: "\f41b"; +} +.ivu-icon-md-restaurant:before { + content: "\f41c"; +} +.ivu-icon-md-return-left:before { + content: "\f41d"; +} +.ivu-icon-md-return-right:before { + content: "\f41e"; +} +.ivu-icon-md-reverse-camera:before { + content: "\f41f"; +} +.ivu-icon-md-rewind:before { + content: "\f420"; +} +.ivu-icon-md-ribbon:before { + content: "\f421"; +} +.ivu-icon-md-rose:before { + content: "\f422"; +} +.ivu-icon-md-sad:before { + content: "\f423"; +} +.ivu-icon-md-school:before { + content: "\f424"; +} +.ivu-icon-md-search:before { + content: "\f425"; +} +.ivu-icon-md-send:before { + content: "\f426"; +} +.ivu-icon-md-settings:before { + content: "\f427"; +} +.ivu-icon-md-share-alt:before { + content: "\f428"; +} +.ivu-icon-md-share:before { + content: "\f429"; +} +.ivu-icon-md-shirt:before { + content: "\f42a"; +} +.ivu-icon-md-shuffle:before { + content: "\f42b"; +} +.ivu-icon-md-skip-backward:before { + content: "\f42c"; +} +.ivu-icon-md-skip-forward:before { + content: "\f42d"; +} +.ivu-icon-md-snow:before { + content: "\f42e"; +} +.ivu-icon-md-speedometer:before { + content: "\f42f"; +} +.ivu-icon-md-square-outline:before { + content: "\f430"; +} +.ivu-icon-md-square:before { + content: "\f431"; +} +.ivu-icon-md-star-half:before { + content: "\f432"; +} +.ivu-icon-md-star-outline:before { + content: "\f433"; +} +.ivu-icon-md-star:before { + content: "\f434"; +} +.ivu-icon-md-stats:before { + content: "\f435"; +} +.ivu-icon-md-stopwatch:before { + content: "\f436"; +} +.ivu-icon-md-subway:before { + content: "\f437"; +} +.ivu-icon-md-sunny:before { + content: "\f438"; +} +.ivu-icon-md-swap:before { + content: "\f439"; +} +.ivu-icon-md-switch:before { + content: "\f43a"; +} +.ivu-icon-md-sync:before { + content: "\f43b"; +} +.ivu-icon-md-tablet-landscape:before { + content: "\f43c"; +} +.ivu-icon-md-tablet-portrait:before { + content: "\f43d"; +} +.ivu-icon-md-tennisball:before { + content: "\f43e"; +} +.ivu-icon-md-text:before { + content: "\f43f"; +} +.ivu-icon-md-thermometer:before { + content: "\f440"; +} +.ivu-icon-md-thumbs-down:before { + content: "\f441"; +} +.ivu-icon-md-thumbs-up:before { + content: "\f442"; +} +.ivu-icon-md-thunderstorm:before { + content: "\f443"; +} +.ivu-icon-md-time:before { + content: "\f444"; +} +.ivu-icon-md-timer:before { + content: "\f445"; +} +.ivu-icon-md-train:before { + content: "\f446"; +} +.ivu-icon-md-transgender:before { + content: "\f447"; +} +.ivu-icon-md-trash:before { + content: "\f448"; +} +.ivu-icon-md-trending-down:before { + content: "\f449"; +} +.ivu-icon-md-trending-up:before { + content: "\f44a"; +} +.ivu-icon-md-trophy:before { + content: "\f44b"; +} +.ivu-icon-md-umbrella:before { + content: "\f44c"; +} +.ivu-icon-md-undo:before { + content: "\f44d"; +} +.ivu-icon-md-unlock:before { + content: "\f44e"; +} +.ivu-icon-md-videocam:before { + content: "\f44f"; +} +.ivu-icon-md-volume-down:before { + content: "\f450"; +} +.ivu-icon-md-volume-mute:before { + content: "\f451"; +} +.ivu-icon-md-volume-off:before { + content: "\f452"; +} +.ivu-icon-md-volume-up:before { + content: "\f453"; +} +.ivu-icon-md-walk:before { + content: "\f454"; +} +.ivu-icon-md-warning:before { + content: "\f455"; +} +.ivu-icon-md-watch:before { + content: "\f456"; +} +.ivu-icon-md-water:before { + content: "\f457"; +} +.ivu-icon-md-wifi:before { + content: "\f458"; +} +.ivu-icon-md-wine:before { + content: "\f459"; +} +.ivu-icon-md-woman:before { + content: "\f45a"; +} +.ivu-icon-ios-loading:before { + content: "\f45b"; +} \ No newline at end of file diff --git a/src/styles/common/iconfont/_ionicons-variables.less b/src/styles/common/iconfont/_ionicons-variables.less new file mode 100644 index 0000000000000000000000000000000000000000..3d5723f254d97255adbb480f1f56561da1527dc2 --- /dev/null +++ b/src/styles/common/iconfont/_ionicons-variables.less @@ -0,0 +1,13 @@ +/* +Ionicons, v2.0.0 +Created by Ben Sperry for the Ionic Framework, http://ionicons.com/ +https://twitter.com/benjsperry https://twitter.com/ionicframework +MIT License: https://github.com/driftyco/ionicons +*/ +// Ionicons Variables +// -------------------------- + +@ionicons-font-path: "./fonts"; +@ionicons-font-family: "Ionicons"; +@ionicons-version: "3.0.0"; +@ionicons-prefix: ivu-icon-; diff --git a/src/styles/common/iconfont/fonts/ionicons.svg b/src/styles/common/iconfont/fonts/ionicons.svg new file mode 100644 index 0000000000000000000000000000000000000000..d8812552f34b46d7c1604050d7599a2a2b3cb568 --- /dev/null +++ b/src/styles/common/iconfont/fonts/ionicons.svg @@ -0,0 +1,870 @@ + + + +Generated by IcoMoon + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/styles/common/iconfont/fonts/ionicons.ttf b/src/styles/common/iconfont/fonts/ionicons.ttf new file mode 100644 index 0000000000000000000000000000000000000000..1caa214a3506bc3ee807eff8a24a195c50af1bf4 Binary files /dev/null and b/src/styles/common/iconfont/fonts/ionicons.ttf differ diff --git a/src/styles/common/iconfont/fonts/ionicons.woff b/src/styles/common/iconfont/fonts/ionicons.woff new file mode 100644 index 0000000000000000000000000000000000000000..c909e51cf3e50600516fa7308f3ca75046be93ec Binary files /dev/null and b/src/styles/common/iconfont/fonts/ionicons.woff differ diff --git a/src/styles/common/iconfont/fonts/ionicons.woff2 b/src/styles/common/iconfont/fonts/ionicons.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..1d6d9c564b3c9f7a097a8e92bde6425ccaa33704 Binary files /dev/null and b/src/styles/common/iconfont/fonts/ionicons.woff2 differ diff --git a/src/styles/common/iconfont/ionicons.less b/src/styles/common/iconfont/ionicons.less new file mode 100644 index 0000000000000000000000000000000000000000..163b80e7752b8865b3ff7f54003ef2660274f457 --- /dev/null +++ b/src/styles/common/iconfont/ionicons.less @@ -0,0 +1,3 @@ +@import "_ionicons-variables"; +@import "_ionicons-font"; +@import "_ionicons-icons"; diff --git a/src/styles/common/index.less b/src/styles/common/index.less new file mode 100644 index 0000000000000000000000000000000000000000..b1c64274b9062610d0ca016d354cb8d4e7884e4c --- /dev/null +++ b/src/styles/common/index.less @@ -0,0 +1,4 @@ +@import "base"; +@import "iconfont/ionicons"; +@import "layout"; +@import "article"; \ No newline at end of file diff --git a/src/styles/common/layout.less b/src/styles/common/layout.less new file mode 100644 index 0000000000000000000000000000000000000000..56e246c3d718a7a19f690b8b590387ca24775d85 --- /dev/null +++ b/src/styles/common/layout.less @@ -0,0 +1,108 @@ +.@{row-prefix-cls} { + display: flex; + flex-flow: row wrap; + + &::before, + &::after { + display: flex; + } + + // No wrap of flex + &-no-wrap { + flex-wrap: nowrap; + } + + // x轴原点 + &-start{ + justify-content: flex-start; + } + // x轴居中 + &-center{ + justify-content: center; + } + //x轴反方向 + &-end { + justify-content: flex-end; + } + // x轴平分 + &-space-between { + justify-content: space-between; + } + // x轴有间隔地平分 + &-space-around { + justify-content: space-around; + } + // 顶部对齐 + &-top { + align-items: flex-start; + } + // 居中对齐 + &-middle { + align-items: center; + } + // 底部对齐 + &-bottom { + align-items: flex-end; + } +} + +.@{col-prefix-cls} { + position: relative; + max-width: 100%; + // Prevent columns from collapsing when empty + min-height: 1px; +} + +.make-grid(); + +// Extra small grid +// +// Columns, offsets, pushes, and pulls for extra small devices like +// smartphones. + +.make-grid(-xs); + +// Small grid +// +// Columns, offsets, pushes, and pulls for the small device range, from phones +// to tablets. + +@media (min-width: @screen-sm-min) { + .make-grid(-sm); +} + + +// Medium grid +// +// Columns, offsets, pushes, and pulls for the desktop device range. + +@media (min-width: @screen-md-min) { + .make-grid(-md); +} + + +// Large grid +// +// Columns, offsets, pushes, and pulls for the wide desktop device range. + +@media (min-width: @screen-lg-min) { + .make-grid(-lg); +} + + +// Extra large grid +// +// Columns, offsets, pushes, and pulls for the full hd desktop device range. + +@media (min-width: @screen-xl-min) { + .make-grid(-xl); +} + + +// Extra extra large grid +// +// Columns, offsets, pushes, and pulls for the large desktop device range. + +@media (min-width: @screen-xxl-min) { + .make-grid(-xxl); +} diff --git a/src/styles/common/normalize.less b/src/styles/common/normalize.less new file mode 100644 index 0000000000000000000000000000000000000000..e56ad64f8be67744c4ecc6b00e7b81ae52c0f731 --- /dev/null +++ b/src/styles/common/normalize.less @@ -0,0 +1,462 @@ +/*! normalize.css v5.0.0 | MIT License | github.com/necolas/normalize.css */ + +/** + * 1. Change the default font family in all browsers (opinionated). + * 2. Correct the line height in all browsers. + * 3. Prevent adjustments of font size after orientation changes in + * IE on Windows Phone and in iOS. + */ + +/* Document + ========================================================================== */ + +html { + font-family: sans-serif; /* 1 */ + line-height: 1.15; /* 2 */ + -ms-text-size-adjust: 100%; /* 3 */ + -webkit-text-size-adjust: 100%; /* 3 */ +} + +/* Sections + ========================================================================== */ + +/** + * Remove the margin in all browsers (opinionated). + */ + +body { + margin: 0; +} + +/** + * Add the correct display in IE 9-. + */ + +article, +aside, +footer, +header, +nav, +section { + display: block; +} + +/** + * Correct the font size and margin on `h1` elements within `section` and + * `article` contexts in Chrome, Firefox, and Safari. + */ + +h1 { + font-size: 2em; + margin: 0.67em 0; +} + +/* Grouping content + ========================================================================== */ + +/** + * Add the correct display in IE 9-. + * 1. Add the correct display in IE. + */ + +figcaption, +figure, +main { /* 1 */ + display: block; +} + +/** + * Add the correct margin in IE 8. + */ + +figure { + margin: 1em 40px; +} + +/** + * 1. Add the correct box sizing in Firefox. + * 2. Show the overflow in Edge and IE. + */ + +hr { + box-sizing: content-box; /* 1 */ + height: 0; /* 1 */ + overflow: visible; /* 2 */ +} + +/** + * 1. Correct the inheritance and scaling of font size in all browsers. + * 2. Correct the odd `em` font sizing in all browsers. + */ + +pre { + font-family: monospace, monospace; /* 1 */ + font-size: 1em; /* 2 */ +} + +/* Text-level semantics + ========================================================================== */ + +/** + * 1. Remove the gray background on active links in IE 10. + * 2. Remove gaps in links underline in iOS 8+ and Safari 8+. + */ + +a { + background-color: transparent; /* 1 */ + -webkit-text-decoration-skip: objects; /* 2 */ +} + +/** + * Remove the outline on focused links when they are also active or hovered + * in all browsers (opinionated). + */ + +a:active, +a:hover { + outline-width: 0; +} + +/** + * 1. Remove the bottom border in Firefox 39-. + * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. + */ + +abbr[title] { + border-bottom: none; /* 1 */ + text-decoration: underline; /* 2 */ + text-decoration: underline dotted; /* 2 */ +} + +/** + * Prevent the duplicate application of `bolder` by the next rule in Safari 6. + */ + +b, +strong { + font-weight: inherit; +} + +/** + * Add the correct font weight in Chrome, Edge, and Safari. + */ + +b, +strong { + font-weight: bolder; +} + +/** + * 1. Correct the inheritance and scaling of font size in all browsers. + * 2. Correct the odd `em` font sizing in all browsers. + */ + +code, +kbd, +samp { + font-family: monospace, monospace; /* 1 */ + font-size: 1em; /* 2 */ +} + +/** + * Add the correct font style in Android 4.3-. + */ + +dfn { + font-style: italic; +} + +/** + * Add the correct background and color in IE 9-. + */ + +mark { + background-color: #ff0; + color: #000; +} + +/** + * Add the correct font size in all browsers. + */ + +small { + font-size: 80%; +} + +/** + * Prevent `sub` and `sup` elements from affecting the line height in + * all browsers. + */ + +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sub { + bottom: -0.25em; +} + +sup { + top: -0.5em; +} + +/* Embedded content + ========================================================================== */ + +/** + * Add the correct display in IE 9-. + */ + +audio, +video { + display: inline-block; +} + +/** + * Add the correct display in iOS 4-7. + */ + +audio:not([controls]) { + display: none; + height: 0; +} + +/** + * Remove the border on images inside links in IE 10-. + */ + +img { + border-style: none; +} + +/** + * Hide the overflow in IE. + */ + +svg:not(:root) { + overflow: hidden; +} + +/* Forms + ========================================================================== */ + +/** + * 1. Change the font styles in all browsers (opinionated). + * 2. Remove the margin in Firefox and Safari. + */ + +button, +input, +optgroup, +select, +textarea { + font-family: sans-serif; /* 1 */ + font-size: 100%; /* 1 */ + line-height: 1.15; /* 1 */ + margin: 0; /* 2 */ +} + +/** + * Show the overflow in IE. + * 1. Show the overflow in Edge. + */ + +button, +input { /* 1 */ + overflow: visible; +} + +/** + * Remove the inheritance of text transform in Edge, Firefox, and IE. + * 1. Remove the inheritance of text transform in Firefox. + */ + +button, +select { /* 1 */ + text-transform: none; +} + +/** + * 1. Prevent a WebKit bug where (2) destroys native `audio` and `video` + * controls in Android 4. + * 2. Correct the inability to style clickable types in iOS and Safari. + */ + +button, +html [type="button"], /* 1 */ +[type="reset"], +[type="submit"] { + -webkit-appearance: button; /* 2 */ +} + +/** + * Remove the inner border and padding in Firefox. + */ + +button::-moz-focus-inner, +[type="button"]::-moz-focus-inner, +[type="reset"]::-moz-focus-inner, +[type="submit"]::-moz-focus-inner { + border-style: none; + padding: 0; +} + +/** + * Restore the focus styles unset by the previous rule. + */ + +button:-moz-focusring, +[type="button"]:-moz-focusring, +[type="reset"]:-moz-focusring, +[type="submit"]:-moz-focusring { + outline: 1px dotted ButtonText; +} + +/** + * Change the border, margin, and padding in all browsers (opinionated). + */ + +fieldset { + border: 1px solid #c0c0c0; + margin: 0 2px; + padding: 0.35em 0.625em 0.75em; +} + +/** + * 1. Correct the text wrapping in Edge and IE. + * 2. Correct the color inheritance from `fieldset` elements in IE. + * 3. Remove the padding so developers are not caught out when they zero out + * `fieldset` elements in all browsers. + */ + +legend { + box-sizing: border-box; /* 1 */ + color: inherit; /* 2 */ + display: table; /* 1 */ + max-width: 100%; /* 1 */ + padding: 0; /* 3 */ + white-space: normal; /* 1 */ +} + +/** + * 1. Add the correct display in IE 9-. + * 2. Add the correct vertical alignment in Chrome, Firefox, and Opera. + */ + +progress { + display: inline-block; /* 1 */ + vertical-align: baseline; /* 2 */ +} + +/** + * Remove the default vertical scrollbar in IE. + */ + +textarea { + overflow: auto; + resize: vertical; +} + +/** + * 1. Add the correct box sizing in IE 10-. + * 2. Remove the padding in IE 10-. + */ + +[type="checkbox"], +[type="radio"] { + box-sizing: border-box; /* 1 */ + padding: 0; /* 2 */ +} + +/** + * Correct the cursor style of increment and decrement buttons in Chrome. + */ + +[type="number"]::-webkit-inner-spin-button, +[type="number"]::-webkit-outer-spin-button { + height: auto; +} + +/** + * 1. Correct the odd appearance in Chrome and Safari. + * 2. Correct the outline style in Safari. + */ + +[type="search"] { + -webkit-appearance: textfield; /* 1 */ + outline-offset: -2px; /* 2 */ +} + +/** + * Remove the inner padding and cancel buttons in Chrome and Safari on macOS. + */ + +[type="search"]::-webkit-search-cancel-button, +[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} + +/** + * 1. Correct the inability to style clickable types in iOS and Safari. + * 2. Change font properties to `inherit` in Safari. + */ + +::-webkit-file-upload-button { + -webkit-appearance: button; /* 1 */ + font: inherit; /* 2 */ +} + +/* Interactive + ========================================================================== */ + +/* + * Add the correct display in IE 9-. + * 1. Add the correct display in Edge, IE, and Firefox. + */ + +details, /* 1 */ +menu { + display: block; +} + +/* + * Add the correct display in all browsers. + */ + +summary { + display: list-item; +} + +/* Scripting + ========================================================================== */ + +/** + * Add the correct display in IE 9-. + */ + +canvas { + display: inline-block; +} + +/** + * Add the correct display in IE. + */ + +template { + display: none; +} + +/* Hidden + ========================================================================== */ + +/** + * Add the correct display in IE 10-. + */ + +[hidden] { + display: none; +} diff --git a/src/styles/components/affix.less b/src/styles/components/affix.less new file mode 100644 index 0000000000000000000000000000000000000000..bdcab9fdcf970159d22dd56f621fa8d94234d910 --- /dev/null +++ b/src/styles/components/affix.less @@ -0,0 +1,4 @@ +.ivu-affix { + position: fixed; + z-index: @zindex-affix; +} diff --git a/src/styles/components/alert.less b/src/styles/components/alert.less new file mode 100644 index 0000000000000000000000000000000000000000..a75549004f446f736e5e83475482078e0054afd5 --- /dev/null +++ b/src/styles/components/alert.less @@ -0,0 +1,107 @@ +@alert-prefix-cls: ~"@{css-prefix}alert"; +@icon-prefix-cls: ~"@{css-prefix}icon"; + +.@{alert-prefix-cls}{ + position: relative; + padding: 8px 48px 8px 16px; + border-radius: @border-radius-small; + color: @text-color; + font-size: @font-size-base; + line-height: 16px; + margin-bottom: 10px; + + &&-with-icon{ + padding: 8px 48px 8px 38px; + } + + &-icon { + position: absolute; + margin-top: -8.5px; + top: 50%; + left: 12px; + font-size: @font-size-large; + } + + &-desc { + font-size: @font-size-base; + color: @text-color; + line-height: 21px; + display: none; + text-align: justify; + } + + &-success { + border: @border-width-base @border-style-base ~`colorPalette("@{success-color}", 3)`; + //background-color: tint(@success-color, 90%); + background-color: ~`colorPalette("@{success-color}", 1)`; + .@{alert-prefix-cls}-icon { + color: @success-color; + } + } + + &-info { + border: @border-width-base @border-style-base ~`colorPalette("@{primary-color}", 3)`; + //background-color: tint(@primary-color, 90%); + background-color: ~`colorPalette("@{primary-color}", 1)`; + .@{alert-prefix-cls}-icon { + color: @primary-color; + } + } + + &-warning { + border: @border-width-base @border-style-base ~`colorPalette("@{warning-color}", 3)`; + //background-color: tint(@warning-color, 90%); + background-color: ~`colorPalette("@{warning-color}", 1)`; + .@{alert-prefix-cls}-icon { + color: @warning-color; + } + } + + &-error { + border: @border-width-base @border-style-base ~`colorPalette("@{error-color}", 3)`; + //background-color: tint(@error-color, 90%); + background-color: ~`colorPalette("@{error-color}", 1)`; + .@{alert-prefix-cls}-icon { + color: @error-color; + } + } + + &-close { + .content-close(-3px); + } + + &-with-desc { + padding: 16px; + position: relative; + border-radius: @border-radius-small; + margin-bottom: 10px; + color: @text-color; + line-height: 1.5; + } + + &-with-desc&-with-icon{ + padding: 16px 16px 16px 69px; + } + + &-with-desc &-desc{ + display: block; + } + + &-with-desc &-message { + font-size: @font-size-large; + color: @title-color; + display: block; + margin-bottom: 4px; + } + + &-with-desc &-icon { + top: 50%; + left: 24px; + margin-top: -24px; + font-size: 28px; + } + + &-with-banner{ + border-radius: 0; + } +} diff --git a/src/styles/components/anchor.less b/src/styles/components/anchor.less new file mode 100644 index 0000000000000000000000000000000000000000..a88b50c57e63ad1c19118340fe8c089dcf26b22b --- /dev/null +++ b/src/styles/components/anchor.less @@ -0,0 +1,74 @@ +@anchor-prefix: ~"@{css-prefix}anchor"; + +.@{anchor-prefix}{ + &-wrapper{ + overflow: auto; + padding-left: 4px; + margin-left: -4px; + } + + &{ + position: relative; + padding-left: @anchor-border-width; + + &-ink { + position: absolute; + height: 100%; + left: 0; + top: 0; + &:before { + content: ' '; + position: relative; + width: @anchor-border-width; + height: 100%; + display: block; + background-color: @border-color-split; + margin: 0 auto; + } + &-ball { + display: inline-block; + position: absolute; + width: 8px; + height: 8px; + border-radius: 50%; + border: 2px solid @primary-color; + background-color: @body-background; + left: 50%; + transition: top @transition-time @ease-in-out; + transform: translate(-50%, 2px); + } + } + + &.fixed &-ink &-ink-ball { + display: none; + } + } + + &-link { + padding: 8px 0 8px 16px; + line-height: 1; + + &-title { + display: block; + position: relative; + transition: all .3s; + color: @text-color; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + margin-bottom: 8px; + &:only-child { + margin-bottom: 0; + } + } + + &-active > &-title { + color: @primary-color; + } + } + + &-link &-link { + padding-top: 6px; + padding-bottom: 6px; + } +} diff --git a/src/styles/components/auth.less b/src/styles/components/auth.less new file mode 100644 index 0000000000000000000000000000000000000000..ffaba4b9860e63d9c8dfe8f7eda05fc1cd64b769 --- /dev/null +++ b/src/styles/components/auth.less @@ -0,0 +1,9 @@ +.ivu-auth{ + &-prevent{ + display: inline-block; + cursor: pointer; + &-no-match{ + pointer-events: none; + } + } +} diff --git a/src/styles/components/auto-complete.less b/src/styles/components/auto-complete.less new file mode 100644 index 0000000000000000000000000000000000000000..119b0cd4fa982ace67e0b29e1ab60fe6c500ed5e --- /dev/null +++ b/src/styles/components/auto-complete.less @@ -0,0 +1,22 @@ +@auto-complete-prefix-cls: ~"@{css-prefix}auto-complete"; + +.@{auto-complete-prefix-cls} { + .@{select-prefix-cls} { + &-not-found{ + display: none; + } + } + .@{icon-prefix-cls}-ios-close-circle{ + display: none; + font-size: @font-size-base; + } + &:hover .@{icon-prefix-cls}-ios-close-circle{ + display: inline-block; + } + &.@{select-dropdown-prefix-cls} { + max-height: none; + } + &:focus, & div{ + outline: none; + } +} diff --git a/src/styles/components/avatar-list.less b/src/styles/components/avatar-list.less new file mode 100644 index 0000000000000000000000000000000000000000..a56a47ca86811a89ac89631993bf1a94ece7f697 --- /dev/null +++ b/src/styles/components/avatar-list.less @@ -0,0 +1,36 @@ +.ivu-avatar-list{ + display: inline-block; + &-item{ + display: inline-block; + margin-left: -8px; + cursor: pointer; + &:first-child{ + margin-left: 0; + } + .ivu-avatar{ + border: 1px solid #fff; + } + &-excess{ + cursor: auto; + } + } + &-large{ + .ivu-avatar-list-item{ + margin-left: -16px; + &:first-child{ + margin-left: 0; + } + } + .ivu-avatar-list-item-excess{ + font-size: @font-size-large; + } + } + &-default{ + .ivu-avatar-list-item{ + margin-left: -12px; + &:first-child{ + margin-left: 0; + } + } + } +} \ No newline at end of file diff --git a/src/styles/components/avatar.less b/src/styles/components/avatar.less new file mode 100644 index 0000000000000000000000000000000000000000..a1c2a9c3c155f2690789adb2d108e95beb0df440 --- /dev/null +++ b/src/styles/components/avatar.less @@ -0,0 +1,59 @@ +@avatar-prefix-cls: ~"@{css-prefix}avatar"; + +.@{avatar-prefix-cls} { + display: inline-block; + text-align: center; + background: @avatar-bg; + color: @avatar-color; + white-space: nowrap; + position: relative; + overflow: hidden; + vertical-align: middle; + + &-image{ + background: transparent; + } + + .ivu-icon{ + position: relative; + top: -1px; + } + + .avatar-size(@avatar-size-base, @avatar-font-size-base); + + &-large { + .avatar-size(@avatar-size-lg, @avatar-font-size-lg); + .ivu-icon{ + position: relative; + top: -2px; + } + } + + &-small { + .avatar-size(@avatar-size-sm, @avatar-font-size-sm); + } + + &-square { + border-radius: @avatar-border-radius; + } + + & > img { + width: 100%; + height: 100%; + } +} + +.avatar-size(@size, @font-size) { + width: @size; + height: @size; + line-height: @size; + border-radius: 50%; + + //& > * { + // line-height: @size; + //} + + &.@{avatar-prefix-cls}-icon { + font-size: @font-size; + } +} diff --git a/src/styles/components/back-top.less b/src/styles/components/back-top.less new file mode 100644 index 0000000000000000000000000000000000000000..52e419713cccb998c1ab0b595895249c6901f23d --- /dev/null +++ b/src/styles/components/back-top.less @@ -0,0 +1,29 @@ +@backtop-prefix-cls: ~"@{css-prefix}back-top"; + +.@{backtop-prefix-cls} { + z-index: @zindex-back-top; + position: fixed; + cursor: pointer; + display: none; + + &.@{backtop-prefix-cls}-show { + display: block; + } + + &-inner { + background-color: rgba(0,0,0,.6); + border-radius: 2px; + box-shadow: 0 1px 3px rgba(0,0,0,.2); + transition: all @transition-time @ease-in-out; + + &:hover { + background-color: rgba(0,0,0,.7); + } + } + + i{ + color: #fff; + font-size: 24px; + padding: 8px 12px; + } +} diff --git a/src/styles/components/badge.less b/src/styles/components/badge.less new file mode 100644 index 0000000000000000000000000000000000000000..c1e51fa30a3f506877c03bffba4aefbd5c250ee3 --- /dev/null +++ b/src/styles/components/badge.less @@ -0,0 +1,154 @@ +@badge-prefix-cls: ~"@{css-prefix}badge"; + +.@{badge-prefix-cls} { + position: relative; + display: inline-block; + + &-count { + font-family: "Monospaced Number"; + line-height: 1; + vertical-align: middle; + position: absolute; + transform: translateX(50%); + top: -10px; + right: 0; + height: 20px; + border-radius: 10px; + min-width: 20px; + background: @error-color; + border: 1px solid transparent; + color: #fff; + line-height: 18px; + text-align: center; + padding: 0 6px; + font-size: 12px; + white-space: nowrap; + transform-origin: -10% center; + z-index: 10; + box-shadow: 0 0 0 1px #fff; + + &-custom{ + background: transparent; + color: inherit; + border-color: transparent; + box-shadow: none; + } + + a, + a:hover { + color: #fff; + } + + &-alone { + top: auto; + display: block; + position: relative; + transform: translateX(0); + } + + &-primary{ + background: @primary-color; + } + &-success{ + background: @success-color; + } + &-error{ + background: @error-color; + } + &-warning{ + background: @warning-color; + } + &-info{ + background: @info-color; + } + &-normal{ + background: @normal-color; + color: @subsidiary-color; + } + } + + &-dot { + position: absolute; + transform: translateX(-50%); + transform-origin: 0 center; + top: -4px; + right: -8px; + height: 8px; + width: 8px; + border-radius: 100%; + background: @error-color; + z-index: 10; + box-shadow: 0 0 0 1px #fff; + } + + &-status { + line-height: inherit; + vertical-align: baseline; + + &-dot { + width: 6px; + height: 6px; + display: inline-block; + border-radius: 50%; + vertical-align: middle; + position: relative; + top: -1px; + } + &-success { + background-color: @success-color; + } + &-processing { + background-color: @processing-color; + position: relative; + &:after { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + border-radius: 50%; + border: 1px solid @processing-color; + content: ''; + animation: aniStatusProcessing 1.2s infinite ease-in-out; + } + } + &-default { + background-color: @normal-color; + } + &-error { + background-color: @error-color; + } + &-warning { + background-color: @warning-color; + } + &-text { + display: inline-block; + color: @text-color; + font-size: @font-size-base; + margin-left: 6px; + } + + @colors: pink, magenta, red, volcano, orange, yellow, gold, cyan, lime, green, blue, geekblue, purple; + + .make-color-classes(@i: length(@colors)) when (@i > 0) { + .make-color-classes(@i - 1); + @color: extract(@colors, @i); + @darkColor: '@{color}-6'; + &-@{color} { + background-color: @@darkColor; + } + } + .make-color-classes(); + } +} + +@keyframes aniStatusProcessing { + 0% { + transform: scale(0.8); + opacity: 0.5; + } + 100% { + transform: scale(2.4); + opacity: 0; + } +} diff --git a/src/styles/components/breadcrumb.less b/src/styles/components/breadcrumb.less new file mode 100644 index 0000000000000000000000000000000000000000..eb2056d52c9fdbc5e83b285f219d06cd5b15af57 --- /dev/null +++ b/src/styles/components/breadcrumb.less @@ -0,0 +1,34 @@ +@breadcrumb-prefix-cls: ~"@{css-prefix}breadcrumb"; + +.@{breadcrumb-prefix-cls} { + color: #999; + font-size: @font-size-base; + + a { + color: @text-color; + transition: color @transition-time @ease-in-out; + &:hover { + color: tint(@primary-color, 20%); + } + } + + & > span:last-child { + font-weight: bold; + color: @text-color; + } + + & > span:last-child &-item-separator { + display: none; + } + + &-item-separator { + margin: 0 8px; + color: @border-color-base; + } + + &-item-link { + > .ivu-icon + span { + margin-left: 4px; + } + } +} diff --git a/src/styles/components/button.less b/src/styles/components/button.less new file mode 100644 index 0000000000000000000000000000000000000000..a2bc1249e69448506799b5de9d8f7bd9df0e7cb9 --- /dev/null +++ b/src/styles/components/button.less @@ -0,0 +1,202 @@ +@btn-prefix-cls: ~"@{css-prefix}btn"; + +.@{btn-prefix-cls} { + .btn; + .btn-default; + + &-long{ + width: 100%; + } + + & > .ivu-icon + span, & > span + .ivu-icon{ + margin-left: 4px; + } + + &-primary { + .btn-primary; + + .@{btn-prefix-cls}-group:not(.@{btn-prefix-cls}-group-vertical) &:not(:first-child):not(:last-child) { + border-right-color: @btn-group-border; + border-left-color: @btn-group-border; + } + + .@{btn-prefix-cls}-group:not(.@{btn-prefix-cls}-group-vertical) &:first-child { + &:not(:last-child) { + border-right-color: @btn-group-border; + &[disabled] { + border-right-color: @btn-default-border; + } + } + } + + .@{btn-prefix-cls}-group:not(.@{btn-prefix-cls}-group-vertical) &:last-child:not(:first-child), + .@{btn-prefix-cls}-group:not(.@{btn-prefix-cls}-group-vertical) & + .@{btn-prefix-cls} { + border-left-color: @btn-group-border; + &[disabled] { + border-left-color: @btn-default-border; + } + } + + .@{btn-prefix-cls}-group-vertical &:not(:first-child):not(:last-child) { + border-top-color: @btn-group-border; + border-bottom-color: @btn-group-border; + } + + .@{btn-prefix-cls}-group-vertical &:first-child { + &:not(:last-child) { + border-bottom-color: @btn-group-border; + &[disabled] { + border-top-color: @btn-default-border; + } + } + } + + .@{btn-prefix-cls}-group-vertical &:last-child:not(:first-child), + .@{btn-prefix-cls}-group-vertical & + .@{btn-prefix-cls} { + border-top-color: @btn-group-border; + &[disabled] { + border-bottom-color: @btn-default-border; + } + } + } + + //&-ghost { + // .btn-ghost; + //} + + &-dashed{ + .btn-dashed; + } + + &-text{ + .btn-text; + } + + &-success { + .btn-color(@success-color); + } + + &-warning { + .btn-color(@warning-color); + } + + &-error { + .btn-color(@error-color); + } + + &-info { + .btn-color(@info-color); + } + + &-circle, + &-circle-outline { + .btn-circle(@btn-prefix-cls); + } + + &:before { + position: absolute; + top: -1px; + left: -1px; + bottom: -1px; + right: -1px; + background: #fff; + opacity: 0.35; + content: ''; + border-radius: inherit; + z-index: 1; + transition: opacity @transition-time; + pointer-events: none; + display: none; + } + + &&-loading { + pointer-events: none; + position: relative; + + &:before { + display: block; + } + } + + &-group { + .btn-group(@btn-prefix-cls); + } + + &-group-vertical { + .btn-group-vertical(@btn-prefix-cls); + } + + // The new ghost in 3.0 + &-ghost{ + color: #fff; + background: transparent; + &:hover{ + background: transparent; + } + } + &-ghost&-dashed, &-ghost&-default{ + color: #fff; + border-color: #fff; + &:hover{ + color: tint(@primary-color, 20%); + border-color: tint(@primary-color, 20%); + } + } + &-ghost&-primary{ + color: @primary-color; + &:hover{ + color: tint(@primary-color, 20%); + background: fade(tint(@primary-color, 95%), 50%); + } + } + &-ghost&-info{ + color: @info-color; + &:hover{ + color: tint(@info-color, 20%); + background: fade(tint(@info-color, 95%), 50%); + } + } + &-ghost&-success{ + color: @success-color; + &:hover{ + color: tint(@success-color, 20%); + background: fade(tint(@success-color, 95%), 50%); + } + } + &-ghost&-warning{ + color: @warning-color; + &:hover{ + color: tint(@warning-color, 20%); + background: fade(tint(@warning-color, 95%), 50%); + } + } + &-ghost&-error{ + color: @error-color; + &:hover{ + color: tint(@error-color, 20%); + background: fade(tint(@error-color, 95%), 50%); + } + } + + &-ghost&-default[disabled], &-ghost&-dashed[disabled], &-ghost&-primary[disabled], &-ghost&-info[disabled], &-ghost&-success[disabled], &-ghost&-warning[disabled], &-ghost&-error[disabled]{ + background: transparent; + color: fade(#000, 25%); + border-color: @btn-disable-border; + } + &-ghost&-text[disabled]{ + background: transparent; + color: fade(#000, 25%); + } +} + +a.@{btn-prefix-cls} { + padding-top: 0.1px; + line-height: @btn-height-base - 2px; + + &-large { + line-height: @btn-height-large - 2px; + } + &-small { + line-height: @btn-height-small - 2px; + } +} diff --git a/src/styles/components/calendar.less b/src/styles/components/calendar.less new file mode 100644 index 0000000000000000000000000000000000000000..736452fee7acf798480d52cb93d9cf3f55382ee7 --- /dev/null +++ b/src/styles/components/calendar.less @@ -0,0 +1,67 @@ +.ivu-calendar{ + &-header{ + display: flex; + justify-content: space-between; + padding: 12px; + border-bottom: 1px solid @border-color-split; + + &-title{ + color: @title-color; + font-size: 18px; + } + + &-action{ + + } + } + + &-table{ + table-layout: fixed; + width: 100%; + + thead th{ + padding: 24px 0 6px 6px; + text-align: left; + font-size: 14px; + } + + td{ + font-size: 14px; + border-bottom: 1px solid @border-color-split; + border-right: 1px solid @border-color-split; + vertical-align: top; + } + tr:first-child td { + border-top: 1px solid @border-color-split; + } + + tr td:first-child { + border-left: 1px solid @border-color-split; + } + + &-day{ + box-sizing: border-box; + height: 100px; + padding: 6px; + transition: background-color @transition-time @ease-in-out; + cursor: pointer; + &:hover{ + background-color: ~`colorPalette("@{primary-color}", 1)`; + } + &-other{ + .ivu-calendar-table-day-title{ + color: @btn-disable-color; + } + } + &-current{ + .ivu-calendar-table-day-title{ + color: @primary-color; + } + background-color: ~`colorPalette("@{primary-color}", 1)`; + } + } + } + &-table-year{ + padding-top: 24px; + } +} diff --git a/src/styles/components/card.less b/src/styles/components/card.less new file mode 100644 index 0000000000000000000000000000000000000000..a4fe8a2d6f356cc450a9f96e1eaebb595ed0e214 --- /dev/null +++ b/src/styles/components/card.less @@ -0,0 +1,51 @@ +@card-prefix-cls: ~"@{css-prefix}card"; + +.@{card-prefix-cls}{ + display: block; + background: #fff; + border-radius: @border-radius-small; + font-size: @font-size-base; + position: relative; + //overflow: hidden; + transition: all @transition-time @ease-in-out; + + &-bordered { + border: 1px solid @border-color-base; + border-color: @border-color-split; + } + + &-shadow{ + box-shadow: @shadow-card; + } + + &:hover { + box-shadow: @shadow-base; + border-color: #eee; + } + &&-dis-hover:hover{ + box-shadow: none; + border-color: transparent; + } + + &&-dis-hover&-bordered:hover{ + border-color: @border-color-split; + } + + &&-shadow:hover{ + box-shadow: @shadow-card; + } + + &-head { + .content-header; + } + + &-extra { + position: absolute; + right: 16px; + top: 14px; + } + + &-body { + padding: 16px; + } +} diff --git a/src/styles/components/carousel.less b/src/styles/components/carousel.less new file mode 100644 index 0000000000000000000000000000000000000000..9dfa1d3f831ab848b2bdddf870a43b65007e40cf --- /dev/null +++ b/src/styles/components/carousel.less @@ -0,0 +1,187 @@ +@carousel-prefix-cls: ~"@{css-prefix}carousel"; +@carousel-item-prefix-cls: ~"@{css-prefix}carousel-item"; + +.@{carousel-prefix-cls} { + position: relative; + display: block; + box-sizing: border-box; + user-select: none; + touch-action: pan-y; + -webkit-tap-highlight-color: transparent; + + &-track, &-list { + transform: translate3d(0, 0, 0); + } + + &-list { + position: relative; + display: block; + overflow: hidden; + + margin: 0; + padding: 0; + } + + &-track { + position: relative; + //top: 0; + top: 100%; + left: 0; + display: block; + + overflow: hidden; + + z-index: 1; + &.higher { + z-index: 2; + top: 0; + } + } + + &-item { + float: left; + height: 100%; + min-height: 1px; + display: block; + } + + &-arrow { + + border: none; + outline: none; + + padding: 0; + margin: 0; + + width: 36px; + height: 36px; + border-radius: 50%; + + cursor: pointer; + + display: none; + + position: absolute; + top: 50%; + z-index: 10; + transform: translateY(-50%); + + transition: @transition-time; + background-color: rgba(31, 45, 61, .11); + color: #fff; + + &:hover { + background-color: rgba(31, 45, 61, 0.5); + } + + text-align: center; + font-size: 1em; + + font-family: inherit; + line-height: inherit; + + & > * { + vertical-align: baseline; + } + + &.left { + left: 16px; + } + + &.right { + right: 16px; + } + + &-always { + display: inherit; + } + + &-hover { + display: inherit; + + opacity: 0; + } + } + + &:hover &-arrow-hover { + opacity: 1; + } + + &-dots { + z-index: 10; + + @padding: 7px; + + display: none; + + position: relative; + &-inside { + display: block; + position: absolute; + bottom: 10px - @padding; + } + + &-outside { + display: block; + margin-top: 10px - @padding; + } + + list-style: none; + + text-align: center; + + padding: 0; + width: 100%; + height: 3px + @padding * 2; + + li { + position: relative; + display: inline-block; + + vertical-align: top; + text-align: center; + + margin: 0 2px; + padding: @padding 0; + + cursor: pointer; + + button { + border: 0; + cursor: pointer; + + background: #8391a5; + opacity: 0.3; + + display: block; + width: 16px; + height: 3px; + + border-radius: 1px; + outline: none; + + font-size: 0; + color: transparent; + + transition: all .5s; + &.radius { + width: 6px; + height: 6px; + border-radius: 50%; + } + } + + &:hover > button { + opacity: 0.7; + } + + &.@{carousel-prefix-cls}-active > button { + opacity: 1; + width: 24px; + &.radius{ + width: 6px; + } + } + } + } +} diff --git a/src/styles/components/cascader.less b/src/styles/components/cascader.less new file mode 100644 index 0000000000000000000000000000000000000000..9320429d840f2ae92a13bd97de81276b95e62c0f --- /dev/null +++ b/src/styles/components/cascader.less @@ -0,0 +1,178 @@ +@cascader-prefix-cls: ~"@{css-prefix}cascader"; +@cascader-item-prefix-cls: ~"@{css-prefix}cascader-menu-item"; + +.selectDropDown{ + width: auto; + padding: 0; + white-space: nowrap; + overflow: visible; +} + +.@{cascader-prefix-cls} { + //position: relative; + line-height: normal; + + &-rel{ + display: inline-block; + width: 100%; + position: relative; + } + + .@{css-prefix}input{ + padding-right: 24px; + display: block; + cursor: pointer; + } + &-disabled .@{css-prefix}input{ + cursor: @cursor-disabled; + } + + &-label{ + width: 100%; + height: 100%; + line-height: 32px; + padding: 0 7px; + box-sizing: border-box; + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; + cursor: pointer; + font-size: @font-size-base; + position: absolute; + left: 0; + top: 0; + } + &-size-large &-label{ + line-height: 36px; + font-size: @font-size-base; + } + &-size-small &-label{ + line-height: 26px; + } + + .@{cascader-prefix-cls}-arrow:nth-of-type(1) { + display: none; + cursor: pointer; + } + + &:hover { + .@{cascader-prefix-cls}-arrow:nth-of-type(1) { + display: inline-block; + } + } + &-show-clear:hover .@{cascader-prefix-cls}-arrow:nth-of-type(2){ + display: none; + } + + &-arrow { + .inner-arrow(); + } + &-visible &-arrow:nth-of-type(2) { + transform: translateY(-50%) rotate(180deg); + } + + .@{select-dropdown-prefix-cls} { + .selectDropDown(); + } + + .select-item(@cascader-prefix-cls, @cascader-item-prefix-cls); + .ivu-select-item span{ + color: @error-color; + } + + &-dropdown{ + padding: 5px 0; + .@{select-dropdown-prefix-cls}-list{ + max-height: 190px; + box-sizing: border-box; + overflow: auto; + } + } + + &-not-found-tip{ + padding: 5px 0; + text-align: center; + color: @btn-disable-color; + li:not([class^=ivu-]){ + list-style: none; + margin-bottom: 0; + } + } + &-not-found .@{select-dropdown-prefix-cls} { + width: inherit; + } + + &-menu{ + display: inline-block; + min-width: 100px; + height: 180px; + margin: 0; + padding: 5px 0 !important; + vertical-align: top; + list-style: none; + border-right: 1px solid @border-color-split; + overflow: auto; + + &:first-child { + + } + &:last-child { + border-right-color: transparent; + margin-right: -1px; + } + &:only-child { + + } + + & &-item{ + position: relative; + padding-right: 36px; + transition: all @transition-time @ease-in-out; + + i{ + font-size: @font-size-small; + position: absolute; + right: 15px; + top: 50%; + //margin-top: -6px; + transform: translateY(-50%); + } + &-loading{ + margin-top: -6px; + } + + &-active{ + background-color: @background-color-select-hover; + color: @primary-color; + } + } + } +} +.@{cascader-prefix-cls}-transfer{ + z-index: @zindex-transfer; + .selectDropDown(); + .select-item(@cascader-prefix-cls, @cascader-item-prefix-cls); + .ivu-select-item span{ + color: @error-color; + } + .@{cascader-prefix-cls} { + &-menu{ + &-item{ + padding-right: 24px; + transition: all @transition-time @ease-in-out; + &-active{ + background-color: @background-color-select-hover; + color: @primary-color; + } + } + } + } +} + +.@{form-item-prefix-cls}-error{ + .@{cascader-prefix-cls} { + &-arrow{ + color: @error-color; + } + } +} diff --git a/src/styles/components/cell.less b/src/styles/components/cell.less new file mode 100644 index 0000000000000000000000000000000000000000..1a04c1e17e705eff58671d82c599ac6b4efee0d2 --- /dev/null +++ b/src/styles/components/cell.less @@ -0,0 +1,74 @@ +@cell-prefix-cls: ~"@{css-prefix}cell"; + + +.@{cell-prefix-cls} { + position: relative; + overflow: hidden; + + &-link, &-link:hover, &-link:active{ + color: inherit; + } + + &-icon{ + display: inline-block; + margin-right: 4px; + font-size: @font-size-base; + vertical-align: middle; + &:empty{ + display: none + } + } + &-main{ + display: inline-block; + vertical-align: middle; + } + &-title{ + line-height: 24px; + font-size: @font-size-base; + } + &-label{ + line-height: 1.2; + font-size: @font-size-small; + color: @subsidiary-color; + } + &-selected &-label{ + color: inherit; + } + + &-selected, &&-selected:hover{ + background: ~`colorPalette("@{primary-color}", 1)`; + } + + &-footer{ + display: inline-block; + position: absolute; + transform: translateY(-50%); + top: 50%; + right: 16px; + color: @text-color; + } + &-with-link &-footer{ + right: 32px; + } + &-selected &-footer{ + color: inherit; + } + + &-arrow{ + display: inline-block; + position: absolute; + transform: translateY(-50%); + top: 50%; + right: 16px; + font-size: @font-size-base; + } + + &:focus{ + background: @background-color-select-hover; + outline: none; + } + &-selected:focus{ + background: shade(@selected-color, 10%); + } +} +.select-item(@cell-prefix-cls, @cell-prefix-cls); \ No newline at end of file diff --git a/src/styles/components/checkbox.less b/src/styles/components/checkbox.less new file mode 100644 index 0000000000000000000000000000000000000000..11da709e94b44f885c478dfacd8d88000aee4841 --- /dev/null +++ b/src/styles/components/checkbox.less @@ -0,0 +1,2 @@ +@checkbox-prefix-cls: ~"@{css-prefix}checkbox"; +.checkboxFn(); \ No newline at end of file diff --git a/src/styles/components/circle.less b/src/styles/components/circle.less new file mode 100644 index 0000000000000000000000000000000000000000..5914cb624bda1c1bf319ea8e39e06d6a71cef6f6 --- /dev/null +++ b/src/styles/components/circle.less @@ -0,0 +1,16 @@ +@circle-prefix-cls: ~"@{css-prefix}chart-circle"; + +.@{circle-prefix-cls}{ + display: inline-block; + position: relative; + + &-inner { + width: 100%; + text-align: center; + position: absolute; + left: 0; + top: 50%; + transform: translateY(-50%); + line-height: 1; + } +} diff --git a/src/styles/components/city.less b/src/styles/components/city.less new file mode 100644 index 0000000000000000000000000000000000000000..1a1e94b8ef4db3c86ed9ec7d111e618601d03c28 --- /dev/null +++ b/src/styles/components/city.less @@ -0,0 +1,112 @@ +.ivu-city{ + display: inline-block; + width: 100%; + position: relative; + + .ivu-dropdown{ + width: 100%; + } + + &-rel{ + display: inline-block; + width: 100%; + position: relative; + cursor: pointer; + } + + &-disabled &-rel{ + cursor: @cursor-disabled; + } + + &-arrow{ + transition: all @transition-time @ease-in-out; + } + + &-visible &-arrow:nth-of-type(2) { + transform: rotate(180deg); + } + + @city-width: 400px; + .ivu-select-dropdown{ + width: @city-width; + } + + &-drop{ + width: @city-width; + padding: 2px 8px; + + &-cities{ + margin-bottom: 8px; + span{ + display: inline-block; + margin-right: 4px; + cursor: pointer; + &:hover{ + color: @link-hover-color; + } + } + } + + &-menu{ + margin-bottom: 8px; + } + + &-type{ + display: inline-block; + } + &-search{ + display: inline-block; + margin-left: 8px; + } + + &-list{ + &-letter{ + margin-bottom: 8px; + .ivu-tag{ + cursor: pointer; + &:hover{ + .ivu-tag-text{ + color: @link-hover-color; + } + } + } + } + &-main{ + max-height: 200px; + overflow: auto; + dl{ + + } + dt{ + float: left; + font-weight: bold; + } + dd{ + white-space: normal; + margin-inline-start: 40px; + margin-bottom: 8px; + li{ + display: inline-block; + margin-right: 9px; + cursor: pointer; + + &:hover{ + color: @link-hover-color; + } + } + } + + &-city{ + dd{ + margin-inline-start: 24px; + } + } + } + } + } + + &-transfer.ivu-select-dropdown{ + max-height: none; + overflow: visible; + } +} diff --git a/src/styles/components/collapse.less b/src/styles/components/collapse.less new file mode 100644 index 0000000000000000000000000000000000000000..dbd40b7bf0ccfc6ddf3f0beaca95c08582ee7ea1 --- /dev/null +++ b/src/styles/components/collapse.less @@ -0,0 +1,70 @@ +@collapse-prefix-cls: ~"@{css-prefix}collapse"; + +.@{collapse-prefix-cls}{ + background-color: @background-color-base; + border-radius: 3px; + border: 1px solid @border-color-base; + + &-simple{ + border-left: none; + border-right: none; + background-color: #fff; + border-radius: 0; + } + + & > &-item{ + border-top: 1px solid @border-color-base; + &:first-child { + border-top: 0; + } + + > .@{collapse-prefix-cls}-header{ + height: 38px; + line-height: 38px; + padding-left: 16px; + color: #666; + cursor: pointer; + position: relative; + border-bottom: 1px solid transparent; + transition: all @transition-time @ease-in-out; + + > i{ + transition: transform @transition-time @ease-in-out; + margin-right: 14px; + } + } + } + & > &-item&-item-active > &-header{ + border-bottom: 1px solid @border-color-base; + } + &-simple > &-item&-item-active > &-header{ + border-bottom: 1px solid transparent; + } + & > &-item&-item-active > &-header > i{ + transform: rotate(90deg); + } + + &-content{ + //display: none; + //overflow: hidden; + color: @text-color; + padding: 0 16px; + background-color: #fff; + + & > &-box { + padding-top: 16px; + padding-bottom: 16px; + } + } + &-simple > &-item > &-content > &-content-box{ + padding-top: 0; + } + &-item-active > &-content{ + //display: block; + } + &-item:last-child { + > .@{collapse-prefix-cls}-content { + border-radius: 0 0 3px 3px; + } + } +} diff --git a/src/styles/components/color-picker.less b/src/styles/components/color-picker.less new file mode 100644 index 0000000000000000000000000000000000000000..60819eccdc39fa04f89e2e032ca885387b879c6d --- /dev/null +++ b/src/styles/components/color-picker.less @@ -0,0 +1,304 @@ +@color-picker-prefix-cls: ~'@{css-prefix}color-picker'; + +.circle-dot(){ + width: 4px; + height: 4px; + box-shadow: 0 0 0 1.5px #fff, inset 0 0 1px 1px rgba(0, 0, 0, 0.3), 0 0 1px 2px rgba(0, 0, 0, 0.4); + border-radius: 50%; + transform: translate(-2px, -2px); +} + +.@{color-picker-prefix-cls} { + display: inline-block; + &-hide { + display: none; + &-drop { + visibility: hidden; + } + } + &-disabled { + .disabled(); + } + & > div:first-child:hover { + .ivu-input { + .hover(); + } + } + & > div:first-child.@{color-picker-prefix-cls}-disabled:hover { + .ivu-input { + border-color: tint(@input-border-color, 20%); + } + } + & .@{select-dropdown-prefix-cls} { + padding: 0; + } + + &-input.ivu-input:focus{ + box-shadow: none; + } + &-focused { + .active(); + } + &-rel { + line-height: 0; + } + &-color { + width: 18px; + height: 18px; + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==); + border-radius: 2px; + position: relative; + top: 2px; + div { + width: 100%; + height: 100%; + box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.15); + border-radius: 2px; + } + &-empty { + background: #fff; + overflow: hidden; + text-align: center; + i { + font-size: 18px; + vertical-align: baseline; + } + } + &-focused { + .active(); + } + } + &-large &-color { + width: 20px; + height: 20px; + top: 1px; + &-empty { + i { + font-size: 20px; + } + } + } + &-small &-color { + width: 14px; + height: 14px; + top: 3px; + &-empty { + i { + font-size: 14px; + } + } + } + + &-picker { + &-wrapper { + padding: 8px 8px 0; + } + &-panel { + width: 240px; + margin: 0 auto; + box-sizing: initial; + position: relative; + } + &-hue-slider, + &-alpha-slider { + height: 10px; + margin-top: 8px; + position: relative; + } + &-colors { + margin-top: 8px; + overflow: hidden; + border-radius: 2px; + transition: border @transition-time @ease-in-out, box-shadow @transition-time @ease-in-out; + &:focus { + .active(); + } + &-wrapper { + display: inline; + width: 20px; + height: 20px; + float: left; + position: relative; + &-color { + outline: 0; + display: block; + position: absolute; + width: 16px; + height: 16px; + margin: 2px; + cursor: pointer; + border-radius: 2px; + box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.15); + } + &-circle { + .circle-dot(); + position: absolute; + top: 10px; + left: 10px; + cursor: pointer; + } + } + } + .@{picker-prefix-cls}-confirm { + margin-top: 8px; + } + } + + &-saturation { + &-wrapper { + width: 100%; + padding-bottom: 75%; + position: relative; + //overflow: hidden; + transition: border @transition-time @ease-in-out, box-shadow @transition-time @ease-in-out; + + &:focus { + .active(); + } + } + &, + &--white, + &--black { + cursor: pointer; + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + } + &--white { + background: linear-gradient(to right, #fff, rgba(255, 255, 255, 0)); + } + &--black { + background: linear-gradient(to top, #000, rgba(0, 0, 0, 0)); + } + &-pointer { + cursor: pointer; + position: absolute; + } + &-circle { + .circle-dot(); + } + } + + &-hue { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + border-radius: 2px; + background: linear-gradient(to right, #f00 0%, #ff0 17%, #0f0 33%, #0ff 50%, #00f 67%, #f0f 83%, #f00 100%); + + transition: border @transition-time @ease-in-out, box-shadow @transition-time @ease-in-out; + + &:focus { + .active(); + } + &-container { + cursor: pointer; + margin: 0 2px; + position: relative; + height: 100%; + } + &-pointer { + z-index: 2; + position: absolute; + } + &-picker { + cursor: pointer; + margin-top: 1px; + width: 4px; + border-radius: 1px; + height: 8px; + box-shadow: 0 0 2px rgba(0, 0, 0, 0.6); + background: #fff; + transform: translateX(-2px); + } + } + + &-alpha { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + border-radius: 2px; + + transition: border @transition-time @ease-in-out, box-shadow @transition-time @ease-in-out; + + &:focus { + .active(); + } + &-checkboard-wrap { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + overflow: hidden; + border-radius: 2px; + } + &-checkerboard { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==); + } + &-gradient { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + border-radius: 2px; + } + &-container { + cursor: pointer; + position: relative; + z-index: 2; + height: 100%; + margin: 0 3px; + } + &-pointer { + z-index: 2; + position: absolute; + } + &-picker { + cursor: pointer; + width: 4px; + border-radius: 1px; + height: 8px; + box-shadow: 0 0 2px rgba(0, 0, 0, 0.6); + background: #fff; + margin-top: 1px; + transform: translateX(-2px); + } + } + + &-confirm { + margin-top: 8px; + position: relative; + border-top: 1px solid @border-color-split; + text-align: right; + padding: 8px; + clear: both; + &-color { + position: absolute; + top: 11px; + left: 8px; + + &-editable{ + top: 8px; + right: 110px; + } + } + &-btn{ + &-cancel{ + margin-right: 4px; + } + } + } +} diff --git a/src/styles/components/date-picker.less b/src/styles/components/date-picker.less new file mode 100644 index 0000000000000000000000000000000000000000..2fd15856bad5e22bb5d2e4e7e8c5e67ec2b04dd3 --- /dev/null +++ b/src/styles/components/date-picker.less @@ -0,0 +1,325 @@ +@date-picker-prefix-cls: ~"@{css-prefix}date-picker"; +@picker-prefix-cls: ~"@{css-prefix}picker"; + +@date-picker-cells-width: 196px; +@date-picker-cells-width-with-weeknumbers: 226px; + +.@{date-picker-prefix-cls} { + //position: relative; + display: inline-block; + line-height: normal; + &-rel{ + position: relative; + } + .@{select-dropdown-prefix-cls} { + width: auto; + padding: 0; + overflow: visible; + max-height: none; + } + &-cells{ + width: @date-picker-cells-width; + margin: 10px; + white-space: normal; + span{ + display: inline-block; + width: 24px; + height: 24px; + + em{ + display: inline-block; + width: 24px; + height: 24px; + line-height: 24px; + margin: 2px; + font-style: normal; + border-radius: @btn-border-radius-small; + text-align: center; + transition: all @transition-time @ease-in-out; + } + } + &-header span{ + line-height: 24px; + text-align: center; + margin: 2px; + color: @btn-disable-color; + } + &-cell:hover{ + em{ + background: @date-picker-cell-hover-bg; + } + } + &-focused{ + em{ + box-shadow: 0 0 0 1px @primary-color inset; + } + } + + &-cell{ + span&{ + width: 28px; + height: 28px; + cursor: pointer; + } + &-prev-month,&-next-month{ + em{ + color: @btn-disable-color; + } + &:hover{ + em{ + background: transparent; + } + } + } + span&-week-label,span&-week-label:hover,span&-disabled,span&-disabled:hover{ + cursor: @cursor-disabled; + color: @btn-disable-color; + em{ + color: inherit; + background: inherit; + } + } + span&-disabled,span&-disabled:hover{ + background: @btn-disable-bg; + } + &-today{ + em { + position: relative; + &:after{ + content: ''; + display: block; + width: 6px; + height: 6px; + border-radius: 50%; + background: @primary-color; + position: absolute; + top: 1px; + right: 1px; + } + } + } + &-range{ + position: relative; + em{ + position: relative; + z-index: 1; + } + &:before{ + content: ''; + display: block; + background: @date-picker-cell-hover-bg; + border-radius: 0; + border: 0; + position: absolute; + top: 2px; + bottom: 2px; + left: 0; + right: 0; + } + } + &-selected,&-selected:hover + { + em{ + background: @primary-color; + color: #fff; + } + } + span&-disabled&-selected{ + em { + background: @btn-disable-color; + color: @btn-disable-bg; + } + } + &-today&-selected + { + em{ + &:after{ + background: #fff; + } + } + } + } + } + + &-cells-show-week-numbers { + width: @date-picker-cells-width-with-weeknumbers; + } + + &-cells-year,&-cells-month{ + margin-top: 14px; + span{ + width: 40px; + height: 28px; + line-height: 28px; + margin: 10px 12px; + border-radius: @btn-border-radius-small; + em{ + width: 40px; + height: 28px; + line-height: 28px; + margin: 0; + } + } + + .@{date-picker-prefix-cls}-cells-cell-focused{ + background-color: tint(@primary-color, 80%); + } + + } + + &-header{ + height: 32px; + line-height: 32px; + text-align: center; + border-bottom: 1px solid @border-color-split; + &-label{ + cursor: pointer; + transition: color @transition-time @ease-in-out; + &:hover{ + color: @primary-color; + } + } + } + &-btn-pulse{ + background-color: tint(@primary-color, 80%) !important; + border-radius: @border-radius-small; + transition: background-color @transition-time @ease-in-out; + } + &-prev-btn{ + float: left; + &-arrow-double{ + margin-left: 10px; + i:after{ + content: "\F115"; + margin-left: -8px; + } + } + } + &-next-btn{ + float: right; + &-arrow-double{ + margin-right: 10px; + i:after{ + content: "\F11F"; + margin-left: -8px; + } + } + } + + &-with-range{ + .@{picker-prefix-cls}-panel{ + &-body{ + min-width: (@date-picker-cells-width + 20) * 2; + } + &-content{ + float: left; + } + } + .@{picker-prefix-cls}-cells-show-week-numbers { + min-width: (@date-picker-cells-width-with-weeknumbers + 20) * 2; + } + + } + + &-with-week-numbers{ + .@{picker-prefix-cls}-panel{ + &-body-date { + min-width: (@date-picker-cells-width-with-weeknumbers + 20) * 2; + } + } + } + + &-transfer{ + z-index: @zindex-transfer; + max-height: none; + width: auto; + } + + &-focused input:not([disabled]){ + .active(); + } +} + +.@{picker-prefix-cls} { + &-panel{ + &-icon-btn{ + display: inline-block; + width: 20px; + height: 24px; + line-height: 26px; + margin-top: 2px; + text-align: center; + cursor: pointer; + color: @btn-disable-color; + transition: color @transition-time @ease-in-out; + &:hover{ + color: @primary-color; + } + i{ + font-size: 14px; + } + } + + &-body-wrapper&-with-sidebar{ + padding-left: 92px; + } + &-sidebar{ + width: 92px; + float: left; + margin-left: -92px; + position: absolute; + top: 0; + bottom: 0; + background: @table-thead-bg; + border-right: 1px solid @border-color-split; + border-radius: @border-radius-small 0 0 @border-radius-small; + overflow: auto; + } + &-shortcut{ + padding: 6px @padding-md; + transition: all @transition-time @ease-in-out; + cursor: pointer; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + + &:hover{ + background: @border-color-split; + } + } + &-body{ + float: left; + } + } + + &-confirm{ + border-top: 1px solid @border-color-split; + text-align: right; + padding: 8px; + clear: both; + & > span{ + color: @link-color; + cursor: pointer; + user-select: none; + float: left; + padding: 2px 0; + transition: all @transition-time @ease-in-out; + &:hover{ + color: @link-hover-color; + } + &:active{ + color: @link-active-color; + } + } + + &-time{ + float: left; + } + + &-btn{ + &-cancel{ + margin-right: 4px; + } + } + } +} diff --git a/src/styles/components/description-list.less b/src/styles/components/description-list.less new file mode 100644 index 0000000000000000000000000000000000000000..aae80e19a599dc322bbb69e57ef4db17c7426f7e --- /dev/null +++ b/src/styles/components/description-list.less @@ -0,0 +1,37 @@ +.ivu-description{ + &-list{ + &-title{ + margin-bottom: 16px; + color: @title-color; + font-weight: 500; + font-size: 14px; + } + } + + &-term{ + display: table-cell; + padding-bottom: 16px; + color: @title-color; + // Line-height is 22px IE dom height will calculate error + line-height: 20px; + white-space: nowrap; + } + + &-detail{ + display: table-cell; + width: 100%; + padding-bottom: 16px; + color: @text-color; + line-height: 20px; + } + + &-list-vertical{ + .ivu-description-term{ + display: block; + padding-bottom: 8px; + } + .ivu-description-detail{ + display: block; + } + } +} \ No newline at end of file diff --git a/src/styles/components/divider.less b/src/styles/components/divider.less new file mode 100644 index 0000000000000000000000000000000000000000..f3642d1bfb07f61771ff729f3a1289fe5bf303b6 --- /dev/null +++ b/src/styles/components/divider.less @@ -0,0 +1,109 @@ +@divider-prefix-cls: ~"@{css-prefix}divider"; + +.@{divider-prefix-cls} { + .reset-component; + background: @border-color-split; + + &, // for compatiable + &-vertical { + margin: 0 8px; + display: inline-block; + height: 0.9em; + width: 1px; + vertical-align: middle; + position: relative; + top: -0.06em; + } + &-horizontal { + display: block; + height: 1px; + width: 100%; + min-width: 100%; + margin: 24px 0; + clear: both; + } + &-horizontal&-with-text-center, + &-horizontal&-with-text-left, + &-horizontal&-with-text-right { + display: table; + white-space: nowrap; + text-align: center; + background: transparent; + font-weight: 500; + color: @title-color; + font-size: @font-size-large; + margin: 16px 0; + &:before, + &:after { + content: ''; + display: table-cell; + // Chrome 91 #913 + //position: relative; + top: 50%; + width: 50%; + border-top: 1px solid @border-color-split; + transform: translateY(50%); + } + } + + &-horizontal&-small&-with-text-center, + &-horizontal&-small&-with-text-left, + &-horizontal&-small&-with-text-right{ + font-size: @font-size-base; + margin: 8px 0; + } + + &-horizontal&-with-text-left, + &-horizontal&-with-text-right { + .@{divider-prefix-cls}-inner-text { + display: inline-block; + padding: 0 10px; + } + } + + &-horizontal&-with-text-left { + &:before { + top: 50%; + width: 5%; + } + &:after { + top: 50%; + width: 95%; + } + } + + &-horizontal&-with-text-right { + &:before { + top: 50%; + width: 95%; + } + &:after { + top: 50%; + width: 5%; + } + } + + &-inner-text { + display: inline-block; + padding: 0 24px; + } + + &-dashed { + background: none; + border-top: 1px dashed @border-color-split; + } + &-horizontal&-with-text&-dashed, + &-horizontal&-with-text-left&-dashed, + &-horizontal&-with-text-right&-dashed { + border-top: 0; + &:before, + &:after { + border-style: dashed none none; + } + } + &-plain&-with-text, &-plain&-with-text-left, &-plain&-with-text-right { + color: @text-color; + font-weight: normal; + font-size: @font-size-base; + } +} diff --git a/src/styles/components/drawer.less b/src/styles/components/drawer.less new file mode 100644 index 0000000000000000000000000000000000000000..2e20b836485d6b064a5a7742148b958a76296d1c --- /dev/null +++ b/src/styles/components/drawer.less @@ -0,0 +1,178 @@ +@drawer-prefix-cls: ~"@{css-prefix}drawer"; + +.@{drawer-prefix-cls} { + width: auto; + height: 100%; + position: fixed; + top: 0; + + &-inner{ + position: absolute; + } + + &-left{ + left: 0; + } + &-right{ + right: 0; + } + &-top, &-bottom{ + width: 100%; + height: auto; + top: auto; + } + &-bottom{ + bottom: 0; + } + + &-hidden { + display: none !important; + } + + &-wrap { + position: fixed; + overflow: auto; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: @zindex-drawer; + -webkit-overflow-scrolling: touch; + outline: 0; + + &-inner{ + position: absolute; + overflow: hidden; + } + + &-dragging{ + user-select: none; + } + } + + &-wrap * { + box-sizing: border-box; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); + } + + &-mask { + .mask; + &-inner{ + position: absolute; + } + } + + &-content { + width: 100%; + height: 100%; + position: absolute; + top: 0; + bottom: 0; + background-color: #fff; + border: 0; + background-clip: padding-box; + box-shadow: 0 4px 12px rgba(0,0,0,.15); + + &-no-mask{ + pointer-events: auto; + } + } + + &-header { + .content-header; + } + + &-close { + z-index: 1; + .content-close(1px, 31px); + } + + &-body { + width: 100%; + height: calc(~'100% - 51px'); + padding: 16px; + font-size: @font-size-base; + line-height: 1.5; + word-wrap: break-word; + position: absolute; + overflow: auto; + } + + &-no-header &-body{ + height: 100%; + } + + &-no-mask{ + pointer-events: none; + + .@{drawer-prefix-cls}-drag{ + pointer-events: auto; + } + } + + &-drag{ + top: 0; + height: 100%; + width: 0; + position: absolute; + &-left{ + right: 0; + } + &-top, &-bottom{ + top: auto; + width: 100%; + height: 0; + } + &-top{ + bottom: 0; + } + &-bottom{ + top: 0; + } + &-move-trigger{ + width: 8px; + height: 100px; + line-height: 100px; + position: absolute; + top: 50%; + background: rgb(243, 243, 243); + transform: translate(-50%, -50%); + border-radius: 4px; + box-shadow: 0 0 1px 1px rgba(0, 0, 0, .2); + cursor: col-resize; + &-point{ + display: inline-block; + width: 50%; + transform: translateX(50%); + i{ + display: block; + border-bottom: 1px solid rgb(192, 192, 192); + padding-bottom: 2px; + } + } + } + &-top &-move-trigger, &-bottom &-move-trigger{ + width: 100px; + height: 8px; + line-height: 8px; + top: auto; + left: 50%; + cursor: row-resize; + &-point{ + width: 100%; + height: 50%; + transform: translateY(-75%); + text-align: center; + i{ + display: inline-block; + border-bottom: inherit; + width: 1px; + height: 100%; + border-left: 1px solid rgb(192, 192, 192); + padding-bottom: inherit; + margin-left: 2px; + } + } + } + } +} diff --git a/src/styles/components/dropdown.less b/src/styles/components/dropdown.less new file mode 100644 index 0000000000000000000000000000000000000000..c157a65ddf90390269c7389a132312a99c26e58f --- /dev/null +++ b/src/styles/components/dropdown.less @@ -0,0 +1,38 @@ +@dropdown-prefix-cls: ~"@{css-prefix}dropdown"; +@dropdown-item-prefix-cls: ~"@{dropdown-prefix-cls}-item"; + +.@{dropdown-prefix-cls} { + display: inline-block; + //position: relative; + + .@{select-dropdown-prefix-cls} { + overflow: visible; + max-height: none; + } + .@{dropdown-prefix-cls} { + width: 100%; + } + + &-rel{ + //display: inline-block; + position: relative; + &-user-select-none{ + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; + } + } + + &-menu{ + min-width: 100px; + } + + &-transfer{ + width: auto; + } + &-item-selected, &-item&-item-selected:hover{ + background: ~`colorPalette("@{primary-color}", 1)`; + } +} + +.select-item(@dropdown-prefix-cls, @dropdown-item-prefix-cls); \ No newline at end of file diff --git a/src/styles/components/ellipsis.less b/src/styles/components/ellipsis.less new file mode 100644 index 0000000000000000000000000000000000000000..b7194655e76dc2770f12894c44438849eca7814a --- /dev/null +++ b/src/styles/components/ellipsis.less @@ -0,0 +1,5 @@ +.ivu-ellipsis{ + &-hidden{ + visibility: hidden; + } +} \ No newline at end of file diff --git a/src/styles/components/exception.less b/src/styles/components/exception.less new file mode 100644 index 0000000000000000000000000000000000000000..be93d7e52b7365af2dee795091c07955d852bd2a --- /dev/null +++ b/src/styles/components/exception.less @@ -0,0 +1,87 @@ +.ivu-exception{ + display: flex; + align-items: center; + height: 80%; + min-height: 500px; + + &-img{ + flex: 0 0 62.5%; + width: 62.5%; + padding-right: 152px; + zoom: 1; + &::before, + &::after { + content: ' '; + display: table; + } + &::after { + clear: both; + height: 0; + font-size: 0; + visibility: hidden; + } + + &-element { + float: right; + width: 100%; + max-width: 430px; + height: 360px; + background-repeat: no-repeat; + background-position: 50% 50%; + background-size: contain; + } + } + + &-content{ + flex: auto; + + h1 { + margin-bottom: 24px; + color: @text-color; + font-weight: 600; + font-size: 72px; + line-height: 72px; + } + + &-desc { + margin-bottom: 16px; + color: @subsidiary-color; + font-size: 20px; + line-height: 28px; + } + + &-actions { + button:not(:last-child) { + margin-right: 8px; + } + } + } +} + +@media screen and (max-width: @screen-md) { + .ivu-exception { + &-img { + padding-right: 88px; + } + } +} + +@media screen and (max-width: @screen-sm) { + .ivu-exception { + display: block; + text-align: center; + &-img { + margin: 0 auto 24px; + padding-right: 0; + } + } +} + +@media screen and (max-width: @screen-xs) { + .ivu-exception { + &-img { + margin-bottom: -24px; + overflow: hidden; + } + } +} \ No newline at end of file diff --git a/src/styles/components/footer-toolbar.less b/src/styles/components/footer-toolbar.less new file mode 100644 index 0000000000000000000000000000000000000000..e8f6da42c6b5825e51aae1ea1815c7a0cc39d287 --- /dev/null +++ b/src/styles/components/footer-toolbar.less @@ -0,0 +1,31 @@ +.ivu-footer-toolbar{ + position: fixed; + right: 0; + bottom: 0; + z-index: 9; + width: 100%; + height: 56px; + padding: 0 24px; + line-height: 56px; + background: #fff; + border-top: 1px solid @border-color-split; + box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.03); + + &::after{ + display: block; + clear: both; + content: ''; + } + + &-left{ + float: left; + } + + &-right{ + float: right; + } + + button + button{ + margin-left: 8px; + } +} \ No newline at end of file diff --git a/src/styles/components/form.less b/src/styles/components/form.less new file mode 100644 index 0000000000000000000000000000000000000000..f4459549f69e4fda8e6a96b47f8f9353f6c1da08 --- /dev/null +++ b/src/styles/components/form.less @@ -0,0 +1,77 @@ +@form-prefix-cls: ~"@{css-prefix}form"; +@form-item-prefix-cls: ~"@{form-prefix-cls}-item"; + +.@{form-prefix-cls} { + .@{form-item-prefix-cls}-label { + text-align: right; + vertical-align: middle; + float: left; + font-size: @font-size-base; + color: @text-color; + line-height: 1; + padding: 10px 12px 10px 0; + box-sizing: border-box; + } + &-label-left .@{form-item-prefix-cls}-label { + text-align: left; + } + &-label-top .@{form-item-prefix-cls}-label { + float: none; + display: inline-block; + padding: 0 0 10px 0; + } + &-inline{ + .@{form-item-prefix-cls} { + display: inline-block; + margin-right: 10px; + vertical-align: top; + } + } +} + +.@{form-item-prefix-cls} { + margin-bottom: 24px; + vertical-align: top; + .clearfix(); + &-content { + position: relative; + line-height: 32px; + font-size: @font-size-base; + } + & & { + margin-bottom: 0; + } + & & &-content { + margin-left: 0!important; + } + + &-error-tip{ + position: absolute; + top: 100%; + left: 0; + line-height: 1; + padding-top: 6px; + color: @error-color; + } + + &-required { + .@{form-item-prefix-cls}-label:before { + content: '*'; + display: inline-block; + margin-right: 4px; + line-height: 1; + font-family: SimSun; + font-size: @font-size-base; + color: @error-color; + } + } + &-error { + // todo + } +} + +.@{form-prefix-cls}-hide-required-mark .@{form-item-prefix-cls}-required{ + .@{form-item-prefix-cls}-label:before { + display: none; + } +} diff --git a/src/styles/components/global-footer.less b/src/styles/components/global-footer.less new file mode 100644 index 0000000000000000000000000000000000000000..55af194d31300a8403f326fe7bca34a7b6d6e476 --- /dev/null +++ b/src/styles/components/global-footer.less @@ -0,0 +1,28 @@ +.ivu-global-footer{ + margin: 48px 0 24px 0; + padding: 0 16px; + text-align: center; + + &-links{ + margin-bottom: 8px; + + a { + font-size: @font-size-base; + color: @subsidiary-color; + transition: all @transition-time @ease-in-out; + + &:not(:last-child) { + margin-right: 40px; + } + + &:hover { + color: @text-color; + } + } + } + + &-copyright{ + color: @subsidiary-color; + font-size: @font-size-base; + } +} \ No newline at end of file diff --git a/src/styles/components/grid.less b/src/styles/components/grid.less new file mode 100644 index 0000000000000000000000000000000000000000..35e829ee530a91a642a6037dffe43222c5926249 --- /dev/null +++ b/src/styles/components/grid.less @@ -0,0 +1,48 @@ +.ivu-grid{ + &:after{ + content: ''; + display: block; + clear: both; + } + &-item{ + position: relative; + float: left; + width: 33.33%; + box-sizing: border-box; + border: 0; + border-radius: 0; + + transition: box-shadow @transition-time @ease-in-out; + + &-main{ + padding: 24px; + } + } + + &-border{ + .ivu-grid-item{ + box-shadow: 1px 0 0 0 @border-color-split, 0 1px 0 0 @border-color-split, + 1px 1px 0 0 @border-color-split, 1px 0 0 0 @border-color-split inset, + 0 1px 0 0 @border-color-split inset; + } + } + + &-hover{ + .ivu-grid-item{ + &:hover { + z-index: 1; + box-shadow: @shadow-base; + } + } + } + + &-center{ + .ivu-grid-item-main{ + width: 100%; + position: absolute; + top: 50%; + transform: translate(0, -50%); + text-align: center; + } + } +} diff --git a/src/styles/components/image-preview.less b/src/styles/components/image-preview.less new file mode 100644 index 0000000000000000000000000000000000000000..cd14445f5f1500fe076f3bf9416f15b82bd7e981 --- /dev/null +++ b/src/styles/components/image-preview.less @@ -0,0 +1,113 @@ +@image-preview-prefix-cls: ~"@{css-prefix}image-preview"; + +.@{image-preview-prefix-cls} { + height: 100%; + position: relative; + display: flex; + justify-content: center; + align-items: center; + &-mask { + .mask; + } + &-wrap { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: @zindex-modal; + user-select: none; + overflow: hidden; + } + &-transition { + transition: transform .3s ease; + } + &-image { + cursor: grab; + } + &-grabbing { + cursor: grabbing; + } + &-limit { + max-width: 100%; + max-height: 100%; + } + &-loading, &-fail { + position: absolute; + z-index: 1; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + } + &-fail { + color: @white; + font-size: @font-size-large; + } + &-hidden { + display: none; + } + &-operations { + height: 40px; + position: absolute; + left: 50%; + bottom: 30px; + z-index: 1; + border-radius: @border-radius-small; + overflow: hidden; + background: @image-preview-operations-background; + transform: translate(-50%); + &-item { + margin: 0 6px; + padding: 4px 8px; + width: 36px; + height: 40px; + color: @white; + cursor: pointer; + transition: opacity .1s @ease-in-out; + &:hover { + opacity: @image-preview-operations-hover; + } + } + &-wait { + cursor: wait; + } + } + &-arrow-left, + &-arrow-right, + &-arrow-close { + width: 40px; + height: 40px; + line-height: 40px; + border-radius: 50%; + color: @white; + cursor: pointer; + z-index: 1; + font-size: @image-preview-operations-fontsize; + background: @image-preview-operations-background; + //transition: opacity .1s @ease-in-out; + //&:not(.@{image-preview-prefix-cls}-arrow-disabled):hover { + // opacity: @image-preview-operations-hover; + //} + } + &-arrow-close { + position: absolute; + right: 16px; + top: 16px; + } + &-arrow-left, + &-arrow-right { + position: absolute; + top: 50%; + transform: translateY(-50%); + } + &-arrow-left { + left: 16px; + } + &-arrow-right { + right: 16px; + } + &-arrow-disabled { + cursor: @cursor-disabled; + color: @image-preview-operations-disabled-color; + } +} diff --git a/src/styles/components/image.less b/src/styles/components/image.less new file mode 100644 index 0000000000000000000000000000000000000000..3c95ce3358c60e173a685f644ebb6e5868331612 --- /dev/null +++ b/src/styles/components/image.less @@ -0,0 +1,54 @@ +@image-prefix-cls: ~"@{css-prefix}image"; + +.@{image-prefix-cls} { + display: inline-block; + position: relative; + &-img, + &-error, + &-placeholder, + &-mark, + &-inner{ + width: 100%; + height: 100%; + } + &-inner { + position: relative; + } + &-img { + vertical-align: middle; + } + &-img-hidden{ + visibility: hidden; + } + &-cursor { + cursor: pointer; + } + &-error, + &-placeholder, + &-mark { + display: flex; + align-items: center; + justify-content: center; + position: absolute; + left: 0; + top: 0; + right: 0; + bottom: 0; + } + &-mark { + background-color: rgba(0, 0, 0, .3); + z-index: 1; + color: #FFF; + cursor: pointer; + cursor: pointer; + opacity: 0; + transition: opacity .3s; + } + &-inner:hover { + .@{image-prefix-cls} { + &-mark { + opacity: 1; + } + } + } +} \ No newline at end of file diff --git a/src/styles/components/index.less b/src/styles/components/index.less new file mode 100644 index 0000000000000000000000000000000000000000..6210959d03c7a57cf07812b67de970e55da8d44a --- /dev/null +++ b/src/styles/components/index.less @@ -0,0 +1,78 @@ +@import "button"; +@import "affix"; +@import "back-top"; +@import "badge"; +@import "circle"; +@import "spin"; +@import "alert"; +@import "collapse"; +@import "card"; +@import "message"; +@import "notice"; +@import "radio"; +@import "checkbox"; +@import "switch"; +@import "input-number"; +@import "scroll"; +@import "tag"; +@import "layout"; +@import "loading-bar"; +@import "progress"; +@import "timeline"; +@import "page"; +@import "steps"; +@import "modal"; +@import "select"; +@import "select-dropdown"; +@import "split"; +@import "tooltip"; +@import "poptip"; +@import "input"; +@import "slider"; +@import "skeleton"; +@import "cascader"; +@import "transfer"; +@import "table"; +@import "dropdown"; +@import "tabs"; +@import "menu"; +@import "date-picker"; +@import "time-picker"; +@import "form"; +@import "carousel"; +@import "rate"; +@import "upload"; +@import "tree"; +@import "avatar"; +@import "color-picker"; +@import "auto-complete"; +@import "divider"; +@import "anchor"; +@import "time"; +@import "cell"; +@import "drawer"; +@import "breadcrumb"; +@import "list"; +@import "image"; +@import "image-preview"; +@import "typography"; +@import "space"; + +@import "auth"; +@import "avatar-list"; +@import "calendar"; +@import "city"; +@import "description-list"; +@import "ellipsis"; +@import "exception"; +@import "footer-toolbar"; +@import "global-footer"; +@import "grid"; +@import "notification"; +@import "number-info"; +@import "page-header"; +@import "result"; +@import "tag-select"; +@import "tree-select"; +@import "trend"; +@import "word-count"; diff --git a/src/styles/components/input-number.less b/src/styles/components/input-number.less new file mode 100644 index 0000000000000000000000000000000000000000..3b5d8f5f568ce3b56999d52a9258227582757903 --- /dev/null +++ b/src/styles/components/input-number.less @@ -0,0 +1,272 @@ +@input-number-prefix-cls: ~"@{css-prefix}input-number"; + +.handler-disabled() { + opacity: 0.72; + color: #ccc !important; + cursor: @cursor-disabled; +} + +.@{input-number-prefix-cls} { + @radius-wrap: 0 @btn-border-radius @btn-border-radius 0; + + .input; + margin: 0; + padding: 0; + width: 80px; + height: @input-height-base; + line-height: @input-height-base; + vertical-align: middle; + border: 1px solid @border-color-base; + border-radius: @btn-border-radius; + overflow: hidden; + cursor: default; + + &-handler-wrap { + width: 22px; + height: 100%; + border-left: 1px solid @border-color-base; + border-radius: @radius-wrap; + background: #fff; + position: absolute; + top: 0; + right: 0; + opacity: 0; + transition: opacity @transition-time @ease-in-out; + } + + &:hover &-handler-wrap { + opacity: 1; + } + + &-handler-up { + cursor: pointer; + &-inner { + top: 1px; + } + } + + &-handler-down { + border-top: 1px solid @border-color-base; + top: -1px; + cursor: pointer; + } + + &-handler { + display: block; + width: 100%; + height: @input-height-base / 2; + line-height: 0; + text-align: center; + overflow: hidden; + color: #999; + position: relative; + + &:hover &-up-inner, + &:hover &-down-inner { + color: tint(@primary-color, 20%); + } + } + + &-handler-up-inner, + &-handler-down-inner { + width: 12px; + height: 12px; + line-height: 12px; + font-size: 14px; + color: #999; + user-select: none; + position: absolute; + right: 5px; + transition: all @transition-time linear; + } + + &:hover { + .hover(); + } + + &-focused { + .active(); + } + + &-disabled { + .disabled(); + } + + &-input-wrap { + overflow: hidden; + height: @input-height-base; + } + + &-input { + width: 100%; + height: @input-height-base; + line-height: @input-height-base; + padding: 0 7px; + text-align: left; + outline: 0; + -moz-appearance: textfield; + color: #666; + border: 0; + border-radius: @btn-border-radius; + transition: all @transition-time linear; + + &[disabled] { + .disabled(); + } + + &::placeholder { + color: @input-placeholder-color; + } + } + + &-large { + padding: 0; + .@{input-number-prefix-cls}-input-wrap { + height: @input-height-large; + } + .@{input-number-prefix-cls}-handler { + height: @input-height-large / 2; + } + + input { + height: @input-height-large; + line-height: @input-height-large; + } + + .@{input-number-prefix-cls}-handler-up-inner { + top: 2px; + } + .@{input-number-prefix-cls}-handler-down-inner { + bottom: 2px; + } + } + + &-small { + padding: 0; + .@{input-number-prefix-cls}-input-wrap { + height: @input-height-small; + } + .@{input-number-prefix-cls}-handler { + height: @input-height-small / 2; + } + + input { + height: @input-height-small; + line-height: @input-height-small; + margin-top: -1px; + vertical-align: top; + } + .@{input-number-prefix-cls}-handler-up-inner { + top: -1px; + } + .@{input-number-prefix-cls}-handler-down-inner { + bottom: -1px; + } + } + + + + &-handler-down-disabled, + &-handler-up-disabled, + &-disabled { + .@{input-number-prefix-cls}-handler-down-inner, + .@{input-number-prefix-cls}-handler-up-inner { + .handler-disabled(); + } + } + + &-disabled { + .@{input-number-prefix-cls}-input { + opacity: 0.72; + cursor: @cursor-disabled; + background-color: #f3f3f3; + } + .@{input-number-prefix-cls}-handler-wrap { + display: none; + } + .@{input-number-prefix-cls}-handler { + .handler-disabled(); + } + } + + &-controls-outside{ + width: 80px + 32px * 2; + padding: 0 32px; + .@{input-number-prefix-cls}-input{ + border-radius: 0; + } + &-btn{ + display: inline-block; + width: 32px; + height: 32px; + line-height: 30px; + position: absolute; + top: 0; + text-align: center; + background-color: @input-group-bg; + color: @input-color; + cursor: pointer; + i{ + font-size: 16px; + } + &:hover i{ + color: @primary-color; + } + &-disabled, &-disabled:hover{ + cursor: @cursor-disabled; + i{ + color: #ccc; + } + } + } + &-up{ + right: 0; + border-left: 1px solid @input-border-color; + } + &-down{ + left: 0; + border-right: 1px solid @input-border-color; + } + } + &-disabled&-controls-outside{ + .@{input-number-prefix-cls}-controls-outside-btn{ + cursor: @cursor-disabled; + i{ + color: #ccc; + } + } + } + &-large&-controls-outside{ + width: 80px + 40px *2; + padding: 0 40px; + .@{input-number-prefix-cls}-controls-outside-btn{ + width: 40px; + height: 40px; + line-height: 38px; + i{ + font-size: 20px; + } + } + } + &-small&-controls-outside{ + width: 80px + 24px *2; + padding: 0 24px; + .@{input-number-prefix-cls}-controls-outside-btn{ + width: 24px; + height: 24px; + line-height: 22px; + i{ + font-size: 14px; + } + } + } +} + +.@{form-item-prefix-cls}-error { + .@{input-number-prefix-cls}{ + .input-error; + &-focused { + .active-error; + } + } +} diff --git a/src/styles/components/input.less b/src/styles/components/input.less new file mode 100644 index 0000000000000000000000000000000000000000..70ab7ae4d88ecf682bd148538143b45b734dbd55 --- /dev/null +++ b/src/styles/components/input.less @@ -0,0 +1,223 @@ +@input-prefix-cls: ~"@{css-prefix}input"; + +.@{input-prefix-cls} { + .input; + &-wrapper{ + display: inline-block; + width: 100%; + position: relative; + vertical-align: middle; + + // #2149 & #2219 + line-height: normal; + } + &-icon { + width: 32px; + height: @input-height-base; + line-height: @input-height-base; + font-size: 16px; + text-align: center; + color: @subsidiary-color; + position: absolute; + right: 0; + z-index: 3; + } + &-hide-icon &-icon{ + display: none; + } + &-icon-validate{ + display: none; + } + + &-icon-clear{ + display: none; + } + + &-wrapper:hover{ + .@{input-prefix-cls}-icon-clear{ + display: inline-block; + } + } + + &-icon-normal + &{ + padding-right: 32px; + } + // #554 + &-hide-icon &-icon-normal + &{ + padding-right: @input-padding-horizontal; + } + + &-wrapper-large &-icon{ + font-size: 18px; + height: @input-height-large; + line-height: @input-height-large; + } + &-wrapper-small &-icon{ + width: 24px; + font-size: 14px; + height: @input-height-small; + line-height: @input-height-small; + + //+ .@{input-prefix-cls} { + // padding-right: 24px; + //} + } + + // prefix & suffix + &-prefix, &-suffix{ + width: 32px; + height: 100%; + text-align: center; + position: absolute; + left: 0; + top: 0; + z-index: 1; + i{ + font-size: 16px; + line-height: @input-height-base; + color: @subsidiary-color; + } + } + &-suffix{ + left: auto; + right: 0; + } + &-wrapper-small &-prefix, &-wrapper-small &-suffix{ + i{ + font-size: 14px; + line-height: @input-height-small; + } + } + &-wrapper-large &-prefix, &-wrapper-large &-suffix{ + i{ + font-size: 18px; + line-height: @input-height-large; + } + } + + &-with-prefix{ + padding-left: 32px; + } + &-with-suffix{ + padding-right: 32px; + } + + // search + &-search{ + cursor: pointer; + padding: 0 16px !important; + background: @primary-color !important; + color: #fff !important; + border-color: @primary-color !important; + transition: all @transition-time @ease-in-out; + position: relative; + z-index: 2; + + i{ + font-size: 16px; + } + + &:hover{ + background: tint(@primary-color, 20%) !important; + border-color: tint(@primary-color, 20%) !important; + } + &:active{ + background: shade(@primary-color, 5%) !important; + border-color: shade(@primary-color, 5%) !important; + } + + &-icon{ + cursor: pointer; + transition: color @transition-time @ease-in-out; + &:hover{ + color: inherit; + } + } + + &:before{ + content: ''; + display: block; + width: 1px; + position: absolute; + top: -1px; + bottom: -1px; + left: -1px; + background: inherit; + } + } + &-wrapper-small &-search{ + padding: 0 12px !important; + i{ + font-size: 14px; + } + } + &-wrapper-large &-search{ + padding: 0 20px !important; + i{ + font-size: 18px; + } + } + &-with-search{ + &:hover{ + .@{input-prefix-cls} { + border-color: tint(@primary-color, 20%); + } + } + } + + &-word-count{ + text-align: center; + position: absolute; + right: @input-padding-horizontal; + top: 2px; + bottom: 2px; + padding-left: @input-padding-horizontal; + background: #fff; + z-index: 1; + display: inline-flex; + align-items: center; + color: @subsidiary-color; + font-size: @font-size-small; + } + &-wrapper-disabled &-word-count{ + background: @input-disabled-bg; + } + &-type-textarea &-word-count{ + align-items: flex-end; + top: auto; + } +} + +.@{input-prefix-cls}-group{ + .input-group(~"@{input-prefix-cls}"); +} + +.@{form-item-prefix-cls}-error{ + .@{input-prefix-cls}{ + .input-error; + &-icon{ + color: @error-color; + } + } + .@{input-prefix-cls}-group{ + .input-group-error; + } + .@{transfer-prefix-cls} { + .@{input-prefix-cls} { + .input; + &-icon{ + color: @subsidiary-color; + } + } + } +} +.@{form-item-prefix-cls}-validating{ + .@{input-prefix-cls}{ + &-icon-validate{ + display: inline-block; + } + &-icon + .@{input-prefix-cls}{ + padding-right: 32px; + } + } +} diff --git a/src/styles/components/layout.less b/src/styles/components/layout.less new file mode 100644 index 0000000000000000000000000000000000000000..ceced165b44acb0c3841700e83ca0f22e20bf894 --- /dev/null +++ b/src/styles/components/layout.less @@ -0,0 +1,113 @@ +@layout-prefix-cls: ~"@{css-prefix}layout"; + +.@{layout-prefix-cls} { + display: flex; + flex-direction: column; + flex: auto; + background: @layout-body-background; + + &&-has-sider { + flex-direction: row; + > .@{layout-prefix-cls}, + > .@{layout-prefix-cls}-content { + width: 0; + } + } + + &-header, + &-footer { + flex: 0 0 auto; + } + + &-header { + background: @layout-header-background; + padding: @layout-header-padding; + height: @layout-header-height; + line-height: @layout-header-height; + } + + &-sider { + transition: all .2s @ease-in-out; + position: relative; + background: @layout-sider-background; + + min-width: 0; + + &-children { + height: 100%; + padding-top: 0.1px; + margin-top: -0.1px; + } + + &-has-trigger { + padding-bottom: @layout-trigger-height; + } + + &-trigger { + position: fixed; + bottom: 0; + text-align: center; + cursor: pointer; + height: @layout-trigger-height; + line-height: @layout-trigger-height; + color: @layout-trigger-color; + background: @layout-sider-background; + z-index: 1000; + transition: all .2s @ease-in-out; + .ivu-icon { + font-size: 16px; + } + >* { + transition: all .2s; + } + &-collapsed { + .@{layout-prefix-cls}-sider-trigger-icon { + transform: rotateZ(180deg); + } + } + } + + &-zero-width { + & > * { + overflow: hidden; + } + + &-trigger { + position: absolute; + top: @layout-header-height; + right: -@layout-zero-trigger-width; + text-align: center; + width: @layout-zero-trigger-width; + height: @layout-zero-trigger-height; + line-height: @layout-zero-trigger-height; + background: @layout-sider-background; + color: #fff; + font-size: @layout-zero-trigger-width / 2; + border-radius: 0 @border-radius-base @border-radius-base 0; + cursor: pointer; + transition: background .3s ease; + + &:hover { + background: tint(@layout-sider-background, 10%); + } + + &&-left { + right: 0; + left: -@layout-zero-trigger-width; + border-radius: @border-radius-base 0 0 @border-radius-base; + } + } + } + } + + &-footer { + background: @layout-footer-background; + padding: @layout-footer-padding; + color: @text-color; + font-size: @font-size-base; + } + + &-content { + flex: auto; + } +} diff --git a/src/styles/components/list.less b/src/styles/components/list.less new file mode 100644 index 0000000000000000000000000000000000000000..4f9caa77b936716c8fc29b2a3bf5e0ae61eed6e9 --- /dev/null +++ b/src/styles/components/list.less @@ -0,0 +1,267 @@ +@list-prefix-cls: ~"@{css-prefix}list"; + +.@{list-prefix-cls} { + position: relative; + + &-items { + margin: 0; + padding: 0; + list-style: none; + } + + &-item{ + display: flex; + align-items: center; + padding: @list-item-padding; + + &-content { + color: @text-color; + } + + &-meta{ + display: flex; + flex: 1; + align-items: flex-start; + font-size: 0; + + &-avatar { + margin-right: @list-item-meta-avatar-margin-right; + } + &-content { + flex: 1 0; + } + &-title { + font-weight: 500; + margin-bottom: 4px; + color: @text-color; + font-size: @font-size-base; + line-height: 22px; + > a { + color: @text-color; + transition: all @transition-time; + &:hover { + color: @primary-color; + } + } + } + &-description { + color: @text-color-secondary; + font-size: @font-size-base; + line-height: 22px; + } + } + + &-action { + flex: 0 0 auto; + margin-left: 48px; + padding: 0; + font-size: 0; + list-style: none; + & > li { + position: relative; + display: inline-block; + padding: 0 8px; + color: @text-color-secondary; + font-size: @font-size-base; + line-height: 22px; + text-align: center; + cursor: pointer; + + &:after{ + content: ''; + position: absolute; + top: 50%; + right: 0; + width: 1px; + height: 14px; + margin-top: -7px; + background-color: @border-color-split; + } + } + & > li:first-child { + padding-left: 0; + } + & > li:last-child { + &:after{ + display: none; + } + } + &-split { + + } + } + } + + &-header { + background: @list-header-background; + } + + &-footer { + background: @list-footer-background; + } + + &-header, + &-footer { + padding-top: 12px; + padding-bottom: 12px; + } + + &-split &-item { + border-bottom: 1px solid @border-color-split; + &:last-child { + border-bottom: none; + } + } + + &-split &-header { + border-bottom: 1px solid @border-color-split; + } + &-split &-footer{ + border-top: 1px solid @border-color-split; + } + + &-large &-item { + padding-top: 16px; + padding-bottom: 16px; + } + + &-small &-item { + padding-top: 8px; + padding-bottom: 8px; + } + + &-vertical &-item { + align-items: initial; + + &-main { + display: block; + flex: 1; + } + + &-extra { + margin-left: 40px; + } + + &-meta { + margin-bottom: @list-item-meta-margin-bottom; + + &-title { + margin-bottom: @list-item-meta-title-margin-bottom; + color: @heading-color; + font-size: @font-size-large; + line-height: 24px; + } + } + + &-action { + margin-top: @padding-md; + margin-left: auto; + + > li { + padding: 0 16px; + &:first-child { + padding-left: 0; + } + } + } + } + + // without flex + &-item-no-flex { + display: block; + } + + // Horizontal + &:not(.@{list-prefix-cls}-vertical) { + .@{list-prefix-cls}-item-no-flex { + .@{list-prefix-cls}-item-action { + float: right; + } + } + } +} + +.@{list-prefix-cls}-bordered { + border: 1px solid @border-color-base; + border-radius: @border-radius-base; + .@{list-prefix-cls}-header { + padding-right: 24px; + padding-left: 24px; + } + + .@{list-prefix-cls}-footer { + padding-right: 24px; + padding-left: 24px; + } + + .@{list-prefix-cls}-item { + padding-right: 24px; + padding-left: 24px; + border-bottom: 1px solid @border-color-split; + } + + .@{list-prefix-cls}-pagination { + margin: 16px 24px; + } + + &.@{list-prefix-cls}-small { + .@{list-prefix-cls}-item { + padding-right: 16px; + padding-left: 16px; + } + .@{list-prefix-cls}-header, + .@{list-prefix-cls}-footer { + padding: 8px 16px; + } + } + + &.@{list-prefix-cls}-large { + .@{list-prefix-cls}-header, + .@{list-prefix-cls}-footer { + padding: 16px 24px; + } + } +} + +// responsive + +@media screen and (max-width: @screen-md) { + .@{list-prefix-cls} { + &-item { + &-action { + margin-left: 24px; + } + } + } + + .@{list-prefix-cls}-vertical { + .@{list-prefix-cls}-item { + &-extra { + margin-left: 24px; + } + } + } +} + +@media screen and (max-width: @screen-sm) { + .@{list-prefix-cls} { + &-item { + flex-wrap: wrap; + &-action { + margin-left: 12px; + } + } + } + + .@{list-prefix-cls}-vertical { + .@{list-prefix-cls}-item { + flex-wrap: wrap-reverse; + &-main { + min-width: 220px; + } + &-extra { + margin: auto auto 16px; + } + } + } +} diff --git a/src/styles/components/loading-bar.less b/src/styles/components/loading-bar.less new file mode 100644 index 0000000000000000000000000000000000000000..8d8ade8e644a4433e34761fbdaeb3ffedffd1182 --- /dev/null +++ b/src/styles/components/loading-bar.less @@ -0,0 +1,22 @@ +@loading-bar-prefix-cls: ~"@{css-prefix}loading-bar"; + +.@{loading-bar-prefix-cls} { + width: 100%; + position: fixed; + top: 0; + left: 0; + right: 0; + z-index: @zindex-loading-bar; + + &-inner { + transition: width @transition-time linear; + + &-color-primary { + background-color: @primary-color; + } + + &-failed-color-error { + background-color: @error-color; + } + } +} diff --git a/src/styles/components/menu.less b/src/styles/components/menu.less new file mode 100644 index 0000000000000000000000000000000000000000..26b8855902f3c3fbe7d36a720d3c94256fca7b9e --- /dev/null +++ b/src/styles/components/menu.less @@ -0,0 +1,276 @@ +@menu-prefix-cls: ~"@{css-prefix}menu"; +@menu-dropdown-item-prefix-cls: ~"@{menu-prefix-cls}-horizontal .@{menu-prefix-cls}-submenu .@{select-dropdown-prefix-cls} .@{menu-prefix-cls}-item"; + +.@{menu-prefix-cls} { + display: block; + margin: 0; + padding: 0; + outline: none; + list-style: none; + color: @text-color; + font-size: @font-size-base; + position: relative; + z-index: @zindex-menu; + + &-horizontal{ + height: 60px; + line-height: 60px; + + &.@{menu-prefix-cls}-light{ + &:after{ + content: ''; + display: block; + width: 100%; + height: 1px; + background: @border-color-base; + position: absolute; + bottom: 0; + left: 0; + } + } + } + &-vertical{ + &.@{menu-prefix-cls}-light{ + &:after{ + content: ''; + display: block; + width: 1px; + height: 100%; + background: @border-color-base; + position: absolute; + top: 0; + bottom: 0; + right: 0; + z-index: 1; + } + } + } + + &-light{ + background: #fff; + } + &-dark{ + background: @menu-dark-title; + } + &-primary{ + background: @primary-color; + } + + &-item{ + display: block; + outline: none; + list-style: none; + font-size: @font-size-base; + position: relative; + z-index: 1; + cursor: pointer; + transition: all @transition-time @ease-in-out; + } + a&-item{ + color: inherit; + &:hover, &:active{ + color: inherit; + } + } + &-item > i{ + margin-right: 6px; + } + &-submenu-title > i, &-submenu-title span > i{ + margin-right: 8px; + } + + &-horizontal &-item, + &-horizontal &-submenu + { + float: left; + padding: 0 20px; + position: relative; + cursor: pointer; + z-index: 3; + transition: all @transition-time @ease-in-out; + } + + &-light&-horizontal &-item, &-light&-horizontal &-submenu{ + height: inherit; + line-height: inherit; + border-bottom: 2px solid transparent; + color: @text-color; + &-active, &:hover{ + color: @primary-color; + border-bottom: 2px solid @primary-color; + } + } + + &-dark&-horizontal &-item, &-dark&-horizontal &-submenu{ + color: @menu-dark-subsidiary-color; + &-active, &:hover{ + color: #fff; + } + } + + &-primary&-horizontal &-item, &-primary&-horizontal &-submenu{ + color: #fff; + &-active, &:hover{ + //background: @link-active-color; + } + } + + &-horizontal &-submenu .@{select-dropdown-prefix-cls} { + min-width: 100%; + width: auto; + max-height: none; + .@{menu-prefix-cls}-item{ + height: auto; + line-height: normal; + border-bottom: 0; + float: none; + } + } + + &-item-group{ + line-height: normal; + &-title { + height: 30px; + line-height: 30px; + padding-left: 8px; + font-size: @font-size-small; + color: @legend-color; + } + + & > ul{ + padding: 0 !important; + list-style: none !important; + } + } + + // vertical + &-vertical &-item, + &-vertical &-submenu-title + { + padding: 14px 24px; + position: relative; + cursor: pointer; + z-index: 1; + transition: all @transition-time @ease-in-out; + + &:hover{ + //background: @background-color-select-hover; + color: @primary-color; + } + } + + &-vertical &-submenu-title-icon{ + // #5592 支持自定义图标 size 后,换一种位置 + //float: right; + //position: relative; + //top: 4px; + position: absolute; + top: 50%; + right: 24px; + transform: translateY(-50%); + } + &-submenu-title-icon { + transition: transform @transition-time @ease-in-out; + } + &-horizontal &-opened > * > &-submenu-title-icon{ + transform: rotate(180deg); + } + &-vertical &-opened > * > &-submenu-title-icon{ + transform: translateY(-50%) rotate(180deg); + } + + &-vertical &-submenu{ + &-nested{ + padding-left: 20px; + } + .@{menu-prefix-cls}-item{ + padding-left: 43px; + } + } + &-vertical &-item-group{ + &-title{ + height: 48px; + line-height: 48px; + font-size: @font-size-base; + padding-left: 28px; + } + } + &-dark&-vertical &-item-group{ + &-title{ + color: @menu-dark-group-title-color; + } + } + + &-light&-vertical &-item{ + //border-right: 2px solid transparent; + &-active:not(.@{menu-prefix-cls}-submenu){ + color: @primary-color; + background: ~`colorPalette("@{primary-color}", 1)`; + //border-right: 2px solid @primary-color; + z-index: 2; + &:after{ + content: ''; + display: block; + width: 2px; + position: absolute; + top: 0; + bottom: 0; + right: 0; + background: @primary-color; + } + } + } + + &-dark&-vertical &-item, &-dark&-vertical &-submenu-title{ + color: @menu-dark-subsidiary-color; + &-active:not(.@{menu-prefix-cls}-submenu), + &-active:not(.@{menu-prefix-cls}-submenu):hover + { + background: @menu-dark-active-bg; + } + &:hover{ + color: #fff; + background: @menu-dark-title; + } + &-active:not(.@{menu-prefix-cls}-submenu){ + color: @primary-color; + //border-right: 2px solid @primary-color; + } + } + &-dark&-vertical &-submenu &-item{ + &:hover{ + color: #fff; + background: transparent !important; + } + &-active,&-active:hover{ + border-right: none; + color: #fff; + background: @primary-color !important; + } + } + // &-dark&-vertical &-item-active &-submenu-title{ + // color: #fff; + // } + &-dark&-vertical &-child-item-active > &-submenu-title{ + color: #fff; + } + + &-dark&-vertical &-opened{ + background: @menu-dark-active-bg; + .@{menu-prefix-cls}-submenu-title{ + background: @menu-dark-title; + } + + .@{menu-prefix-cls}-submenu-has-parent-submenu{ + .@{menu-prefix-cls}-submenu-title{ + background: transparent; + } + } + } +} +.select-item(@menu-prefix-cls, @menu-dropdown-item-prefix-cls); + +.@{menu-dropdown-item-prefix-cls} { + padding: 7px 16px 8px; + font-size: @font-size-base !important; +} diff --git a/src/styles/components/message.less b/src/styles/components/message.less new file mode 100644 index 0000000000000000000000000000000000000000..34e6fe462aff60e7a0903bba7f81ba72364efaa9 --- /dev/null +++ b/src/styles/components/message.less @@ -0,0 +1,110 @@ +@message-prefix-cls: ~"@{css-prefix}message"; +@icon-prefix-cls: ~"@{css-prefix}icon"; + +.@{message-prefix-cls} { + font-size: @font-size-base; + position: fixed; + z-index: @zindex-message; + width: 100%; + top: 16px; + left: 0; + pointer-events: none; + + &-notice { + padding: 8px; + text-align: center; + transition: height @animation-time @ease-in-out, padding @animation-time @ease-in-out; + + &:first-child { + margin-top: -8px; + } + + &-close { + position: absolute; + right: 4px; + top: 10px; + color: #999; + outline: none; + + i.@{icon-prefix-cls}{ + .close-base(-3px); + } + } + } + + &-notice-content { + display: inline-block; + pointer-events: all; + padding: 8px 16px; + //border: 1px solid @border-color-split; + border-radius: @border-radius-small; + box-shadow: @shadow-base; + background: #fff; + position: relative; + &-text{ + display: inline-block; + } + } + + &-notice-closable{ + .@{message-prefix-cls}-notice-content-text{ + padding-right: 32px; + } + } + + &-success .@{icon-prefix-cls} { + color: @success-color; + } + + &-error .@{icon-prefix-cls} { + color: @error-color; + } + + &-warning .@{icon-prefix-cls} { + color: @warning-color; + } + + &-info .@{icon-prefix-cls}, + &-loading .@{icon-prefix-cls} { + color: @primary-color; + } + + .@{icon-prefix-cls} { + margin-right: 4px; + font-size: @font-size-large; + vertical-align: middle; + } + &-custom-content{ + span{ + vertical-align: middle; + } + } + + &-notice-with-background{ + .@{message-prefix-cls}-notice-content{ + &-background{ + box-shadow: none; + } + &-info{ + background: ~`colorPalette("@{primary-color}", 1)`; + color: ~`colorPalette("@{primary-color}", 6)`; + border: 1px solid ~`colorPalette("@{primary-color}", 2)`; + } + &-success{ + background: ~`colorPalette("@{success-color}", 1)`; + color: ~`colorPalette("@{success-color}", 6)`; + border: 1px solid ~`colorPalette("@{success-color}", 2)`; + } + &-warning{ + background: ~`colorPalette("@{warning-color}", 1)`; + color: ~`colorPalette("@{warning-color}", 6)`; + border: 1px solid ~`colorPalette("@{warning-color}", 2)`; + } + &-error{ + background: ~`colorPalette("@{error-color}", 1)`; + color: ~`colorPalette("@{error-color}", 6)`; + border: 1px solid ~`colorPalette("@{error-color}", 2)`; + } + } + } +} diff --git a/src/styles/components/modal.less b/src/styles/components/modal.less new file mode 100644 index 0000000000000000000000000000000000000000..29deab95d9b99dab8ffee42bf2b0284827d7404e --- /dev/null +++ b/src/styles/components/modal.less @@ -0,0 +1,201 @@ +@modal-prefix-cls: ~"@{css-prefix}modal"; +@confirm-prefix-cls: ~"@{css-prefix}modal-confirm"; + +.@{modal-prefix-cls} { + width: auto; + margin: 0 auto; + position: relative; + outline: none; + top: 100px; + + &-hidden { + display: none !important; + } + + &-wrap { + position: fixed; + overflow: auto; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: @zindex-modal; + -webkit-overflow-scrolling: touch; + outline: 0; + } + + &-wrap * { + box-sizing: border-box; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); + } + + &-mask { + .mask; + } + + &-content { + position: relative; + background-color: #fff; + border: 0; + border-radius: @border-radius-base; + background-clip: padding-box; + box-shadow: 0 4px 12px rgba(0,0,0,.15); + + &-no-mask{ + pointer-events: auto; + } + &-drag{ + position: absolute; + .@{modal-prefix-cls}-header{ + cursor: move; + } + } + &-dragging{ + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; + } + } + + &-header { + .content-header; + } + + &-close { + z-index: 1; + .content-close(1px, 31px); + } + + &-body { + padding: 16px; + font-size: @font-size-base; + line-height: 1.5; + } + + &-footer { + border-top: 1px solid @border-color-split; + padding: 12px 18px 12px 18px; + text-align: right; + button + button { + margin-left: 8px; + margin-bottom: 0; + } + } + + &-fullscreen{ + width: 100% !important; + top: 0; + bottom: 0; + position: absolute; + + @modal-header-height: 51px; + @modal-footer-height: 61px; + + .@{modal-prefix-cls}-content{ + width: 100%; + border-radius: 0; + position: absolute; + top: 0; + bottom: 0; + } + + .@{modal-prefix-cls}-body{ + width: 100%; + overflow: auto; + position: absolute; + top: @modal-header-height; + bottom: @modal-footer-height; + } + &-no-header .@{modal-prefix-cls}-body{ + top: 0; + } + &-no-footer .@{modal-prefix-cls}-body{ + bottom: 0; + } + .@{modal-prefix-cls}-footer{ + position: absolute; + width: 100%; + bottom: 0; + } + } + &-no-mask{ + pointer-events: none; + } +} + +@media (max-width: @screen-sm) { + .@{modal-prefix-cls} { + width: auto !important; + margin: 10px; + } + .@{modal-prefix-cls}-fullscreen{ + width: 100% !important; + margin: 0; + } + .vertical-center-modal { + .@{modal-prefix-cls} { + flex: 1; + } + } +} + +.@{confirm-prefix-cls} { + padding: 6px 16px 8px; + &-head { + padding: 0 12px 0 0; + &-icon { + display: inline-block; + font-size: 28px; + vertical-align: middle; + position: relative; + top: -2px; + + &-info { + color: @primary-color; + } + &-success { + color: @success-color; + } + &-warning { + color: @warning-color; + } + &-error { + color: @error-color; + } + &-confirm { + color: @warning-color; + } + } + + &-title { + display: inline-block; + vertical-align: middle; + margin-left: 12px; + font-size: @font-size-large; + color: @title-color; + font-weight: 500; + } + } + + &-body{ + padding-left: 40px; + font-size: @font-size-base; + color: @text-color; + position: relative; + + &-render{ + margin: 0; + padding: 0; + } + } + + &-footer{ + margin-top: 20px; + text-align: right; + + button + button { + margin-left: 8px; + margin-bottom: 0; + } + } +} diff --git a/src/styles/components/notice.less b/src/styles/components/notice.less new file mode 100644 index 0000000000000000000000000000000000000000..058c0ab6fbb46c71017bc8cb5a0a7e2fb31bb62d --- /dev/null +++ b/src/styles/components/notice.less @@ -0,0 +1,116 @@ +@notice-prefix-cls: ~"@{css-prefix}notice"; +@icon-prefix-cls: ~"@{css-prefix}icon"; + +@notice-width: 335px; +@notice-padding: 16px; +@notice-margin-bottom: 10px; + +.@{notice-prefix-cls} { + width: @notice-width; + margin-right: 24px; + position: fixed; + z-index: @zindex-notification; + + &-content-with-icon{ + margin-left: 51px; + } + &-with-desc&-with-icon &-title{ + margin-left: 51px; + } + + &-notice { + margin-bottom: @notice-margin-bottom; + padding: @notice-padding; + // border: 1px solid @border-color-split; + border-radius: @border-radius-small; + box-shadow: @shadow-base; + background: #fff; + line-height: 1; + position: relative; + overflow: hidden; + + &-close { + position: absolute; + right: 8px; + top: 15px; + color: #999; + outline: none; + + i{ + .close-base(-3px); + } + } + + &-content-with-render{ + .ivu-notice-desc{ + display: none; + } + } + + &-with-desc{ + .@{notice-prefix-cls}-notice-close{ + top: 11px; + } + } + } + + &-content-with-render-notitle{ + margin-left: 26px; + } + + &-title { + font-size: @font-size-large; + line-height: @font-size-large + 3; //fixed the bug that the bottom of some letters were hidden just like 'g' + color: @title-color; + padding-right: 10px; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + } + &-with-desc &-title{ + //font-weight: bold; + margin-bottom: 8px; + } + + &-desc { + font-size: @font-size-base; + //color: @legend-color; + color: @text-color; + text-align: justify; + line-height: 1.5; + } + &-with-desc&-with-icon &-desc{ + margin-left: 51px; + } + + &-with-icon &-title{ + margin-left: 26px; + } + + &-icon { + position: absolute; + top: -2px; + font-size: @font-size-large + 4; + + &-success { + color: @success-color; + } + &-info { + color: @primary-color; + } + &-warning { + color: @warning-color; + } + &-error { + color: @error-color; + } + } + &-with-desc &-icon{ + font-size: 36px; + top: -6px; + } + + &-custom-content{ + position: relative; + } +} diff --git a/src/styles/components/notification.less b/src/styles/components/notification.less new file mode 100644 index 0000000000000000000000000000000000000000..d65f68352bd5bd1bd3c6f4fd1b13231e3dde25e9 --- /dev/null +++ b/src/styles/components/notification.less @@ -0,0 +1,158 @@ +// iView 已经占用了 .ivu-notification 名称 +.ivu-notifications{ + display: inline-block; + + &-rel{ + display: inline-block; + cursor: pointer; + } + + &-list{ + width: 300px; + line-height: normal; + &-wide{ + width: auto; + } + } + + &,&-transfer{ + .ivu-tabs-nav-scroll{ + text-align: center; + } + .ivu-tabs-nav{ + display: inline-block; + float: none; + } + } + + &-tabs{ + .ivu-badge{ + margin-left: 3px; + } + .ivu-badge-count{ + background: @normal-color; + color: @subsidiary-color; + min-width: 16px; + height: 16px; + line-height: 14px; + border-radius: 8px; + padding: 0 4px; + } + .ivu-tabs-tab:last-child{ + margin-right: 0; + } + .ivu-tabs-bar{ + margin-bottom: 0; + } + } + + &-extra{ + border-top: 1px solid @border-color-split; + } + + &-tab{ + &-empty{ + text-align: center; + padding: 64px 0; + &-img{ + display: inline-block; + height: 64px; + } + &-text{ + color: @subsidiary-color; + } + } + + &-clear{ + border-top: 1px solid @border-color-split; + text-align: center; + font-size: @font-size-base; + cursor: pointer; + padding: 6px 0; + color: @text-color; + transition: color @transition-time @ease-in-out; + + &:hover{ + color: @link-hover-color; + } + } + + &-loading{ + &-item{ + border-top: 1px solid @border-color-split; + text-align: center; + font-size: @font-size-base; + padding: 6px 0; + color: @text-color; + transition: color @transition-time @ease-in-out; + } + &-show, &-all{ + color: @btn-disable-color; + } + &-more{ + cursor: pointer; + color: @link-color; + + &:hover{ + color: @link-hover-color; + } + } + } + } + + &-container{ + max-height: 400px; + overflow: auto; + } + + &-item{ + padding: 12px 24px; + border-bottom: 1px solid @border-color-split; + cursor: pointer; + transition: background-color @transition-time @ease-in-out; + text-align: left; + + &:last-child{ + border-bottom: none; + } + + &:hover{ + background-color: ~`colorPalette("@{primary-color}", 1)`; + } + + &-unread{ + background-color: #f8f8f9; + } + + &-title{ + margin-bottom: 4px; + h4{ + font-size: @font-size-base; + font-weight: normal; + line-height: 22px; + color: @text-color; + } + } + &-tag{ + float: right; + margin-top: -2px; + .ivu-tag{ + margin-right: 0; + } + } + &-desc{ + color: @subsidiary-color; + font-size: @font-size-small; + margin-bottom: 4px; + } + &-time{ + font-size: @font-size-small; + color: @subsidiary-color; + } + } + + &-transfer.ivu-select-dropdown{ + max-height: none; + overflow: visible; + } +} diff --git a/src/styles/components/number-info.less b/src/styles/components/number-info.less new file mode 100644 index 0000000000000000000000000000000000000000..2033fba8442393baf73d931f10dbb86d9661465e --- /dev/null +++ b/src/styles/components/number-info.less @@ -0,0 +1,43 @@ +.ivu-number-info{ + &-title{ + margin-bottom: 16px; + color: @title-color; + font-size: @font-size-large; + transition: all @transition-time; + } + &-subTitle{ + height: 22px; + overflow: hidden; + color: @subsidiary-color; + font-size: @font-size-base; + line-height: 22px; + white-space: nowrap; + text-overflow: ellipsis; + word-break: break-all; + } + &-value{ + margin-top: 4px; + overflow: hidden; + font-size: 0; + white-space: nowrap; + text-overflow: ellipsis; + word-break: break-all; + } + &-total{ + display: inline-block; + height: 32px; + margin-right: 32px; + color: @text-color; + font-size: 24px; + line-height: 32px; + } + &-subTotal{ + display: inline-block; + height: 32px; + line-height: 32px; + margin-right: 0; + vertical-align: top; + font-size: 14px; + color: @subsidiary-color; + } +} \ No newline at end of file diff --git a/src/styles/components/page-header.less b/src/styles/components/page-header.less new file mode 100644 index 0000000000000000000000000000000000000000..7e13de6d524ebd6f998a10dd5d116e0180030ca5 --- /dev/null +++ b/src/styles/components/page-header.less @@ -0,0 +1,189 @@ +.ivu-page-header{ + padding: 16px 32px 0 32px; + background: @component-background; + border-bottom: @border-width-base @border-style-base @border-color-split; + + &-wide{ + max-width: 1200px; + margin: auto; + } + + &-detail{ + display: flex; + } + + &-row{ + display: flex; + width: 100%; + } + + &-breadcrumb{ + margin-bottom: 16px; + } + + &-tabs{ + margin: 0 0 0 -8px; + .ivu-tabs-bar{ + margin-bottom: 0; + border-bottom-color: transparent; + } + } + + &-logo{ + flex: 0 1 auto; + margin-right: 16px; + padding-top: 1px; + + > img { + display: block; + width: 28px; + height: 28px; + border-radius: @border-radius-small; + } + } + &-back{ + display: flex; + height: 30px; + flex: 0 1 auto; + margin-right: 8px; + cursor: pointer; + transition: color @transition-time @ease-in-out; + &:hover{ + color: @primary-color; + } + .ivu-icon{ + font-size: 20px; + line-height: inherit; + } + .ivu-divider{ + height: 14px; + line-height: inherit; + top: 8px; + } + } + &-main &-back{ + display: none; + } + + &-title{ + display: inline-block; + color: @title-color; + font-weight: 500; + font-size: 20px; + } + + &-action{ + min-width: 266px; + margin-left: 56px; + + .ivu-btn-group:not(:last-child), + .ivu-btn:not(:last-child){ + margin-right: 8px; + } + + .ivu-btn-group > .ivu-btn { + margin-right: 0; + } + } + + &-content, &-extra{ + font-size: 14px; + } + + &-title, &-content{ + flex: auto; + } + + &-action, &-extra, &-main{ + flex: 0 1 auto; + } + + &-main{ + width: 100%; + } + + &-title, &-action{ + margin-bottom: 16px; + } + + &-logo, + &-content, + &-extra { + margin-bottom: 16px; + } + + &-action, + &-extra { + text-align: right; + } + + &-extra{ + min-width: 242px; + margin-left: 88px; + } +} + +@media screen and (max-width: @screen-xl) { + .ivu-page-header { + &-extra { + margin-left: 44px; + } + } +} + +@media screen and (max-width: @screen-lg) { + .ivu-page-header { + &-extra { + margin-left: 20px; + } + } +} + +@media screen and (max-width: @screen-md) { + .ivu-page-header { + &-row { + display: block; + } + + &-action, + &-extra { + margin-left: 0; + text-align: left; + } + } +} + +@media screen and (max-width: @screen-sm) { + .ivu-page-header { + &-detail > &-back{ + display: none; + } + &-main &-back{ + display: inline-block; + position: relative; + top: -4px; + .ivu-divider{ + top: 0; + } + } + &-detail { + display: block; + } + } +} + +@media screen and (max-width: @screen-xs) { + .ivu-page-header { + &-action { + .ivu-btn-group, + .ivu-btn { + display: block; + margin-bottom: 8px; + } + .ivu-btn-group > .ivu-btn { + display: inline-block; + margin-bottom: 0; + } + } + } +} diff --git a/src/styles/components/page.less b/src/styles/components/page.less new file mode 100644 index 0000000000000000000000000000000000000000..5d7118c35211b62a7341092ad5d3916874838c82 --- /dev/null +++ b/src/styles/components/page.less @@ -0,0 +1,336 @@ +@page-prefix-cls: ~"@{css-prefix}page"; + +.@{page-prefix-cls} { + &:after { + content: ''; + display: block; + height: 0; + clear: both; + overflow: hidden; + visibility: hidden; + } + + &-item { + display: inline-block; + //float: left; + vertical-align: middle; + min-width: @btn-circle-size; + height: @btn-circle-size; + line-height: @btn-circle-size - 2px; + margin-right: 4px; + text-align: center; + list-style: none; + background-color: #fff; + user-select: none; + cursor: pointer; + font-family: Arial; + font-weight: 500; + border: 1px solid @border-color-base; + border-radius: @btn-border-radius; + //transition: all @transition-time @ease-in-out; + transition: border @transition-time @ease-in-out, color @transition-time @ease-in-out; + + a { + margin: 0 6px; + text-decoration: none; + color: @text-color; + //transition: none; + } + + &:hover { + border-color: @primary-color; + a { + color: @primary-color; + } + } + + &-active { + border-color: @primary-color; + + a, &:hover a { + color: @primary-color; + } + } + } + + &-with-disabled &-item, &-with-disabled &-disabled{ + cursor: @cursor-disabled; + background-color: @input-disabled-bg; + a { + color: #ccc; + } + &:hover { + border-color: @border-color-base; + a { + color: #ccc; + cursor: @cursor-disabled; + } + } + &-active { + background-color: @border-color-base; + border-color: @border-color-base; + + a, &:hover a { + color: #fff; + } + } + } + + &-item-jump-prev, &-item-jump-next { + //&:after { + // content: "•••"; + // display: block; + // letter-spacing: 1px; + // color: #ccc; + // text-align: center; + //} + i{ + color: #ccc; + } + i:first-child{ + display: none; + } + + &:hover { + //&:after{ + // display: none; + //} + i:first-child{ + display: inline; + color: @primary-color; + } + i:last-child{ + display: none; + } + } + } + + &-with-disabled &-item-jump-prev, &-with-disabled &-item-jump-next{ + cursor: @cursor-disabled; + i{ + color: #ccc; + } + &:hover { + //&:after{ + // display: block; + //} + i:first-child{ + display: none; + } + i:last-child{ + display: inline; + } + } + } + + &-item-jump-prev:hover { + i:first-child:after { + content: "\F115"; + margin-left: -8px; + } + } + + &-item-jump-next:hover { + i:first-child:after { + content: "\F11F"; + margin-left: -8px; + } + } + + &-prev{ + margin-right: 4px; + } + + &-item-jump-prev, + &-item-jump-next{ + margin-right: 4px; + } + + &-prev, + &-next, + &-item-jump-prev, + &-item-jump-next { + display: inline-block; + vertical-align: middle; + user-select: none; + //float: left; + min-width: @btn-circle-size; + height: @btn-circle-size; + line-height: @btn-circle-size - 2px; + list-style: none; + text-align: center; + cursor: pointer; + color: #666; + font-family: Arial; + border: 1px solid @border-color-base; + border-radius: @btn-border-radius; + transition: all @transition-time @ease-in-out; + } + &-item-jump-prev, + &-item-jump-next{ + border-color: transparent; + } + + &-prev, + &-next { + background-color: #fff; + + a { + color: #666; + font-size: 14px; + } + + &:hover { + border-color: @primary-color; + + a { + color: @primary-color; + } + } + } + + &-disabled { + cursor: @cursor-disabled; + a { + color: #ccc; + } + &:hover { + border-color: @border-color-base; + a { + color: #ccc; + cursor: @cursor-disabled; + } + } + } + + &-options { + display: inline-block; + vertical-align: middle; + //float: left; + margin-left: 15px; + &-sizer { + display: inline-block; + //float: left; + margin-right: 10px; + } + + &-elevator { + display: inline-block; + vertical-align: middle; + //float: left; + height: @btn-circle-size; + line-height: @btn-circle-size; + + input { + .input; + border-radius: @btn-border-radius; + margin: 0 8px; + width: 50px; + } + } + } + + &-total { + display: inline-block; + //float: left; + height: @btn-circle-size; + line-height: @btn-circle-size; + margin-right: 10px; + } + + &-simple &-prev, + &-simple &-next { + margin: 0; + border: 0; + height: 24px; + line-height: normal; + font-size: 18px; + } + + &-simple &-simple-pager { + display: inline-block; + //float: left; + margin-right: 8px; + vertical-align: middle; + + input { + .input; + width: 30px; + height: 24px; + margin: 0 8px; + padding: 5px 8px; + text-align: center; + box-sizing: border-box; + background-color: #fff; + outline: none; + border: 1px solid @border-color-base; + border-radius: @btn-border-radius; + transition: border-color @transition-time @ease-in-out; + + &:hover { + border-color: @primary-color; + } + } + + span{ + padding: 0 8px 0 2px; + } + } + + &-custom-text, &-custom-text:hover{ + border-color: transparent; + } +} + +.@{page-prefix-cls} { + &.mini &-total { + height: @btn-circle-size-small; + line-height: @btn-circle-size-small; + } + + &.mini &-item { + border: 0; + margin: 0; + min-width: @btn-circle-size-small; + height: @btn-circle-size-small; + line-height: @btn-circle-size-small; + border-radius: @btn-border-radius-small; + } + + &.mini &-prev, + &.mini &-next { + margin: 0; + min-width: @btn-circle-size-small; + height: @btn-circle-size-small; + line-height: @btn-circle-size-small - 2px; + border: 0; + + a { + i:after { + height: @btn-circle-size-small; + line-height: @btn-circle-size-small; + } + } + } + + &.mini &-item-jump-prev, + &.mini &-item-jump-next { + height: @btn-circle-size-small; + line-height: @btn-circle-size-small; + border: none; + margin-right: 0; + } + + &.mini &-options { + margin-left: 8px; + &-elevator { + height: @btn-circle-size-small; + line-height: @btn-circle-size-small; + + input { + .input-small; + width: 44px; + } + } + } +} diff --git a/src/styles/components/poptip.less b/src/styles/components/poptip.less new file mode 100644 index 0000000000000000000000000000000000000000..5f8b22bca2b15c4e874956327d71cadcb63f086f --- /dev/null +++ b/src/styles/components/poptip.less @@ -0,0 +1,156 @@ +@poptip-prefix-cls: ~"@{css-prefix}poptip"; +@poptip-arrow: ~"@{poptip-prefix-cls}-arrow"; +@poptip-max-width: 250px; +@poptip-arrow-width: 7px; +@poptip-arrow-outer-width: (@poptip-arrow-width + 1); +@poptip-distance: @poptip-arrow-width - 1 + 4; +//@poptip-arrow-color: fadein(@border-color-base, 5%); +@poptip-arrow-color: hsla(0,0%,85%,.5); + +.@{poptip-prefix-cls} { + display: inline-block; + + &-rel{ + display: inline-block; + position: relative; + } + + &-title { + margin: 0; + padding: 8px 16px; + position: relative; + + &:after{ + content: ''; + display: block; + height: 1px; + position: absolute; + left: 8px; + right: 8px; + bottom: 0; + background-color: @border-color-split; + } + + &-inner{ + color: @title-color; + font-size: @font-size-base; + font-weight: 500; + } + } + + &-body{ + padding: 8px 16px; + + &-content{ + overflow: auto; + + &-word-wrap{ + white-space: pre-wrap; + text-align: justify; + } + + &-inner{ + color: @text-color; + } + } + } + + &-inner{ + width: 100%; + background-color: #fff; + background-clip: padding-box; + //border: 1px solid @border-color-split; + border-radius: @border-radius-small; + box-shadow: @shadow-base; + white-space: nowrap; + } + + &-popper{ + min-width: 150px; + font-size: @font-size-base; + .popper(@poptip-arrow, @poptip-arrow-width, @poptip-distance, @poptip-arrow-color); + + &[x-placement^="top"] .@{poptip-arrow}:after { + content: " "; + bottom: 1px; + margin-left: -@poptip-arrow-width; + border-bottom-width: 0; + border-top-width: @poptip-arrow-width; + border-top-color: #fff; + } + + &[x-placement^="right"] .@{poptip-arrow}:after { + content: " "; + left: 1px; + bottom: -@poptip-arrow-width; + border-left-width: 0; + border-right-width: @poptip-arrow-width; + border-right-color: #fff; + } + + &[x-placement^="bottom"] .@{poptip-arrow}:after { + content: " "; + top: 1px; + margin-left: -@poptip-arrow-width; + border-top-width: 0; + border-bottom-width: @poptip-arrow-width; + border-bottom-color: #fff; + } + + &[x-placement^="left"] .@{poptip-arrow}:after { + content: " "; + right: 1px; + border-right-width: 0; + border-left-width: @poptip-arrow-width; + border-left-color: #fff; + bottom: -@poptip-arrow-width; + } + } + + &-arrow{ + &, &:after{ + display: block; + width: 0; + height: 0; + position: absolute; + border-color: transparent; + border-style: solid; + } + } + &-arrow { + border-width: @poptip-arrow-outer-width; + } + &-arrow:after{ + content: ""; + border-width: @poptip-arrow-width; + } + + &-confirm &-popper{ + max-width: 300px; + } + &-confirm &-inner{ + white-space: normal; + } + + &-confirm &-body{ + padding: 16px 16px 8px; + .ivu-icon{ + font-size: 16px; + color: @warning-color; + line-height: 18px; + position: absolute; + } + + &-message{ + padding-left: 20px; + } + } + + &-confirm &-footer{ + text-align: right; + padding: 8px 16px 16px; + button { + margin-left: 4px; + } + } +} diff --git a/src/styles/components/progress.less b/src/styles/components/progress.less new file mode 100644 index 0000000000000000000000000000000000000000..2659764673cd2e1ee8c07fa071e1db4e77e7e227 --- /dev/null +++ b/src/styles/components/progress.less @@ -0,0 +1,153 @@ +@progress-prefix-cls: ~"@{css-prefix}progress"; + +.@{progress-prefix-cls} { + display: inline-block; + + width: 100%; + &-vertical { + height: 100%; + width: auto; + } + + font-size: @font-size-small; + position: relative; + + &-outer { + display: inline-block; + width: 100%; + margin-right: 0; + padding-right: 0; + + .@{progress-prefix-cls}-show-info & { + padding-right: 55px; + margin-right: -55px; + } + } + &-vertical &-outer { + height: 100%; + width: auto; + } + + &-inner { + display: inline-block; + width: 100%; + background-color: #f3f3f3; + border-radius: 100px; + vertical-align: middle; + position: relative; + &-text{ + display: inline-block; + vertical-align: middle; + color: #fff; + font-size: 12px; + margin: 0 6px; + } + } + &-vertical &-inner { + height: 100%; + width: auto; + + & > *, &:after { + display: inline-block; + vertical-align: bottom; + } + + &:after { + content: ''; + height: 100%; + } + } + + &-bg { + text-align: right; + border-radius: 100px; + background-color: @primary-color; + transition: all @transition-time linear; + position: relative; + &:after{ + content: ''; + display: inline-block; + height: 100%; + vertical-align: middle; + } + } + &-success-bg{ + border-radius: 100px; + background-color: @success-color; + transition: all @transition-time linear; + position: absolute; + top: 0; + left: 0; + } + + &-text { + display: inline-block; + margin-left: 5px; + text-align: left; + font-size: 1em; + vertical-align: middle; + color: @subsidiary-color; + } + + &-active { + .@{progress-prefix-cls}-bg:before { + content: ''; + opacity: 0; + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: #fff; + border-radius: 10px; + animation: ivu-progress-active 2s @ease-in-out infinite; + } + } + + &-vertical&-active{ + .@{progress-prefix-cls}-bg:before { + top: auto; + animation: ivu-progress-active-vertical 2s @ease-in-out infinite; + } + } + + &-wrong { + .@{progress-prefix-cls}-bg { + background-color: @error-color; + } + .@{progress-prefix-cls}-text { + color: @error-color; + } + } + + &-success { + .@{progress-prefix-cls}-bg { + background-color: @success-color; + } + .@{progress-prefix-cls}-text { + color: @success-color; + } + } +} + +@keyframes ivu-progress-active { + 0% { + opacity: .3; + width: 0; + } + 100% { + opacity: 0; + width: 100%; + } +} + +@keyframes ivu-progress-active-vertical { + 0% { + opacity: .3; + height: 0; + } + 100% { + opacity: 0; + height: 100%; + } +} diff --git a/src/styles/components/radio.less b/src/styles/components/radio.less new file mode 100644 index 0000000000000000000000000000000000000000..15623d9972cab393021dd1bcfe2c91f33e718dc7 --- /dev/null +++ b/src/styles/components/radio.less @@ -0,0 +1,379 @@ +@radio-prefix-cls: ~"@{css-prefix}radio"; +@radio-group-prefix-cls: ~"@{radio-prefix-cls}-group"; +@radio-inner-prefix-cls: ~"@{radio-prefix-cls}-inner"; +@radio-group-button-prefix-cls: ~"@{radio-group-prefix-cls}-button"; + +.@{radio-prefix-cls}-focus { + box-shadow: 0 0 0 2px fade(@primary-color, 20%); + z-index: 1; +} + +.@{radio-group-prefix-cls} { + display: inline-block; + font-size: @font-size-base; + vertical-align: middle; + //outline: none; + &-vertical{ + .@{radio-prefix-cls}-wrapper { + display: block; + height: 30px; + line-height: 30px; + } + } +} + +// 普通状态 - Normal state +.@{radio-prefix-cls}-wrapper { + font-size: @font-size-base; + vertical-align: middle; + display: inline-block; + position: relative; + white-space: nowrap; + margin-right: 8px; + cursor: pointer; + &-disabled{ + cursor: @cursor-disabled; + } + //outline: none; +} + +.@{radio-prefix-cls} { + display: inline-block; + margin-right: 4px; + white-space: nowrap; + //outline: none; + position: relative; + line-height: 1; + vertical-align: middle; + cursor: pointer; + &:hover { + .@{radio-inner-prefix-cls} { + border-color: #bcbcbc; + } + } + &-inner { + display: inline-block; + width: 16px; + height: 16px; + position: relative; + top: 0; + left: 0; + background-color: #fff; + border: 1px solid @border-color-base; + border-radius: 50%; + transition: all @transition-time @ease-in-out; + + &:after { + position: absolute; + width: 10px; + height: 10px; + left: 2px; + top: 2px; + border-radius: @border-radius-base; + display: table; + border-top: 0; + border-left: 0; + content: ' '; + background-color: @primary-color; + opacity: 0; + transition: all @transition-time @ease-in-out; + transform: scale(0); + } + } + &-large{ + font-size: @font-size-large; + & .@{radio-inner-prefix-cls}{ + width: 18px; + height: 18px; + &:after{ + width: 12px; + height: 12px; + } + } + &.@{radio-prefix-cls}-wrapper, & .@{radio-prefix-cls}-wrapper{ + font-size: @font-size-large; + } + } + &-small{ + & .@{radio-inner-prefix-cls}{ + width: 14px; + height: 14px; + &:after{ + width: 8px; + height: 8px; + } + } + } + + &-input { + position: absolute; + top: 0; + bottom: 0; + left: 0; + right: 0; + z-index: 1; + opacity: 0; + cursor: pointer; + } + + &-border{ + border: 1px solid @border-color-base; + border-radius: @btn-border-radius; + height: @btn-height-base; + line-height: @btn-height-base - 2px; + padding: @btn-padding-base; + transition: border @transition-time @ease-in-out; + } + &-small&-border, .@{radio-group-prefix-cls}-small &-border{ + height: @btn-height-small; + line-height: @btn-height-small - 2px; + padding: @btn-padding-small; + } + &-large&-border, .@{radio-group-prefix-cls}-large &-border{ + height: @btn-height-large; + line-height: @btn-height-large - 4px; + padding: @btn-padding-large; + } +} + +.@{radio-prefix-cls}-wrapper-checked.@{radio-prefix-cls}-border{ + border-color: @primary-color; +} +.@{radio-prefix-cls}-wrapper-disabled.@{radio-prefix-cls}-border{ + border-color: @btn-disable-border; +} + +// 选中状态 - Selected state +.@{radio-prefix-cls}-checked { + .@{radio-inner-prefix-cls} { + border-color: @primary-color; + &:after { + opacity: 1; + transform: scale(1); + transition: all @transition-time @ease-in-out; + } + } + &:hover { + .@{radio-inner-prefix-cls} { + border-color: @primary-color; + } + } +} + +.@{radio-prefix-cls}-disabled { + cursor: @cursor-disabled; + .@{radio-prefix-cls}-input { + cursor: @cursor-disabled; + } + + &:hover { + .@{radio-inner-prefix-cls} { + border-color: @border-color-base; + } + } + .@{radio-inner-prefix-cls} { + border-color: @border-color-base; + background-color: #f3f3f3; + &:after { + background-color: #cccccc; + } + } + + .@{radio-prefix-cls}-disabled + span { + color: #ccc; + } +} + +span.@{radio-prefix-cls} + * { + margin-left: 2px; + margin-right: 2px; +} + +// 按钮样式 - Button style +.@{radio-group-button-prefix-cls} { + font-size: 0; + -webkit-text-size-adjust:none; + + .@{radio-prefix-cls}{ + width: 0; + margin-right: 0; + } + + .@{radio-prefix-cls}-wrapper { + display: inline-block; + height: @btn-circle-size; + line-height: @btn-circle-size - 2px; + margin: 0; + padding: 0 16px - 1px; + font-size: @font-size-base; + color: @btn-default-color; + transition: all @transition-time ease-in-out; + cursor: pointer; + border: 1px solid @border-color-base; + border-left: 0; + background: #fff; + position: relative; + + > span { + margin-left: 0; + } + + &:before, &:after { + content: ''; + display: block; + position: absolute; + width: 1px; + height: 100%; + left: -1px; + top: 0; + background: @border-color-base; + //visibility: hidden; + transition: all @transition-time ease-in-out; + } + + &:after{ + height: @btn-circle-size + 4px; + left: -1px; + top: -3px; + background: fade(@primary-color, 20%); + opacity: 0; + } + + &:first-child { + border-radius: @btn-border-radius 0 0 @btn-border-radius; + border-left: 1px solid @border-color-base; + &:before, &:after { + display: none; + } + } + + &:last-child { + border-radius: 0 @btn-border-radius @btn-border-radius 0; + } + + &:first-child:last-child { + border-radius: @btn-border-radius; + } + + &:hover { + position: relative; + color: @primary-color; + & .@{radio-prefix-cls} { + background-color: black; + } + } + + .@{radio-prefix-cls}-inner, + input { + opacity: 0; + width: 0; + height: 0; + } + + &-checked { + background: #fff; + border-color: @primary-color; + color: @primary-color; + box-shadow: -1px 0 0 0 @primary-color; + z-index: 1; + + &:before{ + background: @primary-color; + opacity: 0.1; + } + + &.@{radio-prefix-cls}-focus{ + box-shadow: -1px 0 0 0 @primary-color, 0 0 0 2px fade(@primary-color, 20%); + transition: all @transition-time ease-in-out; + &:after{ + left: -3px; + top: -3px; + opacity: 1; + background: fade(@primary-color, 20%); + } + &:first-child{ + box-shadow: 0 0 0 2px fade(@primary-color, 20%); + } + } + + &:first-child { + border-color: @primary-color; + box-shadow: none; + } + + &:hover { + border-color: tint(@primary-color, 20%); + //box-shadow: -1px 0 0 0 tint(@primary-color, 20%); + color: tint(@primary-color, 20%); + } + + &:active { + border-color: shade(@primary-color, 5%); + //box-shadow: -1px 0 0 0 shade(@primary-color, 5%); + color: shade(@primary-color, 5%); + } + } + + &-disabled { + border-color: @border-color-base; + background-color: @background-color-base; + cursor: @cursor-disabled; + color: #ccc; + + &:first-child, + &:hover { + border-color: @border-color-base; + background-color: @background-color-base; + color: #ccc; + } + &:first-child { + border-left-color: @border-color-base; + } + } + + &-disabled.@{radio-prefix-cls}-wrapper-checked { + color: #fff; + background-color: #e6e6e6; + border-color: @border-color-base; + box-shadow: none!important; + } + } + &-solid .@{radio-prefix-cls}-wrapper{ + &-checked:not(.@{radio-prefix-cls}-wrapper-disabled){ + background: @primary-color; + color: #fff; + &:hover{ + background: tint(@primary-color, 20%); + color: #fff; + } + } + } +} + +.@{radio-group-button-prefix-cls}.@{radio-group-prefix-cls}-large .@{radio-prefix-cls}-wrapper{ + height: @btn-circle-size-large; + line-height: @btn-circle-size-large - 2px; + font-size: @font-size-large; + &:after{ + height: @btn-circle-size-large + 4px; + } +} + +.@{radio-group-button-prefix-cls}.@{radio-group-prefix-cls}-small .@{radio-prefix-cls}-wrapper{ + height: @btn-circle-size-small; + line-height: @btn-circle-size-small - 2px; + padding: 0 12px; + font-size: @font-size-base; + + &:after{ + height: @btn-circle-size-small + 4px; + } + + &:first-child { + border-radius: @btn-border-radius-small 0 0 @btn-border-radius-small; + } + &:last-child { + border-radius: 0 @btn-border-radius-small @btn-border-radius-small 0; + } +} + diff --git a/src/styles/components/rate.less b/src/styles/components/rate.less new file mode 100644 index 0000000000000000000000000000000000000000..56568040098efb978ddafdedca450daccd422367 --- /dev/null +++ b/src/styles/components/rate.less @@ -0,0 +1,117 @@ +@rate-prefix-cls: ~"@{css-prefix}rate"; + +.@{rate-prefix-cls} { + display: inline-block; + margin: 0; + padding: 0; + font-size: 20px; + vertical-align: middle; + font-weight: normal; + font-style: normal; + + &-disabled &-star { + &:before, + &-content:before { + cursor: default; + } + &:hover { + transform: scale(1); + } + } + + &-star-full, &-star-zero { + position: relative; + } + &-star-first { + position: absolute; + left: 0; + top: 0; + width: 50%; + height: 100%; + overflow: hidden; + opacity: 0; + } + + &-star-first, &-star-second { + user-select: none; + transition: all .3s ease; + color: #e9e9e9; + cursor: pointer; + } + + &-star-chart { + display: inline-block; + margin: 0; + padding: 0; + margin-right: 8px; + position: relative; + font-family: 'Ionicons'; + transition: all 0.3s ease; + + &:hover { + transform: scale(1.1); + + //&-star-first, &-star-second { + // color: @rate-star-color; + //} + } + } + &-star-chart&-star-full &-star-first, &-star-chart&-star-full &-star-second{ + color: @rate-star-color; + } + &-star-chart&-star-half &-star-first{ + opacity: 1; + color: @rate-star-color; + } + + &-star { + display: inline-block; + margin: 0; + padding: 0; + margin-right: 8px; + position: relative; + font-family: 'Ionicons'; + transition: all 0.3s ease; + + &:hover { + transform: scale(1.1); + } + + &:before, + &-content:before { + color: #e9e9e9; + cursor: pointer; + content: "\F2BF"; + transition: all @transition-time @ease-in-out; + display: block; + } + + &-content { + position: absolute; + left: 0; + top: 0; + width: 50%; + height: 100%; + overflow: hidden; + &:before { + color: transparent; + } + } + + &-half &-content:before, + &-full:before { + color: @rate-star-color; + } + + &-half:hover &-content:before, + &-full:hover:before { + color: tint(@rate-star-color, 20%); + } + } + &-text { + margin-left: 8px; + vertical-align: middle; + display: inline-block; + font-size: @font-size-base; + } +} diff --git a/src/styles/components/result.less b/src/styles/components/result.less new file mode 100644 index 0000000000000000000000000000000000000000..20c44b5a1ce54c0fde560619d1cbbebbf5a75c39 --- /dev/null +++ b/src/styles/components/result.less @@ -0,0 +1,63 @@ +.ivu-result{ + width: 72%; + margin: 0 auto; + text-align: center; + @media screen and (max-width: @screen-xs) { + width: 100%; + } + + &-icon{ + display: inline-block; + width: 72px; + border-radius: 50%; + margin-bottom: 24px; + &-success{ + background-color: @success-color; + } + &-error{ + background-color: @error-color; + } + &-warning{ + background-color: @warning-color; + } + .ivu-icon{ + color: #fff; + font-size: 72px; + border-radius: 50%; + } + } + + &-title{ + margin-bottom: 16px; + color: @title-color; + font-weight: 500; + font-size: 24px; + line-height: 32px; + } + + &-desc{ + margin-bottom: 24px; + color: @subsidiary-color; + font-size: 14px; + line-height: 22px; + } + + &-extra{ + padding: 24px 40px; + text-align: left; + background: @table-thead-bg; + border-radius: @border-radius-small; + + @media screen and (max-width: @screen-xs) { + padding: 18px 20px; + } + } + + &-actions { + margin-top: 32px; + + .ivu-btn:not(:last-child) { + margin-right: 8px; + } + } +} diff --git a/src/styles/components/scroll.less b/src/styles/components/scroll.less new file mode 100644 index 0000000000000000000000000000000000000000..0a193c4ce5561a713052991f2e4d032687aee174 --- /dev/null +++ b/src/styles/components/scroll.less @@ -0,0 +1,82 @@ +@scroll-prefix-cls: ~"@{css-prefix}scroll"; + +.@{scroll-prefix-cls} { + &-wrapper { + width: auto; + margin: 0 auto; + position: relative; + outline: none; + } + + &-container { + overflow-y: scroll; + } + + @keyframes ani-stop-slide { + from { + overflow-y: hidden; + transform:translateZ(0); + } + to { + overflow-y: scroll; + transform:translateZ(0); + } + } + + &-container-loading { + animation: ani-stop-slide 1.5s; + } + + &-content { + opacity: 1; + transition: opacity 0.5s; + } + + &-content-loading { + opacity: 0.5; + } + + &-loader { + text-align: center; + padding: 0; + transition: padding 0.5s; + } +} + +.@{scroll-prefix-cls}-loader-wrapper { + padding: 5px 0; + height: 0; + background-color: inherit; + transform: scale(0); + transition: opacity .3s, transform .5s, height .5s; + + &-active { + height: 40px; + transform: scale(1); + } + + @keyframes ani-demo-spin { + from { + transform: rotate(0deg); + } + 50% { + transform: rotate(180deg); + } + to { + transform: rotate(360deg); + } + } + + .@{scroll-prefix-cls}-spinner { + position: relative; + } + + .@{scroll-prefix-cls}-spinner-icon { + animation: ani-demo-spin 1s linear infinite; + } +} + +@media (max-width: @screen-sm) { + .@{scroll-prefix-cls} { + } +} diff --git a/src/styles/components/select-dropdown.less b/src/styles/components/select-dropdown.less new file mode 100644 index 0000000000000000000000000000000000000000..ade4d5f5ab423d7c89565030abc172670529e25a --- /dev/null +++ b/src/styles/components/select-dropdown.less @@ -0,0 +1,30 @@ +@select-dropdown-prefix-cls: ~"@{css-prefix}select-dropdown"; +@transfer-no-max-height: ~"@{css-prefix}transfer-no-max-height"; + +.@{select-dropdown-prefix-cls} { + width: inherit; + max-height: 200px; + overflow: auto; + margin: 5px 0; + padding: 5px 0; + background-color: #fff; + box-sizing: border-box; + //border: 1px solid @border-color-split; + border-radius: @btn-border-radius; + //box-shadow: 0 1px 3px rgba(0,0,0,.2); + box-shadow: @shadow-base; + position: absolute; + z-index: @zindex-select; + &-transfer{ + z-index: @zindex-transfer; + width: auto; + } + &.@{transfer-no-max-height} { + max-height: none; + } +} +.@{modal-prefix-cls} { + .@{select-dropdown-prefix-cls} { + position: absolute !important; + } +} \ No newline at end of file diff --git a/src/styles/components/select.less b/src/styles/components/select.less new file mode 100644 index 0000000000000000000000000000000000000000..b586c2cbd21139ea3c6b4f069d30ef8c132e9553 --- /dev/null +++ b/src/styles/components/select.less @@ -0,0 +1,362 @@ +@select-prefix-cls: ~"@{css-prefix}select"; +@select-item-prefix-cls: ~"@{css-prefix}select-item"; +@select-group-prefix-cls: ~"@{css-prefix}select-group"; + +.@{select-prefix-cls} { + display: inline-block; + width: 100%; + box-sizing: border-box; + vertical-align: middle; + color: @text-color; + font-size: @font-size-base; + //position: relative; + line-height: normal; + + &-selection { + display: block; + box-sizing: border-box; + outline: none; + user-select: none; + cursor: pointer; + position: relative; + + background-color: #fff; + border-radius: @btn-border-radius; + border: 1px solid @border-color-base; + transition: all @transition-time @ease-in-out; + + &:hover, &-focused { + .hover(); + .@{select-prefix-cls}-arrow { + display: inline-block; + } + } + } + + &-arrow { + .inner-arrow(); + } + + &-visible{ + .@{select-prefix-cls}-selection{ + .active(); + } + + .@{select-prefix-cls}-arrow { + transform: translateY(-50%) rotate(180deg); + display: inline-block; + } + } + + &-disabled { + .@{select-prefix-cls}-selection { + .disabled(); + + .@{select-prefix-cls}-arrow { + color: @slider-disabled-color; + } + + &:hover { + border-color: @border-color-base; + box-shadow: none; + + .@{select-prefix-cls}-arrow { + display: inline-block; + } + } + } + } + + &-single &-selection{ + height: @input-height-base; + position: relative; + + .@{select-prefix-cls}-placeholder{ + color: @input-placeholder-color; + } + + .@{select-prefix-cls}-placeholder, .@{select-prefix-cls}-selected-value{ + display: block; + height: @input-height-base - 2px; + line-height: @input-height-base - 2px; + font-size: @font-size-base; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + padding-left: 8px; + padding-right: 24px; + } + } + + &-multiple &-selection{ + padding: 0 24px 0 4px; + //min-height: @input-height-base; + + .@{select-prefix-cls}-placeholder{ + display: block; + height: @input-height-base - 2px; + line-height: @input-height-base - 2px; + color: @input-placeholder-color; + font-size: @font-size-base; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + padding-left: 4px; + padding-right: 22px; + } + } + &-default&-multiple &-selection{ + min-height: @input-height-base; + } + + &-large&-single &-selection{ + height: @input-height-large; + + .@{select-prefix-cls}-placeholder, .@{select-prefix-cls}-selected-value{ + height: @input-height-large - 2px; + line-height: @input-height-large - 2px; + font-size: @font-size-large; + } + } + + &-large&-multiple &-selection{ + min-height: @input-height-large; + + .@{select-prefix-cls}-placeholder, .@{select-prefix-cls}-selected-value{ + min-height: @input-height-large - 2px; + line-height: @input-height-large - 2px; + font-size: @font-size-large; + } + } + + &-small&-single &-selection{ + height: @input-height-small; + border-radius: @btn-border-radius-small; + + .@{select-prefix-cls}-placeholder, .@{select-prefix-cls}-selected-value{ + height: @input-height-small - 2px; + line-height: @input-height-small - 2px; + } + } + + &-small&-multiple &-selection{ + min-height: @input-height-small; + border-radius: @btn-border-radius-small; + + .@{select-prefix-cls}-placeholder, .@{select-prefix-cls}-selected-value{ + height: auto; + min-height: @input-height-small - 2px; + line-height: @input-height-small - 2px; + } + } + + // input + &-input{ + display: inline-block; + height: @input-height-base; + line-height: @input-height-base; + padding: 0 24px 0 8px; + font-size: @font-size-base; + outline: none; + border: none; + box-sizing: border-box; + color: @input-color; + background-color: transparent; + position: relative; + cursor: pointer; + .placeholder(); + + &[disabled]{ + cursor: @cursor-disabled; + color: #ccc; + -webkit-text-fill-color: #ccc; // #5249 + } + } + + &-single &-input{ + width: 100%; + } + + &-large &-input, &-large&-multiple &-input{ + font-size: @font-size-large; + height: @input-height-large - 8px; + line-height: @input-height-large - 8px; + top: 3px; + } + + &-small &-input, &-small&-multiple &-input{ + height: @input-height-small - 6px; + line-height: @input-height-small - 6px; + top: 2px; + } + + &-multiple &-input{ + height: @input-height-base - 6px; + line-height: @input-height-base - 6px; + padding: 0 0 0 4px; + top: 2px; + } + + &-not-found{ + text-align: center; + color: @btn-disable-color; + li:not([class^=ivu-]){ + margin-bottom: 0; + } + } + &-loading{ + text-align: center; + color: @btn-disable-color; + } + + &-multiple .@{css-prefix}tag{ + height: 24px; + line-height: 22px; + margin: 3px 4px 3px 0; + max-width: 99%; + position: relative; + span:not(.ivu-select-max-tag){ + display: block; + margin-right: 14px; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + } + i{ + display: block; + position: absolute; + right: 4px; + top: 4px; + } + } + &-multiple-tag-hidden{ + margin-right: 0 !important; + } + + &-large&-multiple .@{css-prefix}tag{ + height: 32px; + line-height: 30px; + font-size: @font-size-large; + i{ + top: 9px; + } + } + + &-small&-multiple .@{css-prefix}tag{ + height: 17px; + line-height: 15px; + font-size: @font-size-small; + padding: 0 6px; + margin: 3px 4px 2px 0; + span{ + margin-right: 14px; + } + i{ + top: 1px; + right: 2px; + } + } + + &-dropdown-list { + //display: inline-block; + min-width: 100%; + list-style: none; + } + + & &-dropdown{ + width: auto; + } + + &-prefix{ + display: inline-block; + vertical-align: middle; + i{ + vertical-align: top; + } + } + &-head-with-prefix{ + display: inline-block !important; + vertical-align: middle; + } + &-single &-prefix{ + padding-left: 4px; + } + &-single &-head-with-prefix, &-multiple &-head-with-prefix{ + padding-left: 0 !important; + } + + &-head-flex{ + display: flex; + align-items: center; + } + + &-multiple &-head-flex &-prefix{ + margin-right: 4px; + } +} + +.select-item(@select-prefix-cls, @select-item-prefix-cls); + +.@{select-prefix-cls}-multiple .@{select-item-prefix-cls} { + position: relative; + &-selected{ + color: @selected-color; + background: #fff; + } + &-focus,&-selected:hover{ + background: @background-color-select-hover; + } + + &-selected&-focus { + color: shade(@selected-color, 10%); + background: #fff; + } + + &-selected:after{ + .ivu-icon(); + //float: right; + font-size: 24px; + content: '\F171'; + color: @selected-color; + position: absolute; + top: 2px; + right: 8px; + } + &-selected.ivu-select-item-disabled{ + color: @btn-disable-color; + &:after{ + color: @btn-disable-color; + } + &:hover{ + background-color: #fff; + } + } +} + +.@{select-group-prefix-cls} { + list-style: none; + margin: 0; + padding: 0; + + &-title { + padding-left: 8px; + font-size: 14px; + color: @legend-color; + height: 30px; + line-height: 30px; + } +} + +.@{form-item-prefix-cls}-error{ + .@{select-prefix-cls}{ + &-selection{ + border: 1px solid @error-color; + } + &-arrow{ + color: @error-color; + } + &-visible .@{select-prefix-cls}-selection{ + .active-error; + } + } +} diff --git a/src/styles/components/skeleton.less b/src/styles/components/skeleton.less new file mode 100644 index 0000000000000000000000000000000000000000..2aa2855177dc8dabb13e489e0d65c4229a01808f --- /dev/null +++ b/src/styles/components/skeleton.less @@ -0,0 +1,116 @@ +@skeleton-prefix-cls: ~"@{css-prefix}skeleton"; +@skeleton-item-prefix-cls: ~"@{css-prefix}skeleton-item"; + +.@{skeleton-item-prefix-cls} { + background: @skeleton-base-color; + border-radius: @border-radius-small; + &-inline { + display: inline-block; + } + &-circle { + border-radius: 50%; + } + &-circle, &-square { + &-small { + width: @skeleton-height-small; + height: @skeleton-height-small; + } + &-large { + width: @skeleton-height-large; + height: @skeleton-height-large; + } + &-default { + width: @skeleton-height-base; + height: @skeleton-height-base; + } + } + &-rect { + &-small { + width: @skeleton-rect-width-small; + height: @skeleton-height-small; + } + &-large { + width: @skeleton-rect-width-large; + height: @skeleton-height-large; + } + &-default { + width: @skeleton-rect-width-base; + height: @skeleton-height-base; + } + } + &-image { + position: relative; + &-small { + width: @skeleton-image-width-small; + height: @skeleton-image-width-small; + } + &-large { + width: @skeleton-image-width-large; + height: @skeleton-image-width-large; + } + &-default { + width: @skeleton-image-width-base; + height: @skeleton-image-width-base; + } + &-icon { + position: absolute; + z-index: 1; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + color: #ccc; + } + } + &-title { + margin-bottom: 28px; + } + &-avatar { + margin-right: @skeleton-item-margin; + } + &-round { + border-radius: @skeleton-border-radius-round; + } + &-inner { + height: 16px; + } + &-animated { + position: relative; + overflow: hidden; + &:before { + content: ''; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: linear-gradient( + 90deg, + @skeleton-base-color 25%, + @skeleton-to-color 37%, + @skeleton-base-color 63% + ); + background-size: 400% 100%; + animation: ivuSkeletonMove 1.4s ease infinite; + } + } + @keyframes ivuSkeletonMove { + 0% { + background-position: 100% 50%; + } + + 100% { + background-position: 0 50%; + } + } +} + +.@{skeleton-prefix-cls} { + background: @white; + .@{skeleton-item-prefix-cls} { + margin-top: @skeleton-item-margin; + } + .@{skeleton-item-prefix-cls}:first-child { + margin-top: 0; + } +} + diff --git a/src/styles/components/slider.less b/src/styles/components/slider.less new file mode 100644 index 0000000000000000000000000000000000000000..d84966f30ba2f8a9f223983b96000e0dbbf852a1 --- /dev/null +++ b/src/styles/components/slider.less @@ -0,0 +1,128 @@ +@slider-prefix-cls: ~"@{css-prefix}slider"; + +.@{slider-prefix-cls} { + line-height: normal; + &-wrap{ + width: 100%; + height: @slider-height; + margin: @slider-margin; + background-color: @border-color-split; + border-radius: @btn-border-radius-small; + vertical-align: middle; + position: relative; + cursor: pointer; + } + + &-button-wrap{ + .square(@slider-button-wrap-size); + text-align: center; + background-color: transparent; + position: absolute; + top: @slider-button-wrap-offset; + transform: translateX(-50%); + + .@{tooltip-prefix-cls} { + display: block; + user-select: none; + } + } + + &-button{ + width: 12px; + height: 12px; + border: 2px solid @slider-color; + border-radius: 50%; + background-color: #fff; + transition: all @transition-time linear; + outline: 0; + + &:focus, + &:hover, + &-dragging + { + border-color: @primary-color; + transform: scale(1.5); + } + + &:hover{ + cursor: grab; + } + &-dragging, + &-dragging:hover + { + cursor: grabbing; + } + } + + &-bar{ + height: @slider-height; + background: @slider-color; + border-radius: @btn-border-radius-small; + position: absolute; + } + + &-stop{ + position: absolute; + .square(@slider-height); + border-radius: 50%; + background-color: #fff; + transform: translateX(-50%); + } + + &-marks{ + top: 0; + left: 12px; + width: 18px; + height: 100%; + + &-item{ + position: absolute; + transform: translateX(-50%); + font-size: @font-size-base; + color: @subsidiary-color; + margin-top: 15px; + } + } +} + +.@{slider-prefix-cls}-disabled{ + cursor: @cursor-disabled; + + .@{slider-prefix-cls}-wrap{ + background-color: @slider-disabled-color; + cursor: @cursor-disabled; + } + .@{slider-prefix-cls}-bar{ + background-color: @slider-disabled-color; + } + + .@{slider-prefix-cls}-button{ + border-color: @slider-disabled-color; + + &:hover, + &-dragging + { + border-color: @slider-disabled-color; + } + &:hover{ + cursor: @cursor-disabled; + } + &-dragging, + &-dragging:hover + { + cursor: @cursor-disabled; + } + } +} + +.@{slider-prefix-cls}-input{ + .@{slider-prefix-cls}-wrap{ + width: auto; + margin-right: 100px; + } + + .@{input-number-prefix-cls}{ + float: right; + margin-top: -14px; + } +} diff --git a/src/styles/components/space.less b/src/styles/components/space.less new file mode 100644 index 0000000000000000000000000000000000000000..b27bb431e1beab99ff3f4e35e13ee5420cec3e6d --- /dev/null +++ b/src/styles/components/space.less @@ -0,0 +1,29 @@ +@space-prefix-cls: ~"@{css-prefix}space"; + +.@{space-prefix-cls} { + display: inline-flex; + &-flex { + display: flex; + } + &-vertical { + flex-direction: column; + } + &-wrap { + flex-wrap: wrap; + } + &-start { + align-items: flex-start; + } + &-end { + align-items: flex-end; + } + &-center { + align-items: center; + } + &-baseline { + align-items: baseline; + } + &-stretch { + align-items: stretch; + } +} diff --git a/src/styles/components/spin.less b/src/styles/components/spin.less new file mode 100644 index 0000000000000000000000000000000000000000..589315be8bae491d4e0abf8c0bdca03094d48bcf --- /dev/null +++ b/src/styles/components/spin.less @@ -0,0 +1,92 @@ +@spin-prefix-cls: ~"@{css-prefix}spin"; +@spin-dot-size-small: 12px; +@spin-dot-size: 20px; +@spin-dot-size-large: 32px; + +.@{spin-prefix-cls} { + color: @primary-color; + vertical-align: middle; + text-align: center; + + &-dot { + position: relative; + display: block; + border-radius: 50%; + background-color: @primary-color; + .square(@spin-dot-size); + animation: ani-spin-bounce 1s 0s ease-in-out infinite; + } + + &-large &-dot { + .square(@spin-dot-size-large); + } + + &-small &-dot { + .square(@spin-dot-size-small); + } + + &-fix { + position: absolute; + top: 0; + left: 0; + z-index: @zindex-spin; + .square(100%); + background-color: rgba(255,255,255,.9); + } + &-fullscreen{ + z-index: @zindex-spin-fullscreen; + &-wrapper{ + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + } + } + + &-fix &-main { + position: absolute; + top: 50%; + left: 50%; + -ms-transform: translate(-50%, -50%); + transform: translate(-50%, -50%); + } + + &-fix &-dot { + display: inline-block; + } + + &-text, + &-show-text &-dot { + display: none; + } + + &-show-text &-text { + display: block; + } +} + +// use in Table loading, Table right border is not included in .ivu-table-wrapper, so fix it +.@{table-prefix-cls}-wrapper{ + > .@{spin-prefix-cls}-fix{ + border: none; + } +} +.@{table-prefix-cls}-wrapper-with-border{ + > .@{spin-prefix-cls}-fix{ + border: 1px solid @border-color-base; + border-top: 0; + border-left: 0; + } +} + +@keyframes ani-spin-bounce { + 0% { + transform: scale(0); + } + + 100% { + transform: scale(1); + opacity: 0; + } +} diff --git a/src/styles/components/split.less b/src/styles/components/split.less new file mode 100644 index 0000000000000000000000000000000000000000..6d3a1e5c3b9ce4d85e96998e350ac66383bfafe3 --- /dev/null +++ b/src/styles/components/split.less @@ -0,0 +1,123 @@ +@split-prefix-cls: ~"@{css-prefix}split"; +@box-shadow: 0 0 4px 0 rgba(28, 36, 56, 0.4); +@trigger-bar-background: rgba(23, 35, 61, 0.25); +@trigger-background: #f8f8f9; +@trigger-width: 6px; +@trigger-bar-width: 4px; +@trigger-bar-offset: (@trigger-width - @trigger-bar-width) / 2; +@trigger-bar-interval: 3px; +@trigger-bar-weight: 1px; +@trigger-bar-con-height: (@trigger-bar-weight + @trigger-bar-interval) * 8; + +.@{split-prefix-cls} { + &-wrapper { + position: relative; + width: 100%; + height: 100%; + } + &-pane { + position: absolute; + &.left-pane, &.right-pane { + top: 0; + bottom: 0; + } + &.left-pane { + left: 0; + } + &.right-pane { + right: 0; + } + &.top-pane, &.bottom-pane { + left: 0; + right: 0; + } + &.top-pane { + top: 0; + } + &.bottom-pane { + bottom: 0; + } + + &-moving{ + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + } + } + &-trigger { + border: 1px solid @border-color-base; + &-con { + position: absolute; + transform: translate(-50%, -50%); + z-index: 10; + } + &-bar-con { + position: absolute; + overflow: hidden; + &.vertical { + left: @trigger-bar-offset; + top: 50%; + height: @trigger-bar-con-height; + transform: translate(0, -50%); + } + &.horizontal { + left: 50%; + top: @trigger-bar-offset; + width: @trigger-bar-con-height; + transform: translate(-50%, 0); + } + } + &-vertical { + width: @trigger-width; + height: 100%; + background: @trigger-background; + border-top: none; + border-bottom: none; + cursor: col-resize; + .@{split-prefix-cls}-trigger-bar { + width: @trigger-bar-width; + height: 1px; + background: @trigger-bar-background; + float: left; + margin-top: @trigger-bar-interval; + } + } + &-horizontal { + height: @trigger-width; + width: 100%; + background: @trigger-background; + border-left: none; + border-right: none; + cursor: row-resize; + .@{split-prefix-cls}-trigger-bar { + height: @trigger-bar-width; + width: 1px; + background: @trigger-bar-background; + float: left; + margin-right: @trigger-bar-interval; + } + } + } + &-horizontal { + > .@{split-prefix-cls}-trigger-con { + top: 50%; + height: 100%; + width: 0; + } + } + &-vertical { + > .@{split-prefix-cls}-trigger-con { + left: 50%; + height: 0; + width: 100%; + } + } + .no-select { + -webkit-touch-callout: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + } +} diff --git a/src/styles/components/steps.less b/src/styles/components/steps.less new file mode 100644 index 0000000000000000000000000000000000000000..2b334f23d0327b83cf3da03e43475146440c93ac --- /dev/null +++ b/src/styles/components/steps.less @@ -0,0 +1,367 @@ +@steps-prefix-cls: ~"@{css-prefix}steps"; +@steps-wait-icon-color: #ccc; +@steps-wait-title-color: #999; +@steps-wait-description-color: @steps-wait-title-color; +@steps-wait-tail-color: @border-color-split; +@steps-title-color: #666; + +.@{steps-prefix-cls} { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + width: 100%; + font-size: 0; + line-height: 1.5; + + &-item{ + display: inline-block; + position: relative; + vertical-align: top; + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1; + overflow: hidden; + &:last-child{ + -webkit-box-flex: 0; + -ms-flex: 0; + flex: none; + } + + &.@{steps-prefix-cls}-status-wait{ + .@{steps-prefix-cls}-head-inner { + background-color: #fff; + > .@{steps-prefix-cls}-icon, span { + color: @steps-wait-icon-color; + } + } + .@{steps-prefix-cls}-title { + color: @steps-wait-title-color; + } + .@{steps-prefix-cls}-content { + color: @steps-wait-description-color; + } + .@{steps-prefix-cls}-tail > i { + background-color: @steps-wait-tail-color; + } + } + &.@{steps-prefix-cls}-status-process { + .@{steps-prefix-cls}-head-inner { + border-color: @primary-color; + background-color: @primary-color; + > .@{steps-prefix-cls}-icon, span { + color: #fff; + } + } + .@{steps-prefix-cls}-title { + color: @steps-title-color; + } + .@{steps-prefix-cls}-content { + color: @steps-title-color; + } + .@{steps-prefix-cls}-tail > i { + background-color: @border-color-split; + } + } + &.@{steps-prefix-cls}-status-finish { + .@{steps-prefix-cls}-head-inner { + background-color: #fff; + border-color: @primary-color; + > .@{steps-prefix-cls}-icon, span { + color: @primary-color; + } + } + .@{steps-prefix-cls}-tail > i:after { + width: 100%; + background: @primary-color; + transition: all @transition-time @ease-in-out; + opacity: 1; + } + .@{steps-prefix-cls}-title { + color: @steps-wait-title-color; + } + .@{steps-prefix-cls}-content { + color: @steps-wait-description-color; + } + } + + &.@{steps-prefix-cls}-status-error { + .@{steps-prefix-cls}-head-inner { + background-color: #fff; + border-color: @error-color; + > .@{steps-prefix-cls}-icon { + color: @error-color; + } + } + .@{steps-prefix-cls}-title { + color: @error-color; + } + .@{steps-prefix-cls}-content { + color: @error-color; + } + .@{steps-prefix-cls}-tail > i { + background-color: @border-color-split; + } + } + + &.@{steps-prefix-cls}-next-error { + .@{steps-prefix-cls}-tail > i, + .@{steps-prefix-cls}-tail > i:after { + background-color: @error-color; + } + } + + &.@{steps-prefix-cls}-custom { + .@{steps-prefix-cls}-head-inner { + background: none; + border: 0; + width: auto; + height: auto; + > .@{steps-prefix-cls}-icon { + font-size: 20px; + top: 2px; + width: 20px; + height: 20px; + } + } + &.@{steps-prefix-cls}-status-process { + .@{steps-prefix-cls}-head-inner > .@{steps-prefix-cls}-icon { + color: @primary-color; + } + } + } + } + &-item:last-child &-tail{ + display: none; + } + + .@{steps-prefix-cls}-head, + .@{steps-prefix-cls}-main { + position: relative; + display: inline-block; + vertical-align: top; + } + .@{steps-prefix-cls}-head { + background: #fff; + } + + .@{steps-prefix-cls}-head-inner { + display: block; + width: 26px; + height: 26px; + line-height: 24px; + margin-right: 8px; + text-align: center; + border: 1px solid @steps-wait-icon-color; + border-radius: 50%; + font-size: 14px; + transition: background-color @transition-time @ease-in-out; + + > .@{steps-prefix-cls}-icon { + line-height: 1; + position: relative; + + &.ivu-icon { + font-size: 24px; + &-ios-checkmark-empty, + &-ios-close-empty { + font-weight: bold; + } + } + } + } + .@{steps-prefix-cls}-main { + margin-top: 2.5px; + display: inline; + } + .@{steps-prefix-cls}-custom .@{steps-prefix-cls}-title{ + margin-top: 2.5px; + } + + .@{steps-prefix-cls}-title { + display: inline-block; + margin-bottom: 4px; + padding-right: 10px; + font-size: 14px; + font-weight: bold; + color: #666; + background: #fff; + + > a:first-child:last-child { + color: #666; + } + } + .@{steps-prefix-cls}-item-last { + .@{steps-prefix-cls}-title { + padding-right: 0; + width: 100%; + } + } + .@{steps-prefix-cls}-content { + font-size: 12px; + color: #999; + } + .@{steps-prefix-cls}-tail { + width: 100%; + padding: 0 10px; + position: absolute; + left: 0; + top: 13px; + > i { + display: inline-block; + width: 100%; + height: 1px; + vertical-align: top; + background: @border-color-split; + border-radius: 1px; + position: relative; + &:after { + content: ''; + width: 0; + height: 100%; + background: @border-color-split; + opacity: 0; + position: absolute; + top: 0; + } + } + } + + &.@{steps-prefix-cls}-small { + .@{steps-prefix-cls}-head-inner { + width: 18px; + height: 18px; + line-height: 16px; + margin-right: 10px; + text-align: center; + border-radius: 50%; + font-size: 12px; + + > .@{steps-prefix-cls}-icon.ivu-icon { + font-size: 16px; + top: 0; + } + } + .@{steps-prefix-cls}-main { + margin-top: 0; + } + .@{steps-prefix-cls}-title { + margin-bottom: 4px; + margin-top: 0; + color: #666; + font-size: 12px; + font-weight: bold; + } + .@{steps-prefix-cls}-content { + font-size: 12px; + color: #999; + padding-left: 30px; + } + .@{steps-prefix-cls}-tail { + top: 8px; + padding: 0 8px; + > i { + height: 1px; + width: 100%; + border-radius: 1px; + } + } + } + + &.@{steps-prefix-cls}-small .@{steps-prefix-cls}-item.@{steps-prefix-cls}-custom .@{steps-prefix-cls}-head-inner, + .@{steps-prefix-cls}-item.@{steps-prefix-cls}-custom .@{steps-prefix-cls}-head-inner { + width: inherit; + height: inherit; + line-height: inherit; + border-radius: 0; + border: 0; + background: none; + } +} + +.@{steps-prefix-cls}-vertical { + display: block; + .@{steps-prefix-cls}-item { + display: block; + overflow: visible; + } + + .@{steps-prefix-cls}-tail { + position: absolute; + left: 13px; + top: 0; + height: 100%; + width: 1px; + padding: 30px 0 4px 0; + > i { + height: 100%; + width: 1px; + &:after { + height: 0; + width: 100%; + } + } + } + + .@{steps-prefix-cls}-status-finish { + .@{steps-prefix-cls}-tail > i:after { + height: 100%; + } + } + + .@{steps-prefix-cls}-head { + float: left; + &-inner { + margin-right: 16px; + } + } + + .@{steps-prefix-cls}-main { + min-height: 47px; + overflow: hidden; + display: block; + .@{steps-prefix-cls}-title { + line-height: 26px; + } + .@{steps-prefix-cls}-content { + padding-bottom: 12px; + padding-left: 0; + } + } + + .@{steps-prefix-cls}-custom .@{steps-prefix-cls}-icon { + left: 4px; + } + &.@{steps-prefix-cls}-small .@{steps-prefix-cls}-custom .@{steps-prefix-cls}-icon { + left: 0; + } +} + +.@{steps-prefix-cls}-vertical.@{steps-prefix-cls}-small { + .@{steps-prefix-cls}-tail { + position: absolute; + left: 9px; + top: 0; + padding: 22px 0 4px 0; + > i { + height: 100%; + } + } + + .@{steps-prefix-cls}-title { + line-height: 18px; + } +} + +.@{steps-prefix-cls}-horizontal { + &.@{steps-prefix-cls}-hidden { + visibility: hidden; + } + .@{steps-prefix-cls}-content { + //max-width: 100px; + padding-left: 35px; + } + .@{steps-prefix-cls}-item:not(:first-child) .@{steps-prefix-cls}-head { + padding-left: 10px; + margin-left: -10px; + } +} diff --git a/src/styles/components/switch.less b/src/styles/components/switch.less new file mode 100644 index 0000000000000000000000000000000000000000..cd6f76eaf0e170a0d8e14e8a72cb7cc4fb618cfe --- /dev/null +++ b/src/styles/components/switch.less @@ -0,0 +1,191 @@ +@switch-prefix-cls: ~"@{css-prefix}switch"; + +.@{switch-prefix-cls} { + display: inline-block; + width: 44px; + height: 22px; + line-height: 20px; + border-radius: 22px; + vertical-align: middle; + border: 1px solid #ccc; + background-color: #ccc; + position: relative; + cursor: pointer; + user-select: none; + transition: all @transition-time @ease-in-out; + + &-loading{ + opacity: .4; + } + + &-inner { + color: #fff; + font-size: @font-size-small; + position: absolute; + left: 23px; + + i { + width: 12px; + height: 12px; + text-align: center; + position: relative; + top: -1px; + } + } + + &:after { + content: ''; + width: 18px; + height: 18px; + border-radius: 18px; + background-color: #fff; + position: absolute; + left: 1px; + top: 1px; + cursor: pointer; + transition: left @transition-time @ease-in-out, width @transition-time @ease-in-out; + } + + &:active:after { + width: 26px; + } + + &:before{ + content: ''; + display: none; + width: 14px; + height: 14px; + border-radius: 50%; + background-color: transparent; + position: absolute; + left: 3px; + top: 3px; + z-index: 1; + border: 1px solid @primary-color; + border-color: transparent transparent transparent @primary-color; + animation: switch-loading 1s linear; + animation-iteration-count: infinite; + } + &-loading:before{ + display: block; + } + + &:not(&-disabled):focus { + box-shadow: 0 0 0 2px fade(@primary-color, 20%); + outline: 0; + } + + &:focus:hover { + //box-shadow: none; + } + + &-small { + width: 28px; + height: 16px; + line-height: 14px; + &:after { + width: 12px; + height: 12px; + } + &:active:after { + width: 14px; + } + &:before{ + width: 10px; + height: 10px; + left: 2px; + top: 2px; + } + } + + &-small&-checked:after { + left: 13px; + } + &-small&-checked:before { + left: 14px; + } + + &-small:active&-checked:after { + left: 11px; + } + + &-large{ + width: 56px; + &:active:after { + width: 26px; + } + } + + &-large:active:after { + width: 30px; + } + + &-large&-checked:after { + left: 35px; + } + &-large&-checked:before { + left: 37px; + } + + &-large:active&-checked:after { + left: 23px; + } + + &-checked { + border-color: @primary-color; + background-color: @primary-color; + + .@{switch-prefix-cls}-inner { + left: 7px; + } + + &:after { + left: 23px; + } + &:before{ + left: 25px; + } + + &:active:after { + left: 15px; + } + } + + &-disabled { + cursor: @cursor-disabled; + opacity: .4; + + &:after { + background: #fff; + cursor: not-allowed; + } + + .@{switch-prefix-cls}-inner { + color: #fff; + } + } + + &-disabled&-checked{ + border-color: @primary-color; + background-color: @primary-color; + opacity: .4; + + &:after { + background: #fff; + } + + .@{switch-prefix-cls}-inner { + color: #fff; + } + } + +} + +@keyframes switch-loading { + 0% { + transform: rotate(0); + } + 100% { + transform: rotate(360deg); + } +} diff --git a/src/styles/components/table.less b/src/styles/components/table.less new file mode 100644 index 0000000000000000000000000000000000000000..77e217a99cacbdb40c816b93017dc29d154ee14a --- /dev/null +++ b/src/styles/components/table.less @@ -0,0 +1,541 @@ +@table-prefix-cls: ~"@{css-prefix}table"; +@table-select-item-prefix-cls: ~"@{table-prefix-cls}-filter-select-item"; + +.@{table-prefix-cls} { + &-wrapper{ + position: relative; + //border: 1px solid @border-color-base; + //border-bottom: 0; + //border-right: 0; + overflow: hidden; // 开启 max-height 时,没有 overflow: hidden,则底部多出 1px,早期没有 overflow 是因为有些控件没有加 transfer + &-with-border{ + border: 1px solid @border-color-base; + border-bottom: 0; + border-right: 0; + } + } + width: inherit; + height: 100%; + max-width: 100%; + overflow: hidden; + color: @text-color; + font-size: @font-size-base; + background-color: #fff; + + box-sizing: border-box; + //position: relative; + + &-summary{ + border-top: 1px solid @border-color-split; + tr td{ + background-color: @table-thead-bg; + } + } + + &-with-summary{ + .ivu-table-tbody{ + tr:last-child td{ + border-bottom: none; + } + } + } + + &-resize-line{ + position: absolute; + top: 0; + left: 0; + bottom: 0; + width: 1px; + border-right: 1px dashed @border-color-split; + } + + &-hide{ + opacity: 0; + } + + &:before{ + content: ''; + width: 100%; + height: 1px; + position: absolute; + left: 0; + bottom: 0; + background-color: @border-color-base; + //z-index: 1; + z-index: 4; // 解决开启 border,同时固定表头和列,fixed 的最底下没有边框 + } + + &-border:after{ + content: ''; + width: 1px; + height: 100%; + position: absolute; + top: 0; + right: 0; + background-color: @border-color-base; + z-index: 3; + } + + &-with-header{ + //border-radius: @border-radius-base @border-radius-base 0 0; + } + + &-with-footer{ + //border: 1px solid @border-color-base; + //border-radius: 0 0 @border-radius-base @border-radius-base; + } + + &-with-header&-with-footer{ + //border-radius: @border-radius-base; + } + + &-title, &-footer{ + height: 48px; + line-height: 48px; + border-bottom: 1px solid @border-color-split; + } + &-footer{ + border-bottom: none; + } + + &-header{ + overflow: hidden; + thead{ + tr{ + th{ + position: relative; + height: 100%; + padding: 8px 0; + } + } + } + &-resizable{ + position: absolute; + width: 10px; + height: 100%; + bottom: 0; + right: -5px; + cursor: col-resize; + z-index: 1; + } + } + &-body{ + //overflow: auto; + //position: relative; + + } + &-overflowX{ + overflow-x: scroll; + } + &-overflowY{ + overflow-y: scroll; + } + &-tip{ + overflow-x: auto; + overflow-y: hidden; + //position: relative; + } + + &-with-fixed-top&-with-footer{ + .@{table-prefix-cls}-footer{ + border-top: 1px solid @border-color-base; + } + tbody tr:last-child td{ + border-bottom: none; + } + } + + th, td + { + min-width: 0; + height: 48px; + box-sizing: border-box; + text-align: left; + text-overflow: ellipsis; + vertical-align: middle; + //position: relative; + border-bottom: 1px solid @border-color-split; + } + + th { + height: 40px; + white-space: nowrap; + overflow: hidden; + background-color: @table-thead-bg; + } + td{ + background-color: #fff; + transition: background-color @transition-time @ease-in-out; + } + + th&-column, + td&-column + { + &-left{ + text-align: left; + } + &-center{ + text-align: center; + } + &-right{ + text-align: right; + } + } + + & table{ + //width: 100%; + table-layout: fixed; + } + &-border{ + th,td{ + border-right: 1px solid @border-color-split; + } + } + &-cell{ + padding-left: 18px; + padding-right: 18px; + overflow: hidden; + text-overflow: ellipsis; + white-space: normal; + word-break: break-all; + box-sizing: border-box; + + &-ellipsis { + word-break: keep-all; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + } + + &-tooltip{ + width: 100%; + display: flex; + align-items: center; + &-content{ + display: block; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + } + } + + &-with-expand{ + height: 47px; + line-height: 47px; + padding: 0; + text-align: center; + } + + &-expand{ + cursor: pointer; + transition: transform @transition-time @ease-in-out; + i{ + font-size: @font-size-base; + } + &-expanded{ + transform: rotate(90deg); + } + } + &-sort{ + cursor: pointer; + user-select: none; + } + + // #3159 + &-with-selection{ + .@{checkbox-prefix-cls}-wrapper{ + margin-right: 0; + } + } + + &-tree{ + display: inline-block; + width: 16px; + height: 16px; + border: 1px solid @border-color-base; + border-radius: 2px; + background-color: #fff; + line-height: 12px; + cursor: pointer; + vertical-align: middle; + transition: color @transition-time @ease-in-out, border-color @transition-time @ease-in-out; + + &-empty{ + cursor: default; + color: transparent; + background-color: transparent; + border-color: transparent; + } + + &:hover { + color: @primary-color; + border-color: @primary-color; + } + &-empty:hover{ + color: transparent; + border-color: transparent; + } + + &-loading{ + cursor: default; + background-color: transparent; + border-color: transparent; + &:hover{ + border-color: transparent; + } + } + + &-level{ + display: inline-block; + height: 16px; + } + } + &-slot{ + &-inline{ + display: inline; + } + &-inline-block{ + display: inline-block; + } + } + } + &-hidden{ + visibility: hidden; + } + th &-cell{ + display: inline-block; + //position: relative; + word-wrap: normal; + vertical-align: middle; + } + + td&-expanded-cell{ + padding: 20px 50px; + background: @table-thead-bg; + } + + &-stripe &-body, + &-stripe &-fixed-body + { + tr:nth-child(2n) { + td{ + background-color: @table-td-stripe-bg; + } + } + // #1380 + tr.@{table-prefix-cls}-row-hover{ + td{ + background-color: @table-td-hover-bg; + } + } + } + + tr&-row-hover{ + td{ + background-color: @table-td-hover-bg; + } + } + + &-large { + font-size: @font-size-large; + th{ + height: 48px; + } + td{ + height: 60px; + } + &-title, &-footer{ + height: 60px; + line-height: 60px; + } + .@{table-prefix-cls}-cell-with-expand{ + height: 59px; + line-height: 59px; + i{ + font-size: @font-size-base+2; + } + } + } + + &-small{ + font-size: @font-size-small; + th{ + height: 32px; + } + td{ + height: 40px; + } + &-title, &-footer{ + height: 40px; + line-height: 40px; + } + .@{table-prefix-cls}-cell-with-expand{ + height: 39px; + line-height: 39px; + } + } + + &-row-highlight, + tr&-row-highlight&-row-hover, + &-stripe &-body tr&-row-highlight:nth-child(2n), + &-stripe &-fixed-body tr&-row-highlight:nth-child(2n) + { + td{ + background-color: @table-td-highlight-bg; + } + } + + &-fixed, &-fixed-right{ + position: absolute; + top: 0; + left: 0; + + &::before { + content: ''; + width: 100%; + height: 1px; + background-color: @border-color-base; + position: absolute; + left: 0; + bottom: 0; + z-index: 4; + } + } + &-fixed-right{ + top: 0; + left: auto; + right: 0; + } + &-fixed&-fixed-shadow{ + box-shadow: 2px 0 6px -2px rgba(0, 0, 0, 0.2); + } + &-fixed-right&-fixed-shadow{ + box-shadow: -2px 0 6px -2px rgba(0, 0, 0, 0.2); + } + &-fixed-right-header{ + position: absolute; + top: -1px; + right: 0; + background-color: @table-thead-bg; + border-top: 1px solid @border-color-base; + border-bottom: 1px solid @border-color-split; + } + &-fixed-header{ + overflow: hidden; + // 在 #1387 里,添加了下面的代码,但是在 #5174 会出现新的问题。 + // 但是,在新版本里,注释掉后,#1387 的问题并没有再复现,所以注释掉 + //&-with-empty{ + // .@{table-prefix-cls}-hidden{ + // .@{table-prefix-cls}-sort{ + // display: none; + // } + // .@{table-prefix-cls}-cell span{ + // display: none; + // } + // } + //} + thead{ + tr{ + th{ + position: relative; + height: 100%; + padding: 8px 0; + } + } + } + } + &-fixed-body{ + overflow: hidden; + position: relative; + z-index: 3; + } + + &-fixed-shadow { + width: 1px; + height: 100%; + position: absolute; + top: 0; + right: 0; + box-shadow: @shadow-right; + overflow: hidden; + z-index: 1; + } + + &-sort{ + .sortable(); + } + &-filter{ + display: inline-block; + cursor: pointer; + position: relative; + //top: 1px; + + i{ + color: @btn-disable-color; + transition: color @transition-time @ease-in-out; + &:hover{ + color: inherit; + } + &.on{ + color: @primary-color; + } + } + &-list{ + padding: 8px 0 0; + &-item{ + padding: 0 12px 8px; + + .ivu-checkbox-wrapper + .ivu-checkbox-wrapper{ + margin: 0; + } + label { + display: block; + + & > span{ + margin-right: 4px; + } + } + } + ul{ + padding-bottom: 8px; + } + .select-item(@table-prefix-cls, @table-select-item-prefix-cls); + } + &-footer{ + padding: 4px; + border-top: 1px solid @border-color-split; + overflow: hidden; + button:first-child{ + float: left; + } + button:last-child{ + float: right; + } + } + } + + &-tip { + table { + width: 100%; + + td { + text-align: center; + } + } + } + + &-expanded-hidden{ + visibility: hidden; + } + + &-context-menu{ + position: absolute; + } +} +.ivu-table-popper{ + min-width: 0; + text-align: left; + .ivu-poptip-body{ + padding: 0; + } +} diff --git a/src/styles/components/tabs.less b/src/styles/components/tabs.less new file mode 100644 index 0000000000000000000000000000000000000000..dbf5f39cbe1f9120cea42ae92ea9aa83c01b3a77 --- /dev/null +++ b/src/styles/components/tabs.less @@ -0,0 +1,249 @@ +@tabs-prefix-cls: ~"@{css-prefix}tabs"; + +.@{tabs-prefix-cls} { + box-sizing: border-box; + position: relative; + overflow: hidden; + color: @text-color; + .clearfix; + + &-bar { + outline: none; + } + + &-ink-bar { + height: 2px; + box-sizing: border-box; + background-color: @primary-color; + position: absolute; + left: 0; + bottom: 1px; + z-index: 1; + transition: transform .3s @ease-in-out; + transform-origin: 0 0; + } + + &-bar { + border-bottom: 1px solid @border-color-base; + margin-bottom: 16px; + } + + &-nav-container { + margin-bottom: -1px; + line-height: @line-height-base; + font-size: @font-size-base; + box-sizing: border-box; + white-space: nowrap; + overflow: hidden; + position: relative; + .clearfix; + } + + &-nav-container:focus { + outline: none; + .@{tabs-prefix-cls}-tab-focused { + border-color: @link-hover-color !important; + } + } + + &-nav-container-scrolling { + padding-left: 32px; + padding-right: 32px; + } + + &-nav-wrap { + overflow: hidden; + margin-bottom: -1px; + } + + &-nav-scroll { + overflow: hidden; + white-space: nowrap; + } + + &-nav-right{ + float: right; + margin-left: 5px; + } + + &-nav-prev, &-nav-next{ + width: 32px; + text-align: center; + position: absolute; + line-height: 32px; + cursor: pointer; + i{ + font-size: 16px; + } + } + + &-nav-prev{ + left: 0; + } + + &-nav-next{ + right: 0; + } + + &-nav-scrollable{ + padding: 0 32px; + } + + &-nav-scroll-disabled{ + display: none; + } + + &-nav { + padding-left: 0; + margin: 0; + float: left; + list-style: none; + box-sizing: border-box; + position: relative; + transition: transform 0.5s @ease-in-out; + + &:before, + &:after { + display: table; + content: " "; + } + + &:after { + clear: both; + } + + .@{tabs-prefix-cls}-tab-disabled { + pointer-events: none; + cursor: default; + color: #ccc; + } + + .@{tabs-prefix-cls}-tab { + display: inline-block; + height: 100%; + padding: 8px 16px; + margin-right: 16px; + box-sizing: border-box; + cursor: pointer; + text-decoration: none; + position: relative; + transition: color .3s @ease-in-out; + + &:hover { + color: @link-hover-color; + } + + &:active { + color: @link-active-color; + } + .@{css-prefix-iconfont} { + width: 14px; + height: 14px; + margin-right: 8px; + } + } + + .@{tabs-prefix-cls}-tab-active { + color: @primary-color; + } + } + &-mini &-nav-container { + font-size: @font-size-base; + } + + &-mini &-tab { + margin-right: 0; + padding: 8px 16px; + font-size: @font-size-small; + } + + & { + .@{tabs-prefix-cls}-content-animated { + display: flex; + flex-direction: row; + will-change: transform; + transition: transform .3s @ease-in-out; + } + + .@{tabs-prefix-cls}-tabpane { + flex-shrink: 0; + width: 100%; + transition: opacity .3s; + opacity: 1; + outline: none; + } + + .@{tabs-prefix-cls}-tabpane-inactive { + opacity: 0; + height: 0; + } + } + + // card style + &&-card > &-bar &-nav-container { + height: 32px; + } + &&-card > &-bar &-ink-bar { + visibility: hidden; + } + &&-card > &-bar &-tab { + margin: 0; + margin-right: 4px; + height: 31px; + padding: 5px 16px 4px; + border: 1px solid @border-color-base; + border-bottom: 0; + border-radius: @btn-border-radius @btn-border-radius 0 0; + transition: all 0.3s @ease-in-out; + background: @table-thead-bg; + } + &&-card > &-bar &-tab-active { + height: 32px; + padding-bottom: 5px; + background: #fff; + transform: translateZ(0); + border-color: @border-color-base; + color: @primary-color; + } + &&-card > &-bar &-nav-wrap { + margin-bottom: 0; + } + &&-card > &-bar &-tab &-close { + width: 0; + height: 22px; + font-size: 22px; + margin-right: 0; + color: @legend-color; + text-align: right; + vertical-align: middle; + overflow: hidden; + position: relative; + top: -1px; + transform-origin: 100% 50%; + transition: all 0.3s @ease-in-out; + &:hover { + color: #444; + } + } + + &&-card > &-bar &-tab-active &-close, + &&-card > &-bar &-tab:hover &-close { + width: 22px; + transform: translateZ(0); + margin-right: -6px; + } + + &-context-menu{ + position: absolute; + } +} + +.@{tabs-prefix-cls}-no-animation{ + > .@{tabs-prefix-cls}-content { + transform: none!important; + + > .@{tabs-prefix-cls}-tabpane-inactive { + display: none; + } + } +} diff --git a/src/styles/components/tag-select.less b/src/styles/components/tag-select.less new file mode 100644 index 0000000000000000000000000000000000000000..0790f38424d8ba763f3f57656533614baa4ee9a7 --- /dev/null +++ b/src/styles/components/tag-select.less @@ -0,0 +1,30 @@ +.ivu-tag-select{ + position: relative; + max-height: 32px; + margin-left: -8px; + overflow: hidden; + line-height: 32px; + user-select: none; + + &-expanded{ + max-height: 200px; + } + + &-option{ + display: inline-block; + + .ivu-tag{ + margin-right: 24px; + } + } + + &-expand-btn{ + position: absolute; + top: 1px; + right: 0; + } + + &-with-expanded{ + padding-right: 50px; + } +} \ No newline at end of file diff --git a/src/styles/components/tag.less b/src/styles/components/tag.less new file mode 100644 index 0000000000000000000000000000000000000000..8e1bd8ad9840cc724345e645d285dc2f23a0044a --- /dev/null +++ b/src/styles/components/tag.less @@ -0,0 +1,274 @@ +@tag-prefix-cls: ~"@{css-prefix}tag"; +@tag-close-prefix-cls: ivu-icon-ios-close; + +.@{tag-prefix-cls} { + display: inline-block; + height: 22px; + line-height: 22px; + margin: 2px 4px 2px 0; + padding: 0 8px; + border: 1px solid @border-color-split; + border-radius: @btn-border-radius-small; + background: @background-color-base; + font-size: @tag-font-size; + vertical-align: middle; + opacity: 1; + overflow: hidden; + //transition: all @transition-time @ease-in-out; + + &-size-large{ + height: 32px; + line-height: 32px; + padding: 0 12px; + } + &-size-medium{ + height: 28px; + line-height: 28px; + padding: 0 10px; + } + + // for color and unchecked + &:not(&-border):not(&-dot):not(&-checked){ + background: transparent; + border-color: transparent; + color: @text-color; + .@{tag-close-prefix-cls} { + color: @text-color !important; + } + } + + &-checkable{ + cursor: pointer; + } + + &-color{ + &-error{ + color: @error-color !important; + border-color: @error-color; + } + &-success{ + color: @success-color !important; + border-color: @success-color; + } + &-primary{ + color: @link-color !important; + border-color: @link-color; + } + &-warning{ + color: @warning-color !important; + border-color: @warning-color; + } + &-white{ + color: rgb(255, 255, 255) !important; + } + } + + &-dot{ + height: 32px; + line-height: 32px; + border: 1px solid @border-color-split !important; + color: @text-color !important; + background: #fff !important; + padding: 0 12px; + + &-inner{ + display: inline-block; + width: 12px; + height: 12px; + margin-right: 8px; + border-radius: 50%; + background: @border-color-split; + position: relative; + top: 1px; + } + .@{tag-close-prefix-cls} { + color: #666 !important; + margin-left: 12px !important; + } + } + + &-border{ + height: 24px; + line-height: 24px; + border: 1px solid @border-color-split; + color: @border-color-split; + background: #fff !important; + position: relative; + + .@{tag-close-prefix-cls} { + color: #666; + margin-left: 12px !important; + } + + &:after{ + content: ""; + display: none; + width: 1px; + background: currentColor; + position: absolute; + top: 0; + bottom: 0; + right: 22px; + } + + &.@{tag-prefix-cls}-closable { + &:after{ + display: block; + } + .@{tag-close-prefix-cls} { + margin-left: 18px !important; + left: 4px; + top: -1px; + } + } + + &.@{tag-prefix-cls}-primary { + color: @link-color !important; + border: 1px solid @link-color !important; + + &:after{ + background: @link-color; + } + .@{tag-close-prefix-cls}{ + color: @link-color !important; + } + } + &.@{tag-prefix-cls}-success { + color: @success-color !important; + border: 1px solid @success-color !important; + + &:after{ + background: @success-color; + } + .@{tag-close-prefix-cls}{ + color: @success-color !important; + } + } + &.@{tag-prefix-cls}-warning { + color: @warning-color !important; + border: 1px solid @warning-color !important; + + &:after{ + background: @warning-color; + } + .@{tag-close-prefix-cls}{ + color: @warning-color !important; + } + } + &.@{tag-prefix-cls}-error { + color: @error-color !important; + border: 1px solid @error-color !important; + + &:after{ + background: @error-color; + } + .@{tag-close-prefix-cls}{ + color: @error-color !important; + } + } + } + + //&:hover { + // opacity: 0.85; + //} + // + //&, + //a, + //a:hover { + // // color: @text-color; + //} + + &-text { + a:first-child:last-child { + display: inline-block; + margin: 0 -8px; + padding: 0 8px; + } + color: @text-color; + } + + .@{tag-close-prefix-cls} { + .iconfont-size-under-12px(20px); + cursor: pointer; + margin-left: 2px; + color: #666; + opacity: 0.66; + position: relative; + top: -1px; + //transition: all @transition-time @ease-in-out; + + &:hover { + opacity: 1; + } + } + + &-primary, + &-success, + &-warning, + &-error { + border: 0; + &, + a, + a:hover, + .@{tag-close-prefix-cls}, + .@{tag-close-prefix-cls}:hover { + color: #fff; + } + //.@{tag-close-prefix-cls}{ + // top: 2px; + //} + } + + &-primary, + &-primary&-dot &-dot-inner + { + background: @link-color; + } + + &-success, + &-success&-dot &-dot-inner + { + background: @success-color; + } + + &-warning, + &-warning&-dot &-dot-inner + { + background: @warning-color; + } + + &-error, + &-error&-dot &-dot-inner + { + background: @error-color; + } + + @colors: pink, magenta, red, volcano, orange, yellow, gold, cyan, lime, green, blue, geekblue, purple; + + .make-color-classes(@i: length(@colors)) when (@i > 0) { + .make-color-classes(@i - 1); + @color: extract(@colors, @i); + @lightColor: "@{color}-1"; + @lightBorderColor: "@{color}-3"; + @darkColor: "@{color}-6"; + &-@{color} { + line-height: 20px; + background: @@lightColor; + border-color: @@lightBorderColor; + .@{tag-prefix-cls}-text{ + color: @@darkColor !important; + } + &.@{tag-prefix-cls}-dot{ + line-height: 32px; + } + } + .ivu-tag-size-large&-@{color} { + line-height: 30px; + } + .ivu-tag-size-medium&-@{color} { + line-height: 26px; + } + } + + .make-color-classes(); +} diff --git a/src/styles/components/time-picker.less b/src/styles/components/time-picker.less new file mode 100644 index 0000000000000000000000000000000000000000..9f76f18af2e1970cb03b09406cdc2c7e0e4d5912 --- /dev/null +++ b/src/styles/components/time-picker.less @@ -0,0 +1,171 @@ +@time-picker-prefix-cls: ~"@{css-prefix}time-picker"; +@time-picker-cells-width-base: 56px; +@time-picker-cells-width-with-date-base: 72px; +@time-picker-cells-width: @time-picker-cells-width-base * 2; +@time-picker-cells-width-with-seconds: @time-picker-cells-width-base *3; +@time-picker-cells-width-with-date: @time-picker-cells-width-with-date-base * 2; +@time-picker-cells-width-with-date-with-seconds: @time-picker-cells-width-with-date-base * 3; + +.@{time-picker-prefix-cls} { + &-cells{ + min-width: @time-picker-cells-width; + &-with-seconds{ + min-width: @time-picker-cells-width-with-seconds; + } + + &-list{ + width: @time-picker-cells-width-base; + max-height: 144px; + float: left; + overflow: hidden; + border-left: 1px solid @border-color-split; + position: relative; + &:hover{ + overflow-y: auto; + } + + &:first-child{ + border-left: none; + border-radius: @btn-border-radius 0 0 @btn-border-radius; + } + &:last-child{ + border-radius: 0 @btn-border-radius @btn-border-radius 0; + } + ul{ + width: 100%; + margin: 0; + padding: 0 0 120px 0; + list-style: none; + li{ + width: 100%; + height: 24px; + line-height: 24px; + margin: 0; + padding: 0 0 0 16px; + box-sizing: content-box; + text-align: left; + user-select: none; + cursor: pointer; + list-style: none; + transition: background @transition-time @ease-in-out; + + } + } + } + &-cell{ + &:hover{ + background: @background-color-select-hover; + } + &-disabled { + color: @btn-disable-color; + cursor: @cursor-disabled; + + &:hover { + color: @btn-disable-color; + background-color: #fff; + cursor: @cursor-disabled; + } + } + &-selected ,&-selected:hover{ + color: @primary-color; + background: @background-color-select-hover; + } + &-focused{ + background-color: tint(@primary-color, 80%); + } + } + } + + &-header{ + height: 32px; + line-height: 32px; + text-align: center; + border-bottom: 1px solid @border-color-split; + } + + &-with-range{ + .@{picker-prefix-cls}-panel{ + &-body{ + min-width: @time-picker-cells-width * 2 + 4px; + } + &-content{ + float: left; + position: relative; + + &:after{ + content: ''; + display: block; + width: 2px; + position: absolute; + top: 31px; + bottom: 0; + right: -2px; + background: @border-color-split; + z-index: 1; + } + + &-right{ + float: right; + &:after{ + right: auto; + left: -2px; + } + } + } + } + .@{time-picker-prefix-cls}-cells{ + &-list{ + &:first-child{ + border-radius: 0; + } + &:last-child{ + border-radius: 0; + } + } + } + } + &-with-range&-with-seconds{ + .@{picker-prefix-cls}-panel{ + &-body{ + min-width: @time-picker-cells-width-with-seconds * 2 + 4px; + } + } + } +} + +.@{picker-prefix-cls}-panel-content{ + .@{picker-prefix-cls}-panel-content{ + .@{time-picker-prefix-cls}{ + &-cells{ + min-width: @time-picker-cells-width-with-date-with-seconds; + &-with-seconds{ + min-width: @time-picker-cells-width-with-date-with-seconds; + .@{time-picker-prefix-cls}-cells-list{ + width: @time-picker-cells-width-with-date-with-seconds / 3; + ul{ + li{ + padding: 0 0 0 28px; + } + } + } + } + &-list { + width: @time-picker-cells-width-with-date-with-seconds / 2; + max-height: 216px; + &:first-child{ + border-radius: 0; + } + &:last-child{ + border-radius: 0; + } + ul{ + padding: 0 0 192px 0; + li{ + padding: 0 0 0 46px; + } + } + } + } + } + } +} diff --git a/src/styles/components/time.less b/src/styles/components/time.less new file mode 100644 index 0000000000000000000000000000000000000000..70ce0639725e22002b6c784e0779d1f608d5cd43 --- /dev/null +++ b/src/styles/components/time.less @@ -0,0 +1,10 @@ +@time-prefix-cls: ~"@{css-prefix}time"; + +.@{time-prefix-cls} { + &-with-hash{ + cursor: pointer; + &:hover{ + text-decoration: underline; + } + } +} \ No newline at end of file diff --git a/src/styles/components/timeline.less b/src/styles/components/timeline.less new file mode 100644 index 0000000000000000000000000000000000000000..74132ce9ebec14d9e92b86447478b846c89032e6 --- /dev/null +++ b/src/styles/components/timeline.less @@ -0,0 +1,87 @@ +@timeline-prefix-cls: ~"@{css-prefix}timeline"; +@timeline-color: @border-color-split; + +.@{timeline-prefix-cls} { + list-style: none; + margin: 0; + padding: 0; + + &-item { + margin: 0 !important; + padding: 0 0 12px 0; + list-style: none; + position: relative; + + &-tail { + height: 100%; + border-left: 1px solid @timeline-color; + position: absolute; + left: 6px; + top: 0; + } + + &-pending &-tail { + display: none; + } + + &-head { + width: 13px; + height: 13px; + background-color: #fff; + border-radius: 50%; + border: 1px solid transparent; + position: absolute; + + &-blue { + border-color: @primary-color; + color: @primary-color; + } + &-red { + border-color: @error-color; + color: @error-color; + } + &-green { + border-color: @success-color; + color: @success-color; + } + } + + &-head-custom { + width: 40px; + height: auto; + margin-top: 6px; + padding: 3px 0; + text-align: center; + line-height: 1; + border: 0; + border-radius: 0; + font-size: @font-size-base; + position: absolute; + left: -13px; + transform: translateY(-50%); + } + + &-content { + padding: 1px 1px 10px 24px; + font-size: @font-size-base; + position: relative; + top: -3px; + } + + &:last-child { + .@{timeline-prefix-cls}-item-tail { + display: none; + } + } + } + + &&-pending &-item:nth-last-of-type(2) { + + .@{timeline-prefix-cls}-item-tail { + border-left: 1px dotted @timeline-color; + } + .@{timeline-prefix-cls}-item-content { + min-height: 48px; + } + } +} diff --git a/src/styles/components/tooltip.less b/src/styles/components/tooltip.less new file mode 100644 index 0000000000000000000000000000000000000000..d42e54fa9b422534d9e34efb1579fa373a49fec2 --- /dev/null +++ b/src/styles/components/tooltip.less @@ -0,0 +1,113 @@ +@tooltip-prefix-cls: ~"@{css-prefix}tooltip"; +@tooltip-arrow: ~"@{tooltip-prefix-cls}-arrow"; +@tooltip-max-width: 250px; +@tooltip-arrow-width: 5px; +@tooltip-distance: @tooltip-arrow-width - 1 + 4; + +@tooltip-arrow-width-light: 7px; +@tooltip-distance-light: @tooltip-arrow-width-light - 1 + 4; +@tooltip-arrow-outer-width-light: (@tooltip-arrow-width-light + 1); +@tooltip-arrow-color: hsla(0,0%,85%,.5); + +.@{tooltip-prefix-cls} { + display: inline-block; + + &-rel{ + display: inline-block; + position: relative; + width: inherit; + } + + &-popper{ + .popper(@tooltip-arrow, @tooltip-arrow-width, @tooltip-distance, @tooltip-bg); + } + &-light&-popper{ + .popper(@tooltip-arrow, @tooltip-arrow-width-light, @tooltip-distance-light, @tooltip-arrow-color); + + &[x-placement^="top"] .@{tooltip-arrow}:after { + content: " "; + bottom: 1px; + margin-left: -@tooltip-arrow-width-light; + border-bottom-width: 0; + border-top-width: @tooltip-arrow-width-light; + border-top-color: #fff; + } + + &[x-placement^="right"] .@{tooltip-arrow}:after { + content: " "; + left: 1px; + bottom: -@tooltip-arrow-width-light; + border-left-width: 0; + border-right-width: @tooltip-arrow-width-light; + border-right-color: #fff; + } + + &[x-placement^="bottom"] .@{tooltip-arrow}:after { + content: " "; + top: 1px; + margin-left: -@tooltip-arrow-width-light; + border-top-width: 0; + border-bottom-width: @tooltip-arrow-width-light; + border-bottom-color: #fff; + } + + &[x-placement^="left"] .@{tooltip-arrow}:after { + content: " "; + right: 1px; + border-right-width: 0; + border-left-width: @tooltip-arrow-width-light; + border-left-color: #fff; + bottom: -@tooltip-arrow-width-light; + } + } + + &-inner{ + max-width: @tooltip-max-width; + min-height: 34px; + padding: 8px 12px; + color: @tooltip-color; + text-align: left; + text-decoration: none; + background-color: @tooltip-bg; + border-radius: @border-radius-small; + box-shadow: @shadow-base; + white-space: nowrap; + + &-with-width{ + white-space: pre-wrap; + text-align: justify; + // 解决纯字母或数字不换行的问题 + word-wrap: break-word; + word-break: break-all; + } + } + + &-light &-inner{ + background-color: #fff; + color: @text-color; + } + + &-arrow{ + position: absolute; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; + } + + &-light { + .@{tooltip-arrow}{ + &:after{ + display: block; + width: 0; + height: 0; + position: absolute; + border-color: transparent; + border-style: solid; + content: ""; + border-width: @tooltip-arrow-width-light; + } + border-width: @tooltip-arrow-outer-width-light; + } + } +} diff --git a/src/styles/components/transfer.less b/src/styles/components/transfer.less new file mode 100644 index 0000000000000000000000000000000000000000..fa8be7f82ae11156ecd432319280de78ca0367c4 --- /dev/null +++ b/src/styles/components/transfer.less @@ -0,0 +1,142 @@ +@transfer-prefix-cls: ~"@{css-prefix}transfer"; +@transfer-item-prefix-cls: ~"@{css-prefix}transfer-list-content-item"; + +.@{transfer-prefix-cls} { + position: relative; + line-height: @line-height-base; + + &-list{ + display: inline-block; + width: 180px; + height: 210px; + font-size: @font-size-base; + vertical-align: middle; + position: relative; + padding-top: 35px; + + &-with-footer{ + padding-bottom: 35px; + } + + &-header { + padding: 8px 16px; + background: @head-bg; + color: @text-color; + border: 1px solid @border-color-base; + border-bottom: 1px solid @border-color-split; + border-radius: @border-radius-base @border-radius-base 0 0; + overflow: hidden; + position: absolute; + top: 0; + left: 0; + width: 100%; + + &-title{ + cursor: pointer; + } + + & > span{ + padding-left: 4px; + } + + &-count { + margin: 0 !important; + float: right; + } + } + + &-body{ + height: 100%; + border: 1px solid @border-color-base; + border-top: none; + border-radius: 0 0 @border-radius-base @border-radius-base; + position: relative; + overflow: hidden; + + &-with-search{ + padding-top: 34px; + } + &-with-footer{ + border-radius: 0; + } + } + + &-content{ + height: 100%; + padding: 4px 0; + overflow: auto; + + &-item{ + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + + & > span{ + padding-left: 4px; + } + } + + &-not-found{ + display: none; + text-align: center; + color: @btn-disable-color; + } + li&-not-found:only-child{ + display: block; + } + } + &-body-with-search &-content{ + padding: 6px 0 0; + } + + &-body-search-wrapper{ + padding: 8px 8px 0; + position: absolute; + top: 0; + left: 0; + right: 0; + } + + &-search{ + position: relative; + } + + &-footer{ + border: 1px solid @border-color-base; + border-top: none; + border-radius: 0 0 @border-radius-base @border-radius-base; + position: absolute; + bottom: 0; + left: 0; + right: 0; + + .clearfix(); + } + } + &-operation { + display: inline-block; + //overflow: hidden; + margin: 0 16px; + vertical-align: middle; + + .@{btn-prefix-cls} { + display: block; + min-width: @btn-circle-size-small; + + &:first-child { + margin-bottom: 12px; + } + i, span{ + margin-left: 0; + } + } + .@{btn-prefix-cls}{ + span { + i, span{ + vertical-align: middle; + } + } + } + } +} +.select-item(@transfer-prefix-cls, @transfer-item-prefix-cls); diff --git a/src/styles/components/tree-select.less b/src/styles/components/tree-select.less new file mode 100644 index 0000000000000000000000000000000000000000..f53374c0db6d23e120a0bf1e351ee19976b33802 --- /dev/null +++ b/src/styles/components/tree-select.less @@ -0,0 +1,33 @@ +.ivu-tree-select{ + .ivu-select-dropdown{ + padding: 0; + } + &,&-transfer{ + .ivu-tree{ + padding: 0 6px; + li{ + font-size: @font-size-base; + } + } + + .ivu-tree-title{ + display: inline-block; + width: calc(~'100% - 18px'); + vertical-align: middle; + } + .ivu-checkbox-wrapper+.ivu-tree-title{ + width: calc(~'100% - 44px'); + } + } + + .ivu-tree-title{ + padding: 2px 4px 4px; + } + + &-transfer{ + padding: 0; + .ivu-tree-title{ + padding: 0 4px 2px; + } + } +} \ No newline at end of file diff --git a/src/styles/components/tree.less b/src/styles/components/tree.less new file mode 100644 index 0000000000000000000000000000000000000000..9b9f19fd6e843a7196d9a62ea521d63ed5822d15 --- /dev/null +++ b/src/styles/components/tree.less @@ -0,0 +1,89 @@ +@tree-prefix-cls: ~"@{css-prefix}tree"; + +.@{tree-prefix-cls} { + position: relative; + ul{ + list-style: none; + margin: 0; + padding: 0; + font-size: @font-size-base; + &.@{dropdown-prefix-cls}-menu{ + padding: 0; + } + li{ + list-style: none; + margin: 8px 0; + padding: 0; + white-space: nowrap; + outline: none; + + &.@{dropdown-item-prefix-cls}{ + margin: 0; + padding: 7px 16px; + white-space: nowrap; + } + } + } + li{ + ul{ + margin: 0; + padding: 0 0 0 18px; + } + } + &-title { + display: inline-block; + margin: 0; + padding: 0 4px; + border-radius: @btn-border-radius-small; + cursor: pointer; + vertical-align: top; + color: @text-color; + transition: all @transition-time @ease-in-out; + &:hover { + background-color: tint(@primary-color, 90%); + } + &-selected, &-selected:hover{ + background-color: tint(@primary-color, 80%); + } + } + &-arrow{ + cursor: pointer; + width: 12px; + text-align: center; + display: inline-block; + i { + transition: all @transition-time @ease-in-out; + font-size: @font-size-base; + vertical-align: middle; + } + &-open{ + i { + transform: rotate(90deg); + } + } + //&-hidden{ + // cursor: auto; + // i{ + // display: none; + // } + //} + &-disabled{ + //cursor: @cursor-disabled; + } + } + + .@{checkbox-prefix-cls}-wrapper{ + margin-right: 4px; + margin-left: 4px; + } + + &-context-menu{ + position: absolute; + } + + &-empty{ + text-align: center; + color: @btn-disable-color; + padding: 5px 0; + } +} diff --git a/src/styles/components/trend.less b/src/styles/components/trend.less new file mode 100644 index 0000000000000000000000000000000000000000..3d053aa0c26df660100dae6e0d64dc458ec30e50 --- /dev/null +++ b/src/styles/components/trend.less @@ -0,0 +1,49 @@ +.ivu-trend{ + display: inline-block; + &-text{ + vertical-align: middle; + } + + &-colorful&-up{ + .ivu-trend-flag{ + color: @error-color; + } + } + &-colorful&-down{ + .ivu-trend-flag{ + color: @success-color; + } + } + + &-reverse-color&-colorful&-up{ + .ivu-trend-flag{ + color: @success-color; + } + } + &-reverse-color&-colorful&-down{ + .ivu-trend-flag{ + color: @error-color; + } + } + + &-colorful&-text-color&-up{ + .ivu-trend-text{ + color: @error-color; + } + } + &-colorful&-text-color&-down{ + .ivu-trend-text{ + color: @success-color; + } + } + &-reverse-color&-colorful&-text-color&-up{ + .ivu-trend-text{ + color: @success-color; + } + } + &-reverse-color&-colorful&-text-color&-down{ + .ivu-trend-text{ + color: @error-color; + } + } +} diff --git a/src/styles/components/typography.less b/src/styles/components/typography.less new file mode 100644 index 0000000000000000000000000000000000000000..060911e328f5d086fe2452fabbb6d2e9f8e77c25 --- /dev/null +++ b/src/styles/components/typography.less @@ -0,0 +1,329 @@ +@import "../mixins/typography"; +@import "../mixins/operation-unit"; +@typography-prefix-cls: ~"@{css-prefix}typography"; + +.@{typography-prefix-cls} { + color: @text-color; + overflow-wrap: break-word; + + &&-secondary { + color: @text-color-secondary; + } + + &&-success { + color: @success-color; + } + + &&-warning { + color: @warning-color; + } + + &&-danger { + color: @error-color; + + a&:active, + a&:focus { + color: @error-active-color; + } + + a&:hover { + color: @error-hover-color; + } + } + + &&-disabled { + color: @disabled-color; + cursor: not-allowed; + user-select: none; + } + + // Tag + div&, + p { + .typography-paragraph(); + } + + h1&, + div&-h1, + div&-h1 textarea, + h1 { + .typography-title-1(); + } + + h2&, + div&-h2, + div&-h2 textarea, + h2 { + .typography-title-2(); + } + + h3&, + div&-h3, + div&-h3 textarea, + h3 { + .typography-title-3(); + } + + h4&, + div&-h4, + div&-h4 textarea, + h4 { + .typography-title-4(); + } + + h5&, + div&-h5, + div&-h5 textarea, + h5 { + .typography-title-5(); + } + h6&, + div&-h6, + div&-h6 textarea, + h6 { + .typography-title-6(); + } + + h1&, + h2&, + h3&, + h4&, + h5&, + h6& { + .@{typography-prefix-cls} + & { + margin-top: @typography-title-margin-top; + } + } + + div, + ul, + li, + p, + h1, + h2, + h3, + h4, + h5, + h6 { + + h1, + + h2, + + h3, + + h4, + + h5, + + h6 { + margin-top: @typography-title-margin-top; + } + } + + a&-ellipsis, + span&-ellipsis { + display: inline-block; + max-width: 100%; + } + + a&, + a { + .operation-unit(); + text-decoration: @link-decoration; + + &:active, + &:hover { + text-decoration: @link-hover-decoration; + } + + &[disabled], + &.@{typography-prefix-cls}-disabled { + color: @disabled-color; + cursor: not-allowed; + + &:active, + &:hover { + color: @disabled-color; + } + + &:active { + pointer-events: none; + } + } + } + + code { + margin: 0 0.2em; + padding: 0.2em 0.4em 0.1em; + font-size: 85%; + background: rgba(150, 150, 150, 0.1); + border: 1px solid rgba(100, 100, 100, 0.2); + border-radius: 3px; + } + + kbd { + margin: 0 0.2em; + padding: 0.15em 0.4em 0.1em; + font-size: 90%; + background: rgba(150, 150, 150, 0.06); + border: 1px solid rgba(100, 100, 100, 0.2); + border-bottom-width: 2px; + border-radius: 3px; + } + + mark { + padding: 0; + background-color: @gold-3; + } + + u, + ins { + text-decoration: underline; + text-decoration-skip-ink: auto; + } + + s, + del { + text-decoration: line-through; + } + + strong { + font-weight: 600; + } + + // Operation + &-expand, + &-edit, + &-copy { + .operation-unit(); + + margin-left: 4px; + } + &-copy,&-edit{ + display: inline-block; + } + + &-copy-success { + &, + &:hover, + &:focus { + color: @success-color; + } + } + + // Text input area + &-edit-content { + position: relative; + + div& { + left: -@input-padding-horizontal - 1px; + margin-top: -@input-padding-vertical-base - 1.5px; + margin-bottom: calc(~'1em' - (@input-padding-vertical-base + 1.5px)); + } + + &-confirm { + position: absolute; + right: 10px; + bottom: 6px; + color: @text-color-secondary; + // default style + font-weight: normal; + font-size: @font-size-base; + font-style: normal; + pointer-events: none; + } + + // Fix Editable Textarea flash in Firefox + textarea { + resize: none; + // https://stackoverflow.com/a/7695964/3040605 + height: 1em; + margin: 0 !important; + /* stylelint-disable-next-line property-no-vendor-prefix */ + -moz-transition: none; + } + } + + // list + ul, + ol { + margin: 0 0 1em; + padding: 0; + + li { + margin: 0 0 0 20px; + padding: 0 0 0 4px; + } + } + + ul { + list-style-type: circle; + + ul { + list-style-type: disc; + } + } + + ol { + list-style-type: decimal; + } + + // pre & block + pre, + blockquote { + margin: 1em 0; + } + + pre { + padding: 0.4em 0.6em; + white-space: pre-wrap; + word-wrap: break-word; + background: rgba(150, 150, 150, 0.1); + border: 1px solid rgba(100, 100, 100, 0.2); + border-radius: 3px; + + // Compatible for marked + code { + display: inline; + margin: 0; + padding: 0; + font-size: inherit; + font-family: inherit; + background: transparent; + border: 0; + } + } + + blockquote { + padding: 0 0 0 0.6em; + border-left: 4px solid rgba(100, 100, 100, 0.2); + opacity: 0.85; + } + + // ============ Ellipsis ============ + &-single-line { + white-space: nowrap; + } + + &-ellipsis-single-line { + overflow: hidden; + text-overflow: ellipsis; + + // https://blog.csdn.net/iefreer/article/details/50421025 + a&, + span& { + vertical-align: bottom; + } + } + &-ellipsis-line-clamp{ + display: -webkit-box; + -webkit-box-orient: vertical; + overflow: hidden; + text-overflow: ellipsis; + } + a&-ellipsis-line-clamp,span&-ellipsis-line-clamp{ + display: -webkit-inline-box; + } + + //&-ellipsis-extra{ + // position: absolute; + // bottom: 0; + // right: 0; + // background: #fff; + //} +} diff --git a/src/styles/components/upload.less b/src/styles/components/upload.less new file mode 100644 index 0000000000000000000000000000000000000000..d8e5faaf28f9f069eab1fa745973a028c00ffb86 --- /dev/null +++ b/src/styles/components/upload.less @@ -0,0 +1,79 @@ +@upload-prefix-cls: ~"@{css-prefix}upload"; + +.@{upload-prefix-cls} { + input[type="file"]{ + display: none; + } + + &-list{ + margin-top: 8px; + + &-file{ + padding: 4px; + color: @text-color; + border-radius: @border-radius-small; + transition: background-color @transition-time @ease-in-out; + overflow: hidden; + position: relative; + + & > span{ + cursor: pointer; + transition: color @transition-time @ease-in-out; + i{ + display: inline-block; + width: @font-size-small; + height: @font-size-small; + color: @text-color; + text-align: center; + } + } + + &:hover{ + background: @input-disabled-bg; + & > span{ + color: @primary-color; + i{ + color: @text-color; + } + } + .@{upload-prefix-cls}-list-remove{ + opacity: 1; + } + } + } + &-remove{ + opacity: 0; + font-size: 18px; + cursor: pointer; + float: right; + margin-right: 4px; + color: @legend-color; + transition: all @transition-time ease; + &:hover{ + color: #444; + } + } + } + + &-select { + display: inline-block; + } + + &-drag{ + background: #fff; + border: 1px dashed @border-color-base; + border-radius: @border-radius-small; + text-align: center; + cursor: pointer; + position: relative; + overflow: hidden; + transition: border-color @transition-time ease; + + &:hover{ + border: 1px dashed @primary-color; + } + } + &-dragOver{ + border: 2px dashed @primary-color; + } +} \ No newline at end of file diff --git a/src/styles/components/word-count.less b/src/styles/components/word-count.less new file mode 100644 index 0000000000000000000000000000000000000000..10edc17cb85c7d9eccb09b1855d84f63a13f5654 --- /dev/null +++ b/src/styles/components/word-count.less @@ -0,0 +1,7 @@ +.ivu-word-count{ + display: inline-block; + + &-overflow{ + color: @error-color; + } +} \ No newline at end of file diff --git a/src/styles/copyright.less b/src/styles/copyright.less new file mode 100644 index 0000000000000000000000000000000000000000..f55b0dd94f5dedfa40e4965c052a8ec8061b60ce --- /dev/null +++ b/src/styles/copyright.less @@ -0,0 +1,6 @@ +/*! +* View Design +* Web: https://www.iviewui.com +* Github: https://github.com/view-design +* Author: Aresn +*/ diff --git a/src/styles/custom.less b/src/styles/custom.less new file mode 100644 index 0000000000000000000000000000000000000000..5d7b7d0944ff4769590392555c2df3e18acd278a --- /dev/null +++ b/src/styles/custom.less @@ -0,0 +1,288 @@ +@import "color/colors"; + +// Prefix +@css-prefix : ivu-; +@css-prefix-iconfont : ivu-icon; + +// Color +@primary-color : #2d8cf0; +@info-color : #2db7f5; +@success-color : #19be6b; +@processing-color : @primary-color; +@warning-color : #ff9900; +@error-color : #ed4014; +@error-hover-color : color(~`colorPalette('@{error-color}', 5) `); +@error-active-color : color(~`colorPalette('@{error-color}', 7) `); +@normal-color : #e6ebf1; +@link-color : #2D8cF0; +@link-hover-color : tint(@link-color, 20%); +@link-active-color : shade(@link-color, 5%); +@selected-color : fade(@primary-color, 90%); +@tooltip-color : #fff; +@subsidiary-color : #808695; +@rate-star-color : #f5a623; +@white: #fff; +@black: #000; + +// Base +@body-background : #fff; +@component-background : #fff; +@font-family : "Helvetica Neue",Helvetica,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","微软雅黑",Arial,sans-serif; +@code-family : Consolas,Menlo,Courier,monospace; +@title-color : #17233d; +@text-color : #515a6e; +@text-color-secondary : fade(@black, 45%); +@heading-color : fade(#000, 85%); +@heading-color-dark : fade(@white, 100%); +@font-size-base : 14px; +@font-size-small : 12px; +@font-size-large : @font-size-base + 2px; +@heading-1-size : ceil(@font-size-base * 2.71); +@heading-2-size : ceil(@font-size-base * 2.14); +@heading-3-size : ceil(@font-size-base * 1.71); +@heading-4-size : ceil(@font-size-base * 1.42); +@heading-5-size : ceil(@font-size-base * 1.14); +@heading-6-size : ceil(@font-size-base * 1); +@line-height-base : 1.5; +@line-height-computed : floor((@font-size-base * @line-height-base)); +@border-radius-base : 6px; +@border-radius-small : 4px; +@cursor-disabled : not-allowed; + +// LINK +@link-decoration : none; +@link-hover-decoration : none; +@link-focus-decoration : none; +@link-focus-outline : 0; + +// Disabled +@disabled-color: fade(#000, 25%); + +// vertical paddings +@padding-lg: 24px; // containers +@padding-md: 16px; // small containers and buttons +@padding-sm: 12px; // Form controls and items +@padding-xs: 8px; // small items + +// Border color +@border-color-base : #dcdee2; // outside +@border-color-split : #e8eaec; // inside +@border-width-base : 1px; // width of the border for a component +@border-style-base : solid; // style of a components border + +// Background color +@background-color-base : #f7f7f7; // base +@background-color-select-hover: @input-disabled-bg; +@tooltip-bg : rgba(70, 76, 91, .9); +@head-bg : #f9fafc; +@table-thead-bg : #f8f8f9; +@table-td-stripe-bg : #f8f8f9; +@table-td-hover-bg : #ebf7ff; +@table-td-highlight-bg : #ebf7ff; +@menu-dark-title : #515a6e; +@menu-dark-active-bg : #363e4f; +@menu-dark-subsidiary-color : rgba(255,255,255,.7); +@menu-dark-group-title-color : rgba(255,255,255,.36); +@date-picker-cell-hover-bg : #e1f0fe; + +// Shadow +@shadow-color : rgba(0, 0, 0, .2); +@shadow-base : @shadow-down; +@shadow-card : 0 1px 1px 0 rgba(0,0,0,.1); +@shadow-up : 0 -1px 6px @shadow-color; +@shadow-down : 0 1px 6px @shadow-color; +@shadow-left : -1px 0 6px @shadow-color; +@shadow-right : 1px 0 6px @shadow-color; + +// Button +@btn-height-base : 32px; +@btn-height-large : 40px; +@btn-height-small : 24px; + +@btn-padding-base : 0 @padding-md - 1px; +@btn-padding-large : @btn-padding-base; +@btn-padding-small : 0 @padding-xs - 1px; + +@btn-font-weight : normal; +@btn-padding-base-icon : 5px 15px 6px; +@btn-padding-large-icon : 6px 15px 6px 15px; +@btn-padding-small-icon : 1px 7px 2px; +@btn-font-size : @font-size-base; +@btn-font-size-large : @font-size-large; +@btn-font-size-small : @font-size-base; +@btn-border-radius : 4px; +@btn-border-radius-small: 3px; +@btn-group-border : shade(@primary-color, 5%); + +@btn-disable-color : #c5c8ce; +@btn-disable-bg : @background-color-base; +@btn-disable-border : @border-color-base; + +@btn-default-color : @text-color; +@btn-default-bg : #fff; +@btn-default-border : @border-color-base; + +@btn-primary-color : #fff; +@btn-primary-bg : @primary-color; + +@btn-ghost-color : @text-color; +@btn-ghost-bg : #fff; +@btn-ghost-border : @border-color-base; + +@btn-circle-size : @btn-height-base; +@btn-circle-size-large : @btn-height-large; +@btn-circle-size-small : @btn-height-small; + +@btn-square-size : @btn-height-base; +@btn-square-size-large : @btn-height-large; +@btn-square-size-small : @btn-height-small; + +// Layout and Grid +@grid-columns : 24; +@grid-gutter-width : 0; +@layout-body-background : #f5f7f9; +@layout-header-background : #515a6e; +@layout-header-height : 64px; +@layout-header-padding : 0 50px; +@layout-footer-padding : 24px 50px; +@layout-footer-background : @layout-body-background; +@layout-sider-background : @layout-header-background; +@layout-trigger-height : 48px; +@layout-trigger-color : #fff; +@layout-zero-trigger-width : 36px; +@layout-zero-trigger-height : 42px; + +// Legend +@legend-color : #999; + +// Input +@input-height-base : 32px; +@input-height-large : 40px; +@input-height-small : 24px; + +@input-padding-horizontal : 7px; +@input-padding-vertical-base : 4px; +@input-padding-vertical-small: 1px; +@input-padding-vertical-large: 6px; + +@input-placeholder-color : @btn-disable-color; +@input-color : @text-color; +@input-border-color : @border-color-base; +@input-bg : #fff; +@input-group-bg : #f8f8f9; + +@input-hover-border-color : @primary-color; +@input-focus-border-color : @primary-color; +@input-disabled-bg : #f3f3f3; + +// Tag +@tag-font-size : 12px; + +// Media queries breakpoints +// Extra small screen / phone +@screen-xs : 480px; +@screen-xs-min : @screen-xs; +@screen-xs-max : (@screen-xs-min - 1); + +// Small screen / tablet +@screen-sm : 576px; +@screen-sm-min : @screen-sm; +@screen-sm-max : (@screen-sm-min - 1); + +// Medium screen / desktop +@screen-md : 768px; +@screen-md-min : @screen-md; +@screen-md-max : (@screen-md-min - 1); + +// Large screen / wide desktop +@screen-lg : 992px; +@screen-lg-min : @screen-lg; +@screen-lg-max : (@screen-lg-min - 1); + +// Extra large screen / full hd +@screen-xl : 1200px; +@screen-xl-min : @screen-xl; +@screen-xl-max : (@screen-xl-min - 1); + +// Extra extra large screen / large descktop +@screen-xxl : 1600px; +@screen-xxl-min : @screen-xxl; +@screen-xxl-max : (@screen-xxl-min - 1); + +// Z-index +@zindex-spin : 8; +@zindex-affix : 10; +@zindex-back-top : 10; +@zindex-menu : 1; +@zindex-select : 900; +@zindex-modal : 1000; +@zindex-drawer : 1000; +@zindex-message : 1010; +@zindex-notification : 1010; +@zindex-tooltip : 1060; +@zindex-transfer : 1060; +@zindex-loading-bar : 2000; +@zindex-spin-fullscreen : 2010; + +// Animation +@animation-time : .3s; +@animation-time-quick : .15s; +@transition-time : .2s; +@ease-in-out : ease-in-out; + +// Slider +@slider-color : tint(@primary-color, 20%); +@slider-height : 4px; +@slider-margin : 16px 0; +@slider-button-wrap-size : 18px; +@slider-button-wrap-offset : -5px; +@slider-disabled-color : #ccc; + +// Avatar +@avatar-size-base: 32px; +@avatar-size-lg: 40px; +@avatar-size-sm: 24px; +@avatar-font-size-base: 18px; +@avatar-font-size-lg: 24px; +@avatar-font-size-sm: 14px; +@avatar-bg: #ccc; +@avatar-color: #fff; +@avatar-border-radius: @border-radius-small; + +// Anchor +@anchor-border-width: 2px; + +// List +@list-header-background: transparent; +@list-footer-background: transparent; +@list-empty-text-padding: @padding-md; +@list-item-padding: @padding-sm 0; +@list-item-meta-margin-bottom: @padding-md; +@list-item-meta-avatar-margin-right: @padding-md; +@list-item-meta-title-margin-bottom: @padding-sm; + +// Skeleton +@skeleton-base-color: rgba(190, 190, 190, 0.2); +@skeleton-to-color: shade(@skeleton-base-color, 5%); +@skeleton-border-radius-round: 40px; +@skeleton-item-margin: 16px; +@skeleton-height-base: 32px; +@skeleton-height-large: 40px; +@skeleton-height-small: 24px; +@skeleton-rect-width-base: 160px; +@skeleton-rect-width-large: 200px; +@skeleton-rect-width-small: 120px; +@skeleton-image-width-base: 48px; +@skeleton-image-width-large: 96px; +@skeleton-image-width-small: 32px; + +// Typography +@typography-title-font-weight: 600; +@typography-title-margin-top: 1.2em; +@typography-title-margin-bottom: 0.5em; + +// Image +@image-preview-operations-background: rgba(55, 55, 55, 0.4); +@image-preview-operations-fontsize: 26px; +@image-preview-operations-hover: .75; +@image-preview-operations-disabled-color: #c5c8ce; diff --git a/src/styles/index.less b/src/styles/index.less new file mode 100644 index 0000000000000000000000000000000000000000..ae85359a1e1b05cca14f98d124c024f644de1b9e --- /dev/null +++ b/src/styles/index.less @@ -0,0 +1,6 @@ +@import "./custom"; +@import "./base"; +@import "./mixins/index"; +@import "./common/index"; +@import "./animation/index"; +@import "./components/index"; diff --git a/src/styles/mixins/button.less b/src/styles/mixins/button.less new file mode 100644 index 0000000000000000000000000000000000000000..ec77fd4625379def81a2997728bd2da979c3358a --- /dev/null +++ b/src/styles/mixins/button.less @@ -0,0 +1,463 @@ +.button-size(@height; @padding; @font-size; @border-radius) { + height: @height; + padding: @padding; + font-size: @font-size; + border-radius: @border-radius; +} + +.button-color(@color; @background; @border) { + color: @color; + background-color: @background; + border-color: @border; + // a inside Button which only work in Chrome + // http://stackoverflow.com/a/17253457 + > a:only-child { + color: currentColor; + &:after { + content: ''; + position: absolute; + top: 0; + left: 0; + bottom: 0; + right: 0; + background: transparent; + } + } +} + +.button-variant(@color; @background; @border) { + .button-color(@color; @background; @border); + + &:hover + //&:focus + { + .button-color(tint(@color, 20%); tint(@background, 20%); tint(@border, 20%)); + } + &:active, + &.active { + .button-color(shade(@color, 5%); shade(@background, 5%); shade(@background, 5%)); + } + + &.disabled, + &[disabled], + fieldset[disabled] & { + &, + &:hover, + &:focus, + &:active, + &.active { + .button-color(@btn-disable-color; @btn-disable-bg; @btn-disable-border); + } + } +} + +.button-group-base(@btnClassName) { + position: relative; + display: inline-block; + vertical-align: middle; + > .@{btnClassName} { + position: relative; + float: left; + &:hover, + //&:focus, + &:active, + &.active { + z-index: 2; + } + } + + + //& .@{btnClassName}-icon-only .ivu-icon { + // font-size: 13px; + // position: relative; + // //top: 1px; + //} + // + //&-large .@{btnClassName}-icon-only .ivu-icon{ + // font-size: 15px; + // //top: 2px; + //} + // + //&-small .@{btnClassName}-icon-only .ivu-icon{ + // font-size: 12px; + // //top: 0; + //} + + &-circle .@{btnClassName} { + border-radius: @btn-circle-size; + } + + // size + &-large&-circle .@{btnClassName} { + border-radius: @btn-circle-size-large; + } + &-large { + & > .@{btnClassName} { + .button-size(@btn-height-large; @btn-padding-large; @btn-font-size-large; @btn-border-radius); + } + } + + &-small&-circle .@{btnClassName} { + border-radius: @btn-circle-size-small; + } + &-small { + & > .@{btnClassName}{ + .button-size(@btn-height-small; @btn-padding-small; @btn-font-size; @btn-border-radius-small); + > .@{css-prefix-iconfont} { + font-size: @btn-font-size; + } + } + } + + &-small .@{btnClassName}-icon-only{ + .square(@btn-height-small); + padding: 0; + } + &-large .@{btnClassName}-icon-only{ + .square(@btn-height-large); + padding: 0; + } +} + +.button-group-vertical-base(@btnClassName) { + display: inline-block; + vertical-align: middle; + > .@{btnClassName} { + display: block; + width: 100%; + max-width: 100%; + float: none; + min-width: @btn-height-base; + + } + &.@{btnClassName}-group-small > .@{btnClassName}{ + min-width: @btn-height-small; + } + &.@{btnClassName}-group-large > .@{btnClassName}{ + min-width: @btn-height-large; + } + + //> .@{btnClassName}-icon-only { + // height: @btn-height-base; + // padding: 0; + //} + //> .@{btnClassName}-small.@{btnClassName}-icon-only { + // height: @btn-height-small; + // padding: 0; + //} + //> .@{btnClassName}-large.@{btnClassName}-icon-only { + // height: @btn-height-large; + // padding: 0; + //} +} + +// square button: the content only contains icon +.btn-square(@btnClassName) { + .square(@btn-square-size); + .button-size(@btn-square-size; 0; @font-size-base + 2px; @btn-border-radius); + &.@{btnClassName}-large { + .square(@btn-square-size-large); + .button-size(@btn-square-size-large; 0; @btn-font-size-large + 2px; @btn-border-radius); + } + &.@{btnClassName}-small { + .square(@btn-square-size-small); + .button-size(@btn-square-size-small; 0; @font-size-base; @btn-border-radius); + } +} + +.btn() { + display: inline-block; + margin-bottom: 0; + font-weight: @btn-font-weight; + text-align: center; + vertical-align: middle; + touch-action: manipulation; + cursor: pointer; + background-image: none; + border: 1px solid transparent; + white-space: nowrap; + line-height: @line-height-base; + user-select: none; + .button-size(@btn-height-base; @btn-padding-base; @btn-font-size; @btn-border-radius); + //transform: translate3d(0, 0, 0); + //transition: all @transition-time linear; + transition: color @transition-time linear, background-color @transition-time linear, border @transition-time linear, box-shadow @transition-time linear; + + > .@{css-prefix-iconfont} { + line-height: @line-height-base; + //vertical-align: middle; + } + + &-icon-only&-circle > .@{css-prefix-iconfont}{ + vertical-align: baseline; + } + + > span, > i{ + display: inline-block; + //vertical-align: middle; + } + + &, + &:active, + &:focus { + outline: 0; + } + + &:not([disabled]):hover { + text-decoration: none; + } + + &:not([disabled]):active { + outline: 0; + // transition: none; // 如果不注释此行,那么active会和focus同时触发,此时focus的开始动画transition会无效 + } + + &.disabled, + &[disabled] { + cursor: @cursor-disabled; + > * { + pointer-events: none; + } + } + + &-large { + .button-size(@btn-height-large; @btn-padding-large; @btn-font-size-large; @btn-border-radius); + } + + &-small { + .button-size(@btn-height-small; @btn-padding-small; @btn-font-size; @btn-border-radius-small); + } + + &-icon-only{ + .btn-square(@btn-prefix-cls); + } +} + +// Default +.btn-default() { + .button-variant(@btn-default-color; @btn-default-bg; @btn-default-border); + + &:hover + //&:focus + { + .button-color(tint(@primary-color, 20%); white; tint(@primary-color, 20%)); + } + &:active, + &.active { + .button-color(shade(@primary-color, 5%); white; shade(@primary-color, 5%)); + } + .active-btn-color(@primary-color); +} + +// Primary +.btn-primary() { + .button-variant(@btn-primary-color; @btn-primary-bg; @primary-color); + + &:hover, + //&:focus, + &:active, + &.active { + color: @btn-primary-color; + } + .active-btn-color(@primary-color); +} + +// Ghost +.btn-ghost() { + .button-variant(@btn-ghost-color, @btn-ghost-bg, @btn-ghost-border); + + &:hover + //&:focus + { + .button-color(tint(@primary-color, 20%); @btn-ghost-bg; tint(@primary-color, 20%)); + } + &:active, + &.active { + .button-color(shade(@primary-color, 5%); @btn-ghost-bg; shade(@primary-color, 5%)); + } + .active-btn-color(@primary-color); +} + +// Dashed +.btn-dashed() { + .button-variant(@btn-ghost-color, @btn-ghost-bg, @btn-ghost-border); + border-style: dashed; + + &:hover + //&:focus + { + .button-color(tint(@primary-color, 20%); @btn-ghost-bg; tint(@primary-color, 20%)); + } + &:active, + &.active { + .button-color(shade(@primary-color, 5%); @btn-ghost-bg; shade(@primary-color, 5%)); + } + .active-btn-color(@primary-color); +} + +// Text +.btn-text() { + .button-variant(@btn-ghost-color, transparent, transparent); + + // for disabled + &.disabled, + &[disabled], + fieldset[disabled] & { + &, + &:hover, + &:focus, + &:active, + &.active { + .button-color(@btn-disable-color; @btn-ghost-bg; transparent); + } + } + + &:hover + //&:focus + { + .button-color(tint(@primary-color, 20%); @btn-ghost-bg; transparent); + } + &:active, + &.active { + .button-color(shade(@primary-color, 5%); @btn-ghost-bg; transparent); + } + .active-btn-color(@primary-color); +} + +// Color +// for tabindex +.active-btn-color(@color) { + &:focus { + box-shadow: 0 0 0 2px fade(@color, 20%); + } +} +.btn-color(@color) { + .button-variant(@btn-primary-color; @color; @color); + + &:hover, + //&:focus, + &:active, + &.active { + color: @btn-primary-color; + } + + .active-btn-color(@color); +} + +// Circle for Icon +.btn-circle(@btnClassName: ivu-btn) { + border-radius: @btn-circle-size; + + &.@{btnClassName}-large{ + border-radius: @btn-circle-size-large; + } + + &.@{btnClassName}-size{ + border-radius: @btn-circle-size-small; + } + + &.@{btnClassName}-icon-only{ + .square(@btn-circle-size); + .button-size(@btn-height-base; 0; @font-size-base + 2; 50%); + + &.@{btnClassName}-large{ + .square(@btn-circle-size-large); + .button-size(@btn-height-large; 0; @btn-font-size-large + 2; 50%); + } + + &.@{btnClassName}-small{ + .square(@btn-circle-size-small); + .button-size(@btn-height-small; 0; @font-size-base; 50%); + } + } +} + +// Group +.btn-group(@btnClassName: ivu-btn) { + .button-group-base(@btnClassName); + + .@{btnClassName} + .@{btnClassName}, + .@{btnClassName} + &, + & + .@{btnClassName}, + & + & { + margin-left: -1px; + } + + .@{btnClassName}:not(:first-child):not(:last-child) { + border-radius: 0; + } + + &:not(&-vertical) > .@{btnClassName}:first-child { + margin-left: 0; + &:not(:last-child) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; + } + } + + &:not(&-vertical) > .@{btnClassName}:last-child:not(:first-child) { + border-bottom-left-radius: 0; + border-top-left-radius: 0; + } + + & > & { + float: left; + } + + & > &:not(:first-child):not(:last-child) > .@{btnClassName} { + border-radius: 0; + } + + &:not(&-vertical) > &:first-child:not(:last-child) { + > .@{btnClassName}:last-child { + border-bottom-right-radius: 0; + border-top-right-radius: 0; + padding-right: 8px; + } + } + + &:not(&-vertical) > &:last-child:not(:first-child) > .@{btnClassName}:first-child { + border-bottom-left-radius: 0; + border-top-left-radius: 0; + padding-left: 8px; + } +} + +.btn-group-vertical(@btnClassName: ivu-btn) { + .button-group-vertical-base(@btnClassName); + + .@{btnClassName} + .@{btnClassName}, + .@{btnClassName} + &, + & + .@{btnClassName}, + & + & { + margin-top: -1px; + margin-left: 0px; + } + + > .@{btnClassName}:first-child { + margin-top: 0; + &:not(:last-child) { + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; + } + } + + > .@{btnClassName}:last-child:not(:first-child) { + border-top-left-radius: 0; + border-top-right-radius: 0; + } + + & > &:first-child:not(:last-child) { + > .@{btnClassName}:last-child { + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; + padding-bottom: 8px; + } + } + + & > &:last-child:not(:first-child) > .@{btnClassName}:first-child { + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; + padding-top: 8px; + } +} diff --git a/src/styles/mixins/caret.less b/src/styles/mixins/caret.less new file mode 100644 index 0000000000000000000000000000000000000000..43b05c8725ed14e6b082c81073c5c969257ef5dd --- /dev/null +++ b/src/styles/mixins/caret.less @@ -0,0 +1,37 @@ +// sortable +.sortable() { + display: inline-block; + width: 14px; + height: 12px; + margin-top: -1px; + vertical-align: middle; + overflow: hidden; + cursor: pointer; + position: relative; + + i { + display: block; + height: 6px; + line-height: 6px; + overflow: hidden; + position: absolute; + color: @btn-disable-color; + transition: color @transition-time @ease-in-out; + font-size: @font-size-large; + + &:hover{ + color: inherit; + } + + &.on{ + color: @primary-color; + } + + &:first-child{ + top: 0; + } + &:last-child{ + bottom: 0; + } + } +} \ No newline at end of file diff --git a/src/styles/mixins/checkbox.less b/src/styles/mixins/checkbox.less new file mode 100644 index 0000000000000000000000000000000000000000..0a982a5f844f5761328c0a340c97a06aba869d43 --- /dev/null +++ b/src/styles/mixins/checkbox.less @@ -0,0 +1,296 @@ +.checkboxFn(@checkbox-prefix-cls: ~"@{css-prefix}checkbox") { + @checkbox-inner-prefix-cls: ~"@{checkbox-prefix-cls}-inner"; + + .@{checkbox-prefix-cls}-focus { + box-shadow: 0 0 0 2px fade(@primary-color, 20%); + z-index: 1; + } + + // 普通状态 + .@{checkbox-prefix-cls} { + display: inline-block; + vertical-align: middle; + white-space: nowrap; + cursor: pointer; + //outline: none; + line-height: 1; + position: relative; + + &-disabled{ + cursor: @cursor-disabled; + } + + &:hover { + .@{checkbox-inner-prefix-cls} { + border-color: #bcbcbc; + } + } + + &-inner { + display: inline-block; + width: 16px; + height: 16px; + position: relative; + top: 0; + left: 0; + border: 1px solid @border-color-base; + border-radius: 2px; + background-color: #fff; + transition: border-color @transition-time @ease-in-out, background-color @transition-time @ease-in-out, box-shadow @transition-time @ease-in-out; + + &:after { + content: ''; + display: table; + width: 4px; + height: 8px; + position: absolute; + top: 1px; + left: 4px; + border: 2px solid #fff; + border-top: 0; + border-left: 0; + transform: rotate(45deg) scale(0); + transition: all @transition-time @ease-in-out; + } + } + &-large{ + & .@{checkbox-inner-prefix-cls} { + width: 18px; + height: 18px; + &:after{ + width: 5px; + height: 9px; + } + } + } + &-small{ + font-size: @font-size-base; + & .@{checkbox-inner-prefix-cls} { + width: 14px; + height: 14px; + &:after{ + top: 0; + left: 3px; + } + } + } + + &-input { + width: 100%; + height: 100%; + position: absolute; + top: 0; + bottom: 0; + left: 0; + right: 0; + z-index: 1; + cursor: pointer; + opacity: 0; + + &[disabled]{ + cursor: @cursor-disabled; + } + } + &-border{ + border: 1px solid @border-color-base; + border-radius: @btn-border-radius; + height: @btn-height-base; + line-height: @btn-height-base - 2px; + padding: @btn-padding-base; + transition: border @transition-time @ease-in-out; + } + &-small&-border, .@{checkbox-prefix-cls}-group.@{checkbox-prefix-cls}-small &-border{ + height: @btn-height-small; + line-height: @btn-height-small - 2px; + padding: @btn-padding-small; + } + &-large&-border, .@{checkbox-prefix-cls}-group.@{checkbox-prefix-cls}-large &-border{ + height: @btn-height-large; + line-height: @btn-height-large - 4px; + padding: @btn-padding-large; + } + } + + .@{checkbox-prefix-cls}-wrapper-checked.@{checkbox-prefix-cls}-border{ + border-color: @primary-color; + } + .@{checkbox-prefix-cls}-wrapper-disabled.@{checkbox-prefix-cls}-border{ + border-color: @btn-disable-border; + } + + // 选中状态 + .@{checkbox-prefix-cls}-checked { + + &:hover { + .@{checkbox-inner-prefix-cls} { + border-color: @primary-color; + } + } + + .@{checkbox-inner-prefix-cls} { + border-color: @primary-color; + background-color: @primary-color; + + &:after { + content: ''; + display: table; + width: 4px; + height: 8px; + position: absolute; + top: 2px; + left: 5px; + border: 2px solid #fff; + border-top: 0; + border-left: 0; + transform: rotate(45deg) scale(1); + transition: all @transition-time @ease-in-out; + } + } + } + .@{checkbox-prefix-cls}-large{ + .@{checkbox-prefix-cls}-checked{ + .@{checkbox-inner-prefix-cls} { + &:after{ + width: 6px; + height: 10px; + } + } + } + } + .@{checkbox-prefix-cls}-small{ + .@{checkbox-prefix-cls}-checked{ + .@{checkbox-inner-prefix-cls} { + &:after{ + top: 1px; + left: 4px; + } + } + } + } + + // 禁用 + .@{checkbox-prefix-cls}-disabled { + &.@{checkbox-prefix-cls}-checked { + &:hover { + .@{checkbox-inner-prefix-cls} { + border-color: @border-color-base; + } + } + + .@{checkbox-inner-prefix-cls} { + background-color: #f3f3f3; + border-color: @border-color-base; + + &:after { + animation-name: none; + border-color: #ccc; + } + } + } + + &:hover { + .@{checkbox-inner-prefix-cls} { + border-color: @border-color-base; + } + } + + .@{checkbox-inner-prefix-cls} { + border-color: @border-color-base; + background-color: #f3f3f3; + &:after { + animation-name: none; + border-color: #f3f3f3; + } + } + + .@{checkbox-inner-prefix-cls}-input { + cursor: default; + } + + & + span { + color: #ccc; + cursor: @cursor-disabled; + } + } + + // 半选状态 + .@{checkbox-prefix-cls}-indeterminate{ + .@{checkbox-inner-prefix-cls}:after{ + content: ''; + width: 10px; + height: 1px; + transform: scale(1); + position: absolute; + left: 2px; + top: 6px; + } + + &:hover { + .@{checkbox-inner-prefix-cls} { + border-color: @primary-color; + } + } + .@{checkbox-inner-prefix-cls}{ + background-color: @primary-color; + border-color: @primary-color; + } + &.@{checkbox-prefix-cls}-disabled{ + .@{checkbox-inner-prefix-cls}{ + background-color: #f3f3f3; + border-color: @border-color-base; + } + .@{checkbox-inner-prefix-cls}:after{ + border-color: @input-placeholder-color; + } + } + } + .@{checkbox-prefix-cls}-large { + .@{checkbox-prefix-cls}-indeterminate{ + .@{checkbox-inner-prefix-cls}:after{ + width: 12px; + top: 7px; + } + } + } + .@{checkbox-prefix-cls}-small { + .@{checkbox-prefix-cls}-indeterminate{ + .@{checkbox-inner-prefix-cls}:after{ + width: 8px; + top: 5px; + } + } + } + + .@{checkbox-prefix-cls}-wrapper { + cursor: pointer; + font-size: @font-size-base; + display: inline-block; + margin-right: 8px; + //outline: none; + + &-disabled{ + cursor: @cursor-disabled; + } + + &.@{checkbox-prefix-cls}-large{ + font-size: @font-size-large; + } + } + + .@{checkbox-prefix-cls}-wrapper + span, + .@{checkbox-prefix-cls} + span { + //margin-left: 4px; + margin-right: 4px; + } + + .@{checkbox-prefix-cls}-group { + font-size: @font-size-base; + &-item { + display: inline-block; + } + } + + .@{checkbox-prefix-cls}-label-text{ + padding-left: 4px; + } +} diff --git a/src/styles/mixins/clearfix.less b/src/styles/mixins/clearfix.less new file mode 100644 index 0000000000000000000000000000000000000000..cb914074ceb9b700b148c9f4c39c348a9ea6ae42 --- /dev/null +++ b/src/styles/mixins/clearfix.less @@ -0,0 +1,14 @@ +.clearfix() { + zoom: 1; + &:before, + &:after { + content: ""; + display: table; + } + &:after { + clear: both; + visibility: hidden; + font-size: 0; + height: 0; + } +} diff --git a/src/styles/mixins/close.less b/src/styles/mixins/close.less new file mode 100644 index 0000000000000000000000000000000000000000..f49216fae19c6f07dfdb1d8ad603e6b545d07775 --- /dev/null +++ b/src/styles/mixins/close.less @@ -0,0 +1,10 @@ +.close-base(@top: 0, @icon-font-size: 22px) { + font-size: @icon-font-size; + color: @legend-color; + transition: color @transition-time ease; + position: relative; + top: @top; + &:hover { + color: #444; + } +} \ No newline at end of file diff --git a/src/styles/mixins/common.less b/src/styles/mixins/common.less new file mode 100644 index 0000000000000000000000000000000000000000..9aacb8db994e5f163821c044047e6fb383b41da3 --- /dev/null +++ b/src/styles/mixins/common.less @@ -0,0 +1,38 @@ +.placeholder(@color: @input-placeholder-color) { + // Firefox + &::-moz-placeholder { + color: @color; + opacity: 1; // Override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526 + } + // Internet Explorer 10+ + &:-ms-input-placeholder { + color: @color; + } + // Safari and Chrome + &::-webkit-input-placeholder { + color: @color; + } +} + +// for select and input like component's arrow +.inner-arrow() { + position: absolute; + top: 50%; + right: 8px; + line-height: 1; + transform: translateY(-50%); + font-size: @font-size-base; + color: @subsidiary-color; + transition: all @transition-time @ease-in-out; +} + +.reset-component() { + font-family: @font-family; + font-size: @font-size-base; + line-height: @line-height-base; + color: @text-color; + box-sizing: border-box; + margin: 0; + padding: 0; + list-style: none; +} \ No newline at end of file diff --git a/src/styles/mixins/content.less b/src/styles/mixins/content.less new file mode 100644 index 0000000000000000000000000000000000000000..1096554e304c3c61e7d5d202b448b6dc420e2f93 --- /dev/null +++ b/src/styles/mixins/content.less @@ -0,0 +1,38 @@ +@icon-prefix-cls: ~"@{css-prefix}icon"; + +.content-header() { + border-bottom: 1px solid @border-color-split; + padding: 14px 16px; + line-height: 1; + + p, + &-inner + { + display: inline-block; + width: 100%; + height: 20px; + line-height: 20px; + font-size: @font-size-large; + color: @title-color; + font-weight: 500; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + } + p i, p span{ + //vertical-align: middle; + } +} + +.content-close(@top: 0, @icon-font-size: 22px) { + font-size: @font-size-small; + position: absolute; + right: 8px; + top: 8px; + overflow: hidden; + cursor: pointer; + + .@{icon-prefix-cls}-ios-close { + .close-base(@top, @icon-font-size); + } +} diff --git a/src/styles/mixins/index.less b/src/styles/mixins/index.less new file mode 100644 index 0000000000000000000000000000000000000000..2a0fe07121f9b9465106601506a7307b47281c64 --- /dev/null +++ b/src/styles/mixins/index.less @@ -0,0 +1,14 @@ +@import "common"; +@import "clearfix"; +@import "button"; +@import "layout"; +@import "size"; +@import "loading"; +@import "close"; +@import "checkbox"; +@import "input"; +@import "mask"; +@import "content"; // card、modal +@import "tooltip"; +@import "select"; +@import "caret"; \ No newline at end of file diff --git a/src/styles/mixins/input.less b/src/styles/mixins/input.less new file mode 100644 index 0000000000000000000000000000000000000000..fb624e27776f455e64a665de6ab4d65d40a03330 --- /dev/null +++ b/src/styles/mixins/input.less @@ -0,0 +1,290 @@ +.hover(@color: @input-hover-border-color) { + border-color: tint(@color, 20%); +} +.hover-error() { + border-color: @error-color; +} + +.active(@color: @input-hover-border-color) { + border-color: tint(@color, 20%); + outline: 0; + box-shadow: 0 0 0 2px fade(@color, 20%); +} +.active-error() { + border-color: @error-color; + outline: 0; + box-shadow: 0 0 0 2px fade(@error-color, 20%); +} + +.disabled() { + background-color: @input-disabled-bg; + opacity: 1; + cursor: @cursor-disabled; + color: #ccc; + &:hover { + .hover(@input-border-color); + } +} + +.input-large() { + font-size: @font-size-large; + padding: @input-padding-vertical-large @input-padding-horizontal; + height: @input-height-large; +} + +.input-small() { + padding: @input-padding-vertical-small @input-padding-horizontal; + height: @input-height-small; + border-radius: @btn-border-radius-small; +} + +.input() { + display: inline-block; + width: 100%; + height: @input-height-base; + line-height: @line-height-base; + padding: @input-padding-vertical-base @input-padding-horizontal; + font-size: @font-size-base; + border: 1px solid @input-border-color; + border-radius: @btn-border-radius; + color: @input-color; + background-color: @input-bg; + background-image: none; + position: relative; + cursor: text; + .placeholder(); + transition: border @transition-time @ease-in-out, background @transition-time @ease-in-out, box-shadow @transition-time @ease-in-out; + + &:hover { + .hover(); + } + + &:focus { + .active(); + } + + &[disabled], + fieldset[disabled] & { + .disabled(); + } + + // Reset height for textarea + textarea& { + max-width: 100%; + height: auto; + min-height: @input-height-base; + vertical-align: bottom; + font-size: @font-size-base; + } + + // Size + &-large { + .input-large(); + } + + &-small { + .input-small(); + } + + &-no-border{ + border-radius: 0; + border-color: transparent; + &:hover{ + border-color: transparent; + } + &:focus{ + border-color: transparent; + box-shadow: none; + } + &[disabled]{ + background-color: transparent; + &:hover { + border-color: transparent; + } + } + } +} + +.input-error() { + border: 1px solid @error-color; + &:hover { + .hover-error; + } + &:focus { + .active-error; + } +} + +.input-group(@inputClass) { + display: table; + width: 100%; + border-collapse: separate; + position: relative; + font-size: @font-size-base; + + .ivu-form-inline &{ + top: 1px; // fixed when using in form inline, + } + + &-large{ + font-size: @font-size-large; + } + + // Undo padding and float of grid classes + &[class*="col-"] { + float: none; + padding-left: 0; + padding-right: 0; + } + + > [class*="col-"] { + padding-right: 8px; + } + + &-prepend, + &-append, + > .@{inputClass} { + display: table-cell; + + //&:not(:first-child):not(:last-child) { + // border-radius: 0; + //} + } + &-with-prepend .@{inputClass}, + &-with-prepend&-small .@{inputClass} + { + border-top-left-radius: 0; + border-bottom-left-radius: 0; + } + &-with-append .@{inputClass}, + &-with-append&-small .@{inputClass} + { + border-top-right-radius: 0; + border-bottom-right-radius: 0; + } + + &-prepend .@{css-prefix}btn, + &-append .@{css-prefix}btn + { + border-color: transparent; + background-color: transparent; + color: inherit; + margin: -(@input-padding-vertical-base + 2) (-@input-padding-horizontal); + } + + &-prepend, + &-append + { + width: 1px; // To make addon/wrap as small as possible + white-space: nowrap; + vertical-align: middle; + } + + .@{inputClass} { + width: 100%; + float: left; + margin-bottom: 0; + position: relative; + z-index: 2; + } + + &-prepend, + &-append + { + padding: @input-padding-vertical-base @input-padding-horizontal; + font-size: inherit; + font-weight: normal; + line-height: 1; + color: @input-color; + text-align: center; + background-color: @input-group-bg; + border: 1px solid @input-border-color; + border-radius: @btn-border-radius; + + // Reset Select's style in addon + .@{css-prefix}select { + margin: -(@input-padding-vertical-base + 1) (-@input-padding-horizontal); // lesshint spaceAroundOperator: false + + &-selection { + background-color: inherit; + margin: -1px; + border: 1px solid transparent; + } + + &-visible .@{css-prefix}select-selection{ + box-shadow: none; + } + } + } + + // Reset rounded corners + > span > .@{inputClass}:first-child, + > .@{inputClass}:first-child, + &-prepend + { + border-bottom-right-radius: 0 !important; + border-top-right-radius: 0 !important; + + // Reset Select's style in addon + .@{css-prefix}-select .@{css-prefix}-select-selection { + border-bottom-right-radius: 0; + border-top-right-radius: 0; + } + } + + &-prepend { + border-right: 0; + } + &-append { + border-left: 0; + } + + > .@{inputClass}:last-child, + &-append + { + border-bottom-left-radius: 0 !important; + border-top-left-radius: 0 !important; + + // Reset Select's style in addon + .@{css-prefix}-select .@{css-prefix}-select-selection { + border-bottom-left-radius: 0; + border-top-left-radius: 0; + } + } + + // Sizing options + &-large .@{inputClass}, + &-large > &-prepend, + &-large > &-append + { + .input-large(); + } + + &-small .@{inputClass}, + &-small > &-prepend, + &-small > &-append + { + .input-small(); + } +} + +.input-group-error{ + &-prepend, + &-append + { + background-color: #fff; + border: 1px solid @error-color; + .@{css-prefix}select { + &-selection { + background-color: inherit; + border: 1px solid transparent; + } + } + } + &-prepend { + border-right: 0; + } + &-append { + border-left: 0; + } +} diff --git a/src/styles/mixins/layout.less b/src/styles/mixins/layout.less new file mode 100644 index 0000000000000000000000000000000000000000..70466537f3e2e51893629a3ec356feb0281a3955 --- /dev/null +++ b/src/styles/mixins/layout.less @@ -0,0 +1,53 @@ +@row-prefix-cls: ~"@{css-prefix}row"; +@col-prefix-cls: ~"@{css-prefix}col"; + +// mixins for grid system + +.loop-grid-columns(@index, @class) when (@index > 0) { + .@{col-prefix-cls}-span@{class}-@{index} { + display: block; + flex: 0 0 percentage((@index / @grid-columns)); + max-width: percentage((@index / @grid-columns)); + } + .@{col-prefix-cls}@{class}-push-@{index} { + left: percentage((@index / @grid-columns)); + } + .@{col-prefix-cls}@{class}-pull-@{index} { + right: percentage((@index / @grid-columns)); + } + .@{col-prefix-cls}@{class}-offset-@{index} { + margin-left: percentage((@index / @grid-columns)); + } + .@{col-prefix-cls}@{class}-order-@{index} { + order: @index; + } + .loop-grid-columns((@index - 1), @class); +} + +.loop-grid-columns(@index, @class) when (@index = 0) { + .@{col-prefix-cls}-span@{class}-@{index} { + display: none; + } + .@{col-prefix-cls}-push-@{index} { + left: auto; + } + .@{col-prefix-cls}-pull-@{index} { + right: auto; + } + .@{col-prefix-cls}@{class}-push-@{index} { + left: auto; + } + .@{col-prefix-cls}@{class}-pull-@{index} { + right: auto; + } + .@{col-prefix-cls}@{class}-offset-@{index} { + margin-left: 0; + } + .@{col-prefix-cls}@{class}-order-@{index} { + order: 0; + } +} + +.make-grid(@class: ~'') { + .loop-grid-columns(@grid-columns, @class); +} diff --git a/src/styles/mixins/loading.less b/src/styles/mixins/loading.less new file mode 100644 index 0000000000000000000000000000000000000000..ba557be6c4d02b5e1b8337d7ca85c7bdad058cdd --- /dev/null +++ b/src/styles/mixins/loading.less @@ -0,0 +1,10 @@ +// Loading for loop +.ivu-load-loop{ + animation: ani-load-loop 1s linear infinite; +} + +@keyframes ani-load-loop { + from { transform: rotate(0deg);} + 50% { transform: rotate(180deg);} + to { transform: rotate(360deg);} +} diff --git a/src/styles/mixins/mask.less b/src/styles/mixins/mask.less new file mode 100644 index 0000000000000000000000000000000000000000..66319505bf81988b50f4835706f50bd747085d14 --- /dev/null +++ b/src/styles/mixins/mask.less @@ -0,0 +1,14 @@ +.mask() { + position: fixed; + top: 0; + bottom: 0; + left: 0; + right: 0; + background-color: rgba(55, 55, 55, 0.6); + height: 100%; + z-index: @zindex-modal; + + &-hidden { + display: none; + } +} \ No newline at end of file diff --git a/src/styles/mixins/operation-unit.less b/src/styles/mixins/operation-unit.less new file mode 100644 index 0000000000000000000000000000000000000000..2dc85bf11c026cbd0b0fac7f62f718085aeb8858 --- /dev/null +++ b/src/styles/mixins/operation-unit.less @@ -0,0 +1,16 @@ +.operation-unit() { + color: @link-color; + text-decoration: none; + outline: none; + cursor: pointer; + transition: color 0.3s; + + &:focus, + &:hover { + color: @link-hover-color; + } + + &:active { + color: @link-active-color; + } +} diff --git a/src/styles/mixins/select.less b/src/styles/mixins/select.less new file mode 100644 index 0000000000000000000000000000000000000000..fc23e6ea05fa16c7e2848f252b0750b840a979dc --- /dev/null +++ b/src/styles/mixins/select.less @@ -0,0 +1,75 @@ +.select-item(@size-class, @item-class) { + .@{item-class} { + margin: 0; + line-height: normal; + padding: 7px 16px; + clear: both; + color: @text-color; + font-size: @font-size-base !important; + white-space: nowrap; + list-style: none; + cursor: pointer; + transition: background @transition-time @ease-in-out; + + &:hover{ + background: @background-color-select-hover; + } + + &-focus { + background: @background-color-select-hover; + } + + &-disabled { + color: @btn-disable-color; + cursor: @cursor-disabled; + + &:hover { + color: @btn-disable-color; + background-color: #fff; + cursor: @cursor-disabled; + } + } + + &-selected ,&-selected:hover{ + color: @primary-color; + //background: @selected-color; + } + + &-selected&-focus { + //background: shade(@selected-color, 10%); + } + + &-divided{ + margin-top: 5px; + border-top: 1px solid @border-color-split; + &:before{ + content: ''; + height: 5px; + display: block; + margin: 0 -16px; + background-color: #fff; + position: relative; + top: -7px; + } + } + + &-enter{ + color: @primary-color; + font-weight: bold; + float: right; + } + } + + .@{size-class}-large .@{item-class} { + padding: 7px 16px 8px; + font-size: @font-size-base !important; + } + // http://browserhacks.com/ + // https://bugzilla.mozilla.org/show_bug.cgi?id=488725 + // fixed #1224 #1143 #1127 + @-moz-document url-prefix() { + .@{item-class} { + white-space: normal; + } + } +} diff --git a/src/styles/mixins/size.less b/src/styles/mixins/size.less new file mode 100644 index 0000000000000000000000000000000000000000..8e0f27bd04d1b5996dbb2789dcdcf4d3273f7252 --- /dev/null +++ b/src/styles/mixins/size.less @@ -0,0 +1,20 @@ +.size(@width; @height) { + width: @width; + height: @height; +} + +.square(@size) { + .size(@size; @size); +} + +// fix chrome 12px bug, support ie +.iconfont-size-under-12px(@size, @rotate: 0deg) { + display: inline-block; + @font-scale: unit((@size / @font-size-base)); + font-size: @font-size-base; + font-size: ~"@{size} \9"; // ie8-9 + transform: scale(@font-scale) rotate(@rotate); + :root & { + font-size: @font-size-base; // reset ie9 and above + } +} diff --git a/src/styles/mixins/tooltip.less b/src/styles/mixins/tooltip.less new file mode 100644 index 0000000000000000000000000000000000000000..7f3a48b7afe4d63c05e921f20b3fe229362163ef --- /dev/null +++ b/src/styles/mixins/tooltip.less @@ -0,0 +1,85 @@ +.popper(@arrow, @arrow-width, @arrow-distance, @bg){ + display: block; + visibility: visible; + font-size: @font-size-base; + line-height: @line-height-base; + position: absolute; + z-index: @zindex-tooltip; + + &[x-placement^="top"] { + padding: @arrow-width 0 @arrow-distance 0; + } + &[x-placement^="right"] { + padding: 0 @arrow-width 0 @arrow-distance; + } + &[x-placement^="bottom"] { + padding: @arrow-distance 0 @arrow-width 0; + } + &[x-placement^="left"] { + padding: 0 @arrow-distance 0 @arrow-width; + } + + &[x-placement^="top"] .@{arrow} { + bottom: @arrow-distance - @arrow-width; + border-width: @arrow-width @arrow-width 0; + border-top-color: @bg; + } + &[x-placement="top"] .@{arrow} { + left: 50%; + margin-left: -@arrow-width; + } + &[x-placement="top-start"] .@{arrow} { + left: 16px; + } + &[x-placement="top-end"] .@{arrow} { + right: 16px; + } + + &[x-placement^="right"] .@{arrow} { + left: @arrow-distance - @arrow-width; + border-width: @arrow-width @arrow-width @arrow-width 0; + border-right-color: @bg; + } + &[x-placement="right"] .@{arrow} { + top: 50%; + margin-top: -@arrow-width; + } + &[x-placement="right-start"] .@{arrow} { + top: 8px; + } + &[x-placement="right-end"] .@{arrow} { + bottom: 8px; + } + + &[x-placement^="left"] .@{arrow} { + right: @arrow-distance - @arrow-width; + border-width: @arrow-width 0 @arrow-width @arrow-width; + border-left-color: @bg; + } + &[x-placement="left"] .@{arrow} { + top: 50%; + margin-top: -@arrow-width; + } + &[x-placement="left-start"] .@{arrow} { + top: 8px; + } + &[x-placement="left-end"] .@{arrow} { + bottom: 8px; + } + + &[x-placement^="bottom"] .@{arrow} { + top: @arrow-distance - @arrow-width; + border-width: 0 @arrow-width @arrow-width; + border-bottom-color: @bg; + } + &[x-placement="bottom"] .@{arrow} { + left: 50%; + margin-left: -@arrow-width; + } + &[x-placement="bottom-start"] .@{arrow} { + left: 16px; + } + &[x-placement="bottom-end"] .@{arrow} { + right: 16px; + } +} diff --git a/src/styles/mixins/typography.less b/src/styles/mixins/typography.less new file mode 100644 index 0000000000000000000000000000000000000000..5a7448c464f7c7934e588a556b2a8e2839d9fb5e --- /dev/null +++ b/src/styles/mixins/typography.less @@ -0,0 +1,67 @@ +// =============== Common =============== +.typography-paragraph() { + margin-bottom: 1em; +} + +.typography-title(@fontSize; @fontWeight; @lineHeight; @headingColor; @headingMarginBottom;) { + margin-bottom: @headingMarginBottom; + color: @headingColor; + font-weight: @fontWeight; + font-size: @fontSize; + line-height: @lineHeight; +} + +.typography-title-1() { + .typography-title( + @heading-1-size, + @typography-title-font-weight, + 1.23, + @heading-color, + @typography-title-margin-bottom + ); +} +.typography-title-2() { + .typography-title( + @heading-2-size, + @typography-title-font-weight, + 1.35, + @heading-color, + @typography-title-margin-bottom + ); +} +.typography-title-3() { + .typography-title( + @heading-3-size, + @typography-title-font-weight, + 1.35, + @heading-color, + @typography-title-margin-bottom + ); +} +.typography-title-4() { + .typography-title( + @heading-4-size, + @typography-title-font-weight, + 1.4, + @heading-color, + @typography-title-margin-bottom + ); +} +.typography-title-5() { + .typography-title( + @heading-5-size, + @typography-title-font-weight, + 1.5, + @heading-color, + @typography-title-margin-bottom + ); +} +.typography-title-6() { + .typography-title( + @heading-6-size, + @typography-title-font-weight, + 1.5, + @heading-color, + @typography-title-margin-bottom + ); +} diff --git a/src/utils/assist.js b/src/utils/assist.js new file mode 100644 index 0000000000000000000000000000000000000000..b8a08b3dd736f42f1eca70154cc5bb0285e6d49d --- /dev/null +++ b/src/utils/assist.js @@ -0,0 +1,353 @@ +import { isClient } from './index'; + +// 判断参数是否是其中之一 +export function oneOf (value, validList) { + for (let i = 0; i < validList.length; i++) { + if (value === validList[i]) { + return true; + } + } + return false; +} + +export function camelcaseToHyphen (str) { + return str.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase(); +} + +// For Modal scrollBar hidden +let cached; +export function getScrollBarSize (fresh) { + // if (isServer) return 0; + if (isClient && (fresh || cached === undefined)) { + const inner = document.createElement('div'); + inner.style.width = '100%'; + inner.style.height = '200px'; + + const outer = document.createElement('div'); + const outerStyle = outer.style; + + outerStyle.position = 'absolute'; + outerStyle.top = 0; + outerStyle.left = 0; + outerStyle.pointerEvents = 'none'; + outerStyle.visibility = 'hidden'; + outerStyle.width = '200px'; + outerStyle.height = '150px'; + outerStyle.overflow = 'hidden'; + + outer.appendChild(inner); + + document.body.appendChild(outer); + + const widthContained = inner.offsetWidth; + outer.style.overflow = 'scroll'; + let widthScroll = inner.offsetWidth; + + if (widthContained === widthScroll) { + widthScroll = outer.clientWidth; + } + + document.body.removeChild(outer); + + cached = widthContained - widthScroll; + } + return cached; +} + +// watch DOM change +// export const MutationObserver = isServer ? false : window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver || false; +export const MutationObserver = isClient ? window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver || false : false; + +const SPECIAL_CHARS_REGEXP = /([\:\-\_]+(.))/g; +const MOZ_HACK_REGEXP = /^moz([A-Z])/; + +function camelCase(name) { + return name.replace(SPECIAL_CHARS_REGEXP, function(_, separator, letter, offset) { + return offset ? letter.toUpperCase() : letter; + }).replace(MOZ_HACK_REGEXP, 'Moz$1'); +} +// getStyle +export function getStyle (element, styleName) { + if (!isClient) return; + if (!element || !styleName) return null; + styleName = camelCase(styleName); + if (styleName === 'float') { + styleName = 'cssFloat'; + } + try { + const computed = document.defaultView.getComputedStyle(element, ''); + return element.style[styleName] || computed ? computed[styleName] : null; + } catch(e) { + return element.style[styleName]; + } +} + +// firstUpperCase +function firstUpperCase(str) { + return str.toString()[0].toUpperCase() + str.toString().slice(1); +} +export {firstUpperCase}; + +// Warn +export function warnProp(component, prop, correctType, wrongType) { + correctType = firstUpperCase(correctType); + wrongType = firstUpperCase(wrongType); + console.error(`[View UI warn]: Invalid prop: type check failed for prop ${prop}. Expected ${correctType}, got ${wrongType}. (found in component: ${component})`); // eslint-disable-line +} + +export function typeOf(obj) { + const toString = Object.prototype.toString; + const map = { + '[object Boolean]' : 'boolean', + '[object Number]' : 'number', + '[object String]' : 'string', + '[object Function]' : 'function', + '[object Array]' : 'array', + '[object Date]' : 'date', + '[object RegExp]' : 'regExp', + '[object Undefined]': 'undefined', + '[object Null]' : 'null', + '[object Object]' : 'object' + }; + return map[toString.call(obj)]; +} + +// deepCopy +function deepCopy(data) { + const t = typeOf(data); + let o; + + if (t === 'array') { + o = []; + } else if ( t === 'object') { + o = {}; + } else { + return data; + } + + if (t === 'array') { + for (let i = 0; i < data.length; i++) { + o.push(deepCopy(data[i])); + } + } else if ( t === 'object') { + for (let i in data) { + o[i] = deepCopy(data[i]); + } + } + return o; +} + +export {deepCopy}; + +// scrollTop animation +export function scrollTop(el, from = 0, to, duration = 500, endCallback) { + if (!isClient) return; + if (!window.requestAnimationFrame) { + window.requestAnimationFrame = ( + window.webkitRequestAnimationFrame || + window.mozRequestAnimationFrame || + window.msRequestAnimationFrame || + function (callback) { + return window.setTimeout(callback, 1000/60); + } + ); + } + const difference = Math.abs(from - to); + const step = Math.ceil(difference / duration * 50); + + function scroll(start, end, step) { + if (start === end) { + endCallback && endCallback(); + return; + } + + let d = (start + step > end) ? end : start + step; + if (start > end) { + d = (start - step < end) ? end : start - step; + } + + if (el === window) { + window.scrollTo(d, d); + } else { + el.scrollTop = d; + } + window.requestAnimationFrame(() => scroll(d, end, step)); + } + scroll(from, to, step); +} + +// Find components upward +function findComponentUpward (context, componentName, componentNames) { + if (typeof componentName === 'string') { + componentNames = [componentName]; + } else { + componentNames = componentName; + } + + let parent = context.$parent; + let name = parent.$options.name; + while (parent && (!name || componentNames.indexOf(name) < 0)) { + parent = parent.$parent; + if (parent) name = parent.$options.name; + } + return parent; +} +export {findComponentUpward}; + +// Find component downward +export function findComponentDownward (context, componentName) { + const $children = context.$children; + let children = null; + + if ($children.length) { + for (const child of $children) { + const name = child.$options.name; + if (name === componentName) { + children = child; + break; + } else { + children = findComponentDownward(child, componentName); + if (children) break; + } + } + } + return children; +} + +// Find components downward +export function findComponentsDownward (context, componentName) { + return context.$children.reduce((components, child) => { + if (child.$options.name === componentName) components.push(child); + const foundChilds = findComponentsDownward(child, componentName); + return components.concat(foundChilds); + }, []); +} + +// Find components upward +export function findComponentsUpward (context, componentName) { + let parents = []; + const parent = context.$parent; + if (parent) { + if (parent.$options.name === componentName) parents.push(parent); + return parents.concat(findComponentsUpward(parent, componentName)); + } else { + return []; + } +} + +// Find brothers components +export function findBrothersComponents (context, componentName, exceptMe = true) { + let res = context.$parent.$children.filter(item => { + return item.$options.name === componentName; + }); + let index = res.findIndex(item => item._uid === context._uid); + if (exceptMe) res.splice(index, 1); + return res; +} + +/* istanbul ignore next */ +const trim = function(string) { + return (string || '').replace(/^[\s\uFEFF]+|[\s\uFEFF]+$/g, ''); +}; + +/* istanbul ignore next */ +export function hasClass(el, cls) { + if (!el || !cls) return false; + if (cls.indexOf(' ') !== -1) throw new Error('className should not contain space.'); + if (el.classList) { + return el.classList.contains(cls); + } else { + return (' ' + el.className + ' ').indexOf(' ' + cls + ' ') > -1; + } +} + +/* istanbul ignore next */ +export function addClass(el, cls) { + if (!el) return; + let curClass = el.className; + const classes = (cls || '').split(' '); + + for (let i = 0, j = classes.length; i < j; i++) { + const clsName = classes[i]; + if (!clsName) continue; + + if (el.classList) { + el.classList.add(clsName); + } else { + if (!hasClass(el, clsName)) { + curClass += ' ' + clsName; + } + } + } + if (!el.classList) { + el.className = curClass; + } +} + +/* istanbul ignore next */ +export function removeClass(el, cls) { + if (!el || !cls) return; + const classes = cls.split(' '); + let curClass = ' ' + el.className + ' '; + + for (let i = 0, j = classes.length; i < j; i++) { + const clsName = classes[i]; + if (!clsName) continue; + + if (el.classList) { + el.classList.remove(clsName); + } else { + if (hasClass(el, clsName)) { + curClass = curClass.replace(' ' + clsName + ' ', ' '); + } + } + } + if (!el.classList) { + el.className = trim(curClass); + } +} + +export const dimensionMap = { + xs: '480px', + sm: '576px', + md: '768px', + lg: '992px', + xl: '1200px', + xxl: '1600px', +}; + +export function setMatchMedia () { + if (!isClient) return; + const matchMediaPolyfill = mediaQuery => { + return { + media: mediaQuery, + matches: false, + on() {}, + off() {}, + }; + }; + window.matchMedia = window.matchMedia || matchMediaPolyfill; +} + +export const sharpMatcherRegx = /#([^#]+)$/; + +// download file +export async function downloadFile(url, name = 'unnamed') { + if (!isClient) return Promise.reject(); + try { + const res = await fetch(url); + const blob = await res.blob(); + + if (!blob) return Promise.reject(); + + const localUrl = URL.createObjectURL(blob); + const a = document.createElement('a'); + a.setAttribute('href', localUrl); + a.setAttribute('download', name); + a.click(); + URL.revokeObjectURL(localUrl); + return Promise.resolve(); + } catch(e) { + return Promise.reject(e); + } +} diff --git a/src/utils/calcTextareaHeight.js b/src/utils/calcTextareaHeight.js new file mode 100644 index 0000000000000000000000000000000000000000..118c80fa575104fb0efed8c599203790379da10f --- /dev/null +++ b/src/utils/calcTextareaHeight.js @@ -0,0 +1,269 @@ +// Thanks to +// https://github.com/andreypopp/react-textarea-autosize/ + +// let hiddenTextarea; +// +// const HIDDEN_STYLE = ` +// height:0 !important; +// min-height:0 !important; +// max-height:none !important; +// visibility:hidden !important; +// overflow:hidden !important; +// position:absolute !important; +// z-index:-1000 !important; +// top:0 !important; +// right:0 !important +// `; +// +// const CONTEXT_STYLE = [ +// 'letter-spacing', +// 'line-height', +// 'padding-top', +// 'padding-bottom', +// 'font-family', +// 'font-weight', +// 'font-size', +// 'text-rendering', +// 'text-transform', +// 'width', +// 'text-indent', +// 'padding-left', +// 'padding-right', +// 'border-width', +// 'box-sizing' +// ]; +// +// function calculateNodeStyling(node) { +// const style = window.getComputedStyle(node); +// +// const boxSizing = style.getPropertyValue('box-sizing'); +// +// const paddingSize = ( +// parseFloat(style.getPropertyValue('padding-bottom')) + +// parseFloat(style.getPropertyValue('padding-top')) +// ); +// +// const borderSize = ( +// parseFloat(style.getPropertyValue('border-bottom-width')) + +// parseFloat(style.getPropertyValue('border-top-width')) +// ); +// +// const contextStyle = CONTEXT_STYLE +// .map(name => `${name}:${style.getPropertyValue(name)}`) +// .join(';'); +// +// return {contextStyle, paddingSize, borderSize, boxSizing}; +// } +// +// export default function calcTextareaHeight(targetNode, minRows = null, maxRows = null) { +// if (!hiddenTextarea) { +// hiddenTextarea = document.createElement('textarea'); +// document.body.appendChild(hiddenTextarea); +// } +// +// let { +// paddingSize, +// borderSize, +// boxSizing, +// contextStyle +// } = calculateNodeStyling(targetNode); +// +// hiddenTextarea.setAttribute('style', `${contextStyle};${HIDDEN_STYLE}`); +// hiddenTextarea.value = targetNode.value || targetNode.placeholder || ''; +// +// let height = hiddenTextarea.scrollHeight; +// let minHeight = -Infinity; +// let maxHeight = Infinity; +// let overflowY; +// +// if (boxSizing === 'border-box') { +// height = height + borderSize; +// } else if (boxSizing === 'content-box') { +// height = height - paddingSize; +// } +// +// hiddenTextarea.value = ''; +// let singleRowHeight = hiddenTextarea.scrollHeight - paddingSize; +// +// if (minRows !== null) { +// minHeight = singleRowHeight * minRows; +// if (boxSizing === 'border-box') { +// minHeight = minHeight + paddingSize + borderSize; +// } +// height = Math.max(minHeight, height); +// } +// if (maxRows !== null) { +// maxHeight = singleRowHeight * maxRows; +// if (boxSizing === 'border-box') { +// maxHeight = maxHeight + paddingSize + borderSize; +// } +// overflowY = height > maxHeight ? '' : 'hidden'; +// height = Math.min(maxHeight, height); +// } +// +// if (!maxRows) { +// overflowY = 'hidden'; +// } +// +// return { +// height: `${height}px`, +// minHeight: `${minHeight}px`, +// maxHeight: `${maxHeight}px`, +// overflowY +// }; +// } + +import { isClient } from './index'; + +const HIDDEN_TEXTAREA_STYLE = ` + min-height:0 !important; + max-height:none !important; + height:0 !important; + visibility:hidden !important; + overflow:hidden !important; + position:absolute !important; + z-index:-1000 !important; + top:0 !important; + right:0 !important +`; + +const SIZING_STYLE = [ + 'letter-spacing', + 'line-height', + 'padding-top', + 'padding-bottom', + 'font-family', + 'font-weight', + 'font-size', + 'text-rendering', + 'text-transform', + 'width', + 'text-indent', + 'padding-left', + 'padding-right', + 'border-width', + 'box-sizing', +]; + +let computedStyleCache = {}; +let hiddenTextarea; + +function calculateNodeStyling(node, useCache = false) { + if (!isClient) return; + const nodeRef = ( + node.getAttribute('id') || + node.getAttribute('data-reactid') || + node.getAttribute('name')); + + if (useCache && computedStyleCache[nodeRef]) { + return computedStyleCache[nodeRef]; + } + + const style = window.getComputedStyle(node); + + const boxSizing = ( + style.getPropertyValue('box-sizing') || + style.getPropertyValue('-moz-box-sizing') || + style.getPropertyValue('-webkit-box-sizing') + ); + + const paddingSize = ( + parseFloat(style.getPropertyValue('padding-bottom')) + + parseFloat(style.getPropertyValue('padding-top')) + ); + + const borderSize = ( + parseFloat(style.getPropertyValue('border-bottom-width')) + + parseFloat(style.getPropertyValue('border-top-width')) + ); + + const sizingStyle = SIZING_STYLE + .map(name => `${name}:${style.getPropertyValue(name)}`) + .join(';'); + + const nodeInfo = { + sizingStyle, + paddingSize, + borderSize, + boxSizing, + }; + + if (useCache && nodeRef) { + computedStyleCache[nodeRef] = nodeInfo; + } + + return nodeInfo; +} + +export default function calcTextareaHeight(uiTextNode, minRows = null, maxRows = null, useCache = false) { + if (isClient && !hiddenTextarea) { + hiddenTextarea = document.createElement('textarea'); + document.body.appendChild(hiddenTextarea); + } + + // Fix wrap="off" issue + // https://github.com/ant-design/ant-design/issues/6577 + if (uiTextNode.getAttribute('wrap')) { + hiddenTextarea.setAttribute('wrap', uiTextNode.getAttribute('wrap')); + } else { + hiddenTextarea.removeAttribute('wrap'); + } + + // Copy all CSS properties that have an impact on the height of the content in + // the textbox + let { + paddingSize, borderSize, + boxSizing, sizingStyle, + } = calculateNodeStyling(uiTextNode, useCache); + + // Need to have the overflow attribute to hide the scrollbar otherwise + // text-lines will not calculated properly as the shadow will technically be + // narrower for content + hiddenTextarea.setAttribute('style', `${sizingStyle};${HIDDEN_TEXTAREA_STYLE}`); + hiddenTextarea.value = uiTextNode.value || uiTextNode.placeholder || ''; + + let minHeight = Number.MIN_SAFE_INTEGER; + let maxHeight = Number.MAX_SAFE_INTEGER; + let height = hiddenTextarea.scrollHeight; + let overflowY; + + if (boxSizing === 'border-box') { + // border-box: add border, since height = content + padding + border + height = height + borderSize; + } else if (boxSizing === 'content-box') { + // remove padding, since height = content + height = height - paddingSize; + } + + if (minRows !== null || maxRows !== null) { + // measure height of a textarea with a single row + hiddenTextarea.value = ' '; + let singleRowHeight = hiddenTextarea.scrollHeight - paddingSize; + if (minRows !== null) { + minHeight = singleRowHeight * minRows; + if (boxSizing === 'border-box') { + minHeight = minHeight + paddingSize + borderSize; + } + height = Math.max(minHeight, height); + } + if (maxRows !== null) { + maxHeight = singleRowHeight * maxRows; + if (boxSizing === 'border-box') { + maxHeight = maxHeight + paddingSize + borderSize; + } + overflowY = height > maxHeight ? '' : 'hidden'; + height = Math.min(maxHeight, height); + } + } + // Remove scroll bar flash when autosize without maxRows + if (!maxRows) { + overflowY = 'hidden'; + } + + return { + height: `${height}px`, + minHeight: `${minHeight}px`, + maxHeight: `${maxHeight}px`, + overflowY + }; +} diff --git a/src/utils/canUseDom.js b/src/utils/canUseDom.js new file mode 100644 index 0000000000000000000000000000000000000000..9ca647b220b76b7cd79d5d70f9e67c1adc020480 --- /dev/null +++ b/src/utils/canUseDom.js @@ -0,0 +1,5 @@ +function canUseDom() { + return !!(typeof window !== 'undefined' && window.document && window.document.createElement); +} + +export default canUseDom; diff --git a/src/utils/csv.js b/src/utils/csv.js new file mode 100644 index 0000000000000000000000000000000000000000..b060541584d25a033cadb5a473199f9aa250b007 --- /dev/null +++ b/src/utils/csv.js @@ -0,0 +1,59 @@ +/* + inspired by https://www.npmjs.com/package/react-csv-downloader + now removed from Github +*/ + +const newLine = '\r\n'; +const appendLine = (content, row, { separator, quoted }) => { + const line = row.map(data => { + if (!quoted) return data; + // quote data + data = typeof data === 'string' ? data.replace(/"/g, '"') : data; + return `"${data}"`; + }); + content.push(line.join(separator)); +}; + +const defaults = { + separator: ',', + quoted: false +}; + +export default function csv(columns, datas, options, noHeader = false) { + options = Object.assign({}, defaults, options); + let columnOrder; + const content = []; + const column = []; + + if (columns) { + columnOrder = columns.map(v => { + if (typeof v === 'string') return v; + if (!noHeader) { + column.push(typeof v.title !== 'undefined' ? v.title : v.key); + } + return v.key; + }); + if (column.length > 0) appendLine(content, column, options); + } else { + columnOrder = []; + datas.forEach(v => { + if (!Array.isArray(v)) { + columnOrder = columnOrder.concat(Object.keys(v)); + } + }); + if (columnOrder.length > 0) { + columnOrder = columnOrder.filter((value, index, self) => self.indexOf(value) === index); + if (!noHeader) appendLine(content, columnOrder, options); + } + } + + if (Array.isArray(datas)) { + datas.forEach(row => { + if (!Array.isArray(row)) { + row = columnOrder.map(k => (typeof row[k] !== 'undefined' ? row[k] : '')); + } + appendLine(content, row, options); + }); + } + return content.join(newLine); +} diff --git a/src/utils/date.js b/src/utils/date.js new file mode 100644 index 0000000000000000000000000000000000000000..72fd5f71f130ed870073ff6db4028f75e40d69c4 --- /dev/null +++ b/src/utils/date.js @@ -0,0 +1,321 @@ +/*eslint-disable*/ +// 把 YYYY-MM-DD 改成了 yyyy-MM-dd +/** + * Parse or format dates + * @class fecha + */ +var fecha = {}; +var token = /d{1,4}|M{1,4}|yy(?:yy)?|S{1,3}|Do|ZZ|([HhMsDm])\1?|[aA]|"[^"]*"|'[^']*'/g; +var twoDigits = /\d\d?/; +var threeDigits = /\d{3}/; +var fourDigits = /\d{4}/; +var word = /[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i; +var noop = function () { +}; + +function shorten(arr, sLen) { + var newArr = []; + for (var i = 0, len = arr.length; i < len; i++) { + newArr.push(arr[i].substr(0, sLen)); + } + return newArr; +} + +function monthUpdate(arrName) { + return function (d, v, i18n) { + var index = i18n[arrName].indexOf(v.charAt(0).toUpperCase() + v.substr(1).toLowerCase()); + if (~index) { + d.month = index; + } + }; +} + +function pad(val, len) { + val = String(val); + len = len || 2; + while (val.length < len) { + val = '0' + val; + } + return val; +} + +var dayNames = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']; +var monthNames = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']; +var monthNamesShort = shorten(monthNames, 3); +var dayNamesShort = shorten(dayNames, 3); +fecha.i18n = { + dayNamesShort: dayNamesShort, + dayNames: dayNames, + monthNamesShort: monthNamesShort, + monthNames: monthNames, + amPm: ['am', 'pm'], + DoFn: function DoFn(D) { + return D + ['th', 'st', 'nd', 'rd'][D % 10 > 3 ? 0 : (D - D % 10 !== 10) * D % 10]; + } +}; + +var formatFlags = { + D: function (dateObj) { + return dateObj.getDay(); + }, + DD: function (dateObj) { + return pad(dateObj.getDay()); + }, + Do: function (dateObj, i18n) { + return i18n.DoFn(dateObj.getDate()); + }, + d: function (dateObj) { + return dateObj.getDate(); + }, + dd: function (dateObj) { + return pad(dateObj.getDate()); + }, + ddd: function (dateObj, i18n) { + return i18n.dayNamesShort[dateObj.getDay()]; + }, + dddd: function (dateObj, i18n) { + return i18n.dayNames[dateObj.getDay()]; + }, + M: function (dateObj) { + return dateObj.getMonth() + 1; + }, + MM: function (dateObj) { + return pad(dateObj.getMonth() + 1); + }, + MMM: function (dateObj, i18n) { + return i18n.monthNamesShort[dateObj.getMonth()]; + }, + MMMM: function (dateObj, i18n) { + return i18n.monthNames[dateObj.getMonth()]; + }, + yy: function (dateObj) { + return String(dateObj.getFullYear()).substr(2); + }, + yyyy: function (dateObj) { + return dateObj.getFullYear(); + }, + h: function (dateObj) { + return dateObj.getHours() % 12 || 12; + }, + hh: function (dateObj) { + return pad(dateObj.getHours() % 12 || 12); + }, + H: function (dateObj) { + return dateObj.getHours(); + }, + HH: function (dateObj) { + return pad(dateObj.getHours()); + }, + m: function (dateObj) { + return dateObj.getMinutes(); + }, + mm: function (dateObj) { + return pad(dateObj.getMinutes()); + }, + s: function (dateObj) { + return dateObj.getSeconds(); + }, + ss: function (dateObj) { + return pad(dateObj.getSeconds()); + }, + S: function (dateObj) { + return Math.round(dateObj.getMilliseconds() / 100); + }, + SS: function (dateObj) { + return pad(Math.round(dateObj.getMilliseconds() / 10), 2); + }, + SSS: function (dateObj) { + return pad(dateObj.getMilliseconds(), 3); + }, + a: function (dateObj, i18n) { + return dateObj.getHours() < 12 ? i18n.amPm[0] : i18n.amPm[1]; + }, + A: function (dateObj, i18n) { + return dateObj.getHours() < 12 ? i18n.amPm[0].toUpperCase() : i18n.amPm[1].toUpperCase(); + }, + ZZ: function (dateObj) { + var o = dateObj.getTimezoneOffset(); + return (o > 0 ? '-' : '+') + pad(Math.floor(Math.abs(o) / 60) * 100 + Math.abs(o) % 60, 4); + } +}; + +var parseFlags = { + d: [twoDigits, function (d, v) { + d.day = v; + }], + M: [twoDigits, function (d, v) { + d.month = v - 1; + }], + yy: [twoDigits, function (d, v) { + var da = new Date(), cent = +('' + da.getFullYear()).substr(0, 2); + d.year = '' + (v > 68 ? cent - 1 : cent) + v; + }], + h: [twoDigits, function (d, v) { + d.hour = v; + }], + m: [twoDigits, function (d, v) { + d.minute = v; + }], + s: [twoDigits, function (d, v) { + d.second = v; + }], + yyyy: [fourDigits, function (d, v) { + d.year = v; + }], + S: [/\d/, function (d, v) { + d.millisecond = v * 100; + }], + SS: [/\d{2}/, function (d, v) { + d.millisecond = v * 10; + }], + SSS: [threeDigits, function (d, v) { + d.millisecond = v; + }], + D: [twoDigits, noop], + ddd: [word, noop], + MMM: [word, monthUpdate('monthNamesShort')], + MMMM: [word, monthUpdate('monthNames')], + a: [word, function (d, v, i18n) { + var val = v.toLowerCase(); + if (val === i18n.amPm[0]) { + d.isPm = false; + } else if (val === i18n.amPm[1]) { + d.isPm = true; + } + }], + ZZ: [/[\+\-]\d\d:?\d\d/, function (d, v) { + var parts = (v + '').match(/([\+\-]|\d\d)/gi), minutes; + + if (parts) { + minutes = +(parts[1] * 60) + parseInt(parts[2], 10); + d.timezoneOffset = parts[0] === '+' ? minutes : -minutes; + } + }] +}; +parseFlags.DD = parseFlags.DD; +parseFlags.dddd = parseFlags.ddd; +parseFlags.Do = parseFlags.dd = parseFlags.d; +parseFlags.mm = parseFlags.m; +parseFlags.hh = parseFlags.H = parseFlags.HH = parseFlags.h; +parseFlags.MM = parseFlags.M; +parseFlags.ss = parseFlags.s; +parseFlags.A = parseFlags.a; + + +// Some common format strings +fecha.masks = { + 'default': 'ddd MMM dd yyyy HH:mm:ss', + shortDate: 'M/D/yy', + mediumDate: 'MMM d, yyyy', + longDate: 'MMMM d, yyyy', + fullDate: 'dddd, MMMM d, yyyy', + shortTime: 'HH:mm', + mediumTime: 'HH:mm:ss', + longTime: 'HH:mm:ss.SSS' +}; + +/*** + * Format a date + * @method format + * @param {Date|number} dateObj + * @param {string} mask Format of the date, i.e. 'mm-dd-yy' or 'shortDate' + */ +fecha.format = function (dateObj, mask, i18nSettings) { + var i18n = i18nSettings || fecha.i18n; + + if (typeof dateObj === 'number') { + dateObj = new Date(dateObj); + } + + if (Object.prototype.toString.call(dateObj) !== '[object Date]' || isNaN(dateObj.getTime())) { + throw new Error('Invalid Date in fecha.format'); + } + + mask = fecha.masks[mask] || mask || fecha.masks['default']; + + return mask.replace(token, function ($0) { + return $0 in formatFlags ? formatFlags[$0](dateObj, i18n) : $0.slice(1, $0.length - 1); + }); +}; + +/** + * Parse a date string into an object, changes - into / + * @method parse + * @param {string} dateStr Date string + * @param {string} format Date parse format + * @returns {Date|boolean} + */ +fecha.parse = function (dateStr, format, i18nSettings) { + var i18n = i18nSettings || fecha.i18n; + + if (typeof format !== 'string') { + throw new Error('Invalid format in fecha.parse'); + } + + format = fecha.masks[format] || format; + + // Avoid regular expression denial of service, fail early for really long strings + // https://www.owasp.org/index.php/Regular_expression_Denial_of_Service_-_ReDoS + if (dateStr.length > 1000) { + return false; + } + + var isValid = true; + var dateInfo = {}; + format.replace(token, function ($0) { + if (parseFlags[$0]) { + var info = parseFlags[$0]; + var index = dateStr.search(info[0]); + if (!~index) { + isValid = false; + } else { + dateStr.replace(info[0], function (result) { + info[1](dateInfo, result, i18n); + dateStr = dateStr.substr(index + result.length); + return result; + }); + } + } + + return parseFlags[$0] ? '' : $0.slice(1, $0.length - 1); + }); + + if (!isValid) { + return false; + } + + var today = new Date(); + if (dateInfo.isPm === true && dateInfo.hour != null && +dateInfo.hour !== 12) { + dateInfo.hour = +dateInfo.hour + 12; + } else if (dateInfo.isPm === false && +dateInfo.hour === 12) { + dateInfo.hour = 0; + } + + var date; + if (dateInfo.timezoneOffset != null) { + dateInfo.minute = +(dateInfo.minute || 0) - +dateInfo.timezoneOffset; + date = new Date(Date.UTC(dateInfo.year || today.getFullYear(), dateInfo.month || 0, dateInfo.day || 1, + dateInfo.hour || 0, dateInfo.minute || 0, dateInfo.second || 0, dateInfo.millisecond || 0)); + } else { + date = new Date(dateInfo.year || today.getFullYear(), dateInfo.month || 0, dateInfo.day || 1, + dateInfo.hour || 0, dateInfo.minute || 0, dateInfo.second || 0, dateInfo.millisecond || 0); + } + return date; +}; + +export default fecha; + +// (function (main) { +// 'use strict'; +// +// /* istanbul ignore next */ +// if (typeof module !== 'undefined' && module.exports) { +// module.exports = fecha; +// } else if (typeof define === 'function' && define.amd) { +// define(function () { +// return fecha; +// }); +// } else { +// main.fecha = fecha; +// } +// })(this); diff --git a/src/utils/dom.js b/src/utils/dom.js new file mode 100644 index 0000000000000000000000000000000000000000..5eb90583d25a9d98bdd16a5378b4082055c05eda --- /dev/null +++ b/src/utils/dom.js @@ -0,0 +1,35 @@ +import { isClient } from './index'; + +/* istanbul ignore next */ +export const on = (function() { + if (isClient && document.addEventListener) { + return function(element, event, handler, useCapture = false) { + if (element && event && handler) { + element.addEventListener(event, handler, useCapture); + } + }; + } else { + return function(element, event, handler) { + if (element && event && handler) { + element.attachEvent('on' + event, handler); + } + }; + } +})(); + +/* istanbul ignore next */ +export const off = (function() { + if (isClient && document.removeEventListener) { + return function(element, event, handler, useCapture = false) { + if (element && event) { + element.removeEventListener(event, handler, useCapture); + } + }; + } else { + return function(element, event, handler) { + if (element && event) { + element.detachEvent('on' + event, handler); + } + }; + } +})(); diff --git a/src/utils/index.js b/src/utils/index.js new file mode 100644 index 0000000000000000000000000000000000000000..9c6e0ddeb2c96d3d8cabfe6508a8d093566ce3fc --- /dev/null +++ b/src/utils/index.js @@ -0,0 +1 @@ +export const isClient = typeof window !== 'undefined' diff --git a/src/utils/keyCode.js b/src/utils/keyCode.js new file mode 100644 index 0000000000000000000000000000000000000000..1a0553dfbfe258d2a3fcc1754ee78e3f0f057cdb --- /dev/null +++ b/src/utils/keyCode.js @@ -0,0 +1,516 @@ +const KeyCode = { + /** + * MAC_ENTER + */ + MAC_ENTER: 3, + /** + * BACKSPACE + */ + BACKSPACE: 8, + /** + * TAB + */ + TAB: 9, + /** + * NUMLOCK on FF/Safari Mac + */ + NUM_CENTER: 12, // NUMLOCK on FF/Safari Mac + /** + * ENTER + */ + ENTER: 13, + /** + * SHIFT + */ + SHIFT: 16, + /** + * CTRL + */ + CTRL: 17, + /** + * ALT + */ + ALT: 18, + /** + * PAUSE + */ + PAUSE: 19, + /** + * CAPS_LOCK + */ + CAPS_LOCK: 20, + /** + * ESC + */ + ESC: 27, + /** + * SPACE + */ + SPACE: 32, + /** + * PAGE_UP + */ + PAGE_UP: 33, // also NUM_NORTH_EAST + /** + * PAGE_DOWN + */ + PAGE_DOWN: 34, // also NUM_SOUTH_EAST + /** + * END + */ + END: 35, // also NUM_SOUTH_WEST + /** + * HOME + */ + HOME: 36, // also NUM_NORTH_WEST + /** + * LEFT + */ + LEFT: 37, // also NUM_WEST + /** + * UP + */ + UP: 38, // also NUM_NORTH + /** + * RIGHT + */ + RIGHT: 39, // also NUM_EAST + /** + * DOWN + */ + DOWN: 40, // also NUM_SOUTH + /** + * PRINT_SCREEN + */ + PRINT_SCREEN: 44, + /** + * INSERT + */ + INSERT: 45, // also NUM_INSERT + /** + * DELETE + */ + DELETE: 46, // also NUM_DELETE + /** + * ZERO + */ + ZERO: 48, + /** + * ONE + */ + ONE: 49, + /** + * TWO + */ + TWO: 50, + /** + * THREE + */ + THREE: 51, + /** + * FOUR + */ + FOUR: 52, + /** + * FIVE + */ + FIVE: 53, + /** + * SIX + */ + SIX: 54, + /** + * SEVEN + */ + SEVEN: 55, + /** + * EIGHT + */ + EIGHT: 56, + /** + * NINE + */ + NINE: 57, + /** + * QUESTION_MARK + */ + QUESTION_MARK: 63, // needs localization + /** + * A + */ + A: 65, + /** + * B + */ + B: 66, + /** + * C + */ + C: 67, + /** + * D + */ + D: 68, + /** + * E + */ + E: 69, + /** + * F + */ + F: 70, + /** + * G + */ + G: 71, + /** + * H + */ + H: 72, + /** + * I + */ + I: 73, + /** + * J + */ + J: 74, + /** + * K + */ + K: 75, + /** + * L + */ + L: 76, + /** + * M + */ + M: 77, + /** + * N + */ + N: 78, + /** + * O + */ + O: 79, + /** + * P + */ + P: 80, + /** + * Q + */ + Q: 81, + /** + * R + */ + R: 82, + /** + * S + */ + S: 83, + /** + * T + */ + T: 84, + /** + * U + */ + U: 85, + /** + * V + */ + V: 86, + /** + * W + */ + W: 87, + /** + * X + */ + X: 88, + /** + * Y + */ + Y: 89, + /** + * Z + */ + Z: 90, + /** + * META + */ + META: 91, // WIN_KEY_LEFT + /** + * WIN_KEY_RIGHT + */ + WIN_KEY_RIGHT: 92, + /** + * CONTEXT_MENU + */ + CONTEXT_MENU: 93, + /** + * NUM_ZERO + */ + NUM_ZERO: 96, + /** + * NUM_ONE + */ + NUM_ONE: 97, + /** + * NUM_TWO + */ + NUM_TWO: 98, + /** + * NUM_THREE + */ + NUM_THREE: 99, + /** + * NUM_FOUR + */ + NUM_FOUR: 100, + /** + * NUM_FIVE + */ + NUM_FIVE: 101, + /** + * NUM_SIX + */ + NUM_SIX: 102, + /** + * NUM_SEVEN + */ + NUM_SEVEN: 103, + /** + * NUM_EIGHT + */ + NUM_EIGHT: 104, + /** + * NUM_NINE + */ + NUM_NINE: 105, + /** + * NUM_MULTIPLY + */ + NUM_MULTIPLY: 106, + /** + * NUM_PLUS + */ + NUM_PLUS: 107, + /** + * NUM_MINUS + */ + NUM_MINUS: 109, + /** + * NUM_PERIOD + */ + NUM_PERIOD: 110, + /** + * NUM_DIVISION + */ + NUM_DIVISION: 111, + /** + * F1 + */ + F1: 112, + /** + * F2 + */ + F2: 113, + /** + * F3 + */ + F3: 114, + /** + * F4 + */ + F4: 115, + /** + * F5 + */ + F5: 116, + /** + * F6 + */ + F6: 117, + /** + * F7 + */ + F7: 118, + /** + * F8 + */ + F8: 119, + /** + * F9 + */ + F9: 120, + /** + * F10 + */ + F10: 121, + /** + * F11 + */ + F11: 122, + /** + * F12 + */ + F12: 123, + /** + * NUMLOCK + */ + NUMLOCK: 144, + /** + * SEMICOLON + */ + SEMICOLON: 186, // needs localization + /** + * DASH + */ + DASH: 189, // needs localization + /** + * EQUALS + */ + EQUALS: 187, // needs localization + /** + * COMMA + */ + COMMA: 188, // needs localization + /** + * PERIOD + */ + PERIOD: 190, // needs localization + /** + * SLASH + */ + SLASH: 191, // needs localization + /** + * APOSTROPHE + */ + APOSTROPHE: 192, // needs localization + /** + * SINGLE_QUOTE + */ + SINGLE_QUOTE: 222, // needs localization + /** + * OPEN_SQUARE_BRACKET + */ + OPEN_SQUARE_BRACKET: 219, // needs localization + /** + * BACKSLASH + */ + BACKSLASH: 220, // needs localization + /** + * CLOSE_SQUARE_BRACKET + */ + CLOSE_SQUARE_BRACKET: 221, // needs localization + /** + * WIN_KEY + */ + WIN_KEY: 224, + /** + * MAC_FF_META + */ + MAC_FF_META: 224, // Firefox (Gecko) fires this for the meta key instead of 91 + /** + * WIN_IME + */ + WIN_IME: 229, + + // ======================== Function ======================== + /** + * whether text and modified key is entered at the same time. + */ + isTextModifyingKeyEvent (e) { + const { keyCode } = e; + if ( + (e.altKey && !e.ctrlKey) || + e.metaKey || + // Function keys don't generate text + (keyCode >= KeyCode.F1 && keyCode <= KeyCode.F12) + ) { + return false; + } + + // The following keys are quite harmless, even in combination with + // CTRL, ALT or SHIFT. + switch (keyCode) { + case KeyCode.ALT: + case KeyCode.CAPS_LOCK: + case KeyCode.CONTEXT_MENU: + case KeyCode.CTRL: + case KeyCode.DOWN: + case KeyCode.END: + case KeyCode.ESC: + case KeyCode.HOME: + case KeyCode.INSERT: + case KeyCode.LEFT: + case KeyCode.MAC_FF_META: + case KeyCode.META: + case KeyCode.NUMLOCK: + case KeyCode.NUM_CENTER: + case KeyCode.PAGE_DOWN: + case KeyCode.PAGE_UP: + case KeyCode.PAUSE: + case KeyCode.PRINT_SCREEN: + case KeyCode.RIGHT: + case KeyCode.SHIFT: + case KeyCode.UP: + case KeyCode.WIN_KEY: + case KeyCode.WIN_KEY_RIGHT: + return false; + default: + return true; + } + }, + + /** + * whether character is entered. + */ + isCharacterKey (keyCode) { + if (keyCode >= KeyCode.ZERO && keyCode <= KeyCode.NINE) { + return true; + } + + if (keyCode >= KeyCode.NUM_ZERO && keyCode <= KeyCode.NUM_MULTIPLY) { + return true; + } + + if (keyCode >= KeyCode.A && keyCode <= KeyCode.Z) { + return true; + } + + // Safari sends zero key code for non-latin characters. + if (window.navigator.userAgent.indexOf('WebKit') !== -1 && keyCode === 0) { + return true; + } + + switch (keyCode) { + case KeyCode.SPACE: + case KeyCode.QUESTION_MARK: + case KeyCode.NUM_PLUS: + case KeyCode.NUM_MINUS: + case KeyCode.NUM_PERIOD: + case KeyCode.NUM_DIVISION: + case KeyCode.SEMICOLON: + case KeyCode.DASH: + case KeyCode.EQUALS: + case KeyCode.COMMA: + case KeyCode.PERIOD: + case KeyCode.SLASH: + case KeyCode.APOSTROPHE: + case KeyCode.SINGLE_QUOTE: + case KeyCode.OPEN_SQUARE_BRACKET: + case KeyCode.BACKSLASH: + case KeyCode.CLOSE_SQUARE_BRACKET: + return true; + default: + return false; + } + }, +}; + +export default KeyCode; diff --git a/src/utils/random_str.js b/src/utils/random_str.js new file mode 100644 index 0000000000000000000000000000000000000000..d9b5838ee2df5148027088133c90ace3e45ce810 --- /dev/null +++ b/src/utils/random_str.js @@ -0,0 +1,10 @@ +// 生成随机字符串 +export default function (len = 32) { + const $chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'; + const maxPos = $chars.length; + let str = ''; + for (let i = 0; i < len; i++) { + str += $chars.charAt(Math.floor(Math.random() * maxPos)); + } + return str; +} diff --git a/src/utils/styleCheck.js b/src/utils/styleCheck.js new file mode 100644 index 0000000000000000000000000000000000000000..ad7480c92a0c5a4dba8aaf6c17b1751a8755dffe --- /dev/null +++ b/src/utils/styleCheck.js @@ -0,0 +1,62 @@ +import canUseDom from './canUseDom'; + +export const canUseDocElement = () => canUseDom() && window.document.documentElement; + +const isStyleNameSupport = (styleName) => { + if (canUseDom() && window.document.documentElement) { + const styleNameList = Array.isArray(styleName) ? styleName : [styleName]; + const { documentElement } = window.document; + + return styleNameList.some(name => name in documentElement.style); + } + return false; +}; + +const isStyleValueSupport = (styleName, value) => { + if (!isStyleNameSupport(styleName)) { + return false; + } + + const ele = document.createElement('div'); + const origin = ele.style[styleName]; + ele.style[styleName] = value; + return ele.style[styleName] !== origin; +}; + +export function isStyleSupport(styleName, styleValue) { + if (!Array.isArray(styleName) && styleValue !== undefined) { + return isStyleValueSupport(styleName, styleValue); + } + + return isStyleNameSupport(styleName); +} + +let flexGapSupported; +export const detectFlexGapSupported = () => { + if (!canUseDocElement()) { + return false; + } + + if (flexGapSupported !== undefined) { + return flexGapSupported; + } + + // create flex container with row-gap set + const flex = document.createElement('div'); + flex.style.display = 'flex'; + flex.style.flexDirection = 'column'; + flex.style.rowGap = '1px'; + + // create two, elements inside it + flex.appendChild(document.createElement('div')); + flex.appendChild(document.createElement('div')); + + // append to the DOM (needed to obtain scrollHeight) + document.body.appendChild(flex); + flexGapSupported = flex.scrollHeight === 1; // flex container should be 1px high from the row-gap + document.body.removeChild(flex); + + return flexGapSupported; +}; + +export default isStyleSupport; diff --git a/src/utils/transfer-queue.js b/src/utils/transfer-queue.js new file mode 100644 index 0000000000000000000000000000000000000000..8ca94131b1d15884de74705dbe50c13e74410aba --- /dev/null +++ b/src/utils/transfer-queue.js @@ -0,0 +1,12 @@ +let transferIndex = 0; +let lastVisibleIndex = 0; + +function transferIncrease() { + transferIndex++; +} + +function lastVisibleIncrease() { + lastVisibleIndex++; +} + +export { transferIndex, transferIncrease, lastVisibleIndex, lastVisibleIncrease }; \ No newline at end of file diff --git a/test/.eslintrc.json b/test/.eslintrc.json new file mode 100644 index 0000000000000000000000000000000000000000..3e56a929a11b77e77bb746961e06f6639c2b40d0 --- /dev/null +++ b/test/.eslintrc.json @@ -0,0 +1,15 @@ +{ + "extends": [ + "../.eslintrc.json" + ], + "globals": { + "expect": true + }, + "env": { + "node": true, + "mocha": true + }, + "rules": { + "indent": ["error",2, { "SwitchCase": 1 }] + } +} diff --git a/test/unit/index.js b/test/unit/index.js new file mode 100644 index 0000000000000000000000000000000000000000..acb4df5cf1e3e2d7a7acebacd2fa1e10100fc06d --- /dev/null +++ b/test/unit/index.js @@ -0,0 +1,14 @@ +import Vue from 'vue'; +Vue.config.productionTip = false; + +// require all test files (files that ends with .spec.js) +const testsContext = require.context('./specs', true, /\.spec$/); +testsContext.keys().forEach(testsContext); + +// require all src files except main.js for coverage. +// you can also change this to match only the subset of files that +// you want coverage for. +// const srcContext = require.context('../../src', true, /^\.\/(?!main(\.js)?$)/); +// @todo +const srcContext = require.context('../../src/components/breadcrumb', true, /^\.\/(?!styles.*?(\.less)?$)/); +srcContext.keys().forEach(srcContext); diff --git a/test/unit/karma.conf.js b/test/unit/karma.conf.js new file mode 100644 index 0000000000000000000000000000000000000000..e439b4291c9ee25a3525cf47a51a6680673d20cc --- /dev/null +++ b/test/unit/karma.conf.js @@ -0,0 +1,33 @@ +// This is a karma config file. For more details see +// http://karma-runner.github.io/0.13/config/configuration-file.html +// we are also using it with karma-webpack +// https://github.com/webpack/karma-webpack + +var webpackConfig = require('../../build/webpack.test.config.js'); + +module.exports = function (config) { + config.set({ + // to run in additional browsers: + // 1. install corresponding karma launcher + // http://karma-runner.github.io/0.13/config/browsers.html + // 2. add it to the `browsers` array below. + browsers: ['ChromeHeadless'], + frameworks: ['mocha', 'sinon-chai'], + reporters: ['spec', 'coverage'], + files: ['./index.js'], + preprocessors: { + './index.js': ['webpack', 'sourcemap'] + }, + webpack: webpackConfig, + webpackMiddleware: { + noInfo: true, + }, + coverageReporter: { + dir: './coverage', + reporters: [ + { type: 'lcov', subdir: '.' }, + { type: 'text-summary' }, + ] + }, + }); +}; diff --git a/test/unit/specs/affix.spec.js b/test/unit/specs/affix.spec.js new file mode 100644 index 0000000000000000000000000000000000000000..55344ae14d3391fdfe8a680107a4001be0712202 --- /dev/null +++ b/test/unit/specs/affix.spec.js @@ -0,0 +1,137 @@ +import { createVue, destroyVM } from '../util'; + +describe('Affix.vue', () => { + let vm; + afterEach(() => { + destroyVM(vm); + }); + + it('should create a Affix component without slot', done => { + vm = createVue(''); + const affix = vm.$el.children[0]; + + expect(affix.tagName).to.equal('DIV'); + expect(affix.className).to.equal(''); + done(); + }); + + it('should create a Affix component contain slot', done => { + vm = createVue(` + + Fixed at the top + + `); + const slot = vm.$el.children[0].children[0]; + + expect(slot.tagName).to.equal('SPAN'); + expect(slot.className).to.equal('demo-affix'); + done(); + }); + + it('only set offset-top props', done => { + vm = createVue(` +
+ + Fixed at the top + +
+
+ `, true); + const affix = vm.$el.children[0].children[0]; + const fakeBlock = vm.$el.children[0].children[1]; + + expect(affix.classList.contains('ivu-affix')).to.false; + expect(affix.style.top).to.equal(''); + expect(fakeBlock.style.display).to.equal('none'); + window.scrollTo(0, 10000); + setTimeout(()=>{ + expect(affix.classList.contains('ivu-affix')).to.true; + expect(affix.style.top).to.equal('20px'); + expect(fakeBlock.style.display).to.equal(''); + done(); + }, 100); + }); + + it('only set offset-bottom props', done => { + vm = createVue(` +
+
+ + Fixed at the top + +
+
+ `, true); + const affix = vm.$el.children[1].children[0]; + + expect(affix.classList.contains('ivu-affix')).to.false; + expect(affix.style.bottom).to.equal(''); + // Affix component haven't run handleScroll function when component mounted in real dom. + // use scrollTo() to trigger scroll event. + window.scrollTo(0, 100); + setTimeout(()=>{ + expect(affix.classList.contains('ivu-affix')).to.true; + expect(affix.style.bottom).to.equal('20px'); + window.scrollTo(0, 10000); + setTimeout(()=>{ + expect(affix.classList.contains('ivu-affix')).to.false; + expect(affix.style.bottom).to.equal(''); + done(); + }, 100); + }, 100); + }); + + it('both props are set, only offset-bottom is valid', done => { + vm = createVue(` +
+
+ + Fixed at the top + +
+
+ `, true); + const affix = vm.$el.children[1].children[0]; + + expect(affix.classList.contains('ivu-affix')).to.false; + expect(affix.style.bottom).to.equal(''); + // Affix component haven't run handleScroll function when component mounted in real dom. + // use scrollTo() to trigger scroll event. + window.scrollTo(0, 100); + setTimeout(()=>{ + expect(affix.classList.contains('ivu-affix')).to.true; + expect(affix.style.bottom).to.equal('20px'); + window.scrollTo(0, 10000); + setTimeout(()=>{ + expect(affix.classList.contains('ivu-affix')).to.false; + expect(affix.style.bottom).to.equal(''); + done(); + }, 100); + }, 100); + }); + + it('both props are not set, should fixed top and top equal 0px', done => { + vm = createVue(` +
+ + Fixed at the top + +
+
+ `, true); + const affix = vm.$el.children[0].children[0]; + const fakeBlock = vm.$el.children[0].children[1]; + + expect(affix.classList.contains('ivu-affix')).to.false; + expect(affix.style.top).to.equal(''); + expect(fakeBlock.style.display).to.equal('none'); + window.scrollTo(0, 10000); + setTimeout(()=>{ + expect(affix.classList.contains('ivu-affix')).to.true; + expect(affix.style.top).to.equal('0px'); + expect(fakeBlock.style.display).to.equal(''); + done(); + }, 100); + }); + +}); \ No newline at end of file diff --git a/test/unit/specs/assets/locale-expects.js b/test/unit/specs/assets/locale-expects.js new file mode 100644 index 0000000000000000000000000000000000000000..ffab41f1d1d8163f97e58a2712aa16479b580717 --- /dev/null +++ b/test/unit/specs/assets/locale-expects.js @@ -0,0 +1,18 @@ +export default { + 'de-DE': 'Oktober 2030', + 'en-US': 'October 2030', + 'es-ES': 'octubre 2030', + 'fi-FI': 'lokakuu 2030', + 'fr-FR': 'octobre 2030', + 'id-ID': 'Oktober 2030', + 'ja-JP': '2030年 10月', + 'ko-KR': '2030년 10월', + 'pt-BR': 'outubro de 2030', + 'pt-PT': 'outubro de 2030', + 'ru-RU': 'Октябрь 2030', + 'sv-SE': 'oktober 2030', + 'tr-TR': 'Ekim 2030', + 'vi-VN': 'Tháng 10/2030', + 'zh-CN': '2030年 10月', + 'zh-TW': '2030年 10月' +}; diff --git a/test/unit/specs/assets/table/csvData.js b/test/unit/specs/assets/table/csvData.js new file mode 100644 index 0000000000000000000000000000000000000000..1754001ee79f5961214b05f3a3e7388ace667c58 --- /dev/null +++ b/test/unit/specs/assets/table/csvData.js @@ -0,0 +1,287 @@ +export const csvA = { + columns: [ + { + title: '名称', + key: 'name', + fixed: 'left', + width: 200 + }, + { + title: '展示', + key: 'show', + width: 150, + sortable: true + }, + { + title: '唤醒', + key: 'weak', + width: 150, + sortable: true + }, + { + title: '登录', + key: 'signin', + width: 150, + sortable: true + }, + { + title: '点击', + key: 'click', + width: 150, + sortable: true + }, + { + title: '激活', + key: 'active', + width: 150, + sortable: true + }, + { + title: '7日留存', + key: 'day7', + width: 150, + sortable: true + }, + { + title: '30日留存', + key: 'day30', + width: 150, + sortable: true + }, + { + title: '次日留存', + key: 'tomorrow', + width: 150, + sortable: true + }, + { + title: '日活跃', + key: 'day', + width: 150, + sortable: true + }, + { + title: '周活跃', + key: 'week', + width: 150, + sortable: true + }, + { + title: '月活跃', + key: 'month', + width: 150, + sortable: true + } + ], + data: [ + { + name: '推广名称1', + fav: 0, + show: 7302, + weak: 5627, + signin: 1563, + click: 4254, + active: 1438, + day7: 274, + day30: 285, + tomorrow: 1727, + day: 558, + week: 4440, + month: 5610 + }, + { + name: '推广名称2', + fav: 0, + show: 4720, + weak: 4086, + signin: 3792, + click: 8690, + active: 8470, + day7: 8172, + day30: 5197, + tomorrow: 1684, + day: 2593, + week: 2507, + month: 1537 + }, + { + name: '推广名称3', + fav: 0, + show: 7181, + weak: 8007, + signin: 8477, + click: 1879, + active: 16, + day7: 2249, + day30: 3450, + tomorrow: 377, + day: 1561, + week: 3219, + month: 1588 + }, + { + name: '推广名称4', + fav: 0, + show: 9911, + weak: 8976, + signin: 8807, + click: 8050, + active: 7668, + day7: 1547, + day30: 2357, + tomorrow: 7278, + day: 5309, + week: 1655, + month: 9043 + }, + { + name: '推广名称5', + fav: 0, + show: 934, + weak: 1394, + signin: 6463, + click: 5278, + active: 9256, + day7: 209, + day30: 3563, + tomorrow: 8285, + day: 1230, + week: 4840, + month: 9908 + }, + { + name: '推广名称6', + fav: 0, + show: 6856, + weak: 1608, + signin: 457, + click: 4949, + active: 2909, + day7: 4525, + day30: 6171, + tomorrow: 1920, + day: 1966, + week: 904, + month: 6851 + }, + { + name: '推广名称7', + fav: 0, + show: 5107, + weak: 6407, + signin: 4166, + click: 7970, + active: 1002, + day7: 8701, + day30: 9040, + tomorrow: 7632, + day: 4061, + week: 4359, + month: 3676 + }, + { + name: '推广名称8', + fav: 0, + show: 862, + weak: 6520, + signin: 6696, + click: 3209, + active: 6801, + day7: 6364, + day30: 6850, + tomorrow: 9408, + day: 2481, + week: 1479, + month: 2346 + }, + { + name: '推广名称9', + fav: 0, + show: 567, + weak: 5859, + signin: 128, + click: 6593, + active: 1971, + day7: 7596, + day30: 3546, + tomorrow: 6641, + day: 1611, + week: 5534, + month: 3190 + }, + { + name: '推广名称10', + fav: 0, + show: 3651, + weak: 1819, + signin: 4595, + click: 7499, + active: 7405, + day7: 8710, + day30: 5518, + tomorrow: 428, + day: 9768, + week: 2864, + month: 5811 + } + ], + expected: ` + 名称,展示,唤醒,登录,点击,激活,7日留存,30日留存,次日留存,日活跃,周活跃,月活跃 + 推广名称1,7302,5627,1563,4254,1438,274,285,1727,558,4440,5610 + 推广名称2,4720,4086,3792,8690,8470,8172,5197,1684,2593,2507,1537 + 推广名称3,7181,8007,8477,1879,16,2249,3450,377,1561,3219,1588 + 推广名称4,9911,8976,8807,8050,7668,1547,2357,7278,5309,1655,9043 + 推广名称5,934,1394,6463,5278,9256,209,3563,8285,1230,4840,9908 + 推广名称6,6856,1608,457,4949,2909,4525,6171,1920,1966,904,6851 + 推广名称7,5107,6407,4166,7970,1002,8701,9040,7632,4061,4359,3676 + 推广名称8,862,6520,6696,3209,6801,6364,6850,9408,2481,1479,2346 + 推广名称9,567,5859,128,6593,1971,7596,3546,6641,1611,5534,3190 + 推广名称10,3651,1819,4595,7499,7405,8710,5518,428,9768,2864,5811 + ` +}; + +export const csvB = { + columns: [ + { + title: '姓名', + key: 'name' + }, + { + title: '年龄', + key: 'age' + }, + { + title: '地址', + key: 'address' + } + ], + data: [ + { + name: '王小明', + age: 18, + address: '北京市朝\n阳区芍药居' + }, + { + name: '张小刚', + age: 25, + address: '北京市海,淀区西二旗' + }, + { + name: '李小红', + age: 30, + address: '上海市浦东\r新区世纪大道' + }, + { + name: '周小伟', + age: 26, + address: '深圳市南山区深南大道' + } + ], + expected: ` + "姓名";"年龄";"地址" + "王小明";"18";"北京市朝\n阳区芍药居" + "张小刚";"25";"北京市海,淀区西二旗" + "李小红";"30";"上海市浦东\r新区世纪大道" + "周小伟";"26";"深圳市南山区深南大道" + ` +}; diff --git a/test/unit/specs/breadcrumb.spec.js b/test/unit/specs/breadcrumb.spec.js new file mode 100644 index 0000000000000000000000000000000000000000..3166c4158204f533597e9b086dd832006195c12c --- /dev/null +++ b/test/unit/specs/breadcrumb.spec.js @@ -0,0 +1,24 @@ +import { createVue, destroyVM } from '../util'; + +describe('Breadcrumb.vue', () => { + let vm; + afterEach(() => { + destroyVM(vm); + }); + it('create', done => { + vm = createVue(` + + Home4 + Components + Breadcrumb + + `); + expect(vm.$el.querySelectorAll('.ivu-breadcrumb-item-link').length).to.equal(3); + + vm.$nextTick(_ => { + // console.log(vm.$el.querySelector('.ivu-breadcrumb-item-separator').innerHTML); + expect(vm.$el.querySelector('.ivu-breadcrumb-item-separator').innerHTML).to.equal('=>'); + done(); + }); + }); +}); \ No newline at end of file diff --git a/test/unit/specs/button.spec.js b/test/unit/specs/button.spec.js new file mode 100644 index 0000000000000000000000000000000000000000..2d8e2809660b4e6e4b514daa8d270bbf33a761b9 --- /dev/null +++ b/test/unit/specs/button.spec.js @@ -0,0 +1,66 @@ +import { createVue, destroyVM } from '../util'; + +describe('Button.vue', () => { + let vm; + afterEach(() => { + destroyVM(vm); + }); + + it('should render as
', done => { + vm = createVue(` + + `); + expect(vm.$el.tagName).to.equal('A'); + done(); + }); + + it('should render as + `); + expect(vm.$el.tagName).to.equal('BUTTON'); + done(); + }); + + it('handle with `type` attribute', done => { + // should render with `type` attribute + // if it is a + `); + expect(vm.$el.getAttribute('type')).to.equal('reset'); + + // should't render with `type` attribute + // if it is a + `); + expect(vm.$el.getAttribute('type')).to.equal(null); + done(); + }); + + it('should change loading state', done => { + vm = createVue({ + template: ` + + `, + data() { + return {loading: false}; + }, + methods: { + fetch() { + this.loading = true; + } + } + }); + vm.$el.click(); + vm.$nextTick(() => { + expect(vm.$el.classList.contains('ivu-btn-loading')).to.equal(true); + const $icons = vm.$el.querySelectorAll('.ivu-icon'); + expect($icons.length).to.equal(1); + expect($icons[0].classList.contains('ivu-load-loop')).to.equal(true); + expect($icons[0].classList.contains('ivu-icon-ios-loading')).to.equal(true); + done(); + }); + }); +}); diff --git a/test/unit/specs/date-picker-utils.spec.js b/test/unit/specs/date-picker-utils.spec.js new file mode 100644 index 0000000000000000000000000000000000000000..496bbf34f119a35db57c6bc7b3828c0785a7d028 --- /dev/null +++ b/test/unit/specs/date-picker-utils.spec.js @@ -0,0 +1,67 @@ +const {prevMonth, nextMonth, getDayCountOfMonth} = require('../../../src/components/date-picker/util.js'); + +// yyyy-mm-dd -> Date +function dateFromString(str) { + str = str.split('-').map(Number); + str[1] = str[1] - 1; + return new Date(...str); +} + +// Date -> yyyy-mm-dd +function dateToString(date) { + return [date.getFullYear(), date.getMonth() + 1, date.getDate()].join('-'); +} + +describe('DatePicker utility functions', () => { + const assets = [ + {date: '2030-3-31', prevMonth: '2030-2-28', nextMonth: '2030-4-30', count: 31}, + {date: '2030-3-28', prevMonth: '2030-2-28', nextMonth: '2030-4-28', count: 31}, + {date: '2030-3-1', prevMonth: '2030-2-1', nextMonth: '2030-4-1', count: 31}, + {date: '2030-2-1', prevMonth: '2030-1-1', nextMonth: '2030-3-1', count: 28}, + {date: '2030-1-1', prevMonth: '2029-12-1', nextMonth: '2030-2-1', count: 31}, + {date: '2030-12-31', prevMonth: '2030-11-30', nextMonth: '2031-1-31', count: 31}, + {date: '2030-6-30', prevMonth: '2030-5-30', nextMonth: '2030-7-30', count: 30}, + {date: '2030-5-31', prevMonth: '2030-4-30', nextMonth: '2030-6-30', count: 31}, + {date: '2032-3-31', prevMonth: '2032-2-29', nextMonth: '2032-4-30', count: 31}, + {date: '2032-2-1', prevMonth: '2032-1-1', nextMonth: '2032-3-1', count: 29} + ]; + + it('Should behave as pure functions and not change source date', () => { + const date = new Date(2030, 4, 10); + const original = date.getMonth(); + const foo = prevMonth(date); + + expect(original).to.equal(date.getMonth()); + + const bar = nextMonth(date); + expect(original).to.equal(date.getMonth()); + expect(bar.getMonth() - foo.getMonth()).to.equal(2); + }); + + it('Should calculate the previous month', () => { + for (const asset of assets) { + const date = dateFromString(asset.date); + const previous = prevMonth(date); + + expect(dateToString(previous)).to.equal(asset.prevMonth); + } + }); + + it('Should calculate the next month', () => { + for (const asset of assets) { + const date = dateFromString(asset.date); + const next = nextMonth(date); + + expect(dateToString(next)).to.equal(asset.nextMonth); + } + }); + + it('Should calculate the month length', () => { + for (const asset of assets) { + const date = dateFromString(asset.date); + const monthLength = getDayCountOfMonth(date.getFullYear(), date.getMonth()); + + expect(monthLength).to.equal(asset.count); + } + }); +}); diff --git a/test/unit/specs/date-picker.spec.js b/test/unit/specs/date-picker.spec.js new file mode 100644 index 0000000000000000000000000000000000000000..8a299a36aa0ef3d7772662a72e39fffc7cb720b2 --- /dev/null +++ b/test/unit/specs/date-picker.spec.js @@ -0,0 +1,391 @@ +import { createVue, destroyVM, stringToDate, dateToString, dateToTimeString, promissedTick } from '../util'; + +describe('DatePicker.vue', () => { + let vm; + afterEach(() => { + destroyVM(vm); + }); + + it('should create a DatePicker component and open the calendar with the current month', done => { + vm = createVue(` + + `); + const picker = vm.$children[0]; + picker.$el.querySelector('input.ivu-input').focus(); + vm.$nextTick(() => { + const calendarBody = vm.$el.querySelector('.ivu-picker-panel-body .ivu-date-picker-cells:first-of-type'); + const calendarCells = [...calendarBody.querySelectorAll('.ivu-date-picker-cells-cell')].filter(el => { + const prevMonth = el.classList.contains('ivu-date-picker-cells-cell-prev-month'); + const nextMonth = el.classList.contains('ivu-date-picker-cells-cell-next-month'); + return !prevMonth && !nextMonth; + }); + const today = new Date(); + const daysInCurrentMonth = new Date(today.getFullYear(), today.getMonth() + 1, 0).getDate(); + expect(daysInCurrentMonth).to.equal(calendarCells.length); + done(); + }); + }); + + it('should pass correct arguments to on-change event', done => { + const now = new Date(); + const nowDate = dateToString(now); + const nowTime = dateToTimeString(now); + const nextHour = dateToTimeString(now.getTime() + 36e5); + const nextWeek = new Date(now.getTime() + 6048e5); + + let dateValue, dateRangeValue, timeValue, timeRangeValue; + vm = createVue({ + template: ` +
+ + + + +
+ `, + methods: { + onChangeDate(val) { + dateValue = val; + }, + onChangeDateRange(val) { + dateRangeValue = val; + }, + onChangeTime(val) { + timeValue = val; + }, + onChangeTimeRange(val) { + timeRangeValue = val; + }, + } + }, true); + + vm.$nextTick(() => { + const [datePicker, dateRangePicker, timePicker, timeRangePicker] = vm.$children; + + datePicker.handleInputChange({target: {value: nowDate}}); + dateRangePicker.handleInputChange({target: {value: [ + nowDate, + dateToString(nextWeek) + ].join(' - ') + }}); + + timePicker.handleInputChange({target: {value: nowTime}}); + const timeRangeString = [ + nowTime, + nextHour + ].join(' - '); + timeRangePicker.handleInputChange({target: { + value: timeRangeString + }}); + + vm.$nextTick(() => { + // DATE + expect(typeof dateValue).to.equal('string'); + expect(dateValue).to.equal(nowDate); + // DATERANGE + expect(Array.isArray(dateRangeValue)).to.equal(true); + expect(dateRangeValue[0]).to.equal(nowDate); + expect(dateRangeValue[1]).to.equal(dateToString(nextWeek)); + + // TIME + expect(typeof timeValue).to.equal('string'); + expect(timeValue).to.equal(nowTime); + // TIMERANGE + expect(Array.isArray(timeRangeValue)).to.equal(true); + expect(timeRangeValue[0]).to.equal(nowTime); + expect(timeRangeValue[1]).to.equal(nextHour); + + done(); + }); + }); + }); + + it('should create a DatePicker component of type="datetimerange"', done => { + vm = createVue(` + + `); + const picker = vm.$children[0]; + expect(picker.$children.length).to.equal(2); + expect(Array.isArray(picker.internalValue)).to.equal(true); + done(); + }); + + it('should create a datetimerange component and pick 2 dates in the current month', done => { + vm = createVue(` + + `); + + const picker = vm.$children[0]; + picker.handleFocus({type: 'focus'}); + vm.$nextTick(() => { + const displayField = vm.$el.querySelector('.ivu-input'); + const clickableCells = vm.$el.querySelectorAll('.ivu-date-picker-cells-cell'); + const lastMonthClass = 'ivu-date-picker-cells-cell-prev-month'; + const firstDayInMonthIndex = [...clickableCells].findIndex(cell => !cell.classList.contains(lastMonthClass)); + + clickableCells[firstDayInMonthIndex].firstElementChild.click(); + vm.$nextTick(() => { + clickableCells[firstDayInMonthIndex + 4].firstElementChild.click(); + vm.$nextTick(() => { + const dayOne = new Date(); + dayOne.setDate(1); + dayOne.setHours(0, 0, 0, 0); + const dayFive = new Date(dayOne.getTime()); + dayFive.setDate(5); + dayFive.setHours(0, 0, 0, 0); + + // check pickers internal value + const [startInternalValue, endInternalValue] = picker.internalValue; // Date Objects + expect(Math.abs(dayOne - startInternalValue)).to.equal(0); + expect(Math.abs(dayFive - endInternalValue)).to.equal(0); + + /* + const [startInternalValue, endInternalValue] = picker.internalValue; // Date Objects + expect(dateToString(dayOne)).to.equal(dateToString(startInternalValue)); + expect(dateToString(dayFive)).to.equal(dateToString(endInternalValue)); + + */ + + // check pickers display value + const [startDisplayValue, endDisplayValue] = displayField.value.split(' - ').map(stringToDate); // Date Objects + expect(Math.abs(dayOne - startDisplayValue)).to.equal(0); + expect(Math.abs(dayFive - endDisplayValue)).to.equal(0); + + done(); + }); + }); + }); + }); + + it('should change type progamatically', done => { + // https://jsfiddle.net/hq7cLz83/ + vm = createVue({ + template: '', + data() { + return { + dateType: 'month' + }; + } + }); + + const picker = vm.$children[0]; + picker.handleFocus({type: 'focus'}); + vm.$nextTick(() => { + const panel = vm.$el.querySelector('.ivu-picker-panel-content'); + const dayPanel = panel.querySelector('[class="ivu-date-picker-cells"]'); + const monthPanel = panel.querySelector('.ivu-date-picker-cells-month'); + const yearPanel = panel.querySelector('.ivu-date-picker-cells-year'); + + expect(dayPanel).to.equal(null); + expect(monthPanel.style.display).to.equal(''); + expect(yearPanel).to.equal(null); + + expect(picker.type).to.equal('month'); + expect(picker.selectionMode).to.equal('month'); + + vm.dateType = 'year'; + promissedTick(picker) + .then(() => { + const yearPanel = panel.querySelector('.ivu-date-picker-cells-year'); + const monthPanel = panel.querySelector('.ivu-date-picker-cells-month'); + expect(yearPanel.style.display).to.equal(''); + expect(monthPanel).to.equal(null); + + expect(picker.type).to.equal('year'); + expect(picker.selectionMode).to.equal('year'); + + vm.dateType = 'date'; + return promissedTick(picker); + }) + .then(() => { + expect(picker.type).to.equal('date'); + expect(picker.selectionMode).to.equal('date'); + + done(); + }).catch(err => console.log(err)); + }); + }); + + it('should fire `on-change` when reseting value', done => { + const now = new Date(); + const nowDate = dateToString(now); + let onChangeCalled = false; + vm = createVue({ + template: '', + data(){ + return { date: now }; + }, + methods: { + onChange() { + onChangeCalled = true; + } + } + }); + + vm.$nextTick(() => { + const picker = vm.$children[0]; + const displayField = vm.$el.querySelector('.ivu-input'); + expect(displayField.value).to.equal(nowDate); + + picker.showClose = true; // to simulate mouseenter in the Input + picker.handleIconClick(); // reset the input value + vm.$nextTick(() => { + expect(onChangeCalled).to.equal(true); + expect(displayField.value).to.equal(''); + done(); + }); + }); + }); + + it('should have same behavior after a reset as before the reset', done => { + vm = createVue(` + + `); + + const picker = vm.$children[0]; + picker.handleFocus({type: 'focus'}); + vm.$nextTick(() => { + const displayField = vm.$el.querySelector('.ivu-input'); + const clickableCells = vm.$el.querySelectorAll('.ivu-date-picker-cells-cell'); + const lastMonthClass = 'ivu-date-picker-cells-cell-prev-month'; + const firstDayInMonthIndex = [...clickableCells].findIndex(cell => !cell.classList.contains(lastMonthClass)); + + // choose first date + clickableCells[firstDayInMonthIndex].firstElementChild.click(); + vm.$nextTick(() => { + // choose second date + clickableCells[firstDayInMonthIndex + 4].firstElementChild.click(); + vm.$nextTick(() => { + // cache first values + const [startInternalValue, endInternalValue] = picker.internalValue; // Date Objects + const [startDisplayValue, endDisplayValue] = displayField.value.split(' - ').map(stringToDate); // Date Objects + + // clear picker + picker.handleClear(); + vm.$nextTick(() => { + // it should be closed by now + expect(picker.visible).to.equal(false); + // open picker again + picker.handleFocus({type: 'focus'}); + picker.visible = true; + + + vm.$nextTick(() => { + expect(picker.visible).to.equal(true); + expect(JSON.stringify(picker.internalValue)).to.equal('[null,null]'); + expect(displayField.value).to.equal(''); + + clickableCells[firstDayInMonthIndex].firstElementChild.click(); + vm.$nextTick(() => { + clickableCells[firstDayInMonthIndex + 4].firstElementChild.click(); + vm.$nextTick(() => { + // recheck internal values + expect(Math.abs(picker.internalValue[0] - startInternalValue)).to.equal(0); + expect(Math.abs(picker.internalValue[1] - endInternalValue)).to.equal(0); + // recheck display value + const [_startDisplayValue, _endDisplayValue] = displayField.value.split(' - ').map(stringToDate); // Date Objects + expect(Math.abs(_startDisplayValue - startDisplayValue)).to.equal(0); + expect(Math.abs(_endDisplayValue - endDisplayValue)).to.equal(0); + + done(); + }); + }); + }); + }); + }); + }); + }); + }); + + it('should accept a empty string as input v-model value', done => { + vm = createVue({ + template: '', + data(){ + return {value: ''}; + } + }); + + vm.$nextTick(() => { + expect(vm.value).to.equal(''); + done(); + }); + }); + + it('should convert strings to Date objects', done => { + vm = createVue({ + template: ` +
+ + + + +
+ `, + data() { + return { + value1: ['2017-10-10', '2017-10-20'], + value2: [new Date(), new Date()], + value3: '2017-10-10 10:00:00', + value4: ['2027-10-10 10:00:00', '2027-10-20 10:00:00'] + }; + } + }); + + vm.$nextTick(() => { + const {value1, value2, value3, value4} = vm; + + expect(value1[0] instanceof Date).to.equal(true); + expect(value1[1] instanceof Date).to.equal(true); + expect(value1.map(dateToString).join('|')).to.equal('2017-10-10|2017-10-20'); + + expect(value2[0] instanceof Date).to.equal(true); + expect(value2[1] instanceof Date).to.equal(true); + expect(value2.map(dateToString).join('|')).to.equal([new Date(), new Date()].map(dateToString).join('|')); + + expect(dateToString(value3)).to.equal('2017-10-10'); + + expect(value4[0] instanceof Date).to.equal(true); + expect(value4[1] instanceof Date).to.equal(true); + expect(value4.map(dateToString).join('|')).to.equal('2027-10-10|2027-10-20'); + done(); + }); + }); + + it('should render date-picker label correctly in zh-CN', done => { + vm = createVue(` + + `); + + const picker = vm.$children[0]; + picker.handleFocus({type: 'focus'}); + vm.$nextTick(() => { + const now = new Date(); + const labels = vm.$el.querySelectorAll('.ivu-picker-panel-body .ivu-date-picker-header-label'); + const labelText = [...labels].map(el => el.textContent).join(' '); + expect(labelText).to.equal([now.getFullYear() + '年', now.getMonth() + 1 + '月'].join(' ')); + done(); + }); + }); + + it('Should format labels correctly', done => { + const formater = require('../../../src/components/date-picker/util').formatDateLabels; + const expectedResults = require('./assets/locale-expects.js').default; + const locales = [ + 'de-DE', 'en-US', 'es-ES', 'fi-FI', 'fr-FR', 'id-ID', 'ja-JP', 'ko-KR', 'pt-BR', + 'pt-PT', 'ru-RU', 'sv-SE', 'tr-TR', 'vi-VN', 'zh-CN', 'zh-TW' + ].reduce((obj, locale) => { + obj[locale] = require('../../../src/locale/lang/' + locale).default; + return obj; + }, {}); + const testDate = new Date(2030, 9); // October 2030 + + Object.keys(locales).forEach(locale => { + const format = locales[locale].i.datepicker.datePanelLabel; + const f = formater(locale, format, testDate); + const labelText = f.labels.map(obj => obj.label).join(f.separator); + expect(labelText).to.equal(expectedResults[locale]); + }); + expect(Object.keys(locales).length > 0).to.equal(true); + done(); + }); +}); diff --git a/test/unit/specs/message.spec.js b/test/unit/specs/message.spec.js new file mode 100644 index 0000000000000000000000000000000000000000..bbf6eda532567e0ee062d44dd4c3c17576a3e2c8 --- /dev/null +++ b/test/unit/specs/message.spec.js @@ -0,0 +1,64 @@ +import {createVue, destroyVM, waitForIt} from '../util'; + +describe('Message.vue', () => { + let vm; + afterEach(() => { + destroyVM(vm); + }); + + it('should open a info message by default', done => { + vm = createVue({render: () => {}}); + const testMessage = 'Hello world!'; + let messageContainer = null; + vm.$Message.info({ + content: testMessage, + duration: 200 // too long so we can test + }); + + const selector = '.ivu-message-notice-content-text .ivu-message-info'; + const checkMessageOpens = () => (messageContainer = document.querySelector(selector)); + + waitForIt(checkMessageOpens, function() { + expect(messageContainer.textContent.trim()).to.equal(testMessage); + messageContainer.parentElement.removeChild(messageContainer); + done(); + }); + }); + + it('should open specific messages of different types', function(done) { + vm = createVue({render: () => {}}); + const testMessage = type => `Hello world! this is a ${type} message`; + const tests = ['info', 'success', 'warning', 'error', 'loading'].reduce((tests, type) => { + return tests.concat({ + type: type, + message: testMessage(type), + class: 'ivu-message-' + type + }); + }, []); + let domElements = []; + + for (const {type, message} of tests) { + vm.$Message[type]({ + content: message, + duration: 10 // long so we can test + }); + } + + const checkAllMessageOpens = () => { + domElements = document.querySelectorAll('.ivu-message-custom-content'); + return domElements.length == tests.length && domElements; + }; + + waitForIt(checkAllMessageOpens, function() { + const verify = {}; + domElements.forEach(el => { + const message = el.textContent.trim(); + const test = tests.find(test => test.message == message); + verify[test.type] = true; + expect(el.classList.contains(test.class)).to.equal(true); + }); + expect(Object.keys(verify).length).to.equal(tests.length); + done(); + }); + }); +}); diff --git a/test/unit/specs/select.spec.js b/test/unit/specs/select.spec.js new file mode 100644 index 0000000000000000000000000000000000000000..87a577decdda07096d595bec6c5c88024c59bc0a --- /dev/null +++ b/test/unit/specs/select.spec.js @@ -0,0 +1,460 @@ +import {createVue, destroyVM, waitForIt, promissedTick} from '../util'; + +describe('Select.vue', () => { + let vm; + afterEach(() => { + destroyVM(vm); + }); + + describe('Props tests', () => { + it('should create a Select component with passed placeholder', done => { + const placeholder = 'Hi! Select something!'; + vm = createVue({ + template: ` + + `, + data() { + return { + value: '', + options: [{value: 1, label: 'Foo'}, {value: 2, label: 'Bar'}] + }; + } + }); + vm.$nextTick(() => { + const placeholderSpan = vm.$el.querySelector('.ivu-select-placeholder'); + expect(placeholderSpan.textContent).to.equal(placeholder); + expect(placeholderSpan.style.display).to.not.equal('none'); + done(); + }); + }); + + it('should create a Select component and take a pre-selected value', done => { + vm = createVue({ + template: ` + + `, + data() { + return { + value: 2, + options: [{value: 1, label: 'Foo'}, {value: 2, label: 'Bar'}] + }; + } + }); + waitForIt( + () => { + const selectedValueSpan = vm.$el.querySelector('.ivu-select-selected-value'); + return selectedValueSpan && selectedValueSpan.textContent === 'Bar'; + }, + () => { + const selectedValueSpan = vm.$el.querySelector('.ivu-select-selected-value'); + const {label, value} = vm.$children[0].values[0]; + + expect(selectedValueSpan.textContent).to.equal('Bar'); + expect(selectedValueSpan.style.display).to.not.equal('none'); + expect(label).to.equal('Bar'); + expect(value).to.equal(2); + done(); + } + ); + }); + + it('should accept normal characters', done => { + vm = createVue({ + template: ` + + `, + data() { + return { + value: '', + options: [{value: 1, label: '> 100$'}, {value: 2, label: '< 100$'}] + }; + } + }); + vm.$nextTick(() => { + const selectedValueSpan = vm.$el.querySelector('.ivu-select-selected-value'); + expect(selectedValueSpan.textContent).to.equal('< 100$'); + done(); + }); + }); + + it('should display normal characters in input when in filterable mode', done => { + vm = createVue({ + template: ` + + `, + data() { + return { + value: 2, + options: [{value: 1, label: '> 100$'}, {value: 2, label: '< 100$'}] + }; + } + }); + vm.$nextTick(() => { + const input = vm.$el.querySelector('.ivu-select-input'); + expect(input.value).to.equal('< 100$'); + done(); + }); + }); + + it('should use the value\'s label instead of placeholder when both are set', done => { + vm = createVue({ + template: ` + + `, + data() { + return { + value: '', + options: [{value: 1, label: 'Foo'}, {value: 2, label: 'Bar'}] + }; + } + }); + waitForIt( + () => { + const selectedValueSpan = vm.$el.querySelector('.ivu-select-selected-value'); + return selectedValueSpan && selectedValueSpan.textContent === 'Bar'; + }, + () => { + const placeholderSpan = vm.$el.querySelector('.ivu-select-placeholder'); + const selectedValueSpan = vm.$el.querySelector('.ivu-select-selected-value'); + expect(placeholderSpan).to.equal(null); + expect(!!selectedValueSpan.style.display).to.not.equal('none'); + expect(selectedValueSpan.textContent).to.equal('Bar'); + done(); + } + ); + }); + + it('should set different classes for different sizes', done => { + vm = createVue(` +
+ + + +
+ `); + vm.$nextTick(() => { + const [defaultSelect, largeSelect, smallSelect] = [...vm.$el.querySelectorAll('.ivu-select')]; + expect(defaultSelect.className).to.equal('ivu-select ivu-select-single ivu-select-default'); + expect(largeSelect.classList.contains('ivu-select-large')).to.equal(true); + expect(smallSelect.classList.contains('ivu-select-small')).to.equal(true); + done(); + }); + }); + + it('should set new options', done => { + const laterOptions = [{value: 1, label: 'Foo'}, {value: 2, label: 'Bar'}]; + + vm = createVue({ + template: ` + + `, + data() { + return { + value: '', + options: [] + }; + }, + mounted() { + this.$nextTick(() => (this.options = laterOptions)); + } + }); + const condition = function() { + const componentOptions = vm.$children[0].flatOptions; + return componentOptions && componentOptions.length > 0; + }; + const callback = function() { + const renderedOptions = vm.$el.querySelectorAll('.ivu-select-dropdown-list li'); + expect(renderedOptions.length).to.equal(laterOptions.length); + + const labels = [...renderedOptions].map(el => el.textContent).join('<>'); + const expected = laterOptions.map(o => o.label).join('<>'); + expect(labels).to.equal(expected); + done(); + }; + waitForIt(condition, callback); + }); + }); + + describe('Behavior tests', () => { + it('should create different and independent instances', done => { + const options = [ + {value: 'beijing', label: 'Beijing'}, + {value: 'stockholm', label: 'Stockholm'}, + {value: 'lisboa', label: 'Lisboa'} + ]; + + vm = createVue({ + template: ` +
+ + {{ item.label }} + + + {{ item.label }} + +
+ `, + data() { + return { + cityList: [], + modelA: [], + modelB: [] + }; + }, + mounted() { + setTimeout(() => (this.cityList = options), 200); + } + }); + const [SelectA, SelectB] = vm.$children; + SelectA.toggleMenu(null, true); + SelectB.toggleMenu(null, true); + + new Promise(resolve => { + const condition = function() { + const optionsA = SelectA.$el.querySelectorAll('.ivu-select-item'); + const optionsB = SelectB.$el.querySelectorAll('.ivu-select-item'); + return optionsA.length > 0 && optionsB.length > 0; + }; + waitForIt(condition, resolve); + }) + .then(() => { + // click in A options + const optionsA = SelectA.$el.querySelectorAll('.ivu-select-item'); + optionsA[0].click(); + return promissedTick(SelectA); + }) + .then(() => { + expect(SelectA.value[0]).to.equal(options[0].value); + expect(SelectA.value.length).to.equal(1); + expect(SelectB.value.length).to.equal(0); + + // click in B options + const optionsB = SelectB.$el.querySelectorAll('.ivu-select-item'); + optionsB[1].click(); + optionsB[2].click(); + return promissedTick(SelectB); + }) + .then(() => { + // lets check the values! + const getSelections = component => { + const tags = component.$el.querySelectorAll('.ivu-select-selection .ivu-tag'); + return [...tags].map(el => el.textContent.trim()).join(','); + }; + const selectAValue = getSelections(SelectA); + const selectBValue = getSelections(SelectB); + + expect(selectAValue).to.equal(options[0].label); + expect(selectBValue).to.equal(options.slice(1, 3).map(obj => obj.label.trim()).join(',')); + + done(); + }).catch(err => { + console.log(err); + done(false); + }); + }); + + it('should create update model with value, and label when asked', done => { + const options = [ + {value: 'beijing', label: 'Beijing'}, + {value: 'stockholm', label: 'Stockholm'}, + {value: 'lisboa', label: 'Lisboa'} + ]; + let onChangeValueA, onChangeValueB; + + + vm = createVue({ + template: ` +
+ + {{ item.label }} + + + {{ item.label }} + +
+ `, + data() { + return { + cityList: options, + modelA: [], + modelB: [] + }; + }, + methods: { + onChangeA(val){ + onChangeValueA = val; + }, + onChangeB(val){ + onChangeValueB = val; + } + } + }); + const [SelectA, SelectB] = vm.$children; + SelectA.toggleMenu(null, true); + SelectB.toggleMenu(null, true); + + + new Promise(resolve => { + const condition = function() { + const optionsA = SelectA.$el.querySelectorAll('.ivu-select-item'); + const optionsB = SelectB.$el.querySelectorAll('.ivu-select-item'); + return optionsA.length > 0 && optionsB.length > 0; + }; + waitForIt(condition, resolve); + }) + .then(() => { + // click in A options + const optionsA = SelectA.$el.querySelectorAll('.ivu-select-item'); + optionsA[0].click(); + return promissedTick(SelectA); + }) + .then(() => { + expect(vm.modelA).to.equal(options[0].value); + expect(onChangeValueA).to.equal(options[0].value); + + // click in B options + const optionsB = SelectB.$el.querySelectorAll('.ivu-select-item'); + optionsB[2].click(); + return promissedTick(SelectB); + }) + .then(() => { + expect(vm.modelB).to.equal(options[2].value); + expect(JSON.stringify(onChangeValueB)).to.equal(JSON.stringify(options[2])); + done(); + }); + }); + }); + + describe('Public API', () => { + it('The "setQuery" method should behave as expected', (done) => { + + const options = [ + {value: 'beijing', label: 'Beijing'}, + {value: 'stockholm', label: 'Stockholm'}, + {value: 'lisboa', label: 'Lisboa'} + ]; + + vm = createVue({ + template: ` + + `, + data() { + return { + value: '', + options: options + }; + } + }); + const [Select] = vm.$children; + Select.setQuery('i'); + vm.$nextTick(() => { + const query = 'i'; + const input = vm.$el.querySelector('.ivu-select-input'); + expect(input.value).to.equal(query); + + const renderedOptions = [...vm.$el.querySelectorAll('.ivu-select-item')].map(el => el.textContent); + const filteredOptions = options.filter(option => JSON.stringify(option).includes(query)).map(({label}) => label); + expect(JSON.stringify(renderedOptions)).to.equal(JSON.stringify(filteredOptions)); + + // reset query + // setQuery(null) should clear the select + Select.setQuery(null); + vm.$nextTick(() => { + const input = vm.$el.querySelector('.ivu-select-input'); + expect(input.value).to.equal(''); + + const renderedOptions = [...vm.$el.querySelectorAll('.ivu-select-item')].map(el => el.textContent); + expect(JSON.stringify(renderedOptions)).to.equal(JSON.stringify(options.map(({label}) => label))); + done(); + }); + }); + + }); + + it('The "clearSingleSelect" method should behave as expected', (done) => { + + // clearSingleSelect + const options = [ + {value: 'beijing', label: 'Beijing'}, + {value: 'stockholm', label: 'Stockholm'}, + {value: 'lisboa', label: 'Lisboa'} + ]; + const preSelected = 'lisboa'; + + vm = createVue({ + template: ` + + `, + data() { + return { + value: preSelected, + options: options + }; + } + }); + const [Select] = vm.$children; + vm.$nextTick(() => { + expect(Select.publicValue).to.equal(preSelected); + Select.clearSingleSelect(); + expect(typeof Select.publicValue).to.equal('undefined'); + done(); + }); + }); + }); + + describe('Performance tests', () => { + it('should handle big numbers of options', done => { + const manyLaterOptions = Array.apply(null, Array(200)).map((_, i) => { + return { + value: i + 1, + label: Math.random().toString(36).slice(2).toUpperCase() + }; + }); + const start = +new Date(); + vm = createVue({ + template: ` + + `, + data() { + return { + value: '', + options: [] + }; + }, + mounted() { + this.$nextTick(() => (this.options = manyLaterOptions)); + } + }); + const condition = function() { + const componentOptions = vm.$children[0].flatOptions; + return componentOptions && componentOptions.length === manyLaterOptions.length; + }; + const callback = function() { + const end = +new Date(); + const renderedOptions = vm.$el.querySelectorAll('.ivu-select-dropdown-list li'); + expect(renderedOptions.length).to.equal(manyLaterOptions.length); + expect(end - start).to.be.not.above(1000); + done(); + }; + waitForIt(condition, callback); + }); + }); +}); diff --git a/test/unit/specs/table.spec.js b/test/unit/specs/table.spec.js new file mode 100644 index 0000000000000000000000000000000000000000..755b4a3b9b72807689e489894031771a0ee7d566 --- /dev/null +++ b/test/unit/specs/table.spec.js @@ -0,0 +1,47 @@ +import { createVue, destroyVM } from '../util'; +import { csvA, csvB } from './assets/table/csvData.js'; + +const cleanCSV = (str) => str.split('\n').map(s => s.trim()).filter(Boolean).join('\n'); + +describe('Table.vue', () => { + let vm; + afterEach(() => { + destroyVM(vm); + }); + + describe('CSV export', () => { + it('should export simple data to CSV - test A', done => { + vm = createVue({ + template: '
', + data() { + return csvA; + }, + mounted() { + this.$refs.tableA.exportCsv({callback: data => { + expect(cleanCSV(data)).to.equal(cleanCSV(this.expected)); + expect(cleanCSV(data).length > 0).to.equal(true); + done(); + }}); + } + }); + }); + + it('should export data with commas and line breaks to CSV - test B', done => { + vm = createVue({ + template: '
', + data() { + return csvB; + }, + mounted() { + this.$refs.tableB.exportCsv({separator: ';', quoted: true, callback: data => { + expect(cleanCSV(data)).to.equal(cleanCSV(this.expected)); + expect(cleanCSV(data).length > 0).to.equal(true); + done(); + }}); + } + }); + }); + + }); + +}); diff --git a/test/unit/specs/time-spinner.spec.js b/test/unit/specs/time-spinner.spec.js new file mode 100644 index 0000000000000000000000000000000000000000..512645dcf6c0327083a624200b06e8074d9d1e5a --- /dev/null +++ b/test/unit/specs/time-spinner.spec.js @@ -0,0 +1,60 @@ +import { createVue, destroyVM } from '../util'; + +describe('TimePicker.vue', () => { + let vm; + afterEach(() => { + destroyVM(vm); + }); + + it('should create a TimePicker component with hours, minutes and seconds', done => { + vm = createVue(` + + `); + const picker = vm.$children[0]; + picker.handleFocus({type: 'focus'}); // open the picker panels + + vm.$nextTick(() => { + const spiners = picker.$el.querySelectorAll('.ivu-time-picker-cells-list'); + expect(spiners.length).to.equal(3); // hh:mm:ss + expect(spiners[0].querySelectorAll('.ivu-time-picker-cells-cell').length).to.equal(24); + expect(spiners[1].querySelectorAll('.ivu-time-picker-cells-cell').length).to.equal(60); + expect(spiners[2].querySelectorAll('.ivu-time-picker-cells-cell').length).to.equal(60); + done(); + }); + }); + + it('should create a TimePicker component with only hours and minutes', done => { + vm = createVue(` + + `); + const picker = vm.$children[0]; + picker.handleFocus({type: 'focus'}); // open the picker panels + + vm.$nextTick(() => { + const spiners = picker.$el.querySelectorAll('.ivu-time-picker-cells-list'); + expect([...spiners].filter(el => el.style.display != 'none').length).to.equal(2); // hh:mm + expect(spiners[0].querySelectorAll('.ivu-time-picker-cells-cell').length).to.equal(24); + expect(spiners[1].querySelectorAll('.ivu-time-picker-cells-cell').length).to.equal(60); + done(); + }); + }); + + it('should create a TimePicker component with steps of 15 minutes', done => { + vm = createVue(` + + `); + const picker = vm.$children[0]; + picker.handleFocus({type: 'focus'}); // open the picker panels + + vm.$nextTick(() => { + const spiners = picker.$el.querySelectorAll('.ivu-time-picker-cells-list'); + const minutesList = [...spiners[1].querySelectorAll('.ivu-time-picker-cells-cell')]; + + expect(spiners[0].querySelectorAll('.ivu-time-picker-cells-cell').length).to.equal(24); + expect(minutesList.map(el => el.textContent).join(',')).to.equal('00,15,30,45'); + expect(spiners[1].querySelectorAll('.ivu-time-picker-cells-cell').length).to.equal(4); + expect(spiners[2].querySelectorAll('.ivu-time-picker-cells-cell').length).to.equal(60); + done(); + }); + }); +}); diff --git a/test/unit/util.js b/test/unit/util.js new file mode 100644 index 0000000000000000000000000000000000000000..64c22b0e904d8ac56b4ef0259bd04cc0587b0227 --- /dev/null +++ b/test/unit/util.js @@ -0,0 +1,135 @@ +import Vue from 'vue'; +import ViewUIPlus from '../../src/index'; + +Vue.use(ViewUIPlus); + +let id = 0; + +const createElm = function() { + const elm = document.createElement('div'); + + elm.id = 'app' + ++id; + document.body.appendChild(elm); + + return elm; +}; + +const pad = (nr) => nr < 10 ? '0' + nr : nr; + +/** + * 回收 vm + * @param {Object} vm + */ +exports.destroyVM = function(vm) { + vm.$el && + vm.$el.parentNode && + vm.$el.parentNode.removeChild(vm.$el); +}; + +/** + * 创建一个 Vue 的实例对象 + * @param {Object|String} Compo 组件配置,可直接传 template + * @param {Boolean=false} mounted 是否添加到 DOM 上 + * @return {Object} vm + */ +exports.createVue = function(Compo, mounted = false) { + const elm = createElm(); + + if (Object.prototype.toString.call(Compo) === '[object String]') { + Compo = { template: Compo }; + } + return new Vue(Compo).$mount(mounted === false ? null : elm); +}; + +/** + * 创建一个测试组件实例 + * @link http://vuejs.org/guide/unit-testing.html#Writing-Testable-Components + * @param {Object} Compo - 组件对象 + * @param {Object} propsData - props 数据 + * @param {Boolean=false} mounted - 是否添加到 DOM 上 + * @return {Object} vm + */ +exports.createTest = function(Compo, propsData = {}, mounted = false) { + if (propsData === true || propsData === false) { + mounted = propsData; + propsData = {}; + } + const elm = createElm(); + const Ctor = Vue.extend(Compo); + return new Ctor({ propsData }).$mount(mounted === false ? null : elm); +}; + +/** + * Transform Date string (yyyy-mm-dd hh:mm:ss) to Date object + * @param {String} + */ +exports.stringToDate = function(str) { + const parts = str.split(/[^\d]/).filter(Boolean); + parts[1] = parts[1] - 1; + return new Date(...parts); +}; + +/** + * Transform Date to yyyy-mm-dd string + * @param {Date} + */ +exports.dateToString = function(d) { + return [d.getFullYear(), d.getMonth() + 1, d.getDate()].map(pad).join('-'); +}; + +/** + * Transform Date to HH:MM:SS string + * @param {Date} + */ +exports.dateToTimeString = function(d){ + const date = new Date(d); + return [date.getHours(), date.getMinutes(), date.getSeconds()].map(pad).join(':'); + +} + +/** + * 触发一个事件 + * mouseenter, mouseleave, mouseover, keyup, change, click 等 + * @param {Element} elm + * @param {String} name + * @param {*} opts + */ +exports.triggerEvent = function(elm, name, ...opts) { + let eventName; + + if (/^mouse|click/.test(name)) { + eventName = 'MouseEvents'; + } else if (/^key/.test(name)) { + eventName = 'KeyboardEvent'; + } else { + eventName = 'HTMLEvents'; + } + const evt = document.createEvent(eventName); + + evt.initEvent(name, ...opts); + elm.dispatchEvent + ? elm.dispatchEvent(evt) + : elm.fireEvent('on' + name, evt); + + return elm; +}; + +/** +* Wait for components inner async process, when this.$nextTick is not enough +* @param {Function} the condition to verify before calling the callback +* @param {Function} the callback to call when condition is true +*/ +exports.waitForIt = function waitForIt(condition, callback) { + if (condition()) callback(); + else setTimeout(() => waitForIt(condition, callback), 50); +}; + +/** +* Call a components .$nextTick in a promissified way +* @param {Vue Component} the component to work with +*/ +exports.promissedTick = component => { + return new Promise((resolve, reject) => { + component.$nextTick(resolve); + }); +}; diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000000000000000000000000000000000000..a85380a09928ba24ffd95dbbbdaa4a20ee5d632b --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,23 @@ +{ + "compilerOptions": { + "target": "esnext", + "module": "esnext", + "strict": true, + "jsx": "preserve", + "importHelpers": true, + "moduleResolution": "node", + "experimentalDecorators": true, + "esModuleInterop": true, + "allowSyntheticDefaultImports": true, + "sourceMap": true, + "baseUrl": ".", + "paths": { + "@/*": ["src/*"] + }, + "lib": ["esnext", "dom", "dom.iterable", "scripthost"] + }, + "include": [ + "types/*.ts", + ], + "exclude": ["node_modules"] +} diff --git a/tslint.json b/tslint.json new file mode 100644 index 0000000000000000000000000000000000000000..7082052078c2481424e723f5f02cfaa19f92f2bd --- /dev/null +++ b/tslint.json @@ -0,0 +1,127 @@ +{ + "defaultSeverity": "warning", + "extends": ["tslint:recommended"], + "linterOptions": { + "exclude": ["node_modules/**"] + }, + "rules": { + "jsx-boolean-value": false, + "jsx-curly-spacing": false, + "jsx-no-multiline-js": false, + "jsx-wrap-multiline": false, + "jsx-alignment": false, + "jsx-no-lambda": true, + "jsx-no-string-ref": false, + "class-name": false, + "max-line-length": [true, 180], + "member-ordering": [true, "statics-first"], + "new-parens": true, + "no-consecutive-blank-lines": true, + "no-mergeable-namespace": true, + "no-switch-case-fall-through": true, + "no-trailing-whitespace": true, + "no-unused-variable": [true], + "no-var-keyword": true, + "one-variable-per-declaration": [false, "ignore-for-loop"], + "triple-equals": [false, "allow-null-check"], + "use-isnan": false, + //ts专用 + "prefer-const": false, //true, //const偏好 + "adjacent-overload-signatures": true, //Enforces function overloads to be consecutive. + "ban-comma-operator": true, //禁止逗号运算符。 + "ban-type": [true, ["object", "User {} instead."], ["string"]], //禁止类型 + //"member-access": [true, "no-public" || "check-accessor" || "check-constructor" || "check-parameter-property"], //类成员必须声明 private public .... + "member-order": [false], //类声明排序 + "no-any": false, //true, //不需使用any类型 + "no-empty-interface": true, //禁止空接口 {} + "no-import-side-effect": [ + true, + { + "ignore-module": "(\\.html|\\.css)$" + } + ], //禁止导入带有副作用的语句 + "no-inferrable-types": [true, "ignore-params", "ignore-properties"], //不允许将变量或参数初始化为数字,字符串或布尔值的显式类型声明。 + "no-internal-module": true, //不允许内部模块 + "no-magic-numbers": false, //[true, 1, 2, 3], //不允许在变量赋值之外使用常量数值。当没有指定允许值列表时,默认允许-1,0和1 + "no-namespace": false, //[true, "allpw-declarations"], //不允许使用内部modules和命名空间 + "no-non-null-assertion": true, //不允许使用!后缀操作符的非空断言。 + "no-parameter-reassignment": false, //true, //不允许重新分配参数 + "no-reference": false, //true, // 禁止使用/// 导入 ,使用import代替 + "no-unnecessary-type-assertion": true, //如果类型断言没有改变表达式的类型就发出警告 + "no-var-requires": true, //不允许使用var module = require("module"),用 import foo = require('foo')导入 + "only-arrow-functions": false, //[true, "allow-declarations", "allow-named-functions"], //允许箭头表达式,不需要传统表达式 ; 允许独立的函数声明 ;允许表达,function foo() {}但不是function() {} + "prefer-for-of": true, //建议使用for(..of) + "promise-function-async": true, //要求异步函数返回promise + "typedef": false, //[true, "call-signature", "parameter", "member-variable-declaration"], // 需要定义的类型存在 + "typedef-whitespace": true, //类型声明的冒号之前是否需要空格,在类型定义的时候,是否允许使用空格, 使用false,表示不对此项进行校验,不启用此项的校验 + "unified-signatures": true, //重载可以被统一联合成一个 + //function 专用 + "await-promise": true, //警告不是一个promise的await + // "ban": [ + // true, + // "eval", + // { + // "name": "$", + // "message": "please don't" + // }, + // ["describe", "only"], + // { + // "name": ["it", "only"], + // "message": "don't focus tests" + // }, + // { + // "name": ["chai", "assert", "equal"], + // "message": "Use 'strictEqual' instead." + // }, + // { + // "name": ["*", "forEach"], + // "message": "Use a regular for loop instead." + // } + // ], + "curly": true, //for if do while 要有括号 + "forin": false, //true, //用for in 必须用if进行过滤 + "import-blacklist": true, //允许使用import require导入具体的模块 + "label-postion": true, //允许在do/for/while/swith中使用label + "no-arg": true, //不允许使用 argument.callee + "no-bitwise": false, //true, //不允许使用按位运算符 + "no-conditional-assignmen": true, //不允许在do-while/for/if/while判断语句中使用赋值语句 + "no-console": [true, "time", "timeEnd"], //不能使用console + "no-construct": true, //不允许使用 String/Number/Boolean的构造函数 + "no-debugger": true, //不允许使用debugger + "no-duplicate-super": true, //构造函数两次用super会发出警告 + "no-empty": false, //true, //不允许空的块 + "no-eval": true, //不允许使用eval + "no-floating-promises": true, //必须正确处理promise的返回函数 + "no-for-in-array": true, //不允许使用for in 遍历数组 + "no-implicit-dependencies": true, //不允许在项目的package.json中导入未列为依赖项的模块 + "no-inferred-empty-object-type": true, //不允许在函数和构造函数中使用{}的类型推断 + "no-invalid-template-strings": true, //警告在非模板字符中使用${ + "no-invalid-this": false, //true, //不允许在非class中使用 this关键字 + "no-misused-new": true, //禁止定义构造函数或new class + "no-null-keyword": false, // true, //不允许使用null关键字 + "no-object-literal-type-assertion": false, //true, //禁止objext出现在类型断言表达式中 + "no-return-await": true, //不允许return await + "arrow-parens": false, //true, //箭头函数定义的参数需要括号 + "quotemark": [true, "single", "jsx-double", "avoid-escape"], //引号的使用规则 + "semicolon": false, //[true, "never", "ignore-interfaces"], //分号的使用规则 + "indent": false, //[true, "tabs", 2], //使用Tab进行缩进,每次强制缩进2个字符 + "whitespace": [ + true, + "check-branch", + "check-decl", + "check-operator", + "check-type" + ], //空格的校验 + "member-access": false, //类成员的显示可见性声明,即显示定义一个类的成员是否可见,即对类成员定义public | static 等 + "one-line": false //, //要求指定的标记与它们之前的表达式位于同一行 + // "trailing-comma": [true, { //对尾随逗号的校验 + // "multiline": { + // "objects": "ignore", + // "arrays": "never", + // "functions": "never", + // "typeLiterals": "ignore" + // }, + //"esSpecCompliant": true //是否允许尾随逗号出现在剩余变量中 + // }] + } +} diff --git a/types/affix.d.ts b/types/affix.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..4a06a85b60b785f61b3144fd5347fa2831bdc152 --- /dev/null +++ b/types/affix.d.ts @@ -0,0 +1,24 @@ +import type { DefineComponent } from 'vue'; + +export declare const Affix: DefineComponent<{ + /** + * 距离窗口顶部达到指定偏移量后触发 + */ + 'offset-top'?: number; + + /** + * 距离窗口底部达到指定偏移量后触发 + */ + 'offset-bottom'?: number; + + /** + * addEventListener 原生的 useCapture 选项 + */ + 'use-capture'?: boolean; + + /** + * 在固定状态发生改变时触发 + */ + onOnChange?: (event?: any) => any; + +}> diff --git a/types/alert.d.ts b/types/alert.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..fd0fa6bbc819098bc54182252b2ff6c465dc3dc5 --- /dev/null +++ b/types/alert.d.ts @@ -0,0 +1,51 @@ +import type { DefineComponent } from 'vue'; + +export declare const Alert: DefineComponent<{ + /** + * 警告提示样式,可选值为`info`、`success`、`warning`、`error` + */ + type?: 'info' | 'success' | 'warning' | 'error'; + + /** + * 是否可关闭 + */ + closable?: boolean; + + /** + * 是否显示图标 + */ + 'show-icon'?: boolean; + + /** + * 是否应用动画,动画时长可能会引起占位的闪烁 + */ + fade?: boolean; + + /** + * 关闭时触发 + */ + onOnClose?: (event?: any) => any; + + 'v-slots'?: { + /** + * 警告提示内容 + */ + default?: () => any; + + /** + * 警告提示辅助性文字介绍 + */ + desc?: () => any; + + /** + * 自定义图标内容 + */ + icon?: () => any; + + /** + * 自定义关闭内容 + */ + close?: () => any; + + }; +}> diff --git a/types/anchor.d.ts b/types/anchor.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..6d760581a9f586399f29a57e7d77cc8110ebe8dd --- /dev/null +++ b/types/anchor.d.ts @@ -0,0 +1,67 @@ +import type { DefineComponent } from 'vue'; + +export declare const Anchor: DefineComponent<{ + /** + * 固定模式 + */ + affix?: boolean; + + /** + * 距离窗口顶部达到指定偏移量后触发 + */ + 'offset-top'?: number; + + /** + * 距离窗口底部达到指定偏移量后触发 + */ + 'offset-bottom'?: number; + + /** + * 锚点区域边界,单位:px + */ + bounds?: number; + + /** + * 点击滚动的额外距离 + */ + 'scroll-offset'?: number; + + /** + * 指定滚动的容器 + */ + container?: string | HTMLElement; + + /** + * 是否显示小圆点 + */ + 'show-ink'?: boolean; + + /** + * 点击锚点时触发,返回链接 + */ + onOnSelect?: (event?: any) => any; + + /** + * 链接改变时触发,返回新链接和旧链接 + */ + onOnChange?: (event?: any) => any; + +}> + +export declare const AnchorLink: DefineComponent<{ + /** + * 锚点链接 + */ + href?: string; + + /** + * 文字内容 + */ + title?: string; + + /** + * 点击滚动的额外距离 + */ + 'scroll-offset'?: number; + +}> diff --git a/types/auth.d.ts b/types/auth.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..488bc79d47b11b68d3c01169aad27c7fa5c459bc --- /dev/null +++ b/types/auth.d.ts @@ -0,0 +1,66 @@ +import type { DefineComponent } from 'vue'; + +export declare const Auth: DefineComponent<{ + /** + * 准入权限,详见示例 + */ + authority?: string | any[] | Function | boolean; + + /** + * 用户权限 + */ + access?: string | any[]; + + /** + * 是否开启阻止模式,开启后,不会返回 noMatch 的 slot,而是阻止组件内的点击,反而给一个 $Message 提示,常用于 Button 操作 + */ + prevent?: boolean; + + /** + * 在 prevent 开启时有效,点击提示的内容,当开启 custom-tip 时无效 + */ + message?: string; + + /** + * 在 prevent 开启时有效,通过监听 @click 自定义提示 + */ + 'custom-tip'?: boolean; + + /** + * 设置包裹组件的 display 类型,包裹组件是一个 div 元素 + */ + display?: string; + + /** + * 开启后,当鉴权不通过时,直接跳转到指定路由 + */ + to?: object | string; + + /** + * 路由跳转时,开启 replace 将不会向 history 添加新记录 + */ + replace?: boolean; + + /** + * 同 vue-router append + */ + append?: boolean; + + /** + * 当开启 prevent,且鉴权不通过时,点击会触发 + */ + onClick?: (event?: any) => any; + + 'v-slots'?: { + /** + * 自定义标题 + */ + default?: () => any; + + /** + * 自定义补充描述 + */ + noMatch?: () => any; + + }; +}> diff --git a/types/auto-complete.d.ts b/types/auto-complete.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..eb4a4bd0cf3b5af0d85d56542a563fd91aa44bdd --- /dev/null +++ b/types/auto-complete.d.ts @@ -0,0 +1,104 @@ +import type { DefineComponent } from 'vue'; + +export declare const AutoComplete: DefineComponent<{ + /** + * 绑定的值,可使用 v-model 双向绑定 + */ + 'model-value'?: string | number; + + /** + * 自动完成的数据源 + */ + data?: any[]; + + /** + * 是否可以清空选项 + */ + clearable?: boolean; + + /** + * 是否禁用 + */ + disabled?: boolean; + + /** + * 占位文本 + */ + placeholder?: string; + + /** + * 输入框尺寸,可选值为 `large`、`small`、`default` 或者不设置 + */ + size?: '' | 'large' | 'small' | 'default'; + + /** + * 输入框尾部图标 + */ + icon?: string; + + /** + * 是否根据输入项进行筛选。当其为一个函数时,会接收 `value` 和 `option` 两个参数,当 option 符合筛选条件时,应返回 true,反之则返回 false + */ + 'filter-method'?: Function | boolean; + + /** + * 弹窗的展开方向,可选值为 `bottom`、`top`、`top-start`、`bottom-start`、`top-end`、`bottom-end`,2.12.0 版本开始支持自动识别 + */ + placement?: string; + + /** + * 是否将弹层放置于 body 内,在 Tabs、带有 fixed 的 Table 列内使用时,建议添加此属性,它将不受父级样式影响,从而达到更好的效果 + */ + transfer?: boolean; + + /** + * 给表单元素设置 `id`,详见 Form 用法。 + */ + 'element-id'?: string; + + /** + * 开启 transfer 时,给浮层添加额外的 class 名称 + */ + 'transfer-class-name'?: string; + + /** + * 是否开启 capture 模式,也可通过全局配置 + */ + capture?: boolean; + + /** + * 是否开启 Popper 的 eventsEnabled 属性,开启可能会牺牲一定的性能 + */ + 'events-enabled'?: boolean; + + /** + * 选中 option,或 input 的 value 变化时,调用此函数 + */ + onOnChange?: (event?: any) => any; + + /** + * 被选中时调用,参数为选中项的 value 值 + */ + onOnSelect?: (event?: any) => any; + + /** + * 搜索补全项的时候调用 + */ + onOnSearch?: (event?: any) => any; + + /** + * 聚焦时触发 + */ + onOnFocus?: (event?: any) => any; + + /** + * 失焦时触发 + */ + onOnBlur?: (event?: any) => any; + + /** + * 清空时触发 + */ + onOnClear?: (event?: any) => any; + +}> diff --git a/types/avatar-list.d.ts b/types/avatar-list.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..f30ccc0a8615dc687fca82eb62aad80171bbb540 --- /dev/null +++ b/types/avatar-list.d.ts @@ -0,0 +1,41 @@ +import type { DefineComponent } from 'vue'; + +export declare const AvatarList: DefineComponent<{ + /** + * 指定头像的形状,可选值为 circle、square + */ + shape?: 'circle' | 'square'; + + /** + * 设置头像的大小,可选值为 large、small、default + */ + size?: 'large' | 'small' | 'default'; + + /** + * 图片类头像的资源地址 + */ + src?: string; + + /** + * 设置头像的图标类型,参考 `Icon` 组件 + */ + icon?: string; + + /** + * 自定义图标 + */ + 'custom-icon'?: string; + + 'v-slots'?: { + /** + * 自定义超出 max 后的内容 + */ + excess?: () => any; + + /** + * 指定该 slot 后,无论超出 max 与否,都会显示自定义的额外信息,且 excess 失效 + */ + extra?: () => any; + + }; +}> diff --git a/types/avatar.d.ts b/types/avatar.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..4d9ef2e26c9418700ad62033f3d6214d228ea74b --- /dev/null +++ b/types/avatar.d.ts @@ -0,0 +1,34 @@ +import type { DefineComponent } from 'vue'; + +export declare const Avatar: DefineComponent<{ + /** + * 指定头像的形状,可选值为 circle、square + */ + shape?: 'circle' | 'square'; + + /** + * 设置头像的大小,可选值为 large、small、default + */ + size?: 'large' | 'small' | 'default'; + + /** + * 图片类头像的资源地址 + */ + src?: string; + + /** + * 设置头像的图标类型,参考 `Icon` 组件 + */ + icon?: string; + + /** + * 自定义图标 + */ + 'custom-icon'?: string; + + /** + * 在设置 src 且图片加载不成功时触发 + */ + onOnError?: (event?: any) => any; + +}> diff --git a/types/back-top.d.ts b/types/back-top.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..14b8e87773c2fed4d2f7d897dffa504c6bf2e1b2 --- /dev/null +++ b/types/back-top.d.ts @@ -0,0 +1,29 @@ +import type { DefineComponent } from 'vue'; + +export declare const BackTop: DefineComponent<{ + /** + * 页面滚动高度达到该值时才显示`BackTop`组件 + */ + height?: number; + + /** + * 组件距离底部的距离 + */ + bottom?: number; + + /** + * 组件距离右部的距离 + */ + right?: number; + + /** + * 滚动动画持续时间,单位 毫秒 + */ + duration?: number; + + /** + * 点击按钮时触发 + */ + onOnClick?: (event?: any) => any; + +}> diff --git a/types/badge.d.ts b/types/badge.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..20fa7c081b155da369021d7dac4a0ccb79ca91df --- /dev/null +++ b/types/badge.d.ts @@ -0,0 +1,66 @@ +import type { DefineComponent } from 'vue'; + +export declare const Badge: DefineComponent<{ + /** + * 显示的数字,大于`overflowCount`时,显示`${overflowCount}+`,为 0 时隐藏 + */ + count?: number; + + /** + * 展示封顶的数字值 + */ + 'overflow-count'?: number | string; + + /** + * 不展示数字,只有一个小红点,如需隐藏 dot ,需要设置`count`为 0 + */ + dot?: boolean; + + /** + * 自定义的class名称,dot 模式下无效 + */ + 'class-name'?: string; + + /** + * 使用预设的颜色,可选值为 success、primary、normal、error、warning、info + */ + type?: 'success' | 'primary' | 'normal' | 'error' | 'warning' | 'info'; + + /** + * 当数值为 0 时,是否展示 Badge + */ + 'show-zero'?: boolean; + + /** + * 设置 Badge 为状态点,可选值为 success、processing、default、error、warning + */ + status?: 'success' | 'processing' | 'default' | 'error' | 'warning'; + + /** + * 自定义内容,如果设置了 status,则为状态点的文本 + */ + text?: string; + + /** + * 设置状态点的位置偏移,格式为 [x, y] + */ + offset?: any[]; + + /** + * 设置更多状态点的颜色或自定义颜色 + */ + color?: string; + + 'v-slots'?: { + /** + * 自定义角标显示内容(去角标背景),数值 count 将无效。 + */ + count?: () => any; + + /** + * 自定义角标显示内容(带角标背景),数值 count 将无效。亦可自定义状态点模式下的 text 内容。 + */ + text?: () => any; + + }; +}> diff --git a/types/breadcrumb.d.ts b/types/breadcrumb.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..abb88b43b3ca87ef8ad44fcdee35821935148c79 --- /dev/null +++ b/types/breadcrumb.d.ts @@ -0,0 +1,32 @@ +import type { DefineComponent } from 'vue'; + +export declare const Breadcrumb: DefineComponent<{ + /** + * 自定义分隔符 + */ + separator?: string | Element; + +}> + +export declare const BreadcrumbItem: DefineComponent<{ + /** + * 链接,不传则没有链接,支持 vue-router 对象 + */ + to?: string | object; + + /** + * 路由跳转时,开启 replace 将不会向 history 添加新记录 + */ + replace?: boolean; + + /** + * 相当于 a 链接的 target 属性 + */ + target?: '_blank' | '_self' | '_parent' | '_top'; + + /** + * 同 vue-router append + */ + append?: boolean; + +}> diff --git a/types/button.d.ts b/types/button.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..064303cb510e72ee3685b60a6a73163ad1c67810 --- /dev/null +++ b/types/button.d.ts @@ -0,0 +1,97 @@ +import type { DefineComponent } from 'vue'; + +export declare const Button: DefineComponent<{ + /** + * 按钮类型,可选值为 `default`、`primary`、`dashed`、`text`、`info`、`success`、`warning`、`error`或者不设置 + */ + type?: '' | 'default' | 'primary' | 'dashed' | 'text' | 'info' | 'success' | 'warning' | 'error'; + + /** + * 幽灵属性,使按钮背景透明 + */ + ghost?: boolean; + + /** + * 按钮大小,可选值为 `large`、`small`、`default` 或者不设置 + */ + size?: '' | 'large' | 'small' | 'default'; + + /** + * 按钮形状,可选值为 `circle` 或者不设置 + */ + shape?: string; + + /** + * 开启后,按钮的长度为 100% + */ + long?: boolean; + + /** + * 设置 `button` 原生的 `type`,可选值为 `button`、`submit`、`reset` + */ + 'html-type'?: 'button' | 'submit' | 'reset'; + + /** + * 设置按钮为禁用状态 + */ + disabled?: boolean; + + /** + * 设置按钮为加载中状态 + */ + loading?: boolean; + + /** + * 设置按钮的图标类型 + */ + icon?: string; + + /** + * 设置按钮的自定义图标 + */ + 'custom-icon'?: string; + + /** + * 跳转的链接,支持 vue-router 对象 + */ + to?: string | object; + + /** + * 路由跳转时,开启 replace 将不会向 history 添加新记录 + */ + replace?: boolean; + + /** + * 相当于 a 链接的 target 属性 + */ + target?: '_blank' | '_self' | '_parent' | '_top'; + + /** + * 同 vue-router append + */ + append?: boolean; + + /** + * 点击时触发 + */ + onClick?: (event?: any) => any; + +}> + +export declare const ButtonGroup: DefineComponent<{ + /** + * 按钮组合大小,可选值为 `large`、`small`、`default` 或者不设置 + */ + size?: 'large' | 'small' | 'default'; + + /** + * 按钮组合形状,可选值为 `circle` 或者不设置 + */ + shape?: '' | 'circle'; + + /** + * 是否纵向排列按钮组 + */ + vertical?: boolean; + +}> diff --git a/types/calendar.d.ts b/types/calendar.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..3ba744faf93682409f00366a8e643689f2b6b003 --- /dev/null +++ b/types/calendar.d.ts @@ -0,0 +1,86 @@ +import type { DefineComponent } from 'vue'; + +export declare const Calendar: DefineComponent<{ + /** + * 绑定当前日期的值,为空时默认显示今天,可使用 v-model 双向绑定数据 + */ + 'model-value'?: Date | string | number; + + /** + * 视图类型,可选值为 month (月视图) 或 year (年视图) + */ + type?: string; + + /** + * 单元格高度,单位 px + */ + 'cell-height'?: number; + + /** + * 是否显示顶部 + */ + 'show-header'?: boolean; + + /** + * 周起始日 + */ + 'first-day-of-week'?: number; + + /** + * 是否隐藏类型切换 + */ + 'hide-type'?: boolean; + + /** + * 默认文案 + */ + locale?: object; + + /** + * 选择日期发生变化时触发 + */ + onOnChange?: (event?: any) => any; + + /** + * 切换视图类型时触发 + */ + onOnTypeChange?: (event?: any) => any; + + /** + * 点击单元格时触发 + */ + onOnCellClick?: (event?: any) => any; + + /** + * 右键单元格时触发 + */ + onOnCellContextmenu?: (event?: any) => any; + + /** + * 切换上一个时触发 + */ + onOnPrev?: (event?: any) => any; + + /** + * 切换下一个时触发 + */ + onOnNext?: (event?: any) => any; + + /** + * 点击今日时触发 + */ + onOnToday?: (event?: any) => any; + + 'v-slots'?: { + /** + * 自定义顶部 + */ + header?: () => any; + + /** + * 自定义顶部标题 + */ + headerTitle?: () => any; + + }; +}> diff --git a/types/card.d.ts b/types/card.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..ee495fd7fa260521dbe40ff657a6fe3f2edf077f --- /dev/null +++ b/types/card.d.ts @@ -0,0 +1,71 @@ +import type { DefineComponent } from 'vue'; + +export declare const Card: DefineComponent<{ + /** + * 是否显示边框,建议在灰色背景下使用 + */ + bordered?: boolean; + + /** + * 禁用鼠标悬停显示阴影 + */ + 'dis-hover'?: boolean; + + /** + * 卡片阴影,建议在灰色背景下使用 + */ + shadow?: boolean; + + /** + * 卡片内部间距,单位 px + */ + padding?: number; + + /** + * 标题 + */ + title?: string; + + /** + * 标题前的图标 + */ + icon?: string; + + /** + * 跳转的链接,支持 vue-router 对象 + */ + to?: string | object; + + /** + * 路由跳转时,开启 replace 将不会向 history 添加新记录 + */ + replace?: boolean; + + /** + * 相当于 a 链接的 target 属性 + */ + target?: string; + + /** + * 同 vue-router append + */ + append?: boolean; + + 'v-slots'?: { + /** + * 自定义卡片标题,如果是简单文字,可以使用`<p>`标签包裹 + */ + title?: () => any; + + /** + * 额外显示的内容,默认位置在右上角 + */ + extra?: () => any; + + /** + * 卡片主体内容 + */ + default?: () => any; + + }; +}> diff --git a/types/carousel.d.ts b/types/carousel.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..9686427ecdfc4724f73be224aa1b767f10535aa1 --- /dev/null +++ b/types/carousel.d.ts @@ -0,0 +1,74 @@ +import type { DefineComponent } from 'vue'; + +export declare const Carousel: DefineComponent<{ + /** + * 幻灯片的索引,从 0 开始,可以使用 v-model 双向绑定数据 + */ + 'model-value'?: number; + + /** + * 走马灯的高度,可填 auto 或具体高度数值,单位 px + */ + height?: string | number; + + /** + * 是否开启循环 + */ + loop?: boolean; + + /** + * 是否自动切换 + */ + autoplay?: boolean; + + /** + * 自动切换的时间间隔,单位为毫秒 + */ + 'autoplay-speed'?: number; + + /** + * 指示器的位置,可选值为 inside (内部),outside(外部),none(不显示) + */ + dots?: 'inside' | 'outside' | 'none'; + + /** + * 是否显示圆形指示器 + */ + 'radius-dot'?: boolean; + + /** + * 指示器的触发方式,可选值为 click(点击),hover(悬停) + */ + trigger?: 'click' | 'hover'; + + /** + * 切换箭头的显示时机,可选值为 hover(悬停),always(一直显示),never(不显示) + */ + arrow?: 'hover' | 'always' | 'never'; + + /** + * 动画效果 + */ + easing?: string; + + /** + * 幻灯片切换时触发,目前激活的幻灯片的索引,原幻灯片的索引 + */ + onOnChange?: (event?: any) => any; + + /** + * 点击幻灯片时触发,返回索引值 + */ + onOnClick?: (event?: any) => any; + +}> + +export declare const CarouselItem: DefineComponent<{ + 'v-slots'?: { + /** + * 默认插槽内容 + */ + default?: () => any; + + }; +}> diff --git a/types/cascader.d.ts b/types/cascader.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..f0255208663c26879e9c9f4ff825c7d296679961 --- /dev/null +++ b/types/cascader.d.ts @@ -0,0 +1,94 @@ +import type { DefineComponent } from 'vue'; + +export declare const Cascader: DefineComponent<{ + /** + * 可选项的数据源,格式参照示例说明 + */ + data?: any[]; + + /** + * 当前已选项的数据,格式参照示例说明 + */ + 'model-value'?: any[]; + + /** + * 选择后展示的函数,用于自定义显示格式 + */ + 'render-format'?: Function; + + /** + * 是否禁用选择器 + */ + disabled?: boolean; + + /** + * 是否支持清除 + */ + clearable?: boolean; + + /** + * 输入框占位符 + */ + placeholder?: string; + + /** + * 次级菜单展开方式,可选值为 `click` 或 `hover` + */ + trigger?: 'click' | 'hover'; + + /** + * 当此项为 true 时,点选每级菜单选项值都会发生变化,具体见上面的示例 + */ + 'change-on-select'?: boolean; + + /** + * 输入框大小,可选值为`large`和`small`或者不填 + */ + size?: '' | 'large' | 'small'; + + /** + * 动态获取数据,数据源需标识 loading + */ + 'load-data'?: Function; + + /** + * 是否支持搜索 + */ + filterable?: boolean; + + /** + * 当搜索列表为空时显示的内容 + */ + 'not-found-text'?: string; + + /** + * 是否将弹层放置于 body 内,在 Tabs、带有 fixed 的 Table 列内使用时,建议添加此属性,它将不受父级样式影响,从而达到更好的效果 + */ + transfer?: boolean; + + /** + * 给表单元素设置 `id`,详见 Form 用法。 + */ + 'element-id'?: string; + + /** + * 开启 transfer 时,给浮层添加额外的 class 名称 + */ + 'transfer-class-name'?: string; + + /** + * 是否开启 Popper 的 eventsEnabled 属性,开启可能会牺牲一定的性能 + */ + 'events-enabled'?: boolean; + + /** + * 选择完成后的回调,返回值 value 即已选值 value,selectedData 为已选项的具体数据 + */ + onOnChange?: (event?: any) => any; + + /** + * 展开和关闭弹窗时触发 + */ + onOnVisibleChange?: (event?: any) => any; + +}> diff --git a/types/cell.d.ts b/types/cell.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..34cf8f45042f27e79c42b83828e7afa33f41cc73 --- /dev/null +++ b/types/cell.d.ts @@ -0,0 +1,89 @@ +import type { DefineComponent } from 'vue'; + +export declare const Cell: DefineComponent<{ + /** + * 用来标识这一项 + */ + name?: string | number; + + /** + * 左侧标题 + */ + title?: string; + + /** + * 标题下方的描述信息 + */ + label?: string; + + /** + * 右侧额外内容 + */ + extra?: string; + + /** + * 禁用该项 + */ + disabled?: boolean; + + /** + * 标记该项为选中状态 + */ + selected?: boolean; + + /** + * 跳转的链接,支持 vue-router 对象 + */ + to?: string | object; + + /** + * 路由跳转时,开启 replace 将不会向 history 添加新记录 + */ + replace?: boolean; + + /** + * 相当于 a 链接的 target 属性 + */ + target?: '_blank' | '_self' | '_parent' | '_top'; + + /** + * 同 vue-router append + */ + append?: boolean; + + 'v-slots'?: { + /** + * 相当于 title + */ + default?: () => any; + + /** + * 标题前的 Icon + */ + icon?: () => any; + + /** + * 相当于 label + */ + label?: () => any; + + /** + * 相当于 extra + */ + extra?: () => any; + + /** + * 有链接时,可自定义右侧箭头 + */ + arrow?: () => any; + + }; +}> + +export declare const CellGroup: DefineComponent<{ + /** + * 点击单元格时触发 + */ + onOnClick?: (event?: any) => any; + +}> diff --git a/types/checkbox.d.ts b/types/checkbox.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..574c548e7a3d93e09efcf67f32fc198723e85de6 --- /dev/null +++ b/types/checkbox.d.ts @@ -0,0 +1,67 @@ +import type { DefineComponent } from 'vue'; + +export declare const Checkbox: DefineComponent<{ + /** + * 只在单独使用时有效。可以使用 v-model 双向绑定数据 + */ + 'model-value'?: boolean; + + /** + * 只在组合使用时有效。指定当前选项的 value 值,组合会自动判断是否选中 + */ + label?: string; + + /** + * 是否禁用当前项 + */ + disabled?: boolean; + + /** + * 设置 indeterminate 状态,只负责样式控制 + */ + indeterminate?: boolean; + + /** + * 多选框的尺寸,可选值为 `large`、`small`、`default` 或者不设置 + */ + size?: '' | 'large' | 'small' | 'default'; + + /** + * 是否显示边框 + */ + border?: boolean; + + /** + * 选中时的值,当使用类似 1 和 0 来判断是否选中时会很有用 + */ + 'true-value'?: string | number | boolean; + + /** + * 没有选中时的值,当使用类似 1 和 0 来判断是否选中时会很有用 + */ + 'false-value'?: string | number | boolean; + + /** + * 只在单独使用时有效。在选项状态发生改变时触发,通过修改外部的数据改变时不会触发 + */ + onOnChange?: (event?: any) => any; + +}> + +export declare const CheckboxGroup: DefineComponent<{ + /** + * 指定选中项目的集合,可以使用 v-model 双向绑定数据 + */ + 'model-value'?: any[]; + + /** + * 多选框组的尺寸,可选值为 `large`、`small`、`default` 或者不设置 + */ + size?: '' | 'large' | 'small' | 'default'; + + /** + * 在选项状态发生改变时触发,返回已选中的数组。通过修改外部的数据改变时不会触发 + */ + onOnChange?: (event?: any) => any; + +}> diff --git a/types/circle.d.ts b/types/circle.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..eea76212cc113af9de10651f67a3ffca6c2bd8e2 --- /dev/null +++ b/types/circle.d.ts @@ -0,0 +1,51 @@ +import type { DefineComponent } from 'vue'; + +export declare const Circle: DefineComponent<{ + /** + * 百分比 + */ + percent?: number; + + /** + * 图表的宽度和高度,单位 px + */ + size?: number; + + /** + * 进度环顶端的形状,可选值为`square`(方)和`round`(圆) + */ + 'stroke-linecap'?: 'square' | 'round'; + + /** + * 进度环的线宽,单位 px + */ + 'stroke-width'?: number; + + /** + * 进度环的颜色,4.0.0 版本开始支持传入数组显示为渐变色 + */ + 'stroke-color'?: string | any[]; + + /** + * 进度环背景的线宽,单位 px + */ + 'trail-width'?: number; + + /** + * 进度环背景的颜色 + */ + 'trail-color'?: string; + + /** + * 是否显示为仪表盘 + */ + dashboard?: boolean; + + 'v-slots'?: { + /** + * 自定义显示中间内容,内容默认垂直居中 + */ + default?: () => any; + + }; +}> diff --git a/types/city.d.ts b/types/city.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..ad9fe56e0ee1eb707485dfdfacfa060b25c23767 --- /dev/null +++ b/types/city.d.ts @@ -0,0 +1,59 @@ +import type { DefineComponent } from 'vue'; + +export declare const City: DefineComponent<{ + /** + * 指定选中项目的 value 值,可以使用 v-model 双向绑定数据。该值为城市 code,[查看全部城市 code](https://file.iviewui.com/iview-pro/city.json) + */ + value?: string; + + /** + * value 值可以设置为名称,比如北京(名称不含“市”字) + */ + 'use-name'?: boolean; + + /** + * 预设城市,会出现在快捷选择区域,各项为城市 code + */ + cities?: any[]; + + /** + * 是否禁用选择器 + */ + disabled?: boolean; + + /** + * 是否显示后缀“市”,例如开启则显示“北京市”,否则显示“北京” + */ + 'show-suffix'?: boolean; + + /** + * 选择框大小,可选值为`large`、`small`、`default` 或者不填 + */ + size?: string; + + /** + * 是否将弹层放置于 body 内 + */ + transfer?: boolean; + + /** + * 给表单元素设置 `id`,详见 Form 用法。 + */ + 'element-id'?: string; + + /** + * 默认的提示文字 + */ + placeholder?: string; + + /** + * 搜索框默认文字 + */ + 'search-placeholder'?: string; + + /** + * 选择城市时触发,返回该城市的详细内容,包括城市 code (c),对应省 code (p),城市名 (n),城市名首字母缩写 (l) + */ + onOnChange?: (event?: any) => any; + +}> diff --git a/types/collapse.d.ts b/types/collapse.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..c81eb0c3d5bd119707918e065754f8cae84df885 --- /dev/null +++ b/types/collapse.d.ts @@ -0,0 +1,49 @@ +import type { DefineComponent } from 'vue'; + +export declare const Collapse: DefineComponent<{ + /** + * 当前激活的面板的 name,可以使用 v-model 双向绑定 + */ + 'model-value'?: any[]; + + /** + * 是否开启手风琴模式,开启后每次至多展开一个面板 + */ + accordion?: boolean; + + /** + * 是否开启简洁模式 + */ + simple?: boolean; + + /** + * 切换面板时触发,返回当前已展开的面板的 key,格式为数组 + */ + onOnChange?: (event?: any) => any; + +}> + +export declare const Panel: DefineComponent<{ + /** + * 当前面板的 name,与 Collapse的 `value` 对应,不填为索引值 + */ + name?: string; + + /** + * 隐藏箭头 + */ + 'hide-arrow'?: boolean; + + 'v-slots'?: { + /** + * 面板头内容 + */ + default?: () => any; + + /** + * 描述内容 + */ + content?: () => any; + + }; +}> diff --git a/types/color-picker.d.ts b/types/color-picker.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..07e3dcdd65d2771b8cf8368885973bb4e122c0be --- /dev/null +++ b/types/color-picker.d.ts @@ -0,0 +1,84 @@ +import type { DefineComponent } from 'vue'; + +export declare const ColorPicker: DefineComponent<{ + /** + * 绑定的值,可使用 v-model 双向绑定 + */ + 'model-value'?: string; + + /** + * 是否禁用 + */ + disabled?: boolean; + + /** + * 是否可以输入色值 + */ + editable?: boolean; + + /** + * 是否支持透明度选择 + */ + alpha?: boolean; + + /** + * 是否支持色彩选择 + */ + hue?: boolean; + + /** + * 是否显示推荐的颜色预设 + */ + recommend?: boolean; + + /** + * 自定义颜色预设 + */ + colors?: any[]; + + /** + * 颜色的格式,可选值为 hsl、hsv、hex、rgb + */ + format?: 'hsl' | 'hsv' | 'hex' | 'rgb'; + + /** + * 尺寸,可选值为`large`、`small`、`default`或者不设置 + */ + size?: '' | 'large' | 'small' | 'default'; + + /** + * 是否将弹层放置于 body 内,在 Tabs、带有 fixed 的 Table 列内使用时,建议添加此属性,它将不受父级样式影响,从而达到更好的效果 + */ + transfer?: boolean; + + /** + * 是否开启 capture 模式,也可通过全局配置 + */ + capture?: boolean; + + /** + * 开启 transfer 时,给浮层添加额外的 class 名称 + */ + 'transfer-class-name'?: string; + + /** + * 是否开启 Popper 的 eventsEnabled 属性,开启可能会牺牲一定的性能 + */ + 'events-enabled'?: boolean; + + /** + * 当绑定值变化时触发 + */ + onOnChange?: (event?: any) => any; + + /** + * 面板中当前显示的颜色发生改变时触发 + */ + onOnActiveChange?: (event?: any) => any; + + /** + * 下拉框展开或收起时触发 + */ + onOnOpenChange?: (event?: any) => any; + +}> diff --git a/types/count-down.d.ts b/types/count-down.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..b712336852e57fae74c319645d6bdfc36d1cfc92 --- /dev/null +++ b/types/count-down.d.ts @@ -0,0 +1,24 @@ +import type { DefineComponent } from 'vue'; + +export declare const CountDown: DefineComponent<{ + /** + * 目标时间 + */ + target?: Date | number; + + /** + * 自动倒计时间隔,单位:毫秒 + */ + interval?: number; + + /** + * 自定义显示格式 + */ + format?: Function; + + /** + * 倒计时结束时触发 + */ + onOnEnd?: (event?: any) => any; + +}> diff --git a/types/count-up.d.ts b/types/count-up.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..deeaf5aff3bac15f8e72ee4150b335e334c2ee5f --- /dev/null +++ b/types/count-up.d.ts @@ -0,0 +1,34 @@ +import type { DefineComponent } from 'vue'; + +export declare const CountUp: DefineComponent<{ + /** + * 起始值 + */ + start?: number; + + /** + * 结束值,必填 + */ + end?: number; + + /** + * 小数位数 + */ + decimals?: number; + + /** + * 持续时间,单位:秒 + */ + duration?: number; + + /** + * [countup.js](https://github.com/inorganik/countUp.js) 设置项 + */ + options?: object; + + /** + * 回调函数 + */ + callback?: Function; + +}> diff --git a/types/date-picker.d.ts b/types/date-picker.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..d84f37139d7d434121d23a3ffcb318b1eb2f08dd --- /dev/null +++ b/types/date-picker.d.ts @@ -0,0 +1,166 @@ +import type { DefineComponent } from 'vue'; + +export declare const DatePicker: DefineComponent<{ + /** + * 显示类型,可选值为 `date`、`daterange`、`datetime`、`datetimerange`、`year`、`month` + */ + type?: 'date' | 'daterange' | 'datetime' | 'datetimerange' | 'year' | 'month'; + + /** + * 日期,可以是 JavaScript 的 Date,例如 **new Date()** ,也可以是标准的日期格式,点击右边查看,注意:model-value 使用 v-model 时,值是 Date 类型,可以配合 @on-change 使用 + */ + 'model-value'?: Date; + + /** + * 展示的日期格式 + */ + format?: Date; + + /** + * 日期选择器出现的位置,可选值为`top` `top-start` `top-end` `bottom` `bottom-start` `bottom-end` `left` `left-start` `left-end` `right` `right-start` `right-end` + */ + placement?: 'top' | 'top-start' | 'top-end' | 'bottom' | 'bottom-start' | 'bottom-end' | 'left' | 'left-start' | 'left-end' | 'right' | 'right-start' | 'right-end'; + + /** + * 占位文本 + */ + placeholder?: string; + + /** + * 选择器额外配置,比如不可选日期与快捷选项,具体项详见下表 + */ + options?: object; + + /** + * 开启后,左右面板不联动,仅在 `daterange` 和 `datetimerange` 下可用。 + */ + 'split-panels'?: boolean; + + /** + * 开启后,可以选择多个日期,仅在 `date` 下可用。 + */ + multiple?: boolean; + + /** + * 开启后,可以显示星期数。 + */ + 'show-week-numbers'?: boolean; + + /** + * 设置默认显示的起始日期。 + */ + 'start-date'?: Date; + + /** + * 是否显示底部控制栏,开启后,选择完日期,选择器不会主动关闭,需用户确认后才可关闭 + */ + confirm?: boolean; + + /** + * 手动控制日期选择器的显示状态,true 为显示,false 为收起。使用该属性后,选择器不会主动关闭。建议配合 slot 及 confirm 和相关事件一起使用 + */ + open?: boolean; + + /** + * 尺寸,可选值为`large`、`small`、`default`或者不设置 + */ + size?: '' | 'large' | 'small' | 'default'; + + /** + * 是否禁用选择器 + */ + disabled?: boolean; + + /** + * 是否显示清除按钮 + */ + clearable?: boolean; + + /** + * 完全只读,开启后不会弹出选择器,只在没有设置 open 属性下生效 + */ + readonly?: boolean; + + /** + * 文本框是否可以输入,只在没有使用 slot 时有效 + */ + editable?: boolean; + + /** + * 是否将弹层放置于 body 内,在 Tabs、带有 fixed 的 Table 列内使用时,建议添加此属性,它将不受父级样式影响,从而达到更好的效果 + */ + transfer?: boolean; + + /** + * 给表单元素设置 `id`,详见 Form 用法。 + */ + 'element-id'?: string; + + /** + * 可以在 type 为 datetime 和 datetimerange 下,配置 TimePicker 的属性,比如时间间隔 steps:`:time-picker-options="{steps: [1, 10, 10]}"` + */ + 'time-picker-options'?: object; + + /** + * 两个日期间的分隔符 + */ + separator?: string; + + /** + * 是否开启 capture 模式,也可通过全局配置 + */ + capture?: boolean; + + /** + * 开启 transfer 时,给浮层添加额外的 class 名称 + */ + 'transfer-class-name'?: string; + + /** + * 是否开启 Popper 的 eventsEnabled 属性,开启可能会牺牲一定的性能 + */ + 'events-enabled'?: boolean; + + /** + * 设置快捷选项,每项内容:**text | String**:显示的文案, **value | Function**:返回指定的日期,如需自己控制逻辑,可不设置,并使用 onClick 回调, **onClick | Function**:点击时的回调,参数为当前日期选择器的 Vue 实例,当需要自定义复杂操作时,可以使用 + */ + shortcuts?: any[]; + + /** + * 设置不可选择的日期,参数为当前的日期,需要返回 Boolean 是否禁用这天 + */ + disabledDate?: Function; + + /** + * 日期发生变化时触发 + */ + onOnChange?: (event?: any) => any; + + /** + * 弹出日历和关闭日历时触发 + */ + onOnOpenChange?: (event?: any) => any; + + /** + * 在 confirm 模式下有效,点击确定按钮时触发 + */ + onOnOk?: (event?: any) => any; + + /** + * 在 confirm 模式或 clearable = true 时有效,在清空日期时触发 + */ + onOnClear?: (event?: any) => any; + + /** + * 点击外部关闭下拉菜单时触发 + */ + onOnClickoutside?: (event?: any) => any; + + 'v-slots'?: { + /** + * 自定义选择器的显示内容,建议与 open 等参数一起使用,详见示例 + */ + default?: () => any; + + }; +}> diff --git a/types/description-list.d.ts b/types/description-list.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..900601e76ff4d34686822f600db779e6b5fa551d --- /dev/null +++ b/types/description-list.d.ts @@ -0,0 +1,56 @@ +import type { DefineComponent } from 'vue'; + +export declare const DescriptionList: DefineComponent<{ + /** + * 布局方式,可选值为 `horizontal` 或 `vertical` + */ + layout?: string; + + /** + * 列表标题 + */ + title?: string; + + /** + * 列表项间距,单位为 `px` + */ + gutter?: number; + + /** + * 指定信息最多分几列展示,最终一行几列由 col 配置结合响应式规则(见下表)决定,可选值为 `1`、`2`、`3`、`4` + */ + col?: number; + + 'v-slots'?: { + /** + * 自定义列标题 + */ + title?: () => any; + + /** + * 默认 + */ + default?: () => any; + + }; +}> + +export declare const Description: DefineComponent<{ + /** + * 列表项标题 + */ + term?: string; + + 'v-slots'?: { + /** + * 自定义列表项标题 + */ + term?: () => any; + + /** + * 默认 + */ + default?: () => any; + + }; +}> diff --git a/types/divider.d.ts b/types/divider.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..216d0741dcb76b16d57e9bad31d35a1af0e400af --- /dev/null +++ b/types/divider.d.ts @@ -0,0 +1,29 @@ +import type { DefineComponent } from 'vue'; + +export declare const Divider: DefineComponent<{ + /** + * 水平还是垂直类型,可选值为 horizontal 或 vertical + */ + type?: 'horizontal' | 'vertical'; + + /** + * 分割线标题的位置,可选值为 left、right 或 center + */ + orientation?: 'left' | 'right' | 'center'; + + /** + * 是否虚线 + */ + dashed?: boolean; + + /** + * 文字是否显示为普通正文样式 + */ + plain?: boolean; + + /** + * 尺寸,可选值为 small 或 default + */ + size?: string; + +}> diff --git a/types/drawer.d.ts b/types/drawer.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..4edf126bdaea9c2ac05ca6a47a11f2f54c879c2a --- /dev/null +++ b/types/drawer.d.ts @@ -0,0 +1,131 @@ +import type { DefineComponent } from 'vue'; + +export declare const Drawer: DefineComponent<{ + /** + * 抽屉是否显示,可使用 v-model 双向绑定数据 + */ + 'model-value'?: boolean; + + /** + * 抽屉标题,如果使用 slot 自定义了页头,则 title 无效 + */ + title?: string; + + /** + * 抽屉宽度,左、右方向时可用。当其值不大于 100 时以百分比显示,大于 100 时为像素 + */ + width?: number | string; + + /** + * 抽屉高度,上、下方向时可用。当其值不大于 100 时以百分比显示,大于 100 时为像素 + */ + height?: number | string; + + /** + * 是否显示右上角的关闭按钮 + */ + closable?: boolean; + + /** + * 是否允许点击遮罩层关闭 + */ + 'mask-closable'?: boolean; + + /** + * 是否显示遮罩层 + */ + mask?: boolean; + + /** + * 遮罩层样式 + */ + 'mask-style'?: object; + + /** + * 抽屉中间层的样式 + */ + styles?: object; + + /** + * 页面是否可以滚动 + */ + scrollable?: boolean; + + /** + * 抽屉的方向,可选值为 left、right、top、bottom + */ + placement?: 'left' | 'right' | 'top' | 'bottom'; + + /** + * 设置 Drawer 的 z-index + */ + 'z-index'?: number; + + /** + * 是否将抽屉放置于 body 内 + */ + transfer?: boolean; + + /** + * 设置抽屉容器.ivu-drawer-wrap的类名 + */ + 'class-name'?: string; + + /** + * 是否设置抽屉在某个元素内打开,开启此属性时,应当关闭 transfer 属性 + */ + inner?: boolean; + + /** + * 是否开启拖拽调整宽度 + */ + draggable?: boolean; + + /** + * 返回 Promise 可以阻止关闭 + */ + 'before-close'?: Function; + + /** + * 是否禁止对页面滚动条的修改 + */ + 'lock-scroll'?: boolean; + + /** + * 关闭抽屉时触发 + */ + onOnClose?: (event?: any) => any; + + /** + * 显示状态发生变化时触发 + */ + onOnVisibleChange?: (event?: any) => any; + + /** + * 调整宽度时触发 + */ + onOnResizeWidth?: (event?: any) => any; + + 'v-slots'?: { + /** + * 自定义标题栏 + */ + header?: () => any; + + /** + * 自定义右上角关闭内容 + */ + close?: () => any; + + /** + * 自定义调整宽度节点 + */ + trigger?: () => any; + + /** + * 抽屉主体内容 + */ + default?: () => any; + + }; +}> diff --git a/types/dropdown.d.ts b/types/dropdown.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..44d962327e01ea169c793745e6a669f2ec3a284d --- /dev/null +++ b/types/dropdown.d.ts @@ -0,0 +1,104 @@ +import type { DefineComponent } from 'vue'; + +export declare const Dropdown: DefineComponent<{ + /** + * 触发方式,可选值为 `hover`(悬停)`click`(点击)`contextMenu`(右键)`custom`(自定义),使用 custom 时,需配合 visible 一起使用 + */ + trigger?: 'hover' | 'click' | 'custom' | 'contextMenu'; + + /** + * 手动控制下拉框的显示,在 trigger = 'custom' 时使用 + */ + visible?: boolean; + + /** + * 下拉菜单出现的位置,可选值为`top`、`top-start`、`top-end`、`bottom`、`bottom-start`、`bottom-end`、`left`、`left-start`、`left-end`、`right`、`right-start`、`right-end` + */ + placement?: 'top' | 'top-start' | 'top-end' | 'bottom' | 'bottom-start' | 'bottom-end' | 'left' | 'left-start' | 'left-end' | 'right' | 'right-start' | 'right-end'; + + /** + * 是否将弹层放置于 body 内,在 Tabs、带有 fixed 的 Table 列内使用时,建议添加此属性,它将不受父级样式影响,从而达到更好的效果 + */ + transfer?: boolean; + + /** + * 开启 transfer 时,给浮层添加额外的 class 名称 + */ + 'transfer-class-name'?: string; + + /** + * 是否开启 stop-propagation + */ + 'stop-propagation'?: boolean; + + /** + * 是否开启 Popper 的 eventsEnabled 属性,开启可能会牺牲一定的性能 + */ + 'events-enabled'?: boolean; + + /** + * 设置 Popper 的 boundaries-element,比如 viewport + */ + 'boundaries-element'?: string | HTMLElement; + + /** + * 点击菜单项时触发 + */ + onOnClick?: (event?: any) => any; + + /** + * 菜单显示状态改变时调用 + */ + onOnVisibleChange?: (event?: any) => any; + + /** + * 点击外部关闭下拉菜单时触发 + */ + onOnClickoutside?: (event?: any) => any; + + 'v-slots'?: { + /** + * 主体内容 + */ + default?: () => any; + + /** + * 列表内容,一般由 `DropdownMenu` 承担 + */ + list?: () => any; + + }; +}> + +export declare const DropdownItem: DefineComponent<{ + /** + * 用来标识这一项 + */ + name?: string; + + /** + * 禁用该项 + */ + disabled?: boolean; + + /** + * 显示分割线 + */ + divided?: boolean; + + /** + * 标记该项为选中状态 + */ + selected?: boolean; + +}> + +export declare const DropdownMenu: DefineComponent<{ + 'v-slots'?: { + /** + * 默认插槽内容 + */ + default?: () => any; + + }; +}> diff --git a/types/ellipsis.d.ts b/types/ellipsis.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..4abfce043709323b898e5ea5a0afdc4ba9c2f0f3 --- /dev/null +++ b/types/ellipsis.d.ts @@ -0,0 +1,69 @@ +import type { DefineComponent } from 'vue'; + +export declare const Ellipsis: DefineComponent<{ + /** + * 文本 + */ + text?: string; + + /** + * 限制的高度 + */ + height?: number; + + /** + * 限制行数,将换算为 height。如果设置了 height,则直接使用 height 计算 + */ + lines?: number; + + /** + * 按照指定长度截取 + */ + length?: number; + + /** + * 是否将全角字符的长度视为2来计算字符串长度,适用于 length + */ + 'full-width-recognition'?: boolean; + + /** + * 是否禁用 + */ + disabled?: boolean; + + /** + * 是否开启 tooltip + */ + tooltip?: boolean; + + /** + * tooltip 的 transfer 属性 + */ + transfer?: boolean; + + /** + * tooltip 的 theme 属性,可选值为 light 或 dark + */ + theme?: string; + + /** + * tooltip 的 max-width 属性 + */ + 'max-width'?: string | number; + + /** + * tooltip 的 placement 属性 + */ + placement?: string; + + /** + * 文本全部展示的时候触发 + */ + onOnShow?: (event?: any) => any; + + /** + * 文本省略的时候触发 + */ + onOnHide?: (event?: any) => any; + +}> diff --git a/types/exception.d.ts b/types/exception.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..6861ff764e7d286d75f81429afe0b402e071a054 --- /dev/null +++ b/types/exception.d.ts @@ -0,0 +1,56 @@ +import type { DefineComponent } from 'vue'; + +export declare const Exception: DefineComponent<{ + /** + * 页面类型,可选值为 404、403、500 + */ + type?: '404' | '403' | '500' | 404 | 403 | 500; + + /** + * 标题,不填写会自动根据 type 获取 + */ + title?: string; + + /** + * 补充描述,不填写会自动根据 type 获取 + */ + desc?: string; + + /** + * 背景图片地址,不填写会自动根据 type 获取 + */ + img?: string; + + /** + * 是否显示彩色的背景图片,设置 img 时无效 + */ + 'img-color'?: boolean; + + /** + * 默认的返回按钮文本 + */ + 'back-text'?: string; + + /** + * 返回按钮的跳转地址 + */ + redirect?: string; + + 'v-slots'?: { + /** + * 自定义标题 + */ + title?: () => any; + + /** + * 自定义补充描述 + */ + desc?: () => any; + + /** + * 自定义操作区 + */ + actions?: () => any; + + }; +}> diff --git a/types/footer-toolbar.d.ts b/types/footer-toolbar.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..8e2c8f1b54cfc1aa36ffcf3f9e29d71bffcd0c8a --- /dev/null +++ b/types/footer-toolbar.d.ts @@ -0,0 +1,9 @@ +import type { DefineComponent } from 'vue'; + +export declare const FooterToolbar: DefineComponent<{ + /** + * 额外信息,向左对齐 + */ + extra?: string; + +}> diff --git a/types/form.d.ts b/types/form.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..7483c10cbb63c739fd0c6b7ae209efd5695fa117 --- /dev/null +++ b/types/form.d.ts @@ -0,0 +1,114 @@ +import type { DefineComponent } from 'vue'; + +export declare const Form: DefineComponent<{ + /** + * 表单数据对象 + */ + model?: object; + + /** + * 表单验证规则,具体配置查看 [async-validator](https://github.com/yiminghe/async-validator) + */ + rules?: object; + + /** + * 是否开启行内表单模式 + */ + inline?: boolean; + + /** + * 表单域标签的位置,可选值为 `left`、`right`、`top` + */ + 'label-position'?: 'left' | 'right' | 'top'; + + /** + * 表单域标签的宽度,所有的 FormItem 都会继承 Form 组件的 label-width 的值 + */ + 'label-width'?: number; + + /** + * 是否显示校验错误信息 + */ + 'show-message'?: boolean; + + /** + * 原生的 autocomplete 属性,可选值为 off 或 on + */ + autocomplete?: string; + + /** + * 是否隐藏所有表单项的必选标记 + */ + 'hide-required-mark'?: boolean; + + /** + * 是否自动在 label 名称后添加冒号 + */ + 'label-colon'?: boolean; + + /** + * 是否禁用该表单内的所有组件(适用于具有 disabled 属性的表单类组件) + */ + disabled?: boolean; + + /** + * 任一表单项被校验后触发,返回表单项 prop、校验状态、错误消息 + */ + onOnValidate?: (event?: any) => any; + +}> + +export declare const FormItem: DefineComponent<{ + /** + * 对应表单域 model 里的字段 + */ + prop?: string; + + /** + * 标签文本 + */ + label?: string; + + /** + * 表单域标签的的宽度 + */ + 'label-width'?: number; + + /** + * 指定原生的 label 标签的 for 属性,配合控件的 `element-id` 属性,可以点击 label 时聚焦控件。 + */ + 'label-for'?: string; + + /** + * 是否必填,如不设置,则会根据校验规则自动生成 + */ + required?: boolean; + + /** + * 表单验证规则 + */ + rules?: object | any[]; + + /** + * 表单域验证错误信息, 设置该值会使表单验证状态变为error,并显示该错误信息 + */ + error?: string; + + /** + * 是否显示校验错误信息 + */ + 'show-message'?: boolean; + + 'v-slots'?: { + /** + * 内容 + */ + default?: () => any; + + /** + * label 内容 + */ + label?: () => any; + + }; +}> diff --git a/types/global-footer.d.ts b/types/global-footer.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..249c6d64a8f84a89b81c035262e6297e3c4c3a6a --- /dev/null +++ b/types/global-footer.d.ts @@ -0,0 +1,59 @@ +import type { DefineComponent } from 'vue'; + +export declare const GlobalFooter: DefineComponent<{ + /** + * 链接数据,各项内容见下表 + */ + links?: any[]; + + /** + * 版权信息 + */ + copyright?: string; + + 'v-slots'?: { + /** + * 自定义链接区域 + */ + links?: () => any; + + /** + * 自定义版权内容 + */ + copyright?: () => any; + + }; +}> + +export declare const Links: DefineComponent<{ + /** + * 链接地址 + */ + href?: string; + + /** + * 是否新窗口打开 + */ + 'blank-target'?: boolean; + + /** + * 指定 key + */ + key?: string; + + /** + * 内容 + */ + title?: string; + + /** + * 图标 type + */ + icon?: string; + + /** + * 自定义图标 + */ + 'custom-icon'?: string; + +}> diff --git a/types/grid.d.ts b/types/grid.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..ad6278a1b46867b88e84fde6425c5d332814c711 --- /dev/null +++ b/types/grid.d.ts @@ -0,0 +1,44 @@ +import type { DefineComponent } from 'vue'; + +export declare const Grid: DefineComponent<{ + /** + * 最大支持的列数 + */ + col?: number; + + /** + * 是否宽高一致 + */ + square?: boolean; + + /** + * 内容的间距 + */ + padding?: string; + + /** + * 内容是否垂直居中,GridItem 需有高度 + */ + center?: boolean; + + /** + * 是否显示边框 + */ + border?: boolean; + + /** + * 是否开启鼠标悬停效果 + */ + hover?: boolean; + +}> + +export declare const GridItem: DefineComponent<{ + 'v-slots'?: { + /** + * 默认插槽内容 + */ + default?: () => any; + + }; +}> diff --git a/types/icon.d.ts b/types/icon.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..8bb1c549320039ac045b139af0bdaf9b6c23db8f --- /dev/null +++ b/types/icon.d.ts @@ -0,0 +1,24 @@ +import type { DefineComponent } from 'vue'; + +export declare const Icon: DefineComponent<{ + /** + * 图标的名称 + */ + type?: string; + + /** + * 图标的大小,单位是 px + */ + size?: number | string; + + /** + * 图标的颜色 + */ + color?: string; + + /** + * 自定义图标 + */ + custom?: string; + +}> diff --git a/types/image.d.ts b/types/image.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..c81ce065361d6bf9aac9000f80f5a3060f958765 --- /dev/null +++ b/types/image.d.ts @@ -0,0 +1,174 @@ +import type { DefineComponent } from 'vue'; + +export declare const Image: DefineComponent<{ + /** + * 图片地址 + */ + src?: string; + + /** + * 图片描述 + */ + alt?: string; + + /** + * 原生属性 + */ + 'referrer-policy'?: string; + + /** + * 宽度 + */ + width?: string | number; + + /** + * 高度 + */ + height?: string | number; + + /** + * 图片适配容器模式包含:`fill`,`contain`,`cover`,`none`,`scale-down` + */ + fit?: 'fill' | 'contain' | 'cover' | 'none' | 'scale-down'; + + /** + * 是否懒加载 + */ + lazy?: boolean; + + /** + * 加载容器 + */ + 'scroll-container'?: string | HTMLElement; + + /** + * 是否将弹层放置于 body 内 + */ + transfer?: boolean; + + /** + * 是否允许点击遮罩层关闭 + */ + 'mask-closable'?: boolean; + + /** + * 是否显示预览提示和遮罩 + */ + 'preview-tip'?: boolean; + + /** + * 是否图片预览 + */ + preview?: boolean; + + /** + * 图片预览列表 + */ + 'preview-list'?: any[]; + + /** + * 是否循环切换 + */ + infinite?: boolean; + + /** + * 打开预览的第一项 + */ + 'initial-index'?: number; + + /** + * 图片预览操作栏选项,按数组顺序排序 + */ + toolbar?: any[]; + + /** + * 图片加载成功 + */ + onOnLoad?: (event?: any) => any; + + /** + * 图片加载失败 + */ + onOnError?: (event?: any) => any; + + /** + * 图片预览切换 + */ + onOnSwitch?: (event?: any) => any; + + /** + * 图片预览关闭 + */ + onOnClose?: (event?: any) => any; + + /** + * 图片点击 + */ + onOnClick?: (event?: any) => any; + + 'v-slots'?: { + /** + * 自定义图片加载中 + */ + placeholder?: () => any; + + /** + * 自定义图片加载失败 + */ + error?: () => any; + + /** + * 自定义图片预览 + */ + preview?: () => any; + + }; +}> + +export declare const ImagePreview: DefineComponent<{ + /** + * 是否显示,可使用 v-model 双向绑定 + */ + 'model-value'?: boolean; + + /** + * 图片预览列表 + */ + 'preview-list'?: any[]; + + /** + * 打开预览的第一项 + */ + 'initial-index'?: number; + + /** + * 是否循环切换 + */ + infinite?: boolean; + + /** + * 是否允许点击遮罩层关闭 + */ + 'mask-closable'?: boolean; + + /** + * 是否将弹层放置于 body 内 + */ + transfer?: boolean; + + /** + * 操作栏选项,按数组顺序排序 + */ + toolbar?: any[]; + + /** + * 图片预览切换 + */ + onOnSwitch?: (event?: any) => any; + + /** + * 图片预览关闭 + */ + onOnClose?: (event?: any) => any; + +}> diff --git a/types/index.d.ts b/types/index.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..6da4b3324bca5c02d27903f8757c69cf5f55315c --- /dev/null +++ b/types/index.d.ts @@ -0,0 +1,93 @@ + +import type { App } from 'vue'; +export * from './viewuiplus.components'; + +interface ViewUIPlusGlobalOptions { + size?: string; + transfer?: boolean | string; + select?: { + arrow: string; + customArrow: string; + arrowSize: number | string; + }; + cell?: { + arrow: string; + customArrow: string; + arrowSize: number | string; + }; + menu?: { + arrow: string; + customArrow: string; + arrowSize: number | string; + }; + tree?: { + arrow: string; + customArrow: string; + arrowSize: number | string; + }; + cascader?: { + arrow: string; + customArrow: string; + arrowSize: number | string; + itemArrow: string; + customItemArrow: string; + itemArrowSize: number | string; + }; + colorPicker?: { + arrow: string; + customArrow: string; + arrowSize: number | string; + }; + datePicker?: { + icon: string; + customIcon: string; + iconSize: number | string; + }; + timePicker?: { + icon: string; + customIcon: string; + iconSize: number | string; + }; + tabs?: { + closeIcon: string; + customCloseIcon: string; + closeIconSize: number | string; + }; + modal?: { + maskClosable: boolean | string; + }; + typography?: { + copyConfig: object; + editConfig: object; + ellipsisConfig: object; + }; + space?: { + size: string | number | any[]; + }; + image?: { + toolbar: any[]; + }; +} + +interface ViewUIPlusInstallOptions extends ViewUIPlusGlobalOptions{ + locale?: any; + i18n?: any; +} + +declare module '@vue/runtime-core' { + interface ComponentCustomProperties { + $VIEWUI: ViewUIPlusGlobalOptions; + $Spin: any; + $Loading: any; + $Message: any; + $Notice: any; + $Modal: any; + $ImagePreview: any; + $Copy: any; + $ScrollIntoView: any; + $ScrollTop: any; + $Date: any; + } +} + +export const install: (app: App, options?: ViewUIPlusInstallOptions) => void; diff --git a/types/input-number.d.ts b/types/input-number.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..de8e71dc71ee1bb28522e57942d1aaf7d9b095b8 --- /dev/null +++ b/types/input-number.d.ts @@ -0,0 +1,94 @@ +import type { DefineComponent } from 'vue'; + +export declare const InputNumber: DefineComponent<{ + /** + * 最大值 + */ + max?: number; + + /** + * 最小值 + */ + min?: number; + + /** + * 当前值,可以使用 v-model 双向绑定数据 + */ + 'model-value'?: number; + + /** + * 按钮位置是否置于两侧 + */ + 'controls-outside'?: boolean; + + /** + * 每次改变的步伐,可以是小数 + */ + step?: number; + + /** + * 输入框尺寸,可选值为`large`、`small`、`default`或者不填 + */ + size?: '' | 'large' | 'small' | 'default'; + + /** + * 设置禁用状态 + */ + disabled?: boolean; + + /** + * 占位文本 + */ + placeholder?: string; + + /** + * 指定输入框展示值的格式 + */ + formatter?: Function; + + /** + * 指定从 formatter 里转换回数字的方式,和 formatter 搭配使用 + */ + parser?: Function; + + /** + * 是否设置为只读 + */ + readonly?: boolean; + + /** + * 是否可编辑 + */ + editable?: boolean; + + /** + * 数值精度 + */ + precision?: number; + + /** + * 给表单元素设置 `id`,详见 Form 用法。 + */ + 'element-id'?: string; + + /** + * 是否实时响应数据,设置为 false 时,只会在失焦时更改数据 + */ + 'active-change'?: boolean; + + /** + * 数值改变时的回调,返回当前值 + */ + onOnChange?: (event?: any) => any; + + /** + * 聚焦时触发 + */ + onOnFocus?: (event?: any) => any; + + /** + * 失焦时触发 + */ + onOnBlur?: (event?: any) => any; + +}> diff --git a/types/input.d.ts b/types/input.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..91613b3505189171eb60fbafa2ae8d37037dd9d2 --- /dev/null +++ b/types/input.d.ts @@ -0,0 +1,196 @@ +import type { DefineComponent } from 'vue'; + +export declare const Input: DefineComponent<{ + /** + * 输入框类型,可选值为 `text`、`password`、`textarea`、`url`、`email`、`date`、`number`、`tel` + */ + type?: 'text' | 'password' | 'textarea' | 'url' | 'email' | 'date' | 'number' | 'tel'; + + /** + * 绑定的值,可使用 v-model 双向绑定 + */ + 'model-value'?: string | number; + + /** + * 输入框尺寸,可选值为`large`、`small`、`default`或者不设置 + */ + size?: '' | 'large' | 'small' | 'default'; + + /** + * 占位文本 + */ + placeholder?: string; + + /** + * 是否显示清空按钮 + */ + clearable?: boolean; + + /** + * 是否显示边框 + */ + border?: boolean; + + /** + * 设置输入框为禁用状态 + */ + disabled?: boolean; + + /** + * 设置输入框为只读 + */ + readonly?: boolean; + + /** + * 最大输入长度 + */ + maxlength?: number; + + /** + * 是否显示输入字数统计,可以配合 maxlength 使用 + */ + 'show-word-limit'?: boolean; + + /** + * 是否显示切换密码图标 + */ + password?: boolean; + + /** + * 输入框尾部图标,仅在 text 类型下有效 + */ + icon?: string; + + /** + * 输入框头部图标 + */ + prefix?: string; + + /** + * 输入框尾部图标 + */ + suffix?: string; + + /** + * 是否显示为搜索型输入框 + */ + search?: boolean; + + /** + * 开启 search 时可用,是否有确认按钮,可设为按钮文字 + */ + 'enter-button'?: boolean | string; + + /** + * 文本域默认行数,仅在 textarea 类型下有效 + */ + rows?: number; + + /** + * 自适应内容高度,仅在 textarea 类型下有效,可传入对象,如 { minRows: 2, maxRows: 6 } + */ + autosize?: boolean | object; + + /** + * 将用户的输入转换为 Number 类型 + */ + number?: boolean; + + /** + * 自动获取焦点 + */ + autofocus?: boolean; + + /** + * 原生的自动完成功能 + */ + autocomplete?: string; + + /** + * 给表单元素设置 `id`,详见 Form 用法。 + */ + 'element-id'?: string; + + /** + * 原生的 spellcheck 属性 + */ + spellcheck?: boolean; + + /** + * 原生的 wrap 属性,可选值为 hard 和 soft,仅在 textarea 下生效 + */ + wrap?: 'hard' | 'soft'; + + /** + * 按下回车键时触发 + */ + onOnEnter?: (event?: any) => any; + + /** + * 设置 icon 属性后,点击图标时触发 + */ + onOnClick?: (event?: any) => any; + + /** + * 数据改变时触发 + */ + onOnChange?: (event?: any) => any; + + /** + * 输入框聚焦时触发 + */ + onOnFocus?: (event?: any) => any; + + /** + * 输入框失去焦点时触发 + */ + onOnBlur?: (event?: any) => any; + + /** + * 原生的 keyup 事件 + */ + onOnKeyup?: (event?: any) => any; + + /** + * 原生的 keydown 事件 + */ + onOnKeydown?: (event?: any) => any; + + /** + * 原生的 keypress 事件 + */ + onOnKeypress?: (event?: any) => any; + + /** + * 开启 search 时可用,点击搜索或按下回车键时触发 + */ + onOnSearch?: (event?: any) => any; + + /** + * 开启 clearable 时可用,点击清空按钮时触发 + */ + onOnClear?: (event?: any) => any; + + 'v-slots'?: { + /** + * 前置内容,仅在 text 类型下有效 + */ + prepend?: () => any; + + /** + * 后置内容,仅在 text 类型下有效 + */ + append?: () => any; + + /** + * 输入框头部图标 + */ + prefix?: () => any; + + /** + * 输入框尾部图标 + */ + suffix?: () => any; + + }; +}> diff --git a/types/layout.d.ts b/types/layout.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..0b8f9ecfcb5f54810831dd0a54599bfaa2a2061f --- /dev/null +++ b/types/layout.d.ts @@ -0,0 +1,96 @@ +import type { DefineComponent } from 'vue'; + +export declare const Sider: DefineComponent<{ + /** + * 是否收起, 可以使用 v-model来进行双向绑定 + */ + 'model-value'?: boolean; + + /** + * 触发响应式布局的断点,可选值为`xs`,`sm`,`md`,`lg`,`xl`或`xxl`,若不设此属性则不会触发响应式布局。 + */ + breakpoint?: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'xxl'; + + /** + * 宽度 + */ + width?: number; + + /** + * 是否可收起,设为`false`后,默认触发器会隐藏,且响应式布局不会触发 + */ + collapsible?: boolean; + + /** + * 收缩宽度,设置为 0 会出现特殊 trigger + */ + 'collapsed-width'?: number; + + /** + * 隐藏默认触发器 + */ + 'hide-trigger'?: boolean; + + /** + * 是否默认收起,设置了`collapsible`后设置此属性侧边栏仍会收起。 + */ + 'default-collapsed'?: boolean; + + /** + * 改变侧边栏触发器箭头方向,和改变侧边栏收起方向,当Sider在右边时可以使用。 + */ + 'reverse-arrow'?: boolean; + + /** + * 展开-收起时的回调 + */ + onOnCollapse?: (event?: any) => any; + + 'v-slots'?: { + /** + * 自定义触发器 + */ + trigger?: () => any; + + }; +}> + +export declare const Layout: DefineComponent<{ + 'v-slots'?: { + /** + * 默认插槽内容 + */ + default?: () => any; + + }; +}> + +export declare const Content: DefineComponent<{ + 'v-slots'?: { + /** + * 默认插槽内容 + */ + default?: () => any; + + }; +}> + +export declare const Footer: DefineComponent<{ + 'v-slots'?: { + /** + * 默认插槽内容 + */ + default?: () => any; + + }; +}> + +export declare const Header: DefineComponent<{ + 'v-slots'?: { + /** + * 默认插槽内容 + */ + default?: () => any; + + }; +}> diff --git a/types/list.d.ts b/types/list.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..77a18861e562cf6957d169dd87ad4ad9be333979 --- /dev/null +++ b/types/list.d.ts @@ -0,0 +1,106 @@ +import type { DefineComponent } from 'vue'; + +export declare const List: DefineComponent<{ + /** + * 是否显示边框 + */ + border?: boolean; + + /** + * 设置 ListItem 布局, 可选值为 horizontal(横排)或 vertical(竖直) + */ + 'item-layout'?: string; + + /** + * 列表头部 + */ + header?: string; + + /** + * 列表底部 + */ + footer?: string; + + /** + * 列表是否正在加载 + */ + loading?: boolean; + + /** + * 列表尺寸,可选值为 small、large、default + */ + size?: string; + + /** + * 是否展示分割线 + */ + split?: boolean; + + 'v-slots'?: { + /** + * 自定义列表头部 + */ + header?: () => any; + + /** + * 自定义列表底部 + */ + footer?: () => any; + + /** + * 自定义加载中 + */ + loading?: () => any; + + }; +}> + +export declare const ListItemMeta: DefineComponent<{ + /** + * 列表元素的图标 + */ + avatar?: string; + + /** + * 列表元素的标题 + */ + title?: string; + + /** + * 列表元素的描述内容 + */ + description?: string; + + 'v-slots'?: { + /** + * 自定义列表元素的图标 + */ + avatar?: () => any; + + /** + * 自定义列表元素的标题 + */ + title?: () => any; + + /** + * 自定义列表元素的描述内容 + */ + description?: () => any; + + }; +}> + +export declare const ListItem: DefineComponent<{ + 'v-slots'?: { + /** + * 列表操作组,根据 item-layout 的不同, 位置在卡片底部或者最右侧 + */ + action?: () => any; + + /** + * 额外内容, 通常用在 item-layout 为 vertical 的情况下, 展示右侧内容; horizontal 展示在列表元素最右侧 + */ + extra?: () => any; + + }; +}> diff --git a/types/loading-bar.d.ts b/types/loading-bar.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..c8ca44c3a29c1c1c75cbffdfb42676d98014d2dd --- /dev/null +++ b/types/loading-bar.d.ts @@ -0,0 +1,47 @@ +import type { DefineComponent } from 'vue'; + +export declare const LoadingBar: DefineComponent<{ + /** + * 开始从 0 显示进度条,并自动加载进度 + */ + start(): void; + + /** + * 结束进度条,自动补全剩余进度 + */ + finish(): void; + + /** + * 以错误的类型结束进度条,自动补全剩余进度 + */ + error(): void; + + /** + * 精确加载到指定的进度 + */ + update(percent?: number): void; + +}> + +export declare const LoadingBarConfig: { + /** + * 进度条的颜色,默认为 View UI Plus 主色 + */ + color?: string; + + /** + * 失败时的进度条颜色,默认为 View UI Plus 主色 + */ + failedColor?: string; + + /** + * 进度条高度,单位 px + */ + height?: number; + + /** + * 隐藏时的持续时间,单位 ms + */ + duration?: number; + +} diff --git a/types/login.d.ts b/types/login.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..62d9a229a6f7750ae50032b06157b584f969538d --- /dev/null +++ b/types/login.d.ts @@ -0,0 +1,164 @@ +import type { DefineComponent } from 'vue'; + +export declare const UserName: DefineComponent<{ + /** + * 默认值,设置后,初始化时会显示,`不能`使用 v-model + */ + value?: string; + + /** + * 自定义校验字段,`必填` + */ + name?: string; + + /** + * 校验规则,同 Form + */ + rules?: object | any[]; + + /** + * 是否在按下回车时提交 + */ + 'enter-to-submit'?: boolean; + + /** + * 数据改变时触发 + */ + onOnChange?: (event?: any) => any; + +}> + +export declare const Captcha: DefineComponent<{ + /** + * 设置后,需要对应 name 的表单验证过才会触发 + */ + field?: string | any[]; + + /** + * 倒计时时间,单位:秒,如果设置为 0,则不置为 disabled + */ + 'count-down'?: number; + + /** + * 按钮文案,也支持同名 slot,且 slot 优先 + */ + text?: string; + + /** + * 倒计时单位 + */ + 'unit-text'?: string; + + /** + * 返回 Promise 可以阻止点击 + */ + 'before-click'?: Function; + + /** + * 点击获取验证码时触发。 + */ + onOnGetCaptcha?: (event?: any) => any; + + 'v-slots'?: { + /** + * 自定义按钮文案,比如是图片验证码,可做到点击切换验证码 + */ + text?: () => any; + + }; +}> + +export declare const Password: DefineComponent<{ + /** + * 默认值,设置后,初始化时会显示,`不能`使用 v-model + */ + value?: string; + + /** + * 自定义校验字段,`必填` + */ + name?: string; + + /** + * 校验规则,同 Form + */ + rules?: object | any[]; + + /** + * 是否在按下回车时提交 + */ + 'enter-to-submit'?: boolean; + + /** + * 数据改变时触发 + */ + onOnChange?: (event?: any) => any; + +}> + +export declare const Email: DefineComponent<{ + /** + * 默认值,设置后,初始化时会显示,`不能`使用 v-model + */ + value?: string; + + /** + * 自定义校验字段,`必填` + */ + name?: string; + + /** + * 校验规则,同 Form + */ + rules?: object | any[]; + + /** + * 是否在按下回车时提交 + */ + 'enter-to-submit'?: boolean; + + /** + * 数据改变时触发 + */ + onOnChange?: (event?: any) => any; + +}> + +export declare const Mobile: DefineComponent<{ + /** + * 默认值,设置后,初始化时会显示,`不能`使用 v-model + */ + value?: string; + + /** + * 自定义校验字段,`必填` + */ + name?: string; + + /** + * 校验规则,同 Form + */ + rules?: object | any[]; + + /** + * 是否在按下回车时提交 + */ + 'enter-to-submit'?: boolean; + + /** + * 数据改变时触发 + */ + onOnChange?: (event?: any) => any; + +}> + +export declare const Submit: DefineComponent<{ +}> + +export declare const Login: DefineComponent<{ + /** + * 提交时触发,返回值1 valid 为 表单验证是否通过,返回值2 data 包含了指定 Login 组件的绑定值 + */ + onOnSubmit?: (event?: any) => any; + +}> diff --git a/types/menu.d.ts b/types/menu.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..2d7baf021076ec79d958fbbd7a8ebb4048fdb5f2 --- /dev/null +++ b/types/menu.d.ts @@ -0,0 +1,100 @@ +import type { DefineComponent } from 'vue'; + +export declare const Menu: DefineComponent<{ + /** + * 菜单类型,可选值为 `horizontal`(水平) 和 `vertical`(垂直) + */ + mode?: 'horizontal' | 'vertical'; + + /** + * 主题,可选值为 `light`、`dark`、`primary`,其中 primary 只适用于 `mode="horizontal"` + */ + theme?: 'light' | 'dark' | 'primary'; + + /** + * 激活菜单的 name 值 + */ + 'active-name'?: string | number; + + /** + * 展开的 Submenu 的 name 集合 + */ + 'open-names'?: any[]; + + /** + * 是否开启手风琴模式,开启后每次至多展开一个子菜单 + */ + accordion?: boolean; + + /** + * 导航菜单的宽度,只在 `mode="vertical"` 时有效,如果使用 `Col` 等布局,建议设置为 `auto` + */ + width?: string; + + /** + * 选择菜单(MenuItem)时触发 + */ + onOnSelect?: (event?: any) => any; + + /** + * 当 展开/收起 子菜单时触发 + */ + onOnOpenChange?: (event?: any) => any; + +}> + +export declare const MenuItem: DefineComponent<{ + /** + * 菜单项的唯一标识,必填 + */ + name?: string | number; + + /** + * 跳转的链接,支持 vue-router 对象 + */ + to?: string | object; + + /** + * 路由跳转时,开启 replace 将不会向 history 添加新记录 + */ + replace?: boolean; + + /** + * 相当于 a 链接的 target 属性 + */ + target?: '_blank' | '_self' | '_parent' | '_top'; + + /** + * 同 vue-router append + */ + append?: boolean; + +}> + +export declare const Submenu: DefineComponent<{ + /** + * 子菜单的唯一标识,必填 + */ + name?: string | number; + + 'v-slots'?: { + /** + * 菜单项 + */ + default?: () => any; + + /** + * 子菜单标题 + */ + title?: () => any; + + }; +}> + +export declare const MenuGroup: DefineComponent<{ + /** + * 分组标题 + */ + title?: string; + +}> diff --git a/types/message.d.ts b/types/message.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..78344dd725c94771c2b029251024f43e1a3361f0 --- /dev/null +++ b/types/message.d.ts @@ -0,0 +1,47 @@ +import type { DefineComponent } from 'vue'; + +export declare const Message: DefineComponent<{ + /** + * 提示内容 + */ + content?: string; + + /** + * 自定义描述内容,使用 Vue 的 Render 函数 + */ + render?: Function; + + /** + * 自动关闭的延时,单位秒,不关闭可以写 0 + */ + duration?: number; + + /** + * 关闭时的回调 + */ + onClose?: Function; + + /** + * 是否显示关闭按钮 + */ + closable?: boolean; + + /** + * 是否显示背景色 + */ + background?: boolean; + +}> + +export declare const MessageConfig: { + /** + * 提示组件距离顶端的距离,单位像素 + */ + top?: number; + + /** + * 默认自动关闭的延时,单位秒 + */ + duration?: number; + +} diff --git a/types/modal.d.ts b/types/modal.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..51a13b09f3f5d85b8f47da2195f6bfc413101ff2 --- /dev/null +++ b/types/modal.d.ts @@ -0,0 +1,219 @@ +import type { DefineComponent } from 'vue'; + +export declare const Modal: DefineComponent<{ + /** + * 对话框是否显示,可使用 v-model 双向绑定数据。 + */ + 'model-value'?: boolean; + + /** + * 对话框标题,如果使用 slot 自定义了页头,则 title 无效 + */ + title?: string; + + /** + * 是否显示右上角的关闭按钮,关闭后 Esc 按键也将关闭 + */ + closable?: boolean; + + /** + * 是否允许点击遮罩层关闭 + */ + 'mask-closable'?: boolean; + + /** + * 点击确定按钮时,确定按钮是否显示 loading 状态,开启则需手动设置`value`来关闭对话框 + */ + loading?: boolean; + + /** + * 页面是否可以滚动 + */ + scrollable?: boolean; + + /** + * 是否全屏显示 + */ + fullscreen?: boolean; + + /** + * 是否可以拖拽移动 + */ + draggable?: boolean; + + /** + * 拖拽时,是否吸附屏幕边缘 + */ + sticky?: boolean; + + /** + * 拖拽时,自动吸附屏幕边缘的临界距离 + */ + 'sticky-distance'?: number; + + /** + * Modal 再次打开时,是否重置拖拽的位置 + */ + 'reset-drag-position'?: boolean; + + /** + * 是否显示遮罩层,开启 draggable 时,强制不显示(4.6.0不再强制) + */ + mask?: boolean; + + /** + * 确定按钮文字 + */ + 'ok-text'?: string; + + /** + * 取消按钮文字 + */ + 'cancel-text'?: string; + + /** + * 对话框宽度,对话框的宽度是响应式的,当屏幕尺寸小于 768px 时,宽度会变为自动`auto`。当其值不大于 100 时以百分比显示,大于 100 时为像素 + */ + width?: number; + + /** + * 不显示底部 + */ + 'footer-hide'?: boolean; + + /** + * 设置浮层样式,调整浮层位置等,该属性设置的是`.ivu-modal`的样式 + */ + styles?: object; + + /** + * 设置对话框容器`.ivu-modal-wrap`的类名,可辅助实现垂直居中等自定义效果 + */ + 'class-name'?: string; + + /** + * 层级 + */ + 'z-index'?: number; + + /** + * 自定义显示动画,第一项是模态框,第二项是背景 + */ + 'transition-names'?: any[]; + + /** + * 是否将弹层放置于 body 内 + */ + transfer?: boolean; + + /** + * 是否禁止对页面滚动条的修改 + */ + 'lock-scroll'?: boolean; + + /** + * 返回 Promise 可以阻止关闭 + */ + 'before-close'?: Function; + + /** + * 点击确定的回调 + */ + onOnOk?: (event?: any) => any; + + /** + * 点击取消的回调 + */ + onOnCancel?: (event?: any) => any; + + /** + * 显示状态发生变化时触发 + */ + onOnVisibleChange?: (event?: any) => any; + + 'v-slots'?: { + /** + * 自定义页头 + */ + header?: () => any; + + /** + * 自定义页脚内容 + */ + footer?: () => any; + + /** + * 自定义右上角关闭内容 + */ + close?: () => any; + + /** + * 对话框主体内容 + */ + default?: () => any; + + }; +}> + +export declare const ModalInstance: DefineComponent<{ + /** + * 标题 + */ + title?: string | Element; + + /** + * 内容 + */ + content?: string | Element; + + /** + * 自定义内容,使用后不再限制类型, content 也无效。 + */ + render?: Function; + + /** + * 宽度,单位 px + */ + width?: number | string; + + /** + * 确定按钮的文字 + */ + okText?: string; + + /** + * 取消按钮的文字,只在`Modal.confirm()`下有效 + */ + cancelText?: string; + + /** + * 点击确定按钮时,确定按钮是否显示 loading 状态,开启则需手动调用`Modal.remove()`来关闭对话框 + */ + loading?: boolean; + + /** + * 页面是否可以滚动 + */ + scrollable?: boolean; + + /** + * 是否可以按 Esc 键关闭 + */ + closable?: boolean; + + /** + * 点击确定的回调 + */ + onOk?: Function; + + /** + * 点击取消的回调,只在`Modal.confirm()`下有效 + */ + onCancel?: Function; + + /** + * 是否禁止对页面滚动条的修改 + */ + 'lock-scroll'?: boolean; + +}> diff --git a/types/notice.d.ts b/types/notice.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..458639803b9a0d8e3052187ecfdabb036410f331 --- /dev/null +++ b/types/notice.d.ts @@ -0,0 +1,47 @@ +import type { DefineComponent } from 'vue'; + +export declare const Notice: DefineComponent<{ + /** + * 通知提醒的标题 + */ + title?: string; + + /** + * 通知提醒的内容,为空或不填时,自动应用仅标题模式下的样式 + */ + desc?: string; + + /** + * 自定义描述内容,使用 Vue 的 Render 函数,如果同时设置了 render 和 desc,则只显示 render 的内容 + */ + render?: Function; + + /** + * 自动关闭的延时,单位秒,不关闭可以写 0 + */ + duration?: number; + + /** + * 当前通知的唯一标识 + */ + name?: string; + + /** + * 关闭时的回调 + */ + onClose?: Function; + +}> + +export declare const NoticeConfig: { + /** + * 通知组件距离顶端的距离,单位像素 + */ + top?: number; + + /** + * 默认自动关闭的延时,单位秒 + */ + duration?: number; + +} diff --git a/types/notification.d.ts b/types/notification.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..32529cabfc863f38e32f64811ec72d78ad3b538a --- /dev/null +++ b/types/notification.d.ts @@ -0,0 +1,291 @@ +import type { DefineComponent } from 'vue'; + +export declare const Notification: DefineComponent<{ + /** + * 图标上的消息总数 + */ + count?: number; + + /** + * 是否根基 Tab 的 count 自动计算 count,开启,则 count 无效 + */ + 'auto-count'?: boolean; + + /** + * Tab 的 count 是纯文本显示,还是 Badge 显示,可选值为 text 或 badge + */ + 'count-type'?: string; + + /** + * 图标 (铃铛),也有同名 slot + */ + icon?: string; + + /** + * 是否将弹层放置于 body 内 + */ + transfer?: boolean; + + /** + * 弹窗的展开方向,支持 12 个方向 + */ + placement?: string; + + /** + * 额外的 Badge 配置 + */ + 'badge-props'?: object; + + /** + * 点击清空按钮后关闭通知菜单 + */ + 'clear-close'?: boolean; + + /** + * 当前显示哪一个面板,基于 Tab 的 name + */ + tab?: string; + + /** + * 开启后,宽度是100%而不是默认的300px,在移动端等环境下使用较好 + */ + wide?: boolean; + + /** + * 默认文案 + */ + locale?: object; + + /** + * 点击清空时触发,返回 tab 内容,包含 name 和 title + */ + onOnClear?: (event?: any) => any; + + /** + * 点击加载更多时触发,返回 tab 内容 + */ + onOnLoadMore?: (event?: any) => any; + + /** + * 切换页签时触发,返回 tab 内容 + */ + onOnTabChange?: (event?: any) => any; + + /** + * 点击 item 项时触发,返回 tab 和 item(其中 item 返回的是 attrs 而不是 props) + */ + onOnItemClick?: (event?: any) => any; + + /** + * 菜单显示状态改变时调用 + */ + onOnVisibleChange?: (event?: any) => any; + + 'v-slots'?: { + /** + * 自定义铃铛 + */ + icon?: () => any; + + /** + * 底部附加信息,常见有设置、查看全部等功能 + */ + extra?: () => any; + + }; +}> + +export declare const NotificationTab: DefineComponent<{ + /** + * 当前 tab 的消息总数 + */ + count?: number; + + /** + * 消息分类的页签标题,必填 + */ + title?: string; + + /** + * 当前 tab 标识 + */ + name?: string; + + /** + * 没有通知的文案 + */ + 'empty-text'?: string; + + /** + * 没有通知的图标 + */ + 'empty-image'?: string; + + /** + * 已加载完所有消息 + */ + 'loaded-all'?: boolean; + + /** + * 是否显示已加载完所有消息 + */ + 'show-loaded-all'?: boolean; + + /** + * 当前 Tab 的加载状态 + */ + loading?: boolean; + + /** + * 是否允许滚动到底部自动加载 + */ + 'scroll-to-load'?: boolean; + + /** + * 是否显示清空按钮 + */ + 'show-clear'?: boolean; + + /** + * 是否显示清空按钮前的图标 + */ + 'show-clear-icon'?: boolean; + + 'v-slots'?: { + /** + * 顶部,比如:这些人最近关注了你 + */ + top?: () => any; + + /** + * 自定义通知为空时的内容 + */ + empty?: () => any; + + /** + * 自定义加载中的内容 + */ + loading?: () => any; + + /** + * 自定义加载更多的内容 + */ + 'load-more'?: () => any; + + /** + * 自定义已完成加载的内容 + */ + 'loaded-all'?: () => any; + + /** + * 自定义清空全部的内容 + */ + clear?: () => any; + + }; +}> + +export declare const NotificationItem: DefineComponent<{ + /** + * Row 的配置,默认垂直居中 + */ + 'row-props'?: object; + + /** + * 是否已读,1 和 true 是已读,0 和 false 是未读 + */ + read?: boolean | number; + + /** + * 小图标 + */ + icon?: string; + + /** + * 自定义小图标 + */ + 'custom-icon'?: string; + + /** + * 小图标的颜色 + */ + 'icon-color'?: string; + + /** + * 小图标尺寸,可选值为 small、default、large + */ + 'icon-size'?: string; + + /** + * 头像地址 + */ + avatar?: string; + + /** + * 头像形状,可选值为 circle 或 square + */ + 'avatar-shape'?: string; + + /** + * 标题 + */ + title?: string; + + /** + * 内容 + */ + content?: string; + + /** + * 时间,会转为相对时间 + */ + time?: number | Date | string; + + /** + * 相对时间配置 + */ + 'time-props'?: object; + + /** + * 标签 + */ + tag?: string; + + /** + * 标签配置 + */ + 'tag-props'?: object; + + /** + * 点击列表项关闭通知菜单 + */ + 'click-close'?: boolean; + + /** + * 点击 item 项时触发,返回 item(item 返回的是 attrs 而不是 props) + */ + onOnItemClick?: (event?: any) => any; + + 'v-slots'?: { + /** + * 如果想完全自定义 NotificationItem 内容,可以使用默认的 slot,否则不建议覆盖此 slot 内容 + */ + default?: () => any; + + /** + * 自定义标题 + */ + title?: () => any; + + /** + * 自定义内容 + */ + content?: () => any; + + /** + * 自定义时间 + */ + time?: () => any; + + }; +}> diff --git a/types/number-info.d.ts b/types/number-info.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..b908f962d798b0d1f9be8efde1cf5dfa37d6eef7 --- /dev/null +++ b/types/number-info.d.ts @@ -0,0 +1,56 @@ +import type { DefineComponent } from 'vue'; + +export declare const NumberInfo: DefineComponent<{ + /** + * 标题 + */ + title?: string; + + /** + * 子标题 + */ + 'sub-title'?: string; + + /** + * 总量 + */ + total?: string | number; + + /** + * 子总量 + */ + 'sub-total'?: string | number; + + /** + * 增加状态,可选值为 up 或 down + */ + status?: string; + + /** + * 设置数字和描述之间的间距,单位:px + */ + gap?: string | number; + + 'v-slots'?: { + /** + * 自定义标题 + */ + title?: () => any; + + /** + * 自定义子标题 + */ + subTitle?: () => any; + + /** + * 自定义总量 + */ + total?: () => any; + + /** + * 自定义子总量 + */ + subTotal?: () => any; + + }; +}> diff --git a/types/numeral.d.ts b/types/numeral.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..82f2baea46dc1064b829cdfeab282dd29491e2b8 --- /dev/null +++ b/types/numeral.d.ts @@ -0,0 +1,41 @@ +import type { DefineComponent } from 'vue'; + +export declare const Numeral: DefineComponent<{ + /** + * 数值, 也可以直接使用 v-model + */ + 'model-value'?: number | string; + + /** + * 格式, [查看所有格式](https://run.iviewui.com/preview/d7868Je4) + */ + format?: string; + + /** + * 前缀 + */ + prefix?: string | number; + + /** + * 后缀 + */ + suffix?: string | number; + + /** + * 格式化好时触发,返回格式化后的内容 + */ + onOnChange?: (event?: any) => any; + + 'v-slots'?: { + /** + * 自定义前缀 + */ + prefix?: () => any; + + /** + * 自定义后缀 + */ + suffix?: () => any; + + }; +}> diff --git a/types/page-header.d.ts b/types/page-header.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..7dd403deedcfec7bc287f36eca6b433eb2a7d236 --- /dev/null +++ b/types/page-header.d.ts @@ -0,0 +1,101 @@ +import type { DefineComponent } from 'vue'; + +export declare const PageHeader: DefineComponent<{ + /** + * 自定义标题文字 + */ + title?: string; + + /** + * 是否显示返回按钮 + */ + back?: boolean; + + /** + * 自定义 logo + */ + logo?: string; + + /** + * 操作区,位于 title 行的行尾 + */ + action?: string; + + /** + * 内容区 + */ + content?: string; + + /** + * 额外内容区,位于 content 的右侧 + */ + extra?: string; + + /** + * 面包屑数据,可支配的属性有:to、replace、target、title,详见 View UI Plus Breadcrumb 组件。 + */ + 'breadcrumb-list'?: any[]; + + /** + * 是否关闭面包屑 + */ + 'hidden-breadcrumb'?: boolean; + + /** + * Tabs 选项卡数据,可支配属性有:label、name。 + */ + 'tab-list'?: any[]; + + /** + * 当前高亮的 tab 项 + */ + 'tab-active-key'?: string; + + /** + * 是否定宽,开启后,最大宽度为 1200px,否则自适应宽度 + */ + wide?: boolean; + + /** + * 切换 Tabs 选项卡时触发 + */ + onOnTabChange?: (event?: any) => any; + + /** + * 点击返回按钮时触发 + */ + onOnBack?: (event?: any) => any; + + 'v-slots'?: { + /** + * 自定义标题 + */ + title?: () => any; + + /** + * 自定义返回区域 + */ + back?: () => any; + + /** + * 自定义 logo + */ + logo?: () => any; + + /** + * 自定义操作区 + */ + action?: () => any; + + /** + * 自定义内容区 + */ + content?: () => any; + + /** + * 自定义额外内容区 + */ + extra?: () => any; + + }; +}> diff --git a/types/page.d.ts b/types/page.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..a64287d34ef3a44fce06ebed6b6eeac5ce817241 --- /dev/null +++ b/types/page.d.ts @@ -0,0 +1,116 @@ +import type { DefineComponent } from 'vue'; + +export declare const Page: DefineComponent<{ + /** + * 当前页码, 可以使用 v-model来进行双向绑定 + */ + 'model-value'?: number; + + /** + * 数据总数 + */ + total?: number; + + /** + * 每页条数 + */ + 'page-size'?: number; + + /** + * 每页条数切换的配置 + */ + 'page-size-opts'?: any[]; + + /** + * 条数切换弹窗的展开方向,可选值为 `bottom` 和 `top` + */ + placement?: string; + + /** + * 可选值为`small`(迷你版)、`default`(默认)或不填 + */ + size?: string; + + /** + * 简洁版 + */ + simple?: boolean; + + /** + * 显示总数 + */ + 'show-total'?: boolean; + + /** + * 显示电梯,可以快速切换到某一页 + */ + 'show-elevator'?: boolean; + + /** + * 显示分页,用来改变`page-size` + */ + 'show-sizer'?: boolean; + + /** + * 自定义 class 名称 + */ + 'class-name'?: string; + + /** + * 自定义 style 样式 + */ + styles?: object; + + /** + * 是否将弹层放置于 body 内,在 Tabs、带有 fixed 的 Table 列内使用时,建议添加此属性,它将不受父级样式影响,从而达到更好的效果 + */ + transfer?: boolean; + + /** + * 替代图标显示的上一页文字 + */ + 'prev-text'?: string; + + /** + * 替代图标显示的下一页文字 + */ + 'next-text'?: string; + + /** + * 是否禁用 + */ + disabled?: boolean; + + /** + * 是否开启 Popper 的 eventsEnabled 属性,开启可能会牺牲一定的性能 + */ + 'events-enabled'?: boolean; + + /** + * 页码改变的回调,返回改变后的页码 + */ + onOnChange?: (event?: any) => any; + + /** + * 切换每页条数时的回调,返回切换后的每页条数 + */ + onOnPageSizeChange?: (event?: any) => any; + + /** + * 切换上一页时触发,返回切换后的页码 + */ + onOnPrev?: (event?: any) => any; + + /** + * 切换下一页时触发,返回切换后的页码 + */ + onOnNext?: (event?: any) => any; + + 'v-slots'?: { + /** + * 自定义显示总数的内容 + */ + default?: () => any; + + }; +}> diff --git a/types/poptip.d.ts b/types/poptip.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..1256cf2cfe54e3771ab8f34b08011aa18bdd34e8 --- /dev/null +++ b/types/poptip.d.ts @@ -0,0 +1,126 @@ +import type { DefineComponent } from 'vue'; + +export declare const Poptip: DefineComponent<{ + /** + * 触发方式,可选值为`hover`(悬停)`click`(点击)`focus`(聚焦),在 confirm 模式下,只有 click 有效 + */ + trigger?: string; + + /** + * 显示的标题 + */ + title?: string | number; + + /** + * 显示的正文内容,只在非 confirm 模式下有效 + */ + content?: string | number; + + /** + * 提示框出现的位置,可选值为`top``top-start``top-end``bottom``bottom-start``bottom-end``left``left-start``left-end``right``right-start``right-end` + */ + placement?: 'top' | 'top-start' | 'top-end' | 'bottom' | 'bottom-start' | 'bottom-end' | 'left' | 'left-start' | 'left-end' | 'right' | 'right-start' | 'right-end'; + + /** + * 宽度,最小宽度为 150px,在 confirm 模式下,默认最大宽度为 300px + */ + width?: string | number; + + /** + * 是否开启对话框模式 + */ + confirm?: boolean; + + /** + * 是否禁用 + */ + disabled?: boolean; + + /** + * 确定按钮的文字,只在 confirm 模式下有效 + */ + 'ok-text'?: string; + + /** + * 取消按钮的文字,只在 confirm 模式下有效 + */ + 'cancel-text'?: string; + + /** + * 是否将弹层放置于 body 内,在 Tabs、带有 fixed 的 Table 列内使用时,建议添加此属性,它将不受父级样式影响,从而达到更好的效果 + */ + transfer?: boolean; + + /** + * 给 Poptip 设置 class-name,在使用 transfer 时会很有用 + */ + 'popper-class'?: string; + + /** + * 开启后,超出指定宽度文本将自动换行,并两端对齐 + */ + 'word-wrap'?: boolean; + + /** + * 自定义间距值 + */ + padding?: string; + + /** + * 出现位置的偏移量 + */ + offset?: number; + + /** + * 自定义 popper.js 的配置项,具体配置见 [popper.js 文档](https://popper.js.org/popper-documentation.html){target:"_blank"} + */ + options?: object; + + /** + * 开启 transfer 时,给浮层添加额外的 class 名称 + */ + 'transfer-class-name'?: string; + + /** + * 是否开启 Popper 的 eventsEnabled 属性,开启可能会牺牲一定的性能 + */ + 'events-enabled'?: boolean; + + /** + * 在提示框显示时触发 + */ + onOnPopperShow?: (event?: any) => any; + + /** + * 在提示框消失时触发 + */ + onOnPopperHide?: (event?: any) => any; + + /** + * 点击确定的回调,只在 confirm 模式下有效 + */ + onOnOk?: (event?: any) => any; + + /** + * 点击取消的回调,只在 confirm 模式下有效 + */ + onOnCancel?: (event?: any) => any; + + 'v-slots'?: { + /** + * 主体内容 + */ + default?: () => any; + + /** + * 提示框标题,定义此 slot 时,会覆盖 props `title` + */ + title?: () => any; + + /** + * 提示框内容,定义此 slot 时,会覆盖 props `content`,只在非 confirm 模式下有效 + */ + content?: () => any; + + }; +}> diff --git a/types/progress.d.ts b/types/progress.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..582510e862963bd6cd544f1a7b8b10455ef9af97 --- /dev/null +++ b/types/progress.d.ts @@ -0,0 +1,51 @@ +import type { DefineComponent } from 'vue'; + +export declare const Progress: DefineComponent<{ + /** + * 百分比 + */ + percent?: number; + + /** + * 状态,可选值为`normal`、`active`、`wrong`、`success` + */ + status?: 'normal' | 'active' | 'wrong' | 'success'; + + /** + * 进度条的线宽,单位 px + */ + 'stroke-width'?: number; + + /** + * 进度条的颜色,支持传入数组,显示为渐变色 + */ + 'stroke-color'?: string | any[]; + + /** + * 隐藏数值或状态图标 + */ + 'hide-info'?: boolean; + + /** + * 是否在垂直方向显示 + */ + vertical?: boolean; + + /** + * 已完成的分段百分比 + */ + 'success-percent'?: number; + + /** + * 百分比是否置于进度条内 + */ + 'text-inside'?: boolean; + + 'v-slots'?: { + /** + * 自定义显示状态内容 + */ + default?: () => any; + + }; +}> diff --git a/types/radio.d.ts b/types/radio.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..1e6f3087b15ecf2941748486c7e35f3a117daa27 --- /dev/null +++ b/types/radio.d.ts @@ -0,0 +1,77 @@ +import type { DefineComponent } from 'vue'; + +export declare const Radio: DefineComponent<{ + /** + * 只在单独使用时有效。可以使用 `v-model` 双向绑定数据 + */ + 'model-value'?: boolean; + + /** + * 只在组合使用时有效。指定当前选项的 value 值,组合会自动判断当前选择的项目 + */ + label?: string | number; + + /** + * 是否禁用当前项 + */ + disabled?: boolean; + + /** + * 单选框的尺寸,可选值为 `large`、`small`、`default` 或者不设置 + */ + size?: '' | 'large' | 'small' | 'default'; + + /** + * 是否显示边框 + */ + border?: boolean; + + /** + * 选中时的值,当使用类似 1 和 0 来判断是否选中时会很有用 + */ + 'true-value'?: string | number | boolean; + + /** + * 没有选中时的值,当使用类似 1 和 0 来判断是否选中时会很有用 + */ + 'false-value'?: string | number | boolean; + + /** + * 在选项状态发生改变时触发,返回当前状态。通过修改外部的数据改变时不会触发 + */ + onOnChange?: (event?: any) => any; + +}> + +export declare const RadioGroup: DefineComponent<{ + /** + * 指定当前选中的项目数据。可以使用 `v-model` 双向绑定数据 + */ + 'model-value'?: string | number; + + /** + * 可选值为 button 或不填,为 button 时使用按钮样式 + */ + type?: string; + + /** + * 按钮样式,可选值为 default 和 solid + */ + 'button-style'?: string; + + /** + * 尺寸,可选值为`large`、`small`、`default`或者不设置 + */ + size?: '' | 'large' | 'small' | 'default'; + + /** + * 是否垂直排列,按钮样式下无效 + */ + vertical?: boolean; + + /** + * 在选项状态发生改变时触发,返回当前选中的项。通过修改外部的数据改变时不会触发 + */ + onOnChange?: (event?: any) => any; + +}> diff --git a/types/rate.d.ts b/types/rate.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..1ace24cf003398b39d91cd253dcd698089d36bb0 --- /dev/null +++ b/types/rate.d.ts @@ -0,0 +1,54 @@ +import type { DefineComponent } from 'vue'; + +export declare const Rate: DefineComponent<{ + /** + * star 总数 + */ + count?: number; + + /** + * 当前 star 数,可以使用 v-model 双向绑定数据 + */ + 'model-value'?: number; + + /** + * 是否允许半选 + */ + 'allow-half'?: boolean; + + /** + * 是否只读,无法进行交互 + */ + disabled?: boolean; + + /** + * 是否显示提示文字 + */ + 'show-text'?: boolean; + + /** + * 是否可以取消选择 + */ + clearable?: boolean; + + /** + * 自定义字符 + */ + character?: string; + + /** + * 使用图标 + */ + icon?: string; + + /** + * 使用自定义图标 + */ + 'custom-icon'?: string; + + /** + * 评分改变时触发 + */ + onOnChange?: (event?: any) => any; + +}> diff --git a/types/result.d.ts b/types/result.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..88e9a2065f200e6042d80759a91d6249f2253ffd --- /dev/null +++ b/types/result.d.ts @@ -0,0 +1,46 @@ +import type { DefineComponent } from 'vue'; + +export declare const Result: DefineComponent<{ + /** + * 类型,不同类型自带对应的图标,可选值为 `success`、`error`、`warning` + */ + type?: 'success' | 'error' | 'warning'; + + /** + * 标题 + */ + title?: string; + + /** + * 结果描述 + */ + desc?: string; + + /** + * 补充信息,有默认的灰色背景 + */ + extra?: string; + + 'v-slots'?: { + /** + * 自定义标题 + */ + title?: () => any; + + /** + * 自定义结果描述 + */ + desc?: () => any; + + /** + * 自定义补充信息 + */ + extra?: () => any; + + /** + * 操作建议,推荐放置跳转链接,按钮组等 + */ + actions?: () => any; + + }; +}> diff --git a/types/row.d.ts b/types/row.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..9293bd96083cd8781afbfa67a26d50a251a0542d --- /dev/null +++ b/types/row.d.ts @@ -0,0 +1,97 @@ +import type { DefineComponent } from 'vue'; + +export declare const Row: DefineComponent<{ + /** + * 栅格间距,单位 px,左右平分 + */ + gutter?: number; + + /** + * flex 布局下的垂直对齐方式,可选值为 `top`、`middle`、`bottom` + */ + align?: 'top' | 'middle' | 'bottom'; + + /** + * 布局下的水平排列方式,可选值为 `start`、`end`、`center`、`space-around`、`space-between` + */ + justify?: 'start' | 'end' | 'center' | 'space-around' | 'space-between'; + + /** + * 自定义的class名称 + */ + 'class-name'?: string; + + /** + * 是否自动换行 + */ + wrap?: boolean; + +}> + +export declare const Col: DefineComponent<{ + /** + * 栅格的占位格数,可选值为0~24的整数,为 0 时,相当于 `display:none` + */ + span?: number | string; + + /** + * flex 布局属性 + */ + flex?: number | string; + + /** + * 栅格的顺序,在 `flex` 布局模式下有效 + */ + order?: number | string; + + /** + * 栅格左侧的间隔格数,间隔内不可以有栅格 + */ + offset?: number | string; + + /** + * 栅格向右移动格数 + */ + push?: number | string; + + /** + * 栅格向左移动格数 + */ + pull?: number | string; + + /** + * 自定义的class名称 + */ + 'class-name'?: string; + + /** + * `<576px` 响应式栅格,可为栅格数或一个包含其他属性的对象 + */ + xs?: string | object; + + /** + * `>=576px` 响应式栅格,可为栅格数或一个包含其他属性的对象 + */ + sm?: string | object; + + /** + * `>=768px` 响应式栅格,可为栅格数或一个包含其他属性的对象 + */ + md?: string | object; + + /** + * `>=992px` 响应式栅格,可为栅格数或一个包含其他属性的对象 + */ + lg?: string | object; + + /** + * `>=1200px` 响应式栅格,可为栅格数或一个包含其他属性的对象 + */ + xl?: string | object; + + /** + * `>=1600px` 响应式栅格,可为栅格数或一个包含其他属性的对象 + */ + xxl?: string | object; + +}> diff --git a/types/scroll.d.ts b/types/scroll.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..b6835a7662c2715f894a3115914f7770782c5261 --- /dev/null +++ b/types/scroll.d.ts @@ -0,0 +1,34 @@ +import type { DefineComponent } from 'vue'; + +export declare const Scroll: DefineComponent<{ + /** + * 滚动区域的高度,单位像素 + */ + height?: string | number; + + /** + * 加载中的文案 + */ + 'loading-text'?: string; + + /** + * 滚动至顶部时触发,需返回 Promise + */ + 'on-reach-top'?: Function; + + /** + * 滚动至底部时触发,需返回 Promise + */ + 'on-reach-bottom'?: Function; + + /** + * 滚动至顶部或底部时触发,需返回 Promise + */ + 'on-reach-edge'?: Function; + + /** + * 从边缘到触发回调的距离。如果是负的,回调将在到达边缘之前触发。值最好在 24 以下。 + */ + 'distance-to-edge'?: number | any[]; + +}> diff --git a/types/select.d.ts b/types/select.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..aa40580cf2127a6da38b97298486a45f073bfc20 --- /dev/null +++ b/types/select.d.ts @@ -0,0 +1,197 @@ +import type { DefineComponent } from 'vue'; + +export declare const Select: DefineComponent<{ + /** + * 指定选中项目的 value 值,可以使用 v-model 双向绑定数据。单选时只接受 String 或 Number,多选时只接受 Array|String | Number | Array + */ + 'model-value'?: ''; + + /** + * 是否支持多选 + */ + multiple?: boolean; + + /** + * 是否禁用 + */ + disabled?: boolean; + + /** + * 是否可以清空选项,只在单选时有效 + */ + clearable?: boolean; + + /** + * 是否支持搜索 + */ + filterable?: boolean; + + /** + * 在搜索时,是否只按照 label 进行搜索 + */ + 'filter-by-label'?: boolean; + + /** + * 远程搜索的方法 + */ + 'remote-method'?: Function; + + /** + * 当前是否正在远程搜索 + */ + loading?: boolean; + + /** + * 远程搜索中的文字提示 + */ + 'loading-text'?: string; + + /** + * 远程搜索时,显示默认 label,详见示例 + */ + 'default-label'?: string | number | any[]; + + /** + * 选择框大小,可选值为`large`、`small`、`default`或者不填 + */ + size?: '' | 'large' | 'small' | 'default'; + + /** + * 选择框默认文字 + */ + placeholder?: string; + + /** + * 当下拉列表为空时显示的内容 + */ + 'not-found-text'?: string; + + /** + * 在返回选项时,是否将 label 和 value 一并返回,默认只返回 value + */ + 'label-in-value'?: boolean; + + /** + * 弹窗的展开方向,可选值为 `top`、`bottom`、`top-start`、`bottom-start`、`top-end`、`bottom-end` + */ + placement?: 'bottom' | 'top' | 'top-start' | 'bottom-start' | 'top-end' | 'bottom-end'; + + /** + * 是否将弹层放置于 body 内,在 Tabs、带有 fixed 的 Table 列内使用时,建议添加此属性,它将不受父级样式影响,从而达到更好的效果 + */ + transfer?: boolean; + + /** + * 给表单元素设置 `id`,详见 Form 用法。 + */ + 'element-id'?: string; + + /** + * 开启 transfer 时,给浮层添加额外的 class 名称 + */ + 'transfer-class-name'?: string; + + /** + * 在 Select 内显示图标 + */ + prefix?: string; + + /** + * 多选时最多显示多少个 tag + */ + 'max-tag-count'?: number; + + /** + * 隐藏 tag 时显示的内容,参数是剩余项数量 + */ + 'max-tag-placeholder'?: Function; + + /** + * 是否允许用户创建新条目,需开启 filterable + */ + 'allow-create'?: boolean; + + /** + * 是否开启 capture 模式,也可通过全局配置 + */ + capture?: boolean; + + /** + * 是否开启 Popper 的 eventsEnabled 属性,开启可能会牺牲一定的性能 + */ + 'events-enabled'?: boolean; + + /** + * 选中的`Option`变化时触发,默认返回 value,如需返回 label,详见 label-in-value 属性 + */ + onOnChange?: (event?: any) => any; + + /** + * 搜索词改变时触发 + */ + onOnQueryChange?: (event?: any) => any; + + /** + * 点击清空按钮时触发 + */ + onOnClear?: (event?: any) => any; + + /** + * 下拉框展开或收起时触发 + */ + onOnOpenChange?: (event?: any) => any; + + /** + * 新建条目时触发 + */ + onOnCreate?: (event?: any) => any; + + /** + * 选择项目时触发 + */ + onOnSelect?: (event?: any) => any; + + /** + * 配合 default-label 使用,详见示例 + */ + onOnSetDefaultOptions?: (event?: any) => any; + + 'v-slots'?: { + /** + * 自定义 Select 内头部图标 + */ + prefix?: () => any; + + }; +}> + +export declare const Option: DefineComponent<{ + /** + * 选项值,默认根据此属性值进行筛选,必填 + */ + value?: string | number; + + /** + * 选项显示的内容,默认会读取 slot,无 slot 时,优先读取该 label 值,无 label 时,读取 value。当选中时,选择器会显示 label 为已选文案。大部分情况不需要配置此项,直接写入 slot 即可,在自定义选项时,该属性非常有用。 + */ + label?: string; + + /** + * 是否禁用当前项 + */ + disabled?: boolean; + + /** + * 设置后,在多选时,标签内容会优先显示设置的值 + */ + tag?: string | number; + +}> + +export declare const OptionGroup: DefineComponent<{ + /** + * 分组的组名 + */ + label?: string; + +}> diff --git a/types/skeleton.d.ts b/types/skeleton.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..64fb675af790eb8db262d34e0d62ec9ae1acfe2d --- /dev/null +++ b/types/skeleton.d.ts @@ -0,0 +1,84 @@ +import type { DefineComponent } from 'vue'; + +export declare const Skeleton: DefineComponent<{ + /** + * 是否展示动画效果 + */ + animated?: boolean; + + /** + * 为 true 时,显示占位,反之则直接展示子组件 + */ + loading?: boolean; + + /** + * 为 true 时,段落显示圆角 + */ + round?: boolean; + + /** + * 设置段落占位效果,为数字时,表示行数。另外,可以设置每行宽度,例如:`{ rows: 4, width: [100, 200, '300px', '50%'] }`,也可以为所有行设置相同宽度,例如:`{ rows: 4, width: 300 }` + */ + paragraph?: number | object; + + /** + * 是否显示标题占位,同时可以设置标题宽度,例如:`{ width: '100px' }` + */ + title?: boolean | object; + + /** + * 是否显示头像占位,同时可以设置头像的类型和尺寸,例如:`{ type: 'square', size: 'large' }`,`type` 可选值有:`circle`、`square`,`size` 可选值有:`small`、`large`、`default` + */ + avatar?: boolean | object; + + 'v-slots'?: { + /** + * 骨架屏消失后要渲染的内容 + */ + default?: () => any; + + /** + * 自定义渲染骨架屏 + */ + template?: () => any; + + }; +}> + +export declare const SkeletonItem: DefineComponent<{ + /** + * 是否展示动画效果 + */ + animated?: boolean; + + /** + * 指定占位的类型,可选的值有:`circle`、`square`、`rect`、`image` + */ + type?: 'circle' | 'square' | 'rect' | 'image'; + + /** + * 设置占位的尺寸,可选值有:`small`、`large`、`default` + */ + size?: 'small' | 'large' | 'default'; + + /** + * 设置占位的宽度,当 `type` 为 `rect` 或 `image` 时有效 + */ + width?: string | number; + + /** + * 设置占位的高度,当 `type` 为 `rect` 或 `image` 时有效 + */ + height?: string | number; + + /** + * 是否独占一行 + */ + block?: boolean; + + /** + * 设置占位的背景图,当 `type` 为 `image` 时有效 + */ + 'img-src'?: string; + +}> diff --git a/types/slider.d.ts b/types/slider.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..6e054b3d560e162d04fb8ae0e11f66f7d5ea396e --- /dev/null +++ b/types/slider.d.ts @@ -0,0 +1,79 @@ +import type { DefineComponent } from 'vue'; + +export declare const Slider: DefineComponent<{ + /** + * 滑块选定的值,可以使用 v-model 双向绑定数据。普通模式下,数据格式为数字,在双滑块模式下,数据格式为长度是2的数组,且每项都为数字 + */ + 'model-value'?: number | any[]; + + /** + * 最小值 + */ + min?: number; + + /** + * 最大值 + */ + max?: number; + + /** + * 步长,取值建议能被(max - min)整除 + */ + step?: number; + + /** + * 是否禁用滑块 + */ + disabled?: boolean; + + /** + * 是否开启双滑块模式 + */ + range?: boolean; + + /** + * 是否显示数字输入框,仅在单滑块模式下有效 + */ + 'show-input'?: boolean; + + /** + * 是否显示间断点,建议在 step 不密集时使用 + */ + 'show-stops'?: boolean; + + /** + * 提示的显示控制,可选值为 `hover`(悬停,默认)、`always`(总是可见)、`never`(不可见) + */ + 'show-tip'?: string; + + /** + * Slider 会把当前值传给 `tip-format`,并在 Tooltip 中显示 tip-format 的返回值,若为 null,则隐藏 Tooltip + */ + 'tip-format'?: Function; + + /** + * 数字输入框的尺寸,可选值为`large`、`small`、`default`或者不填,仅在开启 show-input 时有效 + */ + 'input-size'?: '' | 'large' | 'small' | 'default'; + + /** + * 同 InputNumber 的 active-change + */ + 'active-change'?: boolean; + + /** + * 标记, key 的类型必须为 number 且取值在闭区间 [min, max] 内,每个标记可以单独设置样式 + */ + marks?: object; + + /** + * 在松开滑动时触发,返回当前的选值,在滑动过程中不会触发 + */ + onOnChange?: (event?: any) => any; + + /** + * 滑动条数据变化时触发,返回当前的选值,在滑动过程中实时触发 + */ + onOnInput?: (event?: any) => any; + +}> diff --git a/types/space.d.ts b/types/space.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..7388b05458b7b5165b24463d2371f939cd5099e6 --- /dev/null +++ b/types/space.d.ts @@ -0,0 +1,46 @@ +import type { DefineComponent } from 'vue'; + +export declare const Space: DefineComponent<{ + /** + * 间距大小,当类型为 `String` 时,可选值有:`small`、`large`、`default` + */ + size?: 'small' | 'large' | 'default' | number | []; + + /** + * 布局方向,可选值有:`horizontal`、`vertical` + */ + direction?: 'horizontal' | 'vertical'; + + /** + * 对齐方式,可选值有:`start`、`end`、`center`、`baseline`、`stretch` + */ + align?: 'start' | 'end' | 'center' | 'baseline' | 'stretch'; + + /** + * 是否自动换行 + */ + wrap?: boolean; + + /** + * 是否显示分隔符,值为 true 时显示默认的分隔符 + */ + split?: boolean; + + /** + * Flex 布局类型,可选值有:`inline-flex`、`flex`,值为 `flex` 时,`align` 的默认值为 `stretch` + */ + type?: 'inline-flex' | 'flex'; + + 'v-slots'?: { + /** + * 需要添加间距的元素 + */ + default?: () => any; + + /** + * 自定义分隔符 + */ + split?: () => any; + + }; +}> diff --git a/types/spin.d.ts b/types/spin.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..36d8b0552a28aa780f079b0bfc27c8d08df61e3c --- /dev/null +++ b/types/spin.d.ts @@ -0,0 +1,26 @@ +import type { DefineComponent } from 'vue'; + +export declare const Spin: DefineComponent<{ + /** + * 用于动画控制显/隐 + */ + show?: boolean; + + /** + * Spin尺寸,可选值为`large`和`small`或者不设置 + */ + size?: '' | 'large' | 'small'; + + /** + * 是否固定,需要父级有`relative`或`absolute` + */ + fix?: boolean; + + 'v-slots'?: { + /** + * 自定义 Spin 的内容,设置slot后,默认的样式不生效 + */ + default?: () => any; + + }; +}> diff --git a/types/split.d.ts b/types/split.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..5857d053bb414f8a395d9ec035819e3ff920dd7a --- /dev/null +++ b/types/split.d.ts @@ -0,0 +1,66 @@ +import type { DefineComponent } from 'vue'; + +export declare const Split: DefineComponent<{ + /** + * 面板位置,可以是 0~1 代表百分比,或具体数值的像素,可用 v-model 双向绑定 + */ + 'model-value'?: number | string; + + /** + * 类型,可选值为 horizontal 或 vertical + */ + mode?: 'horizontal' | 'vertical'; + + /** + * 最小阈值 + */ + min?: number | string; + + /** + * 最大阈值 + */ + max?: number | string; + + /** + * 拖拽开始 + */ + onOnMoveStart?: (event?: any) => any; + + /** + * 拖拽中 + */ + onOnMoving?: (event?: any) => any; + + /** + * 拖拽结束 + */ + onOnMoveEnd?: (event?: any) => any; + + 'v-slots'?: { + /** + * mode 为 horizontal 时可用,左边面板 + */ + left?: () => any; + + /** + * mode 为 horizontal 时可用,右边面板 + */ + right?: () => any; + + /** + * mode 为 vertical 时可用,上边面板 + */ + top?: () => any; + + /** + * mode 为 vertical 时可用,下边面板 + */ + bottom?: () => any; + + /** + * 自定义分割拖拽节点 + */ + trigger?: () => any; + + }; +}> diff --git a/types/steps.d.ts b/types/steps.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..6e8d961139bfa693304ad413bb3ea95c207ee0e9 --- /dev/null +++ b/types/steps.d.ts @@ -0,0 +1,64 @@ +import type { DefineComponent } from 'vue'; + +export declare const Steps: DefineComponent<{ + /** + * 当前步骤,从 0 开始计数 + */ + current?: number; + + /** + * 当前步骤的状态,可选值为`wait`、`process`、`finish`、`error` + */ + status?: 'wait' | 'process' | 'finish' | 'error'; + + /** + * 步骤条的尺寸,可选值为`small`或者不写 + */ + size?: '' | 'small'; + + /** + * 步骤条的方向,可选值为`horizontal`(水平)或`vertical`(垂直) + */ + direction?: 'horizontal' | 'vertical'; + + 'v-slots'?: { + /** + * 自定义 title + */ + title?: () => any; + + /** + * 自定义 content + */ + content?: () => any; + + /** + * 自定义 icon + */ + icon?: () => any; + + }; +}> + +export declare const Step: DefineComponent<{ + /** + * 步骤的状态,可选值为`wait`、`process`、`finish`、`error`,不设置时自动判断 + */ + status?: string; + + /** + * 标题 + */ + title?: string; + + /** + * 步骤的详细描述,可选 + */ + content?: string; + + /** + * 步骤的图标,可选 + */ + icon?: string; + +}> diff --git a/types/switch.d.ts b/types/switch.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..e0edbcaff3e4edc5a9ca6639aebffe3f604ae8d3 --- /dev/null +++ b/types/switch.d.ts @@ -0,0 +1,66 @@ +import type { DefineComponent } from 'vue'; + +export declare const Switch: DefineComponent<{ + /** + * 指定当前是否选中,可以使用 v-model 双向绑定数据 + */ + 'model-value'?: boolean; + + /** + * 开关的尺寸,可选值为`large`、`small`、`default`或者不写。建议开关如果使用了2个汉字的文字,使用 large。 + */ + size?: '' | 'large' | 'small' | 'default'; + + /** + * 禁用开关 + */ + disabled?: boolean; + + /** + * 选中时的值,当使用类似 1 和 0 来判断是否选中时会很有用 + */ + 'true-value'?: string | number | boolean; + + /** + * 没有选中时的值,当使用类似 1 和 0 来判断是否选中时会很有用 + */ + 'false-value'?: string | number | boolean; + + /** + * 自定义打开时的背景色 + */ + 'true-color'?: string; + + /** + * 自定义关闭时的背景色 + */ + 'false-color'?: string; + + /** + * 返回 Promise 可以阻止切换 + */ + 'before-change'?: Function; + + /** + * 加载中的开关 + */ + loading?: boolean; + + /** + * 开关变化时触发,返回当前的状态 + */ + onOnChange?: (event?: any) => any; + + 'v-slots'?: { + /** + * 自定义显示打开时的内容 + */ + open?: () => any; + + /** + * 自定义显示关闭时的内容 + */ + close?: () => any; + + }; +}> diff --git a/types/table-paste.d.ts b/types/table-paste.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..385dd0be304d593603f70c941b9bad534316f1d6 --- /dev/null +++ b/types/table-paste.d.ts @@ -0,0 +1,46 @@ +import type { DefineComponent } from 'vue'; + +export declare const TablePaste: DefineComponent<{ + /** + * 组件默认为左右结构,左边输入框,右边显示表格,如果想自定义输入框 (即使用 slot) 时,需设置该值 + */ + value?: string; + + /** + * 是否隐藏右侧表格,开启后,只会显示输入框,这时用户可以根据事件自己渲染 Table + */ + 'hide-table'?: boolean; + + /** + * 代理的 Input props + */ + 'input-props'?: object; + + /** + * 代理的 Table props + */ + 'table-props'?: object; + + /** + * 输入框内容变化时触发,返回内容 + */ + onOnChange?: (event?: any) => any; + + /** + * 表格渲染正确时触发,返回表格数据 tableData (含 columns 和 data) + */ + onOnSuccess?: (event?: any) => any; + + /** + * 表格渲染错误时触发,返回表格数据 tableData (含 columns 和 data) 及 错误行序号 errorIndex (从 1 计数) + */ + onOnError?: (event?: any) => any; + + 'v-slots'?: { + /** + * 默认为普通输入框,如果想使用其它输入控件,比如 [codemirror](https://codemirror.net/) 或 [Ace](https://ace.c9.io/),可以自定义 slot,这时需传入 value 属性 + */ + default?: () => any; + + }; +}> diff --git a/types/table.d.ts b/types/table.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..fa5a7865fda66c5735ec4551a175fe09a31a2ec1 --- /dev/null +++ b/types/table.d.ts @@ -0,0 +1,399 @@ +import type { DefineComponent } from 'vue'; + +export declare const Table: DefineComponent<{ + /** + * 显示的结构化数据,其中,字段 cellClassName 用于设置任意单元格的样式名称,因此数据不能使用该字段,详见示例**特定样式**。 + */ + data?: any[]; + + /** + * 表格列的配置描述,具体项见后文 + */ + columns?: any[]; + + /** + * 是否显示间隔斑马纹 + */ + stripe?: boolean; + + /** + * 是否显示纵向边框 + */ + border?: boolean; + + /** + * 是否显示表头 + */ + 'show-header'?: boolean; + + /** + * 表格宽度,单位 px + */ + width?: number | string; + + /** + * 表格高度,单位 px,设置后,如果表格内容大于此值,会固定表头 + */ + height?: number | string; + + /** + * 表格最大高度,单位 px,设置后,如果表格内容大于此值,会固定表头 + */ + 'max-height'?: number | string; + + /** + * 表格是否加载中 + */ + loading?: boolean; + + /** + * 禁用鼠标悬停时的高亮 + */ + 'disabled-hover'?: boolean; + + /** + * 是否支持高亮选中的行,即单选 + */ + 'highlight-row'?: boolean; + + /** + * 行的 className 的回调方法,传入参数:`row`:当前行数据 `index`:当前行的索引 + */ + 'row-class-name'?: Function; + + /** + * 表格尺寸,可选值为 `large`、`small`、`default` 或者不填 + */ + size?: string; + + /** + * 数据为空时显示的提示内容 + */ + 'no-data-text'?: string; + + /** + * 筛选数据为空时显示的提示内容 + */ + 'no-filtered-data-text'?: string; + + /** + * 是否开启拖拽调整行顺序,需配合 @on-drag-drop 事件使用 + */ + draggable?: boolean; + + /** + * 列使用 tooltip 时,配置它的主题,可选值为 dark 或 light + */ + 'tooltip-theme'?: string; + + /** + * 列使用 tooltip 时,配置 Tooltip 的最大宽,默认是 300 + */ + 'tooltip-max-width'?: number; + + /** + * 是否强制使用内置的 row-key,开启后可能会影响性能 + */ + 'row-key'?: boolean | string; + + /** + * 合并行或列的计算方法 + */ + 'span-method'?: Function; + + /** + * 是否在表尾显示合计行 + */ + 'show-summary'?: boolean; + + /** + * 合计行第一列的文本 + */ + 'sum-text'?: string; + + /** + * 自定义的合计计算方法 + */ + 'summary-method'?: Function; + + /** + * 树形数据缩进宽度,单位 px + */ + 'indent-size'?: number; + + /** + * 异步加载树形数据的方法,详见示例 + */ + 'load-data'?: Function; + + /** + * 展开树形数据时,是否需要更新 `_showChildren` 字段,使用异步树形数据时建议开启 + */ + 'update-show-children'?: boolean; + + /** + * 当前行点击右键是否会阻止默认行为 + */ + 'context-menu'?: boolean; + + /** + * 点击右键弹出菜单,需配合 slot `contextMenu` 一起使用,详见示例 + */ + 'show-context-menu'?: boolean; + + /** + * 列固定时,阴影显示规则,可选值为 `auto`、`show`、`hide` + */ + 'fixed-shadow'?: string; + + /** + * 点击右键菜单项是否自动关闭右键菜单 + */ + 'auto-close-contextmenu'?: boolean; + + /** + * 开启 `highlight-row` 后有效,当表格的当前行发生变化的时候会触发 + */ + onOnCurrentChange?: (event?: any) => any; + + /** + * 在多选模式下有效,选中某一项时触发 + */ + onOnSelect?: (event?: any) => any; + + /** + * 在多选模式下有效,取消选中某一项时触发 + */ + onOnSelectCancel?: (event?: any) => any; + + /** + * 在多选模式下有效,点击全选时触发 + */ + onOnSelectAll?: (event?: any) => any; + + /** + * 在多选模式下有效,点击取消全选时触发 + */ + onOnSelectAllCancel?: (event?: any) => any; + + /** + * 在多选模式下有效,只要选中项发生变化时就会触发 + */ + onOnSelectionChange?: (event?: any) => any; + + /** + * 排序时有效,当点击排序时触发 + */ + onOnSortChange?: (event?: any) => any; + + /** + * 筛选时有效,筛选条件发生变化时触发 + */ + onOnFilterChange?: (event?: any) => any; + + /** + * 单击某一行时触发 + */ + onOnRowClick?: (event?: any) => any; + + /** + * 双击某一行时触发 + */ + onOnRowDblclick?: (event?: any) => any; + + /** + * 点击单元格时触发 + */ + onOnCellClick?: (event?: any) => any; + + /** + * 展开或收起某一行时触发 + */ + onOnExpand?: (event?: any) => any; + + /** + * 拖拽排序松开时触发,返回置换的两行数据索引 + */ + onOnDragDrop?: (event?: any) => any; + + /** + * 拖拽调整列宽时触发 + */ + onOnColumnWidthResize?: (event?: any) => any; + + /** + * 当前行点击右键时触发 + */ + onOnContextmenu?: (event?: any) => any; + + /** + * 展开或收起子数据时触发 + */ + onOnExpandTree?: (event?: any) => any; + + 'v-slots'?: { + /** + * 表头 + */ + header?: () => any; + + /** + * 页脚 + */ + footer?: () => any; + + /** + * 加载中 + */ + loading?: () => any; + + /** + * 右键菜单,详见示例 + */ + contextMenu?: () => any; + + }; +}> + +export declare const TableColumnConfig: { + /** + * 列类型,可选值为 index、selection、expand、html + */ + type?: 'index' | 'selection' | 'expand' | 'html'; + + /** + * 列头显示文字 + */ + title?: string; + + /** + * 对应列内容的字段名 + */ + key?: string; + + /** + * 列宽 + */ + width?: number; + + /** + * 最小列宽 + */ + minWidth?: number; + + /** + * 最大列宽 + */ + maxWidth?: number; + + /** + * 对齐方式,可选值为 `left` 左对齐、`right` 右对齐和 `center` 居中对齐 + */ + align?: 'left' | 'right' | 'center'; + + /** + * 列的样式名称 + */ + className?: string; + + /** + * 列是否固定在左侧或者右侧,可选值为 `left` 左侧和 `right` 右侧 + */ + fixed?: 'left' | 'right'; + + /** + * 开启后,文本将不换行,超出部分显示为省略号 + */ + ellipsis?: boolean; + + /** + * 开启后,文本将不换行,超出部分显示为省略号,并用 Tooltip 组件显示完整内容 + */ + tooltip?: boolean; + + /** + * 配置 Tooltip 的主题,可选值为 dark 或 light + */ + tooltipTheme?: string; + + /** + * 配置 Tooltip 的最大宽,默认是 300 + */ + tooltipMaxWidth?: number; + + /** + * 自定义渲染列,使用 Vue 的 Render 函数。传入两个参数,第一个是 h,第二个为对象,包含 row、column 和 index,分别指当前行数据,当前列数据,当前行索引,详见示例。 + */ + render?: Function; + + /** + * 自定义列头显示内容,使用 Vue 的 Render 函数。传入两个参数,第一个是 h,第二个为对象,包含 `column` 和 `index`,分别为当前列数据和当前列索引。 + */ + renderHeader?: Function; + + /** + * type 为 index 时可用,自定义序号 + */ + indexMethod?: Function; + + /** + * 对应列是否可以排序,如果设置为 `custom`,则代表用户希望远程排序,需要监听 Table 的 on-sort-change 事件 + */ + sortable?: boolean | 'custom'; + + /** + * 自定义排序使用的方法,接收三个参数 a 、 b 和 type,当设置 `sortable: true` 时有效。type 值为 asc 和 desc + */ + sortMethod?: Function; + + /** + * 设置初始化排序。值为 asc 和 desc + */ + sortType?: 'asc' | 'desc'; + + /** + * 过滤数据的选项,格式为数组,数组中每项包含 `label` 和 `value` 属性,使用过滤,必须同时配置 filterMethod + */ + filters?: any[]; + + /** + * 数据过滤使用的方法,如果是多选的筛选项,对每一条数据会执行多次,任意一次返回 true 就会显示 + */ + filterMethod?: Function; + + /** + * 数据过滤的选项是否多选 + */ + filterMultiple?: boolean; + + /** + * 在初始化时使用过滤,数组,值为需要过滤的 value 集合 + */ + filteredValue?: any[]; + + /** + * 使用远程过滤 + */ + filterRemote?: Function; + + /** + * 表头分组 + */ + children?: any[]; + + /** + * 该列是否允许拖拽调整宽度,需开启 border 属性,且设置 width + */ + resizable?: boolean; + + /** + * 指定该列为显示展开/收起图标,树形数据时使用 + */ + tree?: boolean; + + /** + * 使用 slot 自定义列时,列的渲染模式。可选值为 block、inline、inline-block,当使用树形数据时,建议使用 inline 或 inline-block + */ + display?: string; + +} diff --git a/types/tabs.d.ts b/types/tabs.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..e63fcc76db113a770e21471bee6e9e063cfa0ada --- /dev/null +++ b/types/tabs.d.ts @@ -0,0 +1,129 @@ +import type { DefineComponent } from 'vue'; + +export declare const Tabs: DefineComponent<{ + /** + * 当前激活 tab 面板的 name,可以使用 v-model 双向绑定数据 + */ + 'model-value'?: string; + + /** + * 页签的基本样式,可选值为 `line` 和 `card` + */ + type?: 'line' | 'card'; + + /** + * 尺寸,可选值为 `default` 和 `small`,仅在 `type="line"` 时有效 + */ + size?: 'default' | 'small'; + + /** + * 是否可以关闭页签,仅在 `type="card"` 时有效 + */ + closable?: boolean; + + /** + * 是否使用 CSS3 动画 + */ + animated?: boolean; + + /** + * Tabs 内的表单类组件是否自动获得焦点 + */ + 'capture-focus'?: boolean; + + /** + * 关闭前的函数,返回 Promise 可阻止标签关闭 + */ + 'before-remove'?: Function; + + /** + * 当嵌套使用 Tabs,指定 name 区分层级 + */ + name?: string; + + /** + * 开启可配合事件 @on-drag-drop 实现拖拽调整页签顺序,详见示例 + */ + draggable?: boolean; + + /** + * 点击右键菜单项是否自动关闭右键菜单 + */ + 'auto-close-contextmenu'?: boolean; + + /** + * tab 被点击时触发 + */ + onOnClick?: (event?: any) => any; + + /** + * tab 被关闭时触发 + */ + onOnTabRemove?: (event?: any) => any; + + /** + * 当前页签点击右键时触发 + */ + onOnContextmenu?: (event?: any) => any; + + /** + * 拖拽调整页签顺序时触发 + */ + onOnDragDrop?: (event?: any) => any; + + 'v-slots'?: { + /** + * 附加内容 + */ + extra?: () => any; + + /** + * 右键菜单,详见示例 + */ + contextMenu?: () => any; + + }; +}> + +export declare const TabPane: DefineComponent<{ + /** + * 用于标识当前面板,对应 value,默认为其索引值 + */ + name?: string; + + /** + * 选项卡头显示文字,支持 Render 函数。 + */ + label?: string | Function; + + /** + * 选项卡图标 + */ + icon?: string; + + /** + * 是否禁用该选项卡 + */ + disabled?: boolean; + + /** + * 是否可以关闭页签,仅在 `type="card"` 时有效 + */ + closable?: boolean; + + /** + * 当嵌套使用 Tabs,设置该属性指向对应 Tabs 的 name 字段 + */ + tab?: string; + + /** + * 在 TabPane 使用 v-if 时,并不会按照预先的顺序渲染,这时可设置 index,并从小到大排序(需大于 0) + */ + index?: number; + + /** + * 是否支持右键菜单 + */ + 'context-menu'?: boolean; + +}> diff --git a/types/tag-select.d.ts b/types/tag-select.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..c1be5c18b9dfa058a7e41a940f53d88f2f4f6c71 --- /dev/null +++ b/types/tag-select.d.ts @@ -0,0 +1,47 @@ +import type { DefineComponent } from 'vue'; + +export declare const TagSelect: DefineComponent<{ + /** + * 指定选中项目的 value 值,可以使用 v-model 双向绑定数据。 + */ + 'model-value'?: any[]; + + /** + * 是否显示 `展开/收起` 按钮 + */ + expandable?: boolean; + + /** + * 隐藏 `全部` 按钮 + */ + 'hide-check-all'?: boolean; + + /** + * 文案配置 + */ + locale?: object; + + /** + * 选项变化时触发,返回已选项 name 集合和当前项 name + */ + onOnChange?: (event?: any) => any; + + /** + * 全选状态变化时触发,返回全选状态 + */ + onOnCheckedAll?: (event?: any) => any; + +}> + +export declare const TagSelectOption: DefineComponent<{ + /** + * 标签 name,必填 + */ + name?: string | number; + + /** + * Tag 的颜色,同 View UI Plus Tag 组件的 color + */ + color?: string; + +}> diff --git a/types/tag.d.ts b/types/tag.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..342263f4d1b8e3b76932df0fd14b9d36f923b218 --- /dev/null +++ b/types/tag.d.ts @@ -0,0 +1,49 @@ +import type { DefineComponent } from 'vue'; + +export declare const Tag: DefineComponent<{ + /** + * 标签是否可以关闭 + */ + closable?: boolean; + + /** + * 标签是否可以选择 + */ + checkable?: boolean; + + /** + * 标签的选中状态 + */ + checked?: boolean; + + /** + * 标签的样式类型,可选值为 `border`、`dot`或不填 + */ + type?: '' | 'border' | 'dot'; + + /** + * 标签颜色,预设颜色值为`default`、`primary`、`success`、`warning`、`error`、`blue`、`green`、`red`、`yellow`、`pink`、`magenta`、`volcano`、`orange`、`gold`、`lime`、`cyan`、`geekblue`、`purple`,你也可以自定义颜色值。 + */ + color?: 'default' | 'primary' | 'success' | 'warning' | 'error' | 'blue' | 'green' | 'red' | 'yellow' | 'pink' | 'magenta' | 'volcano' | 'orange' | 'gold' | 'lime' | 'cyan' | 'geekblue' | 'purple'; + + /** + * 当前标签的名称,使用 v-for,并支持关闭时,会比较有用 + */ + name?: string | number; + + /** + * 尺寸,可选值为 large、medium、default + */ + size?: string; + + /** + * 关闭时触发 + */ + onOnClose?: (event?: any) => any; + + /** + * 切换选中状态时触发 + */ + onOnChange?: (event?: any) => any; + +}> diff --git a/types/time-picker.d.ts b/types/time-picker.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..73c3a7ea860ef749fa04331fb451713c0c30829b --- /dev/null +++ b/types/time-picker.d.ts @@ -0,0 +1,126 @@ +import type { DefineComponent } from 'vue'; + +export declare const TimePicker: DefineComponent<{ + /** + * 显示类型,可选值为 `time`、`timerange` + */ + type?: 'time' | 'timerange'; + + /** + * 时间,可以是 JavaScript 的 Date,例如 **new Date()** ,也可以是标准的时间格式,注意:model-value 使用 v-model 时,值是 Date 类型,可以配合 @on-change 使用 + */ + 'model-value'?: Date; + + /** + * 展示的时间格式 + */ + format?: Date; + + /** + * 下拉列表的时间间隔,数组的三项分别对应小时、分钟、秒。例如设置为 [1, 15] 时,分钟会显示:00、15、30、45。 + */ + steps?: any[]; + + /** + * 时间选择器出现的位置,可选值为`top` `top-start` `top-end` `bottom` `bottom-start` `bottom-end` `left` `left-start` `left-end` `right` `right-start` `right-end` + */ + placement?: 'top' | 'top-start' | 'top-end' | 'bottom' | 'bottom-start' | 'bottom-end' | 'left' | 'left-start' | 'left-end' | 'right' | 'right-start' | 'right-end'; + + /** + * 占位文本 + */ + placeholder?: string; + + /** + * 是否显示底部控制栏 + */ + confirm?: boolean; + + /** + * 手动控制时间选择器的显示状态,true 为显示,false 为收起。使用该属性后,选择器不会主动关闭。建议配合 slot 及 confirm 和相关事件一起使用 + */ + open?: boolean; + + /** + * 尺寸,可选值为`large`、`small`、`default`或者不设置 + */ + size?: '' | 'large' | 'small' | 'default'; + + /** + * 是否禁用选择器 + */ + disabled?: boolean; + + /** + * 是否显示清除按钮 + */ + clearable?: boolean; + + /** + * 完全只读,开启后不会弹出选择器,只在没有设置 open 属性下生效 + */ + readonly?: boolean; + + /** + * 文本框是否可以输入,只在没有使用 slot 时有效 + */ + editable?: boolean; + + /** + * 是否将弹层放置于 body 内,在 Tabs、带有 fixed 的 Table 列内使用时,建议添加此属性,它将不受父级样式影响,从而达到更好的效果 + */ + transfer?: boolean; + + /** + * 给表单元素设置 `id`,详见 Form 用法。 + */ + 'element-id'?: string; + + /** + * 两个日期间的分隔符 + */ + separator?: string; + + /** + * 是否开启 capture 模式,也可通过全局配置 + */ + capture?: boolean; + + /** + * 开启 transfer 时,给浮层添加额外的 class 名称 + */ + 'transfer-class-name'?: string; + + /** + * 是否开启 Popper 的 eventsEnabled 属性,开启可能会牺牲一定的性能 + */ + 'events-enabled'?: boolean; + + /** + * 时间发生变化时触发 + */ + onOnChange?: (event?: any) => any; + + /** + * 弹出浮层和关闭浮层时触发 + */ + onOnOpenChange?: (event?: any) => any; + + /** + * 点击确定按钮时触发 + */ + onOnOk?: (event?: any) => any; + + /** + * 在清空日期时触发 + */ + onOnClear?: (event?: any) => any; + + 'v-slots'?: { + /** + * 自定义选择器的显示内容,建议与 open 等参数一起使用,详见示例 + */ + default?: () => any; + + }; +}> diff --git a/types/time.d.ts b/types/time.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..9a47c141581c4647b5456177bda53e4ddceb3ea2 --- /dev/null +++ b/types/time.d.ts @@ -0,0 +1,24 @@ +import type { DefineComponent } from 'vue'; + +export declare const Time: DefineComponent<{ + /** + * 需要对比的时间,可以是时间戳或 Date 类型 + */ + time?: number | Date | string; + + /** + * 类型,可选值为 relative、date 或 datetime + */ + type?: 'relative' | 'date' | 'datetime'; + + /** + * 自动更新的间隔,单位:秒 + */ + interval?: number; + + /** + * 填写该值,点击会定位锚点 + */ + hash?: string; + +}> diff --git a/types/timeline.d.ts b/types/timeline.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..a0ac4475b4773611b88e44e8dbfc218348835802 --- /dev/null +++ b/types/timeline.d.ts @@ -0,0 +1,29 @@ +import type { DefineComponent } from 'vue'; + +export declare const Timeline: DefineComponent<{ + /** + * 指定是否最后一个节点为幽灵节点 + */ + pending?: boolean; + +}> + +export declare const TimelineItem: DefineComponent<{ + /** + * 圆圈颜色,可选值为`blue`、`red`、`green`,或自定义色值 + */ + color?: 'blue' | 'red' | 'green' | string; + + 'v-slots'?: { + /** + * 自定义时间轴点内容 + */ + dot?: () => any; + + /** + * 基本内容 + */ + default?: () => any; + + }; +}> diff --git a/types/tooltip.d.ts b/types/tooltip.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..d2bf618297f6750445e6ee7935b4fac850f07e0a --- /dev/null +++ b/types/tooltip.d.ts @@ -0,0 +1,86 @@ +import type { DefineComponent } from 'vue'; + +export declare const Tooltip: DefineComponent<{ + /** + * 显示的内容 + */ + content?: string | number; + + /** + * 提示框出现的位置,可选值为`top``top-start``top-end``bottom``bottom-start``bottom-end``left``left-start``left-end``right``right-start``right-end`,2.12.0 版本开始支持自动识别 + */ + placement?: 'top' | 'top-start' | 'top-end' | 'bottom' | 'bottom-start' | 'bottom-end' | 'left' | 'left-start' | 'left-end' | 'right' | 'right-start' | 'right-end'; + + /** + * 是否禁用提示框 + */ + disabled?: boolean; + + /** + * 延迟显示,单位毫秒 + */ + delay?: number; + + /** + * 是否总是可见 + */ + always?: boolean; + + /** + * 主题,可选值为 dark 或 light + */ + theme?: string; + + /** + * 最大宽度,超出最大值后,文本将自动换行,并两端对齐 + */ + 'max-width'?: string | number; + + /** + * 出现位置的偏移量 + */ + offset?: number; + + /** + * 是否将弹层放置于 body 内,在 Tabs、带有 fixed 的 Table 列内使用时,建议添加此属性,它将不受父级样式影响,从而达到更好的效果 + */ + transfer?: boolean; + + /** + * 自定义 popper.js 的配置项,具体配置见 [popper.js 文档](https://popper.js.org/popper-documentation.html) + */ + options?: object; + + /** + * 开启 transfer 时,给浮层添加额外的 class 名称 + */ + 'transfer-class-name'?: string; + + /** + * 是否开启 Popper 的 eventsEnabled 属性,开启可能会牺牲一定的性能 + */ + 'events-enabled'?: boolean; + + /** + * 在提示框显示时触发 + */ + onOnPopperShow?: (event?: any) => any; + + /** + * 在提示框消失时触发 + */ + onOnPopperHide?: (event?: any) => any; + + 'v-slots'?: { + /** + * 主体内容 + */ + default?: () => any; + + /** + * 提示框的内容,定义此 slot 时,会覆盖 props `content`。 + */ + content?: () => any; + + }; +}> diff --git a/types/transfer.d.ts b/types/transfer.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..2b456ad6d0cfe278b0d4493e0e86ed8e334ece74 --- /dev/null +++ b/types/transfer.d.ts @@ -0,0 +1,81 @@ +import type { DefineComponent } from 'vue'; + +export declare const Transfer: DefineComponent<{ + /** + * 数据源,其中的数据将会被渲染到左边一栏中,`targetKeys` 中指定的除外。 + */ + data?: any[]; + + /** + * 显示在右侧框数据的key集合 + */ + 'target-keys'?: any[]; + + /** + * 每行数据渲染函数,该函数的入参为 `data` 中的项 + */ + 'render-format'?: Function; + + /** + * 设置哪些项应该被选中 + */ + 'selected-keys'?: any[]; + + /** + * 两个穿梭框的自定义样式 + */ + 'list-style'?: object; + + /** + * 标题集合,顺序从左至右 + */ + titles?: any[]; + + /** + * 操作文案集合,顺序从上至下 + */ + operations?: any[]; + + /** + * 是否颠倒两个操作按钮的上下顺序 + */ + 'reverse-operation'?: boolean; + + /** + * 是否显示搜索框 + */ + filterable?: boolean; + + /** + * 搜索框的占位 + */ + 'filter-placeholder'?: string; + + /** + * 自定义搜索函数,入参为 data 和 query,data 为项,query 为当前输入的搜索词 + */ + 'filter-method'?: Function; + + /** + * 当列表为空时显示的内容 + */ + 'not-found-text'?: string; + + /** + * 选项在两栏之间转移时的回调函数 + */ + onOnChange?: (event?: any) => any; + + /** + * 选中项发生变化时触发 + */ + onOnSelectedChange?: (event?: any) => any; + + 'v-slots'?: { + /** + * 自定义底部内容 + */ + default?: () => any; + + }; +}> diff --git a/types/tree-select.d.ts b/types/tree-select.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..0ab1536a2c20e338ecf0d8b6ce25678e47f342c8 --- /dev/null +++ b/types/tree-select.d.ts @@ -0,0 +1,44 @@ +import type { DefineComponent } from 'vue'; + +export declare const TreeSelect: DefineComponent<{ + /** + * 指定选中项目的 value 值,可以使用 v-model 双向绑定数据。单选时只接受 String 或 Number,多选时只接受 Array + */ + 'model-value'?: string | number | any[]; + + /** + * Tree 的数据,基本同 View UI Plus Tree,但要额外设置一个 `value` 字段,而且 `selected` 和 `checked` 字段需预先设置在 data 中,详见示例 + */ + data?: any[]; + + /** + * 是否支持多选 + */ + multiple?: boolean; + + /** + * 是否显示多选框 + */ + 'show-checkbox'?: boolean; + + /** + * 异步加载数据的方法,详见示例 + */ + 'load-data'?: Function; + + /** + * 是否将弹层放置于 body 内 + */ + transfer?: boolean; + + /** + * 选项变化时触发 + */ + onOnChange?: (event?: any) => any; + + /** + * 下拉框展开或收起时触发 + */ + onOnOpenChange?: (event?: any) => any; + +}> diff --git a/types/tree.d.ts b/types/tree.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..12f3070370d8010003cfe84b257670c8b7b569d5 --- /dev/null +++ b/types/tree.d.ts @@ -0,0 +1,139 @@ +import type { DefineComponent } from 'vue'; + +export declare const Tree: DefineComponent<{ + /** + * 可嵌套的节点属性的数组,生成 tree 的数据 + */ + data?: any[]; + + /** + * 是否支持多选 + */ + multiple?: boolean; + + /** + * 是否显示多选框 + */ + 'show-checkbox'?: boolean; + + /** + * 没有数据时的提示 + */ + 'empty-text'?: string; + + /** + * 异步加载数据的方法,见示例 + */ + 'load-data'?: Function; + + /** + * 自定义渲染内容,见示例 + */ + render?: Function; + + /** + * 定义子节点键 + */ + 'children-key'?: string; + + /** + * 在显示复选框的情况下,是否严格的遵循父子不互相关联的做法 + */ + 'check-strictly'?: boolean; + + /** + * 开启后,在 show-checkbox 模式下,select 的交互也将转为 check + */ + 'check-directly'?: boolean; + + /** + * 开启后,点击节点将使用单选效果 + */ + 'select-node'?: boolean; + + /** + * 开启后,点击节点将使用展开/收起子节点效果,该选项优先于 select-node + */ + 'expand-node'?: boolean; + + /** + * 点击右键菜单项是否自动关闭右键菜单 + */ + 'auto-close-contextmenu'?: boolean; + + /** + * 点击树节点时触发 + */ + onOnSelectChange?: (event?: any) => any; + + /** + * 点击复选框时触发 + */ + onOnCheckChange?: (event?: any) => any; + + /** + * 展开和收起子列表时触发 + */ + onOnToggleExpand?: (event?: any) => any; + + /** + * 当前节点点击右键时触发 + */ + onOnContextmenu?: (event?: any) => any; + + 'v-slots'?: { + /** + * 右键菜单,详见示例 + */ + contextMenu?: () => any; + + }; +}> + +export declare const TreeChildConfig: { + /** + * 标题 + */ + title?: string | Element; + + /** + * 是否展开直子节点 + */ + expand?: boolean; + + /** + * 禁掉响应 + */ + disabled?: boolean; + + /** + * 禁掉 checkbox + */ + disableCheckbox?: boolean; + + /** + * 是否选中子节点 + */ + selected?: boolean; + + /** + * 是否勾选(如果勾选,子节点也会全部勾选) + */ + checked?: boolean; + + /** + * 子节点属性数组 + */ + children?: any[]; + + /** + * 自定义当前节点渲染内容,见示例 + */ + render?: Function; + + /** + * 是否支持右键菜单 + */ + contextmenu?: boolean; + +} diff --git a/types/trend.d.ts b/types/trend.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..a432554efd373e0b7e087368b7119774404432d0 --- /dev/null +++ b/types/trend.d.ts @@ -0,0 +1,24 @@ +import type { DefineComponent } from 'vue'; + +export declare const Trend: DefineComponent<{ + /** + * 上升下降标识,可选值为 up 或 down + */ + flag?: string; + + /** + * 是否以彩色显示 + */ + colorful?: boolean; + + /** + * 是否颜色反转 + */ + 'reverse-color'?: boolean; + + /** + * 文字是否显示颜色(受 colorful 和 reverse-color 的影响) + */ + 'text-color'?: boolean; + +}> diff --git a/types/typography.d.ts b/types/typography.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..152392e35853f795b39fe242b8473198098648e0 --- /dev/null +++ b/types/typography.d.ts @@ -0,0 +1,730 @@ +import type { DefineComponent } from 'vue'; + +export declare const Title: DefineComponent<{ + /** + * 重要程度,相当于 `h1`、`h2`、`h3`、`h4`、`h5` + */ + level?: 1 | 2 | 3 | 4 | 5; + + /** + * 绑定的值,可使用 v-model 双向绑定 + */ + 'model-value'?: string; + + /** + * 文本类型,可选值为 `secondary`、`success`、`warning`、`danger` + */ + type?: '' | 'secondary' | 'success' | 'warning' | 'danger'; + + /** + * 是否可以拷贝 + */ + copyable?: boolean; + + /** + * 自定义拷贝内容 + */ + 'copy-text'?: string; + + /** + * 拷贝配置项,支持全局配置 + */ + 'copy-config'?: object; + + /** + * 是否可以编辑 + */ + editable?: boolean; + + /** + * 编辑配置项,支持全局配置 + */ + 'edit-config'?: object; + + /** + * 自动溢出省略 + */ + ellipsis?: boolean; + + /** + * 自动溢出省略配置项,支持全局配置 + */ + 'ellipsis-config'?: object; + + /** + * 禁用文本 + */ + disabled?: boolean; + + /** + * 添加代码样式 + */ + code?: boolean; + + /** + * 添加删除线样式 + */ + delete?: boolean; + + /** + * 添加键盘样式 + */ + keyboard?: boolean; + + /** + * 添加标记样式 + */ + mark?: boolean; + + /** + * 添加下划线样式 + */ + underline?: boolean; + + /** + * 是否加粗 + */ + strong?: boolean; + + /** + * 是否斜体 + */ + italic?: boolean; + + /** + * 是否开启 Tooltip 的 transfer 属性,仅适用于 ellipsis 模式 + */ + transfer?: boolean; + + /** + * Tooltip 的 theme 属性,仅适用于 ellipsis 模式 + */ + theme?: 'dark' | 'light'; + + /** + * Tooltip 的 max-width 属性,仅适用于 ellipsis 模式 + */ + 'max-width'?: number | string; + + /** + * Tooltip 的 placement 属性,仅适用于 ellipsis 模式 + */ + placement?: 'top' | 'top-start' | 'top-end' | 'bottom' | 'bottom-start' | 'bottom-end' | 'left' | 'left-start' | 'left-end' | 'right' | 'right-start' | 'right-end'; + + /** + * 拷贝成功时触发 + */ + onOnCopySuccess?: (event?: any) => any; + + /** + * 拷贝失败时触发 + */ + onOnCopyError?: (event?: any) => any; + + /** + * 进入编辑状态时触发 + */ + onOnEditStart?: (event?: any) => any; + + /** + * 结束编辑状态时触发,即保存 + */ + onOnEditEnd?: (event?: any) => any; + + /** + * 编辑内容时触发 + */ + onOnEditChange?: (event?: any) => any; + + /** + * 退出编辑时触发 + */ + onOnEditCancel?: (event?: any) => any; + + 'v-slots'?: { + /** + * 文本内容,优先级低于 model-value + */ + default?: () => any; + + /** + * 自定义拷贝图标,可选参数 copied + */ + copyIcon?: () => any; + + /** + * 自定义编辑图标 + */ + editIcon?: () => any; + + /** + * 自定义回车图标 + */ + enterIcon?: () => any; + + }; +}> + +export declare const Text: DefineComponent<{ + /** + * 绑定的值,可使用 v-model 双向绑定 + */ + 'model-value'?: string; + + /** + * 文本类型,可选值为 `secondary`、`success`、`warning`、`danger` + */ + type?: '' | 'secondary' | 'success' | 'warning' | 'danger'; + + /** + * 是否可以拷贝 + */ + copyable?: boolean; + + /** + * 自定义拷贝内容 + */ + 'copy-text'?: string; + + /** + * 拷贝配置项,支持全局配置 + */ + 'copy-config'?: object; + + /** + * 是否可以编辑 + */ + editable?: boolean; + + /** + * 编辑配置项,支持全局配置 + */ + 'edit-config'?: object; + + /** + * 自动溢出省略 + */ + ellipsis?: boolean; + + /** + * 自动溢出省略配置项,支持全局配置 + */ + 'ellipsis-config'?: object; + + /** + * 禁用文本 + */ + disabled?: boolean; + + /** + * 添加代码样式 + */ + code?: boolean; + + /** + * 添加删除线样式 + */ + delete?: boolean; + + /** + * 添加键盘样式 + */ + keyboard?: boolean; + + /** + * 添加标记样式 + */ + mark?: boolean; + + /** + * 添加下划线样式 + */ + underline?: boolean; + + /** + * 是否加粗 + */ + strong?: boolean; + + /** + * 是否斜体 + */ + italic?: boolean; + + /** + * 是否开启 Tooltip 的 transfer 属性,仅适用于 ellipsis 模式 + */ + transfer?: boolean; + + /** + * Tooltip 的 theme 属性,仅适用于 ellipsis 模式 + */ + theme?: 'dark' | 'light'; + + /** + * Tooltip 的 max-width 属性,仅适用于 ellipsis 模式 + */ + 'max-width'?: number | string; + + /** + * Tooltip 的 placement 属性,仅适用于 ellipsis 模式 + */ + placement?: 'top' | 'top-start' | 'top-end' | 'bottom' | 'bottom-start' | 'bottom-end' | 'left' | 'left-start' | 'left-end' | 'right' | 'right-start' | 'right-end'; + + /** + * 拷贝成功时触发 + */ + onOnCopySuccess?: (event?: any) => any; + + /** + * 拷贝失败时触发 + */ + onOnCopyError?: (event?: any) => any; + + /** + * 进入编辑状态时触发 + */ + onOnEditStart?: (event?: any) => any; + + /** + * 结束编辑状态时触发,即保存 + */ + onOnEditEnd?: (event?: any) => any; + + /** + * 编辑内容时触发 + */ + onOnEditChange?: (event?: any) => any; + + /** + * 退出编辑时触发 + */ + onOnEditCancel?: (event?: any) => any; + + 'v-slots'?: { + /** + * 文本内容,优先级低于 model-value + */ + default?: () => any; + + /** + * 自定义拷贝图标,可选参数 copied + */ + copyIcon?: () => any; + + /** + * 自定义编辑图标 + */ + editIcon?: () => any; + + /** + * 自定义回车图标 + */ + enterIcon?: () => any; + + }; +}> + +export declare const Paragraph: DefineComponent<{ + /** + * 绑定的值,可使用 v-model 双向绑定 + */ + 'model-value'?: string; + + /** + * 文本类型,可选值为 `secondary`、`success`、`warning`、`danger` + */ + type?: '' | 'secondary' | 'success' | 'warning' | 'danger'; + + /** + * 是否可以拷贝 + */ + copyable?: boolean; + + /** + * 自定义拷贝内容 + */ + 'copy-text'?: string; + + /** + * 拷贝配置项,支持全局配置 + */ + 'copy-config'?: object; + + /** + * 是否可以编辑 + */ + editable?: boolean; + + /** + * 编辑配置项,支持全局配置 + */ + 'edit-config'?: object; + + /** + * 自动溢出省略 + */ + ellipsis?: boolean; + + /** + * 自动溢出省略配置项,支持全局配置 + */ + 'ellipsis-config'?: object; + + /** + * 禁用文本 + */ + disabled?: boolean; + + /** + * 添加代码样式 + */ + code?: boolean; + + /** + * 添加删除线样式 + */ + delete?: boolean; + + /** + * 添加键盘样式 + */ + keyboard?: boolean; + + /** + * 添加标记样式 + */ + mark?: boolean; + + /** + * 添加下划线样式 + */ + underline?: boolean; + + /** + * 是否加粗 + */ + strong?: boolean; + + /** + * 是否斜体 + */ + italic?: boolean; + + /** + * 是否开启 Tooltip 的 transfer 属性,仅适用于 ellipsis 模式 + */ + transfer?: boolean; + + /** + * Tooltip 的 theme 属性,仅适用于 ellipsis 模式 + */ + theme?: 'dark' | 'light'; + + /** + * Tooltip 的 max-width 属性,仅适用于 ellipsis 模式 + */ + 'max-width'?: number | string; + + /** + * Tooltip 的 placement 属性,仅适用于 ellipsis 模式 + */ + placement?: 'top' | 'top-start' | 'top-end' | 'bottom' | 'bottom-start' | 'bottom-end' | 'left' | 'left-start' | 'left-end' | 'right' | 'right-start' | 'right-end'; + + /** + * 拷贝成功时触发 + */ + onOnCopySuccess?: (event?: any) => any; + + /** + * 拷贝失败时触发 + */ + onOnCopyError?: (event?: any) => any; + + /** + * 进入编辑状态时触发 + */ + onOnEditStart?: (event?: any) => any; + + /** + * 结束编辑状态时触发,即保存 + */ + onOnEditEnd?: (event?: any) => any; + + /** + * 编辑内容时触发 + */ + onOnEditChange?: (event?: any) => any; + + /** + * 退出编辑时触发 + */ + onOnEditCancel?: (event?: any) => any; + + 'v-slots'?: { + /** + * 文本内容,优先级低于 model-value + */ + default?: () => any; + + /** + * 自定义拷贝图标,可选参数 copied + */ + copyIcon?: () => any; + + /** + * 自定义编辑图标 + */ + editIcon?: () => any; + + /** + * 自定义回车图标 + */ + enterIcon?: () => any; + + }; +}> + +export declare const Link: DefineComponent<{ + /** + * 绑定的值,可使用 v-model 双向绑定 + */ + 'model-value'?: string; + + /** + * 跳转的链接,支持 vue-router 对象 + */ + to?: string | object; + + /** + * 路由跳转时,开启 replace 将不会向 history 添加新记录 + */ + replace?: boolean; + + /** + * 相当于 a 链接的 target 属性 + */ + target?: string; + + /** + * 同 vue-router append + */ + append?: boolean; + + /** + * 文本类型,可选值为 `secondary`、`success`、`warning`、`danger` + */ + type?: '' | 'secondary' | 'success' | 'warning' | 'danger'; + + /** + * 是否可以拷贝 + */ + copyable?: boolean; + + /** + * 自定义拷贝内容 + */ + 'copy-text'?: string; + + /** + * 拷贝配置项,支持全局配置 + */ + 'copy-config'?: object; + + /** + * 是否可以编辑 + */ + editable?: boolean; + + /** + * 编辑配置项,支持全局配置 + */ + 'edit-config'?: object; + + /** + * 自动溢出省略 + */ + ellipsis?: boolean; + + /** + * 自动溢出省略配置项,支持全局配置 + */ + 'ellipsis-config'?: object; + + /** + * 禁用文本 + */ + disabled?: boolean; + + /** + * 添加代码样式 + */ + code?: boolean; + + /** + * 添加删除线样式 + */ + delete?: boolean; + + /** + * 添加键盘样式 + */ + keyboard?: boolean; + + /** + * 添加标记样式 + */ + mark?: boolean; + + /** + * 添加下划线样式 + */ + underline?: boolean; + + /** + * 是否加粗 + */ + strong?: boolean; + + /** + * 是否斜体 + */ + italic?: boolean; + + /** + * 是否开启 Tooltip 的 transfer 属性,仅适用于 ellipsis 模式 + */ + transfer?: boolean; + + /** + * Tooltip 的 theme 属性,仅适用于 ellipsis 模式 + */ + theme?: 'dark' | 'light'; + + /** + * Tooltip 的 max-width 属性,仅适用于 ellipsis 模式 + */ + 'max-width'?: number | string; + + /** + * Tooltip 的 placement 属性,仅适用于 ellipsis 模式 + */ + placement?: 'top' | 'top-start' | 'top-end' | 'bottom' | 'bottom-start' | 'bottom-end' | 'left' | 'left-start' | 'left-end' | 'right' | 'right-start' | 'right-end'; + + /** + * 拷贝成功时触发 + */ + onOnCopySuccess?: (event?: any) => any; + + /** + * 拷贝失败时触发 + */ + onOnCopyError?: (event?: any) => any; + + /** + * 进入编辑状态时触发 + */ + onOnEditStart?: (event?: any) => any; + + /** + * 结束编辑状态时触发,即保存 + */ + onOnEditEnd?: (event?: any) => any; + + /** + * 编辑内容时触发 + */ + onOnEditChange?: (event?: any) => any; + + /** + * 退出编辑时触发 + */ + onOnEditCancel?: (event?: any) => any; + + 'v-slots'?: { + /** + * 文本内容,优先级低于 model-value + */ + default?: () => any; + + /** + * 自定义拷贝图标,可选参数 copied + */ + copyIcon?: () => any; + + /** + * 自定义编辑图标 + */ + editIcon?: () => any; + + /** + * 自定义回车图标 + */ + enterIcon?: () => any; + + }; +}> + +export declare const CopyConfig: { + /** + * Tooltip 显示内容,为 false 则不显示 + */ + tooltips?: boolean | any[]; + + /** + * 是否显示复制成功的通知 + */ + showTip?: boolean; + + /** + * 复制成功时的通知 + */ + successTip?: string; + + /** + * 复制失败时的通知 + */ + errorTip?: string; + +} + +export declare const EditConfig: { + /** + * Tooltip 显示内容,为 false 则不显示 + */ + tooltip?: boolean | string; + + /** + * 是否默认进入编辑状态 + */ + editing?: boolean; + + /** + * 最大输入长度 + */ + maxlength?: number; + + /** + * 自适应内容高度 + */ + autosize?: object; + + /** + * 触发方式,可选值为 `icon`、`text`、`both` + */ + triggerType?: 'icon' | 'text' | 'both'; + +} + +export declare const EllipsisConfig: { + /** + * 最多显示的行数 + */ + rows?: number; + + /** + * 是否以 Tooltip 显示完整内容或自定义内容 + */ + tooltip?: boolean | string; + +} diff --git a/types/upload.d.ts b/types/upload.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..1e8ac0d1c37a21d64e85754a814da9f4a8f03926 --- /dev/null +++ b/types/upload.d.ts @@ -0,0 +1,131 @@ +import type { DefineComponent } from 'vue'; + +export declare const Upload: DefineComponent<{ + /** + * 上传的地址,必填 + */ + action?: string; + + /** + * 设置上传的请求头部 + */ + headers?: object; + + /** + * 是否支持多选文件 + */ + multiple?: boolean; + + /** + * 是否支持粘贴上传文件 + */ + paste?: boolean; + + /** + * 是否开启选择文件夹,部分浏览器适用 + */ + webkitdirectory?: boolean; + + /** + * 是否禁用 + */ + disabled?: boolean; + + /** + * 上传时附带的额外参数 + */ + data?: object; + + /** + * 上传的文件字段名 + */ + name?: string; + + /** + * 支持发送 cookie 凭证信息 + */ + 'with-credentials'?: boolean; + + /** + * 是否显示已上传文件列表 + */ + 'show-upload-list'?: boolean; + + /** + * 上传控件的类型,可选值为 `select`(点击选择),`drag`(支持拖拽) + */ + type?: 'select' | 'drag'; + + /** + * 接受上传的[文件类型](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#attr-accept) + */ + accept?: string; + + /** + * 支持的文件类型,与 accept 不同的是,format 是识别文件的后缀名,accept 为 input 标签原生的 accept 属性,会在选择文件时过滤,可以两者结合使用 + */ + format?: any[]; + + /** + * 文件大小限制,单位 kb + */ + 'max-size'?: number; + + /** + * 上传文件之前的钩子,参数为上传的文件,若返回 false 或者 Promise 则停止上传 + */ + 'before-upload'?: Function; + + /** + * 文件上传时的钩子,返回字段为 event, file, fileList + */ + 'on-progress'?: Function; + + /** + * 文件上传成功时的钩子,返回字段为 response, file, fileList + */ + 'on-success'?: Function; + + /** + * 文件上传失败时的钩子,返回字段为 error, file, fileList + */ + 'on-error'?: Function; + + /** + * 点击已上传的文件链接时的钩子,返回字段为 file, 可以通过 file.response 拿到服务端返回数据 + */ + 'on-preview'?: Function; + + /** + * 文件列表移除文件时的钩子,返回字段为 file, fileList + */ + 'on-remove'?: Function; + + /** + * 文件格式验证失败时的钩子,返回字段为 file, fileList + */ + 'on-format-error'?: Function; + + /** + * 文件超出指定大小限制时的钩子,返回字段为 file, fileList + */ + 'on-exceeded-size'?: Function; + + /** + * 默认已上传的文件列表,例如:```[{name: 'img1.jpg', url: 'http://www.xxx.com/img1.jpg'}, {name: 'img2.jpg', url: 'http://www.xxx.com/img2.jpg'}]``` + */ + 'default-file-list'?: any[]; + + 'v-slots'?: { + /** + * 触发上传组件的控件 + */ + default?: () => any; + + /** + * 辅助提示内容 + */ + tip?: () => any; + + }; +}> diff --git a/types/viewuiplus.components.d.ts b/types/viewuiplus.components.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..473f436e80d8a512ed9ac324ecddfe3c9861868b --- /dev/null +++ b/types/viewuiplus.components.d.ts @@ -0,0 +1,82 @@ +export { Affix } from './affix' +export { Alert } from './alert' +export { Anchor, AnchorLink } from './anchor' +export { Auth } from './auth' +export { AutoComplete } from './auto-complete' +export { Avatar } from './avatar' +export { AvatarList } from './avatar-list' +export { BackTop } from './back-top' +export { Badge } from './badge' +export { Breadcrumb, BreadcrumbItem } from './breadcrumb' +export { Button, ButtonGroup } from './button' +export { Calendar } from './calendar' +export { Card } from './card' +export { Carousel, CarouselItem } from './carousel' +export { Cascader } from './cascader' +export { Cell, CellGroup } from './cell' +export { Checkbox, CheckboxGroup } from './checkbox' +export { Circle } from './circle' +export { City } from './city' +export { Collapse, Panel } from './collapse' +export { ColorPicker } from './color-picker' +export { CountDown } from './count-down' +export { CountUp } from './count-up' +export { DatePicker } from './date-picker' +export { DescriptionList, Description } from './description-list' +export { Divider } from './divider' +export { Drawer } from './drawer' +export { Dropdown, DropdownItem, DropdownMenu } from './dropdown' +export { Ellipsis } from './ellipsis' +export { Exception } from './exception' +export { FooterToolbar } from './footer-toolbar' +export { Form, FormItem } from './form' +export { GlobalFooter, Links } from './global-footer' +export { Grid, GridItem } from './grid' +export { Icon } from './icon' +export { Image, ImagePreview } from './image' +export { Input } from './input' +export { InputNumber } from './input-number' +export { Sider, Layout, Content, Footer, Header } from './layout' +export { List, ListItemMeta, ListItem } from './list' +export { LoadingBar, LoadingBarConfig } from './loading-bar' +export { UserName, Captcha, Password, Email, Mobile, Submit, Login } from './login' +export { Menu, MenuItem, Submenu, MenuGroup } from './menu' +export { Message, MessageConfig } from './message' +export { Modal, ModalInstance } from './modal' +export { Notice, NoticeConfig } from './notice' +export { Notification, NotificationTab, NotificationItem } from './notification' +export { NumberInfo } from './number-info' +export { Numeral } from './numeral' +export { Page } from './page' +export { PageHeader } from './page-header' +export { Poptip } from './poptip' +export { Progress } from './progress' +export { Radio, RadioGroup } from './radio' +export { Rate } from './rate' +export { Result } from './result' +export { Row, Col } from './row' +export { Scroll } from './scroll' +export { Select, Option, OptionGroup } from './select' +export { Skeleton, SkeletonItem } from './skeleton' +export { Slider } from './slider' +export { Space } from './space' +export { Spin } from './spin' +export { Split } from './split' +export { Steps, Step } from './steps' +export { Switch } from './switch' +export { Table, TableColumnConfig } from './table' +export { TablePaste } from './table-paste' +export { Tabs, TabPane } from './tabs' +export { Tag } from './tag' +export { TagSelect, TagSelectOption } from './tag-select' +export { Time } from './time' +export { TimePicker } from './time-picker' +export { Timeline, TimelineItem } from './timeline' +export { Tooltip } from './tooltip' +export { Transfer } from './transfer' +export { Tree, TreeChildConfig } from './tree' +export { TreeSelect } from './tree-select' +export { Trend } from './trend' +export { Title, Text, Paragraph, Link, CopyConfig, EditConfig, EllipsisConfig } from './typography' +export { Upload } from './upload' +export { WordCount } from './word-count' diff --git a/types/word-count.d.ts b/types/word-count.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..834c0d950aaa9238c75197154d76ee88cc7ab0e0 --- /dev/null +++ b/types/word-count.d.ts @@ -0,0 +1,71 @@ +import type { DefineComponent } from 'vue'; + +export declare const WordCount: DefineComponent<{ + /** + * 统计的文本内容 + */ + 'model-value'?: string | number; + + /** + * 总字数 + */ + total?: number; + + /** + * 是否隐藏总字数 + */ + 'hide-total'?: boolean; + + /** + * 当超出 total 时,是否显示为溢出的个数 + */ + overflow?: boolean; + + /** + * 是否以圆环的形式显示 + */ + circle?: boolean; + + /** + * circle 模式下的尺寸 + */ + size?: string | number; + + 'v-slots'?: { + /** + * 前缀 + */ + prefix?: () => any; + + /** + * 溢出时的前缀 + */ + 'prefix-overflow'?: () => any; + + /** + * 后缀 + */ + suffix?: () => any; + + /** + * 溢出时的后缀 + */ + 'suffix-overflow'?: () => any; + + /** + * 内容长度,支持 slot-scope, 参数:length + */ + length?: () => any; + + /** + * 总字数,支持 slot-scope,参数:total + */ + total?: () => any; + + /** + * 自定义分隔符 + */ + separator?: () => any; + + }; +}> diff --git a/vite.config.js b/vite.config.js new file mode 100644 index 0000000000000000000000000000000000000000..d3ffe59d2060bad047f33fdec10e7d20d5ca11e6 --- /dev/null +++ b/vite.config.js @@ -0,0 +1,52 @@ +import {defineConfig} from 'vite'; +import vue from '@vitejs/plugin-vue'; +import path from 'path'; + + +const config = defineConfig({ + plugins: [vue()], + target: 'es2015', + build: { + outDir: path.resolve(__dirname, './dist'), + lib: { + entry: path.resolve(__dirname, './src/index.js'), + name: 'ViewUIPlus' + }, + rollupOptions: { + context: 'globalThis', + preserveEntrySignatures: 'strict', + external: ['vue'], + output: [ + { + format: 'umd', + exports: 'named', + sourcemap: false, + entryFileNames: 'viewuiplus.min.js', + chunkFileNames: '[name].js', + assetFileNames: '[name].[ext]', + namespaceToStringTag: true, + inlineDynamicImports: false, + manualChunks: undefined, + globals: { vue: 'Vue' } + }, + { + format: 'es', + exports: 'named', + sourcemap: false, + entryFileNames: 'viewuiplus.min.esm.js', + chunkFileNames: '[name].js', + assetFileNames: '[name].[ext]', + namespaceToStringTag: true, + inlineDynamicImports: false, + manualChunks: undefined, + globals: { vue: 'Vue' } + } + ] + } + }, + resolve: { + extensions: ['.mjs', '.js', '.ts', '.jsx', '.tsx', '.json', '.vue'] + } +}); + +export default config; diff --git a/vue.config.js b/vue.config.js new file mode 100644 index 0000000000000000000000000000000000000000..77e7d7913414de08c796a83e320b60c034ae1b80 --- /dev/null +++ b/vue.config.js @@ -0,0 +1,17 @@ +module.exports = { + assetsDir: '', + pages: { + index: { + entry: 'examples/main.js', + template: 'examples/index.html', + filename: 'index.html', + chunks: ['chunk-vendors', 'chunk-common', 'index'] + } + }, + configureWebpack: { + resolve: {} + }, + devServer: { + disableHostCheck: true + } +};